Patents by Inventor David A. Schroter

David A. Schroter 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: 7290261
    Abstract: A circuit and method provide rename register reallocation for simultaneous multi-threaded (SMT) processors that redistributes rename (mapped) resources between one thread during single-threaded (ST) execution and multiple threads during multi-threaded execution. The processor receives an instruction specifying a transition from a single-threaded to a multi-threaded mode or vice-versa and halts execution of all threads executing on the processor. The internal control logic then signals the resources to reallocate the resources. Rename resources are reallocated by directing an action at the rename mapper. When switching from SMT to ST mode, the mapper is directed to drop entries for the dying thread, but on a switch from ST to SMT mode, “dummy” instruction group dispatch indications are sent to the mapper that indicate use of all architected registers for each thread.
    Type: Grant
    Filed: April 24, 2003
    Date of Patent: October 30, 2007
    Assignee: International Business Machines Corporation
    Inventors: William Elton Burky, Bjorn Peter Christensen, Dung Quoc Nguyen, David A. Schroter, Albert Thomas Williams
  • Patent number: 7194603
    Abstract: A methodology to process flushes in an SMT processor with a dynamically shared group completion table (GCT) and a Flush table comprises identification of incoming flush sources by thread. This uses the forward link array by flush source to determine the next instruction group following the group indicated by the flush source (for example, for mispredicts and load/store flush-next type flushes). Presentation of flush completion table entry numbers or instruction group identifiers (Gtags) to the flush table for computation of oldest flushed group tag corresponding to each thread. The flush selection cycle wherein the flush table outputs are compared against saved versions of all the flush Gtags presented to determine which flush source matches the oldest group output from the flush table. The flush source information is used with the selected oldest Gtag to determine the appropriate additional flushing action to take during the flush cycle.
    Type: Grant
    Filed: April 23, 2003
    Date of Patent: March 20, 2007
    Assignee: International Business Machines Corporation
    Inventors: William E. Burky, Hung Q. Le, Dung Q. Nguyen, David A. Schroter
  • Patent number: 7089406
    Abstract: A method and apparatus for controlling program instruction completion timing for processor verification provides, alternatively or in combination, an improved simulation technique and/or processor in which resource allocation as well as other performance-specific scenarios can be stressed over typical operating conditions by controlling the completion timing of one or more program instructions. A high-level program controlling simulation of a VHDL model of a processor can simulate extension of the completion time of a predetermined instruction in order to hold the instruction in the execution and completion queues, placing an effective hold on the resources allocated for the instruction. Alternatively, the VHDL model may include logic for controlling completion timing of the program instruction by using a processor clock cycle counter. Verification testing of actual processor hardware may be facilitated by including the counter and associated control logic within production or prototype processors.
    Type: Grant
    Filed: June 9, 2003
    Date of Patent: August 8, 2006
    Assignee: International Business Machines Corporation
    Inventors: John Martin Ludden, Darin Marcus Greene, David A. Schroter, Wallace Keith Sharp
  • Publication number: 20040250050
    Abstract: A method and apparatus for controlling program instruction completion timing for processor verification provides, alternatively or in combination, an improved simulation technique and/or processor in which resource allocation as well as other performance-specific scenarios can be stressed over typical operating conditions by controlling the completion timing of one or more program instructions. A high-level program controlling simulation of a VHDL model of a processor can simulate extension of the completion time of a predetermined instruction in order to hold the instruction in the execution and completion queues, placing an effective hold on the resources allocated for the instruction. Alternatively, the VHDL model may include logic for controlling completion timing of the program instruction by using a processor clock cycle counter. Verification testing of actual processor hardware may be facilitated by including the counter and associated control logic within production or prototype processors.
    Type: Application
    Filed: June 9, 2003
    Publication date: December 9, 2004
    Applicant: International Business Machines Corporation
    Inventors: John Martin Ludden, Darin Marcus Greene, David A. Schroter, Wallace Keith Sharp
  • Publication number: 20040215938
    Abstract: A methodology to process flushes in an SMT processor with a dynamically shared group completion table (GCT) and a Flush table comprises identification of incoming flush sources by thread. This uses the forward link array by flush source to determine the next instruction group following the group indicated by the flush source (for example, for mispredicts and load/store flush-next type flushes). Presentation of flush completion table entry numbers or instruction group identifiers (Gtags) to the flush table for computation of oldest flushed group tag corresponding to each thread. The flush selection cycle wherein the flush table outputs are compared against saved versions of all the flush Gtags presented to determine which flush source matches the oldest group output from the flush table. The flush source information is used with the selected oldest Gtag to determine the appropriate additional flushing action to take during the flush cycle.
    Type: Application
    Filed: April 23, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William E. Burky, Hung Q. Le, Dung Q. Nguyen, David A. Schroter
  • Publication number: 20040216120
    Abstract: A method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor provides a mechanism for redistributing rename (mapped) resources between one thread during single-threaded (ST) execution and multiple threads during multi-threaded execution. The processor receives an instruction specifying a transition from a single-threaded to a multi-threaded mode or vice-versa and halts execution of all threads executing on the processor. The internal control logic then signals the resources to reallocate the resources. Rename resources are reallocated by directing an action at the rename mapper.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William Elton Burky, Bjorn Peter Christensen, Dung Quoc Nguyen, David A. Schroter, Albert Thomas Williams
  • Publication number: 20040215937
    Abstract: A method and multithreaded processor for dynamically sharing an interrupt handling logic unit among multiple threads. A first and second state unit may be configured to determine whether an interrupt was generated from a first thread and a second thread, respectively. An arbiter may be coupled to the first and second state units. A shared interrupt handling logic unit may be coupled to the arbiter where the shared interrupt handling logic unit may be configured to handle interrupts generated from the first and second threads. Upon a state unit, e.g., first state unit, second state unit, determining an interrupt was generated from a particular thread, the state unit may request control of the interrupt handling logic unit from the arbiter. The arbiter may grant the request from the state unit if the interrupt handling logic unit is available to handle the interrupt detected.
    Type: Application
    Filed: April 23, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William E. Burky, Susan E. Eisen, Hung Q. Le, David A. Schroter
  • Publication number: 20040215945
    Abstract: An SMT system is designed to allow software alteration of thread priority. In one case, the system signals a change in a thread priority based on the state of instruction execution and in particular when the instruction has completed execution. To alter the priority of a thread, the software uses a special form of a “no operation” (NOP) instruction (hereafter termed thread priority NOP). When the thread priority NOP is dispatched, its special NOP is decoded in the decode unit of the IDU into an operation that writes a special code into the completion table for the thread priority NOP. A “trouble” bit is also set in the completion table that indicates which instruction group contains the thread priority NOP. The trouble bit indicates that special processing is required after instruction completion. The thread priority instruction is processed after completion using the special code to change a thread's priority.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William E. Burky, Ronald N. Kalla, David A. Schroter, Balaram Sinharoy
  • Patent number: 5850542
    Abstract: An apparatus for fetching instructions in a computer system is disclosed. The apparatus includes a cache circuit for holding a sub-set of main store, a buffer circuit for holding instructions fetched from the cache for dispatch to a plurality of execution units, and a branch resolution unit. A first tag associated with each instruction to be dispatched is generated that identifies the instruction while it is in process. The execution units execute dispatched instructions and provide resulting condition codes and first tag for each instruction that is completed. The branch resolution unit, fetches a not guessed instruction stream from the cache such that the not guessed instruction stream is available to the instruction buffer during the same cycle that the guess is resolved. The branch resolution unit also includes means for guessing the result of a branch instruction and means for fetching a guessed instruction stream to be fetched.
    Type: Grant
    Filed: September 15, 1995
    Date of Patent: December 15, 1998
    Assignee: International Business Machines Corporation
    Inventors: David A. Schroter, A. James Van Norstrand
  • Patent number: 5764970
    Abstract: A method and apparatus for supporting speculative execution of count and link register modifying instructions in a microprocessor is provided. The apparatus includes a queue of rename buffers storing count/link register operand data resulting from speculatively executed instructions that modify a count/link register. The queue contains a set of control buffers, wherein each control buffer contains control bits associated with a rename buffer, the control bits including an instruction identifier tag identifying a speculatively executed instruction, the operand data of the speculatively executed instruction being stored in the associated rename buffer, and an available bit indicating when the operand data no longer needs to be stored in the associated rename buffer.
    Type: Grant
    Filed: November 20, 1995
    Date of Patent: June 9, 1998
    Assignee: International Business Machines Corporation
    Inventors: Deepak Rana, David A. Schroter
  • Patent number: 5416911
    Abstract: In a pipeline processor, the identities of the highest and lowest numbered registers of a subset of general registers affected by a load multiple register (LMR) instruction are stored. The number of the lowest numbered registered of the subset is incremented as the registers are loaded. In the event that a next sequential instruction requires the contents of one of the registers in the subset, the number of the required register is compared with the incremented number and the decoding phase of the next instruction is allowed to proceed when the required register has been loaded as indicated by the incremented number. The identity of the highest numbered and the next to highest numbered registers loaded by the LMR instruction are recorded in a target register and an exclusive or-circuit is provided to determine whether the total number of registers loaded by the LMR instruction is an even number or an odd number.
    Type: Grant
    Filed: February 2, 1993
    Date of Patent: May 16, 1995
    Assignee: International Business Machines Corporation
    Inventors: Robert M. Dinkjian, Fredrick W. Roberts, David A. Schroter
  • Patent number: 5269009
    Abstract: This disclosure describes an efficient method of moving data from one location in memory to another without caching the data. This includes data transfers from one main storage location to another, transfers between main and expanded storage, and transfers from one expanded storage location to another.
    Type: Grant
    Filed: September 4, 1990
    Date of Patent: December 7, 1993
    Assignee: International Business Machines Corporation
    Inventors: Robert D. Herzl, Kenneth A. Lauricella, Linda L. Quinn, David A. Schroter, Allan R. Steel, Joseph L. Temple, III