Writing and Reading of Data in Probe-Based Data Storage Devices
Abstract
Methods and apparatus are provided for controlling writing and reading of data in an array of A storage fields of a probe-based data storage device in which data is written to and read from the array of storage fields by a corresponding array of probes. One method uses the concept of sub-arrays to provide variable-rate read/write operation. Input data blocks are received for writing to the A-field array, each input data block being writable in A/k 0 storage fields where k 0 is an integer>=2. For successive groups of k 0 blocks, the k 0 blocks are written to respective sub-arrays, each of A/k 0 storage fields, of the storage field array by selectively writing at one of a series of rates, ranging from 1 block at a time to k 0 blocks at a time, in dependence on a desired data write-rate. The blocks can also be read from the sub-arrays by selectively reading at one of a series of rates, ranging from 1 sub-array at a time to k 0 sub-arrays at a time, in dependence on a desired data read-rate.
Claims
exact text as granted — not AI-modified1 . A method for operating a probe-based data storage device in which data is written to and read from an array of A storage fields by a corresponding array of probes, the method comprising steps of:
receiving input data blocks, each writable in A/k 0 storage fields where k 0 is an integer>=2; for successive groups of k 0 blocks, writing the k 0 blocks to respective sub-arrays (SA1 to SAk 0 ), each of A/k 0 storage fields, of the storage field array by writing x blocks at a time, where x is an integer in the range 1<=x<=k 0 ; and reading the blocks from the sub-arrays (SA1 to SAk 0 ) by reading y sub-arrays at a time, where y is an integer in the range 1<=y<=k 0 .
2 . The method of claim 1 wherein x is an integer in the range 1<=y<=k 0 −1.
3 . The method of claim 2 wherein y is an integer in the range 1<=y<=k 0 −1.
4 . The method of claim 3 wherein x is not equal to y.
5 . The method of claim 1 , further comprising a step of:
coding user data to produce the input data blocks with a block size of k 1 (A/k 0 ) bytes, where k 1 is an integer>=1.
6 . A method for operating a probe-based data storage device in which user data is written to and read from an array of A d storage fields by a corresponding array of probes, the method comprising steps of:
coding blocks of user data to produce, from each user data block, a plurality of C-byte codewords such that r*C=k 1 *A s where r is the number of codewords, k 1 is an integer>=1, A s =A d /k 0 and k 0 is an integer>=2; for each user data block, producing A s sub-blocks of k 1 bytes from the r codewords produced from that user data block by selecting successive bytes of each sub-block cyclically from the r codewords; for successive groups of k 0 user data blocks, writing the A s sub-blocks produced from each of the k 0 blocks to a respective sub-array (SA1 to SAk 0 ), of A s storage fields, of the storage field array by writing to x sub-arrays at a time, where x is an integer in the range 1,=x,=k 0 , wherein the A s sub-blocks written to each sub-array (SA1 to SAk 0 ) are written via respective probes to the corresponding storage fields of the sub-array; and reading the sub-blocks from the sub-arrays (SA1 to SAk 0 ) by reading y sub-arrays at a time, where y is an integer in the range 1<=y<=k 0 .
7 . An apparatus for controlling reading and writing of user data in an array of A storage fields of a probe-based data storage device in which data is written to and read from the array of storage fields by a corresponding array of probes, the apparatus comprising:
a data formatter for formatting user data in groups of k 0 input data blocks, each data block being writable in A/k 0 storage fields where k 0 is an integer>=2; and a read/write controller for controlling writing of the k 0 blocks of each group to respective sub-arrays (SA1 to SAk 0 ), each of A/k 0 storage fields, of the storage field array by selectively controlling writing at one of a series of rates, ranging from 1 block at a time to k 0 blocks at a time, in dependence on a desired data write-rate, and for controlling reading of the blocks from the sub-arrays (SA1 to SAk 0 ) by selectively controlling reading at one of a series of rates, ranging from 1 sub-array at a time to k 0 sub-arrays at a time, in dependence on a desired data read-rate.
8 . The apparatus of claim 7 wherein: k 0 >=3; the series of rates for writing blocks includes at least one intermediate rate of x blocks at a time, where x is an integer in the range 1<x<k 0 ; and the series of rates for reading blocks includes at least one intermediate rate of y sub-arrays at a time, where y is an integer in the range 1<y<k 0 .
9 . An apparatus for controlling reading and writing of user data in an array of A storage fields of a probe-based data storage device in which data is written to and read from the array of storage fields by a corresponding array of probes, the apparatus comprising:
a data formatter for formatting user data in groups of k 0 input data blocks, each data block being writable in A/k 0 storage fields where k 0 is an integer>=2; and a read/write controller for controlling writing of the k 0 blocks of each group to respective sub-arrays (SA1 to SAk 0 ), each of A/k 0 storage fields, of the storage field array such that the k 0 blocks are written x blocks at a time, where x is an integer in the range 1<=x<=k 0 , and for controlling reading of the blocks from the sub-arrays (SA1 to SAk 0 ) such that the sub-arrays are read y sub-arrays at a time, where y is an integer in the range 1<=y<=k 0 .
10 . The apparatus of claim 9 wherein x is an integer in the range 1<=x<=k 0 −1.
11 . The apparatus of claim 10 wherein y is an integer in the range 1<=y<=k 0 −1.
12 . The apparatus of claim 11 wherein x is not equal to y.
13 . The apparatus of claim 12 wherein the data formatter is arranged to code the user data to produce the input data blocks with a block size of k 1 (A/k 0 ) bytes, where k 1 is an integer>=1.
14 . A probe-based data storage device comprising:
a storage surface having an array of A storage fields; a probe array comprising A probes for reading and writing data in respective storage fields; and an apparatus for controlling reading and writing of data in the array of storage fields at one of a series of rates, depending on a desired data read-rate and a desired data write-rate.
15 . A probe-based data storage device comprising:
a storage surface having an array of k 2 .A storage fields, where k 2 is an integer>=2; a probe array comprising k 2 A probes for reading and writing data in respective storage fields; and a control apparatus comprising k 2 logical sub-devices (LD1 to LDk 2 ) for controlling reading and writing of data to respective logical sub-arrays at one of a series of rates, each of A storage fields, of the storage field array via respective logical sub-arrays, each of A probes, of the probe array, wherein each logical sub-device (LD1 to LDk 2 ) comprises an apparatus for controlling reading and writing of data in the respective logical sub-array of the storage field array.
16 . An apparatus for controlling reading and writing of user data in an array of A d storage fields of a probe-based data storage device in which data is written to and read from the array of storage fields by a corresponding array of probes, the apparatus comprising:
a codeword generator for coding blocks of user data to produce, from each user data block, a plurality of C-byte codewords such that r*C=k 1 *A s where r is the number of codewords, k 1 is an integer>=1, A s =A d /k 0 and k 0 is an integer>=2; a sub-block generator for producing, for each user data block, A s sub-blocks of k 1 bytes from the r codewords produced from that user data block by selecting successive bytes of each sub-block cyclically from the r codewords; and a read/write controller for controlling writing, for successive groups of k 0 user data blocks, of the A s sub-blocks produced from each of the k 0 blocks to a respective sub-array (SA1 to SAk 0 ), of A s storage fields, of the storage field array such that the sub-blocks are written to the sub-arrays x sub-arrays at a time, where x is an integer in the range 1<=x<=k 0 , and such that the A s sub-blocks written to each sub-array (SA1 to SAk 0 ) are written via respective probes to the corresponding storage fields of the sub-array, and for controlling reading of the sub-blocks from the sub-arrays (SA1 to SAk 0 ) such that the sub-arrays are read y sub-arrays at a time, where y is an integer in the range 1<=y<=k 0 .
17 . A probe-based data storage device comprising:
a storage surface having an array of A d storage fields; a probe array comprising A d probes for reading and writing data in respective storage fields; and an apparatus for controlling reading and writing of user data in the array of storage fields by selectively controlling reading of sub-blocks from sub-arrays and writing to the sub-arrays at one of a series of rates, depending on a desired data read-rate and a desired data write-rate.
18 . A probe-based data storage device comprising:
a storage surface having an array of k 2 A d storage fields, where k 2 is an integer>=2; a probe array comprising k 2 A d probes for reading and writing data in respective storage fields; and a control apparatus comprising k 2 logical sub-devices (LD1 to LDk 2 ) for controlling reading and writing of data to respective logical sub-arrays, each of A d storage fields, of the storage field array via respective logical sub-arrays, each of A d probes, of the probe array, wherein each logical sub-device (LD1 to LDk 2 ) comprises apparatus as claimed in claim 16 for controlling reading and writing of user data in the respective logical sub-array of the storage field array.Join the waitlist — get patent alerts
Track US2008304379A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.