131 lines
5.4 KiB
Markdown
131 lines
5.4 KiB
Markdown
|
# 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)
|
|||
|
|