Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer



Relaterede dokumenter
Systemarkitektur. Planen for idag. Kontrol af ydre enheder. Synkronisering ved aktiv venten. Synkronisering mellem styreenhed og CPU

Typisk PC arkitektur. Synkronisering ved aktiv venten

Kerner med afbrydelser. Planen for i dag. Kerne med afbrydelser. Tætkoblede drivprogrammer. Uheldig rækkefølge. Synkronisering med ydre enheder

Interconnect. Front end interface

System Arkitektur og Integration

Datamaters arkitektur og programmering

Planen for idag. Opdatering af delt lager

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

// Definition af porte og funktioner

Processer og tråde. dopsys 1

uprocessorens hardware

Intro til AVR. Mads Pedersen, OZ6HR

Planen for idag. Datalogi 1F Forår Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Niveauer af abstrakte maskiner

Planen for idag. Datalogi 1F Forår 2003 Multiprogrammering[3] Brugerprogrammerne. Processkift. Processer i akerne. Kerne med decentralt processkift

Planen for i dag. Logiske og fysiske adresser. Systemarkitektur. Binding af programkode til lager. Hardware understøttelse af lageradministration

Sider og segmenter. dopsys 1

Niveauer af abstrakte maskiner

Sider og segmenter. dopsys 1

Principper for Samtidighed og Styresystemer

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

3. Computerens opbygning.

Niveauer af abstrakte maskiner

Projekt - RoboNet Del Journal.

Design Systemkald. User-mode Linux, The Linux kernel/

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Operativsystemer - dopsys

Algorithms & Architectures II

Lageradministration Paging og segmentering

Lageradministration. dopsys

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Kernealphaerne Indhold af G1

Søren Guldbrand Pedersen Diverse noter til PC & Net Side 2 af 8. TYPE - viser fil eller program på skærmen.

Styresystemer og tjenester

Computerens Anatomi. Af Martin Arnetoft

Input/Output: Disk & Clock. dopsys

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Allan Nelsson - OZ5XN. Licenced since 1970

up/ansi Eksamensspørgsmål

Internt interrupt - Arduino

Eksempel: Skat i år 2000

Arduino Programmering

BRUGERVEJLEDNING FLTA

Computerens anatomi. - En gennemgang af delene i en computer. Opgave skrevet af Maila, Patrick, Bjarke og Simon. Klasse 1.

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Datalogi 1F. K1: Implementering af multiprogrammeringskerne med prioriteret skedulering. af Nikolaj Lundsgaard, Martin Schultz & Jesper Thøfner

I3PRG3+I3DTM3+I3ISY1-3. semester

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Filnavn: main.c

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Planen for idag. Indhold af G1. Kernealphaerne. Alpha erne. Datalogi 1F Forår 2003

Microcontroller, Arduino

Koordinering. dopsys

Motherboard. Chip-set (nord- og syd-bro)

Systemkald i Unix/Linux

Lageradministration Intel Pentium og Unix/Linux

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

AgroSoft A/S AgroSync

Microcontroller, Arduino

Erklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).

Betjeningsvejledning. til. Vandudvejning. system

Styresystemer og tjenester

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

ECE 551: Digital System * Design & Synthesis Lecture Set 5

Ethernet teknologi. - hvordan fungerer det? Netteknik 1

Synkronisering af sekventielle processer

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

2. De 7 signaler skal kodes til en 3-bit kode. Enkodningen skal prioriteres som beskrevet i afsnit?? på side??.

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni % 2 10 % 3 25 % 4 10 % 5 30 %

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Egenskaber for ROM/RAM

Introduktion...3 Input Status Register...4 Coil Status Register...5 Input Register...6 Holding Register...14

It og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse

Til dig som vil have et indblik i computeren

1 Operativsystemer oversigt

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

Til dig som vil have et indblik i computeren

5. systemet skal indeholde 2 stk 1 Mbit(8 bit ROM implementeret som flash memory.

Programmering i C. Lektion december 2008

Processoren: Fler-cyklus implementation

Seriel kommunikation RS232 / RS485

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

Når du køber hukommelse til printeren, skal du sikre dig, at SDRAM DIMMhukommelseskortet

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

\ \ Computerens Anatomi / /

Transkript:

: Ydre enheder og multiprogrammer Forår 2003 Jørgen Sværke Hansen Planen for idag Samspil mellem CPU og ydre enheder: Generelt Kontrolregistre Afbrydelser Specifikt for Alpha AXP (kernemaskinerne) Multiprogrammering: Eksplicit I/O Implicit I/O 2 CPU cache lager Systemarkitektur disk I/O bro hukommelsesbus netkort I/O bus skærm Kontrol af ydre enheder De ydre enheder styres af styreenheder (eng.: controllers) Styreenhederne er kontrolprogram specifikt for en type af ydre enheder CPU og styreenhed udveksler data som led i kontrol af de ydre enheder Kommunikationen mellem CPU og ydre enheder foregår via kontrolregistre placeret på styreenheden for den ydre enhed 3 4 Synkronisering mellem styreenhed og CPU Hvordan opdager CPU ændringer i kontrolregistre: Aktiv venten (eng.: polling): En venteløkke, hvor CPU hele tiden er indhold af kontrolregister Afbrydelser: Styreenhed signalerer til CPU at der er sket ændringer i kontrolregistre Synkronisering ved aktiv venten Synkronisering sker via to bit: ready og start ready - ændres af styreenhed og es af CPU 0 betyder at styreenheden ikke er klar til at modtage nye ordre 1 betyder at den er klar start - ændres af CPU og es af styreenhed: signal fra CPU om at styreenhed kan påbegynde en operation Når start sættes, sættes ready til 0 (styreenhed kan ikke modtage en ny ordre) 5 6 1

Udskrivning af på seriel Kontrolregistre på UART Styreenhed er en UART = Universal Asynchronous Receiver-Transmitter Kontrolregistre: THR (Transmit Holding data Register): Fungerer som start men samtidig som data register: Skrivning igangsætter transmission (latch register) LSR (Line Status control Register) Bit 5 svarer til ready fra før Transmit Holding Data Register ST-ordrer Udes bit for bit Centralenhed (CPU) Fælles registre Styreenhed (UART) LD-ordrer Sættes når enheden er klar Line Status Control Register 7 8 Data bus drivers and registers Handshaking logic UART en tæt på Serial communications interface Interrupt request Read Write Status register Control register Data in buffer register RESET: LSR<5:5> = 1 repeat repeat until <store til THR> LSR<5:5> = 0 udsend THR bit for bit LSR<5:5> = 1 forever Data in shift register Serial input Programstump for aktiv venten CPU siden main() { wrio(com1lcr, 0x87); // choose divisor latch wrio(com1dlm, 0x00); // set 9600 bps (MSB) wrio(com1dll, 0x0C); // set 9600 bps (LSB) wrio(com1lcr, 0x07); // set 8 bit, 2 stop bit wrio(com1mcr, 0x0F); // set DTR and RTS for(char* p = line; *p; p++) { // indtil \0 Address decoder Address (from bus) Chip Select Data out buffer register Clock Data out shift register Serial output 9 while ((rdio(com1lsr) & 0x20) == 0) // venteløkke /* tom */; // gennemløbes 107000 gange/ wrio(com1thr, *p); // skriv næste til UART 10 Adgang til kontrolregistre Kontrolregistre har en I/O adresse: COM1 starter ved I/O adresse 0x3F8 Tilgås enten via specielle I/O instruktioner: wrio r1, 0x3F8 # skriver på seriel Eller via alm. instruktioner gennem specielt lagerområde (lagerafbildet I/O): stl r1, 0x8580007FA0 # Alpha AXP Inden vi går videre Nu bliver det hele lidt mere kernemaskine specifikt vi skal have lidt AlphaPC164SX information (KB5 Kapitel 2): PAL I/O busser I/O lagerområder Afbrydelser Vigtigste ydre enheder Systemkald 11 12 2

PAL PAL = Priviliged Architecture Library Erstatning for nye instruktioner kodet i mikrokode Bruges også til systemkald Eksempler: PAL_halt varmstart af maskinen PAL_wrent skriv indhopsværdi PAL_callsys systemkald PAL_rti retur fra afbrydelse I/O busser i Alpha AXP ISA (Industry Standard Architecture): 8 MHz, 16 bit bus, 2 klokcykler per overførsel: max. 8,33 MB/s Udvidelse EISA: 32-bit bus Max. 33 MB/s PCI (Peripheral Component Interconnection): I dag den mest almindelige 33 MHz, 32-bit bredde = max. 132 MB/s Findes også i 66 MHz og 64 bit udgaver samt PCI-X (533 MHz og 64 bit) 13 14 I/O lagerområder CPU adresserer: Fysisk lager (typisk op til 1 GB) Ydre enheder (typisk PCI, men også ISA) Interne registre: Konfigurering af Alpha ernes PAL-kode Adresserum: 32 bit på Intel PC: (kan udvides til 36-bit) 64 bit på Alpha = 40 bit = rigeligt med plads Adgang til ISA registre PC Registrene ligger i de lavere fysiske adresser: kunne adresseres per byte Alpha164SX: Et register per 32 byte Start på adresse: 0x85.8000.0000 Makroer: wrio() og rdio() Eksempel: COM1 (0x3F8) får adressen: 0x85.8000.0000 + 0x3F8*0x20 = 0x85.8000.7FA0 15 16 Udsnit af lagerorganisering på Alphamaskinerne 0x0000.0000 0x0010.0000 0x0020.0000 0x0030.0000 0x80.0000.0000 0x85.8000.0000 0x85.FFFF.FFFF 1 MB 1 MB 1 MB 29 MB PAL-kode + opstartskode Symbolsk debugger Dataområde til debugger og kernestak Frit lager PCI sparse memory: Delt lager mellem CPU og ydre enheder PCI sparse I/O: kontrolregistre 17 CPU cache lager Systemarkitektur afbrydelse disk I/O bro hukommelsesbus netkort I/O bus skærm 18 3

Afbrydelser på Alpha erne 33 afbrydelser i alt: 16 for ISA 17 for PCI Eksempler på ISA afbrydelser: 0 Timer 6 Diskette 1 Tastatur 7 Parallelport 3 COM2 12 Mus 4 COM1 14/15 Harddisk/CDROM Hvornår afbrydes? En afbrydelse kan blive genereret af en ydre enhed på et vilkårligt tidspunkt MEN: Forskellige ydre enheder kan have forskellige tolerancetærskler med hensyn til hvor hurtigt en afbrydelse skal serviceres CPU en kan have opgaver, der ikke må afbrydes 19 20 Niveauer for afbrydelser 0 normal tilstand 3 Ydre enheder, lav prioritet 4 Ydre enheder, høj prioritet 5 ur 6 strømafbrydelse 7 Maskincheck (bruges ikke) Styres af OS med PAL_swpipl men også automatisk ved afbrydelser Tillad/bloker for afbrydelser Den enkelte ydre enhed kan sættes op til at afbryde eller ej Ydre enheder bliver ved med at afbryde indtil der kvitteres for afbrydelsen Når en afbrydelse modtages på niveau i sættes niveauet til i og sættes først ned når afbrydelsen er behandlet Afbrydelse tillades KUN hvis ydre enhed har højere niveau end det aktuelle CPU kan blokere for afbrydelser: PAL_swpipl(7) 21 22 Installation af afbrydelsesroutine PAL kaldet PAL_wrint a0 er adressen for routinen a1 er typen: 0 ekstern afbrydelse 1 aritmetisk fejl 3 ugyldig ordre 5 systemkald Eksempel: lda a0, ADDR lda a1, 0 call_pal PAL_wrent PAL håndtering af afbrydelse 1. Ved en afbrydelse hoppes til PAL koden på adresse 0x100 2. PAL koden undersøger om afbrydelsen har et tilstrækkeligt højt afbrydelsesniveau: 1. Hvis ikke, returneres uden videre 2. Ellers skiftes til kernetilstand (hvis nødvendigt), og de registre, som afbrydelseshåndteringen påvirker, gemmes på stakken 23 24 4

Stakramme for afbrydelser register a2 register a1 register a0 global pointer gp programtæller pc statusregister ps Start af afbrydelsen ps registeret indeholder kernetilstanden Bit 3 indikerer kernetilstand Bit 0-2 indikerer afbrydelsesniveau gp indeholder kernens global pointer a2 indeholder afbrydelsestypen 1 periodisk 3 ekstern afbrydelse 25 26 Afslutning af afbrydelsen Kvitter for afbrydelsen i den ydre enhed: Skrivning til kontrolregister Gælder ikke for uret (sker automatisk) Udfør kaldet: call_pal PAL_rti 27 Tegnudskrivning via afbrydelser main() { forbid(); wrio(com1lcr, 0x87); wrio(com1ier, 0x02); // luk for afbrydelser // divisor latch // som forrige eksempel // set TX empty enable wrent(ent_int, o); // set interrupt entry point p = line, finished = 0; permit(); // åbn for afbrydelser char c=*p++; wrio(com1thr, c); // skriv 1. while (!finished) ; // vent på at vi er færdige wrio(com1ier, 0x00); // luk for afbrydelser fra // UART 28 Afbrydelsesroutinen Vigtigste ydre enheder extern C void KInterruptHandler () { if ((rdio(com1iir) & 6) == 2) { // kvittering if(!finished) wrio(com1thr, *p++); // skriv // if(!*p) finished = 1; PC16550 UART (har vi set) Olicom OC-2173 ISA 10 Mbit/s Ethernetkort Dallas Semiconductor 1287 TOY/RTC (Time Of Year/Real Time Clock) Holder styr på klokkeslættet Genererer automatiske afbrydelser 29 30 5

Systemkald Multiprogrammering PAL kaldet callsys Kan kun bruges fra brugertilstand, ikke kernetilstand (omvendt privilegeret) Opbygger en stak ramme magen til en afbrydelse Eksplicit ressourcedeling Overlappende ning Implicit ressourcedeling 31 32 Eksplicit ressourcedeling Transaktionssystem: baseret indning while(true) { < () fra terminal 1>; < () fra terminal 2>; < () fra terminal 3>; Terminal 1 Terminal 2 Terminal 3 Pladelager 33 34 Overlappende ning while(true) { if (<terminal 1 klar>) { < næste >; if (<sidste i >) if (<terminal 2 klar>) { < næste >; if (<sidste i >) if (<terminal 3 klar>) { < næste >; if (<sidste i >) 35 Overlappende ning (2) Terminal 1 Terminal 2 Terminal 3 Pladelager 36 6

Overlap ning med besvarelse while(true) { if (ind_1 && <terminal 1 klar>) { < næste >; if (<sidste i >) _1 = TRUE, ind_1 = FALSE; if (_1 && <pladelager klar>) { < næste blok fra pladelager>; if (<post fundet> <sidste blok t>) udskriv_1 = TRUE, _1 = FALSE; if (udskriv_1 && <terminal 1 klar>) { <skriv næste >; if (<sidste i svar>) ind_1 = TRUE, udskriv_1 = FALSE; // det samme for terminal 2 og 3 37 Implicit ressourcedeling Vi vil have multiprogrammer: proces 1 { while (TRUE) { < fra terminal 1>; < er>; proces 2 { while (TRUE) { < fra terminal 2>; < er>; proces 3 { while (TRUE) { < fra terminal 3>; < er>; 38 Proces 1 Proces 2 Proces 3 Multiprogrammeret ssystem CPU klar t CPU klar t CPU klar t Blokerende systemkald sætter proces til at vente, f.eks., fgetc(stdout). Opsummering Ydre enheder: Synkronisering aktiv venten Afbrydelser Hvordan sker det hele på Alpha erne? Multiprogrammering: Eksplicit versus implicit ressourcedeling 39 40 Kilder Disse slides er baseret på KB4: Kapitel 1-3, KB5: Kapitel 2, samt slides fra tidligere foreere på Dat 1F 41 7