×

Direct data move between DRAM and storage on a memory module

  • US 10,248,328 B2
  • Filed: 07/31/2017
  • Issued: 04/02/2019
  • Est. Priority Date: 11/07/2013
  • Status: Active Grant
First Claim
Patent Images

1. A computer system, comprising:

  • a system memory bus providing a memory channel, the memory channel comprising a control/address (C/A) bus and a data bus;

    a processor coupled to the system memory bus;

    a memory module including a circuit board having electrical contacts coupled to the system memory bus, a volatile memory unit mounted on the circuit board, a non-volatile memory unit mounted on the circuit board and a control circuit mounted on the circuit board, the volatile memory unit comprising DRAM devices, and the non-volatile memory unit comprising flash memory;

    input/output devices coupled to the system bus;

    wherein the processor is configured to execute an operating system (OS) and an application program and to present a memory address space to the application program, the memory address space including a memory mapped input/output (MMIO) space mapped to the I/O devices, a pseudo MMIO (PMMIO) space mapped to the non-volatile memory unit, and a DRAM space mapped to the volatile memory unit, the PMMIO space including a system main memory local storage (MMLS) area and a memory channel storage (MCS) area, wherein the DRAM space is partitioned into memory pages, and the MCS area is partitioned into storage blocks;

    wherein the operating system is configured to request direct data transfer for one or more storage blocks in the MCS area between the volatile memory unit and the non-volatile memory unit to store or retrieve files associated with the application program by causing a direct data transfer command to be sent to the memory module via the memory channel, the direct data transfer command including an address in the DRAM space and an address in the MCS space; and

    wherein the control circuit is configured to receive the direct data transfer command from the memory channel, and to move the data for the one or more storage blocks between the volatile memory unit and the non-volatile memory unit without any of the data for the one or more storage blocks going through the memory channel;

    wherein the processor is further configured to respond to a request from the application program to access a memory page not loaded in the volatile memory by causing a page-in command to be transmitted via the data bus to the memory module, the page-in command including information for the memory page and one or more address locations in the MMLS space where the requested data is to be retrieved;

    wherein the control circuit is configured to receive the page-in command from the memory channel, to read the data for the memory page from the MMLS space without any of the data for the memory page going through the memory channel;

    wherein the processor is further configured to cause a dummy write command to be transmitted to the volatile memory unit, the dummy write command including an address associated with the memory page;

    wherein the volatile memory unit further comprises a registered control device (RCD) that is configured to receive the dummy write command from the memory channel, and wherein the DRAM devices are configured to receive the data for the memory page from the control circuit in response to control/address signals from the RCD, the control/address signals being derived from the dummy write command.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×