Host apparatus to independently schedule maintenance operations for respective virtual block devices in the flash memory dependent on information received from a memory controller
First Claim
1. An apparatus to transmit data access requests to a memory controller for flash memory, the apparatus comprising:
- circuitry to assign non-overlapping logical address ranges to respective virtual block devices defined with respect to the flash memory, wherein each one of the respective virtual block devices is characterized by associated performance characteristics comprising a minimum time required to program a page of memory cells in the flash memory, a minimum time required to erase a block of memory cells in the flash memory, and a minimum time required to read a page of memory cells in the flash memory;
circuitry to receive from the memory controller, on an independent basis for each one of the respective virtual block devices, information identifying the need for a maintenance operation, the maintenance operation for each one of the respective virtual block devices comprising at least one of erase of an erase unit in the flash memory corresponding to the one of the respective virtual block devices or a data relocation operation for data stored in the flash memory corresponding to the one of the respective virtual block devices; and
circuitry to schedule issuance of commands to the memory controller, the commands to control the performance of maintenance operations in respective virtual block devices, in a manner such that the scheduling of commands to perform a maintenance operation in a first one of the respective virtual block devices is unconstrained by the performance characteristics associated with a second one of the respective virtual block devices.
3 Assignments
0 Petitions
Accused Products
Abstract
Hierarchical address virtualization within a memory controller and configurable block device allocation are disclosed. Respective virtual block devices (VBDs) are defined in flash memory managed by a common memory controller, with data access managed using address virtualization techniques. The common memory controller then tracks the need for maintenance operations independently for each VBD. Information may be received from the common memory controller regarding the need for maintenance operations in respective virtual block devices (VBDs), and commands are then selectively issued to the common memory controller in a manner so as to independently schedule these operations for the respective VBDs; performance of maintenance operations by the memory controller in a first VBD is unconstrained by performance characteristics associated with a second VBD.
-
Citations
19 Claims
-
1. An apparatus to transmit data access requests to a memory controller for flash memory, the apparatus comprising:
-
circuitry to assign non-overlapping logical address ranges to respective virtual block devices defined with respect to the flash memory, wherein each one of the respective virtual block devices is characterized by associated performance characteristics comprising a minimum time required to program a page of memory cells in the flash memory, a minimum time required to erase a block of memory cells in the flash memory, and a minimum time required to read a page of memory cells in the flash memory; circuitry to receive from the memory controller, on an independent basis for each one of the respective virtual block devices, information identifying the need for a maintenance operation, the maintenance operation for each one of the respective virtual block devices comprising at least one of erase of an erase unit in the flash memory corresponding to the one of the respective virtual block devices or a data relocation operation for data stored in the flash memory corresponding to the one of the respective virtual block devices; and circuitry to schedule issuance of commands to the memory controller, the commands to control the performance of maintenance operations in respective virtual block devices, in a manner such that the scheduling of commands to perform a maintenance operation in a first one of the respective virtual block devices is unconstrained by the performance characteristics associated with a second one of the respective virtual block devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus comprising instructions stored on non-transitory machine-readable media, said apparatus to cause an electronic system to transmit data access requests to a memory controller for flash memory, said instructions when executed to cause at least one integrated circuit processor of the electronic system:
-
assign non-overlapping logical address ranges to respective virtual block devices defined with respect to the flash memory, wherein each one of the respective virtual block devices is characterized by associated performance characteristics comprising a minimum time required to program a page of memory cells in the flash memory, a minimum time required to erase a block of memory cells in the flash memory, and a minimum time required to read a page of memory cells in the flash memory; receive from the memory controller, on an independent basis for each one of the respective virtual block devices, information identifying the need for a maintenance operation, the maintenance operation for each one of the respective virtual block devices comprising at least one of erase of an erase unit in the flash memory corresponding to the one of the respective virtual block devices or a data relocation operation for data stored in the flash memory corresponding to the one of the respective virtual block devices; and schedule issuance of commands to the memory controller to perform maintenance operations in respective virtual block devices, in a manner such that the scheduling of commands to perform a maintenance operation in a first one of the respective virtual block devices is unconstrained by the performance characteristics associated with a second one of the respective virtual block devices. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus to transmit data access requests to a memory controller for flash memory, the flash memory comprising flash memory dies controlled in common by the memory controller, the apparatus comprising:
-
circuitry to assign non-overlapping logical address ranges to respective virtual block devices defined with respect to the flash memory, wherein each one of the respective virtual block devices is associated with a respective subset of one or more of the flash memory dies on a mutually-exclusive basis relative to each other and wherein each one of the respective virtual block devices is characterized by associated performance characteristics comprising a minimum time required to program a page of memory cells in the flash memory, a minimum time required to erase a block of memory cells in the flash memory, and a minimum time required to read a page of memory cells in the flash memory; circuitry to receive from the memory controller, on an independent basis for each one of the respective virtual block devices, information identifying the need for a maintenance operation in a particular die of the respective subset of the flash memory dies, the maintenance operation for each one of the respective virtual block devices comprising at least one of erase of an erase unit in the particular die or a data relocation operation for data stored in the particular die; and circuitry to schedule issuance of commands to the memory controller, the commands to control performance of maintenance operations, in a manner such that the scheduling of commands to perform a maintenance operation in a first one of the respective virtual block devices is unconstrained by the performance characteristics associated with a second one of the respective virtual block devices.
-
Specification