IP Library Granted Patent US 12,118,240
Granted Patent B2
US 12,118,240 · App. 16/987,748 · Granted Oct 15, 2024

Controller and persistent memory shared between multiple storage devices

Inventors: Benjamin Walker (Chandler, AZ); Sanjeev Trika (Portland, OR); Kapil Karkra (Chandler, AZ); James R. Harris (Chandler, AZ); Steven C. Miller (Livermore, CA); Bishwajit Dutta (Hillsboro, OR)
Assignee: Intel Corporation
G06F3/0659G06F3/0619G06F3/0656G06F3/0658G06F3/067G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,118,240
App. No.
16/987,748
Granted
Oct 15, 2024
Kind
B2
Abstract

An embodiment of an electronic apparatus may include one or more substrates, and logic coupled to the one or more substrates, the logic to maintain a respective lookup table for each of two or more persistent storage devices in a persistent memory outside of the two or more persistent storage devices with a first indirection granularity that is smaller than a second indirection granularity of each of the two or more persistent storage devices, buffer write requests to the two or more persistent storage devices in the persistent memory in accordance with the respective lookup tables, and perform a sequential write from the persistent memory to a particular device of the two or more persistent storage devices when a portion of the buffer that corresponds to the particular device has an amount of data to write that corresponds to the second indirection granularity. Other embodiments are disclosed and claimed.

Claims (46)

1. An electronic apparatus, comprising:

one or more substrates; and

integrated circuitry coupled to the one or more substrates, the integrated circuitry to:

maintain first translation tables each for a respective one of two or more persistent storage devices, wherein the first translation tables are to be maintained in a persistent memory which is outside of the two or more persistent storage devices, wherein the two or more persistent storage devices are each to comprise a different respective one of second translation tables, wherein the two or more persistent storage devices are each to comprise respective indirection circuitry to translate a respective logical block address (LBA) to a respective physical address, and wherein a first indirection granularity of each of the first translation tables is to be smaller than a second indirection granularity of each of the second translation tables,

buffer write requests in the persistent memory in accordance with the first translation tables, wherein the write requests are each to target a respective one of the two or more persistent storage devices, and

perform a sequential write from the persistent memory to a particular device of the two or more persistent storage devices when a portion of a buffer that corresponds to the particular device has an amount of data to write that corresponds to the second indirection granularity.

2. The electronic apparatus of claim 1 , wherein the integrated circuitry is further to:

configure the two or more persistent storage devices as a data protection volume with a stripe size that is the same as the second indirection granularity; and

buffer the write requests into full stripe writes in accordance with the first translation tables.

3. The electronic apparatus of claim 2 , wherein the integrated circuitry is further to:

sequentially write full stripes from the persistent memory to the data protection volume.

4. The electronic apparatus of claim 2 , wherein the integrated circuitry is further to:

log the write requests in the persistent memory to close a write hole for the data protection volume.

5. The electronic apparatus of claim 2 , wherein the second indirection granularity is an integer multiple of the first indirection granularity.

6. The electronic apparatus of claim 2 , wherein the data protection volume comprises one of an erasure coding volume and a redundant array of independent disks volume.

7. The electronic apparatus of claim 1 , wherein the persistent memory comprises three dimensional crosspoint memory and wherein one or more of the two or more persistent storage devices comprises a NAND-based solid state drive.

8. An electronic system, comprising:

two or more persistent storage devices;

persistent memory outside of the two or more persistent storage devices; and

a controller communicatively coupled to the persistent memory and the two or more persistent storage devices, the controller including integrated circuitry to:

maintain first translation tables each for a respective one of the two or more persistent storage devices, wherein the first translation tables are to be maintained in the persistent memory, wherein the two or more persistent storage devices are each to comprise a different respective one of second translation tables, wherein the two or more persistent storage devices are each to comprise respective indirection circuitry to translate a respective logical block address (LBA) to a respective physical address, and wherein a first indirection granularity of each of the first translation tables is to be smaller than a second indirection granularity of each of the second translation tables,

buffer write requests in the persistent memory in accordance with the first translation tables, wherein the write requests are each to target a respective one of the two or more persistent storage devices, and

perform a sequential write from the persistent memory to a particular device of the two or more persistent storage devices when a portion of a buffer that corresponds to the particular device has an amount of data to write that corresponds to the second indirection granularity.

9. The electronic system of claim 8 , wherein the integrated circuitry is further to:

configure the two or more persistent storage devices as a data protection volume with a stripe size that is the same as the second indirection granularity; and

buffer the write requests into full stripe writes in accordance with the first translation tables.

10. The electronic system of claim 9 , wherein the integrated circuitry is further to:

sequentially write full stripes from the persistent memory to the data protection volume.

11. The electronic system of claim 9 , wherein the integrated circuitry is further to:

log the write requests in the persistent memory to close a write hole for the data protection volume.

12. The electronic system of claim 9 , wherein the second indirection granularity is an integer multiple of the first indirection granularity.

13. The electronic system of claim 9 , wherein the data protection volume comprises one of an erasure coding volume and a redundant array of independent disks volume.

14. The electronic system of claim 8 , wherein the persistent memory comprises three dimensional crosspoint memory and wherein one or more of the two or more persistent storage devices comprises a NAND-based solid state drive.

15. A method of controlling storage, comprising:

maintaining first translation tables each for a respective one of two or more persistent storage devices, wherein the first translation tables are maintained in a persistent memory which is outside of the two or more persistent storage devices, wherein the two or more persistent storage devices each comprise a different respective one of second translation tables, wherein the two or more persistent storage devices each comprise respective indirection circuitry to translate a respective logical block address (LBA) to a respective physical address, and wherein a first indirection granularity of each of the first translation tables is smaller than a second indirection granularity of each of the second translation tables;

buffering write requests in the persistent memory in accordance with the first translation tables, wherein the write requests are each to target a respective one of the two or more persistent storage devices; and

performing a sequential write from the persistent memory to a particular device of the two or more persistent storage devices when a portion of a buffer that corresponds to the particular device has an amount of data to write that corresponds to the second indirection granularity.

16. The method of claim 15 , further comprising:

configuring the two or more persistent storage devices as a data protection volume with a stripe size that is the same as the second indirection granularity; and

buffering the write requests in the persistent memory into full stripe writes in accordance with the first translation tables.

17. The method of claim 16 , further comprising:

sequentially writing full stripes from the persistent memory to the data protection volume.

18. The method of claim 16 , further comprising:

logging the write requests in the persistent memory to close a write hole for the data protection volume.

19. The method of claim 16 , wherein the second indirection granularity is an integer multiple of the first indirection granularity.

20. The method of claim 16 , wherein the data protection volume comprises one of an erasure coding volume and a redundant array of independent disks volume.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072851/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2020
From: WALKER, BENJAMIN; TRIKA, SANJEEV; KARKRA, KAPIL; HARRIS, JAMES R.; MILLER, STEVEN C.; DUTTA, BISHWAJIT
To: INTEL CORPORATION
Reel/Frame 053436/0283 →
Continuity (1)
Related Publication 20200363998A1 · Nov 19, 2020