Patents by Inventor Andrew T. Swing

Andrew T. Swing 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: 9244842
    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: Grant
    Filed: November 22, 2013
    Date of Patent: January 26, 2016
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 9164888
    Abstract: A data storage device includes multiple flash memory devices, where each of the flash memory devices is arranged into multiple blocks having multiple pages for storing data. The data storage device includes a memory controller operationally coupled with the flash memory devices. The memory controller is configured to receive a logical to physical address translation map from a host device, where a physical address includes a physical address for one of the flash memory devices. The memory controller is configured to store the logical to physical address translation map in a memory module on the memory controller, receive read commands directly from an application running on the host device, where the read commands include logical memory addresses that refer to the logical locations on the flash memory devices, and translate the logical addresses to physical memory addresses using the logical to physical address translation map.
    Type: Grant
    Filed: December 10, 2012
    Date of Patent: October 20, 2015
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
  • Patent number: 9069658
    Abstract: A data storage device includes multiple flash memory devices, where each of the flash memory devices are arranged into multiple blocks having multiple pages for storing data. The data storage device includes a memory controller that is operationally coupled with the flash memory devices. The memory controller is configured to receive a virtual to physical memory address translation map from a host device, where a physical memory address includes a physical address for memory on the host device. The memory controller is configured to store the virtual to physical memory address translation map in a memory module on the memory controller, receive commands directly from an application running on the host device, where the commands include virtual memory addresses that refer to the memory on the host device and translate the virtual memory addresses to physical memory addresses using the virtual to physical memory address translation map.
    Type: Grant
    Filed: December 10, 2012
    Date of Patent: June 30, 2015
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
  • Publication number: 20140164676
    Abstract: A data storage device includes multiple flash memory devices, where each of the flash memory devices are arranged into multiple blocks having multiple pages for storing data. The data storage device includes a memory controller that is operationally coupled with the flash memory devices. The memory controller is configured to receive a virtual to physical memory address translation map from a host device, where a physical memory address includes a physical address for memory on the host device. The memory controller is configured to store the virtual to physical memory address translation map in a memory module on the memory controller, receive commands directly from an application running on the host device, where the commands include virtual memory addresses that refer to the memory on the host device and translate the virtual memory addresses to physical memory addresses using the virtual to physical memory address translation map.
    Type: Application
    Filed: December 10, 2012
    Publication date: June 12, 2014
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
  • Publication number: 20140164677
    Abstract: A data storage device includes multiple flash memory devices, where each of the flash memory devices is arranged into multiple blocks having multiple pages for storing data. The data storage device includes a memory controller operationally coupled with the flash memory devices. The memory controller is configured to receive a logical to physical address translation map from a host device, where a physical address includes a physical address for one of the flash memory devices. The memory controller is configured to store the logical to physical address translation map in a memory module on the memory controller, receive read commands directly from an application running on the host device, where the read commands include logical memory addresses that refer to the logical locations on the flash memory devices, and translate the logical addresses to physical memory addresses using the logical to physical address translation map.
    Type: Application
    Filed: December 10, 2012
    Publication date: June 12, 2014
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
  • Publication number: 20140156915
    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: November 25, 2013
    Publication date: June 5, 2014
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Publication number: 20140108708
    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: October 18, 2013
    Publication date: April 17, 2014
    Applicant: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Publication number: 20140089605
    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: November 22, 2013
    Publication date: March 27, 2014
    Applicant: GOOGLE INC.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Publication number: 20140047172
    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: October 21, 2013
    Publication date: February 13, 2014
    Applicant: GOOGLE INC.
    Inventors: Robert S. Sprinkle, Andrew T. Swing, Albert T. Borchers
  • Patent number: 8639871
    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: Grant
    Filed: August 7, 2009
    Date of Patent: January 28, 2014
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Patent number: 8595572
    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: Grant
    Filed: April 7, 2010
    Date of Patent: November 26, 2013
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
  • Patent number: 8578084
    Abstract: A data storage device may include a first memory board and a second memory board, where the first memory board and the second memory board each comprise multiple memory chips. The data storage device may include a controller board that is arranged and configured to operably connect to the first memory board and the second memory board, where the controller board includes a high speed interface and a controller that is arranged and configured to receive commands from a host using the high speed interface and to execute the commands, where the first memory board and the second memory board are each separately removable from the controller board.
    Type: Grant
    Filed: August 7, 2009
    Date of Patent: November 5, 2013
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Robert S. Sprinkle, Andrew T. Swing, Jason W. Klaus
  • Patent number: 8566508
    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: Grant
    Filed: August 7, 2009
    Date of Patent: October 22, 2013
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
  • Patent number: 8566507
    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: Grant
    Filed: August 7, 2009
    Date of Patent: October 22, 2013
    Assignee: Google Inc.
    Inventors: Robert S. Sprinkle, Andrew T. Swing, Albert T. Borchers
  • 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: 8321627
    Abstract: Methods and apparatus for managing latency of memory commands are disclosed. An example method includes receiving memory operation commands for execution by a data storage device, each memory operation command being associated, for execution, with one of a plurality of memory devices. The example method also includes maintaining, for each memory device, a respective cumulative latency estimate. The example method also includes, for each memory operation command, when received by the memory controller, comparing the respective cumulative latency estimate of the associated memory device with a latency threshold for the received memory operation command. In the event the cumulative latency estimate is at or below the latency threshold, the received memory operation command is provided to a respective command queue operatively coupled with the respective memory device. In the event the cumulative latency estimate is above the latency threshold, the received memory operation command is returned to a host device.
    Type: Grant
    Filed: October 6, 2011
    Date of Patent: November 27, 2012
    Assignee: Google Inc.
    Inventors: Thomas J. Norrie, Andrew T. Swing, Jonathan Mayer
  • Patent number: 8255618
    Abstract: Shared memory device apparatus and related methods are disclosed. An example method includes obtaining memory operation commands. The memory operation commands are received by a command dispatcher in a same order as obtained by the queue arbiter from the host device. The example method further includes separately and respectively queuing the memory operation commands for each of a plurality of memory devices and dispatching the memory operation commands for execution. The example method also includes receiving the dispatched memory operation commands at a plurality of command queues, where each command queue is associated with a respective one of the plurality of memory devices. Each command queue is configured to receive its respective dispatched memory operation commands from the command dispatcher in a same order as received by the dispatcher and provide the received memory operation commands to its respective memory device in a first-in-first-out order.
    Type: Grant
    Filed: October 6, 2011
    Date of Patent: August 28, 2012
    Assignee: Google Inc.
    Inventors: Albert T. Borchers, Thomas J. Norrie, Andrews T. Swing