De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.

Verwante presentaties


Presentatie over: "1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen."— Transcript van de presentatie:

1 1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen

2 1/1/ eindhoven university of technology / faculty of Computer Science 2 De InstructieSetArchitectuur (ISA) is de grens tussen soft- en hardware

3 1/1/ eindhoven university of technology / faculty of Computer Science 3 De ISA is een soort van “contract”  Moet exact beschrijven wat hardware kan doen  Gezien vanuit optiek van programmaschrijver  Liefst op formele manier opschrijven  “normatieve” delen: functionele eisen (exact) zoals: “moet” -“mag niet” - “behoort te hebben” -“is implementatie-afhankelijk”  “informatieve” delen: voorbeelden en uitleg  “Backward compatible”: zelfde ISA, andere hardware (Intel!)

4 1/1/ eindhoven university of technology / faculty of Computer Science 4 Een ISA bestaat uit verschillende delen  Geheugenmodellen  Processor registers en “status vlaggen”  De uitvoerbare instructies  Hardware afhankelijkheden (soms)  Vreemd gedrag bij combinatie van instructies  Niet-standaard volgorde van uitvoeren  “Modi” van uitvoering (soms)  “user” / “kernel” mode met verschillend gedrag

5 1/1/ eindhoven university of technology / faculty of Computer Science 5 Geheugenmodel: “adresruimten”  Welke “adresruimten” zijn beschikbaar ?  Adresruimte = onafhankelijk adresseerbaar geheugen Harvard architectuur: programma / gegevens  Adresruimten kunnen overlappen ! Practicumprocessor: 128 bits in intern data geheugen  Hoe zijn die adresruimten ingedeeld ?  Aantal bits per cel  Aantal cellen per woord en “little/big endian-ness”  Aantal woorden in adresruimte

6 1/1/ eindhoven university of technology / faculty of Computer Science 6 Geheugenmodel: “uitlijning”  Bij meer cellen per woord  Meerdere adressen in één woord  Lezen/schrijven van gegevens kan over woordgrens heen: “niet-uitgelijnde” (“non-aligned”) toegang  Is ruimte-efficient maar kost veel extra hardware

7 1/1/ eindhoven university of technology / faculty of Computer Science 7 Geheugenmodel: “semantiek”  Wat gebeurt er met de volgorde van geheugen lees en schrijf operaties in het programma ?  Sommige hardware architecturen kunnen deze volgorde veranderen (niet in dit college…)  Veel voorkomende optimalisatie: lezen na schrijven van hetzelfde adres niet uitgevoerd (processor houdt zelf bij wat net geschreven is)  In normaal geheugen nog niet zo erg, maar onbruikbaar bij invoer/uitvoer !  Moet programma hier maar rekening mee houden ?

8 1/1/ eindhoven university of technology / faculty of Computer Science 8 Registers in de ISA  Algemene registers voor tussenresultaten  Soms gespecialiseerd voor datatypen  Soms met “bijbaantje”, bijv. teller voor herhalingen  ISA kan afspraak over gebruik bevatten  Gespecialiseerde registers  Veelal adressen in geheugen(s)  Programmateller (“Instruction Pointer”) is er één  Register(s) met status-bits: “flags register” of “Program Status Word”

9 1/1/ eindhoven university of technology / faculty of Computer Science 9 Status “vlaggen”: ALU resultaat codes  “Zero”: resultaat was 0 (nul)  “Carry”: voor optellen (soms ook schuiven)  “Borrow” is omgekeerde (NOT) carry voor aftrekken  “Negative”: resultaat was negatief (linkse bit)  “oVerflow”: resultaat incorrect (2’s complement)  “Auxiliary carry”: tussen bit 3 en 4 bij optellen  Nodig voor resultaatcorrectie bij decimaal optellen  “Parity”: aantal één-bits in resultaat (on)even

10 1/1/ eindhoven university of technology / faculty of Computer Science 10 Nog meer status vlaggen...  Resultaat vergelijkings (“CoMPare”) operaties  Soms separate vlaggen, meestal Z, S, C en V vlaggen  Instructies om deze te testen en programmaverloop te veranderen naar aanleiding van hun toestand  Machine/processor status  Onderbreken programma met interrupt toegestaan  “Trace” / “single step” aan/uit(fout zoeken)  Machine in “user” of “kernel” mode(beveiliging)  Soms vlaggen niet veranderbaar in “user” mode

11 1/1/ eindhoven university of technology / faculty of Computer Science 11 Instructies: de basis  Verplaatsen van gegevens  “load” en “store”: lezen en schrijven geheugen  “move”: copieren gegevens tussen registers  Bewerken van gegevens  Rekenkundig, logisch (Boole!) en vergelijkingen  Besturing van programmaverloop  (Conditioneel) laden van programmateller  Onthouden adres volgende instructie: “subroutines”

12 1/1/ eindhoven university of technology / faculty of Computer Science 12 Practicumprocessor adresruimten  Programmageheugen: 64 kilobyte  Extern gegevensgeheugen: 64 kilobyte  Intern gegevensgeheugen: 256 bytes  “Special Function Registers” (SFR’s): 128 bytes  in- en uitvoer besturing en CPU registers  Bit adresseerbaar geheugen: 256 bits  128 in intern gegevensgeheugen bytes  128 in SFR’s met adressen deelbaar door 8

13 1/1/ eindhoven university of technology / faculty of Computer Science 13 Practicumprocessor CPU registers (1)  PC: 16 bits, adresseert 64 kilobyte programma  A/ACC: 8 bits, resultaatregister (“Accumulator”)  B: 8 bits, voor delen en vermenigvuldigen  DPTR: 16 bits, adresseert 64 kilobyte extern gegevens geheugen (“Data PoinTeR”)  SP: 8 bits, adresseert “stack” (“stapel”) in intern gegevens geheugen (“Stack Pointer”)

14 1/1/ eindhoven university of technology / faculty of Computer Science 14 Practicumprocessor CPU registers (2)  R0..R7: 8 hulpregisters van 8 bits per stuk  4 sets in bytes van intern gegevens geheugen  R0 en R1 kunnen adresseren in gegevens geheugens  PSW: 8 bits “Program Status Word”  Standaard vlaggen: C, V, A, N, P(P volgt A register)  Carry ook gebruikt voor 1 bit Booleaanse operaties  2 bits kiezen set van hulpregisters R0..R7  Alle registers behalve PC en R0..R7 ook SFR !

15 1/1/ eindhoven university of technology / faculty of Computer Science 15 Datatypen, hardware ondersteund (1)  Gehele getallen (“integers”) met vast aantal bits  Binair alleen positief of “two’s complement” zie appendix A van boek, hoort bij stof !  Optellen/aftrekken voor allebei hetzelfde, status vlaggen maken verschil (C versus V/N)  Soms “Binary Coded Decimal” ondersteuning  “Floating point” getallen: “drijvende komma”  Zie appendix B van boek - NIET BIJ STOF  “Pointers”: adressen in geheugen

16 1/1/ eindhoven university of technology / faculty of Computer Science 16 Datatypen, hardware ondersteund (2)  Booleaanse waarden (“waar”/“niet waar” of 0/1)  Meestal met meer bij elkaar in register (“bitmap”) Booleaanse operaties op meer bits tegelijk !  Soms als losse bits bruikbaar (practicumprocessor)  Soms met speciale coderingen in register bijv. “nul is niet waar, niet-nul is waar”  Karakters: meestal als 8/16 bits gehele getallen  Kunt er niet mee rekenen, zelfs vergelijken moeilijk !  Wel bewerkingen op reeksen karakters: “strings”

17 1/1/ eindhoven university of technology / faculty of Computer Science 17 Datatypen, software ondersteund  Complexe datatypen uit eenvoudige opbouwen  Direct ondersteunde worden wel “primitief” genoemd  Hardware ondersteuning voor uitbreidingen  Speciale methoden van geheugenadressering  “Decimal Adjust” voor Binary Coded Decimal werk  “Add with Carry” / “Subtract with Borrow” Carry ADD ADDC


Download ppt "1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen."

Verwante presentaties


Ads door Google