Patents by Inventor Eugene Zilberman

Eugene Zilberman 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: 8700840
    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: Grant
    Filed: January 5, 2009
    Date of Patent: April 15, 2014
    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: 8452911
    Abstract: A method and system for managing maintenance operations in a multi-bank non-volatile storage device is disclosed. The method includes receiving a data write command and associated data from a host system for storage in the non-volatile storage device and directing a head of the data write command to a first bank in the and a tail of the data write command to a second bank, where the head of the data write command only includes data having logical block addresses preceding logical block addresses of data in the tail of the data write command. When a status of the first bank delays execution of the data write command the controller executes a second bank maintenance procedure in the second bank while the data write command directed to the first and second banks is pending. The system includes a plurality of banks, where each bank may be associated with the same or different controllers, and the one or more controllers are adapted to execute the method noted above.
    Type: Grant
    Filed: September 30, 2010
    Date of Patent: May 28, 2013
    Assignee: SanDisk Technologies Inc.
    Inventors: Sergey Anatolievich Gorobets, Alan David Bennett, Charles Michael Schroter, Eugene Zilberman
  • Patent number: 8250333
    Abstract: A method and system maintains an address table for mapping logical groups to physical addresses in a memory device. The method includes receiving a request to set an entry in the address table and selecting and flushing entries in an address table cache depending on the existence of the entry in the cache and whether the cache meets a flushing threshold criteria. The flushed entries include less than the maximum capacity of the address table cache. The flushing threshold criteria includes whether the address table cache is full or if a page exceeds a threshold of changed entries. The address table and/or the address table cache may be stored in a non-volatile memory and/or a random access memory. Improved performance may result using this method and system due to the reduced number of write operations and time needed to partially flush the address table cache to the address table.
    Type: Grant
    Filed: January 5, 2009
    Date of Patent: August 21, 2012
    Assignee: Sandisk Technologies Inc.
    Inventors: Sergey Anatolievich Gorobets, Alexander Paley, Eugene Zilberman, Alan David Bennett, Shai Traister
  • 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
  • Publication number: 20120191927
    Abstract: Wear leveling techniques for re-programmable non-volatile memory systems, such as a flash EEPROM system, are described. One set of techniques uses “passive” arrangements, where, when a blocks are selected for writing, blocks with relatively low experience count are selected. This can be done by ordering the list of available free blocks based on experience count, with the “coldest” blocks placed at the front of the list, or by searching the free blocks to find a block that is “cold enough”. In another, complementary set of techniques, usable for more standard wear leveling operations as well as for “passive” techniques and other applications where the experience count is needed, the experience count of a block or meta-block is maintained as a block's attribute along its address in the data management structures, such as address tables.
    Type: Application
    Filed: March 29, 2012
    Publication date: July 26, 2012
    Inventors: Sergey Anatolievich Gorobets, Bum Suck So, Eugene Zilberman
  • Publication number: 20120084489
    Abstract: A method and system for managing maintenance operations in a multi-bank non-volatile storage device is disclosed. The method includes receiving a data write command and associated data from a host system for storage in the non-volatile storage device and directing a head of the data write command to a first bank in the and a tail of the data write command to a second bank, where the head of the data write command only includes data having logical block addresses preceding logical block addresses of data in the tail of the data write command. When a status of the first bank delays execution of the data write command the controller executes a second bank maintenance procedure in the second bank while the data write command directed to the first and second banks is pending. The system includes a plurality of banks, where each bank may be associated with the same or different controllers, and the one or more controllers are adapted to execute the method noted above.
    Type: Application
    Filed: September 30, 2010
    Publication date: April 5, 2012
    Inventors: Sergey Anatolievich Gorobets, Alan David Bennett, Charles Michael Schroter, Eugene Zilberman
  • 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
  • Patent number: 8040744
    Abstract: Techniques for the management of spare blocks in re-programmable non-volatile memory system, such as a flash EEPROM system, are presented. In one set of techniques, for a memory partitioned into two sections (for example a binary section and a multi-state section), where blocks of one section are more prone to error, spare blocks can be transferred from the more error prone partition to the less error prone partition. In another set of techniques for a memory partitioned into two sections, blocks which fail in the more error prone partition are transferred to serve as spare blocks in the other partition. In a complementary set of techniques, a 1-bit time stamp is maintained for free blocks to determine whether the block has been written recently. Other techniques allow for spare blocks to be managed by way of a logical to physical conversion table by assigning them logical addresses that exceed the logical address space of which a host is aware.
    Type: Grant
    Filed: January 5, 2009
    Date of Patent: October 18, 2011
    Assignee: SanDisk Technologies Inc.
    Inventors: Sergey Anatolievich Gorobets, Alan David Bennett, Eugene Zilberman
  • Patent number: 7911836
    Abstract: The present invention discloses systems and methods for restoring data in flash memory after an operational failure. The method includes: setting bits of a data buffer in accordance with the data; programming a plurality of memory cells in accordance with the data buffer; and upon failure of the programming step, restoring the data buffer to be set in accordance with the data, wherein the restoring is based only on a present state of the data buffer and on a present state of the plurality of memory cells. A memory device includes: at least one cell; and a controller operative to store data in at least one cell by steps including those described in the method above. The system includes: a memory device that includes at least one cell; and a processor operative to store data in at least one cell by steps including those described in the method above.
    Type: Grant
    Filed: November 21, 2008
    Date of Patent: March 22, 2011
    Assignee: Sandisk IL Ltd
    Inventor: Eugene Zilberman
  • 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: 20100174845
    Abstract: Wear leveling techniques for re-programmable non-volatile memory systems, such as a flash EEPROM system, are described. One set of techniques uses “passive” arrangements, where, when a blocks are selected for writing, blocks with relatively low experience count are selected. This can be done by ordering the list of available free blocks based on experience count, with the “coldest” blocks placed at the front of the list, or by searching the free blocks to find a block that is “cold enough”. In another, complementary set of techniques, usable for more standard wear leveling operations as well as for “passive” techniques and other applications where the experience count is needed, the experience count of a block or meta-block is maintained as a block's attribute along its address in the data management structures, such as address tables.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Sergey Anatolievich Gorobets, Bum Suck So, Eugene Zilberman
  • Publication number: 20100174869
    Abstract: A method and system maintains an address table for mapping logical groups to physical addresses in a memory device. The method includes receiving a request to set an entry in the address table and selecting and flushing entries in an address table cache depending on the existence of the entry in the cache and whether the cache meets a flushing threshold criteria. The flushed entries include less than the maximum capacity of the address table cache. The flushing threshold criteria includes whether the address table cache is full or if a page exceeds a threshold of changed entries. The address table and/or the address table cache may be stored in a non-volatile memory and/or a random access memory. Improved performance may result using this method and system due to the reduced number of write operations and time needed to partially flush the address table cache to the address table.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Sergey Anatolievich Gorobets, Alexander Paley, Eugene Zilberman, Alan David Bennett, Shai Traister
  • 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
  • Publication number: 20100172179
    Abstract: Techniques for the management of spare blocks in re-programmable non-volatile memory system, such as a flash EEPROM system, are presented. In one set of techniques, for a memory partitioned into two sections (for example a binary section and a multi-state section), where blocks of one section are more prone to error, spare blocks can be transferred from the more error prone partition to the less error prone partition. In another set of techniques for a memory partitioned into two sections, blocks which fail in the more error prone partition are transferred to serve as spare blocks in the other partition. In a complementary set of techniques, a 1-bit time stamp is maintained for free blocks to determine whether the block has been written recently. Other techniques allow for spare blocks to be managed by way of a logical to physical conversion table by assigning them logical addresses that exceed the logical address space of which a host is aware.
    Type: Application
    Filed: January 5, 2009
    Publication date: July 8, 2010
    Inventors: Sergey Anatolievich Gorobets, Alan David Bennett, Eugene Zilberman
  • Publication number: 20090094482
    Abstract: The present invention discloses systems and methods for restoring data in flash memory after an operational failure. The method includes: setting bits of a data buffer in accordance with the data; programming a plurality of memory cells in accordance with the data buffer; and upon failure of the programming step, restoring the data buffer to be set in accordance with the data, wherein the restoring is based only on a present state of the data buffer and on a present state of the plurality of memory cells. A memory device includes: at least one cell; and a controller operative to store data in at least one cell by steps including those described in the method above. The system includes: a memory device that includes at least one cell; and a processor operative to store data in at least one cell by steps including those described in the method above.
    Type: Application
    Filed: November 21, 2008
    Publication date: April 9, 2009
    Inventor: Eugene Zilberman
  • Publication number: 20070086244
    Abstract: The present invention discloses systems and methods for restoring data in flash memory after an operational failure. The method includes: setting bits of a data buffer in accordance with the data; programming a plurality of memory cells in accordance with the data buffer; and upon failure of the programming step, restoring the data buffer to be set in accordance with the data, wherein the restoring is based only on a present state of the data buffer and on a present state of the plurality of memory cells. A memory device includes: at least one cell; and a controller operative to store data in at least one cell by steps including those described in the method above. The system includes: a memory device that includes at least one cell; and a processor operative to store data in at least one cell by steps including those described in the method above.
    Type: Application
    Filed: August 2, 2006
    Publication date: April 19, 2007
    Inventor: Eugene Zilberman
  • Patent number: 6829721
    Abstract: A system and method for simplifying the testing and manufacturing process of multi-board solid-state storage systems. The system is constructed by placing secondary non-volatile memory components onto every board in multi-board system that carries primary solid-state components. This allows separate or independent testing of the boards, and final construction of the solid-state system by simply connecting these boards, without the need to either test the completely constructed system or to transfer geometry, faulty location and auxiliary records if the boards have been tested independently. The best mode of the invention is a solid-state storage system, wherein system data is stored on multiple boards, so that each board is a separate entity and can be attached, removed or replaced without additional steps for transferring the system information.
    Type: Grant
    Filed: February 5, 2001
    Date of Patent: December 7, 2004
    Assignee: M-Systems Flash Disk Pioneers Ltd.
    Inventor: Eugene Zilberman
  • Patent number: 6721820
    Abstract: A system and method for increasing the performance of a flash-based storage system, using specialized flash memory controller(s). Several methods of performance improvement are suggested such as adding DMA capability to flash memory controller to reduce the data transfer time; connecting flash chips to a multitude of flash memory controllers, which allow continuation of the data transfer to the system, even after the page programming operation has started; and connecting flash chips to a multitude of DMA-capable flash memory controllers to allow data transfer directly from one flash chip to another. In addition, a multi-controller design is suggested, which efficiently combines these performance-improving methods. In its best mode of operation, the present invention is a Flash-based storage system with several flash controllers or a multi-controller with DMA interface, organized in a way that reduces the page programming, page fetch and page copy time.
    Type: Grant
    Filed: May 15, 2002
    Date of Patent: April 13, 2004
    Assignee: M-Systems Flash Disk Pioneers Ltd.
    Inventors: Eugene Zilberman, Alex Yaroshetsky
  • Patent number: 6691205
    Abstract: A method and system for increasing read and write performance of flash-based storage systems, by using RAM buffers with multiple accesses. The increase of read and write performance of flash-based storage system is achieved by performing “from RAM” and “to RAM” transfer operations simultaneously. According to the preferred embodiment of the present invention, the invention provides a system for enabling simultaneous data transfer from a host interface to flash media and from flash media to a host interface. It also provides for a system for synchronizing memory-to-host and flash-to-memory transfers, during the host read operation. There is further provided a system of synchronizing host-to-memory and memory-to-flash transfers, during the host write operation.
    Type: Grant
    Filed: March 5, 2001
    Date of Patent: February 10, 2004
    Assignee: M-Systems Flash Disk Pioneers Ltd.
    Inventor: Eugene Zilberman