滄海桑田話存貯 內(nèi)存/顯存發(fā)展編年史
泡泡網(wǎng)顯卡頻道6月17日 過去的十年是信息爆炸的時代,也許在座的各位還不能真正意識到信息爆炸的程度,曾經(jīng)有人開玩笑說現(xiàn)在現(xiàn)在一份早報上記錄的信息量相當于50年前一位法國農(nóng)民終生需要的信息。這個說法雖然無法科學考證,但卻從側(cè)面反應了一個亙古未見的事實:電腦和互聯(lián)網(wǎng)的快速發(fā)展讓信息資訊空前爆發(fā),回顧歷史長河,我們可以為見證這個巨變而自豪。
前面兩期文章我們分別介紹了顯卡的輸出接口演變和核心架構(gòu)進化,揭露了看似平靜的產(chǎn)業(yè)背后的勾心斗角,而這一期我們則穿越時空回到20年前,見證這段存貯技術(shù)發(fā)展的傳奇……
● 混沌未開:內(nèi)存的前世
與現(xiàn)在一個指甲蓋大小的芯片就能裝下整個圖書館的信息不同,在計算機誕生初期存貯信息可是不折不扣的“體力活”,當時還不存在內(nèi)存條的概念,最早的“內(nèi)存”是以磁芯的形式排列在線路上,每個磁芯與晶體管組成的一個雙穩(wěn)態(tài)電路作為一比特(BIT)的存儲器,每一比特都要有玉米粒大小,這意味著一間的機房只能容納區(qū)區(qū)數(shù)百k字節(jié)的容量。
大規(guī)模集成電路的出現(xiàn)讓這種情況得到終結(jié),隨著制造工藝的科技化,出現(xiàn)了焊接在主板上集成內(nèi)存芯片,以內(nèi)存芯片的形式為計算機的運算提供直接支持?!皟?nèi)存”才有像現(xiàn)代的內(nèi)存的影子了,但那時的內(nèi)存芯片容量依然非常寒磣,最常見的莫過于256K×1bit、1M×4bit,雖然如此,這已然是劃時代的進步了,相對于那時的運算任務來說也足堪重任了。
● 合久必分:內(nèi)存條的誕生
這種“內(nèi)存芯片”一直沿用到286初期,鑒于它存在著無法拆卸更換的弊病,這對于計算機的發(fā)展造成了現(xiàn)實的阻礙。將內(nèi)存芯片焊接到事先設計好的印刷線路板上,而電腦主板上也改用內(nèi)存插槽,這樣就把內(nèi)存難以安裝和更換的問題徹底解決了。這就是我們現(xiàn)在常見的“內(nèi)存條”。
在80286主板剛推出的時候,內(nèi)存條采用了SIMM(Single In-lineMemory Modules,單邊接觸內(nèi)存模組)接口,容量為30pin、256kb,必須是由8 片數(shù)據(jù)位和1 片校驗位組成1 個bank,正因如此,我們見到的30pin SIMM一般是四條一起使用。自1982年P(guān)C進入民用市場一直到現(xiàn)在,搭配80286處理器的30pin SIMM 內(nèi)存是內(nèi)存領域的開山鼻祖。
30pin和72pin的SIMM內(nèi)存
隨后,在1988 ~1990 年當中,PC 技術(shù)迎來另一個發(fā)展高峰,也就是386和486時代,此時CPU 已經(jīng)向16bit 發(fā)展,所以30pin SIMM 內(nèi)存再也無法滿足需求,其較低的內(nèi)存帶寬已經(jīng)成為急待解決的瓶頸,所以此時72pin SIMM 內(nèi)存出現(xiàn)了,72pin SIMM支持32bit快速頁模式內(nèi)存,內(nèi)存帶寬得以大幅度提升。72pin SIMM內(nèi)存單條容量一般為512KB ~2MB,而且僅要求兩條同時使用,由于其與30pin SIMM 內(nèi)存無法兼容,因此這個時候PC業(yè)界毅然將30pin SIMM 內(nèi)存淘汰出局了。
不同規(guī)格的EDO DRAM
EDO DRAM(Extended Date Out RAM 外擴充數(shù)據(jù)模式存儲器)內(nèi)存,這是1991 年到1995 年之間盛行的內(nèi)存條,EDO DRAM同F(xiàn)PM DRAM(Fast Page Mode RAM 快速頁面模式存儲器)極其相似,它取消了擴展數(shù)據(jù)輸出內(nèi)存與傳輸內(nèi)存兩個存儲周期之間的時間間隔,在把數(shù)據(jù)發(fā)送給CPU的同時去訪問下一個頁面,故而速度要比普通DRAM快15~30%。工作電壓為一般為5V,帶寬32bit,速度在40ns以上,其主要應用在當時的486及早期的Pentium電腦上。
在1991 年到1995 年中,讓我們看到一個尷尬的情況,那就是這幾年內(nèi)存技術(shù)發(fā)展比較緩慢,幾乎停滯不前,所以我們看到此時EDO DRAM有72 pin和168 pin并存的情況,事實上EDO 內(nèi)存也屬于72pin SIMM 內(nèi)存的范疇,不過它采用了全新的尋址方式。EDO 在成本和容量上有所突破,憑借著制作工藝的飛速發(fā)展,此時單條EDO 內(nèi)存的容量已經(jīng)達到4 ~16MB 。由于Pentium及更高級別的CPU數(shù)據(jù)總線寬度都是64bit甚至更高,所以EDO DRAM與FPM DRAM都必須成對使用。
自Intel Celeron系列以及AMD K6處理器以及相關(guān)的主板芯片組推出后,EDO DRAM內(nèi)存性能再也無法滿足需要了,內(nèi)存技術(shù)必須徹底得到個革新才能滿足新一代CPU架構(gòu)的需求,SDRAM應用而生,至此終于進入內(nèi)存的近代史。
第一代SDRAM內(nèi)存為PC66規(guī)范,但很快由于Intel和AMD的頻率之爭將CPU外頻提升到了100MHz,所以PC66內(nèi)存很快就被PC100內(nèi)存取代,接著133MHz 外頻的PIII以及K7時代的來臨,PC133規(guī)范也以相同的方式進一步提升SDRAM 的整體性能,帶寬提高到1GB/sec以上。由于SDRAM 的帶寬為64bit,正好對應CPU 的64bit 數(shù)據(jù)總線寬度,因此它只需要一條內(nèi)存便可工作,便捷性進一步提高。在性能方面,由于其輸入輸出信號保持與系統(tǒng)外頻同步,因此速度明顯超越EDO 內(nèi)存。
66MHz SDRAM
133MHz SDRAM
不可否認的是,SDRAM 內(nèi)存由早期的66MHz,發(fā)展后來的100MHz、133MHz,盡管沒能徹底解決內(nèi)存帶寬的瓶頸問題,但此時CPU超頻已經(jīng)成為DIY用戶永恒的話題,所以不少用戶將品牌好的PC100品牌內(nèi)存超頻到133MHz使用以獲得CPU超頻成功,值得一提的是,為了方便一些超頻用戶需求,市場上出現(xiàn)了一些PC150、PC166規(guī)范的內(nèi)存。
盡管SDRAM PC133內(nèi)存的帶寬可提高帶寬到1064MB/S,加上Intel已經(jīng)開始著手最新的Pentium 4計劃,所以SDRAM PC133內(nèi)存不能滿足日后的發(fā)展需求,此時,Intel為了達到獨占市場的目的,與Rambus聯(lián)合在PC市場推廣Rambus DRAM內(nèi)存(稱為RDRAM內(nèi)存)。與SDRAM不同的是,其采用了新一代高速簡單內(nèi)存架構(gòu),基于一種類RISC(Reduced Instruction Set Computing,精簡指令集計算機)理論,這個理論可以減少數(shù)據(jù)的復雜性,使得整個系統(tǒng)性能得到提高。 在AMD與Intel的競爭中,這個時候是屬于頻率競備時代,所以這個時候CPU的主頻在不斷提升,Intel為了蓋過AMD,推出高頻PentiumⅢ以及Pentium 4 處理器,因此Rambus DRAM內(nèi)存是被Intel看著是未來自己的競爭殺手锏,Rambus DRAM內(nèi)存以高時鐘頻率來簡化每個時鐘周期的數(shù)據(jù)量,因此內(nèi)存帶寬相當出色,如PC 1066 1066 MHz 32 bits帶寬可達到4.2G Byte/sec,Rambus DRAM曾一度被認為是Pentium 4 的絕配。
Rambus RDRAM
但歷史的軌跡并沒有按照Intel的規(guī)劃前進,在當時,PC600、PC700的Rambus RDRAM 內(nèi)存出現(xiàn)Intel820 芯片組“失誤事件”,而PC800 Rambus RDRAM受制造工藝所累,成本居高不下不說,第一款Rambus內(nèi)存甚至需要自帶散熱風扇……。禍不單行,Pentium 4平臺自身高昂的價格并沒有帶來性能的飆升,卻讓功耗發(fā)熱齊飛。Intel自顧不暇,命遠多舛的Rambus RDRAM終于胎死腹中,Rambus曾希望用更高頻率的PC1066規(guī)范RDRAM來力挽狂瀾,但最終還是被蒸蒸日上的DDR終結(jié),壯志未酬身先死,只怪生不逢時。
他的隕落標志著DDR王朝的來臨,也標志著內(nèi)存拉開了現(xiàn)代史的序幕。
● 內(nèi)存的存取原理及難以逾越的頻障:
在半導體科技極為發(fā)達的臺灣省,內(nèi)存和顯存被統(tǒng)稱為記憶體(Memory),全名是動態(tài)隨機存取記憶體(Dynamic Random Access Memory,DRAM)?;驹砭褪抢秒娙輧?nèi)存儲電荷的多寡來代表0和1,這就是一個二進制位元(bit),內(nèi)存的最小單位。
DRAM的存儲單元結(jié)構(gòu)圖
DRAM的結(jié)構(gòu)可謂是簡單高效,每一個bit只需要一個晶體管加一個電容。但是電容不可避免的存在漏電現(xiàn)象,如果電荷不足會導致數(shù)據(jù)出錯,因此電容必須被周期性的刷新(預充電),這也是DRAM的一大特點。而且電容的充放電需要一個過程,刷新頻率不可能無限提升(頻障),這就導致DRAM的頻率很容易達到上限,即便有先進工藝的支持也收效甚微。
“上古”時代的FP/EDO內(nèi)存,由于半導體工藝的限制,頻率只有25MHz/50MHz,自SDR以后頻率從66MHz一路飆升至133MHz,終于遇到了難以逾越的障礙。此后所誕生的DDR1/2/3系列,它們存儲單元官方頻率(JEDEC制定)始終在100MHz-200MHz之間徘徊,非官方(超頻)頻率也頂多在250MHz左右,很難突破300MHz。事實上高頻內(nèi)存的出錯率很高、穩(wěn)定性也得不到保證,除了超頻跑簡單測試外并無實際應用價值。
既然存儲單元的頻率(簡稱內(nèi)核頻率,也就是電容的刷新頻率)不能無限提升,那么就只有在I/O(輸入輸出)方面做文章,通過改進I/O單元,這就誕生了DDR1/2/3、GDDR1/2/3/4/5等形形色色的內(nèi)存種類,首先來詳細介紹下DDR1/2/3之間的關(guān)系及特色。
通常大家所說的DDR-400、DDR2-800、DDR3-1600等,其實并非是內(nèi)存的真正頻率,而是業(yè)界約定俗成的等效頻率,這些DDR1/2/3內(nèi)存相當于老牌SDR內(nèi)存運行在400MHz、800MHz、1600MHz時的帶寬,因此頻率看上去很夸張,其實真正的內(nèi)核頻率都只有200MHz而已!
內(nèi)存有三種不同的頻率指標,它們分別是核心頻率、時鐘頻率和有效數(shù)據(jù)傳輸頻率。核心頻率即為內(nèi)存Cell陣列(Memory Cell Array,即內(nèi)部電容)的刷新頻率,它是內(nèi)存的真實運行頻率;時鐘頻率即I/O Buffer(輸入/輸出緩沖)的傳輸頻率;而有效數(shù)據(jù)傳輸頻率就是指數(shù)據(jù)傳送的頻率(即等效頻率)。
● SDR和DDR1/2/3全系列頻率對照表:
常見DDR內(nèi)存頻率對照表
通過上表就能非常直觀的看出,近年來內(nèi)存的頻率雖然在成倍增長,可實際上真正存儲單元的頻率一直在133MHz-200MHz之間徘徊,這是因為電容的刷新頻率受制于制造工藝而很難取得突破。而每一代DDR的推出,都能夠以較低的存儲單元頻率,實現(xiàn)更大的帶寬,并且為將來頻率和帶寬的提升留下了一定的空間。
● SDR和DDR1/2/3存儲原理示意圖:
雖然存儲單元的頻率一直都沒變,但內(nèi)存顆粒的I/O頻率卻一直在增長,再加上DDR是雙倍數(shù)據(jù)傳輸,因此內(nèi)存的數(shù)據(jù)傳輸率可以達到核心頻率的8倍之多!通過下面的示意圖就能略知一二:
那么,內(nèi)存IO頻率為什么能達到數(shù)倍于核心頻率呢?
相信很多人都知道,DDR1/2/3內(nèi)存最關(guān)鍵的技術(shù)就是分別采用了2/4/8bit數(shù)據(jù)預取技術(shù)(Prefetch),由此得以將帶寬翻倍,與此同時I/O控制器也必須做相應的改進。
● DDR1/2/3數(shù)據(jù)預取技術(shù)原理:
預取,顧名思義就是預先/提前存取數(shù)據(jù),也就是說在I/O控制器發(fā)出請求之前,存儲單元已經(jīng)事先準備好了2/4/8bit數(shù)據(jù)。簡單來說這就是把并行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)流,我們可以把它認為是存儲單元內(nèi)部的Raid/多通道技術(shù),可以說是以電容矩陣為單位的。
內(nèi)存數(shù)據(jù)預取技術(shù)示意圖:并行轉(zhuǎn)串行
這種存儲陣列內(nèi)部的實際位寬較大,但是數(shù)據(jù)輸出位寬卻比較小的設計,就是所謂的數(shù)據(jù)預取技術(shù),它可以讓內(nèi)存的數(shù)據(jù)傳輸頻率倍增。試想如果我們把一條細水管安裝在粗水管之上,那么水流的噴射速度就會翻幾倍。
明白了數(shù)據(jù)預取技術(shù)的原理之后,再來看看DDR1/2/3內(nèi)存的定義,以及三種頻率之間的關(guān)系,就豁然開朗了:
● SDRAM(Synchronous DRAM):同步動態(tài)隨機存儲器
之所以被稱為“同步”,因為SDR內(nèi)存的存儲單元頻率、I/O頻率及數(shù)據(jù)傳輸率都是相同的,比如經(jīng)典的PC133,三種頻率都是133MHz。
SDR在一個時鐘周期內(nèi)只能讀/寫一次,只在時鐘上升期讀/寫數(shù)據(jù),當同時需要讀取和寫入時,就得等待其中一個動作完成之后才能繼續(xù)進行下一個動作。
● DDR(Double Date Rate SDRAM):雙倍速率同步動態(tài)隨機存儲器
雙倍是指在一個時鐘周期內(nèi)傳輸兩次數(shù)據(jù),在時鐘的上升期和下降期各傳輸一次數(shù)據(jù)(通過差分時鐘技術(shù)實現(xiàn)),在存儲陣列頻率不變的情況下,數(shù)據(jù)傳輸率達到了SDR的兩倍,此時就需要I/O從存儲陣列中預取2bit數(shù)據(jù),因此I/O的工作頻率是存儲陣列頻率的兩倍。
DQ頻率和I/O頻率是相同的,因為DQ在時鐘上升和下降研能傳輸兩次數(shù)據(jù),也是兩倍于存儲陣列的頻率。
● DDR2(DDR 2 SDRAM):第二代雙倍速率同步動態(tài)隨機存儲器
DDR2在DDR1的基礎上,數(shù)據(jù)預取位數(shù)從2bit擴充至4bit,此時上下行同時傳輸數(shù)據(jù)(雙倍)已經(jīng)滿足不了4bit預取的要求,因此I/O控制器頻率必須加倍。
至此,在存儲單元頻率保持133-200MHz不變的情況下,DDR2的實際頻率達到了266-400MHz,而(等效)數(shù)據(jù)傳輸率達到了533-800MHz。
● DDR3(DDR 3 SDRAM):第三代雙倍速率同步動態(tài)隨機存儲器
DDR3就更容易理解了,數(shù)據(jù)預取位數(shù)再次翻倍到8bit,同理I/O控制器頻率也加倍。此時,在存儲單元頻率保持133-200MHz不變的情況下,DDR3的實際頻率達到了533-800MHz,而(等效)數(shù)據(jù)傳輸率高達1066-1600MHz。
綜上可以看出,DDR1/2/3的發(fā)展是圍繞著數(shù)據(jù)預取而進行的,同時也給I/O控制器造成了不小的壓力,雖然存儲單元的工作頻率保持不變,但I/O頻率以級數(shù)增長,我們可以看到DDR3的I/O頻率已逼近1GHz大關(guān),此時I/O頻率成為了新的瓶頸,如果繼續(xù)推出DDR4(注意不是GDDR4,兩者完全不是同一概念,后文會有詳細解釋)的話,將會受到很多未知因素的制約,必須等待更先進的工藝或者新解決方案的出現(xiàn)才有可能延續(xù)DDR的生命。
上文說的DDR1-3代技術(shù)固然沒錯,但事實遠遠不是那么簡單,如果僅僅依靠I/O或者數(shù)據(jù)預取位數(shù)翻倍就能造出DDR3來,那DDR2還能執(zhí)內(nèi)存市場之牛耳數(shù)年之久么?下面我們就來探索一下這幾年中內(nèi)存產(chǎn)業(yè)發(fā)生的那些并不為人關(guān)注的事兒。
事實上DDR2內(nèi)存技術(shù)最大的突破點其實不在于用戶們所認為的兩倍于DDR的傳輸能力,而是在采用更低發(fā)熱量、更低功耗的情況下,DDR2可以獲得更快的頻率提升,突破標準DDR的400MHZ限制。
DDR內(nèi)存通常采用TSOP芯片封裝形式,這種封裝形式可以很好的工作在200MHz上,當頻率更高時,它過長的管腳就會產(chǎn)生很高的阻抗和寄生電容,這會影響它的穩(wěn)定性和頻率提升的難度。這也就是DDR的核心頻率很難突破275MHZ的根本原因。而DDR2內(nèi)存均采用FBGA封裝形式,不同于曾經(jīng)廣泛應用的TSOP封裝形式,F(xiàn)BGA封裝提供了更好的電氣性能與散熱性,為DDR2內(nèi)存的穩(wěn)定工作與未來頻率的發(fā)展提供了良好的保障。
封裝和工藝的改進讓DDR2內(nèi)存用1.8V電壓即可驅(qū)動,相對于DDR標準的2.5V,功耗和發(fā)熱量大大降低,為沖擊更高頻率掃清了障礙。
除了以上所說的區(qū)別外,DDR2還引入了三項新的技術(shù),它們是OCD、ODT和Post CAS。
OCD(Off-Chip Driver):也就是所謂的離線驅(qū)動調(diào)整,DDR II通過OCD可以提高信號的完整性。DDR II通過調(diào)整上拉(pull-up)/下拉(pull-down)的電阻值使兩者電壓相等。使用OCD通過減少DQ-DQS的傾斜來提高信號的完整性;通過控制電壓來提高信號品質(zhì)。
ODT:ODT是內(nèi)建核心的終結(jié)電阻器。我們知道使用DDR SDRAM的主板上面為了防止數(shù)據(jù)線終端反射信號需要大量的終結(jié)電阻。它大大增加了主板的制造成本。實際上,不同的內(nèi)存模組對終結(jié)電路的要求是不一樣的,終結(jié)電阻的大小決定了數(shù)據(jù)線的信號比和反射率,終結(jié)電阻小則數(shù)據(jù)線信號反射低但是信噪比也較低;終結(jié)電阻高,則數(shù)據(jù)線的信噪比高,但是信號反射也會增加。因此主板上的終結(jié)電阻并不能非常好的匹配內(nèi)存模組,還會在一定程度上影響信號品質(zhì)。DDR2可以根據(jù)自己的特點內(nèi)建合適的終結(jié)電阻,這樣可以保證非常好的的信號波形。使用DDR2不但可以降低主板成本,還得到了非常好的的信號品質(zhì),這是DDR不能比擬的。
Post CAS:它是為了提高DDR II內(nèi)存的利用效率而設定的。在Post CAS操作中,CAS信號(讀寫/命令)能夠被插到RAS信號后面的一個時鐘周期,CAS命令可以在附加延遲(Additive Latency)后面保持有效。原來的tRCD(RAS到CAS和延遲)被AL(Additive Latency)所取代,AL可以在0,1,2,3,4中進行設置。由于CAS信號放在了RAS信號后面一個時鐘周期,因此ACT和CAS信號永遠也不會產(chǎn)生碰撞沖突。
1.突發(fā)長度(Burst Length,BL)
由于DDR3的預取為8bit,所以突發(fā)傳輸周期(Burst Length,BL)也固定為8,而對于DDR2和早期的DDR架構(gòu)系統(tǒng),BL=4也是常用的,DDR3為此增加了一個4bit Burst Chop(突發(fā)突變)模式,即由一個BL=4的讀取操作加上一個BL=4的寫入操作來合成一個BL=8的數(shù)據(jù)突發(fā)傳輸,屆時可通過A12地址線來控制這一突發(fā)模式。而且需要指出的是,任何突發(fā)中斷操作都將在DDR3內(nèi)存中予以禁止,且不予支持,取而代之的是更靈活的突發(fā)傳輸控制(如4bit順序突發(fā))。
2.尋址時序(Timing)
就像DDR2從DDR轉(zhuǎn)變而來后延遲周期數(shù)增加一樣,DDR3的CL周期也將比DDR2有所提高。DDR2的CL范圍一般在2~5之間,而DDR3則在5~11之間,且附加延遲(AL)的設計也有所變化。DDR2時AL的范圍是0~4,而DDR3時AL有三種選項,分別是0、CL-1和CL-2。另外,DDR3還新增加了一個時序參數(shù)——寫入延遲(CWD),這一參數(shù)將根據(jù)具體的工作頻率而定。
3.DDR3新增的重置(Reset)功能
重置是DDR3新增的一項重要功能,并為此專門準備了一個引腳。DRAM業(yè)界很早以前就要求增加這一功能,如今終于在DDR3上實現(xiàn)了。這一引腳將使DDR3的初始化處理變得簡單。當Reset命令有效時,DDR3內(nèi)存將停止所有操作,并切換至最少量活動狀態(tài),以節(jié)約電力。
在Reset期間,DDR3內(nèi)存將關(guān)閉內(nèi)在的大部分功能,所有數(shù)據(jù)接收與發(fā)送器都將關(guān)閉,所有內(nèi)部的程序裝置將復位,DLL(延遲鎖相環(huán)路)與時鐘電路將停止工作,而且不理睬數(shù)據(jù)總線上的任何動靜。這樣一來,將使DDR3達到最節(jié)省電力的目的。
4.DDR3新增ZQ校準功能
ZQ也是一個新增的腳,在這個引腳上接有一個240歐姆的低公差參考電阻。這個引腳通過一個命令集,通過片上校準引擎(On-Die Calibration Engine,ODCE)來自動校驗數(shù)據(jù)輸出驅(qū)動器導通電阻與ODT的終結(jié)電阻值。當系統(tǒng)發(fā)出這一指令后,將用相應的時鐘周期(在加電與初始化之后用512個時鐘周期,在退出自刷新操作后用256個時鐘周期、在其他情況下用64個時鐘周期)對導通電阻和ODT電阻進行重新校準。
5.參考電壓分成兩個
在DDR3系統(tǒng)中,對于內(nèi)存系統(tǒng)工作非常重要的參考電壓信號VREF將分為兩個信號,即為命令與地址信號服務的VREFCA和為數(shù)據(jù)總線服務的VREFDQ,這將有效地提高系統(tǒng)數(shù)據(jù)總線的信噪等級。
6.點對點連接(Point-to-Point,P2P)
這是為了提高系統(tǒng)性能而進行的重要改動,也是DDR3與DDR2的一個關(guān)鍵區(qū)別。在DDR3系統(tǒng)中,一個內(nèi)存控制器只與一個內(nèi)存通道打交道,而且這個內(nèi)存通道只能有一個插槽,因此,內(nèi)存控制器與DDR3內(nèi)存模組之間是點對點(P2P)的關(guān)系(單物理Bank的模組),或者是點對雙點(Point-to-two-Point,P22P)的關(guān)系(雙物理Bank的模組),從而大大地減輕了地址/命令/控制與數(shù)據(jù)總線的負載。而在內(nèi)存模組方面,與DDR2的類別相類似,也有標準DIMM(臺式PC)、SO-DIMM/Micro-DIMM(筆記本電腦)、FB-DIMM2(服務器)之分,其中第二代FB-DIMM將采用規(guī)格更高的AMB2(高級內(nèi)存緩沖器)。
7.邏輯Bank數(shù)量
DDR2 SDRAM中有4Bank和8Bank的設計,目的就是為了應對未來大容量芯片的需求。而DDR3很可能將從2Gb容量起步,因此起始的邏輯Bank就是8個,另外還為未來的16個邏輯Bank做好了準備。
8.根據(jù)溫度自動自刷新(SRT,Self-Refresh Temperature)
為了保證所保存的數(shù)據(jù)不丟失,DRAM必須定時進行刷新,DDR3也不例外。不過,為了最大的節(jié)省電力,DDR3采用了一種新型的自動自刷新設計(ASR,Automatic Self-Refresh)。當開始ASR之后,將通過一個內(nèi)置于DRAM芯片的溫度傳感器來控制刷新的頻率,因為刷新頻率高的話,消電就大,溫度也隨之升高。而溫度傳感器則在保證數(shù)據(jù)不丟失的情況下,盡量減少刷新頻率,降低工作溫度。不過DDR3的ASR是可選設計,并不見得市場上的DDR3內(nèi)存都支持這一功能,因此還有一個附加的功能就是自刷新溫度范圍(SRT,Self-Refresh Temperature)。通過模式寄存器,可以選擇兩個溫度范圍,一個是普通的的溫度范圍(例如0℃至85℃),另一個是擴展溫度范圍,比如最高到95℃。對于DRAM內(nèi)部設定的這兩種溫度范圍,DRAM將以恒定的頻率和電流進行刷新操作。
9.局部自刷新(RASR,Partial Array Self-Refresh)
這是DDR3的一個可選項,通過這一功能,DDR3內(nèi)存芯片可以只刷新部分邏輯Bank,而不是全部刷新,從而最大限度的減少因自刷新產(chǎn)生的電力消耗。這一點與移動型內(nèi)存(Mobile DRAM)的設計很相似。
10.封裝(Packages)
DDR3由于新增了一些功能,所以在引腳方面會有所增加,8bit芯片采用78球FBGA封裝,16bit芯片采用96球FBGA封裝,而DDR2則有60/68/84球FBGA封裝三種規(guī)格。并且DDR3必須是綠色封裝,不能含有任何有害物質(zhì)。
前面介紹的是關(guān)于歷代內(nèi)存的技術(shù)原理,可以說是比較微觀的東西,反映在宏觀上,就是常見的內(nèi)存顆粒及內(nèi)存條了,這都是些看得見摸得著的東西,但有些概念還是不容易理解,這里逐一進行說明:
● 內(nèi)存位寬——SDR/DDR1/2/3單條內(nèi)存都是64bit
內(nèi)存模組的設計取決于內(nèi)存控制器(集成在北橋或者CPU內(nèi)部),理論上位寬可以無限提升,但受制因素較多:高位寬將會讓芯片組變得十分復雜,對主板布線提出嚴格要求,內(nèi)存PCB更是絲毫馬虎不得,內(nèi)存顆粒及芯片設計也必須作相應的調(diào)整。可謂是牽一發(fā)而動全身,所以多年來業(yè)界都是墨守成規(guī),維持64bit的設計不變。
相比之下,顯卡作為一個整體就沒有那么多的顧忌,只需重新設計GPU內(nèi)部的顯存控制器,然后PCB按照位寬要求布線,焊更多的顯存顆粒上去就行了,雖然成本也很高但實現(xiàn)512bit并沒有太大難度。
● 多通道內(nèi)存——雙通道/三通道
既然實現(xiàn)高位寬內(nèi)存條太難,那么就退而求其次,讓兩條內(nèi)存并行傳輸數(shù)據(jù),同樣可以讓位寬翻倍。目前流行的雙通道技術(shù)就是如此,北橋或者CPU內(nèi)部整合了兩個獨立的64bit內(nèi)存控制器,同時傳輸數(shù)據(jù)等效位寬就相當于128bit。
Intel Nehalem核心CPU直接整合三通道內(nèi)存控制器,位寬高達192bit。但由于CPU、主板、內(nèi)存方面成本都增加不少,因此在主流Lynnfield核心CPU上面又回歸了雙通道設計。事實上服務器芯片組已經(jīng)能夠支持四通道內(nèi)存,對服務器來說成本方面不是問題,只是對穩(wěn)定性和容錯性要求很高。
● 內(nèi)存顆粒位寬:4/8/16/32bit
理論上,完全可以制造出一顆位寬為64bit的芯片來滿足一條內(nèi)存使用,但這種設計對技術(shù)要求很高,良品率很低導致成本無法控制,應用范圍很窄。
所以內(nèi)存芯片的位寬一般都很小,臺式機內(nèi)存顆粒的位寬最高僅16bit,常見的則是4/8bit。這樣為了組成64bit內(nèi)存的需要,至少需要4顆16bit的芯片、8顆8bit的芯片或者16顆4bit的芯片。
而顯卡對位寬要求很高,容量反而退居其次,所以顯存顆粒的位寬普遍比內(nèi)存顆粒大(這就是顯存和內(nèi)存主要區(qū)別之一),比如GDDR3/4/5顆粒都是32bit,4顆就能滿足低端卡128bit的需要,8顆可以滿足高端卡256bit的需要;而低端GDDR2顆粒為16bit,需要8顆才能組成低端卡128bit的需要。
● 內(nèi)存芯片的邏輯Bank
在芯片的內(nèi)部,內(nèi)存的數(shù)據(jù)是以bit為單位寫入一張大的矩陣中,每個單元稱為CELL陣列,只要指定一個行一個列,就可以準確地定位到某個CELL,這就是內(nèi)存芯片尋址的基本原理。這個陣列我們就稱為內(nèi)存芯片的BANK,也稱之為邏輯BANK(Logical BANK)。
不可能只做一個全容量的邏輯Bank,因為單一的邏輯Bank將會造成非常嚴重的尋址沖突,大幅降低內(nèi)存效率。所以大容量內(nèi)存顆粒都是由多個邏輯Bank疊加而成的。簡單來說,我們可以把一個Bank看作是一片平面的矩陣紙,而內(nèi)存顆粒是由多片這樣的紙疊起來的。
一個Bank的位寬就是內(nèi)存顆粒的位寬,內(nèi)存控制器一次只允許對一個Bank進行操作,由于邏輯Bank的地址線是公用的,所以在讀寫時需要加一個邏輯Bank的編號,這個動作被稱為片選。
● 內(nèi)存條的物理Bank
內(nèi)存控制器的位寬必須與內(nèi)存條的位寬相等,這樣才能在一個時鐘周期內(nèi)傳輸所有數(shù)據(jù),這個位寬就被成為一個物理Bank(通常是64bit),每條內(nèi)存至少包含一個Bank,多數(shù)情況下?lián)碛卸€物理Bank。
一個物理Bank不會造成帶寬浪費,理論上是最合理的配置,但為了實現(xiàn)大容量內(nèi)存,單條內(nèi)存多物理Bank也是允許的,但內(nèi)存控制器所能允許的最大Bank數(shù)存在上限,常見的是雙物理Bank設計,只有特殊內(nèi)存或者服務器內(nèi)存才會使用四Bank以上的設計,因為這種內(nèi)存兼容性不好,“挑”芯片組。
事實上顯卡上也存在雙物理Bank設計,目的就是為了實現(xiàn)超大顯存容量,比如1GB的9800GT,正反兩面共有16顆16M×32bit的GDDR3顯存,總位寬達512bit,實際上顯存控制器只支持256bit,這樣就是雙物理Bank。
● 內(nèi)存異步工作模式
包含多種意義,在廣義上凡是內(nèi)存工作頻率與CPU的外頻不一致時都可以稱為內(nèi)存異步工作模式。首先,最早的內(nèi)存異步工作模式出現(xiàn)在早期的主板芯片組中,可以使內(nèi)存工作在比CPU外頻高33MHz或者低33MHz的模式下(注意只是簡單相差33MHz),從而可以提高系統(tǒng)內(nèi)存性能或者使老內(nèi)存繼續(xù)發(fā)揮余熱。其次,在正常的工作模式(CPU不超頻)下,目前不少主板芯片組也支持內(nèi)存異步工作模式,例如Intel 910GL芯片組,僅僅只支持533MHz FSB即133MHz的CPU外頻,但卻可以搭配工作頻率為133MHz的DDR 266、工作頻率為166MHz的DDR 333和工作頻率為200MHz的DDR 400正常工作(注意此時其CPU外頻133MHz與DDR 400的工作頻率200MHz已經(jīng)相差66MHz了),只不過搭配不同的內(nèi)存其性能有差異罷了。再次,在CPU超頻的情況下,為了不使內(nèi)存拖CPU超頻能力的后腿,此時可以調(diào)低內(nèi)存的工作頻率以便于超頻,例如AMD的Socket 939接口的Opteron 144非常容易超頻,不少產(chǎn)品的外頻都可以輕松超上300MHz,而此如果在內(nèi)存同步的工作模式下,此時內(nèi)存的等效頻率將高達DDR 600,這顯然是不可能的,為了順利超上300MHz外頻,我們可以在超頻前在主板BIOS中把內(nèi)存設置為DDR 333或DDR 266,在超上300MHz外頻之后,前者也不過才DDR 500(某些優(yōu)品內(nèi)存可以達到),而后者更是只有DDR 400(完全是正常的標準頻率),由此可見,正確設置內(nèi)存異步模式有助于超頻成功。
目前的主板芯片組幾乎都支持內(nèi)存異步,英特爾公司從810系列之后都支持,而威盛公司則從693芯片組以后全部都提供了此功能。
使用Windows的人都知道虛擬內(nèi)存,簡而言之,虛擬內(nèi)存技術(shù)事實上是用硬盤來代替內(nèi)存的一種做法,如果計算機缺少運行程序或操作所需的隨機存取內(nèi)存 (RAM),則Windows 使用虛擬內(nèi)存進行補償。
虛擬內(nèi)存將計算機的RAM和硬盤上的臨時空間組合在一起。當 RAM 運行速度緩慢時,虛擬內(nèi)存將數(shù)據(jù)從 RAM 移動到稱為“分頁文件”的空間中。將數(shù)據(jù)移入與移出分頁文件可以釋放 RAM,以便完成工作。
一般而言,計算機的 RAM 越多,程序運行得越快。如果計算機的速度由于缺少 RAM 而降低,則可以嘗試增加虛擬內(nèi)存來進行補償。但是,計算機從 RAM 讀取數(shù)據(jù)的速度要比從硬盤讀取數(shù)據(jù)的速度快得多,因此增加 RAM 是更好的方法。
不知大家有沒有發(fā)現(xiàn),在Windows目錄下有一個名為pagefile.sys的系統(tǒng)文件(Windows98下為Win386.swp),它的大小經(jīng)常自己發(fā)生變動,小的時候可能只有幾十兆,大的時候則有數(shù)百兆,這種毫無規(guī)律的變化實在讓很多人摸不著頭腦。其實,pagefile.sys是Windows下的一個虛擬內(nèi)存,它的作用與物理內(nèi)存基本相似,但它是作為物理內(nèi)存的“后備力量”而存在的,但是,它并不是在只有物理內(nèi)存不夠用時才發(fā)揮作用的,也就是說在物理內(nèi)存夠用時也有可能使用虛擬內(nèi)存,如果你虛擬內(nèi)存設置過小則會提示“虛擬內(nèi)存不足”。
我們都知道,雖然在運行速度上硬盤不如內(nèi)存,但在容量上內(nèi)存是無法與硬盤相提并論的。當運行一個程序需要大量數(shù)據(jù)、占用大量內(nèi)存時,內(nèi)存就會被“塞滿”,并將那些暫時不用的數(shù)據(jù)放到硬盤中,而這些數(shù)據(jù)所占的空間就是虛擬內(nèi)存?,F(xiàn)在我們也明白為什么pagefile.sys的大小會經(jīng)常變化了。
內(nèi)存在計算機中的作用很大,電腦中所有運行的程序都需要經(jīng)過內(nèi)存來執(zhí)行,如果執(zhí)行的程序分配的內(nèi)存的總量超過了內(nèi)存大小,就會導致內(nèi)存消耗殆盡。為了解決這個問題,Windows中運用了虛擬內(nèi)存技術(shù),即拿出一部分硬盤空間來充當內(nèi)存使用,當內(nèi)存占用完時,電腦就會自動調(diào)用硬盤來充當內(nèi)存,以緩解內(nèi)存的緊張。
舉個例子來說,壓縮程序在壓縮時有時候需要讀取文件的很大一部分并保存在內(nèi)存中作反復的搜索。假設內(nèi)存大小是128MB,而要壓縮的文件有 200MB,且壓縮軟件需要保存在內(nèi)存中的大小也是 200MB,那么這時操作系統(tǒng)就要權(quán)衡壓縮程序和系統(tǒng)中的其他程序,把多出來的那一部分數(shù)據(jù)放進交換文件。
嚴格意義上說,CPU是不能和內(nèi)存直接對話的,而連接它們的橋梁就是內(nèi)存控制器??赡芤恍┡笥褜@個集成在主板上或者CPU里的這個玩意不太熟悉,這里就詳細介紹一下。
● 傳統(tǒng)型和CPU整合型
內(nèi)存控制器分為傳統(tǒng)型和整合型兩種。傳統(tǒng)的計算機系統(tǒng)其內(nèi)存控制器位于主板芯片組的北橋芯片內(nèi)部,CPU要和內(nèi)存進行數(shù)據(jù)交換,需要經(jīng)過“CPU--北橋--內(nèi)存--北橋--CPU”五個步驟。
26個數(shù)據(jù)A~Z,要傳送到CPU,這時候CPU就向北橋發(fā)出指令(因為內(nèi)存控制器是集成在北橋上,說所以要經(jīng)過北橋),內(nèi)存通過內(nèi)存控制器接受到了指令,這個指令就是把內(nèi)存上b單元的A~Z數(shù)據(jù)傳送到CPU,內(nèi)存這個時候開始取數(shù)據(jù),也就是平常所說的尋址。當內(nèi)存找到了這個數(shù)據(jù),而這26個數(shù)據(jù)每個數(shù)據(jù)為500MB,所有數(shù)據(jù)總和就約為12GB,假設內(nèi)存為雙通道R2 800,數(shù)據(jù)傳輸率就為800MHZ乘以128BIT除以8比特每字節(jié)=12GB每秒,通過分析,認為只需一秒就能傳送到CPU,此時的數(shù)據(jù)在一秒的時間內(nèi)只傳送到了北橋,內(nèi)存控制器在北橋,在北橋的數(shù)據(jù)如何傳送到CPU呢,這就要通過FSB前端總線了,假設FSB的頻率為800MHZ,那么數(shù)據(jù)傳輸率就為800MHZ乘以64BIT除以8比特每秒=6.4GB每秒,從北橋到CPU要2秒,所以數(shù)據(jù)傳送到CPU的總時間為3秒。
集成內(nèi)存控制器,就是在CPU的基板上內(nèi)置一個內(nèi)存控制器,CPU集成內(nèi)存控制器的時候,數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)娇刂破魍瑯訛?秒,所不同的是這個時候不用再通過慢吞吞的前端總線了,CPU直接從內(nèi)存控制器讀取數(shù)據(jù)就行了,因為內(nèi)存控制器就和CPU集成在一起,所用時間短到幾乎可以忽略。打個比方,一件東西在你旁邊的時候,順手就拿了,而不用跑去取,這樣集成內(nèi)存控制器的CPU讀取12GB的數(shù)據(jù)僅僅用了1秒的時間,大大節(jié)省了數(shù)據(jù)傳輸時間,CPU也不會因為等待數(shù)據(jù)而窩工。
總而言之,內(nèi)存控制器在北橋時,數(shù)據(jù)以內(nèi)存控制器---北橋----CPU的方式傳輸。CPU集成內(nèi)存控制器時:數(shù)據(jù)以內(nèi)存控制器------CPU的方式傳輸,不用繞道北橋,一步到位。
DDR3內(nèi)存控制器
將內(nèi)存控制器整合到CPU內(nèi)部顯然是今后的發(fā)展方向,而且其技術(shù)也會越來越完善。AMD的在K8系列CPU及其之后的產(chǎn)品(包括Socket 754/939/940等接口的各種處理器),CPU的內(nèi)部則整合了內(nèi)存控制器。Intel在酷睿i5、酷睿i7 系列CPU中,也引入了整合內(nèi)存控制器的方案。
● 內(nèi)存控制器的計算
以AMD CPU為例:Socket 939時代CPU主頻與倍頻直接相除就是CPU內(nèi)存控制器所支持的內(nèi)存頻率。到了DDR2時代的AM2處理器,雖然核心方面同樣內(nèi)置了DDR2的內(nèi)存控制器, 但與過去的Socket 939接口不同的是,它所支持的內(nèi)存頻率被更新至DDR2-800的水平。CPU主頻和倍頻直接相除結(jié)果和內(nèi)存頻率也不一定要是1:1,可以有多種比值可選。
● CPU內(nèi)存集成內(nèi)存控制器是否存在缺點?
CPU內(nèi)部整合內(nèi)存控制器的優(yōu)點顯而易見,就是可以有效控制內(nèi)存控制器工作在與CPU核心同樣的頻率上,而且由于內(nèi)存與CPU之間的數(shù)據(jù)交換無需經(jīng)過北橋,可以有效降低傳輸延遲。這就如同將貨物倉庫直接搬到了加工車間旁邊,大大減少了原材料和制成品在貨物倉庫和加工車間之間往返運輸所需要的時間,極大地提高了生產(chǎn)效率。這樣一來系統(tǒng)的整體性能也得到了提升。有人說集成內(nèi)存控制器的CPU也有缺點,以Intel的酷睿i系列為例,只能支持DDR3內(nèi)存,而之前的北橋集成內(nèi)存控制器的時候可以兼容DDR2內(nèi)存。其實這是一個誤區(qū),因為之前北橋之所以兼容DDR2是因為北橋中同時集成DDR2和DDR3的內(nèi)存控制器,而新一代的i系列Intel放棄了DDR2控制器,所以造成了向下不兼容的情況。而AMD的CPU就沒有這種情況,只要主板上有DDR2插槽,插上都能用。當然,DDR2和DDR3同時混插是絕對不行的。
作為顯示卡的重要組成部分,顯存一直隨著顯示芯片的發(fā)展而逐步改變著。從早期的EDORAM、MDRAM、SDRAM、SGRAM、VRAM、WRAM、GDDR歷代到今天廣泛采用的GDDR5顯存經(jīng)歷了很多代的進步。
● FPM DRAM
FPM DRAM(Fast Page Mode RAM): 快速頁面模式內(nèi)存。是一種在486時期被普遍應用的內(nèi)存(也曾應用為顯存)。72線、5V電壓、帶寬32bit、基本速度60ns以上。它的讀取周期是從DRAM陣列中某一行的觸發(fā)開始,然后移至內(nèi)存地址所指位置,即包含所需要的數(shù)據(jù)。第一條信息必須被證實有效后存至系統(tǒng),才能為下一個周期作好準備。這樣就引入了“等待狀態(tài)”,因為CPU必須傻傻的等待內(nèi)存完成一個周期。FPM之所以被廣泛應用,一個重要原因就是它是種標準而且安全的產(chǎn)品,而且很便宜。但其性能上的缺陷導致其不久就被EDO DRAM所取代。
● EDO
EDO (Extended Data Out) DRAM,與FPM相比EDO DRAM的速度要快5%,這是因為EDO內(nèi)設置了一個邏輯電路,借此EDO可以在上一個內(nèi)存數(shù)據(jù)讀取結(jié)束前將下一個數(shù)據(jù)讀入內(nèi)存。設計為系統(tǒng)內(nèi)存的EDO DRAM原本是非常昂貴的,只是因為PC市場急需一種替代FPM DRAM的產(chǎn)品,所以被廣泛應用在第五代PC上。EDO顯存可以工作在75MHz或更高,但是其標準工作頻率為66 MHz,不過其速度還是無法滿足顯示芯片的需要,也早成為“古董級”產(chǎn)品上才有的顯存。
SDRAM,即Synchronous DRAM(同步動態(tài)隨機存儲器),曾經(jīng)是PC電腦上最為廣泛應用的一種內(nèi)存類型。既然是“同步動態(tài)隨機存儲器”,那就代表著它的工作速度是與系統(tǒng)總線速度同步的。SDRAM內(nèi)存又分為PC66、PC100、PC133等不同規(guī)格,比如PC100,那就說明此內(nèi)存可以在系統(tǒng)總線為100MHz的電腦中同步工作。與系統(tǒng)總線速度同步,也就是與系統(tǒng)時鐘同步,這樣就避免了不必要的等待周期,減少數(shù)據(jù)存儲時間。SDRAM采用3.3伏工作電壓,168Pin的DIMM接口,帶寬為64位。
SDRAM時代之前,顯卡上用的“顯存顆?!迸c內(nèi)存條上的“內(nèi)存顆?!笔峭耆嗤?。在那個時候,GPU本身的運算能力有限,對數(shù)據(jù)帶寬的要求自然也不高,所以內(nèi)存顆粒就可以滿足要求。
某TNT2顯卡,使用的是PC166的SDR內(nèi)存顆粒
● SGRAM
SGRAM是Synchronous Graphics DRAM的縮寫,意思是同步圖形RAM是種專為顯卡設計的顯存,是一種圖形讀寫能力較強的顯存,由SDRAM改良而成。它改進了過去低效能顯存?zhèn)鬏斅瘦^低的缺點,為顯示卡性能的提高創(chuàng)造了條件。SGRAM讀寫數(shù)據(jù)時不是一一讀取,而是以"塊"(Block)為單位,從而減少了內(nèi)存整體讀寫的次數(shù),提高了圖形控制器的效率。但其設計制造成本較高,更多的是應用于當時較為高端的顯卡,后被GDDR顯存所取代。
● 內(nèi)存滿足不了顯卡的需求,顯存應運而生
本是同根生的狀況一直持續(xù)到SDR和DDR交接的時代,其實最早用在顯卡上的DDR顆粒與用在內(nèi)存上的DDR顆粒仍然是一樣的。后來由于GPU特殊的需要,顯存顆粒與內(nèi)存顆粒開始分道揚鑣,這其中包括了幾方面的因素:
1. GPU需要比CPU更高的帶寬。GPU不像CPU那樣有大容量二三級緩存,GPU與顯存之間的數(shù)據(jù)交換遠比CPU頻繁,而且大多都是突發(fā)性的數(shù)據(jù)流,因此GPU比CPU更加渴望得到更高的顯存帶寬支持。
位寬×頻率=帶寬,因此提高帶寬的方法就是增加位寬和提高頻率,但GPU對于位寬和頻率的需求還有其它的因素。
2.顯卡需要高位寬的顯存。顯卡PCB空間是有限的,在有限的空間內(nèi)如何合理的安排顯存顆粒,無論高中低端顯卡都面臨這個問題。從布線、成本、性能等多種角度來看,顯存都需要達到更高的位寬。
最早的顯存是單顆16bit的芯片,后來升級到32bit,將來甚至還會有更高的規(guī)格出現(xiàn)。而內(nèi)存則沒有那么多要求,多年來內(nèi)存條都是64bit,所以單顆內(nèi)存顆粒沒必要設計成高位寬,只要提高容量就行了,所以位寬一直維持在4/8bit。
3.顯卡能讓顯存達到更高的頻率。顯存顆粒與GPU配套使用時,一般都經(jīng)過專門的設計和優(yōu)化,而不像內(nèi)存那樣有太多顧忌。GPU的顯存控制器比CPU或北橋內(nèi)存控制器性能優(yōu)異,而且顯卡PCB可以隨意的進行優(yōu)化,因此顯存一般都能達到更高的頻率。而內(nèi)存受到內(nèi)存PCB、主板走線、北橋CPU得諸多因素的限制很難沖擊高頻率
由此算來,顯存與內(nèi)存“分家”既是意料之外,又是情理之中的事情了。為了更好地滿足顯卡GPU的特殊要求,一些廠商(如三星等)推出了專門為圖形系統(tǒng)設計的高速DDR顯存,稱為“Graphics Double Data Rate DRAM”,也就是我們現(xiàn)在常見的GDDR。
● GDDR——顯存和內(nèi)存正式分家
GDDR作為第一代專用的顯存芯片,其實在技術(shù)方面與DDR沒有任何區(qū)別,同樣采用了2bit預取技術(shù),理論頻率GDDR并不比DDR高多少。不過后期改進工藝的GDDR有了優(yōu)秀PCB的顯卡支持之后,GDDR顯存最高沖刺至900MHz,而DDR內(nèi)存只能達到600MHz左右,顯存和內(nèi)存的差距從此逐漸拉開。
-
TSOP封裝的GDDR 16bit:
8M×16Bit 4.0ns TSOP II封裝的GDDR,單顆16MB,理論頻率500MHz
當年9550、FX5700等128Bit中端卡需要搭配8顆才能組成128Bit
TSOP封裝的GDDR顆粒,外觀規(guī)格特性都與DDR內(nèi)存顆粒沒有什么區(qū)別,所以在很多人看來“GDDR”與“DDR”是可以“劃等號”的。其實兩者還是有些差別:
-
GDDR采用4K循環(huán)32ms的刷新周期,而DDR采用8K循環(huán)64ms的刷新周期;
-
GDDR為了追求頻率在延遲方面放的更寬一些,畢竟GPU對延遲不太敏感;
-
GDDR顆粒的容量小、位寬大,一般是8×16Bit(16MB)的規(guī)格,而DDR顆粒的容量大、位寬小,雖然也有16Bit的顆粒,但最常見的還是8Bit和4Bit,單顆容量32MB或64MB。
為了實現(xiàn)更大的位寬,并進一步提升GDDR的性能,后期很多廠商改用了電氣性能更好的MBGA封裝,當然也有內(nèi)存顆粒使用MBGA封裝,但規(guī)格已有了較大差異,主要是顆粒位寬不同。
-
MBGA封裝的GDDR 32bit:
4M×32Bit 2.2ns MBGA封裝的GDDR,單顆16MB,理論頻率900MHz
8顆組成128MB 256Bit規(guī)格,是GDDR1最后的輝煌。
MBGA封裝GDDR的單顆位寬首次達到了32Bit,從此就標志著GDDR與DDR正式分道揚鑣,32Bit的規(guī)格被GDDR2/3/4/5一直沿用至今。
GDDR顯存的這兩種封裝:MBGA與TSOP構(gòu)成的高低配,曾一度一統(tǒng)顯卡市場。雖然GDDR已經(jīng)退出歷史舞臺,但32Bit主攻中高端、16Bit主攻低端的局面,時至今日依然得到了延續(xù)。
GDDR2源于DDR2技術(shù),也就是采用了4Bit預取,相比DDR1代可以將頻率翻倍。雖然技術(shù)原理相同,但GDDR2要比DDR2早了將近兩年時間,首次支持DDR2內(nèi)存的915P主板于2004年中發(fā)布,而首次搭載GDDR2顯存的FX5800Ultra于2003年初發(fā)布,但早產(chǎn)兒往往是短命的。
NVIDIA在設計NV30芯片時依然保持128Bit顯存位寬,為了提高帶寬必須使用高頻顯存,700MHz的GDDR已經(jīng)無法滿足需求了,于是冒險嘗試GDDR2。第一代GDDR2受制造工藝限制,電壓規(guī)格還是和DDR/GDDR一樣的2.5V,雖然勉強將頻率提升至1GHz左右,但功耗發(fā)熱出奇的大。
4M×32Bit 2.0ns MBGA 144Ball封裝的GDDR2,單顆16MB,理論頻率1000MHzGDDR2第一版只有2.2ns和2.0ns兩種速度。
GDDR2第一版只在FX5800/Ultra和FX5600Ultra這三款顯卡上出現(xiàn)過(也包括對應的專業(yè)卡及個別非公版顯卡),ATI也有極少數(shù)9800Pro使用了GDDR2。高電壓、高發(fā)熱、高功耗、高成本給人的印象非常差。隨著FX5900改用GDDR及256Bit,GDDR2很快被人遺忘。
FX5800Ultra需要為顯存專門安裝厚重的散熱片
GDDR2失敗的主要原因是NVIDIA GeForce FX系列架構(gòu)和性能的問題,之后即便改用了256Bit高頻GDDR(此時GDDR的頻率已被提升至850-900MHz,直逼GDDR2),F(xiàn)X5950Ultra依然不是9800XT的對手。當然GDDR2自身規(guī)格的不完善也造成了它無法入住中低端顯卡,被時代所遺棄。
GDDR2雖然壞毛病一大堆,但它也擁有一些新的特性,比如首次使用片內(nèi)終結(jié)電阻,PCB設計比GDDR更加簡潔,這個特性被后來的gDDR2和GDDR3繼承。
gDDR2第二版相對于第一版的改進主要有:
-
工作電壓從2.5V降至1.8V,功耗發(fā)熱大降;
-
制造工藝有所進步,功耗發(fā)熱進一步下降,成本降低,同時良率和容量有所提升;
-
顆粒位寬從32Bit降至16Bit,只適合低端顯卡使用;
-
封裝形式從144Ball MBGA改為84Ball FBGA,外觀上來看從正方形變成長方形或者長條形;
由于電壓的下降,第二代gDDR2的頻率要比第一代GDDR2低,主要以2.5ns(800MHz)和2.2ns(900MHz)的規(guī)格為主,當然也有2.8ns(700MHz)的型號。直到后期制造工藝上去之后,第二代gDDR2才以1.8V電壓突破了1000MHz,最高可達1200MHz,趕超了第一代高壓GDDR2的記錄。
采用gDDR2顯存的經(jīng)典顯卡有:7300GT、7600GS、X1600Pro、8500GT……一大堆低端顯卡。
三星官方網(wǎng)站對于顯存的分類
相信很多朋友也注意到了,本頁gDDR2的第一個字母為小寫,幾大DRAM廠商在其官方網(wǎng)站和PDF中就都是這么寫的,以示區(qū)分。我們可以這么認為:大寫G表示顯卡專用,32bit定位高端的版本;而小寫g表示為顯卡優(yōu)化,16bit定位低端的版本,本質(zhì)上與內(nèi)存顆粒并無區(qū)別。
事實上,GDDR3和gDDR3之間也是這種關(guān)系,稍后我們會做詳細介紹。
GDDR源于DDR,GDDR2源于DDR2,而GDDR3在頻率方面的表現(xiàn)又與DDR3比較相似,于是很多人認為GDDR3就是顯存版的DDR3,這可是個天大的誤區(qū)。
● GDDR3:一代王者GDDR3源于DDR2技術(shù)
無論GDDR還是GDDR2,由于在技術(shù)方面與DDR/DDR2并無太大差別,因此最終在頻率方面GDDR并不比DDR高太多。在經(jīng)歷了GDDR2的失敗之后,兩大圖形巨頭NVIDIA和ATI對JEDEC組織慢如蝸牛般的標準制訂流程感到越來越失望,認為他們制定的顯存不能適應GPU快節(jié)奏的產(chǎn)品更新?lián)Q代周期,于是NVIDIA和ATI的工作人員積極參與到了JEDEC組織當中,以加速顯存標準的起草及制定。
雙方一致認為,顯存與內(nèi)存在數(shù)據(jù)存儲的應用方面完全不同,在內(nèi)存核心頻率(電容刷新頻率)無法提升的情況下,單純提高I/O頻率來獲得高帶寬很不現(xiàn)實。因此,必須要有一種針對高速點對點環(huán)境而重新定義的I/O接口。于是GDDR3誕生了,這是第一款真正完全為GPU設計的存儲器。
GDDR3和GDDR2/DDR2一樣,都是4Bit預取架構(gòu),GDDR3主要針對GDDR2高功耗高發(fā)熱的缺點進行改進,并提升傳輸效率來緩解高延遲的負面影響。
● 點對點DQS,讀寫無需等待
GDDR2只有一條數(shù)據(jù)選擇脈沖(DQS),是單一雙向的,而GDDR3則擁有讀與寫兩條獨立的DQS,而且是點對點設計。這樣做的好處在于,在讀取之后如果馬上進行寫入時,不必再等DQS的方向轉(zhuǎn)變,由此實現(xiàn)讀寫操作的快速切換。
相比GDDR2/DDR2,GDDR3的讀寫切換動作可以少一個時鐘周期,如果需要對某一個連續(xù)的區(qū)塊同時讀寫數(shù)據(jù)時,GDDR3的速度就要比GDDR2快一倍。
由于存儲單元自身的特性,內(nèi)存顆粒的邏輯Bank是無法同時讀寫數(shù)據(jù)的,并不存在“全雙工”一說,但GDDR3的這項改進讓順序讀寫成為可能。GPU本身緩存很小,與顯存之間的數(shù)據(jù)交換極其頻繁,讀寫操作穿插進行,因此GDDR3點對點設計的DQS可以讓顯存存儲效率大增。但對于CPU來說,讀寫切換并不如GPU那么頻繁,而且CPU擁有大容量的二三級緩存,所以GDDR3這種設計并不能極大的提升內(nèi)存帶寬,也沒有引入到下一代DDR3當中。
● 改進I/O接口,簡化數(shù)據(jù)處理,控制功耗
同時GDDR3也對I/O控制電路和終結(jié)電阻進行了修改,它不再沿用GDDR2的“推式(Push Pull)”接收器,而將其改為虛擬開極邏輯方式(Pseudo Open Drain Logic),并且通過將所有的三相數(shù)據(jù)信號轉(zhuǎn)移到本位電路上,來簡化數(shù)據(jù)處理,將DC電流壓至最小,只有當邏輯LOW移至總線上時才會消費電力,從而很好的控制了功耗和發(fā)熱。
GDDR3的頻率能達到現(xiàn)在這么高,其實并沒有什么訣竅,憑借的就是不斷改進的工藝制程,來暴力拉升頻率。資歷稍老點的玩家應該知道,GDDR3于2004年初次登臺亮相時,6600GT的顯存頻率僅為1GHz,并不比GDDR2高,5年過去了,GDDR3從1GHz一路攀升至2GHz甚至2.5GHz,生命力得到了延續(xù)。
明白了GDDR3的原理技術(shù)后,再來看看實物。GDDR3和GDDR1類似,也有兩種封裝形式:
● 144Ball MBGA封裝,為了向下兼容GDDR和GDDR2
最初的GDDR3采用了144Ball MBGA封裝,這與GDDR和GDDR2第一版完全相同,外觀也是正方形,三者的電氣性能相似,支持GDDR3的GPU也可使用GDDR顯存,PCB和電路只需做少量調(diào)整。
144Ball封裝的GDDR3只有8M×32Bit一種規(guī)格,所以8顆顯存組成256MB 256Bit、或者4顆顯存組成128MB 128Bit是當時的主流。5700Ultra就首次使用了GDDR3取代了GDDR2。
144Ball封裝的GDDR3主要有2.0ns(1000MHz)和1.6ns(1250MHz)兩種速度,1.4ns良率不高產(chǎn)量很小,最高頻率止步于1400MHz。曾被7800GTX/GT、6800GS、6600GT、X850/X800/X700等顯卡大量采用。由于144Ball封裝及PCB電路限制了其頻率的提升,很快GDDR3就改用了電氣性能更好的136Ball FBGA封裝。
● 136Ball FBGA封裝,頻率容量節(jié)節(jié)攀升
為了提高電氣性能和環(huán)保水平,從2005年開始,GDDR3開始采用全新的136Ball FBGA封裝,并統(tǒng)一使用無鉛封裝工藝。新封裝使得顯卡PCB必須重新設計,但也為GDDR3的騰飛鋪平了道路。
三星0.8ns GDDR3顯存 16M×32Bit規(guī)格
136Ball封裝GDDR3的優(yōu)勢如下:
-
規(guī)格不再局限于8M×32Bit一種,16M×32Bit成為主流,目前32M×32Bit已大量采用;
-
伴隨著制造工藝的進步,額定電壓從2.0V進一步降至1.8V,但一些高頻顆??蛇m當加壓;
-
速度從1.4ns起跳,經(jīng)過1.2ns、1.1ns、1.0ns一路發(fā)展至0.8ns、0.7ns,最快速度可突破2500MHz,但這是以犧牲延遲為代價的,好在GPU對延遲不太敏感;
當GDDR3的頻率首次達到2000MHz時,很多人都認為離極限不遠了,于是未雨綢繆的抓緊制定GDDR4規(guī)范,但沒想到在DRAM廠商的努力及新工藝的支持下,GDDR3的生命得到了延續(xù),0.8ns 0.7ns的型號相繼量產(chǎn),而且容量更大的32M×32Bit顆粒也成為主流,基本上能夠滿足高中低端所有顯卡的需要。
當前速度最快0.77ns GDDR3顯存顆粒,理論頻率可達2600MHz
當年2.2ns GDDR最高可達900MHz,核心頻率和I/O頻率止步于450MHz。經(jīng)過5年時間的發(fā)展,GDDR3憑借新工藝終于在核心頻率和I/O頻率方面取得突破,核心頻率可達600MHz以上,I/O頻率超過1200MHz,此時過高的I/O頻率成為了新的瓶頸。
GDDR3采用了DDR2的4bit預取技術(shù),所以采用DDR3 8bit預取技術(shù)的顯存只能按順序命名為GDDR4。GDDR4是在GDDR3的基礎上發(fā)展而來的,它繼承了GDDR3的兩大技術(shù)特性,但內(nèi)核改用DDR3的8bit預取技術(shù),并加入了一些新的技術(shù)來提升頻率。
● GDDR4的技術(shù)特性:
使用DDR3的8bit預取技術(shù),以較低的核心頻率達到更高帶寬,但延遲增加;
采用數(shù)據(jù)總線轉(zhuǎn)位技術(shù)(DBI,Data Bus Inversion,下文做詳細介紹),提高數(shù)據(jù)精度,降低功耗;
地址線只有GDDR3的一半,多余線用于電源和接地,有利于提升頻率,但導致延遲增加;
采用多重同步碼(Multi-Preamble)技術(shù),解決了GDDR3存在的爆發(fā)限制(Burst Limitation),從連續(xù)地址讀取少量數(shù)據(jù)時的性能大幅提升;
電壓從1.8V降至1.5V;
同頻功耗下降75%,2400MHz的GDDR4功耗只有2000MHz GDDR3的一半;
采用136Ball FBGA封裝,單顆32Bit,向下兼容GDDR3;
GDDR4的確更好超,但性能提升有限
由于采用了8bit預取技術(shù),因此在相同頻率下GDDR4的核心頻率(即電容刷新頻率)只有GDDR3的一半,理論上來講GDDR4最高頻率可達GDDR3的兩倍。但值得注意的是,雖然核心頻率通過8bit預取技術(shù)減半,但GDDR4與GDDR3的I/O頻率是完全相同的,因此GDDR4頻率提升的瓶頸在于I/O頻率而不是核心頻率。
由于制造工藝和技術(shù)水平的限制,雖然三星官方宣稱早已生產(chǎn)出3GHz以上的GDDR4,但實際出貨的GDDR4只有2GHz-2.5GHz,此后改進工藝的GDDR3也追平了這一頻率。在相同頻率下,GDDR4比起GDDR3雖然功耗發(fā)熱低,但延遲大性能稍弱,再加上成本高產(chǎn)量小,GDDR4遭受冷落并不意外。
● 導致GDDR4失敗的非技術(shù)方面原因
GDDR3是NVIDIA和ATI參與JEDEC組織后共同制定的顯存標準,而GDDR4在標準制定過程中雙方產(chǎn)生了較大的分歧。NVIDIA較為保守,認為應該保持DDR2 4bit預取技術(shù)不變,繼續(xù)改進I/O控制器來提升頻率;而ATI則比較激進,準備直接使用DDR3 8bit預取技術(shù)。
雙方爭執(zhí)的結(jié)果就是在JEDEC組織中德高望重的ATI獲勝(據(jù)稱ATI有位高層在JEDEC身居要職),而NVIDIA則明確表示不支持GDDR4。因此GDDR4其實就是ATI一手策劃的,但得不到NVIDIA支持的話,GDDR4立馬就失去了6成以上的市場,由此導致DRAM廠不敢貿(mào)然投產(chǎn)。
最終只有三星一家生產(chǎn)了少量的GDDR4顯存,其他家都在觀望。當然其他DRAM廠商都沒閑著,它們把精力都投在了深挖GDDR3的潛力當中,于是我們看到了GDDR3的頻率節(jié)節(jié)攀升,GDDR4在沒有成本優(yōu)勢的情況下,也沒有頻率優(yōu)勢,恰好當時的幾代A卡更沒有性能優(yōu)勢,GDDR4自然只有死路一條。
只有ATI生產(chǎn)過搭載GDDR4的顯卡,數(shù)量雖然不多但橫跨了三代產(chǎn)品:X1950XTX、HD2600XT和HD3870(也包括對應的專業(yè)卡)——與當年NVIDIA使用GDDR2的顯卡數(shù)量相等。NVIDIA在遭遇滑鐵盧后果斷放棄了GDDR2,而ATI對于GDDR4則是難以割舍,三年時間三代產(chǎn)品都有使用,但一直都是非主流。
GDDR4的失敗并不是技術(shù)原因,和當年的GDDR2相比它要成熟很多,沒推起來的原因主要是對手太強:ATI的對手NVIDIA很強大,另外GDDR4的對手GDDR3生命力太頑強了。
即便使用了8bit預取技術(shù),可GDDR4還是沒有與GDDR3拉開頻率差距,因為瓶頸在I/O控制器上面而不是內(nèi)核,而GDDR5就是用來解決這一瓶頸的。
● GDDR5:恐怖的頻率是如何達成的
和GDDR4一樣,GDDR5采用了DDR3的8bit預取技術(shù),核心頻率顯然不是瓶頸,如何提升I/O頻率才是當務之急。但GDDR5并沒有讓I/O頻率翻倍,而是使用了兩條并行的DQ總線,從而實現(xiàn)雙倍的接口帶寬。
GDDR5各項總線工作頻率示意圖
雙DQ總線的結(jié)果就是,GDDR5的針腳數(shù)從GDDR3/4的136Ball大幅增至170Ball,相應的GPU顯存控制器也需要重新設計。GDDR5顯存擁有多達16個物理Bank,這些Bank被分為四組,雙DQ總線交叉控制四組Bank,達到了實時讀寫操作,一舉將數(shù)據(jù)傳輸率提升至4GHz以上!
以往GDDR1/2/3/4和DDR1/2/3的數(shù)據(jù)總線都是DDR技術(shù)(通過差分時鐘在上升沿和下降沿各傳輸一次數(shù)據(jù)),官方標稱的頻率X2就是數(shù)據(jù)傳輸率,也就是通常我們所說的等效頻率。而GDDR5則不同,它有兩條數(shù)據(jù)總線,相當于Rambus的QDR技術(shù),所以官方標稱頻率X4才是數(shù)據(jù)傳輸率。比如HD4870官方顯存頻率是900MHz,而大家習慣稱之為3600MHz。
● 失敗乃成功之母,冒險使用GDDR5助RV770挑戰(zhàn)GTX200
GDDR4的失敗并沒有阻擋ATI前進的腳步,在意識到GDDR4頻率提升的瓶頸之后,GDDR5草案的制定就被提上日程,ATI和NVIDIA技術(shù)人員重新聚首,開展第二次合作共商大計。GDDR5吸取了前輩們的諸多優(yōu)點,可謂是取其精華棄其糟粕,在I/O改進方面雙方也不再有太多矛盾。
技術(shù)方面的問題不難解決,最難的是時間和進度。ATI在R600上面冒險使用512Bit顯存控制器來提升顯存帶寬,結(jié)果輸?shù)靡粩⊥康兀谑荝V670只好回歸256Bit,導致性能原地踏步。而GDDR4相比GDDR3沒有頻率優(yōu)勢,因此ATI迫切的需要GDDR5迅速投產(chǎn)以滿足新一代GPU的需要,RV770只有256Bit,急需高頻顯存的支持。
對手NVIDIA對于GDDR5當然很感興趣,但卻一點都不著急,保守的NVIDIA決定堅守GDDR3,GTX200核心使用了512Bit顯存控制器來提升帶寬。比起R600的環(huán)形總線,NVIDIA從256Bit到384Bit再到512Bit一步一個腳印走出來的交叉總線顯然更加成熟。
以256Bit對抗512Bit,ATI只能將籌碼全部押在GDDR5身上,于是在GDDR5標準尚未完全確立之前,ATI已經(jīng)在緊鑼密鼓的測試性能,并督促DRAM廠投產(chǎn)??梢哉fGDDR5和GDDR2/4一樣也是個早產(chǎn)兒,但失敗乃成功之母,有了完善的技術(shù)規(guī)格和制造工藝的支持,GDDR5一出世便令人刮目相看。
憑借GDDR5翻倍的數(shù)據(jù)傳輸率,HD4870以256Bit將448Bit的GTX260挑落馬下,迫使NVIDIA通過降價、提升規(guī)格、改進工藝等諸多手段來反擊。128Bit的HD4770性能也完勝256Bit的9600GT并直逼9800GT。
GDDR5在GDDR3/4優(yōu)秀特性的基礎上,還有諸多改進和新特性,下面就對它們進行詳細分析。
● 數(shù)據(jù)和地址總線轉(zhuǎn)位技術(shù):信號質(zhì)量高、功率消耗少
在1Byte數(shù)據(jù)中的8個值中,如果超過一半的數(shù)值是0,那么GDDR5就會自動執(zhí)行轉(zhuǎn)位傳輸,把0變成1、1變成0,通過1個附加的DBI(數(shù)據(jù)總線轉(zhuǎn)位值)來判定數(shù)據(jù)流是正位還是反位。GDDR5的這項技術(shù)是從GDDR4繼承發(fā)展而來的。
DRAM在傳輸數(shù)據(jù)時,只有0會消耗電能,減少0的傳輸數(shù)量,既能保證信號質(zhì)量,也能減少內(nèi)部終結(jié)電阻和外部終結(jié)電路的功率消耗。GDDR5的地址總線也使用了類似的技術(shù),通過額外的ABI通道來轉(zhuǎn)位數(shù)據(jù)流,從而較少信號噪聲,并降低功耗。
● 智能的可編程I/O控制接口:簡化PCB設計和成本
GDDR5對I/O控制器做了很多改進,加入了全新的自動校準引擎,保證GDDR5顯存顆粒更好的適應GPU顯存控制器的需求,確保數(shù)據(jù)傳輸穩(wěn)定可靠。
自動校準引擎可以監(jiān)控電壓和溫度變化,通過校驗數(shù)據(jù)輸出驅(qū)動器導通電阻與ODT終結(jié)電阻值來作出補償,數(shù)據(jù)、地址、指令終結(jié)電阻都可以被軟件或驅(qū)動控制。
此外GDDR5還能支持時間延遲和信號強度調(diào)整,靈活的協(xié)調(diào)數(shù)據(jù)同步,以往通過“蛇形走線”平衡延遲的方法徹底成為歷史,GDDR5沒有這種顧慮,因此能極大的簡化PCB布線和成本,并有利于沖擊更高頻率。
● 數(shù)據(jù)遮蓋技術(shù):減輕數(shù)據(jù)總線壓力
GDDR5的Burst Length(對相鄰存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)闹芷跀?shù))是8bit,也就是說GDDR5顆粒一次至少要傳輸256bit數(shù)據(jù),但很多時候并不是所有的數(shù)據(jù)都需要被改寫,導致無效的數(shù)據(jù)傳輸。
為此,GDDR5使用了一項數(shù)據(jù)遮蓋技術(shù),通過地址線傳輸保護信息,所有被保護的數(shù)據(jù)在傳輸過程中就不會被改寫,只有暴露的數(shù)據(jù)才會被寫入新的數(shù)據(jù)。如此以來,GDDR5的數(shù)據(jù)線壓力減輕不少,功耗發(fā)熱也得到進一步控制。
● 誤差補償技術(shù):提高傳輸效率,避免災難性錯誤
為了保證數(shù)據(jù)在高速傳輸過程中的有效性,GDDR5新增一項錯誤偵測與修正技術(shù)。GDDR5使用了成熟的CRC(循環(huán)冗余校驗),通過DQ和DBI總線,實時檢查錯誤,第一時間重新發(fā)送數(shù)據(jù)。
這項技術(shù)對于高頻率傳輸數(shù)據(jù)尤為重要,它能有效的減少數(shù)據(jù)傳輸錯誤導致系統(tǒng)崩潰的概率,大幅減少了由超頻或高溫導致的一系列問題,而且能夠一定程度上提升數(shù)據(jù)傳輸效率。
● 折疊模式:32bit顆粒當作16bit用
GDDR5作為高端顯卡專用的顯卡,只有32bit的顆粒。由于GDDR5擁有兩條并行的數(shù)據(jù)總線,這就使得GDDR5的工作模式變得更加靈活,它既可以工作在32bit模式下也可以工作在16bit模式下。這樣一個32bit顯存控制器就可以控制兩顆GDDR5顯存,顯存容量可以輕松翻倍。
其實,GDDR3/4都可以通過這種方式擴充顯存容量,但原理則完全不同。此前必須GPU的顯存控制器在設計時支持雙Bank模式才能支持更多的顯存顆粒。而現(xiàn)在,8顆GDDR5顯存總計256bit可以直接被128bit的GPU使用,從而簡化了顯存控制器設計,HD4770就是很好的例子。
之前我們分析過,TSOP封裝的GDDR1還有g(shù)DDR2顯存,其實在技術(shù)上與DDR1/2內(nèi)存沒有本質(zhì)區(qū)別,高位寬(16bit)的內(nèi)存顆??梢灾苯赢斪黠@存使用。隨著DDR3顆粒大量投產(chǎn),成本接近DDR2,于是在DDR3內(nèi)存取代DDR2的同時,也將順便取代老舊的gDDR2。
● gDDR3:把內(nèi)存顆粒改裝成顯存用
以目前的情況來看,DDR3比gDDR2頻率高很多,但成本比GDDR3要低,所以gDDR2被取代是板上釘釘?shù)氖?。AMD率先將DDR3使用在了顯卡上,隨后得到了業(yè)界的一致認可。
為了和DDR3內(nèi)存顆粒區(qū)分,DRAM廠將其稱為Graphics DDR3 SDRAM,簡寫為gDDR3,和DDR3內(nèi)存顆粒一樣都是8bit預取技術(shù),單顆16bit,定位中低端顯卡;而傳統(tǒng)的GDDR3則是Graphics GDDR3 SDRAM的簡寫,它和DDR2內(nèi)存一樣采用了4bit預取技術(shù),單顆32bit,定位中高端顯卡。
可以看出,在高端GDDR5將會取代GDDR3,而低端gDDR3將會取代gDDR2,中端則會出現(xiàn)三代共存的局面。雖然gDDR3單顆位寬只有GDDR3的一半,但存儲密度卻是GDDR3的兩倍,而且在相同頻率下(比如2000MHz),gDDR3的核心頻率是GDDR3的一半,因此功耗發(fā)熱要低很多。對于位寬不高的中低端顯卡來說,gDDR3大容量、低成本、低功耗發(fā)熱的特性簡直相當完美!
上圖就是現(xiàn)代官方網(wǎng)站列出的gDDR3和GDDR3兩種顯存的規(guī)格參數(shù)表,注意它們的全稱,是否有"G",真的是差之毫厘謬以千里。
gDDR3源于DDR3,技術(shù)特性上沒有區(qū)別,主要在封裝上面。gDDR3作為對顯卡優(yōu)化的版本,單顆16bit FBGA 96Ball封裝;而DDR3多為單顆4/8bit,封裝是78/82Ball。也有少數(shù)DDR3使用了16bit FBGA 96Ball封裝,由于位寬太大僅用于特殊場合。
在前文的內(nèi)存部分,關(guān)于內(nèi)存顆粒的位寬、通道、Bank等做了一些介紹,這些技術(shù)參數(shù)對于顯存同樣適用,但顯存也有自己的一套規(guī)格定義,下面就逐一介紹:
● 規(guī)格:16M×32Bit是什么意思?
當您瀏覽網(wǎng)站或者查看顯卡規(guī)格時,往往都會看到類似“某某顯卡使用了4顆16M×32Bit的GDDR3顯存”這樣的文字,這其中16M×32Bit就是該顯存顆粒的主要規(guī)格,是國際統(tǒng)一的命名標準,可以到存儲廠商官方網(wǎng)站上查到。
不少資料中表述16M×32Bit,16M表示顯存存儲單元的容量為16Mbit,小編經(jīng)過查證發(fā)現(xiàn)這種說法是翻譯錯誤,事實上16M是指顯存(內(nèi)存)顆粒中擁有的Bank數(shù)量,而32Bit則是每Bank的位寬或者說容量。這樣一來顯存顆粒的容量算法就很好理解了。
● 容量:單顆顯存容量=存儲單元數(shù)量×每單元數(shù)據(jù)位寬/8
以最常見的16M×32bit GDDR3顯存為例,16×32/8=64MB,一顆顯存就是64MB的容量,那么這塊顯卡用了4顆顯存就組成了256MB。
很多人可能會納悶上面的公式中為何要除以8,因為官方規(guī)格中的16M的單位是Megabit(兆位)而不是MegaByte(兆字節(jié)),它兩之間的換算需要除以8。
● 速度:顯存理論頻率=1000/時鐘周期×2
大家常說某某顯卡采用了1.4ns顆粒,另一個顯卡用了更快的1.2ns顆粒,超頻更猛等等……這個1.2ns就是顯存的時鐘周期,同樣的我們需要換算成更容易理解的數(shù)字。
套用以上公式,我們來算算主流規(guī)格顯存的理論頻率是多少:
0.8ns顆粒=1000/0.8×2=2500MHz=2.50GHz
為什么要乘以2,因為DDR系列存儲顆粒屬于雙倍傳輸,在工作頻率和數(shù)據(jù)位寬相同的情況下,顯存帶寬是SDRAM的2倍,因此大家習慣于在基礎頻率上乘2,超高的頻率確實比較好看。
● 位寬:顯存位寬=單顆顯存數(shù)據(jù)位寬×顯存數(shù)量
這個不難理解,比如顯卡使用了4顆16M×32bit GDDR3顯存,那么位寬就是32bit×4=128bit。需要注意的是,并非所有情況下這個公式都成立,除了顯存數(shù)量之外,GPU顯存控制器的位寬決定了顯卡位寬上限。
低端顯卡核心擁有128Bit顯存控制器,因此4顆GDDR3顯存就能滿足位寬需求,即便PCB上集成了8顆顯存,顯卡位寬依然是128bit。如果是中端顯卡的話,8顆顯存正好是256Bit,與核心相吻合。
● 帶寬:顯存帶寬=顯存位寬×顯存工作頻率/8
單純看顯存位寬意義并不大,最終影響顯卡性能的其實是帶寬。我們可以把帶寬比作是馬路的車行流量,顯然馬路越寬(顯存位寬),車速越高(顯存頻率),最終的帶寬就越高。
以GTX260為例,顯存頻率2GHz,位寬448bit,計算所得帶寬就是112GB/s。除以8的原因還是因為bit和Byte之間的換算。
帶寬是顯存速度的最終衡量,有些顯卡的顯存頻率高,但是位寬低,最典型的就是使用GDDR5顯存的HD4870,位寬256bit但頻率高達3600MHz,最終計算得帶寬就是115GB/s,和GTX260相當。
對于一塊幾十美元的低端顯卡來說,物理成本的構(gòu)成一般會有3個主要方面,包括核心芯片、顯存芯片和PCB。三者的成本比重不同,其中核心芯片和顯存芯片的比例最大,大概都要占到30%以上,而PCB和其它元件一般只占到15%左右。
在BIOS里可以設置“虛擬顯存”的大小
TurboCache 共享專用視頻內(nèi)存的容量和帶寬及系統(tǒng)內(nèi)存,取得了增強的性能和更多的圖形總內(nèi)存。TurboCache Manager 分配系統(tǒng)內(nèi)存來取得最大系統(tǒng)性能,允許該卡就像在本機上一樣也使用系統(tǒng)內(nèi)存。利用高速雙向 PCI Express 總線,TurboCache 使內(nèi)存帶寬雙倍增長。TCM 在本機或 TurboCache 內(nèi)存中分配緩沖區(qū),以最大化圖形性能和最小化對系統(tǒng)性能的影響。
雙向 PCI Express 帶寬配合 TurboCache 架構(gòu),提升了圖形性價比。既然是利用系統(tǒng)內(nèi)存,這和以前的集成顯卡又有什么區(qū)別呢?
在NVIDIA的官方技術(shù)說明中,內(nèi)存管理技術(shù)可以“允許GPU在分配和不分配系統(tǒng)內(nèi)存時無縫切換,并且高效的讀寫內(nèi)存”。這個工作由驅(qū)動程序中名叫TC的管理部分執(zhí)行,以分配和平衡系統(tǒng)及本地顯存,而且它的操作級別非常高。TC技術(shù)新引入了內(nèi)存管理單元(Memory Manage Unit,MMU),能夠讓GPU透過PCI-E總線直接對系統(tǒng)內(nèi)存進行讀取和寫操作,自動把渲染結(jié)果和紋理分配在本地內(nèi)存或者系統(tǒng)內(nèi)存上。這就類似于把CPU的內(nèi)存管理器搬到了GPU里,能夠把本地緩存和系統(tǒng)內(nèi)存渾然視作一體,突破兩者的物理地址,以虛擬尋址方式自由地分配幀緩存以及紋理緩存。
比如有一臺使用集成顯卡的電腦有512M系統(tǒng)內(nèi)存,如果劃給集成顯卡8M容量作為顯存,則系統(tǒng)中會顯示僅有504M系統(tǒng)內(nèi)存,但使用TC技術(shù)不會導致這種情況,它不會固定的分出一塊內(nèi)存當作顯存,它的作用主要反映在兩方面: 第一、TC技術(shù)僅僅是需要占用主內(nèi)存的時候才占用,MMU具有一個智能的算法來決定使用主內(nèi)存和使用板載緩存的非常好的途徑。
其次,2D顯示輸出是使用板載高速緩存,因此在這種情況下不會和CPU爭搶內(nèi)存的控制權(quán)。
即使顯卡需要占用一部分內(nèi)存,但BIOS與Windows都會認為系統(tǒng)仍具有512M內(nèi)存。還有比起集成顯卡完全依賴于系統(tǒng)內(nèi)存的情況,TC卻可以通過顯卡板載的顯存作為Cache來加快對系統(tǒng)內(nèi)存的讀取調(diào)用速度,為顯卡性能帶來明顯的提升。
所以Turbo Cache技術(shù)完全不會像整合顯卡一樣影響系統(tǒng)內(nèi)存。由于 TurboCache 是集成到GPU中的,因此不能關(guān)閉它。
HyperMemory是ATI提出的解決本地顯存容量與顯卡成本之間矛盾的一種解決方案,最先出現(xiàn)在其RS480芯片組中,隨后推出的低成本版X300 HyperMemory中也有其身影。
HyperMemory和Turbo Cache一樣是一種動態(tài)劃分內(nèi)存的技術(shù),在HyperMemory出現(xiàn)之前,由于PCI-Express總線沒有很明顯的類似AGP DIME的設計,PCI-Express接口的顯卡無法直接地對內(nèi)存進行利用,所以往往需要通過搭配更大的本地顯存來滿足圖形應用中對存儲空間的需求。這大大增加了PCI-Express接口顯卡的制造成本,同時,大容量本地顯存的解決方案也并非適用于所有用戶,中低端及入門級用戶需要更低成本的解決方案。
而HyperMemory技術(shù)出現(xiàn)后,ATI可通過它來大幅削減其PCI- Express接口顯卡的本地顯存容量以達到控制成本的目的,同時可通過對系統(tǒng)內(nèi)存的調(diào)用來解決存儲空間和存儲性能的需求問題。
通過HyperMemory技術(shù)的應用,核心在完成數(shù)據(jù)吞吐時將不必受空間因素的影響。同時,在所調(diào)用內(nèi)存空間的分布方面,HyperMemory采用事先掃描內(nèi)存并尋找合適空間的方式,這樣做能最大限度保證內(nèi)存空間的利用率,很有“見縫插針”的味道。一言以蔽之, HyperMemory的特點在于“分立”和“自由”,和Turbo Cache技術(shù)沒有本質(zhì)區(qū)別,可以理解為它們和虛擬內(nèi)存一樣,是一種“虛擬顯存”技術(shù)。
當然HyperMemory和Turbo Cache并非解決問題的萬金油,系統(tǒng)內(nèi)存本身的帶寬無法和顯卡板載顯存相提并論,繞道產(chǎn)生的系統(tǒng)總線擁擠和延遲也是無法避免,只能算是權(quán)宜之計,不得已而為之。之前的多數(shù)測試也表明明這些技術(shù)并不能達到化腐朽為神奇的作用??偟膩碚fHyperMemory和Turbo Cache不失為一個十分優(yōu)秀的顯示數(shù)據(jù)存儲解決方案。它在強調(diào)成本的前提下最大限度地保留并發(fā)揮了核心的性能。其次用戶在購買顯卡的時候不能只看顯卡標號,現(xiàn)在不少中低端顯卡利用這兩樣技術(shù)魚目混珠。XXX 1G版,往往只有512M甚至更少的板載顯存!
在過去的十幾年時間里,DirectX已經(jīng)穩(wěn)步成為微軟Windows平臺上進行游戲開發(fā)首選API。每一代DirectX都帶來對新的圖形硬件特性的支持,每次版本變更都能幫助游戲開發(fā)者們邁出驚人的一步。就拿近幾年來說,DX9C、DX10及相關(guān)顯卡的發(fā)布都帶來了令人驚訝的游戲畫面,給與玩家非常好的游戲體驗。
尤其是Microsoft發(fā)布的DirectX 10、11代表了自從可編程Shader出現(xiàn)以來在3D API方面的最巨大的進步。通過一番脫胎換骨般的重建,DirectX 10、11展現(xiàn)出一系列非常醒目的新特性,包括高度優(yōu)化的運行時,強大的Geometry Shader,紋理數(shù)組,曲面細分等等;這些特性將引領PC實時三維圖形進入一個全新的世界。Crysis驚艷的畫面讓玩家耳目一新,而新的DX11游戲更是達到了畫面的巔峰,顯卡實時渲染出來的人物及風景效果足以媲美照片、CG動畫甚至電影,讓人嘆為觀止!
與此同時,這些新游戲的要求自然也不低,就拿DirectX 10 Shader model 4.0來說,新版本的臨時寄存器由DX9C的32個擴充到了4096個,將常量寄存器由原來的256個擴充到了65536個!在每個紋理陣列中,最多可以保存512張同樣大小的紋理,而且每張貼圖的分辨率被擴展到了8192×8192。更大的分辨率意味著畫面中更豐富的紋理細節(jié),也意味著要占用更多的顯存空間。
而在3D游戲中不同分辨率和畫質(zhì)設定所產(chǎn)生的紋理數(shù)據(jù)變化非常大,在使用高分辨率、全屏抗鋸齒、各項異性過濾以及HDR的情況下,超大的紋理數(shù)據(jù)會占用大量的顯存空間,假如紋理緩存不夠用,要么重新清空顯存后繼續(xù)加載數(shù)據(jù),要么調(diào)用速度較慢的系統(tǒng)內(nèi)存充當顯存,不管怎樣都會對3D性能造成很大影響,出現(xiàn)FPS下降甚至畫面停頓的現(xiàn)象。顯存的速度和容量對顯卡性能影響非常大。
從去年起,有很多顯卡廠商就在打著普及大容量顯存的旗號,推出了一些超高容量的顯卡。比如目前的高端顯卡基本已經(jīng)標配1GB顯存了,甚至有一些顯卡廠商還推出非公版的2GB容量的顯卡。而現(xiàn)在市場上的顯卡容量也非常多,256MB、384MB、512MB、768MB、896MB、1GB甚至2GB容量的顯卡都有。那么,顯存到底多少才夠用,相信這是每一位打算買顯卡的朋友都十分想了解的問題。越來越多中低端顯卡,都標配1GB容量的顯存,這不禁讓我們心存疑慮,想開大分辨率家高AA,現(xiàn)在高端顯卡的1G顯存還夠用嗎?
顯存和內(nèi)存的功能其實十分相似,內(nèi)存服務于CPU,系統(tǒng)進程和常用資源都是暫存在內(nèi)存中,因為速度帶寬快于其他存儲介質(zhì),可以最快的和CPU交換數(shù)據(jù)提高整機性能,顯存也一樣,不同的是它服務于GPU,而且比內(nèi)存速度更快,一般來說,顯存中所存儲的數(shù)據(jù)主要由以下5部分組成:幀緩存(Frame buffer)、后臺緩存(Back buffer)、Z軸緩存(Z-buffer)、紋理數(shù)據(jù)和幾何數(shù)據(jù)。
簡單的說幀緩存里存放的就是我們實際將在屏幕上看到的內(nèi)容,這部分的容量計算方式大致為:屏幕寬度方向上的像素數(shù)目×屏幕高度方向上的像素數(shù)目×每個像素所用的字節(jié)數(shù)量,也就是顯示分辨率的大小。
后臺緩存顧名思義,就是第2幀緩存。當屏幕上顯示出當前幀緩存的內(nèi)容時,下一幀的顯示內(nèi)容已經(jīng)被存放在后臺緩存里了。而當后臺緩存的內(nèi)容顯示時,幀緩存則寫入第3幅畫面……如此交替工作。因此,后臺緩存的計算方式與幀緩存完全相同。但是后臺緩存使用量可能會比幀緩存還要大,尤其是在游戲中FPS很高時!
Z軸緩存用來記錄像素到屏幕的距離,這樣當兩個顯示區(qū)域中的像素在屏幕上重疊時,如果新繪制的像素其Z值比Z值緩存中記錄的數(shù)據(jù)小,那么就不必重新繪制此像素。這可以減輕GPU的計算量。類似于幀緩存,Z軸緩存其容量計算公式為:屏幕寬度方向上的像素數(shù)目×屏幕高度方向上的像素數(shù)目×每個像素Z值緩存所用的字節(jié)數(shù)量。
紋理數(shù)據(jù)以及幾何數(shù)據(jù)因程序而異,涉及的方方面面非常復雜,無法定量計算。
● 顯存在游戲中的使用情況更加復雜:
以上幾項分析都是在沒有打開FSAA(全屏抗鋸齒)的情況下做的原理解析。實際上FSAA由于要進行多倍取樣,因此程序所需的顯存容量理論上將成倍增長。只有更高的顯存容量和傳輸位寬,才能夠滿足GPU的需要。另外,近幾年3D圖形技術(shù)發(fā)展迅猛,HDR、Tessellation、各種陰影渲染成了游戲必備,DX10/11這些新的特性將顯存的需求拉至頂峰!
總而言之,顯存容量決定存儲圖形數(shù)據(jù)信息的多少,構(gòu)成顯存容量的幾大部分當中,幀緩沖數(shù)據(jù)和Z緩沖數(shù)據(jù)的大小在同一款游戲中一般是固定的,所占用的顯存容量并不是很多,而紋理數(shù)據(jù)大小占據(jù)了相當大的一部分,而且隨著渲染畫面的復雜程度和抗鋸齒多倍取樣等特效,GPU對顯存的需求會大幅波動!
▲ 12款游戲顯存占用率總結(jié)
測了一大堆游戲,筆者根據(jù)經(jīng)驗談一談游戲?qū)︼@存的需求到底體現(xiàn)在哪,也順便揭露幾個誤區(qū):
1. 像Crysis和FarCry2這種畫面很華麗的游戲,由于大量使用了高精度紋理貼圖,顯存消耗十分可觀,但開發(fā)商也會比較收斂的將顯存使用控制在高端顯卡的物理顯存容量范圍內(nèi),所以大部分游戲的顯存用量不會超過主流的1GB;
2. 像星際2這種屏幕內(nèi)擁有大量物體,景物模型太多導致顯存用量大增。由于這些單位都是由玩家親手建造出來的,并不在開發(fā)商的控制范圍內(nèi),因此顯存消耗急劇膨脹。大容量顯存是必須的,通過我們的測試來看,GTX460 768MB玩星際2時,場景稍微復雜一點就會很卡(特效全開+AA),而1GB版本也會在多人大混戰(zhàn)時出現(xiàn)掉幀情況,所以擁有1GB+顯存的GTX470/480還有特殊版本的顯卡很適合追求完美畫質(zhì)的星際2玩家。
3. 抗鋸齒毫無疑問是最消耗顯存的圖形技術(shù)。noAA和4xAA相比,在所有游戲中顯存使用量都會增加20%左右,大概是100MB-200MB甚至更多。
4. 理論上來說提高分辨率會多消耗一些顯存,但實際上并非絕對的,因為提高分辨率之后,由于游戲FPS的降低,顯存內(nèi)的數(shù)據(jù)更新頻率放緩,使用量會有一定程度的減少,此消彼漲之后,其實顯存使用量不一定會增加。除非由于CPU的限制提高分辨率后FPS并沒有降低多少,或者分辨率增加好幾倍,那么就會消耗不少的顯存。
5. 本次測試最高分辨率定格在1920x1080,如果大家使用更高的2560x1600(分辨率是1080p的兩倍以上),或者是組建三屏(三倍分辨率)還有3D系統(tǒng)(雙倍運算量)的話,那么顯存消耗量就另當別論了。事實上2GB版本的顯卡正是為這些有特殊需要的用戶而定制的。
在過去的十幾年時間里,DirectX已經(jīng)穩(wěn)步成為微軟Windows平臺上進行游戲開發(fā)首選API。每一代DirectX都帶來對新的圖形硬件特性的支持,每次版本變更都能幫助游戲開發(fā)者們邁出驚人的一步,而從主流游戲內(nèi)存占用測試來看,顯存512M已經(jīng)越來越落伍了,很多游戲的流暢運行都需要768M乃至更高容量顯存的支持。當然顯存胃口超過1G顯存的游戲還是鳳毛麟角,作為普通消費者多花選擇些許預算選擇1G的產(chǎn)品絕對是物有所值,但是目前沒有必要為了一兩款游戲而去追求更大容量顯存。
● SDR+DDR1/2/3和GDDR1/2/3/4/5全系列規(guī)格參數(shù)匯總:
● 顯存引領DRAM發(fā)展,未來內(nèi)存將以顯存為藍本開發(fā)
縱觀近年來內(nèi)存與顯存的發(fā)展,就會發(fā)現(xiàn)顯存的發(fā)展速度已經(jīng)遠遠超越了內(nèi)存,顯存帶寬幾乎達到了內(nèi)存帶寬的10倍之多,而且這個差距還在不斷的加大。目前三通道DDR3已經(jīng)足夠桌面CPU用好一陣子了,而GPU對顯存帶寬的渴求似乎是個永遠都填不滿的無底洞。
正因為如此,顯存逐漸脫離了內(nèi)存的發(fā)展軌跡,在經(jīng)過幾次并不成功的嘗試之后,從內(nèi)存的配角/附屬品,開始走向了反客為主的道路。GDDR2提前DDR2近兩年、GDDR4提前DDR3一年多,雖然都以失敗而告終,但卻為GDDR5的成功打下了堅實的基礎。
即將到來的DDR4時代
在內(nèi)存領域,如今DDR3才剛剛站穩(wěn)腳跟,至少將統(tǒng)治PC兩至三年,但DDR4的標準已經(jīng)在積極制定當中,起步頻率降至1.2V,而頻率提升至2133MHz,次年進一步將電壓降至1.0V,頻率則實現(xiàn)2667MHz。在內(nèi)存帶寬并不緊張的情況下,成本控制和低碳節(jié)能應該是DDR4的首要目標。
而據(jù)此前消息透露,新一代的DDR4內(nèi)存可能會擁有兩種規(guī)格。根據(jù)多位半導體業(yè)界相關(guān)人員的介紹,DDR4內(nèi)存將會是Single-endedSignaling( 傳統(tǒng)SE信號)方式DifferentialSignaling( 差分信號技術(shù) )方式并存。其中AMD公司的PhilHester先生也對此表示了確認。預計這兩個標準將會推出不同的芯片產(chǎn)品,因此在DDR4內(nèi)存時代我們可能會看到兩個互不兼容的內(nèi)存產(chǎn)品?!?