Patents Examined by Keith Vicary
  • Patent number: 7721073
    Abstract: A RISC processor having a data moving engine and instructions that associate register addresses with memory addresses. In an embodiment, the instructions include a read-tie instruction, a single write-tie instruction, a dual write-tie instruction, and an untie instruction. The read-tie, single write-tie, and dual write-tie instructions are used to associate software accessible register addresses with memory addresses. These associations effect the operation of the data moving engine such that, for the duration of the associations, the data moving engine routes data to and from associated memory addresses and the execution unit of the processor in response to instructions that specify moving data to and from the associated register addresses. The invention reduces the number of instructions and hardware overhead associated with implementing program loops in a RISC processor.
    Type: Grant
    Filed: January 23, 2006
    Date of Patent: May 18, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Radhika Thekkath, Georgi Zlatkov Beloev
  • Patent number: 7716459
    Abstract: A method for performing at least one jump in a program executed by a processor, including determining a result over several bits as an indicator that a desired condition has been complied with, the result corresponding to an operation taking into account at least one predetermined value and at least one current value; and calculating a jump address which is a function of the result.
    Type: Grant
    Filed: May 11, 2005
    Date of Patent: May 11, 2010
    Assignee: STMicroelectronics S.A.
    Inventors: Pierre Elias, Pierre-Yvan Liardet, Yannick Teglia
  • Patent number: 7694108
    Abstract: An arithmetic unit capable of reconfiguring circuitry in accordance with configuration data supplied includes a data processing unit performing a processing using input data; an output data maintenance unit maintaining the result of the processing to output it as an output data; and an output valid signal control unit outputting an output valid signal indicating whether or not the output data is valid, in which an output timing of a valid data to outside the arithmetic unit can be controlled optionally by controlling the output timing of the output valid signal.
    Type: Grant
    Filed: August 16, 2006
    Date of Patent: April 6, 2010
    Assignee: Fujitsu Limited
    Inventors: Miyoshi Saito, Hisanori Fujisawa
  • Patent number: 7689782
    Abstract: An instruction used by a processor in a determination of whether to perform a trap is disclosed. The instruction includes a first set of one or more bits identifying the instruction, and a second set of one or more bits associated with a first address value used in the determination. The determination does not include performing a memory access that uses the first address value to determine a memory location of the memory access. The determination is based at least in part on more than one of the following: a group of one or more marker bits included in the first address value, a matrix entry located at least in part using one or more bits of the first address value, a Translation Look-aside Buffer entry associated with the first address value, whether the first address value is associated with stack allocated memory, and whether the first address value includes a null value.
    Type: Grant
    Filed: December 6, 2005
    Date of Patent: March 30, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Jack Choquette, Gil Tene, Michael A. Wolf
  • Patent number: 7685405
    Abstract: The invention includes an apparatus and the associated method to digitally process data communicated through a communication channel between a transceiver pair. A global control element and programmable algorithm control elements are used to implement an algorithm using a datapath. The control signal outputs of at least one programmable algorithm control element are coupled to the datapath. The datapath may use the control signals to drive transmission data down a computation path that implements the desired algorithm. The datapath may be duplicated to meet the requirements of a particular device and operate on a larger subset of data using the same control signals that are provided by the programmable algorithm control elements.
    Type: Grant
    Filed: August 24, 2006
    Date of Patent: March 23, 2010
    Assignee: Marvell International Ltd.
    Inventors: Jacky S. Chow, Pak Hei Matthew Leung, Eugene Yuk-Yin Tang
  • Patent number: 7681014
    Abstract: An instruction dispatching apparatus in a multi threading microprocessor that concurrently executes N threads each in one of G groups each having one of P priorities. G round-robin vectors each have N bits corresponding to the threads, each being a 1-bit left-rotated and subsequently sign-extended version of an N-bit vector with a single bit true of the last thread selected for dispatching in the group. Each of N G-input muxes receive a corresponding one of the N bits of each of the round-robin vectors and selects for output one of the inputs specified by the corresponding thread's group. Selection logic selects for dispatching one of the N instructions corresponding to the thread whose dispatch value is greater than or equal to any of the N threads left thereof. Each dispatch value comprises a least-significant bit of the corresponding mux output, a most-significant dispatchable instruction bit, and middle thread group priority bits.
    Type: Grant
    Filed: July 27, 2005
    Date of Patent: March 16, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7680989
    Abstract: We propose a class of mechanisms to support a new style of synchronization that offers simple and efficient solutions to several existing problems for which existing solutions are complicated, expensive, and/or otherwise inadequate. In general, the proposed mechanisms allow a program to read from a first memory location (called the “flagged” location), and to then continue execution, storing values to zero or more other memory locations such that these stores take effect (i.e., become visible in the memory system) only while the flagged memory location does not change. In some embodiments, the mechanisms further allow the program to determine when the first memory location has changed. We call the proposed mechanisms conditional multi-store synchronization mechanisms and define aspects of an instruction set architecture consistent therewith.
    Type: Grant
    Filed: August 17, 2006
    Date of Patent: March 16, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Mark S. Moir, Robert E. Cypher, Paul N. Loewenstein
  • Patent number: 7669037
    Abstract: Method and apparatus for communication between hardware blocks and a processor in a programmable logic device is described. A shared memory is provided along with a memory controller for controlling access to the shared memory. An interface is configured to receive auxiliary instructions from the processor, select the hardware blocks for the requested tasks in response to the auxiliary instructions, notify the hardware blocks of those tasks, and arbitrate access to the memory controller among the hardware blocks.
    Type: Grant
    Filed: March 10, 2005
    Date of Patent: February 23, 2010
    Assignee: Xilinx, Inc.
    Inventors: Paul R. Schumacher, Kornelis Antonius Vissers
  • Patent number: 7660969
    Abstract: A concurrent instruction dispatch apparatus includes a group indicator for each of a plurality of threads that indicates which one of a plurality of groups of the threads the thread belongs to. A group priority indicator for each group indicates an instruction dispatch priority relative to the other groups. Selection logic selects a thread for dispatching an instruction thereof based on the group and group priority indicators. A bifurcated scheduler includes first scheduler logic that issues instructions of the threads to an execution unit, second scheduler logic that enforces a thread scheduling policy, and an interface. A group indicator indicates which group each thread belongs to, a priority for each group, and execution information for each thread. The first scheduler logic issues the instructions based on the group priorities and group indicators, and the second scheduler logic updates the group indicators based on the instruction execution information.
    Type: Grant
    Filed: January 5, 2007
    Date of Patent: February 9, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Michael Gottlieb Jensen, Ryan C. Kinter
  • Patent number: 7653804
    Abstract: A signal processing network and method for generating code for such a signal processing network are described. Pipeline blocks are each coupled to receive control signaling and associated information signaling from a scheduler. Each of the pipeline blocks respectively includes an allocation unit, a pipeline, and section controllers. The allocation unit is configured to provide a lock signal and sequence information to the section controllers in each of the pipeline blocks. The section controllers are configured to maintain in order inter-pipeline execution of the sequence responsive to the sequence information and the lock signal.
    Type: Grant
    Filed: January 26, 2006
    Date of Patent: January 26, 2010
    Assignee: Xilinx, Inc.
    Inventors: Thomas A. Lenart, Jorn W. Janneck
  • Patent number: 7647472
    Abstract: An integrated circuit (203) for use in processing streams of data generally and streams of packets in particular. The integrated circuit (203) includes a number of packet processors (307, 313, 303), a table look up engine (301), a queue management engine (305) and a buffer management engine (315). The packet processors (307, 313, 303) include a receive processor (421), a transmit processor (427) and a risc core processor (401), all of which are programmable. The receive processor (421) and the core processor (401) cooperate to receive and route packets being received and the core processor (401) and the transmit processor (427) cooperate to transmit packets. Routing is done by using information from the table look up engine (301) to determine a queue (215) in the queue management engine (305) which is to receive a descriptor (217) describing the received packet's payload.
    Type: Grant
    Filed: August 25, 2006
    Date of Patent: January 12, 2010
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Thomas B. Brightman, Andrew D. Funk, David J. Husak, Edward J. McLellan, Andrew T. Brown, John F. Brown, James A. Farrell, Donald A. Priore, Mark A. Sankey, Paul Schmitt
  • Patent number: 7634639
    Abstract: One embodiment of the present invention provides a system which avoids a live-lock state in a processor that supports speculative-execution. The system starts by issuing instructions for execution in program order during execution of a program in a normal-execution mode. Upon encountering a launch condition during the execution of an instruction (a “launch instruction”) which causes the processor to enter a speculative-execution mode, the system checks status indicators associated with a forward progress buffer. If the status indicators indicate that the forward progress buffer contains data for the launch instruction, the system resumes normal-execution mode. Upon resumption of normal-execution mode, the system retrieves the data from a data field contained in the forward progress buffer and executes the launch instruction using the retrieved data as input data for the launch instruction. The system next deasserts the status indicators.
    Type: Grant
    Filed: August 23, 2005
    Date of Patent: December 15, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Sherman H. Yip, Guarav Garg, Ketaki Rao
  • Patent number: 7624382
    Abstract: A method and system to build a control flow graph by execution of micro-sequences using hardware. Some illustrative embodiments are a processor comprising fetch logic that retrieves an instruction from a memory, the instruction being part of a program, and decode logic coupled to the fetch logic which decodes the instruction, wherein the instruction decoded by the decode logic triggers execution of a micro-sequence to enter the instruction in a control flow graph.
    Type: Grant
    Filed: July 26, 2005
    Date of Patent: November 24, 2009
    Assignee: Texas Instruments Incorporated
    Inventors: Gerard Chauvel, Jean-Philippe Lesot, Gilbert Cabillic, Mikael Peltier
  • Patent number: 7620804
    Abstract: A central processing unit (CPU) architecture with enhanced branch execution, being substantially a pipelined CPU with multiple pipelines, each pipeline having a plurality of stages, by which all instructions relating directly to a branch instruction of a code executed by the pipelined CPU are being fetched respectively by each corresponding pipeline for enabling the code to be executed without stall so that the number of cycles required to execute the code can be reduced effectively. Moreover, the multiple pipelines can save more cycles when the number of stages in one pipeline is large.
    Type: Grant
    Filed: August 10, 2005
    Date of Patent: November 17, 2009
    Assignee: NVIDIA Corporation
    Inventor: Chien-Cheng Kuo
  • Patent number: 7620801
    Abstract: A method for pseudo-randomly, without bias, selecting instructions for marking in a microprocessor. Responsive to reading an instruction from an instruction cache, an instruction tag associated with the instruction is compared against a pseudo-randomly generated value in a linear feedback shift register (LFSR). If the instruction tag matches the value in the LFSR, a mark bit, indicating the instruction is a marked instruction, is sent with the instruction to an execution unit. Responsive to an indication from the performance monitor, the value in the LFSR is incremented prior to selecting a next instruction to mark. If the value equals a predetermined prime number of increments, the value is reset to all ones to avoid any harmonics with the code stream being executed. Upon receiving the marked instruction, the execution unit combines the marked bit with a selected event and reports the marked event to the performance monitor.
    Type: Grant
    Filed: February 11, 2005
    Date of Patent: November 17, 2009
    Assignee: International Business Machines Corporation
    Inventors: James Wilson Bishop, Michael Stephen Floyd, Alexander Erik Mericas, Robert Dominick Mirabella, Dung Quoc Nguyen, Philip Lee Vitale
  • Patent number: 7606999
    Abstract: A method for merging branch information with sync points is disclosed herein. The method comprises determining whether a sync point is to be generated concurrent with a branch instruction and generating said sync point to include a program counter value and to indicate that the sync point occurred concurrent with the branch instruction.
    Type: Grant
    Filed: May 16, 2006
    Date of Patent: October 20, 2009
    Assignee: Texas Instruments Incorporated
    Inventor: Manisha Agarwala
  • Patent number: 7603542
    Abstract: An application program is executed and is easily made reusable by dividing the application program into processing units, and by creating a logical circuit in the reconfigurable hardware by switching so as to improve the processing speed at low cost. The electronic computer comprises a processing device 70. The processing device 70 includes a processor 90 having reconfigurable hardware that can create a logical circuit with a program and a memory unit 80 storing a program used to decide creation of a logical circuit of the processor 90. The electronic computer further comprises a control device 60 that executes a command specified by the processing device 70. The processor 90 issues an instruction to execute the command when the processing device 70 detects a predetermined condition. The commands include a command that replaces the program stored in the memory unit 80 and a command that switches effective program data memories when the memory unit 80 is configured by a plurality of program data memories 81.
    Type: Grant
    Filed: June 21, 2004
    Date of Patent: October 13, 2009
    Assignee: NEC Corporation
    Inventor: Takeshi Inuo
  • Patent number: 7603543
    Abstract: A method, system, and computer program product for enhancing performance of an in-order microprocessor with long stalls. In particular, the mechanism of the present invention provides a data structure for storing data within the processor. The mechanism of the present invention comprises a data structure including information used by the processor. The data structure includes a group of bits to keep track of which instructions preceded a rejected instruction and therefore will be allowed to complete and which instructions follow the rejected instruction. The group of bits comprises a bit indicating whether a reject was a fast or slow reject; and a bit for each cycle that represents a state of an instruction passing through a pipeline. The processor speculatively continues to execute a set bit's corresponding instruction during stalled periods in order to generate addresses that will be needed when the stall period ends and normal dispatch resumes.
    Type: Grant
    Filed: February 11, 2005
    Date of Patent: October 13, 2009
    Assignee: International Business Machines Corporation
    Inventors: Miles Robert Dooley, Scott Bruce Frommer, Hung Qui Le, Sheldon B. Levenstein, Anthony Saporito
  • Patent number: 7584342
    Abstract: Parallel data processing systems and methods use cooperative thread arrays (CTAs), i.e., groups of multiple threads that concurrently execute the same program on an input data set to produce an output data set. Each thread in a CTA has a unique identifier (thread ID) that can be assigned at thread launch time and that controls various aspects of the thread's processing behavior, such as the portion of the input data set to be processed by each thread, the portion of the output data set to be produced by each thread, and/or sharing of intermediate results among threads. Where groups of threads are executed in SIMD parallelism, thread IDs for threads in the same SIMD group are generated and assigned in parallel, allowing different SIMD groups to be launched in rapid succession.
    Type: Grant
    Filed: December 15, 2005
    Date of Patent: September 1, 2009
    Assignee: NVIDIA Corporation
    Inventors: Bryon S. Nordquist, John R. Nickolls, Luis I. Bacayo
  • Patent number: 7581079
    Abstract: A shared memory network for communicating between processors using store and load instructions is described. A new processor architecture which may be used with the shared memory network is also described that uses arithmetic/logic instructions that do not specify any source operand addresses or target operand addresses. The source operands and target operands for arithmetic/logic execution units are provided by independent load instruction operations and independent store instruction operations.
    Type: Grant
    Filed: March 26, 2006
    Date of Patent: August 25, 2009
    Inventor: Gerald George Pechanek