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

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.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
BESTURINGS SYSTEMEN Vincent Naessens.
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
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
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.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
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.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
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 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)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
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
Netwerken & Internet 3.
Transcript van de presentatie:

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 2 De InstructieSetArchitectuur (ISA) is de grens tussen soft- en hardware

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!)

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

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

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

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 ?

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”

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

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

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”

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

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”)

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 !

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

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”

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