IP Library Granted Patent US 11,249,648
Granted Patent B2
US 11,249,648 · App. 16/523,922 · Granted Feb 15, 2022

Transfer and processing unit for IOD SSD

Inventor: Amit Rajesh Jain (Cupertino, CA)
Assignee: Kioxia Corporation
G06F3/0611G06F3/0658G06F3/0679G06F12/0246G06F12/1009
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,249,648
App. No.
16/523,922
Granted
Feb 15, 2022
Kind
B2
Abstract

Various implementations described herein relate to systems and methods for defining an optimal transfer and processing unit (OTPU) size for communicating messages for a plurality of non-volatile memory (NVM) sets of a non-volatile memory of the SSD. Each of the plurality of NVM sets corresponds to one of a plurality of regions of the non-volatile memory. Each of the plurality of regions includes a plurality of dies.

Claims (40)

1. A method for providing communications in a controller of a solid state drive (SSD), the method comprising:

defining, by the controller, an optimal transfer and processing unit (OTPU) size for communicating messages for a plurality of non-volatile memory (NVM) sets of a non-volatile memory of the SSD, each of the plurality of NVM sets corresponding to one of a plurality of regions of the non-volatile memory, each of the plurality of regions comprising a plurality of dies, wherein the OTPU size for all messages communicated by the controller for the plurality of NVM sets are uniform, and wherein the controller defines a first OTPU size for a first configuration of the non-volatile memory, and a second different OTPU size for a second different configuration of the non-volatile memory; and

communicating, by the controller, the messages for the plurality of NVM sets, each of the messages having the OTPU size.

2. The method of claim 1 , wherein

the non-volatile memory is an array of non-volatile memory dies or an array of NAND flash memory devices;

each of the non-volatile memory dies has at least one plane;

two or more of the non-volatile memory dies are coupled to a same channel of a plurality of channels; and

each of the plurality of NVM sets comprises some of the non-volatile memory dies coupled to at least one of the plurality of channels.

3. The method of claim 1 , wherein

the messages are communicated via inter-process communications (IPCs); and

each of the IPCs corresponds to a communication link between two processors of the controller.

4. The method of claim 1 , wherein the OTPU size is defined by configuring firmware of the controller.

5. The method of claim 1 , wherein defining the OTPU size is performed during a first power-on sequence of the SSD.

6. The method of claim 1 , wherein the OTPU size is defined based on characteristics of the non-volatile memory.

7. The method of claim 6 , wherein the characteristics of the non-volatile memory comprise NAND geometry and NAND type.

8. The method of claim 7 , wherein the NAND geometry comprises at least one of:

a size of NAND pages in the non-volatile memory; or

a number of planes on each NAND die of the non-volatile memory.

9. The method of claim 7 , wherein the NAND type comprises a number of interface channels operatively coupled to each flash controller of the non-volatile memory.

10. The method of claim 1 , wherein

a processor of the controller receives the messages in an order; and

the processor processes the messages according to the order in which the messages are received.

11. The method of claim 1 , wherein a first processor of the controller pushes the messages to a second processor of the controller according to the order in which the messages are received at the first processor.

12. The method of claim 1 , further comprising defining, by the controller, OTPUs for communicating the messages.

13. The method of claim 12 , wherein defining the OTPUs comprises defining a unique identifier that uniquely identifies each of the OTPUs within the controller.

14. The method of claim 12 , wherein defining the OTPUs comprises defining a NVM set identifier that identifies one of the plurality of NVM sets for which each OTPU is being communicated.

15. The method of claim 12 , wherein each of the OTPUs comprises addresses of NAND pages spread across channels and planes corresponding to each OTPU.

16. The method of claim 12 , wherein each of the OTPUs comprises status information or condition information of the NAND pages corresponding to each OTPU.

17. The method of claim 1 , wherein the first and second configurations include one or more of a size of NAND pages in the non-volatile memory, a number of planes on each NAND die of the non-volatile memory, and a number of interface channels operatively coupled to each flash controller of the non-volatile memory.

18. A method for providing communications in a controller of a solid state drive (SSD), the method comprising:

defining, by the controller, an optimal transfer and processing unit (OTPU) size for communicating messages for a plurality of non-volatile memory (NVM) sets of a non-volatile memory of the SSD, each of the plurality of NVM sets corresponding to one of a plurality of regions of the non-volatile memory, each of the plurality of regions comprising a plurality of dies,

wherein the OTPU size for the plurality of NVM sets are uniform, and

wherein the OTPU size is defined based on a size of NAND pages in the non-volatile memory, a number of planes on each NAND die of the non-volatile memory, and a number of interface channels operatively coupled to each flash controller of the non-volatile memory; and

communicating, by the controller, the messages for the plurality of NVM sets, each of the messages having the OTPU size.

19. The method of claim 18 , wherein the OTPU size is the size of the NAND pages in the non-volatile memory multiplied by the number of the planes on each NAND die of the non-volatile memory multiplied by the number of interface channels operatively coupled to each flash controller of the non-volatile memory.

20. A Solid State Drive (SSD), comprising:

a non-volatile memory having a plurality of non-volatile memory (NVM) sets, each of the plurality of NVM sets corresponding to one of a plurality of regions of the non-volatile memory, and each of the plurality of regions comprising a plurality of dies; and

a controller configured to:

define an optimal transfer and processing unit (OTPU) size for communicating messages for the plurality of NVM sets, wherein the OTPU size for all messages communicated by the controller for the plurality of NVM sets are uniform, and wherein the controller defines a first OTPU size for a first configuration of the non-volatile memory, and a second different OTPU size for a second different configuration of the non-volatile memory; and

communicate the messages for the plurality of NVM sets, each of the messages having the OTPU size.

Assignments (3)
CHANGE OF NAME Recorded Jan 6, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058649/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: JAIN, AMIT RAJESH
To: TOSHIBA MEMORY AMERICA
Reel/Frame 052676/0972 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: TOSHIBA MEMORY AMERICA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 052677/0007 →
Continuity (1)
Related Publication 20210026538A1 · Jan 28, 2021