Patents Examined by Richard L. Ellis
  • Patent number: 7523296
    Abstract: An system and method for retiring instructions in a superscalar microprocessor which executes a program comprising a set of instructions having a predetermined program order, the retirement system for simultaneously retiring groups of instructions executed in or out of order by the microprocessor. The retirement system comprises a done block for monitoring the status of the instructions to determine which instruction or group of instructions have been executed, a retirement control block for determining whether each executed instruction is retirable, a temporary buffer for storing results of instructions executed out of program order, and a register array for storing retirable-instruction results.
    Type: Grant
    Filed: June 10, 2005
    Date of Patent: April 21, 2009
    Assignee: Seiko Epson Corporation
    Inventors: Johannes Wang, Sanjiv Garg, Trevor Deosaran
  • Patent number: 7383426
    Abstract: A deep-pipeline system substantially reduces the overhead of setup delays and pipeline delays by dynamically controlling access of a plurality of configuration register sets by both a host central processing unit (CPU) and the stages of the pipelines. A master configuration register set is loaded with configuration parameters by the host CPU in response to an index count provided by a setup-index counter. A plurality of other counters are employed to track timing events in the system. In one embodiment, a run-index counter provides a run-index count to the first stage of the pipeline that is propagated along the stages, enabling configuration register sets to transfer configuration parameters to the stages of the pipeline when required to enable processing of a task. In an alternative embodiment, a plurality of D flip-flops sequentially propagates a state for successive registers, so that the setup-index counter is not required.
    Type: Grant
    Filed: June 11, 2003
    Date of Patent: June 3, 2008
    Assignee: University of Washington
    Inventors: Chris Y. Chung, Ravi A. Managuli, Yongmin Kim
  • Patent number: 7380112
    Abstract: The present invention provides a processor which has a small-scale circuit and is capable of executing loop processing at a high speed while consuming a small amount of power. When the processor decodes an instruction “jloop C6,C1:C4,TAR,Ra”, the processor (i) sets a conditional flag C4 to 0 when the value of a register Ra is smaller than 0, (ii) moves the value of a conditional flag C2 to a conditional flag C1, moves the value of a conditional flag C3 to the conditional flag C2, and moves the value of the conditional flag C4 to the conditional flags C3 and C6, (iii) adds ?1 to the register Ra and stores the result into the register Ra, and (iv) branches to an address specified by a branch register (TAR). When not filled with a branch target instruction, the jump buffer will be filled with a branch target instruction.
    Type: Grant
    Filed: March 22, 2004
    Date of Patent: May 27, 2008
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventors: Hazuki Okabayashi, Tetsuya Tanaka, Taketo Heishi, Hajime Ogawa
  • Patent number: 7366879
    Abstract: A method and apparatus are provided for entering and exiting multiple threads within a multithreaded processor. A state machine is maintained to indicate a respective status of an associated thread of multiple threads being executed within a multithreaded processor. A change of status for a first thread within the multithreaded processor is detected and, responsive to the change of status for the first thread within the multithreaded processor, a partitioning scheme for the functional unit is altered to service a second thread, but not the first thread, within the multithreaded processor when the change of the status of the first thread comprises a transition from an active state to an inactive state.
    Type: Grant
    Filed: September 27, 2004
    Date of Patent: April 29, 2008
    Assignee: Intel Corporation
    Inventors: Dion Rodgers, Darrell Boggs, Amit Merchant, Rajesh Kota, Rachel Hsu
  • Patent number: 7360060
    Abstract: A processor (e.g., a co-processor) comprising a decoder adapted to decode instructions from a first instruction set in a first mode and a second instruction set in a second mode. A pre-decoder coupled to the decoder, and operates in parallel with the decoder, determines the mode of operation for the decode logic for subsequent instructions. In particular, the decode logic operating in a current mode concurrently with the pre-decoder detecting a predetermined prefix, which indicates a subsequent instruction is a system command. Upon detecting this predetermined prefix, the decoder decodes the system command accordingly.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: April 15, 2008
    Assignee: Texas Instruments Incorporated
    Inventors: Gerard Chauvel, Serge Lasserre
  • Patent number: 7360070
    Abstract: An exceptional situation manager associates exceptional situations with nonstandard values and desired responses to perform when specific exceptional situations occur during computations. A desired response can comprise returning an associated nonstandard value, performing an associated nonstandard action or returning a default value. The exceptional situation manager ascertains the occurrence of exceptional situations during computations. Responsive to such an occurrence, the exceptional situation manager determines the desired response associated with the exceptional situation that occurred, and executes the desired response.
    Type: Grant
    Filed: August 13, 2003
    Date of Patent: April 15, 2008
    Assignee: Apple Inc.
    Inventor: Samuel A. Figueroa
  • Patent number: 7353364
    Abstract: An apparatus and method for sharing a functional unit. In one embodiment, a processor may include instruction fetch logic configured to issue instructions, and a first functional unit configured to execute instructions issued from the instruction fetch logic and to execute operations issued from a second functional unit, where the operations are issued asynchronously with respect to the instructions. The second functional unit may be configured to provide one or more operands corresponding to a given operation to the first functional unit. The first functional unit may include temporary result storage configured to store a result of the given operation while the first functional unit executes a given instruction issued from the instruction fetch logic, and the first functional unit may be further configured to use the stored result as an operand of an operation issued subsequently to the given operation.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: April 1, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Jike Chong, Christopher Olson, Gregory F. Grohoski
  • Patent number: 7350054
    Abstract: An arrayed processor has a plurality of processing elements each having a plurality of types of arithmetic logic units for processing data having different numbers of bits from one another. The arrayed processor divides a series of processing data of various numbers of bits supplied from an external circuit into data of more bits and data of fewer bits. These data are processed in parallel by the arithmetic logic units of the processing elements. The efficiency of arrayed processor can be increased, since small-scale processing operations are individually performed by the processing elements and connections between the processing elements are made according to object codes.
    Type: Grant
    Filed: August 22, 2002
    Date of Patent: March 25, 2008
    Assignee: NEC Corporation
    Inventors: Koichiro Furuta, Taro Fujii, Masato Motomura
  • Patent number: 7343474
    Abstract: In one embodiment, a processor comprises a plurality of pipeline stages and a first circuit operable at a first pipeline stage of the plurality of pipeline stages. The first circuit is configured to maintain a plurality of program counters (PCs), each of which corresponds to one of a plurality of threads that the processor is configured to have concurrently in process with respect to the plurality of pipeline stages. The first circuit is configured to provide a first PC to a second pipeline stage of the plurality of pipeline stages. The first PC is derived from one of the plurality of PCs that corresponds to a first thread of the plurality of threads, and a first instruction entering the second pipeline stage is from the first thread.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: March 11, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul J. Jordan, Robert T. Golla, Jama I. Barreh
  • Patent number: 7343472
    Abstract: A processor includes an instruction memory, arithmetic logic unit, finite field arithmetic unit, at least one digital storage device, and an instruction decoder. The instruction memory temporarily stores an instruction that includes at least one of: an operational code, destination information, and source information. The instruction decoder is operably coupled to interpret the instruction to identify the arithmetic logic unit and/or the finite field arithmetic unit to perform the operational code of the corresponding instruction. The instruction decoder then identifies at least one destination location within the digital storage device based on the destination information contained within the corresponding instruction. The instruction decoder then identifies at least one source location within the digital storage device based on the source information of the corresponding instruction.
    Type: Grant
    Filed: June 11, 2003
    Date of Patent: March 11, 2008
    Assignee: Broadcom Corporation
    Inventors: Joshua Porten, Won Kim, Scott D. Johnson, John R. Nickolls
  • Patent number: 7343478
    Abstract: The present apparatus reduces hardware resources and improves data read throughput in an information processing apparatus employing the out-of-order instruction execution method. The apparatus includes: an arithmetic operation unit which executes a window switching instruction and an instruction relating to data stored in the current register or data held in the replacing buffer; and a control unit which transfers, if a window switching instruction is decoded at execution of the window switching instruction by the arithmetic operation unit, data of the register window which is to be specified by the current window pointer upon completion of execution of the window switching instruction, to the replacing buffer.
    Type: Grant
    Filed: January 18, 2006
    Date of Patent: March 11, 2008
    Assignee: Fujitsu Limited
    Inventors: Ryuji Kan, Hideo Yamashita, Toshio Yoshida
  • Patent number: 7334009
    Abstract: A microprocessor that includes a random number generator (RNG) and an instruction for storing random data bytes generated by the generator. The RNG includes multiple buffers for buffering the random bytes and counters associated with each buffer for keeping a count of the number of bytes in each buffer. The instruction specifies a destination for the bytes to be stored to. In one embodiment, the number of bytes written to memory is variable and is the number of bytes available when the instruction is executed; in another, the instruction specifies the number. If variable, the instruction atomically stores a count specifying the number of valid bytes actually stored. In one embodiment the destination is a location in system memory. The count may be stored to memory with the bytes; or the count may be stored to a user-visible register. An x86 REP prefix may be used.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: February 19, 2008
    Assignee: IP-First, LLC
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 7334110
    Abstract: In a computer system having a scalar processing unit and a vector processing unit, wherein the vector processing unit includes a vector dispatch unit, a system and method of decoupling operation of the scalar processing unit from that of the vector processing unit, the method comprising sending a vector instruction from the scalar processing unit to the vector dispatch unit, wherein sending includes marking the vector instruction as complete if the vector instruction is not a vector memory instruction and if the vector instruction does not require scalar operands, reading a scalar operand, wherein reading includes transferring the scalar operand from the scalar processing unit to the vector dispatch unit, predispatching the vector instruction within the vector dispatch unit if the vector instruction is scalar committed, dispatching the predispatched vector instruction if all required operands are ready, and executing the dispatched vector instruction as a function of the scalar operand.
    Type: Grant
    Filed: August 18, 2003
    Date of Patent: February 19, 2008
    Assignee: Cray Inc.
    Inventors: Gregory J. Faanes, Steven L. Scott, Eric P. Lundberg, William T. Moore, Jr., Timothy J. Johnson
  • Patent number: 7334116
    Abstract: A bit manipulation processor, system and method are provided which reduces the number of operations performed during data processing. An additional register is used as a buffer. The buffer has a bit length which is preferably greater than the address boundaries in a memory or register address. A bitstream can be processed using the buffer by itself or in combination with a standard register, depending upon the particular function to be implemented.
    Type: Grant
    Filed: October 6, 2004
    Date of Patent: February 19, 2008
    Assignee: Sony Computer Entertainment Inc.
    Inventor: Eiji Iwata
  • Patent number: 7331041
    Abstract: A method for determining a process to use for converting instructions in a target instruction set to instructions in a host instructions set including the steps of executing code morphing software including an interpreter and a translator to generate host instructions from target instructions, detecting at intervals whether the interpreter or the translator is executing, increasing a count if the interpreter is executing and decreasing the count if the translator is executing, and changing from interpreting to translating a sequence of target instructions when the count reaches a selected maximum.
    Type: Grant
    Filed: March 10, 2005
    Date of Patent: February 12, 2008
    Assignee: Transmeta Corporation
    Inventors: Linus Torvalds, H. Peter Anvin
  • Patent number: 7321964
    Abstract: A microprocessor may include a dispatch unit configured to dispatch load and store operations and a load store unit configured to store information associated with load and store operations dispatched by the dispatch unit. The load store unit includes a STLF (Store-to-Load Forwarding) buffer that includes a plurality of entries. The load store unit is configured to generate an index dependent on at least a portion of an address of a load operation, to use the index to select one of the plurality of entries, and to forward data included in the one of the plurality of entries as a result of the load operation.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: January 22, 2008
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Michael A. Filippo, James K. Pickett
  • Patent number: 7313677
    Abstract: Apparatus for processing data under control of data processing instructions specifying data processing operations, said apparatus comprising: a first execution mechanism operable to execute a first set of data processing instructions; a second execution mechanism operable to execute a second set of data processing instructions, said first set of data processing instructions overlapping with said second set of data processing instructions such that one or more data processing instructions are executable by either said first execution mechanism or said second execution mechanism; and an execution mechanism selector operable to pseudo randomly selected either said first execution mechanism or said second execution mechanism to execute one or more data processing instructions that are executable by either said first execution mechanism or said second execution mechanism.
    Type: Grant
    Filed: October 6, 2003
    Date of Patent: December 25, 2007
    Assignee: Arm Limited
    Inventor: Frederic Claude Marie Piry
  • Patent number: 7305543
    Abstract: All pointer-based accesses require first that the value contained in a pointer register to be read and then that value be used as an address to the appropriate region in random access memory (RAM). As implemented today, this requires two memory read access cycles, each of which takes at least one clock cycle and therefore this implementation does not allow single cycle operation. In accordance with an embodiment of the invention, when an access is performed to pointer memory to read the contents of a pointer, it is the shadow memory that is actually read and that returns the pointer value. Since the shadow memory is made up of pointer registers, a read access involves multiplexing out of appropriate data for the pointer address from these pointer registers to form a target pointer address.
    Type: Grant
    Filed: July 27, 2004
    Date of Patent: December 4, 2007
    Assignee: NXP B.V.
    Inventors: Gregory Goodhue, Ata Khan, Zhimin Ding
  • Patent number: 7302552
    Abstract: A processor is described including a plurality of data path elements which independently perform in parallel different data processing operations. Program instructions are provided which are decoded to generate control signals for controlling the data path elements. Multiple instruction sets are supported with the same data processing operation to be performed by the same data path element being differently encoded within different instructions of different instruction sets. This enables code compaction when little parallelism may be achieved and full parallelism to be specified when this is possible.
    Type: Grant
    Filed: October 14, 2004
    Date of Patent: November 27, 2007
    Assignee: Arm Limited
    Inventors: Jan Guffens, Ludwig Callewaert, Koenraad Van Nieuwenhove
  • Patent number: 7296141
    Abstract: A first tag is assigned to a branch instruction. Dependent on the type of branch instruction, a second tag is assigned to an instruction in the branch delay slot of the branch instruction. The second tag may equal the first tag if the branch delay slot is unconditional for that branch, and may equal a different tag if the branch delay slot is conditional for the branch. If the branch is mispredicted, the first tag is broadcast to pipeline stages that may have speculative instructions, and the first tag is compared to tags in the pipeline stages. If the tag in a pipeline stage matches the first tag, the instruction is not cancelled. If the tag mismatches, the instruction is cancelled.
    Type: Grant
    Filed: August 18, 2004
    Date of Patent: November 13, 2007
    Assignee: Broadcom Corporation
    Inventor: David A. Kruckemyer