[go: up one dir, main page]

TWI446171B - 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置 - Google Patents

用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置 Download PDF

Info

Publication number
TWI446171B
TWI446171B TW96136497A TW96136497A TWI446171B TW I446171 B TWI446171 B TW I446171B TW 96136497 A TW96136497 A TW 96136497A TW 96136497 A TW96136497 A TW 96136497A TW I446171 B TWI446171 B TW I446171B
Authority
TW
Taiwan
Prior art keywords
memory
memory module
module
controller
channel
Prior art date
Application number
TW96136497A
Other languages
English (en)
Other versions
TW200839517A (en
Inventor
Kenneth A Okin
George Moussa
Kumar Ganapathy
Vijay Karamcheti
Rajesh Parekh
Original Assignee
Virident Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Virident Systems Inc filed Critical Virident Systems Inc
Publication of TW200839517A publication Critical patent/TW200839517A/zh
Application granted granted Critical
Publication of TWI446171B publication Critical patent/TWI446171B/zh

Links

Landscapes

  • Dram (AREA)
  • Semiconductor Memories (AREA)

Description

用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置
本申請案一般係關於用於控制對主記憶體中的記憶體模組之存取的記憶體控制器。
一計算系統可具有一同質性主記憶體,其具有一類型之記憶體,例如動態隨機存取記憶體(DRAM)積體電路(IC)。
DRAM IC藉由在每一記憶體單元中之一電容器上儲存特定數量之電荷以儲存一邏輯一或替代性地一邏輯零來保留資料資訊。經過一段時間,並由於讀取操作,該電容器上之儲存電荷在一常稱為漏出之程序中耗散。為保存一DRAM電容器上之儲存電荷並因而維持該DRAM保持其記憶體內容的能力,可透過再新循環來增加該記憶體單元中的儲存電荷,其有時係週期性執行。一再新循環消耗功率。
在以下詳細說明中,提出許多特定實施方案之範例。然而,實施方案可包括以下組態:其包括少於此等範例中提出的詳細特徵與組合的全部替代。
簡介
在某些實施方案中,提供一可程式化記憶體控制器來控制對一主記憶體中的不同類型之記憶體模組的存取。可將非揮發性記憶體模組與DRAM記憶體模組用於相同的記憶體通道,其實施相同的記憶體通道規格以形成一異質性主記憶體。在某些實施方案中,該可程式化記憶體控制器可以係包含於一可購得處理器或具有一可購得處理器之引腳使其可以駐留於一系統之處理器插座中。例如,該可程式化記憶體控制器可具有一處理器之一引腳並係插入具有可以接收該處理器之一插座的一預先存在的母板中。
更新的記憶體模組可具有更大的密度與不同的電特徵。以前為獲得更新的記憶體模組設計的好處,購買一新的電腦或一新的母板以接受新類型的記憶體模組,因為該記憶體控制器之設計係緊密地耦合於進行存取的記憶體模組之類型。若在一新系統之設計中使用具有不同技術之新記憶體模組,則通常產生針對一新記憶體控制器之一新硬體設計。針對一新記憶體控制器設計一新硬體設計可能增加銷售一新系統的時間。除從暫存區設計一新記憶體控制器以外,一可程式化記憶體控制器可以係程式化以提供控制與存取新記憶體模組設計的功能性並加快銷售新系統的時間。
具有異質性記憶體通道的電腦系統
現參考圖1A,其解說具有一異質性主記憶體之一電腦系統100A的功能方塊圖。該電腦系統100A包括一多處理器母板100A'。安裝於該母板100A'的係複數個處理器插座101A至101N。可將處理器122A至122N插入此等處理器插座。經由迹線102A至102N將該等處理器插座101A至101N連接至互連組構103。該互連組構103可僅由迹線構成或其可包含其他積體電路,但其功能係將各種處理器、記憶體及I/O一起連接於該母板100A'內。可將該互連組構邏輯的部分嵌入該等處理器與記憶體控制器內。
額外安裝於該母板100A'的係一或多個可程式化異質性記憶體控制器107A至107N,其係經由迹線106A至106N耦合至該互連組構103。該等可程式化異質性記憶體控制器107A至107N分別控制記憶體通道123A至123N之各記憶體通道。該等記憶體通道123A至123N之各記憶體通道中的印刷電路板迹線110A至110N係耦合於記憶體模組插座108A至108N與該等可程式化異質性記憶體控制器107A至107N之間。該等記憶體模組插座可具有專有引腳或可以係標準JEDEC引腳之任一者(例如DDR2、DDR3或其他記憶體規格)。
複數個不同類型之記憶體模組109A至109N係插入該等異質性記憶體通道之插座108A至108N。一異質性記憶體通道係其中混合類型或不同類型之記憶體模組可耦合至相同記憶體通道匯流排之一記憶體通道。一同質性記憶體通道係其中相同類型(例如記憶體類型(例如DDR2 DRAM等))但可能具有不同記憶體容量之記憶體模組可耦合至相同記憶體通道匯流排之一記憶體通道。例如,一異質性記憶體通道中的不同類型之記憶體模組可以係動態隨機存取記憶體雙直列記憶體模組(DRAM DIMM)與非揮發性隨機存取記憶體雙直列記憶體模組(NVRAM DIMM)。在該等記憶體模組之某些實施方案中,不同類型之記憶體模組係設計成用以滿足某些或全部DDR2記憶體模組規格(或DDR3或其他記憶體規格)。在記憶體模組之其他實施方案中,新的記憶體模組滿足該DDR2規格(或DDR3或其他記憶體規格)與重新指派現有母板互連以包含不同控制信號來在該記憶體控制器與該等新記憶體模組之間介接。該可程式化異質性記憶體控制器出於各種目的支援不同控制發信的使用。例如,對該等新記憶體模組的新控制信號可能增加記憶體容量或透過預先存在的通道迹線發信額外的裝置狀態資訊。
該可程式化異質性記憶體控制器藉由不同類型之記憶體模組來仲裁與控制對該記憶體通道匯流排之存取。該可程式化記憶體控制器還可經由額外的控制發信來仲裁與控制對連接特定記憶體模組內之積體電路的內部DIMM上資料匯流排之存取。例如,支援晶片後堆起的非揮發性記憶體積體電路可具有其對該內部DIMM上匯流排與藉由該可程式化異質性記憶體控制器仲裁與控制之記憶體通道匯流排兩者之存取。該可程式化異質性記憶體控制器可經由額外控制信號來控制該等DIMM支援晶片之各支援晶片中的匯流排多工器以允許藉由選定非揮發性記憶體積體電路對該記憶體通道匯流排之存取。以此方式,該非揮發性記憶體模組可具有一更大的記憶體容量。由於資料偏斜及其他時序考慮所致,典型主記憶體設計將一記憶體通道中的DIMM之數目限制於一較小數目。該可程式化異質性記憶體控制器允許額外的控制發信使得可以實質上增加一記憶體模組並因此一記憶體通道內的可定址記憶體容量。
該可程式化異質性記憶體控制器可自動地由一處理器作用。例如,該可程式化異質性記憶體控制器可使耦合於該等記憶體模組插座中的所有記憶體對該系統中的處理器係可見的或其可使用某些附著的記憶體作為一快取記憶體以改良該記憶體系統的總體性能。在此情況下,可藉由該記憶體控制器選擇更快類型的記憶體模組來用作一快取記憶體之位準。此外,該可程式化異質性記憶體控制器可按其認為係合適的來重新解釋來自一處理器之位址與讀取/寫入命令。此允許(例如)該可程式化異質性記憶體控制器從包含一記憶體模組之一位址空間讀取同時在該相同模組內同時地發生一寫入或抹除操作。
額外安裝於該母板100A的係一或多個I/O子系統105A至105N,其係經由迹線104A至104N連接至該互連組構103。或者或結合地,一或多個I/O子系統105'可以係安裝於該母板100A並耦合至該等可程式化異質性記憶體控制器107A至107N(或一系統控制器)以提供藉由該等處理器對I/O裝置之存取。
在圖1A中,該等記憶體控制器107A至107N係藉由該等PCB迹線110A至110N直接耦合至每一記憶體通道123A至123N中的插座108A至108N。然而,還可透過次要記憶體控制器將記憶體控制器間接地耦合至每一記憶體通道中的插座108A至108N。
現參考圖2,其解說一替代多處理器系統200與母板200'。在圖2中,該可程式化異質性記憶體控制器可以係用以插入一插座之一外部可程式化異質性記憶體控制器212或其可以係一整合的可程式化異質性記憶體控制器212',其係作為一處理器211之部分而共同封裝於該處理器封裝中。該處理器211包括該整合的可程式化異質性記憶體控制器212'。即,該處理器封裝211包含該處理器元件與該整合的可程式化異質性記憶體控制器212'兩者。一處理器封裝內可存在一或多個可程式化異質性記憶體控制器。
可將該外部可程式化異質性記憶體控制器212插入一處理器插座112B。將該外部可程式化異質性記憶體控制器212插入一開放的處理器插座允許擴充並可升級一預先存在的記憶體通道以支援具有不同類型之記憶體模組之一異質性主記憶體。
在該多處理器系統200中,處理器插座112A至112N係經由該母板200'之迹線116A至116N連接至該互連組構103。還經由迹線125A至125N將該等處理器插座112A至112N連接至該記憶體通道113A至113N與213A至213N。記憶體通道113A至113N係同質性記憶體通道,其用以控制插入該等插座115A至115N中的DRAM記憶體模組114A至114N的存取。記憶體通道213A至213N係異質性記憶體通道,其用以控制對每一通道內的不同或混合類型之記憶體模組214A至214N的存取,例如可插入該等插座115A至115N中的DRAM記憶體模組與非揮發性記憶體模組。
在圖2中,該主記憶體150'可包括同質性記憶體通道113A至113N與異質性記憶體通道213A至213N,其可藉由該異質性記憶體控制器212、212'加以控制。或者,可使用一同質性記憶體控制器221來控制對該主記憶體中的同質性記憶體通道113A至113N的存取。可將該同質性記憶體控制器221與一處理器231共同封裝並插入一插座112A中。
還可使用一或多個擴充連接器來升級該等系統100A、200以使得更多記憶體容量可用及/或減低該電腦系統之主記憶體中的功率消耗。
在某些實施方案中,可使用一或多個擴充連接器或插槽121A至121N來升級與擴充該母板100A'、200'之主記憶體。可使用一子卡或擴充板(未顯示)來升級該等電腦系統中的主記憶體。該子卡或擴充板接著包括一可程式化異質性記憶體控制器,其用以控制對每一通道中的混合或不同類型之記憶體模組的存取。以此替代性方式,可將該電腦系統中的主記憶體擴充成為其中具有不同類型之記憶體積體電路之一異質性主記憶體。
在圖2中,該外部可程式化異質性記憶體控制器212、具有該內部可程式化異質性記憶體控制器212'之處理器211及該等記憶體模組係插入插座中以便耦合至該系統之母板。可以其他方式將該可程式化異質性記憶體控制器(PHMC)與該記憶體模組(MM)耦合至系統之母板。
現參考圖3,該等記憶體控制器與該等記憶體模組係耦合至一電腦系統300之母板301而無需一插座,例如藉由將晶片直接焊接於其。該電腦系統300包括一母板301,其具有處理器122A至122N、記憶體控制器(可程式化異質性記憶體控制器107A至107N、DRAM記憶體控制器117D、非揮發性記憶體控制器117NV)、支援晶片403A至403N、動態隨機存取記憶體(DRAM)積體電路314A至314N、靜態隨機存取記憶體(SRAM)積體電路315A至315N及非揮發性記憶體積體電路402A至402N直接耦合於其而無需一插座,例如藉由焊接。
該等處理器122A至122N與該等記憶體控制器(可程式化異質性記憶體控制器107A至107N、DRAM記憶體控制器117D、非揮發性記憶體控制器117NV)係耦合至該互連組構103以彼此通信。或者,可如圖2所示將該等記憶體控制器之一或多個記憶體控制器整合於該等處理器中以彼此通信。輸入/輸出晶片105A至105N還可以係焊接至該母板並耦合至該互連組構103。
該等可程式化異質性記憶體控制器107A至107N係耦合至該記憶體通道匯流排110以與該異質性記憶體通道中的不同類型之記憶體晶片(SRAM 315A至315N、DRAM 114A至114N、NVRAM 402A至402N)通信。該DRAM記憶體控制器(DMC)117D係耦合至該記憶體通道匯流排110'以與該同質性記憶體通道中的DRAM類型之記憶體晶片314A至314N通信。該非揮發性隨機存取記憶體控制器(NVMC)117NV係耦合至該記憶體通道匯流排110"以與一同質性記憶體通道中的NVRAM類型之記憶體晶片402A至402N通信。可將一或多個支援晶片403A至403N耦合於該等個別記憶體晶片與個別記憶體通道匯流排110、110'及110"以提供負載隔離。本文中,該等支援晶片亦可稱為橋接晶片。
記憶體模組
現參考圖4A,其解說一非DRAM類型之記憶體模組214(例如,非揮發性記憶體模組)的圖式。可將該非DRAM類型之記憶體模組214分別插入圖1A與2所解說的系統100A、200之一或多個異質性記憶體通道123A至123N、213A至213N中的記憶體模組插座108A至108N、115A至115N中。
一給定記憶體模組可在其印刷電路板上具有不同的記憶體類型(SRAM、DRAM或非揮發性記憶體)與邏輯或其他電路。或者,一給定記憶體模組可具有一同質性類型之記憶體並可包含邏輯或其他類型之電路。
在某些實施方案中,該非DRAM類型之記憶體模組214係一非揮發性類型之記憶體模組。該非揮發性類型之記憶體模組可包括依據某些實施方案的至少一NOR閘快閃電可抹除可程式化唯讀記憶體(EEPROM)積體電路。在一組態中,對一非揮發性記憶體積體電路之讀取與寫入存取係不對稱的。在此情況下,對非揮發性記憶體積體電路之一寫入比從該非揮發性記憶體積體電路之一讀取花更多的時間。非揮發性記憶體積體電路中之一記憶體抹除操作亦比一讀取存取花更多的時間。某些類型之非揮發性記憶體積體電路(例如NOR快閃EEPROM積體電路)可以係經組態以使得讀取存取時間可以係減低至足以用於其中一位址係呈現且資料係返回的主記憶體中的位準。在一組態中,為解決讀取與寫入性能之間的不對稱,可使用用於抹除與將資料寫入非揮發性記憶體模組之一資料通信協定,其中指令封包係寫入該裝置並接著命令該裝置程式化或抹除非揮發性記憶體中的大量資料。
在圖4A中,該非DRAM類型之記憶體模組214包括一印刷電路板(PCB)400,其具有形成於其上的邊緣連接器之觸點401(在針對一DIMM之各側上)、複數個非DRAM記憶體晶片402A至402N及複數個支援晶片403A至403N。該印刷電路板(PCB)400具有一低輪廓記憶體模組形狀因數(例如,30毫米(mm)高或更高與大致133mm寬),其係插入插座中而不佔據較多空間。
該記憶體模組214進一步包括形成於該PCB 400上的複數個印刷電路板迹線(例如,印刷導線)404A至404N及406A至406L,其在該等非DRAM記憶體晶片402A至402N與該等支援晶片403A至403N之間及在該等支援晶片403A至403N與該等邊緣連接器之觸點401之間耦合。該等印刷電路板迹線(例如,印刷導線)404A至404N形成一內部記憶體模組匯流排404,其中該等非DRAM記憶體晶片402A至402N可透過該等支援晶片403A至403N競爭對該記憶體通道匯流排的存取。該等印刷電路板迹線(例如,印刷導線)406A至406L(藉由參考數字406統稱)藉由該等邊緣連接器之觸點401耦合至該記憶體通道匯流排。
該複數個支援晶片403A至403N之至少一者可包括可儲存於其中之一記憶體模組識別(MMID)410以提供該類型之記憶體模組之一識別與關於安裝於該PCB 400上的記憶體積體電路402A至402N的資訊。複數個信號線形成一通信埠412,透過其可將該記憶體模組識別(MMID)410從每一記憶體模組傳達至該可程式化異質性記憶體控制器107、212、212'。具有該記憶體模組識別之支援晶片進一步包括耦合至該通信埠412之一輸入/輸出埠411以透過該埠412發送與接收資訊。若僅少數信號線可用,則該通信埠412可以係一串列通信埠而該I/O埠411係一串列I/O埠,其使用串列資料進行資訊之雙向通信。。可在初始化期間藉由可程式化異質性記憶體控制器來輪詢該MMID 410以決定可插入每一插座中的不同類型之記憶體模組。可藉由一JEDEC標準定義之一標準機構或透過某一其他機構來傳達該MMID 410。
在某些實施方案中,該記憶體模組214係一雙直列記憶體模組(DIMM)而該印刷電路板(PCB)400係在前後兩側上具有積體電路與邊緣連接器之觸點之一DIMM PCB。該等DIMM可包含不具有一確定性存取時間的記憶體。因而,該等DIMM可發信通知該可程式化異質性記憶體控制器,其具有可用於消耗的資料或準備接受資料。若一特定DIMM插座具有針對一特定JEDEC標準類型之DDR、DDR2或DDR3 DIMM之一引腳而並非該類型之一DIMM係插入該特定插座,則該可程式化異質性記憶體控制器可程式化其本身來以適當方式重新使用該DIMM插座之現有接針以控制插入該插座中的該類型之DIMM。
在某些實施方案中,該記憶體模組214係具有該等非DRAM記憶體晶片402A至402N之一非揮發性記憶體模組,該等晶片係非揮發性記憶體積體電路晶片,例如NOR快閃EEPROM積體電路晶片。該非揮發性記憶體可以係映射於與該主記憶體相同的位址空間中並可預期該處理器在讀取時比主記憶體稍慢。
非揮發性記憶體積體電路晶片通常在讀取存取與寫入存取之間具有一不對稱。由於一寫入操作發生至一非揮發性記憶體單元內的性質所致,讀取存取時間通常比該寫入存取時間少得多。此外,讀取存取可隨機讀取某些非揮發性記憶體積體電路中的任一位置。然而,寫入存取傾向於係區塊或區段定向的,再次係由於一寫入操作發生至該非揮發性記憶體積體電路內的非揮發性記憶體單元的性質所致。因而,某些非揮發性記憶體積體電路可以係視為如同一隨機存取記憶體般隨機讀取位置但如同一硬碟機般寫入區段。此等較長延遲使對該非揮發性記憶體模組之程式化與抹除存取成為非確定性事件。即,可能不能預先知道一非揮發性記憶體模組要完成一寫入操作或一抹除操作將花多長時間。
為嘗試及減輕與該等寫入操作的某些不對稱,每一非揮發性記憶體積體電路402A至402N可包括一寫入緩衝器425,複數個寫入操作係儲存於其中用於在適當時刻寫入記憶體單元之一區段中。在將資料寫入該等非揮發性記憶體單元中之前,該寫入緩衝器425可儲存一或多個資料字,而一資料通信協定可以係用於指示該非揮發性記憶體積體電路要將該質料寫入何處。
該可程式化異質性記憶體控制器可使用一或多個DRAM記憶體模組作為快取記憶體用於該非揮發性記憶體改良系統性能。在該情況下,該可程式化異質性記憶體控制器可包括一快取記憶體控制器。
此外,可將該非揮發性記憶體單元組織成複數個非揮發性記憶體單元之記憶庫426A至426D。在每一記憶體積體電路中,可將該等記憶庫之各記憶庫進一步組織成提供一預定記憶體容量的非揮發性記憶體單元之區段。當要使用一寫入存取或寫入操作來寫入一記憶庫時,其他記憶庫可藉由一讀取存取或讀取操作進行讀取。可在一記憶庫中之一區段上同樣執行抹除該等非揮發性記憶體積體電路中的記憶體之區段的一抹除操作同時其他記憶庫可藉由一讀取存取或讀取操作進行讀取。
每一非揮發性記憶體積體電路402A至402N可進一步包括一狀態暫存器427,其可藉由該記憶體控制器加以輪詢以讀取每一記憶庫之狀態,例如忙碌於一寫入模式或一抹除模式。此外,可將該串列通信埠412用於在該記憶體控制器與該等記憶體模組之間雙向通信資訊,例如狀態。耦合至該串列通信埠的一或多個支援晶片403A至403N可包括一暫存器415用以儲存關於該等記憶體積體電路402A至402N之操作的狀態資訊,其可透過該通信埠412係輪詢(請求)並傳達至該記憶體控制器。
此外,可將一回授控制信號(例如圖6A中之狀態信號611F)從該非揮發性記憶體模組傳達至該記憶體控制器以減輕對該等非揮發性記憶體模組的寫入操作之非確定性質。使用該回授控制信號,該記憶體控制器可避免反覆輪詢該記憶體模組以決定該記憶體模組何時完成一操作。一或多個支援晶片403A至403N之一者可從該等記憶體積體電路402A至402N接收狀態資訊並產生可透過該記憶體通道匯流排傳達至該記憶體控制器之一狀態信號611F。
用於存取DRAM記憶體模組之資料選通信號可改變成回授控制信號,其可以係從一非揮發性記憶體模組傳達至該記憶體控制器以減輕該等非揮發性記憶體模組中的抹除與寫入操作之非確定性質。例如在圖14中解說的範例實施方案,當一非揮發性記憶體模組在一記憶體通道之一記憶體模組插座內係存取時,資料選通信號DQS13、DQS14、DQS15、DQS16分別改變成狀態信號RY/BY_N_R1D0、RY/BY_N_R1D1、RY/BY_N_R1D2、RY/BY_N_R1D3。該等資料選通信號DQS13、DQS14、DQS15、DQS16係用於計時資料從一DRAM記憶體通道中之各記憶體模組輸出。該等RY/BY_N_R1D0、RY/BY_N_R1D1、RY/BY_N_R1D2、RY/BY_N_R1D3信號係針對處於該記憶體通道中的四個DIMM模組/插座之各DIMM模組/插座之第一秩記憶體的狀態信號。此等狀態信號係回授並耦合至該異質性記憶體控制器以更有效率地存取該非揮發性記憶體模組。每一狀態信號指示一記憶體模組中之一秩之記憶體是否忙碌或準備另一寫入或抹除存取以減輕對非揮發性記憶體模組的抹除與寫入操作之非確定性質。
儘管非揮發性記憶體積體電路個別可能存取比DRAM慢,但可透過該記憶體通道匯流排藉由並列存取複數個非揮發性記憶體積體電路來實現高資料頻寬。非揮發性記憶體積體電路之平均功率消耗相對較低使得可將一更大數目安裝於一DIMM印刷電路板上以實現相同功率預算內的更大記憶體容量。該可程式化異質性記憶體控制器允許以對一處理器透明之一方式透過一記憶體通道匯流排並列存取複數個非揮發性記憶體積體電路。
應注意,該等非DRAM記憶體晶片402A至402N還可以係某一其他種類的非DRAM類型之記憶體積體電路晶片,例如靜態隨機存取記憶體積體電路。
可使用複數個支援晶片403A至403N來緩衝位址,及/或從與至該等非DRAM記憶體晶片402A至402N多工與解多工資料。本文中,該複數個支援晶片403A至403N亦可稱為複數個緩衝積體電路403。
該等支援積體電路晶片支援(即,促進)藉由該異質性記憶體控制器對該記憶體模組中以不同秩與記憶庫堆起的記憶體積體電路的讀取與寫入資料存取。在某些實施方案中,非揮發性記憶體積體電路係以一單一多晶片封裝堆起,其接著係附著於該非揮發性記憶體模組。
該等支援晶片403A至403N之各支援晶片可包括一多對一匯流排多工器422與一一對多匯流排解多工器424。或者,可將該多對一匯流排多工器422與該一對多匯流排解多工器424整合在一起作為一交叉開關。
該多對一匯流排多工器422係用於透過該等印刷電路板迹線406A至406L將來自耦合至該等記憶體積體電路402A至402N的形成複數個匯流排的某些印刷電路板迹線404A至404N的資料寫入該記憶體通道匯流排上。該多對一匯流排多工器422允許並列存取大量資料並接著在一叢發之循環中將其傳輸至該記憶體控制器。可在一叢發之循環上使用該一對多匯流排解多工器424來透過該等印刷電路板迹線406A至406L從該記憶體通道匯流排接收資料並接著將該資料驅動至藉由耦合至該等記憶體積體電路402A至402N之印刷電路板迹線404A至404N形成的許多資料匯流排之一者上。可同樣使用一交叉開關來提供對該等記憶體積體電路402A至402N之讀取與寫入存取。
由於負載與時序考慮所致,可相對於可直接耦合至其的積體電路之數目來限制該記憶體通道匯流排。藉由該記憶體模組上的複數個支援晶片403A至403N提供之匯流排多工允許在該DIMM之各側上該支援晶片的後面堆起額外記憶體以使其比另外可不具有該等支援晶片的具有一更大的記憶體容量可用。該複數個支援晶片403A至403N的使用避免從該記憶體模組中的額外記憶體積體電路添加額外的電容負載於該記憶體通道匯流排上。該可程式化異質性記憶體控制器可控制該複數個支援晶片之一或多個支援晶片與該記憶體通道匯流排上的匯流排多工以存取該等支援晶片後面堆起的記憶體。
此外,若將非揮發性記憶體模組插入該等插座中,則可具有一更大的記憶體容量而具有更少的平均功率消耗。即使將額外記憶體積體電路安裝於該記憶體模組中以增加記憶體容量,若在該等記憶體模組中使用非揮發性記憶體積體電路則該平均功率消耗仍可更低。
現參考圖4B,其解說針對一DDR2記憶體通道匯流排之一JEDEC標準DRAM DIMM 434。該DRAM DIMM 434包括複數個DRAM記憶體晶片436A至436N,其係安裝至該印刷電路板434並直接耦合至邊緣連接器之觸點440。因而,該等DRAM記憶體晶片436A至436N係更直接地耦合至該記憶體通道匯流排。可藉由直接耦合至該記憶體通道匯流排之DRAM記憶體晶片436A至436N提供的記憶體容量來限制該DRAM DIMM 434的記憶體容量。
該等DRAM記憶體晶片436A至436N係設計成遵守該記憶體通道匯流排之規格,例如該DDR2規格(或DDR3或其他記憶體規格)。每一記憶體晶片436A至436N具有位址/控制與資料線,其係直接耦合至邊緣連接器之觸點440。
該DRAM DIMM 434不包括任何進一步支援晶片將資料信號多工至該記憶體通道匯流排上與離開該記憶體通道匯流排。可發生的唯一多工係在該記憶體晶片本身內部並且其接著將一記憶體陣列之資料位元行多工至該記憶體晶片之適當輸出接針。無額外支援晶片提供額外多工,該JEDEC標準ECC DRAM DIMM 434可僅具有至多三十六個個別記憶體晶片。記憶體之一秩通常位於該PCB 435的前側,記憶體晶片係直接耦合至該記憶體通道匯流排;而記憶體之另一秩通常位於該PCB 435的後側,記憶體晶片係直接耦合至該記憶體通道匯流排。將記憶體之秩的數目限制於一預定數目可限制該記憶體模組與該記憶體通道之資料頻寬。
對於更大的記憶體容量,例如圖4A中解說的記憶體模組214可支援高達144個個別記憶體晶片。其他非揮發性記憶體模組可以係設計成用以支援額外的非揮發性記憶體積體電路。
依據發明者Kumar Ganapathy等人在2006年9月28日申請的美國臨時專利申請案60/827,421之教導(此處以引用方式併入),可升級圖1A之母板100A'的主記憶體以在一記憶體通道中使用非揮發性記憶體模組換出一或多個DRAM記憶體模組來減低一電腦系統中的平均功率消耗。在此情況下,非揮發性記憶體模組214係插入一或多個插座108A至108N從而取代該個別記憶體通道中的DRAM記憶體模組,並將適當記憶體控制器插入插座中。
在某些實施方案中,該記憶體通道的個別記憶體控制器107A至107N之各記憶體控制器係一可程式化異質性記憶體控制器,其用以控制對該等非揮發性記憶體模組214以及可插入相同記憶體通道中的其他類型之記憶體模組的讀取與寫入存取。在某些實施方案中,可使用一處理器封裝211來取代一多處理器系統中的一或多個處理器,其具有整合的可程式化異質性記憶體控制器212'用以控制對該個別記憶體通道中的非揮發性記憶體模組214的讀取與寫入存取。
整合的可程式化異質性記憶體控制器
現參考圖5A至5B,可將該可程式化異質性記憶體控制器整合於各種晶片中以支援具有混合類型之記憶體模組的記憶體通道。
在圖5A中,解說一系統控制器積體電路500A之功能方塊圖。該系統控制器積體電路500A包括一可程式化異質性記憶體控制器501A、一輸入/輸出控制器502A、一擴充匯流排介面(例如,PCI、超通道)504及用以控制對記憶體以外的裝置之存取的一裝置控制器506。該可程式化異質性記憶體控制器501A控制對相同記憶體通道中的混合類型之記憶體模組的存取。
在圖5B中,解說具有一整體或整合的記憶體控制器之一中央處理單元(CPU)或處理器500B的功能方塊圖。該中央處理單元(CPU)或處理器500B包括一可程式化異質性記憶體控制器501B,其可包括一輸入/輸出控制器502B、一命令控制器512及一或多個執行單元(EU)510。可將該可程式化異質性記憶體控制器501B與該處理器整合或僅共同封裝於相同封裝中。該處理器內的可程式化異質性記憶體控制器501B控制對相同記憶體通道中的混合類型之記憶體模組的存取。
可程式化異質性記憶體控制器
現參考圖6A至6B,該可程式化異質性記憶體控制器601A至601B係可程式化以控制對一記憶體通道內之記憶體模組的存取。其可以係程式化以支援可插入相同記憶體通道之插座中的不同類型之記憶體模組。即,插入相同記憶體通道中的記憶體模組之類型可以係混合的而該可程式化異質性記憶體控制器可以係程式化用以與各記憶體模組通信。例如,記憶體通道602A可具有支援針對記憶體通道之規格(例如,DDR2、DDR3等)的任何類型之記憶體模組609A,包括一靜態隨機存取記憶體模組609C、一非揮發性記憶體模組609D或一DRAM記憶體模組609N。該可程式化異質性記憶體控制器601A可以係程式化以與相同記憶體通道內的此等複數個類型之記憶體模組之各記憶體模組通信。假定該記憶體模組實體地插入一記憶體插座608A至608N中,匹配功率連接或其一子集並且不使該記憶體通道匯流排電無效,則其可以係插入相同記憶體通道中並如其他模組藉由該可程式化異質性記憶體控制器601A透過相同記憶體通道匯流排進行存取。例如,可將具有不同資料頻寬的記憶體模組(例如,BW1記憶體模組629A與BW2記憶體模組629C或非揮發性記憶體模組629D與DRAM記憶體模組629N)插入相同記憶體通道602N並藉由該記憶體控制器601A透過該記憶體通道匯流排610N進行存取。
一記憶體通道602A至602N係一組耦合至一記憶體控制器的導線,從而形成具有兩類導線互連(點對點導線與廣播或匯流排導線)之一記憶體通道匯流排610A至610N,其進而係耦合至插座以與插入其中的記憶體模組通信。每一記憶體通道602A至602N皆彼此獨立。
每一記憶體通道匯流排610A至610N進一步具有複數個廣播導線(PCB迹線612),其係與個別記憶體通道中的各及每一插座608A至608N共用。即,組成該等廣播或匯流排導線612的導線之各導線耦合至給定記憶體通道中的每一插座608A至608N與耦合至其的每一記憶體模組。因而,在個別記憶體通道602A至602N中可藉由插入該等記憶體插座中之記憶體模組之任一者來讀取寫入該等廣播導線612上的信號。
每一記憶體通道匯流排610A至610N具有複數個點對點導線611,其從該記憶體控制器601A耦合至每一個別插座608A至608N。來自該記憶體控制器的複數個點對點導線(PCB迹線)611在插座間係獨立的。
一般而言,依據該JEDEC DDR2規格,每一記憶體通道中存在針對信號S0、S1、ODT0及ODT1的四個點對點導線。可將此等點對點導線重新指派給另一邏輯功能。此外,從該記憶體控制器至每一記憶體通道中之各及每一插座/DIMM存在大致29個唯位址、時脈及控制輸出信號。此外,在該記憶體控制器與每一記憶體通道中之各及每一插座/DIMM之間存在72個雙向資料線與36個雙向資料選通線(1資料時脈針對四位元之資料)。
可將該等點對點導線611之一者重新定義為藉由一記憶體模組產生之一狀態信號611F,其係傳達至該記憶體控制器。例如,可將該狀態信號611F回授至該可程式化異質性記憶體控制器601A以使其知道該記憶體模組準備另一存取。該狀態信號611F尤其適用於存取非揮發性記憶體模組,因為可能需要一些時間來在其中寫入或抹除記憶體位置。使用該狀態信號611F,該記憶體控制器不需要反覆輪詢具有此能力的記憶體模組以決定其狀態與其是否準備另一抹除或寫入操作。
參考圖6A至6B及9,該異質性記憶體控制器601A至601B可藉由軟體來程式化,例如一記憶體模組(MM)軟體驅動器900。該記憶體模組軟體驅動器900可讀取該記憶體模組識別(ID)904,接著將資料載入該異質性記憶體控制器;此類資料可包括該記憶體類型901(例如,SRAM、DRAM或NVRAM)、接針組態902、信號時序與邏輯位準903(例如,低態有效或高態有效)。
可透過該記憶體模組ID將一記憶體模組與其記憶體模組軟體驅動器匹配。即,從該記憶體模組讀取的記憶體模組ID 410應匹配該軟體驅動器900的記憶體模組識別(ID)904。該記憶體模組識別(ID)410可以係編碼以指示關於其製造商來源以及記憶體類型、其容量及速度的資訊。此外,若該可程式化異質性記憶體控制器601A至601B內沒有針對一給定記憶體模組ID之一記憶體模組軟體驅動器900容易地可用,則其可透過一網路(例如網際網路)下載或從一碟片載入,類似於可將新的印表機驅動器載入一電腦系統之方式。
參考圖10,在初始化之後該可程式化異質性記憶體控制器601A可旋即輪詢每一記憶體通道中之各插座以決定何類型之記憶體模組係插入每一記憶體通道中之各插座中。圖10解說一範例性記憶體模組插座表,其可以係儲存於該可程式化異質性記憶體控制器601A內的暫存器或一記憶體中。最左行指示插座號碼而最上列指示記憶體通道號碼。該表內的項目係記憶體模組識別的代表。例如,記憶體通道一(MC1)中的插座一(S1)可具有一SRAM1類型之記憶體模組插入其中。一插座可以係未佔用的或空的。在該情況下,該表項目可以係指示為未佔用的,如針對記憶體通道二(MC2)中的插座二(S2)所指示。可使用該等項目來選擇適當的記憶體模組驅動器以存取每一個別記憶體通道中之各記憶體模組。
現參考圖11A至11C,在組成該記憶體通道匯流排610之線下面的表中解說不同的接針組態902。每一表中的第一列指示接針號碼。每一表中的第二列表示該接針是否係一唯輸入接針(I)、一唯輸出接針(O)、一雙向(輸入與輸出兩者)接針(B)或一功率接針(P)(例如一接地接針或一電源接針)。每一表中的第三列表示指派給每一接針的功能性,例如功率(V)、接地(G)、無連接(NC)、資料接針(Di)、位址接針(Ai)或控制接針(Ci)。例如,可將此等不同的接針組態儲存為針對不同記憶體模組驅動器900的接針組態902(參見圖9)。
一記憶體通道中的混合類型之記憶體模組可引起該記憶體控制器在存取每一記憶體模組時即時改變一記憶體通道匯流排之接針組態。例如,圖11A中解說的接針組態可以係用於透過該記憶體通道匯流排610存取一第一記憶體模組。例如,在圖11A中,編號3與4的接針分別係控制輸入接針C1與C2。例如,當存取該記憶體通道匯流排610之一第二記憶體模組時,該接針組態可改變成圖11B中解說的組態。例如,在圖11B中,編號3與4的接針分別係雙向資料匯流排接針D1與D2。例如,當存取該記憶體通道匯流排610之一第三記憶體模組時,該接針組態可改變成圖11C中解說的組態。例如,在圖11C中,編號3與4的接針分別係位址輸入接針A1與A2。在存取每一不同記憶體模組時即時將該可程式化異質性記憶體控制器601A改變該信號功能性與接針指派。若將相同記憶體模組插入相同記憶體通道中的兩個記憶體插座中,則當該記憶體控制器連續地從存取一記憶體模組改變至另一記憶體模組時在程式化中可不存在改變。
應注意,當存取相同記憶體通道上的不同記憶體模組時針對功率(V)與接地(G)的導線不改變。例如,編號1與2的接針分別保持恆定為功率(V)與接地(G)。然而,並非每一記憶體模組皆需要連接至每一功率或接地接針。例如,在圖11B中,要使用接針組態存取的記憶體模組分別對接針N-1與N(接地(G)與功率(V))係一無連接(NC)。
為定址額外記憶體並增加該主記憶體之記憶體容量,回應進行存取的記憶體模組之類型,一組態中的可程式化異質性記憶體控制器可使用額外接針來形成一更大的位址以定址一更大的記憶體空間。在另一組態中,回應進行存取的記憶體模組之類型,該可程式化異質性記憶體控制器可使用多個位址循環上的預先存在的位址接針來形成一更大的位址以定址一更大的記憶體空間。
圖14解說依據某些實施方案的一非揮發性記憶體模組之範例性接針組態映射。當存取該非揮發性記憶體模組時,該記憶體通道之接針組態從與一DDR2記憶體模組規格相關聯的信號名稱行改變至針對該非揮發性記憶體模組之信號指派行。
例如,接針73、74分別從WE#、CAS#改變至DIMM_ADDR0/ODT0、DIMM_ADDR1/ODT1以識別在初始化之後哪一DIMM插座/DIMM記憶體模組係進行定址並在初始化期間設置該晶粒上終端。
如另一範例,接針188、183、63、182、61、60、180、58、179、177、70、57、176、196、174、173及54分別從信號位址位元A0、A1、A2、A3、A4、A5、A6、A7、A8、A9、A10/AP、A11、A12、A13、A14、A15、A16/BA2改變至多循環位址位元A0/A17/DSEL_0、A1/A18/DSEL_1、A2/A19、A3/A20、A4/A21、A10/A27、A11/Reset_N、A12/OE_N、A13/WEO_N、CE2_N/A14、CE3_N/A15、CE1_N/A16以定址每一記憶體模組內之一更大的記憶體空間。為指示此等多循環位址接針上一位址高位元組或一位址低位元組是否可用,接針195分別從ODT0改變至ADDR_HIGH。若ADDR_HIGH信號係一邏輯高信號,則在該等多循環位址位元上提供該位址高位元組(A17、A18、A19等)。若ADDR_HIGH信號係一邏輯低信號,則在該等多循環位址位元上提供該位址低位元組(例如,A0、A1、A2等)。
如另一範例,接針193與76保留相同的功能。此等信號選擇一記憶體模組內哪一秩之記憶體在進行存取。
如另一範例,當在一插座內要存取該非揮發性記憶體模組時,接針125、134、146、155分別從資料選通信號DQS9、DQS10、DQS11、DQS12改變至RY/BY_N_R0D0、RY/BY_N_R0D1、RY/BY_N_R0D2、RY/BY_N_R0D3。該等RY/BY_N_R0D0、RY/BY_N_R0D1、RY/BY_N_R0D2、RY/BY_N_R0D3信號係針對一記憶體通道中的四個DIMM模組/插座之各DIMM模組/插座之第零秩記憶體的狀態信號。當在一插座內要存取該非揮發性記憶體模組時,接針202、211、223、232分別從資料選通信號DQS13、DQS14、DQS15、DQS16改變至RY/BY_N_R1D0、RY/BY_N_R1D1、RY/BY_N_R1D2、RY/BY_N_R1D3。該等RY/BY_N_R1D0、RY/BY_N_R1D1、RY/BY_N_R1D2、RY/BY_N_R1D3信號係針對該記憶體通道中的四個DIMM模組/插座之各DIMM模組/插座之第一秩記憶體的狀態信號。此等狀態信號係回授並耦合至該異質性記憶體控制器以更有效率地存取該非揮發性記憶體模組。每一狀態信號指示一記憶體模組中之一秩之記憶體是否忙碌或準備另一寫入或抹除操作以減輕對該非揮發性記憶體模組的抹除與寫入操作之非確定性質。
已將圖11A至11C說明為當在每一插座中存取每一不同記憶體模組時改變該記憶體通道匯流排之信號/接針組態。然而,該信號/接針組態還可由於針對一新的記憶體通道設計的記憶體通道匯流排之規格之一改變所致而改變。
在圖6A中,可將該等記憶體通道匯流排610A至610N之各記憶體通道匯流排設計成用以支援該DDR2記憶體模組規格。然而,可使用針對一記憶體通道之一不同的記憶體模組規格與一不同的接針/信號組態來設計一新的電腦系統。因為該異質性記憶體控制器601A係可程式化,可容易地將其設計更新至一新的記憶體通道的新記憶體模組規格與新接針/信號組態。
例如,考量圖6B。可建立一新的記憶體通信通道規格標準以針對每一個別記憶體通道602A'至602N'中之新的記憶體通道匯流排650A至650N之各記憶體通道匯流排定義一新的接針/信號組態。該等記憶體模組可各係設計成用以與該等新的記憶體通道匯流排650A至650N之新的接針/信號組態配對。假定該總非功率接針數相同,則可容易地藉由重新程式化來將該可程式化異質性記憶體控制器601A更新至圖6B中解說的可程式化異質性記憶體控制器601B。針對新的記憶體通道標準之記憶體模組驅動器係重新寫入以支援該等新的記憶體通道匯流排650A至650N並且將該等新的驅動器載入該可程式化異質性記憶體控制器601B。以此方式,該可程式化異質性記憶體控制器之邏輯設計可保持相同,其藉由載入新的記憶體模組驅動器而使用軟體進行更新,而該邏輯下面的電路可改變至調適新的電源電壓。即,該等可程式化異質性記憶體控制器601A與601B之邏輯網路連線表保持相同而該接針組態係藉由新的記憶體模組驅動器軟體進行更新。以此方式可程式化該可程式化異質性記憶體控制器601A,可實質上減低開發新的或專有記憶體通道的時間。因而,該可程式化異質性記憶體控制器可重新用作一IP核心區塊,因為其可容易地對於其將介接的記憶體通道、記憶體通道匯流排及記憶體模組之類型進行程式化。不同的處理器製造可購買該可程式化異質性記憶體控制器之邏輯網路連線表並將其程式化以滿足其特定記憶體通道要求。
現參考圖7A至7B,其解說一可程式化異質性記憶體控制器(PHMC)700之一高階功能方塊圖。在圖7A中,該可程式化異質性記憶體控制器700在等待記憶體模組係插入該等插座或插槽705至708中時必須進行程式化。每一記憶體通道控制器720i針對每一插槽或插座705至708包括一特定記憶體模組插槽控制器721至724。在圖7B中,兩個或更多不同類型之記憶體模組(例如,類型A記憶體模組701、類 型B記憶體模組702、類型C記憶體模組703及類型D記憶體模組704)係耦合於每一記憶體通道710i中。應注意,插入該等插槽/插座705至708中的記憶體模組之一或多個記憶體模組可以係相同類型的記憶體模組。在該情況下,可使用相同的程式來程式化該等記憶體模組插槽控制器721至724之兩個或更多記憶體模組插槽控制器以處理相同類型的DIMM。
針對每一記憶體通道710i,該等可程式化異質性記憶體控制器700包括一記憶體通道控制器720i。該等記憶體通道控制器720i之各記憶體通道控制器係耦合於一處理器介面750與其個別記憶體通道710i之間。每一記憶體通道控制器720i耦合至該處理器或互連組構介面750以針對記憶體操作指令及其結果與一處理器或I/O控制器進行通信。
如圖7B所示,每一記憶體通道控制器720i可針對其中可耦合一記憶體模組701至704之各插槽或插座705至708包括一特定記憶體模組插槽控制器721至724。每一記憶體通道控制器720i進一步包括耦合至一記憶體通道介面732之一共同記憶體模組控制器730。插座/插槽A記憶體模組控制器721係用於控制耦合於插座A 705中的類型之記憶體模組(例如,類型A記憶體模組701)。插座/插槽B記憶體模組控制器722係用於控制耦合於插座B 706中的類型之記憶體模組(例如,類型B記憶體模組702)。插座/插槽C記憶體模組控制器723係用於控制耦合於插座C 707中的類型之記憶體模組(例如,類型C記憶體模組703)。插座/插槽D記憶體模組控制器724係用於控制耦合於插座D708中的類型之記憶體模組(例如,類型D記憶體模組704)。該等特定記憶體模組控制器721至724係用於針對可插入該等可用記憶體模組插座的每一不同記憶體模組產生不同的控制信號。該等特定記憶體模組控制器721至724係各可藉由一個別記憶體模組軟體驅動器程式化。
該共同記憶體模組控制器730係用於在插入該等可用記憶體模組插座的不同記憶體模組之中產生共同控制信號。該等資料接針與該等位址接針可在插入該等可用記憶體模組插座的不同記憶體模組之間保持相同並可處於該共同記憶體模組控制器730的控制之下。
針對每一記憶體通道710i的特定記憶體模組控制器721至724與共同記憶體模組控制器730透過該記憶體通道介面732通信至其個別記憶體模組。該記憶體通道介面732可靈活允許耦合至該等記憶體模組與該等個別插座的記憶體通道匯流排610i中的接針組態改變。
每一記憶體通道710i中的記憶體通道匯流排610i包括複數個互連導線(PCB迹線),其係共用或廣播至所有該等記憶體模組與該等個別插座。可藉由該共同記憶體模組控制器730來產生對所有該等記憶體模組的共用或廣播信號。每一記憶體通道710i中的記憶體通道匯流排610i進一步包括複數個互連導線(PCB迹線),其係獨立的並僅耦合至該等記憶體模組與該等個別插座之一者使得該等信號對於該記憶體模組係特定的。可藉由該相關聯特定記憶體模組控制器721至724產生針對每一個別記憶體模組之特定信號。例如,可藉由該插座A記憶體模組控制器721來產生單獨針對該類型A記憶體模組701及其插座705的特定信號。
現參考圖8A,其解說一可程式化異質性記憶體控制器800A之一更詳細的功能方塊圖。應注意,圖8A解說可如何內部功能上組織一可程式化異質性記憶體控制器之範例,可使用功能區塊之一不同配置來構造可程式化異質性記憶體控制器。該可程式化異質性記憶體控制器800A包括一處理器或互連組構(系統)介面802、一輸入緩衝器803、一輸出緩衝器804、記憶體模組插座控制暫存器806、微編碼記憶體808(隨機存取記憶體(RAM)及/或唯讀記憶體(ROM))、一或多個輸入/輸出狀態機810、一彈性輸入/輸出埠控制器及一彈性記憶體通道介面814(亦稱為一彈性I/O埠),其如所示耦合在一起。可視需要提供一直接記憶體存取控制器813使其可在該異質性記憶體控制器中的記憶體與該系統中的某一其他裝置之間傳輸資料。
該處理器(系統)介面802一般允許藉由一處理器對一主記憶體的受控存取。該處理器(系統)介面802可包括:一位址埠816,其用以從一處理器接收位址以由其存取主記憶體;一控制埠817,其用以從該處理器接收控制信號以存取主記憶體;一雙向資料埠818,其用以從一處理器讀取資料以寫入記憶體並用以在從記憶體讀取之後將資料寫出至該處理器;以及狀態/控制暫存器820,其用以允許該處理器讀取該等記憶體通道之狀態並控制對耦合至該記憶體控制器之記憶體通道的存取。
該輸入緩衝器803係用以緩衝從該處理器接收的位址、控制及資料。該輸出緩衝器804係用以緩衝要寫出至該處理器的資料。可將該輸入緩衝器803與該輸出緩衝器804組合在一起作為具有更複雜控制邏輯之一更大的單一輸入/輸出緩衝器。
該等記憶體模組插座暫存器806係提供以儲存插入直接耦合至該記憶體控制器800A的每一記憶體通道中之各插座中的每一記憶體模組之記憶體模組識別(ID)。該等記憶體模組插座暫存器可儲存圖10中解說之一記憶體模組插座表之資訊。使用此資訊,該記憶體控制器800A知道每一插座中其將直接與何類型之記憶體模組進行通信。
該微編碼記憶體808(隨機存取記憶體(RAM)及/或唯讀記憶體(ROM))係用以針對藉由該等記憶體模組插座暫存器806指示的每一不同類型之記憶體模組來儲存該等記憶體模組軟體驅動器900。該等記憶體模組軟體驅動器900可包括該記憶體類型901(例如,SRAM、DRAM或NVRAM)、接針組態902、控制信號時序與邏輯位準903(例如,低態有效或高態有效)及該記憶體模組識別(ID)904。每一記憶體模組軟體驅動器900中包含的資訊係耦合至一或多個I/O狀態機810。即,該微編碼記憶體808向該等I/O狀態機供應記憶體模組軟體驅動器。
一或多個I/O狀態機810回應該給定插座中進行存取的記憶體模組之類型及其記憶體模組軟體驅動器來在該記憶體介面814中建立適當的接針組態並使用適當的時序針對該等接針產生適當的邏輯信號。每次存取一給定記憶體模組以執行一寫入操作、一讀取操作或一抹除操作時一或多個I/O狀態機810執行此等功能。亦參考圖8B、12A、12B及13說明一或多個狀態機之功能。一或多個I/O狀態機810發信通知該彈性I/O埠控制器812以在記憶體介面814中建立適當的接針組態用於存取一給定插座與記憶體模組。
回應來自一或多個I/O狀態機810之控制信號,該彈性I/O埠控制器812在記憶體介面814中建立適當的接針組態用於存取每一給定插座與記憶體模組。
回應來自該埠控制器812之控制,該記憶體介面814建立其輸入/輸出緩衝器之狀態。特定接針對於來自該記憶體通道匯流排之接收信號可以係唯輸入接針。另外的接針可以係唯輸出接針,其具有一輸出驅動器以將該等信號驅出至該記憶體通道匯流排。其他接針(例如該等資料接針)可以係雙向資料接針,其在從該記憶體通道匯流排讀取資料時係選擇性地控制為輸入緩衝器並在將資料寫出至該記憶體通道匯流排時係控制為輸出緩衝器。
該可選DMA控制器813係用於填充可包括於該等記憶體模組之記憶體積體電路(例如該等非揮發性記憶體積體電路)中的資料緩衝器。該可選DMA控制器813使用直接記憶體存取控制來叢發寫入記憶體模組之一連串資料或叢發從一記憶體模組讀取一連串資料讀入該記憶體控制器。該DMA控制器813還可以係具有快取記憶體之一預取或快取 記憶體控制器,其用以減小針對某一類型之記憶體模組的潛時。
現參考圖8B,其現說明一或多個I/O狀態機810之進一步功能細節。一或多個I/O狀態機810針對耦合至該記憶體控制器800A之每一記憶體通道602A至602N包括一記憶體通道狀態機811A至811N。每一記憶體通道狀態機811A至811N針對每一記憶體模組及其中的每一秩之記憶體包括一控制器825、一匯流排仲裁器826及一或多個記憶體模組狀態機821A至824A、821B至824B,其如所示耦合在一起。
例如,記憶體模組狀態機821A與821B係針對可耦合於插座A中之一記憶體模組。記憶體模組狀態機821A係針對插入插座A中之一雙直列記憶體模組中的第1秩之記憶體。記憶體模組狀態機821B係針對插入插座A中之雙直列記憶體模組中的第2秩之記憶體。針對每一個別記憶體模組之三個或更多秩之記憶體可存在額外的記憶體模組狀態機。同樣,記憶體模組狀態機822A與822B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座B中之一記憶體模組的個別秩之記憶體。記憶體模組狀態機823A與823B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座C中之一記憶體模組的個別秩之記憶體。記憶體模組狀態機824A與824B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座D中之一記憶體模組的個別秩之記憶體等等(若一記憶體通道中額外插座係可用)。儘管此處相對於控制對假定一同質性記憶體模組的一秩之記憶體的存取說明該可程式化異質性記憶體控制器,該記憶體控制器可調適於存取一記憶體模組之一或多個秩之記憶體內的不同類型之記憶體積體電路。在該情況下,該記憶體模組係藉由一可程式化異質性記憶體控制器存取之一異質性記憶體模組。
對於包括非揮發性隨機存取記憶體(NVRAM)積體電路之非揮發性記憶體模組,若一給定記憶體之秩中的記憶體係讀取存取(R)、寫入存取(W)及初始化或抹除(I),則該等記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)之各記憶體模組狀態機具有一不同操作模式與操作之序列。使用來自對應於插入該相關聯插座中的記憶體模組之類型的記憶體模組軟體驅動器之資訊來程式化該等記憶體模組狀態機821A至824A、821B至824B之各記憶體模組狀態機。例如,將使用對應於記憶體通道602A中插入相關聯插座A中的記憶體模組之記憶體模組軟體驅動器來程式化記憶體模組狀態機821A與821B。
在其他類型之記憶體模組的情況中,可不存在初始化或抹除操作序列之操作。
該控制器825係耦合至每一記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)以回應所請求存取之類型與進行存取的記憶體通道中之記憶體模組的位置(例如,哪一插座)來控制哪一記憶體模組狀態機處於活動狀態及處於哪一模式(讀取存取(R)、寫入存取(W)、初始化或抹除(I))
該匯流排仲裁器826係耦合至該控制器825與該等記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)之各記憶體模組狀態機以在該等狀態機嘗試與其對應記憶體模組進行通信時仲裁對該記憶體通道匯流排之存取。
該等記憶體模組狀態機821A至824A、821B至824B之各記憶體模組狀態機連同控制器825與仲裁器826一起產生適當的引腳組態控制信號以建立該記憶體介面中之適合的引腳與控制信號、位址信號及資料信號之適當的邏輯與時序用於透過該記憶體通道匯流排將資料讀取與寫入耦合於其的每一記憶體模組中。
用於異質性記憶體通道通信之方法
圖12A解說對一異質性主記憶體之異質性記憶體通道中的不同類型之記憶體模組之通信的方法之流程圖。
於步驟1202,初始化一可程式化異質性記憶體控制器。輪詢每一異質性記憶體通道中之各插座以決定每一異質性記憶體通道之各插座中的記憶體模組之不同類型。一異質性記憶體通道中的插座可以係空的或未佔用的,在該情況下該可程式化異質性記憶體控制器不需要針對此等插座之一記憶體模組驅動器。
於步驟1204,對於每一異質性記憶體通道中之每一不同記憶體模組的每一存取,一記憶體通道介面之每一接針係靈活地經組態或調適成用以透過一記憶體通道匯流排之導線互連對每一不同記憶體模組之個別接針進行通信。此係回應進行存取的記憶體模組之類型。可使用記憶體模組軟體驅動器來對於進行存取的記憶體模組之類型靈活地調適該記憶體通道介面之接針組態。該記憶體通道介面亦可稱為一輸入/輸出埠。
為改良一異質性記憶體通道中之頻寬,可將額外功能性指派給未充分使用或未使用的接針使得可以延伸某些記憶體模組與該異質性控制器之間的通信協定。可使用額外的位址控制信號線來定址額外秩之記憶體或定址更複雜類型之記憶體或DIMM架構延伸,其允許大得多的記憶體容量。此外,可針對每一插座/記憶體模組之一未充分使用或未使用接針定義一回授接針使得該可程式化異質性記憶體控制器可從插入該異質性記憶體控制器中之各插座的每一記憶體模組接收狀態資訊。可將一狀態信號從每一插座/記憶體模組傳送至該可程式化異質性記憶體控制器使其知道可存取或不可存取每一記憶體模組的時間。
於步驟1206,對於該異質性記憶體通道中之一不同記憶體模組的每一存取,針對透過該記憶體通道匯流排之導線互連之適合的信號導線之通信產生適當的邏輯信號以便通信至一記憶體模組。該等適當的邏輯信號係回應當時進行存取的記憶體模組之類型來產生。例如,根據進行存取的記憶體模組之類型,該等邏輯信號可以係高態有效信號或其可以係低態有效信號。因而,要產生的適當邏輯信號可隨記憶體模組改變。可使用記憶體模組軟體驅動器來回應進行存取的記憶體模組之類型靈活地改變針對透過該記憶體通道匯流排之通信的邏輯信號之產生。
於步驟1208,對於該異質性記憶體通道中之一不同記憶體模組的每一存取,使用適當的信號時序在該記憶體通道匯流排之導線互連上產生邏輯信號以適當地與一記憶體模組進行通信。用於將邏輯信號驅動至該記憶體通道匯流排上的適當信號時序係回應當時進行存取的記憶體模組之類型。即,該適當的信號時序可隨記憶體模組而改變。可使用記憶體模組軟體驅動器來回應進行存取的記憶體模組之類型靈活地改變在該記憶體通道匯流排上產生邏輯信號的信號時序。
可回應進行存取的記憶體模組之類型來針對該異質性記憶體通道之各插座中的每一記憶體模組之寫入存取與讀取存取兩者來適當地程式化該可程式化異質性記憶體控制器。
現參考圖12B,其解說對一記憶體通道中之一非揮發性記憶體模組的通信之一方法的流程圖。
於步驟1212,該處理器告訴該記憶體控制器以發信通知一非揮發性記憶體模組來抹除非揮發性記憶體之一區段或將一資料字寫入非揮發性記憶體中。
於步驟1214,進行存取的非揮發性記憶體模組使用一回授狀態控制信號往回發信通知其處於忙碌狀態。藉由該記憶體通道匯流排中之一點對點導線互連將來自該記憶體模組之回授狀態控制信號耦合於該記憶體控制器中。在某些實施方案中,該回授狀態控制信號係本文說明的狀態信號611F。
於步驟1216,由於該非揮發性記憶體模組之寫入與抹除操作的非確定性質所致,該記憶體控制器等待一未決定的時間週期。即,該記憶體控制器在接收指示忙碌的回授狀態控制信號之後等待一不定時間週期。
於步驟1218,進行存取之非揮發性記憶體模組使用其回授狀態控制信號往回發信通知其現在準備另一寫入操作或抹除操作。當一寫入或抹除操作在其中待處理時,可藉由該非揮發性記憶體模組在一不同記憶庫之記憶體內執行一寫入操作。
於步驟1220,在接收該回授狀態控制信號之後,該記憶體控制器起始該記憶體模組之另一操作。該記憶體控制器可起始另一寫入存取或抹除非揮發性記憶體之一區段。或者,該記憶體控制器可中斷該處理器並發信通知該非揮發性記憶體模組準備另一寫入或抹除操作。該處理器還可以輪詢該回授狀態控制信號以等待改變。
圖13解說初始化該可程式化異質性記憶體控制器之一方法的流程圖。
於步驟1302,開啟或重新啟動該電腦系統使得該可程式化異質性記憶體控制器之初始化可發生。
於步驟1304,輪詢主記憶體之各記憶體通道中的每一插座以決定一記憶體模組是否係插入一插座中。在輪詢一插座之後,若該可程式化異質性記憶體控制器未聽到回應,則其可假定無記憶體模組係插入該插座。該插座係未佔用的或空的。該可程式化異質性記憶體控制器可將關於該等空的或未佔用的插座之資訊儲存於暫存器或暫存記憶體內,如圖10解說的主記憶體插座表中。
於步驟1306,若將一記憶體模組插入一插座,則與其個別插座號碼或插座識別符相關聯地讀出並儲存每一記憶體模組識別。該記憶體模組識別提供插入該插座中的記憶體模組之類型之一指示。若不能從一插座讀取一記憶體模組識別,則該異質性記憶體控制器可嘗試與假定一不同模組類型之記憶體模組進行通信,並重複該測試直至已知類型之模組係用盡。
於步驟1308,在讀出該記憶體模組識別之後,其係與其插座號碼及記憶體通道相關聯地儲存。可將該記憶體模組識別儲存於暫存器或該可程式化異質性記憶體控制器的暫存記憶體中之一表內,例如藉由圖10之主記憶體插座表所解說。
於步驟1310,將記憶體模組軟體驅動器載入該可程式化異質性記憶體控制器與其一或多個狀態機中以致能與可耦合於每一異質性記憶體通道中的不同類型之記憶體模組之各記憶體模組的適合通信協定。若僅一類型之記憶體模組係插入一記憶體通道,則其係一同質性記憶體通道而可僅要求一記憶體模組軟體驅動器用於對各記憶體模組之通信。
若本地沒有一記憶體模組軟體驅動器可用於該可程式化異質性記憶體控制器,則其可從一網路來源(例如網際網路)或一軟體碟片獲取。
隨著該等記憶體模組軟體驅動器係耦合於該可程式化異質性記憶體控制器中並載入其一或多個狀態機中,該可程式化異質性記憶體控制器係初始化以存取每一記憶體通道中的不同記憶體模組。
針對異質性記憶體通道之轉換記憶體模組
在先前說明中,一可程式化異質性記憶體控制器係用於靈活地調適使用不同通信協定對異質性記憶體通道中的不同類型之記憶體模組進行通信。然而,更新的記憶體模組可以係設計成用以將非DDR信號轉換成DDR信號以使得先前DDR2記憶體控制器可與更新的不同類型之記憶體模組透明地通信。
現參考圖1B,記憶體控制器107A'至107N'可以係標準DDR2記憶體控制器,其用以透過每一記憶體通道匯流排與依據該DDR2規格的記憶體模組進行通信。然而,插入該等記憶體通道123A至123N中之插座108A至108N的記憶體模組109A'至109N'至109N'之一或多個記憶體模組可以係一轉換記憶體模組(TMM)。在圖1B中,該等記憶體模組109A'之各記憶體模組係一轉換記憶體模組。相同記憶體通道中的另一記憶體模組109N-1'可以係一DDR2標準DRAM DIMM使得該記憶體通道123A係一異質性記憶體通道,而該記憶體控制器107N'不知道。該轉換記憶體模組(TMM)係設計成用以將非DDR信號轉換成DDR信號用於透過每一記憶體通道匯流排以一透明方式對該等記憶體控制器107A'至107N'的通信。
現參考圖4C,其解說一轉換記憶體模組(TMM)454之功能方塊圖。該轉換記憶體模組454包括一印刷電路板455,其具有耦合至其之一非DDR2記憶體裝置461與一支援晶片462。一或數個非DDR2記憶體裝置461與該支援晶片462可以係一起共同封裝於一積體電路封裝469中並安裝至該印刷電路板455。可將複數個非DDR2記憶體裝置461與複數個支援晶片462耦合至該PCB 455。該支援晶片462係耦合至該PCB 455並處於該非DDR2記憶體461與一邊緣連接器之觸點470之間。可將該邊緣連接器之觸點470形成為該PCB 455之部分。否則,可將一分離邊緣連接器焊接至該PCB 455。
該支援晶片462包括一轉換器465、一資料收發器(發射器與接收器)466及一位址/控制接收器467,其如所示耦合在一起。該轉換器465係耦合於該非DDR2記憶體461與該資料收發器466及該位址/控制接收器467之間。
該資料收發器466與該位址/控制接收器467使用DDR2位址、控制及資料發信將該記憶體模組434雙向地介接至該記憶體通道匯流排。
該轉換器465係一雙向轉換器。該轉換器465將非DDR信號轉換成DDR2信號用於透過該記憶體通道匯流排以一透明方式對該記憶體控制器的通信。從該記憶體通道匯流排接收的DDR2信號係按要求藉由該轉換器465轉換成該非DDR2記憶體461理解的非DDR2信號。以此方式,一記憶體模組中之一非DDR2記憶體裝置可使用一預先存在的記憶體通道匯流排與預先存在的記憶體控制器進行通信。
結論
儘管此說明書包括許多細節,此等不應係視為限制本揭示內容或所主張之範疇,而應視為特定於本揭示內容之特定實施方案的特徵說明。還可將本說明書中在分離實施方案之背景下說明之特定特徵組合實施於一單一實施方案中。相反,還可將在一單一實施方案背景下說明的各種特徵分離或以子組合地實施於多個實施方案中。此外,儘管上面可能將特徵說明為以特定組合動作並甚至初始如此主張,在某些情況下可從該組合切除來自所主張組合之一或多個特徵,且該所主張組合可屬於一子組合或一子組合之變更。
已說明許多實施方案。不過應明白,可進行各種修改而不脫離本揭示內容之精神及範疇。其他實施方案係在以下申請專利範圍的範疇內。例如,已將該等記憶體模組與該等記憶體插座說明為雙直列記憶體模組(DIMM)與DIMM插座。然而,例如,該等記憶體模組與記憶體插座可具有其他類型之形狀因數,例如單直列記憶體模組(SIMM)。
100A...電腦系統
100A'...母板
101A至101N...處理器插座
102A至102N...迹線
103...互連組構
104A至104N...迹線
105'...I/O子系統
105A至105N...I/O子系統/輸入/輸出子系統
106A至106N...迹線
107A至107N...可程式化異質性記憶體控制器
107A'至107N'...記憶體控制器
108A至108N...記憶體模組插座
109A至109N...記憶體模組
109A'至109N'...記憶體模組
109N-1'...記憶體模組
110...記憶體通道匯流排
110'...記憶體通道匯流排
110"...記憶體通道匯流排
110A至110N...印刷電路板迹線
112A至112N...處理器插座
112B...處理器插座
113A至113N...同質性記憶體通道
114A至114N...DRAM記憶體模組
114B...DRAM DIMM
115A至115N...記憶體模組插座
116A至116N...迹線
117D...DRAM記憶體控制器
117NV...非揮發性隨機存取記憶體控制器(NVMC)
118...I/O
120A至120N...迹線
121A至121N...擴充連接器或插槽
122A至122N...處理器
122B...微處理器
123A至123N...異質性記憶體通道
125A至125N...迹線
150'...主記憶體
200'...母板
211...處理器/處理器封裝
212...外部可程式化異質性記憶體控制器
212'...整合的可程式化異質性記憶體控制器/內部可程式化異質性記憶體控制器
213A至213N...異質性記憶體通道
214...非DRAM類型之記憶體模組/非揮發性記憶體模組
214A至214N...記憶體模組
214B...任何MM
221...同質性記憶體控制器
231...處理器
300...電腦系統
301...母板
314A至314N...動態隨機存取記憶體(DRAM)積體電路/記憶體晶片
315A至315N...靜態隨機存取記憶體(SRAM)積體電路
400...印刷電路板(PCB)
401...邊緣連接器之觸點
402A至402N...非揮發性記憶體積體電路/NVRAM/非DRAM記憶體晶片
402B...非揮發性記憶體積體電路/非DRAM記憶體晶片
403A至403N...支援晶片
404...內部記憶體模組匯流排
404A至404N...印刷電路板迹線
406...印刷電路板迹線
406A至406L...印刷電路板迹線
410...記憶體模組識別(MMID)
411...輸入/輸出埠
412...通信埠
415...暫存器
422...多對一匯流排多工器
424...一對多匯流排解多工器
425...寫入緩衝器
426A至426D...非揮發性記憶體單元之記憶庫
427...狀態暫存器
434...JEDEC標準DRAM DIMM/記憶體模組
435...印刷電路板/PCB
436A至436N...DRAM記憶體晶片
440...邊緣連接器之觸點
454...轉換記憶體模組(TMM)
455...印刷電路板/PCB
461...非DDR2記憶體裝置
462...支援晶片
465...轉換器
466...資料收發器
467...位址/控制接收器
469...積體電路封裝
470...邊緣連接器之觸點
500A...系統控制器積體電路
500B...中央處理單元(CPU)或處理器
501A...可程式化異質性記憶體控制器
501B...可程式化異質性記憶體控制器
502A...輸入/輸出控制器
502B...輸入/輸出控制器
504...擴充匯流排介面
506...裝置控制器
510...執行單元(EU)
512...命令控制器
601A...可程式化異質性記憶體控制器
601B...可程式化異質性記憶體控制器
602A至602N...記憶體通道
602A'至602N'...記憶體通道
608A至608N...記憶體插座
609A...記憶體模組
609C...靜態隨機存取記憶體模組
609D...非揮發性記憶體模組
609N...DRAM記憶體模組
610...記憶體通道匯流排
610A至610N...記憶體通道匯流排
610i...記憶體通道匯流排
611...點對點導線
611F...狀態信號
612...廣播或匯流排導線
619A...DRAM DIMM
619C...DRAM DIMM
619D...DRAM SIMM
619N...DRAM DIMM
629A...BW1記憶體模組
629B...BW MM
629C...BW2記憶體模組
629D...非揮發性記憶體模組
629N...DRAM記憶體模組
650A至650N...記憶體通道匯流排
650B...記憶體通道匯流排
700...可程式化異質性記憶體控制器(PHMC)
701...類型A記憶體模組
702...類型B記憶體模組
703...類型C記憶體模組
704...類型D記憶體模組
705...插座或插槽/插座A
706...插座或插槽/插座B
707...插座或插槽/插座C
708...插座或插槽/插座D
710i...記憶體通道
720i...記憶體通道控制器
721...插座/插槽A記憶體模組插槽控制器
722...插座/插槽B記憶體模組插槽控制器
723...插座/插槽C記憶體模組插槽控制器
724...插座/插槽D記憶體模組插槽控制器
730...共同記憶體模組控制器
732...記憶體通道介面
750...處理器介面
800A...可程式化異質性記憶體控制器
802...處理器或互連組構(系統)介面
803...輸入緩衝器
804...輸出緩衝器
806...記憶體模組插座控制暫存器
808...微編碼記憶體
810...輸入/輸出狀態機
811A至811N...記憶體通道狀態機
812...彈性I/O埠控制器
813...直接記憶體存取控制器/DMA控制器
814A、814B...彈性輸出/輸入埠A/B
816...位址埠
817...控制埠
818...雙向資料埠
820...狀態/控制暫存器
821A...記憶體模組狀態機
821B...記憶體模組狀態機
822A...記憶體模組狀態機
822B...記憶體模組狀態機
823A...記憶體模組狀態機
823B...記憶體模組狀態機
824A...記憶體模組狀態機
824B...記憶體模組狀態機
825...控制器
826...匯流排仲裁器
900...記憶體模組(MM)軟體驅動器
901...記憶體類型
902...接針組態
903...信號時序與邏輯位準
904...記憶體模組識別(ID)
圖1A係具有使用可程式化異質性記憶體控制器用於其控制之一異質性主記憶體的一電腦系統之功能方塊圖。
圖1B係具有包括具有不同類型之記憶體的DRAM記憶體模組與轉換記憶體模組之一異質性主記憶體的一電腦系統之功能方塊圖。
圖2係具有使用可程式化異質性記憶體控制器插入處理器插座或包括為該處理器之部分以控制該異質性主記憶體之一異質性主記憶體的另一電腦系統之功能方塊圖。
圖3係具有使用記憶體電路與記憶體控制器電路(包括可程式化異質性記憶體控制器)耦合至一母板之一異質性主記憶體的另一電腦系統之功能方塊圖。
圖4A係一非DRAM類型之記憶體模組的功能方塊圖。
圖4B係一DRAM類型之記憶體模組的功能方塊圖。
圖4C係一轉換記憶體模組的功能方塊圖。
圖5A係包括一可程式化異質性記憶體控制器之一系統控制器的功能方塊圖。
圖5B係包括一可程式化異質性記憶體控制器之一處理器或多處理器的功能方塊圖。
圖6A係具有不同類型之記憶體模組耦合至一可程式化異質性記憶體控制器的複數個標準記憶體通道之方塊圖。
圖6B係耦合至一重新程式化的可程式化異質性記憶體控制器的複數個新指定的記憶體通道之方塊圖。
圖7A至7B係耦合至一記憶體通道中的不同類型之記憶體模組的一可程式化異質性記憶體控制器之一實施方案的高階功能方塊圖。
圖8A至8B係一可程式化異質性記憶體控制器之一實施方案的更詳細功能方塊圖。
圖9係針對每一不同類型之記憶體模組之一記憶體模組驅動器的功能方塊圖。
圖10係用以解說針對一主記憶體中之各記憶體通道儲存於一記憶體模組插座暫存器/表中之資訊的表。
圖11A至11C係用以解說回應進行存取之記憶體模組之類型即時重新指派一記憶體通道之導線互連的表。
圖12A係具有不同類型之記憶體模組之一記憶體通道中的異質性通信之一方法的流程圖。
圖12B係對一記憶體通道中之一非揮發性記憶體模組的通信之一方法的流程圖。
圖13係初始化該可程式化異質性記憶體控制器之一方法的流程圖。
圖14(包括圖14-1至14-5)係用以存取一範例性非揮發性記憶體模組的一記憶體通道之一樣本接針組態重新映射的表。
100A...電腦系統
100A'...母板
101A至101N...處理器插座
102A至102N...迹線
103...互連組構
104A至104N...迹線
105'...I/O子系統
105A至105N...I/O子系統/輸入/輸出晶片
106A至106N...迹線
107A至107N...可程式化異質性記憶體控制器
108A至108N...記憶體模組插座
109A至109N...記憶體模組
110A至110N...印刷電路板迹線
120A至120N...迹線
121A至121N...擴充連接器或插槽
122A至122N...處理器
123A至123N...異質性記憶體通道

Claims (55)

  1. 一種主記憶體,其包含:一可程式化異質性記憶體控制器,其具有一第一記憶體通道介面以耦合至一第一記憶體通道;該第一記憶體通道,耦合至該可程式化異質性記憶體控制器,該第一記憶體通道具有一第一記憶體通道匯流排,其耦合至該可程式化異質性記憶體控制器之該第一記憶體通道介面,以及複數個插座,其耦合至該第一記憶體通道匯流排,該複數個插座能夠分別地接收複數個記憶體模組;以及其中該可程式化異質性記憶體控制器僅在存取一第一記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第一類型記憶體之該第一記憶體模組進行通信,僅在存取一第二記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第二類型記憶體之該第二記憶體模組進行通信,其中該第二類型記憶體不同於該第一類型記憶體,及僅在存取一第三記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第三類型記憶體之該第三記憶體模組進行通信,其中該第三類型記憶體不同於該第二類型記憶體。
  2. 如請求項1之主記憶體,其中:該主記憶體係為一系統之部分,該系統包括複數個處 理器插座,該可程式化異質性記憶體控制器係封裝於不具有一處理器之一積體電路封裝中,以及其中該積體電路封裝具有一處理器相容引腳且該可程式化異質性記憶體控制器耦合於該複數個處理器插座中之一者。
  3. 如請求項1之主記憶體,其中:該可程式化異質性記憶體控制器係共同封裝於一積體電路封裝中,其具有一處理器以耦合於一處理器插座中。
  4. 如請求項1之主記憶體,其中:該記憶體通道匯流排之至少一插座,其接收該至少一動態隨機存取記憶體模組;以及該記憶體通道匯流排之至少另一插座,其接收該至少一非揮發性記憶體模組。
  5. 如請求項1之主記憶體,其中:該記憶體通道匯流排包括一或多個點對點導線,其係獨立耦合於該記憶體控制器與每一個別插座之間,以及複數個匯流排導線,其係耦合至該記憶體控制器與該記憶體通道中之每一插座。
  6. 如請求項5之主記憶體,其中:該一或多個點對點導線之一者與從每一記憶體模組至該記憶體控制器之一回授控制信號進行通信。
  7. 一種主記憶體,其包含:一記憶體控制器,其具有一或多個記憶體通道介面以耦合至一或多個個別記憶體通道;一記憶體通道,具有耦合至該記憶體控制器之一記憶體通道介面之一記憶體通道匯流排;一第一動態隨機存取記憶體模組,其耦合至該記憶體通道匯流排;以及一第一非揮發性記憶體模組,其耦合至該該記憶體通道匯流排;其中透過該記憶體通道匯流排之通信係藉由具有標準規格資料與指令之一標準規格指定,以及其中該第一非揮發性記憶體模組係一轉換記憶體模組,該轉換記憶體模組包括一印刷電路板;一非揮發性記憶體積體電路,其安裝於該印刷電路板;以及一轉換器,其安裝至該印刷電路板且耦合於該記憶體通道匯流排與該非揮發性記憶體積體電路之間,該轉換器經組態以將讀取自該記憶體通道匯流排之標準規格資料與指令轉換成針對該非揮發性記憶體積體電路之記憶體資料與指令,該轉換器經進一步組態以將來自該非揮發性記憶體積體電路之資料與指令轉換成用於寫入至該記憶體通道匯流排之標準規格資料與指令。
  8. 一種電腦系統,其包含:一印刷電路板,其包括複數個迹線;至少一處理器,其係耦合至該印刷電路板之該複數個迹線之某些迹線;一第一異質性記憶體通道,其包括耦合至該印刷電路板之一第一記憶體通道匯流排的一第一複數個插座,該第一複數個插座用以接收一第一複數個不同類型之記憶體模組之印刷電路板;以及一可程式化異質性記憶體控制器,其係耦合於該至少一處理器與該第一異質性記憶體通道之間,該可程式化異質性記憶體控制器用以控制對該第一異質性記憶體通道中的該第一複數個不同類型之記憶體模組的存取;以及其中僅在存取一第一記憶體模組之前,該可程式化異質性記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第一類型之記憶體模組的存取,僅在存取一第二記憶體模組之前,該可程式化異質性記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第二類型之記憶體模組的存取,其中該第二類型之記憶體模組不同於該第一類型之記憶體模組,僅在存取一第三記憶體模組之前,該可程式化異質性 記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第三類型之記憶體模組的存取,其中該第三類型之記憶體模組不同於該第二類型之記憶體模組。
  9. 如請求項8之電腦系統,其中:耦合至該第一異質性記憶體通道中之一插座的該第一記憶體模組,其係一動態隨機存取記憶體模組,以及耦合至該第一異質性記憶體通道中之另一插座的該第二記憶體模組,其係一非揮發性記憶體模組;以及耦合至該第一異質性記憶體通道中之又一插座的該第三記憶體模組,其係一靜態隨機存取記憶體模組。
  10. 如請求項8之電腦系統,其中:該記憶體控制器係一整合的記憶體控制器,其與一矽晶粒上之至少一處理器整合並封裝於一積體電路封裝中,並耦合於安裝至該印刷電路板之該第二處理器插座中。
  11. 如請求項8之電腦系統,其中:該第一、第二及第三類型之記憶體模組之每一者具有一記憶體模組識別以指示耦合於該異質性記憶體通道之該複數個插座中的記憶體模組之該類型。
  12. 一種通信至一記憶體通道中的不同類型之記憶體模組的方法,該方法包含:對於耦合至一記憶體通道匯流排之每一記憶體模組初始化一可程式化異質性記憶體控制器; 回應進行存取的記憶體模組之每一不同類型來調適一記憶體通道介面之每一接針以透過該記憶體通道匯流排之導線互連通信至每一記憶體模組之個別接針;回應進行存取的記憶體模組之每一不同類型來產生邏輯信號用於透過該記憶體通道匯流排之該導線互連對每一記憶體模組之通信;以及其中回應進行存取的記憶體模組之每一不同類型來使用適當的信號時序在該記憶體通道匯流排之該導線互連上產生該等邏輯信號以與每一記憶體模組進行通信。
  13. 如請求項12之方法,其進一步包含:將與進行存取之記憶體模組之該類型相關聯的一或多個記憶體模組軟體驅動器載入該異質性記憶體控制器中。
  14. 如請求項13之方法,其進一步包含:透過一網路下載該一或多個記憶體模組軟體驅動器之至少一者。
  15. 如請求項13之方法,其中回應進行存取的記憶體模組之每一不同類型,該一或多個記憶體模組軟體驅動器各包括關於該記憶體模組之該等個別接針的資訊、用以與該記憶體模組通信的邏輯信號及用以與該記憶體模組通信的信號時序。
  16. 如請求項12之方法,其中每一接針之該調適包括將額外功能性指派給未充分使用或未使用的接針使 得可以延伸一或多個記憶體模組與該可程式化異質性記憶體控制器之間的一通信協定。
  17. 如請求項16之方法,其中以一不同方式使用位址與控制信號線來定址額外記憶體以增加記憶體容量。
  18. 如請求項16之方法,其中在多個循環上使用預先存在的位址接針來形成一更大的位址以定址額外記憶體並增加記憶體容量。
  19. 如請求項16之方法,其中定義一回授接針使得該可程式化異質性記憶體控制器可從該記憶體模組接收狀態資訊。
  20. 如請求項12之方法,其中邏輯信號之該產生包括回應進行存取的記憶體模組之該類型產生高態有效邏輯信號或低態有效邏輯信號。
  21. 如請求項12之方法,其中該可程式化異質性記憶體控制器之該初始化包括針對一記憶體模組輪詢該記憶體通道中之每一插座;從每一記憶體模組讀取一記憶體模組識別以決定耦合於每一插座中的記憶體模組之該類型;以及針對耦合於該記憶體通道中的記憶體模組之每一不同類型將一記憶體模組軟體驅動器載入該可程式化異質性記憶體控制器。
  22. 如請求項21之方法,其中該可程式化異質性記憶體控制器之該初始化進一步包括將與每一插座相關聯的每一記憶體模組識別符儲存於該可程式化異質性記憶體控制器中。
  23. 如請求項22之方法,其中該可程式化異質性記憶體控制器之該初始化進一步包括使用該記憶體模組軟體驅動器載入一狀態機以存取一給定插座中之該記憶體模組。
  24. 一種與一記憶體通道中之一非揮發性記憶體模組進行通信的方法,該方法包含:向一非揮發性記憶體模組發信以執行一操作;使用一回授狀態控制信號往回向一記憶體控制器發信以指示該非揮發性記憶體模組處於忙碌狀態;在該回授狀態控制信號指示該非揮發性記憶體模組處於忙碌狀態之後等待該非揮發性記憶體模組完成該操作;以及使用該回授狀態控制信號往回向該記憶體控制器發信以指示該非揮發性記憶體模組現在準備執行另一操作。
  25. 如請求項24之方法,其中發信通知該非揮發性記憶體模組來執行之該操作係抹除非揮發性記憶體之一區段。
  26. 如請求項24之方法,其中 發信通知該非揮發性記憶體模組來執行之該操作係將一字或資料字寫入非揮發性記憶體中。
  27. 如請求項24之方法,其中透過該記憶體通道匯流排中之一點對點導線互連將來自該非揮發性記憶體模組之該回授狀態控制信號耦合於該記憶體控制器中。
  28. 如請求項24之方法,其進一步包含:將該操作執行於該非揮發性記憶體模組中的非揮發性記憶體之一第一記憶庫中;以及當該操作在非揮發性記憶體之該第一記憶庫中待處理時,同時將一讀取操作執行於該非揮發性記憶體模組中的非揮發性記憶體之一第二記憶庫中。
  29. 如請求項24之方法,其中藉由該記憶體控制器起始該另一操作來抹除該非揮發性記憶體模組中的非揮發性記憶體之一區段。
  30. 如請求項24之方法,其中藉由該記憶體控制器起始該另一操作來將一資料字寫入該非揮發性記憶體模組中的非揮發性記憶體中。
  31. 如請求項24之方法,其進一步包含:中斷一處理器以發信通知該非揮發性記憶體模組準備另一操作。
  32. 一種轉換記憶體模組,其包含:一印刷電路板,其具有一記憶體模組形狀因數與用以耦合至一主記憶體之一預先存在的記憶體通道匯流排之 一插座的一邊緣連接器;至少一記憶體積體電路,其係耦合至該印刷板,該至少一記憶體積體電路具有用以儲存與喚回資料的記憶體與用以傳達資料、位址及控制信號以將資料讀取與寫入該至少一記憶體積體電路中的一第一記憶體通信協定;以及至少一支援晶片,其係耦合至該印刷電路板並耦合於該邊緣連接器與該至少一記憶體積體電路之間,該至少一支援晶片包括一雙向轉換器,其用以在針對該至少一記憶體積體電路的該第一記憶體通信協定與針對不同於該第一記憶體通信協定之該記憶體通道的一第二記憶體通信協定之間轉換,該第二記憶體通信協定用以透過該記憶體通道匯流排傳達資料、位址及控制信號以將資料讀取與寫入該轉換記憶體模組之該記憶體中。
  33. 如請求項32之轉換記憶體模組,其中:該至少一支援晶片進一步包括一資料收發器,其係耦合於該雙向轉換器與該邊緣連接器之間,該資料收發器用以將該記憶體模組雙向介接至該記憶體通道匯流排並使用該第二記憶體通信協定在該記憶體通道匯流排上接收與發送資料,以及一位址與控制接收器,其係耦合於該雙向轉換器與該邊緣連接器之間,該位址與控制接收器用以將該記憶體模組介接至該記憶體通道匯流排並使用該第二記憶體 通信協定在該記憶體通道匯流排上接收位址與控制。
  34. 如請求項33之轉換記憶體模組,其中:該至少一記憶體積體電路係一非雙倍資料速率二(非DDR2)記憶體積體電路而該第一記憶體通信協定係一非DDR2記憶體通信協定,該第二記憶體通信協定係具有DDR2位址、控制及資料發信之一DDR2記憶體通信協定,該資料收發器使用DDR2資料發信將該記憶體模組雙向介接至該記憶體通道匯流排,以及該位址/控制接收器接收DDR2位址發信與DDR2控制發信以將該記憶體模組介接至該記憶體通道匯流排。
  35. 如請求項32之轉換記憶體模組,其中:該至少一記憶體積體電路係一非傳統記憶體積體電路,以及該至少一支援晶片包括該雙向轉換器以在該第一記憶體通信協定與該第二記憶體通信協定之間轉換使得該記憶體模組中的非傳統記憶體積體電路使用該預先存在的記憶體通道匯流排通信至一預先存在的記憶體控制器。
  36. 如請求項35之轉換記憶體模組,其中:該非傳統記憶體積體電路係一非揮發性記憶體積體電路。
  37. 一種記憶體模組,其包含:一印刷電路板,其具有一記憶體模組形狀因數與用以耦合至一主記憶體之一記憶體通道匯流排之一插座的一 邊緣連接器;至少一記憶體積體電路,其係耦合至該印刷板,該至少一記憶體積體電路具有記憶體用以儲存與喚回資料;以及至少一支援晶片,其係耦合至該印刷電路板並耦合於該邊緣連接器與該至少一記憶體積體電路之間,該至少一支援晶片包括一記憶體模組識別(MMID),其用以提供記憶體模組之類型與該至少一記憶體積體電路之一識別。
  38. 如請求項37之記憶體模組,其中:該記憶體模組識別(MMID)用以將該記憶體模組識別為一非揮發性記憶體模組並將該至少一記憶體積體電路識別為至少一非揮發性記憶體積體電路。
  39. 如請求項37之記憶體模組,其中:該至少一支援晶片進一步包括一輸入/輸出埠,其係耦合至該邊緣連接器以形成一通信埠來將該記憶體模組識別(MMID)通信至一記憶體控制器。
  40. 如請求項39之記憶體模組,其中:該輸入/輸出埠係一串列輸入/輸出埠而該通信埠係一串列通信埠,其用以將該記憶體模組識別(MMID)串列通信至該記憶體控制器。
  41. 如請求項37之記憶體模組,其中:該至少一支援晶片進一步包括 一暫存器,其用以儲存關於該至少一記憶體積體電路之狀態資訊,該暫存器用以回應一請求來透過一記憶體通道匯流排將該狀態資訊傳達至一記憶體控制器。
  42. 如請求項37之記憶體模組,其中:該至少一支援晶片用以從該至少一記憶體積體電路接收狀態資訊並產生一狀態旗標用於透過一記憶體通道匯流排對一記憶體控制器之通信。
  43. 一種可程式化異質性記憶體控制器,其包含:一處理器介面,其用以耦合至一處理器,以及一或多個記憶體通道控制器,其係耦合至該處理器介面並耦合至一主記憶體之一或多個個別記憶體通道,該一或多個記憶體通道控制器之各記憶體通道控制器包括一記憶體通道介面,其用以耦合至一記憶體通道匯流排;一共同記憶體模組控制器,其係耦合至該記憶體通道介面與該處理器介面,該共同記憶體模組控制器用以針對耦合於個別複數個記憶體模組插座中的複數個不同記憶體模組在該記憶體通道匯流排上產生共同控制信號;以及複數個記憶體模組控制器,其係耦合至該記憶體通道介面與該處理器介面,該複數個記憶體模組控制器用以針對耦合於該個別複數個記憶體模組插座中的該 複數個不同記憶體模組之各記憶體模組產生不同的控制信號,該複數個記憶體模組控制器之各記憶體模組控制器係可回應耦合於該個別記憶體模組插座中的記憶體模組之類型藉由一記憶體模組軟體驅動器加以程式化。
  44. 如請求項43之可程式化異質性記憶體控制器,其中一非揮發性記憶體模組係耦合於耦合至一第一記憶體通道控制器的一第一記憶體通道匯流排之一記憶體模組插座中;一動態隨機存取記憶體模組係耦合於該第一記憶體通道匯流排之另一記憶體模組插座中;以及該主記憶體係一異質性主記憶體。
  45. 如請求項44之可程式化異質性記憶體控制器,其中藉由一記憶體模組軟體驅動器來程式化一第一記憶體模組控制器以產生第一控制信號用於控制該非揮發性記憶體模組;以及藉由一不同記憶體模組軟體驅動器來程式化一第二記憶體模組控制器以產生第二控制信號用於控制該動態隨機存取記憶體模組。
  46. 如請求項44之可程式化異質性記憶體控制器,其中該共同記憶體模組控制器針對該非揮發性記憶體模組與該動態隨機存取記憶體模組在該第一記憶體通道匯流排上產生共同控制信號。
  47. 一種可程式化異質性記憶體控制器,其包含: 一系統介面,其用以耦合至一處理器並允許對一主記憶體之存取;一記憶體介面,其具有一或多個彈性輸入/輸出(I/O)埠之接針,該記憶體介面用以耦合至一或多個個別記憶體通道之插座中的不同記憶體模組;以及一或多個輸入/輸出(I/O)狀態機,其係耦合於該系統介面與該記憶體介面之間,該等I/O狀態機用以回應一給定插座中進行存取的記憶體模組之類型及其個別記憶體模組軟體驅動器來程式化該接針組態並針對該記憶體介面之該等接針產生邏輯信號。
  48. 如請求項47之可程式化異質性記憶體控制器,其中一記憶體模組軟體驅動器包括與一記憶體模組之一記憶體模組識別相關聯的記憶體類型、接針組態、信號時序及信號邏輯位準。
  49. 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一輸入/輸出(I/O)緩衝器,其係耦合於該系統介面與該一或多個I/O狀態機之間,該I/O緩衝器用以針對該I/O狀態機緩衝從一處理器接收的位址、控制及資料並用以緩衝從該I/O狀態機之資料以將其寫出至一處理器。
  50. 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一彈性埠控制器,其係耦合於該I/O狀態機與該記憶體介面之間,該彈性埠控制器用以回應該接針組態來選擇 該一或多個彈性輸入/輸出(I/O)埠之該等功能性接針。
  51. 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一記憶體模組插座暫存器,其係耦合至該I/O狀態機,該記憶體模組插座暫存器用以儲存插入每一記憶體通道中之各插座的每一記憶體模組之該記憶體模組識別(ID);一微編碼記憶體,其係耦合至該記憶體模組插座暫存器,該微編碼記憶體用以針對藉由該記憶體模組插座暫存器指示的記憶體模組之每一不同類型來儲存該等記憶體模組軟體驅動器並將記憶體模組軟體驅動器供應至該I/O狀態機。
  52. 如請求項47之可程式化異質性記憶體控制器,其中該一或多個輸入/輸出(I/O)狀態機之各I/O狀態機針對耦合至該可程式化異質性記憶體控制器之每一記憶體通道包括一記憶體通道狀態機,每一記憶體通道狀態機包括針對每一記憶體模組與其中的每一秩之記憶體的一或多個記憶體模組狀態機,其中為透過該記憶體通道匯流排將資料讀取與寫入耦合至其的每一記憶體模組中,該一或多個記憶體模組狀態機用以回應進行存取的記憶體模組之該類型來使用一適當引腳組態該記憶體介面,用以回應進行存取的記憶體模組之該類型來產生信號之適當邏輯位準,並用以回應進行存取的記憶體模組之該類型於該適當時間在該記憶體通道匯流 排上讀取與產生信號;一控制器,其係耦合至該一或多個記憶體模組狀態機,該控制器用以控制該一或多個記憶體模組狀態機之何者處於活動狀態;以及一匯流排仲裁器,其係耦合至該控制器與該一或多個記憶體模組狀態機,該匯流排仲裁器用以仲裁藉由該一或多個記憶體模組狀態機對該記憶體通道匯流排之存取。
  53. 如請求項52之可程式化異質性記憶體控制器,其中該控制器進一步用以回應請求的記憶體存取之該類型與進行存取的該記憶體模組之該記憶體通道中之位置來控制該一或多個記憶體模組狀態機在操作的操作模式。
  54. 如請求項53之可程式化異質性記憶體控制器,其中該操作模式可以係一讀取(R)存取、一寫入(W)存取或一初始化/抹除(I)之一者。
  55. 如請求項53之可程式化異質性記憶體控制器,其中該記憶體模組之該位置係耦合該記憶體模組之該插座。
TW96136497A 2006-09-28 2007-09-28 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置 TWI446171B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US82742106P 2006-09-28 2006-09-28
US86259706P 2006-10-23 2006-10-23
US95668107P 2007-08-17 2007-08-17

Publications (2)

Publication Number Publication Date
TW200839517A TW200839517A (en) 2008-10-01
TWI446171B true TWI446171B (zh) 2014-07-21

Family

ID=44820877

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96136497A TWI446171B (zh) 2006-09-28 2007-09-28 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置

Country Status (1)

Country Link
TW (1) TWI446171B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI691838B (zh) * 2015-07-13 2020-04-21 南韓商三星電子股份有限公司 電腦系統以及非揮發性記憶體的操作方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108538B1 (en) 2017-07-31 2018-10-23 Google Llc Accessing prologue and epilogue data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI691838B (zh) * 2015-07-13 2020-04-21 南韓商三星電子股份有限公司 電腦系統以及非揮發性記憶體的操作方法

Also Published As

Publication number Publication date
TW200839517A (en) 2008-10-01

Similar Documents

Publication Publication Date Title
US9767867B2 (en) Methods of communicating to different types of memory modules in a memory channel
US8051253B2 (en) Systems and apparatus with programmable memory control for heterogeneous main memory
US8074022B2 (en) Programmable heterogeneous memory controllers for main memory with different memory modules
US8806116B2 (en) Memory modules for two-dimensional main memory
US9536609B2 (en) Memory modules with multi-chip packaged integrated circuits having flash memory
TWI454923B (zh) 在具有組態以控制非揮發性記憶體存取之記憶體控制器的系統中之主記憶體及相關技術
TWI500031B (zh) 具非揮發性類型記憶體模組的主記憶體之系統、方法及裝置,及其相關技術
US7761626B2 (en) Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US20050138267A1 (en) Integral memory buffer and serial presence detect capability for fully-buffered memory modules
TWI465925B (zh) 不同規格記憶體插槽之電腦系統
TWI446171B (zh) 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置
US7370810B2 (en) Semiconductor device and memory card having the same
CN101349933B (zh) 不同规格内存插槽的计算机系统
JPH0612501A (ja) Si型cpuモジュール