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

5.4 KiB
Raw Permalink Blame History

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)