TWI446171B - Systems, methods, and apparatus with programmable memory control for heterogeneous main memory - Google Patents

Systems, methods, and apparatus with programmable memory control for heterogeneous main memory 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
Chinese (zh)
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/en
Application granted granted Critical
Publication of TWI446171B publication Critical patent/TWI446171B/en

Links

Description

用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置System, method and device for programmable memory control with heterogeneous main memory

本申請案一般係關於用於控制對主記憶體中的記憶體模組之存取的記憶體控制器。This application is generally directed to a memory controller for controlling access to a memory module in the main memory.

一計算系統可具有一同質性主記憶體,其具有一類型之記憶體,例如動態隨機存取記憶體(DRAM)積體電路(IC)。A computing system can have a homogenous main memory having a type of memory, such as a dynamic random access memory (DRAM) integrated circuit (IC).

DRAM IC藉由在每一記憶體單元中之一電容器上儲存特定數量之電荷以儲存一邏輯一或替代性地一邏輯零來保留資料資訊。經過一段時間,並由於讀取操作,該電容器上之儲存電荷在一常稱為漏出之程序中耗散。為保存一DRAM電容器上之儲存電荷並因而維持該DRAM保持其記憶體內容的能力,可透過再新循環來增加該記憶體單元中的儲存電荷,其有時係週期性執行。一再新循環消耗功率。The DRAM IC retains data information by storing a specific amount of charge on one of the capacitors in each memory cell to store a logic one or alternatively a logic zero. Over time, and due to the read operation, the stored charge on the capacitor is dissipated in a process commonly referred to as leakage. To preserve the stored charge on a DRAM capacitor and thus maintain the DRAM's ability to retain its memory contents, the stored charge in the memory cell can be increased by a new cycle, which is sometimes performed periodically. The new cycle consumes power again and again.

在以下詳細說明中,提出許多特定實施方案之範例。然而,實施方案可包括以下組態:其包括少於此等範例中提出的詳細特徵與組合的全部替代。In the following detailed description, examples of numerous specific embodiments are set forth. However, embodiments may include configurations that include fewer than all of the detailed features and combinations set forth in these examples.

簡介Introduction

在某些實施方案中,提供一可程式化記憶體控制器來控制對一主記憶體中的不同類型之記憶體模組的存取。可將非揮發性記憶體模組與DRAM記憶體模組用於相同的記憶體通道,其實施相同的記憶體通道規格以形成一異質性主記憶體。在某些實施方案中,該可程式化記憶體控制器可以係包含於一可購得處理器或具有一可購得處理器之引腳使其可以駐留於一系統之處理器插座中。例如,該可程式化記憶體控制器可具有一處理器之一引腳並係插入具有可以接收該處理器之一插座的一預先存在的母板中。In some embodiments, a programmable memory controller is provided to control access to different types of memory modules in a main memory. The non-volatile memory module and the DRAM memory module can be used for the same memory channel, which implements the same memory channel specifications to form a heterogeneous main memory. In some embodiments, the programmable memory controller can be included in a commercially available processor or have a commercially available pin that can reside in a processor socket of a system. For example, the programmable memory controller can have one of the pins of a processor and be inserted into a pre-existing motherboard having a socket that can receive the processor.

更新的記憶體模組可具有更大的密度與不同的電特徵。以前為獲得更新的記憶體模組設計的好處,購買一新的電腦或一新的母板以接受新類型的記憶體模組,因為該記憶體控制器之設計係緊密地耦合於進行存取的記憶體模組之類型。若在一新系統之設計中使用具有不同技術之新記憶體模組,則通常產生針對一新記憶體控制器之一新硬體設計。針對一新記憶體控制器設計一新硬體設計可能增加銷售一新系統的時間。除從暫存區設計一新記憶體控制器以外,一可程式化記憶體控制器可以係程式化以提供控制與存取新記憶體模組設計的功能性並加快銷售新系統的時間。Newer memory modules can have greater density and different electrical characteristics. Previously, to gain the benefits of an updated memory module design, a new computer or a new motherboard was purchased to accept a new type of memory module because the memory controller design was tightly coupled for access. The type of memory module. If a new memory module with a different technology is used in the design of a new system, a new hardware design for one of the new memory controllers is typically produced. Designing a new hardware design for a new memory controller may increase the time it takes to sell a new system. In addition to designing a new memory controller from the scratchpad, a programmable memory controller can be programmed to provide control and access to the functionality of the new memory module design and to speed up the sale of new systems.

具有異質性記憶體通道的電腦系統Computer system with heterogeneous memory channels

現參考圖1A,其解說具有一異質性主記憶體之一電腦系統100A的功能方塊圖。該電腦系統100A包括一多處理器母板100A'。安裝於該母板100A'的係複數個處理器插座101A至101N。可將處理器122A至122N插入此等處理器插座。經由迹線102A至102N將該等處理器插座101A至101N連接至互連組構103。該互連組構103可僅由迹線構成或其可包含其他積體電路,但其功能係將各種處理器、記憶體及I/O一起連接於該母板100A'內。可將該互連組構邏輯的部分嵌入該等處理器與記憶體控制器內。Referring now to Figure 1A, a functional block diagram of a computer system 100A having a heterogeneous primary memory is illustrated. The computer system 100A includes a multi-processor motherboard 100A'. A plurality of processor sockets 101A to 101N mounted on the motherboard 100A'. Processors 122A through 122N can be plugged into such processor sockets. The processor sockets 101A-101N are connected to the interconnect fabric 103 via traces 102A-102N. The interconnect fabric 103 may be constructed solely of traces or it may include other integrated circuitry, but the function is to connect various processors, memories, and I/Os together within the motherboard 100A'. Portions of the interconnect fabric logic can be embedded within the processor and memory controller.

額外安裝於該母板100A'的係一或多個可程式化異質性記憶體控制器107A至107N,其係經由迹線106A至106N耦合至該互連組構103。該等可程式化異質性記憶體控制器107A至107N分別控制記憶體通道123A至123N之各記憶體通道。該等記憶體通道123A至123N之各記憶體通道中的印刷電路板迹線110A至110N係耦合於記憶體模組插座108A至108N與該等可程式化異質性記憶體控制器107A至107N之間。該等記憶體模組插座可具有專有引腳或可以係標準JEDEC引腳之任一者(例如DDR2、DDR3或其他記憶體規格)。One or more programmable heterogeneous memory controllers 107A-107N additionally mounted to the motherboard 100A' are coupled to the interconnect fabric 103 via traces 106A-106N. The programmable heterogeneous memory controllers 107A to 107N control the respective memory channels of the memory channels 123A to 123N, respectively. The printed circuit board traces 110A-110N in the memory channels of the memory channels 123A-123N are coupled to the memory module sockets 108A-108N and the programmable-type heterogeneous memory controllers 107A-107N. between. The memory module sockets can have proprietary pins or can be any of the standard JEDEC pins (eg, DDR2, DDR3, or other memory specifications).

複數個不同類型之記憶體模組109A至109N係插入該等異質性記憶體通道之插座108A至108N。一異質性記憶體通道係其中混合類型或不同類型之記憶體模組可耦合至相同記憶體通道匯流排之一記憶體通道。一同質性記憶體通道係其中相同類型(例如記憶體類型(例如DDR2 DRAM等))但可能具有不同記憶體容量之記憶體模組可耦合至相同記憶體通道匯流排之一記憶體通道。例如,一異質性記憶體通道中的不同類型之記憶體模組可以係動態隨機存取記憶體雙直列記憶體模組(DRAM DIMM)與非揮發性隨機存取記憶體雙直列記憶體模組(NVRAM DIMM)。在該等記憶體模組之某些實施方案中,不同類型之記憶體模組係設計成用以滿足某些或全部DDR2記憶體模組規格(或DDR3或其他記憶體規格)。在記憶體模組之其他實施方案中,新的記憶體模組滿足該DDR2規格(或DDR3或其他記憶體規格)與重新指派現有母板互連以包含不同控制信號來在該記憶體控制器與該等新記憶體模組之間介接。該可程式化異質性記憶體控制器出於各種目的支援不同控制發信的使用。例如,對該等新記憶體模組的新控制信號可能增加記憶體容量或透過預先存在的通道迹線發信額外的裝置狀態資訊。A plurality of different types of memory modules 109A to 109N are inserted into the sockets 108A to 108N of the heterogeneous memory channels. A heterogeneous memory channel is one in which a mixed type or a different type of memory module can be coupled to one of the memory channels of the same memory channel bus. A homogenous memory channel is a memory module in which the same type (eg, memory type (eg, DDR2 DRAM, etc.)) but may have different memory capacities can be coupled to one memory channel of the same memory channel bus. For example, different types of memory modules in a heterogeneous memory channel can be a dynamic random access memory dual in-line memory module (DRAM DIMM) and a non-volatile random access memory dual in-line memory module. (NVRAM DIMM). In some embodiments of the memory modules, different types of memory modules are designed to meet some or all of the DDR2 memory module specifications (or DDR3 or other memory specifications). In other embodiments of the memory module, the new memory module satisfies the DDR2 specification (or DDR3 or other memory specification) and reassigns an existing motherboard interconnect to include different control signals in the memory controller. Interfacing with the new memory modules. The programmable heterogeneous memory controller supports the use of different control signaling for various purposes. For example, new control signals for these new memory modules may increase memory capacity or signal additional device status information through pre-existing channel traces.

該可程式化異質性記憶體控制器藉由不同類型之記憶體模組來仲裁與控制對該記憶體通道匯流排之存取。該可程式化記憶體控制器還可經由額外的控制發信來仲裁與控制對連接特定記憶體模組內之積體電路的內部DIMM上資料匯流排之存取。例如,支援晶片後堆起的非揮發性記憶體積體電路可具有其對該內部DIMM上匯流排與藉由該可程式化異質性記憶體控制器仲裁與控制之記憶體通道匯流排兩者之存取。該可程式化異質性記憶體控制器可經由額外控制信號來控制該等DIMM支援晶片之各支援晶片中的匯流排多工器以允許藉由選定非揮發性記憶體積體電路對該記憶體通道匯流排之存取。以此方式,該非揮發性記憶體模組可具有一更大的記憶體容量。由於資料偏斜及其他時序考慮所致,典型主記憶體設計將一記憶體通道中的DIMM之數目限制於一較小數目。該可程式化異質性記憶體控制器允許額外的控制發信使得可以實質上增加一記憶體模組並因此一記憶體通道內的可定址記憶體容量。The programmable heterogeneous memory controller arbitrates and controls access to the memory channel bus by different types of memory modules. The programmable memory controller can also arbitrate and control access to data busses on internal DIMMs that are connected to integrated circuits within a particular memory module via additional control signaling. For example, a non-volatile memory volume circuit stacked after supporting a wafer may have both a bus bar on the internal DIMM and a memory channel bus that is arbitrated and controlled by the programmable heterogeneous memory controller. access. The programmable heterogeneous memory controller can control a bus multiplexer in each of the support wafers of the DIMM support chips via an additional control signal to allow the memory channel to be selected by selecting a non-volatile memory volume circuit Access to the bus. In this way, the non-volatile memory module can have a larger memory capacity. Typical main memory designs limit the number of DIMMs in a memory channel to a small number due to data skew and other timing considerations. The programmable heterogeneous memory controller allows for additional control signaling so that a memory module and thus an addressable memory capacity within a memory channel can be substantially increased.

該可程式化異質性記憶體控制器可自動地由一處理器作用。例如,該可程式化異質性記憶體控制器可使耦合於該等記憶體模組插座中的所有記憶體對該系統中的處理器係可見的或其可使用某些附著的記憶體作為一快取記憶體以改良該記憶體系統的總體性能。在此情況下,可藉由該記憶體控制器選擇更快類型的記憶體模組來用作一快取記憶體之位準。此外,該可程式化異質性記憶體控制器可按其認為係合適的來重新解釋來自一處理器之位址與讀取/寫入命令。此允許(例如)該可程式化異質性記憶體控制器從包含一記憶體模組之一位址空間讀取同時在該相同模組內同時地發生一寫入或抹除操作。The programmable heterogeneous memory controller can be automatically acted upon by a processor. For example, the programmable heterogeneous memory controller can cause all of the memory coupled to the memory module sockets to be visible to the processor system in the system or to use some attached memory as a The memory is cached to improve the overall performance of the memory system. In this case, a faster type of memory module can be selected by the memory controller to be used as a level of a cache memory. In addition, the programmable heterogeneous memory controller can reinterpret the address and read/write commands from a processor as it deems appropriate. This allows, for example, the programmable heterogeneous memory controller to read from an address space containing a memory module while simultaneously performing a write or erase operation within the same module.

額外安裝於該母板100A的係一或多個I/O子系統105A至105N,其係經由迹線104A至104N連接至該互連組構103。或者或結合地,一或多個I/O子系統105'可以係安裝於該母板100A並耦合至該等可程式化異質性記憶體控制器107A至107N(或一系統控制器)以提供藉由該等處理器對I/O裝置之存取。One or more I/O subsystems 105A-105N additionally mounted to the motherboard 100A are connected to the interconnect fabric 103 via traces 104A-104N. Alternatively or in combination, one or more I/O subsystems 105' may be mounted to the motherboard 100A and coupled to the programmable heterogeneous memory controllers 107A-107N (or a system controller) to provide Access to the I/O device by the processors.

在圖1A中,該等記憶體控制器107A至107N係藉由該等PCB迹線110A至110N直接耦合至每一記憶體通道123A至123N中的插座108A至108N。然而,還可透過次要記憶體控制器將記憶體控制器間接地耦合至每一記憶體通道中的插座108A至108N。In FIG. 1A, the memory controllers 107A through 107N are directly coupled to the sockets 108A through 108N in each of the memory channels 123A through 123N by the PCB traces 110A through 110N. However, the memory controller can also be indirectly coupled to the sockets 108A-108N in each memory channel through the secondary memory controller.

現參考圖2,其解說一替代多處理器系統200與母板200'。在圖2中,該可程式化異質性記憶體控制器可以係用以插入一插座之一外部可程式化異質性記憶體控制器212或其可以係一整合的可程式化異質性記憶體控制器212',其係作為一處理器211之部分而共同封裝於該處理器封裝中。該處理器211包括該整合的可程式化異質性記憶體控制器212'。即,該處理器封裝211包含該處理器元件與該整合的可程式化異質性記憶體控制器212'兩者。一處理器封裝內可存在一或多個可程式化異質性記憶體控制器。Referring now to Figure 2, an alternative multiprocessor system 200 and motherboard 200' are illustrated. In Figure 2, the programmable heterogeneous memory controller can be used to plug into an externally programmable heterogeneous memory controller 212 of an outlet or it can be integrated with a programmable heterogeneous memory control The device 212' is co-packaged in the processor package as part of a processor 211. The processor 211 includes the integrated programmable heterogeneous memory controller 212'. That is, the processor package 211 includes both the processor component and the integrated programmable heterogeneous memory controller 212'. One or more programmable heterogeneous memory controllers may be present within a processor package.

可將該外部可程式化異質性記憶體控制器212插入一處理器插座112B。將該外部可程式化異質性記憶體控制器212插入一開放的處理器插座允許擴充並可升級一預先存在的記憶體通道以支援具有不同類型之記憶體模組之一異質性主記憶體。The externally programmable heterogeneous memory controller 212 can be inserted into a processor socket 112B. Inserting the externally programmable heterogeneous memory controller 212 into an open processor socket allows for expansion and upgrade of a pre-existing memory channel to support heterogeneous main memory having a different type of memory module.

在該多處理器系統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記憶體模組與非揮發性記憶體模組。In the multiprocessor system 200, the processor sockets 112A-112N are connected to the interconnect fabric 103 via traces 116A-116N of the motherboard 200'. The processor sockets 112A-112N are also connected to the memory channels 113A-113N and 213A-213N via traces 125A-125N. The memory channels 113A-113N are homogenous memory channels for controlling access to the DRAM memory modules 114A-114N inserted into the sockets 115A-115N. The memory channels 213A through 213N are heterogeneous memory channels for controlling access to different or mixed types of memory modules 214A through 214N within each channel, such as insertable into the sockets 115A through 115N. DRAM memory modules and non-volatile memory modules.

在圖2中,該主記憶體150'可包括同質性記憶體通道113A至113N與異質性記憶體通道213A至213N,其可藉由該異質性記憶體控制器212、212'加以控制。或者,可使用一同質性記憶體控制器221來控制對該主記憶體中的同質性記憶體通道113A至113N的存取。可將該同質性記憶體控制器221與一處理器231共同封裝並插入一插座112A中。In FIG. 2, the main memory 150' may include homogenous memory channels 113A-113N and heterogeneous memory channels 213A-213N, which may be controlled by the heterogeneous memory controllers 212, 212'. Alternatively, a homogenous memory controller 221 can be used to control access to the homogenous memory channels 113A-113N in the main memory. The homogenous memory controller 221 can be packaged with a processor 231 and inserted into a socket 112A.

還可使用一或多個擴充連接器來升級該等系統100A、200以使得更多記憶體容量可用及/或減低該電腦系統之主記憶體中的功率消耗。One or more expansion connectors may also be used to upgrade the systems 100A, 200 to make more memory capacity available and/or reduce power consumption in the main memory of the computer system.

在某些實施方案中,可使用一或多個擴充連接器或插槽121A至121N來升級與擴充該母板100A'、200'之主記憶體。可使用一子卡或擴充板(未顯示)來升級該等電腦系統中的主記憶體。該子卡或擴充板接著包括一可程式化異質性記憶體控制器,其用以控制對每一通道中的混合或不同類型之記憶體模組的存取。以此替代性方式,可將該電腦系統中的主記憶體擴充成為其中具有不同類型之記憶體積體電路之一異質性主記憶體。In some embodiments, one or more expansion connectors or slots 121A-121N can be used to upgrade and expand the main memory of the motherboard 100A', 200'. A daughter card or expansion board (not shown) can be used to upgrade the main memory in these computer systems. The daughter card or expansion board then includes a programmable heterogeneous memory controller for controlling access to mixed or different types of memory modules in each channel. In this alternative, the main memory in the computer system can be expanded into one of the heterogeneous main memories of the different types of memory volume circuits.

在圖2中,該外部可程式化異質性記憶體控制器212、具有該內部可程式化異質性記憶體控制器212'之處理器211及該等記憶體模組係插入插座中以便耦合至該系統之母板。可以其他方式將該可程式化異質性記憶體控制器(PHMC)與該記憶體模組(MM)耦合至系統之母板。In FIG. 2, the externally programmable heterogeneous memory controller 212, the processor 211 having the internal programmable heterogeneous memory controller 212', and the memory modules are inserted into the socket for coupling to The motherboard of the system. The programmable heterogeneous memory controller (PHMC) and the memory module (MM) can be coupled to the motherboard of the system in other ways.

現參考圖3,該等記憶體控制器與該等記憶體模組係耦合至一電腦系統300之母板301而無需一插座,例如藉由將晶片直接焊接於其。該電腦系統300包括一母板301,其具有處理器122A至122N、記憶體控制器(可程式化異質性記憶體控制器107A至107N、DRAM記憶體控制器117D、非揮發性記憶體控制器117NV)、支援晶片403A至403N、動態隨機存取記憶體(DRAM)積體電路314A至314N、靜態隨機存取記憶體(SRAM)積體電路315A至315N及非揮發性記憶體積體電路402A至402N直接耦合於其而無需一插座,例如藉由焊接。Referring now to Figure 3, the memory controllers and the memory modules are coupled to a motherboard 301 of a computer system 300 without the need for a socket, such as by soldering the wafer directly thereto. The computer system 300 includes a motherboard 301 having processors 122A through 122N, a memory controller (programmable heterogeneous memory controllers 107A through 107N, a DRAM memory controller 117D, a non-volatile memory controller) 117NV), support chips 403A to 403N, dynamic random access memory (DRAM) integrated circuits 314A to 314N, static random access memory (SRAM) integrated circuits 315A to 315N, and non-volatile memory volume circuit 402A to The 402N is directly coupled to it without the need for a socket, such as by soldering.

該等處理器122A至122N與該等記憶體控制器(可程式化異質性記憶體控制器107A至107N、DRAM記憶體控制器117D、非揮發性記憶體控制器117NV)係耦合至該互連組構103以彼此通信。或者,可如圖2所示將該等記憶體控制器之一或多個記憶體控制器整合於該等處理器中以彼此通信。輸入/輸出晶片105A至105N還可以係焊接至該母板並耦合至該互連組構103。The processors 122A-122N are coupled to the memory controllers (programmable heterogeneous memory controllers 107A-107N, DRAM memory controller 117D, non-volatile memory controller 117NV) to the interconnect The fabrics 103 communicate with each other. Alternatively, one or more memory controllers of the memory controllers may be integrated into the processors to communicate with one another as shown in FIG. Input/output wafers 105A-105N may also be soldered to the motherboard and coupled to the interconnect fabric 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"以提供負載隔離。本文中,該等支援晶片亦可稱為橋接晶片。The programmable heterogeneous memory controllers 107A-107N are coupled to the memory channel busbars 110 to different types of memory chips (SRAMs 315A-315N, DRAMs 114A-114N) in the heterogeneous memory channels. , NVRAM 402A to 402N) communication. The DRAM memory controller (DMC) 117D is coupled to the memory channel busbar 110' for communication with DRAM type memory chips 314A through 314N in the homogenous memory channel. The non-volatile random access memory controller (NVMC) 117NV is coupled to the memory channel bus 110" to communicate with NVRAM type memory chips 402A-402N in a homogenous memory channel. A plurality of support wafers 403A through 403N are coupled to the individual memory chips and individual memory channel busbars 110, 110' and 110" to provide load isolation. In this context, the support wafers may also be referred to as bridge wafers.

記憶體模組Memory module

現參考圖4A,其解說一非DRAM類型之記憶體模組214(例如,非揮發性記憶體模組)的圖式。可將該非DRAM類型之記憶體模組214分別插入圖1A與2所解說的系統100A、200之一或多個異質性記憶體通道123A至123N、213A至213N中的記憶體模組插座108A至108N、115A至115N中。Referring now to Figure 4A, a diagram of a non-DRAM type memory module 214 (e.g., a non-volatile memory module) is illustrated. The non-DRAM type memory module 214 can be inserted into the memory module socket 108A of one or more of the heterogeneous memory channels 123A to 123N, 213A to 213N of the system 100A, 200 illustrated in FIGS. 1A and 2, respectively. 108N, 115A to 115N.

一給定記憶體模組可在其印刷電路板上具有不同的記憶體類型(SRAM、DRAM或非揮發性記憶體)與邏輯或其他電路。或者,一給定記憶體模組可具有一同質性類型之記憶體並可包含邏輯或其他類型之電路。A given memory module can have different memory types (SRAM, DRAM or non-volatile memory) and logic or other circuitry on its printed circuit board. Alternatively, a given memory module can have a homogenous type of memory and can include logic or other types of circuitry.

在某些實施方案中,該非DRAM類型之記憶體模組214係一非揮發性類型之記憶體模組。該非揮發性類型之記憶體模組可包括依據某些實施方案的至少一NOR閘快閃電可抹除可程式化唯讀記憶體(EEPROM)積體電路。在一組態中,對一非揮發性記憶體積體電路之讀取與寫入存取係不對稱的。在此情況下,對非揮發性記憶體積體電路之一寫入比從該非揮發性記憶體積體電路之一讀取花更多的時間。非揮發性記憶體積體電路中之一記憶體抹除操作亦比一讀取存取花更多的時間。某些類型之非揮發性記憶體積體電路(例如NOR快閃EEPROM積體電路)可以係經組態以使得讀取存取時間可以係減低至足以用於其中一位址係呈現且資料係返回的主記憶體中的位準。在一組態中,為解決讀取與寫入性能之間的不對稱,可使用用於抹除與將資料寫入非揮發性記憶體模組之一資料通信協定,其中指令封包係寫入該裝置並接著命令該裝置程式化或抹除非揮發性記憶體中的大量資料。In some embodiments, the non-DRAM type memory module 214 is a non-volatile type of memory module. The non-volatile type of memory module can include at least one NOR gate flash lightning erasable programmable read only memory (EEPROM) integrated circuit in accordance with certain embodiments. In one configuration, the read and write accesses to a non-volatile memory volume circuit are asymmetric. In this case, writing one of the non-volatile memory volume circuits takes more time than reading from one of the non-volatile memory volume circuits. A memory erase operation in a non-volatile memory volume circuit also takes more time than a read access. Certain types of non-volatile memory volume circuits (eg, NOR flash EEPROM integrated circuits) may be configured such that the read access time may be reduced enough for one of the address locations to be presented and the data system returned The level in the main memory. In one configuration, to address the asymmetry between read and write performance, a data communication protocol for erasing and writing data to a non-volatile memory module can be used, where the instruction packet is written. The device then instructs the device to program or erase a large amount of data in the volatile memory.

在圖4A中,該非DRAM類型之記憶體模組214包括一印刷電路板(PCB)400,其具有形成於其上的邊緣連接器之觸點401(在針對一DIMM之各側上)、複數個非DRAM記憶體晶片402A至402N及複數個支援晶片403A至403N。該印刷電路板(PCB)400具有一低輪廓記憶體模組形狀因數(例如,30毫米(mm)高或更高與大致133mm寬),其係插入插座中而不佔據較多空間。In FIG. 4A, the non-DRAM type memory module 214 includes a printed circuit board (PCB) 400 having a contact 401 of the edge connector formed thereon (on each side for a DIMM), plural The non-DRAM memory chips 402A to 402N and the plurality of support wafers 403A to 403N. The printed circuit board (PCB) 400 has a low profile memory module form factor (e.g., 30 millimeters (mm) high or higher and approximately 133 mm wide) that is inserted into the socket without occupying more space.

該記憶體模組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耦合至該記憶體通道匯流排。The memory module 214 further includes a plurality of printed circuit board traces (eg, printed leads) 404A-404N and 406A-406L formed on the PCB 400, and the non-DRAM memory chips 402A-402N and the The support wafers 403A to 403N are coupled between the support wafers 403A to 403N and the contacts 401 of the edge connectors. The printed circuit board traces (e.g., printed conductors) 404A through 404N form an internal memory module bus 404 through which the non-DRAM memory chips 402A through 402N can compete for Access to the memory channel bus. The printed circuit board traces (e.g., printed conductors) 406A through 406L (collectively by reference numeral 406) are coupled to the memory channel busbar by contacts 401 of the edge connectors.

該複數個支援晶片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。At least one of the plurality of support wafers 403A-403N can include one of memory module identifications (MMIDs) 410 that can be stored to provide identification of one of the types of memory modules and for mounting on the PCB 400. The information of the volume bodies circuits 402A to 402N. The plurality of signal lines form a communication port 412 through which the memory module identification (MMID) 410 can be communicated from each memory module to the programmable heterogeneous memory controllers 107, 212, 212'. The support chip having the memory module identification further includes an input/output port 411 coupled to the communication port 412 for transmitting and receiving information through the port 412. If only a few signal lines are available, the communication port 412 can be a serial communication and the I/O port 411 is a serial I/O port that uses serial data for bidirectional communication of information. . The MMID 410 can be polled by a programmable heterogeneous memory controller during initialization to determine the different types of memory modules that can be inserted into each socket. The MMID 410 can be communicated by one of the standards defined by a JEDEC standard or by some other institution.

在某些實施方案中,該記憶體模組214係一雙直列記憶體模組(DIMM)而該印刷電路板(PCB)400係在前後兩側上具有積體電路與邊緣連接器之觸點之一DIMM PCB。該等DIMM可包含不具有一確定性存取時間的記憶體。因而,該等DIMM可發信通知該可程式化異質性記憶體控制器,其具有可用於消耗的資料或準備接受資料。若一特定DIMM插座具有針對一特定JEDEC標準類型之DDR、DDR2或DDR3 DIMM之一引腳而並非該類型之一DIMM係插入該特定插座,則該可程式化異質性記憶體控制器可程式化其本身來以適當方式重新使用該DIMM插座之現有接針以控制插入該插座中的該類型之DIMM。In some embodiments, the memory module 214 is a dual in-line memory module (DIMM) and the printed circuit board (PCB) 400 has contacts on the front and rear sides of the integrated circuit and the edge connector. One of the DIMM PCBs. The DIMMs can include memory that does not have a deterministic access time. Thus, the DIMMs can signal to the programmable heterogeneous memory controller that it has data available for consumption or ready to receive data. The programmable heterogeneous memory controller can be programmed if a particular DIMM socket has one of the DDR, DDR2 or DDR3 DIMM pins of a particular JEDEC standard type and not one of the DIMMs is plugged into the particular socket It itself re-uses the existing pins of the DIMM socket in a suitable manner to control the type of DIMM inserted into the socket.

在某些實施方案中,該記憶體模組214係具有該等非DRAM記憶體晶片402A至402N之一非揮發性記憶體模組,該等晶片係非揮發性記憶體積體電路晶片,例如NOR快閃EEPROM積體電路晶片。該非揮發性記憶體可以係映射於與該主記憶體相同的位址空間中並可預期該處理器在讀取時比主記憶體稍慢。In some embodiments, the memory module 214 is a non-volatile memory module of the non-DRAM memory chips 402A-402N, such as a non-volatile memory volume circuit chip, such as NOR. Flash EEPROM integrated circuit chip. The non-volatile memory can be mapped in the same address space as the main memory and can be expected to be slightly slower than the main memory when reading.

非揮發性記憶體積體電路晶片通常在讀取存取與寫入存取之間具有一不對稱。由於一寫入操作發生至一非揮發性記憶體單元內的性質所致,讀取存取時間通常比該寫入存取時間少得多。此外,讀取存取可隨機讀取某些非揮發性記憶體積體電路中的任一位置。然而,寫入存取傾向於係區塊或區段定向的,再次係由於一寫入操作發生至該非揮發性記憶體積體電路內的非揮發性記憶體單元的性質所致。因而,某些非揮發性記憶體積體電路可以係視為如同一隨機存取記憶體般隨機讀取位置但如同一硬碟機般寫入區段。此等較長延遲使對該非揮發性記憶體模組之程式化與抹除存取成為非確定性事件。即,可能不能預先知道一非揮發性記憶體模組要完成一寫入操作或一抹除操作將花多長時間。Non-volatile memory volume circuit chips typically have an asymmetry between read and write accesses. Due to the nature of a write operation to a non-volatile memory cell, the read access time is typically much less than the write access time. In addition, read accesses can randomly read any location in some non-volatile memory volume circuits. However, write access tends to be block or sector oriented, again due to the nature of the non-volatile memory cells that occur within the non-volatile memory volume circuit due to a write operation. Thus, some non-volatile memory volume circuits can be viewed as randomly reading locations as the same random access memory but as if written to the same hard drive. These longer delays cause the stylized and erase access to the non-volatile memory module to become a non-deterministic event. That is, it may not be known in advance how long it will take for a non-volatile memory module to complete a write operation or an erase operation.

為嘗試及減輕與該等寫入操作的某些不對稱,每一非揮發性記憶體積體電路402A至402N可包括一寫入緩衝器425,複數個寫入操作係儲存於其中用於在適當時刻寫入記憶體單元之一區段中。在將資料寫入該等非揮發性記憶體單元中之前,該寫入緩衝器425可儲存一或多個資料字,而一資料通信協定可以係用於指示該非揮發性記憶體積體電路要將該質料寫入何處。To attempt and mitigate some of the asymmetry with the write operations, each of the non-volatile memory volume circuits 402A-402N can include a write buffer 425 in which a plurality of write operations are stored for appropriate The time is written into one of the sections of the memory unit. The write buffer 425 may store one or more data words before writing the data into the non-volatile memory units, and a data communication protocol may be used to indicate that the non-volatile memory volume circuit is to be Where is the material written?

該可程式化異質性記憶體控制器可使用一或多個DRAM記憶體模組作為快取記憶體用於該非揮發性記憶體改良系統性能。在該情況下,該可程式化異質性記憶體控制器可包括一快取記憶體控制器。The programmable heterogeneous memory controller can use one or more DRAM memory modules as cache memory for the non-volatile memory to improve system performance. In this case, the programmable heterogeneous memory controller can include a cache memory controller.

此外,可將該非揮發性記憶體單元組織成複數個非揮發性記憶體單元之記憶庫426A至426D。在每一記憶體積體電路中,可將該等記憶庫之各記憶庫進一步組織成提供一預定記憶體容量的非揮發性記憶體單元之區段。當要使用一寫入存取或寫入操作來寫入一記憶庫時,其他記憶庫可藉由一讀取存取或讀取操作進行讀取。可在一記憶庫中之一區段上同樣執行抹除該等非揮發性記憶體積體電路中的記憶體之區段的一抹除操作同時其他記憶庫可藉由一讀取存取或讀取操作進行讀取。Additionally, the non-volatile memory cells can be organized into memories 426A through 426D of a plurality of non-volatile memory cells. In each memory volume circuit, the memories of the memory banks can be further organized into segments of non-volatile memory cells that provide a predetermined memory capacity. When a write access or write operation is to be used to write to a memory bank, other memory banks can be read by a read access or read operation. An erase operation for erasing a segment of the memory in the non-volatile memory volume circuit can also be performed on one of the sections of the memory while other memories can be accessed or read by a read The operation is read.

每一非揮發性記憶體積體電路402A至402N可進一步包括一狀態暫存器427,其可藉由該記憶體控制器加以輪詢以讀取每一記憶庫之狀態,例如忙碌於一寫入模式或一抹除模式。此外,可將該串列通信埠412用於在該記憶體控制器與該等記憶體模組之間雙向通信資訊,例如狀態。耦合至該串列通信埠的一或多個支援晶片403A至403N可包括一暫存器415用以儲存關於該等記憶體積體電路402A至402N之操作的狀態資訊,其可透過該通信埠412係輪詢(請求)並傳達至該記憶體控制器。Each of the non-volatile memory volume circuits 402A-402N can further include a status register 427 that can be polled by the memory controller to read the status of each memory bank, such as busy writing Mode or a erase mode. In addition, the serial communication port 412 can be used to bidirectionally communicate information, such as status, between the memory controller and the memory modules. The one or more support chips 403A through 403N coupled to the serial communication port can include a register 415 for storing status information regarding the operation of the memory volume circuits 402A through 402N through the communication port 412. Poll (request) and communicate to the memory controller.

此外,可將一回授控制信號(例如圖6A中之狀態信號611F)從該非揮發性記憶體模組傳達至該記憶體控制器以減輕對該等非揮發性記憶體模組的寫入操作之非確定性質。使用該回授控制信號,該記憶體控制器可避免反覆輪詢該記憶體模組以決定該記憶體模組何時完成一操作。一或多個支援晶片403A至403N之一者可從該等記憶體積體電路402A至402N接收狀態資訊並產生可透過該記憶體通道匯流排傳達至該記憶體控制器之一狀態信號611F。Additionally, a feedback control signal (eg, status signal 611F in FIG. 6A) can be communicated from the non-volatile memory module to the memory controller to mitigate write operations to the non-volatile memory modules. Non-deterministic nature. Using the feedback control signal, the memory controller can avoid polling the memory module repeatedly to determine when the memory module completes an operation. One of the one or more support wafers 403A through 403N can receive status information from the memory volume circuits 402A through 402N and generate a status signal 611F that can be communicated to the memory controller via the memory channel bus.

用於存取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模組/插座之第一秩記憶體的狀態信號。此等狀態信號係回授並耦合至該異質性記憶體控制器以更有效率地存取該非揮發性記憶體模組。每一狀態信號指示一記憶體模組中之一秩之記憶體是否忙碌或準備另一寫入或抹除存取以減輕對非揮發性記憶體模組的抹除與寫入操作之非確定性質。The data strobe signal for accessing the DRAM memory module can be changed to a feedback control signal, which can be communicated from a non-volatile memory module to the memory controller to mitigate the non-volatile memory The non-deterministic nature of the erase and write operations in the module. For example, in the exemplary embodiment illustrated in FIG. 14, when a non-volatile memory module is accessed in a memory module socket of a memory channel, the data strobe signals DQS13, DQS14, DQS15, and DQS16 are respectively Change to status signal RY/BY_N_R1D0, RY/BY_N_R1D1, RY/BY_N_R1D2, RY/BY_N_R1D3. The data strobe signals DQS13, DQS14, DQS15, and DQS16 are used for timing data output from each memory module in a DRAM memory channel. The RY/BY_N_R1D0, RY/BY_N_R1D1, RY/BY_N_R1D2, RY/BY_N_R1D3 signals are status signals for the first rank memory of each DIMM module/socket of the four DIMM modules/sockets in the memory channel. . These status signals are fed back and coupled to the heterogeneous memory controller for more efficient access to the non-volatile memory module. Each status signal indicates whether a rank of the memory in a memory module is busy or prepares another write or erase access to mitigate the non-determination of the erase and write operations on the non-volatile memory module. nature.

儘管非揮發性記憶體積體電路個別可能存取比DRAM慢,但可透過該記憶體通道匯流排藉由並列存取複數個非揮發性記憶體積體電路來實現高資料頻寬。非揮發性記憶體積體電路之平均功率消耗相對較低使得可將一更大數目安裝於一DIMM印刷電路板上以實現相同功率預算內的更大記憶體容量。該可程式化異質性記憶體控制器允許以對一處理器透明之一方式透過一記憶體通道匯流排並列存取複數個非揮發性記憶體積體電路。Although the non-volatile memory volume circuits may be accessed more slowly than the DRAM, the high data bandwidth can be achieved by the parallel access of a plurality of non-volatile memory volume circuits through the memory channel bus. The relatively low average power consumption of the non-volatile memory volume circuitry allows a larger number to be mounted on a DIMM printed circuit board to achieve greater memory capacity within the same power budget. The programmable heterogeneous memory controller allows a plurality of non-volatile memory volume circuits to be accessed side by side through a memory channel bus in a manner transparent to a processor.

應注意,該等非DRAM記憶體晶片402A至402N還可以係某一其他種類的非DRAM類型之記憶體積體電路晶片,例如靜態隨機存取記憶體積體電路。It should be noted that the non-DRAM memory chips 402A-402N may also be other types of non-DRAM type memory volume circuit chips, such as static random access memory volume circuits.

可使用複數個支援晶片403A至403N來緩衝位址,及/或從與至該等非DRAM記憶體晶片402A至402N多工與解多工資料。本文中,該複數個支援晶片403A至403N亦可稱為複數個緩衝積體電路403。A plurality of support wafers 403A through 403N can be used to buffer the address and/or multiplexed and multiplexed data from and to the non-DRAM memory chips 402A through 402N. Herein, the plurality of support wafers 403A to 403N may also be referred to as a plurality of buffer integrated circuits 403.

該等支援積體電路晶片支援(即,促進)藉由該異質性記憶體控制器對該記憶體模組中以不同秩與記憶庫堆起的記憶體積體電路的讀取與寫入資料存取。在某些實施方案中,非揮發性記憶體積體電路係以一單一多晶片封裝堆起,其接著係附著於該非揮發性記憶體模組。The support integrated circuit chip supports (ie, facilitates) reading and writing data of the memory volume circuit stacked in the memory module with different ranks and memory banks by the heterogeneous memory controller. take. In some embodiments, the non-volatile memory volume circuitry is stacked in a single multi-chip package that is subsequently attached to the non-volatile memory module.

該等支援晶片403A至403N之各支援晶片可包括一多對一匯流排多工器422與一一對多匯流排解多工器424。或者,可將該多對一匯流排多工器422與該一對多匯流排解多工器424整合在一起作為一交叉開關。Each of the support wafers 403A through 403N may include a plurality of pairs of bus multiplexers 422 and a one-to-many bus multiplexer 424. Alternatively, the many-to-one bus multiplexer 422 and the one-to-many bus demultiplexer 424 may be integrated as a crossbar switch.

該多對一匯流排多工器422係用於透過該等印刷電路板迹線406A至406L將來自耦合至該等記憶體積體電路402A至402N的形成複數個匯流排的某些印刷電路板迹線404A至404N的資料寫入該記憶體通道匯流排上。該多對一匯流排多工器422允許並列存取大量資料並接著在一叢發之循環中將其傳輸至該記憶體控制器。可在一叢發之循環上使用該一對多匯流排解多工器424來透過該等印刷電路板迹線406A至406L從該記憶體通道匯流排接收資料並接著將該資料驅動至藉由耦合至該等記憶體積體電路402A至402N之印刷電路板迹線404A至404N形成的許多資料匯流排之一者上。可同樣使用一交叉開關來提供對該等記憶體積體電路402A至402N之讀取與寫入存取。The many-to-one bus multiplexer 422 is configured to pass certain printed circuit traces from the plurality of busbars coupled to the memory volume circuits 402A-402N through the printed circuit board traces 406A-406L. The data of lines 404A through 404N is written to the memory channel bus. The many-to-one bus multiplexer 422 allows a large amount of data to be accessed in parallel and then transmitted to the memory controller in a burst cycle. The one-to-many bus multiplexer 424 can be used on a burst cycle to receive data from the memory channel bus through the printed circuit board traces 406A-406L and then drive the data to be coupled by coupling To one of the plurality of data busses formed by the printed circuit board traces 404A through 404N of the memory volume circuits 402A through 402N. A crossbar switch can also be used to provide read and write access to the memory volume circuits 402A-402N.

由於負載與時序考慮所致,可相對於可直接耦合至其的積體電路之數目來限制該記憶體通道匯流排。藉由該記憶體模組上的複數個支援晶片403A至403N提供之匯流排多工允許在該DIMM之各側上該支援晶片的後面堆起額外記憶體以使其比另外可不具有該等支援晶片的具有一更大的記憶體容量可用。該複數個支援晶片403A至403N的使用避免從該記憶體模組中的額外記憶體積體電路添加額外的電容負載於該記憶體通道匯流排上。該可程式化異質性記憶體控制器可控制該複數個支援晶片之一或多個支援晶片與該記憶體通道匯流排上的匯流排多工以存取該等支援晶片後面堆起的記憶體。Due to load and timing considerations, the memory channel busbar can be limited relative to the number of integrated circuits that can be directly coupled thereto. The bus multiplex provided by the plurality of support wafers 403A to 403N on the memory module allows additional memory to be stacked behind the support wafer on each side of the DIMM to have such support The wafer has a larger memory capacity available. The use of the plurality of support wafers 403A through 403N avoids adding additional capacitive loading from the additional memory volume circuitry in the memory module to the memory channel bus. The programmable heterogeneous memory controller can control one or more of the plurality of support wafers and the bus multiplex on the memory channel bus to access the memory stacked behind the support wafers .

此外,若將非揮發性記憶體模組插入該等插座中,則可具有一更大的記憶體容量而具有更少的平均功率消耗。即使將額外記憶體積體電路安裝於該記憶體模組中以增加記憶體容量,若在該等記憶體模組中使用非揮發性記憶體積體電路則該平均功率消耗仍可更低。In addition, if a non-volatile memory module is inserted into the sockets, it can have a larger memory capacity with less average power consumption. Even if an additional memory volume circuit is installed in the memory module to increase the memory capacity, the average power consumption can be lower if a non-volatile memory volume circuit is used in the memory modules.

現參考圖4B,其解說針對一DDR2記憶體通道匯流排之一JEDEC標準DRAM DIMM 434。該DRAM DIMM 434包括複數個DRAM記憶體晶片436A至436N,其係安裝至該印刷電路板434並直接耦合至邊緣連接器之觸點440。因而,該等DRAM記憶體晶片436A至436N係更直接地耦合至該記憶體通道匯流排。可藉由直接耦合至該記憶體通道匯流排之DRAM記憶體晶片436A至436N提供的記憶體容量來限制該DRAM DIMM 434的記憶體容量。Referring now to Figure 4B, there is illustrated a JEDEC standard DRAM DIMM 434 for a DDR2 memory channel bus. The DRAM DIMM 434 includes a plurality of DRAM memory chips 436A through 436N that are mounted to the printed circuit board 434 and coupled directly to the contacts 440 of the edge connector. Thus, the DRAM memory chips 436A through 436N are more directly coupled to the memory channel bus. The memory capacity of the DRAM DIMM 434 can be limited by the amount of memory provided by the DRAM memory chips 436A through 436N coupled directly to the memory channel bus.

該等DRAM記憶體晶片436A至436N係設計成遵守該記憶體通道匯流排之規格,例如該DDR2規格(或DDR3或其他記憶體規格)。每一記憶體晶片436A至436N具有位址/控制與資料線,其係直接耦合至邊緣連接器之觸點440。The DRAM memory chips 436A through 436N are designed to comply with the specifications of the memory channel bus, such as the DDR2 specification (or DDR3 or other memory specifications). Each memory chip 436A-436N has an address/control and data line that is directly coupled to the edge connector 440.

該DRAM DIMM 434不包括任何進一步支援晶片將資料信號多工至該記憶體通道匯流排上與離開該記憶體通道匯流排。可發生的唯一多工係在該記憶體晶片本身內部並且其接著將一記憶體陣列之資料位元行多工至該記憶體晶片之適當輸出接針。無額外支援晶片提供額外多工,該JEDEC標準ECC DRAM DIMM 434可僅具有至多三十六個個別記憶體晶片。記憶體之一秩通常位於該PCB 435的前側,記憶體晶片係直接耦合至該記憶體通道匯流排;而記憶體之另一秩通常位於該PCB 435的後側,記憶體晶片係直接耦合至該記憶體通道匯流排。將記憶體之秩的數目限制於一預定數目可限制該記憶體模組與該記憶體通道之資料頻寬。The DRAM DIMM 434 does not include any further support wafers to multiplex data signals onto and away from the memory channel bus. The only multiplex that can occur is inside the memory chip itself and it then multiplexes the data bit rows of a memory array to the appropriate output pins of the memory chip. The extra multiplex is provided without additional support chips, and the JEDEC standard ECC DRAM DIMM 434 can have only up to thirty-six individual memory chips. One of the memory ranks is usually located on the front side of the PCB 435, and the memory chip is directly coupled to the memory channel bus; and another rank of the memory is usually located on the back side of the PCB 435, and the memory chip is directly coupled to The memory channel bus. Limiting the number of ranks of the memory to a predetermined number limits the data bandwidth of the memory module and the memory channel.

對於更大的記憶體容量,例如圖4A中解說的記憶體模組214可支援高達144個個別記憶體晶片。其他非揮發性記憶體模組可以係設計成用以支援額外的非揮發性記憶體積體電路。For larger memory capacities, for example, the memory module 214 illustrated in Figure 4A can support up to 144 individual memory chips. Other non-volatile memory modules can be designed to support additional non-volatile memory volume circuits.

依據發明者Kumar Ganapathy等人在2006年9月28日申請的美國臨時專利申請案60/827,421之教導(此處以引用方式併入),可升級圖1A之母板100A'的主記憶體以在一記憶體通道中使用非揮發性記憶體模組換出一或多個DRAM記憶體模組來減低一電腦系統中的平均功率消耗。在此情況下,非揮發性記憶體模組214係插入一或多個插座108A至108N從而取代該個別記憶體通道中的DRAM記憶體模組,並將適當記憶體控制器插入插座中。The main memory of the motherboard 100A' of Figure 1A can be upgraded in accordance with the teachings of U.S. Provisional Patent Application Serial No. 60/827,421, filed on Sep. 28, 2006, which is hereby incorporated by reference. A non-volatile memory module is used in a memory channel to swap out one or more DRAM memory modules to reduce the average power consumption in a computer system. In this case, the non-volatile memory module 214 is inserted into one or more of the sockets 108A-108N to replace the DRAM memory module in the individual memory channels, and the appropriate memory controller is inserted into the socket.

在某些實施方案中,該記憶體通道的個別記憶體控制器107A至107N之各記憶體控制器係一可程式化異質性記憶體控制器,其用以控制對該等非揮發性記憶體模組214以及可插入相同記憶體通道中的其他類型之記憶體模組的讀取與寫入存取。在某些實施方案中,可使用一處理器封裝211來取代一多處理器系統中的一或多個處理器,其具有整合的可程式化異質性記憶體控制器212'用以控制對該個別記憶體通道中的非揮發性記憶體模組214的讀取與寫入存取。In some embodiments, each memory controller of the individual memory controllers 107A-107N of the memory channel is a programmable heterogeneous memory controller for controlling the non-volatile memory. Module 214 and read and write access to other types of memory modules that can be inserted into the same memory channel. In some embodiments, a processor package 211 can be used in place of one or more processors in a multi-processor system having an integrated programmable heterogeneous memory controller 212' for controlling Read and write accesses to the non-volatile memory module 214 in individual memory channels.

整合的可程式化異質性記憶體控制器Integrated programmable heterogeneous memory controller

現參考圖5A至5B,可將該可程式化異質性記憶體控制器整合於各種晶片中以支援具有混合類型之記憶體模組的記憶體通道。Referring now to Figures 5A through 5B, the programmable heterogeneous memory controller can be integrated into various wafers to support a memory channel having a mixed type of memory module.

在圖5A中,解說一系統控制器積體電路500A之功能方塊圖。該系統控制器積體電路500A包括一可程式化異質性記憶體控制器501A、一輸入/輸出控制器502A、一擴充匯流排介面(例如,PCI、超通道)504及用以控制對記憶體以外的裝置之存取的一裝置控制器506。該可程式化異質性記憶體控制器501A控制對相同記憶體通道中的混合類型之記憶體模組的存取。In Fig. 5A, a functional block diagram of a system controller integrated circuit 500A is illustrated. The system controller integrated circuit 500A includes a programmable heterogeneous memory controller 501A, an input/output controller 502A, an extended bus interface (eg, PCI, super channel) 504, and is used to control the memory. A device controller 506 that accesses devices other than the device. The programmable heterogeneous memory controller 501A controls access to a mixed type of memory module in the same memory channel.

在圖5B中,解說具有一整體或整合的記憶體控制器之一中央處理單元(CPU)或處理器500B的功能方塊圖。該中央處理單元(CPU)或處理器500B包括一可程式化異質性記憶體控制器501B,其可包括一輸入/輸出控制器502B、一命令控制器512及一或多個執行單元(EU)510。可將該可程式化異質性記憶體控制器501B與該處理器整合或僅共同封裝於相同封裝中。該處理器內的可程式化異質性記憶體控制器501B控制對相同記憶體通道中的混合類型之記憶體模組的存取。In FIG. 5B, a functional block diagram of a central processing unit (CPU) or processor 500B having an integrated or integrated memory controller is illustrated. The central processing unit (CPU) or processor 500B includes a programmable heterogeneous memory controller 501B that can include an input/output controller 502B, a command controller 512, and one or more execution units (EU) 510. The programmable heterogeneous memory controller 501B can be integrated with the processor or only co-packaged in the same package. The programmable heterogeneous memory controller 501B within the processor controls access to a mixed type of memory module in the same memory channel.

可程式化異質性記憶體控制器Programmable heterogeneous memory controller

現參考圖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進行存取。Referring now to Figures 6A through 6B, the programmable heterogeneous memory controllers 601A through 601B are programmable to control access to memory modules within a memory channel. It can be programmed to support different types of memory modules that can be plugged into the same memory channel socket. That is, the types of memory modules inserted into the same memory channel can be mixed and the programmable heterogeneous memory controller can be programmed to communicate with each memory module. For example, the memory channel 602A can have any type of memory module 609A that supports specifications for memory channels (eg, DDR2, DDR3, etc.), including a static random access memory module 609C, a non-volatile memory. The body module 609D or a DRAM memory module 609N. The programmable heterogeneous memory controller 601A can be programmed to communicate with memory modules of the plurality of types of memory modules in the same memory channel. Assuming that the memory module is physically inserted into a memory socket 608A-608N, matching a power connection or a subset thereof and not invalidating the memory channel bus, it can be inserted into the same memory channel and The other modules are accessed by the programmable heterogeneous memory controller 601A through the same memory channel bus. For example, a memory module having different data bandwidths (for example, BW1 memory module 629A and BW2 memory module 629C or non-volatile memory module 629D and DRAM memory module 629N) can be inserted into the same memory. The body channel 602N is accessed by the memory controller 601A through the memory channel bus 610N.

一記憶體通道602A至602N係一組耦合至一記憶體控制器的導線,從而形成具有兩類導線互連(點對點導線與廣播或匯流排導線)之一記憶體通道匯流排610A至610N,其進而係耦合至插座以與插入其中的記憶體模組通信。每一記憶體通道602A至602N皆彼此獨立。A memory channel 602A-602N is a set of wires coupled to a memory controller to form a memory channel busbar 610A-610N having two types of wire interconnects (point-to-point wires and broadcast or bus bar wires). It is in turn coupled to the socket to communicate with the memory module inserted therein. Each of the memory channels 602A to 602N is independent of each other.

每一記憶體通道匯流排610A至610N進一步具有複數個廣播導線(PCB迹線612),其係與個別記憶體通道中的各及每一插座608A至608N共用。即,組成該等廣播或匯流排導線612的導線之各導線耦合至給定記憶體通道中的每一插座608A至608N與耦合至其的每一記憶體模組。因而,在個別記憶體通道602A至602N中可藉由插入該等記憶體插座中之記憶體模組之任一者來讀取寫入該等廣播導線612上的信號。Each memory channel bus 610A-610N further has a plurality of broadcast wires (PCB traces 612) that are shared with each of the individual memory channels and each of the sockets 608A-608N. That is, the wires that make up the wires of the broadcast or bus bar wires 612 are coupled to each of the sockets 608A-608N in a given memory channel and to each of the memory modules coupled thereto. Thus, signals written to the broadcast conductors 612 can be read by any of the memory modules inserted into the memory sockets in the individual memory channels 602A through 602N.

每一記憶體通道匯流排610A至610N具有複數個點對點導線611,其從該記憶體控制器601A耦合至每一個別插座608A至608N。來自該記憶體控制器的複數個點對點導線(PCB迹線)611在插座間係獨立的。Each memory channel busbar 610A-610N has a plurality of point-to-point conductors 611 coupled from the memory controller 601A to each of the individual outlets 608A-608N. A plurality of point-to-point conductors (PCB traces) 611 from the memory controller are independent of the sockets.

一般而言,依據該JEDEC DDR2規格,每一記憶體通道中存在針對信號S0、S1、ODT0及ODT1的四個點對點導線。可將此等點對點導線重新指派給另一邏輯功能。此外,從該記憶體控制器至每一記憶體通道中之各及每一插座/DIMM存在大致29個唯位址、時脈及控制輸出信號。此外,在該記憶體控制器與每一記憶體通道中之各及每一插座/DIMM之間存在72個雙向資料線與36個雙向資料選通線(1資料時脈針對四位元之資料)。In general, according to the JEDEC DDR2 specification, there are four point-to-point conductors for signals S0, S1, ODT0, and ODT1 in each memory channel. These point-to-point conductors can be reassigned to another logic function. In addition, there are approximately 29 address-only, clock and control output signals from the memory controller to each of the memory channels and each socket/DIMM. In addition, there are 72 bidirectional data lines and 36 bidirectional data strobe lines between the memory controller and each of the memory channels and each socket/DIMM (1 data clock for four bits of data) ).

可將該等點對點導線611之一者重新定義為藉由一記憶體模組產生之一狀態信號611F,其係傳達至該記憶體控制器。例如,可將該狀態信號611F回授至該可程式化異質性記憶體控制器601A以使其知道該記憶體模組準備另一存取。該狀態信號611F尤其適用於存取非揮發性記憶體模組,因為可能需要一些時間來在其中寫入或抹除記憶體位置。使用該狀態信號611F,該記憶體控制器不需要反覆輪詢具有此能力的記憶體模組以決定其狀態與其是否準備另一抹除或寫入操作。One of the point-to-point conductors 611 can be redefined to generate a status signal 611F by a memory module that is communicated to the memory controller. For example, the status signal 611F can be fed back to the programmable heterogeneous memory controller 601A to know that the memory module is ready for another access. The status signal 611F is particularly useful for accessing non-volatile memory modules because it may take some time to write or erase memory locations therein. Using the status signal 611F, the memory controller does not need to poll the memory module having this capability repeatedly to determine its state and whether it is preparing another erase or write operation.

參考圖6A至6B及9,該異質性記憶體控制器601A至601B可藉由軟體來程式化,例如一記憶體模組(MM)軟體驅動器900。該記憶體模組軟體驅動器900可讀取該記憶體模組識別(ID)904,接著將資料載入該異質性記憶體控制器;此類資料可包括該記憶體類型901(例如,SRAM、DRAM或NVRAM)、接針組態902、信號時序與邏輯位準903(例如,低態有效或高態有效)。Referring to Figures 6A through 6B and 9, the heterogeneous memory controllers 601A through 601B can be programmed by software, such as a memory module (MM) software driver 900. The memory module software driver 900 can read the memory module identification (ID) 904 and then load the data into the heterogeneous memory controller; such data can include the memory type 901 (eg, SRAM, DRAM or NVRAM), pin configuration 902, signal timing and logic level 903 (eg, active low or active high).

可透過該記憶體模組ID將一記憶體模組與其記憶體模組軟體驅動器匹配。即,從該記憶體模組讀取的記憶體模組ID 410應匹配該軟體驅動器900的記憶體模組識別(ID)904。該記憶體模組識別(ID)410可以係編碼以指示關於其製造商來源以及記憶體類型、其容量及速度的資訊。此外,若該可程式化異質性記憶體控制器601A至601B內沒有針對一給定記憶體模組ID之一記憶體模組軟體驅動器900容易地可用,則其可透過一網路(例如網際網路)下載或從一碟片載入,類似於可將新的印表機驅動器載入一電腦系統之方式。A memory module can be matched with its memory module software driver through the memory module ID. That is, the memory module ID 410 read from the memory module should match the memory module identification (ID) 904 of the software driver 900. The memory module identification (ID) 410 can be encoded to indicate information about its manufacturer source and memory type, its capacity and speed. In addition, if the programmable heterogeneous memory controllers 601A to 601B are not easily available for one of the memory modules of the given memory module ID, the memory module can be transmitted through a network (eg, the Internet). Networking) Downloading or loading from a disc is similar to the way a new printer driver can be loaded into a computer system.

參考圖10,在初始化之後該可程式化異質性記憶體控制器601A可旋即輪詢每一記憶體通道中之各插座以決定何類型之記憶體模組係插入每一記憶體通道中之各插座中。圖10解說一範例性記憶體模組插座表,其可以係儲存於該可程式化異質性記憶體控制器601A內的暫存器或一記憶體中。最左行指示插座號碼而最上列指示記憶體通道號碼。該表內的項目係記憶體模組識別的代表。例如,記憶體通道一(MC1)中的插座一(S1)可具有一SRAM1類型之記憶體模組插入其中。一插座可以係未佔用的或空的。在該情況下,該表項目可以係指示為未佔用的,如針對記憶體通道二(MC2)中的插座二(S2)所指示。可使用該等項目來選擇適當的記憶體模組驅動器以存取每一個別記憶體通道中之各記憶體模組。Referring to FIG. 10, after initialization, the programmable heterogeneous memory controller 601A can poll each socket in each memory channel to determine what type of memory module is inserted into each memory channel. In the socket. 10 illustrates an exemplary memory module socket table that can be stored in a scratchpad or a memory within the programmable heterogeneous memory controller 601A. The leftmost line indicates the socket number and the top line indicates the memory channel number. The items in the table are representative of the memory module identification. For example, the socket one (S1) in the memory channel one (MC1) may have a memory module of the SRAM1 type inserted therein. A socket can be unoccupied or empty. In this case, the table entry may be indicated as unoccupied, as indicated for socket two (S2) in memory channel two (MC2). These items can be used to select an appropriate memory module driver to access each memory module in each individual memory channel.

現參考圖11A至11C,在組成該記憶體通道匯流排610之線下面的表中解說不同的接針組態902。每一表中的第一列指示接針號碼。每一表中的第二列表示該接針是否係一唯輸入接針(I)、一唯輸出接針(O)、一雙向(輸入與輸出兩者)接針(B)或一功率接針(P)(例如一接地接針或一電源接針)。每一表中的第三列表示指派給每一接針的功能性,例如功率(V)、接地(G)、無連接(NC)、資料接針(Di)、位址接針(Ai)或控制接針(Ci)。例如,可將此等不同的接針組態儲存為針對不同記憶體模組驅動器900的接針組態902(參見圖9)。Referring now to Figures 11A through 11C, different pin configurations 902 are illustrated in the table below the lines that make up the memory channel busbar 610. The first column in each table indicates the pin number. The second column in each table indicates whether the pin is a single input pin (I), a just output pin (O), a bidirectional (both input and output) pin (B) or a power connection. Needle (P) (such as a grounding pin or a power pin). The third column in each table represents the functionality assigned to each pin, such as power (V), ground (G), no connection (NC), data pin (Di), address pin (Ai) Or control the pin (Ci). For example, these different pin configurations can be stored as pin configurations 902 for different memory module drivers 900 (see Figure 9).

一記憶體通道中的混合類型之記憶體模組可引起該記憶體控制器在存取每一記憶體模組時即時改變一記憶體通道匯流排之接針組態。例如,圖11A中解說的接針組態可以係用於透過該記憶體通道匯流排610存取一第一記憶體模組。例如,在圖11A中,編號3與4的接針分別係控制輸入接針C1與C2。例如,當存取該記憶體通道匯流排610之一第二記憶體模組時,該接針組態可改變成圖11B中解說的組態。例如,在圖11B中,編號3與4的接針分別係雙向資料匯流排接針D1與D2。例如,當存取該記憶體通道匯流排610之一第三記憶體模組時,該接針組態可改變成圖11C中解說的組態。例如,在圖11C中,編號3與4的接針分別係位址輸入接針A1與A2。在存取每一不同記憶體模組時即時將該可程式化異質性記憶體控制器601A改變該信號功能性與接針指派。若將相同記憶體模組插入相同記憶體通道中的兩個記憶體插座中,則當該記憶體控制器連續地從存取一記憶體模組改變至另一記憶體模組時在程式化中可不存在改變。A mixed type of memory module in a memory channel can cause the memory controller to instantly change the pin configuration of a memory channel bus when accessing each memory module. For example, the pin configuration illustrated in FIG. 11A can be used to access a first memory module through the memory channel bus 610. For example, in Fig. 11A, the pins numbered 3 and 4 control the input pins C1 and C2, respectively. For example, when accessing one of the second memory modules of the memory channel bus 610, the pin configuration can be changed to the configuration illustrated in FIG. 11B. For example, in Fig. 11B, the pins of numbers 3 and 4 are bidirectional data bus bars D1 and D2, respectively. For example, when accessing one of the third memory modules of the memory channel bus 610, the pin configuration can be changed to the configuration illustrated in FIG. 11C. For example, in Fig. 11C, the pins of numbers 3 and 4 are address input pins A1 and A2, respectively. The programmable heterogeneous memory controller 601A changes the signal functionality and pin assignments as soon as each different memory module is accessed. If the same memory module is inserted into two memory sockets in the same memory channel, the memory controller is stylized as it continuously changes from accessing one memory module to another memory module. There can be no change in it.

應注意,當存取相同記憶體通道上的不同記憶體模組時針對功率(V)與接地(G)的導線不改變。例如,編號1與2的接針分別保持恆定為功率(V)與接地(G)。然而,並非每一記憶體模組皆需要連接至每一功率或接地接針。例如,在圖11B中,要使用接針組態存取的記憶體模組分別對接針N-1與N(接地(G)與功率(V))係一無連接(NC)。It should be noted that the wires for power (V) and ground (G) do not change when accessing different memory modules on the same memory channel. For example, the pins of numbers 1 and 2 are held constant at power (V) and ground (G), respectively. However, not every memory module needs to be connected to each power or ground pin. For example, in FIG. 11B, the memory modules to be accessed using the pin configuration are respectively connected to pins N-1 and N (ground (G) and power (V)) without a connection (NC).

為定址額外記憶體並增加該主記憶體之記憶體容量,回應進行存取的記憶體模組之類型,一組態中的可程式化異質性記憶體控制器可使用額外接針來形成一更大的位址以定址一更大的記憶體空間。在另一組態中,回應進行存取的記憶體模組之類型,該可程式化異質性記憶體控制器可使用多個位址循環上的預先存在的位址接針來形成一更大的位址以定址一更大的記憶體空間。In order to address the additional memory and increase the memory capacity of the main memory, in response to the type of memory module being accessed, a programmable heterogeneous memory controller in a configuration can use an additional pin to form a A larger address is addressed to a larger memory space. In another configuration, in response to the type of memory module being accessed, the programmable heterogeneous memory controller can use a pre-existing address pin on multiple address loops to form a larger The address is addressed to a larger memory space.

圖14解說依據某些實施方案的一非揮發性記憶體模組之範例性接針組態映射。當存取該非揮發性記憶體模組時,該記憶體通道之接針組態從與一DDR2記憶體模組規格相關聯的信號名稱行改變至針對該非揮發性記憶體模組之信號指派行。14 illustrates an exemplary pin configuration map of a non-volatile memory module in accordance with certain embodiments. When accessing the non-volatile memory module, the pin configuration of the memory channel is changed from a signal name line associated with a DDR2 memory module specification to a signal assignment line for the non-volatile memory module. .

例如,接針73、74分別從WE#、CAS#改變至DIMM_ADDR0/ODT0、DIMM_ADDR1/ODT1以識別在初始化之後哪一DIMM插座/DIMM記憶體模組係進行定址並在初始化期間設置該晶粒上終端。For example, pins 73, 74 are changed from WE#, CAS# to DIMM_ADDR0/ODT0, DIMM_ADDR1/ODT1, respectively, to identify which DIMM socket/DIMM memory module is addressed after initialization and to set the die during initialization. terminal.

如另一範例,接針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等)。As another example, the pins 188, 183, 63, 182, 61, 60, 180, 58, 179, 177, 70, 57, 176, 196, 174, 173, and 54 are respectively from the signal address bits A0, A1. , A2, A3, A4, A5, A6, A7, A8, A9, A10/AP, A11, A12, A13, A14, A15, A16/BA2 change to multi-cycle address bit 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 to address each memory module One of the larger memory spaces inside. To indicate whether the upper address byte or the one address low byte on these multi-cycle address pins is available, the pin 195 is changed from ODT0 to ADDR_HIGH, respectively. If the ADDR_HIGH signal is a logic high signal, the address high byte (A17, A18, A19, etc.) is provided on the multi-cycle address bits. If the ADDR_HIGH signal is a logic low signal, the address low byte (eg, A0, A1, A2, etc.) is provided on the multi-cycle address bits.

如另一範例,接針193與76保留相同的功能。此等信號選擇一記憶體模組內哪一秩之記憶體在進行存取。As another example, pins 193 and 76 retain the same function. These signals select which rank of memory in a memory module is being accessed.

如另一範例,當在一插座內要存取該非揮發性記憶體模組時,接針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模組/插座之第一秩記憶體的狀態信號。此等狀態信號係回授並耦合至該異質性記憶體控制器以更有效率地存取該非揮發性記憶體模組。每一狀態信號指示一記憶體模組中之一秩之記憶體是否忙碌或準備另一寫入或抹除操作以減輕對該非揮發性記憶體模組的抹除與寫入操作之非確定性質。As another example, when the non-volatile memory module is to be accessed in a socket, the pins 125, 134, 146, and 155 are changed from the data strobe signals DQS9, DQS10, DQS11, and DQS12 to RY/BY_N_R0D0, respectively. RY/BY_N_R0D1, RY/BY_N_R0D2, RY/BY_N_R0D3. The RY/BY_N_R0D0, RY/BY_N_R0D1, RY/BY_N_R0D2, and RY/BY_N_R0D3 signals are for the status signal of the zeroth rank memory of each DIMM module/socket of four DIMM modules/sockets in a memory channel. When the non-volatile memory module is to be accessed in a socket, the pins 202, 211, 223, and 232 are changed from the data strobe signals DQS13, DQS14, DQS15, and DQS16 to RY/BY_N_R1D0, RY/BY_N_R1D1, RY, respectively. /BY_N_R1D2, RY/BY_N_R1D3. The RY/BY_N_R1D0, RY/BY_N_R1D1, RY/BY_N_R1D2, and RY/BY_N_R1D3 signals are status signals for the first rank memory of each DIMM module/socket of the four DIMM modules/sockets in the memory channel. These status signals are fed back and coupled to the heterogeneous memory controller for more efficient access to the non-volatile memory module. Each status signal indicates whether a rank of the memory in a memory module is busy or prepares another write or erase operation to mitigate the non-deterministic nature of the erase and write operations on the non-volatile memory module. .

已將圖11A至11C說明為當在每一插座中存取每一不同記憶體模組時改變該記憶體通道匯流排之信號/接針組態。然而,該信號/接針組態還可由於針對一新的記憶體通道設計的記憶體通道匯流排之規格之一改變所致而改變。Figures 11A through 11C have been illustrated as changing the signal/pin configuration of the memory channel bus when accessing each different memory module in each socket. However, the signal/pin configuration can also be changed due to a change in one of the specifications of the memory channel busbar designed for a new memory channel.

在圖6A中,可將該等記憶體通道匯流排610A至610N之各記憶體通道匯流排設計成用以支援該DDR2記憶體模組規格。然而,可使用針對一記憶體通道之一不同的記憶體模組規格與一不同的接針/信號組態來設計一新的電腦系統。因為該異質性記憶體控制器601A係可程式化,可容易地將其設計更新至一新的記憶體通道的新記憶體模組規格與新接針/信號組態。In FIG. 6A, the memory channel busbars of the memory channel busbars 610A through 610N can be designed to support the DDR2 memory module specifications. However, a new computer system can be designed using a different memory module specification for one of the memory channels and a different pin/signal configuration. Because the heterogeneous memory controller 601A is programmable, it can be easily updated to a new memory module specification and new pin/signal configuration for a new memory channel.

例如,考量圖6B。可建立一新的記憶體通信通道規格標準以針對每一個別記憶體通道602A'至602N'中之新的記憶體通道匯流排650A至650N之各記憶體通道匯流排定義一新的接針/信號組態。該等記憶體模組可各係設計成用以與該等新的記憶體通道匯流排650A至650N之新的接針/信號組態配對。假定該總非功率接針數相同,則可容易地藉由重新程式化來將該可程式化異質性記憶體控制器601A更新至圖6B中解說的可程式化異質性記憶體控制器601B。針對新的記憶體通道標準之記憶體模組驅動器係重新寫入以支援該等新的記憶體通道匯流排650A至650N並且將該等新的驅動器載入該可程式化異質性記憶體控制器601B。以此方式,該可程式化異質性記憶體控制器之邏輯設計可保持相同,其藉由載入新的記憶體模組驅動器而使用軟體進行更新,而該邏輯下面的電路可改變至調適新的電源電壓。即,該等可程式化異質性記憶體控制器601A與601B之邏輯網路連線表保持相同而該接針組態係藉由新的記憶體模組驅動器軟體進行更新。以此方式可程式化該可程式化異質性記憶體控制器601A,可實質上減低開發新的或專有記憶體通道的時間。因而,該可程式化異質性記憶體控制器可重新用作一IP核心區塊,因為其可容易地對於其將介接的記憶體通道、記憶體通道匯流排及記憶體模組之類型進行程式化。不同的處理器製造可購買該可程式化異質性記憶體控制器之邏輯網路連線表並將其程式化以滿足其特定記憶體通道要求。For example, consider Figure 6B. A new memory communication channel specification can be established to define a new pin for each memory channel bus of each of the new memory channel busses 650A through 650N of each of the individual memory channels 602A' through 602N'. Signal configuration. The memory modules can be designed to pair with new pin/signal configurations of the new memory channel busbars 650A-650N. Assuming that the total number of non-power pins is the same, the programmable heterogeneous memory controller 601A can be easily updated by reprogramming to the programmable heterogeneous memory controller 601B illustrated in FIG. 6B. The memory module driver for the new memory channel standard is rewritten to support the new memory channel busses 650A through 650N and the new drivers are loaded into the programmable heterogeneous memory controller 601B. In this way, the logic design of the programmable heterogeneous memory controller can remain the same, which is updated by software by loading a new memory module driver, and the circuit under the logic can be changed to adapt to the new Power supply voltage. That is, the logical network connection tables of the programmable heterogeneous memory controllers 601A and 601B remain the same and the pin configuration is updated by the new memory module driver software. The programmable heterogeneous memory controller 601A can be programmed in this manner to substantially reduce the time required to develop new or proprietary memory channels. Thus, the programmable heterogeneous memory controller can be reused as an IP core block because it can be easily typed for the type of memory channel, memory channel bus, and memory module it will interface with. Stylized. Different processor manufacturers can purchase and program the logical network connection table of the programmable heterogeneous memory controller to meet its specific memory channel requirements.

現參考圖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。Referring now to Figures 7A through 7B, a high level functional block diagram of a programmable heterogeneous memory controller (PHMC) 700 is illustrated. In FIG. 7A, the programmable heterogeneous memory controller 700 must be programmed while waiting for the memory module to be inserted into the sockets or slots 705-708. Each memory channel controller 720i includes a particular memory module slot controller 721-724 for each slot or receptacle 705-708. In FIG. 7B, two or more different types of memory modules (eg, type A memory module 701, class A type B memory module 702, a type C memory module 703, and a type D memory module 704) are coupled to each of the memory channels 710i. It should be noted that one or more of the memory modules inserted into the slots/sockets 705 through 708 can be the same type of memory module. In this case, the same program can be used to program two or more of the memory module slot controllers 721 through 724 to handle the same type of DIMM.

針對每一記憶體通道710i,該等可程式化異質性記憶體控制器700包括一記憶體通道控制器720i。該等記憶體通道控制器720i之各記憶體通道控制器係耦合於一處理器介面750與其個別記憶體通道710i之間。每一記憶體通道控制器720i耦合至該處理器或互連組構介面750以針對記憶體操作指令及其結果與一處理器或I/O控制器進行通信。For each memory channel 710i, the programmable heterogeneous memory controllers 700 include a memory channel controller 720i. Each memory channel controller of the memory channel controller 720i is coupled between a processor interface 750 and its individual memory channel 710i. Each memory channel controller 720i is coupled to the processor or interconnect fabric interface 750 to communicate with a processor or I/O controller for memory operating instructions and results thereof.

如圖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係各可藉由一個別記憶體模組軟體驅動器程式化。As shown in FIG. 7B, each memory channel controller 720i can include a specific memory module slot controller 721 to 724 for each slot or socket 705 to 708 in which a memory module 701 to 704 can be coupled. . Each memory channel controller 720i further includes a common memory module controller 730 coupled to a memory channel interface 732. The socket/slot A memory module controller 721 is for controlling a memory module of the type coupled to the socket A 705 (eg, type A memory module 701). The socket/slot B memory module controller 722 is for controlling a memory module of the type coupled to the socket B 706 (eg, type B memory module 702). The socket/slot C memory module controller 723 is for controlling a memory module of the type coupled to the socket C 707 (eg, type C memory module 703). The socket/slot D memory module controller 724 is for controlling a type of memory module (eg, type D memory module 704) coupled in the socket D708. The particular memory module controllers 721-724 are used to generate different control signals for each of the different memory modules that can be inserted into the available memory module sockets. Each of the specific memory module controllers 721 through 724 can be programmed by a separate memory module software driver.

該共同記憶體模組控制器730係用於在插入該等可用記憶體模組插座的不同記憶體模組之中產生共同控制信號。該等資料接針與該等位址接針可在插入該等可用記憶體模組插座的不同記憶體模組之間保持相同並可處於該共同記憶體模組控制器730的控制之下。The common memory module controller 730 is for generating a common control signal among different memory modules inserted into the available memory module sockets. The data pins and the address pins can remain identical between different memory modules inserted into the available memory module sockets and can be under the control of the common memory module controller 730.

針對每一記憶體通道710i的特定記憶體模組控制器721至724與共同記憶體模組控制器730透過該記憶體通道介面732通信至其個別記憶體模組。該記憶體通道介面732可靈活允許耦合至該等記憶體模組與該等個別插座的記憶體通道匯流排610i中的接針組態改變。The specific memory module controllers 721 to 724 and the common memory module controller 730 for each memory channel 710i communicate through the memory channel interface 732 to their individual memory modules. The memory channel interface 732 can flexibly allow for a change in the pin configuration of the memory channel bus 610i coupled to the memory modules and the individual sockets.

每一記憶體通道710i中的記憶體通道匯流排610i包括複數個互連導線(PCB迹線),其係共用或廣播至所有該等記憶體模組與該等個別插座。可藉由該共同記憶體模組控制器730來產生對所有該等記憶體模組的共用或廣播信號。每一記憶體通道710i中的記憶體通道匯流排610i進一步包括複數個互連導線(PCB迹線),其係獨立的並僅耦合至該等記憶體模組與該等個別插座之一者使得該等信號對於該記憶體模組係特定的。可藉由該相關聯特定記憶體模組控制器721至724產生針對每一個別記憶體模組之特定信號。例如,可藉由該插座A記憶體模組控制器721來產生單獨針對該類型A記憶體模組701及其插座705的特定信號。The memory channel bus 610i in each memory channel 710i includes a plurality of interconnecting wires (PCB traces) that are shared or broadcast to all of the memory modules and the individual sockets. A common or broadcast signal to all of the memory modules can be generated by the common memory module controller 730. The memory channel bus 610i in each memory channel 710i further includes a plurality of interconnecting wires (PCB traces) that are independent and coupled only to the memory modules and one of the individual sockets These signals are specific to the memory module. Specific signals for each individual memory module can be generated by the associated particular memory module controllers 721-724. For example, a specific signal for the type A memory module 701 and its socket 705 can be generated by the socket A memory module controller 721.

現參考圖8A,其解說一可程式化異質性記憶體控制器800A之一更詳細的功能方塊圖。應注意,圖8A解說可如何內部功能上組織一可程式化異質性記憶體控制器之範例,可使用功能區塊之一不同配置來構造可程式化異質性記憶體控制器。該可程式化異質性記憶體控制器800A包括一處理器或互連組構(系統)介面802、一輸入緩衝器803、一輸出緩衝器804、記憶體模組插座控制暫存器806、微編碼記憶體808(隨機存取記憶體(RAM)及/或唯讀記憶體(ROM))、一或多個輸入/輸出狀態機810、一彈性輸入/輸出埠控制器及一彈性記憶體通道介面814(亦稱為一彈性I/O埠),其如所示耦合在一起。可視需要提供一直接記憶體存取控制器813使其可在該異質性記憶體控制器中的記憶體與該系統中的某一其他裝置之間傳輸資料。Referring now to Figure 8A, a more detailed functional block diagram of one of the programmable heterogeneous memory controllers 800A is illustrated. It should be noted that FIG. 8A illustrates an example of how a programmable heterogeneous memory controller can be organized internally, and a programmable heterogeneous memory controller can be constructed using one of a different configuration of functional blocks. The programmable heterogeneous memory controller 800A includes a processor or interconnect fabric (system) interface 802, an input buffer 803, an output buffer 804, a memory module socket control register 806, and a micro Coded memory 808 (random access memory (RAM) and/or read only memory (ROM)), one or more input/output state machines 810, an elastic input/output port controller, and an elastic memory channel Interfaces 814 (also known as an elastic I/O埠) are coupled together as shown. A direct memory access controller 813 can be provided as needed to transfer data between the memory in the heterogeneous memory controller and some other device in the system.

該處理器(系統)介面802一般允許藉由一處理器對一主記憶體的受控存取。該處理器(系統)介面802可包括:一位址埠816,其用以從一處理器接收位址以由其存取主記憶體;一控制埠817,其用以從該處理器接收控制信號以存取主記憶體;一雙向資料埠818,其用以從一處理器讀取資料以寫入記憶體並用以在從記憶體讀取之後將資料寫出至該處理器;以及狀態/控制暫存器820,其用以允許該處理器讀取該等記憶體通道之狀態並控制對耦合至該記憶體控制器之記憶體通道的存取。The processor (system) interface 802 generally allows controlled access to a primary memory by a processor. The processor (system) interface 802 can include a bit address 816 for receiving an address from a processor for accessing the main memory, and a control port 817 for receiving control from the processor Signal to access the main memory; a bidirectional data 818 for reading data from a processor for writing to the memory and for writing data to the processor after reading from the memory; and status/ A register 820 is provided for allowing the processor to read the state of the memory channels and to control access to a memory channel coupled to the memory controller.

該輸入緩衝器803係用以緩衝從該處理器接收的位址、控制及資料。該輸出緩衝器804係用以緩衝要寫出至該處理器的資料。可將該輸入緩衝器803與該輸出緩衝器804組合在一起作為具有更複雜控制邏輯之一更大的單一輸入/輸出緩衝器。The input buffer 803 is used to buffer the address, control and data received from the processor. The output buffer 804 is used to buffer the data to be written to the processor. The input buffer 803 can be combined with the output buffer 804 as a single input/output buffer that is larger than one of the more complex control logics.

該等記憶體模組插座暫存器806係提供以儲存插入直接耦合至該記憶體控制器800A的每一記憶體通道中之各插座中的每一記憶體模組之記憶體模組識別(ID)。該等記憶體模組插座暫存器可儲存圖10中解說之一記憶體模組插座表之資訊。使用此資訊,該記憶體控制器800A知道每一插座中其將直接與何類型之記憶體模組進行通信。The memory module socket registers 806 are provided for storing memory module identifications for each memory module inserted into each of the sockets directly coupled to each of the memory channels of the memory controller 800A ( ID). The memory module socket registers can store information of one of the memory module socket tables illustrated in FIG. Using this information, the memory controller 800A knows which type of memory module it will communicate directly with in each socket.

該微編碼記憶體808(隨機存取記憶體(RAM)及/或唯讀記憶體(ROM))係用以針對藉由該等記憶體模組插座暫存器806指示的每一不同類型之記憶體模組來儲存該等記憶體模組軟體驅動器900。該等記憶體模組軟體驅動器900可包括該記憶體類型901(例如,SRAM、DRAM或NVRAM)、接針組態902、控制信號時序與邏輯位準903(例如,低態有效或高態有效)及該記憶體模組識別(ID)904。每一記憶體模組軟體驅動器900中包含的資訊係耦合至一或多個I/O狀態機810。即,該微編碼記憶體808向該等I/O狀態機供應記憶體模組軟體驅動器。The microcoded memory 808 (random access memory (RAM) and/or read only memory (ROM)) is used for each of the different types indicated by the memory module socket registers 806. The memory module stores the memory module software drivers 900. The memory module software driver 900 can include the memory type 901 (eg, SRAM, DRAM, or NVRAM), the pin configuration 902, control signal timing, and logic level 903 (eg, low active or high active) And the memory module identification (ID) 904. The information contained in each memory module software driver 900 is coupled to one or more I/O state machines 810. That is, the microcoded memory 808 supplies the memory module software drivers to the I/O state machines.

一或多個I/O狀態機810回應該給定插座中進行存取的記憶體模組之類型及其記憶體模組軟體驅動器來在該記憶體介面814中建立適當的接針組態並使用適當的時序針對該等接針產生適當的邏輯信號。每次存取一給定記憶體模組以執行一寫入操作、一讀取操作或一抹除操作時一或多個I/O狀態機810執行此等功能。亦參考圖8B、12A、12B及13說明一或多個狀態機之功能。一或多個I/O狀態機810發信通知該彈性I/O埠控制器812以在記憶體介面814中建立適當的接針組態用於存取一給定插座與記憶體模組。One or more I/O state machines 810 respond to the type of memory module that is accessed in a given socket and its memory module software driver to establish an appropriate pin configuration in the memory interface 814 and Appropriate logic signals are generated for the pins using appropriate timing. One or more I/O state machines 810 perform such functions each time a given memory module is accessed to perform a write operation, a read operation, or an erase operation. The functions of one or more state machines are also described with reference to Figures 8B, 12A, 12B and 13. One or more I/O state machines 810 signal the resilient I/O controller 812 to establish an appropriate pin configuration in the memory interface 814 for accessing a given socket and memory module.

回應來自一或多個I/O狀態機810之控制信號,該彈性I/O埠控制器812在記憶體介面814中建立適當的接針組態用於存取每一給定插座與記憶體模組。In response to control signals from one or more I/O state machines 810, the resilient I/O controller 812 establishes an appropriate pin configuration in the memory interface 814 for accessing each given socket and memory. Module.

回應來自該埠控制器812之控制,該記憶體介面814建立其輸入/輸出緩衝器之狀態。特定接針對於來自該記憶體通道匯流排之接收信號可以係唯輸入接針。另外的接針可以係唯輸出接針,其具有一輸出驅動器以將該等信號驅出至該記憶體通道匯流排。其他接針(例如該等資料接針)可以係雙向資料接針,其在從該記憶體通道匯流排讀取資料時係選擇性地控制為輸入緩衝器並在將資料寫出至該記憶體通道匯流排時係控制為輸出緩衝器。In response to control from the UI controller 812, the memory interface 814 establishes the state of its input/output buffer. The specific connection for the received signal from the memory channel bus can be an input pin. The additional pins can be just output pins that have an output driver to drive the signals out to the memory channel bus. Other pins (eg, the data pins) can be bidirectional data pins that are selectively controlled as input buffers and write data out to the memory when reading data from the memory channel bus The channel bus is controlled as an output buffer.

該可選DMA控制器813係用於填充可包括於該等記憶體模組之記憶體積體電路(例如該等非揮發性記憶體積體電路)中的資料緩衝器。該可選DMA控制器813使用直接記憶體存取控制來叢發寫入記憶體模組之一連串資料或叢發從一記憶體模組讀取一連串資料讀入該記憶體控制器。該DMA控制器813還可以係具有快取記憶體之一預取或快取 記憶體控制器,其用以減小針對某一類型之記憶體模組的潛時。The optional DMA controller 813 is for filling data buffers that may be included in memory volume circuits of the memory modules, such as the non-volatile memory volume circuits. The optional DMA controller 813 uses the direct memory access control to flush a series of data written to the memory module or the burst reads a series of data from a memory module and reads the memory controller. The DMA controller 813 can also have one of the cache memory prefetch or cache A memory controller that reduces the latency for a certain type of memory module.

現參考圖8B,其現說明一或多個I/O狀態機810之進一步功能細節。一或多個I/O狀態機810針對耦合至該記憶體控制器800A之每一記憶體通道602A至602N包括一記憶體通道狀態機811A至811N。每一記憶體通道狀態機811A至811N針對每一記憶體模組及其中的每一秩之記憶體包括一控制器825、一匯流排仲裁器826及一或多個記憶體模組狀態機821A至824A、821B至824B,其如所示耦合在一起。Referring now to Figure 8B, further functional details of one or more I/O state machines 810 are now described. One or more I/O state machines 810 include a memory channel state machine 811A through 811N for each of the memory channels 602A through 602N coupled to the memory controller 800A. Each of the memory channel state machines 811A through 811N includes a controller 825, a bus arbiter 826, and one or more memory module state machines 821A for each memory module and each of its ranks. To 824A, 821B through 824B, they are coupled together as shown.

例如,記憶體模組狀態機821A與821B係針對可耦合於插座A中之一記憶體模組。記憶體模組狀態機821A係針對插入插座A中之一雙直列記憶體模組中的第1秩之記憶體。記憶體模組狀態機821B係針對插入插座A中之雙直列記憶體模組中的第2秩之記憶體。針對每一個別記憶體模組之三個或更多秩之記憶體可存在額外的記憶體模組狀態機。同樣,記憶體模組狀態機822A與822B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座B中之一記憶體模組的個別秩之記憶體。記憶體模組狀態機823A與823B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座C中之一記憶體模組的個別秩之記憶體。記憶體模組狀態機824A與824B(包括針對額外秩之任何額外記憶體模組狀態機)係針對可耦合於插座D中之一記憶體模組的個別秩之記憶體等等(若一記憶體通道中額外插座係可用)。儘管此處相對於控制對假定一同質性記憶體模組的一秩之記憶體的存取說明該可程式化異質性記憶體控制器,該記憶體控制器可調適於存取一記憶體模組之一或多個秩之記憶體內的不同類型之記憶體積體電路。在該情況下,該記憶體模組係藉由一可程式化異質性記憶體控制器存取之一異質性記憶體模組。For example, memory module state machines 821A and 821B are directed to a memory module that can be coupled to socket A. The memory module state machine 821A is for the memory of the first rank inserted into one of the two inline memory modules in the socket A. The memory module state machine 821B is for the memory of the second rank in the double inline memory module inserted into the socket A. Additional memory module state machines may exist for three or more ranks of memory for each individual memory module. Similarly, memory module state machines 822A and 822B (including any additional memory module state machines for additional ranks) are directed to memory of individual ranks that can be coupled to one of the memory modules in socket B. Memory module state machines 823A and 823B (including any additional memory module state machines for additional ranks) are directed to memory of individual ranks that can be coupled to one of the memory modules in socket C. Memory module state machines 824A and 824B (including any additional memory module state machines for additional ranks) are for memory of individual ranks that can be coupled to one of the memory modules in socket D, etc. Additional sockets are available in the body channel). Although the programmable heterogeneous memory controller is described herein with respect to controlling the access to a memory of a rank of a homogenous memory module, the memory controller is adapted to access a memory model. A different type of memory volume circuit in one or more ranks of memory. In this case, the memory module accesses a heterogeneous memory module by a programmable heterogeneous memory controller.

對於包括非揮發性隨機存取記憶體(NVRAM)積體電路之非揮發性記憶體模組,若一給定記憶體之秩中的記憶體係讀取存取(R)、寫入存取(W)及初始化或抹除(I),則該等記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)之各記憶體模組狀態機具有一不同操作模式與操作之序列。使用來自對應於插入該相關聯插座中的記憶體模組之類型的記憶體模組軟體驅動器之資訊來程式化該等記憶體模組狀態機821A至824A、821B至824B之各記憶體模組狀態機。例如,將使用對應於記憶體通道602A中插入相關聯插座A中的記憶體模組之記憶體模組軟體驅動器來程式化記憶體模組狀態機821A與821B。For a non-volatile memory module including a non-volatile random access memory (NVRAM) integrated circuit, if a memory of a given memory ranks a read access (R), write access ( W) and initializing or erasing (I), then each of the memory module state machines 821A through 824A, 821B through 824B (including any additional memory module state machine for additional ranks) Has a sequence of different modes of operation and operation. The memory modules of the memory module state machines 821A through 824A, 821B through 824B are programmed using information from a memory module software driver of the type corresponding to the memory module inserted in the associated socket. state machine. For example, the memory module state machines 821A and 821B will be programmed using a memory module software driver corresponding to the memory module inserted into the associated socket A in the memory channel 602A.

在其他類型之記憶體模組的情況中,可不存在初始化或抹除操作序列之操作。In the case of other types of memory modules, there may be no operation of initializing or erasing the sequence of operations.

該控制器825係耦合至每一記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)以回應所請求存取之類型與進行存取的記憶體通道中之記憶體模組的位置(例如,哪一插座)來控制哪一記憶體模組狀態機處於活動狀態及處於哪一模式(讀取存取(R)、寫入存取(W)、初始化或抹除(I))The controller 825 is coupled to each of the memory module state machines 821A through 824A, 821B through 824B (including any additional memory module state machines for additional ranks) in response to the type of access requested and access. The location of the memory module in the memory channel (eg, which socket) to control which memory module state machine is active and in which mode (read access (R), write access ( W), initialize or erase (I))

該匯流排仲裁器826係耦合至該控制器825與該等記憶體模組狀態機821A至824A、821B至824B(包括針對額外秩之任何額外記憶體模組狀態機)之各記憶體模組狀態機以在該等狀態機嘗試與其對應記憶體模組進行通信時仲裁對該記憶體通道匯流排之存取。The bus arbitrator 826 is coupled to the memory module of the controller 825 and the memory module state machines 821A through 824A, 821B through 824B (including any additional memory module state machines for additional ranks) The state machine arbitrates access to the memory channel bus when the state machine attempts to communicate with its corresponding memory module.

該等記憶體模組狀態機821A至824A、821B至824B之各記憶體模組狀態機連同控制器825與仲裁器826一起產生適當的引腳組態控制信號以建立該記憶體介面中之適合的引腳與控制信號、位址信號及資料信號之適當的邏輯與時序用於透過該記憶體通道匯流排將資料讀取與寫入耦合於其的每一記憶體模組中。The memory module state machines of the memory module state machines 821A through 824A, 821B through 824B, along with the controller 825 and the arbiter 826, generate appropriate pin configuration control signals to establish appropriateness in the memory interface. The appropriate logic and timing of the pins and control signals, address signals, and data signals are used to couple data reading and writing to each of the memory modules through the memory channel bus.

用於異質性記憶體通道通信之方法Method for heterogeneous memory channel communication

圖12A解說對一異質性主記憶體之異質性記憶體通道中的不同類型之記憶體模組之通信的方法之流程圖。12A illustrates a flow chart of a method of communicating with different types of memory modules in a heterogeneous memory channel of a heterogeneous main memory.

於步驟1202,初始化一可程式化異質性記憶體控制器。輪詢每一異質性記憶體通道中之各插座以決定每一異質性記憶體通道之各插座中的記憶體模組之不同類型。一異質性記憶體通道中的插座可以係空的或未佔用的,在該情況下該可程式化異質性記憶體控制器不需要針對此等插座之一記憶體模組驅動器。In step 1202, a programmable heterogeneous memory controller is initialized. Each socket in each heterogeneous memory channel is polled to determine a different type of memory module in each socket of each heterogeneous memory channel. The socket in a heterogeneous memory channel can be empty or unoccupied, in which case the programmable heterogeneous memory controller does not require a memory module driver for one of the sockets.

於步驟1204,對於每一異質性記憶體通道中之每一不同記憶體模組的每一存取,一記憶體通道介面之每一接針係靈活地經組態或調適成用以透過一記憶體通道匯流排之導線互連對每一不同記憶體模組之個別接針進行通信。此係回應進行存取的記憶體模組之類型。可使用記憶體模組軟體驅動器來對於進行存取的記憶體模組之類型靈活地調適該記憶體通道介面之接針組態。該記憶體通道介面亦可稱為一輸入/輸出埠。In step 1204, for each access of each different memory module in each heterogeneous memory channel, each pin of a memory channel interface is flexibly configured or adapted to pass through a The wire interconnects of the memory channel bus communicate with individual pins of each different memory module. This is the type of memory module that responds to the access. The memory module software driver can be used to flexibly adapt the pin configuration of the memory channel interface to the type of memory module being accessed. The memory channel interface can also be referred to as an input/output port.

為改良一異質性記憶體通道中之頻寬,可將額外功能性指派給未充分使用或未使用的接針使得可以延伸某些記憶體模組與該異質性控制器之間的通信協定。可使用額外的位址控制信號線來定址額外秩之記憶體或定址更複雜類型之記憶體或DIMM架構延伸,其允許大得多的記憶體容量。此外,可針對每一插座/記憶體模組之一未充分使用或未使用接針定義一回授接針使得該可程式化異質性記憶體控制器可從插入該異質性記憶體控制器中之各插座的每一記憶體模組接收狀態資訊。可將一狀態信號從每一插座/記憶體模組傳送至該可程式化異質性記憶體控制器使其知道可存取或不可存取每一記憶體模組的時間。To improve the bandwidth in a heterogeneous memory channel, additional functionality can be assigned to under-used or unused pins so that communication protocols between certain memory modules and the heterogeneity controller can be extended. Additional address control signal lines can be used to address additional rank memory or address more complex types of memory or DIMM architecture extensions, which allow for much larger memory capacities. In addition, a feedback pin can be defined for one of each socket/memory module that is not fully used or not used so that the programmable heterogeneous memory controller can be inserted into the heterogeneous memory controller. Each memory module of each socket receives status information. A status signal can be transmitted from each socket/memory module to the programmable heterogeneous memory controller to know when each memory module is accessible or inaccessible.

於步驟1206,對於該異質性記憶體通道中之一不同記憶體模組的每一存取,針對透過該記憶體通道匯流排之導線互連之適合的信號導線之通信產生適當的邏輯信號以便通信至一記憶體模組。該等適當的邏輯信號係回應當時進行存取的記憶體模組之類型來產生。例如,根據進行存取的記憶體模組之類型,該等邏輯信號可以係高態有效信號或其可以係低態有效信號。因而,要產生的適當邏輯信號可隨記憶體模組改變。可使用記憶體模組軟體驅動器來回應進行存取的記憶體模組之類型靈活地改變針對透過該記憶體通道匯流排之通信的邏輯信號之產生。In step 1206, for each access of one of the different memory modules in the heterogeneous memory channel, an appropriate logic signal is generated for communication of suitable signal conductors through the wire interconnects of the memory channel bus. Communicate to a memory module. The appropriate logic signals are generated in response to the type of memory module being accessed at that time. For example, depending on the type of memory module being accessed, the logic signals may be high active signals or they may be low active signals. Thus, the appropriate logic signal to be generated can vary with the memory module. The memory module software driver can be used to flexibly change the generation of logic signals for communication through the memory channel bus in response to the type of memory module being accessed.

於步驟1208,對於該異質性記憶體通道中之一不同記憶體模組的每一存取,使用適當的信號時序在該記憶體通道匯流排之導線互連上產生邏輯信號以適當地與一記憶體模組進行通信。用於將邏輯信號驅動至該記憶體通道匯流排上的適當信號時序係回應當時進行存取的記憶體模組之類型。即,該適當的信號時序可隨記憶體模組而改變。可使用記憶體模組軟體驅動器來回應進行存取的記憶體模組之類型靈活地改變在該記憶體通道匯流排上產生邏輯信號的信號時序。In step 1208, for each access of one of the different memory modules in the heterogeneous memory channel, a logic signal is generated on the wire interconnect of the memory channel bus with appropriate signal timing to properly The memory module communicates. The appropriate signal timing for driving the logic signal onto the memory channel bus is in response to the type of memory module being accessed at that time. That is, the appropriate signal timing can vary with the memory module. The memory module software driver can be used to flexibly change the timing of the signal generation of the logic signal on the memory channel bus in response to the type of memory module being accessed.

可回應進行存取的記憶體模組之類型來針對該異質性記憶體通道之各插座中的每一記憶體模組之寫入存取與讀取存取兩者來適當地程式化該可程式化異質性記憶體控制器。The type of the memory module to be accessed may be appropriately programmed for both the write access and the read access of each of the memory modules of the heterogeneous memory channel. Stylized heterogeneous memory controller.

現參考圖12B,其解說對一記憶體通道中之一非揮發性記憶體模組的通信之一方法的流程圖。Referring now to Figure 12B, a flow diagram of one method of communication to a non-volatile memory module in a memory channel is illustrated.

於步驟1212,該處理器告訴該記憶體控制器以發信通知一非揮發性記憶體模組來抹除非揮發性記憶體之一區段或將一資料字寫入非揮發性記憶體中。In step 1212, the processor tells the memory controller to notify a non-volatile memory module to erase a segment of the volatile memory or write a data word into the non-volatile memory.

於步驟1214,進行存取的非揮發性記憶體模組使用一回授狀態控制信號往回發信通知其處於忙碌狀態。藉由該記憶體通道匯流排中之一點對點導線互連將來自該記憶體模組之回授狀態控制信號耦合於該記憶體控制器中。在某些實施方案中,該回授狀態控制信號係本文說明的狀態信號611F。In step 1214, the non-volatile memory module that is accessed uses a feedback status control signal to send back a notification that it is in a busy state. A feedback state control signal from the memory module is coupled to the memory controller by a point-to-point wire interconnect in the memory channel bus. In some embodiments, the feedback status control signal is a status signal 611F as described herein.

於步驟1216,由於該非揮發性記憶體模組之寫入與抹除操作的非確定性質所致,該記憶體控制器等待一未決定的時間週期。即,該記憶體控制器在接收指示忙碌的回授狀態控制信號之後等待一不定時間週期。In step 1216, the memory controller waits for an undetermined period of time due to the non-deterministic nature of the write and erase operations of the non-volatile memory module. That is, the memory controller waits for an indefinite period of time after receiving a feedback status control signal indicating busy.

於步驟1218,進行存取之非揮發性記憶體模組使用其回授狀態控制信號往回發信通知其現在準備另一寫入操作或抹除操作。當一寫入或抹除操作在其中待處理時,可藉由該非揮發性記憶體模組在一不同記憶庫之記憶體內執行一寫入操作。In step 1218, the non-volatile memory module that is being accessed uses its feedback status control signal to signal back that it is now ready for another write operation or erase operation. When a write or erase operation is to be processed therein, a write operation can be performed in the memory of a different memory bank by the non-volatile memory module.

於步驟1220,在接收該回授狀態控制信號之後,該記憶體控制器起始該記憶體模組之另一操作。該記憶體控制器可起始另一寫入存取或抹除非揮發性記憶體之一區段。或者,該記憶體控制器可中斷該處理器並發信通知該非揮發性記憶體模組準備另一寫入或抹除操作。該處理器還可以輪詢該回授狀態控制信號以等待改變。In step 1220, after receiving the feedback state control signal, the memory controller initiates another operation of the memory module. The memory controller can initiate another write access or erase unless one of the volatile memory segments. Alternatively, the memory controller can interrupt the processor and send a notification to the non-volatile memory module to prepare for another write or erase operation. The processor can also poll the feedback status control signal to wait for a change.

圖13解說初始化該可程式化異質性記憶體控制器之一方法的流程圖。Figure 13 illustrates a flow chart of a method of initializing one of the programmable heterogeneous memory controllers.

於步驟1302,開啟或重新啟動該電腦系統使得該可程式化異質性記憶體控制器之初始化可發生。In step 1302, turning on or restarting the computer system causes initialization of the programmable heterogeneous memory controller to occur.

於步驟1304,輪詢主記憶體之各記憶體通道中的每一插座以決定一記憶體模組是否係插入一插座中。在輪詢一插座之後,若該可程式化異質性記憶體控制器未聽到回應,則其可假定無記憶體模組係插入該插座。該插座係未佔用的或空的。該可程式化異質性記憶體控制器可將關於該等空的或未佔用的插座之資訊儲存於暫存器或暫存記憶體內,如圖10解說的主記憶體插座表中。In step 1304, each socket in each memory channel of the main memory is polled to determine whether a memory module is inserted into a socket. After polling a socket, if the programmable heterogeneous memory controller does not hear a response, it can assume that no memory module is plugged into the socket. The socket is unoccupied or empty. The programmable heterogeneous memory controller can store information about the empty or unoccupied sockets in a scratchpad or temporary memory, such as the main memory socket table illustrated in FIG.

於步驟1306,若將一記憶體模組插入一插座,則與其個別插座號碼或插座識別符相關聯地讀出並儲存每一記憶體模組識別。該記憶體模組識別提供插入該插座中的記憶體模組之類型之一指示。若不能從一插座讀取一記憶體模組識別,則該異質性記憶體控制器可嘗試與假定一不同模組類型之記憶體模組進行通信,並重複該測試直至已知類型之模組係用盡。In step 1306, if a memory module is inserted into a socket, each memory module identification is read and stored in association with its individual socket number or socket identifier. The memory module identifies an indication of the type of memory module that is inserted into the socket. If a memory module identification cannot be read from a socket, the heterogeneous memory controller can attempt to communicate with a memory module that assumes a different module type and repeat the test until a known type of module Exhausted.

於步驟1308,在讀出該記憶體模組識別之後,其係與其插座號碼及記憶體通道相關聯地儲存。可將該記憶體模組識別儲存於暫存器或該可程式化異質性記憶體控制器的暫存記憶體中之一表內,例如藉由圖10之主記憶體插座表所解說。In step 1308, after the memory module is read, it is stored in association with its socket number and memory channel. The memory module identification may be stored in a table of a temporary memory or a temporary memory of the programmable heterogeneous memory controller, such as illustrated by the main memory socket table of FIG.

於步驟1310,將記憶體模組軟體驅動器載入該可程式化異質性記憶體控制器與其一或多個狀態機中以致能與可耦合於每一異質性記憶體通道中的不同類型之記憶體模組之各記憶體模組的適合通信協定。若僅一類型之記憶體模組係插入一記憶體通道,則其係一同質性記憶體通道而可僅要求一記憶體模組軟體驅動器用於對各記憶體模組之通信。In step 1310, the memory module software driver is loaded into the programmable heterogeneous memory controller and one or more state machines to enable and match different types of memory in each heterogeneous memory channel. Suitable communication protocols for each memory module of the body module. If only one type of memory module is inserted into a memory channel, it is a homogenous memory channel and only one memory module software driver is required for communication with each memory module.

若本地沒有一記憶體模組軟體驅動器可用於該可程式化異質性記憶體控制器,則其可從一網路來源(例如網際網路)或一軟體碟片獲取。If there is no local memory module software driver available for the programmable heterogeneous memory controller, it can be obtained from a network source (such as the Internet) or a software disc.

隨著該等記憶體模組軟體驅動器係耦合於該可程式化異質性記憶體控制器中並載入其一或多個狀態機中,該可程式化異質性記憶體控制器係初始化以存取每一記憶體通道中的不同記憶體模組。The programmable heterogeneous memory controller is initialized to store as the memory module software drivers are coupled to the programmable heterogeneous memory controller and loaded into one or more of the state machines Take different memory modules in each memory channel.

針對異質性記憶體通道之轉換記憶體模組Conversion memory module for heterogeneous memory channels

在先前說明中,一可程式化異質性記憶體控制器係用於靈活地調適使用不同通信協定對異質性記憶體通道中的不同類型之記憶體模組進行通信。然而,更新的記憶體模組可以係設計成用以將非DDR信號轉換成DDR信號以使得先前DDR2記憶體控制器可與更新的不同類型之記憶體模組透明地通信。In the foregoing description, a programmable heterogeneous memory controller is used to flexibly adapt to communicate with different types of memory modules in a heterogeneous memory channel using different communication protocols. However, the updated memory module can be designed to convert non-DDR signals to DDR signals such that the previous DDR2 memory controller can communicate transparently with the updated different types of memory modules.

現參考圖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'的通信。Referring now to Figure 1B, the memory controllers 107A' through 107N' can be standard DDR2 memory controllers for communicating with each memory channel bus and memory modules in accordance with the DDR2 specification. However, one or more of the memory modules 109A' to 109N' to 109N' inserted into the sockets 108A to 108N of the memory channels 123A to 123N may be a conversion memory module (TMM). . In FIG. 1B, each of the memory modules of the memory modules 109A' is a conversion memory module. Another memory module 109N-1' in the same memory channel can be a DDR2 standard DRAM DIMM such that the memory channel 123A is a heterogeneous memory channel, and the memory controller 107N' is not known. The conversion memory module (TMM) is designed to convert non-DDR signals into DDR signals for transparent communication of the memory controllers 107A' to 107N' through each memory channel bus. .

現參考圖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。Referring now to Figure 4C, a functional block diagram of a conversion memory module (TMM) 454 is illustrated. The conversion memory module 454 includes a printed circuit board 455 having a non-DDR2 memory device 461 coupled to one of the support wafers 462. One or more non-DDR2 memory devices 461 and the support wafer 462 may be packaged together in an integrated circuit package 469 and mounted to the printed circuit board 455. A plurality of non-DDR2 memory devices 461 and a plurality of support wafers 462 can be coupled to the PCB 455. The support wafer 462 is coupled to the PCB 455 and between the non-DDR2 memory 461 and the contact 470 of an edge connector. Contact 470 of the edge connector can be formed as part of the PCB 455. Otherwise, a separate edge connector can be soldered to the PCB 455.

該支援晶片462包括一轉換器465、一資料收發器(發射器與接收器)466及一位址/控制接收器467,其如所示耦合在一起。該轉換器465係耦合於該非DDR2記憶體461與該資料收發器466及該位址/控制接收器467之間。The support chip 462 includes a converter 465, a data transceiver (transmitter and receiver) 466, and an address/control receiver 467 that are coupled together as shown. The converter 465 is coupled between the non-DDR2 memory 461 and the data transceiver 466 and the address/control receiver 467.

該資料收發器466與該位址/控制接收器467使用DDR2位址、控制及資料發信將該記憶體模組434雙向地介接至該記憶體通道匯流排。The data transceiver 466 and the address/control receiver 467 interface the memory module 434 bidirectionally to the memory channel bus using DDR2 address, control and data signaling.

該轉換器465係一雙向轉換器。該轉換器465將非DDR信號轉換成DDR2信號用於透過該記憶體通道匯流排以一透明方式對該記憶體控制器的通信。從該記憶體通道匯流排接收的DDR2信號係按要求藉由該轉換器465轉換成該非DDR2記憶體461理解的非DDR2信號。以此方式,一記憶體模組中之一非DDR2記憶體裝置可使用一預先存在的記憶體通道匯流排與預先存在的記憶體控制器進行通信。The converter 465 is a bidirectional converter. The converter 465 converts the non-DDR signal into a DDR2 signal for communicating to the memory controller in a transparent manner through the memory channel bus. The DDR2 signal received from the memory channel bus is converted by the converter 465 into a non-DDR2 signal as understood by the non-DDR2 memory 461 as required. In this manner, a non-DDR2 memory device in a memory module can communicate with a pre-existing memory controller using a pre-existing memory channel bus.

結論in conclusion

儘管此說明書包括許多細節,此等不應係視為限制本揭示內容或所主張之範疇,而應視為特定於本揭示內容之特定實施方案的特徵說明。還可將本說明書中在分離實施方案之背景下說明之特定特徵組合實施於一單一實施方案中。相反,還可將在一單一實施方案背景下說明的各種特徵分離或以子組合地實施於多個實施方案中。此外,儘管上面可能將特徵說明為以特定組合動作並甚至初始如此主張,在某些情況下可從該組合切除來自所主張組合之一或多個特徵,且該所主張組合可屬於一子組合或一子組合之變更。The description includes many specifics, and should not be construed as limiting the scope of the disclosure or the scope of the invention. Particular combinations of features described in this specification in the context of separate embodiments can also be implemented in a single embodiment. Conversely, various features that are described in the context of a single embodiment can be practiced in various embodiments. Moreover, while the features above may be described as acting in a particular combination and even initially claiming that in some cases one or more features from the claimed combination may be excised from the combination, and the claimed combination may belong to a sub-combination Or a change in a sub-combination.

已說明許多實施方案。不過應明白,可進行各種修改而不脫離本揭示內容之精神及範疇。其他實施方案係在以下申請專利範圍的範疇內。例如,已將該等記憶體模組與該等記憶體插座說明為雙直列記憶體模組(DIMM)與DIMM插座。然而,例如,該等記憶體模組與記憶體插座可具有其他類型之形狀因數,例如單直列記憶體模組(SIMM)。A number of embodiments have been described. It should be understood, however, that various modifications may be made without departing from the spirit and scope of the disclosure. Other embodiments are within the scope of the following patent claims. For example, the memory modules and the memory sockets have been described as dual in-line memory modules (DIMMs) and DIMM sockets. However, for example, the memory modules and memory sockets can have other types of form factors, such as a single inline memory module (SIMM).

100A...電腦系統100A. . . computer system

100A'...母板100A'. . . motherboard

101A至101N...處理器插座101A to 101N. . . Processor socket

102A至102N...迹線102A to 102N. . . Trace

103...互連組構103. . . Interconnect fabric

104A至104N...迹線104A to 104N. . . Trace

105'...I/O子系統105'. . . I/O subsystem

105A至105N...I/O子系統/輸入/輸出子系統105A to 105N. . . I/O subsystem/input/output subsystem

106A至106N...迹線106A to 106N. . . Trace

107A至107N...可程式化異質性記憶體控制器107A to 107N. . . Programmable heterogeneous memory controller

107A'至107N'...記憶體控制器107A' to 107N'. . . Memory controller

108A至108N...記憶體模組插座108A to 108N. . . Memory module socket

109A至109N...記憶體模組109A to 109N. . . Memory module

109A'至109N'...記憶體模組109A' to 109N'. . . Memory module

109N-1'...記憶體模組109N-1'. . . Memory module

110...記憶體通道匯流排110. . . Memory channel bus

110'...記憶體通道匯流排110'. . . Memory channel bus

110"...記憶體通道匯流排110"...memory channel bus

110A至110N...印刷電路板迹線110A to 110N. . . Printed circuit board trace

112A至112N...處理器插座112A to 112N. . . Processor socket

112B...處理器插座112B. . . Processor socket

113A至113N...同質性記憶體通道113A to 113N. . . Homogeneous memory channel

114A至114N...DRAM記憶體模組114A to 114N. . . DRAM memory module

114B...DRAM DIMM114B. . . DRAM DIMM

115A至115N...記憶體模組插座115A to 115N. . . Memory module socket

116A至116N...迹線116A to 116N. . . Trace

117D...DRAM記憶體控制器117D. . . DRAM memory controller

117NV...非揮發性隨機存取記憶體控制器(NVMC)117NV. . . Non-volatile random access memory controller (NVMC)

118...I/O118. . . I/O

120A至120N...迹線120A to 120N. . . Trace

121A至121N...擴充連接器或插槽121A to 121N. . . Expansion connector or slot

122A至122N...處理器122A to 122N. . . processor

122B...微處理器122B. . . microprocessor

123A至123N...異質性記憶體通道123A to 123N. . . Heterogeneous memory channel

125A至125N...迹線125A to 125N. . . Trace

150'...主記憶體150'. . . Main memory

200'...母板200'. . . motherboard

211...處理器/處理器封裝211. . . Processor/processor package

212...外部可程式化異質性記憶體控制器212. . . Externally programmable heterogeneous memory controller

212'...整合的可程式化異質性記憶體控制器/內部可程式化異質性記憶體控制器212'. . . Integrated Programmable Heterogeneous Memory Controller / Internal Programmable Heterogeneous Memory Controller

213A至213N...異質性記憶體通道213A to 213N. . . Heterogeneous memory channel

214...非DRAM類型之記憶體模組/非揮發性記憶體模組214. . . Non-DRAM type memory module / non-volatile memory module

214A至214N...記憶體模組214A to 214N. . . Memory module

214B...任何MM214B. . . Any MM

221...同質性記憶體控制器221. . . Homogeneous memory controller

231...處理器231. . . processor

300...電腦系統300. . . computer system

301...母板301. . . motherboard

314A至314N...動態隨機存取記憶體(DRAM)積體電路/記憶體晶片314A to 314N. . . Dynamic random access memory (DRAM) integrated circuit / memory chip

315A至315N...靜態隨機存取記憶體(SRAM)積體電路315A to 315N. . . Static random access memory (SRAM) integrated circuit

400...印刷電路板(PCB)400. . . Printed circuit board (PCB)

401...邊緣連接器之觸點401. . . Edge connector contact

402A至402N...非揮發性記憶體積體電路/NVRAM/非DRAM記憶體晶片402A to 402N. . . Non-volatile memory volume circuit / NVRAM / non-DRAM memory chip

402B...非揮發性記憶體積體電路/非DRAM記憶體晶片402B. . . Non-volatile memory volume circuit / non-DRAM memory chip

403A至403N...支援晶片403A to 403N. . . Support chip

404...內部記憶體模組匯流排404. . . Internal memory module bus

404A至404N...印刷電路板迹線404A to 404N. . . Printed circuit board trace

406...印刷電路板迹線406. . . Printed circuit board trace

406A至406L...印刷電路板迹線406A to 406L. . . Printed circuit board trace

410...記憶體模組識別(MMID)410. . . Memory Module Identification (MMID)

411...輸入/輸出埠411. . . Input/output埠

412...通信埠412. . . Communication

415...暫存器415. . . Register

422...多對一匯流排多工器422. . . Many-to-one bus multiplexer

424...一對多匯流排解多工器424. . . One-to-many bus multiplexer

425...寫入緩衝器425. . . Write buffer

426A至426D...非揮發性記憶體單元之記憶庫426A to 426D. . . Memory of non-volatile memory cells

427...狀態暫存器427. . . Status register

434...JEDEC標準DRAM DIMM/記憶體模組434. . . JEDEC standard DRAM DIMM/memory module

435...印刷電路板/PCB435. . . Printed circuit board / PCB

436A至436N...DRAM記憶體晶片436A to 436N. . . DRAM memory chip

440...邊緣連接器之觸點440. . . Edge connector contact

454...轉換記憶體模組(TMM)454. . . Conversion Memory Module (TMM)

455...印刷電路板/PCB455. . . Printed circuit board / PCB

461...非DDR2記憶體裝置461. . . non-DDR2 memory device

462...支援晶片462. . . Support chip

465...轉換器465. . . converter

466...資料收發器466. . . Data transceiver

467...位址/控制接收器467. . . Address/control receiver

469...積體電路封裝469. . . Integrated circuit package

470...邊緣連接器之觸點470. . . Edge connector contact

500A...系統控制器積體電路500A. . . System controller integrated circuit

500B...中央處理單元(CPU)或處理器500B. . . Central processing unit (CPU) or processor

501A...可程式化異質性記憶體控制器501A. . . Programmable heterogeneous memory controller

501B...可程式化異質性記憶體控制器501B. . . Programmable heterogeneous memory controller

502A...輸入/輸出控制器502A. . . Input/output controller

502B...輸入/輸出控制器502B. . . Input/output controller

504...擴充匯流排介面504. . . Expansion bus interface

506...裝置控制器506. . . Device controller

510...執行單元(EU)510. . . Execution unit (EU)

512...命令控制器512. . . Command controller

601A...可程式化異質性記憶體控制器601A. . . Programmable heterogeneous memory controller

601B...可程式化異質性記憶體控制器601B. . . Programmable heterogeneous memory controller

602A至602N...記憶體通道602A to 602N. . . Memory channel

602A'至602N'...記憶體通道602A' to 602N'. . . Memory channel

608A至608N...記憶體插座608A to 608N. . . Memory socket

609A...記憶體模組609A. . . Memory module

609C...靜態隨機存取記憶體模組609C. . . Static random access memory module

609D...非揮發性記憶體模組609D. . . Non-volatile memory module

609N...DRAM記憶體模組609N. . . DRAM memory module

610...記憶體通道匯流排610. . . Memory channel bus

610A至610N...記憶體通道匯流排610A to 610N. . . Memory channel bus

610i...記憶體通道匯流排610i. . . Memory channel bus

611...點對點導線611. . . Point-to-point wire

611F...狀態信號611F. . . Status signal

612...廣播或匯流排導線612. . . Broadcast or bus bar

619A...DRAM DIMM619A. . . DRAM DIMM

619C...DRAM DIMM619C. . . DRAM DIMM

619D...DRAM SIMM619D. . . DRAM SIMM

619N...DRAM DIMM619N. . . DRAM DIMM

629A...BW1記憶體模組629A. . . BW1 memory module

629B...BW MM629B. . . BW MM

629C...BW2記憶體模組629C. . . BW2 memory module

629D...非揮發性記憶體模組629D. . . Non-volatile memory module

629N...DRAM記憶體模組629N. . . DRAM memory module

650A至650N...記憶體通道匯流排650A to 650N. . . Memory channel bus

650B...記憶體通道匯流排650B. . . Memory channel bus

700...可程式化異質性記憶體控制器(PHMC)700. . . Programmable Heterogeneous Memory Controller (PHMC)

701...類型A記憶體模組701. . . Type A memory module

702...類型B記憶體模組702. . . Type B memory module

703...類型C記憶體模組703. . . Type C memory module

704...類型D記憶體模組704. . . Type D memory module

705...插座或插槽/插座A705. . . Socket or slot/socket A

706...插座或插槽/插座B706. . . Socket or slot/socket B

707...插座或插槽/插座C707. . . Socket or slot/socket C

708...插座或插槽/插座D708. . . Socket or slot/socket D

710i...記憶體通道710i. . . Memory channel

720i...記憶體通道控制器720i. . . Memory channel controller

721...插座/插槽A記憶體模組插槽控制器721. . . Socket/slot A memory module slot controller

722...插座/插槽B記憶體模組插槽控制器722. . . Socket/slot B memory module slot controller

723...插座/插槽C記憶體模組插槽控制器723. . . Socket/slot C memory module slot controller

724...插座/插槽D記憶體模組插槽控制器724. . . Socket/slot D memory module slot controller

730...共同記憶體模組控制器730. . . Common memory module controller

732...記憶體通道介面732. . . Memory channel interface

750...處理器介面750. . . Processor interface

800A...可程式化異質性記憶體控制器800A. . . Programmable heterogeneous memory controller

802...處理器或互連組構(系統)介面802. . . Processor or interconnect fabric (system) interface

803...輸入緩衝器803. . . Input buffer

804...輸出緩衝器804. . . Output buffer

806...記憶體模組插座控制暫存器806. . . Memory module socket control register

808...微編碼記憶體808. . . Microcoded memory

810...輸入/輸出狀態機810. . . Input/output state machine

811A至811N...記憶體通道狀態機811A to 811N. . . Memory channel state machine

812...彈性I/O埠控制器812. . . Elastic I/O埠 controller

813...直接記憶體存取控制器/DMA控制器813. . . Direct memory access controller/DMA controller

814A、814B...彈性輸出/輸入埠A/B814A, 814B. . . Elastic output / input 埠 A / B

816...位址埠816. . . Address 埠

817...控制埠817. . . Control

818...雙向資料埠818. . . Two-way data埠

820...狀態/控制暫存器820. . . Status/control register

821A...記憶體模組狀態機821A. . . Memory module state machine

821B...記憶體模組狀態機821B. . . Memory module state machine

822A...記憶體模組狀態機822A. . . Memory module state machine

822B...記憶體模組狀態機822B. . . Memory module state machine

823A...記憶體模組狀態機823A. . . Memory module state machine

823B...記憶體模組狀態機823B. . . Memory module state machine

824A...記憶體模組狀態機824A. . . Memory module state machine

824B...記憶體模組狀態機824B. . . Memory module state machine

825...控制器825. . . Controller

826...匯流排仲裁器826. . . Bus arbitrator

900...記憶體模組(MM)軟體驅動器900. . . Memory module (MM) software driver

901...記憶體類型901. . . Memory type

902...接針組態902. . . Pin configuration

903...信號時序與邏輯位準903. . . Signal timing and logic level

904...記憶體模組識別(ID)904. . . Memory module identification (ID)

圖1A係具有使用可程式化異質性記憶體控制器用於其控制之一異質性主記憶體的一電腦系統之功能方塊圖。Figure 1A is a functional block diagram of a computer system using a programmable heterogeneous memory controller for controlling one of the heterogeneous main memories.

圖1B係具有包括具有不同類型之記憶體的DRAM記憶體模組與轉換記憶體模組之一異質性主記憶體的一電腦系統之功能方塊圖。1B is a functional block diagram of a computer system having a heterogeneous main memory including a DRAM memory module and a conversion memory module having different types of memory.

圖2係具有使用可程式化異質性記憶體控制器插入處理器插座或包括為該處理器之部分以控制該異質性主記憶體之一異質性主記憶體的另一電腦系統之功能方塊圖。2 is a functional block diagram of another computer system having a programmable memory controller inserted into a processor socket or including a portion of the processor to control the heterogeneous main memory of the heterogeneous main memory. .

圖3係具有使用記憶體電路與記憶體控制器電路(包括可程式化異質性記憶體控制器)耦合至一母板之一異質性主記憶體的另一電腦系統之功能方塊圖。3 is a functional block diagram of another computer system having a memory main circuit and a memory controller circuit (including a programmable heterogeneous memory controller) coupled to one of the motherboard's heterogeneous main memories.

圖4A係一非DRAM類型之記憶體模組的功能方塊圖。4A is a functional block diagram of a non-DRAM type memory module.

圖4B係一DRAM類型之記憶體模組的功能方塊圖。4B is a functional block diagram of a DRAM type memory module.

圖4C係一轉換記憶體模組的功能方塊圖。4C is a functional block diagram of a conversion memory module.

圖5A係包括一可程式化異質性記憶體控制器之一系統控制器的功能方塊圖。Figure 5A is a functional block diagram of a system controller including a programmable heterogeneous memory controller.

圖5B係包括一可程式化異質性記憶體控制器之一處理器或多處理器的功能方塊圖。Figure 5B is a functional block diagram of a processor or multiprocessor including a programmable heterogeneous memory controller.

圖6A係具有不同類型之記憶體模組耦合至一可程式化異質性記憶體控制器的複數個標準記憶體通道之方塊圖。6A is a block diagram of a plurality of standard memory channels having different types of memory modules coupled to a programmable heterogeneous memory controller.

圖6B係耦合至一重新程式化的可程式化異質性記憶體控制器的複數個新指定的記憶體通道之方塊圖。Figure 6B is a block diagram of a plurality of newly designated memory channels coupled to a reprogrammed programmable heterogeneous memory controller.

圖7A至7B係耦合至一記憶體通道中的不同類型之記憶體模組的一可程式化異質性記憶體控制器之一實施方案的高階功能方塊圖。7A-7B are high level functional block diagrams of one embodiment of a programmable heterogeneous memory controller coupled to different types of memory modules in a memory channel.

圖8A至8B係一可程式化異質性記憶體控制器之一實施方案的更詳細功能方塊圖。8A-8B are more detailed functional block diagrams of one embodiment of a programmable heterogeneous memory controller.

圖9係針對每一不同類型之記憶體模組之一記憶體模組驅動器的功能方塊圖。Figure 9 is a functional block diagram of a memory module driver for each of the different types of memory modules.

圖10係用以解說針對一主記憶體中之各記憶體通道儲存於一記憶體模組插座暫存器/表中之資訊的表。Figure 10 is a table for explaining information stored in a memory module socket register/table for each memory channel in a main memory.

圖11A至11C係用以解說回應進行存取之記憶體模組之類型即時重新指派一記憶體通道之導線互連的表。11A through 11C are diagrams for explaining the instantaneous reassignment of a wire interconnection of a memory channel in response to the type of memory module being accessed.

圖12A係具有不同類型之記憶體模組之一記憶體通道中的異質性通信之一方法的流程圖。Figure 12A is a flow diagram of one method of heterogeneous communication in a memory channel of one of a different type of memory module.

圖12B係對一記憶體通道中之一非揮發性記憶體模組的通信之一方法的流程圖。Figure 12B is a flow diagram of one of the methods of communicating with one of the non-volatile memory modules in a memory channel.

圖13係初始化該可程式化異質性記憶體控制器之一方法的流程圖。Figure 13 is a flow diagram of a method of initializing one of the programmable heterogeneous memory controllers.

圖14(包括圖14-1至14-5)係用以存取一範例性非揮發性記憶體模組的一記憶體通道之一樣本接針組態重新映射的表。Figure 14 (comprising Figures 14-1 through 14-5) is a table of sample pin configuration remappings for accessing a memory channel of an exemplary non-volatile memory module.

100A...電腦系統100A. . . computer system

100A'...母板100A'. . . motherboard

101A至101N...處理器插座101A to 101N. . . Processor socket

102A至102N...迹線102A to 102N. . . Trace

103...互連組構103. . . Interconnect fabric

104A至104N...迹線104A to 104N. . . Trace

105'...I/O子系統105'. . . I/O subsystem

105A至105N...I/O子系統/輸入/輸出晶片105A to 105N. . . I/O subsystem/input/output chip

106A至106N...迹線106A to 106N. . . Trace

107A至107N...可程式化異質性記憶體控制器107A to 107N. . . Programmable heterogeneous memory controller

108A至108N...記憶體模組插座108A to 108N. . . Memory module socket

109A至109N...記憶體模組109A to 109N. . . Memory module

110A至110N...印刷電路板迹線110A to 110N. . . Printed circuit board trace

120A至120N...迹線120A to 120N. . . Trace

121A至121N...擴充連接器或插槽121A to 121N. . . Expansion connector or slot

122A至122N...處理器122A to 122N. . . processor

123A至123N...異質性記憶體通道123A to 123N. . . Heterogeneous memory channel

Claims (55)

一種主記憶體,其包含:一可程式化異質性記憶體控制器,其具有一第一記憶體通道介面以耦合至一第一記憶體通道;該第一記憶體通道,耦合至該可程式化異質性記憶體控制器,該第一記憶體通道具有一第一記憶體通道匯流排,其耦合至該可程式化異質性記憶體控制器之該第一記憶體通道介面,以及複數個插座,其耦合至該第一記憶體通道匯流排,該複數個插座能夠分別地接收複數個記憶體模組;以及其中該可程式化異質性記憶體控制器僅在存取一第一記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第一類型記憶體之該第一記憶體模組進行通信,僅在存取一第二記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第二類型記憶體之該第二記憶體模組進行通信,其中該第二類型記憶體不同於該第一類型記憶體,及僅在存取一第三記憶體模組之前,即時調適該第一記憶體通道介面以與具有一第三類型記憶體之該第三記憶體模組進行通信,其中該第三類型記憶體不同於該第二類型記憶體。 A main memory, comprising: a programmable heterogeneous memory controller having a first memory channel interface coupled to a first memory channel; the first memory channel coupled to the programmable a heterogeneous memory controller having a first memory channel busbar coupled to the first memory channel interface of the programmable heterogeneous memory controller and a plurality of sockets And coupled to the first memory channel bus, the plurality of sockets respectively capable of receiving a plurality of memory modules; and wherein the programmable heterogeneous memory controller accesses only a first memory module Before the group, the first memory channel interface is instantly adapted to communicate with the first memory module having a first type of memory, and the first is adapted immediately before accessing a second memory module. The memory channel interface communicates with the second memory module having a second type of memory, wherein the second type of memory is different from the first type of memory, and only accesses one Before the three memory modules, the first memory channel interface is instantly adapted to communicate with the third memory module having a third type of memory, wherein the third type of memory is different from the second type of memory body. 如請求項1之主記憶體,其中:該主記憶體係為一系統之部分,該系統包括複數個處 理器插座,該可程式化異質性記憶體控制器係封裝於不具有一處理器之一積體電路封裝中,以及其中該積體電路封裝具有一處理器相容引腳且該可程式化異質性記憶體控制器耦合於該複數個處理器插座中之一者。 The main memory of claim 1, wherein: the main memory system is a part of a system, and the system includes a plurality of places a programmable socket, the programmable heterogeneous memory controller is packaged in an integrated circuit package that does not have a processor, and wherein the integrated circuit package has a processor compatible pin and the programmable A heterogeneous memory controller is coupled to one of the plurality of processor sockets. 如請求項1之主記憶體,其中:該可程式化異質性記憶體控制器係共同封裝於一積體電路封裝中,其具有一處理器以耦合於一處理器插座中。 The main memory of claim 1, wherein: the programmable heterogeneous memory controller is co-packaged in an integrated circuit package having a processor coupled to a processor socket. 如請求項1之主記憶體,其中:該記憶體通道匯流排之至少一插座,其接收該至少一動態隨機存取記憶體模組;以及該記憶體通道匯流排之至少另一插座,其接收該至少一非揮發性記憶體模組。 The main memory of claim 1, wherein: at least one socket of the memory channel bus, receiving the at least one DRAM module; and at least another socket of the memory channel bus, Receiving the at least one non-volatile memory module. 如請求項1之主記憶體,其中:該記憶體通道匯流排包括一或多個點對點導線,其係獨立耦合於該記憶體控制器與每一個別插座之間,以及複數個匯流排導線,其係耦合至該記憶體控制器與該記憶體通道中之每一插座。 The main memory of claim 1, wherein: the memory channel bus includes one or more point-to-point wires independently coupled between the memory controller and each individual socket, and a plurality of bus bars, It is coupled to each of the memory controller and the memory channel. 如請求項5之主記憶體,其中:該一或多個點對點導線之一者與從每一記憶體模組至該記憶體控制器之一回授控制信號進行通信。 The main memory of claim 5, wherein: one of the one or more point-to-point wires communicates with a feedback control signal from each of the memory modules to the memory controller. 一種主記憶體,其包含:一記憶體控制器,其具有一或多個記憶體通道介面以耦合至一或多個個別記憶體通道;一記憶體通道,具有耦合至該記憶體控制器之一記憶體通道介面之一記憶體通道匯流排;一第一動態隨機存取記憶體模組,其耦合至該記憶體通道匯流排;以及一第一非揮發性記憶體模組,其耦合至該該記憶體通道匯流排;其中透過該記憶體通道匯流排之通信係藉由具有標準規格資料與指令之一標準規格指定,以及其中該第一非揮發性記憶體模組係一轉換記憶體模組,該轉換記憶體模組包括一印刷電路板;一非揮發性記憶體積體電路,其安裝於該印刷電路板;以及一轉換器,其安裝至該印刷電路板且耦合於該記憶體通道匯流排與該非揮發性記憶體積體電路之間,該轉換器經組態以將讀取自該記憶體通道匯流排之標準規格資料與指令轉換成針對該非揮發性記憶體積體電路之記憶體資料與指令,該轉換器經進一步組態以將來自該非揮發性記憶體積體電路之資料與指令轉換成用於寫入至該記憶體通道匯流排之標準規格資料與指令。 A main memory comprising: a memory controller having one or more memory channel interfaces for coupling to one or more individual memory channels; a memory channel having a coupling to the memory controller a memory channel bus of a memory channel interface; a first dynamic random access memory module coupled to the memory channel bus; and a first non-volatile memory module coupled to The memory channel busbar; wherein the communication channel through the memory channel busbar is specified by a standard specification having standard specification data and instructions, and wherein the first non-volatile memory module is a conversion memory a module, the conversion memory module includes a printed circuit board; a non-volatile memory volume circuit mounted to the printed circuit board; and a converter mounted to the printed circuit board and coupled to the memory Between the channel bus and the non-volatile memory volume circuit, the converter is configured to convert standard specification data and instructions read from the memory channel bus into The memory data and instructions for the non-volatile memory volume circuit, the converter being further configured to convert data and instructions from the non-volatile memory volume circuit for writing to the memory channel bus Standard specifications and instructions. 一種電腦系統,其包含:一印刷電路板,其包括複數個迹線;至少一處理器,其係耦合至該印刷電路板之該複數個迹線之某些迹線;一第一異質性記憶體通道,其包括耦合至該印刷電路板之一第一記憶體通道匯流排的一第一複數個插座,該第一複數個插座用以接收一第一複數個不同類型之記憶體模組之印刷電路板;以及一可程式化異質性記憶體控制器,其係耦合於該至少一處理器與該第一異質性記憶體通道之間,該可程式化異質性記憶體控制器用以控制對該第一異質性記憶體通道中的該第一複數個不同類型之記憶體模組的存取;以及其中僅在存取一第一記憶體模組之前,該可程式化異質性記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第一類型之記憶體模組的存取,僅在存取一第二記憶體模組之前,該可程式化異質性記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第二類型之記憶體模組的存取,其中該第二類型之記憶體模組不同於該第一類型之記憶體模組,僅在存取一第三記憶體模組之前,該可程式化異質性 記憶體控制器靈活地即時調適該第一記憶體通道匯流排以控制對該第一異質性記憶體通道中的一第三類型之記憶體模組的存取,其中該第三類型之記憶體模組不同於該第二類型之記憶體模組。 A computer system comprising: a printed circuit board comprising a plurality of traces; at least one processor coupled to the plurality of traces of the plurality of traces of the printed circuit board; a first heterogeneous memory a body channel, comprising a first plurality of sockets coupled to one of the first memory channel busbars of the printed circuit board, the first plurality of sockets for receiving a first plurality of different types of memory modules a programmable circuit board; and a programmable heterogeneous memory controller coupled between the at least one processor and the first heterogeneous memory channel, the programmable heterogeneous memory controller for controlling the pair Accessing the first plurality of different types of memory modules in the first heterogeneous memory channel; and wherein the programmable heterogeneous memory is controlled only before accessing a first memory module The device first flexibly adapts the first memory channel bus to control access to a first type of memory module in the first heterogeneous memory channel, and only accesses a second memory module prior to, The programmable heterogeneous memory controller flexibly adapts the first memory channel bus to control access to a second type of memory module in the first heterogeneous memory channel, wherein the The second type of memory module is different from the first type of memory module, and the programmable heterogeneity is only before accessing a third memory module. The memory controller flexibly adapts the first memory channel bus to control access to a third type of memory module in the first heterogeneous memory channel, wherein the third type of memory The module is different from the second type of memory module. 如請求項8之電腦系統,其中:耦合至該第一異質性記憶體通道中之一插座的該第一記憶體模組,其係一動態隨機存取記憶體模組,以及耦合至該第一異質性記憶體通道中之另一插座的該第二記憶體模組,其係一非揮發性記憶體模組;以及耦合至該第一異質性記憶體通道中之又一插座的該第三記憶體模組,其係一靜態隨機存取記憶體模組。 The computer system of claim 8, wherein: the first memory module coupled to one of the sockets of the first heterogeneous memory channel is a dynamic random access memory module, and coupled to the first a second memory module of another socket in a heterogeneous memory channel, which is a non-volatile memory module; and the third memory coupled to another socket in the first heterogeneous memory channel The body module is a static random access memory module. 如請求項8之電腦系統,其中:該記憶體控制器係一整合的記憶體控制器,其與一矽晶粒上之至少一處理器整合並封裝於一積體電路封裝中,並耦合於安裝至該印刷電路板之該第二處理器插座中。 The computer system of claim 8, wherein: the memory controller is an integrated memory controller integrated with at least one processor on a die and packaged in an integrated circuit package and coupled to Mounted to the second processor socket of the printed circuit board. 如請求項8之電腦系統,其中:該第一、第二及第三類型之記憶體模組之每一者具有一記憶體模組識別以指示耦合於該異質性記憶體通道之該複數個插座中的記憶體模組之該類型。 The computer system of claim 8, wherein: each of the first, second, and third types of memory modules has a memory module identification to indicate the plurality of memory modules coupled to the heterogeneous memory channel This type of memory module in the socket. 一種通信至一記憶體通道中的不同類型之記憶體模組的方法,該方法包含:對於耦合至一記憶體通道匯流排之每一記憶體模組初始化一可程式化異質性記憶體控制器; 回應進行存取的記憶體模組之每一不同類型來調適一記憶體通道介面之每一接針以透過該記憶體通道匯流排之導線互連通信至每一記憶體模組之個別接針;回應進行存取的記憶體模組之每一不同類型來產生邏輯信號用於透過該記憶體通道匯流排之該導線互連對每一記憶體模組之通信;以及其中回應進行存取的記憶體模組之每一不同類型來使用適當的信號時序在該記憶體通道匯流排之該導線互連上產生該等邏輯信號以與每一記憶體模組進行通信。 A method of communicating to different types of memory modules in a memory channel, the method comprising: initializing a programmable heterogeneous memory controller for each memory module coupled to a memory channel bus ; Responding to each of the different types of memory modules that are accessed to adapt each pin of a memory channel interface to communicate with the individual contacts of each memory module through the wire interconnects of the memory channel bus Responding to each different type of memory module that is accessed to generate a logic signal for communicating with each memory module through the wire interconnect of the memory channel bus; and wherein the response is accessed Each of the different types of memory modules generates the logic signals on the wire interconnects of the memory channel busses to communicate with each of the memory modules using appropriate signal timing. 如請求項12之方法,其進一步包含:將與進行存取之記憶體模組之該類型相關聯的一或多個記憶體模組軟體驅動器載入該異質性記憶體控制器中。 The method of claim 12, further comprising: loading one or more memory module software drivers associated with the type of memory module being accessed into the heterogeneous memory controller. 如請求項13之方法,其進一步包含:透過一網路下載該一或多個記憶體模組軟體驅動器之至少一者。 The method of claim 13, further comprising: downloading, by a network, at least one of the one or more memory module software drivers. 如請求項13之方法,其中回應進行存取的記憶體模組之每一不同類型,該一或多個記憶體模組軟體驅動器各包括關於該記憶體模組之該等個別接針的資訊、用以與該記憶體模組通信的邏輯信號及用以與該記憶體模組通信的信號時序。 The method of claim 13, wherein the one or more memory module software drivers each include information about the individual pins of the memory module in response to each different type of memory module being accessed. a logic signal for communicating with the memory module and a signal timing for communicating with the memory module. 如請求項12之方法,其中每一接針之該調適包括將額外功能性指派給未充分使用或未使用的接針使 得可以延伸一或多個記憶體模組與該可程式化異質性記憶體控制器之間的一通信協定。 The method of claim 12, wherein the adapting of each of the pins comprises assigning additional functionality to an insufficiently used or unused pin A communication protocol between the one or more memory modules and the programmable heterogeneous memory controller can be extended. 如請求項16之方法,其中以一不同方式使用位址與控制信號線來定址額外記憶體以增加記憶體容量。 The method of claim 16, wherein the address and control signal lines are used in a different manner to address the additional memory to increase the memory capacity. 如請求項16之方法,其中在多個循環上使用預先存在的位址接針來形成一更大的位址以定址額外記憶體並增加記憶體容量。 The method of claim 16, wherein the pre-existing address pins are used on a plurality of cycles to form a larger address to address additional memory and increase memory capacity. 如請求項16之方法,其中定義一回授接針使得該可程式化異質性記憶體控制器可從該記憶體模組接收狀態資訊。 The method of claim 16, wherein defining a feedback pin enables the programmable heterogeneous memory controller to receive status information from the memory module. 如請求項12之方法,其中邏輯信號之該產生包括回應進行存取的記憶體模組之該類型產生高態有效邏輯信號或低態有效邏輯信號。 The method of claim 12, wherein the generating of the logic signal comprises generating a high active logic signal or a low active logic signal in response to the type of the memory module being accessed. 如請求項12之方法,其中該可程式化異質性記憶體控制器之該初始化包括針對一記憶體模組輪詢該記憶體通道中之每一插座;從每一記憶體模組讀取一記憶體模組識別以決定耦合於每一插座中的記憶體模組之該類型;以及針對耦合於該記憶體通道中的記憶體模組之每一不同類型將一記憶體模組軟體驅動器載入該可程式化異質性記憶體控制器。 The method of claim 12, wherein the initializing of the programmable heterogeneous memory controller comprises polling each socket in the memory channel for a memory module; reading one from each memory module Memory module identification to determine the type of memory module coupled to each of the sockets; and a memory module software driver for each different type of memory module coupled in the memory channel Enter the programmable heterogeneous memory controller. 如請求項21之方法,其中該可程式化異質性記憶體控制器之該初始化進一步包括將與每一插座相關聯的每一記憶體模組識別符儲存於該可程式化異質性記憶體控制器中。 The method of claim 21, wherein the initializing the programmable heterogeneous memory controller further comprises storing each memory module identifier associated with each socket in the programmable heterogeneous memory control In the device. 如請求項22之方法,其中該可程式化異質性記憶體控制器之該初始化進一步包括使用該記憶體模組軟體驅動器載入一狀態機以存取一給定插座中之該記憶體模組。 The method of claim 22, wherein the initializing the programmable heterogeneous memory controller further comprises loading the state machine with the memory module software driver to access the memory module in a given socket . 一種與一記憶體通道中之一非揮發性記憶體模組進行通信的方法,該方法包含:向一非揮發性記憶體模組發信以執行一操作;使用一回授狀態控制信號往回向一記憶體控制器發信以指示該非揮發性記憶體模組處於忙碌狀態;在該回授狀態控制信號指示該非揮發性記憶體模組處於忙碌狀態之後等待該非揮發性記憶體模組完成該操作;以及使用該回授狀態控制信號往回向該記憶體控制器發信以指示該非揮發性記憶體模組現在準備執行另一操作。 A method of communicating with a non-volatile memory module in a memory channel, the method comprising: signaling a non-volatile memory module to perform an operation; using a feedback status control signal back Sending a message to a memory controller to indicate that the non-volatile memory module is in a busy state; waiting for the non-volatile memory module to complete the non-volatile memory module after the feedback state control signal indicates that the non-volatile memory module is in a busy state Operating; and signaling back to the memory controller using the feedback status control signal to indicate that the non-volatile memory module is now ready to perform another operation. 如請求項24之方法,其中發信通知該非揮發性記憶體模組來執行之該操作係抹除非揮發性記憶體之一區段。 The method of claim 24, wherein the instructing the non-volatile memory module to perform the operation is to erase a sector of the volatile memory. 如請求項24之方法,其中 發信通知該非揮發性記憶體模組來執行之該操作係將一字或資料字寫入非揮發性記憶體中。 The method of claim 24, wherein The operation of signaling the non-volatile memory module to perform the operation writes a word or data word into the non-volatile memory. 如請求項24之方法,其中透過該記憶體通道匯流排中之一點對點導線互連將來自該非揮發性記憶體模組之該回授狀態控制信號耦合於該記憶體控制器中。 The method of claim 24, wherein the feedback state control signal from the non-volatile memory module is coupled to the memory controller via a point-to-point wire interconnect in the memory channel bus. 如請求項24之方法,其進一步包含:將該操作執行於該非揮發性記憶體模組中的非揮發性記憶體之一第一記憶庫中;以及當該操作在非揮發性記憶體之該第一記憶庫中待處理時,同時將一讀取操作執行於該非揮發性記憶體模組中的非揮發性記憶體之一第二記憶庫中。 The method of claim 24, further comprising: performing the operation in a first memory of one of the non-volatile memory in the non-volatile memory module; and when the operation is in the non-volatile memory When the first memory bank is to be processed, a read operation is simultaneously performed in the second memory of one of the non-volatile memory in the non-volatile memory module. 如請求項24之方法,其中藉由該記憶體控制器起始該另一操作來抹除該非揮發性記憶體模組中的非揮發性記憶體之一區段。 The method of claim 24, wherein the one of the non-volatile memory modules in the non-volatile memory module is erased by the memory controller initiating the other operation. 如請求項24之方法,其中藉由該記憶體控制器起始該另一操作來將一資料字寫入該非揮發性記憶體模組中的非揮發性記憶體中。 The method of claim 24, wherein the data operation is initiated by the memory controller to write a data word into the non-volatile memory in the non-volatile memory module. 如請求項24之方法,其進一步包含:中斷一處理器以發信通知該非揮發性記憶體模組準備另一操作。 The method of claim 24, further comprising: interrupting a processor to signal the non-volatile memory module to prepare for another operation. 一種轉換記憶體模組,其包含:一印刷電路板,其具有一記憶體模組形狀因數與用以耦合至一主記憶體之一預先存在的記憶體通道匯流排之 一插座的一邊緣連接器;至少一記憶體積體電路,其係耦合至該印刷板,該至少一記憶體積體電路具有用以儲存與喚回資料的記憶體與用以傳達資料、位址及控制信號以將資料讀取與寫入該至少一記憶體積體電路中的一第一記憶體通信協定;以及至少一支援晶片,其係耦合至該印刷電路板並耦合於該邊緣連接器與該至少一記憶體積體電路之間,該至少一支援晶片包括一雙向轉換器,其用以在針對該至少一記憶體積體電路的該第一記憶體通信協定與針對不同於該第一記憶體通信協定之該記憶體通道的一第二記憶體通信協定之間轉換,該第二記憶體通信協定用以透過該記憶體通道匯流排傳達資料、位址及控制信號以將資料讀取與寫入該轉換記憶體模組之該記憶體中。 A conversion memory module comprising: a printed circuit board having a memory module form factor and a pre-existing memory channel bus for coupling to a main memory An edge connector of a socket; at least one memory volume circuit coupled to the printing plate, the at least one memory volume circuit having a memory for storing and recalling data and for conveying data, address and Controlling a signal to read and write data to a first memory communication protocol in the at least one memory volume circuit; and at least one support wafer coupled to the printed circuit board and coupled to the edge connector and the Between at least one memory volume circuit, the at least one supporting chip includes a bidirectional converter for communicating with the first memory in the first memory communication protocol for the at least one memory volume circuit Converting between a second memory communication protocol of the memory channel of the protocol, the second memory communication protocol for transmitting data, address and control signals through the memory channel bus to read and write data The memory of the conversion memory module. 如請求項32之轉換記憶體模組,其中:該至少一支援晶片進一步包括一資料收發器,其係耦合於該雙向轉換器與該邊緣連接器之間,該資料收發器用以將該記憶體模組雙向介接至該記憶體通道匯流排並使用該第二記憶體通信協定在該記憶體通道匯流排上接收與發送資料,以及一位址與控制接收器,其係耦合於該雙向轉換器與該邊緣連接器之間,該位址與控制接收器用以將該記憶體模組介接至該記憶體通道匯流排並使用該第二記憶體 通信協定在該記憶體通道匯流排上接收位址與控制。 The conversion memory module of claim 32, wherein: the at least one support chip further comprises a data transceiver coupled between the bidirectional converter and the edge connector, the data transceiver for the memory The module is bidirectionally coupled to the memory channel bus and uses the second memory communication protocol to receive and transmit data on the memory channel bus, and an address and control receiver coupled to the bidirectional conversion Between the device and the edge connector, the address and control receiver is configured to interface the memory module to the memory channel bus and use the second memory The communication protocol receives the address and control on the memory channel bus. 如請求項33之轉換記憶體模組,其中:該至少一記憶體積體電路係一非雙倍資料速率二(非DDR2)記憶體積體電路而該第一記憶體通信協定係一非DDR2記憶體通信協定,該第二記憶體通信協定係具有DDR2位址、控制及資料發信之一DDR2記憶體通信協定,該資料收發器使用DDR2資料發信將該記憶體模組雙向介接至該記憶體通道匯流排,以及該位址/控制接收器接收DDR2位址發信與DDR2控制發信以將該記憶體模組介接至該記憶體通道匯流排。 The conversion memory module of claim 33, wherein: the at least one memory volume circuit is a non-double data rate two (non-DDR2) memory volume circuit and the first memory communication protocol is a non-DDR2 memory a communication protocol, the second memory communication protocol having a DDR2 memory communication protocol of DDR2 address, control and data transmission, the data transceiver transmitting the memory module bidirectionally to the memory using DDR2 data transmission The channel bus, and the address/control receiver receives the DDR2 address transmission and the DDR2 control signaling to interface the memory module to the memory channel bus. 如請求項32之轉換記憶體模組,其中:該至少一記憶體積體電路係一非傳統記憶體積體電路,以及該至少一支援晶片包括該雙向轉換器以在該第一記憶體通信協定與該第二記憶體通信協定之間轉換使得該記憶體模組中的非傳統記憶體積體電路使用該預先存在的記憶體通道匯流排通信至一預先存在的記憶體控制器。 The conversion memory module of claim 32, wherein: the at least one memory volume circuit is a non-traditional memory volume circuit, and the at least one support chip comprises the bidirectional converter for communication in the first memory protocol The conversion between the second memory communication protocols causes the non-traditional memory volume circuitry in the memory module to communicate to a pre-existing memory controller using the pre-existing memory channel bus. 如請求項35之轉換記憶體模組,其中:該非傳統記憶體積體電路係一非揮發性記憶體積體電路。 The conversion memory module of claim 35, wherein: the non-traditional memory volume circuit is a non-volatile memory volume circuit. 一種記憶體模組,其包含:一印刷電路板,其具有一記憶體模組形狀因數與用以耦合至一主記憶體之一記憶體通道匯流排之一插座的一 邊緣連接器;至少一記憶體積體電路,其係耦合至該印刷板,該至少一記憶體積體電路具有記憶體用以儲存與喚回資料;以及至少一支援晶片,其係耦合至該印刷電路板並耦合於該邊緣連接器與該至少一記憶體積體電路之間,該至少一支援晶片包括一記憶體模組識別(MMID),其用以提供記憶體模組之類型與該至少一記憶體積體電路之一識別。 A memory module includes: a printed circuit board having a memory module form factor and a socket for coupling to a socket of a memory channel bus of a main memory An edge connector; at least one memory volume circuit coupled to the printed circuit board, the at least one memory volume circuit having a memory for storing and recalling data; and at least one support chip coupled to the printed circuit The board is coupled between the edge connector and the at least one memory volume circuit, the at least one support chip includes a memory module identification (MMID) for providing a type of the memory module and the at least one memory One of the volume circuits is identified. 如請求項37之記憶體模組,其中:該記憶體模組識別(MMID)用以將該記憶體模組識別為一非揮發性記憶體模組並將該至少一記憶體積體電路識別為至少一非揮發性記憶體積體電路。 The memory module of claim 37, wherein: the memory module identification (MMID) is used to identify the memory module as a non-volatile memory module and identify the at least one memory volume circuit as At least one non-volatile memory volume circuit. 如請求項37之記憶體模組,其中:該至少一支援晶片進一步包括一輸入/輸出埠,其係耦合至該邊緣連接器以形成一通信埠來將該記憶體模組識別(MMID)通信至一記憶體控制器。 The memory module of claim 37, wherein: the at least one support chip further comprises an input/output port coupled to the edge connector to form a communication port to identify the memory module (MMID) communication To a memory controller. 如請求項39之記憶體模組,其中:該輸入/輸出埠係一串列輸入/輸出埠而該通信埠係一串列通信埠,其用以將該記憶體模組識別(MMID)串列通信至該記憶體控制器。 The memory module of claim 39, wherein: the input/output is a serial input/output port and the communication is a serial communication port for identifying the memory module (MMID) string. The column communicates to the memory controller. 如請求項37之記憶體模組,其中:該至少一支援晶片進一步包括 一暫存器,其用以儲存關於該至少一記憶體積體電路之狀態資訊,該暫存器用以回應一請求來透過一記憶體通道匯流排將該狀態資訊傳達至一記憶體控制器。 The memory module of claim 37, wherein: the at least one support chip further comprises a register for storing state information about the at least one memory volume circuit, the register being responsive to a request for communicating the status information to a memory controller via a memory channel bus. 如請求項37之記憶體模組,其中:該至少一支援晶片用以從該至少一記憶體積體電路接收狀態資訊並產生一狀態旗標用於透過一記憶體通道匯流排對一記憶體控制器之通信。 The memory module of claim 37, wherein: the at least one supporting chip is configured to receive status information from the at least one memory volume circuit and generate a status flag for controlling a memory through a memory channel bus Communication. 一種可程式化異質性記憶體控制器,其包含:一處理器介面,其用以耦合至一處理器,以及一或多個記憶體通道控制器,其係耦合至該處理器介面並耦合至一主記憶體之一或多個個別記憶體通道,該一或多個記憶體通道控制器之各記憶體通道控制器包括一記憶體通道介面,其用以耦合至一記憶體通道匯流排;一共同記憶體模組控制器,其係耦合至該記憶體通道介面與該處理器介面,該共同記憶體模組控制器用以針對耦合於個別複數個記憶體模組插座中的複數個不同記憶體模組在該記憶體通道匯流排上產生共同控制信號;以及複數個記憶體模組控制器,其係耦合至該記憶體通道介面與該處理器介面,該複數個記憶體模組控制器用以針對耦合於該個別複數個記憶體模組插座中的該 複數個不同記憶體模組之各記憶體模組產生不同的控制信號,該複數個記憶體模組控制器之各記憶體模組控制器係可回應耦合於該個別記憶體模組插座中的記憶體模組之類型藉由一記憶體模組軟體驅動器加以程式化。 A programmable heterogeneous memory controller comprising: a processor interface for coupling to a processor, and one or more memory channel controllers coupled to the processor interface and coupled to One or more individual memory channels, each of the memory channel controllers of the one or more memory channel controllers includes a memory channel interface for coupling to a memory channel bus; a common memory module controller coupled to the memory channel interface and the processor interface, the common memory module controller for a plurality of different memories coupled to a plurality of memory module sockets The body module generates a common control signal on the memory channel busbar; and a plurality of memory module controllers coupled to the memory channel interface and the processor interface, the plurality of memory module controllers For the coupling to the individual plurality of memory module sockets Each memory module of a plurality of different memory modules generates different control signals, and each memory module controller of the plurality of memory module controllers is responsive to being coupled to the socket of the individual memory module The type of memory module is programmed by a memory module software driver. 如請求項43之可程式化異質性記憶體控制器,其中一非揮發性記憶體模組係耦合於耦合至一第一記憶體通道控制器的一第一記憶體通道匯流排之一記憶體模組插座中;一動態隨機存取記憶體模組係耦合於該第一記憶體通道匯流排之另一記憶體模組插座中;以及該主記憶體係一異質性主記憶體。 The programmable heterogeneous memory controller of claim 43, wherein the non-volatile memory module is coupled to a memory of a first memory channel bus coupled to a first memory channel controller In the module socket, a dynamic random access memory module is coupled to another memory module socket of the first memory channel bus; and the main memory system is a heterogeneous main memory. 如請求項44之可程式化異質性記憶體控制器,其中藉由一記憶體模組軟體驅動器來程式化一第一記憶體模組控制器以產生第一控制信號用於控制該非揮發性記憶體模組;以及藉由一不同記憶體模組軟體驅動器來程式化一第二記憶體模組控制器以產生第二控制信號用於控制該動態隨機存取記憶體模組。 The programmable heterogeneous memory controller of claim 44, wherein a first memory module controller is programmed by a memory module software driver to generate a first control signal for controlling the non-volatile memory And a second memory module controller is programmed by a different memory module software driver to generate a second control signal for controlling the dynamic random access memory module. 如請求項44之可程式化異質性記憶體控制器,其中該共同記憶體模組控制器針對該非揮發性記憶體模組與該動態隨機存取記憶體模組在該第一記憶體通道匯流排上產生共同控制信號。 The programmable heterogeneous memory controller of claim 44, wherein the common memory module controller converges the non-volatile memory module with the DRAM module in the first memory channel A common control signal is generated on the row. 一種可程式化異質性記憶體控制器,其包含: 一系統介面,其用以耦合至一處理器並允許對一主記憶體之存取;一記憶體介面,其具有一或多個彈性輸入/輸出(I/O)埠之接針,該記憶體介面用以耦合至一或多個個別記憶體通道之插座中的不同記憶體模組;以及一或多個輸入/輸出(I/O)狀態機,其係耦合於該系統介面與該記憶體介面之間,該等I/O狀態機用以回應一給定插座中進行存取的記憶體模組之類型及其個別記憶體模組軟體驅動器來程式化該接針組態並針對該記憶體介面之該等接針產生邏輯信號。 A programmable heterogeneous memory controller comprising: a system interface for coupling to a processor and allowing access to a main memory; a memory interface having one or more elastic input/output (I/O) pins for the memory The body interface is coupled to different memory modules in the socket of one or more individual memory channels; and one or more input/output (I/O) state machines coupled to the system interface and the memory Between the body interfaces, the I/O state machine is configured to respond to the type of the memory module accessed in a given socket and its individual memory module software driver to program the pin configuration and The pins of the memory interface generate a logic signal. 如請求項47之可程式化異質性記憶體控制器,其中一記憶體模組軟體驅動器包括與一記憶體模組之一記憶體模組識別相關聯的記憶體類型、接針組態、信號時序及信號邏輯位準。 The programable heterogeneous memory controller of claim 47, wherein the memory module software driver comprises a memory type, a pin configuration, and a signal associated with the memory module identification of a memory module. Timing and signal logic levels. 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一輸入/輸出(I/O)緩衝器,其係耦合於該系統介面與該一或多個I/O狀態機之間,該I/O緩衝器用以針對該I/O狀態機緩衝從一處理器接收的位址、控制及資料並用以緩衝從該I/O狀態機之資料以將其寫出至一處理器。 The programmable heterogeneous memory controller of claim 47, further comprising: an input/output (I/O) buffer coupled to the system interface and the one or more I/O state machines The I/O buffer is configured to buffer the address, control and data received from a processor for the I/O state machine and buffer data from the I/O state machine to write it out to a processor. . 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一彈性埠控制器,其係耦合於該I/O狀態機與該記憶體介面之間,該彈性埠控制器用以回應該接針組態來選擇 該一或多個彈性輸入/輸出(I/O)埠之該等功能性接針。 The programmable heterogeneous memory controller of claim 47, further comprising: an elastic 埠 controller coupled between the I/O state machine and the memory interface, the elastic 埠 controller being used Should be connected to the configuration to choose The functional pins of the one or more elastic input/output (I/O) ports. 如請求項47之可程式化異質性記憶體控制器,其進一步包含:一記憶體模組插座暫存器,其係耦合至該I/O狀態機,該記憶體模組插座暫存器用以儲存插入每一記憶體通道中之各插座的每一記憶體模組之該記憶體模組識別(ID);一微編碼記憶體,其係耦合至該記憶體模組插座暫存器,該微編碼記憶體用以針對藉由該記憶體模組插座暫存器指示的記憶體模組之每一不同類型來儲存該等記憶體模組軟體驅動器並將記憶體模組軟體驅動器供應至該I/O狀態機。 The programmable heterogeneous memory controller of claim 47, further comprising: a memory module socket register coupled to the I/O state machine, the memory module socket register being used Storing the memory module identification (ID) of each memory module inserted into each of the sockets in each memory channel; a microcoded memory coupled to the memory module socket register, The microcoded memory is configured to store the memory module software drivers and supply the memory module software drivers to each of the different types of memory modules indicated by the memory module socket registers I/O state machine. 如請求項47之可程式化異質性記憶體控制器,其中該一或多個輸入/輸出(I/O)狀態機之各I/O狀態機針對耦合至該可程式化異質性記憶體控制器之每一記憶體通道包括一記憶體通道狀態機,每一記憶體通道狀態機包括針對每一記憶體模組與其中的每一秩之記憶體的一或多個記憶體模組狀態機,其中為透過該記憶體通道匯流排將資料讀取與寫入耦合至其的每一記憶體模組中,該一或多個記憶體模組狀態機用以回應進行存取的記憶體模組之該類型來使用一適當引腳組態該記憶體介面,用以回應進行存取的記憶體模組之該類型來產生信號之適當邏輯位準,並用以回應進行存取的記憶體模組之該類型於該適當時間在該記憶體通道匯流 排上讀取與產生信號;一控制器,其係耦合至該一或多個記憶體模組狀態機,該控制器用以控制該一或多個記憶體模組狀態機之何者處於活動狀態;以及一匯流排仲裁器,其係耦合至該控制器與該一或多個記憶體模組狀態機,該匯流排仲裁器用以仲裁藉由該一或多個記憶體模組狀態機對該記憶體通道匯流排之存取。 The programmable heterogeneous memory controller of claim 47, wherein each of the one or more input/output (I/O) state machines is coupled to the programmable heterogeneous memory for control Each memory channel of the device includes a memory channel state machine, each memory channel state machine including one or more memory module state machines for each memory module and each rank memory thereof The memory module of the one or more memory module states for responding to the access memory module, wherein each of the memory modules is coupled to the memory module through the memory channel bus The type of group is configured to configure the memory interface using an appropriate pin to respond to the type of memory module being accessed to generate the appropriate logic level of the signal and to respond to the memory model being accessed. The type of group is converged in the memory channel at the appropriate time Reading and generating a signal; a controller coupled to the one or more memory module state machines, the controller for controlling which of the one or more memory module state machines are active; And a bus arbitrator coupled to the controller and the one or more memory module state machines, the bus arbitrator arbitrating the memory by the one or more memory module state machines Access to the body channel bus. 如請求項52之可程式化異質性記憶體控制器,其中該控制器進一步用以回應請求的記憶體存取之該類型與進行存取的該記憶體模組之該記憶體通道中之位置來控制該一或多個記憶體模組狀態機在操作的操作模式。 The programmable heterogeneous memory controller of claim 52, wherein the controller is further responsive to the type of the requested memory access and the location in the memory channel of the memory module being accessed To control the operating mode of the one or more memory module state machines in operation. 如請求項53之可程式化異質性記憶體控制器,其中該操作模式可以係一讀取(R)存取、一寫入(W)存取或一初始化/抹除(I)之一者。 The programmable heterogeneous memory controller of claim 53, wherein the mode of operation is one of a read (R) access, a write (W) access, or an initialization/erase (I) . 如請求項53之可程式化異質性記憶體控制器,其中該記憶體模組之該位置係耦合該記憶體模組之該插座。 The programmable heterogeneous memory controller of claim 53, wherein the location of the memory module is coupled to the socket of the memory module.
TW96136497A 2006-09-28 2007-09-28 Systems, methods, and apparatus with programmable memory control for heterogeneous main memory TWI446171B (en)

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 (en) 2014-07-21

Family

ID=44820877

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96136497A TWI446171B (en) 2006-09-28 2007-09-28 Systems, methods, and apparatus with programmable memory control for heterogeneous main memory

Country Status (1)

Country Link
TW (1) TWI446171B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI691838B (en) * 2015-07-13 2020-04-21 南韓商三星電子股份有限公司 Computer system and non-volatile memory operating method

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 (en) * 2015-07-13 2020-04-21 南韓商三星電子股份有限公司 Computer system and non-volatile memory operating method

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
US8874843B2 (en) Systems with programmable heterogeneous memory controllers for main memory
US8051253B2 (en) Systems and apparatus with programmable memory control for heterogeneous main memory
US9536609B2 (en) Memory modules with multi-chip packaged integrated circuits having flash memory
US8806116B2 (en) Memory modules for two-dimensional main memory
TWI454923B (en) Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
TWI500031B (en) Systems, methods, and apparatus for main memory with non-volatile type memory modules, and related technologies
US7761626B2 (en) Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
TWI465925B (en) Computer system having ram slots with different specification
TWI446171B (en) Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US7370810B2 (en) Semiconductor device and memory card having the same
JPH0612501A (en) Si type cpu module