Typisk PC arkitektur. Synkronisering ved aktiv venten

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

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

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

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

Datamaters arkitektur og programmering

Algorithms & Architectures II

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

System Arkitektur og Integration

Interconnect. Front end interface

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

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

M A D S L A R S E N, A S G E R B A L L E G A A R D & J O N A S K R O N B O R G R O S K I L D E T E K N I S K E G Y M N A S I U M.

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

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

Input/Output: Disk & Clock. dopsys

Projekt - RoboNet Del Journal.

Principper for Samtidighed og Styresystemer

Computerens Anatomi. Af Martin Arnetoft

\ \ Computerens Anatomi / /

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

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

Multi System Printer Server

Arduino Programmering

BILAG. til. Kommissionens delegerede forordning

Westermo GDW-11 GSM Modem forbindelse til CXxxxx

3. Computerens opbygning.

MCE9637 DeviceNet Modul

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

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

Microcontroller, Arduino

MCE2040 SERIEL KOMMUNIKATIONSMODUL

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1

Styresystemer og tjenester

Standardserverkonfiguration i Statens It s standarddriftsplatform. Aftalekompleksets bilag 11 Statens It s standarddriftsplatform Underbilag B

Routing tables Processer Tråde Hukommelse. Operativsystemer og netværk Lektion 5. I/O Linux Debian Webserver

Processer og tråde. dopsys 1

BRUGERVEJLEDNING FLTA

Sider og segmenter. dopsys 1

Koordinering. dopsys

Styresystemer og tjenester

IAI Quick Start Guide

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

RAM. Motherboard. Cd-rom Drev:

Cluster Computing. Eksamensopgave

Grundlæggende hardware- & netværkskendskab


SIP. Session Initiation Protocol TDC IP telefoni Scale. SIP design mål

Fang Prikkerne. Introduktion. Scratch

Jobliste overblik

AstroComp en idé Version 0.2 (foreløbig)

Computer netværk og TCP/IP protokoller. dcomnet 1

Bundkort Beskrivelse

Brugermanual. 2GB MP3 afspiller

Hermed følger til delegationerne dokument - C(2016) 5707 final - Bilag 1 del 6/11.

VoIP. Voice over IP & IP-Telefoni. Lars Christensen & René Truelsen, Dec. 2004

Implementation af Koordinering. dopsys 1

Sider og segmenter. dopsys 1

1 Operativsystemer oversigt

Datalogi 1F rapportopgave K2: Implementering af en datanet protokolstak

Her kan du læse om OSI modellen, og de 7 forskellige lag. Der er en mindre detaljeret beskrivelse udfra hvert lag.

Robonet Profibus Generel opsætning

Tech College Aalborg. HomePort. Projekt Smart Zenior Home

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Vejledning i opsætning af MQ

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

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Udviklingen fra 1945 til 2011

BAS 920. Datablad. BA Systems Petershvilevej 1 DK-3200 Helsinge

Quick Setup Guide SB168-ES og M7CL Dansk version

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

Kravspecifikation For. Gruppen

Bilag 1a. Produktspecifikation for Adgang BSA Kabel-tv net

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

EasyRun En løbers bedste ven

Network. Netværks design. Region Syd Grundlæggende netværk

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

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

SD2DUG24. Dupline bus masterkanalgenerator. Fordele. Beskrivelse

LAB ØVELSE KONFIGURATION AF DHCP PÅ DANSK AF KIM DONNERBORG / RTS

Lidt orientering om, hvad en computer består af

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation)

Betjeningsvejledning. SMS modul

Vidicode præsentation. Aldrig har kommunikation været så let, enkelt og effektivt.

SSI GSM PORT kontrol brugervejledning. SSI GSM PORT brugervejledning V1.2

QUICKVEJLEDNING til Piccolo Light

Operativsystemer - dopsys

Infrastruktur i hjemmet og begreber

Seriel kommunikation

Computer netværk og TCP/IP protokoller. dcomnet 1

Cloud Failover Appliance

Nøglehåndtering. Sikkerhed04, Aften

Common Language Runtime. Multithreading

MCE2035 PROFIBUS-DP MODUL

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

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

Computerens Anatomi. Kom/IT C - Computer Anatomi - Daniel og Fie - 3/ Planlægning af kommunikationsvalg og medieprodukt.

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

SW6 SAI. Services 1: (Fil) service admin torsdag 7/4 05

Microcontroller, Arduino

Transkript:

Oversigt I/O arkitektur Kommunikation mellem processor og ydre enhed Brugerprocessers adgang til I/O Strukturen af kernens I/O del Ydelse Typisk C arkitektur Kontrol af ydre enheder De ydre enheder styres af styreenheder (eng.: controllers) Styreenhederne udfører kontrolprogram specifikt for en type af ydre enheder CU og styreenhed udveksler data som led i kontrol af de ydre enheder Kommunikationen mellem CU og ydre enheder foregår via kontrolregistre placeret på styreenheden for den ydre enhed Synkronisering mellem styreenhed og CU Hvordan opdager CU ændringer i kontrolregistre: Aktiv venten (eng.: polling): En venteløkke, hvor CU hele tiden læser indhold af kontrolregister Afbrydelser: Styreenhed signalerer til CU at der er sket ændringer i kontrolregistre Synkronisering ved aktiv venten Synkronisering sker via to bit: ready og start busy - ændres af styreenhed og læses af CU 1 betyder at styreenheden ikke er klar til at modtage nye ordre 0 betyder at den er klar command-ready - ændres af CU og læses af styreenhed: signal fra CU om at styreenhed kan påbegynde en operation Når start sættes, sættes busy til 1 (styreenhed kan ikke modtage en ny ordre) Udskrivning af tegn på seriel linie Styreenhed er en UART = Universal Asynchronous Receiver-Transmitter Kontrolregistre: THR (Transmit Holding data Register): Fungerer som command-ready men samtidig som data register: Skrivning igangsætter transmission (latch register) LSR (Line Status control Register) Bit 5 svarer til busy fra før

Kontrolregistre på UART UART en tæt på RESET: LSR<5:5> = 0 repeat repeat until <store til THR> LSR<5:5> = 1 udsend THR bit for bit LSR<5:5> = 0 forever rogramstump for aktiv venten CU 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 opsætning for(char* p = line; *p; p++) { // indtil \0 while ((rdio(com1lsr) & 0x20) == 1) // venteløkke /* tom */; // gennemløbes 107000 gange/tegn wrio(com1thr, *p); // skriv næste tegn til UART } } 8 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 tegn på seriel linie Eller via alm. instruktioner gennem specielt lagerområde (lagerafbildet I/O): store r1, 0x4000003F8 Adgang til kontrolregistre/ydre enheder begrænses vha. processorens sikkerhedsniveauer Afbrydelser Afbrydelse af CU signaleres af ydre enhed Afbrydelseshåndteringsroutine aktiveres En afbrydelsesvektor bruges til at finde tilhørende behandlingsroutine: ved flere afbrydelser (indlejrede) bruges prioriteter til at afgøre hvilken afbrydelse behandles først CU kan lukke for nogle eller alle afbrydelser (undtagen unmaskable) Der findes også software genererede afbrydelser Afbrydelsesstyret I/O

Afbrydelser i to trin Selve afbrydelseshåndteringsroutinen foretager kun det allervigtigste: kvitterer for afbrydelse læser statusregister for at se hvilken hændelse der er tale om skedulerer en tråd til at håndtere resten Hjælpetråden laver det grove: kopiering af data Dermed blokeres der ikke længe for andre afbrydelser Intel entium rocessor Interrupt Vektor Softwaregenereret afbrydelser: brugerprogram aktiverer operativsystem Brugerprogrammer aktiverer funktioner i operativsystemet via systemkald Systemkald foretages vha. en softwaregenereret afbrydelse (trap): Systemkald og parametre specificeres via registre og stakoverførsel Operativsystemet bruger en systemskaldstabel til at finde den rigtige operativsystemroutine Brugerprogrammer kan også forårsage afbrydelser (exceptions) pga. ulovlige handlinger, f.eks. division med nul. Exceptions håndteres også af operativsystemet DMA overførsel Direkte Lager tilgang (Direct Memory Access) Automatisering af dataoverførsel mellem ydre enheder og hovedlager Reducerer CU belastning Opsætning af DMA overførsel er dyrt : kræver typisk programmering af ydre enhed over I/O bus kan tage op til 20 microsekunder (> 72000 instruktioner ideelt set!!) DMA overførsel: trin for trin

Adgang til I/O I/O strukturen i en kerne Forskellige slags ydre enheder De enkelte ydre enheders særheder gemmes bag et ensartet AI: read/write Kernen har typisk en grænseflade per slags ydre enhed: disk netværk mus Blokerende I/O eller ej? Blokerende I/O: et systemkald returnerer først når I/O operationen er udført nemt at med for applikation Ikke-blokerende I/O: et systemkald returnerer med det samme I/O operationen har udført så meget den kan uden at vente applikationen skal holde styr på hvor langt den er nået Asynkron I/O: kernen påbegynder operationen men returnerer med det samme Applikationen opdager at operationen er færdig ved polling, ti eller signal Bufring Buffere bruges til midlertidigt at opbevaring af data mellem enheder af forskellig hastighed: en buffer på serielkortet skrives langsomt ud på den serielle linie eller fyldes langsomt op med indkommende data Når en modtagebuffer er fuld, kan hele dataelementet overføres til en anden enhed Når en sendebuffer er tom, kan en ny hentes Da der går noget tid fra en buffer når sin sluttilstand til en anden enhed behandler bufferen bruges ofte dobbeltbufre: en buffer bruges af den ene enhed mens den anden buffer bruges af den anden ydre enhed Caching En cache er en kopi af data i lager, der er hurtigere end datas rigtige medie En af de vigtigste kilder til god ydelse Læsecache: en indlæst kopi gemmes nyttigt ved temporal lokalitet læs forud (prefetching) forudsig datatilgang Caching af skrivninger: write-through: en ny kopi af data gemmes i hurtigt lager men gemmes også i langsommere medie forsinket skrivning: en kopi gemmes med henblik på at opsamle en større mængde data, der kan skrives samtidig nyttig ved spatial lokalitet

Behandling af I/O forespørgsel STREAMS En tovejs datastrøm mellem brugerniveau proces og en ydre enhed En STREAM har: et hoved, der bruges af brugerprocessen en hale, der snakker med drivprogrammet for den ydre enhed et antal moduler ind imellem Hvert modul har to køer: en læsekø og en skrivekø Beskedudveksling bruges til at kommunikere mellem køer STREAMS opbygning Ydelsen af I/O I/O er en vigtig komponent i et systems ydelse: styreprogrammer bruger CU tid: win-modems og windows printere forsimpler hardware på bekostning af CU tid afbrydelseshåndtering giver kontekstskift eller tømmer pipeline datakopiering bruger hukommelsesbåndbredde og evt. CU tid Forbedring af ydeevne Mindsk datakopiering: smarte OS strukturer til at manipulere buffere copy on write Færre afbrydelser: større bufre på ydre enheder high water mark afbrydelse mere intelligente ydre enheder: RAID færre operationer udføres af processor netkort I defragmentering, TC checksum Færre kontekstskift DMA InfiniBand InfiniBand betragter I/O som netværkskommunikation: erstatter busser med punkt til punkt forbindelser forbundet via switches kommunikation foregår via beskedudveksling Målet er at erstatte CI og Ethernet :-) InfiniBand bliver støttet af næsten alt hvad der kan gå eller kravle (på papiret) De første produkter har været på markedet et stykke tid Se på mere end bare processorens klokfrekvens

InfiniBand Netværkseksempel Kommunikationsmodel: køer Work Request rocessering TCA TCA Mem HCA IB Switch Server med lokale diske HCA: host channel adapter TCA: target channel adapter IB Sw IB Sw IB Sw Mem M med lokale diske farm Mem Hver CA har et (fast) antal porte (svarer til fysiske forbindelser) Kommunikation sker mellem køpar: en sendekø og en modtagekø forbindelsesorienteret kommunikation opretter forbindelser mellem to køpar Q Q send modtag Q Q AI Værtens hukommelse Arbejdskø (send eller modtag) Færdigkø HCA