EP0730221B1 - Processeur superscalaire comprenant des fenêtres de registres multiples et génération d'adresses de réponse spéculatives - Google Patents

Processeur superscalaire comprenant des fenêtres de registres multiples et génération d'adresses de réponse spéculatives Download PDF

Info

Publication number
EP0730221B1
EP0730221B1 EP96103172A EP96103172A EP0730221B1 EP 0730221 B1 EP0730221 B1 EP 0730221B1 EP 96103172 A EP96103172 A EP 96103172A EP 96103172 A EP96103172 A EP 96103172A EP 0730221 B1 EP0730221 B1 EP 0730221B1
Authority
EP
European Patent Office
Prior art keywords
program counter
instruction
return
register
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
EP96103172A
Other languages
German (de)
English (en)
Other versions
EP0730221A3 (fr
EP0730221A2 (fr
Inventor
Akira Katsuno
Sunil W. Savkar
Michael C. Shebanow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of EP0730221A2 publication Critical patent/EP0730221A2/fr
Publication of EP0730221A3 publication Critical patent/EP0730221A3/fr
Application granted granted Critical
Publication of EP0730221B1 publication Critical patent/EP0730221B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Definitions

  • the present invention relates to methods and apparatuses for controlling instruction flow in data processors and, in particular, for reducing the time for return from program flow changes such as the execution of subroutine calls and other similar instruction codes using return prediction.
  • EP-A-0 433 709 relates to a subroutine return prediction mechanisms in response to an entry of a subroutine return instruction in a computer pipeline that has a ring pointer counter and a ring buffer coupled to the ring pointer counter.
  • the ring pointer counter contains a ring pointer that is changed when either a subroutine call instruction or return instruction enters the computer pipeline.
  • the ring buffer has buffer locations which store a value present at it's input into the buffer locations pointed to by the ring pointer when a subroutine call instruction enters the pipeline.
  • the ring buffer provides a value from the buffer location pointed to by the ring pointer when a subroutine return instruction enters the computer pipeline, this provided value being the predicted subroutine return address.
  • branch direction taken or not-taken
  • branch address target address or address next to the branch instruction
  • An instruction set within a data processor usually contains a multitude of transfers of that instruction flow from a current pointer and a program counter located in the instruction flow to a new location.
  • the new location is the start of a sub-routine call or a piece of code that will be executed, there will be a need to return to the original instruction set from where the call was made.
  • the subroutine is a short sequence of code to which the instruction flow calls on to execute and then returns to the main location of the code sequence.
  • the instruction When the instruction leaves the main code sequence from a first location on the program counter, it jumps to a second location on the program counter where the start of the desired sub-routine is designated. Once the sub-routine call is complete, the instruction flow must jump back, not to the first location, but to a third location which designates the next instruction in the main code sequence. Jumping back to the first location simply executes the same sub-routine call such as when a retry is needed for a default loop.
  • the procedure of making the call to transfer the instruction flow and then waiting for its return to the main code sequence is one of the limiting factors on the execution speed of the microprocessor.
  • the return is controlled through a register value which is read.
  • This value is stored to a dedicated register of some type,depending on the microprocessor architecture. It may store a value equivalent to the program counter at the first location or to another location already advanced to the next instruction. This value functions as the return address stored in the register file which can be any file specifically stated to hold the location of the return from the program flow change.
  • the execution is stalled waiting for that register to be read, waiting for that return address to be put back into the program counter and waiting to continue the program execution.
  • the present invention provides a superscalar processor comprising the features of claim 1.
  • Preferred embodiments of the invention are defined in claims 2 and 3.
  • the present invention contemplates the acceleration of control transfer instructions for the microprocessor in order to speed up the overall execution capability of the computer.
  • FIG. 1 is a block diagram of an embodiment of the present invention, including a fetch program counter 10, an instruction memory 12, a plurality of issue latches 14, and a decoder register file 16 of the issue unit.
  • Fetch program counter 10 receives an input fetch program count indication FPC_D, and produces an output fetch program count indication which it provides as an input to instruction memory 12, according to the present invention.
  • instruction memory 12 produces a count of instructions fetched, FETCH_CNT, as well as providing fetched instructions in accordance with the fetch program count to issue latches 14.
  • Issue latches 14 in turn provide an indication of the number of valid instructions, NV_Q, in the issue latches 14, and further provide issued instructions to decoder register file issue unit 16 which is coupled in turn to an execution unit 36 and a register file 38.
  • PC_Q means the current program counter (PC) value in the issue cycle
  • FPC_Q means the fetch program counter value (FPC) in the current cycle
  • NV_D is the number of instructions which will be valid in the next cycle.
  • a program counter 18 clocks once per cycle, responding to an input program count signal from multiplexer 34, PC_D, with an output program count signal, PC_Q.
  • the program count provides an indication of the architectural device operating in the current cycle.
  • PC_D is the value of the next program count (PC); and
  • FPC_D is the value of the next fetch program count (FPC).
  • a specific embodiment is illustrated with a current window pointer 20 indexing into a return prediction table 22.
  • the current window pointer 20 identifies one or more register windows. Register windows are used when executing a control transfer, such as a subroutine. During a subroutine call, a save at the top of a subroutine call is performed and changes to a new register window. As a result, several free register windows are used without changing or modifying the state of the previous routine that called that subroutine.
  • the SPARC V9 architecture uses the call register windows which, at the beginning of a sub-routine call, does a change of windows.
  • the original set of registers which were being used for the original program, from whence the call came, are reserved. They are not available for use. They are stored off and instead a swap is performed to a new window of values which are available to read and write.
  • the hardware supports a large number of registers even though only a small number of registers are addressed at any one time. In the SPARC V9 architecture for example, registers are defined with five bits, allowing access to thirty-two logically addressable registers at any one time.
  • the current window pointer explicitly functions by pointing into a window of address values which are stored off.
  • the inventive embodiment receives a call instruction or a JUMP call instruction and decodes during fetch time. One of these instructions issues into the microprocessor and simultaneously writes the instruction to the register value of the current window. For the SPARC V9 architecture, this is register 15.
  • the value based on the current window pointer is written into the file that is indexed by the current window pointer.
  • the current window pointer is 2-bits in size and, accordingly, indexes explicitly to 4 distinct locations.
  • a return such as, but not limited to a JUMP return, a restore, or a retry
  • the current window pointer restores that program counter in that location that has been written into the return prediction table which is addressable.
  • the current window pointer can have more than 2-bits. Accordingly, with 8 register windows there would be 3 bits and correspondingly more with larger numbers of register windows.
  • Performing a save or restore moves back to another register window.
  • DEC decrements
  • the current window pointer usually does not jump from 00 to 11, except in performing back-ups or the like. For a SPARC V9 architecture which speculatively executes instructions, if instructions were speculated incorrectly at some prior time at location X minus delta, the execution backs up to this prior location. If the current pointer gets backed up, the program jumps value.
  • the index and the return prediction table are separate from the register file itself.
  • the return prediction table is used to speculatively execute the return. In situations in which the return value is incorrect, it is pushed onto the stack.
  • the FPC fetch program counter is a speculative PC. That value back is fed back into the FPC for use in fetching instructions into the issue latches. When a value is popped off to speculate with, it will be stored in a watch point register 24. The watch point register is pointed at once the actual return is finished execution.
  • the watchpoint register and method is preferred for use with the present invention, but conventional techniques are also suitable.
  • the watchpoint register can watch a plurality of predicted branch or jump-and-link instructions simultaneously. Second, it can grab a plurality of condition-code data or calculated jump-and-link addresses, for which predicted branch or jump-and-link instructions are waiting, by simultaneously monitoring or watching data forward buses from a plurality of execution units. Third, it can generate a plurality of misprediction signals of branch or jump-and-link instructions simultaneously. Fourth, it can store an alternate branch address or a predicted jump-and-link address in a single shared storage area. Fifth, it sends the correct branch address or jump-and-link address for instruction fetch when misprediction is detected by watchpoint.
  • the watchpoint registers are multipurpose. They check branch predictions, JMPL predictions, and supply a correct branch/JMPL address for refetching instructions after a backup when the original prediction was incorrect. They are called “watchpoint” registers because they sit on data forward distribution buses and monitor results from the several execution units. There are usually watchpoint registers corresponding to each checkpoint.
  • the function of the return prediction table is to provide speculative values of what the return address will be prior to the finish of execution of the instruction.
  • a comparison is made through a comparator 26 to assure that the predicted value was actually correct.
  • the comparator 26 leads into a control logic 28 which is one of the feeds into a multiplexer 30. If the comparison is incorrect, the program flow will back up and the correct return value is routed eventually to the FPC and to the PC.
  • a single window register 32 is used when there is no need to increment or decrement the values. Usually this embodiment is used for the last PC that is called. Since the calls come in pairs with a return, this embodiment is useful with that final call.
  • the present invention uses an indexed return prediction table for accelerating the fetch of instructions for the return from any type of program flow change or control transfer. As a result, the execution of the system or apparatus hardware is accelerated.
  • the present invention fetches a program flow change and determines if it contains a return function. As a result, the present invention stores the PC value for the return address from a program flow change in the return prediction table indexed by the current window pointer.
  • the current window pointer may be defined by the hardware itself.
  • the fetch program counter 10 and the PC 18 are updated in the case of a return from program flow change by indexing with the current window pointer into the return prediction table.
  • instructions such as a subroutine call,which indicate a program flow change are fetched and executed by the system. It is after fetching of the instruction that the PC value is written. Usually, although not necessarily, this occurs while issuing the instruction to the remainder of the system. In the preferred embodiment, the storing of the PC during the call will occur during the issue of the call.
  • a comparison is performed to determine whether a correct or incorrect value was predicted. If an incorrect value was predicted, a new value is updated and the program flow is backed-up to the location prior to the execution of the incorrect program change.
  • the FPC is updated when the instructions are fetched and when the instructions move to the issue latches.
  • the PC is updated after the FPC and usually during issue or when the instructions are executed.
  • the present invention fetches instructions ahead of the location where the instructions will actually be executed in the code sequence. In order to speed up the execution, the present invention fetches from a predicted location instead of waiting for the return. Otherwise, the return instruction would have to be executed before reading the contents of that register which previously was written with the result of the return. In order to read that register, the instruction has to be executed normally.
  • the value is known once the register file is read. While staying ahead of the program execution, the issue and the whole register file reprocess, store that same value that's written into the register file and restore that value onto a stock. When a program change is issued, the value is taken and run through the register file and pushed onto a stock that is accessible by the fetch program counter logic.
  • the fetch program logic will see a return instruction and perform the return in particular. Now, when it sees this specific instruction, it realizes that this instruction is going to get results from the register files at sometime X plus delta, or at a third location in the main code sequence. That same value is stored onto the stack and the return is synchronized. For example, if there are three returns in succession and none have been performed, the first return will always be with respect to the last jump issued. Therefore, the top of the stack is always matched to the first jump return performed. In the event of performing a jump return, the stack is popped and the value is taken off the PC and placed into the FPC at the appropriate moment. This continues along well in advance of the completion of the return instruction itself.
  • the present invention is useable with many processor applications and instruction set descriptions other than what is illustrated herein.
  • the use of the term counter window pointer can include using any pointer with the present invention.
  • the term return prediction table can include stacks as well as single registers.
  • the present invention is useable in any application wherein there is a return from a program flow change or from a controlled transfer including, but not limited to, the retry of a default condition.
  • the present invention contemplates the return to either the original location in the main code sequence or to a location predetermined by a hardware or software change.

Claims (3)

  1. Processeur superscalaire qui exécute concurremment une pluralité d'instructions, ce processeur comprenant :
    une pluralité de modules d'exécution (36) ;
    un compteur de programme (18) qui identifie une instruction pour exécution par les modules d'exécution ;
    un ficher de registre (38) comprenant une pluralité de fenêtres de registre, chacune des fenêtres de registre pouvant être utilisée pour un appel de sous-programme séparé ;
    un pointeur de fenêtre courante (20) qui sélectionne l'une des fenêtres de registre ;
    caractérisé par :
    une table de prédiction de retour (22) qui, en réponse à un changement de déroulement de programme contenant une instruction de retour pour un sous-programme, fournit une valeur spéculative du compteur de programme indicative d'une adresse de retour de l'instruction correspondant à la fenêtre de registre sélectionnée, avant achèvement de l'exécution dudit sous-programme en réponse à la valeur du pointeur de fenêtre courante ;
    un registre de point de surveillance (24) pour mémoriser la valeur spéculative du compteur de programme, dans lequel le registre de point de surveillance surveille au moins une instruction de branchement prédite et au moins un bus de distribution directe de données d'un module d'exécution ; et
    un compteur de programme de recherche (10) agissant en réponse à la valeur spéculative du compteur de programme pour mémoriser une instruction pour exécution ultérieure à l'instruction identifiée par le compteur de programme.
  2. Processeur superscalaire selon la revendication 1, comprenant en outre un comparateur (26) qui compare la valeur de compteur de programme spéculative à une adresse de retour réelle pour déterminer si la valeur spéculative du compteur de programme est correcte.
  3. Processeur superscalaire selon la revendication 1 ou 2, comprenant en outre une logique de commande (28) agissant en réponse au comparateur pour mémoriser une valeur correcte du compteur de programme dans le compteur de programme si la valeur spéculative du compteur de programme est incorrecte.
EP96103172A 1995-03-03 1996-03-01 Processeur superscalaire comprenant des fenêtres de registres multiples et génération d'adresses de réponse spéculatives Expired - Lifetime EP0730221B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39828495A 1995-03-03 1995-03-03
US398284 1995-03-03

Publications (3)

Publication Number Publication Date
EP0730221A2 EP0730221A2 (fr) 1996-09-04
EP0730221A3 EP0730221A3 (fr) 1997-05-14
EP0730221B1 true EP0730221B1 (fr) 2002-10-09

Family

ID=23574784

Family Applications (1)

Application Number Title Priority Date Filing Date
EP96103172A Expired - Lifetime EP0730221B1 (fr) 1995-03-03 1996-03-01 Processeur superscalaire comprenant des fenêtres de registres multiples et génération d'adresses de réponse spéculatives

Country Status (4)

Country Link
US (1) US5896528A (fr)
EP (1) EP0730221B1 (fr)
AT (1) ATE225958T1 (fr)
DE (1) DE69624158T2 (fr)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446224B1 (en) 1995-03-03 2002-09-03 Fujitsu Limited Method and apparatus for prioritizing and handling errors in a computer system
US6012137A (en) * 1997-05-30 2000-01-04 Sony Corporation Special purpose processor for digital audio/video decoding
US6157999A (en) * 1997-06-03 2000-12-05 Motorola Inc. Data processing system having a synchronizing link stack and method thereof
US6115777A (en) * 1998-04-21 2000-09-05 Idea Corporation LOADRS instruction and asynchronous context switch
US6353881B1 (en) * 1999-05-17 2002-03-05 Sun Microsystems, Inc. Supporting space-time dimensional program execution by selectively versioning memory updates
US20040250054A1 (en) * 2003-06-09 2004-12-09 Stark Jared W. Line prediction using return prediction information
US7555633B1 (en) 2003-11-03 2009-06-30 Advanced Micro Devices, Inc. Instruction cache prefetch based on trace cache eviction
US8069336B2 (en) * 2003-12-03 2011-11-29 Globalfoundries Inc. Transitioning from instruction cache to trace cache on label boundaries
US7197630B1 (en) 2004-04-12 2007-03-27 Advanced Micro Devices, Inc. Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation
US8190863B2 (en) 2004-07-02 2012-05-29 Intel Corporation Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
US7904789B1 (en) * 2006-03-31 2011-03-08 Guillermo Rozas Techniques for detecting and correcting errors in a memory device
US8935574B2 (en) 2011-12-16 2015-01-13 Advanced Micro Devices, Inc. Correlating traces in a computing system
US8832500B2 (en) 2012-08-10 2014-09-09 Advanced Micro Devices, Inc. Multiple clock domain tracing
US8959398B2 (en) 2012-08-16 2015-02-17 Advanced Micro Devices, Inc. Multiple clock domain debug capability
US9513924B2 (en) * 2013-06-28 2016-12-06 Globalfoundries Inc. Predictor data structure for use in pipelined processing
US9619230B2 (en) 2013-06-28 2017-04-11 International Business Machines Corporation Predictive fetching and decoding for selected instructions
US10534609B2 (en) 2017-08-18 2020-01-14 International Business Machines Corporation Code-specific affiliated register prediction
US10908911B2 (en) 2017-08-18 2021-02-02 International Business Machines Corporation Predicting and storing a predicted target address in a plurality of selected locations
US10719328B2 (en) 2017-08-18 2020-07-21 International Business Machines Corporation Determining and predicting derived values used in register-indirect branching
US10884747B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Prediction of an affiliated register
US11150904B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Concurrent prediction of branch addresses and update of register contents
US10884745B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Providing a predicted target address to multiple locations based on detecting an affiliated relationship
US10884746B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Determining and predicting affiliated registers based on dynamic runtime control flow analysis
US11150908B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US11061575B2 (en) 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US4822061A (en) * 1987-10-02 1989-04-18 K-Line Industries, Inc. Valve seal retainer
JPH01159731A (ja) * 1987-10-02 1989-06-22 Computer Consoles Inc 命令処理装置においてルーチン間のアーギュメントの通信を維持するための機構
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5159680A (en) * 1988-07-28 1992-10-27 Sun Microsystems, Inc. Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5179673A (en) * 1989-12-18 1993-01-12 Digital Equipment Corporation Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
US5276882A (en) * 1990-07-27 1994-01-04 International Business Machines Corp. Subroutine return through branch history table
US5226142A (en) * 1990-11-21 1993-07-06 Ross Technology, Inc. High performance register file with overlapping windows
JP3182438B2 (ja) * 1991-10-28 2001-07-03 株式会社日立製作所 データプロセッサ
US5313634A (en) * 1992-07-28 1994-05-17 International Business Machines Corporation Computer system branch prediction of subroutine returns
US5604877A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for resolving return from subroutine instructions in a computer processor
EP0676691A3 (fr) * 1994-04-06 1996-12-11 Hewlett Packard Co Dispositif pour la sauvegarde et la restauration de registres dans un calculateur numérique.
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support

Also Published As

Publication number Publication date
EP0730221A3 (fr) 1997-05-14
ATE225958T1 (de) 2002-10-15
US5896528A (en) 1999-04-20
DE69624158D1 (de) 2002-11-14
EP0730221A2 (fr) 1996-09-04
DE69624158T2 (de) 2003-06-05

Similar Documents

Publication Publication Date Title
EP0730221B1 (fr) Processeur superscalaire comprenant des fenêtres de registres multiples et génération d'adresses de réponse spéculatives
EP0365188B1 (fr) Méthode et dispositif pour code de condition dans un processeur central
US5467473A (en) Out of order instruction load and store comparison
EP0399762B1 (fr) Architecture de calculateur à délivrance multiple des instructions
EP0751458B1 (fr) Procédé et dispositif de suivi d'allocation des resources dans un processeur
US4875160A (en) Method for implementing synchronous pipeline exception recovery
US5796997A (en) Fast nullify system and method for transforming a nullify function into a select function
US5051896A (en) Apparatus and method for nullifying delayed slot instructions in a pipelined computer system
US6079014A (en) Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5006980A (en) Pipelined digital CPU with deadlock resolution
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US7526583B2 (en) Method and apparatus to launch write queue read data in a microprocessor recovery unit
US5535346A (en) Data processor with future file with parallel update and method of operation
US20060248319A1 (en) Validating branch resolution to avoid mis-steering instruction fetch
EP0437044A2 (fr) Système de traitement de données avec dispositif de marquage d'instructions
US7076640B2 (en) Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions
JPH0776921B2 (ja) データ処理方法及び装置
US20080215864A1 (en) Method and apparatus for instruction pointer storage element configuration in a simultaneous multithreaded processor
EP1050804A1 (fr) Exécution de boucles d'instructions
EP0376004A2 (fr) Mise en séquence d'opérations avec un pipeline de longueur variable
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
US8977837B2 (en) Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes
EP1974254B1 (fr) Sélection conditionnelle précoce d'un opérande
US5943494A (en) Method and system for processing multiple branch instructions that write to count and link registers
JPH06242952A (ja) スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

RIN1 Information on inventor provided before grant (corrected)

Inventor name: SHEBANOW, MICHAEL C.

Inventor name: SAVKAR, SUNIL W.

Inventor name: KATSUNO, AKIRA

RIN1 Information on inventor provided before grant (corrected)

Inventor name: SHEBANOW, MICHAEL C.

Inventor name: SAVKAR, SUNIL W.

Inventor name: KATSUNO, AKIRA

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

RHK1 Main classification (correction)

Ipc: G06F 9/38

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17P Request for examination filed

Effective date: 19971014

17Q First examination report despatched

Effective date: 19991222

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: FUJITSU LIMITED

RTI1 Title (correction)

Free format text: SUPERSCALAR PROCESSOR WITH MULTIPLE REGISTER WINDOWS AND SPECULATIVE RETURN ADDRESS GENERATION

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: LI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED.

Effective date: 20021009

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: FR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: CH

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20021009

REF Corresponds to:

Ref document number: 225958

Country of ref document: AT

Date of ref document: 20021015

Kind code of ref document: T

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 69624158

Country of ref document: DE

Date of ref document: 20021114

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20030109

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20030109

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20030109

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20030301

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20030303

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20030331

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20030429

EN Fr: translation not filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20030710

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20140226

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20140417

Year of fee payment: 19

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 69624158

Country of ref document: DE

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20150301

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151001

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150301