日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]深入分析:我们为何需要DDR2内存技术(多图)

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]深入分析:我们为何需要DDR2内存技术(多图) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章來自: https://www.cnblogs.com/thx-bj/archive/2008/04/02/1134040.html

【IT168評測室】最近,假如你仔細的觀察PC領域發生的變化,你就會注意的一個新鮮的術語“DDR2”頻頻出現。顧名思義,DDR2就是第二代雙倍速率同步動態隨機存儲器,這個名字聽上去很拗口,實際上我們只要知道它的縮寫是DDR SDRAM就行了。就目前的發展看來,DDR2絕對不是紙上談兵,它的平臺已經準備好了,不出意外的話,Intel七月份就會發布支持DDR2的芯片組925X和915。明年,DDR2就會成為PC上普遍使用,甚至是主流的內存類型。

  因此,我們應該了解DDR2和它的前一代產品有什么區別,它有什么優勢和不足之處。換句話說,我們試圖去領會,工業界為什么需要引入這種新的內存類型。

  當前的處理器主頻和I/O帶寬都很高,需要內存提供很高的數據傳輸率來配合。要知道內存帶寬至少要和前端總線帶寬同步,這樣才不至于影響處理器 性能的發揮。而且處理器的速度提升還在不斷的進行中,內存需要每秒鐘提供更多的數據來滿足處理器的要求。目前的內存速度提升已經相當困難,這時候轉變到 DDR2不失為合理的時機,它提供了一條提高內存帶寬的康莊之道,可以緩解當前遇到的很多問題。

  提高內存性能的兩個途徑

  內存的性能通過下面的公式來計算:

  速度=位寬×頻率

  速度用來表示內存的性能(MB/s),位寬是指內存總線的寬度(bit),頻率當然就是指數據傳輸的頻率,注意,這里說的是數據傳輸的頻率,而不是內存的工作頻率,在DDR時代,數據傳輸頻率是內存工作頻率的二倍。

  因此,提高性能有兩種方式,增加內存總線的位寬或者是提高內存工作的頻率。好的,讓我們來看看內存如今的狀態是怎么樣。

  雖然內存發展出很多的類型,但是它們都是基于原始的DRAM單元,實際上,它是一個晶體管和一個電容的結合體,很簡單但也很高效。有很多嘗試希 望丟棄這種陣舊的以晶體管為基礎的存儲方式,出現了一些新的存儲技術,如MRAM(Magnetoresistive RAM),FRAM (Ferroelectric RAM)等,但是它們都沒有獲得足夠的成功。沒有其它內存類型能夠提供一個和DRAM相似的,結合了容量,價格和速度的解決方案。

  當然還有很多快速的基本單元結構,象靜態內存(SRAM),它不象動態內存那樣需要刷新(預充電),但是它的每個存儲單元耗用了大量的晶體管,它太貴太大了,因此內存芯片不能夠達到足夠大的容量,還有一些廉價的解決方案,但是它們的性能無法用于PC的主內存系統。

  換句話說,基本的DRAM架構仍然是現代內存類型的基礎,因此,所有的現代內存類型都繼承了DRAM的優點和缺點:它需要刷新(預充電,不然隨 著漏電,DRAM中的數據會消失),以及有操作頻率的上限(這也是用電容充電來存儲數據的弊病)。來談談最后的參數,你能夠注意到時鐘頻率是很長時間以來 DRAM唯一改變的地方。當PC的其它子系統變得越來越快時,只有經典的內存單元組織結構很難提高它的時鐘頻率。實際上,時鐘頻率的提升完全要歸功于半導 體工藝的進步,DRAM的結構沒對頻率提升做出貢獻。

  今天,只有那些特別挑選的內存存儲陣列的工作頻率能達到275MHz(如Hynix發布的DDR550),這些都是成本高昂的產品,無法達到大批量生產。需要注意的是內存存儲陣列的頻率是無法達到550MHz的,這里說的是內存的傳輸速度。

  因此,我們只剩下一條路,那就是增加內存總線的寬度,但是,這個方法受到了很多限制:今天,標準平臺使用雙通道128bit內存總線,它的設 計,布線已經比原來64位內存通道的主板復雜了很多,幾乎很難在合理的成本下再提高內存總線位數。繼續增加總線寬度,不但成本高昂,而且帶來的電磁干擾會 造成極大的負面影響。

  看來,我們給自己制造了一個死鎖,內存單元無法提高頻率,內存總線位寬也不能輕易增加,我們該何去何從?

  DDR2內存就是解決方案

  SDRAM (Synchronous Dynamic Random-Access Memory)

  首先,讓我們回憶一下已經被放棄的SDRAM的工作原理,實際上,它內部包括了許多存儲單元陣列,以及輸入/輸出緩存和電源/刷新電路,最后一 個單元(電源/刷新電路)和我們下面的描述沒有關系。它的三個子系統(存儲單元陣列,輸入/輸出緩存)都以相同的頻率工作,這就是它為什么稱為同步內存的 原因。舉例來說,一個100MHz,64位總線寬度的SDRAM,內存的數據通過I/O緩存然后到達內存控制器。這個內存模組就是我們所熟知的PC100 內存,它的帶寬為800MB/s(100MHz×8 bytes或64 bits),每個時鐘周期傳輸一次數據,它在時鐘的上升沿傳輸數據。

  DDR (Double Data Rate SDRAM)

  DDR之所以叫這個名字,是因為它能夠以相同頻率SDRAM的兩倍來傳輸數據,也就是說,每時鐘周期傳輸兩次數據,它在時鐘信號的上升沿和下降 沿傳輸數據。但是加倍的數據從何而來,設計人員使用了一個小小的詭計:內存的存儲單元工作在相同的時鐘頻率下,但是內部總線加寬,以這種方式推進內存模組 的速度。換句話說,從內部陣列到緩存之間的總線寬度是外部總線(buffer到控制器)的兩倍,結果就使得緩存到控制器的數據傳輸率達到內部存儲單元工作 頻率的兩倍。也就是說,存儲單元使用一個很寬但較慢的總線,但是當數據傳輸到控制器時使用了一個較窄但是快速的總線。

  如果以實際的數字來衡量,SDRAM內部的存儲陣列的總線是32位,工作頻率為100MHz,緩存到外部控制器的總線也是32位,工作頻率 100MHz。這里數據流沒什么改變,內部和外部總線寬度與頻率都沒有變化,SDRAM模組通過同步讀取兩顆芯片達到64位的帶寬。

  DDR的情況有所不同,內部的存儲陣列通過一條64位,100MHz的總線連接I/O緩存(或者叫信號放大器),但是數據到內存控制器需要兩次 通過32位的總線。換句話說,每時鐘周期傳輸兩次數據,分別通過時鐘的上升沿和下降沿傳輸信號。結果就是,數據傳輸率是內部存儲陣列頻率的兩倍。我們可以 描繪一個明顯的場景:數據流慢慢通過寬的管道,然后進入一個狹窄的管道,但是流動的速度更快。DDR內存模組也是64位,模組上的兩顆芯片同步讀寫。

  這樣的內存被稱為DDR200(通過數據傳輸率來命名)或者稱為PC1600。實際上,內部的DRAM存儲單元在DDR266內存中的工作頻率 是133MHz,在DDR333中,存儲陣列的工作頻率是166MHz,DDR400中的存儲陣列工作頻率是200MHz,目前最快的DDR SDRAM的頻率(這里不包括那些超頻的內存)達到了550MHz,它的內部陣列工作頻率達到275MHz,這個頻率已經很難再繼續提高。此時,就需要一 個新的內存標準可以在今后一段時間內保證內存頻率和性能可以穩定的提高。

  DDR2

  通過上面對DDR SDRAM的講解,DDR2的特性就很容易理解了,和DDR一樣,它的內部存儲陣列到I/O緩存之間通過一條寬敞的64位,100MHz總線,但是數據從 緩存傳輸到外部控制器通過一條快速而狹窄的總線(16位,200MHz),外部總線仍然使用雙倍傳輸數據的策略,我們得到的數據傳輸率為400MHz。因 此,64位模組需要同時使用4個段(banks)。這個內存模組被稱為DDR2-400,它的標記方法和DDR內存相同,都是以內存的數據傳輸率來標識。


圖為各種內存工作原理對比圖

  因此,以同樣100MHz頻率工作的DRAM存儲單元,我們使用不同的內存模組寬度,得到不同的內存帶寬,SDRAM是800MB/s,DDR SDRAM是1600MB/s,DDR2 SDRAM則達到了3200MB/s的數據傳輸率!感謝多路復用技術,內存模組通過同時使用低速的內存陣列可以達到高帶寬,哈哈,這不就是我們期盼的解決 之道嗎。

  下面會詳細解析DDR2的多路復用技術,實際上就是prefetch(數據預取技術)

  4-bit prefetch DDR 2提高帶寬的關鍵技術

  現在的DRAM內部都采用4個bank的結構,每個bank由存儲單元(cell) 隊列構成,存儲單元隊列通過行(row)和列(column)地址定位。讓我們看看基本的內存讀操作的工作流程:首先是命令和地址信息輸入,經過地址解碼 器分解成bank(段)和Word(字)選擇,Word選擇就是行選擇,之后是對存儲單元進行再存儲(Restore)和預充電(Precharge)。 然后是Column(列)選擇,到此為止存儲單元(cell)已經被定位。存儲單元的數據被輸出到內部數據總線(Internal Data Bus),最后通過輸出電路輸出數據。

  從內存的讀操作中可以了解到內存工作的幾個瓶頸,它們分別是內存單元的再存儲和預充 電的延時,這個延遲屬于bank內部的延遲,由于DRAM結構的限制這個延遲本身不太好解決。還有內部數據總線(Internal Data Bus)的頻率限制,內部數據總線是連接DRAM顆粒中4個bank的總線,最后一個DRAM的瓶頸是輸入/輸出電路的延遲。


圖為內存數據傳輸機理

  對于內部數據總線頻率較低的瓶頸,可以通過使用Prefetch(數據預取)架構來 解決,舉例來說PC133 SDRAM采用了管線突發架構(Pipeline)或者說是1bit Prefetch,因此它內部數據總線的頻率是133MHz和數據輸出端的數據傳輸率是一樣的。DDR內存采用了2bit Prefetch技術,因此它輸出端的數據傳輸率是內部數據總線頻率的2倍,以DDR400為例,它的內部數據總線的頻率是200MHz,而輸出端的數據 傳輸率達到了400MHz。

  我們知道DRAM內部存儲單元的頻率提高比較困難且成本較高,DDR333的核心頻 率已經達到了167MHz,為了解決外部數據傳輸率和核心速度之間的矛盾,DDR2采用了4bit Prefetch(數據預取架構),因此DDR2 400的核心頻率僅為100MHz,DDR2 533的核心頻率為133MHz,因此DDR2很好的解決了DRAM核心頻率和外部數據傳輸頻率之間的問題。

  從SDRAM開始,內存就可以和時鐘同步,最初的SDRAM采用了管線架構 (Pipeline architecture),首先是地址信號(Add)和時鐘(CLK)同步,地址信號經過譯碼選取內存隊列中相應的單元,內存隊列中選中的數據通過內部 數據總線輸出到信號放大電路。SDRAM的信號輸出部分也是和時鐘信號同步的,這就好象一條連續的管線一樣。由于全部操作都和時鐘同步,因此也叫同步內 存。

  DDR采用了2位預取(2-bit prefetch),也就是2:1的數據預取,2bit預取架構允許內部的隊列(column)工作頻率僅僅為外部數據傳輸頻率的一半。在SDRAM中數 據傳輸率完全參考時鐘信號,因此數據傳輸率和時鐘頻率一樣。DDR2采了4位預取(4-bit prefetch),這就是DDR2提高數據傳輸率的關鍵,可以在不提高內部存儲陣列頻率的情況下提高數據輸出帶寬,未來的DDR3還有現在的RDRAM 采用了8位數據預取。

  相對于SDRAM,DDR擴展了原來SDRAM的設計。由于2bit Prefetch架構可以同存取兩個bank的數據,使內部數據總線的帶寬提高兩倍,因此在內存的輸出端可以在時鐘信號的上升延和下降延傳輸數據,DDR 的數據傳輸率是實際工作頻率的兩倍。DDR2通過使用4-bit預取架構來提高數據傳輸率,降低對內部bank頻率的要求。采用4-bit prefetch架構使DDR2僅能使用兩種數據突發傳輸長度(burst length),BL=4或BL=8。這個比較容易理解,因為DDR2一次存取4bit數據,所以數據突發長度也就成了4或8。

  下面是DDR2和DDR主要思想的區別,實際上,這兩種內存的差別不僅僅在帶寬上。

  除了帶寬,這里還有一個重要的參數是延遲,就象我前面所說的,存儲單元不會一直處于 可用狀態,因此它們要進行刷新操作。而且,即使存儲單元可用,也不可能立即得到它的內存:這里還有其它類型的延遲,如設置行和列的地址,這此延遲都是不能 避免的,它們由DRAM單元的本質所決定。

  讓我們看看會有那些延遲,例如內存陣列工作的時鐘組合是2-2-2,如果內存陣列在 所有的方案中以相同的頻率工作,那么所有的模組都具有同樣的延遲(我是說PC100,DDR200,DDR2-400)。它們僅僅是帶寬的區別。順便提一 下,2-2-2組合的含義是:CAS延遲,RAS到CAS的延遲和RAS預充電時間。第一個數字是取得列地址的延遲時間,第二個數字是行和列地址之間的延 遲,第三個數字是存儲單元充電時間,預充電實際上是對行數據進行讀操作。

  但實際上,存儲單元不會工作在相同的頻率上,舉例來說PC133就是一個使用非常普 遍的SDRAM,它的DRAM單元工作在133MHz上。因此,DDR200雖然有著比PC133更高的帶寬,但是它的相應延遲卻更慢(內部陣列的工作頻 率僅100MHz),PC133的存儲單元的頻率要比DDR200存儲單元的頻率高33%。結果就是,DDR266才具有和PC133一樣的延遲上的優 勢。

  今天我們也看到類似的情形,DDR200和DDR2-400具有相同的延遲,而后者 具有高一倍的帶寬。實際上,DDR2-400和DDR400具有相同的帶寬,它們都是3.2GB/s,但是,DDR400的存儲陣列工作頻率是 200MHz,而DDR2-400的存儲陣列工作頻率是100MHz,也就是說DDR2-400的延遲要高于DDR400。

  讓我們來比較一下數字,以DDR400為例,我們通常設置2或者2.5個時鐘延遲, 有時是3。也就是10到15納秒,對于DDR2-400,來計算一下它的延遲:核心工作在100MHz,具有2個時鐘延遲,它意味著20ns的延遲,接口 部分占用4個時鐘延遲(不過接口工作的頻率更高),結果就是DDR2模組的延遲將會是4-4-4個時鐘周期,考慮到這里使用很低的核心頻率,我們希望看到 未來DDR2-400具有3-3-3的特征,但是即使如此,DDR2-400也是輸給DDR400的。

  情況看上去有些荒謬,DDR2雖然能提供更大的帶寬,具有潛在的優勢,但是,DDR2初期的產品在性能上甚至落后于DDR。我們都知道,一樣產品需要有其優勢才能吸引購買者,那DDR2還有那些優勢呢。

  速度之外

  DDR內存通常采用TSOP芯片封裝形式,這種封裝形式可以很好的工作在200MHz上,當頻率更高時,它過長的管腳就會產生很高的阻抗和寄生電容,這會影響它的穩定性和頻率提升的難度。

  這里就需要說到另一種封裝—BGA或者Ball Grid Array,它可以適應更高的工作頻率,如在顯卡中已經使用了大量用BGA封裝的高速顯存。這種封裝具有很低的阻抗和寄生電容,并且具有更小的幾何尺寸, 允許更在效的散熱。DDR2內存顆粒將采用BGA封裝。不過,天下沒有免費的午餐,BGA封裝的成本要高于TSOP。

  注意BGA封裝并不是DDR2內存所獨有的,其實很早以前,Kingmax就已經使用BGA封裝的DDR內存,此外顯卡上也大量使用BGA封裝的顯存顆粒。BGA封裝可以工作在更高的時鐘頻率下。

  封裝上的差別僅僅是DDR和DDR2諸多差異中的一項,如果大家還記得信號終結,我 們知道在使用SCSI硬盤時也需要用到信號終結電路。簡單的說,高頻信號會在信號線的終點產生反射,這會影響信號品質,混淆有用的信號和反向信號。我們需 要防止這種現象的發生,通過在電路終點使用終結電阻來減少信號反射,保證信號的完事性。

  在使用DDR SDRAM的主板上都有幾百顆的信號終結電阻,只要你注意觀察DIMM插槽下方那些大量的電阻器,它們就是所謂的終結電阻,大量的終結電阻會增加主板的制 造成本。DDR2把終結電路直接內建在核心中,因此就不再需要主板上提供終結電路。實際上,不同的內存模組對終結電路的要求是不一樣的,終結電阻的大小決 定了數據線的信號比和反射率,終結電阻小則數據線信號反射低但是信噪比也較低;終結電阻高,則數據線的信噪比高,但是信號反射也會增加。因此主板上的終結 電阻并不能非常好的匹配內存模組,還會在一定程度上影響信號品質。DDR2可以根據自已的特點內建合適的終結電阻,這樣可以保證最佳的信號波形。使用 DDR2不但可以降低主板成本,還得到了最佳的信號品質,這是DDR不能比擬的。

  其它DDR2比DDR優越的地方——發熱量,通常容量的DDR模組(256MB- 512MB)的發熱量并不是很高,但是當模組的容量增加時,它的發熱量就體現出來了。舉例來說,安裝4GB內存到插槽中,在峰值調用下內存的發熱量將在 35-40W之間,這是個不小的數字了。雖然這樣容量的內存在今天并不常見,但是明天呢。因此,需要預先解決這個問題,減少發熱量最好就是使用新的內存標 準。而且內存的工作頻率(往往發熱量是和工作頻率共同增長的)將會得到不斷的增加,因此我們也需要盡快解決發熱量的問題。

  DDR2值得驕傲的地方,它的核心工作電壓僅為1.8V,而DDR的核心工作電壓在 2.5-2.6V(高電壓意味著高發熱),因此,DDR2產生的熱量要小于DDR,估計可以減少30%。實際上,我們也注意到目前有許多DDR也工作在 1.8V,但由于DDR模組規格要求2.5V工作電壓,因此它需要把2.5V的輸入電壓進行轉換,這部分會變成熱量散發,因此使用低電壓DDR也不能減少 模組的發熱量。


圖為DDR內存工作機理

  DDR2增加了posted CAS命令,它改變了以前對SDRAM延遲的理解。我們知道在SDRAM和DDR SDRAM的操作過程中存在許多延遲,如RAS到CAS的(行選擇信號到列選擇信號)的延遲tRCD(延遲也可稱為潛伏周期)。在200MHz的頻率下, tRCD延遲大約是20ns,這肯定會降低總線的利用效率。posted CAS命令通過使用附加延遲(additive latency)的概念來解決這個問題。簡單說,設定整個讀延遲為CAS延遲(CL)加上附加延遲,這樣做的好處是能夠使CAS命令緊接著RAS命令, tRCD被附加延遲取代。而DDR2的寫延遲為讀延遲周期減一個時鐘周期,DDR2通過增加地址和命令的FIFO(先入先出)寄存器來實現posted CAS,通過寄存器保存CAS命令和地址直到附加延遲結束。在DDR2段交錯操作(bank-interleaving operation)時使用4bit突發模式來提高總線利用率。

  其它改進的地方,DDR2引入了一個被稱為Additive Latency(附加延遲)的技術,理解這項技術我們需要知道真實的內存操作環境,數據并不是隨時就能傳輸,甚至是在數據準備好的情況下也不可以,因為它 還要受到內存控制器狀態的限制。因此有時當內存控制器在讀取早先初如化好的段(bank)時并不能同時發送命令去初始化下一個內存段(bank)。僅僅是 因為這里兩個命令需要使用相同的總線來發送兩個不同級別的信號,顯然這會造成沖突。因此它的結果就是造成了數據流中出現了泡泡(bubble,這里的意思 就是數據流被打斷),這是由于組織結構上的沖突。

  DDR2引入了附加延遲(dditional latenc)去解決這個問題,它指向當傳送自動讀取下一個周期命令發生的沖突。因此,我們看到讀取數據延遲了一個時鐘周期,但是數據流中沒有泡泡(bubbles)了,提高了內存子系統的效率。

  下一個DDR2內存中的分歧就是可變讀延遲(Variable Write Latency)的能力。DDR允許一個1T(一個時鐘周期)的寫延遲,而且這個時間規格是不能被改變的。到了DDR2,寫延遲依賴于讀延遲,而且等于讀 延遲減一個時鐘周期,舉例來說,當讀延遲是7個時鐘周期,寫延遲就是6個時鐘周期。這看上去比DDR的1個時鐘周期糟糕了許多,但實際上,它并沒有那么 糟,因為在DDR中寫處理需要經過一些特別的準備,但是DDR2中就不需要了。因此,它們雖然有差別,但是就我看來,差別并不大。最后的結果是,DDR2 的寫延遲要比DDR高三倍。

  DDR2技術總結

  讓我們來總結一下,DDR2內存將使用240pin的模組,但是它的長度和現在 184pin的DIMM一樣,也就是說DDR2模組的pin之間更加緊密了。模組的特性可以讓它適應更高的工作頻率,而且,模組還能容納更高容量的內存顆 粒。DDR2模組的優勢是明顯的,但也不能忽視它的缺點:首先,它在相同時鐘速率接口上使用了更高的工作頻率,第二,寫延遲被增加了。第三,內存的價格會 更加昂貴,因為在封裝上的成本增加了許多,DDR和DDR2的其它區別參見下表:

?

DDR

DDR-II

數據傳輸率?200/266/333/400 Mbps*?400/533/(667) Mbps*?
總線頻率100/133/166/200 MHz200/266/(333) MHz
內存頻率100/133/166/200 MHz100/133/(166) MHz
Batch reading size2/4/84/8**
Data StrobeSingle DQSDifferential Strobe: DQS, /DQS***
CAS Latency1.5, 2, 2.53+, 4, 5
Write Latency1TRead Latency-1

總結

以上是生活随笔為你收集整理的[转载]深入分析:我们为何需要DDR2内存技术(多图)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。