Patents by Inventor Charles Roberts Moore

Charles Roberts Moore 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: 20120229481
    Abstract: A method, system, and computer program product are disclosed for providing improved access to accelerated processing device compute resources to user mode applications. The functionality disclosed allows user mode applications to provide commands to an accelerated processing device without the need for kernel mode transitions in order to access a unified ring buffer. Instead, applications are each provided with their own buffers, which the accelerated processing device hardware can access to process commands. With full operating system support, user mode applications are able to utilize the accelerated processing device in much the same way as a CPU.
    Type: Application
    Filed: December 2, 2011
    Publication date: September 13, 2012
    Applicants: ATI Technologies ULC, Advanced Micro Devices, Inc.
    Inventors: Rex McCrary, Michael Clair Houston, Philip J. Rogers, Gongxian Jeffrey Cheng, Mark Hummel, Charles Roberts Moore, Leendert Peter Van Doorn, Paul Blinzer
  • Patent number: 6938148
    Abstract: A Storage Reference Buffer (SRB) designed as an autonomous unit for all Store operations that transfer data from the execution unit of a processor to the memory hierarchy and Load operations that transfer data from the memory hierarchy to the execution unit of the processor. The SRB partitions up the Load and Store operations into several smaller operations in order to perform them in parallel with other Load and Store requests. System elements are included to determine unambiguously which of these Load and Store operations may be performed without waiting for prior operations to be completed. The SRB also includes system elements to detect whether requests may be satisfied by existing entries in the SRB without having to access the cache. The SRB is operated as a content addressable memory. Load request are simultaneously launched to cache and to the SRB with the Cache request being canceled if the Load request may be satisfied by an SRB entry.
    Type: Grant
    Filed: December 15, 2000
    Date of Patent: August 30, 2005
    Assignee: International Business Machines Corporation
    Inventors: Charles Roberts Moore, Ravi Nair, Wolfram M. Sauer
  • Patent number: 6871273
    Abstract: A processor implementing an improved method for executing load instructions includes execution circuitry, a plurality of registers, and instruction processing circuitry. The instruction processing circuitry fetches a load instruction and a preceding instruction that precedes the load instruction in program order, and in response to detecting the load instruction, translates the load instruction into separately executable prefetch and register operations. The execution circuitry performs at least the prefetch operation out-of-order with respect to the preceding instruction to prefetch data into the processor and subsequently separately executes the register operation to place the data into a register specified by the load instruction. In an embodiment in which the processor is an in-order machine, the register operation is performed in-order with respect to the preceding instruction.
    Type: Grant
    Filed: June 22, 2000
    Date of Patent: March 22, 2005
    Assignee: International Business Machines Corporation
    Inventor: Charles Robert Moore
  • Patent number: 6868491
    Abstract: A processor having a reduced data hazard penalty includes a register set, at least one execution unit that executes load instructions to transfer data into the register set, and a load queue. The load queue contains at least one entry, and each occupied entry in the load queue stores load data retrieved by an executed load instruction in association with a target address of the executed load instruction. The load queue has associated queue management logic that, in response to execution by the execution unit of a load instruction, determines by reference to the load queue whether a data hazard exists for the load instruction. If so, the queue management logic outputs load data from the load queue to the register set in accordance with the load instruction, thus eliminating the need to flush and re-execute the load instruction.
    Type: Grant
    Filed: June 22, 2000
    Date of Patent: March 15, 2005
    Assignee: International Business Machines Corporation
    Inventor: Charles Robert Moore
  • Patent number: 6829702
    Abstract: A processor that efficiently obtains target path instructions in the presence of tight program loops includes at least one execution unit for executing instructions and instruction sequencing logic that supplies instructions to the at least one execution unit for execution. The instruction sequencing logic includes an instruction fetch buffer and a branch prediction unit including a branch target cache. In response to prediction of a branch instruction as taken, the branch target cache causes multiple copies of a target instruction group to be loaded into the instruction fetch buffer under the assumption that the branch instruction is a member of the target instruction group. Thereafter, the branch target cache causes all but one of the multiple copies to be canceled from the instruction fetch buffer prior to dispatch if the branch instruction does not belong to the target instruction group.
    Type: Grant
    Filed: July 26, 2000
    Date of Patent: December 7, 2004
    Assignee: International Business Machines Corporation
    Inventors: Thomas Leo Jeremiah, Charles Robert Moore
  • Patent number: 6766442
    Abstract: A processor having improved branch prediction accuracy includes at least one execution unit that executes sequential instructions, a condition register, and a branch prediction circuit that predicts a condition register-dependent branch instruction by reference to a potentially stale condition register value to produce a speculative instruction fetch address. In a preferred embodiment, the processor includes branch execution circuitry that subsequently determines if the speculative instruction fetch address is correct by reference to a non-stale value of the condition register.
    Type: Grant
    Filed: March 30, 2000
    Date of Patent: July 20, 2004
    Assignee: International Business Machines Corporation
    Inventors: James Allan Kahle, Charles Roberts Moore
  • Patent number: 6748519
    Abstract: The present invention is a mechanism for providing redundancy in the register file of a microprocessor such that registers having a defective operational status, as determined by testing, can be tolerated and the baseline specification of the microprocessor can be met. The present invention utilizes the register renaming capability of a microprocessor to allow additional registers, above those called for in the specification to be provided. The registers are then tested and those found “bad” are identified and avoided by the allocation/deallocation logic, which is used to assign registers to the various instructions being executed by the microprocessor. More particularly, the present invention maintains a list of physical registers in a register file that have a functional operational status and are available to be allocated to various instructions as they execute. The allocated registers are typically used to store interim data resulting from the execution of the assigned instruction.
    Type: Grant
    Filed: June 15, 2000
    Date of Patent: June 8, 2004
    Assignee: International Business Machines Corporation
    Inventor: Charles Roberts Moore
  • 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: 6725358
    Abstract: A processor includes a register set, at least one execution unit that executes load instructions to transfer data into the register set, a load queue and associated queue management logic. The load queue contains a plurality of entries that each include a reservation valid field, and each of the plurality of entries is associated with a respective one of a corresponding plurality of load instructions that includes at least one load-reserve instruction. In response to execution of the load-reserve instruction, the queue management logic detects whether a data hazard exists by reference to the load queue, and if so, initiates correction of the data hazard. In addition, the queue management logic records a reservation for the load-reserve instruction by setting the reservation valid field of an entry in the load queue associated with the load-reserve instruction.
    Type: Grant
    Filed: June 22, 2000
    Date of Patent: April 20, 2004
    Assignee: International Business Machines Corporation
    Inventor: Charles Robert 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
  • Publication number: 20040073775
    Abstract: A Storage Reference Buffer (SRB) designed as an autonomous unit for all Store operations that transfer data from the execution unit of a processor to the memory hierarchy and Load operations that transfer of data from the memory hierarchy to the execution unit of the processor. The SRB partitions up the Load and Store operations into several smaller operations in order to perform them in parallel with other Load and Store requests. System elements are included to determine unambiguously which of these Load and Store operations may be performed without waiting for prior operations to be completed. The SRB also includes system elements to detect whether requests may be satisfied by existing entries in the SRB without having to access the cache. The SRB is operated as a content addressable memory. Load request are simultaneously launched to cache and to the SRB with the Cache request being canceled if the Load request may be satisfied by an SRB entry.
    Type: Application
    Filed: December 15, 2000
    Publication date: April 15, 2004
    Applicant: International Business Machines Corporation
    Inventors: Charles Roberts Moore, Ravi Nair, Wolfram M. Sauer
  • Patent number: 6715062
    Abstract: A processor includes instruction sequencing logic, execution circuitry, data storage coupled to the execution circuitry, and test circuitry. The test circuitry detects for a hardware error in one of the instruction sequencing logic, execution circuitry, and data storage during functional operation of the processor in response to an instruction within an instruction stream provided by the instruction sequencing logic. In one embodiment, a hardware error can be detected by comparing values output in response to a test instruction by redundant circuitry that performs the same function. Alternatively or in addition, a hardware error can be detected by performing an arithmetic or logical operation having a known result (e.g., multiplication by 1, addition of 0, etc.) in response to the test instruction.
    Type: Grant
    Filed: July 26, 2000
    Date of Patent: March 30, 2004
    Assignee: International Business Machines Corporation
    Inventor: Charles Robert Moore
  • Patent number: 6704860
    Abstract: A data processing system and method of fetching instructions in a data processing system are described. The data processing system includes at least one execution unit that executes fetched instructions and instruction sequencing logic that fetches instructions from memory. In response to detection of a particular instruction trigger within an instruction stream, the instruction sequencing logic fetches one or more non-sequential blocks of instructions from memory, where each of the non-sequential blocks includes a plurality of instructions.
    Type: Grant
    Filed: July 26, 2000
    Date of Patent: March 9, 2004
    Assignee: International Business Machines Corporation
    Inventor: Charles Robert Moore
  • 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: 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: 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: 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: 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: 6625746
    Abstract: The present invention is a mechanism for providing redundancy in the instruction buffer of a microprocessor such individual entries which test bad during manufacturing can be tolerated and the baseline specification of the microprocessor can be met. The present invention utilizes the instruction allocation logic of a microprocessor to allow additional buffer entries, above those called for in the specification to be provided. More particularly, each buffer entry is tested and the results are used to identify which individual entry or entries have a defective operational status. This information is then used to update the instruction allocation logic such that functional entries are considered for allocation, while those entries that test bad can be avoided. Further, the test status information can be used to set a “manufactured good” bit in the entry itself. This bit is then read ultimately by the allocation logic and instructions can be allocated accordingly, i.e.
    Type: Grant
    Filed: June 15, 2000
    Date of Patent: September 23, 2003
    Assignee: International Business Machines Corporation
    Inventor: Charles Roberts Moore
  • 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