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