Download - IS1500 Datorteknik och komponenter
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 1
IS1500 Datorteknik och komponenter
Föreläsning CE F1Computer Engineering
Introduktion
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 2
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:[email protected]
Kursansvarig: Fredrik Lundevall
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 3
IS1500 Datorteknik o kCE - Computer EngineeringDatorns 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:
&Q
Q’
Dpreset
clclear
IS1500 Datorteknik o k http://www.ict.kth.se/courses/IS1500
Digitala komponenter
Assemblerprogram
C
In- och utmatning
Avbrott och "trap"
CacheminnenTrådar, synkronisering
DC F1
DC F2
CE F1
CE F3
CE F4
CE F5
CE F6
CE F7
CE F8
CE F9
CE F2
DC Ö1
DC Ö2
CE Ö4
CE Ö1
CE Ö2
CE Ö3
CE Ö7
CE Ö8
CE Ö9
CE Ö5 CE Ö6
lab dicom
lab nios2time
hemlab C
lab nios2io
lab nios2int
hemlab cache
hemlab trådar
CE F10 CE Ö10 tentamenApril 20, 2023 4
IS1500 Datorteknik o k, föreläsning CE - F1
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 5
LaborationerCE – Computer Engineering
Assemblerprogrammering av Nios-processorn1. Enkla program på Nios-processorn (nios2time)2. I/O på Nios-processorn (nios2io)3. Avbrottshantering på Nios-processorn (nios2int)
Hemlaborationer1. Maskinnära programmering med C (”C-labben”)2. Minnessystem med cache-minnen (”Cache-labben”)
Prestanda påverkas av parametervärden3. Operativsystem, (”OS-labben”)
Fördelning av CPU-tidSamverkan mellan processer med semaforer
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 6
IS1500 DatorteknikLärare:Fredrik Lundevall,
kursledare, föreläsare, Övn och labJohan Wennlund,
biträdande kursledare, föreläsare, Övn och lab
William Sandkvist, Övn och labGunnar Johansson, labEventuellt ytterligare
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 7
IS1500 Datorteknik
Föreläsning CE F1, innehåll
CPU - BUS – MEM – I/OFetch - ExecuteInstruktioner och DataInstruktionsformatAdressering - operandutpekningHoppinstruktioner
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 8
Litteraturhänvisningar
Kursboken, valda delar av kapitel 2,Speciellt sidorna
74-101105-108128-136
Köp Nios2-Manual till övningar
Nios II Processor Reference HandbookChap 3 & 8
Finns att köpa på ”Delfi-STEX” 40:-(eller skriv ut själv)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 9
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 10
Nu börjar det !Programexempel
Java-/C-kod int A, B, C;/* variabler, data */...C = A + B; /* program, code/text */...
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 11
Program i Java/C-kodkompileras/översätts till
ASSEMBLER-kodint A, B, C; /* variabler, data */ översätts (kompileras) till assembler-kod.data # nu kommer data.align 2 # på adress delbar med 4A: .word 0 # plats för en integer /32 bitarB: .word 0 # plats för en integer /32 bitarC : .word 0 # plats för en integer /32 bitar
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 12
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 <-- ALOAD R2 <-- BADD R3 <-- R1 + R2STORE C <-- R3
Program i Java/C-kodkompileras/översätts till
ASSEMBLER-kod
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 13
Program i ASSEMBLER-kod assembleras/översätts till
Maskinkod / binärkod
# maskinkod/binärkod #kommentarer0010 1101 1111 …. 1101 #LOAD R1 <-- A 0010 1101 1110 …. 1101 #LOAD R2 <-- B1001 1101 0101 …. 1111 #ADD R3 <--
R1+R20011 1111 1101 …. 0010 #STORE C <-- R3# hur många bitar?
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 14
Viktiga delar i en dator
CPU
MEM
BUS
I/Oprogram
data
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 15
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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 16
Programexekvering
FETCH(update PC)
(decode)EXECUTE
HÄMTA UTFÖR
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 17
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 ...)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 18
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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 19
Processorn(t.ex Nios eller MIPS eller …)
R0
R31
R1 PC
MinneGenerella register Programräknare
En förenklad bild av NiosII-arkitekturen med minne.
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 20
A:B:C:
LOAD
LOAD
STORE
ADD
LOADLOADADDSTORE
PROGRAM(.text)
DATA(.data)
Programexempel 1
PROGRAMRÄKNAREEPROGRAM COUNTER uppdatera
öka med vad?4 eller 2 eller
MINNE
Assembler-instruktionervilka behövs ? exempel !
LOAD kopiera från minne till CPUADD utför aritmetisk operationSTORE kopiera från CPU till minneSUB utför aritmetisk operationADDI Add ImmediateSUBI Subtract Immediate... flera ”införs” vid behov ...
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 21
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 22
Assembler-InstruktionenLOAD 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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 23
Assembler-InstruktionenSTORE 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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 24
Assembler-InstruktionenADDITION
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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 25
ADD Rdst, RsrcA, RsrcB
ADD
Hur många bitar behövs ? 3 regadr + opcode !Hur stor blir varje instruktion ? 21 bitar !INSTRUKTIONSFORMAT enligt ovan
INSTRUKTIONSFORMATbinärkodsformat
6 5 5 5 bitar per fält
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 26
ADD Rdst, RsrcA, RsrcB
0x31
Hur många bitar behövs ? 15 + op-codeHur stor är varje instruktion ? 32 bitar !INSTRUKTIONSFORMAT enligt ovan
INSTRUKTIONSFORMATBinärkod i Nios II, 32 bitar
5 5 5 6 5 6 bitar per fält
0x3a0x00
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 27
Assembler-InstruktionenSUBTRAKTION
SUB Rdst, Rsrc1 , Rsrc2
Utför subtraktion mellan två värdensom vardera upptar 32 bitarhämtade från register Rsrc1 och Rsrc2
och skriver skillnaden till register Rdst
En läsning från minnet (Fetch)Rdst Rsrc1 - Rsrc2
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 28
Nytt Programexempel
C = A + 17 # addera med konstant
”kan översättas” tillLOAD R1 <-- AADDI R3 <-- R1 + 17 #ny
instruktionSTORE C <-- R3
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 29
Assembler-InstruktionenADDITION, 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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 30
Assembler-InstruktionenSUBTRAKTION, Sub Immediate
SUBI Rdst, Rsrc1 , datan
Utför subtraktion mellan två värdensom vardera upptar 32 resp. n bitarhämtade från register Rsrc1 samt ???,
och skriver skillnaden till register Rdst
En läsning från minnet (Fetch) ???Rdst <-- Rsrc1 - datan
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 31
ADDI Rdst, Rsrc, datan SUBI Rdst, Rsrc, datan
ADDI/SUBI
Hur många bitar behövs? 16 + n !Hur stor blir varje instruktion? 16+n!INSTRUKTIONSFORMAT enligt ovanVilket värde bör man välja för n? 16!
6 5 5 n bitar per fält
INSTRUKTIONSFORMATbinärkodsformat
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 32
ADDI Rdst, RsrcA, Data
SUBI rB, rA, IMM16 ADDI rB, rA, -IMM16IMM16 innehåller ett 2-komplement-tal ... Intruktionen SUBI får man ”gratis”
5 5 16 6 bitar per fält
0x04
INSTRUKTIONSFORMATBinärkod i Nios II, 32 bitar
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 33
OperandutpekningAdressering
Exempel på varianter
”Var finns operanden”1. I register, med namn/nummer, t.ex. i R4
Vilka register finns? t.ex. R0--R31 (~få !) (”snabbt”, register finns inne i CPU-chipet)
2. I minnet, på en viss adress t.ex. 0x046C (”långsamt”, minnet finns utanför CPU-chipet)Hur många platser finns? (~många !)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 34
Effektivadressvid operand i minnet
Vid operandutpekning i minnet gäller
Effektiva Adressen äradressen till den plats i minnet
däroperanden lagras
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 35
Operandutpekning medoperand i minnet
Effektivadress i instruktionens ”adressfält”
Effektivadress i ett registerOperand i instruktionens ”datafält”Indexerad adresseringSjälvrelativ adressering, PC-relativ… det finns fler varianter ...
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 36
Direkt adress (ej indirekt)Absolut adress (ej relativ)
Instruktionens adressfält innehållereffektivadressen (EA)
effektivadressen är adressen till den plats i minnet där operanden lagras
till exempel:LOAD reg <- Addr # reg :=
mem(Addr)LOAD reg Addr
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 37
Direkt operand(Immediate addressing)
Instruktionens ”adressfält” innehålleroperandvärdet
effektivadress är inte relevantexempel:MOVI reg <- Data #reg := Data
MOVI reg Data
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 38
Register operand(Register addressing)
Ett register innehålleroperandvärdet
effektivadress är inte relevantKan betecknas direkt via registerexempel:MOVE reg1 <- reg2 #reg1 := reg2
MOVE reg reg ???
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 39
Register indirect addressing(Indirekt adress via register)
Ett register innehåller effektivadressenEffektivadressen är adressen till den
plats i minnet där operanden lagrasexempel:LOAD reg1 <- (reg2) #reg1 :=
mem(reg2)
LOAD reg1 reg2 ???
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 40
Indexerad adressering(Displacement addressing)
Effektivadressen är adressen till den plats i minnet där operanden lagras
Effektivadressen är summan avinnehåll i instruktionens adressfält ochinnehåll i angivet indexregister
exempel: LOAD reg <- offset(INDEXREG) reg := mem (offset+indexreg)
LOAD reg indexreg offset
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 41
Indexerad adressering Exempel på specialfall
Offset = 0 ger ”adress i register”Indexregister innehåller 0 ger
direkt (absolut) adressIndexregister = PC ger
PC-relativ adressering=själv-relativ adressering
LOAD Offset(Indexregister)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 42
Självrelativ adresseringPC-relativ adressering
(specialfall av Indexerad adressering)
Effektivadressen är adressen till den plats i minnet där operanden lagras
Effektivadressen är summan avinnehåll i instruktionens adressfält och(aktuellt) innehåll i Program Counter (PC)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 43
Java/C-kod: if-sats ger behov av hopp
Cond ?
Next
False
Trueif (cond) then body1 else body2;
leder till flödes-schemaenligt figur till höger
Vi får behov av HOPP
VILLKORLIGT HOPP
OVILLKORLIGT HOPP
If:
Body1
Body2
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 44
initstart
Java/C-kod: for-loop ger behov av hopp
Cond ?
Next
False
True
init;
for (start; cond; update) body;
leder till flödes-schemaenligt figur till höger
Vi får behov av HOPP
OVILLKORLIGT HOPP
VILLKORLIGT HOPP
(även while, repeat-until, ...)
Test:
Body
update
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 45
Effektiv adressvid hoppinstruktioner
Vid hoppinstruktioner gäller:
Effektiva Adressen ärdet värde som skrivs till PCdvs adressen till den plats i
minnet där programmet ska fortsätta
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 46
Ovillkorliga hoppJUMP och BRA
JUMP brukar ha direkt adress BRA brukar ha PC-relativ adress
JMP 104 # PC := 104 ”hopp till 104”..
BRA 40 # PC := pc + 40 ”hopp till 268”
32:
104:
224:
268:
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 47
JMP Label # symbolisk adressöversätts till
JMP addr# numerisk absolutadressav översättaren/assemblern
RUT: ADD … t.ex.500
520: JMP RUT
500: ADD …
520: JMP 500
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 48
BRA Label # symbolisk adressöversätts till
BRA disp# numerisk displacementav översättaren/assemblern
RUT: ADD … t.ex.500
520: BRA RUT
500: ADD …
520: BRA -24
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 49
JMP ger icke relokerbar kodpå grund av absolut adressering
RUT: ADD … t.ex. 500
520 JMP 500
relokering RUT: ADD …
ny plats
JMP 500
hopp tillfel plats
Före relokering Efter relokering
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 50
BRA ger relokerbar kodtack vare PC-relativ adressering
RUT: ADD … t.ex. 500
520 BRA -24RUT: ADD …
ny plats
BRA -24
relokering
hopp tillrätt plats
Före relokering Efter relokering
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 51
Ovillkorligt hoppBRA, Branch Always
BRA LabelHoppa (alltid) till Label dvsKopiera värdet Label till PCNästa instruktion som hämtas finns
vid adressen LabelEn läsning från minnet (Fetch) ?Hur anges Label? Adressering !
Översättaren räknar fram koden
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 52
Villkorligt hoppBcond, Branch on condition
Bcond LabelOm villkoret är sant
hoppa till LabelOm villkoret är falskt (= ej sant)
fortsätt som vanligt utan hopp (öka PC med 4)
Vad menas med villkoret ?
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 53
CC - Condition CodeCondition Code - CCRegister som innehåller information om
utfall av tidigare operationer/instruktionerZ - ZeroN - NegativeC - CarryV - oVerflow… det kan finnas fler typ Odd, Parity ...
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 54
Processorn(t.ex Nios eller MIPS eller …)
R0
R31
R1 PC
MinneGenerella register Programräknare
En förenklad bild av NiosII-arkitekturen med minne.
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 55
Gäller för MIPS-Processorn (ej Nios-II)
R0
R31
R1 PC
MinneGenerella register Programräknare
NVZC
Status
En förenklad bild av arkitektur med STATUS-register.
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 56
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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 57
Instruktionen (i repris) SUBTRAKTION, variant 1
SUB Rdst, Rsrc1 , Rsrc2
Utför subtraktion mellan två värdensom vardera upptar 32 bitarhä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
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 58
NYTT: InstruktionCOMPARE, variant 1
CMP Rsrc1 , Rsrc2
utför jämförelse (subtraktion) mellantvå värden som vardera upptar 32
bitarhä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)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 59
ProgramexempelJava-/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)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 60
CMP op1, op2BEQ Label
CMP op1, op2 utförs som SUB op1, op2resultat = op1 minus op2, resultat = 0 betyder att op1 - op2 = 0dvs samma som att (op1 == op2)CMP op1, op2BEQ LabelHoppa till Label om op1 lika med op2
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 61
Nios II – dialekt:BEQ op1, op2, Label
CMP op1, op2BEQ LabelHoppa till Label om op1 lika med op2
Alternativ möjlighet (Nios II)BEQ op1, op2, LabelHoppa till Label om op1 lika med op2
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 62
Nios II – dialekt:CMPcond Rdst ,Rop1 ,Rop2
CMPEQ Rd, Rx, Ry ;Rd:=1 if True
BNE Rd, R0, LabelHoppa till Label om Rx lika med Ry
Alternativ möjlighet (Nios II)BEQ Rx, Ry, LabelHoppa till Label om op1 lika med op2
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 63
MIPS– dialektScond Rdst ,Rop1 ,Rop2
slt Rd, Rx, Ry ;Rd:=1 if Truebne Rd, R0, LabelHoppa till Label om Rx är ”less than”
Ry
”Set on condition”MIPS-alternativ: slt, sltu, slti, sltiuu=unsigned, i=immediate
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 64
CMP op1, op2Exempel på ”utfall”
EQ: op1 Equal to op2NE: op1 Not Equal to op2GE: op1 Greater than or Equal to op2LT: op1 Less Than op2GT: op1 Greater Than op2LE: op1 Less than or Equal to op2. . . det finns fler . . .signed/unsigned
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 65
Bcond LabelExempel på ”cond” och CC
EQ: # Z=1NE: # Z=0GE: # N=0 LT: # N=1GT: # Z=0 and N=0LE: # Z=1 or N=1. . . det finns fler . . . (CS-Carry Set, . . .)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 66
Bcond LabelBcond op1, op2, Label
Många CPU:er Nios II m.fl.BNE Label BNE reg1, reg2, LabelBGE Label BGE reg1, reg2, LabelBLT Label BLT reg1, reg2, LabelBGT Label BGT reg1, reg2, LabelBLE Label BLE reg1, reg2, Label. . . det finns fler . . . (CS-Carry Set, . . .)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 67
JUMP brukar ha direkt adress
JUMP Label
JUMP
Hur många bitar behövs? 6+n!Hur stor blir varje instruktion? 6+n!INSTRUKTIONSFORMAT enligt ovanVilket värde bör man välja för n? 10/26!
INSTRUKTIONSFORMAT
6 n bitar per fält
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 68
JMP rA
INSTRUKTIONSFORMATNios II
0x0d
5 5 5 6 5 6 bitar per fält
0x3a00 0
JMP med register indirekt adress
INSTRUKTIONSFORMAT enligt ovanHur stort hopp har man ? PC := (rA) # 32 bitars adress !
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 69
BRA brukar ha PC-relativ adress
BRA Displacement
BRA
INSTRUKTIONSFORMAT
6 n bitar per fält
Hur många bitar behövs? 6+n!Hur stor blir varje instruktion? 6+n!INSTRUKTIONSFORMAT enligt ovanVilket värde bör man välja för n? 10/26!
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 70
BR med PC-relativ adresseringDisplacement lagras i IMM16
BR Label
INSTRUKTIONSFORMATNios II
5 5 16 6 bitar per fält
0x0600 IMM16
PC PC + 4 + signext(IMM16)
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 71
Bcond med PC-relativ adresseringDisplacement lagras i IMM16
BCond RA, RB, Label
INSTRUKTIONSFORMATNios II
5 5 16 6 bitar per fält
condBA IMM16
True: PC PC + 4 + signext(IMM16)False: PC PC + 4
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 72
IS1200 Datorteknik
Föreläsning 1, innehåll
CPU - BUS - MEMFetch - ExecuteInstruktioner och DataInstruktionsformatAdressering - operandutpekningHoppinstruktioner
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 73
Viktiga delar i en dator
CPU
MEM
BUS
I/Oprogram
data
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 74
Programexekvering
FETCH(update PC)
(decode)EXECUTE
April 20, 2023IS1500 Datorteknik o k,
föreläsning CE - F1 75
Dual-core / Multi-core
CPU
MEM
BUS
I/O
CPU......