Systems and methods for read caching in flash storage
First Claim
1. A method of managing a flash storage device, the method comprising:
- receiving a read request for reading a page of data from a non-volatile memory;
identifying, in a cache tag table stored in a cache memory different from the non-volatile memory, a virtual unit address associated with the page of data;
in response to identifying the virtual unit address in the cache tag table, determining whether, in a sub-table of the cache tag table, a valid tag line for the page of data is associated with the virtual unit address, the valid tag line indicating that the page of data includes valid data; and
in response to determining that the valid tag line is associated with the virtual unit address in the cache tag table, reading the page of data from the cache memory in accordance with the read request.
10 Assignments
0 Petitions
Accused Products
Abstract
A flash controller receives a read request for reading a page of data from the flash memory from a host system, and identifies, in a cache tag table stored in the random access memory, a virtual unit address associated with the page of data. In response to identifying the virtual unit address in the cache tag table, controller determines whether a valid tag line for the page of data is associated with the virtual unit address in the cache tag table. In response to determining that the valid tag line is associated with the virtual unit address in the cache tag table, the controller reads the page of data from the random access memory in accordance with the read request and returns the read data to the host system.
-
Citations
20 Claims
-
1. A method of managing a flash storage device, the method comprising:
-
receiving a read request for reading a page of data from a non-volatile memory; identifying, in a cache tag table stored in a cache memory different from the non-volatile memory, a virtual unit address associated with the page of data; in response to identifying the virtual unit address in the cache tag table, determining whether, in a sub-table of the cache tag table, a valid tag line for the page of data is associated with the virtual unit address, the valid tag line indicating that the page of data includes valid data; and in response to determining that the valid tag line is associated with the virtual unit address in the cache tag table, reading the page of data from the cache memory in accordance with the read request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16)
-
-
11. A system, comprising:
-
a random access memory; a flash memory comprising a plurality of physical blocks, each of the plurality of physical blocks comprising a plurality of physical pages; a controller, wherein the controller is configured to; receive a read request for reading a page of data from the flash memory; identify, in a cache tag table stored in the random access memory, a virtual unit address associated with the page of data; in response to identifying the virtual unit address in the cache tag table, determine whether, in a sub-table of the cache tag table, a valid tag line for the page of data is associated with the virtual unit address, the valid tag line being indexed by a virtual page address for the page of data and indicating that the page of data includes valid data; and in response to determining that the valid tag line is associated with the virtual unit address in the cache tag table, read the page of data from the random access memory in accordance with the read request. - View Dependent Claims (13, 17, 18)
-
-
12. The system of claim lit wherein the cache tag table comprises a plurality of sub-tables for locating virtual pages stored in the random access memory based on respective virtual page addresses, each sub-table being associated with a respective virtual unit address.
-
19. A flash controller, comprising non-transitory instructions stored therein that, when executed by the controller, perform the operations of:
-
receiving a read request for reading a page of data from a one or more flash memory devices; identifying, in a cache tag table stored in a cache memory different from the flash memory, a virtual unit address associated with the page of data; in response to identifying the virtual unit address in the cache tag table, determining whether, in a sub-table of the cache tag table, a valid tag line for the page of data is associated with the virtual unit address, the valid tag line being indexed by a virtual page address for the page of data and indicating that the page of data includes valid data; and in response to determining that the valid tag line is associated with the virtual unit address in the cache tag table, reading the page of data from the cache memory in accordance with the read request. - View Dependent Claims (20)
-
Specification