Patents by Inventor Micha Anholt

Micha Anholt has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20140201596
    Abstract: A method includes storing data that is encoded with an Error Correction Code (ECC) in a group of analog memory cells. The memory cells in the group are read using multiple sets of read thresholds. The memory cells in the group are divided into two or more subsets. N partial syndromes of the ECC are computed, each partial syndrome computed over readout results that were read using a respective set of the read thresholds from a respective subset of the memory cells. For each possible N-bit combination of N bit values at corresponding bit positions in the N partial syndromes, a respective count of the bit positions in which the combination occurs is determined, so as to produce a plurality of counts. An optimal set of read thresholds is calculated based on the counts, and data recovery is performed using the optimal read thresholds.
    Type: Application
    Filed: January 17, 2013
    Publication date: July 17, 2014
    Applicant: APPLE INC.
    Inventors: Barak Baum, Micha Anholt
  • Patent number: 8773905
    Abstract: A method includes performing a read operation that reads data from a group of analog memory cells using at least one read threshold, to produce readout results. A detection is made that the read threshold is set in a restricted range that causes the readout results not to reflect the read threshold. The data is reproduced from the group of the memory cells while compensating for the read threshold that is set in the restricted range.
    Type: Grant
    Filed: March 6, 2013
    Date of Patent: July 8, 2014
    Assignee: Apple Inc.
    Inventors: Alex Radinski, Barak Baum, Eyal Gurgi, Micha Anholt, Ronen Dar, Tomer Ish-Shalom, Yael Shur
  • Patent number: 8773904
    Abstract: A method includes storing data in a group of analog memory cells. The memory cells in the group are read using first read thresholds to produce first readout results, and re-read using second read thresholds to produce second readout results. Third read thresholds, which include at least one of the first read thresholds and at least one of the second read thresholds, are defined. Readout performance of the first, second and third read thresholds is evaluated based on the first and second readout results. The first, second or third read thresholds are selected based on the evaluated readout performance, and data recovery is performed using the selected read thresholds.
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: July 8, 2014
    Assignee: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer
  • Patent number: 8767459
    Abstract: A method for data storage includes accepting data for storage in an array of analog memory cells, which are arranged in rows associated with respective word lines. At least a first page of the data is stored in a first row of the array, and at least a second page of the data is stored in a second row of the array, having a different word line from the first row. After storing the first and second pages, a third page of the data is stored jointly in the first and second rows.
    Type: Grant
    Filed: July 28, 2011
    Date of Patent: July 1, 2014
    Assignee: Apple Inc.
    Inventors: Yoav Kasorla, Naftali Sommer, Eyal Gurgi, Micha Anholt
  • Publication number: 20140164884
    Abstract: Methods for Error Correction Code (ECC) decoding include producing syndromes from a set of bits, which represent data that has been encoded with the ECC. An Error Locator Polynomial (ELP) is generated based on the syndromes. At least some of the ELP roots are identified, and the errors indicated by these roots are corrected. Each syndrome may be produced by applying to the bits vector operations in a vector space. Each syndrome is produced by applying vector operations using a different basis of the vector space. The ELP may be evaluated on a given field element by operating on ELP coefficients using serial multipliers, wherein each serial multiplier performs a sequence of multiplication cycles and produces an interim result in each cycle. Responsively to detecting at least one interim result indicating that the given element is not an ELP root, the multiplication cycles are terminated before completion of the sequence.
    Type: Application
    Filed: February 18, 2014
    Publication date: June 12, 2014
    Applicant: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer, Gil Semo, Tal Inbar
  • Publication number: 20140149820
    Abstract: A method includes accepting a definition of a mother Error Correction Code (ECC) that is represented by a set of parity check equations and includes first code words, and a definition of a punctured ECC that includes second code words and is derived from the mother ECC by removal of one or more of the parity check equations and removal of one or more punctured check symbols selected from among check symbols of the first code words. A mother decoder, which is designed to decode the mother ECC by exchanging messages between symbol nodes and check nodes in accordance with a predefined interconnection scheme that represents the mother ECC, is provided. An input code word of the punctured ECC is decoded using the mother decoder by initializing one or more of the symbol nodes and controlling one or more of the messages, and while retaining the interconnection scheme.
    Type: Application
    Filed: November 26, 2013
    Publication date: May 29, 2014
    Applicant: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer, Tal Inbar
  • Patent number: 8739007
    Abstract: A method for decoding an Error Correction Code (ECC) includes accepting coefficients, including at least first and second coefficients, of an Error Locator Polynomial (ELP) that is defined over a vector space and has at least one root that is indicative of a location of an error in a set of bits, which represent data that has been encoded with the ECC. The first coefficient is represented using a first basis of the vector space, and the second coefficient is represented using a second basis of the vector space, different from the first basis. Using processing circuitry, the root of the ELP is identified by applying algebraic operations to the coefficients, such that the algebraic operations are applied to the first coefficient using the first basis, and to the second coefficient using the second basis. The error is corrected responsively to the identified root of the ELP.
    Type: Grant
    Filed: May 16, 2013
    Date of Patent: May 27, 2014
    Assignee: Apple Inc.
    Inventor: Micha Anholt
  • Patent number: 8719678
    Abstract: Apparatus for encoding includes a first processing stage, which is configured to filter input data with a first set of coefficients belonging to a first generator polynomial representing a first ECC, to produce a first output. A second processing stage is configured to filter the first output using a second set of coefficients belonging to a quotient polynomial, which is defined as a quotient of a second generator polynomial, representing a second ECC, divided by the first generator polynomial, to produce a second output. Ancillary circuitry has first and second operational modes and is coupled to the first and second processing stages so as to generate a first redundancy output corresponding to the first ECC based on the first output when operating in the first mode, and to generate a second redundancy output corresponding to the second ECC based on the second output when operating in the second mode.
    Type: Grant
    Filed: October 23, 2013
    Date of Patent: May 6, 2014
    Assignee: Apple Inc.
    Inventor: Micha Anholt
  • Publication number: 20140119089
    Abstract: A method for data storage includes, in a first programming phase, storing first data in a group of analog memory cells by programming the memory cells in the group to a set of initial programming levels. In a second programming phase that is subsequent to the first programming phase, second data is stored in the group by: identifying the memory cells in the group that were programmed in the first programming phase to respective levels in a predefined partial subset of the initial programming levels; and programming only the identified memory cells with the second data, so as to set at least some of the identified memory cells to one or more additional programming levels that are different from the initial programming levels.
    Type: Application
    Filed: January 6, 2014
    Publication date: May 1, 2014
    Applicant: Apple Inc.
    Inventors: Avraham Meir, Micha Anholt, Naftali Sommer, Eyal Gurgi
  • Patent number: 8713330
    Abstract: A method for data storage includes scrambling data for storage in a memory device using a given scrambling seed. A statistical distribution of the scrambled data is assessed, and a measure of randomness of the statistical distribution is computed. A scrambling configuration of the data is modified responsively to the measure of randomness, and the data having the modified scrambling configuration is stored in the memory device.
    Type: Grant
    Filed: October 28, 2009
    Date of Patent: April 29, 2014
    Assignee: Apple Inc.
    Inventors: Naftali Sommer, Micha Anholt, Oren Golov, Uri Perlmutter, Shai Winter
  • Patent number: 8700977
    Abstract: Methods for Error Correction Code (ECC) decoding include producing syndromes from a set of bits, which represent data that has been encoded with the ECC. An Error Locator Polynomial (ELP) is generated based on the syndromes. At least some of the ELP roots are identified, and the errors indicated by these roots are corrected. Each syndrome may be produced by applying to the bits vector operations in a vector space. Each syndrome is produced by applying vector operations using a different basis of the vector space. The ELP may be evaluated on a given field element by operating on ELP coefficients using serial multipliers, wherein each serial multiplier performs a sequence of multiplication cycles and produces an interim result in each cycle. Responsively to detecting at least one interim result indicating that the given element is not an ELP root, the multiplication cycles are terminated before completion of the sequence.
    Type: Grant
    Filed: June 18, 2013
    Date of Patent: April 15, 2014
    Assignee: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer, Gil Semo, Tal Inbar
  • Patent number: 8694854
    Abstract: A method for data storage includes storing data in analog memory cells by programming the memory cells with respective analog input values. After storing the data, respective analog output values are read from the memory cells using multiple read thresholds, which define multiple ranges of the analog output values. Respective numbers of read errors in the data, corresponding to the analog output values falling in the ranges, are assessed. The stored data is recovered based on respective numbers of the read errors assessed in the ranges.
    Type: Grant
    Filed: August 2, 2011
    Date of Patent: April 8, 2014
    Assignee: Apple Inc.
    Inventors: Ronen Dar, Eyal Gurgi, Micha Anholt, Naftali Sommer
  • Publication number: 20140089754
    Abstract: A method includes, in a decoder of an Error Correction Code (ECC), maintaining only aggregated information regarding a set of messages, a function of which is to be reported from a first node to a second node of the decoder. The function of the set is determined and reported using the aggregated information. After reporting the function, one of the messages in the set is replaced with a new message. The aggregated information is updated to reflect the set having the new message, and the function of the set having the new message is determined and reported using the updated aggregated information.
    Type: Application
    Filed: September 27, 2012
    Publication date: March 27, 2014
    Applicant: APPLE INC.
    Inventors: Tomer Ish-Shalom, Micha Anholt
  • Publication number: 20140059403
    Abstract: In some embodiments, a method includes accepting a code word of a composite Error Correction Code (ECC), which was produced by encoding data with multiple component ECCs, and which was received with one or more reception parameters. One or more of the component ECCs are decoded, but without fully decoding the code word. The one or more reception parameters are estimated based on the decoded component ECCs. In other embodiments, a method includes accepting a code word of an ECC, which encodes data and which was received with one or more reception parameters. An Error Locator Polynomial (ELP), having one or more roots that indicate respective locations of one or more errors in the code word, is derived from the accepted code word. The one or more reception parameters are estimated based on the ELP.
    Type: Application
    Filed: August 27, 2012
    Publication date: February 27, 2014
    Inventors: Naftali Sommer, Micha Anholt
  • Publication number: 20140053046
    Abstract: Apparatus for encoding includes a first processing stage, which is configured to filter input data with a first set of coefficients belonging to a first generator polynomial representing a first ECC, to produce a first output. A second processing stage is configured to filter the first output using a second set of coefficients belonging to a quotient polynomial, which is defined as a quotient of a second generator polynomial, representing a second ECC, divided by the first generator polynomial, to produce a second output. Ancillary circuitry has first and second operational modes and is coupled to the first and second processing stages so as to generate a first redundancy output corresponding to the first ECC based on the first output when operating in the first mode, and to generate a second redundancy output corresponding to the second ECC based on the second output when operating in the second mode.
    Type: Application
    Filed: October 23, 2013
    Publication date: February 20, 2014
    Applicant: Apple Inc.
    Inventor: Micha Anholt
  • Publication number: 20140053043
    Abstract: A method for data storage includes accepting data for storage in a memory including multiple analog memory cells. For each memory cell, a respective set of nominal analog values is assigned for representing data values to be stored in the memory cell, by choosing the nominal analog values for a given memory cell in a respective range that depends on interference between the given memory cell and at least one other memory cell in the memory. The data is stored in each memory cell using the respective selected set of the nominal analog values.
    Type: Application
    Filed: October 28, 2013
    Publication date: February 20, 2014
    Applicant: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Ronen Dar, Micha Anholt
  • Patent number: 8650467
    Abstract: A method for decoding an ECC, in a decoder that includes at least first and second root search units, includes accepting at least first and second Error Locator Polynomials (ELPs) that have been computed over respective first and second code words of the ECC. A criterion depending on the ELPs is evaluated. One of first and second modes is selected based on the criterion. One or more first roots of the first ELP and one or more second roots of the second ELP are found using the selected mode, and the first and second code words are decoded using the first and second roots. In the first mode, the first and second root search units are combined and simultaneously find the first roots. In the second mode, the first and second root search units operate separately, and simultaneously identify the first roots and the second roots, respectively.
    Type: Grant
    Filed: July 23, 2012
    Date of Patent: February 11, 2014
    Assignee: Apple Inc.
    Inventor: Micha Anholt
  • Patent number: 8645794
    Abstract: A method for data storage includes, in a first programming phase, storing first data in a group of analog memory cells by programming the memory cells in the group to a set of initial programming levels. In a second programming phase that is subsequent to the first programming phase, second data is stored in the group by: identifying the memory cells in the group that were programmed in the first programming phase to respective levels in a predefined partial subset of the initial programming levels; and programming only the identified memory cells with the second data, so as to set at least some of the identified memory cells to one or more additional programming levels that are different from the initial programming levels.
    Type: Grant
    Filed: July 28, 2011
    Date of Patent: February 4, 2014
    Assignee: Apple Inc.
    Inventors: Avraham Meir, Micha Anholt, Naftali Sommer, Eyal Gurgi
  • Publication number: 20140026010
    Abstract: A method for decoding an ECC, in a decoder that includes at least first and second root search units, includes accepting at least first and second Error Locator Polynomials (ELPs) that have been computed over respective first and second code words of the ECC. A criterion depending on the ELPs is evaluated. One of first and second modes is selected based on the criterion. One or more first roots of the first ELP and one or more second roots of the second ELP are found using the selected mode, and the first and second code words are decoded using the first and second roots. In the first mode, the first and second root search units are combined and simultaneously find the first roots. In the second mode, the first and second root search units operate separately, and simultaneously identify the first roots and the second roots, respectively.
    Type: Application
    Filed: July 23, 2012
    Publication date: January 23, 2014
    Inventor: Micha Anholt
  • Publication number: 20130339815
    Abstract: A method includes accepting an input code word, which was produced by encoding data with an Error Correction Code (ECC), for decoding by a hardware-implemented ECC decoder. The input code word is pre-processed to produce a pre-processed code word, such that a first number of bit transitions that occur in the hardware-implemented ECC decoder while decoding the pre-processed code word is smaller than a second number of the bit transitions that would occur in the ECC decoder in decoding the input code word. The pre-processed code word is decoded using the ECC decoder, and the data is recovered from the decoded pre-processed code word.
    Type: Application
    Filed: August 13, 2013
    Publication date: December 19, 2013
    Applicant: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer