Computerarchitectuur databus

Vergelijkbare documenten
Hoofdstuk 7. Computerarchitectuur

Bussen. Blokschema Geheugenmodule met vier registers RAM. verbindingen tussen deze blokken

Digitale en analoge technieken

De computer als processor

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

2 Algemene opbouw van een computersysteem

computerarchitectuur antwoorden

7,3. Samenvatting door een scholier 1961 woorden 16 januari keer beoordeeld. Informatica Informatica actief

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

Les B-04 Het moederbord

De samenvatting van hoofdstuk 3 van enigma

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/

Digitale technieken Microprocessoren

Hardware. De computer bestaat uit :

De Arduino-microcontroller in de motorvoertuigentechniek (4)

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

Toestellen waar gegevens worden opgeslagen (opslagmedia) horen niet echt in dit lijstje thuis.

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

Naam: Oumaima Bekour Klas: M4b ICT De Lange. Hardware

Wat is een busverbinding?

Wat zien we in deze cursus

ROM, het Read Only Memory, dat bestaat uit: - BIOS - CMOS RAM, het Random Acces Memory, ook wel het werkgeheugen genoemd.

Computerarchitectuur en Netwerken. Computerarchitectuur

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family)

1 graduaat Elektriciteit/elektronica KHLim - dep. IWT HALFGELEIDER-GEHEUGENS HALFGELEIDER GEHEUGENS STATISCH DYNAMISCH ROM PROM EPROM EEROM

In te vullen tabellen.

Hoe werkt een rekenmachine?

slides2.pdf April 12,

Informatica. Bart Steger. February 4, = een verbinding tussen functionele eenheden. Elke bus(of draad) kan 1 bit verplaatsen.

Sequentiële Logica. Processoren 24 november 2014

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

4 Geheugens 71 4 GEHEUGENS. Waarin je versteld zal staan over het grote aantal verschillende geheugens waarover een computer beschikt.

De seriële poort Jan Genoe KHLIM

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

Hoofdstuk 2. De Von Neumann-architectuur

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

Windows Basis - Herman Van den Borre 1

-Een stukje geschiedenis van de PC (personal computer)

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Thema: Multimedia. Hardware

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke. Hardware. De computer in een oogopslag. 1 / 11 Cursusontwikkeling

Mediawijsheid wat zit er in mijn computer?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

computerarchitectuur F. Vonk versie

Hardware vs. software. Computersystemen. Computersysteem. Computerconfiguratie. Computerconfiguratie. Computerconfiguratie

De TRUST 2 PORT USB 2.0 PCI CARD werkt niet op MAC.

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

MODBUS remote I/O-unit type MODBUS4S110

ES1 Project 1: Microcontrollers

hardware F. Vonk versie

Informatica gaat net zo min over computers als astronomie gaat over telescopen. (Edsger W. Dijkstra)

De Arduino-microcontroller in de motorvoertuigentechniek (8)

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

1 computers (hardware)

Ekt1. Computer bouwen

Windows Training voor 50-plussers. PC50plus trainingen Eikbosserweg AK Hilversum tel:

WINDOWS 8. Windows Training voor 50-plussers

Hardware. Robert Groen. Jim van Dijk. 13 september 2013 M44 ITTL

18 Embedded systemen 1

Computertechniek vorige examens

Didactische computer Siemens

Hoofdstuk 6: Digitale signalen

Antwoorden vragen en opgaven Basismodule

Computerarchitectuur. Terugblik / discussie / oefenopgaven

ES1 Project 1: Microcontrollers

Les 11: systeemarchitectuur virtuele machines

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Hoofdstuk 19. Embedded systemen

Naam: Calvin En Ayrton School: Bredero College Klas M44 Datum: LLange

1. Introductie netwerken

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

Arduino CURSUS. door Willy - 09-juni-2017

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/

OPDRACHTKAART. Thema: Multimedia. Hardware 2. Uitbreidingen voor de computer MM Voorkennis: Basisopbouw van de computer

Uitwerking oefententamen Computerarchitectuur December 2016

Antwoorden zijn afgedrukt!!!!!!!

Transcriptie:

Blokschema controlebus ROM RAM I/O Computerarchitectuur de central processing unit (), het rekenhart drie belangrijke onderdelen: het geheugen (ROM en RAM) communicatie met de buitenwereld (I/O) Basiselementen van een computer secundair geheugen CD-ROM hard disk USB-stick tape Bussen verbindingen tussen deze blokken RAM computer box RAM in/uitvoer apparatuur scanner toetsenbord beeldscherm muis printer Een bus bestaat uit een hoeveelheid parallelle verbindingen waarbij elke verbinding één bit kan transporteren. : het transport van gegevens : waar de gegevens vandaan moeten komen of waar ze heen moeten. controlebus: alle overblijvende signalen bijv. of er gegevens gelezen of weggeschreven moeten worden. 0 7

Geheugenmodule met vier registers Elk register bevat bijvoorbeeld acht bits: deze gegevens (data) worden via de aangevoerd (schrijven) of afgevoerd (lezen). A 0 A 1 0 0 0 1 1 0 1 1 A 1 A 0 read write cel 0 cel 1 cel 2 cel 3 De inhoud van zo n register kan gelezen worden als het read-signaal hoog is; een register wordt met data gevuld als het write-signaal hoog is. De read en write lijnen behoren tot de controlebus. Met de twee adreslijnen A 1 en A 0 wordt één van de vier registers geselecteerd. D 7 6 D 5 4 D 3 2 D 1 0 Beperkt aantal adreslijnen Wanneer het aantal adreslijnen van de geheugenmodule kleiner is dan de breedte van de (gelijk aan het aantal adreslijnen van de ), kan men verschillende geheugenmodules op de aansluiten. Bijvoorbeeld bij een module met zes adreslijnen en een met acht adreslijnen, kan de vier verschillende geheugenmodules aanspreken. Vanuit de gezien vormen de vier modules één grote geheugenmodule: 0xFF adres 256 8 RAM D C B A 0x00 D0... D 7 0xC0 t/m 0xFF 0x80 t/m 0xBF 0x40 t/m 0x7F 0x00 t/m 0x3F Intern geheugen het opslaan van de instructies die de uitvoert het opslaan van gegevens waarop de bewerkingen uitvoert Naast dit intern geheugen is er ook extern (of secundair of achtergrond) geheugen aanwezig, namelijk disks en tapes, maar deze zijn niet direct door de te bereiken (maar via I/O blokken). capaciteit ve. geheugenmodule: product vh. aantal bits op één plaats met het aantal geheugenplaatsen per module. Het aantal geheugenplaatsen : het aantal adreslijnen van de geheugenmodule module met n adreslijnen: 2 n afzonderlijk aan te wijzen geheugenplaatsen. Het aantal bits per plaats is gelijk voor elke plaats in de module: modules met één, vier of acht bits per adres, (maar ook andere aantallen). De adreslijnen van een geheugenmodule worden op de aangesloten deze lijnen zijn altijd ingangen voor de geheugenmodule. De datalijnen worden verbonden met de. adreslijnen A 6 en A 7 kiezen via een decoder één van de vier modules: R/W A6 decoder A7 A B C A0 A5 R/W D D0 D7 CS

Types geheugenmodules ROM (read-only-memory): geheugen waaruit alleen gelezen kan worden. Data blijft ook bij uitschakelen van de computer behouden. In ROM-geheugen wordt de data al bij het maken van de chip door de geheugenfabrikant vastgelegd. Een PROM (programmable read-only-memory) is een ROM-geheugen dat door de gebruiker eenmalig van data te voorzien is (het programmeren van de ROM). Een EPROM (erasable programmable read-only-memory) is een PROM die met behulp van ultraviolet licht weer te wissen is. Een EEPROM is ook wisbaar, maar nu met een elektrisch signaal, wat in de praktijk eenvoudiger is dan de geheugenmodules onder een UV-lamp te leggen. FlashROM (of flashmemory): een EEPROM, dat in de schakeling waarin de chip opgenomen is, opnieuw kan geprogrammeerd worden. SRAM met bijv. een access tijd van 4 nsec (10 9 sec), is veel sneller dan DRAM maar ook duurder en wordt daarom veel gebruikt in L2-cache RAM (zie verder). DRAM-modules worden vaak gecombineerd in simm-modules (single inline memory module) met een accesstijd van 60 nsec. Deze simm s zijn kleine printplaatjes met een aantal, meestal parallel geschakelde DRAM-modules. Moderne computers hebben een aantal slots waar deze modules in kunnen geplaatst worden. De eerste simm s waren opgebouwd uit 8 DRAM-modules met elk een capaciteit van bijvoorbeeld 1 Mbit; zo n simm had 30 aansluitpinnen. Voor modernere s met bredere sen zijn tegenwoordig simm s ter beschikking met 72 aansluitingen die 32-bits breed zijn. Een recenter type is SD-RAM (Synchron Data RAM) geleverd in een 64-bits brede dimm met 168 pinnen. Zo n module kan een capaciteit hebben tot 256 Mb en heeft een accesstijd tussen de 8 en 12 nsec. Central Processing Unit RAM (random-access-memory): men kan lezen én schrijven. Random access zegt alleen maar dat de geheugenplaatsen willekeurig toegankelijk zijn, maar dat is met ROM geheugen ook het geval. Bij RAM-modules is een belangrijk onderscheid het statisch of dynamisch zijn van de chip. Een SRAM-module onthoudt de opgeslagen data zolang de spanning op de voeding aanwezig blijft, daar hoeft niets extra s voor te gebeuren. Een DRAM-module verliest zijn data na enige tijd (bijv. na 2 ms). Zo n module moet regelmatig zijn geheugen opfrissen (een refresh cycle). Dit nadeel weegt meestal niet op tegen de grotere capaciteit: een dynamische RAM-chip heeft bij dezelfde integratiedichtheid (dus dezelfde stand van de techniek) een opslagcapaciteit die vier maal zo groot is als een statische RAM-chip. lijnen A 0 A n controle-bus lijnen. D 0. Dm lijnen registers De zelf is opgebouwd uit een aantal functionele eenheden. registers : elektronische buffergeheugens die worden gebruikt voor tijdelijke opslag van gegevens tijdens de uitvoering van instructies Voorbeeld: werkregisters of general purpose registers worden gebruikt bij allerlei bewerkingen, zoals optellen, schuiven van bits, enz.

Instructieset de verzameling instructies die een kan uitvoeren (of de machinetaal). Een instructie is een binaire code. Een programma in machinetaal is dus een verzameling binaire codes (voor een mens niet erg toegankelijk). Een 1-1 afbeelding van machinecodes naar min of meer begrijpelijke afkortingen van de handelingen die door die machinecode worden uitgevoerd. Deze meer toegankelijke taal van afkortingen wordt assembler-taal genoemd. Volgend programma (voor een 6502 processor) telt de inhouden van de geheugenplaatsen met adressen 60 en 61 (hex) op en stockeert het resultaat op de geheugenplaats met adres 62. 1010 0101 0110 0000 A5 60 LDA 60 load register A 0110 0101 0110 0001 65 61 ADC 61 add with carry 1000 0101 0110 0010 85 62 STA 62 store register A bus interface unit (BIU): de verbinding van de met de buitenwereld timing unit (TU) genereert één of meer clocksignalen voor interne logica van internal control unit (ICU) stuurt het geheel: het zorgt voor de distributie van de timing-signalen en datatransport tussen de registers binnen de en draagt dus eigenlijk zorg voor het uitvoeren van de instructie in het instructieregister. arithmetic and logic unit (ALU): bouwsteen die rekenkundige en logische bewerkingen op data uitvoert; welke bewerking aangegeven door ICU, afgeleid uit de instructiecode. (In een hogere programmeertaal zouden we z = x+y; schrijven.) werkregisters Interne opbouw BIU stackpointer program counter instructie-register De program counter bevat het adres van de uit te voeren instructie. De inhoud van de program counter wordt tijdens het uitvoeren van een instructie ingesteld op het adres van de volgende instructie. De stack pointer bevat ook een geheugenadres; het register wijst naar geheugen waar informatie bijgehouden wordt tijdens het oproepen van procedures en functies. Het instructieregister bevat een instructie die uit het geheugen gehaald wordt, om te kunnen uitvoeren. A B ICU Bewerkingen van de ALU geven naast een uitkomst ook nog zogeheten statusinformatie. Deze informatie is verzameld in het status- of conditiecode-register: status register ALU zero-bit : het resultaat van een bewerking is gelijk aan nul; carry-bit : bij een optelling treedt een overdracht bij de hoogste twee bits; C TU negative-bit : het resultaat van een bewerking is een negatief getal; overflow-bit : er treedt een overflow op bij een 2-complement bewerking.

Von Neumann-cyclus Een haalt een instructie op uit het geheugen en voert ze uit. Deze functie is onderverdeeld in een aantal stappen en wordt telkens herhaald: f d e s f d e s instruction fetch : zet de inhoud van de program counter op de en geef een leessignaal op de controlebus; het geheugen reageert hierop door de instructiecode waar de program counter naar wijst, op de te zetten; de neemt de code van de over en plaatst ze in het instruction register; verhoog de inhoud van de program counter zodat deze naar de volgende geheugenplaats wijst; instruction decoding : zoek uit wat de instructie moet doen; instruction execution : voer de instructie uit; store : sla het resultaat op. Soorten processoren CISC (complex instruction set ): in de eerste processoren waren de verschillende logische eenheden (ALU, ICU, BIU) nauw gerelateerd. Bij latere -architecturen kregen deze onderdelen een meer zelfstandige status, zodat ze min of meer parallel konden werken. Hiervoor werden steeds uitgebreidere instructiesets gedefinieerd. Dit resulteerde in een enorme complexiteit en de prestaties bleken niet evenredig te stijgen. Er werd dikwijls ook slechts een beperkte deelverzameling gebruikt. RISC (reduced instruction set ): de heeft slechts een beperkt aantal instructies die op een zeer hoge snelheid kunnen worden uitgevoerd. Zo n processor is eenvoudiger van opbouw en de instructieset is met zorg gekozen. Instructies die zeer vaak voorkomen zijn aanwezig; complexere instructies moeten met verscheidene eenvoudige instructies nagebootst worden. RISC processoren zijn dus ontwikkeld als reactie op de steeds toenemende complexiteit van klassieke processoren (die daarom de naam CISC kregen). Decoderen van een instructie 1. de instructie is een adres in een in de aangebrachte interne microcode-rom, waarin elementaire stappen staan die voor de afhandeling van een instructie zorgen. 2. een tweede mogelijkheid is een state-machine te bouwen waarvan het verloop beïnvloed wordt door de opgehaalde instructie: instructie wordt direct door de hardware, zonder tussenkomst van een software-level, uitgevoerd (hardwired systeem). Efficiëntie verhogen (pipelining): fetch decode execute store fetch decode execute store fetch decode execute store fetch decode execute store Cache-technologie de techniek van het beschikbaar houden van een kopie van eerder gebruikte gegevens op een plaats waar ze een volgende keer sneller te vinden zijn. Het aantal gegevens waarvan een kopie kan bewaard worden, is in de praktijk relatief klein, maar een goed doordacht caching-systeem kan een aanzienlijke winst in snelheid opleveren. De toegangstijden van betaalbaar geheugen (bijv. DRAM) zijn te lang om een snelle op volle toeren te laten draaien. Een verspilt in geval van trage geheugens tijd met wait states. Dit zijn ingelaste clock-cycles om traag geheugen de tijd te geven de data (instructies of gegevens) te laten leveren. Het aanbrengen van een snel cache-geheugen levert winst omdat s dikwijls in programmalussen ronddraaien. Na één keer kunnen alle instructies uit zo n lus in het cache-geheugen gekopieerd zijn en daarmee de volgende keer snel toegankelijk voor de processor. Ook gegevens zijn vaak meerdere keren nodig. Een cache is transparant voor de eindgebruiker: hij moet met de aanwezigheid ervan geen rekening te houden.

Het cache-geheugen staat parallel aan het werkgeheugen in een computersysteem. Bij een cache-hit levert het cache-geheugen data aan de ; bij een cache-miss: data uit werkgeheugen aan de en ook in de cache opgeslagen cache geheugen cache-hit controlebus cache-miss De hit-rate is de verhouding van cache-hits op het aantal maal dat data wordt opgevraagd (som van cache-hits en cache-misses). Hit-rates van 80% en hoger zijn niet ongebruikelijk bij een goed ontworpen cache. Levels Data in een computersysteem kan op verschillende manieren ter beschikking gesteld worden van de. In functie van de toegangstijd krijgen we volgend overzicht. 1. interne registers van de 2. Level-1 cache (L1): een kleine cache die zich op de chip zelf bevindt 3. Level-2 cache (L2): hierboven besproken, meestal met SRAM 4. werkgeheugen: met DRAM 5. achtergrondgeheugen: disks 6. backup op tape of schrijfbare CD-ROM De hoeveelheid data die kan opgslagen worden, neemt van boven naar beneden toe, maar ook de toegangstijd neemt toe. Daarnaast neemt de prijs per bit van boven naar beneden gigantisch af. Cache-werking Een goed systeem moet op korte tijd twee zaken realiseren: 1. Zijn de gevraagde data in het cache-geheugen aanwezig? Zo ja, laat het cache-geheugen de data leveren. 2. Zo nee, maak een kopie in het cache-geheugen van de door het werkgeheugen geleverde data en registreer ook het hierbij gebruikte adres, zodat de data een volgende keer door het cache-geheugen geleverd kunnen worden. instructie-cache (caching van de machinecodes), data-cache (caching van de data), Drie mogelijkheden: een combinatie: instructies en data in de zelfde cache of een gescheiden instructie- en data-cache. Schrijven in cachegeheugen: write-through : data in cache als in werkgeheugen worden tegelijk geschreven; write-back : data voorlopig in cachegeheugen en pas later in werkgeheuegen. Multiprocessor-systemen De prestatie van een computersysteem is op te voeren door specifieke, vaak op de I/O betrekking hebbende, taken uit te besteden aan een hulpje in de vorm van een co-processor. Een eerste voorbeeld zijn de mathematische coprocessors, die gespecialiseerd zijn in het rekenen van drijvende-kommagetallen (niet-gehele getallen). Ook grafische bewerkingen zoals het verplaatsen van een bitmap in het videogeheugen kunnen met succes door een grafische coprocessor op een videokaart worden uitgevoerd. Deze hulpprocessors nemen de hoofd- allerlei routineklussen uit handen, waardoor de uitvoering van programma s sneller kan verlopen. Bij een multiprocessor zijn er meerdere s beschikbaar die allen bijdragen aan de uitvoering van een programma.

Classificatie (Flynn) SISD (single instruction single data): een enkele die werkt met één stroom van instructies op één datastroom. SIMD (single instruction multiple data) (vector-computers): een enkele instructie werkt op een verzameling van datastromen. Bij berekeningen met matrices en vectoren voeren parallelle rekeneenheden dezelfde operatie uit elk op een ander stuk van de data. MISD (multiple instruction single data): een datastroom gaat door een reeks processors die ieder een eigen instructiestroom hebben (pipeline). MIMD (multiple instruction multiple data): meerdere processoren werken parallel elk aan een eigen datastroom. shared memory multiprocessors zijn sterk gekoppeld: de s delen het werkgeheugen waarbij ze meestal wel over een eigen cache beschikken. message-passing multicomputers gaan uit van meer zelfstandige computers die op de een of andere manier gegevens in de vorm van berichten kunnen uitwisselen. Controllers Communicatie tussen en een randapparaat gebeurt normaal via een intermediair hardware element, een controller. Bij een PC komt zo n controller overeen met een elektronische kaart die in een slot van het moederbord van de PC kan gestoken worden. Via kabeltjes wordt deze kaart verbonden met het randapparaat. In het eenvoudigste geval zijn deze controllers verbonden met dezelfde bus die de met het intern geheugen verbindt. De plaats op de controller waar de informatie naar toe kan sturen of informatie kan gaan halen, wordt I/O-poort genoemd. Een poort bestaat uit een aantal registers die elk een adres hebben. speciale I/0 Het aanspreken van de I/O poort: memory mapped I/0 Speciale I/O Input/Output controllers controlebus ROM RAM I/O speciale I/O machineinstructies: speciaal adresgebied (I/O-space) aansturen Deze I/O-space staat los van de memory space. In de controlebus is een lijn voorzien die aangeeft of het adres dat op de gezet is voor memory-space (normale instructies) of voor I/O space (speciale instructies) bedoeld is. In dit laatste geval wordt externe hardware geactiveerd. Omdat de I/O space niet zo groot hoeft te zijn als memory space, wordt slechts een gedeelte van de (bijv. slechts 8 lijnen) gebruikt. MREQ memory space IOREQ I/0 space controlbus

Memory mapped I/O I/O bevindt zich in memory space, bereikbaar via gewone instructies Voordeel: alle bewerkingen die op het geheugen van toepassing zijn, zijn ook voor de I/O-adressen beschikbaar. Nadeel: de selectielogica voor een I/O-adres is wat omvangrijker omdat het aantal adreslijnen voor het selecteren van een I/O-poort gelijk is aan het totaal aantal adreslijnen. memory space I/0 space memory space I/0 space 11001010 01 I/O 11001010 Invoer van data 1. De geeft met een bit in het CSR aan dat het op data zit te wachten. Tijdens dit wachten, test de de I/O-done bit. Ook hier zit de ijverig te wachten terwijl de invoer bezig is. 2. De controller doet de eigenlijke invoer: breng data-bytes naar DBR I/O done bit wordt geset 3. De kan nu de inhoud van het DBR verplaatsen naar één van zijn general purpose registers. Programmed I/O: niet erg efficient: een randapparaat is veel trager dan de. Terwijl de I/O bezig is, zou de enkele duizende (nuttiger) machineinstructies kunnen uitvoeren. De moet dan wel op de hoogte gebracht worden, wanneer de I/O gedaan is. Uitvoer van data control en status register (CSR) In een I/O poort: twee registers (elk eigen adres): data buffer register (DBR) 11001010 01 I/O 11001010 1. Is apparaat klaar: test I/O done bit 2. Breng data-bytes naar DBR I/O done bit wordt gereset de eigenlijke output operatie 3. Na uitvoering: I/O done bit geset iets misgegaan: andere bits in CSR. Terwijl de controller de uitvoer aan het doen is, kan de in een programma-lus de I/O-done bit in CSR testen. Zolang de bit gelijk aan nul blijft: output nog bezig: moet verder wachten. Na een tijdje: de I/O-done bit terug gelijk aan 1 : de weet hierdoor dat een volgende I/O operatie kan gestart worden. Interrupts Een interrupt is een signaal dat aangeboden wordt aan de via de controle-bus. Een interrupt gedreven uitvoer operatie verloopt als volgt. 1. De gaat na of het apparaat klaar staat om data-bytes te ontvangen (de I/O-done bit in CSR). 2. De verplaatst de data-bytes naar het data buffer register. Hierdoor wordt I/O done bit in het CSR gereset: de mag geen verdere data-bytes overbrengen. 3. De controller doet nu de eigenlijke output operatie naar het randapparaat. In plaats van continu het CSR te testen, gaat de voort met het doen van nuttige dingen, bijvoorbeeld berekeningen uitvoeren voor een andere gebruiker. 4. Als de I/O operatie gedaan is, gesignaleerd door de I/O done bit die gelijk wordt aan 1 of door een van de foutsignalen, treedt een interrupt op.

De reageert nu op deze interrupt: Interrupts 1. De inhoud van alle registers, o.a. de program counter van het lopende programma en het statusregister, wordt opgeslagen in een daartoe bestemd gedeelte van het intern geheugen. 2. De program counter en statusregister krijgen een nieuwe waarde. Deze waarden zijn te vinden op een vaste, voor de interrupt gereserveerde geheugenplaats. 3. De program counter wijst nu naar het begin van de interrupt service routine: de uitvoering ervan start dus. 4. In de interruptroutine controleert de of de I/O zonder fouten verlopen is. (Bij invoer wordt de data van het data buffer register naar het intern geheugen verplaatst.) Eventueel wordt een volgende I/O operatie gestart. 5. Op het einde van de routine wordt de return from interrupt instructie uitgevoerd. Deze instructie herstelt de oude waarden van de registers in de (inclusief de program counter). 6. De doet verder met het onderbroken programma alsof er niets gebeurd is. Interrupt vectoring. Wanneer een interrupt via de controle-bus aangeboden wordt aan de, geeft deze via een interrupt-acknowledge signaal op de controlebus aan dat de interrupt gezien is. Het interrumperende device zet nu op de een getal (interrupt vector), dat uniek is voor het device. De kan met behulp van de interrupt vector de juiste interrupt-afhandelingsroutine vinden: dit getal wordt gebruikt als index in een tabel waarin de startadressen van de verschillende interrupt routines opgeslagen zijn. Om het gelijktijdig optreden van twee interrupts op te vangen, worden de verschillende devices een prioriteit toegewezen. Het interrupt-acknowledge signaal wordt gestuurd naar het device met de hoogste prioriteit. Indien dit device een interrupt gestuurd heeft, wordt zijn interrupt vector op de gezet. In het andere geval, stuurt het device het interrupt-acknowledge signaal verder naar het device met de tweede hoogste prioriteit, enzoverder tot het einde van de keten bereikt is waar het device met de laagste prioriteit zit. Interrupt driven I/O Daisy chain in plaats van programmed I/O IRQ () aangeven door de interrupt enable bit in het CSR op 1 te zetten. INT-ACK Verschillende randapparaten die elk een interrupt kunnen genereren: De moet dan kunnen bepalen door welke controller de interrupt gegenereerd is zodat de juiste interrupt service routine kan geactiveerd worden. I/O-0 I/O-1 I/O-2 I/O-3 Er moet ook gepast gereageerd worden als er twee interrupts vrijwel tegelijk aangeboden worden. interrupt polling CSR 0 irq-vector CSR 0 irq-vector CSR 01 irq-vector CSR 0 irq-vector Verschillende technieken: interrupt vectoring en het gebruik van een interrupt controller.

Interrupt maskering Wanneer de een interrupt met een zekere prioriteit aan het afhandelen is, maakt hij zich doof voor interrupts van een lagere prioriteit. Dit gebeurt met een bitpatroon (interrupt mask) waarmee interrupts van een lagere prioriteit afgeschermd of gemaskeerd worden. Tijdens het afhandelen van een interrupt van een device met een bepaalde prioriteit, een interrupt van een hogere prioriteit wordt aanvaard. Een interrupt routine wordt onderbroken voor een andere interrupt routine uit te voeren. Nadat deze interrupt afgehandeld is, wordt de eerste interrupt verder afgehandeld. Langs de andere kant worden interrupts van een lagere prioriteit niet gezien. Pas als de interrupt afgehandeld is, en de interrupt mask herzet is, wordt deze interrupt door de opgemerkt. Non-maskable interrupt De meeste s beschikken naast de gewone interrupt-ingang(en) ook over een interrupt ingang die niet te maskeren is. Deze non-maskable interrupt is te gebruiken in noodsituaties, bijvoorbeeld bij falende hardware of een wegvallende voedingsspanning. Ook een warme herstart (CTRL-ALT-DEL) van het computersysteem behoort tot de mogelijkheden. Reset De meest ingrijpende hardware-exception is de reset. De begint hierbij op een voorgeschreven wijze weer helemaal opnieuw (via de reset vector). De reset is nodig als een computersysteem door welke fout dan ook niet meer onder controle te krijgen is. Exceptions een bepaalde gebeurtenis waarop de op een voorgeschreven manier reageert. De reactie bestaat meestal uit het bewaren van de waarden van de werkregisters van de en het initialiseren van de program counter met een adres naar een geheugenplaats waar de exception handler staat. Er zijn verschillende soorten exceptions: Hardware interrupts zijn signalen van buiten de : bijvoorbeeld afkomstig van I/O poorten. Interne problemen bij het afhandelen van een instructie: bijvoorbeeld het delen door nul of het niet kunnen decoderen van een instructie. Software interrupt door middel van een speciale instructie die voor de hetzelfde effect heeft als het optreden van een hardware interrupt; bijvoorbeeld bij een system call. Configureren van een I/O poort Met behulp van software is de functionaliteit van zo n I/O poort nog nader te specificeren. Hiervoor is een initialisatie van de chip nodig. Dit kan één keer gebeuren bij het opstarten. Het is echter ook mogelijk dat per applicatie een nieuwe initialisatie nodig is of dat in de applicatie de initialisatie veranderd moet worden. De configureren of programmeren van een I/O-chip gebeurt door in één of meer controleregisters van die chip de juiste codes te schrijven. Bij meerdere controleregisters is soms de volgorde van schrijven belangrijk.

Bussen Een computersysteem maakt voor intern datatransport gebruik van een bus. Om een systeem te kunnen samenstellen uit hardwarecomponenten van verschillende leveranciers is een goede afspraak over de te gebruiken systeembus noodzakelijk: de datatransfersnelheid, het aantal adres- en datalijnen, de verschillende adresruimtes Randapparaat het aantal interruptlijnen,... Bus Controller Randapparaat Controller Intern geheugen 1. De voert de transformaties (ALU) en de controlefunctie uit en is verantwoordelijk voor de klok. Om snel berekeningen te kunnen uitvoeren beschikt de over twee extra sets geheugen: de registers en de cache. Om de kostprijs te drukken is de capaciteit van deze geheugens beperkt. 2. De northbridge is verantwoordelijk voor de snelle communicatie tussen de processor, het geheugen, het AGP-slot/PCI-Express slot en de PCI-sloten. 3. De southbridge regelt de communicatie tussen de northbridge (via de PCI-bus) en de tragere controllers: IDE kanalen (schijven, DVD-drives,...), USB poorten en invoerapparaten. Het geheel van de northbridge en de southbridge wordt de chipset genoemd. 4. De DIMM sockets (geheugen) worden aangesproken via de geheugencontroller in de northbridge of in de processor. 5. PCI-sloten (Peripheral Component Interconnect) worden gebruikt voor communicatie met geluidskaarten, netwerkkaarten, diskcontrollers,... In krachtiger systemen (servers) werd vroeger SCSI (Small Computer System Interface gebruikt voor de aansluiting van disk, tape en CD-ROM-devices. Tegenwoordig worden SAS en SATA disks gebruikt in deze krachtiger systemen. interfacing functie ATA drives 10/100 Ethernet AGP slot AGP PC Chipset Northbridge Southbridge dual channel memory slots PCI Express PCI slots Snelle bussen Tragere bussen 6. Het AGP-slot (Accelerated Graphics Port) is een speciale interface voor grafische kaarten om de grafische bottleneck te verlichten. In recente systemen wordt AGP vervangen door de snellere PCI Express. 7. (E)IDE sloten ((Enhanced) Integrated Device Elekctronics) worden gebruikt om verbindingen te maken met schijven, CD-drives, DVD-branders,... Meestal zijn er twee sloten beschikbaar die elk twee apparaten kunnen aansturen. 8. Via de southbridge kunnen ook tragere randapparaten (van de jaren stillekes) aangestuurd worden, bijv. PS/2 poorten voor communicatie met toetsenbord en muis, een seriële poort voor muis of modem, een parallelle poort voor een printer. Tegenwoordig worden hiervoor USB-sloten (Universal Serial Bus) gebruikt: aansluitingen voor toetsenbord, muis, printer, flash stick. Soms zijn er ook nog EISA sloten (Extended Industry Standard Architecture) aanwezig voor de aansluiting van bijvoorbeeld een zeer oude netwerkkaart. USB geluid