Selectively scheduling memory accesses in parallel based on access speeds of memory
AssigneeMarvell International Ltd.
InventorsXueshi Yang, Chi Kong Lee
Life of this patent
Estimating the term…
Abstract
Devices, systems, methods, and other embodiments associated with selectively scheduling memory accesses in parallel are described. In one embodiment, a method determines an access speed for a page request. The access speed is a number of clock cycles used to access a memory device of a group of memory devices. The page request is a request to access a memory page mapped to the memory device. Different page requests are selectively scheduled to access different memory devices in parallel. The different page requests access the different memory devices in a same number of clock cycles.
Claims15
A method, comprising:
- determining an arithmetic modulo result associated with an address of a page request and at least one other page request on a per page request basis, wherein the arithmetic modulo result is based, at least in part, on a modulus;
- determining, by a hardware controller, an access speed for the page request to a memory device with memory cells that are multiple level cells that have a same bit density, wherein the access speed is a number of clock cycles used to access a memory page associated with the page request in the memory device, wherein the page request is a request to access the memory page mapped to the memory device, wherein the page request and the at least one other page request are requesting to access a sequential string of memory pages and are requesting to access single pages on a per page request basis, wherein the modulus is based, at least in part, on access speeds of the sequential string of memory pages, and wherein the multiple level cells include a first set of memory pages that are accessed according to a first access speed and a second set of memory pages that are accessed according to a second access speed that is different from the first access speed;
- and
- scheduling the page request based, at least in part, on the access speed, wherein scheduling the page request includes assigning the page request to be serviced in parallel with the at least one other page request that is to access a different memory page in the memory device in a same number of clock cycles, wherein scheduling the page request includes aligning the page request and the at least one other page request, and controlling the page request and the at least one other page request to be executed in parallel, and wherein scheduling the page request and the at least one other page request is based, at least in part, on the arithmetic modulo result.
An apparatus, comprising:
- determination logic implemented in hardware and configured to determine arithmetic modulo results associated with addresses of a plurality of page requests on a per page request basis, wherein each of the arithmetic modulo result is based, at least in part, on a modulus, wherein the determination logic is configured to use the arithmetic modulo results to determine corresponding access speeds of the plurality of page requests, wherein the access speeds are a number of clock cycles to access memory pages associated with the plurality of page requests,
- wherein the plurality of page requests are addressed to the memory pages in a memory device that is comprised of multiple level memory cells with a same bit density, and wherein the multiple level cells store two or more bits, wherein the plurality of page requests are requests to the memory pages of the memory device, wherein the modulus is based, at least in part, on access speeds of the memory pages, wherein at least two of the plurality of page requests are requesting access to a sequential string of memory pages on a per page request basis,
- wherein the memory pages include a first set of memory pages that are accessed according to a first access speed and a second set of memory pages that are accessed according to a second access speed that is different from the first access speed;
- and
- controller logic configured to schedule two or more page requests from the plurality of page requests to access the memory pages in parallel when memory pages associated with the two or more page requests have a same access speed, wherein the controller logic is configured to schedule the two or more page requests to be serviced in parallel in a same number of clock cycles by aligning the two or more page requests to be executed in parallel.
A method, comprising:
- receiving, in a hardware controller, a plurality of memory requests;
- determining an arithmetic modulo result for each of the plurality of memory requests, wherein the arithmetic modulo result is based, at least in part, on an address of each of the plurality of memory requests and a modulus;
- determining access speeds for the plurality of page requests, wherein an access speed for each of the plurality of page requests is a number of clock cycles to access a memory page associated with each of the plurality of page requests;
- selecting memory requests from the plurality of memory requests that are to be processed by a memory device comprised of multiple level memory cells with a same bit density, wherein the plurality of page requests are requests to access memory pages mapped to the memory device, wherein the multiple level cells include a first set of memory pages that are accessed according to a first access speed and a second set of memory pages that are accessed according to a second access speed that is different from the first access speed, wherein the selected memory requests are requesting to access a sequential string of memory pages on a per page request basis, wherein the modulus is based, at least in part, on access speeds of the sequential string of memory pages, and wherein selecting the memory requests is based, at least in part, on the access speeds;
- issuing the selected memory requests to be processed in parallel by the memory device, wherein the selected memory requests have a same access speed, wherein issuing the selected memory requests includes aligning the selected memory requests,
- wherein issuing the selected memory requests includes controlling the selected memory requests to be executed in parallel, and wherein selecting each of the memory requests is based, at least in part, on the arithmetic modulo result.
Dependencies are inferred from the claim text.