IP Library › Granted Patent US 11,314,460
Granted Patent B2
US 11,314,460 · App. 16/570,521 · Granted Apr 26, 2022

Solid state drive supporting both byte addressable protocol and block addressable protocol

Inventors: Edward Xiao (Alameda, CA); Scott Stetzer (Foothill Ranch, CA)
Assignee: Kioxia Corporation
G06F3/0679G06F3/0659G06F13/4282G06F2212/1024G06F2212/2022
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 11,314,460
App. No.
16/570,521
Granted
Apr 26, 2022
Kind
B2
Abstract

A solid state drive (SSD) enabled to process and store block addressable and byte addressable data, includes a first storage region for storing byte addressable data, a second storage region for storing block addressable data, and an SSD controller coupled to the first storage region and the second storage region by a bus. The SSD controller includes a processor and an interface for receiving data packets from a host. The SSD controller receives a data packet from the host at the interface, determines whether the data packet includes byte addressable data or block addressable data at the processor, selects either the first storage region or the second storage region based on the determination, and stores the data associated with the data packet in the selected storage region.

Claims (65)

1. A solid state drive (SSD) enabled to process and store block addressable and byte addressable data, the SSD comprising:

a first storage region configured to store byte addressable data;

a second storage region configured to store block addressable data;

a controller communicatively coupled to the first storage region and the second storage region by a bus, the controller comprising:

a processor; and

an interface configured to receive data packets from a host;

wherein the controller is configured to:

receive, at the interface, a data packet from the host, the data packet containing a header identifying a Gen-Z transport protocol used by the data packet;

determine, at the processor, whether the data packet includes byte addressable data or block addressable data based on the header;

select either the first storage region or the second storage region based on the determination; and

store data associated with the data packet in the selected storage region.

2. The SSD of claim 1 , wherein the controller further comprises a decoder configured to decode data packets.

3. The SSD of claim 2 , wherein the controller is further configured to decode the data packet at the decoder, and wherein determining whether the data packet includes byte addressable data or block addressable data is based on the decoding of the data packet.

4. The SSD of claim 1 , wherein the controller is further configured to detect a header of the data packet.

5. The SSD of claim 4 , wherein the header of the data packet includes an indication of whether the data packet uses a first transport protocol or a second transport protocol, wherein the second transport protocol is different from the first transport protocol.

6. The SSD of claim 5 , wherein the controller is further configured to determine whether the data packet includes byte addressable data or block addressable data based on the indication of whether the data packet uses the first transport or the second transport protocol.

7. The SSD of claim 6 , wherein the first transport protocol is a Gen-Z protocol and the second transport protocol is a non-volatile memory express (NVMe) Over Fabric protocol.

8. The SSD of claim 5 , wherein the controller further comprises an NVMe Over Fabric transport protocol controller implemented in a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).

9. The SSD of claim 1 , wherein the first storage region and the second storage region are implemented as storage class memories (SCMs).

10. The SSD of claim 1 , wherein the first storage region and the second storage region are implemented as non-volatile flash memories.

11. The SSD of claim 1 , wherein the controller is further configured to transmit the data associated with the data packet to the selected storage region over a serializer/deserializer (SerDes) link.

12. The SSD of claim 1 , wherein the controller further comprises a register configured to include metadata address information for data stored in the first storage region and the second storage region, and wherein the controller is further configured to update, in the register, metadata associated with the stored data.

13. A method for storing data in an SSD having a first storage region configured to store byte addressable data, a second storage region configured to store block addressable data, and a controller communicatively coupled to the first storage region and the second storage region by a bus, the method comprising:

receiving, at an interface of the controller, a data packet from a host, the data packet containing a header identifying a Gen-Z transport protocol used by the data packet;

determining, at a processor in the controller, whether the data packet includes byte addressable data or block addressable data based on the header;

selecting either of the first storage region or the second storage region based on the determination; and

storing data associated with the data packet in the selected storage region.

14. The method of claim 13 , further comprising transferring the data associated with the data packet to the selected storage region over a SerDes link.

15. The method of claim 13 , further comprising:

detecting a header of the data packet; and

identifying in the header of the data packet an indication of whether the data packet uses a first transport protocol or a second transport protocol, wherein the second transport protocol is different than the first transport protocol.

16. The method of claim 15 , wherein the first transport protocol is a Gen-Z protocol and the second transport protocol is an NVMe Over Fabric protocol.

17. The method of claim 16 , further comprising:

if the header of the data packet includes an indication that the data packet uses NVMe Over Fabric protocol:

transmitting the data packet to an NVMe Over Fabric protocol controller;

processing the data packet at the NVMe Over Fabric protocol controller; and

transmitting data associated with the data packet to the second storage region as block addressable data.

18. The method of claim 17 , further comprising:

if the header of the data packet includes an indication that the data packet uses Gen-Z protocol:

transmitting the data packet to a Gen-Z protocol controller;

processing the data packet at the Gen-Z protocol controller; and

transmitting data associated with the data packet to the first storage region as byte addressable data.

19. The method of claim 16 , further comprising:

updating, in a register, metadata associated with the data associated with the data packet and the selected first storage region or second storage region.

20. A method for decoding a Gen-Z data packet in a hybrid Gen-Z SSD, the method comprising:

receiving a data packet from a host;

determining that the data packet does not include a first indicator that the data packet requires a Gen-Z transport protocol for storage of the data packet;

determining that the data packet includes a second indicator that the data packet requires an NVMe transport protocol for storage of the data packet; and

storing data of the data packet in a block addressable storage region of the SSD;

wherein the SSD is configured to store block addressable data requiring the NVMe Over Fabric transport protocol and byte addressable data requiring the Gen-Z transport protocol.

21. The method of claim 20 , further comprising:

decoding the data packet.

22. The method of claim 21 , further comprising:

decoding the data packet at a decoder; and

determining whether the data packet includes byte addressable data or block addressable data based on the decoding of the data packet.

23. The method of claim 20 , further comprising:

detecting a header of the data packet.

24. The method of claim 23 , wherein the header of the data packet includes an indication of whether the data packet uses a first transport protocol or a second transport protocol, wherein the second transport protocol is different from the first transport protocol.

25. The method of claim 24 , further comprising:

determining whether the data packet includes byte addressable data or block addressable data based on the indication of whether the data packet uses the first transport or the second transport protocol.

26. The method of claim 25 , wherein the first transport protocol is the Gen-Z protocol and the second transport protocol is a non-volatile memory express (NVMe) Over Fabric protocol.

27. The method of claim 20 , further comprising:

transmitting the data associated with the data packet to the selected storage region over a SerDes link.

28. The method of claim 20 , further comprising:

updating, in a register configured to include metadata address information for data stored, metadata associated with the stored data.

Continuity (1)
Related Publication 20210081148A1 · Mar 18, 2021
Cited By (1)
US 12,380,030