Patents by Inventor Neil D. Hutchison

Neil D. Hutchison 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: 10901892
    Abstract: Systems, methods and/or devices are used to enable locality grouping during garbage collection of a storage device. In one aspect, the method includes, at a storage controller for the storage device: performing one or more operations for a garbage collection read, including: identifying one or more sequences of valid data in a source unit, wherein each identified sequence of valid data has a length selected from a set of predefined lengths; and for each respective sequence, transferring the respective sequence to a respective queue of a plurality of queues, in accordance with the length of the respective sequence; and setting a global flag to flush all open queues; and performing one or more operations for a garbage collection write, including: identifying open respective queues for writing to a destination unit; and writing from the open respective queues to the destination unit.
    Type: Grant
    Filed: May 17, 2018
    Date of Patent: January 26, 2021
    Assignee: Western Digital Technologies, Inc.
    Inventors: Neil D. Hutchison, Steven Theodore Sprouse, Shakeel I. Bukhari
  • Patent number: 10740228
    Abstract: Systems, methods and/or devices are used to enable locality grouping during garbage collection of a storage device. In one aspect, the method includes, at a storage controller for the storage device: performing one or more operations for a garbage collection read, including: identifying one or more sequences of valid data in a source unit, wherein each identified sequence of valid data has a length selected from a set of predefined lengths; and for each respective sequence of the one or more sequences of valid data in the source unit, transferring the respective sequence to a respective queue of a plurality of queues, in accordance with the length of the respective sequence; and performing one or more operations for a garbage collection write, including: identifying full respective queues for writing to a destination unit; and writing from the full respective queues to the destination unit.
    Type: Grant
    Filed: May 17, 2018
    Date of Patent: August 11, 2020
    Assignee: Sandisk Technologies LLC
    Inventors: Neil D. Hutchison, Steven Theodore Sprouse, Shakeel I. Bukhari
  • Publication number: 20180336127
    Abstract: Systems, methods and/or devices are used to enable locality grouping during garbage collection of a storage device. In one aspect, the method includes, at a storage controller for the storage device: performing one or more operations for a garbage collection read, including: identifying one or more sequences of valid data in a source unit, wherein each identified sequence of valid data has a length selected from a set of predefined lengths; and for each respective sequence of the one or more sequences of valid data in the source unit, transferring the respective sequence to a respective queue of a plurality of queues, in accordance with the length of the respective sequence; and performing one or more operations for a garbage collection write, including: identifying full respective queues for writing to a destination unit; and writing from the full respective queues to the destination unit.
    Type: Application
    Filed: May 17, 2018
    Publication date: November 22, 2018
    Inventors: Neil D. Hutchison, Steven Theodore Sprouse, Shakeel I. Bukhari
  • Publication number: 20180336129
    Abstract: Systems, methods and/or devices are used to enable locality grouping during garbage collection of a storage device. In one aspect, the method includes, at a storage controller for the storage device: performing one or more operations for a garbage collection read, including: identifying one or more sequences of valid data in a source unit, wherein each identified sequence of valid data has a length selected from a set of predefined lengths; and for each respective sequence, transferring the respective sequence to a respective queue of a plurality of queues, in accordance with the length of the respective sequence; and setting a global flag to flush all open queues; and performing one or more operations for a garbage collection write, including: identifying open respective queues for writing to a destination unit; and writing from the open respective queues to the destination unit.
    Type: Application
    Filed: May 17, 2018
    Publication date: November 22, 2018
    Inventors: Neil D. Hutchison, Steven Theodore Sprouse, Shakeel I. Bukhari
  • Patent number: 9134918
    Abstract: Systems and methods are disclosed to improve the performance of a memory system by freeing up physical memory areas that correspond to logical block address ranges that have repeated data patterns. A controller detects data patterns in incoming data. When a data pattern is detected, the data is not written to non-volatile storage area. Rather, the logical block address range of the data is marked in a data structure as having pattern data. The pattern may also be recorded in the data structure as a pattern descriptor. Because the data having the data pattern is not written to the non-volatile storage area, the freed up corresponding physical memory area may be utilized by the memory system for other purposes, thereby improving the overall performance and endurance of the memory system.
    Type: Grant
    Filed: December 31, 2009
    Date of Patent: September 15, 2015
    Assignee: SanDisk Technologies Inc.
    Inventors: Damian P. Yurzola, Sergey A. Gorobets, Neil D. Hutchison, Eran Erez
  • Patent number: 8151034
    Abstract: A portion of a nonvolatile memory array that is likely to contain, partially programmed data may be identified from a high sensitivity read, by applying stricter than usual ECC requirements, or using pointers to programmed sectors. The last programmed data may be treated as likely to be partially programmed data. Data in the identified portion may be copied to another location, or left where it is with an indicator to prohibit further programming to the same cells. To avoid compromising previously stored data during subsequent programming, previously stored data may be backed up. Backing up may be done selectively, for example, only for nonsequential data, or only when the previously stored data contains an earlier version of data being programmed. If a backup copy already exists, another backup copy is not created. Sequential commands are treated as a single command if received within a predetermined time period.
    Type: Grant
    Filed: February 5, 2008
    Date of Patent: April 3, 2012
    Assignee: Sandisk Technologies Inc.
    Inventors: Sergey A. Gorobets, Alan D. Bennett, Neil D. Hutchison, Shai Traister, Jason T. Lin
  • Publication number: 20110161560
    Abstract: Systems and methods are disclosed to reduce the number of partial logical groups that are erased by writing erase patterns to memory in a non-volatile memory system. When a non-aligned erase command is received, the logical addresses of data associated with the erase command may be marked as erased. If the logical group corresponds to the size of a physical metablock, the controller may also issue a physical erase command for complete logical groups within the erase command. For those parts of the erase command that encompass only partial logical groups, the ranges of the logical block addresses marked for erasure are stored. As subsequent erase commands are received the address ranges of the erase commands are added to the previously stored address ranges. When a set of erase commands spans an entire logical group, the logical group is marked for physical erasure in its entirety.
    Type: Application
    Filed: December 31, 2009
    Publication date: June 30, 2011
    Inventors: Neil D. Hutchison, Alan D. Bennett, Sergey A. Gorobets, Steven T. Sprouse
  • Publication number: 20110161559
    Abstract: Systems and methods are disclosed to improve the performance of a memory system by freeing up physical memory areas that correspond to logical block address ranges that have repeated data patterns. A controller detects data patterns in incoming data. When a data pattern is detected, the data is not written to non-volatile storage area. Rather, the logical block address range of the data is marked in a data structure as having pattern data. The pattern may also be recorded in the data structure as a pattern descriptor. Because the data having the data pattern is not written to the non-volatile storage area, the freed up corresponding physical memory area may be utilized by the memory system for other purposes, thereby improving the overall performance and endurance of the memory system.
    Type: Application
    Filed: December 31, 2009
    Publication date: June 30, 2011
    Inventors: Damian P. Yurzola, Sergei A. Gorobets, Neil D. Hutchison, Eran Erez
  • Patent number: 7719890
    Abstract: A portion of a nonvolatile memory array that is likely to contain, partially programmed data may be identified from a high sensitivity read, by applying stricter than usual ECC requirements, or using pointers to programmed sectors. The last programmed data may be treated as likely to be partially programmed data. Data in the identified portion may be copied to another location, or left where it is with an indicator to prohibit further programming to the same cells. To avoid compromising previously stored data during subsequent programming, previously stored data may be backed up. Backing up may be done selectively, for example, only for nonsequential data, or only when the previously stored data contains an earlier version of data being programmed. If a backup copy already exists, another backup copy is not created. Sequential commands are treated as a single command if received within a predetermined time period.
    Type: Grant
    Filed: February 5, 2008
    Date of Patent: May 18, 2010
    Assignee: SanDisk Corporation
    Inventors: Sergey A. Gorobets, Shai Traister, Jason T. Lin, Alan D. Bennett, Neil D. Hutchison
  • Publication number: 20090067241
    Abstract: A portion of a nonvolatile memory array that is likely to contain, partially programmed data may be identified from a high sensitivity read, by applying stricter than usual ECC requirements, or using pointers to programmed sectors. The last programmed data may be treated as likely to be partially programmed data. Data in the identified portion may be copied to another location, or left where it is with an indicator to prohibit further programming to the same cells. To avoid compromising previously stored data during subsequent programming, previously stored data may be backed up. Backing up may be done selectively, for example, only for nonsequential data, or only when the previously stored data contains an earlier version of data being programmed. If a backup copy already exists, another backup copy is not created. Sequential commands are treated as a single command if received within a predetermined time period.
    Type: Application
    Filed: February 5, 2008
    Publication date: March 12, 2009
    Inventors: Sergey A. Gorobets, Shai Traister, Jason T. Lin, Alan D. Bennett, Neil D. Hutchison
  • Publication number: 20090070521
    Abstract: A portion of a nonvolatile memory array that is likely to contain, partially programmed data may be identified from a high sensitivity read, by applying stricter than usual ECC requirements, or using pointers to programmed sectors. The last programmed data may be treated as likely to be partially programmed data. Data in the identified portion may be copied to another location, or left where it is with an indicator to prohibit further programming to the same cells. To avoid compromising previously stored data during subsequent programming, previously stored data may be backed up. Backing up may be done selectively, for example, only for nonsequential data, or only when the previously stored data contains an earlier version of data being programmed. If a backup copy already exists, another backup copy is not created. Sequential commands are treated as a single command if received within a predetermined time period.
    Type: Application
    Filed: February 5, 2008
    Publication date: March 12, 2009
    Inventors: Sergey A. Gorobets, Alan D. Bennett, Neil D. Hutchison, Shai Traister, Jason T. Lin