Fö 3: In/Ut matning och kopplingsstruktur In- och Utenheter In- och Utenheter. Styrning. I/O-kanalenheter Kopplingsstruktur. Buss. Två huvudsakliga typer av I/O enheter: - Interaktiva. Exempelvis en terminal. - Indirekta. Exempelvis en skrivare. Sekundärminne kan ses som en I/O enhet. Typeset by FoilTEX 1 Typeset by FoilTEX 2 Egenskaper I/O-enheter är långsamma. Speciella tekniker krävs för att undvika att CPUn får vänta. Några exempel Tangentbord, bildskärm, mus, joystick, ljuspenna, scanner, mikrofon, skrivare, plotter. I/O-enheter kan användas som gränssnitt mot andra system; ofta A/D och D/A omvandling. Typeset by FoilTEX 3 Typeset by FoilTEX 4
Typiska överförningshastigheter I/O modul En I/O-modul ansvarar för att kontrollera en eller flera yttre enheter. Typeset by FoilTEX 5 Typeset by FoilTEX 6 I/O modulens funktioner Kommunikation med CPU och I/O enhet. Bufferthantering och Felhantering. Kontroll av I/O-enheter Programstyrning: In- och utmatning kontrolleras av I/O instruktioner; dvs READ och WRITE. Instruktionerna specificierar: - Vilken I/O operation som skall utföras. - Vilken enhet som skall användas (adress). CPUn väntar tills I/O operationen utförts. Väldigt inneffektivt eftersom I/O enheter är långsamma. Typeset by FoilTEX 7 Typeset by FoilTEX 8
Programmerad I/O Kontroll av I/O-enheter Avbrottslystyrning CPUn initierar I/O enheten med en signal och fortsätter sedan. När I/O enheten är klar eller behöver nya instruktioner skickas en avbrotts signal till CPUn. CPUn avslutar pågående instruktion och hoppar sedan till Avbrottshanteringsrutinen. CPUn slipper kontrollera när I/O operationer är färdiga. Typeset by FoilTEX 9 Typeset by FoilTEX 10 Avbrottshanteringsrutin Instruktionscykel och avbrott Spara all statusinformation som behövs för att kunna återta exekveringen där den avbröts. hantera avbrottet genom att exempelvis läsa ett värde från I/O enheten. Återställ status och fortsätt den avbrutna processen. Typeset by FoilTEX 11 Typeset by FoilTEX 12
Samtida avbrott Avbrott kan inträffa under avbrottshantering. Stäng av möjligheten. CPUn avvaktar med nya avbrott tills nuvarande är avslutat. Samtida avbrott Avbrott kan inträffa under avbrottshantering. Prioritetsbaserad variant: Ett avbrott av högre prioritiet kan avbryta. Typeset by FoilTEX 13 Typeset by FoilTEX 14 Kontroll av I/O-enheter Direktminnesåtkomst Hela block av data flyttas direkt till/fråm I/O enheten och till/från primär minnet. En DMA har samma dataöverföringsmöjligheter som CPU. I/O-kanal och I/O-processor I/O-kanal: - Specialprocessor som exekverar I/O instruktioner som exekverar I/O instruktioner som lagrats i primär minnet. - CPUn specificierar en sekvens. Avbryts då den är klar. I/O processor. - Processor + lokalt minne. Typeset by FoilTEX 15 Typeset by FoilTEX 16
Sammanfattning av I/O operationer Data utbyte mellan datorn och omgivningen tillhandahålls av I/O enheter. Finns många olika typer av I/O enheter, med vitt skiljda egenskaper. Finns olika tekniker för att kontrollera I/O enheter. I/O är ofta den mest opålitliga delen av ett datorsystem. Vi behöver feldetektering och felhantering. Kopplingssstruktur Samlingen sladdar som sammanbinder de olika enhetera (CPU, Minnen, I/O enheter,... ) i datorsystemet kallas Kopplingsstrukturen. Kopplingsstrukturen måste understödja - Minne till CPU: En instruktion eller ett ord - CPU till minne: Ett ord. - I/O till/från CPU: Data. - I/O till/från minne: Data. Typeset by FoilTEX 17 Typeset by FoilTEX 18 Olika typer av strukturer I/O till CPU. Allt utbyte mellan I/O och minne måste passera genom CPUn. Olika typer av strukturer I/O till Central switch.alla enheter kopplas till en central switch. I/O till Minne: Minnet erbjuder oberoende åtkomst för CPU och I/O enheter. Extra kontroll logik. I/O till Buss. Alla enheter kopplas till en Buss. Typeset by FoilTEX 19 Typeset by FoilTEX 20
Bussstruktur En buss är en samling ledningar för parallell överföring mellan en eller flera enheter. Bussstruktur Systembuss = en buss som kopplar ihop centrala komponenter (CPU, Minne, I/O). Typiskt 50 till 100 ledningar. Fördelar: Låg kostnad, flexibelt, enkelt att lägga till nya enheter. Nackdel: eventuellt en flaskhals. Kanske kan man öka bussens bredd eller avstå ifrån att lägga till alla enheter. En buss delas av samtliga komponenter. Endast en komponent i taget kan sända data. Alla komponenter kan hämta data samtidigt (broadcasting). Typeset by FoilTEX 21 Typeset by FoilTEX 22 Fel Eftersom vi har en binär värld handlar fel om bitar som byter värden. Paritetskontroll En extra bit tillförs (paritetsbit). Antalet 1:or skall alltid vara jämt. Kan uppträda hos yttre enheter, kommunikationsstrukturer, och minnen. Två typer av fel - Hårda fel: Permanent fysisk defekt. Uppstår pågrund av tillverkningsfel, påverkan från miljön, eller slitage. Mjuka fel: icke-destruktiv händelse. Exempelvis strålning som påverkar en enskiljd minnescell. Om ett ord med ett udda antal ettor hittas har ett fel upstått! Vill kunna upptäcka och åtgärda fel. Redundans. Typeset by FoilTEX 23 Typeset by FoilTEX 24
Felupptäckt och Felkorrigering Hammingkoder Kopplat till minnet: Typeset by FoilTEX 25 Typeset by FoilTEX 26 Felkorrigering, 1 bit Antal data bitar kontroll bitar redundans 4 3 75% 8 4 50% 16 5 31.25% 32 6 18.75% 64 7 10.94% 128 8 6.25% Relativt sett mindre och mindre redundans krävs för felkorrigering. Typeset by FoilTEX 27