1. A method of managing a flash storage device, the method comprising: storing, in a first memory, copies of data read from a flash memory in the flash storage device; mapping a logical address in a read request received from a host system to a virtual unit address for a virtual unit of data and a virtual page address for a virtual page within the virtual unit of data; checking a virtual unit cache tag table in the first memory for the virtual unit address for the virtual unit data; identifying, in response to the checking, the virtual unit address within the virtual unit cache to table; on identifying the virtual unit address in the virtual unit cache tag table, checking for a valid tag line for the virtual page in a virtual page cache tag sub-table in the first memory indexed using the virtual page address, wherein the virtual page cache tag sub-table is associated with the virtual unit address; and if a valid tag line is found in the virtual page cache tag sub-table, reading data stored in the first memory mapped to an address in the valid tag line in the virtual page cache tag sub-table in response to the read request received from the host system.