毫無疑問,微處理器的頻率可以通過許多方式大幅增加,但卻受限于主存儲器的性能而必須降低其頻率來維持計算機系統(tǒng)的穩(wěn)定性。本文作者通過對靜態(tài)隨機存取內(nèi)存(SRAM)單元縮減布局面積的研究,提出一種新的存取技術,可望提升動態(tài)隨機存取內(nèi)存(DRAM)單元的訪問速度。
超頻與內(nèi)存的關聯(lián)性
提升供應電壓以及降低環(huán)境溫度有助于增加微處理器、芯片組、主存儲器的頻率,這是對于計算機系統(tǒng)執(zhí)行超頻(overclock)的實體特性;微處理器、芯片組、主存儲器、主板的整體電路設計,則是用于執(zhí)行超頻的硬件特性。此外,維持操作系統(tǒng)(OS)以及應用程序在執(zhí)行時的穩(wěn)定性,是在超頻之后的軟件特性。
在超頻進行中,某些應用程序會有頻繁的數(shù)學計算,以及大量的數(shù)據(jù)存取,這時可能發(fā)生超過芯片封裝材料,或外部散熱裝置的散熱效率,因此需要自動超頻的技術來監(jiān)視系統(tǒng)以及調(diào)整頻率。另一種自動超頻是為了確認哪些安裝在主板上的微處理器、芯片組、主存儲器搭配的外部散熱裝置能夠達到超頻極限。當基本輸入輸出系統(tǒng)(BIOS)的程序代碼加入這一自動超頻的功能時,個人計算機(PC)就不必進入OS,也就是不必接上任何磁盤驅(qū)動器,就能迅速獲得超頻的極限值,并且減少磁盤驅(qū)動器的磨損。
由于微處理器對于外圍設備的數(shù)據(jù)存取會通過主存儲器來處理,所以主存儲器的穩(wěn)定性影響著微處理器的執(zhí)行,即使能夠?qū)ξ⑻幚砥鬟M行超頻也必須擁有可配合大幅超頻的主存儲器,這就是超頻內(nèi)存模塊的用途。
數(shù)據(jù)傳輸接口
單倍數(shù)據(jù)速率同步動態(tài)隨機存取內(nèi)存(SDR SDRAM)數(shù)據(jù)傳輸接口主要針對DRAM的存取特性,因為DRAM需要經(jīng)由更新操作來維持儲存狀態(tài),并且在讀取期間需要額外執(zhí)行回寫操作;雖然在寫入期間沒有額外的操作,但也需要一段時間才能完成儲存,這也相當于執(zhí)行回寫操作的時間。由于DRAM的寫入以及回寫時間,皆遠大于高速微處理器內(nèi)部的頻率時間,所以SDRAM根據(jù)這樣的存取特性而設計數(shù)據(jù)傳輸接口的各種信號與操作程序。SDRAM在發(fā)展至雙倍數(shù)據(jù)速率(DDR)之后的性能價格比皆優(yōu)于其它數(shù)據(jù)傳輸接口(如Rambus DRAM;RDRAM)。如今,DDR SDRAM又區(qū)分為標準型以及移動型。
圖1顯示SDRAM的簡要功能方塊圖,行地址選通信號(CAS#)是根據(jù)預充電而設計的延遲控制信號,亦即無預充電則不必分時控制列地址選通信號(RAS#)、CAS#。差動頻率信號(CLK, CKE)的頻率是基于微處理器的工作頻率,數(shù)據(jù)屏蔽信號(DQM)對應差動頻率信號的邊緣;這些信號用于進行同步傳輸操作。對于感測放大器以及寫入驅(qū)動器的配置規(guī)劃,通常根據(jù)外部數(shù)據(jù)總線的位寬度而設計相同的數(shù)量,然而,可以導入并行存取的方法來增加存取效率,因此增加了行地址的位寬度以選擇同列不同行的感測放大器與寫入驅(qū)動器。這種方法產(chǎn)生了叢發(fā)模式(burst mode)以及同列存取,但并不會增加訪問速度,并且還要進行同步傳輸操作,所以需要數(shù)據(jù)緩存器。
圖1:SDRAM的簡要功能方塊圖。
圖2顯示SDRAM的命令序列,主要參考美光科技(Micron Technology)產(chǎn)品型號為MT48H8M16LF (Mobile SDRAM)的規(guī)格表而來。在各命令序列之中,最單純的命令序列是單一讀取以及單一寫入,由此可清楚SDRAM的基本操作規(guī)則。在圖中所表現(xiàn)的命令序列是先執(zhí)行預充電(PRE),然后活化(ACT),最后執(zhí)行讀取或?qū)懭氪嫒?RD或WR),如此循環(huán)。
圖2:SDRAM的命令序列:單一讀取或單一寫入
圖中,頻率時間(tCK)是從此次頻率邊緣至下次頻率邊緣為止的時間。列地址選通預充電時間(tRP)是從PRE命令至ACT命令為止的時間。列地址選通至行地址選通延遲(tRCD)是從ACT命令至RD命令或WR命令為止的時間。行地址選通潛伏(CL)是從RD命令開始等候一段時間,并且以tCK為基本單位,然后乘上倍數(shù)。寫入時間(tWR)是從WR命令至PRE命令為止的時間;另外還可以tCK為基本單位,然后乘上倍數(shù),如同行地址選通潛伏的計時方法,因此命名為行地址選通寫入潛伏(CWL)。列地址選通時間(tRAS)是從ACT命令至PRE命令為止的時間。更新命令時期(tRC)是從這次ACT命令至下次ACT命令為止的時間。
DDR SDRAM在PC上的主要設定參數(shù)是tRP、tRCD和CL。對于超頻內(nèi)存模塊的性能則要額外考慮頻率時間與寫入時間的最小值,另外就是供應電壓的最大值。
數(shù)據(jù)傳輸接口的存取效率
SDRAM的存取效率來自叢發(fā)模式以及同列存取,并且由此達到數(shù)據(jù)傳輸接口的傳輸速度。如果要頻繁進入同列存取那么還要在軟件層級之上對數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)處理進行優(yōu)化的安排;關于數(shù)據(jù)結(jié)構(gòu)的優(yōu)化像是先分析會被頻繁存取的數(shù)據(jù)字段,然后將這些數(shù)據(jù)字段合并在同一數(shù)據(jù)結(jié)構(gòu),使得這些數(shù)據(jù)字段可以儲存在主存儲器內(nèi)部的相同列地址;關于數(shù)據(jù)處理的優(yōu)化像是減少同時對不同數(shù)據(jù)結(jié)構(gòu)進行交互運算以及交叉存取。
如果發(fā)生叢發(fā)模式以及同列存取的機率太低,那么存取效率會大打折扣,并且數(shù)據(jù)傳輸接口的傳輸速度會低于DRAM 單元的單獨寫入速度。這從單一讀取以及單一寫入的命令序列來看則能明白這二者皆要執(zhí)行預充電,但是DRAM單元在寫入特性上不必進行預充電,然而,這是為了配合叢發(fā)模式以及同列存取而設計成相同的命令序列,所以在SDRAM的傳輸技術之下,軟件對于數(shù)據(jù)處理的設計也會影響程序代碼的執(zhí)行速度。如果計算機軟件未能針對叢發(fā)模式進行優(yōu)化,但又要提升執(zhí)行速度,這會有三種選擇,一是超頻,二是升級主存儲器,三是升級PC。
1T DRAM模塊的超頻性能
如果說3T DRAM是第一代DRAM技術,使用差動放大器實現(xiàn)讀取功能的1T DRAM是第二代DRAM,那么在本文中的第三代DRAM技術是指取代差動放大器且大幅提升讀取功能的存取技術。1T DRAM的內(nèi)存基本單位是由一晶體管和一電容器所組成的儲存單元,又稱為1T DRAM單元。圖3顯示在單一儲存單元上進行存取操作的波形,上半部分是使用差動放大器的第二代技術,下半部分是第三代技術,此圖主要用于比較這二者完成讀取操作所需花費的最長時間。當這一電容器的儲存電壓(Vstorage)放電達到最小差異電壓(Min. ?V)時就必須立即進行更新操作(即讀取),所以此圖呈現(xiàn)有關讀取操作的最長時間就等于是更新操作的最長時間。圖中標示有tprecharge、tread、trewrite、twrite,這些技術用語依序?qū)a(chǎn)品規(guī)格的tRP、tRCD、CL與CWL。第三代技術無需tRP,除此之外,tRCD也很短暫且可由CWL替換CL,因此訪問速度接近SRAM,存取效率低于SRAM。
圖3:單一儲存單元進行讀取操作的波形。
圖4用于觀察SDRAM的命令序列對于不同存取技術所發(fā)生的變化,此圖用于比較第二代與第三代技術之間的存取效率。SDRAM的命令序列有多種組合,其中讀取命令至寫入命令(READ to WRITE)最能突顯不同存取技術之間的差異。第三代技術的讀取時間(tread)很短,于是CL值可以很小,但受到差動頻率信號以及DQM信號的限制而不能等于0;另外,即使CL值等于1也還有回寫時間(trewrite),所以第三代技術要以CWL值來替換CL值。
圖4:SDRAM的命令序列:讀取命令至寫入命令。
參考三星電子(Samsung Electronics)產(chǎn)品型號為K4A4G165WD的產(chǎn)品規(guī)格表,其中有一規(guī)格是DDR4-1600 (11-11-11),頻率時間(tCK)是1.25納秒(ns),CWL的正常值是9,且小于CL值。頻率時間的倒數(shù)是數(shù)據(jù)傳輸接口的頻率;1600是數(shù)據(jù)傳輸接口的傳輸速度,SDR的傳輸速度等于頻率,DDR的傳輸速度是頻率的2倍;(11-11-11)所對應的定義依序是CL、tRCD、tRP,這些數(shù)值合稱為速度容器(speed bin)。這容器在PC上就是北橋芯片組內(nèi)部的組態(tài)緩存器,必須在其儲存這些數(shù)值之后才能存取主存儲器。
在圖2中,tRCD以及tRP對應頻率信號的正緣,因此這二者的最小值是0。在圖4中,CL的最小值受到頻率信號的限制,因此是1;另外,特別標示CWL及其數(shù)值在于表示當正常工作時,CWL與tCK相乘之后的數(shù)值必須大于或等于儲存單元的寫入時間(twrite)。當執(zhí)行超頻時,若不增加CWL值則必須更加頻繁執(zhí)行更新命令,除此之外,由于IC的工藝變異以及泄漏電流而導致每一儲存單元的訪問時間不一致,因此更容易發(fā)生數(shù)據(jù)錯誤,所以為了穩(wěn)定性而必須增加CL值以及CWL值,甚至要特別降溫。當上述這些參數(shù)在相同的制造條件之下生產(chǎn)第三代DRAM技術時,速度容器的最小設定值可以是(1-0-0),CWL值可同于上述的產(chǎn)品規(guī)格,因此第三代DRAM技術的存取效率在尚未超頻之時就可超過以第二代DRAM技術所生產(chǎn)的超頻內(nèi)存模塊。
3T SRAM模塊的超頻性能
3T DRAM單元是首次實現(xiàn)DRAM的儲存單元,為了大幅減小IC的布局面積而發(fā)展到1T DRAM單元。筆者在當年發(fā)現(xiàn)微處理器的頻率受到DRAM的限制而嘗試以三晶體管組成SRAM,這樣的布局面積大約與3T DRAM單元相似。如果將SDRAM換成同步靜態(tài)隨機存取內(nèi)存(SSRAM),那么在存取效率上是遠高于第三代DRAM的,因為它的CWL值可達到0,在這樣的條件之下假使沒有叢發(fā)模式以及同列存取也能趨近數(shù)據(jù)傳輸接口的傳輸速度。如果使用3T SRAM模塊進行超頻,那么訪問時間會正比于晶體管的切換時間,并且溫度升高會減小切換時間,因此CL以及CWL的組態(tài)設定值不會因超頻而增加,也不必特別降溫。
總結(jié)
因為有研究報告指出DRAM 單元在讀取時會發(fā)生軟錯誤(soft error)而導致微處理器不能正常執(zhí)行程序代碼,所以要求DRAM模塊加入錯誤糾正碼(ECC)。那么有誰反向思考過這問題:在微處理器以及芯片組內(nèi)部也有許多緩存器,為何這些研究報告沒有明確指示這些緩存器也要使用ECC來減少軟錯誤呢?
在我們觀察第二代DRAM技術在單一儲存單元上進行存取操作的波形圖之后就能得知差動放大器的鑒別準位非常低,所以比那些緩存器以及SRAM單元更容易受到干擾。超頻功能可以增加微處理器的處理速度,但對于大量數(shù)據(jù)的存取效率則取決于主存儲器的技術,而那些存取性能不佳的主存儲器更容易導致微處理器發(fā)生無操作時間(NOP time)來等候存取數(shù)據(jù),因此在超頻之后有可能增加功率消耗,也難以經(jīng)由超頻功能來大幅提升對于零散數(shù)據(jù)進行處理的速度。