Patents by Inventor Matthew Byom

Matthew Byom 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: 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
  • 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
  • Publication number: 20120265921
    Abstract: Systems and methods are provided for storing and retrieving boot data (e.g., a first stage bootloader) in and from a non-volatile memory (“NVM”), such as a NAND flash memory. To increase storage reliability, the boot data may be stored in a subset of the pages in a boot data storage area, such as in only lower pages. The subset may be selected based on the specific operating specifications and characteristics of the NVM. To prevent a boot ROM from having to maintain a NVM-specific map of which pages are used to store boot data, the map may be maintained in the NVM itself. For example, the map may be in the form of a linked list, where each page storing boot data can include a pointer that points to the next page that stores boot data.
    Type: Application
    Filed: April 14, 2011
    Publication date: October 18, 2012
    Applicant: APPLE INC.
    Inventors: Daniel J. Post, Matthew Byom
  • Patent number: 8281065
    Abstract: Systems and methods are provided for storing data in a portion of a non-volatile memory (“NVM”) such that the status of the NVM portion can be determined with high probability on a subsequent read. An NVM interface, which may receive write commands to store user data in the NVM, can store a fixed predetermined sequence (“FPS”) with the user data. The FPS may ensure that a successful read operation on a NVM portion is not misinterpreted as a failed read operation or as an erased NVM portion. For example, if the NVM returns an all-zero vector when a read request fails, the FPS can include at least one “1” or one “0”, as appropriate, to differentiate between successful and unsuccessful read operations. In some embodiments, the FPS may also be used to differentiate between disturbed data, which passes an error correction check, and correct data.
    Type: Grant
    Filed: September 1, 2009
    Date of Patent: October 2, 2012
    Assignee: Apple Inc.
    Inventors: Matthew Byom, Kenneth Herman
  • 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
  • Publication number: 20120198125
    Abstract: Systems and methods are disclosed for increasing efficiency of read operations by selectively adding pages from a pagelist to a batch, such that when the batch is executed as a read operation, each page in the batch can be concurrently accessed. The pagelist can include all the pages associated a read command received, for example, from a file system. Although the pages associated with the read command may have an original read order sequence, embodiments according to this invention re-order this original read order sequence by selectively adding pages to a batch. A page is added to the batch if it does not collide with any other page already added to the batch. A page collides with another page if neither page can be accessed simultaneously. One or more batches can be constructed in this manner until the pagelist is empty.
    Type: Application
    Filed: January 28, 2011
    Publication date: August 2, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Matthew Byom
  • Publication number: 20120198124
    Abstract: Systems and methods are disclosed for increasing efficiency of read operations by selectively re-ordering a sequence in which logical block addresses (“LBAs”) are read out of multi-level cell (“MLC”) non-volatile memory. In one embodiment, the LBAs can correspond to upper and lower pages. Because data stored in lower pages can be retrieved from NVM faster than data stored in upper pages, embodiments disclosed herein can selectively re-order the LBAs such that the first LBA to be read corresponds to a lower page.
    Type: Application
    Filed: January 28, 2011
    Publication date: August 2, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Matthew Byom, Michael Williams
  • Publication number: 20120198126
    Abstract: Systems and methods are disclosed for increasing efficiency of read operations by minimizing the number of block switching events necessary to read each page associated with a read command. According to embodiments of this invention, for any given block containing one or more pages that need to be read for a read command, each of those one or more pages is read before switching to another block, thereby eliminating potential time penalties in switching between blocks. A block switching module according to embodiments of the invention instructs a NVM controller to read all relevant pages out of a given block even if an original read order sequence of the pages to be read would otherwise normally cause NVM controller to switch to another block.
    Type: Application
    Filed: January 28, 2011
    Publication date: August 2, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Matthew Byom
  • 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: 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: 20120054465
    Abstract: Systems and methods for trimming LBAs are provided. The LBAs can be trimmed from a file and from an NVM interface that maintains a logical-to-physical translation of the file's LBAs and controls management of the file's contents stored on non-volatile memory (“NVM”). The file can be any suitable file that has any number of associated LBAs. In addition, the file can be linked to one or more data chunks stored in the NVM, each data chunk associated with LBAs in the file. When a data chunk is retrieved or read from the NVM, that chunk no longer needs to be maintained in the NVM. Accordingly, after the data chunk is retrieved from the NVM and provided to an appropriate destination, the LBAs associated with the retrieved data chunk can be trimmed.
    Type: Application
    Filed: August 31, 2010
    Publication date: March 1, 2012
    Applicant: Apple Inc.
    Inventors: Daniel J. Post, Eric Tamura, Matthew Byom, Neil Crane, Kenneth Herman, Francois Barbou-des-Place
  • Publication number: 20120054541
    Abstract: Systems and methods are provided for handling errors during device bootup from a non-volatile memory (“NVM”). A NVM interface of an electronic device can be configured to detect errors and maintain an error log in volatile memory while the device is being booted up. Once device bootup has completed, a NVM driver of the electronic device can be configured to correct the detected errors using the error log. For example, the electronic device can move data to more reliable blocks and/or retire blocks that are close to failure, thereby improving overall device reliability.
    Type: Application
    Filed: August 31, 2010
    Publication date: March 1, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Kenneth Herman, Nir J. Wakrat, Daniel J. Post
  • Publication number: 20120023365
    Abstract: Systems and methods are disclosed for monitoring the time it takes to perform a write operation, and based on the time it takes, a determination is made whether to retire a block that is a recipient of the write operation. The time duration of the write operation for a page or a combination of pages may indicate whether any block or blocks containing the page or combination of pages is experiencing a physical failure. That is, if the time duration of the write operation for a particular page exceeds time threshold, this may indicate that this page requires a larger number of program cycles than other pages. The longer programming cycle can be an indication of cell leakage or a failing block.
    Type: Application
    Filed: July 26, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Nir J. Wakrat
  • Publication number: 20120023356
    Abstract: Systems and methods are disclosed for validating a non-volatile memory (NVM) package for use in an electronic device before it is incorporated into the device. A NVM package may be validated by determining its power consumption profile, and if the profile meets predetermined criteria, that NVM package may be qualified for use in an electronic system. The power consumption profile may be obtained by issuing commands, such as read commands, to the NVM package to simultaneously access each die of the NVM package to invoke a maximum power consumption event. During this event, power consumption by the NVM package can be monitored and analyzed to determine whether the NVM package qualifies for use in an electronic device.
    Type: Application
    Filed: July 26, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Hugo Fiennes, Arjun Kapoor
  • Publication number: 20120023348
    Abstract: Systems and methods are disclosed for limiting power consumption of a non-volatile memory (NVM) using a power limiting scheme that distributes a number of concurrent NVM operations over time. This provides a “current consumption cap” that fixes an upper limit of current consumption for the NVM, thereby eliminating peak power events. In one embodiment, power consumption of a NVM can be limited by receiving data suitable for use as a factor in adjusting a current threshold from at least one of a plurality of system sources. The current threshold can be less than a peak current capable of being consumed by the NVM and can be adjusted based on the received data. A power limiting scheme can be used that limits the number of concurrent NVM operations performed so that a cumulative current consumption of the NVM does not exceed the adjusted current threshold.
    Type: Application
    Filed: December 16, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Vadim Khmelnitsky, Hugo Fiennes, Arjun Kapoor
  • Publication number: 20120023351
    Abstract: Systems and methods are disclosed for dynamically allocating power for a system having non-volatile memory. A power budgeting manager of a system can determine if the total amount of power available for the system is below a pre-determined power level (e.g., a low power state). While the system is operating in the low power state, the power budgeting manager can dynamically allocate power among various components of the system (e.g., a processor and non-volatile memory).
    Type: Application
    Filed: July 26, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Nir J. Wakrat, Kenneth Herman, Matthew Byom
  • Publication number: 20120023346
    Abstract: Systems and methods are disclosed for limiting power consumption of a non-volatile memory (NVM) using a power limiting scheme that distributes a number of concurrent NVM operations over time. This provides a “current consumption cap” that fixes an upper limit of current consumption for the NVM, thereby eliminating peak power events. In one embodiment, power consumption of a NVM can be limited by receiving data suitable for use as a factor in adjusting a current threshold from at least one of a plurality of system sources. The current threshold can be less than a peak current capable of being consumed by the NVM and can be adjusted based on the received data. A power limiting scheme can be used that limits the number of concurrent NVM operations performed so that a cumulative current consumption of the NVM does not exceed the adjusted current threshold.
    Type: Application
    Filed: July 26, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Vadim Khmelnitsky, Hugo Fiennes, Arjun Kapoor
  • Publication number: 20120023347
    Abstract: Systems and methods are disclosed for limiting power consumption of a non-volatile memory (NVM) using a power limiting scheme that distributes a number of concurrent NVM operations over time. This provides a “current consumption cap” that fixes an upper limit of current consumption for the NVM, thereby eliminating peak power events. In one embodiment, power consumption of a NVM can be limited by receiving data suitable for use as a factor in adjusting a current threshold from at least one of a plurality of system sources. The current threshold can be less than a peak current capable of being consumed by the NVM and can be adjusted based on the received data. A power limiting scheme can be used that limits the number of concurrent NVM operations performed so that a cumulative current consumption of the NVM does not exceed the adjusted current threshold.
    Type: Application
    Filed: December 16, 2010
    Publication date: January 26, 2012
    Applicant: Apple Inc.
    Inventors: Matthew Byom, Vadim Khmelnitsky, Hugo Fiennes, Arjun Kapoor