Patents by Inventor Naftali Sommer

Naftali Sommer 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: 20140157085
    Abstract: A method for data storage includes storing data in a memory that includes one or more memory units, each memory unit including memory blocks. The stored data is compacted by copying at least a portion of the data from a first memory block to a second memory block, and subsequently erasing the first memory block. Upon detecting a failure in the second memory block after copying the portion of the data and before erasure of the first memory block, the portion of the data is recovered by reading the portion from the first memory block.
    Type: Application
    Filed: February 5, 2014
    Publication date: June 5, 2014
    Applicant: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Uri Perlmutter, Julian Vlaiko, Moshe Neerman
  • 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: 8717792
    Abstract: A method for data storage includes defining a first programming scheme that programs a group of analog memory cells while reducing interference caused by at least one memory cell that neighbors the group, and a second programming scheme that programs the group of the analog memory cells and does not reduce all of the interference reduced by the first programming scheme. One of the first and second programming schemes is selected based on a criterion defined with respect to the analog memory cells. Data is stored in the group of the analog memory cells using the selected programming scheme.
    Type: Grant
    Filed: June 25, 2012
    Date of Patent: May 6, 2014
    Assignee: Apple Inc.
    Inventors: Dotan Sokolov, Naftali Sommer, Uri Perlmutter, Ofir Shalvi
  • Patent number: 8717826
    Abstract: A method includes measuring a saturation current flowing through one or more analog memory cells. A wear level of the memory cells is deduced from the measured saturation current. Storage of data in the memory cells is configured based on the deduced wear level.
    Type: Grant
    Filed: December 11, 2012
    Date of Patent: May 6, 2014
    Assignee: Apple Inc.
    Inventors: Eyal Gurgi, Naftali Sommer, Yael Shur
  • 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
  • Publication number: 20140122787
    Abstract: A method for data storage includes, in a memory that includes multiple memory blocks, specifying at a first time a first over-provisioning overhead, and storing data in the memory while retaining in the memory blocks memory areas, which do not hold valid data and whose aggregated size is at least commensurate with the specified first over-provisioning overhead. Portions of the data from one or more previously-programmed memory blocks containing one or more of the retained memory areas are compacted. At a second time subsequent to the first time, a second over-provisioning overhead, different from the first over-provisioning overhead, is specified, and data storage and data portion compaction is continued while complying with the second over-provisioning overhead.
    Type: Application
    Filed: January 8, 2014
    Publication date: May 1, 2014
    Applicant: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Yoav Kasorla
  • 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: 8694853
    Abstract: A method for data storage includes, in a memory system that stores data by programming analog memory cells to respective programming states selected from a predefined set, providing a first read command that retrieves the data stored in target memory cells, and a second read command that identifies at least one potentially-interfering memory cell that is programmed to a programming state in a predefined subset of programming states expected to cause interference. Given data is stored in a first group of the memory cells. After storing the given data, the given data is retrieved by reading the first group using the first read command, reading a second group of the memory cells using the second read command, and compensating for the interference caused to the first group by the memory cells in the second group that were identified by the second read command.
    Type: Grant
    Filed: April 17, 2011
    Date of Patent: April 8, 2014
    Assignee: Apple Inc.
    Inventor: Naftali Sommer
  • 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
  • Patent number: 8681549
    Abstract: A method for data storage includes storing first data bits in a set of multi-bit analog memory cells at a first time by programming the memory cells to assume respective first programming levels. Second data bits are stored in the set of memory cells at a second time that is later than the first time by programming the memory cells to assume respective second programming levels that depend on the first programming levels and on the second data bits. A storage strategy is selected responsively to a difference between the first and second times. The storage strategy is applied to at least one group of the data bits, selected from among the first data bits and the second data bits.
    Type: Grant
    Filed: August 3, 2012
    Date of Patent: March 25, 2014
    Assignee: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Dotan Sokolov, Yoav Kasoria
  • Patent number: 8677203
    Abstract: A method for data storage includes storing data in a memory that includes one or more memory units, each memory unit including memory blocks. The stored data is compacted by copying at least a portion of the data from a first memory block to a second memory block, and subsequently erasing the first memory block. Upon detecting a failure in the second memory block after copying the portion of the data and before erasure of the first memory block, the portion of the data is recovered by reading the portion from the first memory block.
    Type: Grant
    Filed: January 10, 2011
    Date of Patent: March 18, 2014
    Assignee: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Uri Perlmutter, Julian Vlaiko, Moshe Neerman
  • 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: 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
  • Publication number: 20140047291
    Abstract: A method for data storage in a memory including multiple memory cells arranged in blocks, includes storing first and second pages in respective first and second groups of the memory cells within a given block of the memory. A pattern of respective positions of one or more defective memory cells is identified in the first group. The second page is recovered by applying the pattern identified in the first group to the second group of the memory cells.
    Type: Application
    Filed: October 22, 2013
    Publication date: February 13, 2014
    Applicant: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Oren Golov
  • Patent number: 8650461
    Abstract: A method for data storage includes, in a memory that includes multiple memory blocks, specifying at a first time a first over-provisioning overhead, and storing data in the memory while retaining in the memory blocks memory areas, which do not hold valid data and whose aggregated size is at least commensurate with the specified first over-provisioning overhead. Portions of the data from one or more previously-programmed memory blocks containing one or more of the retained memory areas are compacted. At a second time subsequent to the first time, a second over-provisioning overhead, different from the first over-provisioning overhead, is specified, and data storage and data portion compaction is continued while complying with the second over-provisioning overhead.
    Type: Grant
    Filed: June 3, 2013
    Date of Patent: February 11, 2014
    Assignee: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Yoav Kasorla
  • 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: 20140029338
    Abstract: A method for data storage includes accepting data for storage in a memory that includes multiple analog memory cells and supports a set of built-in programming commands. Each of the programming commands programs a respective page, selected from a group of N pages, in a subset of the memory cells. The subset of the memory cells is programmed to store M pages of the data, M>N, by performing a sequence of the programming commands drawn only from the set.
    Type: Application
    Filed: September 30, 2013
    Publication date: January 30, 2014
    Applicant: Apple Inc.
    Inventors: Ofir Shalvi, Naftali Sommer, Uri Perlmutter, Dotan Sokolov
  • 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
  • Patent number: 8601352
    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: Grant
    Filed: July 25, 2010
    Date of Patent: December 3, 2013
    Assignee: Apple Inc.
    Inventors: Micha Anholt, Naftali Sommer, Tal Inbar