Patents by Inventor Andrew W. Vogan

Andrew W. Vogan 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: 10552077
    Abstract: Disclosed herein are techniques for managing partitions on a storage device. A method can include (1) identifying a storage capacity of the storage device, (2) generating a first data structure that defines a first partition on the storage device, where the first partition consumes a first amount of the storage capacity, and (3) generating a second data structure that defines a second partition on the storage device, where the second partition consumes at least a portion of a remaining amount of the storage capacity relative to the first amount. In response to receiving a shrink request directed to the first partition, the method can further include (4) identifying a first utilized area within the first partition that will no longer be utilized as a result of the shrink request, and (5) updating first information in the first data structure to indicate that the first utilized area is unutilized.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: February 4, 2020
    Assignee: Apple Inc.
    Inventor: Andrew W. Vogan
  • Publication number: 20190286369
    Abstract: Disclosed herein are techniques for reducing write amplification when processing write commands directed to a non-volatile memory. According to some embodiments, the method can include the steps of (1) receiving a first plurality of write commands and a second plurality of write commands, where the first plurality of write commands and the second plurality of write commands are separated by a fence command (2) caching the first plurality of write commands, the second plurality of write commands, and the fence command, and (3) in accordance with the fence command, and in response to identifying that at least one condition is satisfied: (i) issuing the first plurality of write commands to the non-volatile memory, (ii) issuing the second plurality of write commands to the non-volatile memory, and (iii) updating log information to reflect that the first plurality of write commands precede the second plurality of write commands.
    Type: Application
    Filed: September 6, 2018
    Publication date: September 19, 2019
    Inventors: Yuhua LIU, Andrew W. VOGAN, Matthew J. BYOM, Alexander PALEY
  • Patent number: 10379949
    Abstract: Disclosed herein are techniques for managing parity information for data stored on a storage device. According to some embodiments, the method includes the steps of (1) receiving a request to store data into the storage device, (2) writing respective portions of the data into a plurality of data pages included in a first stripe of the storage device, where each data page is stored on a respective different die of the storage device, (3) calculating primary parity information for the first stripe, (4) writing the primary parity information into a primary parity page included in a second stripe of the storage device, (5) calculating secondary parity information for the second stripe, and (6) writing the secondary parity information into a secondary parity page included in a third stripe of the storage device. Additionally, a copy of the secondary parity information can be established to further-enhance redundancy.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: August 13, 2019
    Assignee: Apple Inc.
    Inventors: Evgeny Televitckiy, Alexander Paley, Andrew W. Vogan
  • Publication number: 20190102100
    Abstract: Disclosed herein are techniques for managing partitions on a storage device. A method can include (1) identifying a storage capacity of the storage device, (2) generating a first data structure that defines a first partition on the storage device, where the first partition consumes a first amount of the storage capacity, and (3) generating a second data structure that defines a second partition on the storage device, where the second partition consumes at least a portion of a remaining amount of the storage capacity relative to the first amount. In response to receiving a shrink request directed to the first partition, the method can further include (4) identifying a first utilized area within the first partition that will no longer be utilized as a result of the shrink request, and (5) updating first information in the first data structure to indicate that the first utilized area is unutilized.
    Type: Application
    Filed: September 29, 2017
    Publication date: April 4, 2019
    Inventor: Andrew W. VOGAN
  • Publication number: 20190102101
    Abstract: Disclosed herein are techniques for managing context information for data stored within a non-volatile memory of a computing device. According to some embodiments, the method can include (1) loading, into a volatile memory of the computing device, the context information from the non-volatile memory, where the context information is separated into a plurality of silos, (2) writing transactions into a log stored within the non-volatile memory, and (3) each time a condition is satisfied: (i) identifying a next silo of the plurality of silos to be written into the non-volatile memory, (ii) updating the next silo to reflect the transactions that apply to the next silo, and (iii) writing the next silo into the non-volatile memory. In turn, when an inadvertent shutdown of the computing device occurs, the silos of which the context information is comprised can be sequentially accessed and restored in an efficient manner.
    Type: Application
    Filed: September 29, 2017
    Publication date: April 4, 2019
    Inventors: Alexander PALEY, Andrew W. VOGAN
  • Publication number: 20190102253
    Abstract: Disclosed herein are techniques for managing parity information for data stored on a storage device. According to some embodiments, the method includes the steps of (1) receiving a request to store data into the storage device, (2) writing respective portions of the data into a plurality of data pages included in a first stripe of the storage device, where each data page is stored on a respective different die of the storage device, (3) calculating primary parity information for the first stripe, (4) writing the primary parity information into a primary parity page included in a second stripe of the storage device, (5) calculating secondary parity information for the second stripe, and (6) writing the secondary parity information into a secondary parity page included in a third stripe of the storage device. Additionally, a copy of the secondary parity information can be established to further-enhance redundancy.
    Type: Application
    Filed: September 29, 2017
    Publication date: April 4, 2019
    Inventors: Evgeny TELEVITCKIY, Alexander PALEY, Andrew W. VOGAN
  • Patent number: 10133506
    Abstract: Systems and methods for managing data in non-volatile memory devices across a large range of operating temperatures are provided. Embodiments discussed herein selectively reprogram previously programmed data at a temperature that better enables the data to be read regardless of where within the range of operating temperatures the data is being read. Circuitry and methods discussed herein can keep track of a program temperature associated with each portion of non-volatile memory and use this information along with other criteria to selectively perform temperature based moves of data. This enables a mechanism for data to programmed in out-of-bounds temperature ranges to be reprogrammed within an in-bounds temperatures range so that a temperature delta between the reprogrammed temperature and the read operation temperature is below a threshold that ensure efficient and error free read operations to be performed.
    Type: Grant
    Filed: December 26, 2017
    Date of Patent: November 20, 2018
    Assignee: APPLE INC.
    Inventors: Andrew W. Vogan, Charan Srinivasan, Matthew J. Byom
  • Patent number: 9990023
    Abstract: Systems and methods for handling sudden power failures in non-volatile memory devices such as solid state drives are provided by having the non-volatile memory device boot up in a low power write mode, which limits substantially all programming operations to a single level cell (SLC) mode, as opposed to a normal mode in which the programming operations can be performed in a multi-level cell (MLC) mode. Thus, if the system experiences a sudden power failure when it is being powered solely by AC derived power and the battery is below a level sufficient for powering the device while it is programming in the SLC mode, data integrity will be preserved because the programming operation was being performed in SLC mode. The non-volatile memory device may be permitted to exit out the low power write mode into the normal mode when the charge level of the battery is sufficient for powering the system.
    Type: Grant
    Filed: July 26, 2016
    Date of Patent: June 5, 2018
    Assignee: APPLE INC.
    Inventors: Alexander Paley, Andrew W. Vogan, Eran Sandel, Lior Mouler, Liran Erez, Matthew J. Byom, Muhammad N. Ashraf, Roman Guy
  • Publication number: 20180121131
    Abstract: Systems and methods for managing data in non-volatile memory devices across a large range of operating temperatures are provided. Embodiments discussed herein selectively reprogram previously programmed data at a temperature that better enables the data to be read regardless of where within the range of operating temperatures the data is being read. Circuitry and methods discussed herein can keep track of a program temperature associated with each portion of non-volatile memory and use this information along with other criteria to selectively perform temperature based moves of data. This enables a mechanism for data to programmed in out-of-bounds temperature ranges to be reprogrammed within an in-bounds temperatures range so that a temperature delta between the reprogrammed temperature and the read operation temperature is below a threshold that ensure efficient and error free read operations to be performed.
    Type: Application
    Filed: December 26, 2017
    Publication date: May 3, 2018
    Inventors: Andrew W. Vogan, Charan Srinivasan, Matthew J. Byom
  • Publication number: 20180046402
    Abstract: Systems and methods for managing data in non-volatile memory devices across a large range of operating temperatures are provided. Embodiments discussed herein selectively reprogram previously programmed data at a temperature that better enables the data to be read regardless of where within the range of operating temperatures the data is being read. Circuitry and methods discussed herein can keep track of a program temperature associated with each portion of non-volatile memory and use this information along with other criteria to selectively perform temperature based moves of data. This enables a mechanism for data to programmed in out-of-bounds temperature ranges to be reprogrammed within an in-bounds temperatures range so that a temperature delta between the reprogrammed temperature and the read operation temperature is below a threshold that ensure efficient and error free read operations to be performed.
    Type: Application
    Filed: August 9, 2016
    Publication date: February 15, 2018
    Inventors: Andrew W. Vogan, Charan Srinivasan, Matthew J. Byom
  • Patent number: 9891859
    Abstract: Systems and methods for managing data in non-volatile memory devices across a large range of operating temperatures are provided. Embodiments discussed herein selectively reprogram previously programmed data at a temperature that better enables the data to be read regardless of where within the range of operating temperatures the data is being read. Circuitry and methods discussed herein can keep track of a program temperature associated with each portion of non-volatile memory and use this information along with other criteria to selectively perform temperature based moves of data. This enables a mechanism for data to programmed in out-of-bounds temperature ranges to be reprogrammed within an in-bounds temperatures range so that a temperature delta between the reprogrammed temperature and the read operation temperature is below a threshold that ensure efficient and error free read operations to be performed.
    Type: Grant
    Filed: August 9, 2016
    Date of Patent: February 13, 2018
    Assignee: APPLE INC.
    Inventors: Andrew W. Vogan, Charan Srinivasan, Matthew J. Byom
  • Publication number: 20170277245
    Abstract: Systems and methods for handling sudden power failures in non-volatile memory devices such as solid state drives are provided by having the non-volatile memory device boot up in a low power write mode, which limits substantially all programming operations to a single level cell (SLC) mode, as opposed to a normal mode in which the programming operations can be performed in a multi-level cell (MLC) mode. Thus, if the system experiences a sudden power failure when it is being powered solely by AC derived power and the battery is below a level sufficient for powering the device while it is programming in the SLC mode, data integrity will be preserved because the programming operation was being performed in SLC mode. The non-volatile memory device may be permitted to exit out the low power write mode into the normal mode when the charge level of the battery is sufficient for powering the system.
    Type: Application
    Filed: July 26, 2016
    Publication date: September 28, 2017
    Inventors: Alexander Paley, Andrew W. Vogan, Eran Sandel, Lior Mouler, Liran Erez, Matthew J. Byom, Muhammad N. Ashraf, Roman Guy
  • Patent number: 9772959
    Abstract: In one embodiment, input-output (I/O) scheduling system detects and resolves priority inversions by expediting previously dispatched requests to an I/O subsystem. In response to detecting the priority inversion, the system can transmit a command to expedite completion of the blocking I/O request. The pending request can be located within the I/O subsystem and expedited to reduce the pendency period of the request.
    Type: Grant
    Filed: May 30, 2014
    Date of Patent: September 26, 2017
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Kushal Dalmia, Joseph Sokol, Jr., Andrew W. Vogan, Matthew J. Byom
  • Patent number: 9690953
    Abstract: Systems and methods are disclosed for generating efficient reads for a system having non-volatile memory (“NVM”). A read command can be separated by a host processor of the system into two phases: a) transmitting a command to a storage processor of the system, where the command is associated with one or more logical addresses, and b) generating data transfer information. The host processor can generate the data transfer information while the storage processor is processing the command from the host processor. Once the data transfer information has been generated and data has been read from the NVM, the data can be transferred.
    Type: Grant
    Filed: March 14, 2014
    Date of Patent: June 27, 2017
    Assignee: APPLE INC.
    Inventors: Andrew W. Vogan, Matthew J. Byom, Alexander C. Sanks, Daniel J. Post, Hari Hara Kumar Maharaj, Nir Jacob Wakrat, Kenneth L. Herman
  • Publication number: 20160335198
    Abstract: Disclosed herein are techniques for maintaining an indirection manager for a mass storage device. According to some embodiments, the indirection manager is configured to implement different algorithms that orchestrate a manner in which data is read from and written into memory sectors when handling I/O requests output by a computing device that is communicatively coupled to the mass storage device. Specifically, the algorithms utilize a mapping table that is limited to two levels of hierarchy: a first tier and a second tier, which constrains the overall size and complexity of the mapping table and can increase performance. The embodiments also set forth a memory manager that is configured to work in conjunction with the indirection manager to provide a mechanism for efficiently allocating and de-allocating variably-sized groups of sectors.
    Type: Application
    Filed: May 12, 2015
    Publication date: November 17, 2016
    Inventors: Andrew W. VOGAN, Evgeny TELEVITCKIY
  • Patent number: 9361036
    Abstract: Systems and methods are disclosed for correcting block errors. In particular, a system can store a parity page per page-modulo, where a pre-determined number of pages of a block or a band of the NVM may be allocated as page-modulo XOR (“PMX”) parity pages. This enables a space efficient approach for recovering from single-block data errors.
    Type: Grant
    Filed: June 29, 2015
    Date of Patent: June 7, 2016
    Assignee: APPLE INC.
    Inventors: Andrew W. Vogan, Daniel J. Post
  • Patent number: 9268495
    Abstract: In one embodiment, a memory system for managing priority based Input Output (I/O) command queuing for nonvolatile electrically erasable semiconductor memory comprises one or more banks of electrically erasable semiconductor memory coupled to a storage processor. The storage processor can processes access requests for the memory, and has components including: a command interface, an expectation table, and a mode selector. The command interface receives memory access requests, which include a tag to identify the request, and an external priority associated with the request. The expectation table includes a set of times associated with each of the external priority levels, which indicate the period in which a request having the external priority is expected. The mode selector selects from a set of storage processor operation modes including a standard mode and a preemption mode.
    Type: Grant
    Filed: August 12, 2013
    Date of Patent: February 23, 2016
    Assignee: Apple Inc.
    Inventor: Andrew W. Vogan
  • Publication number: 20150347327
    Abstract: In one embodiment, input-output (I/O) scheduling system detects and resolves priority inversions by expediting previously dispatched requests to an I/O subsystem. In response to detecting the priority inversion, the system can transmit a command to expedite completion of the blocking I/O request. The pending request can be located within the I/O subsystem and expedited to reduce the pendency period of the request.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Russell A. BLAINE, Kushal DALMIA, Joseph SOKOL, JR., Andrew W. VOGAN, Matthew J. BYOM
  • Publication number: 20150301760
    Abstract: Systems and methods are disclosed for correction of block errors for a system having non-volatile memory (“NVM”). In particular, the system can store a parity page per page-modulo, where a pre-determined number of pages of a block or a band of the NVM may be allocated as page-modulo XOR (“PMX”) parity pages. This can be a space efficient approach for recovering from single-block data errors such as, for example, single-page uncorrectable error-correcting codes (“uECCs”) and/or errors caused by word line shorts.
    Type: Application
    Filed: June 29, 2015
    Publication date: October 22, 2015
    Inventors: Andrew W. Vogan, Daniel J. Post
  • Patent number: 9069695
    Abstract: Systems and methods are disclosed for correction block errors. In particular, a system can store a parity page per page-modulo, where a pre-determined number of pages of a block or a band of the NVM may be allocated as page-modulo XOR (“PMX”) parity pages. This can be a space efficient approach for recovering from single-block data errors such as, for example, single-page uncorrectable error-correcting codes (“uECCs”) and/or errors caused by word line shorts.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: June 30, 2015
    Assignee: APPLE INC.
    Inventors: Andrew W. Vogan, Daniel J. Post