Patents by Inventor Rodney N. Mullendore

Rodney N. Mullendore 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: 9760304
    Abstract: A method of writing data to a range of logical blocks in a storage medium includes: receiving a command including a starting logical block address, a value indicating a range of logical block addresses to be written, and a logical block of data; storing the logical block in a first temporary storage; generating a logical page by duplicating the logical block a plurality of times corresponding to a number of logical blocks in a logical page and transporting the generated logical page to a second temporary storage and storing the generated logical page in the second temporary storage; writing the generated logical page from the second temporary storage into the storage medium beginning from the starting logical block address; and performing a read-modify-write operation if the first write operation does not begin on a logical page boundary or the last write operation does not end on a logical page boundary.
    Type: Grant
    Filed: January 5, 2016
    Date of Patent: September 12, 2017
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Jack W. Flinsbaugh, Justin Jones, Rodney N. Mullendore, Andrew J. Tomlin
  • Publication number: 20170075807
    Abstract: A solid state drive controller includes a processor configured to couple to a plurality of non-volatile memory devices. The plurality of non-volatile memory devices are configured to store a plurality of system journals and a plurality of physical pages. The solid state drive controller also includes a volatile memory configured to store a logical-to-physical address translation map configured to enable the solid state drive controller to determine a physical location of at least one logical page. The processor is configured to maintain the plurality of system journals in the plurality of non-volatile memory devices, wherein each system journal defines physical-to-logical page correspondences for a predetermined range of the plurality of physical pages, and each system journal comprises an identification number that includes a portion of an address of a first physical page of the predetermined range of the plurality of physical pages.
    Type: Application
    Filed: November 7, 2016
    Publication date: March 16, 2017
    Inventors: Andrew J. TOMLIN, Rodney N. MULLENDORE, Justin JONES
  • Patent number: 9594520
    Abstract: A method of performing an atomic write command in a data storage device comprising a volatile memory and a plurality of non-volatile memory devices configured to store a plurality of physical pages. The method may comprise storing data in a plurality of logical pages (L-Pages), each associated with a logical address. A logical-to-physical address translation map may be maintained in the volatile memory, and may be configured to enable determination of a physical location, within one or more of the physical pages, of the data referenced by each logical address. The data specified by a received atomic write command may be stored one or more L-Pages. Updates to the entry or entries in the translation map associated with the L-Page(s) storing the data specified by the atomic write command may be deferred until all L-Pages storing data specified by the atomic write command have been written in a power-safe manner.
    Type: Grant
    Filed: December 21, 2015
    Date of Patent: March 14, 2017
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Andrew J. Tomlin, Justin Jones, Rodney N. Mullendore
  • Patent number: 9565110
    Abstract: Systems, methods and software useful for overcoming network congestion problems including head-of-line blocking issues and other network congestion problems. In certain aspects, flow control mechanisms implemented in a switch device or other network device manage buffer and system level resources using a scheduler to control the amount of data requested from a local SAN fabric. Switches and other network devices configured according to the present invention monitor each individual SCSI task, and are configured to apply flow control measures to each active session when buffering resources become scarce, such as when buffering data for a slower-speed WAN link or TCP/IP based interconnects of any speed.
    Type: Grant
    Filed: April 19, 2010
    Date of Patent: February 7, 2017
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Rodney N. Mullendore, Joseph L. White
  • Publication number: 20170010823
    Abstract: A data storage device comprises a non-volatile memory comprising a plurality of blocks, each configured to store a plurality of physical pages at predetermined physical locations. A controller programs and reads data stored in a plurality of logical pages. A volatile memory comprises a logical-to-physical address translation map configured to enabling determination of the physical location, within one or more physical pages, of the data stored in each logical page. A plurality of journals may be stored, each comprising a plurality of entries associating one or more physical pages to each logical page. At startup, the controller may read at least some of the plurality of journals in an order and rebuild the map; indicate a readiness to service data access commands after the map is rebuilt; rebuild a table from the map and, based thereon, select block(s) for garbage collection after having indicated the readiness to process the commands.
    Type: Application
    Filed: September 26, 2016
    Publication date: January 12, 2017
    Inventors: Andrew J. TOMLIN, Justin JONES, Rodney N. MULLENDORE
  • Patent number: 9529710
    Abstract: A solid state drive (SSD) includes: non-volatile semiconductor memory (NVSM); a first plurality of flash controllers, each flash controller having a processor; and a second plurality of channels, each consecutive channel assigned to a different flash controller.
    Type: Grant
    Filed: February 19, 2014
    Date of Patent: December 27, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Justin Jones, Rodney N. Mullendore
  • Patent number: 9507523
    Abstract: A data storage device may comprise an array of flash memory devices comprising a plurality of blocks, each comprising a plurality of physical pages. A controller may be coupled to and configured to program and read data from the array responsive to host commands. The controller may be configured to store data in a plurality of logical pages (L-Pages) of different sizes, each associated with an L-Page number that is configured to enable the host to logically reference data stored in one or more of the physical pages; and maintain a logical-to-physical address translation map configured to enable the controller to determine a location, within one or more physical pages, of the data referenced by each L-Page number. The translation map may comprise a plurality of mapping entries arranged by L-Page numbers, each comprising a complete starting physical address of an L-Page within one of the physical pages.
    Type: Grant
    Filed: October 12, 2012
    Date of Patent: November 29, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Rodney N. Mullendore, Radoslav Danilak, Justin Jones, Andrew J. Tomlin
  • Patent number: 9489296
    Abstract: A data storage device may comprise non-volatile memory devices, each configured to store a plurality of physical pages, a controller and a first volatile memory configured to store a logical-to-physical address translation map that enables the controller to determine a physical location of logical pages. The controller may maintain, in the memory devices, a plurality of journals defining physical-to-logical page correspondences, each entry of which associating one or more physical pages to a logical page. Garbage collection may be carried out by reading entries of the journals; determining a validity of each logical page referenced by the read entries through a comparison with a corresponding entry in the map, the logical pages referenced by the read entries being stored in first physical pages; writing logical pages determined to be valid to second physical pages and updating the map accordingly; and designating at least the first physical pages as free space.
    Type: Grant
    Filed: October 17, 2012
    Date of Patent: November 8, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Andrew J. Tomlin, Rodney N. Mullendore, Justin Jones
  • Publication number: 20160313936
    Abstract: A method for writing data in a data storage device includes: writing data to a physical memory location in a non-volatile memory; writing, for a first time, to a location in a volatile memory corresponding to a logical address of the data, a physical address of the physical memory location of the non-volatile memory containing the data; and writing, for a second time, to the location in the volatile memory corresponding to the logical address of the data, the address of the physical memory location of the non-volatile memory containing the data. The physical address of the physical memory location is written with appended error detection code information, and the error detection code information is determined based on the logical address of the data.
    Type: Application
    Filed: June 30, 2016
    Publication date: October 27, 2016
    Inventors: Justin JONES, Andrew J. TOMLIN, Rodney N. MULLENDORE
  • Patent number: 9471242
    Abstract: A data storage system includes: non-volatile solid state memory including non-volatile storage units and a temporary register; a data storage controller configured to receive a write command including a plurality of logical segments of data from a host; a write buffer allocated to receive a portion of the plurality of logical segments of data and accumulate a physical segment of data corresponding to a write unit of the solid state memory; a solid state memory controller configured to transmit the accumulated data from the write buffer to the temporary storage register each time the write buffer accumulates a physical segment of data. The data storage controller acknowledges completion of the write command to the host after the last logical segment of data is written to the write buffer; and deallocates the write buffer after the solid state memory completes reception of the accumulated data into the temporary storage register.
    Type: Grant
    Filed: October 20, 2015
    Date of Patent: October 18, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Justin Jones, Andrew J. Tomlin, Rodney N. Mullendore, Radoslav Danilak
  • Patent number: 9454474
    Abstract: A data storage device comprises a non-volatile memory comprising a plurality of blocks, each configured to store a plurality of physical pages at predetermined physical locations. A controller programs and reads data stored in a plurality of logical pages. A volatile memory comprises a logical-to-physical address translation map configured to enabling determination of the physical location, within one or more physical pages, of the data stored in each logical page. A plurality of journals may be stored, each comprising a plurality of entries associating one or more physical pages to each logical page. At startup, the controller may read at least some of the plurality of journals in an order and rebuild the map; indicate a readiness to service data access commands after the map is rebuilt; rebuild a table from the map and, based thereon, select block(s) for garbage collection after having indicated the readiness to process the commands.
    Type: Grant
    Filed: March 5, 2013
    Date of Patent: September 27, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Andrew J. Tomlin, Justin Jones, Rodney N. Mullendore
  • Publication number: 20160275012
    Abstract: A method for managing garbage collection of memory locations in an DSD having a plurality of dies each having a plurality of memory blocks includes: selecting a physical region of memory to be garbage collected, the selected physical region being a subset of a block management region; and garbage collecting the selected physical region. The garbage collecting includes: determining one or more journals corresponding to the selected physical region, the journal comprising transaction entries indicating what logical data are written to memory locations in the selected physical region; determining whether the memory locations within the physical region contain valid data based on a comparison of information in the journal and a mapping table; and if valid data exists, copying valid data into memory locations in memory regions other than the selected physical region of memory. The selected physical region of memory is erased when the block management region is erased.
    Type: Application
    Filed: May 27, 2016
    Publication date: September 22, 2016
    Inventors: Justin JONES, Andrew J. TOMLIN, Paul SWEAZEY, Johnny A. LAM, Rodney N. MULLENDORE
  • Patent number: 9384088
    Abstract: A method for writing data in a data storage device includes: writing data to a physical memory location in a non-volatile memory; writing, for a first time, to a location in a volatile memory corresponding to a logical address of the data, a physical address of the physical memory location of the non-volatile memory containing the data; and writing, for a second time, to the location in the volatile memory corresponding to the logical address of the data, the address of the physical memory location of the non-volatile memory containing the data. The physical address of the physical memory location is written with appended error detection code information, and the error detection code information is determined based on the logical address of the data.
    Type: Grant
    Filed: April 10, 2014
    Date of Patent: July 5, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Justin Jones, Andrew J. Tomlin, Rodney N. Mullendore
  • Patent number: 9354955
    Abstract: A method for managing garbage collection of memory locations in an DSD having a plurality of dies each having a plurality of memory blocks includes: selecting a physical region of memory to be garbage collected, the selected physical region being a subset of a block management region; and garbage collecting the selected physical region. The garbage collecting includes: determining one or more journals corresponding to the selected physical region, the journal comprising transaction entries indicating what logical data are written to memory locations in the selected physical region; determining whether the memory locations within the physical region contain valid data based on a comparison of information in the journal and a mapping table; and if valid data exists, copying valid data into memory locations in memory regions other than the selected physical region of memory. The selected physical region of memory is erased when the block management region is erased.
    Type: Grant
    Filed: April 10, 2014
    Date of Patent: May 31, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Justin Jones, Andrew J. Tomlin, Paul Sweazey, Johnny A. Lam, Rodney N. Mullendore
  • Publication number: 20160132248
    Abstract: A method of writing data to a range of logical blocks in a storage medium includes: receiving a command including a starting logical block address, a value indicating a range of logical block addresses to be written, and a logical block of data; storing the logical block in a first temporary storage; generating a logical page by duplicating the logical block a plurality of times corresponding to a number of logical blocks in a logical page and transporting the generated logical page to a second temporary storage and storing the generated logical page in the second temporary storage; writing the generated logical page from the second temporary storage into the storage medium beginning from the starting logical block address; and performing a read-modify-write operation if the first write operation does not begin on a logical page boundary or the last write operation does not end on a logical page boundary.
    Type: Application
    Filed: January 5, 2016
    Publication date: May 12, 2016
    Inventors: Jack W. Flinsbaugh, Justin Jones, Rodney N. Mullendore, Andrew J. Tomlin
  • Publication number: 20160110128
    Abstract: A method of performing an atomic write command in a data storage device comprising a volatile memory and a plurality of non-volatile memory devices configured to store a plurality of physical pages. The method may comprise storing data in a plurality of logical pages (L-Pages), each associated with a logical address. A logical-to-physical address translation map may be maintained in the volatile memory, and may be configured to enable determination of a physical location, within one or more of the physical pages, of the data referenced by each logical address. The data specified by a received atomic write command may be stored one or more L-Pages. Updates to the entry or entries in the translation map associated with the L-Page(s) storing the data specified by the atomic write command may be deferred until all L-Pages storing data specified by the atomic write command have been written in a power-safe manner.
    Type: Application
    Filed: December 21, 2015
    Publication date: April 21, 2016
    Inventors: Andrew J. TOMLIN, Justin JONES, Rodney N. MULLENDORE
  • Patent number: 9304709
    Abstract: A method of writing data to a range of logical blocks in a storage medium includes: receiving a command including a starting logical block address, a value indicating a range of logical block addresses to be written, and a logical block of data; storing the logical block in a first temporary storage; generating a logical page by duplicating the logical block a plurality of times corresponding to a number of logical blocks in a logical page and transporting the generated logical page to a second temporary storage and storing the generated logical page in the second temporary storage; writing the generated logical page from the second temporary storage into the storage medium beginning from the starting logical block address; and performing a read-modify-write operation if the first write operation does not begin on a logical page boundary or the last write operation does not end on a logical page boundary.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: April 5, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Jack W. Flinsbaugh, Justin Jones, Rodney N. Mullendore, Andrew J. Tomlin
  • Patent number: 9286176
    Abstract: A solid state drive (SSD), includes: a plurality of solid state memory devices, each solid state memory device including a plurality of memory blocks arranged in a plurality of planes; a storage; and an SSD controller configured to: write data to memory blocks in a predefined sequence, detect a defective memory block in the plurality of solid state memory devices, mark the detected memory block as defective and store an address of a next non-defective memory block, and in response to data to be written to the marked memory block, the controller skips the marked memory block and writes the data to the next non-marked memory block.
    Type: Grant
    Filed: January 15, 2014
    Date of Patent: March 15, 2016
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Andrew J. Tomlin, Justin Jones, Rodney N. Mullendore, Radoslav Danilak
  • Patent number: 9268682
    Abstract: A data storage device comprises a plurality of non-volatile memory devices storing physical pages, each stored at a predetermined physical location. A controller may be coupled to the memory devices and configured to access data stored in a plurality of logical pages (L-Pages), each associated with an L-Page number that enables the controller to logically reference data stored in the physical pages. A volatile memory may comprise a logical-to-physical address translation map that enables the controller to determine a physical location, within the physical pages, of data stored in each L-Page. The controller may be configured to maintain, in the memory devices, journals defining physical-to-logical correspondences, each journal covering a predetermined range of physical pages and comprising a plurality of entries that associate one or more physical pages to each L-Page. The controller may read the journals upon startup and rebuild the address translation map from the read journals.
    Type: Grant
    Filed: October 5, 2012
    Date of Patent: February 23, 2016
    Assignees: Skyera, LLC, Western Digital Technologies, Inc.
    Inventors: Andrew J. Tomlin, Rodney N. Mullendore, Justin Jones, Radoslav Danilak
  • Publication number: 20160041790
    Abstract: A data storage system includes: non-volatile solid state memory including non-volatile storage units and a temporary register; a data storage controller configured to receive a write command including a plurality of logical segments of data from a host; a write buffer allocated to receive a portion of the plurality of logical segments of data and accumulate a physical segment of data corresponding to a write unit of the solid state memory; a solid state memory controller configured to transmit the accumulated data from the write buffer to the temporary storage register each time the write buffer accumulates a physical segment of data. The data storage controller acknowledges completion of the write command to the host after the last logical segment of data is written to the write buffer; and deallocates the write buffer after the solid state memory completes reception of the accumulated data into the temporary storage register.
    Type: Application
    Filed: October 20, 2015
    Publication date: February 11, 2016
    Inventors: Justin JONES, Andrew J. TOMLIN, Rodney N. MULLENDORE, Radoslav DANILAK