Kapittel 4: Microarchitecture level



Like dokumenter
TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Fortsetelse Microarchitecture level

Fortsetelse Microarchitecture level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Fortsetelse Microarchitecture level

1 TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Kapittel 3: Digital logic level

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT AUGUST, 2011, 09:00 13:00

TDT DESEMBER, 2011, 09:00 13:00

TDT DESEMBER, 2009, 09:00 13:00

TDT AUGUST, 2009, 09:00 13:00

TDT AUGUST, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur

TDT DESEMBER, 2008, 09:00 13:00

ANSWER KEY FOR THE EXAM

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

ANSWER KEY FOR THE EXAM

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

TDT4160 AUGUST, 2008, 09:00 13:00

TDT DESEMBER, 2009, 09:00 13:00

TDT DESEMBER, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Digital logic level: Oppsummering

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

INF1400 Kap4rest Kombinatorisk Logikk

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

IN1020. Datamaskinarkitektur

TDT DESEMBER, 2012, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Forelesning 5. Diverse komponenter/større system

Intel Core i7. Omid Mirmotahari 4

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

TDT AUGUST, 2015, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

Forelesning Optimalisering av μark Kap 4.4

TDT DESEMBER, 2014, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 Datamaskiner Grunnkurs 2011

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

SIE 4005, 9/10 (4. Forelesn.)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls.

Eksamensoppgåve i TDT4160 datamaskiner og digitalteknikk

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Maskinvaredelen av INF 103: oversikt og innhold (1)

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Vi har ikkje behandla bustøttesøknaden fordi det manglar samtykke frå ein eller fleire i husstanden

Forelesning Mikroprogram for IJVM Kap 4.3

Forelesning ISA: IJVM Kap 4.2

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Du kan skrive inn data på same måte som i figuren under :

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Birger og bestefar På bytur til Stavanger

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Påmelding til renn i kretsen og utanfor kretsen.

SIE 4005, 2/10 (2. Forelesn.)

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Saksbehandling kva er no det?

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

CAS sertifiseringskurs. PASS-teorien

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Dersom summen vert over 400 g må ein trekkje dette frå.

Årsrapport frå opplæringskontor i Hordaland om opplæring av lærlingar og lærekandidatar (Lærebedriftene skal bruka eit eige skjema.

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Løysingsfokusert tilnærming LØFT tenking og metode

Søk regionale miljøtilskudd elektronisk

tema er hentet fra kapittel 4.3 og 4.4 om pipelining Mikroprogrammert Dagens temaer Hard-wired Mikrokode Hasarder Ytelse

Valdres vidaregåande skule

POLITISKE SAKSDOKUMENT:

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Undersøking. Berre spør! Få svar. I behandling På sjukehuset. Ved utskriving

I dag. Minne typar Minne mot bussar (fysisk grensesnitt generelt) Meir buss

Mobbeplan Harøy skule 2006/2007

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

mlmtoo much medicine in Norwegian general practice

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

KONTSTRIKKING. Dersom det skal vere lue, genser, jakke eller skjørt, kan det vere naturleg å starte med ein høveleg kant og halve ruter.

Transkript:

1 Kapittel 4: Microarchitecture level

2 Kapittel 4: Microarchitecture level

3 Kva er og Kva gjer Realisera Instruction Level Architecture (ISA)

4 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark. (ISA) Første nivå tilgjengelig for (ekspert-)brukere Grense mellom maskinvare og programvare Opprinnelig det eneste nivået Språk: Maskinkode

5 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark. (ISA) Første nivå tilgjengelig for (ekspert-)brukere Grense mellom maskinvare og programvare Opprinnelig det eneste nivået Språk: Maskinkode MOV R4,A(R2):

6 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark. (ISA) Første nivå tilgjengelig for (ekspert-)brukere Grense mellom maskinvare og programvare Opprinnelig det eneste nivået Språk: Maskinkode

7 Kva er og Kva gjer Realisera Instruction Level Architecture (ISA) Kva funksjonelle einheitar er nødvendige (generelt) Kva funksjonelle einheitar er nødvendige for å oppfylle spesifikasjon f.eks.: Gitt av arkitektur (RISC, CISC) Styreeining ALU-funksjonar Yting (parallellitet) Instruksjonstypar osv Datapath Kontroll av datapath

8 Kva er og Kva gjer

9 Frå tidligare: instruksjons utførelse Har henta data og lagt dei i Register 0 og Register Y Fetch: hent neste instruksjon til Instruksjons registeret Decode: Finn ut kva instruksjon det er Execute: Sett opp utførandeeinheiter, utfør instruksjon

10 Ny Arkitektur Eksempel frå boka ISA for subset av Java Virtual Machine (JVM) Integer JVM (IJVN) Kva må til for å realisere Kva må vere med av utførandeeinheiter Korleis må dei vere kopla saman Korleis kontrolere Styreeinheit Kontrolsignal til utførandeeinheitar

11 Ny Arkitektur: IJVM datapath To and from main memory ALU control MAR MDR PC MBR SP LV CPP TOS OPC H A B 6 N ALU Z Register: MAR: Memory Address Register MDR: Memory Data Register PC: Program Counter MBR: Memory Buffer Register SP: Stac Pointer LV: Local variable CPP: Constant Pool Pointer TOS: Top of Stack OPC: OpCode register H: Holding register Shifter: styrt shift register og ALU utverdi SHIFTER 2 Shifter control

12 Ny Arkitektur: IJVM ALU To and from main memory MAR MDR PC MBR SP LV CPP TOS OPC ALU : 6 kontrollinjer ALU control C bus H B bus A B 6 N ALU Z SHIFTER 2 Shifter control

13 Ny Arkitektur: IJVM eksternt minne Dataminne MAR: Memory Address Register MDR: Memory Data Register PC: Program Counter MBR: Memory Buffer Register Programminne

14 Instruksjonsett Kva enkle operasjonar som kan gjerast (definert) ALU Register verdi til buss Last verdi frå buss til register Minne operasjonar Kva gjer ein instruksjon? Fortel kva utførande einheitar skal gjere Korleis? Dekoda av styreeinheit Styreeinheit set opp utførande einheitar

15 Instruksjonsett

16 Kontroll av utførandeeinheitar To and from main memory W W W MAR MDR PC MBR E E E E W: Last Register (frå C bus) E: Registerverdi til buss (til B bus) ALU: Velg funksjon Shifter: Velg funksjon W SP LV E (eg fekk ikkje med W og E på SP) W W W CPP TOS OPC E E E C bus W H B bus A B 6 N ALU Z SHIFTER 2 Shifter control

17 Styreeinheit To and from main memory W W W MAR MDR PC MBR E E E E Styreeineit må kontrolere W: Last Register (frå C bus) E: Registerverdi til buss (til B bus) ALU: Velg funksjon Shifter: Velg funksjon C bus W W W W W SP LV CPP TOS OPC H E E E E B bus A B 6 N ALU Z Styresignal: Totalt: 6 ALU signal 2 Shift kontroll 9 Last register frå C bus (W) 9 Register til B bus (E) + ekstra som me kjem til seinare SHIFTER 2 Shifter control

18 Microprogrammed Hardwired Add

19 Styreeinheit MDR E MDR W Instruksjon

20 Decodar lokalt Kan lage kombinatoriske kretsar Kretsar uten klokke eller sekvensielle eigenskapar Decoders Encoders Multiplexers Binary Adders Binary Subtractors Eksempel kretsar: Decoder O0 O1 O2 O3 S0 S1

21Utføre instruksjon Set opp kontrollsignal (Δw) Registerverdi til B bus (Δx) ALU og Shifter forsinkelse (Δy) Forsinkelse på C bus til register (Δz) Last register

22 Eit lite overblikk Realisera Instruction Level Architecture (ISA) Høgnivåspråk (C, C++, JAVA): variabelc = varabela + variabelb; Kompiler Men egentlig meir slik: LOAD R2, variabela LOAD R3, variableb ADD R1, R2, R3 Maskincode for + (vist som asambler): ADD R1, R2, R3 Kva skal til for å utføre ADD R1, R2, R3 Kva må styreeinheiten gjere for å få dei utførande eineitane til å: Stille inn ALU til + opperasjon Gi ALU tilgang på innalde i register R2 og R3 Lagre resultatet i R1

23 For å forstå Nivå 2 Instruksjonssetarkitektur (ISA) Instruksjonssettark. (ISA) Første nivå tilgjengelig for (ekspert-)brukere Grense mellom maskinvare og programvare Opprinnelig det eneste nivået Språk: Maskinkode ISA er tilgjengeleg for programmerar Viser kva ein instruksjon faktisk gjer ADD R1, R2, R3 Resultat = R1 Data = R2 Data = R3 Utførest på ein klokkeperiode Instruksjonen inkluderar ZERO, NEGATIV og CARRY flagg Nyttig for å forstå kva ISA er og for å bruke ISA-nivået Må kunne for å lage prosessorar

24 Microinstruksjon MDR E MDR W Instruksjon

25 Microinstruksjonsformat ADD Reg1, Reg2

26 Eksempel: 1 (supersimpel) shift = TOS + H shift ALU les frå C buss mem B buss XX XXXXXX XXXXXXXXX XXX XXXX

27 Eksempel: 1 (supersimpel) shift = TOS + H shift ALU les frå C buss mem B buss 00 XXXXXX XXXXXXXXX XXX XXXX

28 Eksempel: 1 (supersimpel) shift = TOS + H shift ALU les frå C buss mem B buss 00 111100 XXXXXXXXX XXX XXXX

29 Eksempel: 1 (supersimpel) shift = TOS + H shift ALU les frå C buss mem B buss 00 111100 000000000 XXX XXXX

30 Eksempel: 1 (supersimpel) shift = TOS + H shift ALU les frå C buss mem B buss 00 111100 000000000 000 0111

31 har laga ein microinstruksjon Instruksjon: shift = TOS + H ISA er tilgjengeleg for programmerar Viser kva ein instruksjon faktisk gjer på ISA nivå shift = TOS + H (eksempel: ADD RegX (RegX er i vårt eksempel TOS)) Resultat = shift Data = H (implicit ALU + funksjon brukar alltid H-register) Data = TOS Utførest på ein klokkeperiode Flagg???? På ISA nivå: ADD Reg X kompilator velger microinstruksjon frå register på B buss f.eks: shift = TOS + H (B buss = 0111 (7)) shift = OPC + H (B buss = 1000 (0)) Shift = SP + H (B buss = 0100 (4)) Sjult for programerar brukar berre ISA nivå shift ALU les frå C buss mem B buss 00 111100 000000000 000 0111

32 Eksempel: 2 brukar B og C buss TOS eller OPC må fyrst i H-register: (velger TOS) Instruksjon må då: 1: H <- TOS SP = TOS + OPC 2: H + OPC, SP <- SHIFT To microinstruksjonar

33 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: XX XXXXXX XXXXXXXXX XXX XXXX

34 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 00 010100 XXXXXXXXX XXX XXXX

35 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 00 010100 1000000000 XXX XXXX

36 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 00 010100 1000000000 000 0111

37 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 2: H + OPC, SP <- SHIFT 00 010100 1000000000 000 0111 XX XXXXXX XXXXXXXXX XXX XXXX

38 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 2: H + OPC, SP <- SHIFT 00 010100 1000000000 000 0111 00 111100 XXXXXXXXX XXX XXXX

39 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 2: H + OPC, SP <- SHIFT 00 010100 1000000000 000 0111 00 111100 000001000 XXX XXXX

40 Eksempel: 2 SP = TOS + OPC shift ALU les frå C buss mem B buss 1: H <- TOS: 2: H + OPC, SP <- SHIFT 00 010100 1000000000 000 0111 00 111100 000001000 000 1000

41 Utføre instruksjon shift ALU les frå C buss mem B buss 1: 00 010100 1000000000 000 0111 2: 00 111100 000001000 000 1000 1: H <- TOS: 2: H + OPC, SP <- SHIFT

42 har laga ein microinstruksjon Instruksjon: SP = TOS + OPC ISA er tilgjengeleg for programmerar Viser kva ein instruksjon faktisk gjer på ISA nivå SP = TOS + OPC (eksempel: ADD RegX, RegY, RegZ) Resultat = SP Data = TOS Data = OPC Utførest på to klokkeperiodar shift ALU les frå C buss mem B buss Flagg???? 1: H <- TOS: 00 010100 1000000000 000 0111 2: H + OPC, SP <- SHIFT: 00 111100 000001000 000 1000 På ISA nivå: ADD RegX, RegY, RegZ Reg kan vere Reg X: Alle register RegY: Alle register utanom H RegZ: alle register utanom H

43 Skrive microinstruksjonar Kan instruksjonen utførast på 1 eller fleire klokkeperiodar? Viss ja: fyll ut microinstruksjon Viss nei: finn antal klokkeperiodar utfrå datapath Fyll ut microinstruksjon for kvar klokkeperiode Fylle ut microinstruksjon Bruk tidsdiagramme Δw : Setje opp styresignal frå styreeinheit til utførandeeinheitar Δx: Kva skal ut på B bus (H automatisk tilgjengeleg for ALU) FYLL INN B Δy: kva skal ALU og SHIFTER gjere FYLL INN ALU (bruk ALU funksjonstabell) Stigande flanke load register frå C bus: Kva register skal resultatet lagrast i FYLL INN C

44 Neste gong Vidare med microinstruksjonar for IJVM Vidare med microarkitektur for IJVM