Patents by Inventor James Allan Kahle

James Allan 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: 20040117520
    Abstract: A system and method are provided for improving performance of a computer system by providing a direct data transfer between different processors. The system includes a first and second processor. The first processor is in need of data. The system also includes a directory in communication with the first processor. The directory receives a data request for the data and contains information as to where the data is stored. A cache is coupled to the second processor. An internal bus is coupled between the first processor and the cache to transfer the data from the cache to the first processor when the data is found to be stored in the cache.
    Type: Application
    Filed: December 17, 2002
    Publication date: June 17, 2004
    Applicant: International Business Machines Corporation
    Inventors: Michael Norman Day, Charles Ray Johns, James Allan Kahle, Peichun Peter Liu, David Shippy, Thuong Quang Truong
  • Publication number: 20040117592
    Abstract: Memory management in a computer system is improved by preventing a subset of address translation information from being replaced with other types of address translation information in a cache memory reserved for storing such address translation information for faster access by a CPU. This way, the CPU can identify the subset of address translation information stored in the cache.
    Type: Application
    Filed: December 12, 2002
    Publication date: June 17, 2004
    Applicant: International Business Machines Corporation
    Inventors: Michael Norman Day, Harm Peter Hofstee, Charles Ray Johns, James Allan Kahle, David Shippy, Thuong Quang Truong
  • Publication number: 20040117560
    Abstract: A system and method are provided for directly accessing a cache for data. A data transfer request is sent to a system bus for transferring data to a system memory. The data transfer request is snooped. A snoop request is sent to a cache. It is determined whether the snoop request has a valid entry in the cache. Upon determining that the snoop request has a valid entry in the cache, the data is caught and sent to the cache for update.
    Type: Application
    Filed: December 12, 2002
    Publication date: June 17, 2004
    Applicant: International Business Machines Corporation
    Inventors: Jeffrey Douglas Brown, Michael Norman Day, Charles Ray Johns, James Allan Kahle, David J. Shippy, Thuong Quang Truong
  • Publication number: 20040107321
    Abstract: A method and system for attached processing units accessing a shared memory in an SMP system. In one embodiment, a system comprises a shared memory. The system further comprises a plurality of processing elements coupled to the shared memory. Each of the plurality of processing elements comprises a processing unit, a direct memory access controller and a plurality of attached processing units. Each direct memory access controller comprises an address translation mechanism thereby enabling each associated attached processing unit to access the shared memory in a restricted manner without an address translation mechanism. Each attached processing unit is configured to issue a request to an associated direct memory access controller to access the shared memory specifying a range of addresses to be accessed as virtual addresses. The associated direct memory access controller is configured to translate the range of virtual addresses into an associated range of physical addresses.
    Type: Application
    Filed: October 1, 2003
    Publication date: June 3, 2004
    Inventors: Erik R. Altman, Peter G. Capek, Michael Karl Gschwind, Harm Peter Hofstee, James Allan Kahle, Ravi Nair, Sumedh Wasudeo Sathaye, John-David Wellman
  • Patent number: 6728866
    Abstract: A microprocessor and method of processing instructions for addressing timing assymetries are disclosed. A sequence of instructions including a first instruction and a second instruction are received. Dependency logic determines if any dependencies between the first and second instructions. The dependency logic then selects between first and second issue queue partitions for storing the first and second instructions pending issue based upon the dependency determination, wherein the first issue queue partition issues instructions to a first execution unit and the second issue queue partition issues instructions to a second execution unit. The first and second issue queue partitions may be asymmetric with respect to a first register file in which instruction results are stored. The first and second instructions are then stored in the selected partitions.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: April 27, 2004
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6725354
    Abstract: A microprocessor includes a first processor core and a second processor core. The first core includes a first processing block. The first processing block includes an execution unit suitable for executing a first type of instruction. The second core includes a second processing block. The second processing block includes an execution unit suitable for executing an instruction if the instruction is of the first type. The processor further includes a shared execution unit. The first and second processor cores are adapted to forward an instruction to the shared execution unit for execution if the instruction is of a second type. In one embodiment, the first type of instruction includes fixed point instructions, load/store instructions, and branch instructions and the second type of instruction includes floating point instructions.
    Type: Grant
    Filed: June 15, 2000
    Date of Patent: April 20, 2004
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6697939
    Abstract: A processor, data processing system, and a related method of execution are disclosed. The processor is suitable for receiving a set of instructions and organizing the set of instructions into an instruction group. The instruction group is then dispatched for execution. Upon executing the instruction group, instruction history information indicative of an exception event associated with the instruction group is recorded. Thereafter, the execution of the instruction is modified responsive to the instruction history information to prevent the exception event from occurring during a subsequent execution of the instruction group. The processor includes a storage facility such as an instruction cache, an L2 cache or a system memory, a cracking unit, and a basic block cache. The cracking unit is configured to receive a set of instructions from the storage facility. The cracking unit is adapted to organize the set of instructions into an instruction group.
    Type: Grant
    Filed: January 6, 2000
    Date of Patent: February 24, 2004
    Assignee: International Business Machines Corporation
    Inventor: James Allan Kahle
  • Patent number: 6678820
    Abstract: A processor having improved branch prediction accuracy includes at least one execution unit that executes sequential instructions and a plurality of branch prediction circuits including a lock acquisition branch prediction circuit that predicts a speculative execution path for a conditional branch instruction. The processor further includes a selector that selects the speculative execution path predicted by the lock acquisition branch prediction circuit in response to an indication that the conditional branch instruction is dependent upon lock acquisition. In a preferred embodiment, the indication that the conditional branch instruction is dependent upon lock acquisition is encoded within the conditional branch instruction.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: January 13, 2004
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6662360
    Abstract: A method and system is disclosed for software manipulation of hardware prediction mechanism in a data processor with software prediction. The hardware branch prediction mechanism is enhanced with at least two bits for path prediction. These bits are settable by a software and are capable of overriding the hardware branch prediction mechanism. Branch prediction information is encoded into a branch instruction in the software. This information includes a pre-determined value for each bit. Finally, a branch path of said instruction is predicted based on the value of the bits.
    Type: Grant
    Filed: September 27, 1999
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert William Hay, James Allan Kahle, Brian R. Konigsburg, David Stephen Levitan, Balaram Sinharoy
  • Patent number: 6662294
    Abstract: A microprocessor and method of processing instructions therein are disclosed. Initially, a sequence of instructions is dispatched by a dispatch unit of the microprocessor. A code sequence recognition unit (CSR) is configured to detect a short branch sequence within the sequence of instruction, where the short branch sequence includes a condition setting instruction, a conditional branch, and at least one additional instruction that is executed if the conditional branch is not taken. The short branch sequence is then internally converted to a predicated instruction sequence that includes the condition setting instruction and a predicated instruction corresponding to each additional instruction in the short branch sequence. The predicated instruction sequence is then executed in at least one functional unit of the processor.
    Type: Grant
    Filed: September 28, 2000
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6658555
    Abstract: A microprocessor and related method and data processing system are disclosed. The microprocessor includes a dispatch unit suitable for issuing an instruction executable by the microprocessor, an execution pipeline configured to receive the issued instruction, and a pending instruction unit. The pending instruction unit includes a set of pending instruction entries. A copy of the issued instruction is maintained in one of the set of pending instruction entries. The execution pipeline is adapted to record, in response detecting to a condition preventing the instruction from successfully completing one of the stages in the pipeline during a current cycle, an exception status with the copy of the instruction in the pending instruction unit and to advance the instruction to a next stage in the pipeline in the next cycle thereby preventing the condition from stalling the pipeline.
    Type: Grant
    Filed: November 4, 1999
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Hung Qui Le, Charles Roberts Moore, David James Shippy, Larry Edward Thatcher
  • Patent number: 6658558
    Abstract: A processor having improved branch prediction accuracy includes at least one execution unit that executes sequential instructions and branch processing circuitry that processes branch instructions. The branch processing circuitry includes a number of branch prediction circuits that are each capable of providing a branch prediction for a conditional branch instruction and a selector that selects a branch prediction of a branch prediction circuit based upon the type of condition upon which the conditional branch instruction depends. The selector preferably includes hardware that determines the type of condition upon which the conditional branch instruction depends by reference to an instruction context defined by one or more instructions adjacent the conditional branch instruction in programmed sequence. The branch processing circuitry further includes path address logic that determines a path address of the selected branch prediction.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6654869
    Abstract: A microprocessor includes a fetch unit, an instruction cracking unit, and dispatch and completion control logic. The fetch unit retrieves a set of instructions from an instruction cache. The instruction cracking unit receives the set of fetched instructions and organizes the set of instructions into an instruction group. The dispatch and completion logic assigns a group tag to the instruction group and records the group tag in an entry of the completion table for tracking the completion status of the instructions comprising the instruction group. The dispatch and control logic may record a single instruction address in the completion table entry corresponding to the each instruction group. Preferably, the single instruction address is the instruction address of the first instruction in the instruction group. The processor may flush the instruction group in response to detecting an exception generated by an instruction in the instruction group.
    Type: Grant
    Filed: October 28, 1999
    Date of Patent: November 25, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Hung Qui Le, Charles Roberts Moore
  • Patent number: 6631463
    Abstract: A method and apparatus for patching a problematic instruction within a pipelined processor in a data processing system is presented. A plurality of instructions are fetched, and the plurality of instructions are matched against at least one match condition to generate a matched instruction. The match conditions may include matching the opcode of an instruction, the pre-decode bits of an instruction, a type of instruction, or other conditions. A matched instruction may be marked using a match bit that accompanies the instruction through the instruction pipeline. The matched instruction is then replaced with an internal opcode or internal instruction that causes the instruction scheduling unit to take a special software interrupt. The problematic instruction is then patched through the execution of a set of instructions that cause the desired logical operation of the problematic instruction.
    Type: Grant
    Filed: November 8, 1999
    Date of Patent: October 7, 2003
    Assignee: International Business Machines Corporation
    Inventors: Michael Stephen Floyd, James Allan Kahle, Hung Qui Le, John Anthony Moore, Kevin Franklin Reick, Edward John Silha
  • Patent number: 6629233
    Abstract: A method, processor, and data processing system for enabling maximum instruction issue despite the presence of complex instructions that require multiple rename registers is disclosed. The method includes allocating a first rename register from a first reorder buffer for storing the contents of a first register affected by the complex instruction. A second rename register from a second reorder buffer is then allocated for storing the contents of a second register affected by the complex instruction. In an embodiment in which the first reorder buffer supports a maximum number of allocations per cycle, the allocation of the second register using the second reorder buffer prevents the complex instruction from requiring multiple allocation slots in the first reorder buffer. The method may further include issuing a second instruction that contains a dependency on a register that is allocated in the secondary reorder buffer.
    Type: Grant
    Filed: February 17, 2000
    Date of Patent: September 30, 2003
    Assignee: International Business Machines Corporation
    Inventor: James Allan Kahle
  • Patent number: 6609190
    Abstract: A processor and data processing system suitable for dispatching an instruction to an issue unit. The issue unit includes a primary issue queue and a secondary issue queue. The instruction is stored in the primary issue queue if the instruction is currently eligible to issue for execution. The instruction is stored in the secondary issue queue if the instruction is currently ineligible to issue for execution. An instruction may be moved from the primary issue queue to the secondary issue queue if instruction is dependent upon results from another instruction. In one embodiment, the instruction may be moved from the primary issue queue to the secondary issue queue after issuing the instruction for execution. In this embodiment, the instruction may be maintained in the secondary issue queue for a specified duration. Thereafter, the secondary issue queue entry containing the instruction is deallocated if the instruction has not been rejected.
    Type: Grant
    Filed: January 6, 2000
    Date of Patent: August 19, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Publication number: 20030115500
    Abstract: A system including a central processor and a plurality of attached processors all on a single die are disclosed Each of the attached processors is preferably functionally equivalent to each of the other attached processors. The system further includes at least one redundant processor that is connectable to the central processor. The redundant processor may be substantially equivalent to each of the attached processors. Upon detecting a failure in one of the attached processors, the system is configured to disable the non-functional processor and enable the redundant processor. The attached processors may be connected to a memory interface unit via a parallel bus or a pipelined bus in which each attached processor is connected to a stage of the pipelined bus. The attached processors may each include a load store unit and logic suitable for performing a mathematical function.
    Type: Application
    Filed: December 14, 2000
    Publication date: June 19, 2003
    Applicant: International Business Machines Corporation
    Inventors: Chekib Akrout, Harm Peter Hofstee, James Allan Kahle
  • Patent number: 6574712
    Abstract: A data processing system includes a processor having a first level cache and a prefetch engine. Coupled to the processor are a second level cache and a third level cache and a system memory. Prefetching of cache lines is performed into each of the first, second, and third level caches by the prefetch engine. Prefetch requests from the prefetch engine to the second and third level caches is performed over a private prefetch request bus, which is separate from the bus system that transfers data from the various cache levels to the processor. A software instruction is used to accelerate the prefetch process by overriding the normal functionality of the hardware prefetch engine. The instruction also limits the amount of data to be prefetched.
    Type: Grant
    Filed: April 14, 2000
    Date of Patent: June 3, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Michael John Mayfield, Francis Patrick O'Connell, David Scott Ray, Edward John Silha, Joel M. Tendler
  • Patent number: 6543003
    Abstract: A method and apparatus for recovering from a hang condition in a processor having a plurality of execution units. Monitoring is performed to detect a hang condition. Responsive to detecting a hang condition, instructions dispatched to the plurality of execution units are flushed.
    Type: Grant
    Filed: November 8, 1999
    Date of Patent: April 1, 2003
    Assignee: International Business Machines Corporation
    Inventors: Michael Stephen Floyd, James Allan Kahle, Hung Qui Le, Larry Scott Leitner, Kevin Franklin Reick
  • Patent number: 6543002
    Abstract: A processor and an associated method and data processing system are disclosed. The processor includes an issue unit (ISU), a completion unit, and a hang detect unit. The ISU is configured to issue instructions to an execution unit. The completion unit is adapted to produce a completion valid signal responsive to the issue unit completing an instruction. The hang detect unit is configured to receive the completion valid signal from the ISU and adapted to determine the interval since the most recent assertion of the completion valid signal. The hang detect unit is adapted to initiate a hang recovery sequence upon determining that the interval since the most recent assertion of the completion valid signal exceeds a predetermined maximum interval. In one embodiment, the hang recovery sequence includes the hang recovery unit asserting a stop completion signal to a completion unit and a stop dispatch signal to a dispatch unit to suspend instruction completion and dispatch.
    Type: Grant
    Filed: November 4, 1999
    Date of Patent: April 1, 2003
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Hung Qui Le, Kevin F. Reick, David James Shippy, Larry Edward Thatcher