AUTOMATIC STREAM DETECTION & ASSIGNMENT ALGORITHM
First Claim
1. A Solid State Drive (SSD), comprising:
- flash memory to store data;
support for a plurality of device streams in the SSD;
a SSD controller to manage writing data to the flash memory responsive to a plurality of write commands, the SSD controller including storage for a submission queue and a chunk-to-stream mapper; and
a flash translation layer, including;
a receiver to receive a write command including a logical block address (LBA);
an LBA mapper to map the LBA to a chunk identifier (ID);
stream selection logic to select a stream ID based on the chunk ID using the chunk-to-stream mapper;
a stream ID adder to add the stream ID to the write command;
a queuer to place the chunk ID in the submission queue; and
background logic to remove the chunk ID from the submission queue and update the chunk-to-stream mapper.
0 Assignments
0 Petitions
Accused Products
Abstract
A Solid State Drive (SSD) is disclosed. The SSD may include flash memory to store data and may support a plurality of device streams. A SSD controller may manage reading and writing data to the flash memory, and may store a submission queue and a chunk-to-stream mapper. A flash translation layer may include a receiver to receive a write command, an LBA mapper to map an LBA to a chunk identifier (ID), stream selection logic to select a stream ID based on the chunk ID, a stream ID adder to add the stream ID to the write command, a queuer to place the chunk ID in the submission queue, and background logic to update the chunk-to-stream mapper after the chunk ID is removed from the submission queue.
-
Citations
20 Claims
-
1. A Solid State Drive (SSD), comprising:
-
flash memory to store data; support for a plurality of device streams in the SSD; a SSD controller to manage writing data to the flash memory responsive to a plurality of write commands, the SSD controller including storage for a submission queue and a chunk-to-stream mapper; and a flash translation layer, including; a receiver to receive a write command including a logical block address (LBA); an LBA mapper to map the LBA to a chunk identifier (ID); stream selection logic to select a stream ID based on the chunk ID using the chunk-to-stream mapper; a stream ID adder to add the stream ID to the write command; a queuer to place the chunk ID in the submission queue; and background logic to remove the chunk ID from the submission queue and update the chunk-to-stream mapper. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A driver for use in a computer system, comprising:
-
a receiver to receive a write command for a Solid State Drive (SSD), the write command including a logical block address (LBA); an LBA mapper to map the LBA to a chunk identifier (ID); stream selection logic to select a stream ID based on the chunk ID using a chunk-to-stream mapper stored in a memory in a host computer system; a stream ID adder to add the stream ID to the write command; a queuer to place the chunk ID in a submission queue stored in the memory; and background logic to remove the chunk ID from the submission queue and update the chunk-to-stream mapper. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method, comprising:
-
receiving a write command from a software source; determining a logical block address (LBA) in the write command; identifying a chunk identifier (ID) for a chunk on a Solid State Drive (SSD) including the LBA; accessing a stream ID associated with the chunk ID; assigning the stream ID to the write command; processing the write command using the assigned stream ID on the SSD; and performing a background update of the stream ID associated with the chunk ID. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification