1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): 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.
bewerkingen in programmeeromgevingen
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/ / 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 Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
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.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
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 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.
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.
Racedetectie in Parallelle Programma’s door Gecontroleerde Heruitvoering Michiel Ronsse Promotoren: Prof. K. De Bosschere Prof. J. Van Campenhout Vakgroep.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
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/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)

1/1/ /e/e eindhoven university of technology 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/ /e/e eindhoven university of technology 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 onverwachtte (maar bruikbare) instructies –Kennis bruikbaar tijdens practicum en ook bij latere projecten met practicumprocessor

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