SE520511C2 - Processor och förfarande för instruktionsavkodning - Google Patents
Processor och förfarande för instruktionsavkodningInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 9
- 230000001419 dependent effect Effects 0.000 claims 1
- 239000011159 matrix material Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 15
- 230000003213 activating effect Effects 0.000 description 2
- 238000010009 beating Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001502 supplementing effect 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring 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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance 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)
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.
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)
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)
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 |
-
1997
- 1997-12-02 SE SE9704475A patent/SE520511C2/sv not_active IP Right Cessation
-
1998
- 1998-12-01 US US09/201,855 patent/US6611909B1/en not_active Expired - Lifetime
- 1998-12-02 JP JP2000523600A patent/JP2001525568A/ja active Pending
- 1998-12-02 BR BR9815119-3A patent/BR9815119A/pt not_active Application Discontinuation
- 1998-12-02 AU AU15810/99A patent/AU1581099A/en not_active Abandoned
- 1998-12-02 EP EP98960140A patent/EP1034472A2/en not_active Withdrawn
- 1998-12-02 WO PCT/SE1998/002205 patent/WO1999028817A2/en active Application Filing
- 1998-12-02 CA CA002313013A patent/CA2313013C/en not_active Expired - Lifetime
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 |