Bit error reduction through varied data positioning
First Claim
Patent Images
1. A method, comprising:
- receiving data for storage in an array of solid-state storage elements, the solid-state storage elements comprising data positions having respective error rates, wherein one or more of the data positions have an error rate that differs from an average error rate of the array;
storing the received data at a plurality of data positions within the array, wherein each of the plurality of data positions corresponds to a respective solid-state storage element, wherein storing the received data further comprises varying data positions of the received data within the respective solid-state storage elements in accordance with the error rates corresponding to the data positions; and
reading data from the varied data positions within the respective solid-state storage elements in the array of solid-state storage elements.
6 Assignments
0 Petitions
Accused Products
Abstract
Devices, apparatuses, systems, and methods are disclosed for bit error reduction through varied data positioning. A write request module is configured to receive data for storage in an array of solid-state storage elements. The solid-state storage elements are accessible in parallel. A write module is configured to store the data in parallel to the array of solid-state storage elements with varied data positions for the data relative to different solid-state storage elements of the array. A read module is configured to read the data in parallel from the array of solid-state storage elements.
15 Citations
25 Claims
-
1. A method, comprising:
-
receiving data for storage in an array of solid-state storage elements, the solid-state storage elements comprising data positions having respective error rates, wherein one or more of the data positions have an error rate that differs from an average error rate of the array; storing the received data at a plurality of data positions within the array, wherein each of the plurality of data positions corresponds to a respective solid-state storage element, wherein storing the received data further comprises varying data positions of the received data within the respective solid-state storage elements in accordance with the error rates corresponding to the data positions; and reading data from the varied data positions within the respective solid-state storage elements in the array of solid-state storage elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus, comprising:
-
a data position module configured to arrange a data segment for storage within a logical page, the logical page comprising physical pages on each of a plurality of solid-state storage elements of an array, the physical pages having respective reliability characteristics that vary within the respective solid-state storage elements, such that reliability characteristics of certain physical pages differ from average reliability characteristics of the physical pages of the array, wherein the data position module is configured to select varied data positions for the physical pages of the logical page in accordance with the varied reliability characteristics of the physical pages within the respective solid-state storage elements; a write module configured to store the data segment the logical page arranged by the data position module ; and a read module configured to read the stored data segment from the logical page arranged by the data position module. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system comprising:
-
a solid-state storage device comprising a plurality of solid-state storage elements, each solid-state storage element comprising a plurality of physical storage locations at respective physical addresses, each physical storage location having a respective error rate, wherein the error rates of the physical storage locations differ in accordance with the physical addresses of the physical storage locations; and a storage controller, comprising, a write module configured to store an error correcting code chunk in parallel across the plurality of solid-state storage elements, wherein data of the error correcting code chunk are stored in physical storage locations within a plurality of different solid-state storage elements and at varied physical address offsets within the respective solid-state storage elements, wherein the physical address offsets are varied in accordance with the error rates of the physical storage locations at different physical addresses within the respective solid-state storage elements ; and a read module configured to read the error correcting code chunk in parallel from the array of solid-state storage elements. - View Dependent Claims (23)
-
-
24. A non-transitory computer program product comprising a computer readable storage medium storing computer usable program code executable to perform operations, the operations of the computer program product comprising:
-
determining a plurality of different addresses for a virtual page, each address of the virtual page corresponding to a physical data position within a respective one of a plurality of solid-state storage elements in a storage array, wherein error rates of the physical data positions vary in accordance with the respective addresses of the physical data positions within the array, wherein determining the plurality of different addresses for the virtual page comprises selecting addresses at different offsets within the respective solid-state storage elements such that the virtual page comprises physical data positions corresponding to different error rates within the array; sending the plurality of different addresses in parallel to the solid-state storage elements of the storage array; and storing data in parallel to the physical data positions within the respective solid-state storage elements at the plurality of different addresses determined for the virtual page.
-
-
25. An apparatus, comprising:
-
means for receiving data for storage in an array of solid-state storage elements, the solid-state storage elements accessible in parallel, the solid-state storage elements comprising storage locations at respective data positions within the array, wherein error rates of the storage locations vary based on data position of the storage locations within the array; means for storing the received data to a plurality of storage locations within the array in parallel, each of the plurality of storage locations corresponding to a respective one of the solid-state storage elements such that the data is stored in storage locations at different data positions relative to the solid-state storage elements of the array, the different data positions selected to average an error rate of the plurality of storage locations based on the varied error rates of the data positions of the plurality of storage locations within the array; and means for reading data in parallel from the array of solid-state storage elements.
-
Specification