Alt man trenger vite for å stå på Data GK-eksamen...



Registre
  • PC - Program Counter inneholder adressen til instruksjonen som utføres, eller neste instruksjon som skal utføres. (avhengig av måten maskinen er bygd)
  • IR - Instruction Register er der kontrollenheten lagrer instruksjonen som blir gjennomført nå. Den ligger her mens instruksjonen blir dekodet, startet og gjennomført.
  • MAR - Memory Address Register inneholder adresse til neste minnelokasjon der vi finner neste instruksjon
  • MDR - Memory Data Register inneholder data som skal bli lagret i hovedminne (RAM), eller data som har blitt hentet fra minne. Virker som en buffer så data er klar for prosessor.
  • MBR - Memory Buffer Register er et bufferregister mellom minne og prosessor
  • LV - Local Variable inneholder pekerverdi.
  • SP - Stack Pointer inneholder pekerverdi.
  • CPP - Constant Pool Pointer inneholder pekerverdi
  • TOS - Top Of Stack skal alltid inneholde ordet på toppen av stakken
  • OPC - OpCode register kan fritt brukes.
  • H - Holding Register inneholder verdien som skal inn i A-inngangen til ALU.
ALU-flagg
  • N - settes når svaret fra ALU er negativt
  • Z - settes når svaret fra ALU er 0
  • C - carry, når vi f.eks. vil legge sammen 255 og 2 i 8-bit uten fortegnsbit. Svaret vil da bli 0000 0010 (2) som betyr (255+2). Et C-flagg vil da bli lagt til i statusregisteret.
  • V - overflow, når vi f.eks. vil legge sammen 127 og 127 i 8-bit med fortegnsbit. Svaret vil da bli 1111 1110 (254) eller i toers-kompliment -2. Et V-flagg vil da bli lagt til i statusregisteret.
Von Neumann Data og instruksjoner er lagret i samme minne og beregninger skjer sekvensielt. Von Neumann-arkitektur gjør det mulig å skrive program som kan endre sin egen programkode.
  • ALU - Aritmetisk og logisk enhet som utfører beregningene
  • Control Unit - Kontollenhet som dekoder instruksjonene og gjennomfører dem. Kontollenheten kan enten være hard-wired kodet eller inneholde mikroprogram styrt av en mikrokontroller
  • Memory - Primærminnet (RAM) inneholder data og instuksjoner
  • I/O - Enheter for inn- og utdata
Moderne datamaskiner har ALU og kontrollenhet på prosessor (CPU), benytter seg av registre, hurtigbuffere, busser og millioner av transistorer, men konseptet er veldig likt. Overføring av data mellom minne og CPU blir i dag sett på som et av de største problemene med Von Neumann-arkitektur.
MIR MicroInstruction Register
  • Addr - peker på neste mikroinstruksjon i instruksjonen
  • J - Jam: sier ifra om ALU har flagget neste mikroinstruksjon eller om det kommer hopp (betinget hopp)
  • ALU - bestemmer hvilken funksjon ALU skal gjennomføre
  • C - inneholder adressen til C-bussen, som blir det samme som adressen til registeret det skal skrives til.
  • Mem - sier ifra om det skal gjøres noe med minne
  • B - inneholder adressen til B-bussen, som blir det samme som adressen til registeret det skal leses fra.
Superskalar CPU En superskalar prosessor implementerer en form for parallellitet som kalles instruksjonsnivåparallellitet. Dette betyr at den kan utføre flere instruksjoner pr. klokkesyklus (dupliserer CPU-enheter).
Lokalitet
  • Tid - om vi leste fra en minneadresse er det sannsynlig at vi snart vil lese fra den samme adressen igjen.
  • Rom - om vi leste fra en minneadresse er det sannsynlig at vi snart vil lese fra naboadressen.
Dataavhengighet
  • RAW - Read-After-Write (sanne dataavhengigheter) er når f.eks. instruksjon 1 skriver til et register og instruksjon 2 skal lese fra det samme registeret.
  • WAW - Write-After-Write (utavhengigheter) er når f.eks. instruksjon 3 skriver til register 1 og instruksjon 1 skriver til register 1.
  • WAR - Write-After-Read (antiavhengigheter) er når f.eks. instruksjon 3 skriver til register 1 og instruksjon 2 leser fra R1.
RAM
  • SRAM - Statisk RAM er raskt og trenger ikke oppdateres. Brukes ofte i hurtigbuffere.
  • DRAM - Dynamisk RAM må friskes opp jevnlig. Det tar mindre plass en SRAM (2 vs. 6 transistorer).
  • SDRAM - Synkront Dynamisk RAM betyr at data blir overført til/fra RAM synkront med klokka (og systembussen)
CMP Chip-level MultiProsessor er flere prosessorer på samme brikke. Bruker samme hurtigbuffer
  • Homogene kjerner - alle kjernene er like
  • Heterogene kjerner - forskjellige kjerner til forskjellige oppgaver, dvs de har forskjellig instruksjonsett og/eller ytelse.
Fordeler med CMP er lavere effekt/varmeutvikling, bedre utnyttelse av prosessorkraft, mulighet for "ut av rekkefølge" og lettere å utnytte instruksjonsnivåparallellitet.
Adressering Måten instruksjonen angir hvor data skal hentes fra kalles en adresseringsmodus.
  • Immidiate - Operanden er innbakt i instruksjonen. Dersom operanden er kjent (en konstant) når programmet lages, kan verdien av denne legges inn i selve instruksjonen.
  • Direkte - Instruksjonen angir adressen til operand i RAM.
  • Indirekte - Instruksjonen angir adresse til RAM-celle som igjen inneholder adressen til operand
  • Register - Instruksjon har nummer på register som inneholder operand. Populært å bruke siden
  • Indirekte register - Instruksjon har nummer på register som inneholder adresse til operand i RAM
  • Stakk - Adressen er implisitt gitt av stakkpeker.
Branch Prediction (NO: Forgreningspredikering)
  • Statisk - forutsier hopp uavhengig av hvor hopp har forekommet før. Forutsier aldri/alltid hopp.
  • Dynamisk - forutsier hopp ut i fra hvor det har skjedd hopp før.

Antall forekomster av konsepter i de siste eksamenene

IJVM24
mikroinstruksjoner18
adressering16
RAM/ROM16
ISA13
ILP13
pipeline/samlebånd10
RISC10
CMP10
Chip select10
mikroarkitektur9
ALU9
superskalar prosessor7
assembly/DARK7
Cache7
Adresseområde7
SP, LV, CPP, TOS, OPC, H...7
buss6
x-adresseinstruksjoner5
CISC5
Multiplekser (MUX)5
avbrudd4
load-store4
mic-14
statisk ram4
Von neumann4
Adressedekoding4
MPC4
PIO4
SIMD/MIMD4
MIR4
pentium 43
PCI (express)3
flyttallsoperasjoner3
i/o3
dma3
Throughput3
Dynamisk Ram3
Forgreningspredikering3
Stack3
Heterogene kjerner3
Programflytinstruksjon3
Scoreboard3
ultraspark 32
"8051"2
bitregning2
moore¿s lov2
BIG/little endian2
Avbildning2
Three-state buffer2
Arbitrering2
Mikroprogram2
Brukerregister2
Data path2
Adder/halvadder2
Flerkjerneprosessor2
Styreord2
Register renaming2
instruksjonsformat2
multiprosessoor1
registeromdøping1
prefetch1
IA-641
hurtgibuffer1
hovedlager1
trefffrate1
segmentregister1
toerkomplement1
prosessortype1
instruksjonerregister1
mips1
harddisker1
usb1
seriell overføring1
parallell overføring1
dataavhengighet1
RPN1
D-flipflop1
RAID1
Interpreting/translation/compiling1
Seriell bus1
Polling1
avhengighet1
Array computer1
Word length1
Fetch-decode-execute1
Multithreading1
Set-assosiativt1
Trap1
Lokalitet1
TLB1
Flynns taksonomi1
Sekvensielt konsistent1
mic-31
Out of order execution1
write-through/write-back1
Offset1
aksesstid1