IP Library Granted Patent US 11,604,604
Granted Patent B1
US 11,604,604 · App. 16/942,659 · Granted Mar 14, 2023

Efficient FTL implementation with compression

Inventors: Yuval Rochman (Ramat Gan, IL); Moshe Twitto (Givat Shemuel, IL)
Assignee: PLIOPS LTD.
G06F3/0659G06F3/0604G06F3/0673
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,604,604
App. No.
16/942,659
Granted
Mar 14, 2023
Kind
B1
Abstract

A method for accessing a block of information stored in a SSD memory, the method may include obtaining, by an SSD controller, an identifier associated with the block of information; accessing, using the identifier, a first data structure that maps identifiers to cluster maps; wherein the first data structure comprises block sequence metadata, wherein for at least one cluster map, the block sequence metadata comprises a sequence identifier of a sequence of blocks of information that are sequentially written to the SSD memory and are stored together in a cluster of the SSD memory; accessing a cluster map of a cluster that is associated with the sequence provide block retrieval information; and retrieving the block of information from the SSD memory, using the block retrieval information.

Claims (19)

1. A method for accessing a block of information stored in a solid state drive (SSD) memory, the method comprises:

obtaining, by an SSD controller, an identifier associated with the block of information;

accessing, using the identifier, a first data structure that maps identifiers to cluster maps;

wherein the first data structure comprises block sequence metadata, wherein for at least one cluster map, the block sequence metadata comprises a sequence identifier of a sequence of blocks of information that are sequentially written to the SSD memory and are stored together in a cluster of the SSD memory;

accessing a cluster map of a cluster that is associated with the sequence provide block retrieval information; and

retrieving the block of information from the SSD memory, using the block retrieval information.

2. The method according to claim 1 wherein the first data structure comprises multiple buckets, wherein the identifier is a bucket identifier that identifies a bucket out of multiple buckets.

3. The method according to claim 2 comprising accessing the bucket.

4. The method according to claim 2 wherein each bucket of the multiple buckets comprises an indication regarding a percentage of blocks of information of the bucket that are initiated in the SSD memory.

5. The method according to claim 2 wherein each bucket of the multiple buckets comprises metadata regarding one or more blocks of information, the metadata of a block of information is indicative whether the block of information is part of a sequence or not.

6. The method according to claim 2 wherein each bucket of the multiple buckets comprises metadata regarding one or more blocks of information, the metadata of a block of information that is a part of a sequence further indicates whether the block of information is a last block of information of the sequence.

7. The method according to claim 2 wherein each bucket of the multiple buckets comprises metadata regarding one or more blocks of information, the metadata of a block of information that is a part of a sequence and is a last block of information of the sequence further comprises a cluster identifier of cluster related to the sequence.

8. The method according to claim 2 wherein each bucket of the multiple buckets comprises metadata regarding one or more blocks of information, the metadata of a block of information that is a part of a sequence and is not a last block of information of the sequence further comprises an offset to a last block of information of the sequence.

9. The method according to claim 2 wherein each bucket of the multiple buckets comprises metadata regarding one or more blocks of information, the metadata of a block of information that is a part of a sequence and is not a last block of information of the sequence further comprises a pointer to an offset stored in an offset data structure, the offset is to another block of information of the sequence.

10. The method according to claim 2 wherein different sequences of a cluster are sorted according to hash values associated with the sequences, wherein the hash values are either stored in the first data structure or are calculated based on a content of the first data structure, and wherein the block retrieval information reflects the sorting of the sequences.

11. The method according to claim 2 wherein different sequences of a cluster are sorted according to times of arrival of the sequences, and wherein the block retrieval information reflects the sorting of the sequences.

12. The method according to claim 2 wherein different sequences of a cluster are sorted.

13. The method according to claim 2 wherein different sequences of a cluster are unsorted, and wherein the block retrieval information reflects the unsorting.

14. The method according to claim 2 wherein at least one first bucket is linked to a first extension bucket; and wherein the method comprises accessing the first extension bucket.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Feb 2, 2023
From: KREOS CAPITAL VI (EXPERT FUND) L.P.
To: PLIOPS LTD
Reel/Frame 062622/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2022
From: TWITTO, MOSHE; ROCHMAN, YUVAL; MEIR, AVRAHAM
To: PLIOPS LTD.
Reel/Frame 061505/0891 →
SECURITY INTEREST Recorded Dec 23, 2020
From: PLIOPS LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 054735/0134 →
Continuity (5)
Continuation 16231649 · Dec 24, 2018
Provisional Application 62744264 · Oct 11, 2018
Provisional Application 62732576 · Sep 18, 2018
Provisional Application 62610244 · Dec 25, 2017
Provisional Application 62869051 · Jul 1, 2019