Method for sharing a storage device among multiple processors and associated electronic device
US-2024211415-A1 · Jun 27, 2024 · US
US10209904B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10209904-B2 |
| Application number | US-201514641201-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 6, 2015 |
| Priority date | Apr 9, 2013 |
| Publication date | Feb 19, 2019 |
| Grant date | Feb 19, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system has a collection of central processing units. Each central processing unit is connected to at least one other central processing unit and has a path into flash memory resources. A central processing unit supports a mapping from a data address space, to a flash memory virtual address space, to a flash memory virtual page number to a flash memory physical address space.
Opening claim text (preview).
What is claimed is: 1. A multiprocessor computing system, comprising: a collection of central processing units (CPUs), wherein a first central processing unit of the collection of central processing units is connected to at least a second central processing unit of the collection of central processing units and a first path into flash memory resources, wherein the second central processing unit of the collection of central processing units is connected to at least the first central processing unit of the collection of central processing units and a second path into flash memory resources independent of the first path into flash memory resources, wherein the first and the second central processing units each supports a mapping from a data address space, to a flash memory virtual address space, to a flash memory virtual page number to a flash memory physical address space, wherein a core of the first or the second central processing unit has access to a set of shared page virtualization table (PVT) entries associated with a plurality of pages, wherein the set of shared PVT entries include a base quantity operative as an index to a flash memory location indicative of a position of a foremost page in the plurality of pages, and further include offset quantities specifying stride values from the flash memory location indicative of positions of other pages in the plurality of pages. 2. The system of claim 1 configured to support lockless queues for transmitting commands and command completion acknowledgements between the first and second central processing units. 3. The system of claim 2 comprising: an execution queue; a completion queue; wherein the first central processing unit is configured to write tail values to the execution queue and consume head values from the completion queue,and wherein the second central processing unit is configured to write tail values to the completion queue and consume head values from the execution queue. 4. The system of claim 3 further comprising a bit table accessible to the first central processing unit and the second central processing unit, the bit table including entries specifying completed tasks. 5. A system of claim I wherein a core of each of the first and second central processing units has an individual input/output data structure supported by an operating system, individual interrupt path within the operating system and dedicated hardware resource to facilitate parallel processing. 6. The system of claim 1 further comprising a flash memory controller to coordinate data transfers between flash memory resources without utilization of the collection of central processing units. 7. The system of claim 1 wherein the flash memory resources are configured to periodically defer reads during garbage collection. 8. The system of claim 1 wherein the flash memory resources are configured to store ranges of trim information to reduce logging requirements, wherein the trim information characterizes expired pages of data. 9. The system of claim 1 wherein the flash memory resources are configured to store data blocks and associated virtualization tables together to facilitate data recovery operations from a single location. 10. The system of claim 9 wherein the associated virtualization tables are stored in a stripe across a set of pages. 11. The system of claim 1 wherein the flash memory resources are configured to reconstruct data in response to the identification of a busy memory resource. 12. The system of claim 1 wherein the flash memory resources are configured to adaptively implement a more conservative data protection protocol as a function of operational time of the system. 13. The system of claim 1 wherein the flash memory resources are configured to randomize flash page contents to minimize read and write disturbances. 14. The system of claim 1 wherein at least one of the first and second central processing units is configured to store write data in Dynamic Random-Access Memory (DRAM) until the write data is committed to flash memory. 15. The system of claim 1 wherein the flash memory resources are configured to utilize a single sequence number for each data protection stripe. 16. The system of claim 1 wherein the flash memory resources are configured for adaptive garbage collection utilizing a read queue, a write queue and a garbage collection queue to selectively load jobs from the read queue and the write queue. 17. The system of claim 1 , wherein the offset quantities are fixed quantities such that a mapping from a data address space, to a flash memory virtual address space, to a flash memory virtual page number to a flash memory physical address space can be computed by a fixed indexing scheme.
Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units (interface circuits for specific input/output devices G06F3/00 {; multiprogram control therefor G06F9/46}; multiprocessor systems G06F15/16 ) · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097) · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.