slides2.pdf April 12,

Vergelijkbare documenten
Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en Netwerken. Computerarchitectuur

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Computerarchitectuur en netwerken Toets 1 4 okt

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

Virtueel Geheugen en demand paging (1)

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur

Computertechniek vorige examens

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Computerarchitectuur en netwerken. Operating System structuur. Files

Digitale en analoge technieken

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

in Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)

in Operating System Concepten

Computerarchitectuur. App. B. Review of Memory Hierarchy

COMPUTERVAARDIGHEDEN EN PROGRAMMEREN

Les 11: systeemarchitectuur virtuele machines

VirtualBox: hoe werkt het?

Tentamen Computersystemen

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Systeemarchitectuur. Piet van Oostrum. herziene versie november Departement Informatica

De computer als processor

ES1 Project 1: Microcontrollers

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

Computerarchitectuur en netwerken 4 Processen en Threads

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

Windows Basis - Herman Van den Borre 1

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

Hoofdstuk 2. De Von Neumann-architectuur

Digitale technieken Deeltoets II

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

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

Hoe werkt een rekenmachine?

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

Hyper-V vs ESX in het datacenter

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

computerarchitectuur antwoorden

Machinevirtualisatie. Raphael kena Poss Universiteit van Amsterdam. Besturingsystemen

Hoofdstuk 19. Embedded systemen

Groep Automatisering KHLim Univ Campus gebouw B Diepenbeek

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nieuwe UEFI Bios en GPT

SBO Nilda Pinto BASISKENNIS BESTURINGSSYTEMEN (MBI 1) PERIODE MATERIAAL BOEK SOFTWARE VOOR ICT SUPPORT 2 EN 3 (HANS VAN RHEENEN)

18 Embedded systemen 1

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

2 Algemene opbouw van een computersysteem

WiFi is een shared medium. Hogere snelheid -> meer clients

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

Samenvatting Computer Architectuur

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

-Een stukje geschiedenis van de PC (personal computer)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Belangrijkste ideeën/concepten uit OS, incl. proces

ES1 Project 1: Microcontrollers

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Pervasive Server V9 Installatiegids

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Theorie Informatica. Inhoud: 1. Systeem 2. Programmeren 3. Informatiesystemen 4. Internet 5. Besturingssystemen 6. Theorie bij praktijk

10. Mijn eerste programma

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie

Tim Mallezie Architectuur van besturingssystemen: Vraag A4.

Transcriptie:

Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets > 0 is. De uit te voeren operaties (instructies) staan in het Elke operatie heeft een code (instructiecode). In een instructie staat ook waar de gegevens (operanden) vandaan komen resp. naar toe gaan (register of ) De CPU heeft een speciaal register (program counter of instruction pointer) die aangeeft op welk adres de uit te voeren instructie staat. Een compiler breekt ingewikkelder operaties af tot een rij instructies CSN-CS2 1 CSN-CS2 1 Binair rekenen CPU en stacks Binair tellen 0 000 1 001 2 010 3 011 4 100 Optellen 0 0 00 0 1 01 1 0 01 1 1 10 Hoe kan je optellen met de logische operaties AND, OR en NOT? (1 = waar, 0 = onwaar) Voor het opslaan van tussenresultaten van ingewikkelde berekeningen wordt vaak een stack gebruikt. Voor het onthouden van een terugkeeradres van een functie- of methode-aanroep idem (terugkeeradres = waarde van PC/IP) Ook argumenten van functie- of methode-aanroep Een speciaal register wordt gebruikt om te onthouden waar de top van de stack staat (stack-pointer). Bij moderne machines loopt de stack meestal van hoge naar lage adressen. Push(waarde) = MEM[SP] = waarde; SP = SP - lengte Pop() = SP = SP + lengte; return MEM[SP] CSN-CS2 2 CSN-CS2 3 Stack Bus 1 stack push/pop SP Een bus is een soort snelweg voor gegevens Verzameling draden en connectors (slots) Afspraak over electrische signalen (welke spanningen) Afspraak over betekenis van de signalen (welke draad wat betekent) Protocol: in welke volgorde moeten de signalen gegeven worden Snelheid: hoeveel keer per sec. wordt er verstuurd Multiplexing: gaan en adressen tegelijk over de bus of na elkaar Welk onderdeel is de baas over de bus CSN-CS2 4 0 CSN-CS2 5 slides2.pdf April 12, 2002 1

Bus 2 CPU//cache Op de bus zitten verschillende onderdelen aangesloten die met elkaar kunnen communiceren: CPU,,,... Er kan maar één transport tegelijk plaatsvinden De snelheid wordt bepaald door: De frequentie van de bus (bijv. 33 MHz) De hoeveelheid gegevens die tegelijkertijd op de bus getransporteerd kan worden (de breedte van de bus). Of er multiplexing plaats vindt Vb: ISA bus: 8MHz, 8 of 16 bits Probleem: (betaalbaar) is meestal langzamer dan CPU. vb: CPU 500-1000MHz, 10 nsec (=100MHz). Andere beperkingen: bus, andere toegang Gevolg: CPU moet wachten tot gegevens uit beschikbaar zijn. Snel is superduur. Oplossing: zet een klein stukje snel (cache) tussen de CPU en het gewone. Waar? tussen de CPU en de bus Of: in de CPU. (zie CPU plaatje) PCI bus, 33 of 66 MHz, 32 bits en adressen. CSN-CS2 6 CSN-CS2 7 Cache 1 Cache 2 CPU cache Registers intern cache (level 1) level 2 cache Cache is sneller dan Cache is (veel) kleiner dan Vraag: wat stop je in de cache? Liefst: datgene dat je het meest nodig zult hebben Onmogelijk te voorspellen Daarom: wat het meest recent gebruikt is bus Principe van localiteit: programma s hebben de neiging om langere tijd in dezelfde buurt te blijven zowel m.b.t. instructies als Als de gevraagde plaats in de cache is, dan hit Anders mis : de CPU moet wachten Bij een mis moet iets anders weggegooid worden: bijv. iets dat het langst geleden gebruikt is Bij het ophalen wordt meestal een flink stuk tegelijk gepakt. Schrijven via cache: writethrough of delayed-write. CSN-CS2 8 CSN-CS2 9 In- en uitvoer I/O 1 Gegevens moeten van de CPU naar s en omgekeerd. De zit op de bus en krijgt/stuurt electrische signalen Het apparaat op de (muis, toetsenbord, printer,... ) krijgt/stuurt elctrische signalen van/naar de. Hoe communiceert de CPU met de? De moet instructies van de CPU herkennen Er moeten meerdere s kunnen zijn die elkaar niet in de weg zitten. De volgende mogelijkheden worden gebruikt: 1. Speciale IN/OUT put instructies 2. Speciale adressen voor s bus input buffer output buffer control register IN UIT 3. Direct memory access (DMA) status register device CSN-CS2 10 CSN-CS2 11 slides2.pdf April 12, 2002 2

I/O instructies I/O instructies De CPU heeft speciale instructies voor in- en output Deze instructies hebben een I/O adres als parameter (of in een apart register) De komt van/naar een ander register of adres vb. INP 16, R1 of: OUT 16, waarde I/O = 1 als er INP/OUT instructie uitgevoerd wordt I/O = 0 als er benaderd wordt R/W = 1 als van CPU bus R/W = 0 als van bus CPU Interface zet op de bus als I/O == 1 R/W = 0 adres == 16 Interface haalt van de bus als I/O == 1 R/W = 1 adres == 16 I/O R/W adres CSN-CS2 12 CSN-CS2 13 Memory-mapped I/O Memory-mapped I/O Geen speciale I/O instructies Deel van de adresruimte wordt gebruikt voor I/O Gewoon reageert niet op deze adressen Interfaces reageren op hun adresbereik Vb: MOVE R1, 0x40000010 of MOVE 0x40000010, R1 Nadeel: gat in adresruimte Vb: IBM-PC tussen 640KB en 1MB N.B soms combinatie van INP/OUT instructie en memory-mapped I/O R/W = 1 als van CPU bus R/W = 0 als van bus CPU Interface zet op de bus als R/W = 0 adres == (bijv.) 2 30 + 16 Interface haalt van de bus als R/W = 1 adres == 2 30 + 16 R/W adres CSN-CS2 14 CSN-CS2 15 DMA 1 DMA 2 Zowel I/O instructies als memory-mapped I/O verplaatsen kleine hoeveelheden CPU is intensief bezig met I/O Voor sommige toepassingen kost dit teveel CPU tijd Vooral bij real-time werk vgl het afspelen van een geluids- of videobestand DMA (Direct Memory Access) verplaatst blokken tussen en I.h.a. moet de eigen hebben BUS DMA controller DMA controller is ook een De CPU geeft DMA controler opdracht, adres, I/O adres DMA controller doet I/O na CPU heeft tijdens DMA alle tijd voor andere instructies Geheugen wordt af en toe vertraagd wegens DMA (cycle stealing) oppassen met DMA en cache. CSN-CS2 16 CSN-CS2 17 slides2.pdf April 12, 2002 3

Polling Polling vs. Interrupt Hoe weten we dat een I/O kan accepteren? (Bijv dat er een input klaar staat of dat de output kan verwerken) Simpel systeem: polling vb: toetsenbord : Als er een toets ingedrukt is wordt de code in het KB DATA register gezet De zet een bit (KB READY) aan in het status register KB STATUS Als het KB DATA register gelezen is wordt de KB READY bit weer uitgezet. while (KB_STATUS & KB_READY == 0) /* wait */ ; = KB_DATA; Nadelen van Polling: verspilling van tijd. Als je meer dan één in de gaten moet houden dan wordt het lastig Bij snelle apparaten kun je gemakkelijk iets missen als je ook iets anders wilt doen Interrupts: Laat de aangeven wanneer het nodig is. CSN-CS2 18 CSN-CS2 19 Interrupt Interrupt architectuur 1 Interface geeft een signaal aan de CPU dat er iets interessants gebeurd is De CPU onderbreekt het lopende programma om een ander stuk programma te gaan uitvoeren (Interrupt-routine) Dit vindt uit wat er aan de hand is en neemt actie Na afloop gaat de CPU verder met het onderbroken programma (meestal) programma interrupt signaal Bij het uitvoeren van een interrupt moet essentiele informatie betreffende het onderbroken programma gered (opgeborgen) worden: In ieder geval de PC (program counter) en het PSW (Processor Status Word) PSW = register, verzameling bits die toestand van de CPU aangeeft. Andere registers kunnen gered worden in de interrupt routine Bij terugkeer (RTI) moet alles weer teruggezet worden. Hiervoor wordt een stack gebruikt, meestal een aparte stack De Stackpointer moet evt. ook gered worden (oef!) return-int. int.routine CSN-CS2 20 driver CSN-CS2 21 Interrupt architectuur 2 Traps Verschillende interrupts kunnen verschillende prioriteit hebben: hogere prioriteit interrupts kunnen lagere onderbreken, omgekeerd niet In het PSW staat de huidige prioriteit (moet ook gered worden!) Om te weten welke aandacht vraagt is het goed om elke interrupt een eigen interrupt routine te geven. Dit kan door elke interrupt een nummer te geven en de adressen in een tabel te zetten (vectored interrupt) Evt. kan het nummer in een speciaal register gezet worden en via software de juiste interrupt routine aangeroepen worden (switch) Traps zijn interrupts die niet door een gegenereerd worden maar door de CPU zelf. Meestal gerelateerd aan het uitvoeren van een specifieke instructie vb. door 0 delen gebruik een adres dat niet bestaat Instructies die niet bestaan vb. float berekeningen in simpele CPU. een speciale TRAP instructie Sommige trap instructies worden voor debuggen gebruikt: trapt bij iedere of sommige (gebruikers) instructie(s) CSN-CS2 22 CSN-CS2 23 slides2.pdf April 12, 2002 4

programma 1 programma 2 Protectie Protectie: modes We willen het O.S. beschermen tegen foute of kwaadwillende programma s (programmeurs). 1. Gewone programma s mogen niet het van andere programma s manipuleren 2. Gewone programma s mogen niet het van het O.S. veranderen 3. Het O.S. mag wel aan andere programma s komen 4. Gewone programma s mogen niet speciale registers veranderen 5. Gewone programma s mogen niet rechtstreeks aan s komen zonder toestemming van het O.S. 1. User/system mode 2. Geheugenbeheer User mode = uitvoeren van gewone programma s Gevaarlijke operaties (o.a. I/O) niet toegestaan System mode = uitvoering O.S. onderdelen Alle operaties toegestaan Soms nog fijnere verdeling zodat ook binnen het O.S. onderscheid gemaakt kan worden Bij een interrupt/trap overgang naar system mode Aanroep van het O.S. dan ook via een TRAP mechanisme of speciale controle De mode staat in het PSW CSN-CS2 24 CSN-CS2 25 Adresruimte Memory management 1 Adresruimte van een programma = de verzameling van alle adressen die een programma zou kunnen gebruiken uit te voeren instructies adressen van structuren en variabelen stack heap ( = die langer bestaat dan de functie-aanroep waar hij gemaakt is) Op een 32-bits machine kan dat in principe 2 32 bytes (4GB) zijn In principe kan het meer zijn dan het aanwezige echte (fysieke) Memory management: de adressen die in een programma gebruikt worden (virtuele adressen) hoeven niet hetzelfde te zijn als de echte adressen die in het fysieke gebruikt worden (fysieke adressen). Eenvoudige ontkoppeling: Het begin van een programma krijgt adres 0 Het fysieke adres waar het programma staat (BASE) wordt bij elk adres opgeteld Dit gebeurt door de CPU (voor het adres de bus op gaat) Het programma heeft dit niet in de gaten 0 fysieke adressen BASE x+base programma LIMIT max virtuele adressen 0 x limit CSN-CS2 26 CSN-CS2 27 Memory management 2 Segmentering Voordelen: Je kunt het programma op ieder adres in het fysieke draaien Door ook de lengte op te nemen kan de rest van het beschermd worden (de CPU test virtuele adressen 0 <= x < limit) Nadelen: grootte beperkt door fysiek Onmogelijk om te sharen (eenzelfde stuk in twee programma s te gebruiken) Oplossingen: Segmentatie (segmentering) Paginering instructies fysiek instructies CSN-CS2 28 CSN-CS2 29 slides2.pdf April 12, 2002 5

Eigenschappen van segmenten: Segmenten kunnen geshared worden Elk programma kan aparte permissies hebben per segment vb. Read, Write, Execute Segmenten kunnen vast, of groeiend zijn. Elk segment moet in het fysieke passen Stack/heap segmenten instructies heap stack segment 0 segment 1 segment 2 segment BASE LIMIT protect. etc. BASE LIMIT protect. etc. + fysiek adres Stack segment groeit naar beneden Heap segment groeit naar boven Code segment is vast en kan geshared worden Nog meer segmenten mogelijk voor shared of libraries CSN-CS2 30 CSN-CS2 31 Paginering 1 Paginering 2 A CSN-CS2 32 fysiek B De virtuele adresruimte en het fysieke worden opgedeeld in pagina s van vaste grootte Elke virtuele pagina kan in een willekeurige fysieke pagina staan De afbeelding van virtuele naar fysieke paginanummers gaat via een tabel (pagetable). Pagina s kunnen eigen protecties hebben Pagina s kunnen geshared worden Een pagina hoeft niet in het fysieke aanwezig te zijn In dat geval gebeurt er een trap (page fault) Niet aanwezige pagina s kunnen bijv. op de harde schijf opgeslagen worden (demand paging), of in het netwerk. Page tables kunnen erg groot worden, dan opsplitsen via indirectie CSN-CS2 33 Paginering 3 Paginering 4 adres 16 32 0 page nr selector adres segment descriptor + page nr = index descriptor table lineair adres directory page fysieke pagina page table fysiek adres page directory page table fysiek pagina nr fysiek adres fysiek Simpele page table directory entry page table entry CSN-CS2 34 segment register CSN-CS2 35 Complexe page table (80386 Pentium) slides2.pdf April 12, 2002 6

Meer fysiek dan Wat doen we als het fysieke groter is dan de virtuele adresruimte? Oorspronkelijk MS-DOS/Intel 8086 16 bits machine, 1MB fysiek andere vorm van segmentering: Met 16-bits adressen 65536 bytes tegelijk te adresseren (segment) segmentregister geeft aan welk deel van fysieke adresruimte dit segment staat. In Windows 95/96/NT, Linux e.d. niet nodig In Windows 2000, meest uitgebreide versie: Met 32-bits adressen 4GB nodig Behoefte aan meer fysiek (grote servers) Memory management van 80386 Pentium heeft segmentregisters Virtueel is venster in het fysieke Venster hoeft niet aaneengesloten in fysieke te liggen (paginering). CSN-CS2 36 slides2.pdf April 12, 2002 7