Patents Examined by Eddie Chan
  • Patent number: 7370159
    Abstract: A microprocessor includes a processing unit, an address bus connected to an addressable memory space, and executes instructions from an instruction set for accessing the addressable memory space. The addressable memory space is for a lower memory area and an extended memory area. The instruction set includes a first instruction group for accessing the lower memory area, and a second instruction group that is distinct from the first instruction group for accessing the extended memory area.
    Type: Grant
    Filed: March 31, 2004
    Date of Patent: May 6, 2008
    Assignee: STMicroelectronics SA
    Inventors: Franck Roche, Philippe Basset
  • Patent number: 7370176
    Abstract: A system and method for a high frequency stall design is presented. An issue unit includes a first instruction stage, a second instruction stage, and issue control logic. During a first instruction cycle, the issue unit performs two tasks, which are 1) the instructions located in the first instruction stage are moved to a second instruction stage, and 2) the issue control logic determines whether to issue or stall the instructions that are moved to the second instruction stage based upon their particular instruction attributes and the issue control unit's previous state. During a second instruction cycle that immediately follows the first instruction cycle, the second instruction stage's instructions are either issued or stalled based upon the issue control logic's decision from the first instruction cycle.
    Type: Grant
    Filed: August 16, 2005
    Date of Patent: May 6, 2008
    Assignee: International Business Machines Corporation
    Inventors: Jonathan James DeMent, Kurt Alan Feiste, Robert Alan Philhower, David Shippy
  • Patent number: 7366873
    Abstract: A method and apparatus to correctly compute a vector-gather, vector-operate (e.g., vector add), and vector-scatter sequence, particularly when elements of the vector may be redundantly presented, as with indirectly addressed vector operations. For an add operation, one vector register is loaded with the “add-in” values, and another vector register is loaded with address values of “add to” elements to be gathered from memory into a third vector register. If the vector of address values has a plurality of elements that point to the same memory address, the algorithm should add all the “add in” values from elements corresponding to the elements having the duplicated addresses. An indirectly addressed load performs the “gather” operation to load the “add to” values. A vector add operation then adds corresponding elements from the “add in” vector to the “add to” vector. An indirectly addressed store then performs the “scatter” operation to store the results.
    Type: Grant
    Filed: August 18, 2003
    Date of Patent: April 29, 2008
    Assignee: Cray, Inc.
    Inventor: James R. Kohn
  • Patent number: 7363471
    Abstract: A method may translate a set of source instructions into a set of target instructions, execute the set of target instructions, and unmask a denormal input control bit if the set of source instructions uses a denormal input handling mechanism. A method may detect at least one denormal exception of a faulty target instruction by executing the set of target instructions; assign a predetermined value to one or more denormal operands of the faulty target instruction; and execute the faulty target instruction with the predetermined value for the one or more denormal operands. An apparatus, system, and machine-readable medium may perform such methods.
    Type: Grant
    Filed: June 27, 2005
    Date of Patent: April 22, 2008
    Assignee: Intel Corporation
    Inventors: Sion Berkowits, Orna Etzion, Li Jianhui
  • Patent number: 7353369
    Abstract: One embodiment of a computing system configured to manage divergent threads in a thread group includes a stack configured to store at least one token and a multithreaded processing unit. The multithreaded processing unit is configured to perform the steps of fetching a program instruction, determining that the program instruction is not a branch instruction, determining whether the program instruction includes a pop-synchronization bit, and updating an active program counter, where the fashion in which the active program counter is updated relates to whether the program instruction includes a pop-synchronization bit.
    Type: Grant
    Filed: July 13, 2005
    Date of Patent: April 1, 2008
    Assignee: NVIDIA Corporation
    Inventors: Brett W. Coon, John Erik Lindholm
  • Patent number: 7334113
    Abstract: The present invention provides a method and system for processing an instruction set, which can be applied to compress the operation part of a sequence of instructions in the instruction set and to perform the corresponding decompression. Upon the compression, the sequence of instructions is divided into a operation part and a register part, then recursively compress consecutive instructions with two operation codes that emerge repeatedly in the sequence of instructions until no further compression can be performed. The compression leads to form a binary tree which constitutes of nodes corresponding to the original operation codes or the ones derived from them in the recursive compression process. Furthermore, a pre-fetch mechanism is used in the present invention to promote the performance upon decompression.
    Type: Grant
    Filed: September 7, 2005
    Date of Patent: February 19, 2008
    Assignee: National Chung Cheng University
    Inventors: Rong-Guey Chang, Shao-Yang Wang
  • Patent number: 7328327
    Abstract: A processor includes a fetch pipeline, out-of-order (OOO) logic and a strand selector. The fetch pipeline is configured to provide instructions from an instruction store to a fetch buffer responsive to receiving a plurality of fetch requests for a first strand, selected from a plurality of active strands. The OOO logic is coupled to the fetch pipeline and is configured to detect an OOO packet in the fetch pipeline in response to the fetch requests for the first strand. The strand selector is coupled to the OOO logic and the fetch pipeline and selects a second strand for processing in the fetch pipeline, from the active strands, when the OOO logic detects the OOO packet associated with the first strand.
    Type: Grant
    Filed: January 11, 2006
    Date of Patent: February 5, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Abid Ali
  • Patent number: 7328332
    Abstract: A processor (1700) including a pipeline (1710, 1740) having a fetch pipeline (1710) with branch prediction circuitry (1840) to supply respective predicted taken target addresses for branch instructions, an execution pipeline (1740) with a branch execution circuit (1870), and storage elements (in 1860) and control logic (2350) operable to establish a first-in-first-out (FIFO) circuit (1860) with a write pointer WP1 and a read pointer RP1. The control logic (2350) is responsive to the branch prediction circuitry (1840) to write a predicted taken target address to a storage element (in 1860) identified by the write pointer (WP1) and the predicted taken target address remains stationary therein. The FIFO circuit (1860) bypasses a plurality of pipestages between the branch prediction circuitry (1840) and the branch execution circuit (1870). The control logic (2350) is operable to read a predicted taken target address (PTTPCA) from a storage element (in 1860) identified by the read pointer RP1.
    Type: Grant
    Filed: August 24, 2005
    Date of Patent: February 5, 2008
    Assignee: Texas Instruments Incorporated
    Inventor: Thang Tran
  • Patent number: 7328330
    Abstract: A method, an apparatus and a computer program product are provided for the managing of SIMD instructions and GP instructions within an instruction pipeline of a processor. The SIMD instructions and the GP instructions share the same “front-end” pipelines within an Instruction Unit. Within the shared pipelines the Instruction Unit checks the GP instructions for dependencies and resolves these dependencies. At the dispatch point within the pipelines the Instruction Unit sends valid GP instructions to the GP Unit and SIMD instructions to an SIMD issue queue. In the SIMD issue queue the Instruction Unit checks the SIMD instructions for dependencies and resolves these dependencies. Then the SIMD issue queue dispatches the SIMD instructions to the SIMD Unit. Accordingly, dependencies involving SIMD instructions do not affect GP instructions because the SIMD dependencies are checked and resolved independently.
    Type: Grant
    Filed: August 16, 2005
    Date of Patent: February 5, 2008
    Assignee: International Business Machines Corporation
    Inventors: Christopher Michael Abernathy, Jonathan James DeMent, Ronald Hall, David Shippy
  • Patent number: 7325124
    Abstract: A pipeline system and method includes a plurality of operational stages. The stages include a pointer register stage which stores pointer information and updates, and a rename and dependence checking stage located downstream of the pointer register stage, which renames registers and determines if dependencies exist. A functional unit provides pointer information updates to the pointer register stage such that pointer information is processed and updated to the pointer register stage before or in parallel with the register dependency checking.
    Type: Grant
    Filed: April 21, 2004
    Date of Patent: January 29, 2008
    Assignee: International Business Machines Corporation
    Inventors: Erik Altman, Michael Karl Gschwind, Jude A. Rivers, Sumedh Wasudeo Sathaye, John-David Wellman, Victor Zyuban
  • Patent number: 7321965
    Abstract: A microprocessor includes a core configured to concurrently execute instructions of a plurality of program threads and a yield instruction, included in the instruction set of the microprocessor. The yield instruction includes an opcode for instructing the microprocessor core to suspend issuing instructions of a thread. The thread is one of the plurality of concurrently executed program threads. The yield instruction is an instruction in the thread. The yield instruction also includes a first operand. If the first operand is a first predetermined value the microprocessor core terminates issuing instructions of the thread. If the first operand is a second predetermined value the microprocessor core unconditionally reschedules issuing instructions of the thread. The yield instruction also includes a second operand for receiving a result value of the instruction usable by other instructions of the program thread.
    Type: Grant
    Filed: August 27, 2004
    Date of Patent: January 22, 2008
    Assignee: MIPS Technologies, Inc.
    Inventor: Kevin D Kissell
  • Patent number: 7315935
    Abstract: A microprocessor is configured to provide port arbitration in a register file. The microprocessor includes a plurality of functional units configured to collectively operate on a maximum number of operands in a given execution cycle, and a register file providing a number of read ports that is insufficient to provide the maximum number of operands to the plurality of functional units in the given execution cycle. The microprocessor also includes an arbitration logic coupled to allocate the read ports of the register file for use by selected functional units during the given execution cycle.
    Type: Grant
    Filed: October 6, 2003
    Date of Patent: January 1, 2008
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Mitchell Alsup, Brian D. McMinn, Benjamin T. Sander, David E. Kroesche
  • Patent number: 7313676
    Abstract: A register renaming technique for dynamic multithreading. One disclosed embodiment includes a register map to store up to M×N values to map M registers for N threads. A set of N values, one per thread, and a set of state bits is associated with each of the M registers. Each set of state bits indicates which of the N values per register are valid and whether ones of the N sets of values have been written by a dynamic execution thread. In response to termination of a dynamic execution thread, recovery logic may update state bits associated with ones of the M registers that were written to during dynamic execution.
    Type: Grant
    Filed: June 26, 2002
    Date of Patent: December 25, 2007
    Assignee: Intel Corporation
    Inventors: Edward A. Brekelbaum, Jeffrey P. Rupley, II
  • Patent number: 7310723
    Abstract: Methods and systems thereof for exception handling are described. An event to be handled is identified during execution of a code sequence. A bit is set to indicate that handling of the event is to be deferred. An exception corresponding to the event is generated if the bit is set.
    Type: Grant
    Filed: April 2, 2003
    Date of Patent: December 18, 2007
    Assignee: Transmeta Corporation
    Inventors: Guillermo J. Rozas, Alexander Klaiber
  • Patent number: 7308562
    Abstract: A system and method for improved branch performance in pipelined computer architectures is presented. Priority bits are set during code execution that corresponds to an upcoming branch instruction. A priority bit may be associated with a register, a resource, or a microsequencer. An instruction selector compares one or more priority bits with each of a plurality of instructions in order to identify particular instructions to execute that make registers and resources available for an upcoming branch instruction. The instruction selector then prioritizes the identified instructions and the pipeline executes in instructions in the prioritized order.
    Type: Grant
    Filed: May 22, 2003
    Date of Patent: December 11, 2007
    Assignee: International Business Machines Corporation
    Inventor: Julianne Frances Haugh
  • Patent number: 7308564
    Abstract: A performance monitor is realized from programmable logic on the same integrated circuit as a processor. A user may use a programming and analysis tool to select a performance monitor soft core and to program it into the integrated circuit. The performance monitor is used to debug and/or monitor operation of the processor. After the debugging and/or performance monitoring, the portion of the programmable logic used to realize the performance monitor can be reconfigured and used to realize another portion of the user-specific circuit. Because the portion of the integrated circuit used to realize the performance monitor can be later used in the user-specific design, the cost of having to provide a no-longer-desired performance monitor in each integrated circuit used in the user's design is avoided. Because the performance monitor is realized from programmable logic, the performance monitor is more flexible than a conventional hardwired configurable performance monitor.
    Type: Grant
    Filed: March 27, 2003
    Date of Patent: December 11, 2007
    Assignee: Xilinx, Inc.
    Inventor: Jesse H. Jenkins, IV
  • Patent number: 7302553
    Abstract: An apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue of a processor are provided. Particularly, instructions are stored, one at a time at a clock cycle, in the non-moving queue. At every clock cycle, a present status of the instructions in the queue is recorded. Using the present status of the instructions in the queue in conjunction with previously recorded statuses of the instructions, the oldest instruction in the queue is determined. The status of the instructions in the queue includes whether or not the instruction has been issued for execution as well as whether or not it is known that the issued instruction has been accepted for execution.
    Type: Grant
    Filed: January 23, 2003
    Date of Patent: November 27, 2007
    Assignee: International Business Machines Corporation
    Inventors: Sam Gat-Shang Chu, Hung Qui Le, Dung Quoc Nguyen
  • Patent number: 7302550
    Abstract: An operand stack (10) permits optimization of memory space and a continuous check of operand type by creating a type memory (20) which stores type information for each operand, said information comprising information about the length of the operand. This length information available for each single operand permits the operands to be stored extremely densely, while the prior art uses uniform length stack elements for each operand, their length depending on the longest operand.
    Type: Grant
    Filed: July 17, 2000
    Date of Patent: November 27, 2007
    Assignee: Giesecke & Devrient GmbH
    Inventor: Martin Merck
  • Patent number: 7302557
    Abstract: A processor method and apparatus that allows for the overlapped execution of multiple iterations of a loop while allowing the compiler to include only a single copy of the loop body in the code while automatically managing which iterations are active. Since the prologue and epilogue are implicitly created and maintained within the hardware in the invention, a significant reduction in code size can be achieved compared to software-only modulo scheduling. Furthermore, loops with iteration counts less than the number of concurrent iterations present in the kernel are also automatically handled. This hardware enhanced scheme achieves the same performance as the fully-specified standard method. Furthermore, the hardware reduces the power requirement as the entire fetch unit can be deactivated for a portion of the loop's execution.
    Type: Grant
    Filed: December 1, 2000
    Date of Patent: November 27, 2007
    Assignee: Impact Technologies, Inc.
    Inventors: Wen-mei W. Hwu, Matthew C. Merten
  • Patent number: 7299343
    Abstract: A system for conditionally executing an instruction depending on a previously existing condition. The system disclosed is configured to handle conditional execution instructions typically specifying at least one target instruction, a processor register, and a condition within the register. The system saves a result of each of the target instructions dependent upon the existence of the condition in the specified register during execution of the conditional execution instruction. When the conditional execution instruction specifies a first flag register, the system copies the flag bits in the first flag register to a corresponding second flag register, and saves a result of each of the target instructions dependent upon the specified condition in the first flag register during execution of the conditional execution instruction.
    Type: Grant
    Filed: September 27, 2002
    Date of Patent: November 20, 2007
    Assignee: VeriSilicon Holdings (Cayman Islands) Co. Ltd.
    Inventors: Seshagiri P. Kalluri, Ramon C. Trombetta, Adam C. Krolnik