記憶體控制器

記憶體控制器英語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.