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