Patents by Inventor Charles E. Nichols

Charles E. Nichols 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: 10826848
    Abstract: A system for dynamically configuring and scheduling input/output (I/O) workloads among processing cores is disclosed. Resources for an application that are related to each other and/or not multicore safe are grouped together into work nodes. When these need to be executed, the work nodes are added to a global queue that is accessible by all of the processing cores. Any processing core that becomes available can pull and process the next available work node through to completion, so that the work associated with that work node software object is all completed by the same core, without requiring additional protections for resources that are not multicore safe. Indexes track the location of both the next work node in the global queue for processing and the next location in the global queue for new work nodes to be added for subsequent processing.
    Type: Grant
    Filed: April 26, 2017
    Date of Patent: November 3, 2020
    Assignee: NETAPP, INC.
    Inventors: Charles E. Nichols, Scott Terrill, Don Humlicek, Arindam Banerjee, Yulu Diao, Anthony D. Gitchell
  • Publication number: 20180113738
    Abstract: A system for dynamically configuring and scheduling input/output (I/O) workloads among processing cores is disclosed. Resources for an application that are related to each other and/or not multicore safe are grouped together into work nodes. When these need to be executed, the work nodes are added to a global queue that is accessible by all of the processing cores. Any processing core that becomes available can pull and process the next available work node through to completion, so that the work associated with that work node software object is all completed by the same core, without requiring additional protections for resources that are not multicore safe. Indexes track the location of both the next work node in the global queue for processing and the next location in the global queue for new work nodes to be added for subsequent processing.
    Type: Application
    Filed: April 26, 2017
    Publication date: April 26, 2018
    Inventors: Charles E. Nichols, Scott Terrill, Don Humlicek, Arindam Banerjee, Yulu Diao, Anthony D. Gitchell
  • Patent number: 8776060
    Abstract: Methods and structure for reprogramming firmware in a storage controller using a virtual machine management (VMM) environment. A storage process (current firmware) in the storage controller operates in a current virtual machine (VM) under control of a hypervisor. Reprogrammed (new) firmware is loaded into a new virtual machine under control of the hypervisor. The new firmware initializes and directs the current firmware to quiesce its processing. The new firmware also requests the hypervisor to map data in the memory space of the current virtual machine into the memory space of the new virtual machine and to transfer ownership/control of devices and network addresses from the current virtual machine to the new virtual machine. The new firmware operating on the new virtual machine then takes control of the storage controller and resumes processing of requests.
    Type: Grant
    Filed: November 4, 2010
    Date of Patent: July 8, 2014
    Assignee: LSI Corporation
    Inventors: Martin Jess, Charles E. Nichols, Rexford A. Hill, John G. Logan, Timothy R. Snider
  • Publication number: 20120117562
    Abstract: Methods and structure for reprogramming firmware in a storage controller using a virtual machine management (VMM) environment. A storage process (current firmware) in the storage controller operates in a current virtual machine (VM) under control of a hypervisor. Reprogrammed (new) firmware is loaded into a new virtual machine under control of the hypervisor. The new firmware initializes and directs the current firmware to quiesce its processing. The new firmware also requests the hypervisor to map data in the memory space of the current virtual machine into the memory space of the new virtual machine and to transfer ownership/control of devices and network addresses from the current virtual machine to the new virtual machine. The new firmware operating on the new virtual machine then takes control of the storage controller and resumes processing of requests.
    Type: Application
    Filed: November 4, 2010
    Publication date: May 10, 2012
    Applicant: LSI CORPORATION
    Inventors: Martin Jess, Charles E. Nichols, Rexford A. Hill, John G. Logan, Timothy R. Snider
  • Patent number: 8015439
    Abstract: The present invention is a method for handling disk drives in a Redundant Array of Inexpensive Disks (RAID) configuration. The method may include detecting a disk drive received via insertion of the disk drive in a disk drive slot of an enclosure of the RAID configuration. Prior to the disk drive being received, it may be that fewer than a maximum number of supported disk drives are configured. It may also be the case that, after the disk drive is received, no more than the maximum number of supported drives are in-place within the enclosure of the RAID configuration. In such instances, and when the insertion is a cold insertion into an empty disk drive slot, the method may further include marking the disk drive as Un-configured good alias Ready. Further, if the disk drive is inserted into a missing disk drive slot and has a smaller storage capacity than that of the replaced disk drive previously in place within the missing disk drive slot, the method may further include marking the disk drive as FAIL.
    Type: Grant
    Filed: February 19, 2008
    Date of Patent: September 6, 2011
    Assignee: LSI Corporation
    Inventors: Atul Mukker, Charles E. Nichols, Daniel G Samuelraj
  • Publication number: 20110202728
    Abstract: Methods and systems for assuring persistence of battery backed cache memory in a storage system comprising multiple virtual machines. In one exemplary embodiment, an additional process is added to the storage controller that senses the loss of power and copies the entire content of the cache memory including portions used by each of the multiple virtual machines to a nonvolatile persistent storage that does not rely on the battery capacity of the storage system. In another exemplary embodiment, the additional process calls a plug-in procedure associated with each of the virtual machines to permit the virtual machine to assure that the content of its portion of the cache memory is consistent before the additional process copies the cache memory to nonvolatile memory. The additional process may be integrated with the hypervisor or may be operable as a separate process in yet another virtual machine.
    Type: Application
    Filed: February 17, 2010
    Publication date: August 18, 2011
    Applicant: LSI CORPORATION
    Inventors: Charles E. Nichols, Mohamad H. El-Batal, Martin Jess, Keith W. Holt, William G. Lomelino
  • Patent number: 7904647
    Abstract: A method for offloading a cache memory is disclosed. The method generally includes the steps of (A) reading all of a plurality of cache lines from the cache memory in response to an assertion of a signal to offload of the cache memory, (B) generating a plurality of blocks by dividing the cache lines in accordance with a RAID configuration and (C) writing the blocks among a plurality of nonvolatile memories in the RAID configuration, wherein each of the nonvolatile memories has a write bandwidth less than a read bandwidth of the cache memory.
    Type: Grant
    Filed: November 27, 2006
    Date of Patent: March 8, 2011
    Assignee: LSI Corporation
    Inventors: Mohamad H. El-Batal, Charles E. Nichols, John V. Sherman, Keith W. Holt, Jason M. Stuhlsatz
  • Publication number: 20100312964
    Abstract: Disclosed is a storage array system. N array controllers are configured with at least two interconnect fabric ports, where N is an integer greater than two. A JBOD unit is configured with at least two interconnect fabric switches. The two interconnect fabric switches each have at least N interconnect fabric ports. Each of the least N of the interconnect fabric ports are directly connected to a corresponding one of the N array controllers, thereby establishing direct redundant connectivity between each of the N array controllers and each other of the N array controllers.
    Type: Application
    Filed: June 9, 2009
    Publication date: December 9, 2010
    Inventors: Rodney A. DeKoning, Charles E. Nichols, William Patrick Delaney, Mohamad El-Batal, Keith Holt
  • Patent number: 7584368
    Abstract: Apparatus and methods for controllably spinning up disk drives in a storage system. A storage system includes a first portion of disk drives that support controllable sequencing of disk drive spin-up and a second portion that do not support controllable sequencing of spin-up. Disk drives in the first portion are configured to be powered on with the storage system and are controllably spun up by issuing appropriate commands to each disk drive. Disk drives in the second portion are configured initially powered off when the storage system is powered on and have power controllably applied thereto to cause spin-up of each disk drive. Disk drives in the first portion may include SAS disk drives and SATA disk drives that support staggered spin-up features. Disk drives in the second portion may include SATA disk drives that do not support staggered spin-up.
    Type: Grant
    Filed: February 16, 2006
    Date of Patent: September 1, 2009
    Assignee: LSI Corporation
    Inventors: Charles E. Nichols, Drew M. Marti, William G. Deitz
  • Publication number: 20090210619
    Abstract: The present invention is a method for handling disk drives in a Redundant Array of Inexpensive Disks (RAID) configuration. The method may include detecting a disk drive received via insertion of the disk drive in a disk drive slot of an enclosure of the RAID configuration. Prior to the disk drive being received, it may be that fewer than a maximum number of supported disk drives are configured. It may also be the case that, after the disk drive is received, no more than the maximum number of supported drives are in-place within the enclosure of the RAID configuration. In such instances, and when the insertion is a cold insertion into an empty disk drive slot, the method may further include marking the disk drive as Un-configured good alias Ready. Further, if the disk drive is inserted into a missing disk drive slot and has a smaller storage capacity than that of the replaced disk drive previously in place within the missing disk drive slot, the method may further include marking the disk drive as FAIL.
    Type: Application
    Filed: February 19, 2008
    Publication date: August 20, 2009
    Inventors: Atul Mukker, Charles E. Nichols, Daniel G. Samuelraj
  • Patent number: 7562176
    Abstract: Apparatus, systems and methods for clustering multiple PCI Express hierarchies to enable access of components in different hierarchies. Each PCI Express hierarchy includes a root device as well as a cluster port for coupling each hierarchy to each other hierarchy of a physical cluster through a PCI Express switched fabric. Memory addresses and transaction IDs are re-mapped by the cluster port of each hierarchy to partition the PCI Express space of the system of multiple hierarchies. A first portion of the partitioned space is reserved for access to local components within a hierarchy. A second portion of the space is used to access remote components of other hierarchies from within a different first hierarchy. The address and transaction ID values exchanged in such remote transactions are re-mapped and used by the cluster port of each hierarchy to route exchanges between hierarchies using standard PCIe root devices, endpoint devices, and switches.
    Type: Grant
    Filed: February 28, 2007
    Date of Patent: July 14, 2009
    Assignee: LSI Corporation
    Inventors: John R. Kloeppner, Dennis E. Gates, Robert E. Stubbs, Mohamad H. El-Batal, Russell J. Henry, Charles E. Nichols
  • Patent number: 7430635
    Abstract: Methods and structure for improved import/export of RAID level 6 logical volumes in subsystems supporting RAID level 5 but not level 6. When a RAID level 6 logical volume is imported into a RAID level 5 storage subsystem, features and aspects hereof re-map the logical volume for use as a RAID level 5 logical volume. Disk blocks containing the level 6 additional redundancy information are not used by the RAID level 5 storage subsystem but are skipped in the re-mapping of the logical volume. All other blocks of the logical volume are mapped to corresponding blocks of the RAID level 6 mapping of the logical volume. The logical volume may then be flagged to indicate the additional redundancy information is invalid. A RAID level 6 storage subsystem may then rebuild the additional redundancy information when the flagged logical volume is re-imported to a RAID level 6 storage subsystem.
    Type: Grant
    Filed: July 30, 2005
    Date of Patent: September 30, 2008
    Assignee: LSI Corporation
    Inventors: William A. Hetrick, Charles E. Nichols
  • Publication number: 20080209099
    Abstract: Apparatus, systems and methods for clustering multiple PCI Express hierarchies to enable access of components in different hierarchies. Each PCI Express hierarchy includes a root device as well as a cluster port for coupling each hierarchy to each other hierarchy of a physical cluster through a PCI Express switched fabric. Memory addresses and transaction IDs are re-mapped by the cluster port of each hierarchy to partition the PCI Express space of the system of multiple hierarchies. A first portion of the partitioned space is reserved for access to local components within a hierarchy. A second portion of the space is used to access remote components of other hierarchies from within a different first hierarchy. The address and transaction ID values exchanged in such remote transactions are re-mapped and used by the cluster port of each hierarchy to route exchanges between hierarchies using standard PCIe root devices, endpoint devices, and switches.
    Type: Application
    Filed: February 28, 2007
    Publication date: August 28, 2008
    Inventors: John R. Kloeppner, Dennis E. Gates, Robert E. Stubbs, Mohamad H. El-Batal, Russell J. Henry, Charles E. Nichols
  • Patent number: 7418550
    Abstract: Methods and structure for improved import of RAID level 6 logical volumes into subsystems devoid of RAID level 6 hardware support. When a RAID level 6 logical volume is exported from a first storage subsystem and imported into a second storage subsystem devoid of RAID level 6 hardware support, features and aspects hereof first migrate the logical volume for use as a logical volume with a different RAID level supported by the second storage subsystem. The migration may be, for example, to a RAID level 5 logical volume performed by movement of data blocks to form new stripes and re-generation of associated parity blocks or by simpler re-mapping of existing blocks of the RAID level 6 volume to use only blocks and parity needed for RAID level 5 management. Further features and aspects allow migration to any other RAID management level supported by the second storage subsystem.
    Type: Grant
    Filed: December 19, 2005
    Date of Patent: August 26, 2008
    Assignee: LSI Corporation
    Inventors: William A. Hetrick, Charles E. Nichols
  • Publication number: 20080126700
    Abstract: A method for offloading a cache memory is disclosed. The method generally includes the steps of (A) reading all of a plurality of cache lines from the cache memory in response to an assertion of a signal to offload of the cache memory, (B) generating a plurality of blocks by dividing the cache lines in accordance with a RAID configuration and (C) writing the blocks among a plurality of nonvolatile memories in the RAID configuration, wherein each of the nonvolatile memories has a write bandwidth less than a read bandwidth of the cache memory.
    Type: Application
    Filed: November 27, 2006
    Publication date: May 29, 2008
    Inventors: Mohamad H. El-Batal, Charles E. Nichols, John V. Sherman, Keith W. Holt, Jason M. Stuhlsatz
  • Patent number: 7171518
    Abstract: A method for returning a logical volume which is part of a redundant data storage system to on-line status following a disk failure within the logical volume during the time when another of that volume's disks is unavailable as a result of having its firmware updated, as an example. Data which would otherwise be changed in the logical volume due to host write requests is directed to a logging facility within the data storage system, but outside of the logical volume undergoing upgrade.
    Type: Grant
    Filed: April 2, 2004
    Date of Patent: January 30, 2007
    Assignee: LSI Logic Corporation
    Inventors: Charles E. Nichols, William A. Hetrick, Donald R. Humlicek
  • Patent number: 6959413
    Abstract: Disclosed is a method for continuing a rebuilding process of a RAID system by flagging a block of data as being bad when a media error or other error occurs that prohibits the reconstruction of data. The block of data may be flagged by writing a bad error correction code to the block of data, by keeping a log of bad blocks of data, or by otherwise indicating that the block of data is known bad.
    Type: Grant
    Filed: June 18, 2002
    Date of Patent: October 25, 2005
    Assignee: LSI Logic Corporation
    Inventors: Donald R. Humlicek, Charles E. Nichols, William P. Delaney
  • Patent number: 6944791
    Abstract: Disclosed is a method for continuing a write operation in a RAID device when parity cannot be generated. In cases where a read error or plurality of read errors prohibits the proper calculation of parity for a block of data, the parity block may be written as a bad block of data for subsequent read operations. The parity block may be forced to be a bad block of data by writing a recognizable pattern of data with a known bad error correction code or other method of forcing a read error to occur on an otherwise good block of a disk storage device. This method allows the write operation to continue without halting the system as with conventional RAID devices.
    Type: Grant
    Filed: July 18, 2002
    Date of Patent: September 13, 2005
    Assignee: LSI Logic Corporation
    Inventors: Donald R. Humlicek, Charles E. Nichols, David Ulrich
  • Patent number: 6889294
    Abstract: A switched architecture for dual, independent storage controllers overcomes latency and coherency problems by an inter-controller command interchange scheme. The switched architecture permits a read or write command to be presented to either storage controller to effect data transfer on the same or the other storage controller. Communication between the two storage controllers is effected through internal Infiniband switches.
    Type: Grant
    Filed: October 29, 2001
    Date of Patent: May 3, 2005
    Assignee: LSI Logic Corporation
    Inventors: Charles E. Nichols, Keith W. Holt
  • Patent number: 6859890
    Abstract: A method for reducing data/parity inconsistencies due to a storage controller failure in computer storage systems with dual, independent storage controllers and a number of logical volumes comprising one or more physical disk drive devices includes recognizing a failure of the storage controller; assuming access control of the volume; and thereafter, performing at least one write to the volume, wherein, for a predetermined number of writes (N) to the volume after failure of the storage controller, new parity is calculated for the write using new data and other data (Method 2). The predetermined number of writes (N) is at least equal to or greater than the queue depth of the failed storage controller (i.e., the number of I/O operations that the failed storage controller may service at a given time. The method may be implemented by each storage controller of the computer storage system.
    Type: Grant
    Filed: April 30, 2002
    Date of Patent: February 22, 2005
    Assignee: LSI Logic Corporation
    Inventors: Donald R. Humlicek, Charles E. Nichols