|
- 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.
|
|
- 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.
|
|
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.
|
|
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.
|
|
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).
|
|
- 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.
|
|
- 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.
|
|
- 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)
|
|
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.
|
|
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.
|
|
(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.
|
IJVM | 24 |
mikroinstruksjoner | 18 |
adressering | 16 |
RAM/ROM | 16 |
ISA | 13 |
ILP | 13 |
pipeline/samlebånd | 10 |
RISC | 10 |
CMP | 10 |
Chip select | 10 |
mikroarkitektur | 9 |
ALU | 9 |
superskalar prosessor | 7 |
assembly/DARK | 7 |
Cache | 7 |
Adresseområde | 7 |
SP, LV, CPP, TOS, OPC, H... | 7 |
buss | 6 |
x-adresseinstruksjoner | 5 |
CISC | 5 |
Multiplekser (MUX) | 5 |
avbrudd | 4 |
load-store | 4 |
mic-1 | 4 |
statisk ram | 4 |
Von neumann | 4 |
Adressedekoding | 4 |
MPC | 4 |
PIO | 4 |
SIMD/MIMD | 4 |
MIR | 4 |
pentium 4 | 3 |
PCI (express) | 3 |
flyttallsoperasjoner | 3 |
i/o | 3 |
dma | 3 |
Throughput | 3 |
Dynamisk Ram | 3 |
Forgreningspredikering | 3 |
Stack | 3 |
Heterogene kjerner | 3 |
Programflytinstruksjon | 3 |
Scoreboard | 3 |
ultraspark 3 | 2 |
"8051" | 2 |
bitregning | 2 |
moore¿s lov | 2 |
BIG/little endian | 2 |
Avbildning | 2 |
Three-state buffer | 2 |
Arbitrering | 2 |
Mikroprogram | 2 |
Brukerregister | 2 |
Data path | 2 |
Adder/halvadder | 2 |
Flerkjerneprosessor | 2 |
Styreord | 2 |
Register renaming | 2 |
instruksjonsformat | 2 |
multiprosessoor | 1 |
registeromdøping | 1 |
prefetch | 1 |
IA-64 | 1 |
hurtgibuffer | 1 |
hovedlager | 1 |
trefffrate | 1 |
segmentregister | 1 |
toerkomplement | 1 |
prosessortype | 1 |
instruksjonerregister | 1 |
mips | 1 |
harddisker | 1 |
usb | 1 |
seriell overføring | 1 |
parallell overføring | 1 |
dataavhengighet | 1 |
RPN | 1 |
D-flipflop | 1 |
RAID | 1 |
Interpreting/translation/compiling | 1 |
Seriell bus | 1 |
Polling | 1 |
avhengighet | 1 |
Array computer | 1 |
Word length | 1 |
Fetch-decode-execute | 1 |
Multithreading | 1 |
Set-assosiativt | 1 |
Trap | 1 |
Lokalitet | 1 |
TLB | 1 |
Flynns taksonomi | 1 |
Sekvensielt konsistent | 1 |
mic-3 | 1 |
Out of order execution | 1 |
write-through/write-back | 1 |
Offset | 1 |
aksesstid | 1 |