Translation layer in a solid state storage device
First Claim
Patent Images
1. A solid state device comprising:
- a controller;
wherein the controller is configured to perform a first division operation that divides a received logical block address that indicates a physical memory block in a memory device of a plurality of memory devices in the solid state device by a number of logical block addresses per page of the physical memory block to obtain a result of the first division operation;
wherein the controller is configured to perform a second division operation that divides the obtained result of the first division operation by a number of memory devices in the plurality of memory devices;
wherein the controller is configured to determine a location of the memory device of the plurality of memory devices within the solid state device from a location in a memory device table, wherein the location in the memory device table is identified by a remainder of the second division operation;
wherein the controller is configured to generate a data block look-up table comprising the received logical block address, wherein the received logical block address is associated with a data block look-up table entry that comprises a first portion configured to indicate a highest programmed page of the physical memory block and a second portion that is different from the first portion and that is configured to indicate that the physical memory block is ordered when the physical memory block is ordered and to indicate that the physical memory block is not ordered when the physical memory block is not ordered.
7 Assignments
0 Petitions
Accused Products
Abstract
Solid state storage devices and methods for flash translation layers are disclosed. In one such translation layer, a sector indication is translated to a memory location by a parallel unit look-up table is populated by memory device enumeration at initialization. Each table entry is comprised of communication channel, chip enable, logical unit, and plane for each operating memory device found. When the sector indication is received, a modulo function operates on entries of the look-up table in order to determine the memory location associated with the sector indication.
-
Citations
15 Claims
-
1. A solid state device comprising:
-
a controller; wherein the controller is configured to perform a first division operation that divides a received logical block address that indicates a physical memory block in a memory device of a plurality of memory devices in the solid state device by a number of logical block addresses per page of the physical memory block to obtain a result of the first division operation; wherein the controller is configured to perform a second division operation that divides the obtained result of the first division operation by a number of memory devices in the plurality of memory devices; wherein the controller is configured to determine a location of the memory device of the plurality of memory devices within the solid state device from a location in a memory device table, wherein the location in the memory device table is identified by a remainder of the second division operation; wherein the controller is configured to generate a data block look-up table comprising the received logical block address, wherein the received logical block address is associated with a data block look-up table entry that comprises a first portion configured to indicate a highest programmed page of the physical memory block and a second portion that is different from the first portion and that is configured to indicate that the physical memory block is ordered when the physical memory block is ordered and to indicate that the physical memory block is not ordered when the physical memory block is not ordered. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 10, 11, 12)
-
-
9. A solid state device, comprising:
-
a controller; wherein the controller is configured to determine the existence of parallel units within the solid state device; wherein the controller is configured to generate a parallel unit look-up table that includes locations within the solid state device of the parallel units determined to exist within the solid state device; wherein the controller is configured to determine a location within the solid state device of a target parallel unit that is determined to exist within the solid state device by determining an index for the target parallel unit and finding the location within the solid state device of the target parallel unit from a location in the parallel unit look-up table identified by the index for the target parallel unit, wherein the index for the target parallel unit is determined by dividing a logical block address indicating a memory block in the target parallel unit by a number of logical block addresses per page of the memory block to produce a first result and by performing a modulo operation dividing the first result by a number of memory devices in the parallel look up table to produce a second result, wherein the second result is the index for the target parallel unit; wherein the controller is configured to generate a data block look-up table comprising addresses the logical block address, indicating the memory block in the target parallel unit, the logical block address associated with a data block look-up table entry, comprising a first portion configured to indicate a highest programmed page of the memory block and a second portion that is different from the first portion and that is configured to indicate that the memory block is ordered when the memory block is ordered and to indicate that the memory block is not ordered when the memory block is not ordered.
-
-
13. A method of operating solid state device, the method comprising:
-
determining a location of a memory device within the solid state device from location characteristics for the memory device that are at a location in a memory device table, wherein the location in the memory device table is identified by an index for the memory device; and generating a data block look-up table comprising a logical block address in the memory device, wherein the logical block address in the memory device is associated with a data block look-up table entry that comprises a first portion configured to indicate a highest programmed page of a physical memory block indicated by the logical block address and a second portion that is different from the first portion and that is configured to indicate that the physical memory block is ordered when the physical memory block is ordered and to indicate that the physical memory block is not ordered when the physical memory block is not ordered; wherein the index for the memory device is calculated by dividing the logical block address by a number of logical block addresses per page of the physical memory block to produce a first result and by performing a modulo operation dividing the first result by a number of memory devices in the memory device table to produce a second result, wherein the second result is the index. - View Dependent Claims (14, 15)
-
Specification