IP Library Granted Patent US 9,524,211
Granted Patent B1
US 9,524,211 · App. 14/547,008 · Granted Dec 20, 2016

Codeword management

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,524,211
App. No.
14/547,008
Granted
Dec 20, 2016
Kind
B1
Abstract

A method for managing an encoding process, the method includes receiving or determining, by a processor, (i) code rates for multiple pages, and (ii) sizes of a plurality of data segments to be stored in the multiple pages after being encoded to provide multiple codewords; determining, by the processor, sizes of the multiple codewords while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval of the split data segment involves a retrieval of the at least two codewords; and sending to an encoder information about the sizes of the multiple codewords.

Claims (29)

1. A method for managing an encoding process, the method comprises:

receiving or determining, by a processor, (i) code rates for multiple pages of a flash memory, and (ii) sizes of a plurality of data segments to be stored in the multiple pages after being encoded to provide multiple codewords;

determining, by the processor, sizes of the multiple codewords while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval, from the flash memory, of each split data segment that is stored in the flash memory and is split between the at least two codewords involves a retrieval of the at least two codewords; and

sending to an encoder information about the sizes of the multiple codewords.

2. The method according to claim 1 further comprising receiving or determining, by the processor a flash memory transaction size; and wherein the determining of the sizes of the multiple codewords is further responsive to the flash memory transaction size.

3. The method according to claim 1 , comprising determining the sizes of multiple codewords to minimize a number of codewords that comprise at least a portion of two data segments.

4. The method according to claim 1 , comprising determining the sizes of the multiple codewords so that at least one page of the multiple pages comprises codewords that differ from each other by a size of redundancy.

5. The method according to claim 1 , comprising determining the sizes of multiple codewords to allow only up to a single codeword per page to comprise at least a portion of two data segments.

6. The method according to claim 1 , wherein the code rates for the multiple pages comprise a first code rate that is higher than a second code rate; wherein the first code rate is associated with a first page of the multiple pages and the second code rate is associated with a second page of the multiple pages.

7. The method according to claim 6 comprising preventing the second page from storing a codeword that comprises at least a portion of two data segments.

8. The method according to claim 6 wherein at least one codeword of the first page comprises at least a portion of two data segments.

9. The method according to claim 1 further comprising receiving the plurality of data segment and encoding the plurality of data segments to provide the multiple codewords, wherein the encoding is responsive to the information about the sizes of the multiple codewords.

10. A method for encoding data segments, the method comprises:

receiving, by an encoder, information about sizes of multiple codewords to be generated by the encoder by encoding a plurality of codewords; wherein the sizes of the multiple codewords were determined (a) in response to code rates for multiple pages of a flash memory and sizes of the plurality of data segments, and (b) while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval, from the flash memory, of each split data segment that is stored in the flash memory and is split between the at least two codewords involves a retrieval of the at least two codewords;

receiving, by the encoder, the plurality of data segment; and

encoding, by the encoder, the plurality of data segments to provide the multiple codewords, wherein the encoding is responsive to the information about the sizes of the multiple codewords.

11. A non-transitory computer readable medium that stores instructions that once executed by an encoder cause the encoder to execute the stages of: receiving information about sizes of multiple codewords to be generated by the encoder by encoding a plurality of codewords; wherein the sizes of the multiple codewords were determined (a) in response to code rates for multiple pages of a flash memory and sizes of the plurality of data segments, and (b) while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval, from the flash memory, of each split data segment that is stored in the flash memory and is split between the at least two codewords involves a retrieval of the at least two codewords; receiving the plurality of data segment; and encoding the plurality of data segments to provide the multiple codewords, wherein the encoding is responsive to the information about the sizes of the multiple codewords.

12. The non-transitory computer readable medium according to claim 11 that stores instructions for receiving or determining, by the processor a flash memory transaction size; and wherein the determining of the sizes of the multiple codewords is further responsive to the flash memory transaction size.

13. The non-transitory computer readable medium according to claim 11 , that stores instructions for determining the sizes of multiple codewords to minimize a number of codewords that comprise at least a portion of two data segments.

14. The non-transitory computer readable medium according to claim 11 , that stores instructions for determining the sizes of the multiple codewords so that at least one page of the multiple pages comprises codewords that differ from each other by a size of redundancy.

15. The non-transitory computer readable medium according to claim 11 , that stores instructions for determining the sizes of multiple codewords to allow only up to a single codeword per page to comprise at least a portion of two data segments.

16. The non-transitory computer readable medium according to claim 11 , wherein the code rates for the multiple pages comprise a first code rate that is higher than a second code rate; wherein the first code rate is associated with a first page of the multiple pages and the second code rate is associated with a second page of the multiple pages.

17. The non-transitory computer readable medium according to claim 16 that stores instructions for preventing the second page from storing a codeword that comprises at least a portion of two data segments.

18. The non-transitory computer readable medium according to claim 16 wherein at least one codeword of the first page comprises at least a portion of two data segments.

19. The non-transitory computer readable medium according to claim 11 that stores instructions for receiving the plurality of data segment and encoding the plurality of data segments to provide the multiple codewords, wherein the encoding is responsive to the information about the sizes of the multiple codewords.

20. A non-transitory computer readable medium that stores instructions that once executed by a processor cause the processor to execute the stage of receiving or determining (i) code rates for multiple pages of a flash memory, and (ii) sizes of a plurality of data segments to be stored in the multiple pages after being encoded to provide multiple codewords; determining sizes of the multiple codewords while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval, from the flash memory, of each split data segment that is stored in the flash memory and is split between the at least two codewords involves a retrieval of the at least two codewords; and sending to an encoder information about the sizes of the multiple codewords.

21. A memory controller that comprises an encoder; wherein the encoder is configured to:

receive information about sizes of multiple codewords to be generated by the encoder by encoding a plurality of codewords; wherein the sizes of the multiple codewords were determined (a) in response to code rates for multiple pages of a flash memory and sizes of the plurality of data segments, and (b) while maintaining the code rates for the multiple pages and minimizing a number of split data segments out of the plurality of data segments, wherein each split data segment is split between at least two codewords of the multiple codewords, wherein a retrieval, from the flash memory, of each split data segment that is stored in the flash memory and is split between the at least two codewords involves a retrieval of the at least two codewords; receive the plurality of data segment; and

encode the plurality of data segments to provide the multiple codewords, wherein the encoding is responsive to the information about the sizes of the multiple codewords.

Assignments (8)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2014
From: SEGAL, AVIGDOR; WEINGARTEN, HANAN; MALY, IGAL
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 034214/0895 →