1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.

Slides:



Advertisements
Verwante presentaties
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur EIT OGO-1.2 addendum (1): Het ontwerpen van processoren.
Hoe werkt een rekenmachine?
Serieel naar parallel omzetting
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
PROS2 Les 2 Programmeren en Software Engineering 2.
Informatieverwerkende systemen
Hardware (1) SGDB Informatica.
Par. 3.1 Computers zijn overal
1/1/ / faculty of Computer Science eindhoven university of technology 2IC20:Computersystemen Week 1: inleiding.
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
Auteursomgeving voor Digitale Componenten
Week 6: Invoer / uitvoer “devices” adresdecodering
PowerPC Practicum. Introductie Doel practicum = Computers begrijpen Leer de werking van een computer door een emulator te bouwen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
Week 2: Microarchitectuur niveau ALU en datapad
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Computerarchitectuur
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Instructie set: principes.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
De verschillende evoluties: Digitalisering Microchiptechnologie Bandbreedte Koperpaar -> coax -> glasvezelkabel Compressietechniek Schakeltechnologie Servers.
De processor.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 6(1): Invoer.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Hoe werkt een rekenmachine?
Talstelsels, rekenen en rekenschakelingen
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Talstelsels, rekenen en rekenschakelingen
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Hoofdstuk 9 havo KWADRATEN EN LETTERS
Samenwerking tussen processor, registers en RAMgeheugen
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 5(2): Microarchitectuur.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Racedetectie in Parallelle Programma’s door Gecontroleerde Heruitvoering Michiel Ronsse Promotoren: Prof. K. De Bosschere Prof. J. Van Campenhout Vakgroep.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
1/1/ /e/e eindhoven university of technology Introduktie trimester 1.2 PGO week 2: ‘Integer Rekenen’ A.C. Verschueren.
De Transmeta Crusoe processor Een VLIW CPU met x86 compatibiliteit.
Bits en bytes. Bit  Transistor laat stroom door of niet  Hoge spanning of lage spanning  1 of 0  Tweetallig, binair  Tientallig, decimaal  Digit.
Digitale Methoden Onderdeel van vak Computer Systemen
3 Hardware 3.1 De processor en intern geheugen
Informatieverwerkende systemen
Wiskunde Blok 5 les 17.
Wat gaan we doen? Herhaling ARM assembler instructies
SQL Les February 2019.
Quantumcomputers en quantumcommunicatie
Software Development fundamentals
Netwerken & Internet 3.
Transcript van de presentatie:

1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur (ISA) datatypen

1/1/ /e/e eindhoven university of technology De InstructieSetArchitectuur (ISA) is de grens tussen soft- en hardware

1/1/ /e/e eindhoven university of technology 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) “moet” - “mag niet” - “behoort te hebben” - “is implementatie-afhankelijk” –“informatieve” delen: voorbeelden en uitleg “Backward compatible”: zelfde ISA, andere hardware (Intel!)

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology Geheugenmodel: “semantiek” Wat gebeurd 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 ?

1/1/ /e/e eindhoven university of technology 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 een van –Register(s) met status-bits: “flags register” of “Program Status Word”

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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”

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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”)

1/1/ /e/e eindhoven university of technology 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, 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 !

1/1/ /e/e eindhoven university of technology 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

1/1/ /e/e eindhoven university of technology 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”

1/1/ /e/e eindhoven university of technology 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