Patents by Inventor Robert S. Sprinkle

Robert S. Sprinkle 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: 8447918
    Abstract: A method of formatting a data storage device that includes a plurality of flash memory chips includes monitoring a failure rate of memory blocks of one or more flash memory chips of a storage device that has a first usable size for user space applications, estimating a future usable size of the data storage device based on the monitored failure rate, and defining, via a host coupled to the data storage device, a second usable size of the data storage device for user space applications based on the monitored failure rate.
    Type: Grant
    Filed: April 7, 2010
    Date of Patent: May 21, 2013
    Assignee: Google Inc.
    Inventors: Robert S. Sprinkle, Albert T. Borchers, Andrew T. Swing
  • Patent number: 8433845
    Abstract: A data storage device may include a command bus, a status bus, multiple memory devices that are operably coupled to the command bus and to the status bus, and a controller including multiple channel controllers, where the channel controllers are operably coupled to the command bus and to the status bus and each of the channel controllers is arranged and configured to control one or more of the memory devices. The data storage device may include multiple programmable logic devices that are operably coupled to the status bus, where each of the programmable logic devices is configured to retrieve a ready/busy signal from each of the memory devices under control of one of the channel controllers using the status bus, serialize the ready/busy signals and communicate the serialized ready/busy signals to the channel controllers.
    Type: Grant
    Filed: April 7, 2010
    Date of Patent: April 30, 2013
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 8380909
    Abstract: A host device may include a driver that is arranged and configured to communicate commands to a data storage device and multiple pairs of queues, where each of the pairs of queues may include a command queue that is populated with commands for retrieval by the data storage device and a response queue that is populated with responses by the data storage device for retrieval by the host device, where each response queue is associated with an interrupt and an interrupt handler.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: February 19, 2013
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Grant Grundler
  • Patent number: 8327220
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a verify on write command from the host using the interface, write data to one of the memory devices, read the data from the memory device, calculate an error correction code for the data as the data is being read, verify the data was written correctly to the memory device using the error correction code and communicate results to the host using the interface.
    Type: Grant
    Filed: October 10, 2011
    Date of Patent: December 4, 2012
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 8244962
    Abstract: An apparatus for queuing and ordering commands for a data storage device may include a slot tracker module that is arranged and configured to track available slots for commands from a host, a command transfer module that is operably coupled to the slot tracker module and that is arranged and configured to retrieve commands from the host based on a number of the available slots, a pending command module that is operably coupled to the command transfer module and that is arranged and configured to queue and order the commands from the host for processing using an ordered list that is based on an age of the commands and a task dispatch module that is operably coupled to the pending command module and that is arranged and configured to dispatch the commands for processing using the ordered list from the pending command module and an availability of storage locations.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: August 14, 2012
    Assignee: Google Inc.
    Inventors: Andrew T. Swing, Albert T. Borchers, Robert S. Sprinkle, Justin Kennington
  • Patent number: 8239713
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a bad block scan command for a specified one of the memory devices from the host using the interface, scan the specified memory device for bad blocks, generate a map of the bad blocks and communicate the map to the host using the interface.
    Type: Grant
    Filed: October 10, 2011
    Date of Patent: August 7, 2012
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 8239724
    Abstract: An apparatus for error correction for a data storage device may include an input interface that is configured to receive individual error correction requests to correct data from multiple channel controllers and that is configured to receive error correction information corresponding to the error correction requests, where each of the channel controllers is arranged and configured to control operations associated with one or more memory chips. The apparatus may include a corrector module that is operably coupled to the input interface and that is arranged and configured to perform error correction using an error correction algorithm and the error correction information to generate correction solutions, where the corrector module is a shared resource for the multiple channel controllers. The apparatus may include an output interface that is operably coupled to the corrector module and that is arranged and configured to communicate the correction solutions to the channel controllers.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: August 7, 2012
    Assignee: Google Inc.
    Inventors: Andrew T. Swing, Albert T. Borchers, Robert S. Sprinkle, Jason W. Klaus, Thomas J. Norrie, Benjamin S. Gelb
  • Patent number: 8239729
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a copy command from the host using the interface, read data from a source memory device in response to the copy command, write the data to a destination memory device in response to the copy command and communicate results to the host using the interface.
    Type: Grant
    Filed: October 7, 2011
    Date of Patent: August 7, 2012
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 8205037
    Abstract: A data storage device may include a first memory board including multiple memory chips and a controller board that is arranged and configured to operably connect to the first memory board. The controller board may include an interface to a host and a controller that includes a power module and that is arranged and configured to control command processing for multiple memory chips having different voltages, automatically recognize a voltage of the memory chips on the first memory board, configure the power module to operate at the recognized voltage of the memory chips, receive commands from the host using the interface and execute the commands using the memory chips.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: June 19, 2012
    Assignee: Google Inc.
    Inventors: Andrew T. Swing, Robert S. Sprinkle, Albert T. Borchers
  • Publication number: 20120030542
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a copy command from the host using the interface, read data from a source memory device in response to the copy command, write the data to a destination memory device in response to the copy command and communicate results to the host using the interface.
    Type: Application
    Filed: October 7, 2011
    Publication date: February 2, 2012
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Publication number: 20120030416
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a bad block scan command for a specified one of the memory devices from the host using the interface, scan the specified memory device for bad blocks, generate a map of the bad blocks and communicate the map to the host using the interface.
    Type: Application
    Filed: October 10, 2011
    Publication date: February 2, 2012
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Publication number: 20120030507
    Abstract: A data storage device includes an interface that is configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller is configured to receive a verify on write command from the host using the interface, write data to one of the memory devices, read the data from the memory device, calculate an error correction code for the data as the data is being read, verify the data was written correctly to the memory device using the error correction code and communicate results to the host using the interface.
    Type: Application
    Filed: October 10, 2011
    Publication date: February 2, 2012
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Publication number: 20100287217
    Abstract: An apparatus includes a flash memory data storage device and a host operably coupled to the data storage device via an interface. The flash memory data storage device includes a plurality of memory chips. The host includes a host activity monitoring engine configured to monitor activity of the host and a garbage collection control engine configured to control the background garbage collection performed by the data storage device's garbage collector.
    Type: Application
    Filed: April 7, 2010
    Publication date: November 11, 2010
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Publication number: 20100269015
    Abstract: A data storage device may include an interface that is arranged and configured to interface with a host, a command bus, multiple memory devices that are operably coupled to the command bus and a controller that is operably coupled to the interface and to the command bus. The controller may be arranged and configured to receive a read metadata command for a specified one of the memory devices from the host using the interface, read metadata from the specified memory device and communicate the metadata to the host using the interface.
    Type: Application
    Filed: April 7, 2010
    Publication date: October 21, 2010
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Publication number: 20100262757
    Abstract: A data storage device may include a first memory board having multiple memory chips and a controller board that is arranged and configured to operably connect to the first memory board. The controller board may include an interface to a host and a controller that is arranged and configured to control command processing for multiple different types of memory chips, automatically recognize a type of the memory chips on the first memory board, receive commands from the host using the interface, and execute the commands using the memory chips.
    Type: Application
    Filed: August 7, 2009
    Publication date: October 14, 2010
    Applicant: GOOGLE INC.
    Inventors: Robert S. Sprinkle, Andrew T. Swing, Albert T. Borchers
  • Publication number: 20100262758
    Abstract: A data storage device may include a first memory board including multiple memory chips and a controller board that is arranged and configured to operably connect to the first memory board. The controller board may include an interface to a host and a controller that includes a power module and that is arranged and configured to control command processing for multiple memory chips having different voltages, automatically recognize a voltage of the memory chips on the first memory board, configure the power module to operate at the recognized voltage of the memory chips, receive commands from the host using the interface and execute the commands using the memory chips.
    Type: Application
    Filed: August 7, 2009
    Publication date: October 14, 2010
    Applicant: Google Inc.
    Inventors: Andrew T. Swing, Robert S. Sprinkle, Albert T. Borchers
  • Publication number: 20100262762
    Abstract: A method of storing data in a flash memory data storage device that includes a plurality of memory chips is disclosed. The method includes determining a number of memory chips in the data storage device, defining, via a host coupled to the data storage device, a first partition of the data storage device, where the first partition includes a first subset of the plurality of memory chips and defining a second partition of the data storage device via a host coupled to the data storage device, where the second partition includes a second subset of the plurality of memory chips. First data is written to the first partition while reading data from the second partition, and first data is written to the second partition while reading data from the first partition.
    Type: Application
    Filed: August 7, 2009
    Publication date: October 14, 2010
    Applicant: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Publication number: 20100262760
    Abstract: An apparatus for queuing and ordering commands for a data storage device may include a slot tracker module that is arranged and configured to track available slots for commands from a host, a command transfer module that is operably coupled to the slot tracker module and that is arranged and configured to retrieve commands from the host based on a number of the available slots, a pending command module that is operably coupled to the command transfer module and that is arranged and configured to queue and order the commands from the host for processing using an ordered list that is based on an age of the commands and a task dispatch module that is operably coupled to the pending command module and that is arranged and configured to dispatch the commands for processing using the ordered list from the pending command module and an availability of storage locations.
    Type: Application
    Filed: August 7, 2009
    Publication date: October 14, 2010
    Applicant: GOOGLE INC.
    Inventors: Andrew T. Swing, Albert T. Borchers, Robert S. Sprinkle
  • Publication number: 20100262979
    Abstract: A method for communicating commands between a host and a flash memory data storage device includes populating a circular command queue of a driver on the host with commands for retrieval by the data storage device, transferring commands from the circular command queue to the data storage device via a device initiated direct memory access operation, populating, via a direct memory access operation initiated by the data storage device, a circular response queue of the host with responses by the data storage device for retrieval by the host device, where each response acknowledges the reception of a command from the host by the data storage device, and consuming responses from the circular response queue at the host.
    Type: Application
    Filed: April 8, 2010
    Publication date: October 14, 2010
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Grant Grundler, Christopher L. Johnson
  • Publication number: 20100262761
    Abstract: A method of partitioning a data storage device that has a plurality of memory chips includes determining a number memory chips in the data storage device, defining, via a host coupled to the data storage device, a first partition of the data storage device, where the first partition includes a first subset of the plurality of memory chips, defining a second partition of the data storage device via the host where the second partition includes a second subset of the plurality of memory chips, such that the first subset does not include any memory chips of the second subset and wherein the second subset does not include any memory chips of the first subset.
    Type: Application
    Filed: August 7, 2009
    Publication date: October 14, 2010
    Applicant: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle