5.4 KiB
5.4 KiB
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)