SE510295C2 - Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method - Google Patents

Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method

Info

Publication number
SE510295C2
SE510295C2 SE9702762A SE9702762A SE510295C2 SE 510295 C2 SE510295 C2 SE 510295C2 SE 9702762 A SE9702762 A SE 9702762A SE 9702762 A SE9702762 A SE 9702762A SE 510295 C2 SE510295 C2 SE 510295C2
Authority
SE
Sweden
Prior art keywords
processor
instructions
instruction
conditional jump
reading
Prior art date
Application number
SE9702762A
Other languages
Swedish (sv)
Other versions
SE9702762L (en
SE9702762D0 (en
Inventor
Carl Tobias Roos
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9702762A priority Critical patent/SE510295C2/en
Publication of SE9702762D0 publication Critical patent/SE9702762D0/en
Priority to JP2000503482A priority patent/JP2001510916A/en
Priority to CN98809339A priority patent/CN1271434A/en
Priority to KR1020007000634A priority patent/KR20010022065A/en
Priority to AU83652/98A priority patent/AU8365298A/en
Priority to BR9810768-2A priority patent/BR9810768A/en
Priority to PCT/SE1998/001334 priority patent/WO1999004335A2/en
Priority to EP98934048A priority patent/EP0998701A2/en
Publication of SE9702762L publication Critical patent/SE9702762L/en
Publication of SE510295C2 publication Critical patent/SE510295C2/en

Links

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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/38Concurrent instruction execution, e.g. pipeline or 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

The present invention relates to a method of handling conditional jump instructions in a computer processor (1). Space is allocated in a so-called instruction buffer (3) for respective instructions read into the processor. These spaces are given an order which corresponds to the order in which the instructions were read-in sequentially. The last position in the instruction buffer constitutes a read-out position (4). The results obtained when processing respective instructions can be saved in spaces allocated to these instructions in the instruction buffer (3), from which the results can be finally read-out from the read-out position (4).

Description

35 510 295--- _ 2 _ Processorn är anpassad att, vid inläsandet av en villkorad hoppinstruktion, förutsäga villkorets uppfyllande, varefter instruktioner är läsbara till, och bearbetbara av, processorn enligt förutsägelsen direkt efter inläsandet av den villkorade hoppinstruktionen. En felaktig förutsägelse resulterar i att efterföljande inlästa och delvis bearbetade instruktioner tas bort ur processorn för att bereda plats för en inläsning av korrekta instruktioner enligt villkorets uppfyllande. 35 510 295 --- _ 2 _ The processor is adapted to, when reading a conditional jump instruction, predict the fulfillment of the condition, after which instructions are readable to, and machinable by, the processor according to the prediction immediately after reading the conditional jump instruction. An incorrect prediction results in subsequent read and partially processed instructions being removed from the processor to make room for a reading of correct instructions according to the fulfillment of the condition.

TEKNIKENS TIDIGARE STÅNDPUNKT För att ytterligare förenkla förståelsen av teknikens tidigare ståndpunkt och föreliggande uppfinning skall några begrepp som kommer att användas i den kommande beskrivningen definieras här.PRIOR ART In order to further simplify the understanding of the prior art and the present invention, some terms that will be used in the following description will be defined herein.

Vid inläsning av en instruktion, bearbetning av densamma och utläsning av det bearbetade resultatet sker i olika steg. Vid inläsningen av instruktionen till en processor förbereds en möjlig bearbetning av instruktionen. En instruktion innefattar vanligtvis tvá operander och en operation som skall tillämpas pà dessa operander.When reading an instruction, processing it and reading out the processed result takes place in different steps. When reading the instruction to a processor, a possible processing of the instruction is prepared. An instruction usually includes two operands and an operation to be applied to these operands.

Förberedelsen av instruktionen innefattar bland annat ett så kallat "Fetch-steg". Detta steg innefattar ett inhämtande av operand-värden eftersom själva instruktionen ofta, dock inte alltid, endast innehåller en adress till en position i ett minne där värdet för operanden finns.The preparation of the instruction includes, among other things, a so-called "Fetch step". This step involves obtaining operand values because the instruction itself often, but not always, contains only an address to a position in a memory where the value of the operand is located.

Ett Fetch-steg kan ta olika lång tid för olika instruktioner beroende på varifrån olika operand-värden skall hämtas. Detta betyder att en första instruktion som lästs in före en andra instruktion bearbetas efter den senare inlästa andra instruk- tionen pà grund av att operand-värdena till den andra instruk- tionen är tillgängliga snabbare än operand-värdena till den första instruktionen. Således kan resultatet från den andra instruktionen finnas färdigt i instruktionsbufferten före 10 15 20 25 30 35 510 29is-i _ 3 _ resultatet från den första instruktionen.A Fetch step can take different lengths of time for different instructions depending on where different operand values are to be retrieved from. This means that a first instruction read before a second instruction is processed after the later read second instruction because the operand values for the second instruction are available faster than the operand values for the first instruction. Thus, the result of the second instruction can be completed in the instruction buffer before the result of the first instruction.

En bearbetning av en instruktion sker i en del av processorn som benämns Aritmetisk Logisk Enhet eller ALU (Arithmetical Logical Unit).An instruction is processed in a part of the processor called the Arithmetic Logical Unit (ALU).

Eftersom ALU'n inte behöver bearbeta instruktionerna i sek- vensordning kan väntetiderna för ALU'n, i det fall då Fetch- steget för en instruktion tar lång tid, minskas.Since the ALU does not need to process the instructions in sequence order, the waiting times for the ALU, in the case where the Fetch step for an instruction takes a long time, can be reduced.

Vid en felaktig förutsägelse av uppfyllandet av en villkorad hoppinstruktion tas felaktigt inlästa instruktioner bort ur processorn. Detta kallas här "spolning" av processorn.In the event of an incorrect prediction of the fulfillment of a conditional jump instruction, incorrectly read instructions will be removed from the processor. This is called "flushing" of the processor.

Den allmänna metoden att förutsäga ett villkors uppfyllande, såsom det beskrivits ovan, visas exempelvis i patentpublika- tion EP-A2-0 706 121.The general method of predicting the fulfillment of a condition, as described above, is shown, for example, in patent publication EP-A2-0 706 121.

Många olika sätt att minska den menliga effekten av en felak- tig förutsägelse av uppfyllandet av en villkorad hoppinstruk- tion är kända.Many different ways of reducing the detrimental effect of an incorrect prediction of the fulfillment of a conditional jumping instruction are known.

Publikation US-A-5 381 532 beskriver en processor som nyttjar en alternativ ingángsbuffert, en grenbuffert (B). Vid inläsan- det av en villkorad hoppinstruktion läses instruktionerna en- ligt förutsägelsen för villkorets uppfyllande in sekvensiellt efter den villkorade hoppinstruktionen och de instruktioner som skall inhämtas om förutsägelsen är felaktig läses och lagras i grenbufferten.Publication US-A-5 381 532 describes a processor which uses an alternative input buffer, a branch buffer (B). When reading a conditional jump instruction, the instructions according to the prediction for the fulfillment of the condition are read in sequentially after the conditional jump instruction and the instructions that must be obtained if the prediction is incorrect are read and stored in the branch buffer.

Vid en eventuell spolning av processorn är de korrekta in- struktionerna redan inlästa i grenbufferten och är således omedelbart tillgängliga för processorn. Detta minskar den tidsförlust som en felaktig förutsägelse och efterföljande spolning medför.In the event of a possible flushing of the processor, the correct instructions are already loaded in the branch buffer and are thus immediately available to the processor. This reduces the time loss that an incorrect prediction and subsequent flushing entails.

Publikationerna US-A-5 127 091, US-A-5 539 911, US-A-5 237 664 10 15 20 25 30 35 510 295 _ 4 _ och US-A-4 742 451 visar och beskriver andra lösningar som bygger på nyttjandet av en parallell buffert för inläsandet av gren-instruktioner.The publications US-A-5 127 091, US-A-5 539 911, US-A-5 237 664 10 15 20 25 30 35 510 295 _ 4 _ and US-A-4 742 451 show and describe other solutions which are based on on the use of a parallel buffer for reading branch instructions.

Det är även tidigare känt att förfina den algoritm som beräk- nar sannolikheten för att ett villkor för en villkorad hopp- instruktion skall vara uppfyllt och att därigenom minska an- talet felaktiga förutsägelser. Publikationen "A Tour of the Pentium (R) Pro Processor Microarchitecture" : Intel Corpo- ration, beskriver en processor där man endast nyttjar en in- port i processorn och förutsätter att det förutsagda uppfyl- landet av ett villkor stämmer.It is also previously known to refine the algorithm that calculates the probability that a condition for a conditional jump instruction must be met and thereby thereby reduce the number of incorrect predictions. The publication "A Tour of the Pentium (R) Pro Processor Microarchitecture": Intel Corporation, describes a processor where only one input is used in the processor and assumes that the predicted fulfillment of a condition is correct.

Detta ger en mycket snabb och effektiv hantering vid korrekta förutsägelser men medför en total spolning av innehållet i processorn vid en felaktig förutsägelse utan att de korrekta instruktionerna ligger redo i en alternativ buffert.This provides a very fast and efficient handling with correct predictions but entails a total flushing of the contents of the processor in the event of an incorrect prediction without the correct instructions being ready in an alternative buffer.

Det skall även nämnas att en mer noggrann förutsägelse kräver en högre kapacitet vid den statistiska utvärderingen av vill- korens uppfyllande än vad en mindre noggrann förutsägelse kräver.It should also be mentioned that a more accurate prediction requires a higher capacity in the statistical evaluation of the fulfillment of the conditions than a less accurate prediction requires.

Det är även känt att låta en villkorad hoppinstruktion föregås av en villkors-testande instruktion. Denna instruktion ligger företrädesvis så långt före själva hoppinstruktionen så att den hinner exekveras och lämna sitt resultat innan själva hoppinstruktionen kommer in i processorns inport.It is also known to allow a conditional jump instruction to be preceded by a condition-testing instruction. This instruction is preferably so far before the jump instruction itself that it has time to execute and leave its result before the jump instruction itself enters the processor input.

När då den villkorade hoppinstruktionen läses in i processorn är redan resultatet för villkorets uppfyllande känt genom den tidigare exekveringen av den villkors-testande instruktion och rätt instruktioner kan läsas in direkt efter den villkorade hoppinstruktionen.When the conditional jump instruction is read into the processor, the result for the fulfillment of the condition is already known through the previous execution of the condition-testing instruction and the correct instructions can be read directly after the conditional jump instruction.

Inga instruktioner vars resultat kan påverka villkoret för den villkorade hoppinstruktionen får ligga mellan den villkors- 10 15 20 25 30 35 510 295 _ _ 5 _ testande instruktionen och den villkorade hoppinstruktionen och huruvida den villkors-testande instruktionen kan läggas tillräckligt långt framför den villkorade hoppinstruktionen beror således på om instruktioner som kan påverka villkorets uppfyllande ligger nära, eller alldeles före, själva hoppin- struktionen.No instruction whose results may affect the condition of the conditional jump instruction may lie between the conditional jump instruction and the conditional jump instruction and whether the condition test instruction can be placed far enough ahead of the conditional jump instruction. thus depends on whether instructions that may affect the fulfillment of the condition are close to, or just before, the jumping instruction itself.

Denna begränsning medför försvàringar vid mjukvaru-utveckling och i vissa fall tidsfördröjningar vid införandet av tomma in- struktioner mellan en villkors-testande instruktion och till- hörande villkorade hoppinstruktion.This restriction entails difficulties in software development and in some cases time delays in the introduction of empty instructions between a condition-testing instruction and the associated conditional jump instruction.

Publikationerna GB-A-2 293 671 och EP-A2-0 509 245 beskriver båda en dator eller dator-arkitektur som huvudsakligen bygger på att datorn omfattar en separat processor avsedd att bear- beta villkorade hoppinstruktioner separat fràn, och parallellt med, övriga instruktioner.Publications GB-A-2 293 671 and EP-A2-0 509 245 both describe a computer or computer architecture which is mainly based on the computer comprising a separate processor intended to process conditional jump instructions separately from, and in parallel with, other instructions. .

Det skall även nämnas att de instruktioner som hanteras inom en processor förenklat kan delas upp i två typer av instruk- tioner, processor-externa instruktioner och processor-interna instruktioner.It should also be mentioned that the instructions handled within a processor can be divided into two types of instructions in a simplified manner, processor-external instructions and processor-internal instructions.

Exempelvis kan instruktioner i assembler-kod benämnas proces- sor-externa instruktioner medan de instruktioner som erhålls efter att assemblerkoden omvandlats till micro-kod kan be- nämnas processor-interna instruktioner.For example, instructions in assembler code can be called processor-external instructions, while the instructions obtained after the assembler code has been converted to micro-code can be called processor-internal instructions.

Det är i dessa sammanhang även känt att en processor-extern instruktion normalt bildar en serie av processor-interna in- struktioner vid omvandlingen.It is also known in these contexts that a processor-external instruction normally forms a series of processor-internal instructions during the conversion.

Det är även känt att även om en processor-extern instruktion inte omfattar en villkorad hoppinstruktion så kan en sådan in- struktion resultera i en processor-intern villkorad hoppin- struktion vid omvandlingen frán processor-extern kod till processor-intern kod. 10 15 20 25 30 35 510 295 nEnocönELsz-z rön FÖRELIGGANDE UPPFINNING TEKNISK-r PROBLEM Under beaktande av teknikens tidigare ståndpunkt, såsom den beskrivits ovan, torde det få anses vara ett tekniskt problem att, med utgångspunkt från en processor som nyttjar förutsäg- elser av uppfyllandet av villkoret för en villkorad hoppin- struktion för inläsning av efterföljande instruktioner till processorn, där respektive inläst instruktion tilldelas ut- rymme i en här benämnd instruktionsbuffert, vilka utrymmen är tilldelade en inbördes ordning som motsvaras av den sekvensi- ella ordningen, och vilken instruktionsbuffert omfattar åt- minstone en sista position inom instruktionsbufferten som ut- gör en utläsningsposition, varifrån resultaten från bearbet- ningen av respektive instruktion är utläsbara i den sekvensi- ella ordningen, där en felaktig förutsägelse resulterar i att efterföljande inlästa och delvis bearbetade instruktioner tas bort ur processorn för att bereda plats för en inläsning av korrekta instruktioner enligt villkorets uppfyllande, kunna inse hur tidsförlusterna vid en eventuell spolning av proces- sorn skall kunna minskas i förhållande till känd teknik.It is also known that even if a processor external instruction does not include a conditional jump instruction, such instruction may result in a processor internal conditional jump instruction when converting from a processor external code to a processor internal code. PRESENT INVENTION TECHNICAL PROBLEMS Considering the prior art, as described above, it should be considered a technical problem that, based on a processor using predictions, of fulfilling the condition of a conditional jump instruction for reading subsequent instructions to the processor, where each loaded instruction is allocated space in an instruction buffer referred to herein, which spaces are allocated to a mutual order corresponding to the sequential order, and which instruction buffer comprises at least one last position within the instruction buffer which constitutes a readout position, from which the results from the processing of the respective instruction are readable in the sequential order, where an incorrect prediction results in subsequent loaded and partially processed instructions being deleted out of the processor to make room for a load of correct instructions according to the fulfillment of the condition, be able to realize how the time losses in the event of a flushing of the processor can be reduced in relation to known technology.

Det är vidare ett tekniskt problem att kunna inse hur ett snabbare Fetch-steg och en högre nyttjandegrad av processorn skall kunna erbjudas i förhållande till känd teknik, vid en eventuell spolning av processorn.It is also a technical problem to be able to realize how a faster Fetch step and a higher utilization rate of the processor can be offered in relation to known technology, in the event of a possible flushing of the processor.

Det är ett tekniskt problem att kunna inse hur detta skall kunna erbjudas utan att nyttja villkors-testande instruktioner som föregår den villkorade hoppinstruktionen eller en separat processor för bearbetandet av villkorade hoppinstruktioner.It is a technical problem to be able to realize how this can be offered without using condition-testing instructions that precede the conditional jump instruction or a separate processor for processing conditional jump instructions.

Det är ett tekniskt problem att kunna inse hur förutsägelsens riktighet skall kunna utvärderas innan resultatet från bear- betningen av den villkorade hoppinstruktionen nått utläsnings- 10 15 20 25 30 35 510 295i positionen.It is a technical problem to be able to realize how the accuracy of the prediction can be evaluated before the result from the processing of the conditional jump instruction has reached the reading position 10 15 20 25 30 35 510 295 in the position.

Det är ett tekniskt problem att kunna inse hur en spolning av processorn skall kunna ske på ett korrekt sätt vid en felaktig förutsägelse då resultatet från bearbetandet av den villkorade hoppinstruktionen ännu ej nått utläsningspositionen.It is a technical problem to be able to realize how a flushing of the processor can take place correctly in the event of an incorrect prediction when the result from the processing of the conditional jump instruction has not yet reached the readout position.

Det måste få anses vara ett tekniskt problem att kunna inse hur ett inhämtande av korrekta instruktioner skall ske vid en felaktig förutsägelse, samt hur detta skall anpassas till olika processorarkitekturer.It must be considered a technical problem to be able to realize how to obtain correct instructions in the event of an incorrect prediction, and how this should be adapted to different processor architectures.

Det är ytterligare ett tekniskt problem att kunna inse hur en processor skall anpassas hárdvarumässigt för att kunna erbjuda en möjlighet att utvärdera riktigheten av en förutsägelse av ett villkors uppfyllande innan resultatet från bearbetningen av den villkorade hoppinstruktionen nått utläsningspositionen, för att därefter, vid en eventuellt felaktig förutsägelse, kunna genomföra en korrekt spolning av processorn.It is a further technical problem to be able to realize how a processor should be adapted in terms of hardware in order to be able to offer an opportunity to evaluate the accuracy of a prediction of a condition fulfillment before the result of processing the conditional jump instruction reaches the reading position. prediction, be able to perform a correct flushing of the processor.

Det är även ett tekniskt problem att kunna inse hur en metod eller processor enligt föreliggande uppfinning kan anpassas till att även effektivisera en processor vid hanteringen av processor-interna villkorade hoppinstruktioner.It is also a technical problem to be able to realize how a method or processor according to the present invention can be adapted to also make a processor more efficient in the handling of processor-internal conditional jump instructions.

Lösnnrczn För att kunna lösa ett eller flera av de ovan angivna tekniska problemen utgår föreliggande uppfinning fràn en metod för att hantera specifika instruktioner, så kallade villkorade hoppin- struktioner, i en dataprocessor, där respektive inläst in- struktion tilldelas utrymme i en här benämnd instruktionsbuf- fert, vilka utrymmen är tilldelade en inbördes ordning som motsvaras av den sekventiella ordning enligt vilken respektive instruktion är inläst in i processorn. Åtminstone en sista position inom instruktionsbufferten utgör 10 15 20 25 30 35 is1p 295 _ 3 _ en utläsningsposition från instruktionsbufferten. Efter att instruktionerna blivit bearbetbade av processorn är resultatet från bearbetningen lagringsbart i respektive utrymme hörande till instruktionen i instruktionsbufferten, för att slutligen vara utläsbart från utläsningspositionen i den sekventiella ordningen.Solution In order to be able to solve one or more of the above-mentioned technical problems, the present invention is based on a method for handling specific instructions, so-called conditional jump instructions, in a computer processor, where each loaded instruction is allocated space in an instruction buffer referred to herein. fourth, which spaces are assigned a mutual order corresponding to the sequential order according to which the respective instruction is loaded into the processor. At least one last position within the instruction buffer constitutes a read position from the instruction buffer. After the instructions have been processed by the processor, the result of the processing is storable in the respective space belonging to the instruction in the instruction buffer, in order to finally be readable from the reading position in the sequential order.

Processorn är anpassad att, vid inläsandet av en villkorad hoppinstruktion, förutsäga villkorets uppfyllande, varefter instruktioner är läsbara till, och bearbetbara av, processorn enligt denna förutsägelse direkt efter inläsandet av den vill- korade hoppinstruktionen.The processor is adapted to, when reading a conditional jump instruction, predict the fulfillment of the condition, after which instructions are readable to, and machinable by, the processor according to this prediction immediately after reading the conditional jump instruction.

En felaktig förutsägelse resulterar i att efterföljande in- lästa och delvis bearbetade instruktioner tas bort ur proces- sorn för att bereda plats för en inläsning av korrekta in- struktioner enligt villkorets uppfyllande.An incorrect prediction results in subsequent read-in and partially processed instructions being removed from the processor to make room for a reading of correct instructions according to the fulfillment of the condition.

Med utgångspunkt från en sådan metod anvisar föreliggande upp- finning specifikt att utfallet från bearbetandet av den vill- korade hoppinstruktionen, och därmed vetskapen om uppfyllandet av tillhörande villkor, görs tillgängligt för utvärdering innan utrymmet inom instruktionsbufferten, hörande till den villkorade hoppinstruktionen, nått utläsningspositionen.Based on such a method, the present invention specifically indicates that the outcome of the processing of the conditional jump instruction, and thus the knowledge of the fulfillment of associated conditions, is made available for evaluation before the space within the instruction buffer, belonging to the conditional jump instruction, reaches the read position.

Vidare anvisar föreliggande uppfinning att borttagande av in- struktioner ur processorn endast berör instruktioner som är sekventiellt inlästa efter den villkorade hoppinstruktionen, oavsett var dessa befinner sig i bearbetningen av instruk- tioner, vid en felaktig förutsägelse av uppfyllandet av vill- koret.Furthermore, the present invention teaches that deletion of instructions from the processor only affects instructions that are sequentially loaded according to the conditional jump instruction, regardless of where they are in the processing of instructions, in the event of an incorrect prediction of the fulfillment of the condition.

Med syftet att erbjuda en möjlighet att ytterligare tillvara- taga den tidsvinst som erhålls genom att tidigarelägga vet- skapen om huruvida en förutsägelse av huruvida en villkorad hoppinstruktion är korrekt eller ej, anvisar en metod enligt föreliggande uppfinning vidare att en inhämtning av de kor- 10 15 20 25 30 35 510 235 _ 9 _ rekta instruktionerna påbörjas direkt vid vetskapen om vill- korets uppfyllande om förutsägelsen var felaktig.With the aim of offering an opportunity to further utilize the time gain obtained by advancing the knowledge of whether a prediction of whether a conditional jump instruction is correct or not, a method according to the present invention further teaches that an acquisition of the 15 20 25 30 35 510 235 _ 9 _ the correct instructions begin immediately with the knowledge of the fulfillment of the condition if the prediction was incorrect.

Föreliggande uppfinning anvisar vidare en metod som bygger på att en processor-intern instruktion behandlas såsom beskrivits ovan avseende villkorade hoppinstruktioner, det vill säga att resultatet från en kontroll av uppfyllandet av en förutsägelse rörande en processor-intern villkorad hoppinstruktion göres tillgängligt och beaktas så snart det är klart, även om så skulle vara att utrymmet i instruktionsbufferten, hörande till den processor-interna villkorade hoppinstruktionen, ännu ej nått en utläsningsposition i instruktionsbufferten.The present invention further provides a method based on processing a processor-internal instruction as described above with respect to conditional jump instructions, i.e. the result of a check of the fulfillment of a prediction concerning a processor-internal condition jump instruction is made available and considered as soon as it is clear, even if the space in the instruction buffer, belonging to the processor-internal conditional jump instruction, has not yet reached a readout position in the instruction buffer.

Föreliggande uppfinning utgår även från en processor, vilken omfattar: - en inläsande enhet, avsedd att läsa in instruktioner till processorn från ett minne med sekvensiellt på varandra föl- jande instruktioner, av vilka vissa är så kallade villkorade hoppinstruktioner, där villkorets uppfyllande avgör huruvida de instruktioner som sekvensiellt följer direkt efter den villkorade hoppinstruktionen skall läsas in till processorn eller om ett hopp i sekvensen av instruktioner skall göras, vilket hopp medför att efterföljande instruktioner skall läsas in från någon annan plats i sekvensen enligt den vill- korade hoppinstruktionen, - en instruktionsbuffert, vari utrymme är allokerbart för res- pektive inläst instruktion, vilka utrymmen är tilldelade en inbördes ordning som motsvaras av den sekventiella ordningen och där åtminstone en sista position inom instruktionsbuf- ferten utgör en utläsningsposition från instruktionsbuffer- ten, - en bearbetande enhet, vilken är anpassad att bearbeta in- lästa instruktioner, varefter resultatet från bearbetningen är lagringsbart i utrymmet hörande till respektive instruk- lO 15 20 25 30 35 510 295 _10- tion i instruktionsbufferten, - en kontrollerande enhet, vilken är anpassad att kontrollera huruvida utläsningspositionen innefattar ett resultat fràn en bearbetning, - en utläsande enhet, vilken är anpassad att läsa resultatet från utläsningspositionen, - en förutsägande enhet, vilken är anpassad att, vid inläsan- det av en villkorad hoppinstruktion, förutsäga villkorets uppfyllande, varvid den inläsande enheten är anpassad att inläsa instruktioner till processorn enligt förutsägelsen direkt efter inläsandet av den villkorade hoppinstruktionen, - en utvärderande enhet, vilken är anpassad att utvärdera huruvida villkoret för den villkorade hoppinstruktion är uppfyllt enligt den förutsägelse som den förutsägande en- heten lämnat, samt - en borttagande enhet vilken är anpassad att borttaga ur pro- cessorn inlästa och delvis bearbetade instruktioner som lästs in till processorn efter den villkorade hoppinstruk- tionen om förutsägelsen visat sig vara felaktig.The present invention is also based on a processor, which comprises: a reading unit, intended to read instructions to the processor from a memory with sequentially consecutive instructions, some of which are so-called conditional jump instructions, where the fulfillment of the condition determines whether they instructions that follow sequentially directly after the conditional jump instruction must be loaded into the processor or if a jump in the sequence of instructions is to be made, which jump causes subsequent instructions to be loaded from somewhere else in the sequence according to the conditional jump instruction, - an instruction buffer , wherein space is allocable for respective loaded instructions, which spaces are assigned a mutual order corresponding to the sequential order and where at least one last position within the instruction buffer constitutes a reading position from the instruction buffer, - a processing unit, which is adapted to process in read instructions, after which the result of the processing is storable in the space belonging to the respective instruction in the instruction buffer, - a controlling unit, which is adapted to check whether the readout position comprises a result from a processing , - a reading unit, which is adapted to read the result from the reading position, - a predictive unit, which is adapted to, when reading a conditional jump instruction, predict the fulfillment of the condition, the reading unit being adapted to read instructions to the processor according to the prediction immediately after reading the conditional jump instruction, - an evaluation unit, which is adapted to evaluate whether the condition of the conditional jump instruction is met according to the prediction provided by the predictive unit, and - a removal unit which is adapted to remove from pro cessor loaded and partially processed in instructions read to the processor according to the conditional jump instruction if the prediction turned out to be incorrect.

Med utgàngs punkt av en sådan processor anvisar föreliggande uppfinning speciellt att processorn omfattar en resultatindi- kerande enhet, vilken är anpassad att indikera när resultatet från bearbetningen av en villkorad hoppinstruktion är lagrat i positionen för den villkorade hoppinstruktion inom instrukti- onsbufferten.Based on such a processor, the present invention specifically discloses that the processor comprises a result indicating unit, which is adapted to indicate when the result of the processing of a conditional jump instruction is stored in the position of the conditional jump instruction within the instruction buffer.

Vidare anvisas att den utvärderande enheten är anpassad att inhämta resultatet från bearbetningen av den villkorade hopp- instruktion då detta är tillgängligt enligt den resultatindi- kerande enheten, varvid utvärderingen är möjlig av huruvida villkoret för den villkorade hoppinstruktion är uppfyllt eller 10 15 20 25 30 35 5,111 _29 5 _ 11 _ ej enligt den förutsägelse som den förutsägande enheten lämnat.Furthermore, it is indicated that the evaluating unit is adapted to obtain the result from the processing of the conditional jumping instruction when this is available according to the performance indicating unit, whereby the evaluation is possible of whether the condition for the conditional jumping instruction is met or 10 15 20 25 30 35 5,111 _29 5 _ 11 _ not according to the prediction made by the predictive unit.

Föreliggande uppfinning anvisar även att den borttagande en- heten är anpassad att endast borttaga instruktioner ur proces- sorn som är sekventiellt inlästa efter den villkorade hoppin- struktionen, oavsett var dessa befinner sig i bearbetningen av instruktioner, vid en signal från den utvärderande enheten som visar att förutsägelsen av uppfyllandet av villkoret var fel- aktig.The present invention also teaches that the removal unit is adapted to only remove instructions from the processor that are sequentially loaded according to the conditional jump instruction, regardless of where they are in the processing of instructions, at a signal from the evaluating unit showing that the prediction of the fulfillment of the condition was incorrect.

En processor enligt föreliggande uppfinning är även anpassad att påbörja en inläsning av korrekta instruktioner direkt efter att den utvärderande enheten lämnat resultat om huruvida en förutsägelse varit korrekt, i det fall som förutsägelsen visat sig vara felaktig.A processor according to the present invention is also adapted to start a reading of correct instructions immediately after the evaluating unit has given results as to whether a prediction was correct, in the event that the prediction turned out to be incorrect.

Vidare anvisar föreliggande uppfinning, med utgångspunkt från en processor som omfattar en omvandlande enhet, vilken är an- passad att omvandla processor-externa instruktioner till pro- cessor-interna instruktioner, att ovanstående enheter även är anpassade att bearbeta, och utvärdera resultatet från en sådan bearbetning, av en såväl en processor-intern villkorad hoppin- struktion som en processor-extern villkorad hoppinstruktion enligt ovan.Furthermore, the present invention, based on a processor comprising a converting unit, which is adapted to convert processor external instructions to processor-internal instructions, indicates that the above units are also adapted to process, and evaluate the result of such a process. processing, of both a processor-internal conditional jump instruction and a processor-external conditional jump instruction as above.

FÖRDELAR De fördelar som främst kan få anses vara kännetecknande för en metod och en processor anpassad att verka enligt metoden en- ligt föreliggande uppfinning är att den tidsförlust som spol- ning enligt känd teknik orsakar kan minskas. Det är även så att Fetch-steget kan göras snabbare och ALU'ns (eller ALU'er- nas, kan vara flera) kapacitet kan frigöras för bearbetning av eventuellt väntande instruktioner som ej skall spolas. Vidare är, vid felaktiga förutsägelser, korrekta instruktioner in- läsbara till processorn i ett tidigare skede än vad som till- 10 15 20 25 30 35 510 295 _12- láts med känd teknik. Dessa faktorer erbjuder tillsammans att processorns kapacitet kan utnyttjas i högre grad än tidigare.ADVANTAGES The advantages that can mainly be considered to be characteristic of a method and a processor adapted to operate according to the method according to the present invention are that the time loss caused by flushing according to known technology can be reduced. It is also the case that the Fetch step can be made faster and the capacity of the ALU (or ALUs can be several) can be released for processing any pending instructions that are not to be flushed. Furthermore, in the event of incorrect predictions, correct instructions can be read into the processor at an earlier stage than what is permitted with known technology. These factors together offer that the processor's capacity can be utilized to a greater extent than before.

Principen är enkel och ej bunden till specifika processorarki- tekturer vilket gör att den enkelt kan implementeras i olika processorarkitekturer.The principle is simple and not tied to specific processor architectures, which means that it can easily be implemented in different processor architectures.

Det som främst kan få anses vara kännetecknande för en metod, i enlighet med föreliggande uppfinning, anges i det efterföl- jande patentkravets 1 kännetecknande del, och det som främst kan få anses vara kännetecknande för en processor, i enlighet med föreliggande uppfinning, anges i det efterföljande patent- kravets 5 kännetecknande del.What may primarily be considered as characteristic of a method, in accordance with the present invention, is set forth in the characterizing part of the appended claim 1, and what may primarily be considered as characteristic of a processor, in accordance with the present invention, is set forth in the characterizing part of the appended patent claim 5.

KORT FIGURBESKRIVNING En metod och en processor anpassad att verka enligt metoden, uppvisande de med föreliggande uppfinning förknippade egenhet- erna, skall i exemplifierande syfte nu närmare beskrivas med hänvisning till bifogad ritning, där; figur 1 visar schematiskt och mycket förenklat en processor.BRIEF DESCRIPTION OF THE DRAWINGS A method and a processor adapted to operate according to the method, exhibiting the peculiarities associated with the present invention, will now be described in more detail by way of example with reference to the accompanying drawing, in which; Figure 1 shows schematically and very simply a processor.

BESKRIVNING ÖVER NU FÖRESLBGEN UTFÖRINGSFORM Instruktioner i en programkod kan delas upp i huvudsakligen tvâ typer, flödesändrande instruktioner och icke flödesän- drande instruktioner.DESCRIPTION OF THE NOW PROPOSED EMBODIMENT Instructions in a program code can be divided into mainly two types, flow-changing instructions and non-flow-changing instructions.

En icke flödesändrande instruktion, vilka är de vanligast förekommande, är av typen läs, skriv och aritmetiska opera- tioner. Dessa omfattar vanligtvis tvà operander, en instruk- 10 15 20 25 30 35 510-”295 _ 13 _. tion om vilken operation som skall tillämpas på operanderna, samt en destinationsadress för resultatet från operationen.A non-flow-changing instruction, which is the most common, is of the read, write and arithmetic operations type. These usually comprise two operands, an instruction 10 15 20 25 30 35 510- ”295 _ 13 _. information on which operation is to be applied to the operands, as well as a destination address for the result of the operation.

Flödesändrande instruktioner ändrar flödet av instruktioner och medför ett hopp i programkoden. Den vanligaste typen av flödesändrande instruktioner är så kallade villkorliga hopp eller villkorade hoppinstruktioner. Även dessa omfattar två operander och en instruktion om vilken operation som skall tillämpas på operanderna. Denna operation är vanligtvis en jämförelse mellan operanderna där villkoret för hoppet består i operandernas likhet eller olikhet.Flow-changing instructions change the flow of instructions and cause a jump in the program code. The most common type of flow-changing instructions are so-called conditional jumps or conditional jump instructions. These also include two operands and an instruction on which operation is to be applied to the operands. This operation is usually a comparison between the operands where the condition for the jump consists in the similarity or difference of the operands.

Någon destinationsadress är inte nödvändig vid villkorade hoppinstruktioner då resultatet från operationen används lokalt i processorn för att avgöra huruvida ett hopp i flödet skall göras eller ej, det finns dock inget som hindrar att en destinationsadress nyttjas.No destination address is necessary for conditional jump instructions as the result of the operation is used locally in the processor to determine whether a jump in the flow should be made or not, however there is nothing to prevent a destination address from being used.

Instruktionerna läses in i en processor sekvensiellt och flera instruktioner kan befinna sig i olika steg av bearbetningen i processorn samtidigt. I exemplifierande syfte visas i figur 1 en processor l där åtta instruktioner kan bearbetas 'samti- digt'. Instruktionerna läses från ett program-minne 2 och tilldelas ett utrymme i en här benämnd instruktionsbuffert 3, vilken verkar som en First In First Out- (FIFO) buffert med här visade åtta positioner 3l, 32, ..., 38.The instructions are read into a processor sequentially and several instructions may be in different stages of processing in the processor simultaneously. For exemplary purposes, Figure 1 shows a processor 1 where eight instructions can be processed 'simultaneously'. The instructions are read from a program memory 2 and assigned a space in an instruction buffer 3 referred to herein, which acts as a First In First Out (FIFO) buffer with eight positions 31, 32, ..., 38 shown here.

Resultaten från respektive operation läses ut från instrukti- onsbufferten 3 och skrivs ut till avsedd destinationsadress då instruktionen i fråga befinner sig i en så kallad utläsnings- position 4 inom instruktionsbufferten, vilket i detta exempel utgöres av den sista positionen i instruktionsbufferten 3. Det är dock mycket möjligt att bearbetningen eller exekveringen av operationen utförts när instruktionen låg i en tidigare posi- tion i instruktionsbufferten. 10 15 20 25 30 35 510 295 ._ _- vid - 14 - En processors arbetssätt skall beskrivas i närmare detalj för att förenkla förståelsen av föreliggande uppfinning.The results from each operation are read out from the instruction buffer 3 and printed to the intended destination address when the instruction in question is in a so-called readout position 4 within the instruction buffer, which in this example consists of the last position in the instruction buffer 3. However, It is very possible that the processing or execution of the operation was performed when the instruction was in a previous position in the instruction buffer. 10 15 20 25 30 35 510 295 ._ _- vid - 14 - The operation of a processor will be described in more detail to simplify the understanding of the present invention.

En processor 1 har enligt detta exempel en dubbel inport med två olika inportar, en första 111 och en andra 112 inport, och tillhörande första 113 respektive andra 114 buffert, genom vilka instruktionerna inhämtas. En processor-intern väljare 12 avgör från vilken inport instruktionerna skall hämtas.According to this example, a processor 1 has a dual input port with two different inputs, a first 111 and a second 112 input port, and associated first 113 and second 114 buffers, respectively, through which the instructions are obtained. A processor internal selector 12 determines from which input the instructions are to be retrieved.

Då en villkorad hoppinstruktion 21 inträder i processorn, exempelvis via den första inporten 111, och om detta villkor med hög sannolikhet är uppfyllt, om det kan förutsägas, läses omgående instruktionerna 22 enligt hoppet in via den andra inporten 112 där tillhörande buffert 114 fylls med efterföl- jande instruktioner. Instruktionerna 23 efter det villkorade hoppet 21 fortsätter att läsas in via den första inporten 111 och lagras i den första bufferten 113.When a conditional jump instruction 21 enters the processor, for example via the first input 111, and if this condition is highly probable, if it can be predicted, the instructions 22 according to the jump are immediately read in via the second input 112 where the associated buffer 114 is filled with subsequence. - giving instructions. The instructions 23 after the conditional jump 21 continue to be read in via the first input port 111 and stored in the first buffer 113.

Den processor-interna väljaren 12 hämtar instruktioner från den andra bufferten 114 enligt förutsägelsen. Vid en felaktig förutsägelse väntar de korrekta instruktionerna i den första bufferten 113 och dessa kan läsas in till processorn efter en spolning av de felaktigt inlästa instruktionerna.The processor internal selector 12 retrieves instructions from the second buffer 114 as predicted. In the event of an incorrect prediction, the correct instructions wait in the first buffer 113 and these can be read into the processor after a flush of the incorrectly read instructions.

Det kan även tänkas att en processor endast nyttjar en enkel inport. Vid en förutsägelse av utfallet från en villkorad hoppinstruktion läses då instruktionerna enligt förutsägelsen in i den enda inporten, vilket medför att vid en felaktig för- utsägelse så tar det längre tid att läsa in de korrekta in- struktionerna än om två inportar används, eftersom dessa ej finns inlästa och väntande i en alternativ inport.It is also conceivable that a processor only uses a single input port. When predicting the outcome of a conditional jump instruction, the instructions according to the prediction are then read into the only input, which means that in the event of an incorrect prediction, it takes longer to read the correct instructions than if two inputs are used, as these not loaded and waiting in an alternative input port.

Förutsägelsen av villkorets uppfyllande kan grunda sig pà olika algoritmer, såsom exempelvis statisk eller dynamisk förutsägelse.The prediction of the fulfillment of the condition can be based on different algorithms, such as static or dynamic prediction.

Att välja att alltid antaga att villkoret är uppfyllt, eller 10 15 20 25 30 35 510 29.5 _15- ej är uppfyllt, är en så kallad statisk förutsägelse.Choosing to always assume that the condition is fulfilled, or 10 15 20 25 30 35 510 29.5 _15- is not fulfilled, is a so-called static prediction.

En förutsägelse kan även grundas på en dynamisk bearbetning av hur detta villkor blivit uppfyllt tidigare. Det statistiska utfallet av olika villkors uppfyllande sparas då i en lista vilken uppdateras varje gång en villkorad hoppinstruktion exe- kverats och vilken ligger till grund för förutsägelserna av huruvida dessa villkor är uppfyllda eller ej. Detta är en dynamisk förutsägelse.A prediction can also be based on a dynamic processing of how this condition has been met in the past. The statistical outcome of the fulfillment of different conditions is then saved in a list which is updated each time a conditional jump instruction is executed and which forms the basis for the predictions of whether these conditions are met or not. This is a dynamic prediction.

Denna tidigare kända metod medför att om villkoret, enligt förutsägelsen, är uppfyllt så följer rätt instruktioner enligt hoppet direkt efter hoppinstruktionen i instruktionsbufferten och dessa kan exekveras och vara redo att lämna sina resultat till sina destinationsadresser direkt efter det att den vill- korade hoppinstruktionen nått utläsningspositionen 4 i in- struktionsbufferten 3 och där lämnat resultatet från den operation som fastställt om villkoret för hoppet är uppfyllt eller ej.This previously known method means that if the condition, according to the prediction, is met, the correct instructions according to the jump follow immediately after the jump instruction in the instruction buffer and these can be executed and be ready to submit their results to their destination addresses immediately after the conditional jump instruction reaches the read position. 4 in the instruction buffer 3 and there left the result from the operation which determined whether the condition for the jump is met or not.

Föreliggande uppfinning är oberoende av om en eller flera in- portar används, eller vilken typ av algoritm för att förutsäga villkorets uppfyllande som används.The present invention is independent of whether one or more entries are used, or what type of algorithm is used to predict the fulfillment of the condition used.

Oavsett processor- eller algoritm-typ så skall de instrukti- oner som är under bearbetning i instruktionsbufferten ej ut- föras vid en felaktig förutsägelse varför en borttagning, eller spolning (flush), av dessa måste göras så att rätt in- struktioner kan läsas ner till instruktionsbufferten för att bearbetas.Regardless of the processor or algorithm type, the instructions that are being processed in the instruction buffer must not be executed in the event of an incorrect prediction, which is why a removal, or flushing, of these must be done so that the correct instructions can be read down. to the instruction buffer to be processed.

Bearbetningen av en instruktion i en processor omfattar flera olika steg.The processing of an instruction in a processor comprises several different steps.

Ett första steg är att omvandla koden som representerar in- struktionen till en processor-intern kod. Denna omvandling sker i en omvandlande enhet, i detta utföringsexempel en så 10 15 20 25 30 35 510 295 _16_ kallad Assembler to micro code Translator Unit (ATU) 5, vilken omvandlar instruktioner i assembler till instruktioner i maskinspràk, varefter den omvandlade koden placeras i instruk- tionsbufferten 3.A first step is to convert the code representing the instruction to a processor internal code. This conversion takes place in a converting unit, in this exemplary embodiment a so-called Assembler to micro code Translator Unit (ATU) 5, which converts instructions in assembler to instructions in machine language, after which the converted code is placed in instruction buffers 3.

ATU'n 5 omfattar även den processor-interna väljaren 12 och styrningen av densamma.The ATU 5 also includes the processor internal selector 12 and its control.

Utrymmet i instruktionsbufferten omfattar diverse fält, av vilka en del visas i position 31 i instruktionsbufferten 3, omfattande ett fält för operand A (OPA) 31A, fält för operand B (OPB) 3lB, ett fält för operationen (ALSO) 3lC och ett fält med destinationsadressen för resultatet (DEST) 3lD.The space in the instruction buffer comprises various fields, some of which are shown in position 31 in the instruction buffer 3, comprising a field for operand A (OPA) 31A, a field for operand B (OPB) 31b, a field for operation (ALSO) 3lC and a field with the destination address of the result (DEST) 3lD.

Ett andra steg är en så kallad Fetch (inhämtning) där nöd- vändiga operander hämtas från olika minnen M1, M2 om dessa ej är tillgängliga i själva instruktionen. Beroende på vilket minne som en operand skall läsas från kan detta ta olika lång tid. Vissa minnen kan vara processor-interna minnen M1 och andra kan vara minnen som är positionerade utanför processorn M2.A second step is a so-called Fetch (retrieval) where necessary operands are retrieved from different memories M1, M2 if these are not available in the instruction itself. Depending on which memory an operand is to be read from, this can take different lengths of time. Some memories may be processor internal memories M1 and others may be memories positioned outside of processor M2.

När operanderna är hämtade kan nästa steg tas vilket är en exekvering av instruktionen där operanderna 31A, 3lB och instruktionen 3lC skickas till en ALU 6 där instruktionen exekveras och ett resultat lämnas till ett resultatfält 3lE.When the operands are retrieved, the next step can be taken which is an execution of the instruction where the operands 31A, 31B and the instruction 31C are sent to an ALU 6 where the instruction is executed and a result is left to a result field 31I.

När positionen för instruktionen i instruktionsbufferten nått utläsningspositionen 4 görs nästa steg under förutsättning att resultatet från ALU'n 6 är klart och lämnat till resultat-fäl- tet 3lE. Detta steg är en så kallad Commit eller Write Back där resultatet i skrivs till adressen enligt innehållet av fältet för destinationsadressen 3lD.When the position of the instruction in the instruction buffer has reached the readout position 4, the next step is performed provided that the result from the ALU 6 is ready and left to the result field 31I. This step is a so-called Commit or Write Back where the result is written to the address according to the contents of the field for the destination address 3lD.

Exekvering behöver nödvändigtvis inte utföras sekvensiellt utan kan utföras så fort Fetch-steget för en instruktion är utfört. Detta medför att vissa instruktioner kan vara redo för 10 15 20 25 30 35 5111295 _17..Execution does not necessarily have to be performed sequentially but can be performed as soon as the Fetch step for an instruction is performed. This means that some instructions may be ready for 10 15 20 25 30 35 5111295 _17 ..

Commit trots att instruktioner som sekvensiellt ligger före i instruktionsbufferten ännu inte är klara med Fetch.Commit even though instructions that are sequentially ahead of the instruction buffer are not yet complete with Fetch.

Spolningen vid en felaktig förutsägelse tar tid och kapacitet fràn processorn. I det fall en processor nyttjas som använder tvà inportar ger detta en viss gardering som möjliggör en för- beredelse av de instruktioner som skall läsas in efter en spolning i samband med en felaktig förutsägelse.Flushing in case of an incorrect prediction takes time and capacity from the processor. In the event that a processor is used that uses two inputs, this provides a certain degree of protection that enables a preparation of the instructions to be read in after a flush in connection with an incorrect prediction.

Denna gardering betyder att de rätta instruktionerna finns redo i den första bufferten 113 men det är ändå en stor, och i dessa sammanhang dyrbar, operation att behöva spola allt innehåll i processorn, det vill säga i instruktionsmatrisen 3, där många av instruktionerna redan kan vara exekverade och redo för Commit.This guarding means that the correct instructions are ready in the first buffer 113, but it is still a large, and in these contexts expensive, operation to have to flush all the contents of the processor, i.e. in the instruction matrix 3, where many of the instructions may already be executed and ready for Commit.

I det fall en processor med en enkel inport nyttjas är tids- förlusterna på grund av en spolning vid en felaktig förut- sägelse ännu större.In the case of a processor with a simple input port, the time losses due to a flushing in the event of an incorrect prediction are even greater.

Uppfinningen bygger på en tidig hopprapportering som medför att resultatet 3lE från exekveringen av en villkorad hoppin- struktion kan nyttjas innan den villkorade hoppinstruktionen nått utläsningspositionen 4 i instruktionsbufferten 3. Ju tidigare detta resultat är känt desto mindre menlig effekt ger en spolning, och desto tidigare kan korrekta instruktioner hämtas, vid en felaktig förutsägelse av villkorets uppfyl- lande.The invention is based on an early jump report which means that the result 3IE from the execution of a conditional jump instruction can be used before the conditional jump instruction reaches the reading position 4 in the instruction buffer 3. The earlier this result is known, the less detrimental effect a flush gives. correct instructions are obtained, in the event of an incorrect prediction of the fulfillment of the condition.

När exekveringssteget för en villkorad hoppinstruktion är ut- fört så finns resultatet av exekveringen tillgängligt i pro- cessorn. Enligt tidigare känd teknik används inte detta resul- tat förrän den villkorade hoppinstruktionen nått positionen för Commit, det vill säga utläsningspositionen 4.When the execution step for a conditional jump instruction is performed, the result of the execution is available in the processor. According to prior art, this result is not used until the conditional jump instruction has reached the position of the Commit, i.e. the readout position 4.

Uppfinningen bygger således pà att resultatet från en exekve- ring av en villkorad hoppinstruktion används så snart det är 10 15 20 25 30 35 510 295 _ 13 _ tillgängligt.The invention is thus based on the fact that the result of an execution of a conditional jump instruction is used as soon as it is available 15 15 25 25 30 35 510 295 _ 13 _.

Detta görs genom att ATU'n 5 anpassas till att bevaka bearbe- tandet av en villkorad hoppinstruktion i processorn och så snart denna instruktion är exekverad så används resultatet till att fastställa riktigheten i förutsägelsen av villkorets uppfyllande.This is done by adapting the ATU 5 to monitor the processing of a conditional jump instruction in the processor and as soon as this instruction is executed, the result is used to determine the accuracy of the prediction of the fulfillment of the condition.

Vid en korrekt förutsägelse låter man förloppet fortlöpa. Vid en felaktig förutsägelse spolas alla instruktioner som ligger efter den villkorade hoppinstruktionen i inläsningssekvensen.With a correct prediction, the process is allowed to continue. In the event of an incorrect prediction, all instructions that follow the conditional jump instruction in the read sequence are flushed.

Detta medför att inte alla instruktioner i processorn skall spolas eftersom det fortfarande kan finnas, och troligtvis finns, instruktioner i processorn som sekvensiellt sett ligger före den villkorade hoppinstruktionen och därmed ej berörs av hoppet men som fortfarande inte är klara med exempelvis Fetch.This means that not all instructions in the processor should be flushed because there may still be, and probably are, instructions in the processor that are sequentially before the conditional jump instruction and thus not affected by the jump but which are still not finished with, for example, Fetch.

Detta medför att spolningen inte avser allt som finns i pro- cessorn utan endast vissa instruktioner. Dessa instruktioner kan ha kommit olika làngt i sin bearbetning i processorn. Oav- sett var de befinner sig i denna bearbetning spolas efterföl- jande instruktioner och kapacitet frigörs för exekvering av instruktioner som ännu ej nått steget för exekvering men som inte skall spolas.This means that flushing does not refer to everything in the processor but only to certain instructions. These instructions may have come differently in their processing in the processor. Regardless of where they are in this processing, subsequent instructions are flushed and capacity is released for executing instructions that have not yet reached the step of execution but are not to be flushed.

En processor som är anpassad att verka enligt den ovan be- skrivna metoden skall nu beskrivas närmare.A processor that is adapted to operate according to the method described above will now be described in more detail.

En processor av känt slag omfattar förenklat: - en inläsande enhet, här benämnd inport lll med tillhörande buffert 113, avsedd att läsa in instruktioner till proces- sorn fràn ett minne 2 med sekvensiellt pà varandra följande instruktioner, - en instruktionsbuffert 3, vari ett utrymme 31, 32, ..., 38 är tilldelbart till respektive inläst instruktion, där åt- 10 15 20 25 30 35 ~s1o 295, _19.. minstone en sista position inom instruktionsbufferten 3 ut- gör en utläsningsposition 4 från instruktionsbufferten, - en bearbetande enhet, här benämnd ALU 6, vilken är anpassad att bearbeta inlästa instruktioner, varefter resultatet från bearbetningen är lagringsbart i utrymmet 313 hörande till respektive instruktion i instruktionsbufferten 3, - en kontrollerande enhet 13, vilken är anpassad att kontrol- lera huruvida utläsningspositionen innefattar ett resultat fràn en bearbetning, - en utläsande enhet 14, vilken är anpassad att läsa resulta- tet fràn utläsningspositionen 4, - en förutsägande enhet 15, vilken är anpassad att, vid inlä- sandet av en villkorad hoppinstruktion, förutsäga villkor- ets uppfyllande, - en utvärderande 16 enhet, vilken är anpassad att utvärdera huruvida villkoret för den villkorade hoppinstruktion är uppfyllt enligt den förutsägelse som den förutsägande en- heten lämnat, samt - en borttagande enhet 17 vilken är anpassad att borttaga ur processorn inlästa och delvis bearbetade instruktioner som lästs in till processorn efter den villkorade hoppinstruk- tionen om förutsägelsen visat sig vara felaktig.A processor of a known type simply comprises: - a loading unit, here referred to as input lll with associated buffer 113, intended to read instructions to the processor from a memory 2 with sequentially consecutive instructions, - an instruction buffer 3, in which a space 31, 32, ..., 38 is assignable to the respective read instruction, where at least one last position within the instruction buffer 3 constitutes a readout position 4 from the instruction buffer, a processing unit, here referred to as ALU 6, which is adapted to process loaded instructions, after which the result of the processing is storable in the space 313 belonging to the respective instruction in the instruction buffer 3, a controlling unit 13, which is adapted to check whether the reading position comprises a result from a processing, - a reading unit 14, which is adapted to read the result from the reading position 4, - a predictive unit 15, which is adapted to, when reading a conditional jump instruction, predict the fulfillment of the condition, - an evaluating unit 16, which is adapted to evaluate whether the condition of the conditional jump instruction is fulfilled according to the prediction made by the predictive jump instruction. unit, and - a removal unit 17 which is adapted to remove from the processor read and partially processed instructions which are read into the processor according to the conditional jump instruction if the prediction is found to be incorrect.

Med utgàngs punkt av en sådan processor l anvisar föreliggande uppfinning speciellt att processorn även omfattar en resultat- indikerande enhet 18, vilken är anpassad att indikera när res- ultatet från bearbetningen av en villkorad hoppinstruktion är lagrat i positionen för den villkorade hoppinstruktionen inom instruktionsbufferten.Starting from such a processor 1, the present invention specifically discloses that the processor also comprises a result indicating unit 18, which is adapted to indicate when the result of the processing of a conditional jump instruction is stored in the position of the conditional jump instruction within the instruction buffer.

Vidare anvisas att den utvärderande enheten 16 är anpassad att 10 15 20 25 30 35 _s1o 295- _ 29 _ inhämta resultatet 3lE från bearbetningen av den villkorade hoppinstruktion då detta är tillgängligt enligt den resultat- indikerande enheten 18, varvid utvärderingen är möjlig av huruvida villkoret för den villkorade hoppinstruktion är upp- fyllt eller ej enligt den förutsägelse som den förutsägande enheten 15 lämnat. Denna inhämtning av resultatet är således möjlig oavsett om positionen för den villkorade hoppinstruk- tionen är i utläsningspositionen 4 inom instruktionsbufferten 3 eller ej.It is further indicated that the evaluating unit 16 is adapted to obtain the result 3IE from the processing of the conditional jump instruction when this is available according to the result indicating unit 18, the evaluation being possible of whether the condition for the conditional jump instruction is fulfilled or not according to the prediction made by the predictive unit 15. This retrieval of the result is thus possible regardless of whether the position of the conditional jump instruction is in the readout position 4 within the instruction buffer 3 or not.

Föreliggande uppfinning anvisar även att den borttagande en- heten 17 är anpassad att endast borttaga instruktioner ur pro- cessorn som är sekvensiellt inlästa efter den villkorade hopp- instruktionen, oavsett var dessa befinner sig i bearbetningen av instruktioner, vid en signal från den utvärderande enheten 16 som visar att förutsägelsen av uppfyllandet av villkoret var felaktig.The present invention also provides that the removal unit 17 is adapted to only remove instructions from the processor which are sequentially loaded after the conditional jump instruction, regardless of where they are in the processing of instructions, at a signal from the evaluating unit 16. which shows that the prediction of the fulfillment of the condition was incorrect.

I den ovanstående beskrivningen hänvisas det till villkorade hoppinstruktioner som läses in från ett program-minne 2. Då en sådan instruktion omvandlas i den omvandlande enheten 5 till micro-kod utgör en sådan processor-extern instruktion troligt- vis ett flertal processor-interna instruktioner i micro-kod.In the above description, reference is made to conditional jump instructions read from a program memory 2. When such an instruction is converted in the converting unit 5 to micro-code, such a processor external instruction probably constitutes a plurality of processor-internal instructions in micro-code.

Det finns även exempel på processor-externa instruktioner som inte omfattar ett villkorat hopp men där dess motsvarighet i processor-intern kod omfattar en villkorad hoppinstruktion.There are also examples of processor-external instructions that do not include a conditional jump but where its equivalent in processor-internal code includes a conditional jump instruction.

Exempelvis kan en processor-extern instruktion utan villkorade hoppinstruktioner översatt till micro-kod resultera i en processor-intern loop med en villkorad hoppinstruktion, där villkoret består i att loopen skall brytas vid uppfyllandet av ett visst villkor.For example, a processor-external instruction without conditional jump instructions translated into micro-code can result in a processor-internal loop with a conditional jump instruction, where the condition is that the loop must be broken when a certain condition is met.

Således omfattar föreliggande uppfinning även en metod för att hantera processor-interna villkorade hoppinstruktioner i en dataprocessor där de villkorade hoppinstruktionerna inte nöd- vändigtvis härrör från en processor-extern villkorad hoppin- 10 15 20 25 30 35 510 295 _ 21 _ struktion.Thus, the present invention also encompasses a method of handling processor-internal conditional jump instructions in a data processor where the conditional jump instructions do not necessarily result from a processor-external conditional jump instruction 10 15 20 25 30 35 510 295 _ 21 _ instruction.

Villkorets uppfyllande avgör huruvida de instruktioner som sekvensiellt följer direkt efter nämnda villkorade hoppin- struktion skall bearbetas av processorn eller om ett hopp i sekvensen av processor-interna instruktioner skall göras.The fulfillment of the condition determines whether the instructions that follow sequentially directly after said conditional jump instruction are to be processed by the processor or whether a jump in the sequence of processor-internal instructions is to be made.

Ett sådant hopp medför att efterföljande processor-interna instruktioner skall läsas in från någon annan plats i sek- vensen, eller från efterföljande omvandlade processor-externa instruktion, enligt den villkorade hoppinstruktionen.Such a jump means that subsequent processor-internal instructions must be read from somewhere else in the sequence, or from subsequent converted processor-external instructions, according to the conditional jump instruction.

En felaktig förutsägelse av villkorets uppfyllande resulterar i att efterföljande inlästa och delvis bearbetade processor- interna instruktioner spolas för att bereda plats för en in- läsning av, enligt villkorets uppfyllande, korrekta processor- interna instruktioner.An incorrect prediction of the fulfillment of the condition results in subsequent read and partially processed processor-internal instructions being flushed to make room for a reading of, according to the fulfillment of the condition, correct processor-internal instructions.

I detta fall tas inte alla instruktioner i processorn bort eftersom det fortfarande finns inlästa processor-externa in- struktioner som ännu ej omvandlats till processor-interna in- struktioner och som inte berörs av den processor-interna vill- korade hoppinstruktionen.In this case, not all instructions in the processor are deleted because there are still loaded processor-external instructions that have not yet been converted to processor-internal instructions and that are not affected by the processor-internal conditional jump instruction.

När en processor-intern villkorad hoppinstruktion är funnen läsas inte den efterföljande processor-externa instruktionen in till ATU'n 5 för omvandling, vilket betyder att vid ett bort-tagande av instruktioner på grund av en felaktig förut- sägelse av ett villkors uppfyllande tas endast processor-in- terna instruktioner bort och nästa processor-externa instruk- tion kan läsas in till ATU'n 5 för omvandling.When a processor-internal conditional jump instruction is found, the subsequent processor-external instruction is not loaded into the ATU 5 for conversion, which means that in the event of a deletion of instructions due to an incorrect prediction of a condition being fulfilled, only processor-internal instructions removed and the next processor-external instruction can be loaded into the ATU 5 for conversion.

Föreliggande uppfinning anvisar då speciellt att utfallet från bearbetandet av en villkorad hoppinstruktion, och därmed vet- skapen om uppfyllandet av villkoret, göres tillgängligt för utvärdering så snart bearbetandet är genomfört, även om detta sker innan utrymmet inom instruktionsbufferten, hörande till 10 15 20 25 30 35 s1o_ 295 _ _ 22 _ den villkorade hoppinstruktionen, nått utläsningspositionen 4.In particular, the present invention teaches that the outcome of the processing of a conditional jump instruction, and thus the knowledge of the fulfillment of the condition, is made available for evaluation as soon as the processing is completed, even if this occurs before the space within the instruction buffer, belonging to 35 s1o_ 295 _ _ 22 _ the conditional jump instruction, reached the readout position 4.

Vidare anvisar föreliggande uppfinning att, vid en felaktig förutsägelse av uppfyllandet av villkoret, borttagandet av instruktioner ur processorn endast berör processor-interna instruktioner som är sekvensiellt inlästa efter den villkorade hoppinstruktionen, oavsett var dessa befinner sig i bearbet- ningen av instruktioner.Furthermore, the present invention provides that, in the event of an incorrect prediction of the fulfillment of the condition, the deletion of instructions from the processor only affects processor-internal instructions which are sequentially loaded after the conditional jump instruction, regardless of where they are in the processing of instructions.

En processor som är anpassad till att även taga hänsyn till processor-interna villkorade hoppinstruktioner skall, liksom den tidigare beskrivna processorn, omfatta en resultat-indi- kerande enhet 18, vilken är anpassad att indikera när res- ultatet fràn bearbetningen av en villkorad hoppinstruktion är lagrat i positionen för den villkorade hoppinstruktionen inom instruktionsbufferten.A processor adapted to also take into account processor-internal conditional jump instructions shall, like the previously described processor, comprise a result indicating unit 18, which is adapted to indicate when the result of the processing of a conditional jump instruction is stored in the position of the conditional jump instruction within the instruction buffer.

Den omfattar även en utvärderande enhet 16 som är anpassad att inhämta resultatet från bearbetningen av den processor-interna villkorade hoppinstruktionen då detta är tillgängligt enligt den resultat-indikerande enheten 18.It also comprises an evaluation unit 16 which is adapted to obtain the result of the processing of the processor-internal conditional jump instruction when this is available according to the result-indicating unit 18.

Därvid är det möjligt för den utvärderande enheten 16 att genomföra en utvärderingén av huruvida villkoret för den pro- cessor-interna villkorade hoppinstruktionen är uppfyllt eller ej enligt den förutsägelse som en förutsägande enhet 15 lämnat.In this case, it is possible for the evaluating unit 16 to carry out an evaluation of whether the condition for the processor-internal conditioned jumping instruction is fulfilled or not according to the prediction made by a predictive unit 15.

Vidare anvisar föreliggande uppfinning att en borttagande en- het 17 är anpassad att borttaga processor-interna instruk- tioner ur processorn som är sekvensiellt inlästa efter den processor-interna villkorade hoppinstruktionen, oavsett var dessa befinner sig i bearbetningen av instruktioner, vid en signal från den utvärderande enheten 16 som visar att förut- sägelsen av uppfyllandet av villkoret var felaktig.Furthermore, the present invention provides that a removal unit 17 is adapted to remove processor-internal instructions from the processor which are sequentially loaded after the processor-internal conditional jump instruction, regardless of where they are in the processing of instructions, at a signal from the processor. evaluation unit 16 which shows that the prediction of the fulfillment of the condition was incorrect.

Uppfinningen är givetvis inte begränsad till den ovan såsom 510 29-5 _ 23 _ exempel angivna utföringsformen utan kan genomgå modifikatio- ner inom ramen för uppfinningstanken illustrerad i efter- följande patentkrav.The invention is of course not limited to the embodiment stated above as an example, but may undergo modifications within the scope of the inventive concept illustrated in the following claims.

Claims (12)

10 15 20 25 30 35 '510 295 _ _ 24 _ PATENTKRAV10 15 20 25 30 35 '510 295 _ _ 24 _ PATENTKRAV 1. Metod för att hantera specifika instruktioner, så kallade villkorade hoppinstruktioner, i en dataprocessor, där nämnda villkorade hoppinstruktion utgör en av flera sekvensiellt in- lästa instruktioner till nämnda processor, där villkorets upp- fyllande avgör huruvida de instruktioner som sekvensiellt följer direkt efter nämnda villkorade hoppinstruktion skall läsas in till nämnda processor eller om ett hopp i nämnd sek- vens av instruktioner skall göras, vilket medför att efter- följande instruktioner skall läsas in från någon annan plats i nämnda sekvens enligt nämnda villkorade hoppinstruktion, där utrymme är tilldelat respektive inläst instruktion i en här benämnd instruktionsbuffert, där nämnda utrymmen i nämnda in- struktionsbuffert är tilldelade en inbördes ordning som mot- svaras av nämnda sekvensiella ordning och där åtminstone en sista position inom nämnda instruktionsbuffert utgör en utläs- ningsposition fràn nämnda instruktionsbuffert, varefter nämnda instruktioner är bearbetbara av nämnda processor och varefter resultatet frán nämnda bearbetning är lagringsbara i respek- tive utrymme hörande till nämnda instruktion i nämnda instruk- tionsbuffert, för att slutligen vara utläsbart fràn nämnda ut- läsningsposition i nämnda sekvensiella ordning, och där nämnda processor, vid inläsandet av en villkorad hoppinstruktion, förutsäger villkorets uppfyllande, varefter instruktioner är läsbara till, och bearbetbara av, nämnda processor enligt nämnda förutsägelse direkt efter inläsandet av nämnda vill- korade hoppinstruktion, där en felaktig förutsägelse resul- terar i att efterföljande inlästa och delvis bearbetade in- struktioner tas bort ur nämnda processor för att bereda plats för en inläsning av, enligt nämnda villkors uppfyllande, kor- rekta instruktioner, k ä n n e t e c k n a d därav, att ut- fallet fràn bearbetandet av nämnda villkorade hoppinstruktion, och därmed vetskapen om uppfyllandet av nämnda villkor, göres tillgängligt för utvärdering så snart nämnda bearbetande är genomfört, även i det fall som detta sker innan utrymmet inom nämnda instruktionsbuffert, hörande till nämnda villkorade 10 15 20 25 30 35 510 2953* _25- hoppinstruktion, nàtt nämnda utläsningsposition.A method for handling specific instructions, so-called conditional jump instructions, in a computer processor, wherein said conditional jump instruction is one of several sequentially read instructions to said processor, wherein the fulfillment of the condition determines whether the instructions sequentially follow directly after said conditional jump instruction shall be loaded into said processor or if a jump in said sequence of instructions is to be made, which means that subsequent instructions shall be loaded from another location in said sequence according to said conditional jump instruction, where space is allocated respectively loaded. instruction in an instruction buffer referred to herein, wherein said spaces in said instruction buffer are assigned a mutual order corresponding to said sequential order and where at least one last position within said instruction buffer constitutes a readout position from said instruction buffer, after which said instructions are bea processable by said processor and after which the result of said processing is storable in respective space belonging to said instruction in said instruction buffer, to finally be readable from said readout position in said sequential order, and where said processor, at the reading of a conditional jump instruction, predicts fulfillment of the condition, after which instructions are readable to, and editable by, said processor according to said prediction immediately after reading said conditional jump instruction, where an incorrect prediction results in subsequent loaded and partially processed instructions. is removed from said processor to provide space for a reading of, according to the fulfillment of said conditions, correct instructions, characterized in that the outcome of the processing of said conditional jump instruction, and thus the knowledge of the fulfillment of said conditions, is made available for evaluation as soon as namely This processing is carried out, even in the case where this takes place before the space within said instruction buffer, belonging to said conditional jump instruction, reaches said readout position. 2. Metod enligt patentkravet 1, k ä n n e t e c k n a d därav, att, vid en felaktig förutsägelse av uppfyllandet av nämnda villkor, nämnda borttagande av instruktioner ur nämnda processor endast berör instruktioner som är sekvensiellt in- lästa efter nämnda villkorade hoppinstruktion, oavsett var dessa befinner sig i nämnda bearbetning av instruktioner.Method according to claim 1, characterized in that, in the event of an incorrect prediction of the fulfillment of said conditions, said removal of instructions from said processor only affects instructions which are sequentially loaded according to said conditional jump instruction, regardless of where they are located. in said processing of instructions. 3. Metod enligt patentkraven l och 2, där inläsningen av in- struktioner till nämnda processor sker via en enkel inport, k ä n n e t e c k n a d därav, att inläsandet av nämnda kor- rekta instruktioner börjar direkt vid en tillgänglig vetskap om att en felaktig förutsägelse av uppfyllandet av ett villkor hörande till en villkorad hoppinstruktion, och att denna in- läsning sker via nämnda enkla inport.Method according to claims 1 and 2, wherein the reading of instructions to said processor takes place via a simple input, characterized in that the reading of said correct instructions begins directly with an available knowledge that an incorrect prediction of the fulfillment of a condition belonging to a conditional jump instruction, and that this loading takes place via the said simple input. 4. Metod enligt patentkraven 1 och 2, där inläsningen av in- struktioner till nämnda processor sker via en av tvà inportar, med tillhörande buffertar, hörande till en dubbel inport, och där, vid en inläsning av en villkorad hoppinstruktion, inläs- ningen av instruktioner enligt en förutsägelse av uppfyllandet av nämnda villkorade hoppinstruktion läses in till nämnda pro- cessor via en första inport hörande till nämnda dubbla inport och inläsningen av instruktioner enligt ett andra möjligt ut- fall av uppfyllandet av nämnda villkorade hoppinstruktion läses in till nämnda processor via en andra inport hörande till nämnda dubbla inport, där inlästa instruktioner lagras i respektive buffert, k ä n n e t e c k n a d därav, att in- läsandet av nämnda korrekta instruktioner börjar direkt vid en tillgänglig vetskap om att en felaktig förutsägelse av uppfyl- landet av ett villkor hörande till en villkorad hoppinstruk- tion, och att denna inläsning sker frán bufferten hörande till nämnda andra inport.A method according to claims 1 and 2, wherein the reading of instructions to said processor takes place via one of two inputs, with associated buffers, belonging to a double input, and where, in the case of a reading of a conditional jump instruction, the reading of instructions according to a prediction of the fulfillment of said conditional jump instruction are read into said processor via a first input belonging to said double input and the reading of instructions according to a second possible outcome of the fulfillment of said conditional jump instruction is read into said processor via a second input belonging to said double input, where read instructions are stored in the respective buffer, characterized in that the reading of said correct instructions begins directly with an available knowledge that an incorrect prediction of the fulfillment of a condition belonging to a conditional jumping instruction, and that this loading takes place from the buffer belonging to said other i nport. 5. Processor, omfattande en inläsande enhet, avsedd att läsa in instruktioner till processorn från ett minne med sekvensi- 10 15 20 25 30 35 510 295 _26- ellt pà varandra följande instruktioner, av vilka vissa är så kallade villkorade hoppinstruktioner, där villkorets uppfyl- lande avgör huruvida de instruktioner som sekvensiellt följer direkt efter nämnda villkorade hoppinstruktion skall läsas in till nämnda processor eller om ett hopp i nämnd sekvens av in- struktioner skall göras, vilket medför att efterföljande in- struktioner skall läsas in från någon annan plats i nämnda sekvens enligt nämnda villkorade hoppinstruktion, en instruk- tionsbuffert, vari utrymme är tilldelbart respektive inläst instruktion, vilka utrymmen är tilldelade en inbördes ordning som motsvaras av nämnda sekvensiella ordning och där åtmin- stone en sista position inom nämnda instruktionsbuffert utgör en utläsningsposition från nämnda instruktionsbuffert, en be- arbetande enhet, vilken är anpassad att bearbeta nämnda in- struktioner, varefter resultatet från nämnda bearbetning är lagringsbart i respektive utrymme hörande till nämnda instruk- tion i nämnda instruktionsbuffert, en kontrollerande enhet, vilken är anpassad att kontrollera huruvida nämnda utläsnings- position innefattar ett resultat från en bearbetning, en ut- läsande enhet, vilken är anpassad att läsa nämnda resultat från nämnda utläsningsposition, en förutsägande enhet, vilken är anpassad att, vid inläsandet av en villkorad hoppinstruk- tion, förutsäga villkorets uppfyllande, varvid nämnda inläs- ande enhet är anpassad att inläsa instruktioner till nämnda processor enligt nämnda förutsägelse direkt efter inläsandet av nämnda villkorade hoppinstruktion, en utvärderande enhet, vilken är anpassad att utvärdera huruvida villkoret för nämnda villkorade hoppinstruktion är uppfyllt enligt den förutsägelse som nämnda förutsägande enhet lämnat, samt en borttagande en- het vilken är anpassad att borttaga inlästa och delvis bear- betade instruktioner som lästs in till nämnda processor efter nämnda villkorade hoppinstruktion ur nämnda processor om nämnda förutsägelse visat sig vara felaktig, k ä n n e - t e c k n a d därav, att nämnda processor omfattar en resultat-indikerande enhet, vilken är anpassad att indikera när resultatet fràn bearbetningen av en villkorad hoppinstruk- tion är lagrat i positionen för nämnda villkorade hoppinstruk- 10 15 20 25 30 35 510 295 _ 27 _ tion inom nämnda instruktionsbuffert, och att nämnda utvärde- rande enhet är anpassad att inhämta resultatet från nämnda bearbetning av nämnda villkorade hoppinstruktion då detta är tillgängligt enligt nämnda resultat-indikerande enhet, varvid nämnda utvärdering av huruvida villkoret för nämnda villkorade hoppinstruktion är uppfyllt eller ej enligt den förutsägelse som nämnda förutsägande enhet lämnat är möjlig.Processor, comprising a loading unit, intended to read instructions to the processor from a memory with sequential instructions in succession, some of which are so-called conditional jump instructions, where the fulfillment of the condition - determines whether the instructions sequentially following directly after said conditional jump instruction are to be read into said processor or whether a jump in said sequence of instructions is to be made, which means that subsequent instructions are to be read from somewhere else in said a sequence according to said conditional jump instruction, an instruction buffer, wherein space is allocable and loaded instruction, respectively, which spaces are assigned a mutual order corresponding to said sequential order and where at least one last position within said instruction buffer constitutes a readout position from said instruction buffer, a processing unit, which is adapted to process said instructions, after which the result of said processing is storable in the respective space belonging to said instruction in said instruction buffer, a controlling unit, which is adapted to check whether said reading position comprises a result of a processing, a reading unit, which is adapted to read said result from said readout position, a predictive unit, which is adapted to, when reading a conditional jump instruction, predict the fulfillment of the condition, said reading unit being adapted to read instructions to said processor according to said prediction immediately after reading said conditional jump instruction, an evaluation unit, which is adapted to evaluate whether the condition of said conditional jump instruction is met according to the prediction made by said predictive unit, and a removal unit which is adapted to remove loaded and partial processed instructions read into said processor after said conditional jump instruction from said processor if said prediction proved to be incorrect, characterized in that said processor comprises a result indicating unit, which is adapted to indicate when the result of the processing of a conditional jump instruction is stored in the position of said conditional jump instruction within said instruction buffer, and that said evaluating unit is adapted to obtain the result of said processing of said conditional jump instruction when this is available according to said result-indicating unit, said evaluation of whether the condition for said conditional jumping instruction is fulfilled or not according to the prediction made by said predictive unit being possible. 6. Processor enligt patentkravet 5, k ä n n e t e c k n a d därav, att nämnda borttagande enhet är anpassad att borttaga instruktioner ur nämnda processor som är sekvensiellt inlästa efter nämnda villkorade hoppinstruktion, oavsett var dessa befinner sig i nämnda bearbetning av instruktioner, vid en signal från nämnda utvärderande enhet som visar att nämnda förutsägelse av uppfyllandet av nämnda villkor var felaktig.Processor according to claim 5, characterized in that said removing unit is adapted to remove instructions from said processor which are sequentially loaded according to said conditional jump instruction, regardless of where they are in said processing of instructions, at a signal from said evaluating unit showing that said prediction of fulfillment of said conditions was incorrect. 7. Processor enligt patentkraven 5 och 6, vilken är tilldelad en enkel inport varigenom inläsningen av instruktioner till nämnda processor sker, k ä n n e t e c k n a d därav, att nämnda processor är anpassad påbörja ett inläsande av nämnda korrekta instruktioner direkt vid en signal från nämnda utvär- derande enhet som visar att nämnda förutsägelse av uppfyllan- det av nämnda villkor var felaktig, och att denna inläsning sker via nämnda enkla inport.Processor according to claims 5 and 6, which is assigned a simple input whereby the reading of instructions to said processor takes place, characterized in that said processor is adapted to start a reading of said correct instructions directly at a signal from said evaluator. unit which shows that said prediction of the fulfillment of said conditions was incorrect, and that this loading takes place via said simple input. 8. Processor enligt patentkraven 5 och 6, vilken är tilldelad en dubbel inport, med en första och en andra inport och till- hörande buffertar, vilken processor är anpassad att läsa in instruktioner till via en av nämnda två inportar, och där, nämnda processor är anpassad att, vid en inläsning av en vill- korad hoppinstruktion, läsa in instruktioner enligt en förut- sägelse av uppfyllandet av nämnda villkorade hoppinstruktion via nämnda första inport hörande till nämnda dubbla inport och instruktioner enligt ett andra möjligt utfall av uppfyllandet av nämnda villkorade hoppinstruktion via nämnda andra inport hörande till nämnda dubbla inport, där respektive buffert är anpassad att lagra inlästa instruktioner, k ä n n e t e c k - 10 15 20 25 30 35 510 295 _ 23 _ n a d därav, att nämnda processor är anpassad att pàbörja ett inläsande av nämnda korrekta instruktioner direkt vid en sig- nal från nämnda utvärderande enhet som visar att nämnda förut- sägelse av uppfyllandet av nämnda villkor var felaktig, och att denna inläsning sker från bufferten hörande till nämnda andra inport.A processor according to claims 5 and 6, which is assigned a dual input port, with a first and a second input port and associated buffers, which processor is adapted to read instructions to via one of said two input ports, and there, said processor is adapted to, when reading a conditional jump instruction, read instructions according to a prediction of the fulfillment of said conditional jump instruction via said first input belonging to said double input and instructions according to a second possible outcome of the fulfillment of said conditional jump instruction via said second input port belonging to said dual input port, where the respective buffer is adapted to store read instructions, characterized in that said processor is adapted to start a reading of said correct instructions directly at a signal from said evaluation unit showing that said prediction of the fulfillment of said conditions was incorrect, and that this loading takes place from the buffer belonging to said second input port. 9. Metod för att hantera specifika instruktioner, så kallade villkorade hoppinstruktioner, i en dataprocessor, där nämnda processor omfattar en omvandlande enhet, vilken omvandlar in- struktioner som är inlästa till nämnda processor på en proces- sor-extern kod till en processor-intern kod, där en till nämnda processor inläst processor-extern instruktion kan re- sultera i en sekvens av olika processor-interna instruktioner, varav vissa kan utgöras av nämnda villkorade hoppinstrukti- oner, där villkorets uppfyllande avgör huruvida de instrukti- oner som sekvensiellt följer direkt efter nämnda villkorade hoppinstruktion skall bearbetas av nänmda processor eller om ett hopp i nämnd sekvens av processor-interna instruktioner skall göras, vilket medför att efterföljande processor-interna instruktioner skall läsas in från någon annan plats i nämnda sekvens, eller fràn efterföljande omvandlade processor-externa instruktion, enligt nämnda villkorade hoppinstruktion, där ut- rymme är tilldelat respektive processor-interna instruktion i en här benämnd instruktionsbuffert, där nämnda utrymmen i nämnda instruktionsbuffert är tilldelade en inbördes ordning som motsvaras av nämnda sekvensiella ordning och där åtmin- stone en sista position inom nämnda instruktionsbuffert utgör en utläsningsposition från nämnda instruktionsbuffert, var- efter nämnda instruktioner är bearbetbara av nämnda processor och varefter resultatet från nämnda bearbetning är lagrings- bara i respektive utrymme hörande till nämnda instruktion i nämnda instruktionsbuffert, för att slutligen vara utläsbart från nämnda utläsningsposition i nämnda sekvensiella ordning, och där nämnda processor, vid inläsandet av en villkorad hopp- instruktion, förutsäger villkorets uppfyllande, varefter in- struktioner är bearbetbara av nämnda processor i en ordning 10 15 20 25 30 35 s1o*29s _ 29 - enligt nämnda förutsägelse direkt efter inläsandet av nämnda villkorade hoppinstruktion, där en felaktig förutsägelse res- ulterar i att efterföljande inlästa och delvis bearbetade pro- cessor-interna instruktioner tas bort ur nämnda processor för att bereda plats för en inläsning av, enligt nämnda villkors uppfyllande, korrekta processor-interna instruktioner, k ä n n e t e c k n a d därav, att utfallet från bearbetandet av nämnda villkorade hoppinstruktion, och därmed vetskapen om uppfyllandet av nämnda villkor, göres tillgängligt för utvär- dering sá snart nämnda bearbetande är genomfört, även i det fall som detta sker innan utrymmet inom nämnda instruktions- buffert, hörande till nämnda villkorade hoppinstruktion, nàtt nämnda utläsningsposition.A method of handling specific instructions, so-called conditional jump instructions, in a data processor, said processor comprising a converting unit, which converts instructions loaded into said processor on a processor-external code into a processor-internal code, where a processor-external instruction loaded into said processor can result in a sequence of different processor-internal instructions, some of which may consist of said conditional jump instructions, where the fulfillment of the condition determines whether the instructions that follow sequentially directly after said conditional jump instruction is to be processed by said processor or if a jump in said sequence of processor-internal instructions is to be made, which means that subsequent processor-internal instructions are to be read from somewhere else in said sequence, or from subsequent converted processor-external instruction, according to the said conditional jumping instruction, where space is allocated respective internal processor instructions in an instruction buffer referred to herein, wherein said spaces in said instruction buffer are assigned a mutual order corresponding to said sequential order and wherein at least one last position within said instruction buffer constitutes a readout position from said instruction buffer, after which said instructions are machinable by said processor and then the result of said machining is storable in the respective space belonging to said instruction in said instruction buffer, to finally be readable from said readout position in said sequential order, and where said processor, upon reading a conditional jump instruction, predicts fulfillment of the condition, after which instructions are machinable by said processor in an order 10 15 20 25 30 35 s1o * 29s _ 29 - according to said prediction immediately after reading said conditional jump instruction, where an incorrect prediction results. i that subsequently read and partially processed processor-internal instructions are removed from said processor to make room for a reading of, according to said conditions, correct processor-internal instructions, characterized in that the outcome of the processing of said conditional jump instruction , and thus the knowledge of the fulfillment of said conditions, is made available for evaluation as soon as said processing has been completed, even in the case where this takes place before the space within said instruction buffer, belonging to said conditional jump instruction, reaches said reading position. 10. Metod enligt patentkravet 9, k ä n n e t e c k n a d därav, att, vid en felaktig förutsägelse av uppfyllandet av nämnda villkor, nämnda borttagande av instruktioner ur nämnda processor endast berör processor-interna instruktioner som är sekvensiellt inlästa efter nämnda villkorade hoppinstruktion, oavsett var dessa befinner sig i nämnda bearbetning av in- struktioner.Method according to claim 9, characterized in that, in the event of an incorrect prediction of the fulfillment of said conditions, said removal of instructions from said processor only concerns processor-internal instructions which are sequentially loaded according to said conditional jump instruction, regardless of where they are located. in the said processing of instructions. 11. ll. Processor, omfattande en omvandlande enhet, vilken är an- passad att omvandla instruktioner som är inlästa till nämnda processor på en processor-extern kod till en processor-intern kod, där en till nämnda processor inläst processor-extern in- struktion kan resultera i en sekvens av olika processor-inter na instruktioner, varav vissa kan utgöras av villkorade hopp- instruktioner, där villkorets uppfyllande avgör huruvida de instruktioner som sekvensiellt följer direkt efter nämnda villkorade hoppinstruktion skall bearbetas av nänmda processor eller om ett hopp i nämnd sekvens av processor-interna in- struktioner skall göras, vilket medför att efterföljande pro- cessor-interna instruktioner skall läsas in från någon annan plats i nämnda sekvens, eller från efterföljande omvandlade processor-externa instruktion, enligt nämnda villkorade hopp- instruktion, en instruktionsbuffert, vari utrymme är tilldel- 10 15 20 25 30 35 510 295 _ _ 30 _ bart respektive inläst instruktion, vilka utrymmen är tillde- lade en inbördes ordning som motsvaras av nämnda sekvensiella ordning och där åtminstone en sista position inom nämnda in- struktionsbuffert utgör en utläsningsposition från nämnda instruktionsbuffert, en bearbetande enhet, vilken är anpassad att bearbeta nämnda instruktioner, varefter resultatet från nämnda bearbetning är lagringsbart i respektive utrymme höran- de till nämnda instruktion i nämnda instruktionsbuffert, en kontrollerande enhet, vilken är anpassad att kontrollera huru- vida nämnda utläsningsposition innefattar ett resultat från en bearbetning, en utläsande enhet, vilken är anpassad att läsa nämnda resultat från nämnda utläsningsposition, en förutsä- gande enhet, vilken är anpassad att, vid en processor-intern villkorad hoppinstruktion, förutsäga villkorets uppfyllande, varvid nämnda bearbetande enhet är anpassad att bearbeta in- struktioner enligt nämnda förutsägelse direkt efter inläsandet av nämnda villkorade hoppinstruktion, en utvärderande enhet, vilken är anpassad att utvärdera huruvida villkoret för nämnda villkorade hoppinstruktion är uppfyllt enligt den förutsägelse som nämnda förutsägande enhet lämnat, samt en borttagande en- het vilken är anpassad att borttaga inlästa och delvis bear- betade processor-interna instruktioner som lästs in till nämnda instruktionsbuffert efter nämnda villkorade hoppin- struktion ur nämnda processor om nämnda förutsägelse visat sig vara felaktig, k ä n n e t e c k n a d därav, att nämnda processor omfattar en resultat-indikerande enhet, vilken är anpassad att indikera när resultatet fràn bearbetningen av en villkorad hoppinstruktion är lagrat i positionen för nämnda villkorade hoppinstruktion inom nämnda instruktionsbuffert, och att nämnda utvärderande enhet är anpassad att inhämta resultatet från nämnda bearbetning av nämnda villkorade hopp- instruktion dà detta är tillgängligt enligt nämnda resultat- indikerande enhet, varvid nämnda utvärdering av huruvida vill- koret för nämnda processor-interna villkorade hoppinstruktion är uppfyllt eller ej enligt den förutsägelse som nämnda förut- sägande enhet lämnat är möjlig. 510 295' _ 31 _11. ll. Processor, comprising a converting unit, which is adapted to convert instructions read into said processor on a processor external code into a processor internal code, where a processor external instruction loaded into said processor can result in a sequence of different processor-internal instructions, some of which may consist of conditional jump instructions, where the fulfillment of the condition determines whether the instructions sequentially following directly after said conditional jump instruction are to be processed by said processor or whether a jump in said sequence of processor-internal instructions must be made, which means that subsequent processor-internal instructions must be read from some other place in said sequence, or from subsequent converted processor-external instruction, according to said conditional jump instruction, an instruction buffer, in which space is allocated - 10 15 20 25 30 35 510 295 _ _ 30 _ bare and loaded instruction, which spaces are assigned a mutual order corresponding to said sequential order and where at least one last position within said instruction buffer constitutes a readout position from said instruction buffer, a processing unit which is adapted to process said instructions, after which the result of said processing is storable. in the respective space belonging to said instruction in said instruction buffer, a controlling unit, which is adapted to check whether said reading position comprises a result from a processing, a reading unit, which is adapted to read said result from said reading position, a predictive unit, which is adapted to, in the case of a processor-internal conditional jump instruction, predict the fulfillment of the condition, said processing unit being adapted to process instructions according to said prediction immediately after reading said conditional jump instruction, an evaluating unit, which is adapted to evaluate whether the condition of said conditional jump instruction is met according to the prediction made by said predictive unit, and a deleting unit which is adapted to delete read and partially processed processor internal instructions loaded into said instruction buffer after said conditional jump instruction from said processor if said prediction is found to be incorrect, characterized in that said processor comprises a result indicating unit, which is adapted to indicate when the result from the processing of a conditional jump instruction is stored in the position of said conditional jump instruction. within said instruction buffer, and that said evaluating unit is adapted to obtain the result of said processing of said conditional jump instruction as this is available according to said result indicating unit, said evaluation of whether the condition of said processor internally The correct jump instruction is fulfilled or not according to the prediction made by the said predictive unit is possible. 510 295 '_ 31 _ 12. Processor enligt patentkravet ll, k ä n n e t e c k n a d därav, att nämnda borttagande enhet är anpassad att borttaga processor-interna instruktioner ur nämnda processor som är sekvensiellt inlästa efter nämnda villkorade hoppinstruktion, oavsett var dessa befinner sig i nämnda bearbetning av in- struktioner, vid en signal från nämnda utvärderande enhet som visar att nämnda förutsägelse av uppfyllandet av nämnda villkor var felaktig.Processor according to claim 11, characterized in that said removing unit is adapted to remove processor internal instructions from said processor which are sequentially loaded according to said conditional jump instruction, regardless of where they are in said processing of instructions, at a signal from said evaluating unit showing that said prediction of fulfillment of said conditions was incorrect.
SE9702762A 1997-07-21 1997-07-21 Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method SE510295C2 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
SE9702762A SE510295C2 (en) 1997-07-21 1997-07-21 Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method
JP2000503482A JP2001510916A (en) 1997-07-21 1998-07-07 Processing method of conditional jump instruction in data processor
CN98809339A CN1271434A (en) 1997-07-21 1998-07-07 Method and processor adapted for handling of conditional jumps
KR1020007000634A KR20010022065A (en) 1997-07-21 1998-07-07 A method and a processor adapted for the handling of conditional jumps
AU83652/98A AU8365298A (en) 1997-07-21 1998-07-07 A method for handling conditional jump instructions in a data processor
BR9810768-2A BR9810768A (en) 1997-07-21 1998-07-07 Process of handling specific instructions, and, processor
PCT/SE1998/001334 WO1999004335A2 (en) 1997-07-21 1998-07-07 A method and a processor adapted for the handling of conditional jumps
EP98934048A EP0998701A2 (en) 1997-07-21 1998-07-07 A method for handling conditional jump instructions in a data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9702762A SE510295C2 (en) 1997-07-21 1997-07-21 Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method

Publications (3)

Publication Number Publication Date
SE9702762D0 SE9702762D0 (en) 1997-07-21
SE9702762L SE9702762L (en) 1999-01-22
SE510295C2 true SE510295C2 (en) 1999-05-10

Family

ID=20407793

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9702762A SE510295C2 (en) 1997-07-21 1997-07-21 Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method

Country Status (8)

Country Link
EP (1) EP0998701A2 (en)
JP (1) JP2001510916A (en)
KR (1) KR20010022065A (en)
CN (1) CN1271434A (en)
AU (1) AU8365298A (en)
BR (1) BR9810768A (en)
SE (1) SE510295C2 (en)
WO (1) WO1999004335A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281120B2 (en) * 2004-03-26 2007-10-09 International Business Machines Corporation Apparatus and method for decreasing the latency between an instruction cache and a pipeline processor
US9952869B2 (en) 2009-11-04 2018-04-24 Ceva D.S.P. Ltd. System and method for using a branch mis-prediction buffer
EP2367102B1 (en) * 2010-02-11 2013-04-10 Nxp B.V. Computer processor and method with increased security properties

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755935A (en) * 1986-01-27 1988-07-05 Schlumberger Technology Corporation Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
CA1285657C (en) * 1986-01-29 1991-07-02 Douglas W. Clark Apparatus and method for execution of branch instructions
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
SE509499C2 (en) * 1996-05-03 1999-02-01 Ericsson Telefon Ab L M Method and apparatus for handling conditional jumps in instructional processing in a pipeline architecture

Also Published As

Publication number Publication date
SE9702762L (en) 1999-01-22
WO1999004335A2 (en) 1999-01-28
KR20010022065A (en) 2001-03-15
CN1271434A (en) 2000-10-25
JP2001510916A (en) 2001-08-07
SE9702762D0 (en) 1997-07-21
AU8365298A (en) 1999-02-10
BR9810768A (en) 2000-08-15
EP0998701A2 (en) 2000-05-10
WO1999004335A3 (en) 1999-04-08

Similar Documents

Publication Publication Date Title
US5954815A (en) Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address
US5276882A (en) Subroutine return through branch history table
KR100431168B1 (en) A method and system for fetching noncontiguous instructions in a single clock cycle
US5471626A (en) Variable stage entry/exit instruction pipeline
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JP2846406B2 (en) Branch processing method and branch processing device
US5297281A (en) Multiple sequence processor system
US5179673A (en) Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
US6304954B1 (en) Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
US4587632A (en) Lookahead stack oriented computer
JPH02208729A (en) Control of apparatus having multiple functions by parallel operation in microcode type execution apparatus
JPH02234229A (en) Source list,pointer queue and result queue
US7093105B2 (en) Method and apparatus for determining availability of a queue to which a program step is issued out of program order
JPH0668736B2 (en) Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles
KR100638935B1 (en) Processor with memory and data prefetch unit
EP0093430A2 (en) Pipeline data processing system
US6851033B2 (en) Memory access prediction in a data processing apparatus
JPH06236267A (en) Method and system for enhancement of dispatch efficiency of instruction device in superscalar processor system
JPH06236275A (en) Method and system for dispatch and execution of nonsequential instruction in superscalar processor system
KR100431975B1 (en) Multi-instruction dispatch system for pipelined microprocessors with no branch interruption
EP0079370B1 (en) Digital computer for executing instructions in three time-multiplexed portions
SE510295C2 (en) Processor method for handling conditional jump instructions and processor adapted to operate according to the specified method
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking
US6108761A (en) Method of and apparatus for saving time performing certain transfer instructions
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process

Legal Events

Date Code Title Description
NUG Patent has lapsed