Sběrnice, připojování periferních zařízení a RAID INP 2008 FIT VUT v Brně
1
Přehled přednášky • Sběrnice – Vývoj sběrnicová hierarchie – Varianty sběrnic – Arbitrace na sběrnici
• Periferní zařízení – Připojování – Obsluha
• Disková pole RAID
2
Proč sběrnice? Rozhoduje poměr výkon/cena! Varianty propojení
Sběrnice: • všechna zařízení sdílí relativně nízký počet vodičů • dlouhé vodiče => nižší kmitočty • způsob komunikace: jedna komponenta vysílá, všechny mají možnost přijímat • relativně nízká propustnost pokud je připojen vyšší počet zařízení
Point-to-point linky: • samostatné vodiče pro každé zařízení (vyšší cena) • relativně vysoký počet vodičů • krátké vodiče => vyšší kmitočty • komunikace: point to point • vysoká propustnost (souběžná komunikace mezi několika páry jednotek je možná) 3
Pojmy Sběrnice: propojovací soustava umožňující komunikaci mezi více než jedním zdrojem dat a přijímači dat. Rozhraní: definuje logický význam a elektrické vlastnosti vodičů určených pro komunikaci dané komponenty Komunikační (sběrnicový) protokol: určuje pořadí aktivace signálů rozhraní tak, aby komponenta mohla komunikovat s okolím Sběrnicová transakce (cyklus sběrnice) – operace zahrnující vydání adresy a zaslání (nebo přečtení) dat Základní typy sběrnic: • adresová vs. datová vs. řídicí (signály RD, WR atd.) • interní vs. externí • sériové vs. paralelní Parametry sběrnice podstatným • synchronní vs. asynchronní způsobem ovlivňují výkonnost • multiplexovaná vs. dedikovaná systému! • atd. Šířka sběrnice: • datová sběrnice – počet bitů významně ovlivňuje výkonnost • adresová sběrnice – počet bitů určuje max. paměťovou kapacitu systému 4
Zkratky • I/O = V/V - vstup/výstup • PZ - periferní zařízení • RVP - rychlá vyrovnávací paměť • M – hlavní paměť • IOP – I/O procesor
5
Typické signály řídicích sběrnic • • • • • • • • • • • •
Memory Write (zápis datové části systémové sběrnice do paměti) Memory Read (čtení obsahu paměti do datové části systémové sběrnice) I/O Write (zápis datové části systémové sběrnice do registru) I/O Read (čtení obsahu registru do datové části systémové sběrnice) Transfer ACK (potvrzení příjmu) Bus Request (žádost o přidělení sběrnice) Bus Grant (přidělení sběrnice) Interrupt Request (žádost o přerušení) Interrupt ACK (potvrzení žádosti o přerušení) Clock (systémová synchronizace) Reset (systémové nulování)
Základní počítačová architektura (jednosběrnicová, bez RVP - cache). 6
PZ se na sběrnici připojuje pomocí řadiče
• Příklady:
• Příklady:
– řadič disku – řadič sériového portu – řadič klávesnice – atd
– – – –
disk sériový port klávesnice atd.
7
Připojení jednotek na obousměrnou sběrnici Vodiče obousměrné sběrnice
.. .
R/W1
...
...
R/W2
... Jednotka č.2
Jednotka č.1
...
a)
enable
enable přijímač
budič
Paralelní (i sériové) sběrnice musí být zkonstruovány tak, aby umožňovaly obousměrný provoz. Obousměrný přenos signálů vyžaduje použití budičů s třístavovými výstupy.
b)
8
Multiplexovaná A/D sběrnice • •
•
Př. Mikrokontrolér 8051 s pamětí EPROM Společných 8 bitů adresové a datové sběrnice (P0.X) Čtení z paměti EPROM: – Vystav na P0.x dolních 8 bitů adresy a na P2 horní čtyři bity adresy – Aktivací signálu ALE ulož dolních 8 bitů do záchytného registru (8282) – Aktivuj paměť – Přečti data z EPROM na P0.x
• •
Výhody: nižší počet vodičů sběrnice Nevýhody: složitější (a pomalejší) komunikace
A/D multiplex 9
Základní uspořádání počítače – jediná sběrnice CPU
RVP
PAMĚŤOVÁ - V/V SBĚRNICE
M
•
ŘADIČ V/V
ŘADIČ V/V
D
Grafická jednotka
D
ŘADIČ V/V
síť LAN
Veškerá komunikace probíhá přes V/V sběrnici, která je sdílená všemi jednotkami, provoz je prakticky vždy dvoubodový, tj. jedna jednotka vysílá a druhá přijímá. 10
Základní parametry V/V jednotek • • • •
přenosová rychlost přístupová doba, resp. doba latence (čekání) chování jednotky, zda umožňuje provoz IN, OUT, anebo zda jde o vnější paměť (chování M) s možností čtení a zápisu (R/W) kdo je partnerem v přenosu, zda člověk, nebo stroj; s tím souvisí kód a typ přenášené informace
11
Sběrnicové hierarchie v prvních PC SCSI -Small Computer Systems Interface
• Rychlá komunikace mezi procesorem a rychlou vyrovnávací pamětí. • Ostatní zařízení komunikují přes pomalejší systémovou sběrnici. • Př. PC se sběrnicí ISA 12
Sběrnicové hierarchie v pokročilejších PC
FireWire (označované jako i.Link nebo IEEE 1394) je standard sériové sběrnice pro připojení periférií k počítači.
• Důraz na hierarchii systémových sběrnic. • Každý z těchto segmentů je různě rychlý. 13
Sběrnicová hierarchie v PC s PCI sběrnicí AGP - Accelerated Graphics Port
Northbridge - transformace sběrnice procesoru na sběrnici PCI Southbridge - transformace sběrnice PCI na rozhraní PZ 14
Další vývoj, jiná terminologie cache
15
16
Označení jednotek na sběrnici • V definicích sběrnic se používá označování jednotek podle jejich funkce při řízení přenosu: – hlavní (M - master) a vedlejší (S - slave) – případně Initiator -Target – nebo podle směru přenosu zdroj (S - Source) a příjemce (A Acceptor).
17
Řízení asynchronní sběrnice • Jednostranně – řízení zajišťuje buď zdroj nebo příjemce • Oboustranně – na řízení se podílí zdroj i příjemce • Součástí dějů na sběrnici nejsou synchronizační signály, tj. generování nějakého signálu je vázáno na výskyt události předcházející.
18
Asynchronní přenos řízený jednostranně DATA DATA PLATNÁ
Řízení zdrojem S (source)
DATA ŽÁDOST O DATA
Řízení příjemcem A (acceptor)
• K vzorkování (převzetí) dat dochází hranou, nebo hladinou signálu DATA PLATNÁ, nebo ŽÁDOST O DATA. • Nevýhodou jednostranného řízení je, že není potvrzováno správné převzetí dat, což může nastat, opozdí-li se příjemce, má-li poruchu, či jiné problémy vyžadující servis či opravu. • Proto se doplňuje potvrzovací signál ACK (acknowledge), kterým se mění jednostranné řízení na dvoustranné a dostáváme tak tzv. korespondenční protokol (handshake).
19
Asynchronní protokol řízený oboustranně (handshake) DATA
DATA
DATA
DATA PLATNÁ ze S POTVRZENÍ z A
Přenos vyvolaný zdrojem S
•
•
DATA
ŽÁDOST O DATA z A
ACK
POTVRZENÍ ze S
ACK
Přenos vyvolaný příjemcem A
Máme zde naznačen úplný (uzavřený) korespondenční cyklus, který se vyznačuje pevným sledem hran, vázaných šipkami vzájemné závislosti (full interlock). V definici některých sběrnic se můžeme setkat se zvětšeným stupněm volnosti vzájemných závislostí. Takové protokoly se označují jako polouzavřené (half interlock).
20
Způsoby rozhodování o přidělení sběrnice při současné žádosti několika jednotek Rozhodování: Centralizované x decentralizované Prioritní x spravedlivé U centrálního řízení je použita centrální rozhodovací jednotka (arbitr), která rozhoduje buď podle priority, nebo spravedlivě, např. podle pořadí vzniku žádostí (udržuje se fronta požadavků), cyklicky (pomocí centrálního čítače), nebo náhodně. Prioritní dekodér je základem centrálního rozhodovacího členu, který po vyhodnocení priority žádostí oznámí jednotce s nejvyšší prioritou, že získala sběrnici. Vlastní mechanismus oznámení může využívat vyzývání (polling), kdy se na adresovou, datovou, nebo rozhodovací (vyzývací) sběrnici vyšle číslo vítězné jednotky. Jednotka, která zjistí svoje číslo, může zahájit přenos po sběrnici. 21
a) Rozhodování s vyzývacím číslem
Centrální vyzývání s vyzývacím číslem: Signál „žádost“ je generován do společného vodiče – ten je přijat arbitrem. Arbitr začne vysílat „vyzývací číslo“. Zařízení, které žádá o přidělení sběrnice, rozpozná své číslo, pak vygeneruje signál „sběrnice obsazena“. Provede se vlastní přenos dat. Je využíván prioritní systém.
22
b) Prioritní linka
• • • • • •
Jednotlivá zařízení vysílají signály „žádost x“ do společného vodiče. Arbitr odpoví vysláním signálu „sběrnice volná“, ta jsou jednotlivými zařízeními postupně přijímána a vyhodnocena. Zařízení, které vyslalo „žádost“, zablokuje odeslání signálu „sběrnice volná“ do následujícího PZ a vyšle signál „sběrnice obsazena“. Jakmile je ukončen přenos dat, signál „sběrnice obsazena“ je shozen. Prioritní systém je uplatněn pořadím zařízení na kabelu „sběrnice volná“ – zařízení, která jsou blíže arbitra, mají vyšší prioritu. Je využíván prioritní systém. 23
c) Decentralizovaná sériová linka
• •
•
Generování signálu „žádost“ vyvolá nastavení signálu „sběrnice obsazena“, ten je postupně vyhodnocován jednotlivými zařízeními. Jakmile se signál „sběrnice obsazena“ dostane na vstup zařízení ZK, které vygenerovalo „žádost“, je jeho přenos do následujícího zařízení zablokován. Zařízení ZK může začít přenášet data. Př. U rozhraní SCSI je adresa v kódu 1 z n. Tato adresa se vysílá jako součást „žádosti“. Pokud je PZ zpětně detekuje více než jednu jedničku, je rozpoznána kolize. Podle pozice bitu je zjištěna priorita. 24
Způsoby připojování a řízení periferních zařízení • Procesor komunikuje s registry řadiče periferního zařízení. • Používá k tomu buď instrukce pro práci s pamětí nebo speciální instrukce pro ovládání V/V. • Poznámky: – Např. není možné přímo realizovat přenos mezi registrem řadiče a pamětí – adresy obou by musely být ve stejném okamžiku vystaveny na sběrnici. – Přímá komunikace mezi periferií a pamětí (bez účasti procesoru) je možná zavedením dalších obvodů – např. DMA.
25
Řadič periferního zařízení
ABUS DBUS
Řadič PZ DataIn reg. DataOut reg.
CBUS
Stavový reg.
PZ
Řídicí reg.
Funkce řadiče: komunikace s CPU, vyvolání přerušení, řízení a časování operací PZ, realizuje vyrovnávací paměť, detekuje a reportuje poruchu
FSM
Registry jsou programovatelné ze strany procesoru. Datový registr - přes něj se přenášejí data. Řídicí registr - určuje způsob provedení operace PZ. Stavový registr - stav řadiče a PZ. 26
Fáze periferní operace (příklad) • přenos dat z operační paměti do vyrovnávací paměti řadiče, • přenos dat z řadiče do PZ, • autonomní realizace periferní operace (tisk řádku, zápis sektoru/více sektorů), • hlášení z PZ do řadiče PZ o skončení operace, • analýza stavové informace řadičem PZ o výsledku periferní operace, • hlášení z řadiče PZ do CPU o skončení operace (možnost využití přerušení) • analýza stavové informace o výsledku periferní operace procesorem.
27
Možnosti připojení PZ: 1) mapovaný V/V • Registry PZ jsou namapovány do na určité adresy paměti • PZ a paměť sdílí stejný adresový prostor • Operace s PZ se provádí stejně jako s pamětí (instrukcemi pro čtení a zápis) PZ Řešení je založeno na použití adresového dekodéru.
28
Možnosti připojení PZ: 2) izolovaný V/V • Oddělení adresového prostoru paměti a periferií – Registry periferních zařízení mají svůj vlastní adresový prostor (uveden příklad, kdy je možné adresovat až 8 registrů v periferních zařízeních) – Operace s PZ se provede pomocí speciální instrukce IN a OUT (např. signál „zápis do registru“ (viz obrázek) je odvozen od instrukce OUT) Datová sběrnice
29
Způsoby obsluhy periférií • Programový V/V – Procesor testuje ve smyčce stav všech PZ (stisknuta klávesa, přišla data ze sítě?), což je neefektivní.
• Využití přerušení – Pokud PZ potřebuje obsluhu vyvolá přerušení a procesor jej obslouží.
• Využití obvodů pro řízení blokových přenosů DMA (direct memory access) – Přenos větších objemů dat mezi PZ a pamětí zajistí DMA bez použití procesoru
• Využití IO procesorů – Zobecnění konceptu DMA
30
Porovnání přístupů (př: čtení dat z PZ do paměti)
31
A. Programovaný V/V (polling) Procesor testuje ve smyčce stav PZ (byla stisknuta klávesa?). Pokud je možné provést obsluhu PZ (klávesa stisknuta), provede obsluhu (přečte kód znaku a zpracuje ho), jinak opět testuje ve smyčce stav PZ (byla stisknuta klávesa?). Je zřejmé, že čekací smyčka zatěžuje procesor, který pak nemůže provádět užitečnější práci. Rovněž sběrnice je zbytečně zatěžována.
PZi
TEST STAVU Fi CPU
Fi
& flagi 1 - připraven 0 - pracuje
32
B. Obsluha využívající přerušení: O obsluhu žádá PZ!!! Př. Pokud byla stisknuta klávesa, procesor přeruší uživatelský program, uschová obsahy registrů a návratovou adresu na zásobník a obslouží klávesnici (rutina na adrese Y). Potom obnoví obsahy registrů a vrátí se do uživatelského programu. Jak se řeší priorita, když dvě a více PZ žádají o obsluhu? • Viz předchozí přednášky
Přerušení programu po vykonání instrukce na adrese N.
Návrat z obsluhy přerušení 33
C. Přenos DMA (Direct Memory Access) Koncept přerušení je nevýhodný, pokud je třeba přenášet větší objemy dat. Při obsluze přerušení se procesor podílí na datových přenosech, což ho zatěžuje => zaveden DMA. Řadič DMA je speciální obvod zajišťující blokové přenosy mezi PZ a pamětí (popř. mezi pamětí a pamětí). – CPU zadá požadavek obvodu DMA, tj. adresu PZ, adresu v paměti (ta se uloží do Address Register v DMA) a počet slov (ten se uloží do Data Count v DMA). – DMA obvod provede přesun dat, slovo za slovem, bez zásahu CPU. • data buď prochází přes řadič DMA • nebo data neprochází přes řadič DMA – CPU mezitím může vykonat další kód (je však omezen ve využívání sběrnice, viz dále). - Po ukončení přenosu (popř. při vzniku chyby) obvod DMA vyvolá přerušení.
Obvod řadiče DMA - typické komponenty a rozhraní - je připojen ke sběrnici 34
Pozastavení procesoru při DMA V okamžiku, kdy DMA potřebuje sběrnici pro přenos jednoho slova, pozastaví se činnost procesoru (který se odpojí od sběrnice). Nejedná se o přerušení, jen o dočasné pozastavení práce procesoru. Obrázek ukazuje, kde může být procesor pozastaven. Dojde tak jen ke zpomalení činnosti procesoru.
Procesor je pozastaven před tou fází instrukce, kdy potřebuje sběrnici. 35
Různé konfigurace systému, který využívá DMA (přes DMA prochází data) Každý transfer jednoho slova používá sběrnici 2x (IO->DMA->M), procesor je pozastaven 2x
Každý transfer jednoho slova používá sběrnici 1x (DMA->M), procesor je pozastaven 1x
Všechna zařízení, která používají DMA, jsou na jedné sběrnici, každý transfer jednoho slova používá sběrnici 1x (DMA->M), procesor je pozastaven 1x
36
Řadič DMA 8237 pro procesory řady 8086 Zde data neprochází přes obvod DMA!
•
Příklad přenosu z paměti na disk 1. 2. 3. 4. 5.
6.
Zařízení žádá obsluhu pomocí DMA signálem DREQ (DMA request). DMA aktivuje HRQ (hold request). CPU dokončí sběrnicový cyklus (nezbytně to nemusí být instrukce) a nastaví HDLA (hold acknowledge). HOLD zůstává aktivní během činnosti DMA. DMA aktivuje DACK (DMA acknowledge), který odstartuje činnost PZ. DMA začíná přenos vložením adresy prvního bytu na ABUS a aktivuje signál MEMR (memory read); potom aktivuje IOW pro zápis do PZ. DMA dekrementuje čítač a inkrementuje ukazatel adresy. Opakuje se dokud se nepřenesou všechna slova. DMA deaktivuje HRQ, čímž vrátí kontrolu nad sběrnicí CPU. 37
D. IO procesory Řadič DMA je v podstatě jednoduchý FSM s několika registry. Rozšířením principu DMA se dospělo ke koncepci IO procesoru. IO procesor (IOP) je další procesor počítače, který má ale speciální instrukční soubor (zejména IO instrukce). • Procesor nemá přístup k registrům řadiče. • IO procesor komunikuje s řadiči jednotným způsobem. • Procesor zadá IO procesoru program, který má vykonat. Program je uložen v hlavní paměti.
38
Příklad sběrnice: PCI a varianty (Peripheral Component Interconnection) • • •
PCI – paralelní sběrnice (dnes už se přestává používat) PCIX – podobně jako PCI, vyšší výkon i efektivita PCI Express – vysokorychlostní plně duplexní sériové linky, přenos na základě paketové komunikace (každá linka 2.5Gb/s oběma směry)
PCI express
39
Disková pole RAID (Redundant Array of Inexpensive Disks) Mezi neustále rostoucí operační rychlostí procesoru a mnohem pomaleji se zvyšující přenosovou rychlostí disků je stále se zvětšující disproporce. Hovoří se též o výkonové mezeře CPU - IO. Vliv tohoto jevu ilustrujeme následujícím příkladem. Příklad: Uvažujeme testovací úlohu, jejíž provedení trvá 100 s, z toho 90 s se využívá CPU a 10 s se využívají V/V jednotky. Rychlost procesoru se zvyšuje po dobu 5 let, a to každý rok o 50%, rychlost IO se nemění. Jak rychle poběží tento program za 5 let, a jaký bude poměr časů CPU a IO? Výsledek shrnuje následující tabulka.
40
Podíl IO operací na době výpočtu
Po 5 letech již činí doba činnosti IO 45% doby běhu testovacího programu. Další zrychlování procesoru pak nepřináší očekávaný efekt. Tento jev je zvláště výrazný u systémů s vysokým podílem IO operací, jako jsou - informační systémy - rezervační systémy pro letenky aj. - systémy pro sledování pohybu materiálu - síťové servery - a další 41
Koncepce RAID U disku, jakožto nejdůležitější IO paměti, se objevila koncepce RAID Redundant Array of Inexpensive Disks, která je již značně rozšířená. Jde o budování polí desítek až stovek diskových jednotek s rovnoměrným rozložením zátěže. Řízení rovnoměrného rozložení zátěže je prvním problémem, který se u diskových polí musí řešit. Zvětšení počtu jednotek má dále negativní vliv na spolehlivost diskového subsystému. Má-li disková jednotka střední dobu mezi poruchami MTBF např. 40 000 hod., tak diskové pole tvořené n jednotkami má střední dobu mezi poruchami MTBF/n, což je pro praxi nepřijatelné. Vznikla tedy potřeba použít některé z metod pro zvyšování provozní spolehlivosti systému, resp. zabezpečení dat. Rozložení zátěže se řeší prokládanou činností disků (disk striping, disk interleaving).
42
Prokládání činnosti disků
Pokud je požadováno čtení z logicky sousedních proužků (stripe), např. z 0, 1, 2 a 3, potom toto čtení proběhne souběžně a tudíž velmi rychle. Pro uvedenou posloupnost je zátěž rozložena mezi všechny disky. 43
Principy RAID Data se člení na "proužky" stanovené velikosti, např. byty, kratší bloky, bloky (sektory), multisektory, stopy, válce, a tyto datové celky se rovnoměrně cyklicky zapisují do diskového pole. Jemnější členění než byty se nepoužívá. Je zřejmé, že efektivní přenosová rychlost se při zápisu i při čtení výrazně zvýší. Prokládání lze implementovat programově, nebo obvodovým řadičem. Pro zabezpečení proti ztrátě dat vlivem poruchy některé jednotky lze použít zdvojení, paritu, Hammingův kód… Zabezpečovací informace je buď uložena na speciálním disku nebo distribuována na všechny disky.
44
Typy RAID • • • • • • • •
RAID 0: bez redundance, prokládání RAID 1: zdvojení (mirroring) (2W, R/2) RAID 2: prokládání, Hammingův kód RAID 3: paritní disk, prokládání bytů RAID 4: paritní disk, prokládání bloků RAID 5: parita, prokládání bloků, distribuovaná parita RAID 6: distribuovaná parita, vypočtena 2x, ale různým způsobem + další nestandardní
45
Zabezpečení paritou Vlivem zdvojení dojde ke zpomalení operace zápisu, protože každý blok se zapisuje dvakrát, čtení se však zrychlí, protože operace vyhledávání lze prokládat (na úrovni sektorů). Použití paritního disku je zřejmé z obrázku. jednotka 0 1 2 eP
Zabezpečení sudou paritou
0 0 1 1
1 0 1 1
1 1 1 0
0 1 1 0
Poznámka: eP - even Parity Do čtvrté jednotky, označené eP, se zaznamenává datový proužek zvolené délky, který doplňuje data zapsaná do jednotek 0, 1, 2 na sudou paritu. Je zde naznačeno uložení čtyř proužků délky 1 bit. S datovými proužky větší délky se pracuje obdobně.
46
Princip čtení, zápisu a obnovy dat pro jednotku 0 jednotka
0
1
2
eP
č0 1. Čtení č0 2. Zápis metodou R - M - W (Read - Modify - Write) nová data z0
čeP M2 zeP
47
č1
3. Zápis metodou R - W (Reconstruct Write)
č2
M2
nová data
zeP
z0
č1 č2 čeP 4. Obnova dat jednotky 0
M2 obnovená data jednotky 0
48
Rozložení zátěže u RAID – rotující parita Je zřejmé, že zatížení paritního disku je v dosavadním uspořádání zdaleka nejvyšší. Rovnoměrného zatížení všech jednotek se dosáhne použitím principu rotující parity podle obr. (Opět je zde pro zjednodušení použito proužku délky 1 bit.)
jednotka
0
1
2
4
0 0 1 P
1 0 P 1
1 P 1 0
P 1 1 0
Řízení rotace parity pro pole s více řádky je již složitější, viz příklad pole se dvěma řádky na následujícím obrázku.
49
Rotace parity v poli 2 x 5
řádek 0
řádek 1
0 10 P4 20 30
1 11 21 31 P8
2 P2 12 22 32
3 13 23 P6 33
P0 4 14 24 34
5 15 25 35 P9
6 P3 16 26 36
7 17 27 P7 37
P1 8 18 28 38
9 19 P5 29 39
Další zdokonalení zabezpečení dat v diskových polích, které je relativně jednoduché, nabízí použití dvojrozměrné parity a Hammingova kódu.
50
Literatura • Drábek, V.: Výstavba počítačů. Skriptum VUT Brno, 1995 • Kotásek, Z.: Periferní zařízení. Texty k přednáškám. FIT VUT Brno, 2006 • Stallings, W.: Computer Organization and Architecture, 7th ed., Pearson Prentice Hall, 2006
• http://cs.wikipedia.org/wiki/RAID
51