IP Library Granted Patent US 10,965,751
Granted Patent B2
US 10,965,751 · App. 16/565,320 · Granted Mar 30, 2021

Just a bunch of flash (JBOF) appliance with physical access application program interface (API)

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,965,751
App. No.
16/565,320
Granted
Mar 30, 2021
Kind
B2
Abstract

A storage array includes a first controller, memory, and one or more storage devices. Each of the storage devices comprises a second controller and a nonvolatile memory. The first controller receives a command and data from a host connected to the storage array and transmits a response or data to the host. When a write command, write data, and size information of the write data are received from the host, the first controller sends the received data to the second controller. The second controller determines a write address indicating a memory region of the nonvolatile memory in which the write data are to be written, based on the write command and the size information, writes the write data in the memory region associated with the write address, and transmits the write address to the first controller. The first controller further transfers the write address to the host.

Claims (52)

1. A method for storing data in a storage apparatus including a central controller connectable to an external network, a memory, and a plurality of storage devices each including a local controller and a nonvolatile memory, the method comprising:

upon receipt of a write command and write data associated with the write command through the external network, temporarily storing the write command and the write data into the memory, and transmitting the write command and the write data to one of the storage devices;

determining a first physical location of the nonvolatile memory of said one of the storage devices into which the write data are to be written, returning the determined first physical location to the central controller, and writing the write data into the first physical location;

outputting the returned first physical location through the external network;

upon receipt of a read command and a second physical location associated with the read command through the external network, temporarily storing the read command and the second physical location into the memory, and transmitting the read command and the second physical location to one of the storage devices in which the second physical location exists; and

reading data from the second physical location.

2. The method according to claim 1 , wherein

the first physical location is returned before the write data are written into the first physical location.

3. The method according to claim 1 , wherein

the first physical location is returned after completion of receiving the write data through the external network.

4. The method according to claim 1 , wherein

the write data are transmitted to the local controller of said one of the storage devices after the write command is transmitted thereto, and

the first physical location is determined by the local controller after the write command is received and before the write data are received.

5. The method according to claim 1 , wherein

each of the storage devices stores block mapping data indicating a data storing state of each physical block of the nonvolatile memory thereof, and

the first physical location is determined by referring to the block mapping data.

6. The method according to claim 1 , further comprising:

upon receipt of an invalidate command and a third physical location associated with the invalidate command through the external network, temporarily storing the invalidate command and the third physical location in the memory, and transmitting the invalidate command and the third physical location to one of the storage devices in which the third physical location exists; and

invalidating data stored in the third physical location.

7. The method according to claim 1 , further comprising:

upon receipt of a first copy command and a fourth physical location associated with the first copy command through the external network, temporarily storing the first copy command and the fourth physical location associated with the copy command in the memory, and transmitting the first copy command and the fourth physical location to one of the storage devices in which the fourth physical location exists; and

reading data stored in the fourth physical location and transmitting the read data to a destination storage device in which the read data are copied to.

8. The method according to claim 7 , further comprising:

writing the read data in a physical location of the nonvolatile memory of the destination storage device.

9. The method according to claim 8 , further comprising:

determining the physical location of the nonvolatile memory of the destination storage device in which the read data are to be written; and

returning the determined physical location to the central controller.

10. A method for storing data in a storage system including a plurality of hosts and storage arrays connected through a network, each storage array including a central controller, a memory, and one or more storage devices, each storage device including a local controller and a nonvolatile memory, the method comprising:

when a write command and write data associated with the write command are received by the central controller of a first storage array from one of the hosts through the network, temporarily storing the write command and the write data into the memory of the first storage array, and transmitting the write command and the write data to one of the storage devices in the first storage array;

determining a first physical location of the nonvolatile memory of said one of the storage devices into which the write data are to be written, returning the determined first physical location to the central controller of the first storage array, and writing the write data into the first physical location;

returning the first physical location to said one of the hosts through the network;

when a read command and a second physical location associated with the read command are received by the central controller of the first storage array from one of the hosts through the network, temporarily storing the read command and the second physical location into the memory of the first storage array, and transmitting the read command and the second physical location to one of the storage devices in which the second physical location exists; and

reading data from the second physical location.

11. The method according to claim 10 , further comprising:

storing in said one of the hosts correspondence between an identification or logical address of the write data and the first physical location after the first physical location is returned.

12. The method according to claim 10 , wherein

at least one of the hosts and at least one of the storage arrays are installed in a rack of the storage system.

13. The method according to claim 10 , wherein

the first physical location is returned before the write data are written into the first physical location.

14. The method according to claim 10 , wherein

the first physical location is returned after completion of receiving the write data from said one of the hosts.

15. The method according to claim 10 , further comprising:

when an invalidate command and a third physical location associated with the invalidate command are received by the central controller of the first storage array from one of the hosts through the network, temporarily storing the invalidate command and the third physical location in the memory of the first storage array, and transmitting the invalidate command and the third physical location to one of the storage devices in which the third physical location exists; and

invalidating data stored in the third physical location.

16. The method according to claim 10 , further comprising:

when a copy command and a fourth physical location associated with the copy command are received by the central controller of the first storage array from one of the hosts through the network, temporarily storing the copy command and the fourth physical location in the memory of the first storage array, and transmitting the copy command and the fourth physical location to one of the storage devices in which the fourth physical location exists;

reading data stored in the fourth physical location; and

transmitting the read data to a destination storage device in which the read data are copied to.

17. The method according to claim 16 , wherein

the destination storage device is another one of the storage devices in the first storage array.

18. The method according to claim 16 , wherein

the destination storage device is a storage device in another storage array.

Assignments (3)
CHANGE OF NAME AND ADDRESS Recorded Feb 4, 2022
From: K.K PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 058957/0124 →
CHANGE OF NAME AND ADDRESS Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058905/0582 →
MERGER Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: K.K PANGEA
Reel/Frame 058946/0675 →