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: 9244842Abstract: 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: GrantFiled: November 22, 2013Date of Patent: January 26, 2016Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
-
Patent number: 9164888Abstract: 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: GrantFiled: December 10, 2012Date of Patent: October 20, 2015Assignee: Google Inc.Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
-
Patent number: 9069658Abstract: 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: GrantFiled: December 10, 2012Date of Patent: June 30, 2015Assignee: Google Inc.Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
-
Publication number: 20140164676Abstract: 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: ApplicationFiled: December 10, 2012Publication date: June 12, 2014Applicant: GOOGLE INC.Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
-
Publication number: 20140164677Abstract: 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: ApplicationFiled: December 10, 2012Publication date: June 12, 2014Applicant: GOOGLE INC.Inventors: Albert T. Borchers, Benjamin S. Gelb, Thomas J. Norrie, Andrew T. Swing
-
Publication number: 20140156915Abstract: 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: ApplicationFiled: November 25, 2013Publication date: June 5, 2014Applicant: GOOGLE INC.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
-
Publication number: 20140108708Abstract: 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: ApplicationFiled: October 18, 2013Publication date: April 17, 2014Applicant: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
-
Publication number: 20140089605Abstract: 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: ApplicationFiled: November 22, 2013Publication date: March 27, 2014Applicant: GOOGLE INC.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
-
Publication number: 20140047172Abstract: 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: ApplicationFiled: October 21, 2013Publication date: February 13, 2014Applicant: GOOGLE INC.Inventors: Robert S. Sprinkle, Andrew T. Swing, Albert T. Borchers
-
Patent number: 8639871Abstract: 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: GrantFiled: August 7, 2009Date of Patent: January 28, 2014Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
-
Patent number: 8595572Abstract: 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: GrantFiled: April 7, 2010Date of Patent: November 26, 2013Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
-
Patent number: 8578084Abstract: 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: GrantFiled: August 7, 2009Date of Patent: November 5, 2013Assignee: Google Inc.Inventors: Albert T. Borchers, Robert S. Sprinkle, Andrew T. Swing, Jason W. Klaus
-
Patent number: 8566508Abstract: 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: GrantFiled: August 7, 2009Date of Patent: October 22, 2013Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle
-
Patent number: 8566507Abstract: 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: GrantFiled: August 7, 2009Date of Patent: October 22, 2013Assignee: Google Inc.Inventors: Robert S. Sprinkle, Andrew T. Swing, Albert T. Borchers
-
Patent number: 8447918Abstract: 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: GrantFiled: April 7, 2010Date of Patent: May 21, 2013Assignee: Google Inc.Inventors: Robert S. Sprinkle, Albert T. Borchers, Andrew T. Swing
-
Patent number: 8433845Abstract: 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: GrantFiled: April 7, 2010Date of Patent: April 30, 2013Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
-
Patent number: 8380909Abstract: 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: GrantFiled: August 7, 2009Date of Patent: February 19, 2013Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Grant Grundler
-
Patent number: 8327220Abstract: 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: GrantFiled: October 10, 2011Date of Patent: December 4, 2012Assignee: Google Inc.Inventors: Albert T. Borchers, Andrew T. Swing, Robert S. Sprinkle, Jason W. Klaus
-
Patent number: 8321627Abstract: 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: GrantFiled: October 6, 2011Date of Patent: November 27, 2012Assignee: Google Inc.Inventors: Thomas J. Norrie, Andrew T. Swing, Jonathan Mayer
-
Patent number: 8255618Abstract: 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: GrantFiled: October 6, 2011Date of Patent: August 28, 2012Assignee: Google Inc.Inventors: Albert T. Borchers, Thomas J. Norrie, Andrews T. Swing