SE509499C2 - Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur - Google Patents
Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitekturInfo
- Publication number
- SE509499C2 SE509499C2 SE9601685A SE9601685A SE509499C2 SE 509499 C2 SE509499 C2 SE 509499C2 SE 9601685 A SE9601685 A SE 9601685A SE 9601685 A SE9601685 A SE 9601685A SE 509499 C2 SE509499 C2 SE 509499C2
- Authority
- SE
- Sweden
- Prior art keywords
- instructions
- pipeline
- jump
- path
- fifo
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 title claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 31
- 210000000056 organ Anatomy 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000009191 jumping Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
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)
Description
10
15
20
25
30
509 499
2
ett delningskommando i formen av en delningsbit. Antalet är variabelt och kan styras av
programmeraren och fördröjningen måste åtminstone vara en cykel. När en beroende förgrening
är specificerad av en kontrollinstnilüion, testas resultaten av följande behandling tills
villkorskodema är klara och en delningsbit förekommer. Om villkoret inte uppfylles, sker inget
hopp men exekveringen av den aktuella sekvensen i prograrnräknaren återupptas. Således i fallet
med ett förgreningskommando, åstadkommer systemet en variabel fördröjning under vilken
törgrenings- eller målinstruktioner hämtas och när en delningsbit påträffas, kan ett hopp göras
snabbt.
Emellertid hanteras inte villkorshopp på ett tillfredsställande sätt efiersom tidstörlusterna
beroende på fördröjningen osv. är betydande och där finns likväl en risk for rörledningsbrytning
när det ñnns åtskilliga huvudsakligen på varandra följande hoppinstruktioner och dessutom
baseras anordningen på förgrening och förhandsvillkor.
Bortsett från att anordningen som visas i det ovannämnda dokumentet inte är tillräckligt
effektiva tor tidsbesparing, så är den dessutom komplicerad.
En känd processor omfattande en trestegsrörledning omfattar stegen att hämta instruktioner,
avkoda instruktioner och exekvera eller utföra instruktioner. När rörledningen väl fylles kommer
det att finnas ett antal instruktioner i olika steg och där finns en utmatning av den färdiga
instruktionen vid varje cykel då instruktionerna t.ex. tar en mikrocykel om de inte är i ett
rörledningssystem. Om processorhastigheten till exempel ökas eller även fördubblas, kommer
även utmatningen att fördubblas. Emellertid går rörledningen i praktiken sönder så snart
instruktionsflödet är icke sekventiellt, dvs. om det finns ett hopp i instruktionskoden. Därför
finns det i slutet av röret två rörledningar för att gömma effektema som resulteras från hopp i
instruktionskoden, till en mikrokontrolenhet eller en mikroprocessorenhet. En rörledning följer
prograrnflödet sekventiellt och den andra rörledningen startas så snart som ett villkorshopp
påträffas i instruktionskön. Den andra rörledningen, dvs. den icke-sekventiella rörledningen,
antar att det upptäckta hoppet kommer att utföras och därför hämtar och avkodar instruktionerna
från hoppadressen och framåt.
10
15
20
25
30
509 499
3
Om emellertid det fanns ett villkorshopp i den sekventiella kön, måste törhämmingen av
instruktionerna stoppas och även om hoppen inte utförs, skulle det vara omöjligt att hålla den
sekventiella rörledningen fylld. Således förekommer det stopp eller en rörledning bryts när det
andra villkorshoppet påträffas som resulterar i en tidstörlust.
KORTFATTAD BESKRIVNING AV UPPFINNINGEN
Ett av ändamålen med föreliggande uppfinning är att tillhandahålla en anordning för
instruktionsbehandling på assemblernivå och/eller mikrokodnivå, vilken har en hög kapacitet.
Instruktioner eller behandling av instruktioner i föreliggande ansökan avser att betyda
bearbetning av assernblerinstmktioner såväl som bearbetning av mikrokod som antingen initieras
av en assemblerinstruktion eller används i mikrokod bara av processorer. Det är även ett ändamål
med uppfinningen att åstadkomma en anordning, i vilken en högra andel av den tillgängliga
bandbredden används för exekvering j ämiörd med i hittills kända anordningar, d.v.s.
tidstörlusterna t.ex. beroende på rörledningsbrott o.s.v. minskas och att hoppinstrliktionerna i en
mindre utsträckning påverkar exekveringseffektiviteten. Ett särskilt ändamål med uppfinningen
är att uppfylla de ovan nämnda ändamålen med villkoren att det används mycket stora minnen
och ett stort antal jobb ska utföras, d.v.s. en hög behandlingsfrekvens där dessutom behoven av
tillförlitlighet är höga. Ett exempel därom avser centralprocessorer i telekommunikationssystem i
vilka till exempel en CPU (central processing unit) styr lO0,000 abonnenter. I detta fall skiljer
sig kraven i allmänhet från krav hos kommersiella datorer och exekveringseffektiviteten är av
ytterst betydelse och bandbredden måste utnyttjas så mycket som möjligt.
Uppfinningen har även som ett ändamål att tillhandahålla en metod för behandlingsinstruktioner,
vilka uppfyller en eller flera av de ovannämnda ändamålen. Dessutom är det också ett ändamål
att förse ett telekommunikationssystem med en central behandlingsanordning resp. centrala
behandlingsanordningar för ett telekommunikationssystem som uppfyller ett eller flera av
ovannämnda ändamålen.
Därför omfattar lagtingsanordningen åtminstone ett FIFO-register, varvid villkorliga
hoppmålsadressinformationen lagras i sagda åtminstone ett FIFO-register. Åtminstone
hoppinstruktioner lagras i rörledningsanordningen. Rörledningsanordningen innefattar
lO
15
20
25
30
509 499
4
åtminstone en första och en andra rörledningsväg, en av vilka innehåller
exekveringsinstnilrtioner och den andra icke-gällande, så anordnade att när ett villkorligt hopp
utförs, växlas rörledningsvägama så att kontinuerlig förhärntning av instruktioner möjliggöres
oavsett antalet villkorliga hopp och oavsett om hoppen utförs eller inte.
I ett speciellt utförande är en anordning anordnad, i vilken instruktioner överlämnas sekventiellt
fiån en eller flera instruktionskällor, såsom ett programminne till en rörledningsanordning
omfattande ett antal steg. l ett fördelaktigt utförande omfattar en del av rörledningen åtminstone
en första och en andra rörledningsväg av vilka en är gällande exekverande instruktioner medan
den andra är en icke gällande väg, som fyller dess instruktionskö. En lagringsanordning är
anordnad för att lagra åtminstone villkorliga hoppadressinformationen. Lagringsanordningen
omfattar åtminstone ett först in, först ut register (F IF O). Om det finns åtminstone två delvisa
rörledningsvägar, hämtar följaktligen den som inte är gällande i förväg instruktioner från
minnesorganen, FIF O, i vilka hoppadressinforrnationen på något sätt är lagrad, t.ex.
hoppadresserna. När ett villkorligt hopp utföres, växlas rörledningsvägarna så att den icke-
gällande blir gällande och omvänt och sedan blir den tidigare gällande rörledningsvägen icke-
gällande och fortsätter den konsekventa förhämtningen av instruktionerna från adresserna eller
via adressinforrnationen som lagrats i minnesorganen. Väsentligen är kontinuerlig hämtning av
instruktioner i förväg möjliggjort oavsett antalet villkorliga hopp och oavsett om hoppen utföres
eller inte. Antalet FIFO-register kan, men måste inte vara samma som antalet
rörledningsvägarna. Emellertid i ett fördelaktigt utförande finns det två rörledningsvägar och ett
FIFO-register anordnat för varje väg. I ett särskilt utförande som använder hoppvillkor, är ett
forsta och ett andra FIFO-register anordnade för varje rörledningsväg.
Antalet lägen i FIFO-registren kan vara olika men enligt ett fördelaktigt utförande motsvarar
antalet lägen i varje F lFO-register det maximala antalet instruktioner i rörledningsvägen.
Emellertid är detta inte nödvändigt och antalet lägen i varje FlFO-register kan även vara mindre
än antalet instruktioner som kan finnas i respektive rörledningsväg. Varje FIFO-register kan t.ex.
omfatta 2-4 lägen för att lagra hoppadressens information eller speciellt hoppmålsadressens
information. Emellertid finns enligt uppfinningen inga begränsningar med avseende på det men
det kan tillämpas beroende av systemet, applikationen o.s.v. I ett utförande kan omluing 8
10
15
20
25
30
509 499
instruktioner köas i varje rörledningsväg.
Lämpligen är en av rörledningsvâgarria en Sekventiell väg, d.v.s. den följer programflödet
sekventiellt så att när en andra villkorlig hoppinstruktion påträffas, lagras hoppadressens
information speciellt hoppmålsadressen i FIFO-registret av den sekventiella vägen (om det finns
ett register anordnat för varje rörledningsväg). Om hoppen inte utföres, exekveras instruktionema
av den sekventiella kön huvudsakligen utan något avbrott och den icke-gällande (t.ex. icke
sekventiella) rörledningsvägen hämtar instruktioner i förväg genom att använda de konsekutiva
adressinformationema av det forsta FIF O-registret eller F IFO-registret av den sekventiella vägen.
Självfallet operationen liknande om den icke sekventiella rörledningsvägen för tillfället agerar
som den gällande rörledningsvägen. Lämpligen genom anslutning av ett FIFO-register till den
icke sekventiella vägen, avbrytes inte förhämtningen av instruktioner från en Villkorlig
hoppinstruktion. Om ett villkorligt hopp å andra sidan inte utföres, tömmes den icke-gällande
vägen och hämtning i förväg till den icke-gällande vägen startar genom användning av nästa
adress lagrad i ett FIFO-register av minnesorganet.
Lärnpligen kan hämtning i förväg till en rörledningsväg utföras genom användning av både
adressinformation från ett F IFO-register i anslutning till den speciella vägen och från ett
FIFO-register anordnat en arman eller den andra rörledningsvägen. Således är det i den
sekventiella såväl som i den icke sekventiella rörledningen möjligt att fortsätta hämta
instruktioner om en villkorlig hoppinstruktion påträffas eller i synnerhet den andra eller högre
påträffas. Med fördel omfattar bearbetningen av instruktioner åtminstone hämtning, avkodning
och exekvering av instruktioner. Denna utesluter emellertid ingalunda andra alternativ, d.v.s.
färre steg, flera steg eller andra steg i någon kombination.
I ett särskilt utförande appliceras hopprediktering. Lärnpligen är då två minnesorgan, t.ex.
FIF O-register anordnade i anslutning till vafle rörledningsväg, t.ex. ett första och ett andra
FIF O-register, varvid det andra registret omfattande t.ex. ett exemplar av den första som har
innehåll motsvarande vad som skulle ha funnits i det första utan förgreningsprediktering. I det
första FlFOzt är lämpligen hoppmålsadressens information av hoppen som predikteras att utföras
lagrade, medan i det andra F IFÖ-registret hoppmålsadressens information är lagrat oavsett om
10
15
20
25
30
509 49?
s
predikterat att utföras eller inte, så att om ett predikterat hopp inte ska ske egentligen sker, kan då
förhärntrring göras fi~ån det andra F IPD-registret.
Hoppmålsadressens information kan oavsett ovan nämnda utföringsexempel, omfatta
absolutadresser men adressinformationen kan även omfatta relativadressinformation. I det fallet
är organ anordnade för att lagra reelladressens information eller absolutadressema.
I ett alternativt utförande omfattar rörledningsanordningen endast en rörledningsväg.
Adressinfonnationen som matas ut från FIFO används för att accessa instruktionskällan(orna)
t.ex. programminnet.
Speciellt om ett villkorligt hopp utförs verkligen, används utgångsadressen (för åtkomst t.ex.
programminnet) och både FIFO:t och rörledningsvägen tömmes. Emellertid om ett villkorligt
hopp inte utföres, skiñas utgången av FIFO:t till nästa adress. Implementeringen av F lFOzt kan
t.ex. ske som ovan beskrivning med hänvisning till flervägs utföringsexemplet.
Ovillkorliga hoppinstruktioner kan enligt föreliggande uppfinning hanteras på olika sätt, varvid
det huvudsakliga syfiet med föreliggande uppfinning år att hantera villkorliga hoppinstruktioner.
Emellertid i ett särskilt utförande enligt uppfinningen omfattande två rörledningsvägar, för
ovillkorliga hoppinstruktioner, växlas inte rörledningsvägarna men flödet bryts och det fortsätter
från de föregående hoppadressema. Detta avser ett fördelaktigt utförande. Emellertid kan som ett
alternativ vägar växlas för ovillkorliga hopp.
Med hänvisning till de olika utföringsexemplen av föreliggande uppfinning omfattande mer än
en väg kan det finnas separata avkodare, t.ex. en för varje rörledningsväg men där kan även
finnas en gemensam avkodare för ett antal rörledníngsvägar. Det är emellertid speciellt
fördelaktigt att ha en avkodningsanordning för varje rörledningsväg.
Uppfinningen avser även en centralprocessor av ett telekommunikationssystem, i vilket en
behandlingsanordning för flerstegsrörledning omfattar ett eller flera av de ovan nämnda
kännetecknen. Applíceringen av uppfinningen på eller i samband med
10
15
20
25
30
509 499
7
telekommunikationssystem har upptäckts vara mycket fördelaktigt, t.ex. beroende av de stora
mängderna av information som måste hanteras på ett säkert sätt i sådana system och de höga
kraven på exekveringshastigheten.
I ett särskilt utförande tillhandahålles en metod för rörledningsbehandling av instruktioner.
Instruktionema överlämnas till en avkodare och instruktionema skilj es från villkorliga
hoppmålsadressema motsvarande instruktionema.
Instruktionema (utan hoppmålsadresser) anordnas i en rörledningsinstruktionskö och det
beroende av hoppmålsadressema lagras i en först in, först ut lagringsanordning. Om ett
villkorli gt hopp utförs, används adressen ut från FlFOzt som nästa instruktionsadress. Sedan
tömmes både FIFO:t och instruktionskön. Om ett villkorligt hopp inte utförs, skifias FlFOzt till
nästa adress.
I synnerhet tillhandahålles en metod för behandling av instruktioner i rörledningen i en
processoranordning omfattande, åtminstone delvis i rörledningen två rörledningsvägar, varvid
metoden omfattar stegen att:
exekvera instruktioner i en gällande väg som lagrar villkorlig hoppadressinformation i en
lagringsanordning, lämpligen i ett FIFO-register anordnat den gällande vägen. I en icke-gällande
väg, hämtning av instruktioneri förväg från adresser som ges i lagringsanordningen, speciellt ett
FIFO-register Lex. anordnat den andra rörledningsvägen, d.v.s. den gällande vägen. Om ett hopp
inte utförs, tömmes den icke- gällande vägen och hämtning av instruktioner i förväg fortsätter
fi-ån nästa adress som ges i lagringsanordningen eller speciellt FIFO-registret av den gällande
vägen. Om å andra sidan ett villkorligt hopp sker, skiñas en gällande väg in i en icke-gällande
väg och vice versa och den tidigare gällande vägen tömmes och hämtning i förväg inleds vid
vägen i stället, d.v.s. från adressen som ges i minnesorganen anordnade i anslutning till de andra
rörledningsvägen, vilken nu blir den gällande vägen.
Det är en fördel med uppfinningen att villkorliga hoppinstruktioner inte resulterar i
rörledningssamrnanbrott eller speciellt om mer än ett hopp påträffas leder denna inte till avbrott,
både i ett utförande omfattande en väg såväl som i de andra utföringsexemplen, i vilket fall det
10
15
20
25
30
509 499
8
inte leder till avbrott i den sekventiella kön och att förhämtningen till en icke sekventiell
rörledning kommer också att avbrytas, vilket är fallet i hittills kända arrangemang. Det är även en
fördel enligt föreliggande uppfinning att rörledningsbehandlingsanordningen kan tillhandahållas,
vilka kan vara avsedda för olika behov genom att exekveringseffektiviteten kan ökas på ett lätt
och i jämförelse med kända system, okomplicerat och oinvecklat sätt. Det är även en fördel att
exekveringseffektiviteten kan ökas genom att uppfinningen kan tillämpas oavsett om
förgreningsprediktering används eller inte; om förgreningsprediktering appliceras, är en
modifiering jämförd med det icke-prediktions fallet lämpligen tillhandahållen, vilket beskrevs i
det föregående.
KORT BESKRIVNING AV RITNINGARNA
I det följande kommer uppfinningen att beskrivas ytterligare på ett icke begränsande sätt med
hänvisning till bifogade ritningar, i vilka:
FIG 1 schematiskt visar ett utförande, enligt uppfinningen, omfattande två
rörledningsvägar, där ett FIFO-register är anordnat för varje rörledningsväg,
FIG 2 visar ett annat utföringsexempel, enligt uppfinningen, tillämpande
förgreningsprediktering,
FIG 3 visar på ett schematiskt sätt ett utförande med endast en rörledningsväg, och
FIG 4 visar ett flödesschema, som beskriver ett sätt att behandla instruktioner enligt
uppfimtingen.
DETALIERAD BESKRIVNING AV UPPFINNINGEN
Fig l visar ett första utförande enligt föreliggande uppfinning. Instruktioner levereras sekventiellt
fiån en instruktionskälla, som i det visade utförandet är ett programrninne (PS) 11. Instruktioner
kan även levereras från andra instruktionskällor eller från mer än en instruktionskälla, intema
eller extema källor o.s.v. vad som gäller hämtriingsstegen, kan instruktioner således hämtas från
ett internt eller ett externt minne, som ges av adressen. I det visade utförandet finns två
instruktionsavkodningsorgan 12A, 12B, ett för varje rörledningsväg 13A, l3B. I altemativa
utföringsexempel finns endast ett avkodningsorgan, vilket antingen kan vara fallet i ett utförande
där det finns endast en rörledningsväg, som beskrivs nedan med hänvisning till ett alternativt
lO
15
20
25
30
509 499
9
utförande eller i utföringsexempel där det finns mer än en rörledningsväg men
avkodningsorganen är gemensamma för åtminstone två av rörledningsvägarna. I ett
avkodningssteg hämtas de två operanden som behövs fiån ett internt eller ett externt minne.
Instruktionen som ska behandlas avkodas och data genererade av en tidigare instruktion är
lämpligen tillgängliga för den aktuella instruktionen. Anordningen i Fig 1 omfattar två
rörledningsvägar 13A, l3B åtminstone i slutet av en rörledning. Alternativt, kan en hel
rörledning innehålla två rörledningsvägar eller rörledningsvägar kan befinna sig någon
annanstans i rörledningen, t.ex. i början därav eller i något mellanliggande läge. På grund av det
att effekterna av rörlednings- hoppinstruktioner göms för mikrokontrollenheten 19.
Här antas det att den första rörledningsvägen 13A, (I-kö O) följer programflödet sekventiellt och
den andra rörledningsvägen 13B (I-kö 1) startas när ett hopp upptäcks i instruktionskoden av den
sekventiella rörledningsvägen 13A. Den andra icke sekventiella rörledningsvägen 13B antar att
ett villkorligt hopp kommer att utföras och därför hämtar den och avkodar instruktionema från
hoppadressen och framåt. I den sekventíella "första" rörledningsvägen 13A är ett antal
instruktioner la-lg lagrade i en instruktionskö (I-kö O). Den första instruktionen 1A av kön är
här en ladda konstant instruktion (LCC). Den andra instruktionen lb är emellertid en Villkorlig
hoppinstruktion, här den första villkorliga hoppinstruktionen nl och angivet hopp om lika med
nl, JEC nl. På ett liknande sätt är instruktionen lc den andra villkorliga hoppinstruktionen,
hoppa om lika med n2, JEC n2, och nästa instruktion ld är en instruktion för att läsa från minne,
läsa lagra (RS). Instruktionen le är igen ett villkorligt hopp instruktion JEC n3. lnstruktionen lf
är en instruktion att flytta från registret MFR och instruktion ld är igen en instruktion för att läsa
i minne RS. Till den i detta fall sekventiella, första rörledningsväg 13A är ett först in, först ut
FIFO-register 14A anordnat, i vilket hoppadressema av de villkorliga hoppen nl, n2, n3 lagras. I
detta fall är FIFO-registret angivet ett hoppmål FIFO, J TF O, eftersom det är de hoppadressema
som lagras däri. I ett utförande kan de absoluta adresserna lagras i FIFO:t 14A eller alternativt
kan (inte visat här) relativadressinfonnation lagras däri. I det senare fallet anordnas ytterligare
minnesorgan för att lagra de absoluta adresserna. Vad som är viktig är emellertid att någon typ av
adress information är lagrad i ett först in, först ut typ av minne.
Genom att lagra adressinforrnation relaterade till hoppadresser, är det möjligt att fortsätta
10
15
20
25
30
509 499
lO
exekvering av instruktioner i den sekventiella kön utan avbrott när ett eller flera villkorli ga hopp
har upptäckts men inte utförts. Till den icke sekventiella rörledningsvägen 13B ett (andra) först
in, först ut register 14B (JTF 1) är anordnat, i vilket hoppmålsadresser lagras (självfallet är
samma argumentation med avseende på adressinforrnation också relevant för detta minnesorgan,
såväl som för instruktionerna 2a-2d av instruktionskön i den andra vägen 13B). Instruktionema i
den andra rörledningsvägen 13B är: den första instruktionen förflyttad från register (MFR) 2A
följd av två villkorliga hoppinstruktioner 2b,2c, häri betecknade med JEC n4 respektive JEC n5
och instruktion 2d är en instruktion för att läsa i minnet RS. Således, är det även i det icke
sekventiella (här) röret möjligt att fortsätta hämta instruktion, om en eller flera villkorliga
hoppinstruktioner påträffas.
Nu kommer det fall som speciellt illustreras av Fig l att beskrivas mer ingående. Det förrnodas
att den första rörledningsvägen 13A för tillfället är gällande väg. Rörledningsvägen 13A
överlämnar då instruktioner till mikrokontrollenheten 19 medan (den andra) rörledningsvägen
13B fyller en instruktionskö. I det särskilda ögonblicket illustrerat härntar den andra
rörledningsvägen 13B i förväg instruktioner från adressen nl lagrade i FIFO-registret 14A
anordnat den första rörledningsvägen 13A. Dessa instruktioner kommer att utföras om det
villkorliga hoppet till nl utförs. Emellertid om hoppet inte utförs tömmes den andra
rörledningsvägen 13B och i stället startas förhämtning från adress n2. Om, till exempel, hoppet
till n2 inte heller genomförs, kommer förhämtning att ske från n3 i stället, o.s.v.
Emellertid om det första hoppet till nl utförs, växlas rörledningsvägen 13A och 13B och den
tidigare gällande vägen 13A blir icke-gällande medan den tidigare icke-gällande vägen 13B blir
gällande. Således töms rörledningsvägen 13A och förhärntning till denna väg från adress n4
lagrad i det andra FIFO-registret 14B i anslutning till den andra rörledningsvägen 13B startas. I
detta fall sker förhämtning från adressen n4 i programrnínnet 11. Om det inte hade funnits något
minnesorgan 14A, 14B, skulle förhämtningen i väg 13A ha stoppats vid detektering av den andra
hoppinstruktionen lc, d.v.s. hoppinstruktion JEC n2 och för den andra rörledningsvägen 13B
skulle förhämtriingen stoppats efter detektering av den första hoppinstruktionen 2b, d.v.s.
hoppinstruktion JEC n4.
10
15
20
25
30
509 499
11
I det illustrerade utförandet motsvarar antalet FIFO-register antalet rörledningsvägar. Emellertid
kan i ett alternativt utförande (inte illustrerat) gemensamma minnesorgan användas för två eller
flera rörledningsvägar. Mer än ett F IFO-register i anslutning till varje rörledningsväg kommer att
beskrivas närmare med hänvisning till F ig 2. Emellertid passar uppfinningen även fall det
finns bara en rörledningsväg och ett FIFO-register arrangerat därtill, vilket dessutom kommer att
beskrivas nedan. I ett utförande motsvarar antalet lägen i varje FIFO-register antalet instruktioner
i de motsvarande rörledningsvägama. Antalet instruktioner i en rörledningsväg är beroende av
applikation, system osv.; till exempel kan en rörledningsväg omfatta 8 instruktioner men den kan
även omfatta färre såväl som flera, talet 8 är endast given för illustrativa syften.
I ett armat utföringsexempel är antalet lägen i varje FIFO- register mindre än antalet instruktioner
i de motsvarande rörledningsvägarna. Det skulle, till exempel kunna finnas 2, 3 eller 4 lägen i
varje F IFO-register. Självfallet skulle det även kunna finnas mer, t.ex. där det endast finns en
liten skillnad mellan antalet instruktioner i en rörledningsväg och de motsvarande
minnesorganen. Det som hänvisas till härovan beror på applikation, behov och krav o.s.v.
Genom introduktion av minnesorganen reduceras den använda genomsnittliga cykeltiden per
instruktion. Reduceringsstorleken är emellertid även beroende av ett antal olika parametrar,
såsom klockfrekvensen, minnes accesstid, antal instruktionsavkodare o.s.v.
F ig 2 visar ett utförande som använder iörgreningsprediktering tillsammans med duplicerat
minnesorgan för varje rörledningsväg. Således är den funktion som redan finns genom Pig l
tillhandahåller och kan tex. utformas för att öka exekveringseffektiviteten ytterligare.
Sammanfattningsvis betyder detta att om ett predikterat hopp inte utförs, bör det inte hämtas i
förväg i den icke-gällande vägen. I stället bör det näst upptäckta hoppet som är predikterat att
utföras hämtas i förväg. Emellertid om en situation inträffar att det förstnämnda hoppet d.v.s. det
som inte predikterats ändå utförs vilket emellertid normalt inte är fallet, ñnns en kopia av
minnesorganen eller F IFO-registret anordnad, i vilket finns alla villkorliga hoppmålsadresser
(eller generellare, adressinformation) , d.v.s. ytterligare ett FIFO-register som har ett innehåll
som motsvarar innehållet som skulle ha varit utan förgreningsprediktering. Sedan kan
förhärntriing beordras därifrån i stället.
lO
15
20
25
30
509 499
12
Nu kommer en närmare förklaring av utföringsexemplet illustrerat i Fig 2 att ges.
På samrna sätt som Fig I levereras instruktioner sekventiellt fiån programrninnet PS 21 till en
första rörledningsväg 23A och en andra rörledning är också anordnad 23B och i anslutning till
varje väg är separata avkodarenheter 22A, 22B anordnade. På samma sätt som utföringsexemplet
visat i Fig 1, kan instruktionema levereras från mer än en instruktionskälla, den kan omfatta
extema eller intema minnen o.s.v. Dessutom kan avkodningsenhetema vara gemensamma för
fler än en rörledningsväg eller det kan ñnnas en för varje, såsom visas i Fig 2. l den första
rörledningsvägen 23A är ett antal instruktioner la'-1 g' ställda i en kö; hänvisningsbeteckningarna
är samma som för de i Fig 1. På samma sätt är ett antal instruktioner 2a'-2d' anordnade i en kö i
den andra rörledningsvägen 23B. Till varje rörledningsväg 23A, 23B är ett FIFO-register 24A,
24B anordnat. Emellertid är jämte detta en "skugga" eller ytterligare ett eller duplicerat
FlFO-register (J TF O';JTF l') anordnat för varje rörledningsväg 25A, 25B.
I F ig 2 antas det att den första rörledningsvägen 23A är gällande för ett ögonblick. Detta betyder
att den första rörledningsvägen 23A överlämnar instruktioner till MCU 29. Sedan fyller den
andra rörledningsvägen 23B en instruktionskö. Precis i denna stund hämtar den första
rörledningsvägen 23A i förväg instruktioner från adress n2 i det första FIFO-registret 24A
anordnat i anslutning till rörledningsvägen 23A. I FIFO-register 24A är således lagrade
adresserna för instruktionema predikterade att utföras. Instruktionema från adress n2 kommer att
utföras om det villkorliga hoppet till nl inte utförs och det villkorliga hoppet till n2 utförs. Här
anses således att hoppet nl från rörledningsvägen 23A inte vara sannolikt att utföras d.v.s. inte
predikterat att utföras. Emellertid om hoppet nl från väg 23A trots allt utförs, tömmes den andra
rörledningsvägen 23B och adressen av den andra, också som skugga betecknade FIF O-registret
25A innehåller den rätta adressen. Sedan startas förhämtning från adress nl i stället. Sedan
växlas vägarna och den andra rörledningsvägen 23B kommer att vara gällande och den första
rörledningsvägen 23A tömmes och hämtning i förväg till denna väg från adress n6 i
programrninnet 21 kommer att startas om detta hopp predikteras att utföras. Utföringsexemplet
som illustreras i Fig 2 kan självfallet varieras på ett antal sätt, gällande diskussionema ovan med
hänvisning till Fig 1 tillämpas självfallet även i detta fall, t.ex. med avseende på antalet lägen i
FIFO-registren, antalet instruktioner som kan köas i en väg o.s.v. Adressinforrnationen i
lO
15
20
25
30
509 499
13
FIFO-registren kan självfallet också vara absolutadresser, relativadresser o.s.v.
Såvitt det gäller ovillkorliga hopp, finns ingen växling av vägar i ett lämpligt utförande när ett
ovillkorli gt hopp upptäcks. I stället avbrytes flödet och det fortsätter från hoppadressen och
framåt. Emellertid, är uppfinningen inte begränsad därtill; det är även möjligt att växla vägarna
när ett ovillkorligt hopp upptäcks. I allmänhet kan ovillkorliga hopp hanteras på något lämpligt
sätt.
Uppfinningen avser även ett telekommunikationssystem i vilket centralprocessorema eller
åtminstone ett antal därav omfattar rörledningsbehandlinganordningar som beskrevs ovan.
Centralprocessorn som t.ex. hänvisas till i telekommunikationssystem, såsom till exempel
AXE-system av Ericsson, innefattar mycket stora minnen. En centralprocessor, enhet (CPU) av
en telefonstation måste kunna hantera t.ex. l00,000 abonnenter. I vissa fall, kan det finnas
omkring 100 million instruktioner per sekund och bandbredden måste användas så effektivt som
möjligt och det finns en stor önskan att reducera den förlorade tiden så mycket som möjligt så att
avbrott, o.s.v. inte kommer att uppta alltför mycket bandbredd. Uppñnningen kan även användas
t.ex. I basstationer av mobila telekommunikationssystem.
Emellertid kan uppfinningen med fördel appliceras i eventuella system som tillämpar
realtidskontroll och för vilka kraven av en hög tillförlitlighet är stora. Vad som egentligen ska
hämtas i förväg är t.ex. given genom en algoritm eller kriterier. Ett val kan även göras med
avseende på det som ska hämtas i förväg o.s.v.
Fig 3 visar ett utförande med endast en väg 33. Ett hoppmåls FIFO 34 som lagrar
hoppmålsadresser används enligt uppfinningen när av någon anledning det inte är önskvärt att
sända hoppadresserna samtidigt som instruktionen. Detta kommer dessutom att beskrivas i det
följ ande.
Instruktioner levereras t.ex. från ett programrninne 31 till en avkodare 32. I stället för att
överlämna hoppadresserna tillsammans med instruktionerna sätts de i hoppmåls F-lFOzt 34.
Instruktionema anordnas i instruktionskön 33, d.v.s. rörledningsvägen, på ett sätt som liknar de
10
15
20
25
30
509 499
14
beskrivna i det föregående. Emellertid är hoppadresserna inte inkluderade, vilket kan vara fallet
med flervägs utförandet. MCU 39 betecknar mikrokontrollenhet som ovan. Utgången av FIFO:t
34 är hoppmålsadressen, vilken först sätts i F lFOzt 34. Om hoppet som motsvarar därtill inte
utförs, växlas utgången av FlFO:t 34 till nästa adress i FIFO:t, d.v.s. här m2.
Emellertid om hoppet utförs används utgången, t.ex. här nl, som adress till nästa instruktion.
Sedan tömmes FIFO 34 och instruktionsvägen 33.
Ett hoppmåls FIFO kan lämpligen användas med en mikroflödeshanterare. En
mikroflödeshanterare används när en assemblerinstruktion erfordrar mer än ett mikroord. Även i
detta fall är avbrott i flödet ofördelaktigt och kostsamt.
Det är dessutom lärnpligt att skilja hoppinstruktioner från instruktionema som skapar
hoppvillkoren. En speciell applikation avser fallet när en förgreningsadress sändes till FlFOzt och
instruktionema överlämnas från en avflyttningsfunktion. Några funktioner som normalt skulle
behöva tidsödande loop hanteras i stället av en avflyttningsfiinktion. Antalet instruktioner sända
under en avflyttningssession kan programmeras och några parametrar såsom t.ex.
registeradresser kan inkrementeras automatiskt mellan leveransen av instruktioner från
avflyttningsfunktionen. Under programmeringen av avflyttningsfunktionen, överlämnas också en
förgreningsadress och lagras i ett hoppmåls FIFO.
Ett hopp till sagda adress sker om ett förgreningsvillkor uppfylles; det kan t.ex. vara att en
speciell sträng eller ett värde påträffas. Om strängen eller värdet inte tillfredsställs, kommer
instruktionen som följer laddavflyttning att utföras efier att det begärda talet har levererats och
utförts.
Genom användningen av ett hoppmåls FIFO måste adressen i detta fall endast ges en gäng och
mikrokoden måste inte innehålla så många bitar som annars skulle ha varit nödvändigt.
I Fig 4 visas ett flödesschema t.ex. med avseende på uttöringsexemplet som illustreras i Fig. 1,
vilket visar flödet av styrfunktionen för väg 13A. Flödet för den andra vägen 13B är liknande.
lO
l5
20
25
30
509 499
15
Först bestäms om väg 13A är gällande 110 (med hänvisning till ovan, betyder gällande här att
den levererar instruktioner till mikrokontrollenheten (MCU) 19). Om väg 13A är gällande,
undersöks det om en Villkorlig hoppinstruktion är avkodad, 111A. Om ja, sättes adressen av den
villkorliga hoppinstruktionen i FIFO-registret 14A anordnat för rörledningsvägen 13A, l12A.
Sedan undersöks det om ett villkorligt hopp exekveras, 1l3A, på samma sätt som om inga
villkorliga hoppinstruktioner var avkodade,.
Om inte börjar proceduren på nytt och det undersöks om väg 13A är gällande, 110 o.s.v. Om å
andra sidan ett villkorligt hopp exekveras undersöks det om ett villkorligt hopp har utförts,
114A. Om ja, sätts väg l3Aicke-gäl1ande och inaktiv, l15A. Aktiv betyder att vägen får
instruktioner från programminnet. Dessutom sättes väg 13B gällande och FIPO 14A och väg
13A tömmes. Emellertid om inga villkorliga hopp utförs, stegas FIFO 14A och FIF O 14B
tömmes. Dessutom sätts väg 13B inaktiv och väg 13B tömmes, 116A. Proceduren börjar då på
nytt med undersökning om väg 13A är gällande, l10A o.s.v. som ovan.
Om å andra sidan det hade upptäckts, jämför l 10, att väg 13A inte är gällande, blir proceduren
enligt följande. Det undersöks om väg 13A är aktiv, 11 IB. Om det inte är så, undersöks om det
finns någonting i F lFOzt 14B anordnat för väg 13B, l14B. Om inte, fortsätter proceduren med
undersökningen om väg 13A är gällande, 110 o.s.v. Om ja, startar exekveringen från nästa adress
i FIFO 14B och väg 13A sätts aktiv, l15B. Sedan undersöks om väg 13A är gällande, 110 o.s.v.
som beskrevs ovan.
Emellertid om det fastställs att väg 13A är aktiv i 1 11B, undersöks det om en villkorlig
hoppinstruktion var avkodad, 1l2B. Om ja, sätts adressen av den villkorliga hoppinstruktionen i
FIFO 14A. Om det inte avkodas en villkorlig hoppinstruktion, l12B, börjas det igen på nytt med
undersökning om väg 13A är gällande 110, o.s.v.
Uppfinningen är inte begränsad till de visade utíöringsexemplen utan kan varieras på ett antal
sätt utan att avlägsna sig från omfånget för de närslutna patentkrav och anordningen och metoden
kan implementeras på olika sätt beroende av applikationen, fiinktionella enheter, behov och krav
O.S.V.
Claims (28)
1. Anordning fór instruktionsbehandling omfattande en flerstegsrörledningsanordning (13A,l3B;23A,23B) till vilken instruktioner från åtminstone en instruktionskälla (PS) ( l l;2l ;3 1) levereras och en lagringsanordning (l4A,14B;24A,24B;25A,25Bl for att lagra hoppadressinforrnation för hoppinstmktioner, kännetecknad därav, att lagringsanordningen (14A,l4B;24A,24B;25A,25B) omfattar åtminstone ett FIFO-register, att villkorliga hoppmålsadressinformationen lagras i sagda åtminstone ett FIFO-register (l4A,l4B;24A,24B;25A,25B), medan åtminstone hoppinstruktioner lagras i rörledningsanordningen (13A, 13B; 23A, 23B), och att rörledningsanordningen (13A, 13B; 23A, 23B) innefattar åtminstone en forsta och en andra rörledningsväg (l3A,l 3B;23A,23B), en av vilka innehåller exekveringsinstruktioner och den andra icke-gällande, så anordnade att när ett villkorligt hopp utförs, växlas rörledningsvägarria (l3A,l3B;23A,23B) så att kontinuerlig forhämtning av instruktioner möjliggöres oavsett antalet villkorliga hopp och oavsett om hoppen utförs eller inte.
2. Anordning enligt patentkrav 1, känneteclmad därav, att fórhämtriingen är väsentligen sekventiell.
3. Anordning enligt patentkrav 1 eller 2, kännetecknad därav, att en av de första och andra rörledningsvägama (l3A,l3B;23A,23B) är anordnad for gällande exekveringsinstruktioner och den andra för att fylla en instruktionskö.
4. Anordning enligt av patentkrav 3, kännetecknar! därav, att den icke-gällande rörledningen förhämtar konsekutivt instruktioner från hoppmålsadresser lagrade i FIFO-register. lO 15 20 25 30 509 499 17
5. Anordning enligt patentkrav l, kännetecknad därav, att antalet FIFO-register (14A,14B) är lika med antalet rörledningsvägar (13A,13B).
6. Anordning enligt något av patentkraven 1-5, kännetecknad därav, att det finns två rörledningsvägar och ett FIF O-register anordnat i anslutning till varje väg.
7. Anordning enligt patentkraven 1- 6, känneteclmad därav, att i anslutning till varje rörledníngsväg (23A;23B) är ett första och ett andra FIFO-register (24A,25A;24B,25B) anordnade.
8. Anordning enligt något av patentkraven 1-7, kännetecknad därav, att antalet lägen i varje F IFO-register (l4A,l4B;24A,24B;25A,25B) motsvarar antalet instruktioner, som kan anordnas i varje instruktionskö av varje rörledningsväg (13A,l3B;23A,23B).
9. Anordning enligt något av patentkraven 1-8, kännetecknad därav, att antalet lägen i varje FIFO-register (l4A,14B;24A,24B;25A,25B) är mindre än antalet instruktioner i respektive rörledningsväg (13A,13B;23A,23B).
10. Anordning enligt något av patentkraven 1-9, kännetecknad därav, att ungefär 8 instruktioner kan köas i (varje) rörledningsväg.
1 1. Anordning enligt något av patentkraven 1-10, kännetecknad därav, att varje F IFO-register (l 3A,l3B;23A,23B) har 2-4 lägen for att lagra hoppmålsadressens information. lO 15 20 25 30 509 499 18
12. Anordning enligt något av patentkraven 1-11, kännetecknad därav, att en rörledningsväg är en Sekventiell väg ( 13A) och en är en icke Sekventiell väg (13B) och att när ett andra villkorliga hoppinstruktioner påträffas, lagras hoppmålsadressen i FIFO-registret (14A) av den sekventiella vägen (13A) och att om hoppen inte utförs, exekveras instruktionema av den sekventiella kön utan avbrott och den icke-gällande (icke sekventiella) rörledningsvägen i förväg hämtar instruktioner genom att använda de konsekutiva adressinformationen av det forsta F IF O-registret (14A) av den sekventiella rörledningsvägen (13A).
13. Anordning enligt patentkrav 12, kännetecknad därav, att genom FlIFO-registret (14B) anordnat i anslutning till den icke sekventiella vägen (13B), avbrytes inte förhämtning av instruktioner av en Villkorlig hoppinstruktion.
14. Anordning enligt patentkrav l, kännetecknad därav, att om ett villkorligt hopp inte utförs, tömmes den icke-gällande vägen och förhämtning startar genom att använda nästa adress lagrad i FIFO-registret.
15. Anordning enligt något av patentkraven 1-14, kännetecknad därav, att förhämtning till en rörledningsväg kan åstadkommas genom användning av både adressinforrnationen från ett F IFO-register anordnat i anslutning till den speciella vägen och från ett FIFO-register anordnat i anslutning till en annan väg.
16. Anordning enligt något av de föregående patentkraven, kännetecknad därav, att behandlingen av instruktioner omfattar åtminstone hämtning, avkodning och exekvering av instruktioner.
17. Anordning åtminstone enligt patentkraven 1 och 7, kännetecknad därav, _ att hopprediktering appliceras och att i det första FIFO:t(n) (24A,24B) lagras hoppmâlsadressens 10 15 20 25 30 509 499 19 information av hopp som predikteras att utföras, medan i det andra FIFO-registret(n) (25A,25B) lagras hoppmålsadressens information oavsett om predikterat att ske eller inte, så att om ett predikterat hopp inte utförs, beordras hämtning i förväg från det andra FIFO-registret (25A, 25B).
18. Anordning enligt något av de föregående patentkraven, kännetecknad därav, att hoppmålsadressens infonnation omfattar absolutadresser.
19. Anordning enligt något av patentkraven l-l7, kännetecknad därav, att hoppmålsadressens information i FIFO:t(n) omfatta: relativadressinformation, och att ytterligare minnesorgan är anordnade för reella adresser.
20. Anordning enligt patentkrav 1-19, kännetecknad därav, att rörledningsvågama växlas inte för ovillkorliga hoppinstruktioner men flödet brytes och det fortsätter från de föregående hoppadressema.
21. Anordning enligt något av patentkraven l-20, kännetecknad därav, att vägarna växlas för ett ovillkorligt hopp.
22. Anordning enligt något av de föregående patentkraven, kännetecknad därav, att det finns separata avkodare (l2A,l2B',22A,22B), en för varje rörledningsväg (l3A,l3B;23A,23B).
23. Anordning enligt något av patentkraven l-21, kännetecknad därav, att det finns en gemensam avkodare för ett antal rörledningsvägar. 10 15 20 25 30 509 499 20
24. Anordning enligt något av de föregående patentkraven, kännetecknad därav, att den används i en centralprocessor av ett telekommunikationssystem.
25. Anordning enligt något av de Föregående patentkraven, kännetecknad därav, att den sekventiella och kontinuerliga förhärntningen av instruktioner är möjligt oberoende av hoppinstruktionens typ.
26. Processoranordning i ett telekommunikationssystem omfattande en anordning för rörledningsbehandling av instruktioner omfattande en sekventiell rörledningsväg (13A,23A), som följer programflödet sekventiellt och en icke sekventiell rörledningsväg (l3B;23B) en av vilka är gällande och den andra är icke-gällande och när villkorliga hoppinstruktioner påträffas i instruktionskön, hämtar den andra rörledningen i förväg (l3B;23B) och avkodar instruktionema med start från hoppinformationsadressen, kännetecknad därav, att en lagringsanordning (l4A,l4B;24A,25A,24B,25B) är anordnad som åtminstone omfattar första minnesorgan, i vilket Villkorlig hoppmålsadressinforrnation är lagrad och att den icke-gällande rörledningsvägen i förväg hämtar instruktioner från hoppadresserna och att om ett hopp utförs, växlas vägarna (l3A,l3B;23A,23B) och att oavsett om hoppen utförs eller inte, tömmes vägen till vilken information från hoppadressen var hämtad i förväg och förhärntning därtill fortsätter från nästa adress i minnesorganen.
27. Processoranordning omfattande en anordning för rörledningsbehandling av instruktioner levererade åtminstone från en instruktionskälla (31), kännetecknad därav, att behandlingsanordningen är anordnad i ett telekommunikationssystem, och att instruktioner och Villkorlig hoppmålsadressinformation är separata, varvid instruktionerna köas i en instruktionsrörledningsväg (33) och hoppadressinforrnationen lagras i ett FIFO-register (34) anordnat i anslutning till rörledningsvägen (33) och att utgången från F lFOrt används för att accessa instruktionskällan (31) om ett villkorligt hopp utförs, annars stegas FIFO:t (34) . 10 509 499 21
28. Metod för behandling av instruktioner i rörledning i en behandlingsanordning i vilken instruktioner levereras till en avkodare (32), kännetecknar av, att metoden omfattar stegen att: > separera instruktioner och villkorliga hoppmålsadresser, > arrangera instruktionerna i en rörledningsinstniktionskö (33), > endast lagra de villkorli ga hoppmålsadresserna i ett FIFO-register (34), > använda adressen från FIFO:ts (34) utgång som nästa instruktionsadress och tömma FlFOzt (34) och instruktionskön (33), om ett villkorligt hopp utförs, > skifia till nästa adress i FIFO:t (34), om ett villkorligt hopp inte utförs.
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9601685A SE509499C2 (sv) | 1996-05-03 | 1996-05-03 | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
DE69734403T DE69734403T2 (de) | 1996-05-03 | 1997-05-02 | Verfahren im bezug auf die behandlung von konditionellen sprüngen in einer multietagen-pipeline-struktur |
JP09539844A JP2000510623A (ja) | 1996-05-03 | 1997-05-02 | 多重ステージパイプライン装置における条件付き飛越しの取扱いに関する方法 |
EP97922267A EP1029268B1 (en) | 1996-05-03 | 1997-05-02 | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement |
PCT/SE1997/000744 WO1997042567A1 (en) | 1996-05-03 | 1997-05-02 | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement |
AU27983/97A AU2798397A (en) | 1996-05-03 | 1997-05-02 | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement |
CA002253560A CA2253560C (en) | 1996-05-03 | 1997-05-02 | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement |
CN97195758.4A CN1103960C (zh) | 1996-05-03 | 1997-05-02 | 在多级流水线结构中处理条件跳转的结构和方法 |
US09/185,194 US6330664B1 (en) | 1996-05-03 | 1998-11-03 | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9601685A SE509499C2 (sv) | 1996-05-03 | 1996-05-03 | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9601685D0 SE9601685D0 (sv) | 1996-05-03 |
SE9601685L SE9601685L (sv) | 1997-11-04 |
SE509499C2 true SE509499C2 (sv) | 1999-02-01 |
Family
ID=20402437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9601685A SE509499C2 (sv) | 1996-05-03 | 1996-05-03 | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
Country Status (9)
Country | Link |
---|---|
US (1) | US6330664B1 (sv) |
EP (1) | EP1029268B1 (sv) |
JP (1) | JP2000510623A (sv) |
CN (1) | CN1103960C (sv) |
AU (1) | AU2798397A (sv) |
CA (1) | CA2253560C (sv) |
DE (1) | DE69734403T2 (sv) |
SE (1) | SE509499C2 (sv) |
WO (1) | WO1997042567A1 (sv) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE509499C2 (sv) * | 1996-05-03 | 1999-02-01 | Ericsson Telefon Ab L M | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
SE510295C2 (sv) * | 1997-07-21 | 1999-05-10 | Ericsson Telefon Ab L M | Metod vid processor för att hantera villkorade hoppinstruktioner samt processor anpassad att verka enligt den angivna metoden |
US6948054B2 (en) * | 2000-11-29 | 2005-09-20 | Lsi Logic Corporation | Simple branch prediction and misprediction recovery method |
US6691306B1 (en) * | 2000-12-22 | 2004-02-10 | Lsi Logic Corporation | Use of limited program space of general purpose processor for unlimited sequence of translated instructions |
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 |
DE602005017657D1 (de) * | 2004-08-30 | 2009-12-24 | Texas Instruments Inc | Verfahren und vorrichtungen zur zweigvorhersage und verarbeitung von mikroprozessoranweisungen und dergleichen |
US7603544B2 (en) * | 2004-12-23 | 2009-10-13 | Intel Corporation | Dynamic allocation of a buffer across multiple clients in multi-threaded processor without performing a complete flush of data associated with allocation |
US20060179277A1 (en) * | 2005-02-04 | 2006-08-10 | Flachs Brian K | System and method for instruction line buffer holding a branch target buffer |
US20080222393A1 (en) * | 2007-03-09 | 2008-09-11 | On Demand Microelectronics | Method and arrangements for pipeline processing of instructions |
US20080222392A1 (en) * | 2007-03-09 | 2008-09-11 | On Demand Microelectronics | Method and arrangements for pipeline processing of instructions |
US7941653B2 (en) * | 2008-12-04 | 2011-05-10 | Analog Devices, Inc. | Jump instruction having a reference to a pointer for accessing a branch address table |
CN102117198B (zh) * | 2009-12-31 | 2015-07-15 | 上海芯豪微电子有限公司 | 一种分支处理方法 |
CN106990942A (zh) * | 2011-06-29 | 2017-07-28 | 上海芯豪微电子有限公司 | 分支处理方法与系统 |
CN102508641A (zh) * | 2011-11-04 | 2012-06-20 | 杭州中天微系统有限公司 | 低成本的程序计数器数据传输装置 |
US9134377B2 (en) * | 2013-03-14 | 2015-09-15 | Teradyne, Inc. | Method and apparatus for device testing using multiple processing paths |
US9513924B2 (en) * | 2013-06-28 | 2016-12-06 | Globalfoundries Inc. | Predictor data structure for use in pipelined processing |
CN103744642B (zh) * | 2013-12-31 | 2017-01-18 | 天津国芯科技有限公司 | 用于改进处理器中直接跳转的方法及系统 |
CN104331268B (zh) * | 2014-10-27 | 2017-05-03 | 杭州中天微系统有限公司 | 一种用于低功耗处理器的加快条件跳转执行的装置 |
US10139449B2 (en) | 2016-01-26 | 2018-11-27 | Teradyne, Inc. | Automatic test system with focused test hardware |
CN109324838B (zh) * | 2018-08-31 | 2022-05-10 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
CN110704108B (zh) * | 2019-08-30 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 解释执行字节码指令流的方法及装置 |
US10802854B2 (en) | 2019-08-30 | 2020-10-13 | Alibaba Group Holding Limited | Method and apparatus for interpreting bytecode instruction stream |
CN111026442B (zh) * | 2019-12-17 | 2022-08-02 | 天津国芯科技有限公司 | 一种cpu中用于消除程序无条件跳转开销的方法及装置 |
CN113220347B (zh) * | 2021-03-30 | 2024-03-22 | 深圳市创成微电子有限公司 | 基于多级流水线的指令处理方法、浮点型dsp以及音频设备 |
CN113760366B (zh) * | 2021-07-30 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种条件跳转指令的处理方法、系统及相关装置 |
CN113946539B (zh) * | 2021-10-09 | 2024-02-13 | 深圳市创成微电子有限公司 | 一种dsp处理器及其循环跳转指令的处理方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0239081B1 (en) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
US4974155A (en) | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
US5131086A (en) * | 1988-08-25 | 1992-07-14 | Edgcore Technology, Inc. | Method and system for executing pipelined three operand construct |
JP2710994B2 (ja) * | 1989-08-29 | 1998-02-10 | 三菱電機株式会社 | データ処理装置 |
JP2560889B2 (ja) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | マイクロプロセッサ |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
US5317700A (en) * | 1992-05-01 | 1994-05-31 | Unisys Corporation | Program history for pipelined processor including temporary storage queues for storing branch addresses |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
US5758142A (en) * | 1994-05-31 | 1998-05-26 | Digital Equipment Corporation | Trainable apparatus for predicting instruction outcomes in pipelined processors |
US5598546A (en) * | 1994-08-31 | 1997-01-28 | Exponential Technology, Inc. | Dual-architecture super-scalar pipeline |
US5692170A (en) * | 1995-04-28 | 1997-11-25 | Metaflow Technologies, Inc. | Apparatus for detecting and executing traps in a superscalar processor |
SE509499C2 (sv) * | 1996-05-03 | 1999-02-01 | Ericsson Telefon Ab L M | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
JP3745039B2 (ja) * | 1996-08-01 | 2006-02-15 | 株式会社ルネサステクノロジ | 遅延命令を有するマイクロプロセッサ |
US5949995A (en) * | 1996-08-02 | 1999-09-07 | Freeman; Jackie Andrew | Programmable branch prediction system and method for inserting prediction operation which is independent of execution of program code |
US6055630A (en) * | 1998-04-20 | 2000-04-25 | Intel Corporation | System and method for processing a plurality of branch instructions by a plurality of storage devices and pipeline units |
-
1996
- 1996-05-03 SE SE9601685A patent/SE509499C2/sv not_active IP Right Cessation
-
1997
- 1997-05-02 EP EP97922267A patent/EP1029268B1/en not_active Expired - Lifetime
- 1997-05-02 DE DE69734403T patent/DE69734403T2/de not_active Expired - Lifetime
- 1997-05-02 AU AU27983/97A patent/AU2798397A/en not_active Abandoned
- 1997-05-02 WO PCT/SE1997/000744 patent/WO1997042567A1/en active IP Right Grant
- 1997-05-02 JP JP09539844A patent/JP2000510623A/ja active Pending
- 1997-05-02 CN CN97195758.4A patent/CN1103960C/zh not_active Expired - Fee Related
- 1997-05-02 CA CA002253560A patent/CA2253560C/en not_active Expired - Lifetime
-
1998
- 1998-11-03 US US09/185,194 patent/US6330664B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1103960C (zh) | 2003-03-26 |
CA2253560A1 (en) | 1997-11-13 |
CA2253560C (en) | 2003-07-22 |
US6330664B1 (en) | 2001-12-11 |
DE69734403T2 (de) | 2006-07-06 |
CN1222985A (zh) | 1999-07-14 |
JP2000510623A (ja) | 2000-08-15 |
SE9601685L (sv) | 1997-11-04 |
SE9601685D0 (sv) | 1996-05-03 |
AU2798397A (en) | 1997-11-26 |
EP1029268B1 (en) | 2005-10-19 |
EP1029268A1 (en) | 2000-08-23 |
WO1997042567A1 (en) | 1997-11-13 |
DE69734403D1 (de) | 2005-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SE509499C2 (sv) | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur | |
JP5889986B2 (ja) | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 | |
US7971042B2 (en) | Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline | |
KR101685247B1 (ko) | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 | |
JP5136404B2 (ja) | 演算処理装置、演算処理装置の制御方法 | |
JPH04233632A (ja) | デイジタルデータプロセツサ作動方法及び分岐履歴テーブル | |
US11163577B2 (en) | Selectively supporting static branch prediction settings only in association with processor-designated types of instructions | |
JPS6341093B2 (sv) | ||
JPS63501454A (ja) | データプロセッサ制御装置 | |
JP5815596B2 (ja) | プロシージャリターンシーケンスを加速するための方法およびシステム | |
JPS61109147A (ja) | 命令フェッチ及び実行制御方法 | |
JPH06242949A (ja) | キュー管理式命令キャッシュ | |
CN105446773A (zh) | 高速缓存行的非对齐加载指令的推测并行执行系统和方法 | |
JPH07152562A (ja) | パイプラインプロセッサの命令読み出し方法及び命令読み出し装置 | |
US20180004627A1 (en) | Sequential monitoring and management of code segments for run-time parallelization | |
US5987235A (en) | Method and apparatus for predecoding variable byte length instructions for fast scanning of instructions | |
US20080120468A1 (en) | Instruction Cache Trace Formation | |
JP5128382B2 (ja) | 複数のロード命令を実行するための方法および装置 | |
US9507600B2 (en) | Processor loop buffer | |
US20200110610A1 (en) | Apparatus and method for providing decoded instructions | |
JPH0689173A (ja) | ブランチ・ヒストリーを持つ命令実行処理装置 | |
JP2005108086A (ja) | データ処理装置 | |
JPH07306785A (ja) | 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 | |
US8266414B2 (en) | Method for executing an instruction loop and a device having instruction loop execution capabilities | |
EP0465847A2 (en) | Memory access control having commonly shared pipeline structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |