Patents by Inventor Vadim Khmelnitsky

Vadim Khmelnitsky 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: 8463826
    Abstract: Systems and methods are provided for performing incremental garbage collection for non-volatile memories (“NVMs”), such as flash memory. In some embodiments, an electronic device including the NVM may perform incremental garbage collection to free up and erase a programmed block of the NVM. The programmed block may include valid data and invalid data, and the electronic device may be configured to copy the valid data from the programmed block to an erased block in portions. In between programming each portion of the valid data to the erased block, the electronic device can program host data to the erased block. This way, the electronic device can stagger the garbage collection operations and prevent a user from having to experience one long garbage collection operation.
    Type: Grant
    Filed: September 3, 2009
    Date of Patent: June 11, 2013
    Assignee: Apple Inc.
    Inventors: Daniel J. Post, Vadim Khmelnitsky, Nir J. Wakrat
  • Patent number: 8456938
    Abstract: Systems and methods are disclosed for managing a non-volatile memory (“NVM”), such as a flash memory. To prevent data errors due to leakage effects, the NVM may be refreshed. For example, a reserved portion of the NVM may be selected, and a predetermined pattern can be stored into the reserved portion. The reserved portion can then be monitored for storage deterioration over time. After determining that storage deterioration of the reserved portion has occurred, the NVM can be refreshed. In some embodiments, a controller can attempt to distinguish data errors due to leakage effects from data errors due to disturb issues.
    Type: Grant
    Filed: March 14, 2012
    Date of Patent: June 4, 2013
    Assignee: Apple Inc.
    Inventors: Matthew J. Byom, Daniel J. Post, Vadim Khmelnitsky
  • Patent number: 8438453
    Abstract: In a memory system, a host controller is coupled to a non-volatile memory (NVM) package (e.g., NAND device). The host controller sends a read command to the NVM package requesting a low latency read operation. Responsive to the read command, a controller in the NVM package retrieves the data and sends the data to an ECC engine for correcting. Following the read command, the host controller sends a read status request command to the controller in the NVM package. Responsive to the read status request, the controller sends a status report to the host controller indicating that some or all of the data is available for transfer to the host controller. Responsive to the report, the host controller transfers the data. An underrun status can be determined to indicate that uncorrected data had been transferred to the host controller.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: May 7, 2013
    Assignee: Apple Inc.
    Inventors: Daniel Jeffrey Post, Nir Jacob Wakrat, Vadim Khmelnitsky
  • Patent number: 8417893
    Abstract: Memory mapping techniques for non-volatile memory are disclosed where logical sectors are mapped into physical pages using data structures in volatile and non-volatile memory. In some implementations, a first lookup table in non-volatile memory maps logical sectors directly into physical pages. A second lookup table in volatile memory holds the physical address of the first lookup table in non-volatile memory. In some implementations, a cache in volatile memory holds the physical addresses of the most recently written logical sectors. Also disclosed is a block TOC describing block content which can be used for garbage collection and restore operations.
    Type: Grant
    Filed: August 18, 2008
    Date of Patent: April 9, 2013
    Assignee: Apple Inc.
    Inventors: Vadim Khmelnitsky, Nir Jacob Wakrat
  • Patent number: 8411519
    Abstract: Systems and methods are provided for selectively retiring blocks based on refresh events of those blocks. In addition to refresh events, other criteria may be applied in making a decision whether to retire a block. By applying the criteria, the system is able to selectively retire blocks that may otherwise continue to be refreshed.
    Type: Grant
    Filed: July 23, 2010
    Date of Patent: April 2, 2013
    Assignee: Apple Inc.
    Inventors: Matthew Byom, Daniel J. Post, Vadim Khmelnitsky
  • Publication number: 20130073788
    Abstract: Systems and methods are disclosed for providing a weave sequence counter (“WSC”) for non-volatile memory (“NVM”) systems. The WSC can identify the sequence in which each page of the NVM is programmed. The “weave” aspect can refer to the fact that multiple blocks can be open for programming at once, thus allowing the pages of these blocks to be programmed in a “woven” manner. Systems and methods are also disclosed for providing a host weave sequence counter (“HWSC”). Each time new data is initially programmed to the NVM, this data can be associated with a particular HWSC. The HWSC associated with the data may not change, even when the data is moved to a new page (e.g., for wear leveling purposes and the like). The WSC and HWSC may aid in, for example, performing rollback, building logical-to-physical mappings, determining static-versus-dynamic page statuses, and performing maintenance operations (e.g., wear leveling).
    Type: Application
    Filed: September 16, 2011
    Publication date: March 21, 2013
    Applicant: APPLE INC.
    Inventors: Daniel J. Post, Nir Jacob Wakrat, Vadim Khmelnitsky
  • Publication number: 20130073787
    Abstract: Systems and methods are disclosed for efficient buffering for a system having non-volatile memory (“NVM”). A tree can be stored in volatile memory that includes a logical-to-physical mapping between a logical space and physical addresses of the NVM. When the amount of memory available for the tree is below a pre-determined threshold, a system can attempt to reduce the number of data fragments in the NVM, and consequently flatten a portion of the tree. The NVM interface may select an optimal set of entries of the tree to combine. Any suitable approach can be used such as, for example, moving one or more sliding windows across the tree, expanding a sliding window when a condition has been satisfied, using a priority queue while scanning the tree, and/or maintaining a priority queue while the tree is being updated.
    Type: Application
    Filed: September 16, 2011
    Publication date: March 21, 2013
    Applicant: APPLE INC.
    Inventors: Daniel J. Post, Vadim Khmelnitsky
  • Publication number: 20130073897
    Abstract: Systems and methods are disclosed for handling unclean shutdowns for a system having non-volatile memory (“NVM”). In some embodiments, the system can leverage from information obtained from index pages in order to efficiently reconstruct logical-to-physical mappings after an unclean shutdown event. In other embodiments, the system can reconstruct logical-to-physical mappings by leveraging from context information stored in a NVM. In further embodiments, context information can be used in conjunction with index pages to reconstruct logical-to-physical mappings after an unclean shutdown.
    Type: Application
    Filed: September 16, 2011
    Publication date: March 21, 2013
    Applicant: APPLE INC.
    Inventor: Vadim Khmelnitsky
  • Publication number: 20130073789
    Abstract: Systems and methods are disclosed for configuring a non-volatile memory (“NVM”). In some embodiments, each block of the NVM can include a block table-of-contents (“TOC”), which can be encoded (e.g., run-length encoded) and dynamically-sized. Thus, as user data is being programmed to a block, the size of a block TOC can be concurrently recalculated and increased only if necessary. In some embodiments, the NVM interface can use a weave sequence stored in the context information and at least one weave sequence associated with each page of a block to determine whether to replay across the pages of the block after system boot-up.
    Type: Application
    Filed: September 16, 2011
    Publication date: March 21, 2013
    Applicant: APPLE INC.
    Inventors: Vadim Khmelnitsky, Daniel J. Post, Nir Jacob Wakrat, Matthew J. Byom, Kenneth Herman, Alexander Sanks
  • Patent number: 8397014
    Abstract: Memory mapping techniques for non-volatile memory are disclosed where logical sectors are mapped into physical pages using data structures in volatile and non-volatile memory. In some implementations, a first lookup table in non-volatile memory maps logical sectors directly into physical pages. A second lookup table in volatile memory holds the physical address of the first lookup table in non-volatile memory. In some implementations, a cache in volatile memory holds the physical addresses of the most recently written logical sectors. Also disclosed is a block TOC describing block content which can be used for garbage collection and restore operations.
    Type: Grant
    Filed: August 18, 2008
    Date of Patent: March 12, 2013
    Assignee: Apple Inc.
    Inventors: Vadim Khmelnitsky, Nir Jacob Wakrat
  • Patent number: 8370603
    Abstract: The disclosed architecture uses address mapping to map a block address on a host interface to an internal block address of a non-volatile memory (NVM) device. The block address is mapped to an internal chip select for selecting a Concurrently Addressable Unit (CAU) identified by the block address. The disclosed architecture supports generic NVM commands for read, write, erase and get status operations. The architecture also supports an extended command set for supporting read and write operations that leverage a multiple CAU architecture.
    Type: Grant
    Filed: November 6, 2009
    Date of Patent: February 5, 2013
    Assignee: Apple Inc.
    Inventors: Tahoma Toelkes, Nir Jacob Wakrat, Kenneth L. Herman, Barry Corlett, Vadim Khmelnitsky, Anthony Fai, Daniel Jeffrey Post, Hsiao Thio
  • Patent number: 8356137
    Abstract: Systems and methods are disclosed for partitioning data for storage in a non-volatile memory (“NVM”), such as flash memory. In some embodiments, a priority may be assigned to data being stored, and the data may be logically partitioned based on the priority. For example, a file system may identify a logical address within a first predetermined range for higher priority data and within a second predetermined range for lower priority data, such using a union file system. Using the logical address, a NVM driver can determine the priority of data being stored and can process (e.g., encode) the data based on the priority. The NVM driver can store an identifier in the NVM along with the data, and the identifier can indicate the processing techniques used on the associated data.
    Type: Grant
    Filed: February 26, 2010
    Date of Patent: January 15, 2013
    Assignee: Apple Inc.
    Inventors: Daniel J. Post, Matthew Byom, Vadim Khmelnitsky, Nir J. Wakrat, Kenneth Herman
  • Patent number: 8341500
    Abstract: Systems, apparatuses, and methods are provided for detecting corrupted data for a system having non-volatile memory, such as NAND Flash memory. In some embodiments, a non-volatile memory (“NVM”) package is provided, which can include a NVM controller and one or more NVM dies. Each NVM die can include one or more blocks, where each block can further include an array of memory cells. One or more of these memory cells can be configured as “multi-level cells” (“MLCs”). In some embodiments, in order to avoid transmitting data obtained from an improperly programmed page of a MLC, a NVM controller can be configured to detect if data obtained from the page is in fact data stored in a different page.
    Type: Grant
    Filed: August 31, 2010
    Date of Patent: December 25, 2012
    Assignee: Apple Inc.
    Inventors: Matthew Byom, Daniel J. Post, Vadim Khmelnitsky, Nir J. Wakrat
  • Publication number: 20120311298
    Abstract: Systems and methods are provided for unmapping unused logical addresses at mount-time of a file system. An electronic device, which includes a non-volatile memory (“NVM”), may implement a file system that, at mount-time of the NVM, identifies all of the logical addresses associated with the NVM that are unallocated. The file system may then pass this information on to a NVM manager, such as in one or more unmap requests. This can ensure that the NVM manager does not maintain data associated with a logical address that is no longer needed by the file system.
    Type: Application
    Filed: June 3, 2011
    Publication date: December 6, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Eric Tamura, Vadim Khmelnitsky, Nir J. Wakrat, Matthew Byom
  • Patent number: 8321647
    Abstract: Multipage preparation commands for non-volatile memory systems are disclosed. The multipage preparation commands supply data that can be used to prepare a non-volatile memory device for forthcoming multipage program operations. A host controller can use the commands ahead of a multipage program operation to optimize usage of a multipage program command. The non-volatile memory device can use the commands to configure the non-volatile memory in preparation for a subsequent operation, such as changing a command order or using the most optimized command set for the subsequent operation.
    Type: Grant
    Filed: August 20, 2009
    Date of Patent: November 27, 2012
    Assignee: Apple Inc.
    Inventors: Vadim Khmelnitsky, Nir Jacob Wakrat, Tahoma Toelkes, Daniel Jeffrey Post, Anthony Fai
  • Publication number: 20120236658
    Abstract: Systems and methods are disclosed for managing a non-volatile memory (“NVM”), such as a flash memory. To prevent data errors due to leakage effects, the NVM may be refreshed. For example, a reserved portion of the NVM may be selected, and a predetermined pattern can be stored into the reserved portion. The reserved portion can then be monitored for storage deterioration over time. After determining that storage deterioration of the reserved portion has occurred, the NVM can be refreshed. In some embodiments, a controller can attempt to distinguish data errors due to leakage effects from data errors due to disturb issues.
    Type: Application
    Filed: March 14, 2012
    Publication date: September 20, 2012
    Applicant: APPLE INC.
    Inventors: Matthew Byom, Daniel J. Post, Vadim Khmelnitsky
  • Patent number: 8164967
    Abstract: Systems and methods are disclosed for managing a non-volatile memory (“NVM”), such as a flash memory. To prevent data errors due to leakage effects, the NVM may be refreshed. For example, a reserved portion of the NVM may be selected, and a predetermined pattern can be stored into the reserved portion. The reserved portion can then be monitored for storage deterioration over time. After determining that storage deterioration of the reserved portion has occurred, the NVM can be refreshed. In some embodiments, a controller can attempt to distinguish data errors due to leakage effects from data errors due to disturb issues.
    Type: Grant
    Filed: March 24, 2010
    Date of Patent: April 24, 2012
    Assignee: Apple Inc.
    Inventors: Matthew Byom, Daniel J. Post, Vadim Khmelnitsky
  • Publication number: 20120084484
    Abstract: Systems and methods are disclosed for selectively combining commands for a system having non-volatile memory (“NVM”). In some embodiments, a command dispatcher of a system can receive multiple commands to access a NVM for a period of time. After receiving the multiple commands, the command dispatcher can determine a set of commands that are naturally combinable. In some embodiments, the command dispatcher can select commands that are fairly distributed across different chip enables (“CEs”) and/or buses. After selecting the set of commands, the command dispatcher can combine the set of commands into a multi-access command. Finally, the command dispatcher can dispatch the multi-access command to the NVM.
    Type: Application
    Filed: September 30, 2010
    Publication date: April 5, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Nir J. Wakrat, Vadim Khmelnitsky
  • Publication number: 20120054582
    Abstract: Systems, apparatuses, and methods are provided for detecting corrupted data for a system having non-volatile memory, such as NAND Flash memory. In some embodiments, a non-volatile memory (“NVM”) package is provided, which can include a NVM controller and one or more NVM dies. Each NVM die can include one or more blocks, where each block can further include an array of memory cells. One or more of these memory cells can be configured as “multi-level cells” (“MLCs”). In some embodiments, in order to avoid transmitting data obtained from an improperly programmed page of a MLC, a NVM controller can be configured to detect if data obtained from the page is in fact data stored in a different page.
    Type: Application
    Filed: August 31, 2010
    Publication date: March 1, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Daniel J. Post, Vadim Khmelnitsky, Nir J. Wakrat
  • Publication number: 20120030409
    Abstract: Systems and methods are provided for initiating wear leveling on block-aligned boundaries for non-volatile memories (“NVMs”), such as flash memory. In some embodiments, an electronic device including the NVM may suspend the programming of data upon reaching the end of a dynamic block. The electronic device may then perform wear leveling on a low-cycled block of the NVM. The electronic device may thus be configured to copy static data from the low-cycled block to another block of the NVM. After wear leveling has completed, the memory interface can program a second portion of the data to a new dynamic block of the NVM. This way, the electronic device can improve the efficiency of garbage collection. In addition, the electronic device can decrease the programming time for user generated writes, the wearing of the NVM, and overall power consumption.
    Type: Application
    Filed: July 30, 2010
    Publication date: February 2, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Vadim Khmelnitsky