FAV-ZCU/KIV POT/07. Sběrnice.md

130 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sběrnice
**Sběrnicová architektura**
- jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenaší data oběma směry
- single master - jeden procesor na sběrnici
- multi master - více procesorů (nebo DMA řadičů) na sběrnici
### Typy sběrnic
- proprietární / univerzální
- nemultiplexované / multiplexované
- synchronní / asynchronní
- paralelní / sériové
- single master / multi master
**Univerzální sběrnice**
- sběrnice procesoru H8S je používána jen pro tento typ procesoru (je proprietární)
- jiné procesory mají též jiné sběrnice
- univerzální sběrnice (PCI, VME, AGP, PC104, ...)
- jsou navrženy bez závislosti na konkrétním typu procesoru
- pro připojení procesoru, pamětí a periferních obvodů jsou obvykle potřeba doplňkové obvody (glue logic)
**Nemultiplexovaná sběrnice**
- má samostatné vodiče pro adresu a data
- přenos adresy z CPU a dat z/do CPU může probíhat současně
- vyžaduje velký počet signálů na sběrnici, přenos je rychlejší
**Multiplexovaná sběrnice**
- společné vodiče pro adresu i data
- adresa a data se přenáší postupně
- vyžaduje menší počet vodičů, přenos je pomalejší
**Asynchronní sběrnice**
- komunikace s pamětí probíhá způsobem dotaz - odpověď
- po aktivaci požadavku (/RD) čeká CPU na odpověď (/Ready)
- po dokončení přenosu zručí procesor /RD, paměť zruší /Ready
- několikanásobná výměna signálů zpomaluje komunikaci
**Synchronní sběrnice**
- vysílání adresy, příkazu a přečtení dat se provede při určené hraně CLK
- lze dosáhnout vysoké přenosové rychlosti
**Sběrnice na principu pipeline**
- při přenosu dat se přenáší současně i adresa pro následující čtení/zápis
- používaná u rychlých procesorů a pamětí (synchronní statická RAM)
- např. datové kanály mezi CPU a pamětí cache
**Sběrnice s blokovým přenosem**
- do paměti se přenáší jen adresa prvního slova z celého bloku
- paměť přečte paralelně celý blok (typicky 2, 4 nebo 8 slov)
- jednotlivá slova se přenáší postupně po datové sběrnici
- Dual Data Rate - přenáší se při obou hranách CLK
**Paralelní vs. sériová sběrnice**
- při velké přenosové rychlosti je oblížné dodržet stejné zpoždění všech adresních nebo datových vodičů
- rozptyl zpoždění jednotlivých vodičů (skew) má za následek nesprávné čtení
+ rychlé sériové rozhraní má pro každý směr přenosu jen 1 signál
- obvykle z elektrických důvodů je to 1 pár vodičů kroucená dvoulinka
+ přijímač si sám generuje hodinový signál pro čtení
- hodinový signál je průběžně synchronizován podle přijímaných dat
+ data jsou kódována speciálním přenosovým kódem
+ modulační rychlost je řádově 1 GHz
+ např. PCI Express
**Master/Slave**
- zařízení na sběrnici má typ master nebo slave
- **master** - může iniciovat jednotlivé přenosy (např. CPU, DMA řadič)
- **slave** - pouze reaguje na požadavky mastera (např. paměť)
- jednoduché sběrnice povolují pouze jednoho mastera (single master)
- na **multi master** sběrnici může být více masterů
- v každém okamžiku sběrnici využívá jen jeden
- před zahájením přenosového cyklu proběhne arbitrace - arbiter přidelí sběrnici vybranému masteru, po ukončení se zase přiřadí jinému
- při intenzivní komunikaci může dojít k přetížení sběrnice
### Procesor H8S
**Charakteristiky**
- CLK max. 25 MHz
- řada specializovaných periferií
- 24bitová adresní sběrnice (A23-A0)
- 8/16bitová datová sběrnice (D15-D0)
- A23-A20 dekódovány na /CS0-/CS7
- další signály: /HWR, /LWR, /RD, WAIT
**Důležité signály**
- **CLK** - hodinový signál
- **A23-A0** - adresní sběrnice
- **D15-D0** - datová sběrnice
- **/HWR**, **/LWR** - zápisové signály
- **/RD** - čtecí signál
- **/WAIT** - prodloužení MC
- **/IRQn**, **/NMI** - přerušovací signály
- **/BREQ**, **/BACK**, **/BREQ0** - uvolnění sběrnice
- **/RES** - reset procesoru
**Fyzická adresa**
- logická je 32bitová (data) nebo 24bitová (instrukce)
- fyzická adresa je 24bitová
- 8 nejvyšších bitů se ignoruje
**Signály /CS0-/CS7**
- procesor interně dekóduje adresní vodiče A21, A22, A23
- dekóder generuje signály /CS0-/CS7
- adresní prostor 10 MB je rozdělen na 8 bloků po 2 MB - každému bloku přísluší jeden /CSx
**Čtecí a zápisový cyklus sběrnice**
- 2 nebo 3 takty CLK
- 8 nebo 16 bitů
- aktivní jeden z /CS0-/CS7
**Vložení čekacích taktů**
- je-li aktivní /WAIT, vkládá procesor čekací takty
- při klesající hraně CLK se testuje stav vstupu /WAIT
- čekajících taktů může vložit libovolný počet
- může to mít další důsledky
**Instrukce `ADD.W R1, R0`**
- kód instrukce je dlouhý 16 bytů
- při provádění ADD.W se čte kód další instrukce
- při 8bitové sběrnici vyžaduje každý MC pro čtení/zápis word dva přístupy do paměti (6 taktů CLK)
**Instrukce `MOV.W R1, @adresa`**
- kód je dlouhý celkem 6 bytů
- před zápisem operandu 1 MC „příprava EA“ (čte se další instrukce)
- provedení = zápis word do paměti
- při 8bitové sběrnici vyžaduje každý MC pro čtení/zápis word dva přístupy do paměti
**Instrukce `DIVXS R1, ER0`**
- cykly E1-E19 nevyžadují přístup do paměti (trvají jen 1 takt CLK)