US20160232103A1

Block storage apertures to persistent memory

Claim Score by NHIP

Read claim 26, the broadest

Abstract

Apparatus and methods for accessing a non-volatile memory (NVM) device in a computer system that includes at least one host processor and at least one memory bus. The NVM device is communicably coupleable to the memory bus through an NVM device controller, thereby allowing the host processor to access persistent data storable within the NVM device by issuing one or more memory load/store commands to the NVM device controller over the memory bus. Because the NVM device controller includes at least one block window or aperture that defines at least one address range for accessing the persistent data storable within the NVM device, the computer system can exploit the full capacity of the NVM device without being unduly constrained by physical addressing limits imposed by the host processor, or by limits imposed by an operating system executed by the host processor.

US20160232103A1, drawing sheet 1
Sheet 1 of 11

Term

Projected expiry 26 September 2033.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 26
    Broadest claimClaim Score 55, average(NHIP)A method of accessing block data storable within a non-volatile memory (NVM) device in a computer system, the computer system including at least one host processor and at least one memory bus, the method comprising:receiving, at a controller over the memory bus, at least one first command from the host processor, the first command including one of a memory load command and a memory store command, the first command further including a logical address, the controller including at least one block window defining at least one address range for accessing the block data storable within the NVM device;translating, by the controller, the logical address included in the first command to a physical address within the NVM device, the logical address conforming to at least a portion of the address range defined by the block window;andaccessing, by the controller, the block data at the physical address within the NVM device.
  2. 40
    A controller for accessing block data storable within a non-volatile memory (NVM) device, the controller being communicably coupleable to at least one host processor over at least one memory bus, comprising:a least one block window defining at least one address range for accessing the block data storable within the NVM device;at least one command register, the command register being operative to receive, over the memory bus, at least one first command from the host processor, the first command including one of a memory load command and a memory store command, the first command having a logical address including a logical offset address;a plurality of control registers including at least a plurality of base address registers, the plurality of base address registers containing a plurality of logical base addresses, respectively, each of the respective logical base addresses corresponding to a predetermined portion of the address range defined by the block window;andat least one internal processor operative to execute at least one program out of at least one memory: to select one of the plurality of base address registers based at least on the logical address from the first command;to translate the logical base address contained in the selected base address register and the logical offset address to a physical address within the NVM device;andto access the block data at the physical address within the NVM device.
  3. 45
    A computer-readable storage medium including executable instructions for accessing block data storable within a non-volatile memory (NVM) device in a computer system, the computer system including at least one host processor and at least one memory bus, the computer-readable storage medium comprising executable instructions:to receive, over the memory bus, at least one first command from the host processor, the first command including one of a memory load command and a memory store command, the first command further including a logical address, at least one block window defining at least one address range for accessing the block data storable within the NVM device;to translate the logical address to a physical address within the NVM device, the logical address conforming to at least a portion of the address range defined by the block window;andto access the block data at the physical address within the NVM device.