主記憶體控制器

主記憶體控制器英語Memory Controller)是一個用於管理與規劃從主記憶體到CPU間傳輸速度的匯流排電路控制器,它可以是一個單獨的晶片,或整合到有關的大型晶片里;如CPU北橋內建的主記憶體控制器。[1]

工作方式

主記憶體控制器控制著必要的邏輯讀取和寫入DRAM ,並每隔一段時間重新整理動態隨機存取記憶體(DRAM)里的內容。如果沒有不斷重新整理DRAM將會遺失已寫入的資料,因為DRAM的儲存單元其實是電容器的一種,電容器會不斷洩漏它儲存的電荷,根據JEDEC標準只要洩漏速度不小於64毫秒主記憶體就可以正常工作。進行讀取寫入動作時,主記憶體控制器會根據資料位址到DRAM中選擇行和列,通過一個多路轉換器將資料合併以減少操作所需的匯流排寬度,由DRAM輸入端的多路轉換器電路承接轉換操作,其中經由DRAM的多路分解器為轉換後的輸入資料選擇正確的記憶體位置並返回資料,匯流排寬度是允許同時進行通訊的儲存單元數目。主記憶體控制器的匯流排寬度範圍從在早期的系統中的8位元,演變成在更複雜的系統和顯示卡中的512位元,這通常被實現為數個64位元主記憶體控制器同時並列執行,這稱為「團體模式」。一些主記憶體控制器,例如整合QUICC主記憶體控制器的Power QUICC II處理器,可在同一時間連接到各種不同類型的裝置,如:SDRAMSRAMROM主記憶體對映的I/O。一些主記憶體控制器會整合ECC錯誤檢測和校正的功能。現在實驗中的主記憶體控制器除了包含執行記憶體管理單元位址轉換中的第一級,也包含第二級別的位址轉換,進一步減少頻寬占用率。[2]

歷史

一開始主記憶體控制器在主機板上有獨立的晶片;在英特爾微處理器的傳統電腦上,其功能被整合在主機板的北橋上;但許多現代微處理器,如Alpha 21364AMD Athlon 64處理器(和以後的AMD處理器),IBM POWER5(和以後的POWER處理器) ,Sun UltraSPARC T1,Intel Nehalem處理器(和以後的Intel處理器)上整合了主記憶體控制器(英語:Integrated Memory Controller,IMC) ,以減少主記憶體延遲。這提升了系統的效能。當DRAM控制器不在處理器里而是在北橋里,那麼相同的CPU可以被安裝在一個擁有新北橋的主機板上以支援新主記憶體模式,但這樣的設計會增大處理器與記憶體之間的資料傳送延時,因為處理器需經北橋方可存取記憶體,而處理器與北橋之間的匯流排頻寬往往是有限的,而這一情況可通過增大CPU快取的方法來緩解。[3][4]

雙倍資料率同步動態隨機存取記憶體

DDR主記憶體控制器是用來驅動DDR SDRAM的,通過在系統的時鐘的上升沿和下降沿同時資料傳輸來實現雙倍資料記憶體訪問。 DDR主記憶體控制器明顯的比單倍資料速率控制器更複雜,但允許兩倍資料的傳輸是在主記憶體單元不增加時鐘速率或增加匯流排寬度的情況下。

雙連結主記憶體

雙通道主記憶體控制器(Dual Channel),動態隨機存取記憶體(DRAM)分別連接兩個不同的匯流排(Bus),讓兩個主記憶體控制器並列訪問它們,這匯流排理論頻寬提高一倍。在理論上可以有更多的信道被建立(為每一個DRAM單元建立單獨信道將是理想的解決方案),但由於線路數量、電容器、需要並列接入線路具有相同的的長度,添加越多的信道,設計越複雜。

全緩衝主記憶體模組

全緩衝主記憶體系統(英語:Fully Buffered DIMM,FB-DIMM)將主記憶體的緩衝裝置用於每個主記憶體模組連接並串行傳輸到主記憶體控制器,這是一種新匯流排設計;它不像傳統的主記憶體控制器裝置,使用串行資料鏈路的主記憶體控制器,而不是使用以前的主記憶體設計並列連結。以增加延遲為代價(因串行線路,訪問記憶體位置的指令必須排隊等待),允許使用數量較少層的電路板,令在電路板上連接主記憶體顆粒的導線數量大幅減少,這意味著更多更密集的主記憶體顆粒可以放置在同一電路板上。這種增長是由於在一定的時間內讀出的資訊由DRAM單元的FB-DIMM控制器所使用的串行格式轉換成並列,主記憶體控制器在電路板上的一個並列形式。從理論上FB-DIMM的主記憶體緩衝裝置可以建成訪問任何DRAM單元,並允許儲存單元訪問未知設計的主記憶體控制器,但是這並沒有被證實,該技術正處於起步階段。

快閃記憶體控制器

很多快閃記憶體盤裡都含有一個快閃記憶體主控晶片,主控晶片負責與其他電子裝置通訊,並負責控制與管理資料的儲存位置。

注釋

  1. ^ Memory Controller PDF (PDF). 2010-12-6. [2013-11-10]. (原始內容存檔 (PDF)於2015-09-24). 
  2. ^ John Carter, Wilson Hsieh, Leigh Stoller, Mark Swansony, Lixin Zhang, et. al. "Impulse: Building a Smarter Memory Controller"頁面存檔備份,存於網際網路檔案館
  3. ^ 黃永兵. 从CPU、内存和I/O深度理解IA架构服务器. it168.com. [2014-02-10]. (原始內容存檔於2020-08-20). 
  4. ^ Intel:不整合内存控制器原因有三. Mydrivers.com. [2014-02-10]. (原始內容存檔於2020-08-20). 

參看

外部連結

  • Selecting Memory Controllers for DSP Systems A how-to article on evaluating memory controllers using the VisualSim virtual prototyping tool.
  • [1] Infineon/Kingston (a memory vendor) Dual Channel DDR Memory Whitepaper. Explains dual channel memory controllers, and how to best use use them.