SDRAM與內存基礎概念(一)
即使是RDRAM,在很多方面也是與SDRAM相似的,而至于DDR與DDR-Ⅱ、QBM等形式的內存更是與SDRAM有著(zhù)緊密的聯(lián)系。
一、 SDRAM內存模組與基本結構
我們平時(shí)看到的SDRAM都是以模組形式出現,為什么要做成這種形式呢?這首先要接觸到兩個(gè)概念:物理Bank與芯片位寬。
1、 物理Bank
傳統內存系統為了保證CPU的正常工作,必須一次傳輸完CPU在一個(gè)傳輸周期內所需要的數據。而CPU在一個(gè)傳輸周期能接受的數據容量就是CPU數據總線(xiàn)的位寬,單位是bit(位)。當時(shí)控制內存與CPU之間數據交換的北橋芯片也因此將內存總線(xiàn)的數據位寬等同于CPU數據總線(xiàn)的位寬,而這個(gè)位寬就稱(chēng)之為物理Bank(Physical Bank,下文簡(jiǎn)稱(chēng)P-Bank)的位寬。所以,那時(shí)的內存必須要組織成P-Bank來(lái)與CPU打交道。資格稍老的玩家應該還記得Pentium剛上市時(shí),需要兩條72pin的SIMM才能啟動(dòng),因為一條72pin -SIMM只能提供32bit的位寬,不能滿(mǎn)足Pentium的64bit數據總線(xiàn)的需要。直到168pin-SDRAM DIMM上市后,才可以使用一條內存開(kāi)機。下面將通過(guò)芯片位寬的講述來(lái)進(jìn)一步解釋P-Bank的概念。
不過(guò)要強調一點(diǎn),P-Bank是SDRAM及以前傳統內存家族的特有概念,在RDRAM中將以通道(Channel)取代,而對于像Intel E7500那樣的并發(fā)式多通道DDR系統,傳統的P-Bank概念也不適用。
---------------------------------------------------圖片1----------------------------------------
2、 芯片位寬
上文已經(jīng)講到SDRAM內存系統必須要組成一個(gè)P-Bank的位寬,才能使CPU正常工作,那么這個(gè)P-Bank位寬怎么得到呢?這就涉及到了內存芯片的結構。
每個(gè)內存芯片也有自己的位寬,即每個(gè)傳輸周期能提供的數據量。理論上,完全可以做出一個(gè)位寬為64bit的芯片來(lái)滿(mǎn)足P-Bank的需要,但這對技術(shù)的要求很高,在成本和實(shí)用性方面也都處于劣勢。所以芯片的位寬一般都較小。臺式機市場(chǎng)所用的SDRAM芯片位寬最高也就是16bit,常見(jiàn)的則是8bit。這樣,為了組成P-Bank所需的位寬,就需要多顆芯片并聯(lián)工作。對于16bit芯片,需要4顆(4×16bit=64bit)。對于8bit芯片,則就需要8顆了。
以上就是芯片位寬、芯片數量與P-Bank的關(guān)系。P-Bank其實(shí)就是一組內存芯片的集合,這個(gè)集合的容量不限,但這個(gè)集合的總位寬必須與CPU數據位寬相符。隨著(zhù)計算機應用的發(fā)展,一個(gè)系統只有一個(gè)P-Bank已經(jīng)不能滿(mǎn)足容量的需要。所以,芯片組開(kāi)始可以支持多個(gè)P-Bank,一次選擇一個(gè)P-Bank工作,這就有了芯片組支持多少(物理)Bank的說(shuō)法。而在Intel的定義中,則稱(chēng)P-Bank為行(Row),比如845G芯片組支持4個(gè)行,也就是說(shuō)它支持4個(gè)P-Bank。另外,在一些文檔中,也把P-Bank稱(chēng)為Rank(列)。
回到開(kāi)頭的話(huà)題,DIMM是SDRAM集合形式的最終體現,每個(gè)DIMM至少包含一個(gè)P-Bank的芯片集合。在目前的DIMM標準中,每個(gè)模組最多可以包含兩個(gè)P-Bank的內存芯片集合,雖然理論上完全可以在一個(gè)DIMM上支持多個(gè)P-Bank,比如SDRAM DIMM就有4個(gè)芯片選擇信號(Chip Select,簡(jiǎn)稱(chēng)片選或CS),理論上可以控制4個(gè)P-Bank的芯片集合。只是由于某種原因而沒(méi)有這么去做。比如設計難度、制造成本、芯片組的配合等。至于DIMM的面數與P-Bank數量的關(guān)系,在2001年2月的專(zhuān)題中已經(jīng)明確了,面數≠P-Bank數,只有在知道芯片位寬的情況下,才能確定P-Bank的數量,大度256MB內存就是明顯一例,而這種情況在Registered模組中非常普遍。有關(guān)內存模組的設計,將在后面的相關(guān)章節中繼續探討。
SDRAM與內存基礎概念(二)
二、 SDRAM內存芯片的內部結構
1、邏輯Bank與芯片位寬
講完SDRAM的外在形式,就該深入了解SDRAM的內部結構了。這里主要的概念就是邏輯Bank。簡(jiǎn)單地說(shuō),SDRAM的內部是一個(gè)存儲陣列。因為如果是管道式存儲(就如排隊買(mǎi)票),就很難做到隨機訪(fǎng)問(wèn)了。
陣列就如同表格一樣,將數據“填”進(jìn)去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個(gè)行(Row),再指定一個(gè)列(Column),我們就可以準確地找到所需要的單元格,這就是內存芯片尋址的基本原理。對于內存,這個(gè)單元格可稱(chēng)為存儲單元,那么這個(gè)表格(存儲陣列)叫什么呢?它就是邏輯Bank(Logical Bank,下文簡(jiǎn)稱(chēng)L-Bank)。
---------------------------------------------------圖片2---------------------------------------------
L-Bank存儲陣列示意圖
由于技術(shù)、成本等原因,不可能只做一個(gè)全容量的L-Bank,而且最重要的是,由于SDRAM的工作原理限制,單一的L-Bank將會(huì )造成非常嚴重的尋址沖突,大幅降低內存效率(在后文中將詳細講述)。所以人們在SDRAM內部分割成多個(gè)L-Bank,較早以前是兩個(gè),目前基本都是4個(gè),這也是SDRAM規范中的最高L-Bank數量。到了RDRAM則最多達到了32個(gè),在最新DDR-Ⅱ的標準中,L-Bank的數量也提高到了8個(gè)。
這樣,在進(jìn)行尋址時(shí)就要先確定是哪個(gè)L-Bank,然后再在這個(gè)選定的L-Bank中選擇相應的行與列進(jìn)行尋址??梢?jiàn)對內存的訪(fǎng)問(wèn),一次只能是一個(gè)L-Bank工作,而每次與北橋交換的數據就是L-Bank存儲陣列中一個(gè)“存儲單元”的容量。在某些廠(chǎng)商的表述中,將L-Bank中的存儲單元稱(chēng)為Word(此處代表位的集合而不是字節的集合)。
從前文可知,SDRAM內存芯片一次傳輸率的數據量就是芯片位寬,那么這個(gè)存儲單元的容量就是芯片的位寬(也是L-Bank的位寬),但要注意,這種關(guān)系也僅對SDRAM有效,原因將在下文中說(shuō)明。
---------------------------------------------------圖片3---------------------------------------------
2、內存芯片的容量
現在我們應該清楚內存芯片的基本組織結構了。那么內存的容量怎么計算呢?顯然,內存芯片的容量就是所有L-Bank中的存儲單元的容量總合。計算有多少個(gè)存儲單元和計算表格中的單元數量的方法一樣:
存儲單元數量=行數×列數(得到一個(gè)L-Bank的存儲單元數量)×L-Bank的數量
在很多內存產(chǎn)品介紹文檔中,都會(huì )用M×W的方式來(lái)表示芯片的容量(或者說(shuō)是芯片的規格/組織結構)。M是該芯片中存儲單元的總數,單位是兆(英文簡(jiǎn)寫(xiě)M,精確值是1048576,而不是1000000),W代表每個(gè)存儲單元的容量,也就是SDRAM芯片的位寬(Width),單位是bit。計算出來(lái)的芯片容量也是以bit為單位,但用戶(hù)可以采用除以8的方法換算為字節(Byte)。比如8M×8,這是一個(gè)8bit位寬芯片,有8M個(gè)存儲單元,總容量是64Mbit(8MB)。
3、與芯片位寬相關(guān)的DIMM設計
為什么在相同的總容量下,位寬會(huì )有多種不同的設計呢?這主要是為了滿(mǎn)足不同領(lǐng)域的需要?,F在大家已經(jīng)知道P-Bank的位寬是固定的,也就是說(shuō)當芯片位寬確定下來(lái)后,一個(gè)P-Bank中芯片的個(gè)數也就自然確定了,而前文講過(guò)P-Bank對芯片集合的位寬有要求,對芯片集合的容量則沒(méi)有任何限制。高位寬的芯片可以讓DIMM的設計簡(jiǎn)單一些(因為所用的芯片少),但在芯片容量相同時(shí),這種DIMM的容量就肯定比不上采用低位寬芯片的模組,因為后者在一個(gè)P-Bank中可以容納更多的芯片。比如上文中那個(gè)內存芯片容量標識圖,容量都是128Mbit,合16MB。如果DIMM采用雙P-Bank+16bit芯片設計,那么只能容納8顆芯片,計128MB。但如果采用4bit位寬芯片,則可容納32顆芯片,計512MB。DIMM容量前后相差出4倍,可見(jiàn)芯片位寬對DIMM設計的重要性。因此,8bit位寬芯片是桌面臺式機上容量與成本之間平衡性較好的選擇,所以在市場(chǎng)上也最為普及,而高于16bit位寬的芯片一般用在需要更大位寬的場(chǎng)合,如顯卡等,至于4bit位寬芯片很明顯非常適用于大容量?jì)却鎽妙I(lǐng)域,基本不會(huì )在標準的Unbuffered 模組設計中出現。
SDRAM與內存基礎概念(三)
三、 SDRAM的引腳與封裝
內存芯片要想工作,必須要與內存控制器有所聯(lián)系,同時(shí)對于一個(gè)電氣元件,電源供應也是必不可少的,而且數據的傳輸要有一個(gè)時(shí)鐘作為觸發(fā)參考。因此,SDRAM在封裝時(shí)就要留出相應的引腳以供使用。電源與時(shí)鐘的引腳就不必多說(shuō)了,現在我們可以想象一下,至少應該有哪些控制引腳呢?
我們從內存尋址的步驟縷下來(lái)就基本明白了,從中我們也就能了解內存工作的大體情況。這里需要說(shuō)明的是,與DIMM一樣,SDRAM有著(zhù)自己的業(yè)界設計規范,在一個(gè)容量標準下,SDRAM的引腳/信號標準不能只考慮一種位寬的設計,而是要顧及多種位寬,然后盡量給出一個(gè)通用的標準,小位寬的芯片也許會(huì )空出一些引腳,但高位寬的芯片可能就全部用上了。不過(guò)容量不同時(shí),設計標準也會(huì )有所不同,一般的容量越小的芯片所需要的引腳也就越小。
1、 首先,我們知道內存控制器要先確定一個(gè)P-Bank的芯片集合,然后才對這集合中的芯片進(jìn)行尋址操作。因此要有一個(gè)片選的信號,它一次選擇一個(gè)P-Bank的芯片集(根據位寬的不同,數量也不同)。被選中的芯片將同時(shí)接收或讀取數據,所以要有一個(gè)片選信號。
2、 接下來(lái)是對所有被選中的芯片進(jìn)行統一的L-Bank的尋址,目前SDRAM中L-Bank的數量最高為4個(gè),所以需要兩個(gè)L-Bank地址信號(22=4)。
3、 最后就是對被選中的芯片進(jìn)行統一的行/列(存儲單元)尋址。地址線(xiàn)數量要根據芯片的組織結構分別設計了。但在相同容量下,行數不變,只有列數會(huì )根據位寬的而變化,位寬越大,列數越少,因為所需的存儲單元減少了。
4、 找到了存儲單元后,被選中的芯片就要進(jìn)行統一的數據傳輸,那么肯定要有與位寬相同數量的數據I/O通道才行,所以肯定要有相應數量的數據線(xiàn)引腳。
SDRAM與內存基礎概念(四)
四、SDRAM的內部基本操作與工作時(shí)序
上文我們已經(jīng)了解了SDRAM所用到的基本信號線(xiàn)路,下面就看看它們在SDRAM芯片內部是怎么“布置”的,并從這里開(kāi)始深入了解內存的基本操作與過(guò)程,在這一節中我們將接觸到有天書(shū)之稱(chēng)的時(shí)序圖,但不要害怕,根據文中的指導慢慢理解,您肯定可以看懂它。首先,我們先認識一下SDRAM的內部結構,然后再開(kāi)始具體的講述。
---------------------------------------------------圖片4---------------------------------------------
128Mbit(32M×4)SDRAM內部結構圖
1、芯片初始化
可能很多人都想象不到,在SDRAM芯片內部還有一個(gè)邏輯控制單元,并且有一個(gè)模式寄存器為其提供控制參數。因此,每次開(kāi)機時(shí)SDRAM都要先對這個(gè)控制邏輯核心進(jìn)行初始化。有關(guān)預充電和刷新的含義在下文有講述,關(guān)鍵的階段就在于模式寄存器(MR,Mode Register)的設置,簡(jiǎn)稱(chēng)MRS(MR Set),這一工作由北橋芯片在BIOS的控制下進(jìn)行,寄存器的信息由地址線(xiàn)來(lái)提供。
SDRAM的結構、時(shí)序與性能的關(guān)系(上)
在講完SDRAM的基本工作原理和主要操作之后,我們現在要重要分析一下SDRAM的時(shí)序與性能之間的關(guān)系,它不在局限于芯片本身,而是從整體的內存系統去分析。這也是廣大DIYer所關(guān)心的話(huà)題。比如CL值對性能的影響有多大幾乎是每個(gè)內存論壇都會(huì )有討論,今天我們就詳細探討一下,其中的很多內容同樣適用于DDR與RDRAM。這里需要強調一點(diǎn),對于內存系統整體而言,一次內存訪(fǎng)問(wèn)就是對一個(gè)頁(yè)的訪(fǎng)問(wèn),這個(gè)頁(yè)的定義已經(jīng)在解釋Full Page含義時(shí)講明了。由于在P-Bank中,每個(gè)芯片的尋址都是一樣的,所以可以將頁(yè)訪(fǎng)問(wèn)“濃縮”等效為對每芯片中指定行的訪(fǎng)問(wèn),這樣可能比較好理解。但為了與官方標準統一,在下文中會(huì )經(jīng)常用頁(yè)來(lái)描述相關(guān)的內容,請讀者注意理解。
一、影響性能的主要時(shí)序參數
所謂的影響性能是并不是指SDRAM的帶寬,頻率與位寬固定后,帶寬也就不可更改了。但這是理想的情況,在內存的工作周期內,不可能總處于數據傳輸的狀態(tài),因為要有命令、尋址等必要的過(guò)程。但這些操作占用的時(shí)間越短,內存工作的效率越高,性能也就越好。
非數據傳輸時(shí)間的主要組成部分就是各種延遲與潛伏期。通過(guò)上文的講述,大家應該很明顯看出有三個(gè)參數對內存的性能影響至關(guān)重要,它們是tRCD、CL和tRP。每條正規的內存模組都會(huì )在標識上注明這三個(gè)參數值,可見(jiàn)它們對性能的敏感性。
以?xún)却孀钪饕牟僮鳌x取為例。tRCD決定了行尋址(有效)至列尋址(讀/寫(xiě)命令)之間的間隔,CL決定了列尋址到數據進(jìn)行真正被讀取所花費的時(shí)間,tRP則決定了相同L-Bank中不同工作行轉換的速度?,F在可以想象一下讀取時(shí)可能遇到的幾種情況(分析寫(xiě)入操作時(shí)不用考慮CL即可):
1、要尋址的行與L-Bank是空閑的。也就是說(shuō)該L-Bank的所有行是關(guān)閉的,此時(shí)可直接發(fā)送行有效命令,數據讀取前的總耗時(shí)為tRCD+CL,這種情況我們稱(chēng)之為頁(yè)命中(PH,Page Hit)。
2、要尋址的行正好是前一個(gè)操作的工作行,也就是說(shuō)要尋址的行已經(jīng)處于選通有效狀態(tài),此時(shí)可直接發(fā)送列尋址命令,數據讀取前的總耗時(shí)僅為CL,這就是所謂的背靠背(Back to Back)尋址,我們稱(chēng)之為頁(yè)快速命中(PFH,Page Fast Hit)或頁(yè)直接命中(PDH,Page Direct Hit)。
3、要尋址的行所在的L-Bank中已經(jīng)有一個(gè)行處于活動(dòng)狀態(tài)(未關(guān)閉),這種現象就被稱(chēng)作尋址沖突,此時(shí)就必須要進(jìn)行預充電來(lái)關(guān)閉工作行,再對新行發(fā)送行有效命令。結果,總耗時(shí)就是tRP+tRCD+CL,這種情況我們稱(chēng)之為頁(yè)錯失(PM,Page Miss)。
顯然,PFH是最理想的尋址情況,PM則是最糟糕的尋址情況。上述三種情況發(fā)生的機率各自簡(jiǎn)稱(chēng)為PHR——PH Rate、PFDR——PFH Rate、PMR——PM Rate。因此,系統設計人員(包括內存與北橋芯片)都盡量想提高PHR與PFHR,同時(shí)減少PMR,以達到提高內存工作效率的目的。
二、增加PHR的方法
顯然,這與預充電管理策略有著(zhù)直接的關(guān)系,目前有兩種方法來(lái)盡量提高PHR。自動(dòng)預充電技術(shù)就是其中之一,它自動(dòng)的在每次行操作之后進(jìn)行預充電,從而減少了日后對同一L-Bank不同行尋址時(shí)發(fā)生沖突的可能性。但是,如果要在當前行工作完成后馬上打開(kāi)同一L-Bank的另一行工作時(shí),仍然存在tRP的延遲。怎么辦? 此時(shí)就需要L-Bank交錯預充電了。
VIA的4路交錯式內存控制就是在一個(gè)L-Bank工作時(shí),對下一個(gè)要工作的L-Bank進(jìn)行預充電。這樣,預充電與數據的傳輸交錯執行,當訪(fǎng)問(wèn)下一個(gè)L-Bank時(shí),tRP已過(guò),就可以直接進(jìn)入行有效狀態(tài)了。目前VIA聲稱(chēng)可以跨P-Bank進(jìn)行16路內存交錯,并以L(fǎng)RU算法進(jìn)行預充電管理。
有關(guān)L-Bank交錯預充電(存?。┑木唧w執行在本刊2001年第2期已有詳細介紹,這里就不再重復了。
L-Bank交錯自動(dòng)預充電/讀取時(shí)序圖:L-Bank 0與L-Bank 3實(shí)現了無(wú)間隔交錯讀取,避免了tRP對性能的影響
三、增加PFHR的方法
無(wú)論是自動(dòng)預充電還是交錯工作的方法都無(wú)法消除tRCD所帶來(lái)的延遲。要解決這個(gè)問(wèn)題,就要盡量讓一個(gè)工作行在進(jìn)行預充電前盡可能多的接收多個(gè)工作命令,以達到背靠背的效果,此時(shí)就只剩下CL所造成的讀取延遲了(寫(xiě)入時(shí)沒(méi)有延遲)。
如何做到這一點(diǎn)呢?這就是北橋芯片的責任了。在上文的時(shí)序圖中有一個(gè)參數tRAS(Active to Precharge Command,行有效至預充電命令間隔周期)。它有一個(gè)范圍,對于PC133標準,一般是預充電命令至少要在行有效命令5個(gè)時(shí)鐘周期之后發(fā)出,最長(cháng)間隔視芯片而異(基本在120000ns左右),否則工作行的數據將有丟失的危險。那么這也就意味著(zhù)一個(gè)工作行從有效(選通)開(kāi)始,可以有120000ns的持續工作時(shí)間而不用進(jìn)行預充電。顯然,只要北橋芯片不發(fā)出預充電(包括允許自動(dòng)預充電)的命令,行打開(kāi)的狀態(tài)就會(huì )一直保持。在此期間的對該行的任何讀寫(xiě)操作也就不會(huì )有tRCD的延遲??梢?jiàn),如果北橋芯片在能同時(shí)打開(kāi)的行(頁(yè))越多,那么PFHR也就越大。需要強調的是,這里的同時(shí)打開(kāi)不是指對多行同時(shí)尋址(那是不可能的),而是指多行同時(shí)處于選通狀態(tài)。我們可以看到一些SDRAM芯片組的資料中會(huì )指出可以同時(shí)打開(kāi)多少個(gè)頁(yè)的指標,這可以說(shuō)是決定其內存性能的一個(gè)重要因素。
但是,可同時(shí)打開(kāi)的頁(yè)數也是有限制的。從SDRAM的尋址原理講,同一L-Bank中不可能有兩個(gè)打開(kāi)的行(S-AMP只能為一行服務(wù)),這就限制了可同時(shí)打開(kāi)的頁(yè)面總數。以SDRAM有4個(gè)L-Bank,北橋最多支持8個(gè)P-Bank為例,理論上最多只能有32個(gè)頁(yè)面能同時(shí)處于打開(kāi)的狀態(tài)。而如果只有一個(gè)P-Bank,那么就只剩下8個(gè)頁(yè)面,因為有幾個(gè)L-Bank才能有同時(shí)打開(kāi)幾個(gè)行而互不干擾。Intel 845的MHC雖然可以支持24個(gè)打開(kāi)的頁(yè)面,那也是指6個(gè)P-Bank的情況下(845MCH只支持6個(gè)P-Bank)??梢?jiàn)845已經(jīng)將同時(shí)打開(kāi)頁(yè)數發(fā)揮到了極致。
不過(guò),同時(shí)打開(kāi)頁(yè)數多了,也對存取策略提出了一定的要求。理論上,要盡量多地使用已打開(kāi)的頁(yè)來(lái)保證最短的延遲周期,只有在數據不存在(讀取時(shí))或頁(yè)存滿(mǎn)了(寫(xiě)入時(shí))再考慮打開(kāi)新的指定頁(yè),這也就是變向的連續讀/寫(xiě)。而打開(kāi)新頁(yè)時(shí)就必須要關(guān)閉一個(gè)打開(kāi)的頁(yè),如果此時(shí)打開(kāi)的頁(yè)面已是北橋所支持的最大值但還不到理論極限的話(huà),就需要一個(gè)替換策略,一般都是用LRU算法來(lái)進(jìn)行,這與VIA的交錯控制大同小異。
SDRAM的結構、時(shí)序與性能的關(guān)系(下)
四、內存結構對PHR的影響
這是結構設計上的問(wèn)題,所以單獨來(lái)說(shuō)。在我們介紹L-Bank時(shí),曾經(jīng)提到單一的L-Bank會(huì )造成嚴重的尋址沖突?,F在,當我們了解了內存尋址的原理后,就不難理解這句話(huà)了。如果只有一個(gè)L-Bank,那么除非是背靠背式的操作(PFH),否則tRP、tRCD、CL(讀取時(shí))一個(gè)也少不了。
上文中,內存交錯之所以能實(shí)現就是因為有多個(gè)L-Bank,從這點(diǎn)就可以看出L-Bank數量與頁(yè)命中率之間的關(guān)系了。PHR基本上可以等于“(L-Bank數-1)/L-Bank數”。
SDRAM有4個(gè)L-Bank,那么頁(yè)命中率就是75%,DDR-Ⅱ SDRAM最多將有8個(gè)L-Bank,PHR最高為87.5%。而RDRAM則最多有32個(gè)L-Bank,PHR到了驚人的96.875%,這也是當時(shí)RDRAM攻擊SDRAM的一主要方面。
不過(guò),從內存的結構圖上可以看出,L-Bank多了,相應外圍輔助的元件也要增加,比如S-AMP,L-Bank地址線(xiàn)等等。在RDRAM的介紹中,我會(huì )講到L-Bank數量增多后所帶來(lái)的一些新問(wèn)題。
五、讀/寫(xiě)延遲不同對性能所造成的影響
SDRAM在讀取操作時(shí)會(huì )有CL造成的延遲,而在寫(xiě)入時(shí)則是0延遲。這樣,在讀操作之后馬上進(jìn)行寫(xiě)操作的話(huà),由于沒(méi)有寫(xiě)延遲,數據線(xiàn)不會(huì )出現空閑的時(shí)候,保證了數據總線(xiàn)的利用率。但是,若在寫(xiě)操作之后馬上進(jìn)行讀操作的話(huà),即使是背靠背式進(jìn)行,仍然會(huì )由于tWR與CL的存在而造成間隔,這期間數據總線(xiàn)將是空閑的,利用率受到了影響。
在先寫(xiě)后讀的操作中,由于保證寫(xiě)入的可靠性,讀取命令在tWR之后發(fā)出,并再經(jīng)過(guò)CL才能輸出數據,本例中CL=3,造成了兩個(gè)時(shí)鐘周期的總線(xiàn)空閑
這里需要著(zhù)重說(shuō)明一下,在突發(fā)讀取過(guò)程中,想立刻中斷并進(jìn)行新的讀操作,和讀后讀模式(見(jiàn)“突發(fā)連續讀取模式圖”)一樣,只是新的讀命令根據需要提前若干個(gè)周期發(fā)出,經(jīng)過(guò)CL后就會(huì )自動(dòng)傳輸新的數據。但是,若想中斷讀后立即進(jìn)行寫(xiě)操作,就需要數據掩碼(DQM)來(lái)屏蔽寫(xiě)入命令發(fā)出時(shí)的數據輸出,避免總線(xiàn)沖突。根據芯片設計的不同,有時(shí)可能會(huì )浪費一個(gè)周期進(jìn)行總線(xiàn)I/O的調轉,此時(shí)一個(gè)周期的總線(xiàn)空閑也是不可避免的。
突發(fā)讀后寫(xiě)時(shí)的操作,以本圖為例,在最后一個(gè)所需數據(本例為第一筆數據)輸出前一個(gè)周期使DQM有效,屏蔽第二筆數據的輸出;2、發(fā)出寫(xiě)入命令,此時(shí)所讀取的第二筆數據被屏蔽。3、繼續DQM以屏蔽第三筆數據的輸出。其中tHZ表示輸出數據與外部電路的連接周期,tDS表示數據輸入準備時(shí)間,如果tHZ+tDS>tCK,那么寫(xiě)入操作就要延后一個(gè)周期,這要視芯片的具體設計而定
六、BL對性能的影響
從讀/寫(xiě)之間的中斷操作我們又引出了BL(突發(fā)長(cháng)度)對性能影響的話(huà)題。首先,BL的長(cháng)短與其應用的領(lǐng)域有著(zhù)很大關(guān)系,下表就是目前三個(gè)主要的內存應用領(lǐng)域所使用的BL,這是廠(chǎng)商們經(jīng)過(guò)多年的實(shí)踐總結出來(lái)的。
BL與相應的工作領(lǐng)域
BL越長(cháng),對于連續的大數據量傳輸很有好處,但是對零散的數據,BL太長(cháng)反而會(huì )造成總線(xiàn)周期的浪費。以P-Bank位寬64bit為例,BL=4時(shí),一個(gè)突發(fā)操作能傳輸32字節的數據,但如果只需要前16個(gè)字節,后兩個(gè)周期是無(wú)效的。如果需要40字節,需要再多進(jìn)行一次突發(fā)傳輸,但實(shí)際只需要一個(gè)傳輸周期就夠了,從而浪費了三個(gè)傳輸周期。而對于2KB的數據,BL=4的設置意味著(zhù)要每隔4個(gè)周期發(fā)送新的列地址,并重復63次。而對于BL=256,一次突發(fā)就可完成,并且不需要中途再進(jìn)行控制。不少人都因此表示了BL設定對性能影響的擔心。
但設計人員也不是傻瓜,通過(guò)上文的介紹,可以看出他們在這方面的考慮。通過(guò)寫(xiě)命令、DQM、讀命令的配合/操作,完全可以任意地中斷突發(fā)周期開(kāi)始新的操作,而且DQM還可以幫我們在BL中選擇有用的數據,從而最大限度降低突發(fā)傳輸對性能帶來(lái)的影響。另外,預充電命令與專(zhuān)用的突發(fā)傳輸終止命令都可以用來(lái)中斷BL,前者在中斷后進(jìn)行預充電,后者在中斷后不進(jìn)行其他讀/寫(xiě)操作。
專(zhuān)用的突發(fā)停止命令可用來(lái)中斷突發(fā)讀取,其生效潛伏期與CL相同。對于寫(xiě)入則立即有效
用預充電命令來(lái)中斷突發(fā)讀取,生效潛伏期與CL相同,要小于或等于tRP。寫(xiě)入時(shí)預充電在最后一個(gè)有效寫(xiě)入周期完成,并經(jīng)過(guò)tWR之后發(fā)出,同時(shí)立即中斷突發(fā)傳輸
所以,突發(fā)周期的中斷并不難,但用短BL應付大數據量存取需要不斷的指令與列尋址配合,而為了取消不需要的傳輸周期,由于需要運用額外的控制,也將占用不少的控制資源。所以BL針對不同應用領(lǐng)域有不同設計的主要目的,就是在保證性能的同時(shí),系統控制資源也能得到合理的運用。