IS1500 Datorteknik och komponenter 6 apr -17 IS1500 Datorteknik och komponenter Föreläsning CE F1 Computer Engineering Introduktion Här kan Du anteckna vad du vill .... 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Välkommen till fortsättning av IS1500 Datorteknik och komponenter 6 apr -17 Välkommen till fortsättning av IS1500 Datorteknik och komponenter ”Hur datorer fungerar” Kursens hemsida finns utpekad från: http://www.ict.kth.se/courses/IS1500 emailadress till lärare: is1500@ict.kth.se Kursansvarig: Fredrik Lundevall 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k CE - Computer Engineering 6 apr -17 IS1500 Datorteknik o k CE - Computer Engineering Datorns funktion på olika nivåer från JAVA/C-kod till NAND-grind Programexempel: sum = 0 ; for (i=1; i<=17; i=i+1) sum = sum + i; Exempel på digitala komponenter: asdfasdfasdf 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k http://www.ict.kth.se/courses/IS1500 DC F1 DC Ö1 DC F2 DC Ö2 lab dicom Digitala komponenter CE F1 CE F2 CE Ö1 CE F3 CE Ö2 CE F4 CE Ö3 lab nios2time Assemblerprogram CE F5 CE Ö4 hemlab C C CE F6 CE Ö5 CE Ö6 lab nios2io In- och utmatning CE F7 CE Ö7 lab nios2int Avbrott och "trap" CE F8 CE Ö8 hemlab cache Cacheminnen Trådar, synkronisering CE F9 CE Ö9 hemlab trådar CE F10 CE Ö10 tentamen 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Laborationer CE – Computer Engineering 6 apr -17 Laborationer CE – Computer Engineering Assemblerprogrammering av Nios-processorn Enkla program på Nios-processorn (nios2time) I/O på Nios-processorn (nios2io) Avbrottshantering på Nios-processorn (nios2int) Hemlaborationer Maskinnära programmering med C (”C-labben”) Minnessystem med cache-minnen (”Cache-labben”) Prestanda påverkas av parametervärden Operativsystem, (”OS-labben”) Fördelning av CPU-tid Samverkan mellan processer med semaforer asdfasdfasdfasdfasdfasf 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik Lärare: 6 apr -17 IS1500 Datorteknik Lärare: Fredrik Lundevall, kursledare, föreläsare, Övn och lab Johan Wennlund, biträdande kursledare, föreläsare, Övn och lab William Sandkvist, Övn och lab Gunnar Johansson, lab Eventuellt ytterligare asdfasdfasd 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Föreläsning CE F1, innehåll 6 apr -17 IS1500 Datorteknik Föreläsning CE F1, innehåll CPU - BUS – MEM – I/O Fetch - Execute Instruktioner och Data Instruktionsformat Adressering - operandutpekning Hoppinstruktioner 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Litteraturhänvisningar Kursboken, valda delar av kapitel 2, Speciellt sidorna 74-101 105-108 128-136 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Köp Nios2-Manual till övningar Nios II Processor Reference Handbook Chap 3 & 8 Finns att köpa på ”Delfi-STEX” 40:- (eller skriv ut själv) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Nu börjar det ! Programexempel Java-/C-kod int A, B, C; /* variabler, data */ ... C = A + B; /* program, code/text */ 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Program i Java/C-kod kompileras/översätts till ASSEMBLER-kod int A, B, C; /* variabler, data */ översätts (kompileras) till assembler-kod .data # nu kommer data .align 2 # på adress delbar med 4 A: .word 0 # plats för en integer /32 bitar B: .word 0 # plats för en integer /32 bitar C : .word 0 # plats för en integer /32 bitar 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Program i Java/C-kod kompileras/översätts till ASSEMBLER-kod C = A + B; /* program, code/text */ översätts (kompileras) till assembler-kod .text # nu kommer programkod .align 2 # på adress delbar med 4 LOAD R1 <-- A LOAD R2 <-- B ADD R3 <-- R1 + R2 STORE C <-- R3 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Program i ASSEMBLER-kod assembleras/översätts till Maskinkod / binärkod # maskinkod/binärkod #kommentarer 0010 1101 1111 …. 1101 #LOAD R1 <-- A 0010 1101 1110 …. 1101 #LOAD R2 <-- B 1001 1101 0101 …. 1111 #ADD R3 <-- R1+R2 0011 1111 1101 …. 0010 #STORE C <-- R3 # hur många bitar? 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Viktiga delar i en dator CPU BUS program I/O MEM data 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Viktiga delar i en dator MEM - Memory/Minne lagrar program och data (Minne = Lagringsplats) CPU - Central Processing Unit; den enhet som ”kör program” dvs hämtar och utför instruktioner IO - Input/Output; enheter för kommunikation med omvärlden BUS; överföring av information/bitar mellan CPU/MEM/IO 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexekvering (decode) EXECUTE FETCH (update PC) HÄMTA UTFÖR 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexekvering FETCH - HÄMTA PC - Program Counter innehåller en minnesadress som pekar ut aktuell instruktion. Kopiera en instruktion från minne till processorns IR - Instruction Register Uppdatera PC för att peka ut nästa instruktion (öka PC med 1/2/4 ...) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexekvering EXECUTE - UTFÖR Decode - Avkoda innehållet i IR – Instruction Register dvs ”lista ut” vilken instruktion som bitkoden i IR motsvarar Execute - Utför denna instruktion 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Processorn (t.ex Nios eller MIPS eller …) PC Minne Generella register Programräknare En förenklad bild av NiosII-arkitekturen med minne. 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexempel 1 MINNE PROGRAMRÄKNAREE PROGRAM COUNTER uppdatera öka med vad? 4 eller 2 eller LOAD ADD STORE PROGRAM (.text) LOAD LOAD A: B: C: DATA (.data) ADD STORE 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-instruktioner vilka behövs ? exempel ! LOAD kopiera från minne till CPU ADD utför aritmetisk operation STORE kopiera från CPU till minne SUB utför aritmetisk operation ADDI Add Immediate SUBI Subtract Immediate ... flera ”införs” vid behov ... 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen LOAD Rdst <-- A LOAD: Läs/Kopiera från minne till register Destinationsplats är Rdst Källoperanden finns i minnet på adress A Effektivadressen till källoperanden är A En läsning från minnet i Fetch En läsning från minnet i Execute 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen STORE C <-- Rsrc STORE: Skriv/Kopiera från register till minne Källoperand finns i Rsrc Destinationsplats i minnet på adress C Effektivadressen till destinationen är C En läsning från minnet i Fetch En skrivning till minnet i Execute 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen ADDITION ADD Rdst, Rsrc1 , Rsrc2 Utför addition av två värden, som vardera upptar 32 bitar, hämtade från register Rsrc1 och Rsrc2 och skriver summan till register Rdst En läsning från minnet (Fetch) Rdst Rsrc1 + Rsrc2 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT binärkodsformat ADD Rdst, RsrcA, RsrcB ADD 6 5 5 5 bitar per fält Hur många bitar behövs ? 3 regadr + opcode ! Hur stor blir varje instruktion ? 21 bitar ! INSTRUKTIONSFORMAT enligt ovan 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Binärkod i Nios II, 32 bitar INSTRUKTIONSFORMAT Binärkod i Nios II, 32 bitar ADD Rdst, RsrcA, RsrcB 0x31 0x00 0x3a 5 5 5 6 5 6 bitar per fält Hur många bitar behövs ? 15 + op-code Hur stor är varje instruktion ? 32 bitar ! INSTRUKTIONSFORMAT enligt ovan 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen SUBTRAKTION SUB Rdst, Rsrc1 , Rsrc2 Utför subtraktion mellan två värden som vardera upptar 32 bitar hämtade från register Rsrc1 och Rsrc2 och skriver skillnaden till register Rdst En läsning från minnet (Fetch) Rdst Rsrc1 - Rsrc2 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Nytt Programexempel C = A + 17 # addera med konstant ”kan översättas” till LOAD R1 <-- A ADDI R3 <-- R1 + 17 #ny instruktion STORE C <-- R3 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen ADDITION, Add Immediate ADDI Rdst, Rsrc1 , datan Utför addition av två värden, som vardera upptar 32 resp. n bitar, hämtade från register Rsrc1 samt ???, och skriver summan till register Rdst En läsning från minnet (Fetch) ??? Rdst <-- Rsrc1 + datan 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Assembler-Instruktionen SUBTRAKTION, Sub Immediate SUBI Rdst, Rsrc1 , datan Utför subtraktion mellan två värden som vardera upptar 32 resp. n bitar hämtade från register Rsrc1 samt ???, och skriver skillnaden till register Rdst En läsning från minnet (Fetch) ??? Rdst <-- Rsrc1 - datan 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT binärkodsformat ADDI Rdst, Rsrc, datan SUBI Rdst, Rsrc, datan ADDI/SUBI 6 5 5 n bitar per fält Hur många bitar behövs? 16 + n ! Hur stor blir varje instruktion? 16+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 16! 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Binärkod i Nios II, 32 bitar INSTRUKTIONSFORMAT Binärkod i Nios II, 32 bitar ADDI Rdst, RsrcA, Data 0x04 5 5 16 6 bitar per fält SUBI rB, rA, IMM16 ADDI rB, rA, -IMM16 IMM16 innehåller ett 2-komplement-tal ... Intruktionen SUBI får man ”gratis” 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Operandutpekning Adressering Exempel på varianter ”Var finns operanden” I register, med namn/nummer, t.ex. i R4 Vilka register finns? t.ex. R0--R31 (~få !) (”snabbt”, register finns inne i CPU-chipet) I minnet, på en viss adress t.ex. 0x046C (”långsamt”, minnet finns utanför CPU-chipet) Hur många platser finns? (~många !) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Effektivadress vid operand i minnet Vid operandutpekning i minnet gäller Effektiva Adressen är adressen till den plats i minnet där operanden lagras 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Operandutpekning med operand i minnet Effektivadress i instruktionens ”adressfält” Effektivadress i ett register Operand i instruktionens ”datafält” Indexerad adressering Självrelativ adressering, PC-relativ … det finns fler varianter ... 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Direkt adress (ej indirekt) Absolut adress (ej relativ) Instruktionens adressfält innehåller effektivadressen (EA) effektivadressen är adressen till den plats i minnet där operanden lagras till exempel: LOAD reg <- Addr # reg := mem(Addr) LOAD reg Addr 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Direkt operand (Immediate addressing) Instruktionens ”adressfält” innehåller operandvärdet effektivadress är inte relevant exempel: MOVI reg <- Data #reg := Data MOVI reg Data 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Register operand (Register addressing) Ett register innehåller operandvärdet effektivadress är inte relevant Kan betecknas direkt via register exempel: MOVE reg1 <- reg2 #reg1 := reg2 MOVE reg reg ??? 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Register indirect addressing (Indirekt adress via register) Ett register innehåller effektivadressen Effektivadressen är adressen till den plats i minnet där operanden lagras exempel: LOAD reg1 <- (reg2) #reg1 := mem(reg2) LOAD reg1 reg2 ??? 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Indexerad adressering (Displacement addressing) Effektivadressen är adressen till den plats i minnet där operanden lagras Effektivadressen är summan av innehåll i instruktionens adressfält och innehåll i angivet indexregister exempel: LOAD reg <- offset(INDEXREG) reg := mem (offset+indexreg) LOAD reg indexreg offset 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Indexerad adressering Exempel på specialfall LOAD Offset(Indexregister) Offset = 0 ger ”adress i register” Indexregister innehåller 0 ger direkt (absolut) adress Indexregister = PC ger PC-relativ adressering= själv-relativ adressering 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Självrelativ adressering PC-relativ adressering (specialfall av Indexerad adressering) Effektivadressen är adressen till den plats i minnet där operanden lagras Effektivadressen är summan av innehåll i instruktionens adressfält och (aktuellt) innehåll i Program Counter (PC) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Java/C-kod: if-sats ger behov av hopp if (cond) then body1 else body2; leder till flödes-schema enligt figur till höger Vi får behov av HOPP VILLKORLIGT HOPP OVILLKORLIGT HOPP True Cond ? False Body2 Body1 Next 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Java/C-kod: for-loop ger behov av hopp init start init; for (start; cond; update) body; leder till flödes-schema enligt figur till höger Vi får behov av HOPP OVILLKORLIGT HOPP VILLKORLIGT HOPP (även while, repeat-until, ...) Test: Cond ? False True Body update Next 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Effektiv adress vid hoppinstruktioner Vid hoppinstruktioner gäller: Effektiva Adressen är det värde som skrivs till PC dvs adressen till den plats i minnet där programmet ska fortsätta 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Ovillkorliga hopp JUMP och BRA JUMP brukar ha direkt adress BRA brukar ha PC-relativ adress 32: JMP 104 # PC := 104 ”hopp till 104” . 104: 224: BRA 40 # PC := pc + 40 ”hopp till 268” 268: 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 JMP Label # symbolisk adress översätts till JMP addr # numerisk absolutadress av översättaren/assemblern RUT: ADD … t.ex.500 520: JMP RUT 500: ADD … 520: JMP 500 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 BRA Label # symbolisk adress översätts till BRA disp # numerisk displacement av översättaren/assemblern RUT: ADD … t.ex.500 520: BRA RUT 500: ADD … 520: BRA -24 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
JMP ger icke relokerbar kod på grund av absolut adressering RUT: ADD … t.ex. 500 520 JMP 500 hopp till fel plats relokering RUT: ADD … ny plats JMP 500 Före relokering Efter relokering 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
BRA ger relokerbar kod tack vare PC-relativ adressering RUT: ADD … t.ex. 500 520 BRA -24 hopp till rätt plats relokering RUT: ADD … ny plats BRA -24 Före relokering Efter relokering 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Ovillkorligt hopp BRA, Branch Always BRA Label Hoppa (alltid) till Label dvs Kopiera värdet Label till PC Nästa instruktion som hämtas finns vid adressen Label En läsning från minnet (Fetch) ? Hur anges Label? Adressering ! Översättaren räknar fram koden 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Villkorligt hopp Bcond, Branch on condition Bcond Label Om villkoret är sant hoppa till Label Om villkoret är falskt (= ej sant) fortsätt som vanligt utan hopp (öka PC med 4) Vad menas med villkoret ? 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 CC - Condition Code Condition Code - CC Register som innehåller information om utfall av tidigare operationer/instruktioner Z - Zero N - Negative C - Carry V - oVerflow … det kan finnas fler typ Odd, Parity ... 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Processorn (t.ex Nios eller MIPS eller …) PC Minne Generella register Programräknare En förenklad bild av NiosII-arkitekturen med minne. 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Gäller för MIPS-Processorn (ej Nios-II) Minne Generella register Programräknare R0 PC R1 Status R31 NVZC En förenklad bild av arkitektur med STATUS-register. 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Instruktionen (i repris) ADDITION, variant 1 ADD Rdst, Rsrc1 , Rsrc2 Utför addition av två värden, som vardera upptar 32 bitar, hämtade från register Rsrc1 och Rsrc2 skriver summan till register Rdst En läsning från minnet (Fetch) Rdst <-- Rsrc1 + Rsrc2 samt att CC påverkas 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Instruktionen (i repris) SUBTRAKTION, variant 1 SUB Rdst, Rsrc1 , Rsrc2 Utför subtraktion mellan två värden som vardera upptar 32 bitar hämtade från register Rsrc1 och Rsrc2 skriver skillnaden till register Rdst En läsning från minnet (Fetch) Rdst <-- Rsrc1 - Rsrc2 samt att CC påverkas 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
NYTT: Instruktion COMPARE, variant 1 CMP Rsrc1 , Rsrc2 utför jämförelse (subtraktion) mellan två värden som vardera upptar 32 bitar hämtade från register Rsrc1 och Rsrc2 skriver INTE skillnaden till register Rdst men påverkar innehåll i Condition Code - CC CC <-- f(Rsrc1 - Rsrc2) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexempel Java-/C-kod int op1, op2; /* variabler, data */ ... /* program, code/text */ if (op1 == op2) goto Label; översätts (kompileras) till assembler-kod (forts. på nästa sida) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 CMP op1, op2 BEQ Label CMP op1, op2 utförs som SUB op1, op2 resultat = op1 minus op2, resultat = 0 betyder att op1 - op2 = 0 dvs samma som att (op1 == op2) CMP op1, op2 BEQ Label Hoppa till Label om op1 lika med op2 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Nios II – dialekt: BEQ op1, op2, Label CMP op1, op2 BEQ Label Hoppa till Label om op1 lika med op2 Alternativ möjlighet (Nios II) BEQ op1, op2, Label 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Nios II – dialekt: CMPcond Rdst ,Rop1 ,Rop2 CMPEQ Rd, Rx, Ry ;Rd:=1 if True BNE Rd, R0, Label Hoppa till Label om Rx lika med Ry Alternativ möjlighet (Nios II) BEQ Rx, Ry, Label Hoppa till Label om op1 lika med op2 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
MIPS– dialekt Scond Rdst ,Rop1 ,Rop2 slt Rd, Rx, Ry ;Rd:=1 if True bne Rd, R0, Label Hoppa till Label om Rx är ”less than” Ry ”Set on condition” MIPS-alternativ: slt, sltu, slti, sltiu u=unsigned, i=immediate 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
CMP op1, op2 Exempel på ”utfall” EQ: op1 Equal to op2 NE: op1 Not Equal to op2 GE: op1 Greater than or Equal to op2 LT: op1 Less Than op2 GT: op1 Greater Than op2 LE: op1 Less than or Equal to op2 . . . det finns fler . . .signed/unsigned 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Bcond Label Exempel på ”cond” och CC EQ: # Z=1 NE: # Z=0 GE: # N=0 LT: # N=1 GT: # Z=0 and N=0 LE: # Z=1 or N=1 . . . det finns fler . . . (CS-Carry Set, . . .) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Bcond Label Bcond op1, op2, Label Många CPU:er Nios II m.fl. BNE Label BNE reg1, reg2, Label BGE Label BGE reg1, reg2, Label BLT Label BLT reg1, reg2, Label BGT Label BGT reg1, reg2, Label BLE Label BLE reg1, reg2, Label . . . det finns fler . . . (CS-Carry Set, . . .) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT JUMP brukar ha direkt adress JUMP Label JUMP 6 n bitar per fält Hur många bitar behövs? 6+n! Hur stor blir varje instruktion? 6+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 10/26! 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT Nios II JMP med register indirekt adress JMP rA 0x0d 0x3a 5 5 5 6 5 6 bitar per fält INSTRUKTIONSFORMAT enligt ovan Hur stort hopp har man ? PC := (rA) # 32 bitars adress ! 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT BRA brukar ha PC-relativ adress BRA Displacement BRA 6 n bitar per fält Hur många bitar behövs? 6+n! Hur stor blir varje instruktion? 6+n! INSTRUKTIONSFORMAT enligt ovan Vilket värde bör man välja för n? 10/26! 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT Nios II BR med PC-relativ adressering Displacement lagras i IMM16 BR Label IMM16 0x06 5 5 16 6 bitar per fält PC PC + 4 + signext(IMM16) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 INSTRUKTIONSFORMAT Nios II Bcond med PC-relativ adressering Displacement lagras i IMM16 BCond RA, RB, Label A B IMM16 cond 5 5 16 6 bitar per fält True: PC PC + 4 + signext(IMM16) False: PC PC + 4 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Föreläsning 1, innehåll CPU - BUS - MEM Fetch - Execute Instruktioner och Data Instruktionsformat Adressering - operandutpekning Hoppinstruktioner 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Viktiga delar i en dator CPU BUS program I/O MEM data 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
IS1500 Datorteknik o k, föreläsning CE - F1 Programexekvering (decode) EXECUTE FETCH (update PC) 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1
Dual-core / Multi-core CPU CPU ... ... BUS I/O MEM 6 April 2017 IS1500 Datorteknik o k, föreläsning CE - F1