Patents by Inventor Andrew Tomlin

Andrew Tomlin 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: 8266391
    Abstract: A method for writing data to a memory device is disclosed. In one embodiment, data of an atomic transaction is written to a first memory in a memory device. A determination is made regarding whether all of the data of the atomic transaction was written to the first memory. The data of the atomic transaction is read from the first memory and written to a second memory in the memory device only if it is determined that all of the data of the atomic transaction was written to the first memory.
    Type: Grant
    Filed: June 19, 2007
    Date of Patent: September 11, 2012
    Assignee: SanDisk Technologies, Inc.
    Inventors: Andrew Tomlin, Sergey A. Gorobets, Reuven Elhamias, Shai Traister, Alan D. Bennett
  • Publication number: 20120217106
    Abstract: A hydraulic damper assembly includes a main body, a shaft assembly and a main piston operatively configured to define an upper portion and a lower portion within the main body. A hydraulic damper spool valve is adapted to provide a single path, variable hydraulic flow restriction between the upper portion and lower portion of the main body. The hydraulic damper spool valve is configured with an array of precisely shaped flow apertures that are proportionally opened and closed by a pair of valve spools in response to the pressure differential across the main piston. The damper's pressure-flow operating characteristic is simply and predictably dictated by the geometric configuration of the shaped flow apertures. The precisely defined open area of the shaped flow apertures provides a mathematically predictable hydraulic flow restriction that operates predominately in a turbulent regime resulting in insensitivity to hydraulic fluid viscosity and consequently temperature change.
    Type: Application
    Filed: February 25, 2011
    Publication date: August 30, 2012
    Inventors: Damian O'Flynn, Andrew Tomlin
  • Patent number: 8244960
    Abstract: A portion of a nonvolatile memory is partitioned from a main multi-level memory array to operate as a cache. The cache memory is configured to store at less capacity per memory cell and finer granularity of write units compared to the main memory. In a block-oriented memory architecture, the cache has multiple functions, not merely to improve access speed, but is an integral part of a sequential update block system. The cache memory has a capacity dynamically increased by allocation of blocks from the main memory in response to a demand to increase the capacity. Preferably, a block with an endurance count higher than average is allocated. The logical addresses of data are partitioned into zones to limit the size of the indices for the cache.
    Type: Grant
    Filed: January 5, 2009
    Date of Patent: August 14, 2012
    Assignee: SanDisk Technologies Inc.
    Inventors: Alexander Paley, Sergey Anatolievich Gorobets, Eugene Zilberman, Alan David Bennett, Shai Traister, Andrew Tomlin, William S. Wu, Bum Suck So
  • Patent number: 8094500
    Abstract: A portion of a nonvolatile memory is partitioned from a main multi-level memory array to operate as a cache. The cache memory is configured to store at less capacity per memory cell and finer granularity of write units compared to the main memory. In a block-oriented memory architecture, the cache has multiple functions, not merely to improve access speed, but is an integral part of a sequential update block system. Decisions to write data to the cache memory or directly to the main memory depend on the attributes and characteristics of the data to be written, the state of the blocks in the main memory portion and the state of the blocks in the cache portion.
    Type: Grant
    Filed: January 5, 2009
    Date of Patent: January 10, 2012
    Assignee: Sandisk Technologies Inc.
    Inventors: Alexander Paley, Sergey Anatolievich Gorobets, Eugene Zilberman, Alan David Bennett, Shai Traister, Andrew Tomlin, William S. Wu, Bum Suck So
  • Publication number: 20110167186
    Abstract: A memory card that adapts its operation according to the application to which it applied or the conditions under which it is operated. This allows the card to dynamical self optimize. In a first set of embodiments, the card uses host profiling where it will learn about the host during host-card interactions and the card's controller will optimize its algorithms accordingly. In another set of embodiments, the host and card will report to one another their capabilities for a quality of service negotiation. A further set of embodiments allows the storage device to memorize access sequences issued by the host under various predefined conditions, such as host reset or a power on boot sequence. The storage device can use this information to optimize operation for the expected commands. On deviation from an expected sequence, the device would memorize the new command sequence and save it, thus operating in a self-adaptive manner.
    Type: Application
    Filed: March 14, 2011
    Publication date: July 7, 2011
    Inventors: Reuven Elhamias, Andrew Tomlin, Wesley G. Brewer, Yosi Pinto, Micky Holtzman
  • Patent number: 7962777
    Abstract: Multiple copies of firmware code for controlling operation of a non-volatile flash memory system are stored at different suitable locations of the flash memory of a memory system. A map of addresses of these locations is also stored in the flash memory. Upon initialization of the memory system, boot code stored in the memory controller is executed by its microprocessor to reference the address map and load one copy of the firmware from the flash memory into a controller memory, from which it may then be executed by the microprocessor to operate the memory system to store and retrieve user data. An error correction code (ECC) is used to check the data but the best portions of the two or more firmware copies stored in the flash memory are used to reduce the need to use ECC. The firmware code may be stored in the flash memory in two-states when user data is stored in the same memory in more than two-states.
    Type: Grant
    Filed: June 15, 2009
    Date of Patent: June 14, 2011
    Assignee: Sandisk Corporation
    Inventors: Carlos J. Gonzalez, Andrew Tomlin
  • Patent number: 7926720
    Abstract: A memory card that adapts its operation according to the application to which it applied or the conditions under which it is operated. This allows the card to dynamical self optimize. In a first set of embodiments, the card uses host profiling where it will learn about the host during host-card interactions and the card's controller will optimize its algorithms accordingly. In another set of embodiments, the host and card will report to one another their capabilities for a quality of service negotiation. A further set of embodiments allows the storage device to memorize access sequences issued by the host under various predefined conditions, such as host reset or a power on boot sequence. The storage device can use this information to optimize operation for the expected commands. On deviation from an expected sequence, the device would memorize the new command sequence and save it, thus operating in a self-adaptive manner.
    Type: Grant
    Filed: July 2, 2008
    Date of Patent: April 19, 2011
    Assignee: SanDisk Corporation
    Inventors: Reuven Elhamias, Andrew Tomlin, Wesley G. Brewer, Yosi Pinto, Micky Holtzman
  • Publication number: 20110072332
    Abstract: The present invention presents methods for improving data relocation operations. In one aspect, rather than check the quality of the data based on its associated error correction code (ECC) in every relocation operation, it is determined whether to check ECC based on predetermined selection criteria, and if ECC checking is not selected, causing the memory to perform an on-chip copy the data from a first location to a second location. If ECC checking is selected, the data is transferred to the controller and checked; when an error is found, a correction operation is performed and when no error is found, an on-chip copy is performed. The predetermined selection criteria may comprise a sampling mechanism, which may be random based or deterministic. In another aspect, data transfer flags are introduced to indicate data has been corrected and should be transferred back to the memory. A further aspect considers the header and user data separately if each has a distinct associated ECC.
    Type: Application
    Filed: November 8, 2010
    Publication date: March 24, 2011
    Inventor: Andrew Tomlin
  • Patent number: 7877593
    Abstract: The present invention presents a non-volatile memory system that adapts its performance to one or more system related situation. If a situation occurs where the memory will require more than the allotted time for completing an operation, the memory can switch from its normal operating mode to a high performance mode in order to complete the operation quickly enough. Conversely, if a situation arises where reliability could be an issue (such as partial page programming), the controller could switch to a high reliability mode. In either case, once the trigging system situation has returned to normal, the memory reverts to the normal operation. The detection of such situations can be used both for programming and data relocation operations. An exemplary embodiment is based on firmware programmable performance.
    Type: Grant
    Filed: February 2, 2009
    Date of Patent: January 25, 2011
    Assignee: SanDisk Corporation
    Inventors: Andrew Tomlin, Carlos Gonzalez
  • Patent number: 7849381
    Abstract: Methods are presented for improving data relocation operations. Rather than check data quality based on its associated error correction code (ECC) in every relocation operation, it can determine whether to check ECC based on predetermined selection criteria: if ECC checking is not selected, the memory can perform an on-chip copy of the data from a first location to a second location. If ECC checking is selected, the data is transferred to the controller and checked; when an error is found, a correction operation is performed and when no error is found, an on-chip copy is performed. Predetermined selection criteria may comprise a sampling mechanism, which may be random based or deterministic. Additionally, data transfer flags can be introduced to indicate data has been corrected and should be transferred back to the memory. Header and user data can be considered separately if each has a distinct associated ECC.
    Type: Grant
    Filed: December 21, 2004
    Date of Patent: December 7, 2010
    Assignee: SanDisk Corporation
    Inventor: Andrew Tomlin
  • Publication number: 20100174847
    Abstract: A portion of a nonvolatile memory is partitioned from a main multi-level memory array to operate as a cache. The cache memory is configured to store at less capacity per memory cell and finer granularity of write units compared to the main memory. In a block-oriented memory architecture, the cache has multiple functions, not merely to improve access speed, but is an integral part of a sequential update block system. The cache memory has a capacity dynamically increased by allocation of blocks from the main memory in response to a demand to increase the capacity. Preferably, a block with an endurance count higher than average is allocated. The logical addresses of data are partitioned into zones to limit the size of the indices for the cache.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Alexander Paley, Sergey Anatolievich Gorobets, Eugene Zilberman, Alan David Bennett, Shai Traister, Andrew Tomlin, William S. Wu, Bum Suck So
  • Publication number: 20100172180
    Abstract: A portion of a nonvolatile memory is partitioned from a main multi-level memory array to operate as a cache. The cache memory is configured to store at less capacity per memory cell and finer granularity of write units compared to the main memory. In a block-oriented memory architecture, the cache has multiple functions, not merely to improve access speed, but is an integral part of a sequential update block system. Decisions to write data to the cache memory or directly to the main memory depend on the attributes and characteristics of the data to be written, the state of the blocks in the main memory portion and the state of the blocks in the cache portion.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Alexander Paley, Sergey Anatolievich Gorobets, Eugene Zilberman, Alan David Bennett, Shai Traister, Andrew Tomlin, William S. Wu, Bum Suck So
  • Publication number: 20100174846
    Abstract: A portion of a nonvolatile memory is partitioned from a main multi-level memory array to operate as a cache. The cache memory is configured to store at less capacity per memory cell and finer granularity of write units compared to the main memory. In a block-oriented memory architecture, the cache has multiple functions, not merely to improve access speed, but is an integral part of a sequential update block system. Decisions to archive data from the cache memory to the main memory depend on the attributes of the data to be archived, the state of the blocks in the main memory portion and the state of the blocks in the cache portion.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Alexander Paley, Sergey Anatolievich Gorobets, Eugene Zilberman, Alan David Bennett, Shai Traister, Andrew Tomlin, William S. Wu, Bum Suck So
  • Patent number: 7752412
    Abstract: In a nonvolatile memory system, a host allocates clusters and records allocation information in a File Allocation Table that is stored in the nonvolatile memory. A controller separately allocates certain data and records allocation in a record in a volatile memory. File Allocation Table information provided to the host is modified according to the record in the volatile memory.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: July 6, 2010
    Assignee: Sandisk Corporation
    Inventors: Andrew Tomlin, Sergey Anatolievich Gorobets
  • Patent number: 7681008
    Abstract: In a nonvolatile memory system, a host allocates clusters and records allocation information in a File Allocation Table that is stored in the nonvolatile memory. A controller separately allocates certain data and records allocation in a record in a volatile memory. File Allocation Table information provided to the host is modified according to the record in the volatile memory.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: March 16, 2010
    Assignee: SanDisk Corporation
    Inventors: Andrew Tomlin, Sergey Anatolievich Gorobets
  • Publication number: 20090265508
    Abstract: A re-programmable non-volatile memory system, such as a flash EEPROM system, having its memory cells grouped into blocks of cells that are simultaneously erasable is operated to perform memory system housekeeping operations in the foreground during execution of a host command, wherein the housekeeping operations are unrelated to execution of the host command. Both one or more such housekeeping operations and execution of the host command are performed within a time budget established for executing that particular command. One such command is to write data being received to the memory. One such housekeeping operation is to level out the wear of the individual blocks that accumulates through repetitive erasing and re-programming.
    Type: Application
    Filed: June 29, 2009
    Publication date: October 22, 2009
    Inventors: Alan David Bennett, Sergey Anatolievich Gorobets, Andrew Tomlin, Charles Schroter
  • Publication number: 20090254776
    Abstract: Multiple copies of firmware code for controlling operation of a non-volatile flash memory system are stored at different suitable locations of the flash memory of a memory system. A map of addresses of these locations is also stored in the flash memory. Upon initialization of the memory system, boot code stored in the memory controller is executed by its microprocessor to reference the address map and load one copy of the firmware from the flash memory into a controller memory, from which it may then be executed by the microprocessor to operate the memory system to store and retrieve user data. An error correction code (ECC) is used to check the data but the best portions of the two or more firmware copies stored in the flash memory are used to reduce the need to use ECC. The firmware code may be stored in the flash memory in two-states when user data is stored in the same memory in more than two-states.
    Type: Application
    Filed: June 15, 2009
    Publication date: October 8, 2009
    Inventors: Carlos J. Gonzalez, Andrew Tomlin
  • Patent number: 7594135
    Abstract: Multiple copies of firmware code for controlling operation of a non-volatile flash memory system are stored at different suitable locations of the flash memory of a memory system. A map of addresses of these locations is also stored in the flash memory. Upon initialization of the memory system, boot code stored in the memory controller is executed by its microprocessor to reference the address map and load one copy of the firmware from the flash memory into a controller memory, from which it may then be executed by the microprocessor to operate the memory system to store and retrieve user data. An error correction code (ECC) is used to check the data but the best portions of the two or more firmware copies stored in the flash memory are used to reduce the need to use ECC. The firmware code may be stored in the flash memory in two-states when user data is stored in the same memory in more than two-states.
    Type: Grant
    Filed: December 31, 2003
    Date of Patent: September 22, 2009
    Assignee: Sandisk Corporation
    Inventors: Carlos J. Gonzalez, Andrew Tomlin
  • Patent number: 7565478
    Abstract: A re-programmable non-volatile memory system, such as a flash EEPROM system, having its memory cells grouped into blocks of cells that are simultaneously erasable is operated to perform memory system housekeeping operations in the foreground during execution of a host command, wherein the housekeeping operations are unrelated to execution of the host command. Both one or more such housekeeping operations and execution of the host command are performed within a time budget established for executing that particular command. One such command is to write data being received to the memory. One such housekeeping operation is to level out the wear of the individual blocks that accumulates through repetitive erasing and re-programming.
    Type: Grant
    Filed: December 3, 2007
    Date of Patent: July 21, 2009
    Assignee: Sandisk Corporation
    Inventors: Alan David Bennett, Sergey Anatolievich Gorobets, Andrew Tomlin, Charles Schroter
  • Publication number: 20090172252
    Abstract: A memory device and method for performing a write-abort-safe firmware update are disclosed. In one embodiment, a location in a memory of a memory device for a firmware update is allocated. The firmware update is written into the allocated location in the memory. A pointer is written to the firmware update in a directory, and a pointer is written to the directory in a location in the memory that is read during boot-up. In another embodiment, a block in a memory of a memory device is allocated for updated file system data comprising a firmware update and a directory. The updated file system data is written into the allocated location in the memory. A pointer is written to the firmware update in the directory, and a pointer is written to the updated file system data in a boot block in the memory, wherein the boot block is read during boot-up.
    Type: Application
    Filed: December 28, 2007
    Publication date: July 2, 2009
    Inventors: Andrew Tomlin, Dennis S. Ea, Daniel E. Tuers