Von Neumann Modellen
3 Hårdvarusystem:
Control Unit (CU)
Hämtar instruktioner från primärminnet och avkodar dem. Hämtar även efterfrågade operander och sparar dem till register.
Arithmetic Logical Unit (ALU)
Här utförs alla logiska och aritmetiska operationer. Sedan sparas resultatet i register eller minnet.
Register
I register sparas alla operander som processorn behöver under exekvering.
The Computer Level Hierarchy
Level 0: Digital Logic - kretsar, grindar etc.
Level 1: Control - Microcode eller Hardwired
Level 2: Machine - Instruction Set Architecture (ISA)
Level 3: System Software: Operativsystem
Level 4: Assemblyspråk - assemblykod
Level 5: High Level Language: Java, C++ osv.
Level 6: User - exekverbara program
Olika typer av bussar
Databussar: Överför bitar, data, från en enhet till en annan.
Adressbussar: Fastställer sändaren och mottagaren av datat.
Kontrollbussar: Avgör vilka enheter som ska ha tillgång till bussen samt registrerar enhetens syfte. Hanterar även förfrågningar från enheter, eventuella avbrott samt synkroniseringssignaler från dators klocka.
Klocka
Interrupts
Vad skiljer olika instruction set architectures (ISA) åt?
-Antalet bitar per instruktion
- Huruvida de är stack- eller registerbaserade
- Antalet explicita operander per instruktion
-Typer av operationer
osv
Endianess
Byteordning.
Little Endian: Least significant byte först.
Big Endian: Most significant byte först.
Hur lagrar CPU:n data?
General Purpose Register (GPR), tre typer.
Memory-Memory: två eller tre operander kan finnas i minnet.
Register-Register: Åtminstone en operand måste finnas i ett register
Load-Store: inga operander kan finnas i minnet.
Adressering
- Den faktiska positionen av en operand är dess “effective address”
Intermediate-adressering
Datan är en del av instruktionen
Register-adressering
Adressen till datan finns i instruktionen
Indirekt-adressering
Adressen till adressen som håller datan finns i instruktionen
Register indirekt-adressering
Instruktionen innehåller ett register som har adressen till adressen till datan
Indexerad-adressering
Använder ett register som en offset och denna är adderad till adressen i operanden för att få ut adressen som innehåller datan.
Instruction pipelining
Innebär att man gör det möjligt för processorn att utföra flera instruktioner samtidigt genom att köra dela upp fetch/execute-cykeln i mindre delar och köra dessa parallellt. Så när en instruktion avkodas på en pipeline hämtas nästa i en annan pipeline.
- För varje klockcykel utförs ett steg och stegen överlappas.
Beskriv Fetch/Decode/Execute-cykeln.
FI: Fetch intstruction - Instruktionen hämtas från primärminnet av CU:n och läses in i IR (Instruction Register)
DO: Decode Opcode - Avkodar OP-koden och instruktionens operander.
CO: Calculate Operand - Beräknar “effective address” för operanderna
FO: Fetch Operands - Läs in operanderna (Op i reg behöver ej läsas in)
EI: Execute Instruction - Utför instruktionen och sparar till register.
SR: Store Result - Spara resultatet till primärminnet.
Problem med instruction pipelining:
Resource Hazard
Flera steg i F/E-cykeln behöver tillgång till samma resurs samtidigt, instruktionerna måste då utföras seriellt.
Problem med instruction pipelining: Control Hazard (Branch Hazard)
Leder till att nästa instruktion inte kan avgöras.
Problem med instruction pipelining:
Data Hazard
Data blir inkorrekt på grund av att data läses och skrivs i fel ordning. Exempelvis en operand hämtas innan en föregående instruktion är färdig med den och den nya instruktionen hämtar därför inte rätt värde.
Vad gör en buss?
En buss tillhandahåller kommunikation mellan olika enheter i ett datorsystem genom att varje enhet har tillgång till gemensamma ledningar för data, kontroll och adressering