IP Library Granted Patent US 9,424,180
Granted Patent B2
US 9,424,180 · App. 14/176,326 · Granted Aug 23, 2016

System for increasing utilization of storage media

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,424,180
App. No.
14/176,326
Granted
Aug 23, 2016
Kind
B2
Abstract

A storage system creates an abstraction of flash Solid State Device (SSD) media allowing random write operations of arbitrary size by a user while performing large sequential write operations of a uniform size to an SSD array. This reduces the number of random write operations performed in the SSD array and as a result increases performance of the SSD array. A control element determines when blocks from different buffers should be combined together or discarded based on fragmentation and read activity. This optimization scheme increases memory capacity and improves memory utilization and performance.

Claims (15)

1. An apparatus, comprising:

a storage media having a plurality of buffer regions configured to store copies of data stored in a storage array;

a staging buffer configured to buffer the data for different write operations;

a processor configured to aggregate together the data in the staging buffer from the different write operations and store the aggregated data into blocks of a buffer region of the plurality of buffer regions of the storage media;

wherein the processor is further configured to discard data in blocks of the buffer region having a minimum read count when a number of buffer regions currently being used is below a first threshold number and discard data in the buffer regions according the a ranking of buffer regions when the number of buffer regions currently being used is above a threshold.

2. The apparatus of claim 1 , an indirection table configured to map the aggregated data from the write operations to different block regions within a same one of the buffer regions;

wherein the write operations are each allocated indirection entries within the indirection table and the indirection entries include device identifiers for storage devices in the storage media and physical addresses of the block regions where the data is stored in the storage media.

3. The apparatus of claim 1 , wherein a size of the buffer regions and a size of the block regions are configurable.

4. The apparatus of claim 3 , wherein the processor is configured to select the size of the buffer regions to increase write throughput to the storage media.

5. The apparatus of claim 1 , wherein the processor is configured to aggregate different groups of data for different groups of write operations into a staging buffer and write the different aggregated groups of data from the staging buffer into associated buffer regions within the storage media.

6. The apparatus of claim 1 , wherein the indirection table maps random addresses of the write operations into continuous block address locations within the buffer regions.

7. The apparatus of claim 1 , wherein the storage media comprises an array of Solid State Devices (SSDs).

8. The apparatus of claim 1 , wherein the processor is configured to discard data from the buffer regions and replace the data discarded from the buffer regions with other data from the storage array.

9. The apparatus of claim 8 , further comprising block counters containing block count values identifying a number of the block regions in the different buffer regions containing valid data, wherein the processor is configured to discard data from the buffer regions or aggregate data from the different buffer regions together into a same one of the buffer regions according to the block count values.

10. The apparatus according to claim 1 , further comprising bit maps for each of the buffer regions, where bits in the bit maps identify a used or unused status for data within associated block regions within buffer regions, and the processor is further configured to combine data from the different buffer regions together into a same one of the buffer regions according to the bit maps.

Assignments (9)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Feb 27, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 045045/0397 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
RELEASE OF SECURITY INTEREST Recorded Feb 11, 2016
From: TRIPLEPOINT CAPITOL
To: VIOLIN MEMORY INC.
Reel/Frame 037707/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: IGLESIA, ERIK DE LA; SIKDAR, SOM
To: GRIDIRON SYSTEMS, INC.
Reel/Frame 037709/0279 →
SECURITY INTEREST Recorded Aug 27, 2014
From: VIOLIN MEMORY, INC.
To: SILICON VALLEY BANK
Reel/Frame 033645/0834 →