Flash-DRAM hybrid memory module
First Claim
Patent Images
1. A memory module comprising:
- a data manager configured to be coupled to a memory controller of a host system using a data bus, the data manager is operable to communicate data signals with the memory controller of the host system by way of the data bus in accordance with a first protocol;
a first volatile memory subsystem coupled to the data manager using a first data bus, the first volatile memory subsystem is operable to communicate data signals with the data manager by way of the first data bus in accordance with the first protocol;
a second volatile memory subsystem coupled to the data manager using a second data bus, the second volatile memory subsystem is operable to communicate data signals with the data manager by way of the second data bus in accordance with the first protocol;
a non-volatile memory subsystem coupled to the data manager using a third data bus, the non-volatile memory subsystem is operable to communicate data signals with the data manager by way of the third data bus using a second protocol; and
a controller operable to receive one or more commands from the memory controller of the host system in accordance with the first protocol, and in response to the one or more commands received from the memory controller of the host system, the controller generates and transmits one or more control signals to the data manager, wherein, in response to the one or more control signals, the data manager transfers data between the first volatile memory subsystem and the memory controller of the host system, and transfers data signals from the non-volatile memory subsystem to the second volatile memory subsystem by way of the third data bus and the second data bus.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory module that is couplable to a memory controller hub (MCH) of a host system includes a non-volatile memory subsystem, a data manager coupled to the non-volatile memory subsystem, a volatile memory subsystem coupled to the data manager and operable to exchange data with the non-volatile memory subsystem by way of the data manager, and a controller operable to receive read/write commands from the MCH and to direct transfer of data between any two or more of the MCH, the volatile memory subsystem, and the non-volatile memory subsystem based on the commands.
143 Citations
21 Claims
-
1. A memory module comprising:
-
a data manager configured to be coupled to a memory controller of a host system using a data bus, the data manager is operable to communicate data signals with the memory controller of the host system by way of the data bus in accordance with a first protocol; a first volatile memory subsystem coupled to the data manager using a first data bus, the first volatile memory subsystem is operable to communicate data signals with the data manager by way of the first data bus in accordance with the first protocol; a second volatile memory subsystem coupled to the data manager using a second data bus, the second volatile memory subsystem is operable to communicate data signals with the data manager by way of the second data bus in accordance with the first protocol; a non-volatile memory subsystem coupled to the data manager using a third data bus, the non-volatile memory subsystem is operable to communicate data signals with the data manager by way of the third data bus using a second protocol; and a controller operable to receive one or more commands from the memory controller of the host system in accordance with the first protocol, and in response to the one or more commands received from the memory controller of the host system, the controller generates and transmits one or more control signals to the data manager, wherein, in response to the one or more control signals, the data manager transfers data between the first volatile memory subsystem and the memory controller of the host system, and transfers data signals from the non-volatile memory subsystem to the second volatile memory subsystem by way of the third data bus and the second data bus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A memory module couplable to a memory controller of a host system, the memory module comprising:
-
a non-volatile memory (NVM) subsystem coupled to a NVM controller; a data manager coupled to a data manager controller and to the NVM subsystem; a volatile memory (VM) subsystem coupled to a VM controller and to the data manager; and a controller operable to receive a command from the memory controller of the host system, the controller including the NVM controller, the VM controller, and the data manager controller, the VM controller is operable (i) to generate and transmit a first command to the VM subsystem in response to the command received from the memory controller of the host system, and (ii) to generate and transmit a second command to the VM subsystem, wherein the second command is generated by the VM controller independently from the command received from the memory controller of the host system, and wherein the controller is operable to direct (i) operation of the NVM subsystem by way of the NVM controller, (ii) operation of the VM subsystem by way of the VM controller, and (iii) operation of the data manager by way of the data manager controller to transfer data between any two or more of the memory controller of the host system, the VM subsystem, and the NVM subsystem based on any one of the first command and the second command. - View Dependent Claims (10, 11, 12)
-
-
13. A memory module couplable to a memory controller of a host system, the memory module comprising:
-
a non-volatile memory (NVM) subsystem coupled to a NVM controller; a data manager coupled to a data manager controller and to the NVM subsystem; a volatile memory (VM) subsystem coupled to a VM controller and to the data manager; and a controller operable to receive a command from the memory controller of the host system, the controller including the NVM controller, the VM controller, and the data manager controller, the VM controller is operable (i) to generate and transmit a first command to the VM subsystem in response to the command received from the memory controller of the host system, and (ii) to generate and transmit a second command to the VM subsystem, wherein the second command is generated by the VM controller independently from the command received from the memory controller of the host system, and wherein the controller is operable to direct (i) operation of the NVM subsystem by way of the NVM controller, (ii) operation of the VM subsystem by way of the VM controller, and (iii) operation of the data manager by way of the data manager controller to transfer data between any two or more of the memory controller of the host system, the VM subsystem, and the NVM subsystem based on any one of the first command and the second command, wherein the controller further includes an interface scheduler, if the command received by the controller from the memory controller of the host system is a read or write operation from/to the VM subsystem that conflicts with an operation being executed by VM subsystem in response to the second command, then the interface scheduler instructs the VM controller (i) to abort the current operation of VM subsystem, and (ii) to execute an operation in response to the first command.
-
-
14. A memory module couplable to a memory controller of a host system, the memory module comprising:
-
a non-volatile memory (NVM) subsystem coupled to a NVM controller; a data manager coupled to a data manager controller and to the NVM subsystem; a volatile memory (VM) subsystem coupled to a VM controller and to the data manager; and a controller operable to receive a command from the memory controller of the host system, the controller including the NVM controller, the VM controller, and the data manager controller, the VM controller is operable (i) to generate and transmit a first command to the VM subsystem in response to the command received from the memory controller of the host system, and (ii) to generate and transmit a second command to the VM subsystem, wherein the second command is generated by the VM controller independently from the command received from the memory controller of the host system, and wherein the controller is operable to direct (i) operation of the NVM subsystem by way of the NVM controller, (ii) operation of the VM subsystem by way of the VM controller, and (iii) operation of the data manager by way of the data manager controller to transfer data between any two or more of the memory controller of the host system, the VM subsystem, and the NVM subsystem based on any one of the first command and the second command, wherein the controller further includes an interface scheduler, if the command received by the controller from the memory controller of the host system is a read or write operation from/to the VM subsystem that conflicts with an operation being executed by VM subsystem in response to the second command, then the interface scheduler instructs the VM controller to complete the current operation of VM subsystem before executing an operation in response to the first command.
-
-
15. A memory module couplable to a memory controller of a host system, the memory module comprising:
-
a non-volatile memory (NVM) subsystem coupled to a NVM controller; a data manager coupled to a data manager controller and to the NVM subsystem; a volatile memory (VM) subsystem coupled to a VM controller and to the data manager; and a controller operable to receive a command from the memory controller of the host system, the controller including the NVM controller, the VM controller, and the data manager controller, the VM controller is operable (i) to generate and transmit a first command to the VM subsystem in response to the command received from the memory controller of the host system, and (ii) to generate and transmit a second command to the VM subsystem, wherein the second command is generated by the VM controller independently from the command received from the memory controller of the host system, and wherein the controller is operable to direct (i) operation of the NVM subsystem by way of the NVM controller, (ii) operation of the VM subsystem by way of the VM controller, and (iii) operation of the data manager by way of the data manager controller to transfer data between any two or more of the memory controller of the host system, the VM subsystem, and the NVM subsystem based on any one of the first command and the second command, wherein the controller further includes an interface scheduler, if the command received by the controller from the memory controller of the host system is a read or write operation from/to the VM subsystem that conflicts with an operation being executed by VM subsystem in response to the second command, then the interface scheduler instructs the VM controller (i) to halt the current operation of VM subsystem, (ii) to execute an operation in response to the first command, and (iii) to resume the operation in response to the second command.
-
-
16. A memory module couplable to a memory controller of a host system, the memory module comprising:
-
a non-volatile memory (NVM) subsystem; a data manager coupled to a data manager controller and to the NVM subsystem; a volatile memory (VM) subsystem coupled to the data manager; and a controller operable to receive a read command from the memory controller of the host system, the controller is configured to determine, in response to the read command, a target address for a requested data, and if requested data is not stored in the VM subsystem, then the controller (i) initiates data transfer operations from the NVM subsystem to the VM subsystem by way of the data manager, and (ii) initiates data transfer operations from the VM subsystem to the memory controller of the host system by way of the data manager, wherein transfer of data between the memory controller of the host system and the VM subsystem is by way of a first data bus and a first protocol, and transfer of data between the NVM and the VM subsystem is by way of the first and a second protocol respectively on a second data bus and a third data bus. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification