Patents by Inventor William Joseph Armstrong

William Joseph Armstrong 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).

  • Publication number: 20040221193
    Abstract: Methods, systems, and articles of manufacture for replacement of a failing processor of a multi-processor system running at least one operating system are provided. In contrast to the prior art, the replacement may be performed by system firmware without intervention by the operating system (i.e., the replacement may be transparent to the operating system). For some embodiments, the multi-processor system may be logically partitioned and the methods may be utilized to replace one or more shared or dedicated processors assigned to a logical partition, transparent to an operating system running on the partition.
    Type: Application
    Filed: April 17, 2003
    Publication date: November 4, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Naresh Nayar, Gary Ross Ricard
  • Publication number: 20040215860
    Abstract: A method, system, and article of manufacture for processing virtual interrupts in a logically partitioned system are provided. An intelligent virtual global interrupt queue (virtual GIQ) that may be associated with a plurality of virtual processors running in a logical partition may be utilized. Upon receiving a virtual interrupt, the virtual GIQ may examine the operating states of the associated virtual processors. In an effort to ensure the virtual interrupt is processed as quickly as possible, the virtual GIQ may present the virtual interrupt to one of the associated virtual processors determined to be in an operating state best suited for processing the virtual interrupt.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, David Anthony Larson, Naresh Nayar
  • Publication number: 20040215859
    Abstract: A method, apparatus, system, and signal-bearing medium that in an embodiment set a resource indicator to indicate that a processor is using a resource in a logically-partitioned electronic device, determine whether a current partition in the logically-partitioned electronic device owns the resource, and clear the resource indicator after the processor is done using the resource. When a partition gives up ownership of a resource, a resource ownership state is changed to indicate that the partition does not own a resource, and the partition waits to continue executing until other processors have cleared their respective resource indicators. In an embodiment, the resource indicator is in a cache line that is local to the processor, which allows resources to be dynamically allocated with improved performance.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Naresh Nayar
  • Publication number: 20040216113
    Abstract: An accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor provides a mechanism for accounting for processor resource usage by programs and threads within programs. Relative resource use is determined by detecting instruction dispatches for multiple threads active within the processor, which may include idle threads that are still occupying processor resources. If instructions are dispatched for all threads or no threads, the processor cycle is accounted equally to all threads. Alternatively if no threads are in a dispatch state, the accounting may be made using a prior state, or in conformity with ratios of the threads' priority levels. If only one thread is dispatching, that thread is accounted the entire processor cycle. If multiple threads are dispatching, but less than all threads are dispatching (in processors supporting more than two threads), the processor cycle is billed evenly across the dispatching threads.
    Type: Application
    Filed: April 23, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Michael Stephen Floyd, Ronald Nick Kalla, Larry Scott Leitner, Balaram Sinharoy
  • Publication number: 20040215905
    Abstract: A logically-partitioned computer, program product and method utilize a flexible and adaptable communication interface between a partition and a partition manager, which permits optimal handling of partition management operations such as state change operations and the like over a wide variety of circumstances. In particular, a partition is permitted to indicate, in connection with a request to perform a partition management operation, whether an asynchronous notification should be generated or suppressed in association with the performance of the partition management operation by a partition manager. As a result, asynchronous notifications are selectively generated in association with the performance of partition management operations based upon indications in the requests made by partitions for such operations.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Naresh Nayar, Gregory Michael Nordstrom, Timothy Joseph Torzewski
  • Publication number: 20040215939
    Abstract: An apparatus, program product and method utilize a multithreaded processor having at least one hardware thread among a plurality of hardware threads that is capable of being selectively activated and deactivated responsive to a control circuit. The control circuit additionally provides the capability of controlling how an inactive thread can be activated after the thread has been deactivated, e.g., by enabling or disabling reactivation in response to an interrupt.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Bruce G. Mealey, Naresh Nayar, Balaram Sinharoy
  • Publication number: 20040205272
    Abstract: A resource and partition manager virtualizes interrupts without using any additional hardware in a way that does not disturb the interrupt processing model of operating systems running on a logical partition. In other words, the resource and partition manager supports virtual interrupts in a logically partitioned computer system that may include share processors with no changes to a logical partition's operating system. A set of virtual interrupt registers is created for each virtual processor in the system. The resource and partition manager uses the virtual interrupt registers to process interrupts for the corresponding virtual processor. In this manner, from the point of view of the operating system, the interrupt processing when the operating system is running in a logical partition that may contain shared processors and virtual interrupts is no different that the interrupt processing when the operating system is running in computer system that only contains dedicated processor partitions.
    Type: Application
    Filed: March 31, 2003
    Publication date: October 14, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Richard Louis Arndt, Naresh Nayar
  • Publication number: 20040194096
    Abstract: An apparatus, program product and method support the deallocation of a data structure in a multithreaded computer without requiring the use of computationally expensive semaphores or spin locks. Specifically, access to a data structure is governed by a shared pointer that, when a request is received to deallocate the data structure, is initially set to a value that indicates to any thread that later accesses the pointer that the data structure is not available. In addition, to address any thread that already holds a copy of the shared pointer, and thus is capable of accessing the data structure via the shared pointer after the initiation of the request, all such threads are monitored to determine whether any thread is still using the shared pointer by determining whether any thread is executing program code that is capable of using the shared pointer to access the data structure.
    Type: Application
    Filed: March 27, 2003
    Publication date: September 30, 2004
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Peter Joseph Heyrman, Naresh Nayar
  • Publication number: 20040181625
    Abstract: A resource and partition manager of the preferred embodiments includes a lock mechanism that operates on a plurality of locks that control access to individual hardware resources. The resource and partition manager uses the lock mechanism to obtain a lock on a hardware resource when transferring control of the hardware resource to a logical partition that is powering on and when removing the hardware resource from a logical partition that is powering off. The resource and partition manager uses the lock mechanism to remove control of a hardware resource from, or return control to, an operating logical partition in order to facilitate hardware service operations on that hardware resource or on the physical enclosure in which it is contained.
    Type: Application
    Filed: March 13, 2003
    Publication date: September 16, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Troy David Armstrong, William Joseph Armstrong, Curtis Shannon Eide, Gregory Michael Nordstrom
  • Publication number: 20040181657
    Abstract: A resource and partition manager includes a power on/power off mechanism that is used to assure a hardware resource is powered down when control of the resource is removed from a logical partition, and to assure the hardware resource is powered up when control of the hardware resource is transferred to a logical partition. In the alternative, the resource and partition manager may simply place the hardware resource in a power on reset state when the hardware resource is transferred to a logical partition. In this manner, when made available to a partition, the hardware resource is in a power-on reset state, which is the state typically expected by the logical partition.
    Type: Application
    Filed: March 13, 2003
    Publication date: September 16, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Troy David Armstrong, William Joseph Armstrong, Curtis Shannon Eide, Gregory Michael Nordstrom
  • Patent number: 6785887
    Abstract: A method of handling conflicts between threads, including an initiating thread and at least one other thread, for at least one shared resource in a multi-threaded processing system having a processor and memory includes setting a location in memory for each other thread on the processor with the initiating thread. The initiating thread signals an inter-processor interrupt (IPI) to all other threads on the processor. For each other thread, an interrupt handler is initiated where each other thread: acknowledges receipt of the interrupt, and proceeds to spin on the respective location in memory that was set, thereby guaranteeing that the respective other thread will not be using any shared resource of the processor.
    Type: Grant
    Filed: December 27, 2000
    Date of Patent: August 31, 2004
    Assignee: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Naresh Nayar, Kenneth Charles Vossen
  • Publication number: 20040143712
    Abstract: A task synchronization mechanism operates on a global lock that is shared between processors an on local locks that are not shared between processors. The local locks are processor-specific locks. Each processor-specific lock is dedicated to a particular processor in the system. When shared access to a resource is required, a processor updates its processor-specific lock to indicate the processor is sharing the resource. Because each processor-specific lock is dedicated to a particular processor, this eliminates a significant portion of the memory bus traffic associated with all processors reading and updating the same lock. When exclusive access to a resource is required, the requesting processor waits until the count of all processor-specific locks indicate that none of these processors have a lock on the resource. Once no processor has a lock on the resource, exclusive access to the resource may be granted.
    Type: Application
    Filed: January 16, 2003
    Publication date: July 22, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Michael Joseph Corrigan, Gary Ross Ricard, Timothy Joseph Torzewski
  • Patent number: 6711700
    Abstract: An apparatus and method for monitoring the state of a computer system running multiple operating systems shared by a partition manager is provided. A dedicated service processor monitors the individual run state condition of a plurality of processors running a plurality of operating systems. The service processor executes a routine to poll a memory location in each processor in the system to determine if the processor has entered an error loop with interrupts disabled. If any one of the plurality of processors are in an error loop, the service processor executes a routine to send a non-maskable interrupt to the looped processor so that the partition manager may regain control of the processor.
    Type: Grant
    Filed: April 23, 2001
    Date of Patent: March 23, 2004
    Assignee: International Business Machines Corporation
    Inventors: Troy David Armstrong, William Joseph Armstrong, Stephanie Maria Forsman, Naresh Nayar, Jeffrey Jay Scheel, Andy Wottreng
  • Patent number: 6691146
    Abstract: A partition manager for managing logical partitions in a computer system includes hooks to low-level operating system code in one of the logical partitions. By using the operating system code to manage the resources of a computer system, any changes that are made to the operating system are automatically reflected in the function of the partition manager. In addition, low-level functions of operating systems, which are often well-debugged and tested, can be used when generating a new partition manager, greatly simplifying the time and reducing the cost of producing a partition manager.
    Type: Grant
    Filed: May 19, 1999
    Date of Patent: February 10, 2004
    Assignee: International Business Machines Corporation
    Inventors: Troy David Armstrong, William Joseph Armstrong, Michael Joseph Corrigan, Naresh Nayar, Thomas Rembert Sand, Jeffrey Jay Scheel, Erik Tkal, Kenneth Charles Vossen
  • Patent number: 6681240
    Abstract: A partitioner for creating logical partitions allows a user to specify maximum interactive performance in one partition independently of maximum interactive performance of other partitions to arrive at logical partitions that may be much different than the maximum overall interactive performance percentage of the computer system itself. First, the maximum interactive performance for a computer system is specified, and resources are allocated accordingly. Next, logical partitions may be created, which initially reflect the maximum interactive performance for the computer system as a whole. Finally, the maximum interactive performance can be specified for a partition independently of the interactive performance in other partitions. In this manner a computer system that is configured as a server system with low interactive and high batch performance can have two different partitions, one that has very low interactive performance and the other that balances interactive and batch processing.
    Type: Grant
    Filed: May 19, 1999
    Date of Patent: January 20, 2004
    Assignee: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Lynn Allen McMahon, Jeffrey Jay Scheel
  • Publication number: 20030114949
    Abstract: Diagnostic data, such as a time increment corresponding to how long a thread waits to access a shared resource, is stored within a predetermined location in a data structure, such as a hash bucket in a hash table. The location is preferably correlated to the resource such that a display of the diagnostic data may be tailored to reflect a user-specified relationship between the data and resource.
    Type: Application
    Filed: December 17, 2001
    Publication date: June 19, 2003
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Ryan Harvey Bishop, Michael Brian Brutman, Chris Francois, Richard Karl Kirkman, Jay Paul Kurtz, Henry Joseph May, Naresh Nayar, Dennis A. Towne
  • Publication number: 20030055864
    Abstract: An apparatus, program product and method for coordinating the distribution of CPUs as among logically-partitioned virtual processors. A virtual processor may yield a CPU to precipitate an occurrence upon which its own execution may be predicated. As such, program code may dispatch the surrendered CPU to a designated virtual processor.
    Type: Application
    Filed: August 24, 2001
    Publication date: March 20, 2003
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: William Joseph Armstrong, Chris Francois, Naresh Nayar
  • Publication number: 20030041090
    Abstract: An apparatus, program product and method accommodate conventional yield calls within a multithreaded processor environment by coordinating yielding threads within the hypervisor. A hypervisor coordinates the yielding threads within the hypervisor to ensure all threads on a multithreaded processor execute within the same partition or hypervisor.
    Type: Application
    Filed: August 24, 2001
    Publication date: February 27, 2003
    Inventors: William Joseph Armstrong, Chris Francois, Naresh Nayar
  • Publication number: 20020156939
    Abstract: An apparatus and method for monitoring the state of a computer system running multiple operating systems shared by a partition manager is provided. A dedicated service processor monitors the individual run state condition of a plurality of processors running a plurality of operating systems. The service processor executes a routine to poll a memory location in each processor in the system to determine if the processor has entered an error loop with interrupts disabled. If any one of the plurality of processors are in an error loop, the service processor executes a routine to send a non-maskable interrupt to the looped processor so that the partition manager may regain control of the processor.
    Type: Application
    Filed: April 23, 2001
    Publication date: October 24, 2002
    Applicant: International Business Machines Corporation
    Inventors: Troy David Armstrong, William Joseph Armstrong, Stephanie Maria Forsman, Naresh Nayar, Jeffrey Jay Scheel, Andy Wottreng
  • Publication number: 20020156824
    Abstract: A processor allocation mechanism for a logically partitionable computer system allows an administrator to specify processing capability allocable to each partition as an equivalent number of processors, where the processing capability may be specified as a non-integer value. This processing capability value is unaffected by changes to the processing capability values of other partitions. The administrator may designate multiple sets of processors, assigning each physical processor of the system to a respective processor set. Each logical partition is constrained to execute in an assigned processor set, which may be shared by more than one partition. Preferably, the administrator may designate a logical partition as either capped, meaning that a partition can not use excess idle capacity of the processors, or uncapped, meaning that it can.
    Type: Application
    Filed: April 19, 2001
    Publication date: October 24, 2002
    Applicant: International Business Machines Corporation
    Inventors: William Joseph Armstrong, Mark Gregory Manges, Naresh Nayar, Jeffrey Jay Scheel, Craig Alden Wilcox