Multi-array operation support and related devices, systems and software
First Claim
1. A host device to direct memory access requests to a flash memory controller integrated circuit, the flash memory controller integrated circuit to manage flash memory comprising multiple planes, the host device comprising at least hardware-based processor and instructions stored on non-transitory machine readable media, said instructions when executed to cause the at least one hardware based processor to:
- pre-establish a first range of addresses that are to be used for multi-plane writes of data into the flash memory and a second range of addresses that are to be used for single plane writes of data into the flash memory; and
during operation of the host device, cause the host device to direct the memory access requests to the flash memory controller integrated circuit in dependence on whether an address associated with a given one of the memory access requests corresponds to the first range of addresses or to the second range of addresses, wherein the memory access requests are to cause the flash memory controller integrated circuit to access a variable number of the planes in dependence on the address associated with the given one of the memory access requests, such that a first address corresponding to a first memory access request causes the flash memory controller integrated circuit to exchange respective subsets of data associated with the first memory access request with respective ones of the planes, and such that a second address corresponding to a second memory access request causes the flash memory controller integrated circuit to exchange all of the data associated with the second memory access request with a single one of the planes only.
2 Assignments
0 Petitions
Accused Products
Abstract
This disclosure provides for improvements in managing multi-drive, multi-die or multi-plane NAND flash memory. In one embodiment, the host directly assigns physical addresses and performs logical-to-physical address translation in a manner that reduces or eliminates the need for a memory controller to handle these functions, and initiates functions such as wear leveling in a manner that avoids competition with host data accesses. A memory controller optionally educates the host on array composition, capabilities and addressing restrictions. Host software can therefore interleave write and read requests across dies in a manner unencumbered by memory controller address translation. For multi-plane designs, the host writes related data in a manner consistent with multi-plane device addressing limitations. The host is therefore able to “plan ahead” in a manner supporting host issuance of true multi-plane read commands.
172 Citations
24 Claims
-
1. A host device to direct memory access requests to a flash memory controller integrated circuit, the flash memory controller integrated circuit to manage flash memory comprising multiple planes, the host device comprising at least hardware-based processor and instructions stored on non-transitory machine readable media, said instructions when executed to cause the at least one hardware based processor to:
-
pre-establish a first range of addresses that are to be used for multi-plane writes of data into the flash memory and a second range of addresses that are to be used for single plane writes of data into the flash memory; and during operation of the host device, cause the host device to direct the memory access requests to the flash memory controller integrated circuit in dependence on whether an address associated with a given one of the memory access requests corresponds to the first range of addresses or to the second range of addresses, wherein the memory access requests are to cause the flash memory controller integrated circuit to access a variable number of the planes in dependence on the address associated with the given one of the memory access requests, such that a first address corresponding to a first memory access request causes the flash memory controller integrated circuit to exchange respective subsets of data associated with the first memory access request with respective ones of the planes, and such that a second address corresponding to a second memory access request causes the flash memory controller integrated circuit to exchange all of the data associated with the second memory access request with a single one of the planes only. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a memory system, the memory system comprising a host device and a flash memory controller to manage flash memory comprising multiple planes, the method comprising:
-
pre-establishing a first range of addresses that are to be used for multi-plane writes of data into the flash memory and a second range of addresses that are to be used for single plane writes of data into the flash memory; and during operation of the host device, causing the host device to issue memory access requests to the flash memory controller integrated circuit in dependence on whether an address associated with a given one of the memory access requests corresponds to the first range of addresses or to the second range of addresses, wherein the memory access requests are to cause the flash memory controller integrated circuit to access a variable number of the planes in dependence on the address associated with the given one of the memory access requests, such that a first address corresponding to a first memory access request causes the flash memory controller integrated circuit to exchange respective subsets of data associated with the first memory access request with respective ones of the planes, and such that a second address corresponding to a second memory access request causes the flash memory controller integrated circuit to exchange all of the data associated with the second memory access request with a single one of the planes only. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus comprising instructions stored on non-transitory, machine-readable media, the instructions to be executed by at least one hardware processor of a host device to direct memory access requests to a flash memory controller integrated circuit, the flash memory controller integrated circuit to manage flash memory comprising multiple planes, the instructions when executed to cause the at least one hardware based processor to:
-
pre-establish a first range of addresses that are to be used for multi-plane writes of data into the flash memory and a second range of addresses that are to be used for single plane writes of data into the flash memory; and during operation of the host device, cause the host device to issue the memory access requests to the flash memory controller integrated circuit in dependence on whether an address associated with a given one of the memory access requests corresponds to the first range of addresses or to the second range of addresses, wherein the memory access requests are to cause the flash memory controller integrated circuit to access a variable number of the planes in dependence on the address associated with the given one of the memory access requests, such that a first address corresponding to a first memory access request causes the flash memory controller integrated circuit to exchange respective subsets of data associated with the first memory access request with respective ones of the planes, and such that a second address corresponding to a second memory access request causes the flash memory controller integrated circuit to exchange all of the data associated with the second memory access request with a single one of the planes only. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification