7613876

Hybrid Multi-Tiered Caching Storage System

PublishedNovember 3, 2009
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
25 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A data storage system for storing and retrieving computer data using one or more logical address without intervention from the external host or client system, the data storage system comprising: an IO processor for controlling data input or output of a data storage system; disk drive for storing one or more blocks of data, including data transferred from the host and control data for the IO processor; a non-volatile memory means for storing a plurality of data blocks, the data blocks including data transferred from the host, a cached portion of data stored in the disk drive and control data for use by the IO processor; a LBA Flash HDD first table for storing at least one logical address mapped to at least one physical address of said non-volatile memory means and at least one physical address of said disk drive; wherein the LBA Flash HDD table enables memory access to said non-volatile memory means without intervention from the host; a FAST memory means for storing one or more blocks of data, the data including data transferred from the host, a cached portion of data stored in the non-volatile memory means and control data for the IO processor means; and a LBA_FAST table wherein at least one of the one or more logical addresses is searched in the LBA_FAST table and if found, the logical address is mapped to at least one FAST memory address, providing an association between the logical address and a physical location of data and enabling access to the data without intervention from the host.

2

2. The data storage system of claim 1 wherein the LBA_Flash_HDD table is updated from time to time according to a data access behavior pattern of the host computer without the host system intervention.

3

3. The data storage system of claim 1 , wherein the LBA_FAST table and the LBA_Flash_HDD table are updated from time to time according to a data access behavior pattern of the host without intervention from the host.

4

4. The data storage system of claim 3 , wherein the FAST memory means includes: a SDRAM memory for storing one or more blocks of data, including data transferred from the host, a cached portion of data stored in the non-volatile memory means, control data for the IO processor, and the LBA_FAST table; SRAM memory for storing one or more blocks of data, including control data for the IO processor, and for caching the LBA_FAST table; and wherein, during operation, the LBA_Flash_HDD table is stored in the non-volatile-memory means and cached in the FAST memory means, a first cached portion is stored in the SRAM memory and a second cached portion containing the remainder of the LBA_Flash_HDD table is stored in the SDRAM memory and copy of the LBA_Flash_HDD table is stored in the disk drive.

5

5. The data storage system of claim 4 further, comprising: a SDRAM DMA controller for transferring data to or from the SDRAM memory, the SDRAM DMA controller responsive to at least one DMA instruction; a non-volatile DMA controller for transferring data to and from the non-volatile memory means, the non-volatile DMA controller responsive to at least one DMA instruction; the IO processor for preparing at least one DMA instruction, the IO processor using the LBA_FAST table and the LBA_Flash_HDD table for mapping the one or more logical addresses; and wherein the control data stored in the FAST memory means further includes at least one DMA instruction.

6

6. The data storage system of claim 4 , further comprising: a host DMA controller for transferring data to or from the host, the host DMA controller responsive to at least one DMA instruction and for interfacing the host with the data storage system; CAM memory means for storing a byte address look up table wherein the host DMA controller transfers data to and from the host without the IO processor preparing the DMA instruction if the byte address look-up table contains a valid entry for the data requested by the host; and an IO DMA controller for transferring data to and from the disk drive in response to at least one DMA instruction; wherein the disk drives is coupled to the IO DMA controller via an IO interface.

7

7. The data storage system of claim 4 , further comprising: a first IO DMA controller for transferring data to and from the host computer in response to at least one DMA instruction; a second IO DMA controller for transferring data to and from the disk drive in response to at least one DMA instruction; wherein the host is coupled to the first IO DMA controller; and wherein the disk drives is coupled to the second IO DMA controller.

8

8. The data storage system of claim 4 further comprising: an IO DMA controller means for transferring data to and from the host in response to at least one DMA instruction; and an external bus interface DMA controller means for transferring data to and from the disk drive in response to at least one DMA instruction; wherein the host is coupled to the IO DMA controller means; and wherein the disk drives is coupled to the external bus interface DMA controller means.

9

9. A data structure for storing mapping information of a data storage system, the data storage system comprising flash memory, SDRAM memory, and SRAM memory, the data structure comprising: a LBA_Flash_HDD table comprising one or more logical address, one or more corresponding flash address, and one or more corresponding disk drive address; and a LBA_SDRAM table comprising one or more logical address, one or more corresponding SRAM address, and one or more corresponding SDRAM address; wherein a first portion of a working copy of the LBA_Flash_HDD table is stored in the SRAM memory, a second portion of the working copy is stored in the SDRAM memory; and wherein the LBA_SDRAM table is stored in the SDRAM memory, and a cached portion of the LBA_SDRAM table is stored in the SRAM memory means.

10

10. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; a mass storage DMA controller electrically coupled to said IO processor and for electrically coupling to the mass storage unit; wherein said program code for further mapping said first logical address to a physical address of a second data location in the mass storage unit; a first volatile memory and a first volatile memory DMA controller electrically coupled to said first volatile memory and to said IO processor; wherein the mass storage unit includes at least one hard disk drive; wherein said first volatile memory for caching a portion of said selected data stored in said first non-volatile memory; a second table for storing a plurality of logical addresses that are each respectively mapped to at least one physical address, said plurality of logical addresses including a second logical address mapped to a physical address of a third data location in said first volatile memory; and wherein said means for processing uses selected contents of said second table when performing a memory operation on said first volatile memory.

11

11. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; a mass storage DMA controller electrically coupled to said IO processor and for electrically coupling to the mass storage unit; wherein said program code for further mapping said first logical address to a physical address of a second data location in the mass storage unit; a second volatile memory; and wherein said first volatile memory for storing said second table, said second volatile memory for caching at least a portion of said second table; and said second volatile memory includes SRAM.

12

12. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; a mass storage DMA controller electrically coupled to said IO processor and for electrically coupling to the mass storage unit; wherein said program code for further mapping said first logical address to a physical address of a second data location in the mass storage unit; and a program code for storing a copy of said first table in said mass storage unit in response to a selected event and said means for processing further includes a scratch pad buffer.

13

13. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; a mass storage DMA controller electrically coupled to said IO processor and for electrically coupling to the mass storage unit; wherein said program code for further mapping said first logical address to a physical address of a second data location in the mass storage unit; a host DMA controller for transferring data to or from the host in response to one or more DMA instructions; a CAM for storing a byte address look up table, and in response to the byte address look-up table containing a valid entry for data requested by the host, said host DMA controller transfers data to and from the host without the IO processor preparing the DMA instruction; and an IO storage DMA controller for transferring data to and from the mass storage unit in response to one or more DMA instructions and through an I/O interface.

14

14. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; wherein said IO processor creates a link of DMA instructions in response to said host request; and wherein said first non-volatile memory DMA controller uses said link of DMA instructions to transfer information to or from said first non-volatile memory.

15

15. A data storage system for performing memory operations on a mass storage unit in response to a host request received from a host, the data storage system comprising: a means for processing program code in response to the host request, said means including an IO processor; a first non-volatile memory DMA controller electrically coupled to said IO processor; a first non-volatile memory electrically coupled to said first non-volatile DMA controller and for storing a first table and selected data transferred from the host, said first table for storing a plurality of logical addresses respectively mapped to at least one physical memory address; program code for mapping a first logical address to a physical address of a first data location in said first non-volatile memory; wherein, without requiring host intervention, said means for processing uses said first table when performing a memory operation on said first non-volatile memory; a mass storage DMA controller electrically coupled to said IO processor and for electrically coupling to the mass storage unit; wherein said program code for further mapping said first logical address to a physical address of a second data location in the mass storage unit; a second non-volatile DMA controller electrically coupled to said IO processor and for coupling to a second non-volatile memory; and wherein said program code for further mapping said first logical address to a physical address of a second data location defined in said second non-volatile memory.

16

16. The data storage system of claim 15 , further including: a first volatile memory and a first volatile memory DMA controller electrically coupled to said first volatile memory and to said IO processor; and wherein the mass storage unit includes at least one hard disk drive.

17

17. The data storage system of claim 15 , wherein said means for processing uses selected contents of said first table when performing a memory operation on said mass storage unit.

18

18. The data storage system of claim 17 , wherein said selected contents of said first table include said plurality of logical addresses respectively mapped to at least one physical address.

19

19. The data storage system of claim 15 further comprising: a first IO means for transferring data to and from the host in response to at least one DMA instruction, said first IO means for interfacing with the host; and a second IO means for transferring data to and from the mass storage unit in response to at least one DMA instruction, said second IO means for interfacing with the mass storage unit.

20

20. The data storage system of claim 19 , wherein said first and second IO means respectively include a DMA controller.

21

21. The data storage system of claim 15 , wherein said first non-volatile memory includes a flash memory, and said second non-volatile memory includes a hard disk drive; and wherein said program code for further mapping said first logical address to a physical address of a second data location defined in said second non-volatile memory.

22

22. The data storage system of claim 15 , further including a first volatile memory.

23

23. The data storage system of claim 22 , further including a first volatile memory controller and wherein said first volatile memory includes at least one SRAM.

24

24. The data storage system of claim 23 , further including: a bus; said first volatile memory controller electrically coupled to said IO processor through said bus; and wherein said first volatile memory includes at least one DRAM and is coupled to said bus.

25

25. The data storage system of claim 23 , further including a read only memory.

Patent Metadata

Filing Date

Unknown

Publication Date

November 3, 2009

Inventors

Rey Bruce
Noeme Paz Mateo
Ricky Sevilla Nite

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “HYBRID MULTI-TIERED CACHING STORAGE SYSTEM” (7613876). https://patentable.app/patents/7613876

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.