Kalábovi

Kalábovic wikina

Uživatelské nástroje

Nástroje pro tento web


pitel:isz:principy_rizeni_a_pripojovani_perifernich_zarizeni

Principy řízení a připojování periferních zařízení

Sběrnice

Prostředek pro připojení zařízení v počítači. Šířka sběrnice je prakticky počet drátů sběrnice (kromě režijních signálů). Rychlost sběrnice je počet bitů přenášených na jednom drátě za sekundu. Šířka pásma je pak objem dat za jednotku času.

Na sběrnici jsou tři typy informací: adresa, data a řízení. Řízení určuje operaci, adresa cíl operace (například že data mají přijít do RAMky a kam v té ramce) a data jsou jasná.

Nesdílená sběrnice

Má pro adresu, data a řídící signály oddělené sady vodičů. Po vystavení adresy a dat se aktivuje signál (řídící), který říká, že jsou data na sběrnici úplná a lze je v pohodě číst. Např. ISA.

Sdílená sběrnice

Používá stejné vodiče pro přenos adresy a dat. Musí se odlišovat, kdy je na sběrnici adresa a kdy data (k tomu slouží řídící signály). Např. PCI.

Systémová sběrnice

Slouží k připojení procesoru, řadiče prerušení, řadiče paměti, řadiče přímého přístupu do paměti (DMA), řadiče periferních zařízení, mostů mezi sběrnicemi.

ISA (Industry Standard Architecture)

upload.wikimedia.org_wikipedia_commons_3_36_isa1.jpg Industry Standard Architecture

Nesdílená systémová sběrnice, dnes celkem zastaralá. Označuje se někdy AT bus. Umí přerušení, DMA, chybové signály… 16bitová, pak byla Extended ISA 32bitová. Nemá synchronizační signály.

PCI (Peripheral Component Interconnect

upload.wikimedia.org_wikipedia_commons_6_67_pci_slots_digon3.jpg Conventional PCI

Sdílená systémová sběrnice. Umí bus mastering: zařízení může řídit sběrnicit (stát se masterem). Umí plug and play. PCI-X je rychlejší verze. Má synchronizaci vedenou zvláštním vodičem.

PCI-Express

upload.wikimedia.org_wikipedia_commons_f_fc_pciexpress.jpg PCI Express

Point-to-point architektura. Nejde ani o sběrnici – na každé straně pci expressu je jen jedno zařízení. Přenos je sériový. Synchronizační signál je kódován do dat, používá kódování 8–10 FIXME. Šířka sběrnice je „nastavitelná“ (všimněte si, že na obrázku je každá jinak dlouhá), to se pak označuje jako násobek, např PCI-e 8×.

IO sběrnice (periferií)

Slouží k připojení periferií.

Centronics

upload.wikimedia.org_wikipedia_commons_c_c5_centronics.jpg Micro ribbon

Ubohá sběrnice pro připojení tiskárny. Nemá chybové slabiky, chyby indikuje stavem.

IDE

upload.wikimedia.org_wikipedia_commons_c_c4_ata_20070127_002.jpg Parallel ATA

Připojení disků (zastaralé). Jde o podmnožinu signálů ISA.

SCSI

upload.wikimedia.org_wikipedia_commons_1_1b_scsi-1_gehaeuse.jpg SCSI

Slouží pro připojení obecných zařízení (které umí SCSI :-)). Pro adresaci zařízení používá 1 z N (řadič má adresu např. 00000001, první zařízení má 00000010 atd.).

Řízení periferních zařízení

O to se stará Řadič periferních zařízení. Procesor řekne řadiči, že chce provést periferní operaci. Nastaví parametry a nakonec „start bit“. Řadič kontroluje start bit a pokud je tam 1, začne provádět operaci na zařízení. Po dokončení může informovat procesor pomocí přerušení (lepší varianta), nebo výsledek vystaví na výstup a procesor ho pomocí tzv. pollingu programově (v nějakém cyklu) kontroluje (to zaměstnává procesor, horší varianta). Polling je programová obsluha.

DMA (Direct Memory Access)

Zařízení může požádat o DMA (obvykle přes řadič DMA). Pokud dostane svolení, může zařízení přes sběrnici rovnou pracovat s pamětí.

Po otevření DMA komunikace mluví zařízení PŘÍMO s pamětí – ani procesor, ani řadič DMA do toho už nezasahuje!

Přerušení

Interrupt request

Jde o mechanismus, kterým mohou zařízení asynchronně oznámit procesoru nějakou událost. Probíhá to tak, že zařízení kontaktuje řadic prerušení, který podle priority vybere nejdůležitější přerušení. Vyhledá si v tabulce adresu, kam má skočit v programu procesor pro obsluhu tohoto přerušení. Procesor obdrží informaci o přerušení spolu s touto adresou a postará se o obsluhu. Potom skočí zpátky.

Opakem přerušení je polling – neustále dotazování jestli někdo něco nechce. Používá se např. u USB.

To je jak rozdíl mezi manželkou a prostitutkou – manželky se furt ptáte (polling) jestli nechce sex, ale jí furt bolí hlava, nebo musí ještě něco dodělat. Naproti tomu k prostitutce příjdete, zeptáte se, a ona hned všeho nechá a obslouží vás (IRQ).

Shrnutí (na co nezapomenout)

  • různé typy zařízení a odpovídajících zběrnic v průběhu času
  • se zařízením na sběrnici komunikuje řadič instruovaný procesorem, na jedné sběrnici může být víc zařízení
  • vědět: šířka sběrnice, rychlost sběrnice, šířka pásma
  • nesdílená (zvlášť dráty pro data, adresy, řízení) vs. sdílená (sdílí vodiče pro adresy a data)
  • systémové sběrnice jsou pro komunikaci cpu a hw karet – tohle je sice ke sběrnicím, ale nespadá to moc do zadání samotné otázky, takže spíš to jen zmínit
    • ISA - nesdílená
    • PCI - sdílená, umí bus mastering a plug&play, má synchronizační vodič
    • PCI Express - point-to-point architektura, sériový přenos, embedded clock
  • IO sběrnice - připojení periferií
    • Centronics - nemá chybové slabiky, stará
    • IDE
    • SCSI - pro připojení obecných zařízení, adresace 1 z N
  • zahájení operace - cpu nastaví parametry a start bit, řadič tento bit dokola kontroluje, při jedničce začne provádět operaci, po dokončení může vyvolat přerušení nebo nastaví nějaký registr (polling, programová obsluha)
  • DMA (direct memory access) - zařízení přes řadič DMA požádá o přímý přístup do paměti a pak přímo zapisuje do paměti (bez účasti cpu či řadiče)
  • přerušení využívá řadič přerušení a vektor přerušení podle priorit

Co je třeba vědět kdyby se zeptali

  • PCI 16x znamená, že je tam paralelně 16 sériových přenosů, každý kabel má svoje vlastní řízení
  • chybová slabika je hodnota, kde každý bit indikuje přítomnost nějaké chyby, vyžádává se od zařízení po indikaci obecné chyby
  • při přerušení se uloží všechny registry do zásobníku, skočí se na adresu z vektoru přerušení, po dokončení obsluhy se zase vše obnoví
  • polling využívá napr. USB
/var/www/wiki/data/pages/pitel/isz/principy_rizeni_a_pripojovani_perifernich_zarizeni.txt · Poslední úprava: 03. 07. 2012, 13.53:46 (upraveno mimo DokuWiki)