Memory modules with nonvolatile storage and rapid, sustained transfer rates
First Claim
Patent Images
1. A memory module, comprising:
- a data bus;
a plurality of slice sections, each slice section configured to input and output a slice of a data for a different section of the data bus;
each slice section comprising;
at least one nonvolatile memory (NVM);
a memory element to store the slice of the data for the slice section during operations that transfer the slice of the data between the section of the data bus for the slice section and the NVM of the slice section; and
a slice controller configured to translate an address for the slice of the data for the section of the data bus into at least a physical address of the NVM of the slice section; and
the memory element comprising a multi-port random access memory having at least a first address port coupled to receive address data from an address bus common to the plurality of slice sections and at least a second address port coupled to receive an address from the slice controller of the slice section;
wherein the slice controller is configured to simultaneously;
transfer data between the corresponding NVM and the corresponding memory element of the slice section, and transfer data between the corresponding memory element of the slice section and the address bus.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory module is organized into slice sections, each configured to input and output a slice of data for a different section of a data bus. Each slice section includes at least one nonvolatile memory (NVM) and a memory element, such as random access volatile memory, to store the slice of data for the slice section during operations that transfer the slice of data between the section of the data bus for the slice section and the NVM of the slice section. Each slice section also includes a slice controller configured to translate an address for the slice of data for the section of the data bus into a physical address of the NVM of the slice section.
67 Citations
17 Claims
-
1. A memory module, comprising:
-
a data bus; a plurality of slice sections, each slice section configured to input and output a slice of a data for a different section of the data bus; each slice section comprising; at least one nonvolatile memory (NVM); a memory element to store the slice of the data for the slice section during operations that transfer the slice of the data between the section of the data bus for the slice section and the NVM of the slice section; and a slice controller configured to translate an address for the slice of the data for the section of the data bus into at least a physical address of the NVM of the slice section; and the memory element comprising a multi-port random access memory having at least a first address port coupled to receive address data from an address bus common to the plurality of slice sections and at least a second address port coupled to receive an address from the slice controller of the slice section; wherein the slice controller is configured to simultaneously; transfer data between the corresponding NVM and the corresponding memory element of the slice section, and transfer data between the corresponding memory element of the slice section and the address bus. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a plurality of memory modules coupled to a system memory bus interface, each memory module including nonvolatile memory (NVM) arranged into slice sections that each store a slice of a data for different portions of an access transfer width of a system memory bus; a module bus; and a slice controller corresponding to each slice section, each slice controller configured to access the slice of the data in the NVM of the corresponding slice section in response to address data received on the module bus; the slice controller configured to translate an address for the slice of the data for the section of the data bus into at least a physical address of the NVM of the slice section; and wherein each of the memory modules further comprising;
a data slice store, the data slice store to cache a portion of data stored in the NVM of the corresponding slice section; andwherein the data slice store comprising a multi-port random access memory having at least a first address port coupled to receive address data from an address bus common to the plurality of slice sections and at least a second address port coupled to receive an address from the slice controller of the slice section; wherein the slice controller is configured to simultaneously; transfer data between the corresponding NVM and the corresponding data slice store of the slice section, and transfer data between the corresponding data slice store of the slice section and the system memory bus. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
receiving different portions of a multi-bit data value from a memory bus at different slice sections of a memory module; receiving an address value at a slice controller of each slice section, the address value corresponding to the multi-bit data value; and storing the portions of the multi-bit data value each in a different slice section of a nonvolatile memory (NVM) according to the address value; wherein storing the portions of the multi-bit data value includes caching each portion of the multi-bit value data in a data slice store of the corresponding slice section, and writing the portion of the multi-bit data value into the NVM corresponding to the slice section; and
wherein storing the portions of the multi-bit data value includes, for each slice section, translating the address value into an NVM address based on an address translation table unique to the slice section;wherein the data slice store comprising a multi-port random access memory having at least a first address port coupled to receive address data from an address bus common to the plurality of slice sections and at least a second address port coupled to receive an address from a slice controller of the corresponding slice section; wherein the slice controller is configured to simultaneously; transfer data between the corresponding NVM and the corresponding data slice store of the slice section, and transfer data between the corresponding data slice store of the slice section and the system memory bus. - View Dependent Claims (15, 16, 17)
-
Specification