Patents by Inventor John Strasser

John Strasser 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: 9824027
    Abstract: An apparatus and system are disclosed for a storage area network (“SAN”). In one embodiment, a computer system includes an internal storage device and an internal storage controller. In this embodiment, the internal storage controller is configured to implement a SAN that includes at least the internal storage device and a storage device external to the computer system. In this embodiment, the internal storage controller is further configured to service a storage request received from a client that involves data stored by the internal storage device. In this embodiment, the internal storage controller is configured to communicate with the external storage device via a network.
    Type: Grant
    Filed: July 11, 2013
    Date of Patent: November 21, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20170249242
    Abstract: In various embodiments, an apparatus, system, and method may increase data integrity in a redundant storage system. In one embodiment, a request is received for data stored at a storage system having a plurality of storage elements, where one or more of the plurality of storage elements include parity information. A determination is made that one of the plurality of storage elements is unavailable, the unavailable storage element being a functional storage element and including at least a portion of the data. Responsive to the determination, the data is reconstructed based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; a response is provided to the request such that the response includes the reconstructed data.
    Type: Application
    Filed: May 16, 2017
    Publication date: August 31, 2017
    Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: 9734086
    Abstract: The invention includes a proxy request receiver module and a proxy request command module. The proxy request receiver module executes on a designated command proxy host and receives a proxy request from a requesting host. The requesting host is one of two or more hosts. Each of the hosts executes an operating system independent from the other hosts and a shared device. One of the hosts is designated as the command proxy host. A system bus connects the hosts and shared device. The proxy request includes a control request to be executed by the shared device sufficient to configure the shared device for a data transfer between the requesting host and shared device independent of the command proxy host. The control request is free of data. The proxy request command module transmits the control request to the shared device.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: August 15, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: David Flynn, John Strasser, Jonathan Thatcher
  • Patent number: 9684560
    Abstract: In various embodiments, an apparatus, system, and method may increase data integrity in a redundant storage system. In one embodiment, a request is received for data stored at a storage system having a plurality of storage elements, where one or more of the plurality of storage elements include parity information. A determination is made that one of the plurality of storage elements is unavailable, the unavailable storage element being a functional storage element and including at least a portion of the data. Responsive to the determination, the data is reconstructed based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; a response is provided to the request such that the response includes the reconstructed data.
    Type: Grant
    Filed: April 4, 2016
    Date of Patent: June 20, 2017
    Assignee: LONGITUDE ENTERPRISE FLASH S.A.R.L.
    Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • 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: 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: 20170017542
    Abstract: A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising two or more solid-state storage elements. The data segments may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The data arrangement may determine input/output performance characteristics. An optimal adaptive data storage configuration may be based on read and/or write patterns of storage clients, read time, stream time, and so on. Data of failed storage elements may be reconstructed by use of parity data and/or other ECC codewords stored within the array.
    Type: Application
    Filed: October 3, 2016
    Publication date: January 19, 2017
    Inventors: David Flynn, John Strasser, Bill Inskeep
  • 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
  • Publication number: 20160371144
    Abstract: A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising a plurality of columns. The ECC codewords may comprise ECC codeword symbols. The ECC symbols of a data segment may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The individual ECC symbols may be stored within respective columns of the array (e.g., may not cross column boundaries). Data of an unavailable ECC symbol may be reconstructed by use of other ECC symbols stored on other columns of the array.
    Type: Application
    Filed: August 31, 2016
    Publication date: December 22, 2016
    Inventors: Jeremy Fillingim, David Flynn, John Strasser, Bill Inskeep
  • 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
  • Patent number: 9495241
    Abstract: A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising two or more solid-state storage elements. The data segments may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The data arrangement may determine input/output performance characteristics. An optimal adaptive data storage configuration may be based on read and/or write patterns of storage clients, read time, stream time, and so on. Data of failed storage elements may be reconstructed by use of parity data and/or other ECC codewords stored within the array.
    Type: Grant
    Filed: March 4, 2013
    Date of Patent: November 15, 2016
    Assignee: LONGITUDE ENTERPRISE FLASH S.A.R.L.
    Inventors: David Flynn, John Strasser, Bill Inskeep
  • 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
  • Patent number: 9424944
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for detecting voltage threshold drift. A method includes programming a predetermined pattern to one page of at least three pages of a set of memory cells. A pattern may have a configuration to reduce a number of bit transitions between abodes of a set of memory cells based on a coding scheme for the set of memory cells. A method includes reading data from a different page of at least three pages. A method includes determining a direction for adjusting a read voltage threshold for a set of memory cells based on read data.
    Type: Grant
    Filed: January 16, 2015
    Date of Patent: August 23, 2016
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Hairong Sun, Jea Hyun, Rick Lucky, John Strasser
  • Publication number: 20160217033
    Abstract: In various embodiments, an apparatus, system, and method may increase data integrity in a redundant storage system. In one embodiment, a request is received for data stored at a storage system having a plurality of storage elements, where one or more of the plurality of storage elements include parity information. A determination is made that one of the plurality of storage elements is unavailable, the unavailable storage element being a functional storage element and including at least a portion of the data. Responsive to the determination, the data is reconstructed based on at least a portion of the parity information and data from one or more of the plurality of storage elements other than the unavailable storage element; a response is provided to the request such that the response includes the reconstructed data.
    Type: Application
    Filed: April 4, 2016
    Publication date: July 28, 2016
    Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20160210050
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for interrupting storage operations. A frequency module is configured to determine a frequency for pausing a storage operation. An interrupt module is configured to pause execution of a storage operation according to a determined frequency. A resume module is configured to continue a paused storage operation in response to a trigger.
    Type: Application
    Filed: March 12, 2015
    Publication date: July 21, 2016
    Inventors: Jea Hyun, James Peterson, Long Pham, John Strasser, Hairong Sun, Kapil Verma
  • Publication number: 20160203053
    Abstract: A storage layer of a non-volatile storage device may be configured to provide key-value storage services. Key conflicts may be resolved by modifying the logical interface of data stored on the non-volatile storage device. Resolving a key conflict may comprise identifying an alternative key and implementing one or more range move operations configured to bind the stored data to the alternative key. The move operations may be implemented without relocating the data on the non-volatile storage device.
    Type: Application
    Filed: March 24, 2016
    Publication date: July 14, 2016
    Inventors: Nisha Talagala, David Flynn, Swaminathan Sundararaman, Sriram Subramanian, David Nellans, Robert Wipfel, John Strasser
  • Patent number: 9361029
    Abstract: One method for improving the utility of solid-state storage media within a solid state storage device includes referencing one or more storage media characteristics for a set of storage cells of the solid-state storage media. The method also includes determining a configuration parameter for the set of storage cells based on the one or more storage media characteristics. The method includes configuring the set of storage cells to use the determined configuration parameter. The configuration parameter includes a parameter of the set of storage cells modifiable by a module external to the solid-state storage device by way of an interface. The module external to the solid-state storage device includes a device driver executing on a host device.
    Type: Grant
    Filed: January 30, 2015
    Date of Patent: June 7, 2016
    Assignee: SANDISK TECHNOLOGIES, INC.
    Inventors: John Strasser, David Flynn, Jeremy Fillingim, Robert Wood, Jea Hyun, Hairong Sun
  • Publication number: 20160124639
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for a dynamic storage channel. A read module may be configured to direct a read command to one or more memory die in a row of an array of memory die to service a read request using one or more input/output (I/O) lines of the one or more memory die. Memory die in the row may have one or more common control lines. A channel module may be configured to direct a reserved command to one or more other memory die in the row of the array of memory die, using one or more I/O lines of the one or more other memory die.
    Type: Application
    Filed: January 16, 2015
    Publication date: May 5, 2016
    Inventors: Jea Hyun, John Strasser
  • Publication number: 20160125951
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for detecting voltage threshold drift. A method includes programming a predetermined pattern to one page of at least three pages of a set of memory cells. A pattern may have a configuration to reduce a number of bit transitions between abodes of a set of memory cells based on a coding scheme for the set of memory cells. A method includes reading data from a different page of at least three pages. A method includes determining a direction for adjusting a read voltage threshold for a set of memory cells based on read data.
    Type: Application
    Filed: January 16, 2015
    Publication date: May 5, 2016
    Inventors: Hairong Sun, Jea Hyun, Rick Lucky, John Strasser
  • Patent number: 9323465
    Abstract: A storage layer presents logical address space of a non-volatile storage device. The storage layer maintains logical interfaces to the non-volatile storage device, which may include arbitrary, any-to-any mappings between logical identifiers and storage resources. Data may be stored on the non-volatile storage device in a contextual format, which includes persistent metadata that defines the logical interface of the data. The storage layer may modify the logical interface of data that is stored in the contextual format. The modified logical interface may be inconsistent with the existing contextual format of the data on the non-volatile storage media. The storage layer may provide access to the data in the inconsistent contextual format through the modified logical interface. The contextual format of the data may be updated to be consistent with the modified logical interface in a write out-of-place storage operation.
    Type: Grant
    Filed: February 20, 2015
    Date of Patent: April 26, 2016
    Assignee: SANDISK TECHNOLOGIES, INC.
    Inventors: David Flynn, Robert Wipfel, David Nellans, John Strasser