1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.

Slides:



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

Test computertermen: Deze test gaat over de vorige les. Je krijgt steeds een vraag te zien waarop je het juist antwoord moet aanklikken. Is je antwoord.


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.
Hardware (1) NSG Informatica.
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
Hoofdstuk 8: Recursie.
Hardware (2) SGDB Informatica.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
Practica Computerlinguistiek Tekst en uitleg:
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)
bewerkingen in programmeeromgevingen
Week 6: Invoer / uitvoer “devices” adresdecodering
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
VBA en VBS Een introductie.
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.
Hoofdstuk 6: Controle structuren
Instructie Programmeren Task 5
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 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.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
PHP functies.
Assembly-taal Namen:Danny van Waes Rohan Schenk Klas:EM4 Docent:Dhr. Ing. JA Verhage Embedded systems.
SPAM SPAM. Heeft u veel SPAM? Kan uw provider het niet tegenhouden?
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
, 17h30Recursie 1 Inleiding tot recursie Karel Popelier.
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.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
Programmeren met If This Then That (IFTTT)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 5(2): Microarchitectuur.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
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.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Inhoud Breuken (optellen, aftrekken, vermenigvuldigen en delen).
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Gameprogrammeren: Keuzeopdrachten
Digitale Methoden Onderdeel van vak Computer Systemen
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Kennismaking met programmeren
Wat gaan we doen? Herhaling ARM assembler instructies
Small Basic Console deel 2
Tellen met kaarten.
Python – For loop + strings
Python – For loop + strings
Transcript van de presentatie:

1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen (2)

1/1/ / faculty of Electrical Engineering eindhoven university of technology Vergelijkingen •Waarden moeten vergeleken kunnen worden –gelijk, niet gelijk, groter, kleiner, kleiner of gelijk….. •Fors verschil: zonder teken / 2’s complement Zonder teken 00 (0) 01 (1) 10 (2) 11 (3) 2’s complement 10 (-2) 11 (-1) 00 (0) 01 (+1) Kleinste Grootste Laagste Hoogste “Above” / “Below” “Less than” / “Greater than”

1/1/ / faculty of Electrical Engineering eindhoven university of technology De “CoMPare” (CMP) operatie •Aftrekken van te vergelijken waarden zonder het resultaat op te slaan •Wel worden Carry, Overflow, Negative, Zero vlaggen gezet als bij normale “SUB”-tract –Bij aftrekken A - B: A gelijk aan B:Zero = 1 A lager dan B (zonder teken):Carry = 1 A kleiner dan B (2’s compl.): Negative XOR Overflow = 1 –Overflow is hier geen fout !

1/1/ / faculty of Electrical Engineering eindhoven university of technology Voorwaardelijke sprongen •Instructie test “iets” met booleaans resultaat –Resultaat niet waar:ga door met volgende instructie –Resultaat waar:laad PC met gegeven waarde –Basis voor het nemen van beslissingen in programma ! •Dat “iets” kan van alles zijn –Meestal (combinaties van) status vlaggen –Uitkomst van “ingebouwde” vergelijking –Directe test van register / geheugen waarden –Directe test van register / geheugen bit

1/1/ / faculty of Electrical Engineering eindhoven university of technology Ook onvoorwaardelijke sprongen ! Pascal: IFA = 5 THENA := 0 ELSEA := B; C: if (A == 5) A = 0; elseA = B; If:CMPA,5 JUMPNotEQ,Else Then:MOVA,0 JUMPAlways,Next Else:MOVA,B Next:...

1/1/ / faculty of Electrical Engineering eindhoven university of technology Repertoire van de practicumprocessor •Onvoorwaardelijk: SJMP, AJMP, LJMP –Verschillende sprong- “bereiken” –Assembler rekent en controleert! •Voorwaardelijk: Carry = 1, direct bit = 1, A = 0 –En de omgekeerde tests (NOT …) –Alle voorwaardelijke sprongen zijn PC-relatief •Vergelijken en springen in een CJNE instructie –Compare and Jump if Not Equal, past Carry aan ! If:CJNEA,#5,Else

1/1/ / faculty of Electrical Engineering eindhoven university of technology Andere methoden conditieafhandeling •“Skippen”: sla volgende instructie over –Standaardvolgorde instructie ophalen blijft intact •“Conditionele executie”: sla deze instructie over CMPA,5; IF SKIPNotEQ; THEN MOVA,0 SKIPEQ; ELSE MOVA,B (ALWAYS) CMP A,5 ; IF (EQ) MOV A,0 ; THEN (NotEQ) MOV A,B ; ELSE IA-64 van Intel !

1/1/ / faculty of Electrical Engineering eindhoven university of technology Programma-lus besturing •Lussen om herhalingen te introduceren –“Blijf … herhalen tot aan voorwaarde voldaan is” test aan eind en spring conditioneel naar begin terug –“Zolang aan voorwaarde voldaan is, herhaal …” test aan begin, spring aan eind terug –Deze met normale (on) conditionele sprongen ! •“Afgetelde” lus met bekend aantal herhalingen –Teller in register / geheugen initialiseren –Daarna verhogen / verlagen tot eindwaarde

1/1/ / faculty of Electrical Engineering eindhoven university of technology Afgetelde lussen (vervolg) •Oppassen met berekende begin / eind waarden –Omhoog of omlaag tellen ? –Begin = eind: instructies in lus niet uitvoeren ? •Vrij standaard: omlaag tellen tot nul –Teller in register of geheugen (N bits breed) –Beginwaarde nul geeft meestal 2 N herhalingen ! •Practicumprocessor: DJNZ instructies –Decrement and Jump if Not Zero –Teller: 8 bit register of direct adres in geheugen/SFR

1/1/ / faculty of Electrical Engineering eindhoven university of technology Procedure / Subroutine / Method •Drie namen voor hetzelfde: een stuk programma (= reeks instructies) dat vanaf verschillende plaatsen in het programma kan worden aangeroepen om een bepaalde functie uit te voeren •Gebruik geeft vele voordelen –Eén keer iets verzinnen en in geheugen zetten –Efficient en minder kans op fouten –Basis van “gestructureerd programmeren”

1/1/ / faculty of Electrical Engineering eindhoven university of technology Aanroep (call) en terugkeer (return) Call “A” Call “B” Return “A”: Return “B”: Terugkeer-adressen verschillend voor dezelfde “Return” !

1/1/ / faculty of Electrical Engineering eindhoven university of technology Onthouden van terugkeeradres •Adres van instructie na de “CALL” opslaan –Bij “RETURN” deze waarde in PC zetten ! •Waar laat je dit adres ? –Eén vast register / geheugenadres: onhandig •Kan maar één procedure tegelijk aktief zijn –Per procedure één register / geheugenadres: beter •Een procedure mag zichzelf niet aanroepen: “recursie” –Op de stack: super ! •Een CALL push’t het terugkeeradres op de stack •Een RETURN pop’t automatisch het goede adres

1/1/ / faculty of Electrical Engineering eindhoven university of technology Recursieve procedures met stack Call “A” Return “A”: Adres X Adres Y Adres Z Stack 1: X 1 2 2: X Z 3 3: X 4: (leeg) 4 Moet soms NIET uitgevoerd worden 5: Y 6: Y Z 7: Y Z Z 8: Y Z Z Z...

1/1/ / faculty of Electrical Engineering eindhoven university of technology Invoer en uitvoer: de basis •Invoer: waarde uit buitenwereld via bus lezen –Neemt een “monster” van die waarde alleen waarde tijdens het lezen telt •Uitvoer: waarde via bus naar buitenwereld –Moet vastgehouden worden in register waarde alleen tijdens schrijven stabiel: te kort ! –Erg handig om dit register ook te kunnen lezen kun je laatst geschreven waarde veranderen •Monsternemer en register heten “poorten”

1/1/ / faculty of Electrical Engineering eindhoven university of technology Geprogrammeerde invoer / uitvoer •Besturing poorten direct door programma –Veranderen van invoer waarden moet bijgehouden worden: zeer regelmatig lezen dus (“Busy waiting”) •Voor adressering poorten meerdere methoden –Poort heeft adres in geheugen: “memory mapped” –Iedere poort krijgt eigen IN / OUT instructie –Aparte (kleine) adresruimte voor poorten met speciale IN/OUT instructies om te lezen/schrijven •Practicumprocessor: directe adressen

1/1/ / faculty of Electrical Engineering eindhoven university of technology Invoer / uitvoer met “interrupts” •Interrupt: automatisch onderbreken van lopend programma bij activiteit in buitenwereld –Buitenwereld hardware geeft één bit aan processor –Processor hardware test dit bit na uitvoeren iedere instructie, vóór het ophalen van de volgende –Bij indicatie van activiteit automatische aanroep van een procedure op een vast adres: “interrupt routine” –Bij RETURN van interrupt routine doorgaan met volgende instructie (alsof er niets gebeurd is) •Tijdens interrupt routine geprogrammeerde I/O

1/1/ / faculty of Electrical Engineering eindhoven university of technology I /O met “Direct Memory Access” (DMA) •Interrupts gebruiken processor-tijd: traag ! •Geef device controller zelf toegang tot geheugen –Alleen voor eigenlijke lees / schrijf acties processor van bus “afduwen” is veel sneller: “cycle stealing” –Controller geeft pas interrupt als ‘ie klaar is met zijn werk of hulp van de processor nodig heeft •Aparte DMA controller “helpt” device controller –Tellers en adres-registers voor blokken gegevens –Soms speciaal type processor met eigen programma