HOGESCHOOL ROTTERDAM / CMI Computersystemen 1

Slides:



Advertisements
Verwante presentaties
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur EIT OGO-1.2 addendum (1): Het ontwerpen van processoren.
Advertisements

Hoe werkt een rekenmachine?
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
Parallel naar serieel omzetting
Hardware (1) SGDB Informatica.
Par. 3.1 Computers zijn overal
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
bewerkingen in programmeeromgevingen
Auteursomgeving voor Digitale Componenten
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
Computerarchitectuur
automatiseringselektronica
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.
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.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
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”
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
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.
Computerarchitectuur
Security Technology PICT les 1
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
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 Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 5(2): Microarchitectuur.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
BIOS en Opstarten.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
Basisfuncties Operating System.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
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.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
De Transmeta Crusoe processor Een VLIW CPU met x86 compatibiliteit.
Instructie Programmeren Task 2 5JJ70. Task 2.1: Voltage divider Welk type variabele heb je nodig? Negative weerstanden bestaan niet! (print een error.
VPEMSY1, D3ECPT2 : ARM Assembler Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling B/BL, conditions,
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Programmeren.
Digitale Methoden Onderdeel van vak Computer Systemen
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
3 Hardware 3.3 Moederbord, slots en bussen.
3 Hardware 3.1 De processor en intern geheugen
Hoofdstuk 3 - Computersystemen
Wat gaan we doen? Herhaling ARM assembler instructies
Software Development fundamentals
Transcript van de presentatie:

HOGESCHOOL ROTTERDAM / CMI Computersystemen 1

HOGESCHOOL ROTTERDAM / CMI 3 De organisatie van de computer

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen3 3.1 De CPU CPU = Central Processing Unit (‘Processor’) Taak: –gegevens in het geheugen.. lezen en schrijven. –gevens bewerken. (volgens instructies die als gegevens uit het geheugen worden gelezen)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructies en dataverwerking De grootte van het geheugen is afhankelijk van het aantal adreslijnen (adresbus)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructies en dataverwerking Lezen/Schrijven Bepaald waar er wordt gelezen/geschreven

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructies en dataverwerking

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Het programma

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De machine 1 De processor is een machine die constant een vaste reeks handelingen uitvoert: de Von Neumann-cyclus John von Neuman

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De machine 2 1.Zet de inhoud van de programcounter op de adresbus. 2.Kopieer de data (instructie) in de geadresseerde geheugenplaats naar het instructieregister in de CPU. 3.Maak de programcounter één groter. 4.Decodeer de instructie. 5.Voer de instructie uit. 6.Ga terug naar 1.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De machine 3 de Von Neumann-cyclus Fetch ExcecuteDecode

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Bouwstenen van de processor 1 Program Counter Instructieregister Instructiedecoder Arithmetic and Logic Unit Internal Control Unit

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Bouwstenen van de processor 2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De ALU Arithmetic and Logic Unit Op uitgang C verschijnt de data op ingang A n = negative z = zero v = overflow c = carry

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 1 CPU op één chip: microprocessor Het begrip microcomputer is verouderd …

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 2 PC ProgramCounter IR InstructieRegister ICU Internal Control Unit SR StatusRegister R1 Algemeen dataregister 1 R2 Algemeen dataregister 2 A,B Ingaande data voor ALU ALU Arithmetic and Logic Unit C Uitgaande data van ALU MAR Memory Address Register MDR Memory Data Register

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 3

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 4 Handelingen Internal Control Unit (ICU) Afgeven read/write puls voor interne registers De functie van de ALU instellen

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 5 De Internal Control Unit kan gelijktijdig voor een lees en schrijfactie zorgen. De gelezen en geschreven registers zitten beide op de databus

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Een CPU-model 6 Notatie: Reg1:=reg2 (lees ‘:=‘ als ‘wordt gelijk aan’) Voorbeelden: R1:=R2 MDR:=MEM (MEM is het geheugen buiten de processor) MEM:=MDR

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Uitvoeren van een instructie 1 StapActieALU 1MAR:=PC 2A:=PCincrement 3PC:=C 4MDR:=MEM 5IR:=MDR Ophalen van een instructie uit geheugen en de PC met één verhogen Uitgevoerd in één klokpuls

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Uitvoeren van een instructie 2 StapActieALU 1A:=R1 2B:=R2optellen 3R1:=C Optellen R1 en R2: R1:=R1+R2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 1 De ICU wordt aangestuurd met een microcode. Voor elke klokcycle staat genoteerd: Welk register aan de beurt is voor lezen Welk register aan de beurt is voor schrijven De controlestand van de ALU

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 2 In de lege vakjes staat eigenlijk een ‘0’ A,B alleen Write, C alleen Read StapActieALU 1MAR:=PC 2A:=PCincrement 3PC:=C 4MDR:=MEM 5IR:=MDR

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 3 Voorbeeld: B:=R2 en ALU-control = Optellen

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 4 Waar staat de microcode? Intern, in de ICU zelf (1 t/m 5 in het voorbeeld) Uit de decoder (6 t/m 8) of Uit een microcode-ROM

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 5 Er is dus onderscheid tussen Machine instructies (buiten de processor in het geheugen) en Microcode (binnen de processor in het microcode-ROM)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Microcode 6

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Het statusregister Het statusregister (conditiecodes ALU) kan de ICU besturen: Dus data in de ALU beïnvloed de acties van de ICU.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Snelheid MIPS: Miljoen instructies per seconde Het geheugen moet dit kunnen bijhouden. Voor het onderling vergelijken van de snelheid van computers is kloksnelheid alleen van belang als de processor identiek is!

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Machinecode De machinecode bevindt zich op de grens tussen hardware en software.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen 1 Een instructie specificeert iha: De bewerking of operatie (wat er moet worden gedaan) De data-items waarop de instructie werkt. (wat de input is)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen 2 Hier staat wat er moet worden gedaan. Hier staat waar de input te vinden is. De input staat in een register. Daar staat in welk register de input te vinden is.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen (Assemblercode) De machinecode voor de instructie TEL OP register 001 bij register 010 is (bin) B52A (hex) Assembler Een assembler is een programma dat assembly-instructies omzet naar machinecode die een processor kan uitvoeren. Assembly is een low-level programmeertaal die nauwelijks meer dan een symbolische weergave van machinetaal is. Bij deze taal is het zo dat iedere regel van een assembly-instructie naar een enkele machinecode-instructie wordt vertaald, waarbij de vertalende assembler nog wel wat ondersteuning biedt in de vorm van symbolische namen (mnemonics) voor instructies en geheugenlocaties die gebruikt worden voor de opslag van variabelen, en labels voor sprongopdrachten in plaats van absolute of relatieve adressen. ADD R1,R2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen (Assemblercode)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen (Instructielengte) AssemblercodeCommentaar LOAD R1, (4000); Let op het ‘()’ bekent Geheugenadres R1:=MEM 4000 De inhoud van geheugenadres 4000 wordt gekopieerd naar R1 LOAD R2, (4001);R2:=MEM 4001 ADD R1,R2;R1:=R1+R2 STORE R1,(4002);MEM 4002:=R1

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen (Instructielengte)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Instructiedelen (Instructielengte) AssemblercodeAdresMachinecodeBetekenis LOAD R1,(0x4000); FLaad R1 met de inhoud van … geheugenplaats 4000 LOAD R2,(0x4001); FLaad R2 met de inhoud van … geheugenplaats 4001 ADD R1,R2;1004B52AR1:=R1+R2 STORE R1,(0x4002);10057BE9Kopieer R1 naar … geheugenplaats 4002

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Verplaatsing) LOAD (memory) naar register STORE register naar (memory) MOVE register naar register MOVE (memory) naar (memory) EXCHANGE register register Algemeen: INSTR source destination

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Logicshift) LSL (logic shift left, nullen van rechts naar binnen) LSR (logic shift right, nullen van links naar binnen) Het uitgeschoven bit staat in de Carry Voorbeeld: LSR R1,4; Inhoud R1 vier plaatsen naar links

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Arithmetic shift) Schuiven naar links is vermenigvuldigen met 2 rechts is delen door 2 Bij getallen positieve getallen gelijk aan een logic shift. Bij negatieve getallen (two’s complement) mag het teken bit niet verloren gaan! ASR (Arithmetic Shift Right)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Rotate) Het uitgeschoven bit wordt aan de andere kant weer ingeschoven. ROR ; (Rotate right) ROL ; (Rotate left)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Schuiven) 1

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Schuiven) 2 Operanden: Source Destination –Als Source = Destination heb je een destructieve shift Aantal posities

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Logische operaties) Voorbeelden: AND R1,R2; R1:=R1 AND R2 OR R1,R2; XOR R1,R2; NOT R1; Alle bits worden geïnverteerd

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Rekenen) ADD (‘add’, optellen) SUB (‘subtraction’, aftrekken) MUL (‘multiplication’, vermenigvuldigen) ADC (‘add met carry’: carry bit bij resultaat optellen) INC (‘increment’, 1 bijtellen) DEC (‘decrement’, 1 verminderen) CMP (‘compare’, vergelijken)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Spronginstructies) Sprong instructies: De Program Counters (PC) krijgt een andere inhoud. Gelijkwaardig: –LOAD PC,adres; –JMP adres;JUMP Branch-instructie: is een sprong een aantal plaatsen vooruit of terug.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Conditionele Spronginstructies) Voorbeelden: BCS -24; Branch if Carry Set (test C bit) BEQ 56; Branch if EQual zero (test Z bit) BRA 100; Branch Always. Spring altijd. (Hier 100 plaatsen vooruit) CMP R1, R2; Vergelijk R1 en R2 BLT 50; Branch if Less Than (Hier 50 plaatsen vooruit) Dus als R1 < R2 tel dan bij PC 50 op (test N en oVerflow bit)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Sprong naar subroutine) Voorbeeld: JSR 6000; Jump to SubRoutine De subroutine staat op geheugenplaats Aan het eind van de subroutine moet de oude PC weer worden hersteld. De PC moet dus ergens worden bewaard. Meestal is dit de stack (zie hierna). RET; RETurn, einde subroutine De PC krijgt weer de waarde van de PC van voor de aanroep van de subroutine.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operaties (Besturingsinstructies) De processor verandert zijn eigen status register. Voorbeelden: WAI; WAit for Interrupt: Wacht tot er een interrupt plaats vindt. CLC; CLear Carry: Maak het Carry bit 0

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operanden 1 Voorbeelden: ADD P,Q,R; P:=Q+R Of (ander type processor): ADD P,Q; P:=P+Q Register P wordt overschreven: de operatie is destructief Voorbeeld VAX 11 processor: ADD2 P,Q; Twee operanden ADD3 P,Q,R; Drie operanden

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operanden 2 Eenvoudige processor werkt met één operand via een zgn accumulator. Een accumultor is intern geheugen dat gebruikt wordt in processoren om waarden tussen resultaten op te slaan. Een 1-operand processor is dan mogelijk (gebruikt een niet vermelde impliciete operand) Voorbeeld: LDA P; Laad de accumulator (acc) met P ADD Q; acc:=acc+Q STAR; Store acc in R (R:=acc)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Operanden (datatypen) B(yte)8-bits integerMOVBVerplaatst een byte W(ord)16-bits integerADDWTel twee 16 bits getallen op L(ong)32-bits integerSUBLTrek twee 16 bits getallen van elkaar af F(loat)32-bits floating point getal MULFVermenigvuldig twee floatingpoint getallen D(ouble)64-bits floating point getal MULDVermenigvuldig twee double floatingpoint getallen

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Register addressing) 1 Er wordt een intern register gebruikt. Voordeel: Sneller Operand is kort Voorbeelden: ADD R1,R2; R1:=R1+R2 ASR R13; R13:=R13/2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Register addressing) 2 Memory ADD R1,R2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Immediate addressing) 1 De Data staat zelf in de instructie. Voorbeelden: ADD R1,12; R1:=R1+ (dec)12 CMP R2,0xFFFF; vergelijk de inhoud van R2 met (hex) FFFF

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Immediate addressing) 2 Memory CMP R2 0xFFFF

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Absolute addressing) 1 De data is de inhoud van het geheugenadres. Voorbeelden: ADD R3, (0x1432); De inhoud van geheugenplaats (hex) 1432 wordt opgeteld bij R3 LOAD R1, (15602); De inhoud van geheugenplaats (dec) wordt gekopieerd naar R1 SUB (0x13EF),4; De inhoud van geheugenplaats (hex) 13EF wordt met 4 verminderd.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Absolute addressing) 2 Memory ADD R1 (0x1432) 0x143212

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Register Indirect Addressing) 1 Een register bevat het adres waar de data staat. Voorbeeld: ADD R1,(R2); R1:=R1+(R2)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Register Indirect Addressing) 1 Memory ADD R1, (R2) 1230x1430

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Base Register Addressing) 1 De data is te vinden in op het geheugen adres dat wordt aangewezen door: base address + displacement Voorbeeld: ADD R1, 100 (R2); R1:=R1+(100+R2) Als R bevat is dus de data te vinden in geheugen plaats 3100

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Base Register Addressing) 2 Memory ADD R1 3 (R2) 0x1234 0x verder 0x1234

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Indexed Addressing) 1 Het adres van de operand wordt gevonden door een ‘immediate’ meegegeven getal op te tellen bij de inhoud van een intern (base of index) register. Voorbeeld: LOAD R1,12; R1 wordt het index register LOAD R2, 100(R1); R2:=(100+R1)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Indexed Addressing) 2 Memory ADD R2 0x1234 (R1) 0x1234 0x verder 0x3 LOAD R1 3

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Relative Addressing) 1 Het adres van de data wordt gevonden door meegeven waarde op te tellen bij de Program Counter. Toepassing: Relocatable Code Voorbeeld: BNE -20; Branch if Not Equal Zero (Ga bij ongelijk nu 20 plaatsen terug)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Adresseringsmodes (Relative Addressing) 2 Memory BNE - 5 BEQ 3

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack 1 Stack (stapel) LIFO = Last In First Out De stackpointer (SP) wijst het adres aan van gebruikte geheugenplaats.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack 2 Schrijven op de stack: PUSH data; –SP: =SP+1 –(SP):=data Lezen van de stack: POP Register of (adres); –Register of (adres):=SP –SP:=SP-1

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (Gebruik van de stack bij een subroutine) 1 Jump to SubRoutine: JSR ; Wordt uitgevoerd als: PUSH PC; LOAD PC, ;

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (Gebruik van de stack bij een subroutine) 2 Return vanuit een subroutine RET; Wordt uitgevoerd als: POP PC;

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (Stack georiënteerde processor) 1 De stack wordt voor bewerkingen impliet gebruikt. Voorbeeld: PUSH A;A naar de stack PUSH B;B naar de stack ADD; de operanden worden van de stack gehaald.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (Stack georiënteerde processor) 2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (Stack georiënteerde processor) 3 Voorbeeld: A ×(A+B)+C PUSH C PUSH A PUSH B ADD MUL ADD

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (De stack bij hogere programmeertalen) 1 Een hogere programmertaal gebruikt de stack voor: Op slaan van tijdelijke waarden en werkomgeving Recursie (een procedure die zichzelf aanroept)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen De stack (De stack bij hogere programmeertalen) 2 Voorbeeld recursie: n! =1×2×3×4 ×… × n = faculteit(n) { if (n <= 1) return 1; return n * faculteit(n-1); }

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen In en Out (I/O) I/O voor communicatie met de buiten wereld

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Memory mapped (I/O) 1

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Memory mapped (I/O) 2

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Memory mapped (I/O) (Handshake)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Memory mapped (I/O) (Parallelle en seriële poorten)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Open systemen Het aansturen van controllers voor FD, HD, CD/DVD speler, monitor, luidsprekers, etc gebeurt via een gestandaardiseerde (open systeem) ‘bus’. Deze controllers zijn memory-mapped. Conflicten kunnen voorkomen als controllers hetzelfde deel van het geheugen claimen. Automatisering van de toewijzingen van een geheugen gebiedje aan controllers en het installeren van de benodigde software heet plug-and-play.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Open systemen (Open bus systemen)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Open systemen (I/O bussen bij de IBM PC) 1

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen84

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Open systemen (I/O bussen bij de IBM PC) 3 SCSI (Small Computer System Interface) in/externe bus in professionele computersystemen. Spreek uit: skoezie.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen I/O-afhandeling Programmed I/O in een programma staat een opdracht voor I/O Interrupt driven I/O een extern apparaat vraagt aandacht voor het verzorgen van I/O Direct Memory Acces (DMA) een speciale processor lees/schrijft zelf van/naar het geheugen

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Programmed I/O Nadelen: Tijdverspilling; de (snelle) processor wacht op een traag randapparaat … Stilvallen van andere taken; in de tussentijd kan de processor niets anders doen … Noodzaak tot monsteren; ook andere i/o poorten moeten in de gaten worden gehouden …

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O (Reset) De PC:=(FFFF) (FFFF) is de reset-vector en wijst naar het boot- programma (in ROM)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O (Gewone interrupt) CPU maakt instructie af PUSH van alle CPU registers naar de stack PC:=(FFFE); Dit is de interrupt-vector voor de Interrupt Service Routine (ISR) Programma op (FFFE) wordt uitgevoerd. Laatste ninstructie van de ISR is RTI (Return from interrupt) POP van alle CPU registers van de stack naar de CPU

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O (Interruptafhandelingsroutine)

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O (Prioriteiten bij interrupts) Door een Interrupt maskerings-bit (I-bit) ‘1’ te maken wordt de CPU ongevoelig voor interrupts. Bij een Non- Maskable-Interrupt (NMI) kan er geen I- bit worden gezet.

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Interrupt driven I/O (Traps) Een trap geeft de processor de mogelijkheid zichzelf te interrumperen. (SoftWare Interrupt of SWI) Voorbeelden: Niet bestaande instructiecode Delen door nul (operand niet correct) Niet-toegstane geheugenplaats

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen Direct Memory Acces BRQ = Bus request BGR = Bus Granted

HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen95 Dat was het..