Uživatelské nástroje

Nástroje pro tento web


pitel:isz:principy_rizeni_a_pripojovani_perifernich_zarizeni

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


pitel:isz:principy_rizeni_a_pripojovani_perifernich_zarizeni [30. 12. 2022, 13.43:01] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== 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) ===
 +{{http://upload.wikimedia.org/wikipedia/commons/3/36/Isa1.jpg?200 }}
 +[[wp>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 ===
 +{{http://upload.wikimedia.org/wikipedia/commons/6/67/PCI_Slots_Digon3.JPG?200 }}
 +[[wp>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 ===
 +{{http://upload.wikimedia.org/wikipedia/commons/f/fc/PCIExpress.jpg?200 }}
 +[[wp>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 ===
 +{{http://upload.wikimedia.org/wikipedia/commons/c/c5/Centronics.jpg?200 }}
 +[[wp>Micro ribbon]]
 +
 +Ubohá sběrnice pro připojení tiskárny. Nemá chybové slabiky, chyby indikuje stavem.
 +
 +=== IDE ===
 +{{http://upload.wikimedia.org/wikipedia/commons/c/c4/Ata_20070127_002.jpg?200 }}
 +[[wp>Parallel ATA]]
 +
 +Připojení disků (zastaralé). Jde o podmnožinu signálů ISA.
 +
 +=== SCSI ===
 +{{http://upload.wikimedia.org/wikipedia/commons/1/1b/Scsi-1_gehaeuse.jpg?200 }}
 +[[wp>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í.
 +
 +<note important>Po otevření DMA komunikace mluví zařízení PŘÍMO s pamětí -- ani procesor, ani řadič DMA do toho už nezasahuje!</note>
 +===== Přerušení =====
 +[[wp>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.
 +
 +<note tip>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).</note>
 +
 +===== 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