Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdFrank Maas Laatst gewijzigd meer dan 8 jaar geleden
1
HOGESCHOOL ROTTERDAM / CMI Computersystemen 1 L.V.de.Zeeuw@HRO.NL
2
HOGESCHOOL ROTTERDAM / CMI 3 De organisatie van de computer
3
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)
4
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen4 3.1.1 Instructies en dataverwerking De grootte van het geheugen is afhankelijk van het aantal adreslijnen (adresbus)
5
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen5 3.1.1 Instructies en dataverwerking Lezen/Schrijven Bepaald waar er wordt gelezen/geschreven
6
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen6 3.1.1 Instructies en dataverwerking
7
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen7 3.1.2 Het programma
8
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen8 3.1.3 De machine 1 De processor is een machine die constant een vaste reeks handelingen uitvoert: de Von Neumann-cyclus John von Neuman
9
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen9 3.1.3 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.
10
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen10 3.1.3 De machine 3 de Von Neumann-cyclus Fetch ExcecuteDecode
11
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen11 3.1.4 Bouwstenen van de processor 1 Program Counter Instructieregister Instructiedecoder Arithmetic and Logic Unit Internal Control Unit
12
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen12 3.1.4 Bouwstenen van de processor 2
13
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen13 3.1.5 De ALU Arithmetic and Logic Unit Op uitgang C verschijnt de data op ingang A n = negative z = zero v = overflow c = carry
14
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen14 3.1.6 Een CPU-model 1 CPU op één chip: microprocessor Het begrip microcomputer is verouderd …
15
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen15 3.1.6 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
16
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen16 3.1.6 Een CPU-model 3
17
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen17 3.1.6 Een CPU-model 4 Handelingen Internal Control Unit (ICU) Afgeven read/write puls voor interne registers De functie van de ALU instellen
18
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen18 3.1.6 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
19
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen19 3.1.6 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
20
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen20 3.1.7 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
21
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen21 3.1.7 Uitvoeren van een instructie 2 StapActieALU 1A:=R1 2B:=R2optellen 3R1:=C Optellen R1 en R2: R1:=R1+R2
22
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen22 3.1.8 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
23
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen23 3.1.8 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
24
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen24 3.1.8 Microcode 3 Voorbeeld: B:=R2 en ALU-control = Optellen
25
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen25 3.1.8 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
26
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen26 3.1.8 Microcode 5 Er is dus onderscheid tussen Machine instructies (buiten de processor in het geheugen) en Microcode (binnen de processor in het microcode-ROM)
27
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen27 3.1.8 Microcode 6
28
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen28 3.1.9 Het statusregister Het statusregister (conditiecodes ALU) kan de ICU besturen: Dus data in de ALU beïnvloed de acties van de ICU.
29
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen29 3.1.10 Snelheid MIPS: Miljoen instructies per seconde http://en.wikipedia.org/wiki/Million_instructions_per_second 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!
30
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen30 3.2 Machinecode De machinecode bevindt zich op de grens tussen hardware en software.
31
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen31 3.2.1 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)
32
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen32 3.2.1 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.
33
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen33 3.2.1 Instructiedelen (Assemblercode) De machinecode voor de instructie TEL OP register 001 bij register 010 is 1011010100101010 (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
34
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen34 3.2.1 Instructiedelen (Assemblercode)
35
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen35 3.2.1 Instructiedelen (Instructielengte) AssemblercodeCommentaar LOAD R1, (4000); Let op het ‘()’ bekent Geheugenadres 4000. 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
36
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen36 3.2.1 Instructiedelen (Instructielengte)
37
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen37 3.2.1 Instructiedelen (Instructielengte) AssemblercodeAdresMachinecodeBetekenis LOAD R1,(0x4000);1000793FLaad R1 met de inhoud van … 10014000geheugenplaats 4000 LOAD R2,(0x4001);1002795FLaad R2 met de inhoud van … 10034001geheugenplaats 4001 ADD R1,R2;1004B52AR1:=R1+R2 STORE R1,(0x4002);10057BE9Kopieer R1 naar … 10064002geheugenplaats 4002
38
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen38 3.2.2 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
39
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen39 3.2.2 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
40
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen40 3.2.2 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)
41
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen41 3.2.2 Operaties (Rotate) Het uitgeschoven bit wordt aan de andere kant weer ingeschoven. ROR ; (Rotate right) ROL ; (Rotate left)
42
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen42 3.2.2 Operaties (Schuiven) 1
43
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen43 3.2.2 Operaties (Schuiven) 2 Operanden: Source Destination –Als Source = Destination heb je een destructieve shift Aantal posities
44
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen44 3.2.2 Operaties (Logische operaties) Voorbeelden: AND R1,R2; R1:=R1 AND R2 OR R1,R2; XOR R1,R2; NOT R1; Alle bits worden geïnverteerd
45
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen45 3.2.2 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)
46
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen46 3.2.2 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.
47
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen47 3.2.2 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)
48
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen48 3.2.2 Operaties (Sprong naar subroutine) Voorbeeld: JSR 6000; Jump to SubRoutine De subroutine staat op geheugenplaats 6000. 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.
49
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen49 3.2.2 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
50
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen50 3.2.3 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
51
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen51 3.2.3 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)
52
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen52 3.2.3 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
53
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen53 3.2.4 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
54
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen54 3.2.4 Adresseringsmodes (Register addressing) 2 Memory ADD R1,R2
55
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen55 3.2.4 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
56
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen56 3.2.4 Adresseringsmodes (Immediate addressing) 2 Memory CMP R2 0xFFFF
57
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen57 3.2.4 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) 15602 wordt gekopieerd naar R1 SUB (0x13EF),4; De inhoud van geheugenplaats (hex) 13EF wordt met 4 verminderd.
58
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen58 3.2.4 Adresseringsmodes (Absolute addressing) 2 Memory ADD R1 (0x1432) 0x143212
59
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen59 3.2.4 Adresseringsmodes (Register Indirect Addressing) 1 Een register bevat het adres waar de data staat. Voorbeeld: ADD R1,(R2); R1:=R1+(R2)
60
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen60 3.2.4 Adresseringsmodes (Register Indirect Addressing) 1 Memory ADD R1, (R2) 1230x1430
61
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen61 3.2.4 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 R2 3000 bevat is dus de data te vinden in geheugen plaats 3100
62
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen62 3.2.4 Adresseringsmodes (Base Register Addressing) 2 Memory ADD R1 3 (R2) 0x1234 0x1237 3 verder 0x1234
63
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen63 3.2.4 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)
64
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen64 3.2.4 Adresseringsmodes (Indexed Addressing) 2 Memory ADD R2 0x1234 (R1) 0x1234 0x1237 3 verder 0x3 LOAD R1 3
65
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen65 3.2.4 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)
66
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen66 3.2.4 Adresseringsmodes (Relative Addressing) 2 Memory BNE - 5 BEQ 3
67
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen67 3.2.5 De stack 1 Stack (stapel) LIFO = Last In First Out De stackpointer (SP) wijst het adres aan van gebruikte geheugenplaats.
68
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen68 3.2.5 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
69
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen69 3.2.5 De stack (Gebruik van de stack bij een subroutine) 1 Jump to SubRoutine: JSR ; Wordt uitgevoerd als: PUSH PC; LOAD PC, ;
70
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen70 3.2.5 De stack (Gebruik van de stack bij een subroutine) 2 Return vanuit een subroutine RET; Wordt uitgevoerd als: POP PC;
71
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen71 3.2.5 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.
72
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen72 3.2.5 De stack (Stack georiënteerde processor) 2
73
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen73 3.2.5 De stack (Stack georiënteerde processor) 3 Voorbeeld: A ×(A+B)+C PUSH C PUSH A PUSH B ADD MUL ADD
74
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen74 3.2.5 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)
75
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen75 3.2.5 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); }
76
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen76 3.3 In en Out (I/O) I/O voor communicatie met de buiten wereld
77
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen77 3.3.2 Memory mapped (I/O) 1
78
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen78 3.3.2 Memory mapped (I/O) 2
79
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen79 3.3.2 Memory mapped (I/O) (Handshake)
80
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen80 3.3.2 Memory mapped (I/O) (Parallelle en seriële poorten)
81
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen81 3.3 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.
82
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen82 3.3 Open systemen (Open bus systemen)
83
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen83 3.3 Open systemen (I/O bussen bij de IBM PC) 1
84
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen84
85
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen85 3.3 Open systemen (I/O bussen bij de IBM PC) 3 SCSI (Small Computer System Interface) in/externe bus in professionele computersystemen. Spreek uit: skoezie.
86
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen86 3.4 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
87
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen87 3.4.1 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 …
88
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen88 3.4.2 Interrupt driven I/O
89
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen89 3.4.2 Interrupt driven I/O (Reset) De PC:=(FFFF) (FFFF) is de reset-vector en wijst naar het boot- programma (in ROM)
90
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen90 3.4.2 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
91
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen91 3.4.2 Interrupt driven I/O (Interruptafhandelingsroutine)
92
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen92 3.4.2 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.
93
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen93 3.4.2 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
94
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen94 3.4.3 Direct Memory Acces BRQ = Bus request BGR = Bus Granted
95
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen95 Dat was het..
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.