Patents by Inventor Stas Mouler

Stas Mouler 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).

  • Patent number: 10977119
    Abstract: Disclosed are techniques for managing parity information for data stored on a storage device. A method can be implemented at a computing device communicably coupled to the storage device, and include (1) receiving a request to write data into a data band of the storage device, (2) writing the data into stripes of the data band, comprising, for each stripe of the data band: (i) calculating first parity information for the data written into the stripe, (ii) writing the first parity information into a volatile memory, and (iii) in response to determining that a threshold number of stripes have been written: converting the first parity information into smaller second parity information, and (3) in response to determining that the data band is read-verified: (i) converting the second parity information into smaller third parity information, and (ii) storing the smaller third parity information into a parity band of the storage device.
    Type: Grant
    Filed: April 11, 2019
    Date of Patent: April 13, 2021
    Assignee: Apple Inc.
    Inventors: Eran Roll, Stas Mouler, Matthew J. Byom, Andrew W. Vogan, Muhammad N. Ashraf, Elad Harush, Roman Guy
  • Patent number: 10936456
    Abstract: A controller includes an interface and storage circuitry. The interface communicates with one or more memory devices, each of the memory devices includes multiple memory cells organized in memory blocks. The storage circuitry is configured to perform multiple storage operations to the memory cells in the one or more memory devices, and mark memory blocks in which one or more storage operations have failed as bad blocks. The controller is further configured to identify a pattern of multiple bad blocks occurring over a sequence of multiple consecutive storage operations, the pattern is indicative of a system-level malfunction in a memory system including the controller, and in response to identifying the pattern, to perform a corrective action to the memory system.
    Type: Grant
    Filed: February 20, 2019
    Date of Patent: March 2, 2021
    Assignee: APPLE INC.
    Inventors: Yael Shur, Assaf Shappir, Stas Mouler, Yoav Kasorla
  • Patent number: 10915394
    Abstract: A memory system includes a Nonvolatile Memory (NVM) and storage circuitry. The NVM includes memory cells organized in multiple memory blocks that each includes multiple Word Lines (WLs). The storage circuitry assigns in a recovery scheme, data pages to predefined parity groups, including assigning to a parity group multiple data pages of two or more different bit-significance values in a common group of the memory cells in a WL. The storage circuitry calculates redundancy data over the data pages of a given parity group in accordance with the recovery scheme and stores the redundancy data in a dedicated group of the memory cells. The storage circuitry reads a data page belonging to the given parity group, and upon detecting a read failure, recovers the data page based on other data pages in the given parity group and on the redundancy data calculated for the given parity group.
    Type: Grant
    Filed: September 22, 2019
    Date of Patent: February 9, 2021
    Assignee: APPLE INC.
    Inventors: Assaf Shappir, Stas Mouler
  • Patent number: 10762967
    Abstract: A controller includes an interface and a processor. The interface is configured to communicate with a nonvolatile memory including multiple memory cells organized in multiple memory blocks that each includes multiple Word Lines (WLs). The processor is configured to store first data in one or more WLs of a memory block, the first data occupies less than a maximal number of WLs available in the memory block, to calculate redundancy data over the first data and store the redundancy data in a dedicated memory, to program second data to a selected WL of the memory block that was not programmed with the first data, to check a programming status resulting from the programming of the selected WL, and in response to identifying that programming the second data to the selected WL has corrupted at least part of the first data, to recover the first data using the redundancy data.
    Type: Grant
    Filed: November 28, 2018
    Date of Patent: September 1, 2020
    Assignee: APPLE INC.
    Inventors: Assaf Shappir, Barak Baum, Itay Sagron, Roman Guy, Guy Ben-Yehuda, Stas Mouler
  • Publication number: 20200104210
    Abstract: Disclosed are techniques for managing parity information for data stored on a storage device. A method can be implemented at a computing device communicably coupled to the storage device, and include (1) receiving a request to write data into a data band of the storage device, (2) writing the data into stripes of the data band, comprising, for each stripe of the data band: (i) calculating first parity information for the data written into the stripe, (ii) writing the first parity information into a volatile memory, and (iii) in response to determining that a threshold number of stripes have been written: converting the first parity information into smaller second parity information, and (3) in response to determining that the data band is read-verified: (i) converting the second parity information into smaller third parity information, and (ii) storing the smaller third parity information into a parity band of the storage device.
    Type: Application
    Filed: April 11, 2019
    Publication date: April 2, 2020
    Inventors: Eran ROLL, Stas MOULER, Matthew J. BYOM, Andrew W. VOGAN, Muhammad N. ASHRAF, Elad HARUSH, Roman GUY
  • Publication number: 20200005874
    Abstract: A controller includes an interface and a processor. The interface is configured to communicate with a nonvolatile memory including multiple memory cells organized in multiple memory blocks that each includes multiple Word Lines (WLs). The processor is configured to store first data in one or more WLs of a memory block, the first data occupies less than a maximal number of WLs available in the memory block, to calculate redundancy data over the first data and store the redundancy data in a dedicated memory, to program second data to a selected WL of the memory block that was not programmed with the first data, to check a programming status resulting from the programming of the selected WL, and in response to identifying that programming the second data to the selected WL has corrupted at least part of the first data, to recover the first data using the redundancy data.
    Type: Application
    Filed: November 28, 2018
    Publication date: January 2, 2020
    Inventors: Assaf Shappir, Barak Baum, Itay Sagron, Roman Guy, Guy Ben-Yehuda, Stas Mouler
  • Patent number: 9817751
    Abstract: A method for data storage includes defining an end-to-end mapping between data bits to be stored in a memory device that includes multiple memory cells and predefined programming levels. The data bits are mapped into mapped bits, so that the number of the mapped bits is smaller than the number of the data bits. The data bits are stored in the memory device by programming the mapped bits in the memory cells using a programming scheme that guarantees the end-to-end mapping. After storing the data bits, the data bits are read from the memory device in accordance with the end-to-end mapping.
    Type: Grant
    Filed: September 3, 2014
    Date of Patent: November 14, 2017
    Assignee: Apple Inc.
    Inventors: Stas Mouler, Shai Ojalvo, Yoav Kasorla, Eyal Gurgi
  • Patent number: 9423961
    Abstract: An apparatus includes an interface and a processor. The interface is configured to communicate with a memory device. The processor is configured to send to the memory device, via the interface, a sequence of write commands that program multiple types of memory pages that incur respective different programming durations in the memory device, while inserting in the sequence suspension periods for permitting execution of storage commands that are not part of the sequence, such that at least some of the suspension periods are followed by write commands of types that do not have a shortest programming duration among the programming durations.
    Type: Grant
    Filed: September 8, 2014
    Date of Patent: August 23, 2016
    Assignee: Apple Inc.
    Inventors: Atai Levy, Yoav Kasorla, Stas Mouler, Alex Borisenkov, Dmitry Koyfman
  • Patent number: 9389672
    Abstract: A method includes, in a host that stores data in a storage device, instructing the storage device to operate in a power throttling mode that limits power consumption of the storage device to a selected power limit. Storage commands are generated in the host for execution by the storage device, wherein each of at least some of the storage commands is partitioned into multiple sub-commands having a maximal size that depends on the selected power limit. The sub-commands are sent for execution in the storage device.
    Type: Grant
    Filed: March 19, 2014
    Date of Patent: July 12, 2016
    Assignee: Apple Inc.
    Inventors: Stas Mouler, Avraham Poza Meir
  • Patent number: 9361951
    Abstract: A method includes, in a storage system that includes multiple memory devices, holding a definition of a given type of storage command. Multiple storage commands of the given type are executed in the memory devices, such that an actual current consumption of each storage command deviates from a nominal current waveform defined for the given type by no more than a predefined deviation, and such that each storage command is preceded by a random delay.
    Type: Grant
    Filed: August 26, 2014
    Date of Patent: June 7, 2016
    Assignee: Apple Inc.
    Inventors: Naftali Sommer, Stas Mouler, Eyal Gurgi, Yoav Kasorla, Liran Erez
  • Publication number: 20160070473
    Abstract: An apparatus includes an interface and a processor. The interface is configured to communicate with a memory device. The processor is configured to send to the memory device, via the interface, a sequence of write commands that program multiple types of memory pages that incur respective different programming durations in the memory device, while inserting in the sequence suspension periods for permitting execution of storage commands that are not part of the sequence, such that at least some of the suspension periods are followed by write commands of types that do not have a shortest programming duration among the programming durations.
    Type: Application
    Filed: September 8, 2014
    Publication date: March 10, 2016
    Inventors: Atai Levy, Yoav Kasorla, Stas Mouler, Alex Borisenkov, Dmitry Koyfman
  • Publication number: 20160062907
    Abstract: A method for data storage includes defining an end-to-end mapping between data bits to be stored in a memory device that includes multiple memory cells and predefined programming levels. The data bits are mapped into mapped bits, so that the number of the mapped bits is smaller than the number of the data bits. The data bits are stored in the memory device by programming the mapped bits in the memory cells using a programming scheme that guarantees the end-to-end mapping. After storing the data bits, the data bits are read from the memory device in accordance with the end-to-end mapping.
    Type: Application
    Filed: September 3, 2014
    Publication date: March 3, 2016
    Inventors: Stas Mouler, Shai Ojalvo, Yoav Kasorla, Eyal Gurgi
  • Publication number: 20150268712
    Abstract: A method includes, in a host that stores data in a storage device, instructing the storage device to operate in a power throttling mode that limits power consumption of the storage device to a selected power limit. Storage commands are generated in the host for execution by the storage device, wherein each of at least some of the storage commands is partitioned into multiple sub-commands having a maximal size that depends on the selected power limit. The sub-commands are sent for execution in the storage device.
    Type: Application
    Filed: March 19, 2014
    Publication date: September 24, 2015
    Applicant: Apple Inc.
    Inventors: Stas Mouler, Avraham Poza Meir
  • Publication number: 20150199999
    Abstract: A method includes, in a storage system that includes multiple memory devices, holding a definition of a given type of storage command. Multiple storage commands of the given type are executed in the memory devices, such that an actual current consumption of each storage command deviates from a nominal current waveform defined for the given type by no more than a predefined deviation, and such that each storage command is preceded by a random delay.
    Type: Application
    Filed: August 26, 2014
    Publication date: July 16, 2015
    Inventors: Naftali Sommer, Stas Mouler, Eyal Gurgi, Yoav Kasorla, Liran Erez