自20世紀(jì)90年代中期以來(lái),內(nèi)存技術(shù)大多根據(jù)其運(yùn)行速度來(lái)命名。 PC100 SDRAM設(shè)備將以100MHz數(shù)據(jù)速率運(yùn)行,PC133以133MHz數(shù)據(jù)速率運(yùn)行,依此類(lèi)推。雖然這種品牌推廣慣例的變化隨著時(shí)間的推移而發(fā)生變化,但大多數(shù)都讓潛在買(mǎi)家了解存儲(chǔ)設(shè)備的運(yùn)行速度。
簡(jiǎn)單地說(shuō),大多數(shù)存儲(chǔ)器技術(shù),實(shí)際上是當(dāng)今所有的主流存儲(chǔ)器技術(shù),已經(jīng)為自己打上了峰值數(shù)據(jù)速率,這一直是并將繼續(xù)成為計(jì)算時(shí)的最重要因素之一。記憶系統(tǒng)的性能。然而,在真實(shí)系統(tǒng)中運(yùn)行的存儲(chǔ)器設(shè)備在100%的時(shí)間內(nèi)不以其峰值數(shù)據(jù)速率運(yùn)行。
從寫(xiě)入切換到讀取,在特定時(shí)間訪問(wèn)某些地址以及刷新數(shù)據(jù)都需要在數(shù)據(jù)總線上保持一定的不活動(dòng)狀態(tài),從而無(wú)法充分利用內(nèi)存通道。另外,寬并行總線和DRAM核心預(yù)取都經(jīng)常導(dǎo)致不必要的大數(shù)據(jù)訪問(wèn)。
內(nèi)存控制器在給定時(shí)間內(nèi)可以訪問(wèn)的可用數(shù)據(jù)量稱為有效數(shù)據(jù)速率,并且高度依賴于系統(tǒng)的特定應(yīng)用程序。有效數(shù)據(jù)速率隨時(shí)間變化,通常遠(yuǎn)低于峰值數(shù)據(jù)速率。在某些系統(tǒng)中,有效數(shù)據(jù)速率可降至峰值數(shù)據(jù)速率的10%以下。
通常,這些系統(tǒng)可以從內(nèi)存技術(shù)的變化中受益,從而產(chǎn)生更高的有效數(shù)據(jù)速率。在CPU的產(chǎn)品領(lǐng)域也存在類(lèi)似的現(xiàn)象,近年來(lái)AMD和Transmeta等公司表明,在測(cè)量基于CPU的系統(tǒng)的性能時(shí),時(shí)鐘頻率并不是唯一重要的因素。
內(nèi)存技術(shù)也已經(jīng)成熟到高峰和有效數(shù)據(jù)速率可能與之前不匹配的程度。雖然峰值數(shù)據(jù)速率仍然是存儲(chǔ)器技術(shù)的最重要參數(shù)之一,但是其他架構(gòu)參數(shù)可以極大地影響存儲(chǔ)器系統(tǒng)的性能。
影響有效數(shù)據(jù)速率的參數(shù)
有幾類(lèi)參數(shù)影響有效數(shù)據(jù)速率,其中一類(lèi)會(huì)導(dǎo)致不活動(dòng)時(shí)間段到數(shù)據(jù)總線上。在這個(gè)類(lèi)中的參數(shù)中,總線周轉(zhuǎn),行周期時(shí)間,CAS延遲和RAS到CAS延遲(tRCD)導(dǎo)致許多系統(tǒng)架構(gòu)師的大多數(shù)延遲問(wèn)題。
總線周轉(zhuǎn)本身會(huì)在數(shù)據(jù)通道上造成很長(zhǎng)時(shí)間的不活動(dòng)。以GDDR3系統(tǒng)為例,該系統(tǒng)不斷將數(shù)據(jù)寫(xiě)入存儲(chǔ)設(shè)備的打開(kāi)頁(yè)面。在此期間,存儲(chǔ)系統(tǒng)的有效數(shù)據(jù)速率與其峰值數(shù)據(jù)速率相匹配。
但是,現(xiàn)在假設(shè)在100個(gè)時(shí)鐘周期內(nèi),存儲(chǔ)器控制器從讀取切換到寫(xiě)入。由于此開(kāi)關(guān)的懲罰是六個(gè)周期,因此有效數(shù)據(jù)速率降至峰值數(shù)據(jù)速率的94%。如果在這100個(gè)周期內(nèi),存儲(chǔ)器控制器將總線從寫(xiě)入切換回讀取,則會(huì)丟失更多周期。
這種內(nèi)存技術(shù)在從寫(xiě)入切換到讀取時(shí)需要15個(gè)空閑周期,進(jìn)一步將有效數(shù)據(jù)速率降低到峰值數(shù)據(jù)速率的79%。表1顯示了幾種高性能存儲(chǔ)器技術(shù)的相同計(jì)算結(jié)果。
表1 - 兩個(gè)總線轉(zhuǎn)向的有效和峰值數(shù)據(jù)速率-counds每100個(gè)周期
顯然,所有的內(nèi)存技術(shù)都不是平等的。需要許多總線周轉(zhuǎn)的系統(tǒng)設(shè)計(jì)人員可以從選擇XDR,RDRAM或DDR2等更高效的技術(shù)中受益。另一方面,如果系統(tǒng)可以將事務(wù)分組為非常長(zhǎng)的寫(xiě)入和讀取序列,則總線轉(zhuǎn)向?qū)τ行挼挠绊懽钚 5?,其他延遲增加現(xiàn)象(如銀行沖突)可能會(huì)通過(guò)降低有效帶寬對(duì)其性能產(chǎn)生負(fù)面影響。
DRAM技術(shù)都要求銀行的頁(yè)面或行在訪問(wèn)之前打開(kāi)。一旦打開(kāi),在經(jīng)過(guò)稱為行周期時(shí)間(tRC)的最小時(shí)間段之前,不能打開(kāi)同一存儲(chǔ)體中的不同頁(yè)面。對(duì)開(kāi)放銀行的不同頁(yè)面的存儲(chǔ)器訪問(wèn)被稱為頁(yè)面未命中,并且可能導(dǎo)致與tRC間隔的任何未滿足部分相關(guān)聯(lián)的延遲懲罰。
對(duì)于尚未開(kāi)放足夠周期以滿足tRC間隔的銀行的頁(yè)面未命中被稱為銀行沖突。雖然tRC確定了銀行沖突延遲的大小,但是在給定DRAM中可用的銀行將直接影響銀行沖突發(fā)生的頻率。
大多數(shù)存儲(chǔ)器技術(shù)有四個(gè)或八個(gè)存儲(chǔ)體,并且在幾十個(gè)周期內(nèi)具有tRC值。在隨機(jī)工作負(fù)載下,具有八個(gè)存儲(chǔ)區(qū)核心的存儲(chǔ)庫(kù)沖突將比具有四個(gè)存儲(chǔ)區(qū)核心的存儲(chǔ)體沖突更少。雖然tRC和銀行計(jì)數(shù)之間的相互作用很復(fù)雜,但它們的累積影響可以通過(guò)多種方式量化。
內(nèi)存讀取事務(wù)
考慮三種簡(jiǎn)單的內(nèi)存讀取事務(wù)。在第一種情況下,內(nèi)存控制器發(fā)出每個(gè)事務(wù),以便它與先前事務(wù)產(chǎn)生存儲(chǔ)沖突??刂破鞅仨氃诖蜷_(kāi)頁(yè)面和打開(kāi)后續(xù)頁(yè)面之間等待一段時(shí)間tRC,從而增加與循環(huán)頁(yè)面相關(guān)的最大延遲時(shí)間。在這種情況下,有效數(shù)據(jù)速率很大程度上與I/O無(wú)關(guān),主要受DRAM核心電路的限制。在當(dāng)今最高端的內(nèi)存技術(shù)中,最大銀行沖突率將有效帶寬降低到峰值的20%到30%之間。
在第二種情況下,每個(gè)事務(wù)都以一個(gè)隨機(jī)生成的地址為目標(biāo)。在這里,遇到銀行沖突的可能性取決于許多因素,包括tRC與存儲(chǔ)器核心中存儲(chǔ)體數(shù)量的相互作用。 tRC值越小,開(kāi)放頁(yè)面越早循環(huán),導(dǎo)致銀行沖突處罰越低。此外,存儲(chǔ)器技術(shù)具有的存儲(chǔ)體越多,存儲(chǔ)體隨機(jī)地址訪問(wèn)沖突的可能性就越低。
在第三種情況下,每個(gè)事務(wù)都是頁(yè)面命中,在打開(kāi)的頁(yè)面中尋址各種列地址。控制器不需要訪問(wèn)封閉頁(yè)面,允許100%的總線利用率,從而實(shí)現(xiàn)有效數(shù)據(jù)速率等于峰值數(shù)據(jù)速率的理想情況。
雖然第一和第三種情況涉及相當(dāng)簡(jiǎn)單的計(jì)算,但隨機(jī)情況受到DRAM或存儲(chǔ)器接口中未特別包含的其他功能的影響。內(nèi)存控制器仲裁和排隊(duì)可以大大提高銀行沖突率,因?yàn)榭梢园l(fā)出更多可能的非沖突事務(wù)而不是那些導(dǎo)致銀行沖突的事務(wù)。
但是,添加內(nèi)存隊(duì)列深度并不一定會(huì)增加兩種不同內(nèi)存技術(shù)之間的相對(duì)有效數(shù)據(jù)速率。例如,即使增加了內(nèi)存控制器隊(duì)列深度,XDR的有效數(shù)據(jù)速率也比GDDR3高20%。這種差異的存在主要是由于XDR的銀行數(shù)量較多且tRC值較低。通常,較短的tRC間隔,較高的存儲(chǔ)體計(jì)數(shù)和較大的控制器隊(duì)列會(huì)導(dǎo)致較高的有效帶寬。
許多限制效率的現(xiàn)象實(shí)際上是與行訪問(wèn)粒度相關(guān)的問(wèn)題。 tRC約束基本上要求內(nèi)存控制器從新打開(kāi)的行訪問(wèn)一定數(shù)量的數(shù)據(jù),以確保數(shù)據(jù)管道保持滿員。實(shí)質(zhì)上,為了保持?jǐn)?shù)據(jù)總線不間斷運(yùn)行,打開(kāi)一行后必須讀取最少量的數(shù)據(jù),即使不需要額外的數(shù)據(jù)。
降低內(nèi)存系統(tǒng)有效帶寬的另一類(lèi)主要特性屬于列訪問(wèn)粒度類(lèi)別,它決定了每個(gè)單獨(dú)的讀寫(xiě)操作必須傳輸多少數(shù)據(jù)。相反,行訪問(wèn)粒度決定了每行激活需要多少單獨(dú)的讀寫(xiě)操作(通常稱為每個(gè)RAS的CAS操作)。
列訪問(wèn)粒度也可能對(duì)有效數(shù)據(jù)速率產(chǎn)生很大的影響,但影響較小。由于它規(guī)定了單次讀取或?qū)懭胫袀鬏數(shù)淖钚?shù)據(jù)量,因此列訪問(wèn)粒度對(duì)通常一次只需要少量數(shù)據(jù)的系統(tǒng)造成問(wèn)題。例如,一個(gè)16字節(jié)訪問(wèn)粒度的系統(tǒng),每?jī)尚行枰?個(gè)字節(jié),必須讀取總共32個(gè)字節(jié)才能訪問(wèn)這兩個(gè)位置。
由于只需要32個(gè)字節(jié)中的16個(gè),系統(tǒng)經(jīng)歷了有效數(shù)據(jù)速率降低,相當(dāng)于其峰值數(shù)據(jù)速率的50%。兩個(gè)體系結(jié)構(gòu)參數(shù)決定了內(nèi)存系統(tǒng)的訪問(wèn)粒度:總線寬度和突發(fā)長(zhǎng)度。
總線寬度是指連接在內(nèi)存控制器和內(nèi)存設(shè)備之間的數(shù)據(jù)跟蹤總數(shù)。它設(shè)置了最小訪問(wèn)粒度,因?yàn)槊總€(gè)數(shù)據(jù)跟蹤必須為給定的內(nèi)存事務(wù)攜帶至少一位數(shù)據(jù)。反過(guò)來(lái),突發(fā)長(zhǎng)度指定每個(gè)通道必須為給定事務(wù)攜帶的位數(shù)。每個(gè)事務(wù)每個(gè)數(shù)據(jù)跟蹤發(fā)送一位數(shù)據(jù)的存儲(chǔ)器技術(shù)據(jù)說(shuō)具有一個(gè)突發(fā)長(zhǎng)度??偭性L問(wèn)粒度很簡(jiǎn)單:
列訪問(wèn)粒度=總線寬度x突發(fā)長(zhǎng)度
許多系統(tǒng)架構(gòu)師僅通過(guò)添加來(lái)增加內(nèi)存系統(tǒng)的可用帶寬更多的DRAM設(shè)備和增加內(nèi)存總線的寬度。畢竟,如果400MHz數(shù)據(jù)速率的四個(gè)鏈路為您提供1.6GHz的總峰值帶寬,則八個(gè)鏈路將為您提供3.2GHz。添加DRAM設(shè)備,電路板上的更多跡線以及ASIC上的相應(yīng)引腳使總聚合峰值帶寬加倍。
表2顯示了使用不同內(nèi)存技術(shù)和總線寬度可實(shí)現(xiàn)的總聚合峰值帶寬以及每種配置所需的總控制器引腳數(shù)。
表2 各種存儲(chǔ)器技術(shù)和總線寬度的總峰值帶寬以及所需的控制器引腳數(shù)
然而,此增益是有代價(jià)的。首先,主要關(guān)注擠出每一盎司峰值帶寬的架構(gòu)師已經(jīng)達(dá)到了他們?cè)谖锢砩显O(shè)計(jì)其內(nèi)存總線的寬度的可行最大值。找到具有256或甚至512位寬存儲(chǔ)器總線的圖形控制器并不罕見(jiàn),這些存儲(chǔ)器總線需要1,000個(gè)或更多控制器引腳。
封裝設(shè)計(jì)人員,ASIC布局規(guī)劃人員和電路板設(shè)計(jì)人員無(wú)法找到要布線的區(qū)域這些信號(hào)使用廉價(jià)的,商業(yè)上可行的手段。僅增加總線寬度以獲得更高的峰值數(shù)據(jù)速率的另一個(gè)問(wèn)題導(dǎo)致從列訪問(wèn)粒度限制減少的有效帶寬。
假設(shè)特定存儲(chǔ)器技術(shù)的突發(fā)長(zhǎng)度等于1,則對(duì)于單個(gè)存儲(chǔ)器事務(wù),512位寬系統(tǒng)的訪問(wèn)粒度為512位(或64字節(jié))。如果控制器只需要較小塊的數(shù)據(jù),則會(huì)浪費(fèi)剩余數(shù)據(jù),從而降低系統(tǒng)的有效數(shù)據(jù)速率。
例如,一個(gè)控制器只需要來(lái)自前面提到的內(nèi)存系統(tǒng)的32字節(jié)數(shù)據(jù)將浪費(fèi)剩余的32個(gè)字節(jié),導(dǎo)致有效數(shù)據(jù)速率等于峰值數(shù)據(jù)速率的50%。請(qǐng)記住,這些計(jì)算都假定突發(fā)長(zhǎng)度為1。隨著存儲(chǔ)器接口數(shù)據(jù)速率的增加趨勢(shì),大多數(shù)新技術(shù)的最小突發(fā)長(zhǎng)度大于1。
核心預(yù)取
稱為核心預(yù)取的功能主要負(fù)責(zé)最小突發(fā)長(zhǎng)度的增加。 DRAM核心電路無(wú)法跟上I/O電路速度的急劇增加。由于無(wú)法再?gòu)膬?nèi)核串行獲取數(shù)據(jù)以滿足控制器請(qǐng)求,因此內(nèi)核通常會(huì)為I/O提供遠(yuǎn)大于DRAM總線寬度的數(shù)據(jù)集。
本質(zhì)上,核心向接口電路傳輸足夠的數(shù)據(jù)以使其保持足夠長(zhǎng)的時(shí)間以使核心為下一個(gè)操作做好準(zhǔn)備。例如,假設(shè)DRAM核心只能每納秒響應(yīng)一次操作。但是,該接口可以維持每納秒兩位的數(shù)據(jù)速率。
DRAM內(nèi)核不是浪費(fèi)接口的一半功能,而是每次操作取兩個(gè)位而不是一個(gè)。在接口傳輸數(shù)據(jù)之后,核心已準(zhǔn)備好響應(yīng)下一個(gè)請(qǐng)求而沒(méi)有任何延遲。添加的核心預(yù)取導(dǎo)致最小突發(fā)長(zhǎng)度增加2,并將直接影響列訪問(wèn)粒度。
對(duì)于添加到總線寬度的每個(gè)附加信號(hào),存儲(chǔ)器接口將傳輸另外兩位數(shù)據(jù)。因此,最小突發(fā)長(zhǎng)度為2的512位寬存儲(chǔ)器系統(tǒng)的訪問(wèn)粒度等于1,024位(128字節(jié))。許多系統(tǒng)對(duì)最小訪問(wèn)粒度問(wèn)題不敏感,因?yàn)樗鼈円苑浅4蟮膲K訪問(wèn)數(shù)據(jù)。但是,有些系統(tǒng)依靠?jī)?nèi)存系統(tǒng)來(lái)提供小型數(shù)據(jù)單元,并從使用更窄,更高效的內(nèi)存技術(shù)中受益。
表3 當(dāng)今主流內(nèi)存技術(shù)的單個(gè)內(nèi)存通道的訪問(wèn)粒度和總線寬度值
結(jié)論
有效數(shù)據(jù)速率變得越來(lái)越重要存儲(chǔ)器技術(shù)提高其峰值數(shù)據(jù)速率。在做出內(nèi)存決策時(shí),設(shè)計(jì)人員必須深入研究已發(fā)布的內(nèi)存規(guī)范,并了解特定技術(shù)的功能如何與手頭的應(yīng)用程序進(jìn)行交互。
內(nèi)存系統(tǒng)設(shè)計(jì)人員必須超越峰值數(shù)據(jù)速率規(guī)范,就像CPU設(shè)計(jì)人員逐漸停止使用千兆赫作為唯一的性能指標(biāo)一樣。雖然峰值數(shù)據(jù)速率在內(nèi)存接口方面仍然是最重要規(guī)范的標(biāo)題,但有效數(shù)據(jù)速率開(kāi)始為系統(tǒng)設(shè)計(jì)人員和架構(gòu)師提供空間。明天產(chǎn)品的性能將在很大程度上取決于其內(nèi)存系統(tǒng)的有效利用。
Victor Echevarria是Rambus公司內(nèi)存接口部的RDRAM產(chǎn)品經(jīng)理。他于2002年加入Rambus擔(dān)任系統(tǒng)工程師。在加入Rambus之前,Victor與安捷倫科技公司合作,后者開(kāi)發(fā)了用于高速數(shù)字采樣示波器的軟件。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7366瀏覽量
163094 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
2903瀏覽量
73539
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論