Patents by Inventor Michael Zappe

Michael Zappe 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).

  • Publication number: 20170185347
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 29, 2017
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 9678874
    Abstract: An apparatus, system, and method are disclosed for managing eviction of data. A cache write module stores data on a non-volatile storage device sequentially using a log-based storage structure having a head region and a tail region. A direct cache module caches data on the non-volatile storage device using the log-based storage structure. The data is associated with storage operations between a host and a backing store storage device. An eviction module evicts data of at least one region in succession from the log-based storage structure starting with the tail region and progressing toward the head region.
    Type: Grant
    Filed: July 8, 2015
    Date of Patent: June 13, 2017
    Assignee: SanDisk Technologies LLC
    Inventors: David Nellans, David Atkisson, Jim Peterson, Jeremy Garff, Michael Zappe
  • Publication number: 20170147241
    Abstract: An apparatus, system, and method are disclosed for efficiently managing commands in a solid-state storage device that includes a solid-state storage arranged in two or more banks. Each bank is separately accessible and includes two or more solid-state storage elements accessed in parallel by a storage input/output bus. The solid-state storage includes solid-state, non-volatile memory. The solid-state storage device includes a bank interleave that directs one or more commands to two or more queues, where the one or more commands are separated by command type into the queues. Each bank includes a set of queues in the bank interleave controller. Each set of queues includes a queue for each command type. The bank interleave controller coordinates among the banks execution of the commands stored in the queues, where a command of a first type executes on one bank while a command of a second type executes on a second bank.
    Type: Application
    Filed: January 10, 2017
    Publication date: May 25, 2017
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Patent number: 9645758
    Abstract: Apparatuses, systems, and methods are disclosed for indexing data of an append-only, log-based structure. A storage controller writes a plurality of data packets to a storage medium by sequentially appending the data packets to a log-based structure of the storage medium. The data packets may be associated with different logical identifiers belonging to a logical address space that is independent of physical storage locations on the storage medium. An indexing module writes an index segment associated with the plurality of data packets to the log-based structure. The index segment may include index entries for determining the logical identifiers of the data packets. The indexing module records, on the storage medium, information indicating where the index segment is written on the storage medium.
    Type: Grant
    Filed: June 22, 2012
    Date of Patent: May 9, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: James Peterson, Evan Orme, Kevin Vigor, Michael Zappe
  • Patent number: 9632727
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Grant
    Filed: June 19, 2014
    Date of Patent: April 25, 2017
    Assignee: Longitude Enterprise Flash S.A.R.L.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 9600184
    Abstract: An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.
    Type: Grant
    Filed: September 25, 2015
    Date of Patent: March 21, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: David Flynn, Michael Zappe, Jonathan Thatcher
  • Patent number: 9575902
    Abstract: An apparatus, system, and method are disclosed for efficiently managing commands in a solid-state storage device that includes a solid-state storage arranged in two or more banks. Each bank is separately accessible and includes two or more solid-state storage elements accessed in parallel by a storage input/output bus. The solid-state storage includes solid-state, non-volatile memory. The solid-state storage device includes a bank interleave that directs one or more commands to two or more queues, where the one or more commands are separated by command type into the queues. Each bank includes a set of queues in the bank interleave controller. Each set of queues includes a queue for each command type. The bank interleave controller coordinates among the banks execution of the commands stored in the queues, where a command of a first type executes on one bank while a command of a second type executes on a second bank.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: February 21, 2017
    Assignee: LONGITUDE ENTERPRISE FLASH S.A.R.L.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20170003902
    Abstract: One method includes streaming a data segment to a write buffer corresponding to a virtual page including at least two physical pages. Each physical page is defined within a respective solid-state storage element. The method also includes programming contents of the write buffer to the virtual page, such that a first portion of the data segment is programmed to a first one of the physical pages, and a second portion of the data segment is programmed to a second one of the physical pages.
    Type: Application
    Filed: September 15, 2016
    Publication date: January 5, 2017
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe
  • Patent number: 9519594
    Abstract: An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and solid-state storage function as cache for one or more HCNV storage devices, and the data transfers may include one or more of data, metadata, and metadata indexes. The solid-state storage may include an array of non-volatile, solid-state data storage elements. The cache back-end module manages data transfers between the solid-state storage and the one or more HCNV storage devices.
    Type: Grant
    Filed: October 9, 2012
    Date of Patent: December 13, 2016
    Assignee: SanDisk Technologies LLC
    Inventors: David Flynn, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20160342366
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Application
    Filed: August 4, 2016
    Publication date: November 24, 2016
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 9454492
    Abstract: One method includes streaming a data segment to a write buffer corresponding to a virtual page including at least two physical pages. Each physical page is defined within a respective solid-state storage element. The method also includes programming contents of the write buffer to the virtual page, such that a first portion of the data segment is programmed to a first one of the physical pages, and a second portion of the data segment is programmed to a second one of the physical pages.
    Type: Grant
    Filed: December 28, 2012
    Date of Patent: September 27, 2016
    Assignee: LONGITUDE ENTERPRISE FLASH S.A.R.L.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe
  • Publication number: 20160132243
    Abstract: Data of a vector storage request pertaining to one or more disjoint, non-adjacent, and/or non-contiguous logical identifier ranges are stored contiguously within a log on a non-volatile storage medium. A request consolidation module modifies one or more sub-requests of the vector storage request in response to other, cached storage requests. Data of an atomic vector storage request may comprise persistent indicators, such as persistent metadata flags, to identify data pertaining to incomplete atomic storage requests. A restart recovery module identifies and excludes data of incomplete atomic operations.
    Type: Application
    Filed: January 19, 2016
    Publication date: May 12, 2016
    Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Nick Piggin, Michael Zappe
  • Patent number: 9305735
    Abstract: An x-ray window comprising a polymer and carbon nanotubes and/or graphene. The carbon nanotubes and/or graphene can be embedded in the polymer. Multiple layers of polymer, carbon nanotubes, and/or graphene may be used. The polymer with carbon nanotubes and/or graphene can be used as an x-ray window support structure and/or thin film.
    Type: Grant
    Filed: February 1, 2011
    Date of Patent: April 5, 2016
    Assignees: Brigham Young University, Moxtek, Inc.
    Inventors: Steven D. Liddiard, Charles R. Jensen, Michael Zappe, Keith W. Decker, Robert C. Davis, Lei Pei, Richard R. Vanfleet
  • Patent number: 9274937
    Abstract: Data of a vector storage request pertaining to one or more disjoint, non-adjacent, and/or non-contiguous logical identifier ranges are stored contiguously within a log on a non-volatile storage medium. A request consolidation module modifies one or more sub-requests of the vector storage request in response to other, cached storage requests. Data of an atomic vector storage request may comprise persistent indicators, such as persistent metadata flags, to identify data pertaining to incomplete atomic storage requests. A restart recovery module identifies and excludes data of incomplete atomic operations.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: March 1, 2016
    Assignee: Longitude Enterprise Flash S.a.r.l.
    Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Nick Piggin, Michael Zappe
  • Publication number: 20160018991
    Abstract: An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.
    Type: Application
    Filed: September 25, 2015
    Publication date: January 21, 2016
    Inventors: David Flynn, Michael Zappe, Jonathan Thatcher
  • Patent number: 9170754
    Abstract: An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.
    Type: Grant
    Filed: April 25, 2012
    Date of Patent: October 27, 2015
    Assignee: Intelligent Intellectual Property Holdings 2 LLC
    Inventors: David Flynn, Michael Zappe, Jonathan Thatcher
  • Publication number: 20150012689
    Abstract: Data is stored on a non-volatile storage media in a sequential, log-based format. The formatted data defines an ordered sequence of storage operations performed on the non-volatile storage media. A storage layer maintains volatile metadata, which may include a forward index associating logical identifiers with respective physical storage units on the non-volatile storage media. The volatile metadata may be reconstructed from the ordered sequence of storage operations. Persistent notes may be used to maintain consistency between the volatile metadata and the contents of the non-volatile storage media. Persistent notes may identify data that does not need to be retained on the non-volatile storage media and/or is no longer valid.
    Type: Application
    Filed: October 3, 2013
    Publication date: January 8, 2015
    Applicant: FUSION-IO, INC.
    Inventors: David Atkisson, David Nellans, David Flynn, Jens Axboe, Michael Zappe
  • Publication number: 20140372679
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Application
    Filed: June 19, 2014
    Publication date: December 18, 2014
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Publication number: 20140289447
    Abstract: An apparatus, system, and method are disclosed for storage space recovery. A storage division selection module selects a first storage division for recovery. The first storage division comprises a portion of solid-state storage in a solid-state storage device. A data recovery module reads valid data from the first storage division in response to selecting the first storage division for recovery. The data recovery module stores the valid data in a second storage division of the solid-state storage device. The data recovery module passes the valid data through at least a portion of a write data pipeline for the solid-state storage device without passing the valid data to a host device and/or without routing the valid data outside of a solid-state storage controller for the solid-state storage device.
    Type: Application
    Filed: November 15, 2011
    Publication date: September 25, 2014
    Applicant: FUSION-IO, INC.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe, Stephan Uphoff, Joshua Aune, Kevin Vigor
  • Patent number: 8762658
    Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the storage device. The apparatus, system, and method for managing data include a write request receiver module and a data segment token storage module. The write request receiver module receives a storage request from a requesting device. The storage request includes a request to store a data segment in a storage device. The data segment includes a series of repeated, identical characters or a series of repeated, identical character strings. The data segment token storage module stores a data segment token in the storage device. The data segment token includes at least a data segment identifier and a data segment length. The data segment token is substantially free of data from the data segment.
    Type: Grant
    Filed: August 3, 2012
    Date of Patent: June 24, 2014
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe