IP Library › Granted Patent US 8,806,112
Granted Patent B2
US 8,806,112 · App. 13/334,599 · Granted Aug 12, 2014

Meta data handling within a flash media controller

Inventors: Vinay Ashok Somanache (Pune-Maharashtra, IN); Michael S. Hicken (Rochester, MN); Pamela S. Hempstead (Oronoco, MN); Timothy W. Swatosh (Rochester, MN); Jackson L. Ellis (Fort Collins, CO); Martin S. Dell (Bethlehem, PA)
Assignee: LSI Corporation
G06F12/0246G06F2212/1036G06F2212/1024G06F2212/7207
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 8,806,112
App. No.
13/334,599
Granted
Aug 12, 2014
Kind
B2
Abstract

A method for handling meta data stored in a page of a flash memory within a flash media controller. The method generally includes (i) defining the meta data on a per context basis, where the context is defined on a per page basis, (ii) when a size of the meta data is less than or equal to a predefined threshold, storing the complete meta data within a structure of the context, and (iii) when the size of the meta data is greater than the predefined threshold, defining meta data pointers within the context.

Claims (29)

1. A method for handling meta data stored in a page of a flash memory within a flash media controller, said method comprising:

defining a context on a per page basis, wherein said context comprises a data structure providing all information needed by the flash media controller to execute a flash transaction and any associated transfer to or from a system buffer, said data structure including one or more fields defined for meta data associated with said flash transaction;

defining said meta data on a per context basis;

when a size of said meta data associated with said flash transaction is less than or equal to a predefined threshold, storing said meta data associated with said flash transaction completely within the one or more fields defined for meta data in the data structure of the context, wherein during a flash program cycle, said meta data from the data structure of the context is stored in a flash target and during a read cycle, the meta data read from the flash target is stored back in the data structure of the context; and

when the size of said meta data associated with said flash transaction is greater than the predefined threshold, defining meta data pointers identifying a location external to said context where the meta data associated with the flash transaction is or is to be stored and storing the meta data pointers in the one or more fields defined for meta data within the data structure of the context.

2. The method according to claim 1 , further comprising:

protecting said meta data using an error correction code.

3. The method according to claim 1 , wherein said meta data comprises management data.

4. The method according to claim 1 , wherein said predefined threshold specifies a number of bytes per page.

5. The method according to claim 1 , wherein the meta data pointers provide address pointers to retrieve the meta data from an external system memory during a flash program cycle and to store the meta data from the flash read command into the external system memory at a location indicated by the meta data pointers specified by the context.

6. The method according to claim 1 , wherein:

during a flash program cycle, a first portion of meta data to be stored in a flash target comes from the data structure of the context and a second portion of the meta data to be stored in a flash target comes from a location in an external system memory indicated by the meta data pointers specified by the context; and

during a read cycle, the first portion of the meta data read from the flash target is stored back in the data structure of the context and the second portion of the meta data read from the flash is stored in the external system memory at a location indicated by the meta data pointers specified by the context.

7. The method according to claim 1 , wherein when a page size is a multiple of a host sector size, the meta data is distributed among each of a plurality of host user data sectors.

8. An apparatus comprising:

a flash memory comprising a plurality of flash media devices, said flash memory being organized as a plurality of pages;

a flash media controller configured to store meta data in one or more pages of said flash memory, wherein (i) said flash media controller defines a context on a per page basis and said meta data on a per context basis, (ii) the context comprises a data structure providing all information needed by the flash media controller to execute a flash transaction and any associated transfer to or from a system buffer, (iii) said data structure includes one or more fields defined for meta data associated with said flash transaction, (iv) when a size of said meta data associated with said flash transaction is less than or equal to a predefined threshold, said flash media controller stores the complete meta data within the one or more fields defined for meta data in the data structure of the context, such that during a flash program cycle said flash media controller stores the meta data from the data structure of the context in a flash target and during a read cycle said flash media controller stores the meta data read from the flash target back into the data structure of the context, and (v) when the size of the meta data associated with said flash transaction is greater than the predefined threshold, said flash media controller defines meta data pointers identifying a location external to said context where the meta data associated with the flash transaction is or is to be stored and stores the meta data pointers in the one or more fields defined for meta data within the data structure of the context.

9. The apparatus according to claim 8 , wherein said flash media controller protects said meta data using an error correction code.

10. The apparatus according to claim 8 , wherein said meta data comprises management data.

11. The apparatus according to claim 8 , wherein the predefined threshold defines a number of bytes per page.

12. The apparatus according to claim 8 , wherein the meta data pointers provide address pointers used by the flash media controller to retrieve the meta data from an external system memory during a flash program cycle and to store the meta data from the flash read command into the external system memory at a location indicated by the meta data pointers specified by the context.

13. The apparatus according to claim 8 , wherein

during a flash program cycle, a first portion of meta data to be stored in a flash target comes from the data structure of the context and a second portion of the meta data to be stored in a flash target comes from a location in an external system memory indicated by the meta data pointers specified by the context; and

during a read cycle, the first portion the meta data read from the flash target is stored back in the data structure of the context and the second portion is stored in the external system memory at a location indicated by the meta data pointers specified by the context.

14. The apparatus according to claim 8 , wherein the flash media controller is further configured to distribute the meta data among each of a plurality of host user data sectors when a page size of said flash memory is a multiple of a host sector size.

15. A flash memory system comprising:

means for defining meta data on a per context basis, where a context is defined on a per page basis, said context comprises a data structure providing all information needed by said defining means to execute a flash transaction and any associated transfer to or from a system buffer, and said data structure includes one or more fields defined for meta data associated with said flash transaction;

means for storing the complete meta data associated with said flash transaction within the one or more fields defined for meta data within the data structure of the context when a size of said meta data associated with said flash transaction is less than or equal to a predefined threshold, wherein during a flash program cycle, said meta data from the data structure of the context is stored in a flash target and during a read cycle, the meta data read from the flash target is stored back in the data structure of the context; and

means for defining meta data pointers identifying a location external to said context where the meta data associated with the flash transaction is or is to be stored and storing the meta data pointers in the one or more fields defined for meta data within the data structure of the context when the size of the meta data associated with said flash transaction is greater than the predefined threshold.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2011
From: SOMANACHE, VINAY ASHOK; HICKEN, MICHAEL S.; HEMPSTEAD, PAMELA S.; SWATOSH, TIMOTHY W.; ELLIS, JACKSON L.; DELL, MARTIN S.
To: LSI CORPORATION
Reel/Frame 027433/0550 →
Continuity (2)
Provisional Application 61507659 · Jul 14, 2011
Related Publication 20130019051A1 · Jan 17, 2013