Sběrnice a přerušení
Typy přerušení programové (výsledek vykonání instrukce) přetečení v ALU, dělení nulou … pokus vykonat nepovolenou instrukci pokus o přístup na nepovolenou adresu v paměti generované časovačem (na procesoru) pro vykonávání „cyklických“ činností OS generované I/O zařízením normální dokončení I/O operace signalizace různých typů chyb porucha HW
Průběh přerušení vznik, vyslání žádosti rozhodnutí o přijetí/nepřijetí (+maskování) identifikace zdroje určení adresy obslužného programu úschova aktuálního stavu CPU provedení obslužného programu obnova stavu CPU návrat do přerušeného programu
Přijetí přerušení programové přerušení – ihned (vždy jde o chybu, rozdělanou instrukci netřeba nebo nelze dokončit) ostatní přerušení – jen mezi instrukcemi (nutno zachovat definovaný stav CPU)
Výběr mezi žadateli o přerušení sekvenční obsluha přerušení při obsluze přerušení jsou všechna ostatní přerušení maskována (nepovolena) ̶ neumožňuje různé priority, málo pružné + jednoduchost obslužných rutin obsluha podle priorit přerušení s vyšší prioritou může přerušit provádění obsluhy přerušení s nižší prioritou ̶ složitější obslužné rutiny + je to daleko pružnější
Identifikace zdroje čistě programová s pomocí technických prostředků jediný obslužný program, zjistí si sám (pružné, ale pomalé; např. Motorola 6800) s pomocí technických prostředků žadatel poskytne vektor přerušení, podle něj se rozhodne o obslužném programu: adresa obslužného programu index do tabulky adres strojová instrukce
Sběrnice struktura propojující je to sdílená struktura procesor (CPU) paměť I/O zařízení je to sdílená struktura všechna zařízení na sběrnici mohou číst všechny signály po ní posílané každé připojené zařízení po ní může signály posílat – nutnost sběrnici přidělovat (arbitrace) jiné typy (nesdílených) propojovacích struktur se už v podstatě nepoužívají
Struktura sběrnice datové linky adresové linky řídící linky
Sběrnicové systémy Výhody: Nevýhody: přidávání dalších zařízení nízká cena lehké zvládnutí složitosti systému Nevýhody: potenciální bottleneck rychlost obvykle omezena délkou a počtem zařízení potřeba spojit různorodá zařízení
Přidělování sběrnice centrální (řízené arbitrem) distribuované náhodné dle pořadí vzniku prioritní distribuované kolizní (CSMA/CD) token bus prioritní linka (daisy chain)
Synchronní vs. asynchronní přenos vznik událostí je dán hodinovým signálem asynchronní přenos vznik události je určen (a následuje po) předcházející události
Synchronní přenos
Asynchronní přenos a) Řízení zdrojem b) Řízení příjemcem Data Data platná a) Řízení zdrojem Data Žádost o data b) Řízení příjemcem
Přenos dat po sběrnici za účasti procesoru: zdroj CPU cíl „programmed I/O“ bez účasti procesoru – proces není řízen instrukcemi, ale řadičem sběrnice: dávkový režim kradení cyklů transparentní režim
Dávkový režim Procesor Řadič: [odkud, co, kolik, kam] ŘP: HOLD (mám připraveno) PŘ: HLDA (OK, udělej, sběrnici nechci) přenos Ř P: HOLD (hotovo) PŘ: HLDA (beru na vědomí a sběrnici)
Kradení cyklů Řadič „uspí“ procesor provede vlastní přenos probudí procesor – nelze uspat na dlouho – technicky náročnější
Transparentní režim Řadič rozezná, kdy procesor sběrnici nepoužívá a tehdy provede přenos + nijak nezdržuje procesor, je pro procesor neviditelné – větší přenosy obvykle nelze najednou
Použití řadiče DMA (Direct Memory Access)
Sběrnice „v PC“
Historický vývoj sběrnic v osobních počítačích PC Bus pro PC/XT (8088) 8bit datová, 20bit adresová sběrnice, 8MHz ISA – Industry Standard Architecture pro PC/AT 16bit datová, 24bit adresová sběrnice, 8MHz
EISA – Extended Industry Standard Architecture MCA – MicroChannel pro IBM PS/2 10MHz, nekompatibilní s ISA, odolnější proti šumu 16/32/64bit data, 24/32bit adresy EISA – Extended Industry Standard Architecture odpověď na MCA 32bit data, 32bit adresy 8MHz (kompatibilita!) programové nastavení desek VL Bus – VESA Local Bus (Video Electronic Standards Association) až 50MHz, při plném osazení 33MHz přímo zapojená na systémovou sběrnici
DMA standard, regular, „third-party“ DMA – zvláštní jednotka, která provádí vlastní přenos výkonem dostačovalo pro ISA (EISA, VLB): Single word Mode 0 … 2.1MB/s „first-party” DMA – zařízení si řídí přenos samo, tzv. „bus mastering“ (MCA, PCI) Ultra DMA Mode 0 (ATA/ATAPI-4) 16.7MB/s Ultra DMA Mode 5 100MB/s
ATA/ATAPI AT Attachment /with Packet Interface 16bit, UltraDMA Vývoj: PIO 02,1MB/s-416,7MB/s, MultiwordDMA 04,2MB/s-216,7MB/s, UltraDMA016,7MB/s-5100MB/s Serial-ATA od 1,5 Gb/s pro SW transparentní pouze asynchronní
UltraDMA double transition clocking ATA/ATAPI-4 Mode0-2 (16.7, 25, 33.3MB/s) ATA/ATAPI-5 Mode3-4 (44.4, 66.7MB/s) ATA/ATAPI-6 Mode5 (100MB/s => „Ultra ATA/100“)
SCSI Small Computer System Interface paralelní interface, od r.1986 ANSI standard inteligentní zařízení 8/16 bit data (narrow/wide) až 160 MB/s (SCSI Fast-80 Wide) zřetězení až 15 zařízení (hard disky, scannery, páskové jednotky)
PCI, PCI-X Peripheral Component Interconnect Bus připojení k systémové sběrnici přes můstek (PCI nezávislá na taktu procesoru) 64bit data, 64bit adresy 1992 v1.0: 33MHz, 1995 v2.1: 66MHz multiplex dat a adres synchronní PCI-X v1.0: 66 a 133 MTS, v2.0: 266 a 533 MTS + další vylepšení (např. ECC), zpětná kompatibilita HW i SW
AGP Advanced Graphics Port „point-to-point“ 4x frekvence PCI, tj. 133MHz využita náběžná i sestupná hrana hodin pipelining (paralelismus)
PCI Express (PCIe) Seriová, paketový protokol 256 MB/s (PCIe x1) – 8 GB/s (PCIe x16 duplex)
Motivace pro nový typ sběrnice Uživatel nemusí otevřít počítač, aby připojil novou periferii Jediný kabel na připojování všech typů zařízení Zařízení napájena z tohoto kabelu Připojení velkého počtu zařízení Podpora real-time zařízení (zvuk, video) Instalace zařízení za chodu Bez nutnosti rebootu při instalaci zařízení Levné na výrobu
USB – Universal Serial Bus 1,5/12/480 Mb/s stromová struktura – koncová zařízení / hub plug–and–play FireWire (IEEE 1394) synchronní i asynchronní 100/200/400 Mb/s pakety