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: 10977119Abstract: 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: GrantFiled: April 11, 2019Date of Patent: April 13, 2021Assignee: Apple Inc.Inventors: Eran Roll, Stas Mouler, Matthew J. Byom, Andrew W. Vogan, Muhammad N. Ashraf, Elad Harush, Roman Guy
-
Patent number: 10936456Abstract: 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: GrantFiled: February 20, 2019Date of Patent: March 2, 2021Assignee: APPLE INC.Inventors: Yael Shur, Assaf Shappir, Stas Mouler, Yoav Kasorla
-
Patent number: 10915394Abstract: 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: GrantFiled: September 22, 2019Date of Patent: February 9, 2021Assignee: APPLE INC.Inventors: Assaf Shappir, Stas Mouler
-
Patent number: 10762967Abstract: 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: GrantFiled: November 28, 2018Date of Patent: September 1, 2020Assignee: APPLE INC.Inventors: Assaf Shappir, Barak Baum, Itay Sagron, Roman Guy, Guy Ben-Yehuda, Stas Mouler
-
Publication number: 20200104210Abstract: 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: ApplicationFiled: April 11, 2019Publication date: April 2, 2020Inventors: Eran ROLL, Stas MOULER, Matthew J. BYOM, Andrew W. VOGAN, Muhammad N. ASHRAF, Elad HARUSH, Roman GUY
-
Publication number: 20200005874Abstract: 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: ApplicationFiled: November 28, 2018Publication date: January 2, 2020Inventors: Assaf Shappir, Barak Baum, Itay Sagron, Roman Guy, Guy Ben-Yehuda, Stas Mouler
-
Patent number: 9817751Abstract: 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: GrantFiled: September 3, 2014Date of Patent: November 14, 2017Assignee: Apple Inc.Inventors: Stas Mouler, Shai Ojalvo, Yoav Kasorla, Eyal Gurgi
-
Patent number: 9423961Abstract: 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: GrantFiled: September 8, 2014Date of Patent: August 23, 2016Assignee: Apple Inc.Inventors: Atai Levy, Yoav Kasorla, Stas Mouler, Alex Borisenkov, Dmitry Koyfman
-
Patent number: 9389672Abstract: 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: GrantFiled: March 19, 2014Date of Patent: July 12, 2016Assignee: Apple Inc.Inventors: Stas Mouler, Avraham Poza Meir
-
Patent number: 9361951Abstract: 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: GrantFiled: August 26, 2014Date of Patent: June 7, 2016Assignee: Apple Inc.Inventors: Naftali Sommer, Stas Mouler, Eyal Gurgi, Yoav Kasorla, Liran Erez
-
Publication number: 20160070473Abstract: 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: ApplicationFiled: September 8, 2014Publication date: March 10, 2016Inventors: Atai Levy, Yoav Kasorla, Stas Mouler, Alex Borisenkov, Dmitry Koyfman
-
Publication number: 20160062907Abstract: 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: ApplicationFiled: September 3, 2014Publication date: March 3, 2016Inventors: Stas Mouler, Shai Ojalvo, Yoav Kasorla, Eyal Gurgi
-
Publication number: 20150268712Abstract: 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: ApplicationFiled: March 19, 2014Publication date: September 24, 2015Applicant: Apple Inc.Inventors: Stas Mouler, Avraham Poza Meir
-
Publication number: 20150199999Abstract: 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: ApplicationFiled: August 26, 2014Publication date: July 16, 2015Inventors: Naftali Sommer, Stas Mouler, Eyal Gurgi, Yoav Kasorla, Liran Erez