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-arkitektur

Info

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
Application number
SE9601685A
Other languages
English (en)
Other versions
SE9601685L (sv
SE9601685D0 (sv
Inventor
Dan Halvarsson
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 SE9601685A priority Critical patent/SE509499C2/sv
Publication of SE9601685D0 publication Critical patent/SE9601685D0/sv
Priority to AU27983/97A priority patent/AU2798397A/en
Priority to EP97922267A priority patent/EP1029268B1/en
Priority to PCT/SE1997/000744 priority patent/WO1997042567A1/en
Priority to JP09539844A priority patent/JP2000510623A/ja
Priority to CA002253560A priority patent/CA2253560C/en
Priority to CN97195758.4A priority patent/CN1103960C/zh
Priority to DE69734403T priority patent/DE69734403T2/de
Publication of SE9601685L publication Critical patent/SE9601685L/sv
Priority to US09/185,194 priority patent/US6330664B1/en
Publication of SE509499C2 publication Critical patent/SE509499C2/sv

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
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional 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)

10 15 20 25 30 509 49i9 16 PATENTKRAV
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.
SE9601685A 1996-05-03 1996-05-03 Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur SE509499C2 (sv)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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