====== 8. Sběrnice, V/V ====== /* [[courses:a0b36apo:solutions:04:start|odkaz]] */ * pro vyučující: [[..:..:internal:tutorials:08:start|cvičení 8]] ===== Osnova cvičení ===== - Sběrnice, základní pojmy - Obvodové řešení V/V adaptéru - Sběrnice PCI ===== Co bych si měl na cvičení zopakovat/připravit ===== - Rozumět přednáškám (I/O podsystém I a II) - Základy logických systémů - hradla, klopné obvody, apod. ===== Náplň cvičení ===== === Základní pojmy === - Sběrnice vs. dvoubodový spoj - Co mají tyto technické prostředky společného a v čem se liší? - Uveďte příklady dvoubodového spoje. - Uveďte příklady sběrnice. - V/V adaptér - Z jakých základních bloků se skládá obecný V/V adaptér na sběrnici? //(nápověda: na sběrnici je takových adaptérů více, komunikace je obousměrná)// - Dokážete stručně popsat rozdíl v realizaci vstupní a výstupní brány? - Adresace - Vysvětlete pojmy individuální a skupinová adresace. - Vysvětlete pojem dvouúrovňová adresace, k čemu se používá? Dokážete uvést příklad z praxe, kde se používá? - Co je to relokovatlenost adaptéru a jak se realizuje? - Co je to zrcadlení adresového prostoru? Kdy k němu dochází? === Obvodové řešení V/V adaptéru (pro zájemce) === Obvodové řešení V/V adaptéru již na PCI a modernějších sběrnicích není prakticky realizovatelné. Pro pochopení problematiky (před návrhem V/V adaptéru pro PCI) je však jednoduché obvodové řešení např. na sběrnici typu ISA vhodné. Adresový dekodér: {{courses:A0B36APO:tutorials:ad.png?80|}} Jednoduchý V/V adaptér: {{courses:A0B36APO:tutorials:isa.png?80|}} - Navrhněte adresový dekodér. Máte 16b adresovou sběrnici, zařízení má 64 V/V registrů. Úkol: umístit registrové pole do V/V prostoru od adresy 0x1480, k dispozici je jeden obvod 74LS688. - Diskutujte zrcadlení v tomto případě. == Příklad kompletního řešení == {{courses:A0B36APO:tutorials:aa_sio3.png?160|}} {{courses:A0B36APO:tutorials:aa_sio3t.png?120|}} - Je tento adaptér relokovatelný? - Na jaké adrese ve V/V prostoru bude přístupný? - Dochází zde k zrcadlení? === Sběrnice PCI === - Pomocí programu ''lspci'' zobrazte PCI zařízení v počítači. - Zobrazte podrobnosti o PCI zařízeních, adresy v paměti a V/V prostoru, které obsazují. - Pomocí ''lspci -xxx'' zobrazte konfigurační prostor PCI a pro vybraná zařízení určete pomocí tohoto výpisu: * typ zařízení * výrobce zařízení * jaké adresy ve V/V prostoru obsazuje * jaké adresy v paměťovém prostoru obsazuje == Návrh adaptéru PCI == Na přednáškách jste viděli příklad jednotlivých bloků adaptéru na PCI sběrnici, včetně řídicího konečného automatu. Rozšiřte tento návrh o možnost konfiguračního čtení a konfiguračního zápisu. (Časový diagram konfiguračního čtení:{{courses:A0B36APO:tutorials:pci-cfg.png?32|}}) === Měření pomocí logického analyzátoru === Měření průběhů základních cyklů sběrnice PCI. K měřenému počítači je připojen logický analyzátor, který umožňuje sledovat časové průběhy jednotlivých transakcí probíhajících na sběrnici PCI. Měřený počítač běží pod operačním systémem MS-DOS, který nám umožňuje snadný přístup k hardware (bez nutnosti řešit oprávnění, privilegované operace apod.). Pomocí testovacího programu "testpci" budeme generovat jednotlivé transakce - čtení/zápis do paměti, čtení/zápis na I/O, atd. Studijní text: {{courses:A0B36APO:tutorials:08:pci_text.pdf|}} Testovací program: {{:courses:a0b36apo:tutorials:08:testpci.zip|}} ===== Odkazy ===== * http://en.wikipedia.org/wiki/PCI_configuration_space - konfigurační prostor PCI zařízení * http://linuxcommand.org/man_pages/lspci8.html - manuálová stránka programu ''lspci'' * http://www.pcidatabase.com - PCI Vendor and Device Lists