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: 10826848Abstract: 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: GrantFiled: April 26, 2017Date of Patent: November 3, 2020Assignee: NETAPP, INC.Inventors: Charles E. Nichols, Scott Terrill, Don Humlicek, Arindam Banerjee, Yulu Diao, Anthony D. Gitchell
-
Publication number: 20180113738Abstract: 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: ApplicationFiled: April 26, 2017Publication date: April 26, 2018Inventors: Charles E. Nichols, Scott Terrill, Don Humlicek, Arindam Banerjee, Yulu Diao, Anthony D. Gitchell
-
Patent number: 8776060Abstract: 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: GrantFiled: November 4, 2010Date of Patent: July 8, 2014Assignee: LSI CorporationInventors: Martin Jess, Charles E. Nichols, Rexford A. Hill, John G. Logan, Timothy R. Snider
-
Publication number: 20120117562Abstract: 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: ApplicationFiled: November 4, 2010Publication date: May 10, 2012Applicant: LSI CORPORATIONInventors: Martin Jess, Charles E. Nichols, Rexford A. Hill, John G. Logan, Timothy R. Snider
-
Patent number: 8015439Abstract: 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: GrantFiled: February 19, 2008Date of Patent: September 6, 2011Assignee: LSI CorporationInventors: Atul Mukker, Charles E. Nichols, Daniel G Samuelraj
-
Publication number: 20110202728Abstract: 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: ApplicationFiled: February 17, 2010Publication date: August 18, 2011Applicant: LSI CORPORATIONInventors: Charles E. Nichols, Mohamad H. El-Batal, Martin Jess, Keith W. Holt, William G. Lomelino
-
Patent number: 7904647Abstract: 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: GrantFiled: November 27, 2006Date of Patent: March 8, 2011Assignee: LSI CorporationInventors: Mohamad H. El-Batal, Charles E. Nichols, John V. Sherman, Keith W. Holt, Jason M. Stuhlsatz
-
Publication number: 20100312964Abstract: 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: ApplicationFiled: June 9, 2009Publication date: December 9, 2010Inventors: Rodney A. DeKoning, Charles E. Nichols, William Patrick Delaney, Mohamad El-Batal, Keith Holt
-
Patent number: 7584368Abstract: 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: GrantFiled: February 16, 2006Date of Patent: September 1, 2009Assignee: LSI CorporationInventors: Charles E. Nichols, Drew M. Marti, William G. Deitz
-
Publication number: 20090210619Abstract: 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: ApplicationFiled: February 19, 2008Publication date: August 20, 2009Inventors: Atul Mukker, Charles E. Nichols, Daniel G. Samuelraj
-
Patent number: 7562176Abstract: 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: GrantFiled: February 28, 2007Date of Patent: July 14, 2009Assignee: LSI CorporationInventors: John R. Kloeppner, Dennis E. Gates, Robert E. Stubbs, Mohamad H. El-Batal, Russell J. Henry, Charles E. Nichols
-
Patent number: 7430635Abstract: 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: GrantFiled: July 30, 2005Date of Patent: September 30, 2008Assignee: LSI CorporationInventors: William A. Hetrick, Charles E. Nichols
-
Publication number: 20080209099Abstract: 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: ApplicationFiled: February 28, 2007Publication date: August 28, 2008Inventors: John R. Kloeppner, Dennis E. Gates, Robert E. Stubbs, Mohamad H. El-Batal, Russell J. Henry, Charles E. Nichols
-
Patent number: 7418550Abstract: 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: GrantFiled: December 19, 2005Date of Patent: August 26, 2008Assignee: LSI CorporationInventors: William A. Hetrick, Charles E. Nichols
-
Publication number: 20080126700Abstract: 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: ApplicationFiled: November 27, 2006Publication date: May 29, 2008Inventors: Mohamad H. El-Batal, Charles E. Nichols, John V. Sherman, Keith W. Holt, Jason M. Stuhlsatz
-
Patent number: 7171518Abstract: 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: GrantFiled: April 2, 2004Date of Patent: January 30, 2007Assignee: LSI Logic CorporationInventors: Charles E. Nichols, William A. Hetrick, Donald R. Humlicek
-
Patent number: 6959413Abstract: 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: GrantFiled: June 18, 2002Date of Patent: October 25, 2005Assignee: LSI Logic CorporationInventors: Donald R. Humlicek, Charles E. Nichols, William P. Delaney
-
Patent number: 6944791Abstract: 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: GrantFiled: July 18, 2002Date of Patent: September 13, 2005Assignee: LSI Logic CorporationInventors: Donald R. Humlicek, Charles E. Nichols, David Ulrich
-
Patent number: 6889294Abstract: 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: GrantFiled: October 29, 2001Date of Patent: May 3, 2005Assignee: LSI Logic CorporationInventors: Charles E. Nichols, Keith W. Holt
-
Patent number: 6859890Abstract: 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: GrantFiled: April 30, 2002Date of Patent: February 22, 2005Assignee: LSI Logic CorporationInventors: Donald R. Humlicek, Charles E. Nichols