IP Library Granted Patent US 9,141,292
Granted Patent B2
US 9,141,292 · App. 14/591,887 · Granted Sep 22, 2015

Enhanced interface to firmware operating in a solid state drive

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,141,292
App. No.
14/591,887
Granted
Sep 22, 2015
Kind
B2
Abstract

An embodiment of the invention includes a storage subsystem having a storage central processing unit (SCPU) operable to receive and send a command to a host, the command requiring data computation, a compute engine coupled to the SCPU, and a bank of memory devices coupled to the SCPU and the compute engine and configured to store data required by the commands, wherein the SCPU or the compute engine are operable to perform computation of the data and to further invoke an appropriate Flash Translation Layer (FTL) application based on workload.

Claims (32)

1. A method of managing work requests by a solid state disk (SSD) from a host comprising:

receiving a command and accompanying data from a host through an interface, the host being located externally to the SSD, by a storage central processing unit (SCPU), the command requiring transformation of the data;

storing the data to be transformed in a bank of memory devices coupled to the SCPU;

determining a single compute engine, coupled to the SCPU and the bank of memory devices, is to perform transformation of the data, the single compute engine being separated from the stored data in the bank of memory devices only by the interface;

upon the determination, the single compute engine being operable to perform transformation of the stored data entirely within the SSD by exploiting the close locality of the data being transformed to the single compute engine, before the transformed data is sent to the host and to avoid the need for data movement to and from the host during the transformation;

receiving an identified type of workload from a host by the SSD;

invoking an appropriate Flash Translation Layer (FTL) application for a workload of the identified type of workload; and

processing work requests associated with the workload from the host.

2. The method of managing of claim 1 , wherein the invoking step is performed though an Application Programming Interface (API).

3. The method of managing data, as recited in claim 2 , further including deciding, by the SCPU, the host wanting maximal access to the storage subsystem and sending instructions using the API to turn off housekeeping.

4. The method of managing data, as recited in claim 1 , further including employing one or more solid state disks (SSDs) in the storage subsystem through execution of an application being executed by the host.

5. A storage subsystem comprising:

a storage central processing unit (SCPU) operable to receive from and send commands to a host, located externally to the storage subsystem, the SCPU responsive to a command requiring data transformation;

a single compute engine coupled to the SCPU; and

a bank of memory devices coupled to the SCPU and the single compute engine, through an interface, the bank of memory devices configured to store data associated with the command, the single compute engine being separated from the stored data in the bank of memory devices only by the interface, the single compute engine operable to transform the stored data entirely within the SSD by exploiting the close locality of the data being transformed before the transformed data is sent to the host and to avoid the need for any data movement to and from the host during the transformation, wherein upon receipt of an identified type of workload from a host the SCPU being operable to,

invoking an appropriate Flash Translation Layer (FTL) application for a workload of the identified type of workload,

processing work requests associated with the workload from the host.

6. The storage subsystem, as recited in claim 5 , further including a memory coupled to the SCPU configured to store the data received from the host when the single compute engine is to perform the transformation.

7. The storage subsystem, as recited in claim 5 , further including a host interface coupled to the SCPU and operable to receive from and send commands to the host.

8. The storage subsystem, as recited in claim 7 , wherein the SSD is operable to avoid moving additional data received from the host, by the host interface, to the bank of memory devices during the transformation thereby reducing power consumption.

9. The storage subsystem, as recited in claim 5 , wherein the memory devices of the bank of memory devices are non-volatile memory.

10. The storage subsystem, as recited in claim 5 , wherein the memory devices of the bank of memory devices are volatile memory.

11. The storage subsystem, as recited in claim 5 , further including a memory controller coupled to the bank of memory devices and operable to control the bank of memory devices.

12. The storage subsystem, as recited in claim 5 , wherein the storage subsystem causes reduced latency by avoiding movement of the data across multiple interfaces.

13. The storage subsystem, as recited in claim 5 , wherein the transformation is fast fourier transform (FFT).

14. The storage subsystem, as recited in claim 5 , wherein the storage subsystem is a server.

15. The storage subsystem, as recited in claim 5 , wherein the interface is a PCI Express (PCIe) bus or a processor interconnect bus.

16. The storage subsystem, as recited in claim 15 , wherein the host interface bus is PCI Express (PCIe), Ethernet, fiber channel, infiniband, or Serial ATA (SATA).

17. The storage subsystem, as recited in claim 5 , wherein the host interface is coupled to the host through a host interface bus.

18. The storage subsystem, as recited in claim 5 , wherein the SCPU is operable to determine whether the SCPU or the single compute engine perform the transformation of the data.

19. The storage subsystem, as recited in claim 5 , further including a memory coupled to the SCPU and configured to store the data when the SCPU or the single compute engine is to transform the data.

20. The storage subsystem, as recited in claim 5 , wherein the storage subsystem is a solid state disk (SSD).

Assignments (15)
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 043495 FRAME 0349 Recorded Feb 7, 2022
From: BARCLAYS BANK PLC
To: SMART HIGH RELIABILITY SOLUTIONS LLC
Reel/Frame 058963/0466 →
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 Aug 9, 2017
From: SMART HIGH RELIABILITY SOLUTIONS LLC
To: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
Reel/Frame 043495/0349 →
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 →
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 Mar 31, 2015
From: ASWADHATI, AJOY; ASWADHATI, VIJAY
To: FASTOR SYSTEMS, INC.
Reel/Frame 035305/0449 →