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

內(nèi)存儲器的分類
單片機的片內(nèi)存儲器和片外存儲器到底有什么區(qū)別

評論