Patents by Inventor James A. Kahle

James A. Kahle 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: 20050028015
    Abstract: A component of a microprocessor-based data processing system, which includes features for regulating power consumption in snoopable components and has gating off memory coherency properties, is determined to be in a relatively inactive state and is transitioned to a non-snoopable low power mode. Then, when a snoop request occurs, a retry protocol is sent in response to the snoop request. In conjunction with the retry protocol, a signal is sent to bring the component into snoopable mode. When the retry snoop is requested, the component is in full power mode and can properly respond to the snoop request. After the snoop request has been satisfied, the component again enters into a low power mode.
    Type: Application
    Filed: July 31, 2003
    Publication date: February 3, 2005
    Applicants: International Business Machines Corporation, Toshiba America Electronic Components, Inc, Kabushiki Kaisha Toshiba
    Inventors: Shigehiro Asano, Jeffrey Brown, Michael Day, Charles Johns, James Kahle, Alvan Ng, Michael Wang, Thuong Truong
  • Patent number: 6212542
    Abstract: A multiscalar processor and method of executing a multiscalar program within a multiscalar processor having a plurality of processing elements and a thread scheduler are provided. The multiscalar program includes a plurality of threads that are each composed of one or more instructions of a selected instruction set architecture. Each of the plurality of threads has a single entry point and a plurality of possible exit points. The multiscalar program further comprises thread code including a plurality of data structures that are each associated with a respective one of the plurality of threads. According to the method, a third data structure among the plurality of data structures is supplied to the thread scheduler. The third data structure, which is associated with a third thread among the plurality of threads, specifies a first data structure associated with a first possible exit point of the third thread and a second data structure associated with a second possible exit point of the third thread.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: April 3, 2001
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald, Edward L. Swarthout
  • Patent number: 5913925
    Abstract: A method and system for constructing a program are provided. According to the method, each of a plurality of instructions are assigned to at least one of a plurality of threads. The plurality of threads include first, second, and third threads, where the third thread follows the first thread and precedes the second thread in a logical program order. A data structure associated with the first thread is then constructed. The data structure includes an indication that execution of the second thread is to be initiated prior to initiation of execution of the third thread. According to one embodiment, the indication within the data structure is a pointer that specifies a second data structure associated with the second thread.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: June 22, 1999
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald
  • Patent number: 5867684
    Abstract: A method and device of executing a load multiple instruction in a superscaler microprocessor is provided. The method comprises the steps of dispatching a load multiple instruction to a load/store unit, wherein the load/store unit begins execution of a dispatched load multiple instruction, and wherein the load multiple instruction loads data from memory into a plurality of registers. The method further includes the step of maintaining a table that lists each register of the plurality of registers and that indicates when data has been loaded into each register by the executing load multiple instruction. The method concludes by executing an instruction that is dependent upon source operand data loaded by the load multiple instruction into a register of the plurality of registers indicated by the instruction as a source register, prior to the load multiple instruction completing its execution, when the table indicates the source operand data has been loaded into the source register.
    Type: Grant
    Filed: June 11, 1997
    Date of Patent: February 2, 1999
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Albert J. Loper, Soummya Mallick, Aubrey D. Ogden
  • Patent number: 5802386
    Abstract: Instructions are efficiently scheduled for execution based on a stored identification of the first processor cycle when a result of a previous instruction required as an operand for the instruction to be scheduled will become available. Examination of stored processor cycle identifications for the operands of an instruction reveals the earliest processor cycle when the instruction may be executed. By selecting the greater of the largest stored processor cycle identification for an operand of the instruction and the earliest available processor cycle for an execution unit required to execute the instruction, the instruction is efficiently scheduled for the earliest possible execution. Latency of previous instructions in generating an operand of the instruction being scheduled is automatically accommodated.
    Type: Grant
    Filed: November 19, 1996
    Date of Patent: September 1, 1998
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald
  • Patent number: 5694565
    Abstract: A method and device of executing a load multiple instruction in a superscaler microprocessor is provided. The method comprises the steps of dispatching a load multiple instruction to a load/store unit, wherein the load/store unit begins execution of a dispatched load multiple instruction, and wherein the load multiple instruction loads data from memory into a plurality of registers. The method further includes the step of maintaining a table that lists each register of the plurality of registers and that indicates when data has been loaded into each register by the executing load multiple instruction. The method concludes by executing an instruction that is dependent upon source operand data loaded by the load multiple instruction into a register of the plurality of registers indicated by the instruction as a source register, prior to the load multiple instruction completing its execution, when the table indicates the source operand data has been loaded into the source register.
    Type: Grant
    Filed: September 11, 1995
    Date of Patent: December 2, 1997
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Albert J. Loper, Soummya Mallick, Aubrey D. Ogden
  • Patent number: 5539681
    Abstract: A method and circuitry are provided, in which a first operation is performed with first circuitry. A second operation is performed with second circuitry. A first signal is generated in response to the first operation. A second signal is generated in response to the second operation. Power consumption is adjusted within the second circuitry in response to the first and second signals.
    Type: Grant
    Filed: January 4, 1996
    Date of Patent: July 23, 1996
    Assignees: International Business Machines Corporation, Motorola Inc.
    Inventors: Michael C. Alexander, Arturo L. Arizpe, Gianfranco Gerosa, James A. Kahle, Aubrey D. Ogden
  • Patent number: 5467473
    Abstract: A processing system allows for out of order instruction execution and includes at least one load/store unit for loading instructions to a register for processing by a fixed point unit, floating point unit, or the like, and store the results to memory. A load queue maintains the addresses and program numbers of the load instructions. During execution the address of the store instruction is compared to the address in the load queue of previously executed load instructions. A program counter compares the program number of the store instruction with the program number of the load instruction in the load queue. If the addresses are different, then no impermissible out of order situation exists between the load and store instructions being compared, because the data is not at the same address. If the address is the same, and the store program number is greater than the load program number, then the instructions have been executed in order (the load correctly preceded the store) and no problem exists.
    Type: Grant
    Filed: January 8, 1993
    Date of Patent: November 14, 1995
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Chin-Cheng Kau
  • Patent number: 5465373
    Abstract: A method and system for permitting single cycle instruction dispatch in a superscalar processor system which dispatches multiple instructions simultaneously to a group of execution units for execution and placement of results thereof within specified general purpose registers. Each instruction generally includes at least one source operand and one destination operand. A plurality of intermediate storage buffers are provided and each time an instruction is dispatched to an available execution unit, a particular one of the intermediate storage buffers is assigned to any destination operand within the dispatched instruction, permitting the instruction to be dispatched within a single cycle by eliminating any requirement for determining and selecting the specified general purpose register or a designated alternate general purpose register.
    Type: Grant
    Filed: January 8, 1993
    Date of Patent: November 7, 1995
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Chin-Cheng Kau, David S. Levitan, Aubrey D. Ogden, Ali A. Poursepanj, Paul K.-G. Tu, Donald E. Waldecker
  • Patent number: 5420808
    Abstract: A method and circuitry are provided, in which a first operation is performed with first circuitry. A second operation is performed with second circuitry. A first signal is generated in response to the first operation. A second signal is generated in response to the second operation. Power consumption is adjusted within the second circuitry in response to the first and second signals.
    Type: Grant
    Filed: May 13, 1993
    Date of Patent: May 30, 1995
    Assignees: International Business Machines Corporation, Motorola, Inc.
    Inventors: Michael C. Alexander, Arturo L. Arizpe, Gianfranco Gerosa, James A. Kahle, Aubrey D. Ogden
  • Patent number: 5075840
    Abstract: A data processing system including an instruction storage buffer for storing a sequence of instructions requiring an operation by at least two processors. The two processors are provided that execute instructions from the instruction storage buffer. An instruction dispatch circuit is provided that dispatches the instructions to the processors. At least one processor includes the capability to execute dispatched instructions before the execution of a preceding instruction in the instruction sequence by another processor. Also, at least one processor includes the capability to delay execution of an interruptable instruction until the instruction can be executed in its appropriate sequential order in the sequence. Also, upon the occurrence of the interrupt, the processors include the capability to purge the instruction storage buffer in order that the interrupt software instructions may be stored for execution.
    Type: Grant
    Filed: January 13, 1989
    Date of Patent: December 24, 1991
    Assignee: International Business Machines Corporation
    Inventors: Gregory F. Grohoski, James A. Kahle, Myhong Nguyenphu, David S. Ray