SE520511C2 - Processor och förfarande för instruktionsavkodning - Google Patents

Processor och förfarande för instruktionsavkodning

Info

Publication number
SE520511C2
SE520511C2 SE9704475A SE9704475A SE520511C2 SE 520511 C2 SE520511 C2 SE 520511C2 SE 9704475 A SE9704475 A SE 9704475A SE 9704475 A SE9704475 A SE 9704475A SE 520511 C2 SE520511 C2 SE 520511C2
Authority
SE
Sweden
Prior art keywords
translation
instruction
digital processor
value
state signal
Prior art date
Application number
SE9704475A
Other languages
English (en)
Other versions
SE9704475D0 (sv
SE9704475L (sv
Inventor
Tobias Roos
Dan Halvarsson
Tomas Jonsson
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 SE9704475A priority Critical patent/SE520511C2/sv
Publication of SE9704475D0 publication Critical patent/SE9704475D0/sv
Priority to US09/201,855 priority patent/US6611909B1/en
Priority to JP2000523600A priority patent/JP2001525568A/ja
Priority to PCT/SE1998/002205 priority patent/WO1999028817A2/en
Priority to EP98960140A priority patent/EP1034472A2/en
Priority to CA002313013A priority patent/CA2313013C/en
Priority to AU15810/99A priority patent/AU1581099A/en
Priority to BR9815119-3A priority patent/BR9815119A/pt
Publication of SE9704475L publication Critical patent/SE9704475L/sv
Publication of SE520511C2 publication Critical patent/SE520511C2/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/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Description

20 25 30 520 511 2 struktionsavkodare ingående i processorn före det faktiska utförandet av instruktionerna i exekve- ringskärnan. För att en mikroprocessor skall stödja spårning ingår denna funktion allmänt i mik- rokoden, som alltså innefattar stöd för att aktivera spårningsfunktionema. I en mikroprocessor, som medger spåming, används vanligen en huvudsignal för att aktivera alla typer av spårning, varvid denna huvudsignal benämns signal för att aktivera spårning.
När vidare mikrokod exekveras i en mikroprocessor med spårningsfunktion, måste proces- sorn kontrollera alla mikroinstruktioner i mikrokoden med avseende på spårningsvillkoren. För en sådan konstant kontroll åtgår en del av processorns exekveringstid, även när spårningsvillkoret inte är aktiverat, eftersom då åtminstone spårsignalen för aktiverad spårning måste kontrolleras för varje mikroinstruktion.
Detta kan till och med leda till att mikrokoden eller mikroprogrammet måste innehålla ytterligare mikroinstruktioner för att kontrollera huruvida spårningsfunktionen är aktiverad eller inte är aktiverad. Förefintligheten av sådana ytterligare mikroinstruktioner förorsakar naturligtvis fördröjningar jämfört med när dessa inte ingår i mikrokoden. Sådana fördröj ningar kommer då att i någon mån göra datorn långsammare och minska dess prestanda och är sålunda allmänt sett inte önskvärda.
För processorer t ex använda för särskilda ändamål kan också inträffa, att andra villkor eller styrsignaler skall påverka avkodningen eller översättningen av programinstruktioner till mikroin- struktioner. Sålunda kan översättning av en programinstruktion, vilken betyder "End Of Job" (= "jobb slut"), resultera i olika mikroinstruktioner beroende på omständigheterna, dvs huruvida denna instruktion avser slutet på ett lokalt jobb eller ett globalt jobb eller anger början på ett nytt jobb.
REDoGöRELsE FÖR UPPFiNNrNGi-:N Det är ett ändamål med föreliggande uppfinning att anvisa ett förfarande och en anordning för att åstadkomma en smidig översättning av programinstruktioner, vilka skall exekveras av en processor till mikroinstruktioner, vilka används av processorns kärna.
Det är ytterligare ett ändamål med föreliggande uppfinning att anvisa ett förfarande och en anordning, med hjälp av vilka de fördröjningsproblem minskas, som är förbundna med att ytterli- gare mikroinstruktioner inuti mikroprograrnmet finns för kontroll av huruvida spårningsfunktio- nen är aktiv.
Dessa och andra ändamål uppnås allmänt genom att komplettera instruktionsavkodaren i en mikrodator med minst en ytterligare signal, vilken anger ett tillstånd hos datom eller hos den be- arbetning, vilken utförs i datorn, såsom huruvida en spåiningsfunktion används eller inte används.
Beroende på värdet eller värdena hos den minst en ytterligare signalen, t ex beroende på huruvida 10 15 20 25 30 520 511 3 spåmingsfunktionen används eller inte används, ändras avkodningen av operationskoden, så att för minst en inkommande instruktion olika mikroinstruktioner exekveras för olika värden på den minst en signalen, dvs i respektive särskilda fall, så att för tillståndet innefattande att spårning an- vänds översätts minst en inkommande instruktion till en mikroinstruktion, som är skild från den mikroinstruktion, till vilken den skulle översatts, när spårning inte är aktiverad.
Detta resulterar i det ovan beskrivna särskilda fallet, genom att när den komplementära spåmingssignalen stängs av, ett program utan spåmingsfunktioner eller spårningskontroller körs i datorn eller mikroprocessorn, och om spårningssignalen är påkopplad, andra mikroinstruktioner, vilka stödjer spårningsfunktionen, exekveras av datorn. Genom att inte använda mikroinstruktio- ner, som stöder en spåmingsfunktion, när en sådan funktion inte behövs, inbesparas exekverings- tid i processorn, vilket i sin tur ökar datorns prestanda medan datorn ändå medger, att spårnings- funktionen kan aktiveras, när så erfordras eller önskas.
Sålunda bestäms startadressen till en följd av mikrokoder, vilken motsvarar den assemblerinstruktion, av den i assemblerinstruktionen befintliga operationskoden. Om opera- tionskoden utvidgas med en bit, som styrs av en signal, en signal för spårning aktiverad, är det möjligt att exekvera två olika följder av mikrokoder beroende på om spårningsfunktionen är akti- verad eller inte är aktiverad.
Den mikrokod som körs, när "spårning aktiverad" är på, kontrollerar alla spårningsvillkor, medan den andra följden inte behöver kontrollera spårning över huvud taget. Detta arrangemang ökar därför kapaciteten, när spårning inte är aktiverad.
FIGURBESKRIVNING Föreliggande uppfinning skall nu beskrivas i detalj såsom ett ej begränsande exempel med hänvisning till de bifogade ritningarna, i vilka: - Fig. l är ett blockschema av en del av en mikrodator, - Fig. 2 är en bild, som visar den tabellslagning, vilken utförs i mikroprogramsavkodaren enligt fig. l, och - Fig. 3 är en schematisk bild, som visar en styrbar tabellslagningsfunktion.
BESKRIVNING AV FÖREDRAGNA UTFÖRINGSFORMER I blockschemat i frg. 1 visas en mikrodator med ett minne 7, som är förbundet med en cent- ralenhet, CPU 9. Särskilt visas de väsentliga delarna av en kodöversättningsenhet 3 l, som ingår i CPU:n 9 tillsammans med en aritmetisk/logisk enhet 33, vilken utför själva exekveringen av mik- roinstruktioner. Översättningsenheten 31 har två parallella datavägar, A och B, som utför en för- bearbetning av de instruktioner, vilka skall exekveras i den aritmetisk-logiska enheten 33, förbe- reder instruktionerna och avger dessa, så att den aritmetiska/logiska enheten 33 kan exekvera dem 10 15 20 25 30 520 511 4 så fort som möjligt. Varje väg, A och B, har en instruktionsuppdelningsenhet 33, en instruktions- avkodningsenhet 37 och en buffertenhet 39, varvid valet av aktuell vald väg styrs av en styrenhet 41, en för varje väg A och B. lnstruktionsuppdelningenheten 35 har en buffert 43, instruktionscacheminnet, för fyra rader programkod, varvid varje rad innehåller 128 bitar eller 8 ord, varvid dessa rader alltid innehåller efter varandra följande data hämtade från efter varandra följande positioner i minnet 7. Uppdel- ningsenheten 35 innefattar också ett exekveringsblock 47 för att utföra själva uppdelningen ge- nom inspektion av instruktionskoderna för att bestämma instruktionemas längd, varvid uppdel- ningsblocket 47 vid varje klockcykel avger en instruktion till ett instruktionsregister 48.
I avkodningsenheten 37 utvinns parametrar till en instruktion i en enhet 51. Instruktionens operationskod utvinns i ett block 53 och den används som ingångsadress till en avkodningstabell 55, vilken upptar adresserna till de mikrokodsinstruktioner, som faktiskt skall användas av den aritmetiska/logiska enheten 33. De bestämda mikroinstruktionema sänds till en buffert 57 för fyra instruktioner i buffertenheten 39.
De båda rörledningsvägama A, B förenas av en väljarenhet 59, som väljer korrekt väg för nästa instruktion, beroende på resultatet av exekverade och/eller förutsagda hoppinstruktioner, varvid nästa instruktion sänds till den aritmetiska/logiska enheten 33. Översättningsenheten 31 för programkod styrs av olika signaler, som åskådliggörs av styr- eller tillståndssignalblocket 6l. Särskilt finns det en signal, som anger huruvida spåmingstillstånd är på eller av, varvid denna signal symboliskt visas av delblocket 63. lnstruktionsavkodningsenheten 37 är direkt förbunden med instruktionsregistret 48, särskilt med operationskodsdelen av den instruktion, som avges på direkta ledningar till avkodnings- blocket 53. Arbetssättet hos avkodningsblocket åskådliggörs schematiskt i fig. 2, i vilken opera- tionskodsdelen hos instruktionsregistret 48 representeras av blocket 65. I det betraktade utföran- det innefattar operationskoden 9 bitar vid den minst signifikanta änden av en instruktion och de motsvarande 9 radema från instruktionsregistret 48 utvidgas med en ytterligare rad, som innehål- ler den signal, vilken anger spårningsvillkor, se blocket 63. Signalerna på de resulterande tio led- ningama används som ingångar för tillgång till en mikroinstruktionstabell 55, som innefattar en lista på alla de använda mikroinstruktionskodema. 210 mikroinstruktionskoder kan användas och varje mikroinstruktion har en position eller adress i tabellen. Den mikroinstruktion, som har en position eller en adress, vilken överensstämmer med den, vilken signaleras på de nämnda tio led- ningarna, utväljs.
Detta valförfarande och tabellen kan åstadkommas genom att tillhandahålla t ex ett stort lo- giskt grindnät med ett ganska stort djup, dvs med ett flertal logiska nivåer, varvid nätet motsvarar 10 15 20 25 30 520 511 5 den i fig. 2 skisserade tabellen. Det tar då uppenbarligen viss tid, tills den valda mikroinstruktio- nen tillhandahålls på utgångsledningarna från avkodningsenheten 53. Att lägga till en bit till den ursprungliga operationskoden vid avkodningen kommer då att resultera i att tabellslagningen blir något långsammare och ökar också komplexiteten hos de kretsar, som faktiskt utför tabellslag- ningen. Emellertid kommer detta inte att försämra totala prestanda hos rörledningsvägarna, sär- skilt vid betraktande av den konventionella konstruktionen med att alltid kontrollera signalen för spåming aktiverad, när tabellslagningen utförs.
Vid användning av det ovan beskrivna förfarandet och den ovan beskrivna anordningen, kommer de mikrokodsinstruktioner, vilka exekveras, när signalen för spårning aktiverad är av- kopplad, inte att innefatta några instruktioner, som stödjer spårning, och kommer därför att exe- kveras relativt fort. Om, å andra sidan, signalen för spåming aktiverad är aktiv, kommer mikro- kodsinstruktioner, vilka stödjer en spårningsfunktion, exekveras och exekveringen kommer därför att bli långsamrnare.
Slutligen kan andra signaler än en signal för spåming aktiverad naturligtvis också avges till instruktionsavkodaren för att ange andra tillstånd, som ändrar valet av de mikroinstruktioner, vilka motsvarar en från minnet 7 mottagen ursprunglig instruktion. Sålunda kan allmänt en sådan signal anordnas för att dynamiskt förändra instruktionsavkodningen som svar på tillståndet hos de signaler, vilka avges till denna. Sålunda kan olika mikroinstruktioner adresseras av samma opera- tionskod, beroende på tillståndet hos en sådan signal, varigenom mikroprogrammet kan optimeras för olika tillstånd, i vilka datorn körs vid ett speciellt tillfälle, vilket i sin tur ökar datorns pre- standa i vissa fall. Ett exempel på ett sådant tillstånd, som kan dra nytta av användning av dyna- misk instruktionsavkodning, kan vara en dator med olika talrepresentationer, varvid olika delar av mikroprogramsminnet kan adresseras beroende på den talrepresentation, vilken används vid ett betraktat tillfälle. Ett annat instruktionsexempel är instruktionen "End Of Job" (= "jobb slut"), som kortfattat har diskuterats ovan.
Detta fall, vid vilket fler än en signal används för att styra översättningen till mikroinstruktioner, åskådliggörs schematiskt i fig. 3. Här är de ledningar, som för en operations- kod från instruktionsregistret 48, förbundna med ingångar till en väljare 67. Väljaren styrs av till- ståndssignaler, som avges till en styrenhet 69 ingående i väljaren 67. Styrenheten kan vara en kombinatorisk krets. l enlighet med styrningen förbinder väljaren 67 ingångsledningarna för en tabellslagning med en av de parallella tabellerna 7l, som innehåller mikroinstruktionskoderna för de olika fallen hos värdena på ingångstillståndssignalerna. Denna utformning resulterar i en mycket snabb översättningsfunktion, som också kan ändras relativt lätt.

Claims (11)

10 15 20 25 30 520 511 6 PATENTKRAV
1. l. Digital processor for att exekvera programinstruktioner och med en exekveringsenhet, som exekverar mikroinstruktioner innehållande operationskoder, och en översättningsanordning, som översätter programinstruktioner till mikroinstruktioner genom användning av operationsko- den i en programinstruktion som ingång till eller adress till en översättningstabell med mikroin- struktionskoder, varvid den digitala processorn alstrar och/eller mottar minst en tillståndssignal for styrning av tillståndet hos den digitala processom, k ä n n e t e c k n a d av - att översättningsanordningen är kopplad att motta den minst en tillståndssignalen och är anord- nad att översätta programinstruktionema beroende på värdena hos den minst en tillståndssignalen, och - att översättningsanordningen är anordnad att användas som ingång eller adress till översätt- ningstabellen for operationskoderna hos en programinstruktion, till vilken är lagd minst en bitpo- sition, som innehåller värdet på den minst en tillståndssignalen.
2. Digital processor enligt krav l, k ä n n et e c k n a d av att översättningsanordningen är anordnad att översätta programinstruktionema, så att minst en programinstruktion översätts till olika mikroinstruktioner for olika värden på den minst en tillståndssignalen.
3. Digital processor enligt något av krav 1 - 2, k ä n n e t e c k n a d av att en forsta del av översättningstabellen används av översättningsanordningen for att översätta programinstruktioner for ett forsta värde på en tillståndssignal, och en andra del av översättningstabellen används av översättningsanordningen for att översätta programinstruktioner for ett andra värde på en till- ståndssignal, varvid det andra värdet är skilt från det första värdet.
4. Digital processor enligt krav 3, k ä n n e t e c k n a d av att de forsta och andra delama i översättningstabellen är disjunkta.
5. Digital processor enligt något av krav 1 - 4, k ä n n e t e c k n a d av att den minst en till- ståndssignalen innefattar en signal, som anger, huruvida en spåmingsfunktion är aktiverad eller inte är aktiverad i den digitala processom.
6. Digital processor enligt något av krav 1 - 5, k ä n n e t e c k n a d av att översättnings- tabellen är en kombinatorisk krets, som innehåller logiska grindar, vilka bildar en översättnings- matris.
7. Förfarande for att översätta operationskoder i prograrninstruktioner till mikroinstruktio- ner i en digital processor, som är anordnad att motta programinstruktionema och har en exekve- ringsenhet for att exekvera mikroinstruktionema, k ä n n e t e c k n at av - att översättningen av operationskoderna utförs enligt värdena på minst en tillståndssignal, som anger tillståndet hos den digitala processorn, så att de resulterande mikroinstruktionerna blir be- 10 15 520 511 roende på dessa värden, och - att översättningen utförs enligt en översâttningstabell och med användning, som ingång eller adress till översättningstabellen, av operationskoden hos en programinstruktion, till vilken är lagd minst en bitposition, som anger värdet eller värdena på den minst en tillståndssignalen.
8. Förfarande enligt krav 7, k ä n n e t e c k n at av att operationskodema översätts, så att minst en programinstruktion översätts till olika mikroinstruktioner för olika värden på minst en tillståndssignal.
9. Förfarande enligt något av krav 7 - 8, k ä n n e t e c k n at av att översättningen utförs i enlighet med en översättningstabell, varvid översättningstabellen har första och andra delar, och att översättningen utförs enligt den första delen för ett första värde på tillständssignalen och enligt en andra del för ett andra värde på tillståndssignalen, varvid det andra värdet är skilt från det första värdet.
10. Förfarande enligt krav 9, k ä n n e t e c k n a t av att översättningen utförs med använd- ning av disjunkta första och andra delar av översättningstabellen.
11. ll. Förfarande enligt något av krav 7 - 10, k ä n n e t e c k n at av att översättningen utförs i enlighet med värdet på en signal, som anger huruvida en spåmingsfunktion är aktiverad eller inte är aktiverad i den digitala processorn.
SE9704475A 1997-12-02 1997-12-02 Processor och förfarande för instruktionsavkodning SE520511C2 (sv)

Priority Applications (8)

Application Number Priority Date Filing Date Title
SE9704475A SE520511C2 (sv) 1997-12-02 1997-12-02 Processor och förfarande för instruktionsavkodning
US09/201,855 US6611909B1 (en) 1997-12-02 1998-12-01 Method and apparatus for dynamically translating program instructions to microcode instructions
JP2000523600A JP2001525568A (ja) 1997-12-02 1998-12-02 命令デコーダ
PCT/SE1998/002205 WO1999028817A2 (en) 1997-12-02 1998-12-02 An instruction decoder
EP98960140A EP1034472A2 (en) 1997-12-02 1998-12-02 An instruction decoder
CA002313013A CA2313013C (en) 1997-12-02 1998-12-02 An instruction decoder
AU15810/99A AU1581099A (en) 1997-12-02 1998-12-02 An instruction decoder
BR9815119-3A BR9815119A (pt) 1997-12-02 1998-12-02 Processador digital, e, processo de traduzir códigos de operação de instruções de programa para microinstruções em um processador digital

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9704475A SE520511C2 (sv) 1997-12-02 1997-12-02 Processor och förfarande för instruktionsavkodning

Publications (3)

Publication Number Publication Date
SE9704475D0 SE9704475D0 (sv) 1997-12-02
SE9704475L SE9704475L (sv) 1999-06-23
SE520511C2 true SE520511C2 (sv) 2003-07-22

Family

ID=20409221

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9704475A SE520511C2 (sv) 1997-12-02 1997-12-02 Processor och förfarande för instruktionsavkodning

Country Status (8)

Country Link
US (1) US6611909B1 (sv)
EP (1) EP1034472A2 (sv)
JP (1) JP2001525568A (sv)
AU (1) AU1581099A (sv)
BR (1) BR9815119A (sv)
CA (1) CA2313013C (sv)
SE (1) SE520511C2 (sv)
WO (1) WO1999028817A2 (sv)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128701B2 (en) * 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
EP2508979B1 (en) * 2011-04-07 2018-10-10 VIA Technologies, Inc. Efficient conditional alu instruction in read-port limited register file microprocessor
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US8924695B2 (en) * 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US8892958B2 (en) 2012-06-15 2014-11-18 International Business Machines Corporation Dynamic hardware trace supporting multiphase operations
US9262163B2 (en) 2012-12-29 2016-02-16 Intel Corporation Real time instruction trace processors, methods, and systems
US9697074B2 (en) 2014-12-11 2017-07-04 Internatioanl Business Machines Corporation Non-local error detection in processor systems
US10157057B2 (en) * 2016-08-01 2018-12-18 Syntel, Inc. Method and apparatus of segment flow trace analysis
JP2019095952A (ja) * 2017-11-21 2019-06-20 ソニーセミコンダクタソリューションズ株式会社 プロセッサ、情報処理装置および処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3522589A (en) * 1968-10-31 1970-08-04 Honeywell Inc Data processing apparatus
US3634883A (en) * 1969-11-12 1972-01-11 Honeywell Inc Microinstruction address modification and branch system
US4063310A (en) * 1973-07-25 1977-12-13 Pye Limited Sampler control system for chromatograph analytical apparatus
US3949370A (en) * 1974-06-06 1976-04-06 National Semiconductor Corporation Programmable logic array control section for data processing system
US4459666A (en) * 1979-09-24 1984-07-10 Control Data Corporation Plural microcode control memory
US4587611A (en) * 1980-09-04 1986-05-06 Amdahl Corporation Multiple module control store for use in a data processing system
US4472772A (en) * 1981-08-03 1984-09-18 Burroughs Corporation High speed microinstruction execution apparatus
US4509114A (en) * 1982-02-22 1985-04-02 International Business Machines Corporation Microword control mechanism utilizing a programmable logic array and a sequence counter
US4691278A (en) * 1984-04-23 1987-09-01 Nec Corporation Data processor executing microprograms according to a plurality of system architectures
JPS62164133A (ja) * 1986-01-16 1987-07-20 Toshiba Corp マイクロプログラム制御装置
US5617574A (en) 1989-05-04 1997-04-01 Texas Instruments Incorporated Devices, systems and methods for conditional instructions
WO1992002883A1 (en) 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Parallel-processing systems
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus

Also Published As

Publication number Publication date
WO1999028817A3 (en) 1999-07-22
SE9704475D0 (sv) 1997-12-02
JP2001525568A (ja) 2001-12-11
BR9815119A (pt) 2000-10-10
AU1581099A (en) 1999-06-16
EP1034472A2 (en) 2000-09-13
WO1999028817A2 (en) 1999-06-10
US6611909B1 (en) 2003-08-26
CA2313013A1 (en) 1999-06-10
CA2313013C (en) 2005-03-29
SE9704475L (sv) 1999-06-23

Similar Documents

Publication Publication Date Title
SE520511C2 (sv) Processor och förfarande för instruktionsavkodning
US4430706A (en) Branch prediction apparatus and method for a data processing system
JP6807383B2 (ja) 転送プレフィックス命令
JP2550213B2 (ja) 並列処理装置および並列処理方法
US5692167A (en) Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
JP2796797B2 (ja) ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法
US4991078A (en) Apparatus and method for a pipelined central processing unit in a data processing system
US7065632B1 (en) Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
US5398321A (en) Microcode generation for a scalable compound instruction set machine
WO1998054640A1 (en) Unroll of instructions in a micro-controller
US4954943A (en) Data processing system
JPS586173B2 (ja) チャネル制御方式
JPH064282A (ja) 命令データのストリームから複数の命令を選択する回路
WO2000014628A1 (en) A method and apparatus for branch prediction using a second level branch prediction table
US20040030860A1 (en) Conditional execution control head in a vliw processor
US10338923B2 (en) Branch prediction path wrong guess instruction
US20060271768A1 (en) Instruction issue control within a superscalar processor
KR100603067B1 (ko) 분기 예측의 타입을 분류하기 위해 복귀 선택 비트들을 이용하는 분기 예측
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
US5404471A (en) Method and apparatus for switching address generation modes in CPU having plural address generation modes
KR100374401B1 (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
CA2026225C (en) Apparatus for accelerating store operations in a risc computer

Legal Events

Date Code Title Description
NUG Patent has lapsed