Method and system for reducing memory access latency by providing fine grain direct access to flash memory concurrent with a block transfer therefrom
First Claim
1. A data processing system including:
- a flash memory device for storing data;
a main memory device, separate from the flash memory device, and having a relatively faster access time than the flash memory device, for storing data;
processor means for generating requests for data;
a memory management unit which, responsive to the requests received from the processor means, provides direct single word access by the processor means to data stored in the flash memory device when a data request by the processor means is for data not presently stored in the main memory device, said memory management unit including;
means for concurrently transferring blocks of data, including the data requested by the processor, from the flash memory device to the main memory device when a data request by the processor means is for data not presently stored in the main memory device, andmeans for comparing each request for data received from the processor to the data that has been transferred to the main memory device to preferentially provide the requested data from the main memory device.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for reducing access latency to stable storage are described. A technique referred to as fault trickling is used to improve access latency to stable storage such as flash memory. In particular, data requests from a central processing unit are preferentially satisfied by a memory management unit providing access to a main memory. When the requested data does not reside in the main memory, however, the memory management unit satisfies the request by providing direct fine-grain access to the flash memory. In addition, concurrently with satisfying the data request directly from the flash memory, a block transfer is initiated from the flash memory to the main memory. Once the block transfer is completed, a memory map, such as an address translation table, is updated to indicate that the data now resides in the more convenient source of data--the main memory. Accordingly, subsequent data requests, for that or proximately located data, can be satisfied by accessing the main memory.
-
Citations
10 Claims
-
1. A data processing system including:
-
a flash memory device for storing data; a main memory device, separate from the flash memory device, and having a relatively faster access time than the flash memory device, for storing data; processor means for generating requests for data; a memory management unit which, responsive to the requests received from the processor means, provides direct single word access by the processor means to data stored in the flash memory device when a data request by the processor means is for data not presently stored in the main memory device, said memory management unit including; means for concurrently transferring blocks of data, including the data requested by the processor, from the flash memory device to the main memory device when a data request by the processor means is for data not presently stored in the main memory device, and means for comparing each request for data received from the processor to the data that has been transferred to the main memory device to preferentially provide the requested data from the main memory device. - View Dependent Claims (2, 3, 4)
-
-
5. A method for accessing data in data processing system including a central processing unit (CPU), a flash memory device and a main memory device comprising the steps of:
-
requesting data by the CPU; determining that the requested data is not stored in the main memory; providing the CPU with direct single word access to the data from the flash memory device; providing the accessed data to the CPU; memory mapping virtual addresses of data not stored in the main memory device to physical address of the flash memory device; concurrently with the direct single word access, commencing a block transfer of data, including the requested data, from the flash memory device to the main memory device; and modifying, upon completion of the block transfer, the memory map such that the virtual addresses of data transferred to the main memory now correspond to physical addresses in the main memory rather than physical addresses in the flash memory. - View Dependent Claims (6, 7, 8)
-
-
9. A data processing system including:
-
processor means for generating requests for data; a flash memory device for storing data; a main memory device, separate from the flash memory device, and having a relatively faster access time than the flash memory device, for storing data; a cache memory device, separate from the flash memory device and the main memory device, and having a relatively faster access time than either the main memory device or the flash memory device, for storing data; a memory management unit which, responsive to the requests received from the processor means, provides direct single word access by the processor means to data stored in the flash memory device when a data request by the processor means is for data not presently stored in the main memory device, said memory management unit including an address translation means which, for at least first accesses of stored data, maps a virtual address used by the processor to request data directly to a physical address of the flash memory device, said memory management unit including; means for concurrently transferring blocks of data, including the data requested by the processor, from the flash memory device to the main memory device when a data request by the processor means is for data not presently stored in the main memory device, and means for comparing each request for data received from the processor to the data that has been transferred to the main memory device to preferentially provide the requested data from the main memory device.
-
-
10. A method for accessing data in data processing system including a central processing unit (CPU), a cache memory device, a main memory device separate from the cache memory device and a flash memory device separate from both the cache and main memory devices, the method comprising the steps of:
-
requesting data by the CPU; providing the CPU with direct single word access to the data in the flash memory device by mapping virtual addresses of data not stored in the main memory device to physical addresses of the flash memory device by way of a memory management unit; concurrently with the direct single word access, commencing a block transfer of data, including the requested data, from the flash memory device to the main memory device; and modifying, upon completion of the block transfer, the memory map such that the virtual addresses of data transferred to the main memory now correspond to physical addresses in the main memory rather than physical addresses in the flash memory.
-
Specification