IP Library Granted Patent US 9,009,391
Granted Patent B2
US 9,009,391 · App. 13/280,206 · Granted Apr 14, 2015

Solid state drive architecture

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 9,009,391
App. No.
13/280,206
Granted
Apr 14, 2015
Kind
B2
Abstract

Embodiments of apparatuses, methods and systems of solid state drive are disclosed. One embodiment of a solid state drive includes a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory. Further, this embodiment includes a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information. The scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.

Claims (82)

1. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory; and

a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including a write cancel operation bit that directs the flash scheduler to cancel a write of the data packet to an array of flash memory using a bypass queue;

wherein the scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.

2. The solid state drive of claim 1 , further comprising the flash scheduler extracting priority information of each data packet from the flash fabric header information of the data packet, and wherein the flash scheduler schedules high priority data packets before low priority packets, enabling data packet movement through the non-blocking fabric.

3. The solid state drive of claim 2 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory.

4. The solid state drive of claim 2 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory, and at least one of receiving and providing data packets to at least one of an embedded central processing unit (eCPU) and volatile memory.

5. The solid state drive of claim 2 , further comprising the priority information of each of the data packet being influenced by events external to the flash scheduler.

6. The solid state drive of claim 1 , wherein if a scheduled data packet fails, then the flash scheduler provides an indication of the failure to an eCPU connected to at least one port of the non-blocking fabric.

7. The solid state drive of claim 1 , wherein at least one port of the non-blocking fabric comprises at least one electrical connection to at least an embedded central processing unit (eCPU).

8. The solid state drive of claim 1 , wherein the flash fabric header information comprises a write immediate operation bit that directs the flash scheduler to increase the priority of the data packet.

9. The solid state drive of claim 1 , wherein the flash fabric header information comprises a multiple queues operation bit that directs the flash scheduler to put the data packet in multiple queues.

10. The solid state drive of claim 1 , wherein the flash fabric header information comprises a no retries operation bit that directs the flash scheduler to avoid retries of operations of the data packet.

11. The solid state drive of claim 1 , wherein the flash fabric header information comprises stacked header information, wherein the flash schedule performs multiple operations based on the stacked header information, autonomous from an embedded central processing unit (eCPU) connected to the first port of the non-blocking fabric.

12. The solid state drive of claim 1 , further comprising a data scrambler.

13. The solid state drive of claim 1 , further comprising a data pattern compression engine, wherein the data pattern compression engine parses data packets, recognizing patterns and compresses the data packets based on the recognized patterns.

14. The solid state drive of claim 1 , further comprising a circular buffer for tracking alerts and errors of operation of the flash scheduler.

15. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises at least a first port and a second port, wherein the second port comprises a plurality of Input/Outputs (I/Os) that are each connected to a non-volatile memory controller; and

a flash scheduler for scheduling data traffic through the non-block fabric, wherein the data traffic comprises a plurality of data packets, and wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including a write cancel operation bit that directs the flash scheduler to cancel a write of the data packet to an array of flash memory using a bypass queue.

16. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises at least a first port and a second port, wherein the second port comprises a plurality of Input/Outputs (I/Os) that are each connected to a non-volatile memory controller; and

a flash scheduler for scheduling data traffic through the non-block fabric, wherein the data traffic comprises a plurality of data packets, and wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including a multiple queues operation bit that directs the flash scheduler to put the data packet in multiple queues.

17. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises at least a first port and a second port, wherein the second port comprises a plurality of Input/Outputs (I/Os) that are each connected to a non-volatile memory controller; and

a flash scheduler for scheduling data traffic through the non-block fabric, wherein the data traffic comprises a plurality of data packets, and wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information; and retries operation bit that directs the flash scheduler to avoid retries of operations of the data packet.

18. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises at least a first port and a second port, wherein the second port comprises a plurality of Input/Outputs (I/Os) that are each connected to a non-volatile memory controller;

a flash scheduler for scheduling data traffic through the non-block fabric, wherein the data traffic comprises a plurality of data packets, and wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including; and

a data pattern compression engine, wherein the data pattern compression engine parses data packets, recognizing patterns and compresses the data packets based on the recognized patterns.

19. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory; and

a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including a multiple queues operation bit that directs the flash scheduler to put the data packet in multiple queues;

wherein the scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.

20. The solid state drive of claim 19 , further comprising the flash scheduler extracting priority information of each data packet from the flash fabric header information of the data packet, and wherein the flash scheduler schedules high priority data packets before low priority packets, enabling data packet movement through the non-blocking fabric.

21. The solid state drive of claim 20 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory.

22. The solid state drive of claim 20 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory, and at least one of receiving and providing data packets to at least one of an embedded central processing unit (eCPU) and volatile memory.

23. The solid state drive of claim 20 , further comprising the priority information of each of the data packet being influenced by events external to the flash scheduler.

24. The solid state drive of claim 19 , wherein if a scheduled data packet fails, then the flash scheduler provides an indication of the failure to an eCPU connected to at least one port of the non-blocking fabric.

25. The solid state drive of claim 19 , wherein at least one port of the non-blocking fabric comprises at least one electrical connection to at least an embedded central processing unit (eCPU).

26. The solid state drive of claim 19 , wherein, the flash fabric header information comprises a write cancel operation bit that directs the flash scheduler to cancel a write of the data packet to an array of flash memory, and using a bypass queue.

27. The solid state drive of claim 19 , wherein the flash fabric header information comprises a write immediate operation bit that directs the flash scheduler to increase the priority of the data packet.

28. The solid state drive of claim 19 , wherein the flash fabric header information comprises a no retries operation bit that directs the flash scheduler to avoid retries of operations of the data packet.

29. The solid state drive of claim 19 , wherein the flash fabric header information comprises stacked header information, wherein the flash schedule performs multiple operations based on the stacked header information, autonomous from an embedded central processing unit (eCPU) connected to the first port of the non-blocking fabric.

30. The solid state drive of claim 19 , further comprising a data scrambler.

31. The solid state drive of claim 19 , further comprising a data pattern compression engine, wherein the data pattern compression engine parses data packets, recognizing patterns and compresses the data packets based on the recognized patterns.

32. The solid state drive of claim 19 , further comprising a circular buffer for tracking alerts and errors of operation of the flash scheduler.

33. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory; and

a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information, the flash fabric header information including a no retries operation bit that directs the flash scheduler to avoid retries of operations of the data packet,

wherein the scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.

34. The solid state drive of claim 33 , further comprising the flash scheduler extracting priority information of each data packet from the flash fabric header information of the data packet, and wherein the flash scheduler schedules high priority data packets before low priority packets, enabling data packet movement through the non-blocking fabric.

35. The solid state drive of claim 34 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory.

36. The solid state drive of claim 34 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory, and at least one of receiving and providing data packets to at least one of an embedded central processing unit (eCPU) and volatile memory.

37. The solid state drive of claim 34 , further comprising the priority information of each of the data packet being influenced by events external to the flash scheduler.

38. The solid state drive of claim 33 , wherein if a scheduled data packet fails, then the flash scheduler provides an indication of the failure to an eCPU connected to at least one port of the non-blocking fabric.

39. The solid state drive of claim 33 , wherein at least one port of the non-blocking fabric comprises at least one electrical connection to at least an embedded central processing unit (eCPU).

40. The solid state drive of claim 33 , wherein the flash fabric header information including a write cancel operation bit that directs the flash scheduler to cancel a write of the data packet to an array of flash memory, and using a bypass queue.

41. The solid state drive of claim 33 , wherein the flash fabric header information comprises a write immediate operation bit that directs the flash scheduler to increase the priority of the data packet.

42. The solid state drive of claim 33 , wherein the flash fabric header information comprises a multiple queues operation bit that directs the flash scheduler to put the data packet in multiple queues.

43. The solid state drive of claim 33 , wherein the flash fabric header information comprises stacked header information, wherein the flash schedule performs multiple operations based on the stacked header information, autonomous from an embedded central processing unit (eCPU) connected to the first port of the non-blocking fabric.

44. The solid state drive of claim 33 , further comprising a data scrambler.

45. The solid state drive of claim 33 , further comprising a data pattern compression engine, wherein the data pattern compression engine parses data packets, recognizing patterns and compresses the data packets based on the recognized patterns.

46. The solid state drive of claim 33 , further comprising a circular buffer for tracking alerts and errors of operation of the flash scheduler.

47. A solid state drive, comprising:

a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory;

a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information; and

a data pattern compression engine operable to parse data packets, recognize patterns and compress the data packets based on the recognized patterns; and

wherein the scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.

48. The solid state drive of claim 47 , further comprising the flash scheduler extracting priority information of each data packet from the flash fabric header information of the data packet, and wherein the flash scheduler schedules high priority data packets before low priority packets, enabling data packet movement through the non-blocking fabric.

49. The solid state drive of claim 48 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory.

50. The solid state drive of claim 48 , wherein the enabled data packet movement comprises at least one of reading and writing data packets from or to arrays of flash memory, and at least one of receiving and providing data packets to at least one of an embedded central processing unit (eCPU) and volatile memory.

51. The solid state drive of claim 48 , further comprising the priority information of each of the data packet being influenced by events external to the flash scheduler.

52. The solid state drive of claim 47 , wherein if a scheduled data packet fails, then the flash scheduler provides an indication of the failure to an eCPU connected to at least one port of the non-blocking fabric.

53. The solid state drive of claim 47 , wherein at least one port of the non-blocking fabric comprises at least one electrical connection to at least an embedded central processing unit (eCPU).

54. The solid state drive of claim 47 , wherein the flash fabric header information including a write cancel operation bit that directs the flash scheduler to cancel a write of the data packet to an array of flash memory, and using a bypass queue.

55. The solid state drive of claim 47 , wherein the flash fabric header information comprises a write immediate operation bit that directs the flash scheduler to increase the priority of the data packet.

56. The solid state drive of claim 47 , wherein the flash fabric header information comprises a multiple queues operation bit that directs the flash scheduler to put the data packet in multiple queues.

57. The solid state drive of claim 47 , wherein the flash fabric header information comprises a no retries operation bit that directs the flash scheduler to avoid retries of operations of the data packet.

58. The solid state drive of claim 47 , wherein the flash fabric header information comprises stacked header information, wherein the flash schedule performs multiple operations based on the stacked header information, autonomous from an embedded central processing unit (eCPU) connected to the first port of the non-blocking fabric.

59. The solid state drive of claim 47 , further comprising a data scrambler.

60. The solid state drive of claim 47 , further comprising a circular buffer for tracking alerts and errors of operation of the flash scheduler.

Assignments (17)
PATENT SECURITY AGREEMENT Recorded Jun 30, 2025
From: CREELED, INC.; PENGUIN SOLUTIONS CORPORATION (DE); SMART EMBEDDED COMPUTING, INC.; SMART HIGH RELIABILITY SOLUTIONS LLC; SMART MODULAR TECHNOLOGIES, INC.; PENGUIN COMPUTING, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071755/0001 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT R/F 058983/0001 Recorded Jun 25, 2025
From: CITIZENS BANK, N.A.
To: SMART MODULAR TECHNOLOGIES, INC.; SMART EMBEDDED COMPUTING, INC.; SMART HIGH RELIABILITY SOLUTIONS LLC; CREELED, INC.
Reel/Frame 071725/0207 →
RELEASE OF SECURITY INTEREST Recorded Feb 7, 2022
From: BANK OF AMERICA, N.A., AS AGENT
To: SMART HIGH RELIABILITY SOLUTIONS LLC
Reel/Frame 058913/0162 →
RELEASE OF SECURITY INTEREST AT REEL 040608 FRAME 0868 Recorded Feb 7, 2022
From: BARCLAYS BANK PLC
To: SMART HIGH RELIABILITY SOLUTIONS LLC
Reel/Frame 058960/0892 →
SECURITY INTEREST Recorded Feb 7, 2022
From: SMART MODULAR TECHNOLOGIES, INC.; SMART HIGH RELIABILITY SOLUTIONS, LLC; SMART EMBEDDED COMPUTING, INC.; CREELED, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 058983/0001 →
SECURITY INTEREST Recorded Dec 23, 2020
From: SMART HIGH RELIABILITY SOLUTIONS LLC
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 054739/0064 →
SECURITY AGREEMENT Recorded Nov 14, 2016
From: SMART HIGH RELIABILITY SOLUTIONS LLC
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
Reel/Frame 040608/0868 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SMART GLOBAL HOLDINGS, INC.
To: SALEEN INTERMEDIATE HOLDINGS, INC.
Reel/Frame 036175/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SALEEN INTERMEDIATE HOLDINGS, INC.
To: SMART WORLDWIDE HOLDINGS, INC.
Reel/Frame 036175/0368 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SMART WORLDWIDE HOLDINGS, INC.
To: SMART MODULAR TECHNOLOGIES (GLOBAL), INC.
Reel/Frame 036175/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SMART MODULAR TECHNOLOGIES (GLOBAL), INC.
To: SMART MODULAR TECHNOLOGIES (DH), INC.
Reel/Frame 036175/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SMART MODULAR TECHNOLOGIES (DH), INC.
To: SMART MODULAR TECHNOLOGIES (DE), INC.
Reel/Frame 036175/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: SMART MODULAR TECHNOLOGIES (DE), INC.
To: SMART HIGH RELIABILITY SOLUTIONS LLC
Reel/Frame 036175/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: FASTOR SYSTEMS, INC.
To: SMART GLOBAL HOLDINGS, INC.
Reel/Frame 036175/0320 →
RELEASE OF SECURITY INTEREST Recorded Apr 3, 2015
From: SUN, DAVID
To: FASTOR SYSTEMS, INC.
Reel/Frame 035325/0908 →
SECURITY AGREEMENT Recorded Oct 27, 2014
From: FASTOR SYSTEMS, INC.
To: SUN, DAVID
Reel/Frame 034090/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2012
From: ASWADHATI, AJOY
To: FASTOR SYSTEMS, INC.
Reel/Frame 027612/0311 →