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: 9218279
    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: May 15, 2013
    Date of Patent: December 22, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Andrew J. Tomlin, Justin Jones, Rodney N. Mullendore
  • Publication number: 20150350086
    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: Application
    Filed: August 14, 2015
    Publication date: December 3, 2015
    Inventors: Rodney N. Mullendore, Joseph L. White
  • Patent number: 9177638
    Abstract: A data storage device may comprise a plurality of Multi-Level Cell (MLC) non-volatile memory devices comprising a plurality of lower pages and a corresponding plurality of higher-order pages. A controller may be configured to write data to and read data from the plurality of lower pages and the corresponding plurality of higher-order pages. A buffer may be coupled to the controller, which may be configured to accumulate data to be written to the MLC non-volatile memory devices, allocate space in the buffer and write the accumulated data to the allocated space. At least a portion of the accumulated data may be written in a lower page of the MLC non-volatile memory devices and the space in the buffer that stores data written to the lower page may be de-allocated when all higher-order pages corresponding to the lower page have been written in the MLC non-volatile memory devices.
    Type: Grant
    Filed: November 13, 2012
    Date of Patent: November 3, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Radoslav Danilak, Rodney N. Mullendore, Andrew J. Tomlin, Justin Jones, Jui-Yao Yang
  • Patent number: 9170939
    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: November 26, 2013
    Date of Patent: October 27, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, LLC
    Inventors: Justin Jones, Andrew J. Tomlin, Rodney N. Mullendore, Radoslav Danilak
  • Patent number: 9081700
    Abstract: A method of merging data frames includes: receiving a first data frame having a plurality of sectors; receiving a second data frame having a plurality of sectors; generating a merged output data frame by merging, using a plurality of data paths including a plurality of multiplexers, sectors of the second data frame with sectors of the first data frame; and performing an error check on at least one check-data frame having sectors corresponding to those in the first data frame or the second data frame, where at least some of the sectors in the check-data frame are transmitted on a subset of the plurality of data paths that transmits sectors of the merged output data frame, and where the error check verifies the merged output data frame.
    Type: Grant
    Filed: May 16, 2013
    Date of Patent: July 14, 2015
    Assignee: Western Digital Technologies, Inc.
    Inventors: Jack W. Flinsbaugh, Rodney N. Mullendore
  • Patent number: 9059736
    Abstract: A data storage device may comprise a flash controller and an array of flash memory devices coupled to the flash controller. The array may comprise a plurality of S-Pages that may each comprise a plurality of F-Pages. In turn, each of the plurality of F-Pages may be configured to store a variable amount of data and a variable amount of error correction code. The flash controller may be configured to generate an error correction code across each F-Page of an S-Page and to store the generated error correction code within one or more F-Pages having the largest amount of data.
    Type: Grant
    Filed: January 31, 2013
    Date of Patent: June 16, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, Inc.
    Inventors: Radoslav Danilak, Rodney N. Mullendore, Justin Jones, Andrew J. Tomlin
  • Patent number: 9021339
    Abstract: A data storage system configured to implement a data reliability scheme is disclosed. In one embodiment, a data storage system controller detects uncorrectable errors using intra page parity when data units are read from a set of pages. When an uncorrectable error is detected, the data storage system controller attempts to recover user data using inter page parity without using all data from each page of the set of pages. Recovery of user data can thereby be performed without reading all data from each page. As a result, the amount of time needed to read data can be reduced in some cases and overall data storage system performance can be increased.
    Type: Grant
    Filed: November 29, 2012
    Date of Patent: April 28, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, Inc.
    Inventors: Guangming Lu, Leader Ho, Radoslav Danilak, Rodney N. Mullendore, Justin Jones, Andrew J. Tomlin
  • Publication number: 20150074358
    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: September 6, 2013
    Publication date: March 12, 2015
    Applicants: Skyera, Inc., Western Digital Technologies, Inc.
    Inventors: JACK W. FLINSBAUGH, JUSTIN JONES, RODNEY N. MULLENDORE, ANDREW J. TOMLIN
  • Patent number: 8954694
    Abstract: A data storage device comprises a plurality of non-volatile memory devices configured to store a plurality of physical pages; a controller coupled to the plurality of memory devices that is configured to program data to and read data from the plurality of memory devices. A volatile memory may be coupled to the controller and may be configured to store a firmware table comprising a plurality of firmware table entries. The controller may be configured to maintain a plurality of firmware journals in the non-volatile memory devices. Each of the firmware journals may be associated with a firmware table entry and may comprise firmware table entry information. The controller may be configured to read the plurality of firmware journals upon startup and rebuild the firmware table using the firmware table entry information in each of the read plurality of firmware journals.
    Type: Grant
    Filed: November 15, 2012
    Date of Patent: February 10, 2015
    Assignees: Western Digital Technologies, Inc., Skyera, Inc.
    Inventors: Andrew J. Tomlin, Justin Jones, Rodney N. Mullendore
  • Patent number: 8898548
    Abstract: A data storage device may comprise an array of flash memory devices and a controller coupled thereto, configured to program and read data from the array responsive to received data access commands. The array may comprise a plurality of blocks, each comprising a plurality of flash pages (F-Pages), each of which comprising an integer number of one or more error correcting code pages (E-Pages), at least some of which comprising a data portion and an error correction code (ECC) portion. The controller may be configured to store a plurality of logical pages (L-Pages) in one or more of the plurality of E-Pages, at least some being unaligned with boundaries of the E-Pages; and to adjust, in at least one of the blocks, the size of the ECC portion and correspondingly adjust the size of the data portion of the E-Pages.
    Type: Grant
    Filed: August 24, 2012
    Date of Patent: November 25, 2014
    Assignee: Western Digital Technologies, Inc.
    Inventors: Rodney N. Mullendore, Radoslav Danilak, Justin Jones, Andrew J. Tomlin
  • Publication number: 20140344653
    Abstract: A method of merging data frames includes: receiving a first data frame having a plurality of sectors; receiving a second data frame having a plurality of sectors; generating a merged output data frame by merging, using a plurality of data paths including a plurality of multiplexers, sectors of the second data frame with sectors of the first data frame; and performing an error check on at least one check-data frame having sectors corresponding to those in the first data frame or the second data frame, where at least some of the sectors in the check-data frame are transmitted on a subset of the plurality of data paths that transmits sectors of the merged output data frame, and where the error check verifies the merged output data frame.
    Type: Application
    Filed: May 16, 2013
    Publication date: November 20, 2014
    Applicant: Western Digital Technologies, Inc.
    Inventors: JACK W. FLINSBAUGH, RODNEY N. MULLENDORE
  • Publication number: 20140281167
    Abstract: In various embodiments, a high-density solid-state storage unit includes a plurality of flash cards. Each flash card has a flash controller that incorporates one or more resources for facilitating compression and decompression operations. In one aspect, data reduction and data reconstruction operations can be performed in-line as data is stored to and retrieved from flash memory. In another aspect, data reduction and data reconstruction operations can be performed as a service. Any one of the plurality of flash cards can be used to provide data reduction or data reconstruction services on demand for any type of data, including system data, libraries, and firmware code.
    Type: Application
    Filed: December 17, 2013
    Publication date: September 18, 2014
    Applicant: Skyera, Inc.
    Inventors: Radoslav Danilak, Rodney N. Mullendore
  • Publication number: 20140281145
    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: May 15, 2013
    Publication date: September 18, 2014
    Applicant: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventors: ANDREW J. TOMLIN, JUSTIN JONES, RODNEY N. MULLENDORE
  • Publication number: 20120039341
    Abstract: A method and apparatus for transferring data between IP devices and SCSI or Fibre Channel devices. The device interfaces may be SCSI, Fibre Channel or IP interfaces. Data is switched between SCSI and IP, Fibre Channel and IP, or between SCSI and Fibre Channel. Data can also be switched from SCSI to SCSI, IP to IP and FC to FC. The port interfaces provide the conversion from the input frame format to an internal frame format, which can be routed within the apparatus. The amount of processing performed by each port interface is dependent on the interface type. The processing capabilities permit rapid transfer of information packets between multiple interfaces at latency levels meeting the stringent requirements for storage protocols. The configuration control can be applied to each port on a switch and, in turn, each switch on the network, via an SNMP or Web-based interface, providing flexible, programmable control.
    Type: Application
    Filed: October 28, 2011
    Publication date: February 16, 2012
    Inventors: Aamer Latif, Rodney N. Mullendore, Joseph L. White, Brian Y. Uchino
  • Patent number: 8051197
    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: March 20, 2003
    Date of Patent: November 1, 2011
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Rodney N. Mullendore, Aamer Latif, Joseph L. White, Englin Koay
  • Patent number: 7809852
    Abstract: A system and method for converting low-jitter, interleaved frame traffic, such as that generated in an IP network, to high jitter traffic to improve the utilization of bandwidth on arbitrated loops such as Fibre Channel Arbitrated Loops. Embodiments of a high jitter scheduling algorithm may be used in devices such as network switches that interface an arbitrated loop with an IP network that carries low-jitter traffic. The high jitter algorithm may use a separate queue for each device on the arbitrated loop, or alternatively may use one queue for two or more devices. Incoming frames are distributed among the queues based upon each frame's destination device. The scheduling algorithm may then service the queues and forward queued frames to the devices from the queues. In one embodiment, the queues are serviced in a round-robin fashion. In one embodiment, each queue may be serviced for a programmed limit.
    Type: Grant
    Filed: May 22, 2002
    Date of Patent: October 5, 2010
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Rodney N. Mullendore, Stuart F. Oberman, Anil Mehta, Keith Schakel, Kamran Malik
  • Publication number: 20100202294
    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: Application
    Filed: April 19, 2010
    Publication date: August 12, 2010
    Applicant: BROCADE COMMUNICATIONS SYSTEMS, INC.
    Inventors: Rodney N. Mullendore, Aamer Latif, Joseph L. White, Englin Koay
  • Patent number: 7406041
    Abstract: A system and method for late-dropping packets in a network switch. A network switch may include multiple input ports, multiple output ports, and a shared random access memory coupled to the input ports and output ports by data transport logic. Packets entering the switch may be subject to input thresholding, and may be assigned to a flow within a group. A portion of a packet subject to input thresholding may be accepted into the switch and assigned to a group and flow even if, at the time of arrival of the portion, there are not enough resources available to receive the remainder of the packet. This partial receipt of the packet is allowed because of the possibility of additional resources becoming available between the time of receipt of and resource allocation for the portion of the packet and receipt of subsequent portions of the packet.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: July 29, 2008
    Assignee: Brocade Communications Systems, Inc.
    Inventors: Rodney N. Mullendore, Stuart F. Oberman, Anil Mehta, Keith Schakel, Kamran Malik
  • Patent number: 7283556
    Abstract: A system and method for managing the allocation of Time Division Multiplexing (TDM) timeslots in a network switch. The network switch may use a TDM cycle comprising multiple timeslots to manage shared resources and to schedule data ingress and egress through the ports of the current configuration, wherein each port is assigned one or more timeslots. The network switch may be reprogrammed to support one of multiple timeslot assignment schemes for one of multiple port configurations. The network switch may support configurations with varying numbers of ports, e.g. 8- and 16-port configurations. A network switch may also support configurations where two or more ports are combined to form one port, for example, a 2 Gbs Fibre Channel port. To meet the requirements of the various configurations, the timeslot assignment scheme may be reprogrammed to meet the scheduling requirements of each of the possible port configurations.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: October 16, 2007
    Assignee: Nishan Systems, Inc.
    Inventors: Rodney N. Mullendore, Stuart F. Oberman, Anil Mehta, Keith Schakel, Kamran Malik
  • Patent number: 7227841
    Abstract: A system and method for input thresholding packets in a network switch. A network switch may include multiple input ports, multiple output ports, and a shared random access memory coupled to the input ports and output ports by data transport logic. Packets entering the network switch may be assigned to one of a plurality of threshold groups and to one of a plurality of flows within the threshold group. In one embodiment, each threshold group may be divided into a plurality of levels of operation. As resources are allocated or freed by the threshold group, the threshold group may dynamically move up or down in the levels of operation. Within each level, one or more different values may be used as level boundaries and resource limits for flows within the threshold group. In one embodiment, programmable registers may be used to store these values.
    Type: Grant
    Filed: May 13, 2002
    Date of Patent: June 5, 2007
    Assignee: Nishan Systems, Inc.
    Inventors: Rodney N. Mullendore, Stuart F. Oberman, Anil Mehta, Keith Schakel, Kamran Malik