無疑地,微處理器的時脈頻率可以透過許多方式大幅增加,但卻受限於主記憶體的性能而必須降低其時脈頻率來維持電腦系統的穩定性。本文透過對於靜態隨機存取記憶體(SRAM)單元縮減佈局面積的研究,提出一種新的存取技術,可望提升動態隨機存取記憶體(DRAM)單元的存取速度。

超頻與記憶體的關聯性

提升供應電壓以及降低環境溫度有助於增加微處理器、晶片組、主記憶體的時脈頻率,這是對於電腦系統執行超頻(overclock)的實體特性;微處理器、晶片組、主記憶體、主機板的整體電路設計,則是用於執行超頻的硬體特性。此外,維持作業系統(OS)以及應用程式在執行時的穩定性,是在超頻之後的軟體特性。

在超頻進行中,某些應用程式會有頻繁的數學計算以及大量的資料存取,這時可能發生超過晶粒封裝材料或外部散熱裝置的散熱效率,因此需要自動超頻的技術來監視系統以及調整時脈頻率。另一種自動超頻是為了確認哪些安裝在主機板上的微處理器、晶片組、主記憶體搭配的外部散熱裝置能夠達到超頻極限。當基本輸入輸出系統(BIOS)的程式碼加入這一自動超頻的功能時,個人電腦(PC)就不必進入OS,也就是不必接上任何磁碟機,就能迅速獲得超頻的極限值,並且減少磁碟機的磨損。

由於微處理器對於週邊裝置的資料存取會透過主記憶體來處理,所以主記憶體的穩定性影響著微處理器的執行,即使能夠對微處理器進行超頻也必須擁有可配合大幅超頻的主記憶體,這就是超頻記憶體模組的用途。

資料傳輸介面

單倍資料速率同步動態隨機存取記憶體(SDR SDRAM)資料傳輸介面主要針對DRAM的存取特性,因為DRAM需要經由更新作業來維持儲存狀態,並且在讀取期間需要額外執行回寫作業;雖然在寫入期間沒有額外的作業,但也需要一段時間才能完成儲存,這也相當於執行回寫作業的時間。由於DRAM的寫入以及回寫時間皆遠大於高速微處理器內部的時脈時間,所以SDRAM根據這樣的存取特性而設計資料傳輸介面的各種訊號與作業程序。SDRAM在發展至雙倍資料速率(DDR)之後的性能價格比皆優於其它資料傳輸介面(如Rambus DRAM;RDRAM)。如今,DDR SDRAM又區分為標準型以及行動型。

圖1顯示SDRAM的簡要功能方塊圖,行位址選通訊號(CAS#)是根據預充電而設計的延遲控制訊號,亦即無預充電則不必分時控制列位址選通訊號(RAS#)、CAS#。差動時脈訊號(CLK, CKE)的頻率是基於微處理器的工作時脈,資料遮罩訊號(DQM)對應差動時脈訊號的邊緣;這些訊號用於進行同步傳輸作業。對於感測放大器以及寫入驅動器的配置規劃,通常根據外部資料匯流排的位元寬度而設計相同的數量,然而,可以導入平行存取的方法來增加存取效率,因此增加了行位址的位元寬度以選擇同列不同行的感測放大器與寫入驅動器。這種方法產生了叢發模式(burst mode)以及同列存取,但並不會增加存取速度,並且還要進行同步傳輸作業,所以需要資料暫存器。

20180125_DRAM_TA31P1 圖1:SDRAM的簡要功能方塊圖

圖2顯示SDRAM的命令序列,主要參考美光科技(Micron Technology)產品型號為MT48H8M16LF (Mobile SDRAM)的規格表而來。在各命令序列之中,最單純的命令序列是單一讀取以及單一寫入,由此可清楚SDRAM的基本作業規則。在圖中所表現的命令序列是先執行預充電(PRE),然後活化(ACT),最後執行讀取或寫入存取(RD或WR),如此循環。

20180125_DRAM_TA31P2 圖2:SDRAM的命令序列:單一讀取或單一寫入

圖中,時脈時間(tCK)是從此次時脈邊緣至下次時脈邊緣為止的時間。列位址選通預充電時間(tRP)是從PRE命令至ACT命令為止的時間。列位址選通至行位址選通延遲(tRCD)是從ACT命令至RD命令或WR命令為止的時間。行位址選通潛伏(CL)是從RD命令開始等候一段時間,並且以tCK為基本單位,然後乘上倍數。寫入時間(tWR)是從WR命令至PRE命令為止的時間;另外還可以tCK為基本單位,然後乘上倍數,如同行位址選通潛伏的計時方法,因此命名為行位址選通寫入潛伏(CWL)。列位址選通時間(tRAS)是從ACT命令至PRE命令為止的時間。更新命令時期(tRC)是從這次ACT命令至下次ACT命令為止的時間。

DDR SDRAM在PC上的主要設定參數是tRP、tRCD和CL。對於超頻記憶體模組的性能則要額外考慮時脈時間與寫入時間的最小值,另外就是供應電壓的最大值。

資料傳輸介面的存取效率

SDRAM的存取效率來自叢發模式以及同列存取,並且由此達到資料傳輸介面的傳輸速度。如果要頻繁進入同列存取那麼還要在軟體層級之上對資料結構與資料處理進行最佳化的安排;關於資料結構的最佳化像是先分析會被頻繁存取的資料欄位,然後將這些資料欄位合併在同一資料結構,使得這些資料欄位可以儲存在主記憶體內部的相同列位址;關於資料處理的最佳化像是減少同時對不同資料結構進行交互運算以及交叉存取。

如果發生叢發模式以及同列存取的機率太低,那麼存取效率會大打折扣,並且資料傳輸介面的傳輸速度會低於DRAM單元的單獨寫入速度。這從單一讀取以及單一寫入的命令序列來看則能明白這二者皆要執行預充電,但是DRAM單元在寫入特性上不必進行預充電,然而,這是為了配合叢發模式以及同列存取而設計成相同的命令序列,所以在SDRAM的傳輸技術之下,軟體對於資料處理的設計也會影響程式碼的執行速度。如果電腦軟體未能針對叢發模式進行最佳化,但又要提升執行速度,這會有三種選擇,一是超頻,二是升級主記憶體,三是升級PC。

1T DRAM模組的超頻性能

如果說3T DRAM是第一代DRAM技術,使用差動放大器實現讀取功能的1T DRAM是第二代DRAM,那麼在本文中的第三代DRAM技術是指取代差動放大器且大幅提升讀取功能的存取技術。1T DRAM的記憶體單位是由一電晶體以及一電容器所組成的儲存單元,又稱為1T DRAM單元。圖3顯示在單一儲存單元上進行存取作業的波形,上半部份是使用差動放大器的第二代技術,下半部份是第三代技術,此圖主要用於比較這二者完成讀取作業所需花費的最長時間。當這一電容器的儲存電壓(Vstorage)放電達到最小差異電壓(Min. ∆V)時就必須立即進行更新作業(即讀取),所以此圖呈現有關讀取作業的最長時間就等於是更新作業的最長時間。圖中標示有tprecharge、tread、trewrite、twrite,這些技術用語依序對應產品規格的tRP、tRCD、CL與CWL。第三代技術無需tRP,除此之外,tRCD也很短暫且可由CWL替換CL,因此存取速度接近SRAM,存取效率低於SRAM。

20180125_DRAM_TA31P3 圖3:單一儲存單元進行讀取作業的波形

圖4用於觀察SDRAM的命令序列對於不同存取技術所發生的變化,此圖用於比較第二代與第三代技術之間的存取效率。SDRAM的命令序列有多種組合,其中讀取命令至寫入命令(READ to WRITE)最能突顯不同存取技術之間的差異。第三代技術的讀取時間(tread)很短,於是CL值可以很小,但受到差動時脈訊號以及DQM訊號的限制而不能等於0;另外,即使CL值等於1也還有回寫時間(trewrite),所以第三代技術要以CWL值來替換CL值。

20180125_DRAM_TA31P4 圖4:SDRAM的命令序列:讀取命令至寫入命令

參考三星電子(Samsung Electronics)產品型號為K4A4G165WD的產品規格表,其中有一規格是DDR4-1600 (11-11-11),時脈時間(tCK)是1.25奈秒(ns),CWL的正常值是9,且小於CL值。時脈時間的倒數是資料傳輸介面的時脈頻率;1600是資料傳輸介面的傳輸速度,SDR的傳輸速度等於時脈頻率,DDR的傳輸速度是時脈頻率的2倍;(11-11-11)所對應的定義依序是CL、tRCD、tRP,這些數值合稱為速度容器(speed bin)。這容器在PC上就是北橋晶片組內部的組態暫存器,必須在其儲存這些數值之後才能存取主記憶體。

在圖2中,tRCD以及tRP對應時脈訊號的正緣,因此這二者的最小值是0。在圖4中,CL的最小值受到時脈訊號的限制,因此是1;另外,特別標示CWL及其數值在於表示當正常工作時,CWL與tCK相乘之後的數值必須大於或等於儲存單元的寫入時間(twrite)。當執行超頻時,若不增加CWL值則必須更加頻繁執行更新命令,除此之外,由於IC的製程變異以及洩漏電流而導致每一儲存單元的存取時間不一致,因此更容易發生資料錯誤,所以為了穩定性而必須增加CL值以及CWL值,甚至要特別降溫。當上述這些參數在相同的製造條件之下生產第三代DRAM技術時,速度容器的最小設定值可以是(1-0-0),CWL值可同於上述的產品規格,因此第三代DRAM技術的存取效率在尚未超頻之時就可超過以第二代DRAM技術所生產的超頻記憶體模組。

3T SRAM模組的超頻性能

3T DRAM單元是首次實現DRAM的儲存單元,為了大幅減小IC的佈局面積而發展到1T DRAM單元。筆者在當年發現微處理器的時脈頻率受到DRAM的限制而嘗試以三電晶體組成SRAM,這樣的佈局面積大約與3T DRAM單元相似。如果將SDRAM換成同步靜態隨機存取記憶體(SSRAM),那麼在存取效率上是遠高於第三代DRAM的,因為它的CWL值可達到0,在這樣的條件之下假使沒有叢發模式以及同列存取也能趨近資料傳輸介面的傳輸速度。如果使用3T SRAM模組進行超頻,那麼存取時間會正比於電晶體的切換時間,並且溫度升高會減小切換時間,因此CL以及CWL的組態設定值不會因超頻而增加,也不必特別降溫。

結語

根據研究報告指出,DRAM單元在讀取時會發生軟錯誤(soft error)而導致微處理器不能正常執行程式碼,所以要求DRAM模組加入錯誤糾正碼(ECC)。那麼有誰反向思考過這問題:在微處理器以及晶片組內部也有許多暫存器,為何這些研究報告沒有明確指示這些暫存器也要使用ECC來減少軟錯誤呢?

在我們觀察第二代DRAM技術在單一儲存單元上進行存取作業的波形圖之後就能得知差動放大器的鑑別準位非常低,所以比那些暫存器以及SRAM單元更容易受到干擾。超頻功能可以增加微處理器的處理速度,但對於大量資料的存取效率則取決於主記憶體的技術,而那些存取性能不佳的主記憶體更容易導致微處理器發生無作業時間(NOP time)來等候存取資料,因此在超頻之後有可能增加功率消耗,也難以經由超頻功能來大幅提升對於零散資料進行處理的速度。(本文作者——湯朝景,曾任職經濟部智慧財產局專利審查委員)