Patents Examined by Ryan Fiegle
  • Patent number: 7269719
    Abstract: Full predication of instruction execution is provided by operand predicates, where each operand has an associated predicate bit intuitively indicating the validity of the operand value. In a programmable processor supporting operand predication, an instruction will execute only if the predicate bit of every register containing a source or destination operand is true, where the predicate bit of the destination register is set to the logical AND of the source registers' predicatest for most instructions. Similarly, in a non-programmable processor synthesized with predicated operand support, an operator will perform the associated function depending on the state of inputs' predicates and the output predicate, which is normally evaluated as the logical AND of the inputs' predicates.
    Type: Grant
    Filed: October 30, 2002
    Date of Patent: September 11, 2007
    Assignee: STMicroelectronics, Inc.
    Inventors: Osvaldo Colavin, Davide Rizzo
  • Patent number: 7237099
    Abstract: A multiprocessor system has a plurality of CPUs with respective local buses, and a memory which stores a plurality of programs to be executed by the CPUs and is connected to a common bus which can be accessed via the local buses, each local bus being connected to a CPU identification register which stores an identification value for identifying the corresponding CPU. When a program which is specific to a CPU is to be executed by that CPU, the corresponding identification value is read out from the identification register of the CPU and is judged, and branching to the appropriate program is performed based on the judgement result.
    Type: Grant
    Filed: December 27, 2002
    Date of Patent: June 26, 2007
    Assignee: DENSO Corporation
    Inventors: Shuji Agatsuma, Yoshinori Teshima, Kyoichi Suzuki
  • Patent number: 7222226
    Abstract: A system may include a dispatch unit, a scheduler, and an execution core. The dispatch unit may be configured to modify a load operation to include a register-to-register move operation in response to an indication that a speculative result of the load operation is linked to a data value identified by a first tag. The scheduler may be coupled to the dispatch unit and configured to issue the register-to-register move operation in response to availability of the data value. The execution core may be configured to execute the register-to-register move operation by outputting the data value and a tag indicating that the data value is the result of the load operation.
    Type: Grant
    Filed: April 30, 2002
    Date of Patent: May 22, 2007
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Kevin Michael Lepak, Benjamin Thomas Sander, James K. Pickett
  • Patent number: 7206926
    Abstract: A programmable unit is described having one or more program running units for running a program, with at least one of the program running units having an associated stopping device by which it is possible to stop the running of the program by the program running unit with which that stopping device is associated. The described programmable unit is distinguished in that the stopping device can also cause other components of the programmable unit to be stopped, in addition to the program running unit with which it is associated.
    Type: Grant
    Filed: October 10, 2001
    Date of Patent: April 17, 2007
    Assignee: Infineon Technologies AG
    Inventor: Albrecht Mayer
  • Patent number: 7206927
    Abstract: A method of executing an instruction stream in a pipelined execution unit of depth, p, comprises loading the instruction stream; detecting an iteration of an instruction in the loaded instruction stream; interleaving p steams of instances of the instruction in the pipeline; detecting an end of the iteration; and combining results obtained from the p streams after all programmed iterations have completed. A computational circuit comprises a register which can hold a value representing both an operand and result of an iterative operation; a multiplexer having a first input connected to receive the operand from the register, a second input connected to a source of an identify value for the iterative operation, and an output; and an operator circuit having an input connected to receive a value from the multiplexer output, and an output connected to return thee result to the register.
    Type: Grant
    Filed: November 19, 2002
    Date of Patent: April 17, 2007
    Assignee: Analog Devices, Inc.
    Inventor: Abhijit Giri
  • Patent number: 7191311
    Abstract: The present invention provides a method and system of interconnecting L processors of a parallel computer to facilitate torus partitioning, (a) where each of the processors includes a processing unit and a switch, (b) where the switch includes a first external port, a second external port, a third external port, a fourth external port, a first internal port, and a second internal port, (c) where the L processors comprise R non-overlapping partitions, (d) where each of the partitions comprises the processing unit of at least one of the processors, and (e) where L is an integer ?2 and R is an integer ?1. In an exemplary embodiment, the method and system include connecting the L switches of the L processors among the external ports of the L switches in an extended torus architecture and setting the connected L switches thereby interconnecting each of the partitions as a torus.
    Type: Grant
    Filed: December 13, 2003
    Date of Patent: March 13, 2007
    Assignee: International Business Machines Corporation
    Inventor: Larry Stockmeyer
  • Patent number: 7171544
    Abstract: Parallelization of loops is performed for loops having indirect loop index variables and embedded conditional statements in the loop body. Loops having any finite number of array variables in the loop body, and any finite number of indirect loop index variables can be parallelized. There are two particular limitations of the described techniques: (i) that there are no cross-iteration dependencies in the loop other than through the indirect loop index variables; and (ii) that the loop index variables (either direct or indirect) are not redefined in the loop body.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: January 30, 2007
    Assignee: International Business Machines Corporation
    Inventor: Rajendra K. Bera
  • Patent number: 7167973
    Abstract: A microprocessor, including a plurality of registers and an instruction execution module which is adapted to process a sequence of conditional tests. The module uses an instruction set that has the following instructions: A test-and-condition instruction which evaluates each of the conditional tests as true or false and responsive thereto sets respective values in the registers. A priority-test-branch instruction, which causes the instruction execution module, responsive to one of the conditional tests evaluating as true and to the respective values in the registers, to execute a priority code module. A combination-test-branch instruction, which causes the instruction execution module, responsive to evaluations of the conditional tests and to the respective values in the registers, to execute a combination code module.
    Type: Grant
    Filed: November 15, 2002
    Date of Patent: January 23, 2007
    Assignee: Broadcom Corporation
    Inventors: Shay Mizrachi, Gilad Ayalonn
  • Patent number: 7139902
    Abstract: A method and apparatus are disclosed for enhancing the pipeline instruction transfer and execution performance of a computer architecture by reducing instruction stalls due to branch and jump instructions. Trace cache within a computer architecture is used to receive computer instructions at a first rate and to store the computer instructions as traces of instructions. An instruction execution pipeline is also provided to receive, decode, and execute the computer instructions at a second rate that is less than the first rate. A mux is also provided between the trace cache and the instruction execution pipeline to select a next instruction to be loaded into the instruction execution pipeline from the trace cache based, in part, on a branch result fed back to the mux from the instruction execution pipeline.
    Type: Grant
    Filed: February 3, 2003
    Date of Patent: November 21, 2006
    Assignee: Broadcom Corporation
    Inventor: Yung-hsiang Lee
  • Patent number: 7130990
    Abstract: A method and apparatus are provided for providing ready information to a scheduler. Dependence information is maintained in a relatively small map table, with potential loss of information when dependence information exceeds available space in the map table. Ready instructions are maintained, as space allows, in a select queue. Tags for scheduled instructions are maintained in a lookup queue, and dependency information for the scheduled instruction is maintained in an update queue, as space allows. Ready information for instructions in a scheduling window is updated based upon the information in the update queue. Loss of instruction information may occur, due to space limitations, at the map table, lookup queue, update queue, and/or select queue. Scheduling of lost instructions is handled by a lossy instruction handler.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: October 31, 2006
    Assignee: Intel Corporation
    Inventors: Edward A. Brekelbaum, Bryan P. Black, Jeffrey P. Rupley, II
  • Patent number: 7124287
    Abstract: Disclosed is a method and apparatus providing the capability to create a dynamic associative branch target buffer (BTB). A dynamically based associative BTB allows for either an increase number of entries and/or a reduction in area over current based static based BTBs while up to retaining the same confidence level of prediction accuracy.
    Type: Grant
    Filed: May 12, 2003
    Date of Patent: October 17, 2006
    Assignee: International Business Machines Corporation
    Inventors: Brian R. Prasky, Moinuddin K. A. Qureshi
  • Patent number: 7117346
    Abstract: A data processing system having multiple register contexts is described. One embodiment of the present invention uses a user programmable context control register for each of the multiple register contexts to allow for the mapping of portions of an alternate register context into a current register context. The context control register may also be used to provide for the sharing of common stack pointers among multiple register contexts. Therefore, when operating in a current register context, the context control register may be used to access portions of an alternate register context in place of accessing corresponding portions of the current register context.
    Type: Grant
    Filed: May 31, 2002
    Date of Patent: October 3, 2006
    Assignee: Freescale Semiconductor, Inc.
    Inventors: William C. Moyer, John H. Arends
  • Patent number: 7114055
    Abstract: A reduced instruction set computer architecture implemented on a field programmable gate array includes a parallel bit shifter capable of reversible shifts and bit reversals, a Reed-Muller Boolean unit coupled to the parallel bit shifter and an immediate instruction function using a half-word literal field in an instruction word that impacts a whole word logically through a combination of modes that variously manipulates the distribution of a set of literal bits of the half-word literal field across the instruction word.
    Type: Grant
    Filed: September 29, 2003
    Date of Patent: September 26, 2006
    Assignee: Xilinx, Inc.
    Inventor: Michael A. Baxter
  • Patent number: 7103752
    Abstract: A method, apparatus, and computer instructions for broadcasting information. A change in data used by a number of processors in the data processing system is identified. A message is sent to the number of processors in the data processing system in which the message is sent with a priority level equal to a set of routines that use the data in response to identifying the change. This message is responded to only when the recipient is at an interrupt priority less favored than the priority of the message. A flag is set for each of the number of processors to form a plurality of set flags for the message in which the plurality of set flags are located in memory locations used by the number of processors in which the plurality of set flags remains set until a response is made to the message.
    Type: Grant
    Filed: September 30, 2002
    Date of Patent: September 5, 2006
    Assignee: International Business Machines Corporation
    Inventors: Ramanjaneya Sarma Burugula, Matthew David Fleming, Joefon Jann, Mark Douglass Rogers
  • Patent number: 7096345
    Abstract: A data processing system for executing a plurality of instructions having a prescribed program order comprises a register file, a reorder buffer, and a plurality of functional units. The register file includes a plurality of registers to store data. The reorder buffer includes N buffer locations of which M buffer locations are bypassable and N?M buffer locations are non-bypassable, wherein N and M are integers and N>M. Each functional unit is capable of executing instructions regardless of the prescribed program order. The reorder buffer temporarily stores data corresponding to the plurality of instructions. When data of one of the plurality of instructions to be executed by a corresponding one of the plurality of functions units is temporarily stored in one of the M bypassable buffer locations, the reorder buffer transfers the data in one of the bypassable M buffer locations to the corresponding one of the functional units in order to execute the instruction.
    Type: Grant
    Filed: September 26, 2003
    Date of Patent: August 22, 2006
    Assignee: Marvell International Ltd.
    Inventors: Hong-Yi Hubert Chen, Richard Yen-Ching Lee, Geoffrey Yung, Jensen Tjeng
  • Patent number: 7082517
    Abstract: In a computer system for use as a symetrical multiprocessor, a superscalar microprocessor apparatus allows dispatching and executing multi-cycle and complex instructions Some control signals are generated in the dispatch unit and dispatched with the instruction to the Fixed Point Unit (FXU). Multiple execution pipes correspond to the instruction dispatch ports and the execution unit is a Fixed Point Unit (FXU) which contains three execution dataflow pipes (X, Y and Z) and one control pipe (R). The FXU logic then execute these instructions on the available FXU pipes. This results in optimum performance with little or no other complications. The presented technique places the flexibility of how these instructions will be executed in the FXU, where the actual execution takes place, instead of in the instruction decode or dispatch units or cracking by the compiler.
    Type: Grant
    Filed: May 12, 2003
    Date of Patent: July 25, 2006
    Assignee: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Klaus J. Getzlaff, Christopher A. Krygowski, Timothy J. Slegel
  • Patent number: 7073049
    Abstract: The present invention provides a non-copy shared stack and register set device and a dual language processor structure using the same, which achieve non-copy data sharing by controlling a selector and the stack pointer of a data stack. The selector is connected to each item of the data stack and a register of the register set, such that, when the register set requires to exchange data with the data stack, the selector is controlled and the stack pointer is updated thereby the selector is switched to make the stack item pointed by the stack pointer communicate with the register.
    Type: Grant
    Filed: August 20, 2002
    Date of Patent: July 4, 2006
    Assignee: Industrial Technology Research Institute
    Inventors: Ruey-Liang Ma, Shih-Wei Peng
  • Patent number: 7000091
    Abstract: The invention is a system and method for executing a program that comprises a plurality of basic blocks on a computer system that comprises a plurality of processing elements. The invention generates a branch instruction by one processing element of the plurality of processing elements, sends the branch instruction to the plurality of processing elements. The invention then independently branches to a target of the branch instruction by each of the processing elements of the plurality of processing elements when each processing element receives the sent branch instruction. At least one processing element of the plurality of processing elements receives the branch instruction at a time later than another processing element of the plurality of processing elements.
    Type: Grant
    Filed: August 8, 2002
    Date of Patent: February 14, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Michael S. Schlansker