Patents Examined by William M. Treat
  • Patent number: 7506137
    Abstract: Techniques for adding more complex instructions and their attendant multi-cycle execution units with a single instruction multiple data stream (SIMD) very long instruction word (VLIW) processing framework are described. In one aspect, an initiation mechanism also acts as a resynchronization mechanism to read the results of multi-cycle execution. This multi-purpose mechanism operates with a short instruction word (SIW) issue of the multi-cycle instruction, in a sequence processor (SP) alone, with a VLIW, and across all processing elements (PEs) individually or as an array of PEs. A number of advantageous floating point instructions are also described.
    Type: Grant
    Filed: July 16, 2007
    Date of Patent: March 17, 2009
    Assignee: Altera Corporation
    Inventors: Gerald George Pechanek, David Strube, Edward A. Wolff, Edwin Franklin Barry, Grayson Morris, Carl Donald Busboom, Dale Edward Schneider
  • Patent number: 7506136
    Abstract: A controller for controlling a data processor having a plurality of processor arrays, each of which includes a plurality of processing elements, comprises a retrieval unit operable to retrieve a plurality of incoming instructions streams in parallel with one another, and a distribution unit operable to supply such incoming instruction streams to respective ones of the said plurality of processor arrays.
    Type: Grant
    Filed: January 10, 2007
    Date of Patent: March 17, 2009
    Assignee: Clearspeed Technology PLC
    Inventors: Dave Stuttard, Dave Williams, Eamon O'Dea, Gordon Faulds, John Rhoades, Ken Cameron, Phil Atkin, Paul Winser, Russell David, Ray McConnell, Tim Day, Trey Greer
  • Patent number: 7496732
    Abstract: A method and apparatus for using result-speculative data under run-ahead speculative execution is disclosed. In one embodiment, the uncommitted target data from instructions being run-ahead executed may be saved into an advance data table. This advance data table may be indexed by the lines in the instruction buffer containing the instructions for run-ahead execution. When the instructions are re-executed subsequent to the run-ahead execution, valid target data may be retrieved from the advance data table and supplied as part of a zero-clock bypass to support parallel re-execution. This may achieve parallel execution of dependent instructions. In other embodiments, the advance data table may be content-addressable-memory searchable on target registers and supply target data to general speculative execution.
    Type: Grant
    Filed: December 17, 2003
    Date of Patent: February 24, 2009
    Assignee: Intel Corporation
    Inventors: Sailesh Kottapalli, Richard W. Goe, Youngsoo Choi
  • Patent number: 7478226
    Abstract: A processing bypass directory system and method are disclosed. In one embodiment, a bypass directory tracking process includes setting bits in a bypass directory when a corresponding architectural register is written. The bits are selectively cleared in the bypass directory each cycle. The configuration of the bits is utilized to determine which stage of a bypass path processing information is at.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: January 13, 2009
    Assignee: Transmeta Corporation
    Inventors: Alexander Klaiber, Guillermo Rozas
  • Patent number: 7478227
    Abstract: A reconfigurable processor comprising a configuration memory for storing a configuration bit for at least one loop configuration; a valid information memory for storing bit information indicating whether an operation in a loop is a delay operation; and at least one processing unit for determining whether an operation in a next cycle is the delay operation by referring to the bit information transmitted from the valid information memory, and selectively performing a change and an implementation of a configuration according to the configuration bit from the configuration memory based on the determined results.
    Type: Grant
    Filed: September 25, 2006
    Date of Patent: January 13, 2009
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Soo Jung Ryu, Jeong Wook Kim, Suk Jin Kim, Hong-Seok Kim
  • Patent number: 7475224
    Abstract: Embodiments of this invention relate to sharing resources on a semiconductor between multiple functional units to reduce the number of register rename mappers and particularly to providing a way to share a CAM mapper between two distinct physical register files. In one embodiment the physical register files correspond to architectural function units. In another embodiment the physical registers correspond to thread clusters.
    Type: Grant
    Filed: January 3, 2007
    Date of Patent: January 6, 2009
    Assignee: International Business Machines Corporation
    Inventor: Michael Karl Gschwind
  • Patent number: 7457941
    Abstract: A vector processing system for executing vector instructions, each instruction defining multiple pairs of values, an operation to be executed on each of said value pairs and a scalar modifier, the vector processing system comprising a plurality of parallel processing units, each arranged to receive one of said pairs of values and to implement the defined operation on said value pair to generate a respective result; and a scalar result unit for receiving the results of the parallel processing units and for using said results in a manner defined by the scalar modifier to generate a single output value for said instruction.
    Type: Grant
    Filed: January 3, 2006
    Date of Patent: November 25, 2008
    Assignee: Broadcom Corporation
    Inventors: Stephen Barlow, Neil Bailey, Timothy Ramsdale, David Plowman, Robert Swann
  • Patent number: 7454597
    Abstract: A processor core and method of executing instructions, both of which utilizes schedules, are presented. Each of the schedules includes a sequence of instructions, an address of a first of the instructions in the schedule, an order vector of an original order of the instructions in the schedule, a rename map of registers for each register in the schedule, and a list of register names used in the schedule. The schedule exploits instruction-level parallelism in executing out-of-order instructions. The processor core includes a schedule cache that is configured to store schedules, a shared cache configured to store both I-side and D-side cache data, and an execution resource for requesting a schedule to be executed from the schedule cache. The processor core further includes a scheduler disposed between the schedule cache and the cache.
    Type: Grant
    Filed: January 2, 2007
    Date of Patent: November 18, 2008
    Assignee: International Business Machines Corporation
    Inventors: Krishnan K. Kailas, Ravi Nair, Sumedh W. Sathaye, Wolfram Sauer, John-David Wellman
  • Patent number: 7447887
    Abstract: To guarantee response time while strictly maintaining the priority specified by software, a processor (1) which is a multithread processor having a thread multiplexer (10), and an issue information buffer (ISINF). An instruction code, and issue information (isid) for instructions issued at and after the next operating cycle which is added to the instruction code, are supplied to the thread multiplexer. The issue information is valid from the second and subsequent instruction flows, and is saved temporarily in an issue information buffer. This issue information is for example the position of an operating cycle which can issue a high priority instruction, i.e., information showing a slot. The thread multiplexer issues a low priority instruction at another operating cycle at which a high priority instruction is not issued according to the issue information.
    Type: Grant
    Filed: July 7, 2006
    Date of Patent: November 4, 2008
    Assignee: Hitachi, Ltd.
    Inventor: Fumio Arakawa
  • Patent number: 7444501
    Abstract: An apparatus for recognizing a subroutine call is disclosed. The apparatus includes a circuit comprising a first input for receiving contents of a register, a second input for receiving a non-sequential change in program flow, and a third input for receiving the next sequential address after the non-sequential change in program flow. The circuit is configured to compare the next sequential address and the contents of the register to determine whether the non-sequential change in program flow is a subroutine call.
    Type: Grant
    Filed: November 28, 2006
    Date of Patent: October 28, 2008
    Assignee: QUALCOMM Incorporated
    Inventor: Michael William Morrow
  • Patent number: 7434898
    Abstract: A computer system that makes it difficult to analyze the content of a calculation. In the computer system, a power operation unit performs the following operations using the input data “a” and “b”: ga=ga mod n, gb=gb mod n. Next, in the computer system, a multiplication unit performs the following calculation using ga and gb: gab=ga×gb mod n. Next, in the computer system, a discrete logarithm calculation unit calculates ci mod pi?1 to satisfy gab=gci mod pi (i=1, 2, 3, . . . , k). Next, in the computer system, a CRT unit calculates “c” to satisfy ci=c mod pi?1 (i=1, 2, 3, . . . , k) using the Chinese remainder theorem CRT.
    Type: Grant
    Filed: March 22, 2005
    Date of Patent: October 14, 2008
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Yuichi Futa, Masami Yamamichi, legal representative, Satomi Yamamichi, legal representative, Keiko Yamamichi, legal representative, Motoji Ohmori, Hiroyuki Shizuya, Masahiro Mambo, Masato Yamamichi
  • Patent number: 7437534
    Abstract: A Very Long Instruction Word (VLIW) processor having a plurality of functional units includes a multi-ported register file that is divided into a plurality of separate register file segments, each of the register file segments being associated to one of the plurality of functional units. The register file segments are partitioned into local registers and global registers. The global registers are read and written by all functional units. The local registers are read and written only by a functional unit associated with a particular register file segment. The local registers and global registers are addressed using register addresses in an address space that is separately defined for a register file segment/functional unit pair. The global registers are addressed within a selected global register range using the same register addresses for the plurality of register file segment/functional unit pairs.
    Type: Grant
    Filed: September 19, 2006
    Date of Patent: October 14, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, William N. Joy
  • Patent number: 7434039
    Abstract: A technique for enabling a computer processor to be capable of responding with comparable efficiency to both: (i) events whose handling is independent on the state of the software machine that responds to the events, and (ii) events whose handling is dependent on the state of the software machine that responds to the events. Each time a software state machine enters a state, one or more event control registers are programmed to direct the illustrative embodiment where to resume execution when each possible event occurs. This enables the illustrative embodiment to automatically branch to the code that is appropriate for the combination of the event and the state of the software machine.
    Type: Grant
    Filed: September 7, 2006
    Date of Patent: October 7, 2008
    Assignee: Freescale Semiconductor, Inc.
    Inventor: Michael Andrew Fischer
  • Patent number: 7430612
    Abstract: A computing apparatus capable of changing, adding, and deleting function without halting. Computing apparatus (100) includes a pointer storage section (101) storing the pointer specifying the execution section executing computation, a pointer management section (102) changing the pointer stored by the pointer storage section, a data storage section (103) storing the data used for execution of the execution section, and a execution instruction section (104) causing the execution section, specified by the pointer stored by the pointer storage section (101), to executed computation by using the data stored by the data storage section (103). According to this computing apparatus, the pointer management section (102) changes the pointer concurrent with re-reading, adding, or deleting of the execution section, thereby dynamically enabling change, addition, or deletion of function.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: September 30, 2008
    Assignee: Intec Netcore, Inc.
    Inventors: Ikuo Nakagawa, Kenichi Nagami
  • Patent number: 7412591
    Abstract: An apparatus for switchable conditional execution in a VLIW processor is provided, comprising one or more decoders, one or more ALU with control units, and a register file. The decoder loads and decodes instructions from a fetch unit for decoding and sending the decoded instructions to the ALU with control units for execution. The register file stores and forwards the results on result buses to the decoders. The execution of a VLIW instruction includes a fetch stage, a decode stage, plural execution stages and a write-back stage. The invention has the features of approximate ASIC timing by conditional write-back with the compiler support for the conditional write-back, condition resolved just before write-back, software selective conditional issue and conditional write-back modes, and without hardware interlock/dependence checking for the VLIW processor.
    Type: Grant
    Filed: June 18, 2005
    Date of Patent: August 12, 2008
    Assignee: Industrial Technology Research Institute
    Inventors: Yung-Cheng Ma, Tengh-Yih Wang, Hsien-Feng Kuo, Chi-Lung Wang
  • Patent number: 7404096
    Abstract: A microprocessor to reduce leakage power of execution units or reconfigurable cells, and method thereof are provided. The microprocessor may include a control unit for assigning an instruction, a plurality of execution units connected to the control unit, and a temperature sensor unit for acquiring temperature information of each of the plurality of execution units. The control unit may select one or more execution units according to the temperature information and assigns the instruction to one or more of the plurality of execution units.
    Type: Grant
    Filed: October 5, 2004
    Date of Patent: July 22, 2008
    Assignee: Samsung Electronics Co., Ltd
    Inventor: Sung-Woo Chung
  • Patent number: 7395414
    Abstract: A method and apparatus for steering instructions dynamically, at issue time, so as to maximize the efficiency of use of execution units being shared by multiple threads being processed by an SMT processor. Resource vectors are used at issue time to redirect instructions, from threads being processed simultaneously, to shared resources for which the multiple threads are competing. The existing resource vectors for instructions that are queued for issuance are analyzed and, where appropriate, dynamically recalculated and modified for maximum efficiency.
    Type: Grant
    Filed: February 11, 2005
    Date of Patent: July 1, 2008
    Assignee: International Business Machines Corporation
    Inventors: Hung Q. Le, Dung Q. Nguyen, Brian W. Thompto, Raymond C. Yeung
  • Patent number: 7395415
    Abstract: A method and apparatus for providing a source operand for an instruction to be executed in a processor. Some embodiments may include a register file unit that has registers and a scheduler to schedule instructions. In some embodiments, the scheduler is to asynchronously receive an instruction and a source operand for that instruction, the source operand being received from the register file unit.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: July 1, 2008
    Assignee: Intel Corporation
    Inventors: Gary Hammond, Carl Scafidi, John Crawford
  • Patent number: 7395409
    Abstract: A processing architecture includes a first CPU core portion coupled to a second embedded dynamic random access memory (DRAM) portion. These architectural components jointly implement a single processor and instruction set. Advantageously, the embedded logic on the DRAM chip implements the memory intensive processing tasks, thus reducing the amount of traffic that needs to be bussed back and forth between the CPU core and the embedded DRAM chips. The embedded DRAM logic monitors and manipulates the instruction stream into the CPU core. The architecture of the instruction set, data paths, addressing, control, caching, and interfaces are developed to allow the system to operate using a standard programming model. Specialized video and graphics processing systems are developed. Also, an extended very long instruction word (VLIW) architecture implemented as a primary VLIW processor coupled to an embedded DRAM VLIW extension processor efficiently deals with memory intensive tasks.
    Type: Grant
    Filed: July 2, 2004
    Date of Patent: July 1, 2008
    Assignee: Micron Technology, Inc.
    Inventor: Eric M. Dowling
  • Patent number: 7389408
    Abstract: An instruction stream having variable length instructions with embedded constants (e.g. immediate values and displacements) is translated into a stream of operations and a corresponding stream of bit fields, enabling advantageous compact storage of the embedded constants. The operations and the compact constants are optionally stored in entries in a trace cache and/or processed by execution pipelines. The compact constants are optionally formulated as a small constant field, a pointer, or both. The pointer of a particular one of the operations optionally references one of the bit fields within a window of the operations associated with the particular operation. A full-sized constant is constructed from one or more contiguous ones of the bit fields, starting with the referenced bit field, by unpacking and uncompressing information from the contiguous bit fields. An operation optionally includes a plurality of small constant fields and pointers to specify a respective plurality of constants.
    Type: Grant
    Filed: December 1, 2006
    Date of Patent: June 17, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher P. Nelson, John Gregory Favor