Method and apparatus for supporting heterogeneous memory in computer systems
First Claim
1. A computer system comprising:
- at least one bus, the bus having address, data, and control signals;
at least one processor for processing data, for controlling operations of the bus and for performing read and write operations;
a memory controller system, coupled to the bus;
a heterogeneous main memory array, having a first memory unit and a second memory unit, the first and second memory units having different access parameters.
4 Assignments
0 Petitions
Accused Products
Abstract
A memory controller capable of supporting heterogeneous memory configurations enables seamless communications between a bus and memory modules having different characteristics. Thus, owners of computer systems need no longer replace entire memory arrays to take advantage of new memory modules; some memory modules may be upgraded to a new type while other memory modules of an older type remain. The memory controller receives memory requests from multiple processors and bus masters, identifies a memory module and memory access parameters for each request, accesses the memory and returns the resulting data (during a read request) or stores the data (during a write request). In some systems, the memory controller of the present invention is a two-tier memory controller system having a first memory controller coupled to the bus and to the second tier of memory controllers or RAM personality modules that translate between the first memory controller and a particular type of memory module. Typically, between the tiers a protocol is used which is representative of a typical clocked synchronous dynamic random access memory (SDRAM), although another protocol could be used. From the perspective of the processor bus or host bus coupled to the front end of the first memory controller, the entire memory controller system behaves as a single memory controller. From the perspective of memory, the back end of the RAM personality module is seen as a memory controller designed specifically to be configured for that memory type. Consequently, although the front end of the RAM personality module can be standardized across the system, compatible with the back end of the first memory controller, and in most embodiments of the present invention, the back end of the RAM personality module differs among the controller modules in the second tier, according to the variety of the memory modules in the memory system.
-
Citations
42 Claims
-
1. A computer system comprising:
-
at least one bus, the bus having address, data, and control signals;
at least one processor for processing data, for controlling operations of the bus and for performing read and write operations;
a memory controller system, coupled to the bus;
a heterogeneous main memory array, having a first memory unit and a second memory unit, the first and second memory units having different access parameters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13)
-
-
11. A computer system comprising:
-
a first bus means for transferring address, data, and control signals;
at least one means for processing data, for controlling operations of the first bus means and for performing read and write operations;
a first means of a first type for storing data, the first storing means having a first set of access parameters;
a second means of a second type for storing data, the second storing means having a second set of access parameters different from the first set;
a first controlling means for selecting one of the storing means and for transferring address, data, and control signals between the first transferring means and the selected storing means. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. In a computer system having at least a first bus, the bus having address, data, and control signals, at least one processor for processing data, for controlling operations of the bus and for performing read and write operations, and a heterogeneous main memory array, having a first memory unit and a second memory unit, the first and second memory units having different access parameters, a memory controller system coupled to the bus, the memory controller system comprising:
-
a first portion configured to be coupled to receive write operations and read operations from the first bus, and receive response data corresponding to a write operation and to provide the response data via said first bus;
a second portion, coupled to the first portion and further configured to be coupled to at least one memory module of the first type, the second portion for translating memory access requests from the first portion to the first memory module according to the access parameters of the first memory module and further for translating any response from the memory module to the first portion;
a third portion, coupled to the first portion and further configured to be coupled to at least one memory module of the second type, the third portion being in parallel with the second portion, the third portion for translating memory access requests from the first portion to the second memory module according to the access parameters of the second memory module and further for translating any response from the second memory module to the first portion. - View Dependent Claims (22, 24, 25, 26, 27, 28, 29, 30)
-
-
23. In a computer system having at least a first bus, the bus having address, data, and control signals, at least one processor for processing data, for controlling operations of the bus and for performing read and write operations, and a heterogeneous main memory array, having a first memory unit and a second memory unit, the first and second memory units having different access parameters, a memory controller system coupled to the bus, the memory controller system comprising:
-
a first portion, configured to be coupled to transfer memory access requests, control information, data, and addresses, bus master indexes, and responses thereto between the bus and the first memory unit according to the first set of access parameters;
a second portion, coupled to transfer memory access requests, control information, data, and addresses, bus master indexes, and responses thereto between the first portion and the second memory unit according to the second set of access parameters.
-
-
31. In a computer system having a first bus for transferring address, data, and control signals, at least one for processing data, for controlling operations of the first bus and for performing read and write operations, and a memory controller, a heterogeneous memory array, the heterogeneous memory array comprising:
-
means for connecting to a memory bus;
a first memory module of a first type for storing data, the first memory module having a first set of access parameters;
a second memory module of a second type for storing data, the second memory module coupled to said means and having a second set of access parameters different from the first set;
a first personality module coupled between said connecting means and said second memory module, the personality module configured to translate memory access signals from the connecting means to the second memory module and from the second memory module to the connecting means. - View Dependent Claims (32, 33, 34, 35, 40)
-
-
36. For connection to a computer system having a first bus for transferring address, data, and control signals, at least one for processing data, for controlling operations of the first bus and for performing read and write operations, and a memory controller, a memory card, the memory card comprising:
-
means for connecting to a memory bus;
a first memory module of a first type for storing data, the first memory module having a first set of access parameters; and
a first personality module coupled between said connecting means and said second memory module, the personality module configured to translate memory access signals from the connecting means to the second memory module and from the second memory module to the connecting means. - View Dependent Claims (37, 38, 39)
-
-
41. In a computer system having a first bus for transferring address, data, and control signals, at least one for processing data, for controlling operations of the first bus and for performing read and write operations, a memory controller for selecting memory modules and for transferring address, data, and control signals between the bus and the selected memory module, and a heterogeneous memory array having a plurality of memory modules coupled to the memory controller, a method for exchanging data between the bus and the selected memory module, the method comprising the steps of:
-
receiving a memory access request from the memory controller, the memory access request being compatible with a first set of access parameters;
based on the memory access request, selecting a memory module;
when the selected memory module is configured to be accessed according to access parameters compatible with the memory controller, providing the memory access request to the selected memory module;
when the selected memory module is not configured to be accessed according to access parameters compatible with the memory controller, performing the steps of;
providing the memory access request to a personality module compatible with the selected memory module, the personality module being configured between the memory controller and the selected memory module;
translating the memory access request to a second set of access parameters compatible with the selected memory module; and
providing the translated memory access request to the selected memory module; and
when the selected memory module is not configured to be accessed according to access parameters compatible with the memory controller and the access is a read access, performing the steps of;
receiving response data from the selected memory module, according to the second set of access parameters;
translating the response data to the first set of access parameters; and
providing translated response data to the memory controller. - View Dependent Claims (42)
-
Specification