1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)

Slides:



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

PROS2 Les 13 Programmeren en Software Engineering 2.
PSD Basisstructuren programmeren.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur EIT OGO-1.2 addendum (1): Het ontwerpen van processoren.
Serieel naar parallel omzetting
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
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.
Par. 3.3 Het geheugen.
Program- meerbare processoren KATHOLIEKE UNIVERSITEIT –07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
BESTURINGS SYSTEMEN Vincent Naessens.
ADuC8xx MICROCONVERTER
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
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.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 6(1): Invoer.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”
Auteursomgeving voor Digitale Componenten
Frank Stalpers en Ad Baars
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Een echte re stack-machine nMemory nRegisters R0 R1 R2 R3 R4 PC SP MP nMemory uProgram uStack uMemory nRegisters uProgr.counter uStack pointer uMark pointer.
Laatste toets Vrijdag 8 november van 8.30 – uur Locatie: EDUC-BETA Stof: Alles! Slides Boek Werkcollegeopgaven Practicumopgaven.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau klokken en geheugens.
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.
Processor Hart van de computer.
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.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Welkom! maandag 16 November 2015 Les B-2.
Microcontrollers Theorie 8051 based microcontroller ADuC832 from Analog Devices 01/2016 Roggemans M. (MGM)
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 1
Digitale Methoden Onderdeel van vak Computer Systemen
Programmeren woensdag 4 oktober 2017.
Programmastructuurdiagrammen (PSD)
3 Hardware 3.1 De processor en intern geheugen
Wat gaan we doen? Herhaling ARM assembler instructies
Transcript van de presentatie:

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 2 Instructietypen: “standaard” indeling  Wij hanteren vandaag die van het boek  Verplaatsen van gegevens  “Dyadische” operaties (twee source operanden)  “Monadische” operaties (een source operand)  Vergelijkingen en (voorwaardelijke) sprongen  Aanroep van procedures (subroutines/methods)  Lusbesturing (herhalingen in een programma)  Invoer en uitvoer  Vele andere indelingen mogelijk !

1/1/ eindhoven university of technology / faculty of Computer Science 3 Focus op practicumprocessor  Precies kennen van een bepaalde instructie-set is geen doel van dit vak !  Wel in assembleertaal kunnen programmeren…  Practicumprocessor heeft van alle typen instructies goede voorbeelden  Heeft ook onverwachte (maar bruikbare) instructies  Kennis bruikbaar tijdens practicum en ook bij latere projecten met practicumprocessor

1/1/ eindhoven university of technology / faculty of Computer Science 4 Verplaatsen (“move”) van gegevens  Verkeerde term: je maakt een kopie want de oorspronkelijke waarde verdwijnt niet  Op gegevens worden geen bewerkingen gedaan  Kopie dezelfde waarde als origineel  Meeste processoren veranderen geen statusvlaggen  Practicumprocessor: P-vlag gekoppeld aan A register  Hoeveelheid verplaatste gegevens varieert  Soms maar één keuze (byte, woord), meestal meer  Soms variabel (extreem: 1 bit..volledig geheugen)

1/1/ eindhoven university of technology / faculty of Computer Science 5 Verplaatsen: classificaties en namen  Classificatie van/naar geheugen/register  Van register naar register:“MOVE”  Van geheugen naar register:“LOAD”  Van register naar geheugen:“STORE”  Van geheugen naar geheugen ook mogelijk !  In “load/store” machines zijn deze operaties bijzonder en hebben ze een aparte naam  Meeste machines gooien alles op een hoop...

1/1/ eindhoven university of technology / faculty of Computer Science 6 Practicumprocessor byte MOVe’s A Immediate Stack PUSH POP Direct Register R0..R7 127: SFR (incl. ACC) Waarde 0: “CLR A” Niet gebruiken ! In intern geheugen ! MOVC MOVX

1/1/ eindhoven university of technology / faculty of Computer Science 7 Practicumprocessor andere MOVe’s C(arry) Direct bit Immediate: “CLR”  0 “SETB”  1 127:SFR’s met adres deelbaar door 8 (incl. ACC, B en PSW) DPTR Immediate 16 bits CLR C ; Carry <- 0b SETB ACC.6 ; bit 6 van A ; <- 1b

1/1/ eindhoven university of technology / faculty of Computer Science 8 Iets speciaals: de “exchange”  Twee MOVe’s in een: verwisseling van plaats !  Normaal 3 stappen en extra geheugen nodig  1:hulp  “A”  2:“A”  “B”  3:“B”  hulp (nu “A” verwisseld met “B”)  De practicumprocessor kan dit…  Met complete bytes: “XCH”  Met 4 bits tegelijk: “XCHD” en “SWAP”

1/1/ eindhoven university of technology / faculty of Computer Science 9 Dyadische rekenkundige operaties  Dyadisch = met TWEE source operanden  Optellen en aftrekken: “ADD” en “SUB”  Met “onthouden” / “lenen”: “ADDC” en “SUBB”  Zonder teken en two’s complement: geen verschil ! …verschil zit ‘m in testen van Carry / oVerflow  Practicumprocessor kent geen “SUB”  Eerst Carry op 0 (“CLR C”), dan “SUBB” gebruiken  Kan A  A + (immediate / R0..R7 / direct

1/1/ eindhoven university of technology / faculty of Computer Science 10 Vermenigvuldigen en delen (MUL /DIV)  Niet altijd beschikbaar !  Groot verschil zonder teken en 2’s complement  Problemen met resultaten bij gehele getallen  MUL: resultaat breder (in bits) dan sources resultaat breedte = som van source breedten  DIV: er zijn TWEE resultaten - deling en rest  Nog meer problemen bij delen  Sources niet even breed voor grootste bereik ?  Wat te doen bij deling door nul of overflow ?

1/1/ eindhoven university of technology / faculty of Computer Science 11 Bij practicumprocessor  Geen “zero” en “negatief” (teken) vlaggen !  “A = 0” direct testbaar, “ACC.7” test teken-bit van A  DIV en MUL met 8 bits positieve getallen  MUL vermenigvuldigt A met B  Resultaat bits 0..7 komen in A, bits komen in B  Overflow wordt “resultaat B  0”, Carry altijd 0  DIV deelt A door B  Deelresultaat komt in A, rest van deling komt in B  Overflow  “oorspronkelijke B = 0”, Carry  0

1/1/ eindhoven university of technology / faculty of Computer Science 12 Dyadische logische operaties  16 verschillende twee-operand Boole operaties ! bevatten ook NOT: geen twee-operand operatie  Vrijwel altijd twee aanwezig: AND, OR  Meestal ook XOR (eXclusive OR)  Soms NAND, NOR, XNOR, AND-NOT, OR-NOT laatste twee: “X AND (NOT Y)”, “X OR (NOT Y)”  Meestal op hele woorden / bytes tegelijk  Gelijke operaties op parallel genummerde bits

1/1/ eindhoven university of technology / faculty of Computer Science 13 Maskeren en combineren (verpakken) A B (“masker”) A AND B Deze bits komen uit A C D (“masker”) C AND D Deze bits komen uit C (A AND B) OR (C AND D) Uit AUit C ANDOR

1/1/ eindhoven university of technology / faculty of Computer Science 14 Practicumprocessor: ANL, ORL en XRL  “ANd Logical”, “OR Logical” en “XoR Logical”  Naar A, met immediate, direct,  Ook naar direct, met A of immediate !  Met één bit tegelijk: bijzonder…  Gebruikt C(arry) als source en resultaat  Andere source is direct geadresseerd bit  AND, OR, AND-NOT en OR-NOT operaties ANL C,bit ORL C,bit ANL C,/bit ORL C,/bit

1/1/ eindhoven university of technology / faculty of Computer Science 15 Monadische (één source) operaties  Rekenkundig: NEG (0-A), INC (A+1), DEC (A-1)  Met bits schuiven is delen / vermenigvuldigen  Altijd met factor 2 N (en afrondingsfouten !)  Delen zonder teken: naar rechts schuiven met nullen 1101 (13)  0110 (6)  Delen in 2’s complement: met ‘tekenuitbreiding’ schuift kopieën van meest linkse bit naar binnen 0110 (+6)  0011 (+3) 1100 (-4)  1110 (-2)  Aantal bits soms variabel: niet echt monadisch

1/1/ eindhoven university of technology / faculty of Computer Science 16 Nog meer monadische operaties  “Roteren” = schuiven waarbij uitgeschoven bits terugkomen aan de andere kant van het woord  Hierbij gaan geen bits verloren !  Handig om bits één voor één te testen  Bij roteren en schuiven soms Carry vlag gebruikt en/of veranderd  Logische operatie: NOT  Practicum processor noemt deze “ComPLement”