IP Library Granted Patent US 10,754,587
Granted Patent B2
US 10,754,587 · App. 15/075,184 · Granted Aug 25, 2020

Memory partitioning storage controller

Inventor: Tod R. Earhart (Longmont, CO)
Assignee: Burlywood, Inc.
G06F3/0661G06F3/064G06F3/068G06F3/0608G06F3/0613G06F3/0626G06F3/0644G06F3/0658G06F3/0659G06F3/0664G06F3/0679G06F11/1048G06F11/1068G06F12/08G06F2212/1044G06F2212/151G06F2212/214G06F2212/261G06F2212/7208G11C29/52
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 10,754,587
App. No.
15/075,184
Granted
Aug 25, 2020
Kind
B2
Abstract

A method of operating a storage controller is provided. The method includes receiving a request from a partition creator, for a first partition within a storage system, the first partition comprising one or more sequentially numbered data blocks, and receiving first partition parameters from the partition creator, the first partition parameters comprising a size of the one or more sequentially numbered data blocks. The method also includes creating the first partition within the storage system, through a storage interface, based on the first partition parameters, receiving first host data from a host, configuring the first host data as first storage data for storage within the first partition within the storage system, and sequentially storing the first storage data in the one or more sequentially numbered data blocks in the first partition, through the storage interface.

Claims (91)

1. A storage controller for a storage system, comprising:

a host interface circuit, configured to receive host data for storage within the storage system;

a storage interface circuit, configured to transmit storage data to the storage system using a sequential write/random read traffic model;

wherein the storage controller has an emulation mode for processing data streams having host data characteristics and using a host command protocol, wherein the emulation mode enables the storage controller to emulate different media types for different partitions within the storage system; and

processing circuitry coupled with the host interface circuit and the storage interface circuit, configured to:

receive a request from a host, through the host interface circuit, for a partition within the storage system, the partition comprising one or more sequentially numbered data blocks;

receive partition parameters from the host, through the host interface circuit, the partition parameters corresponding to the host data characteristics, and comprising a size of the one or more sequentially numbered data blocks and an indication whether the partition is to be static, extendable, or linked;

configure, based at least in part on the partition parameters, the emulation mode to process the host data having host data characteristics and using the host command protocol into storage data having storage data characteristics different from the host data characteristics;

create the partition within the storage system, through the storage interface circuit, based on the partition parameters;

receive the host data having the host data characteristics and using the host command protocol from the host;

select the partition for storage of the host data based at least in part on the host data characteristics of the host data;

process, in the emulation mode, the host data into the storage data for storage within the partition, wherein the storage data has the storage data characteristics different from the host data characteristics and uses a storage command protocol different from the host command protocol; and

sequentially store the storage data in the one or more sequentially numbered data blocks in the partition, through the storage interface circuit.

2. The storage controller of claim 1 , wherein the partition is extendable, and the processing circuitry is further configured to add storage to the partition from the storage system without erasing the storage data stored in the partition.

3. The storage controller of claim 1 , wherein the processing circuitry is further configured to remove storage from the partition without erasing the storage data stored in the partition.

4. The storage controller of claim 1 ,

wherein the storage controller has an additional emulation mode for processing data streams having different host data characteristics and using a different host command protocol; and

wherein the processing circuitry is further configured to:

receive a request from the host, through the host interface circuit, for an additional partition within the storage system, the additional partition comprising one or more sequentially numbered data blocks, wherein the additional partition is a different size from the partition;

receive additional partition parameters from the host, through the host interface circuit, wherein the additional partition parameters correspond to the different host data characteristics, are different from the host partition parameters, and comprise a size of the one or more sequentially numbered data blocks and an indication whether the additional partition is to be static, extendable, or linked;

configure, based at least in part on the additional partition parameters, the additional emulation mode to process additional host data having different host data characteristics and using the different host command protocol into additional storage data having storage data characteristics different from the different host data characteristics;

create the additional partition within the storage system, through the storage interface circuit, based on the additional partition parameters;

receive additional host data having the different host data characteristics and using the different host command protocol from the host;

select the additional partition for storage of the additional host data based at least in part on the different host data characteristics of the additional host data;

process, in the additional emulation mode, the additional host data into the additional storage data for storage within the additional partition, wherein the additional storage data has the storage data characteristics different from the different host data characteristics and uses a storage command protocol different from the different host command protocol; and

sequentially store the additional storage data in the one or more sequentially numbered data blocks in the additional partition, through the storage interface circuit.

5. The storage controller of claim 4 , wherein the partition comprises memory within the storage system having a first storage density, and the additional partition comprises memory within the storage system having a second storage density different from the first storage density.

6. The storage controller of claim 4 , wherein the partition parameters and the additional partition parameters further comprise at least one parameter from the group of: storage density, physical memory attributes, protection attributes, security level, quality of service requirements, data type, data source, and data stream attributes.

7. The storage controller of claim 6 , wherein the partition and the additional partition have the same data type, security level, and quality of service requirements, and the processing circuitry is further configured to link the additional partition to the partition.

8. A method of operating a storage controller, comprising:

receiving a request from a host, through a host interface circuit, for a first partition within a storage system, the first partition comprising one or more sequentially numbered data blocks, wherein the storage controller has an emulation mode for processing data streams having host data characteristics and using a host command protocol, wherein the emulation mode enables the storage controller to emulate different media types for different partitions within the storage system;

receiving partition parameters from the host, through the host interface circuit, the partition parameters corresponding to the host data characteristics, and comprising a size of the one or more sequentially numbered data blocks and an indication whether the partition is to be static, extendable, or linked;

configuring, based at least in part on the partition parameters, the emulation mode to process the host data having host data characteristics and using the host command protocol into storage data having storage data characteristics different from the host data characteristics;

creating the partition within the storage system, through a storage interface circuit, based on the partition parameters;

receiving host data having the host data characteristics and using the host command protocol from the host;

selecting the partition for storage of the host data based at least in part on the host data characteristics of the host data;

processing, in the emulation mode, the host data into the storage data for storage within the partition within the storage system using a sequential write/random read traffic model, wherein the storage data has the storage data characteristics different from the host data characteristics and uses a storage command protocol different from the host command protocol; and

sequentially storing the storage data in the one or more sequentially numbered data blocks in the partition, through the storage interface circuit.

9. The method of claim 8 , wherein the partition is extendable, the method further comprising:

adding storage to the partition from the storage system without erasing the storage data stored in the partition.

10. The method of claim 8 , further comprising:

removing storage from the partition without erasing the storage data stored in the partition.

11. The method of claim 8 , wherein the storage controller has an additional emulation mode for processing data streams having different host data characteristics and using a different command protocol, and the method further comprising:

receiving a request from the host, through the host interface circuit, for an additional partition within the storage system, the additional partition comprising one or more sequentially numbered data blocks, wherein the additional partition is a different size from the partition;

receiving additional partition parameters from the host, through the host interface circuit, wherein the additional partition parameters correspond to the different host data characteristics, are different from the host partition parameters, and comprise a size of the one or more sequentially numbered data blocks and an indication whether the additional partition is to be static, extendable, or linked;

configuring, based at least in part on the additional partition parameters, the additional emulation mode to process additional host data having different host data characteristics and using the different host command protocol into additional storage data having storage data characteristics different from the different host data characteristics;

creating the additional partition within the storage system, through the storage interface circuit, based on the additional partition parameters;

receiving additional host data having the different host data characteristics and using the different host command protocol from the host;

selecting the additional partition for storage of the additional host data based at least in part on the different host data characteristics of the additional host data;

processing, in the additional emulation mode, the additional host data into the additional storage data for storage within the additional partition using a sequential write/random read traffic model, wherein the additional storage data has the storage data characteristics different from the different host data characteristics and uses a storage command protocol different from the different host command protocol; and

sequentially storing the additional storage data in the one or more sequentially numbered data blocks in the additional partition, through the storage interface circuit.

12. The method of claim 11 , wherein the partition comprises memory within the storage system having a first storage density, and the additional partition comprises memory within the storage system having a second storage density different from the first storage density.

13. The method of claim 11 , wherein the partition parameters and the additional partition parameters further comprise at least one parameter from the group of: storage density, physical memory attributes, protection attributes, security level, quality of service requirements, data type, data source, and data stream attributes.

14. The method of claim 13 , wherein the partition and the additional partition have the same data type, security level, and quality of service requirements, the method further comprising:

linking the additional partition to the partition.

15. One or more non-transitory computer-readable media having stored thereon program instructions to operate a storage controller for a storage system, wherein the program instructions, when executed by processing circuitry, direct the processing circuitry to at least:

receive a request from a host, through a host interface circuit, for a partition within the storage system, the partition comprising one or more sequentially numbered data blocks, wherein the storage controller has an emulation mode for processing data streams having host data characteristics and using a host command protocol, wherein the emulation mode enables the storage controller to emulate different media types for different partitions within the storage system;

receive partition parameters from the host, through the host interface circuit, the partition parameters corresponding to the host data characteristics, and comprising a size of the one or more sequentially numbered data blocks and an indication whether the partition is to be static, extendable, or linked;

configure, based at least in part on the partition parameters, the emulation mode to process the host data having host data characteristics and using the host command protocol into storage data having storage data characteristics different from the host data characteristics;

create the partition within the storage system, through a storage interface circuit, based on the partition parameters;

receive host data having the host data characteristics and using the host command protocol from the host;

select the partition for storage of the host data based at least in part on the host data characteristics of the host data;

process, in the emulation mode, the host data into the storage data for storage within the partition using a sequential write/random read traffic model, wherein the storage data has the storage data characteristics different from the host data characteristics and uses a storage command protocol different from the host command protocol; and

sequentially store the storage data in the one or more sequentially numbered data blocks in the partition, through the storage interface circuit.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the partition is extendable, and the program instructions further direct the processing circuitry to at least:

add storage to the partition from the storage system without erasing the storage data stored in the partition.

17. The one or more non-transitory computer-readable media of claim 15 , wherein the program instructions further direct the processing circuitry to at least:

remove storage from the partition without erasing the storage data stored in the partition.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the storage controller has a second emulation mode for processing data streams having different host data characteristics and using a different host command protocol, and wherein the program instructions further direct the processing circuitry to at least:

receive a request from the host, through the host interface circuit, for an additional partition within the storage system, the additional partition comprising one or more sequentially numbered data blocks, wherein the additional partition is a different size from the partition;

receive additional partition parameters from the host, through the host interface circuit, wherein the additional partition parameters correspond to the different host data characteristics, are different from the host partition parameters, and comprise a size of the one or more sequentially numbered data blocks and an indication whether the additional partition is to be static, extendable, or linked;

configure, based at least in part on the additional partition parameters, the additional emulation mode to process additional host data having different host data characteristics and using the different host command protocol into additional storage data having storage data characteristics different from the different host data characteristics;

create the additional partition within the storage system, through the storage interface circuit, based on the additional partition parameters;

receive additional host data having the different host data characteristics and using the different host command protocol from the host;

select the additional partition for storage of the additional host data based at least in part on the different host data characteristics of the additional host data;

process, in the additional emulation mode, the additional host data into the additional storage data for storage within the additional partition using a sequential write/random read traffic model, wherein the additional storage data has the storage data characteristics different from the different host data characteristics and uses a storage command protocol different from the different host command protocol; and

sequentially store the additional storage data in the one or more sequentially numbered data blocks in the additional partition, through the storage interface circuit.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the partition comprises memory within the storage system having a first storage density, and the additional partition comprises memory within the storage system having a second storage density different from the first storage density.

20. The one or more non-transitory computer-readable media of claim 18 , wherein the partition parameters and the additional partition parameters further comprise at least one parameter from the group of: storage density, physical memory attributes, protection attributes, security level, quality of service requirements, data type, data source, and data stream attributes.

21. A method of operating a storage controller, comprising:

configuring an emulation mode to process host data having host data characteristics and using a host command protocol into storage data having storage data characteristics different from the host data characteristics, wherein the emulation mode enables the storage controller to emulate different media types for different partitions within the storage system;

receiving a write request transferred by a host using the host command protocol, the write request comprising the host data having the host data characteristics and directed to a storage media partition;

receiving partition parameters transferred by the host corresponding to the host data characteristics, comprising an indication whether the partition is to be static, extendable, or linked;

creating the storage media partition within corresponding storage media based on the partition parameters, wherein the configuring of the emulation mode is based at least in part on the partition parameters;

altering, in the emulation mode, a structural format of the host data into the storage data having the storage data characteristics different from the host data characteristics and using a storage command protocol different from the host command protocol; and

storing the storage data in the storage media partition accordance with the storage data characteristics and the storage command protocol.

22. The method of claim 21 , further comprising:

receiving a read request for host read data transferred by the host, using the host command protocol, the read request having the host data characteristics and directed to the storage media partition;

retrieving target data from the storage media partition, the target data stored in accordance with the storage data characteristics and the storage command protocol;

altering a structural format of the target data into host read data having the host data characteristics different from the storage data characteristics and using the host command protocol different from the storage command protocol; and

transferring the host read data having the host data characteristics for delivery to the host system in accordance with the host command protocol.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: INNOVATIVE SSD IP, LLC
To: BIP BY DDN, INC.
Reel/Frame 070844/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2025
From: JONES, MICHAEL
To: INNOVATIVE SSD IP, LLC
Reel/Frame 070582/0446 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER 10719389 TO PATENT NUMBER 10719389 PREVIOUSLY RECORDED AT REEL: 065954 FRAME: 0911. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 27, 2023
From: BURLYWOOD, INC.
To: JONES, MICHAEL
Reel/Frame 066132/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: BURLYWOOD, INC.
To: JONES, MICHAEL
Reel/Frame 065954/0911 →
CHANGE OF NAME Recorded Jul 21, 2020
From: BURLYWOOD, LLC
To: BURLYWOOD, INC.
Reel/Frame 053267/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2016
From: EARHART, TOD R.
To: BURLYWOOD, LLC
Reel/Frame 038040/0016 →
Continuity (2)
Provisional Application 62136336 · Mar 20, 2015
Related Publication 20160274800A1 · Sep 22, 2016