整合內存控制器

標籤: 暫無標籤

21

更新時間: 2013-08-29

廣告

整合內存控制器(integrated memory controller,IMC)是英特爾在其最新的Nehalem架構處理器中新加入的一種快速通道互聯技術,這也是Nehalem架構處理器全新採用的直連架構后的產物。它使CPU到內存的路徑更短,大幅度降低了內存的延遲,同時每一個CPU都具有自己專有的內存帶寬,這一點在資料庫應用中表現非常顯著,資料庫應用對存儲器的延遲很敏感,而對於普通用戶來說,在使用大型軟體和3D遊戲時,其數據載入時間將更短,打開大型軟體和3D遊戲時的載入速度將更快,告別長時間的等待。

Xeon 5000與Xeon 5500區別圖示

  Xeon 5000與Xeon 5500區別圖示

產生背景
內存控制器(MemoryController)是計算機系統內部控制內存並且通過內存控制器使內存與CPU之間交換數據的重要組成部分。內存控制器決定了計算機系統所能使用的最大內存容量、內存BANK數、內存類型和速度、內存顆粒數據深度和數據寬度等等重要參數,也就是說決定了計算機系統的內存性能,從而也對計算機系統的整體性能產生較大影響。
傳統的計算機系統其內存控制器位於主板晶元組的北橋晶元內部,CPU要和內存進行數據交換,需要經過「CPU--北橋--內存--北橋--CPU」五個步驟,在此模式下數據經由多級傳輸,數據延遲顯然比較大從而影響計算機系統的整體性能;而AMD的K8系列CPU(包括Socket754/939/940等介面的各種處理器)內部則整合了內存控制器,CPU與內存之間的數據交換過程就簡化為「CPU--內存--CPU」三個步驟,省略了兩個步驟,與傳統的內存控制器方案相比顯然具有更低的數據延遲,這有助於提高計算機系統的整體性能。
CPU內部整合內存控制器的優點,就是可以有效控制內存控制器工作在與CPU核心同樣的頻率上,而且由於內存與CPU之間的數據交換無需經過北橋,可以有效降低傳輸延遲。打個比方,這就如同將貨物倉庫直接搬到了加工車間旁邊,大大減少了原材料和製成品在貨物倉庫和加工車間之間往返運輸所需要的時間,極大地提高了生產效率。這樣一來系統的整體性能也得到了提升。
CPU內部整合內存控制器的最大缺點,就是對內存的適應性比較差,靈活性比較差,只能使用特定類型的內存,而且對內存的容量和速度也有限制,要支持新類型的內存就必須更新CPU內部整合的內存控制器,也就是說必須更換新的CPU;例如AMD的K8系列CPU目前就只能支持DDR,而不能支持更高速的DDR2。而傳統方案的內存控制器由於位於主板晶元組的北橋晶元內部,就沒有這方面的問題,只需要更換主板,甚至不更換主板也能使用不同類型的內存,例如Intel Pentium4系列CPU,如果原來配的是不支持DDR2的主板,那麼只要更換一塊支持DDR2的主板就能使用DDR2,如果配的是同時支持DDR和DDR2的主板,則不必更換主板就能直接使用DDR2。
將內存控制器整合到CPU內部顯然是今後的發展方向,而且其技術也會越來越完善。以後Intel也將會推出整合內存控制器的CPU。
技術演變
確切的說AMD並不是第一個採用處理器集成內存控制器技術的公司,只能說是他們把這項技術推了向市場。而英特爾才是真正的處理器集成內存控制器技術創始人,他們曾經在1999年3月推出的Timna處理器(參見圖1)中集成了Rambus內存控制器(同時還集成S3的Savage4圖形晶元和英特爾的I/O控制晶元ICH2),但遺憾的是由於Rambus內存在市場上的慘敗而流產。
技術規格
Nehalem整合內存控制器IMC,可以支持三通道的DDR3內存,運行速度是外頻x8,內存位寬從128位提升到192位。這樣總共的峰值帶寬就可以達到32GB/s(3×64bit×1.33GT/s÷8),達到了Core 2的3倍,而雙路伺服器的內存帶寬峰值可以達到64GB/s。
在實際應用過程中,普通用戶使用DDR3-1066即可滿足Core i7在內存環節的需求,Nehalem的IMC會通過亂序執行來為DDR3三通道降低延遲,並讓其每條通道都能夠獨立操作,這也使得內存的兼容性大大提高,組建三通道的門檻相對降低。
技術優點
CPU集成內存控制器,由於CPU和內存之間的數據傳輸不再需要經過北橋晶元,因此可以縮短CPU與內存之間的數據交換周期。這肯定是北橋晶元來負責內存控制器的模式無法比擬的。
許多應用程序擁有更為複雜的讀取模式(幾乎是隨機地,特別是當cache hit不可預測的時候),並且沒有有效地利用帶寬。典型的這類應用程序就是業務處理軟體,即使擁有如亂序執行(out of order execution)這樣的CPU特性,也會受內存延遲的限制。這樣CPU必須得等到運算所需數據被除數裝載完成才能執行指令(無論這些數據來自CPU cache還是主內存系統)。當前低段系統的內存延遲大約是120-150ns,而CPU速度則達到了3GHz以上,一次單獨的內存請求可能會浪費200-300次CPU循環。即使在緩存命中率(cache hit rate)達到99%的情況下,CPU也可能會花50%的時間來等待內存請求的結束- 比如因為內存延遲的緣故。
以看到Opteron整合的內存控制器,它的延遲,與晶元組支持雙通道DDR內存控制器的延遲相比來說,是要低很多的。英特爾也按照計劃的那樣在處理器內部整合內存控制器,這樣導致北橋晶元將變得不那麼重要。但改變了處理器訪問主存的方式,有助於提高帶寬、降低內存延時和提升處理器性 。
技術缺點
1、由於內存控制器是集成在CPU內部,因此內存的工作頻率與CPU相同,而且不能進行頻率非同步設置,這樣的話在超頻的時候會導致內存的頻率同CPU的外頻一起升高,一旦超過內存的承受能力,就會導致內存無法工作,這會大大限制處理器的超頻能力。
2、雖然將內存控制器集成於CPU內核當中,CPU無需通過北橋,直接可以對內存進行訪問操作,有效的提高了處理效率。但這樣的設計存在的問題就是對內存延時要求很高,內存延時的提高會給系統性能帶來很大的影響。
Intel:不整合內存控制器原因
內存標準一直在改變: Athlon處理器不能搭配DDR2內存只是因為它整合的內存控制器只能連接DDR,這也是AMD要升級到Socket AM2的主要原因。Intel當初的Timna處理器曾整合了RAMBUS內存控制器,但隨著RAMBUS在市場上的慘敗而流產。
Intel可以在處理器上集成大容量緩存: AMD處理器對緩存容量不是非常敏感,而Intel處理器則可以憑藉大容量的緩存彌補未整合內存控制器帶來的損失。奧特里尼在IDF上說:「唯一能戰勝整合內存控制器的武器是處理器緩存。」
不整合內存控制器可以減小處理器面積: 儘管Intel不斷改進自己的生產工藝和產能,但產量總是有限度的。因此,處理器面積越小,能生產的數量就越多,最終帶來更多收入。
不甘心直接使用AMD的HyperTransport技術: AMD之所以能將整合控制器成功應用到市場中有一重要原因是使用了新的傳輸技術HyperTransport,該技術不僅僅簡化了CPU與內存之間的數據傳輸,也簡化了CPU與CPU之間的數據傳輸(在未來可能會簡化CPU與GPU之間的數據傳輸),英特爾需要通過更先進的技術(QPI)來戰勝對手。

廣告

廣告