Simultaneous Parallel Fetching Or Executing Of Both Branch And Fall-through Path Patents (Class 712/235)
  • Patent number: 7302556
    Abstract: A method, apparatus and computer program product are provided for implementing a level bias function for branch prediction control for generating test simulation vectors. User selected options are received for a set of constraints for generating test simulation vectors for branch conditional instructions. Current resource values for predicting a branch for a branch conditional instruction are read. A branch operand field is generated to include a set of valid values using the current resource values and based upon said user selected constraints. The branch operand field defines conditions under which a branch is taken.
    Type: Grant
    Filed: September 25, 2003
    Date of Patent: November 27, 2007
    Assignee: International Business Machines Corporation
    Inventors: John Martin Ludden, Jeremy John Salsman
  • Patent number: 7281122
    Abstract: A method and apparatus for nested control flow includes a processor having at least one context bit. The processor includes a plurality of arithmetic logic units for performing single instruction multiple data (SIMD) operations. The method and apparatus further includes a first memory device storing a plurality of instructions wherein each of the plurality of instructions includes a plurality of extra bits. The processor is operative to execute the instructions based on the extra bits and in conjunction with a context bit. The method and apparatus further includes a second memory device, such as a general purpose register operably coupled to the processor, the second memory device receiving an incrementing counter instruction upon the execution of one of the plurality of instructions. As such, the method and apparatus allows for nested control flow through a single context bit in conjunction with instructions having a plurality of extra bits.
    Type: Grant
    Filed: January 14, 2004
    Date of Patent: October 9, 2007
    Assignee: ATI Technologies Inc.
    Inventors: Norman Rubin, Andrew Gruber
  • Patent number: 7281120
    Abstract: A method and apparatus for executing instructions in a pipeline processor. The method decreases the latency between an instruction cache and a pipeline processor when bubbles occur in the processing stream due to an execution of a branch correction, or when an interrupt changes the sequence of an instruction stream. The latency is reduced when a decode stage for detecting branch prediction and a related instruction queue location have invalid data representing a bubble in the processing stream. Instructions for execution are inserted in parallel into the decode stage and instruction queue, thereby reducing by one cycle time the length of the pipeline stage.
    Type: Grant
    Filed: March 26, 2004
    Date of Patent: October 9, 2007
    Assignee: International Business Machines Corporation
    Inventors: James N. Dieffenderfer, Richard W. Doing, Brian M. Stempel, Steven R. Testa, Kenichi Tsuchiya
  • Patent number: 7260706
    Abstract: A mispredicted path side memory is configured to be coupled to a stage in an instruction pipeline. As instructions advance through the pipeline, a result from the stage is stored into the mispredicted path side memory. The result is restored from the mispredicted path side memory into a pipeline stage when a branch is mispredicted.
    Type: Grant
    Filed: August 19, 2003
    Date of Patent: August 21, 2007
    Assignee: Intel Corporation
    Inventor: Nicolas I. Kacevas
  • Patent number: 7257700
    Abstract: One embodiment of the present invention provides a system that avoids register read-after-write (RAW) hazards upon returning from a speculative-execution mode. This system operates within a processor with an in-order architecture, wherein the processor includes a short-latency scoreboard that delays issuance of instructions that depend upon uncompleted short-latency instructions. During operation, the system issues instructions for execution in program order during execution of a program in a normal-execution mode. Upon encountering a condition (a launch condition) during an instruction (a launch-point instruction), which causes the processor to enter the speculative-execution mode, the system generates a checkpoint that can subsequently be used to return execution of the program to the launch-point instruction, and commences execution in the speculative-execution mode.
    Type: Grant
    Filed: February 7, 2005
    Date of Patent: August 14, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Sherman H. Yip, Marc Tremblay
  • Patent number: 7152170
    Abstract: Processing circuits that are associated with the operation of threads in an SMT processor can be configured to operate at different performance levels based on a number of threads currently operated by the SMT processor. For example, in some embodiments according to the invention, processing circuits, such as a floating point unit or a data cache, that are associated with the operation of a thread in the SMT processor can operate in one of a high power mode or a low power mode based on the number of threads currently operated by the SMT processor. Furthermore, as the number of threads operated by the SMT operator increases, the performance levels of the processing circuits can be decreased, thereby providing the architectural benefits of the SMT processor while allowing a reduction in the amount of power consumed by the processing circuits associated with the threads. Related computer program products and methods are also disclosed.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: December 19, 2006
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Gi-ho Park
  • 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: 7134004
    Abstract: An information processing device reads, buffers, decodes and executes instructions from an instruction store portion by pipeline processing includes: an instruction reading request portion which assigns a read address to the instruction store portion, an instruction buffering portion which includes a plurality of instruction buffers which buffer an instruction sequence read from the instruction store portion; an instruction execution unit which decodes and executes instructions buffered by the instruction buffering portion. A branching instruction detection portion detects a branching instruction in the instruction sequence read from the instruction store portion. A branch target address information buffering portion includes a plurality of branch target address information buffers which, when the branching instruction detection portion has detected a branching instruction, buffer the branch target address information for generating the branch target address of the branching instruction.
    Type: Grant
    Filed: September 20, 2000
    Date of Patent: November 7, 2006
    Assignee: Fujitsu Limited
    Inventors: Shin-ichiro Tago, Taizo Sato, Yoshimasa Takebe, Yasuhiro Yamazaki, Teruhiko Kamigata, Atsuhiro Suga, Hiroshi Okano, Hitoshi Yoda
  • Patent number: 7114063
    Abstract: A branch prediction method and system are provided that accurately predict a branch condition early in an instruction pipeline of a data processing system. By accurately predicting the branch condition, the correct target instruction can be fetched early, thereby avoiding many of the inefficiencies associated with branch mispredictions. To accurately predict if a branch condition is satisfied, one or more pre-calculated status bits are stored along with a digital value that is read by the conditional branch instruction to determine if the branch condition is satisfied. By including such a status bit, the condition of the conditional branch instruction may be immediately determined, without waiting for the instruction to be processed by an arithmetic unit or the like in a subsequent pipeline stage.
    Type: Grant
    Filed: December 1, 2000
    Date of Patent: September 26, 2006
    Assignee: Unisys Corporation
    Inventors: Lawrence Richard Fontaine, John Steven Kuslak, Gary John Lucas, Michael David Pelarski
  • Patent number: 7111296
    Abstract: A parallel hardware-based multithreaded processor is described. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple program threads. The processor also includes a memory control system that has a first memory controller that sorts memory references based on whether the memory references are directed to an even bank or an odd bank of memory and a second memory controller that optimizes memory references based upon whether the memory references are read references or write references. A program thread communication scheme for packet processing is also described.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: September 19, 2006
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Debra Bernstein, Donald Hooper, Matthew J. Adiletta, William Wheeler
  • Patent number: 7082519
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Grant
    Filed: October 1, 2002
    Date of Patent: July 25, 2006
    Assignee: Ubicom, Inc.
    Inventors: Nicholas J Kelsey, Christopher J F Waters, Tibet Mimaroglu, David A Fotland
  • Patent number: 7065636
    Abstract: In one embodiment, a programmable processor is adapted to support hardware loops. The processor may include hardware such as a first set of registers, a second set of registers, a first pipeline, and a second pipeline. Furthermore, the processor may include a control unit adapted to efficiently implement the hardware when performing a hardware loop.
    Type: Grant
    Filed: December 20, 2000
    Date of Patent: June 20, 2006
    Assignees: Intel Corporation, Analog Devices, Inc.
    Inventors: Ryo Inoue, Ravi P. Singh, Charles P. Roth, Gregory A. Overkamp
  • Patent number: 7051195
    Abstract: In processing an instruction request, the invention determines whether the request is speculative or not based upon a bit field within the instruction. If the request is speculative, bus congestion and/or target memory is assessed for conditions and a decision is made, based on the conditions, as to whether or not to process the request. To facilitate the invention, certain bit fields within the instruction are encoded to identify the request as speculative or not. Additional bit fields may define a priority of a speculative request to influence the decision to process as based on the conditions. CPU architectures incorporating prefetch logic may be modified to recognize instructions encoded with speculation and priority identification fields to implement the invention in existing systems. Other logic, e.g., bus controllers and switches, may similarly process speculative requests to enhance system performance.
    Type: Grant
    Filed: October 26, 2001
    Date of Patent: May 23, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Blaine D. Gaither, Robert J Brooks
  • Patent number: 7047399
    Abstract: A computer system for executing branch instructions and a method of executing branch instructions are described. Two instruction fetchers respectively fetch a sequence of instructions from memory for execution and a sequence of instructions commencing from a target location identified by a set branch instruction in a sequence of instructions being executed. When an effect branch signal is generated, the target instructions are next executed, and the fetcher which was fetching the instructions for execution commences fetching of the target instructions. The effect branch signal is generated separately from the set branch instruction. In another aspect, the effect branch signal is generated on execution of a conditional effect branch instruction, located at the point in the instruction sequence where the branch is to be taken.
    Type: Grant
    Filed: April 25, 2001
    Date of Patent: May 16, 2006
    Assignee: SGS-Thomson Microelectronics Limited
    Inventors: Andrew C. Sturges, Nathan M. Sidwell
  • Patent number: 7010675
    Abstract: In lieu of branch prediction, a merged fetch-branch unit operates in parallel with the decode unit within a processor. Upon detection of a branch instruction within a group of one or more fetched instructions, any instructions preceding the branch are marked regular instructions, the branch instruction is marked as such, and any instructions following branch are marked sequential instructions. Within two cycles, sequential instructions following the last fetched instruction are retrieved and marked, target instructions beginning at the branch target address are retrieved and marked, and the branch is resolved. Either the sequential or target instructions are then dropped depending on the branch resolution, incurring a fixed, 1 cycle branch penalty.
    Type: Grant
    Filed: July 27, 2001
    Date of Patent: March 7, 2006
    Assignee: STMicroelectronics, Inc.
    Inventors: Faraydon O. Karim, Ramesh Chandra
  • Patent number: 7003649
    Abstract: A data processor includes at least one instruction pipeline for executing an instruction stream having branch instructions. The choices of a branch instruction, the next inline instruction or a target instruction, are made available for selection by a control bypass signal that is generated during decode of the branch instruction.
    Type: Grant
    Filed: March 8, 2002
    Date of Patent: February 21, 2006
    Assignee: Hitachi, Ltd.
    Inventor: Sivaram Krishnan
  • Patent number: 6988189
    Abstract: An embodiment of the present invention described and shown in the specification and drawing is a Ternary Content Addressable Memory (TCAM) multi-dimensional multi-way branch selector. The embodiment that is disclosed includes a wide TCAM and a pre-TCAM multi-field multi-mode comparator for coupling to a microprocessor for performing multi-way branching decisions based on multi-dimensional comparisons. It is emphasized that this abstract is provided to comply with the rule requiring an abstract which will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: January 17, 2006
    Assignee: Altera Corporation
    Inventors: James Michael O'Connor, Edward Funnekotter, Jon Huie
  • Patent number: 6976156
    Abstract: For use in a wide-issue pipelined processor, a mechanism for, and method of, reducing pipeline stalls between conditional branches and a digital signal processor (DSP) incorporating the mechanism or the method. In one embodiment, the mechanism includes: (1) a mispredict program counter (PC) generator that generates a mispredict PC value for each conditional branch instruction in a pipeline of the processor and (2) mispredict PC storage, coupled to the mispredict PC generator, that stores the mispredict PC value at least until a resolution of the conditional branch instruction occurs and makes the mispredict PC value available to a PC of the processor if the resolution results in a mispredict condition. The mispredict PC storage includes a mispredict PC queue and a number of staging registers wherein the mispredict PC queue has at least as many stages as the number of staging registers.
    Type: Grant
    Filed: October 26, 2001
    Date of Patent: December 13, 2005
    Assignee: LSI Logic Corporation
    Inventor: Hung T. Nguyen
  • Patent number: 6968447
    Abstract: A system and method forward data between processing elements. A first processing element includes an address register that stores a first memory address. A forwarding storage element is coupled to the first processing element. A second processing element, coupled to the forwarding storage element, transmits a second memory address to the forwarding storage element. The forwarding storage transmits the second memory address to the first processing element, and the first processing element compares the second memory address with the first memory address.
    Type: Grant
    Filed: April 13, 2001
    Date of Patent: November 22, 2005
    Assignee: The United States of America as represented by the Secretary of the Navy
    Inventors: Joel Zvi Apisdorf, Sam Brandon Sandbote, Michael Daniel Poole
  • Patent number: 6961847
    Abstract: In accordance with one embodiment, the invention provides a method comprising monitoring a power consumption of a processor in executing a program while running in a speculative execution mode wherein instructions are speculatively executed; and turning off said speculative execution mode if said power consumption is above a predetermined threshold. According to another embodiment the invention provides a processor comprising a speculative mode wherein instructions are speculatively executed; a non-speculative execution mode wherein instructions are executed non-speculatively; and a speculation control mechanism to selectively cause said processor to operate in said non-speculative mode based on a power consumption criterion.
    Type: Grant
    Filed: March 20, 2002
    Date of Patent: November 1, 2005
    Assignee: Intel Corporation
    Inventors: Robert L. Davies, Aaron M. Tsirkel
  • Patent number: 6950927
    Abstract: A system and method process data elements with instruction-level parallelism. An instruction buffer holds a first instruction and a second instruction, the first instruction being associated with a first thread, and the second instruction being associated with a second thread. A dependency counter counts satisfaction of dependencies of instructions of the second thread on instructions of the first thread. An instruction control unit is coupled to the instruction buffer and the dependency counter, the instruction control unit increments and decrements the dependency counter according to dependency information included in instructions. An execution switch is coupled to the instruction control unit and the instruction buffer, and the execution switch routes instructions to instruction execution units.
    Type: Grant
    Filed: April 13, 2001
    Date of Patent: September 27, 2005
    Assignee: The United States of America as represented by the Secretary of the Navy
    Inventors: Joel Zvi Apisdorf, Sam Brandon Sandbote
  • Patent number: 6928645
    Abstract: Speculative pre-computation and multithreading (SP), allows a processor to use spare hardware contexts to spawn speculative threads to very effectively pre-fetch data well in advance of the main thread. The burden of spawning threads may fall on the main thread via basic triggers. The speculative threads may also spawn other speculative threads via chaining triggers.
    Type: Grant
    Filed: March 30, 2001
    Date of Patent: August 9, 2005
    Assignee: Intel Corporation
    Inventors: Hong Wang, Jamison Collins, John P. Shen, Bryan Black, Perry H. Wang, Edward T. Grochowski, Ralph M. King
  • Patent number: 6895473
    Abstract: A data control device capable of high-quality, high-efficiency control for speeding up data processing, thus permitting improvement of the throughput of a system. Attribute analyzing unit analyzes an attribute of data, and a main memory stores setting information of the data in a region corresponding to the attribute. A highway cache memory stores the data, and also receives and transmits the data on a highway. A processor performs an operation on the data in accordance with the setting information. A data cache memory is interposed between the processor and the main memory and stores the setting information.
    Type: Grant
    Filed: November 12, 2002
    Date of Patent: May 17, 2005
    Assignee: Fujitsu Limited
    Inventors: Masao Nakano, Takeshi Toyoyama, Yasuhiro Ooba
  • Patent number: 6880073
    Abstract: Described is a data processing system and processor that provides full multiprocessor speculation by which all instructions subsequent to barrier operations in a instruction sequence are speculatively executed before the barrier operation completes on the system bus. The processor comprises a load/store unit (LSU) with a barrier operation (BOP) controller that permits load instructions subsequent to syncs in an instruction sequence to be speculatively issued prior to the return of the sync acknowledgment. Data returned is immediately forwarded to the processor's execution units. The returned data and results of subsequent operations are held temporarily in rename registers. A multiprocessor speculation flag is set in the corresponding rename registers to indicate that the value is “barrier” speculative. When a barrier acknowledge is received by the BOP controller, the flag(s) of the corresponding rename register(s) are reset.
    Type: Grant
    Filed: December 28, 2000
    Date of Patent: April 12, 2005
    Assignee: International Business Machines Corporation
    Inventors: Ravi Kumar Arimilli, John Steven Dodson, Guy Lynn Guthrie, Derek Edward Williams
  • Patent number: 6877088
    Abstract: Mechanisms and techniques operate in a computerized device to enable or disable speculative execution of instructions such as reordering of load and store instructions a multiprocessing computerized device. The mechanisms and techniques provide a speculative execution controller that can detect a multiaccess memory condition between the first and second processors, such as concurrent access to shared data pages via page table entries. This can be done by monitoring page table entry accesses by other processors. The speculative execution controller sets a value of a speculation indicator in the memory system based on the multiaccess memory condition. If the value of the speculation indicator indicates that speculative execution of instructions is allowed in the computerized device, the speculative execution controller allows speculative execution of instructions in at least one of the first and second processors in the computerized device.
    Type: Grant
    Filed: January 3, 2002
    Date of Patent: April 5, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: David Dice
  • Patent number: 6842846
    Abstract: An architecture of method for fetching microprocessor's instructions is provided to pre-fetch and pre-decode a next instruction. If the instruction pre-decoded is found a conditional branch instruction, an instruction reading-amount register is set for reading two instructions next to the current instruction in the program memory, or one is read instead if the next instruction is found an instruction other than the conditional branch one so as to waive reading of unnecessary program memory and thereby reduce power consumption.
    Type: Grant
    Filed: December 18, 2001
    Date of Patent: January 11, 2005
    Assignee: National Chiao Tung University
    Inventors: Pao-Lung Chen, Chen-Yi Lee
  • Publication number: 20040268095
    Abstract: A method to efficiently implement a null reference check has been disclosed. The method comprises executing a speculative load instruction to load data from an address, checking whether the speculative load instruction execution fails, and raising a null reference exception if the speculative load instruction fails. In one embodiment, the method includes executing a speculative load instruction to load data from an address that includes a base address, checking whether the speculative load instruction execution fails, and checking whether the base address is null if the speculative load instruction execution fails.
    Type: Application
    Filed: June 30, 2003
    Publication date: December 30, 2004
    Inventors: Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Jayashankar Bharadwaj
  • Publication number: 20040268101
    Abstract: According to some embodiments, it is determined if a register is ready to exchange data with a processing element.
    Type: Application
    Filed: June 30, 2003
    Publication date: December 30, 2004
    Inventors: Kalpesh D. Mehta, Louis A. Lippincott, Eric F. Vannerson
  • Patent number: 6823473
    Abstract: A simultaneous and redundantly threaded, pipelined processor executes the same set of instructions simultaneously as two separate threads to provide fault tolerance. One thread is processed ahead of the other thread so that the instructions in one thread are processed through the processor's pipeline ahead of the corresponding instructions from the other thread. The thread, whose instructions are processed earlier, places its uncached reads in a read queue. Subsequently, the second thread places its uncached reads in the read queue. A compare circuit periodically scans the read queue for matching uncached read instructions. If otherwise matching instructions differ in their target address, then a fault has occurred in the processing and the compare circuits initiates fault recovery. If comparison of the two instructions reveals they are identical, the compare circuit allows only a single uncached read instruction to pass to the system main memory.
    Type: Grant
    Filed: April 19, 2001
    Date of Patent: November 23, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Shubhendu S. Mukherjee
  • Publication number: 20040230778
    Abstract: One embodiment of the present invention provides a system that performs register file checkpointing to support speculative execution within a processor. During operation, the system commences speculative execution of a program from a point of speculation, at which the outcome of a long latency instruction is speculatively predicted. During this speculative execution, registers are updated by checkpointing an old value of the register, if the register has not already been checkpointed, and then updating the architectural state of the register with the new value. In this way, only registers that are updated during the speculative execution are checkpointed, instead of checkpointing all of the architectural registers prior to commencing speculative execution.
    Type: Application
    Filed: May 16, 2003
    Publication date: November 18, 2004
    Inventors: Yuan C. Chou, Santosh G. Abraham
  • Publication number: 20040225870
    Abstract: A method and apparatus for reducing wrong path execution in a speculative multi-threaded processor is disclosed. In one embodiment, a wrong path predictor may be used to enhance the selection of the right path at a branch point. In one embodiment, the wrong path predictor may include a speculative processor to produce a speculative processor execution outcome, and a branch corrector to determine whether to trust the speculative processor execution outcome. The branch corrector may be used to choose between using the speculative execution, or, instead, overriding the speculative execution with the non-speculative branch prediction.
    Type: Application
    Filed: May 7, 2003
    Publication date: November 11, 2004
    Inventors: Srikanth T. Srinivasan, Haitham H. Akkary
  • Publication number: 20040225840
    Abstract: Briefly, in accordance with an embodiment of the invention, an apparatus and method to provide multi-threaded computer processing is provided. The apparatus may include first and second processing units adapted to share a multi-bank cache memory, an instruction pre-decode unit, a multiply-accumulate unit, a coprocessor, and/or a translation lookaside buffer (TLB). The method may include sharing use of a multi-bank cache memory between at least two transaction initiators.
    Type: Application
    Filed: May 9, 2003
    Publication date: November 11, 2004
    Inventors: Dennis M. O'Connor, Michael W. Morrow, Stephen J. Strazdus
  • Patent number: 6817013
    Abstract: An optimization method and apparatus for converting source code for a program written in a programming language into machine language. The program includes a basic block as a unit to estimate an execution time for the program to be processed, generating a nested tree that represents the connections of the basic blocks using a nesting structure, when a conditional branch is accompanied by a node in the nested tree, employing the execution time estimated by using the basic blocks as units to obtain an execution time at the node of the program when a conditional branching portion of a program is directly executed and when the conditional branching portion is executed in parallel, and defining the node as a parallel execution area group when the execution time required for the parallel execution is shorter or dividing multiple child nodes of the nodes into multiple parallel execution areas.
    Type: Grant
    Filed: October 4, 2001
    Date of Patent: November 9, 2004
    Assignee: International Business Machines Corporation
    Inventors: Kunio Tabata, Hideaki Komatsu
  • Publication number: 20040215932
    Abstract: A method and logical apparatus for managing thread execution within a simultaneous multi-threaded (SMT) processor provides a mechanism for switching between single-threaded and multi-threaded execution. The processor receives an instruction specifying a transition from a single-threaded to a multi-threaded mode or vice-versa and halts execution of all threads executing on the processor. Internal control logic controls a sequence of events that ends instruction prefetching, dispatch of new instructions, interrupt processing and maintenance operations and waits for operation of the processor to complete for instructions that are in process.
    Type: Application
    Filed: April 24, 2003
    Publication date: October 28, 2004
    Applicant: International Business Machines Corporation
    Inventors: William Elton Burky, Michael Stephen Floyd, Ronald Nick Kalla, Balaram Sinharoy
  • Publication number: 20040215942
    Abstract: A system and software for improving the performance of processors by incorporating an execution unit configurable to execute a plurality of instruction streams from the plurality of threads, wherein each instruction stream includes a group instruction that operates on a plurality of data elements in partitioned fields of at least one of the registers to produce a catenated result.
    Type: Application
    Filed: January 15, 2004
    Publication date: October 28, 2004
    Applicant: MICROUNITY SYSTEMS ENGINEERING, INC.
    Inventors: Craig Hansen, John Moussouris
  • Publication number: 20040193854
    Abstract: A simultaneous multithreading processor determines, for each thread, the processing time occupied by each thread in the processing pipeline of the processor. Based on the determined processing times, a fetch unit in the processing pipeline determines the thread from which to fetch the next instruction.
    Type: Application
    Filed: January 12, 2004
    Publication date: September 30, 2004
    Inventor: Jang-Ho Cho
  • Patent number: 6799263
    Abstract: A method for prefetching instructions into cache memory using a prefetch instruction. The prefetch instruction contains a target field, a count field, a cache level field, a flush field, and a trace field. The target field specifies the address at which prefetching begins. The count field specifies the number of instructions to prefetch. The flush field indicates whether earlier prefetches should be discarded and whether in-progress prefetches should be aborted. The level field specifies the level of the cache into which the instructions should be prefetched. The trace field establishes a trace vector that can be used to determine whether the prefetching operation specified by the operation should be aborted. The prefetch instruction may be used in conjunction with a branch predict instruction to prefetch a branch of instructions that is not predicted.
    Type: Grant
    Filed: October 28, 1999
    Date of Patent: September 28, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Dale C. Morris, James R. Callister, Stephen R. Undy
  • Patent number: 6792524
    Abstract: For each predicted branch within a processor, an entry is maintained within a branch history table. The entry within the branch history table also includes an indication of the past record for that particular branch instruction, which indicates how correct the branch prediction has been in the past. When the field value associated with the predicted branch exceeds a certain threshold, indicating that the past predictions associated with that branch instruction have been at an unacceptable level, then the speculative branch instructions dispatching is suspended for that particular branch instruction. Alternative embodiments utilize a global indicator for suspending or cancelling instruction dispatch when the frequency of previous incorrect branch predictions increases beyond a preselected threshold.
    Type: Grant
    Filed: August 20, 1998
    Date of Patent: September 14, 2004
    Assignee: International Business Machines Corporation
    Inventors: Milford John Peterson, David Andrew Schroter, Albert James Van Norstrand
  • Patent number: 6792525
    Abstract: A processor is disclosed having a fetch unit that initiating interrupt service routines in redundant, unsynchronized threads. A counter is provided to track the difference between leading and trailing threads in terms of the number of instructions committed by the instruction execution circuitry. When the processor receives an external interrupt signal, the instruction fetch unit stalls the leading thread until the counter indicates that the threads are synchronized, and then simultaneously initiates an interrupt service routine in each of the threads. In a second embodiment similar to the first, the instruction fetch unit does not stall the leading thread, but rather, immediately initiates the interrupt service routine in the leading thread, and copies the difference to an interrupt counter. When the counter reaches zero, the fetch unit initiates the interrupt service routine in the trailing thread.
    Type: Grant
    Filed: April 19, 2001
    Date of Patent: September 14, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Shubhendu S. Mukherjee, Steven K. Reinhardt
  • Patent number: 6782463
    Abstract: Disclosed is a device comprising a core processing circuit coupled to a single memory array which is partitioned into at least a first portion as a cache memory of the core processing circuit, and a second portion as a memory accessible by the one or more data transmission devices through a data bus independently of the core processing circuit.
    Type: Grant
    Filed: September 14, 2001
    Date of Patent: August 24, 2004
    Assignee: Intel Corporation
    Inventors: Mark A. Schmisseur, Jeff McCoskey, Timothy J. Jehl
  • Patent number: 6772324
    Abstract: In one embodiment of the invention, a processor includes an execution pipeline to concurrently execute at least portions of threads, wherein at least one of the threads is dependent on at least another one of the threads. The processor also includes detection circuitry to detect speculation errors in the execution of the threads. In another embodiment, the processor includes thread management logic to control dynamic creation of threads from a program.
    Type: Grant
    Filed: October 8, 2002
    Date of Patent: August 3, 2004
    Assignee: Intel Corporation
    Inventors: Haitham Akkary, Kingsum Chow
  • Patent number: 6766447
    Abstract: A method of initializing random access memory during a BIOS process executed by a processor that is configured to perform speculative reading. The ROM BIOS is modified such that speculative reading is prevented during the memory initialization.
    Type: Grant
    Filed: January 25, 2000
    Date of Patent: July 20, 2004
    Assignee: Dell Products L.P.
    Inventors: Stephen D. Jue, Matthew B. Mendelow
  • Publication number: 20040128489
    Abstract: In one embodiment a thread management method identifies in a main program a set of instructions that can be dynamically activated as speculative precomputation threads. A wait/sleep operation is performed on the speculative precomputation threads between thread creation and activation, and progress of non-speculative threads is gauged through monitoring a set of global variables, allowing the speculative precomputation threads to determine its relative progress with respect to non-speculative threads.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 1, 2004
    Inventors: Hong Wang, Perry H. Wang, Ross David Weldon, Scott M. Ettinger, Hideki Saito, Milind B. Girkar, Steve Shih-Wei Liao, Mohammad R. Haghighat, Xinmin Tian, John P. Shen, Oren Gershon
  • Publication number: 20040128488
    Abstract: A method and apparatus for avoiding strand starvation is provided. The method and apparatus selectively switches from a first strand to a second strand dependent on a state of a computer system. The selectively switching is dependent on whether the second strand is alive and whether a value of a counter has reached a particular count.
    Type: Application
    Filed: December 26, 2002
    Publication date: July 1, 2004
    Inventors: Chandra M. R. Thimmannagari, Rabin A. Sugumar, Sorin Iacobovici, Robert Nuckolls
  • Publication number: 20040128448
    Abstract: Processor architectures, and in particular, processor architectures with a cache-like structure to enable memory communication during runahead execution. In accordance with an embodiment of the present invention, a system including a memory; and an out-of-order processor coupled to the memory. The out-of-order processor including at least one execution unit, at least one cache coupled to the at least one execution unit; at least one address source coupled to the at least one cache; and a runahead cache coupled to the at least one address source.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 1, 2004
    Applicant: INTEL CORPORATION
    Inventors: Jared W. Stark, Chris B. Wilkerson, Onur Mutlu
  • Publication number: 20040117606
    Abstract: The invention provides a method comprising monitoring an indicator indicating a usage of data speculatively loaded by a processor as a result of executing a speculative instruction; and selectively executing said speculative instruction when it is next encountered as an instruction pointer based on said usage. According to another embodiment, the invention provides a processor comprising a monitoring mechanism to monitor an indicator indicating a usage of data speculative loaded by said processor as a result of executing a speculative instruction; and a speculation control mechanism to selectively execute said speculative instruction when it is next encountered at an instruction pointer based on said usage.
    Type: Application
    Filed: December 17, 2002
    Publication date: June 17, 2004
    Inventors: Hong Wang, Rakesh Ghiya, John P. Shen, Ed Grochowski, Jim Fung, David Sehr, Kevin Rudd
  • Publication number: 20040111592
    Abstract: A microprocessor is provided with two queue buffers, one for storing prefetched non branch instructions and the other for storing prefetched branch target instructions, and a plurality of process stages. The process stages are divided into one last process stage and other process stages those form two different paths. Non branch instructions are processed in one path and branch target instructions are processed in other path. The paths are changed based on whether branch condition is met or not.
    Type: Application
    Filed: May 28, 2003
    Publication date: June 10, 2004
    Applicant: Renesas Technology Corp.
    Inventors: Chuma Nagao, Hiroshi Ueki
  • Patent number: 6725338
    Abstract: A method of optimizing speculative address load processing by a microprocessor includes identifying a speculative load, marking the speculative load, determining whether a miss occurs for the speculative load, and preventing use of the marked speculative load by the microprocessor if a miss occurs. A method of optimizing speculative address load processing by a microprocessor includes identifying a speculative load, marking the speculative load, inserting the marked speculative load into a load miss queue, determining whether a miss occurs for the speculative load, and preventing the load miss queue from committing the marked speculative load to cache if a miss occurs.
    Type: Grant
    Filed: November 19, 2001
    Date of Patent: April 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher A. Gomez, Wayne I. Yamamoto
  • Publication number: 20040073781
    Abstract: Techniques for token triggered multithreading in a multithreaded processor are disclosed. An instruction issuance sequence for a plurality of threads of the multithreaded processor is controlled by associating with each of the threads at least one register which stores a value identifying a next thread to be permitted to issue one or more instructions, and utilizing the stored value to control the instruction issuance sequence. For example, each of a plurality of hardware thread units of the multithreaded processor may include a corresponding local register updatable by that hardware thread unit, with the local register for a given one of the hardware thread units storing a value identifying the next thread to be permitted to issue one or more instructions after the given hardware thread unit has issued one or more instructions. A global register arrangement may also or alternatively be used.
    Type: Application
    Filed: October 11, 2002
    Publication date: April 15, 2004
    Inventors: Erdem Hokenek, Mayan Moudgill, C. John Glossner
  • Patent number: 6715065
    Abstract: In an information processing apparatus which executes micro programs having branch instructions, two micro instructions are read at once, each of which instructions comprises either a field for specifying the branch target address in the following Nth (N≧2) cycle from the reading cycle of the micro instruction, or a field for determining the termination of micro program in the following Nth (N≧2) cycle, and a control field for controlling the execution in the next cycle.
    Type: Grant
    Filed: March 31, 2000
    Date of Patent: March 30, 2004
    Assignee: Hitachi, Ltd.
    Inventors: Atsushi Ebata, Michitaka Yamamoto, Takeshi Kato