US20020038440A1 - Digital data representation for multi-bit data storage and transmission - Google Patents
Digital data representation for multi-bit data storage and transmission Download PDFInfo
- Publication number
- US20020038440A1 US20020038440A1 US09/189,244 US18924498A US2002038440A1 US 20020038440 A1 US20020038440 A1 US 20020038440A1 US 18924498 A US18924498 A US 18924498A US 2002038440 A1 US2002038440 A1 US 2002038440A1
- Authority
- US
- United States
- Prior art keywords
- data
- storage
- analog
- bits
- digital data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
Definitions
- the present invention relates to storage and transmission of digital data by analog media, discrete and continuous, and more particularly to digital data representation for multi-bit data storage and transmission.
- This coding technique is not used with multi-bit signals, where a sequence represents several bits (a word). Many applications may benefit from the representation of multi-bit (word) with a sequence and the use of multiple sequences in the same media, transmission channel or storage cells, to represent a block of data.
- a storage memory for storing digital data includes digital signal processing (DSP) means for transforming a digital data bit stream having a stored data component so as to provide improved storage capacity; means for converting the transformed digital data to form analog data; and discrete analog memory means for storing the analog data.
- DSP digital signal processing
- the drive for the present invention is the development of means to trade Ns (media noise) with Np (process contributed noise), thus allowing for storage of more bits per memory cell or increase capacity of transmission channel when compared to the amounts attainable by common practice.
- the storage media may be of any analog type, such as FLASH, RAM (D or S), EPROMS of various types and even used with continuous analog data storage or transmission. Analog storage or transmission is referred here as the general case that embodies the multi bit case.
- the present invention takes advantage of coding the data for storage by means of “orthogonal” vectors (see Dictionary of Science & Technology, by Wordsworth Editions Ltd, 1995, ISBN 1-85326-351-6, page 634), similar to the use of such means in communications. Actually, every implementation used in communications system to improve Signal-to-Noise-Ratio of discrete data sequences, might be applicable for discrete analog storage.
- the present invention may be implemented by using various means of data transformation. It is important to distinguish between this step and ECC (Error Control Coding) means which are allowing for the recovery of signals/data in noise, without the improvement of S/N. Means of ECC are applicable here as complementary means to cope with errors in the digital data after the inverse transformation or decoding.
- ECC Error Control Coding
- the process has two main steps:
- ECC Error Control Coding
- the resulting bit/data streams are organized in blocks of n words each, with m bits in each word. Contrary to conventional implementation that stores these words to n discrete analog cells, the present invention provides that these n data values will be coded to form a new block of n′ words with m′ bits each. The resulting block of data is stored in n′ discrete analog memory cells.
- the selection of the coding, n, m, n′ and m′ is made in such way to improve S/Ns (Signal to Storage Noise ratio) while maintaining low processing noise (Np), where Ns is the noise generated by the storage media and is added (or multiplied) to the analog values during the read process.
- Ns is a function of various arguments such as: process, technology, temperature, time, radiation—usually given as probability distribution function.
- the coding techniques may vary in many ways and may use known sequences.
- the selection of the Coding (and n, m, n′ and m′) is done to allow the addition of processing noise (Np) to storage noise (Ns), in controlled manner, thus the total noise levels after the processing will be below the storage noise (Ns).
- Other considerations are issues related to the required BER (Bit Error Rate)and ECC.
- FIG. 1 shows general outline of a system for implementing multi bit storage, utilizing DSP (Digital Signal Processing) algorithms according to the present invention.
- DSP Digital Signal Processing
- FIG. 2 shows the complete write process according to the present invention.
- FIG. 3 shows the complete read process according to the present invention.
- FIG. 4 shows the transformation/encoding process according to the present invention.
- FIG. 5 shows the inverse-transformation/decoding process according to the present invention.
- FIG. 6 shows a 5 bit storage per cell implementation example according to the present invention.
- FIG. 7 shows a 5 bit storage write example according to the present invention.
- FIG. 8 shows a 5 bit storage read example according to the present invention.
- FIG. 9 shows an illustration of processing impact on Storage Noise Vs Signal according to the present invention.
- FIG. 10 shows error of retrieved value as a function of stored value according to the present invention.
- FIG. 11 shows modifying the stored data to accommodate for data loss (Retention mechanism) according to the present invention.
- FIG. 12 shows use of two storage sections in same memory according to the present invention.
- FIG. 1 shows the main components of a typical storage system 10 designed for storage of digital data by means of a discrete analog memory according to the present invention.
- the digital data may be delivered to the storage system 10 , via a digital input 12 , in various ways, such as a bit stream or over a bus, and is accumulated in a temporary memory, the buffer unit 14 .
- the DSP Digital Signal Processor
- the DSP Digital Signal Processor 16
- the DSP Digital Signal Processor
- the block of data is then converted by means of an A/D 18 to analog values to be stored in the storage media (discrete memory cells) 20 .
- the DSP 16 carries out the computation in accordance with the program to result in the desired coding, and may utilize in the process various means, such as LUT (Look Up Tables) 22 .
- LUT Look Up Tables
- the n′ data values are rounded to m′ bits, and by means of a m′ bits D/A 18 , converted to analog values and stored in this form to the discrete memory cells 20 .
- the analog values are read from the memory cells 20 by means of a m′′ bits A/D 18 , and a block of n′ words-m′′ bits is stored to the buffer 14 .
- the DSP 16 When the n′ words are available for processing, the DSP 16 is computing the inverse transformation. The resulting block of n data words are translated to an m bits each.
- ECC Error Correction Control
- the DSP 16 may be used for the computation required for this process, as would be understood by one of ordinary skill in the art.
- FIG. 2 shows a complete write or storage process according to the present invention.
- the digital data to be stored is first processed for error detection and correction at stage 30 , followed by coding at stage 32 to improve S/N ratios in the reading/retrieval process.
- the digital data, processed for ECC is processed at stage 32 before actual storage.
- the resulting data is converted at stage 34 to analog form by means of a D/A (Digital to Analog) converter to an analog value to be stored at stage 36 in the Discrete Analog Storage 20 of FIG. 1.
- D/A Digital to Analog
- the complete read or retrieval process steps are shown in FIG. 3.
- the analog values are read at stage 40 from the storage media 20 and then converted to a digital form or representation at stage 42 by means of the A/D (Analog to Digital) converter.
- the digital data is then inverse transformed (the digitized analog values are restored to the original bit stream) into data that is further checked for errors and corrected, if found, at stage 46 .
- FIG. 4 shows in more detail the encoding process according to the present invention, which is the storage of digital data after the ECC process.
- the digital data is grouped in n words with m bits each.
- the resulting block of data is then processed and coded into a new block of n′ words with m′ bits each.
- the digital data is converted to an analog value to be stored as analog values at stage 56 .
- FIG. 5 shows the details of the decoding or read process according to the present invention.
- the analog data values are read from the analog storage.
- the analog values are converted to digital form by means of an m′′ bits A/D into m′′ bits words.
- the digital data are then grouped into blocks of n′ words of m′′ bits.
- the n′ words blocks of data are inverse transformed, and the inverse transformed values are further processed to generate the original n words of m bits each. Since all the process is carried in a “noisy” environment, and errors might be introduced, the block of n words is transferred to the ECC unit for error detection and correction.
- FIG. 6 shows a preferred embodiment of an Advanced Storage Memory using the present invention (it should be understood that one of ordinary skill in the art could modify the components and the algorithms of the present invention to fit various implementations).
- the data to be stored is transferred from the main system to a temporary buffer 70 , a 1024 bytes Dual Ported RAM, which allows simultaneous access to the memory from the Advanced Storage Memory and the main system.
- a non volatile memory 72 contains the DSP program memory and sequences used in the coding and ECC process.
- the DSP 74 is fulfilling the tasks of the ECC and coding described in previous sections and detailed hereafter.
- the data is stored in the Discrete Analog FLASH memory 76 .
- the interface to the DSP 74 is via a 12 bits D/A 80 and 12 bits A/D 82 .
- the control and addressing 84 of the analog memory 76 is made by the DSP 74 .
- the A/D for the retrieval process might be of higher value to improve noise/error immunity.
- FIG. 7 shows details of a 5-bit write process embodiment according to the present invention (the ECC, although carried out by the DSP, is not described here).
- the digital data after going through the ECC process, is grouped at stage 90 in blocks of 511 words of 5 bits each.
- 511 long binary sequences are computed by means of a LFSR (Linear Feedback Shift Register) or selected from a pre computed LUT (Look Up Table).
- LFSR Linear Feedback Shift Register
- LUT Look Up Table
- the amount of “rotation” equals the location of the value in the 511 block. Since 511 bits long sequences are utilized, the vector allows for unique matching of each value of 5 bits in the original 511 block. To avoid data recovery loss for extreme cases in which a block of identical values will result coded block with more then one decoding options, a different set of 32 sequences, out of the 48 available, is selected for each location/sample. The 511 resulting binary sequences, one for each of the 5 bits values, are added bit wise, to result a 511 block of data with 9 bits words each.
- the data are modified by means of a LUT (or other functional means), to a 12 bits value (or more) to optimize the actual analog values stored to the FLASH memory to take advantage of the retention mechanism of the memory (as later depicted and explained in FIGS. 10 and 11).
- the resulting 511 values are then converted by means of the 12 bits D/A to analog values to be stored to the Discrete Analog FLASH at stage 96 .
- FIG. 8 shows the details of the read process, for the above preferred embodiment of the present invention.
- the analog values are read from the FLASH memory and, at stage 102 , by means of a 12 (preferably more) bits A/D are converted to digital representation.
- the digital data is then grouped into the 511 words (the original grouping used in the write process).
- Each block of 511 values is cross correlated against each of the 32 binary PRN sequences used in the writing process (by means of a LUT or computed in real time).
- stage 106 for each location in the block the sequence that results the highest value, is matched with the 5 bits data associated with it (as during the write process). The result of the process is, if no errors occur, a block of 511, 5 bits words. Since some errors may occur in the process, the block is transferred to the ECC for further processing: error detection and correction.
- FIG. 9 shows how the processing may impact the noise in ways that reduce the probability of error while improving the relative signal power.
- the Signal In 110 represents a stored value using the conventional quantized levels approach.
- the Noise In 112 , 114 represents uncertainties in the stored values as potential changes in the values read, in the specific example, half and quarter of the minimum quantization levels, respectively. This allows for recovery of data only if it is really slightly larger then the Signal In 110 (distinguishing clearly between the various data levels).
- the data power is “improved” (Signal Out 116 ) while the Noise Out power 120 , 122 , 124 distribution is modified to allow some very high values but with very low probability of occurrence, thus allowing data recovery by means of ECC with high (fully controlled in a specific embodiment) probability and guarantee a very low error rate.
- the quantization levels of the signal before the storage process may be decreased so the values stored may be denser.
- FIG. 10 shows an example of storage retention capability, defined here as dependency of size of error as function of stored values. It should be emphasized that the use of FIG. 10 is illustrative only. For each specific memory technology, the relation of size of error (change in stored value) as function of analog value stored in the memory cell—where parameters of time, temperature/environment, uses and other—might have an impact on the graph. FIG. 10 demonstrates a case in which the extreme values stored in the memory have higher sensitivity and as result the size of error when reading them is higher. As the stored value 130 approaches the “center” value, the size of error is reduced.
- FIG. 11 shows a modification to the data to compensate for the non-uniform error distribution induced on the stored data in the memory.
- This modification is carried out after the coding, just before the actual storage/writing to the memory.
- the modification will be carried out to assure for adjacent data values 132 similar probability for error. This will be implemented by taking into account, for the specific example of FIG. 10, the values in a manner assuming the closer the value to the center the lower the error.
- the actual probability for an error will be impact by two main factor: the error size and the error rate. For different cases the appropriate matching graph will be needed.
- FIG. 12 shows a memory organization allowing for mostly efficient implementation by combining various techniques for storage. Organizing the memory in more then one sections to allow the use of a low error probability sections combined with high capacity sections.
- two sections were set: the error immune section 140 for such data as—headers, programs, LUT, parameters and the high capacity area 142 to store compressed images or voice.
- the application will determined how to use the various memory sections and they will be dynamically allocated and may be even modified based on processing results to accommodate the need for cope with changes in the error rate due to, for example, over use of certain areas of the memory (silicon) or reuse of memory with different content. Thus, not only the use of different quality memory is suggested, but also dynamic reorganization of the memory.
- a header can be used to communicate the needed information for the retrieval process.
- Two sets of sequences are used for coding in certain cases: One for the LSBs (Least Significant bits) and the other for the MSBs (Most Significant Bits).
- the LSB set will be simpler and might be more sensitive to noise.
- the decoding process may be carried out in certain order with the PRN sequences, to minimize error probability. After decoding a certain data point, the sequence is subtracted and the new block is processed, with less noise.
Abstract
The present invention provides for storage and transmission of digital data by analog media, discrete and continuous, and more particularly to digital data representation for multi-bit data storage and transmission, using means to trade Ns (media noise) with Np (process contributed noise), thus allowing for storage of more bits per memory cell or increase capacity of transmission channel when compared to the amounts attainable by common practice. The storage media may be of any analog type, such as FLASH, RAM (D or S), EPROMS of various types and even used with continuous analog data storage or transmission. Analog storage or transmission is referred here as the general case that embodies the multi bit case. The present invention takes advantage of coding the data for storage by means of “orthogonal” vectors similar to the use of such means in communications. Actually, every implementation used in communications system to improve Signal-to-Noise-Ratio of discrete data sequences, might be applicable for discrete analog storage. By transforming or coding the digital data prior to storage and store the transformed data as analog data, results an improvement in total S/N (Signal to Noise ratio), allowing for better utilization of the analog media (storage or transmission) when compared with the implementation of conventional approaches. In the case of discrete analog memory, the better utilization is measured by the average amount of bits of data stored in each memory cell. The present invention may be implemented by using various means of data transformation. It is important to distinguish between this step and ECC (Error Control Coding) means which are allowing for the recovery of signals/data in noise, without the improvement of S/N. Means of ECC are applicable here as complementary means to cope with errors in the digital data after the inverse transformation or decoding.
Description
- The present application is related to provisional patent application Serial No. 60/082,458, filed Apr. 20, 1998 entitled “Digital Data Representation for Multi-Bit Storage And Transmission”, and the benefit of the earlier Apr. 20, 1998 filing date is claimed for the present application in accordance with 35 U.S.C. § 119 (e)(1).
- The present invention relates to storage and transmission of digital data by analog media, discrete and continuous, and more particularly to digital data representation for multi-bit data storage and transmission.
- One common practice for transmission of binary data is by means of bit representation as sequences of binary streams. See, for example, Spread Spectrum Systems, 2nd edition, 1984 by Robert C. Dixon.
- The coding technique described in that reference is used by various transmission systems to overcome issues of interference, such as inter-symbol, channel jamming and other. One typical advantage to the use of PRN (Pseudo Random Noise) sequences is the ability of several users sharing the same frequency in the same time.
- This coding technique is not used with multi-bit signals, where a sequence represents several bits (a word). Many applications may benefit from the representation of multi-bit (word) with a sequence and the use of multiple sequences in the same media, transmission channel or storage cells, to represent a block of data.
- It is an object of the present invention to provide for storage and transmission of digital data by analog media, discrete and continuous, and more particularly to digital data representation for multi-bit data storage and transmission. A storage memory according to the present invention for storing digital data includes digital signal processing (DSP) means for transforming a digital data bit stream having a stored data component so as to provide improved storage capacity; means for converting the transformed digital data to form analog data; and discrete analog memory means for storing the analog data.
- The drive for the present invention is the development of means to trade Ns (media noise) with Np (process contributed noise), thus allowing for storage of more bits per memory cell or increase capacity of transmission channel when compared to the amounts attainable by common practice. The storage media may be of any analog type, such as FLASH, RAM (D or S), EPROMS of various types and even used with continuous analog data storage or transmission. Analog storage or transmission is referred here as the general case that embodies the multi bit case.
- The present invention takes advantage of coding the data for storage by means of “orthogonal” vectors (see Dictionary of Science & Technology, by Wordsworth Editions Ltd, 1995, ISBN 1-85326-351-6, page 634), similar to the use of such means in communications. Actually, every implementation used in communications system to improve Signal-to-Noise-Ratio of discrete data sequences, might be applicable for discrete analog storage.
- By transforming or coding the digital data prior to storage and store the transformed data as analog data, results an improvement in total S/N (Signal to Noise ratio), allowing for better utilization of the analog media (storage or transmission) when compared with the implementation of conventional approaches. In the case of discrete analog memory, the better utilization is measured by the average amount of bits of data stored in each memory cell.
- The present invention may be implemented by using various means of data transformation. It is important to distinguish between this step and ECC (Error Control Coding) means which are allowing for the recovery of signals/data in noise, without the improvement of S/N. Means of ECC are applicable here as complementary means to cope with errors in the digital data after the inverse transformation or decoding.
- The process has two main steps:
- 1. Error Control Coding.
- 2. Coding/Decoding of the resulting bit/word stream.
- The ECC (Error Control Coding) needs to be properly implemented with the new processing. The application of this means may be carried out by conventional means, but new techniques will take advantage of the a priori known decoded data.
- After applying ECC and adding the required bits/data, the resulting bit/data streams are organized in blocks of n words each, with m bits in each word. Contrary to conventional implementation that stores these words to n discrete analog cells, the present invention provides that these n data values will be coded to form a new block of n′ words with m′ bits each. The resulting block of data is stored in n′ discrete analog memory cells. The selection of the coding, n, m, n′ and m′ is made in such way to improve S/Ns (Signal to Storage Noise ratio) while maintaining low processing noise (Np), where Ns is the noise generated by the storage media and is added (or multiplied) to the analog values during the read process. Ns is a function of various arguments such as: process, technology, temperature, time, radiation—usually given as probability distribution function.
- The coding techniques may vary in many ways and may use known sequences. The selection of the Coding (and n, m, n′ and m′) is done to allow the addition of processing noise (Np) to storage noise (Ns), in controlled manner, thus the total noise levels after the processing will be below the storage noise (Ns). Other considerations are issues related to the required BER (Bit Error Rate)and ECC.
- Since the exact contribution of the processing noise may be computed before the actual storage of the data, by means of decoding prior to the actual storage, further improvement may be gained by optimizing the ECC (Error Control Coding) means, and minimize the overhead contributed by the ECC to achieve a certain BER (Bit Error Rate).
- Other objects, features and advantages of the present invention will become apparent from the following detailed description when taken in conjunction with the accompanying drawings.
- The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
- FIG. 1 shows general outline of a system for implementing multi bit storage, utilizing DSP (Digital Signal Processing) algorithms according to the present invention.
- FIG. 2 shows the complete write process according to the present invention.
- FIG. 3 shows the complete read process according to the present invention.
- FIG. 4 shows the transformation/encoding process according to the present invention.
- FIG. 5 shows the inverse-transformation/decoding process according to the present invention.
- FIG. 6 shows a 5 bit storage per cell implementation example according to the present invention.
- FIG. 7 shows a 5 bit storage write example according to the present invention.
- FIG. 8 shows a 5 bit storage read example according to the present invention.
- FIG. 9 shows an illustration of processing impact on Storage Noise Vs Signal according to the present invention.
- FIG. 10 shows error of retrieved value as a function of stored value according to the present invention.
- FIG. 11 shows modifying the stored data to accommodate for data loss (Retention mechanism) according to the present invention.
- FIG. 12 shows use of two storage sections in same memory according to the present invention.
- Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to those embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims.
- FIG. 1 shows the main components of a typical storage system10 designed for storage of digital data by means of a discrete analog memory according to the present invention. The digital data may be delivered to the storage system 10, via a
digital input 12, in various ways, such as a bit stream or over a bus, and is accumulated in a temporary memory, thebuffer unit 14. Once a block of data, n words-m bits, is available for processing, the DSP (Digital Signal Processor) 16 (which represents either a simple logic circuit or a complex processor) processes the block of data and generates a new block of data with n′ words-m′ bits each. The block of data is then converted by means of an A/D 18 to analog values to be stored in the storage media (discrete memory cells) 20. The DSP 16 carries out the computation in accordance with the program to result in the desired coding, and may utilize in the process various means, such as LUT (Look Up Tables) 22. Once the transformation is done, the n′ data values are rounded to m′ bits, and by means of a m′ bits D/A 18, converted to analog values and stored in this form to thediscrete memory cells 20. When the stored data is needed, the analog values are read from thememory cells 20 by means of a m″ bits A/D 18, and a block of n′ words-m″ bits is stored to thebuffer 14. When the n′ words are available for processing, theDSP 16 is computing the inverse transformation. The resulting block of n data words are translated to an m bits each. Although the ECC (Error Correction Control) is not detailed, it is worth noting that theDSP 16 may be used for the computation required for this process, as would be understood by one of ordinary skill in the art. - FIG. 2 shows a complete write or storage process according to the present invention. The digital data to be stored is first processed for error detection and correction at
stage 30, followed by coding atstage 32 to improve S/N ratios in the reading/retrieval process. The digital data, processed for ECC is processed atstage 32 before actual storage. The resulting data is converted atstage 34 to analog form by means of a D/A (Digital to Analog) converter to an analog value to be stored atstage 36 in theDiscrete Analog Storage 20 of FIG. 1. - The complete read or retrieval process steps are shown in FIG. 3. The analog values are read at
stage 40 from thestorage media 20 and then converted to a digital form or representation atstage 42 by means of the A/D (Analog to Digital) converter. Atstage 44, the digital data is then inverse transformed (the digitized analog values are restored to the original bit stream) into data that is further checked for errors and corrected, if found, atstage 46. - FIG. 4 shows in more detail the encoding process according to the present invention, which is the storage of digital data after the ECC process. At
stage 50, the digital data is grouped in n words with m bits each. Atstage 52, the resulting block of data is then processed and coded into a new block of n′ words with m′ bits each. Atstage 54, by means of m′ bits D/A converter, the digital data is converted to an analog value to be stored as analog values atstage 56. - FIG. 5 shows the the details of the decoding or read process according to the present invention. At
stage 60, the analog data values are read from the analog storage. Atstage 62, the analog values are converted to digital form by means of an m″ bits A/D into m″ bits words. Atstage 64, the digital data are then grouped into blocks of n′ words of m″ bits. Atstages - FIG. 6 shows a preferred embodiment of an Advanced Storage Memory using the present invention (it should be understood that one of ordinary skill in the art could modify the components and the algorithms of the present invention to fit various implementations). In FIG. 6, the data to be stored is transferred from the main system to a temporary buffer70, a 1024 bytes Dual Ported RAM, which allows simultaneous access to the memory from the Advanced Storage Memory and the main system. A non
volatile memory 72 contains the DSP program memory and sequences used in the coding and ECC process. TheDSP 74 is fulfilling the tasks of the ECC and coding described in previous sections and detailed hereafter. The data is stored in the DiscreteAnalog FLASH memory 76. The interface to theDSP 74 is via a 12 bits D/A D 82. The control and addressing 84 of theanalog memory 76 is made by theDSP 74. The A/D for the retrieval process might be of higher value to improve noise/error immunity. - FIG. 7 shows details of a 5-bit write process embodiment according to the present invention (the ECC, although carried out by the DSP, is not described here). In FIG. 7, the digital data, after going through the ECC process, is grouped at
stage 90 in blocks of 511 words of 5 bits each. Based on PN coding technology (mentioned earlier), 511 long binary sequences are computed by means of a LFSR (Linear Feedback Shift Register) or selected from a pre computed LUT (Look Up Table). An example for generating 32 sequences, which is required when coding 5 bits,is provided in the reference, Spread Spectrum Systems, 2nd addition, 1984, by Robert C. Dixon. Of particular interest is the table 3.3 on page 67, which specifies the existence of 48 Maximal length sequences for 9 bits long Shift Register. To code the 5 bits only 32 sequences out of the 48 are required. The 32 sequences that provide the best signal to noise ratio during the retrieval process, are selected (or computed in real time). Atstage 92, For each data in the block of 511 words, a specific sequence is selected based on its value and according to its location in the block the sequence is “rotated” (or “phase shifted”) to provide the unique matching of sequence to each data value of 5 bits. The “phase difference” between the sequences used for coding the same data values will allow their proper retrieval during the read process, by maximizing the cross correlation functions in the specific locations. The amount of “rotation” equals the location of the value in the 511 block. Since 511 bits long sequences are utilized, the vector allows for unique matching of each value of 5 bits in the original 511 block. To avoid data recovery loss for extreme cases in which a block of identical values will result coded block with more then one decoding options, a different set of 32 sequences, out of the 48 available, is selected for each location/sample. The 511 resulting binary sequences, one for each of the 5 bits values, are added bit wise, to result a 511 block of data with 9 bits words each. - At
stage 94, prior to storing a 9 bits value in the memory cell, the data are modified by means of a LUT (or other functional means), to a 12 bits value (or more) to optimize the actual analog values stored to the FLASH memory to take advantage of the retention mechanism of the memory (as later depicted and explained in FIGS. 10 and 11). The resulting 511 values are then converted by means of the 12 bits D/A to analog values to be stored to the Discrete Analog FLASH atstage 96. - FIG. 8 shows the details of the read process, for the above preferred embodiment of the present invention. At
stage 100, the analog values are read from the FLASH memory and, atstage 102, by means of a 12 (preferably more) bits A/D are converted to digital representation. Atstage 104, the digital data is then grouped into the 511 words (the original grouping used in the write process). Each block of 511 values is cross correlated against each of the 32 binary PRN sequences used in the writing process (by means of a LUT or computed in real time). Atstage 106, for each location in the block the sequence that results the highest value, is matched with the 5 bits data associated with it (as during the write process). The result of the process is, if no errors occur, a block of 511, 5 bits words. Since some errors may occur in the process, the block is transferred to the ECC for further processing: error detection and correction. - FIG. 9 shows how the processing may impact the noise in ways that reduce the probability of error while improving the relative signal power. The Signal In110 represents a stored value using the conventional quantized levels approach. The Noise In 112, 114 represents uncertainties in the stored values as potential changes in the values read, in the specific example, half and quarter of the minimum quantization levels, respectively. This allows for recovery of data only if it is really slightly larger then the Signal In 110 (distinguishing clearly between the various data levels). Since the processing results in coherent processing of the stored signal—for example, coding before storage and then decoding for the reading process—the data power is “improved” (Signal Out 116) while the Noise Out
power 120, 122, 124 distribution is modified to allow some very high values but with very low probability of occurrence, thus allowing data recovery by means of ECC with high (fully controlled in a specific embodiment) probability and guarantee a very low error rate. By concentrating the Noise Out 120 in the range close to zero, the quantization levels of the signal before the storage process may be decreased so the values stored may be denser. - FIG. 10 shows an example of storage retention capability, defined here as dependency of size of error as function of stored values. It should be emphasized that the use of FIG. 10 is illustrative only. For each specific memory technology, the relation of size of error (change in stored value) as function of analog value stored in the memory cell—where parameters of time, temperature/environment, uses and other—might have an impact on the graph. FIG. 10 demonstrates a case in which the extreme values stored in the memory have higher sensitivity and as result the size of error when reading them is higher. As the stored
value 130 approaches the “center” value, the size of error is reduced. - FIG. 11 shows a modification to the data to compensate for the non-uniform error distribution induced on the stored data in the memory. This modification is carried out after the coding, just before the actual storage/writing to the memory. The modification will be carried out to assure for
adjacent data values 132 similar probability for error. This will be implemented by taking into account, for the specific example of FIG. 10, the values in a manner assuming the closer the value to the center the lower the error. The actual probability for an error will be impact by two main factor: the error size and the error rate. For different cases the appropriate matching graph will be needed. - FIG. 12 shows a memory organization allowing for mostly efficient implementation by combining various techniques for storage. Organizing the memory in more then one sections to allow the use of a low error probability sections combined with high capacity sections. In FIG. 12, two sections were set: the error
immune section 140 for such data as—headers, programs, LUT, parameters and the high capacity area 142 to store compressed images or voice. The application will determined how to use the various memory sections and they will be dynamically allocated and may be even modified based on processing results to accommodate the need for cope with changes in the error rate due to, for example, over use of certain areas of the memory (silicon) or reuse of memory with different content. Thus, not only the use of different quality memory is suggested, but also dynamic reorganization of the memory. - By implementing the cross-correlation prior to the actual storage, knowledge is gained about the potential noise contribution of the process. For each data point, results of the cross-correlation with the other PRN sequences are obtained. The larger the correlation with the right sequence, for a specific data point, the better.
- The data point that result in their location higher values for the cross-correlation with the unmatched sequences are more susceptible to noise/error. By reviewing the results of the cross-correlation and the decoding prior to the actual storage will provide information with regard to:
- Scaling
- Selection of # of bits
- ECC technique (potential for error)
- Modification of data to reduce error probability
- Select an optimal set of PRN sequence
- Modify process and storage technique
- A header can be used to communicate the needed information for the retrieval process.
- Two sets of sequences are used for coding in certain cases: One for the LSBs (Least Significant bits) and the other for the MSBs (Most Significant Bits). The LSB set will be simpler and might be more sensitive to noise.
- The decoding process may be carried out in certain order with the PRN sequences, to minimize error probability. After decoding a certain data point, the sequence is subtracted and the new block is processed, with less noise.
- As has been described above, the present invention provides several important advantages and features:
- 1. Coding of the digital data prior to the storage in discrete analog media to improve system total signal to noise ratio.
- 2. Exact measurement of processing noise prior to actual storage of the data.
- 3. Optimization of ECC to the exact processing noise.
- The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and it should be understood that many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.
Claims (15)
1. A storage memory for storing digital data comprising:
digital signal processing (DSP) means for transforming a digital data bit stream having a stored data component so as to provide improved storage capacity;
means for converting the transformed digital data to form analog data; and
discrete analog memory means for storing the analog data.
2. A storage memory as in claim 1 wherein the digital data bit stream is organized into blocks of data having n words in each block with m bits in each word and wherein transformed bit stream is formed into new blocks of n′ words in each new block with m′ bits in each new word.
3. A storage memory as in claim 2 wherein n′ and m′ are equal to or greater than n and m, respectively.
4. A storage memory as in claim 3 including error correction process (ECC) means for forming ECC coded digital data prior to the data transformation.
5. A storage memory as in claim 4 wherein the digital data stream has signal in components and noise in components, the storage memory including means for coherently processing the stored signal to form improved signal out components while forming noise out components which are modified to have some high but with very low probability of occurrence, the ECC means providing data recovery with high probability and a very low error rate.
6. The storage memory as in claim 5 including means for concentrating the noise out components the range close to zero to allow for decreasing the quantization levels of the signal before storage so that the stored values are denser for a given error rate.
7. A storage memory as in claim 6 including
means for reading the analog data;
means for converting the analog data to form digitized analog data; and
means for restoring the digitized analog data to the original digital bit stream.
8. A storage memory as in claim 7 including
DSP means for recovering the stored data.
9. A storage memory as in claim 8 including
means for grouping the ECC coded digital data into blocks of n words of m bits each;
means for converting the blocks of words into new blocks of n′ words of m′ bits each; and
means for converting the coded data to form the analog data to be stored in the storage media.
10. A storage memory as in claim 9 including
means for reading the stored analog data;
means for converting the read analog data to form digital data;
means for grouping the digital data into n′ words of m″ bits;
means for grouping the digital data of n′ words of m″ bits to form n words of m bits; and
means for recovering the original bits from the block of n words.
11. A storage memory as in claim 10 including wherein mapping of the digital m′ bits values to be stored as a function of the stored analog values.
12. A storage memory as in claim 11 wherein the value written to the memory means is a nonlinear function of the data value after coding.
13. A storage memory as in claim 12 wherein the memory means includes a low error rate area and a high capacity storage region area.
14. In a storage memory for storing digital data, the method comprising the steps of:
transforming a digital data bit stream having a stored data component so as to provide improved storage capacity;
converting the transformed digital data to form analog data; and
storing the analog data.
15. The method as in claim 14 including the steps of organizing the digital data bit stream into blocks of data having n words in each block with m bits in each word and wherein transformed bit stream is formed into new blocks of n′ words in each new block with m′ bits in each new word.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/189,244 US6397364B1 (en) | 1998-04-20 | 1998-11-10 | Digital data representation for multi-bit data storage and transmission |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8245898P | 1998-04-20 | 1998-04-20 | |
US09/189,244 US6397364B1 (en) | 1998-04-20 | 1998-11-10 | Digital data representation for multi-bit data storage and transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020038440A1 true US20020038440A1 (en) | 2002-03-28 |
US6397364B1 US6397364B1 (en) | 2002-05-28 |
Family
ID=26767477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/189,244 Expired - Fee Related US6397364B1 (en) | 1998-04-20 | 1998-11-10 | Digital data representation for multi-bit data storage and transmission |
Country Status (1)
Country | Link |
---|---|
US (1) | US6397364B1 (en) |
Cited By (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007084749A2 (en) | 2006-01-20 | 2007-07-26 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US20080126686A1 (en) * | 2006-11-28 | 2008-05-29 | Anobit Technologies Ltd. | Memory power and performance management |
US20080148115A1 (en) * | 2006-12-17 | 2008-06-19 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US20080163026A1 (en) * | 2006-12-29 | 2008-07-03 | Nedeljko Varnica | Concatenated codes for holographic storage |
US20080198650A1 (en) * | 2006-05-12 | 2008-08-21 | Anobit Technologies Ltd. | Distortion Estimation And Cancellation In Memory Devices |
US20090043951A1 (en) * | 2007-08-06 | 2009-02-12 | Anobit Technologies Ltd. | Programming schemes for multi-level analog memory cells |
US20090157964A1 (en) * | 2007-12-16 | 2009-06-18 | Anobit Technologies Ltd. | Efficient data storage in multi-plane memory devices |
US20090213654A1 (en) * | 2008-02-24 | 2009-08-27 | Anobit Technologies Ltd | Programming analog memory cells for reduced variance after retention |
US20100110787A1 (en) * | 2006-10-30 | 2010-05-06 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US20100131826A1 (en) * | 2006-08-27 | 2010-05-27 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US20100131827A1 (en) * | 2007-05-12 | 2010-05-27 | Anobit Technologies Ltd | Memory device with internal signap processing unit |
US20100165730A1 (en) * | 2006-10-30 | 2010-07-01 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US20100220509A1 (en) * | 2009-03-01 | 2010-09-02 | Anobit Technologies Ltd | Selective Activation of Programming Schemes in Analog Memory Cell Arrays |
US20110003289A1 (en) * | 2009-03-17 | 2011-01-06 | University Of Washington | Method for detection of pre-neoplastic fields as a cancer biomarker in ulcerative colitis |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8369141B2 (en) | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8671244B2 (en) | 2006-07-31 | 2014-03-11 | Google Inc. | Simulating a memory standard |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US20140197863A1 (en) * | 2013-01-15 | 2014-07-17 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US9021328B2 (en) | 2013-01-15 | 2015-04-28 | International Business Machines Corporation | Shared error protection for register banks |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US9043683B2 (en) | 2013-01-23 | 2015-05-26 | International Business Machines Corporation | Error protection for integrated circuits |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US9201727B2 (en) | 2013-01-15 | 2015-12-01 | International Business Machines Corporation | Error protection for a data bus |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7116602B2 (en) * | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US8177823B2 (en) | 2005-06-30 | 2012-05-15 | Depuy Spine Sarl | Orthopedic clamping hook assembly |
WO2007132452A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
WO2007132458A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device programming using combined shaping and linear spreading |
US20070266296A1 (en) * | 2006-05-15 | 2007-11-15 | Conley Kevin M | Nonvolatile Memory with Convolutional Coding |
US7840875B2 (en) * | 2006-05-15 | 2010-11-23 | Sandisk Corporation | Convolutional coding methods for nonvolatile memory |
US7904783B2 (en) * | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US7805663B2 (en) | 2006-09-28 | 2010-09-28 | Sandisk Corporation | Methods of adapting operation of nonvolatile memory |
US20080092015A1 (en) * | 2006-09-28 | 2008-04-17 | Yigal Brandman | Nonvolatile memory with adaptive operation |
US7818653B2 (en) * | 2006-09-28 | 2010-10-19 | Sandisk Corporation | Methods of soft-input soft-output decoding for nonvolatile memory |
US7558109B2 (en) * | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
US8001441B2 (en) * | 2006-11-03 | 2011-08-16 | Sandisk Technologies Inc. | Nonvolatile memory with modulated error correction coding |
US7904780B2 (en) | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
US7593263B2 (en) | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8503242B2 (en) | 2011-04-14 | 2013-08-06 | Micron Technology, Inc. | Methods and devices for determining sensing voltages |
US9865353B1 (en) | 2016-08-02 | 2018-01-09 | Kabushiki Kaisha Toshiba | Cell location programming for storage systems |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5380105A (en) * | 1976-12-24 | 1978-07-15 | Sony Corp | Digital signal transmission method |
DE3218066A1 (en) * | 1981-07-08 | 1983-01-27 | Siemens AG, 1000 Berlin und 8000 München | METHOD FOR TESTING ANALOG-DIGITAL CONVERTERS AND / OR DIGITAL-ANALOG CONVERTERS OR MESSAGE-TECHNICAL TRANSMISSION SECTIONS THAT CONTAIN SUCH CONVERTERS OR ARE IN SERIES WITH THEM, ESPECIALLY TO MAKE A CUTTER PROCEDURE |
US4415767A (en) | 1981-10-19 | 1983-11-15 | Votan | Method and apparatus for speech recognition and reproduction |
JPS61158078A (en) * | 1984-12-28 | 1986-07-17 | Sony Corp | Information reproducing device |
JPS6337868A (en) | 1986-07-30 | 1988-02-18 | Canon Inc | Picture signal recorder |
JP3486945B2 (en) | 1994-02-24 | 2004-01-13 | ソニー株式会社 | Rotating head type recording / reproducing device |
JPH08214265A (en) | 1995-01-31 | 1996-08-20 | Sony Corp | Method and device for reproducing encoded data |
-
1998
- 1998-11-10 US US09/189,244 patent/US6397364B1/en not_active Expired - Fee Related
Cited By (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053051B2 (en) | 2006-01-20 | 2015-06-09 | Marvell World Trade Ltd. | Multi-level memory controller with probability-distribution-based encoding |
TWI455137B (en) * | 2006-01-20 | 2014-10-01 | Marvell World Trade Ltd | Method and system for error correction in flash memory |
US7844879B2 (en) | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US8677215B2 (en) | 2006-01-20 | 2014-03-18 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
EP1987519A4 (en) * | 2006-01-20 | 2009-07-29 | Marvell World Trade Ltd | Method and system for error correction in flash memory |
US20110060969A1 (en) * | 2006-01-20 | 2011-03-10 | Marvell International Ltd. | Method and system for error correction in flash memory |
EP1987519A2 (en) * | 2006-01-20 | 2008-11-05 | Marvell World Trade Ltd | Method and system for error correction in flash memory |
US8856622B2 (en) | 2006-01-20 | 2014-10-07 | Marvell World Trade Ltd. | Apparatus and method for encoding data for storage in multi-level nonvolatile memory |
US20070171730A1 (en) * | 2006-01-20 | 2007-07-26 | Marvell International Ltd. | Method and system for error correction in flash memory |
WO2007084749A2 (en) | 2006-01-20 | 2007-07-26 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US8473812B2 (en) | 2006-01-20 | 2013-06-25 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
US8570804B2 (en) | 2006-05-12 | 2013-10-29 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US20080198650A1 (en) * | 2006-05-12 | 2008-08-21 | Anobit Technologies Ltd. | Distortion Estimation And Cancellation In Memory Devices |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US8599611B2 (en) | 2006-05-12 | 2013-12-03 | Apple Inc. | Distortion estimation and cancellation in memory devices |
US8671244B2 (en) | 2006-07-31 | 2014-03-11 | Google Inc. | Simulating a memory standard |
US20100131826A1 (en) * | 2006-08-27 | 2010-05-27 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US8060806B2 (en) | 2006-08-27 | 2011-11-15 | Anobit Technologies Ltd. | Estimation of non-linear distortion in memory devices |
US20100165730A1 (en) * | 2006-10-30 | 2010-07-01 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US8145984B2 (en) | 2006-10-30 | 2012-03-27 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US20100110787A1 (en) * | 2006-10-30 | 2010-05-06 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
USRE46346E1 (en) | 2006-10-30 | 2017-03-21 | Apple Inc. | Reading memory cells using multiple thresholds |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US20110225472A1 (en) * | 2006-10-30 | 2011-09-15 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US20080126686A1 (en) * | 2006-11-28 | 2008-05-29 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US20080148115A1 (en) * | 2006-12-17 | 2008-06-19 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7900102B2 (en) * | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US8583981B2 (en) | 2006-12-29 | 2013-11-12 | Marvell World Trade Ltd. | Concatenated codes for holographic storage |
US20080163026A1 (en) * | 2006-12-29 | 2008-07-03 | Nedeljko Varnica | Concatenated codes for holographic storage |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US8369141B2 (en) | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US20100131827A1 (en) * | 2007-05-12 | 2010-05-27 | Anobit Technologies Ltd | Memory device with internal signap processing unit |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US20090043951A1 (en) * | 2007-08-06 | 2009-02-12 | Anobit Technologies Ltd. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US20090157964A1 (en) * | 2007-12-16 | 2009-06-18 | Anobit Technologies Ltd. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US20090213654A1 (en) * | 2008-02-24 | 2009-08-27 | Anobit Technologies Ltd | Programming analog memory cells for reduced variance after retention |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US20100220509A1 (en) * | 2009-03-01 | 2010-09-02 | Anobit Technologies Ltd | Selective Activation of Programming Schemes in Analog Memory Cell Arrays |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US20110003289A1 (en) * | 2009-03-17 | 2011-01-06 | University Of Washington | Method for detection of pre-neoplastic fields as a cancer biomarker in ulcerative colitis |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US20140197863A1 (en) * | 2013-01-15 | 2014-07-17 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US9041428B2 (en) * | 2013-01-15 | 2015-05-26 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US9201727B2 (en) | 2013-01-15 | 2015-12-01 | International Business Machines Corporation | Error protection for a data bus |
US9021328B2 (en) | 2013-01-15 | 2015-04-28 | International Business Machines Corporation | Shared error protection for register banks |
US9043683B2 (en) | 2013-01-23 | 2015-05-26 | International Business Machines Corporation | Error protection for integrated circuits |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
US6397364B1 (en) | 2002-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6397364B1 (en) | Digital data representation for multi-bit data storage and transmission | |
US6467062B1 (en) | Digital data (multi-bit) storage with discrete analog memory cells | |
US7460667B2 (en) | Digital hidden data transport (DHDT) | |
US6876774B2 (en) | Method and apparatus for compressing data string | |
KR100498457B1 (en) | The improved method of compressing look up table for reducing memory and non-linear function generating apparatus having look up table compressed using the method and the non-linear function generating method | |
US6854082B1 (en) | Unequal error protection Reed-Muller code generator and decoder | |
US6891976B2 (en) | Method to decode variable length codes with regular bit pattern prefixes | |
WO1989001660A1 (en) | Apparatus for computing multiplicative inverses in data encoding decoding devices | |
JP2009278686A (en) | Turbo decoder with circular redundancy code signature comparison | |
US6741191B2 (en) | Huffman decoding method and apparatus | |
US5379306A (en) | Viterbi decoding method | |
CN114640354A (en) | Data compression method and device, electronic equipment and computer readable storage medium | |
US6313767B1 (en) | Decoding apparatus and method | |
US5982306A (en) | Variable-length coding method and apparatus thereof | |
US5890105A (en) | Low bit rate coding system for high speed compression of speech data | |
KR100539287B1 (en) | Transmission system and method using an improved signal encoder and decoder, and encoding and decoding method | |
KR100485545B1 (en) | Block interleave device, block deinterleave device, block interleave method, and block deinterleave method | |
US6813700B2 (en) | Reduction of bus switching activity using an encoder and decoder | |
Chan et al. | Enhanced multistage vector quantization with constrained storage | |
WO2001093494A1 (en) | Error-correcting code adapted for memories that store multiple bits per storage cell | |
US6098192A (en) | Cost reduced finite field processor for error correction in computer storage devices | |
JP3801501B2 (en) | Encoding apparatus, decoding apparatus, encoding / decoding apparatus, encoding method, decoding method, encoding / decoding method, and program | |
Huang et al. | A security-based steganographic scheme in vector quantization coding between correlated neighboring blocks | |
US20220236949A1 (en) | Multiplication and accumulation (mac) operator | |
US5222036A (en) | Device and method for evaluating trigonometric functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REFU | Refund |
Free format text: REFUND - SURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL (ORIGINAL EVENT CODE: R2551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20100528 |