Uživatel:Fridrto1

Z HPM wiki
Přejít na: navigace, hledání
Logo FireWire

Obsah

Specifikace FireWire

FireWire (IEEE 1394) je sériová vysokorychlostní sběrnice, určená pro isochronní (rovnoměrný v čase) přenos dat v reálném čase. Používá se v poloprofesionální a profesionální audio a video technice, stejně tak jako v leteckém a automobilovém průmyslu. Standart, který definuju tuto sběrnici se u různých firem jmenuje jinak Apple(FireWire), Sony (i.LINK) a Texas Instruments (Lynx). FireWire bylo vyvíjeno se záměrem nahradit paralelni sběrnici SCSI. Ta umožnovala výměnu dat mezi interními nebo externími počitačovými zařízeními a počítačovou sběrnicí. Výhoda této sběrnice oproti ATA/ITE byla možnost připojení většího množství pevných disků, či jiných periferií.IEEE 1394 také definuje rozhraní backplane, které se však v praxi moc neosvědčilo.
Topologie sběrnice




Topologie

Architektura sériové sběrnice je omezena počtem uzlů na jakékoliv sběrnici na 63 uzlů, které mohou mít topologii strom nebo Daisy-chain. Spojení mezi uzly jsou dvoubodová. Každý uzel má jeden a více portů. Uzly s více porty umožnují rozšíření topologie. Komunikace mezi uzly je point-to-point. To znamená, že když dostane víceportový uzel paket, obdrží ho, detekuje ho, resynchronizuje pomocí vlastních hodin a přepošle paket na další uzly. Obrázek znázorňuje typické PC které zahrnuje sériovou IEEE 1394 sběrnici připojenou k PCI sběrnici. Sériová sběrnice umožnuje vysokorychlostní přístup k PCI sběrnici periferním zařízením, které by jinak potřebovaly drahé sběrnice jako jsou PCI nebo SCSI. Configurace sběrnice se provádí dynamicky tak ja se nová zařízení připojují/odpojují. Konfigurační proces nevyžaduje zásah počítačového systému.

uzly na sběrnicích



Sběrnicový bridge

Sběrnice podporuje vícenásobný sběrnicový systém přes sběrnicové můstky. Sběrnicový můstek "poslouchá" provoz na sběrnici a ignoruje jakoukoliv komunikaci mezi uzly na stejné sběrnici, ale pozorně tuto kominukaci "poslouchá". Když můstek obdrží adresu uzle, který není na stejné sběrnici předá paket sousední sběrnici. Ačkoliv sériové sběrnici mohou používat mnoho můstkových konfigurací, když se používá k přemostění Command and Status Registr (CSR) architektury očekává se hierarchie jak je znázorněna na obrázku.


Příklad hierarchické sběrnicové topologie, kde sběrnice #5 je seriová sběrnice a sběrnice #1-#4 jsou sběrnice kompatibilni s CSR architekturou

Protokoly seriové sběrnice

Architektura

vysvětlivky k obrázku 
PH znamená fyzická vrstva
LK znamená linková vrstva
TR znamená transakční vrstva
SB znamená sériová sběrnice
CONT znamená kontrola
BUS znamená sběrnice
CLOCK znamená hodiny
EVENT znamená událost
reg, ind, resp, conf znamená žádost, indikaci, odezvu a potvrzení

Protokol seriové sběrnice je rozdělen do 3 vrstev, jak ukazuje obrázek.Každá vrstva plní svou specifickou a nezaměnitelnou funkci.

4 a 6ti pinový kabel
Konstrukce kabelu

Fyzická vrstva

Základní rozhraní FireWire (IEEE 1394-1995) se skládá z 6 kabelů. 2x kroucené dvoulinky pro data a z napájení a země.

Charakteristikcá impedance kebelu je 110 ohmů. 
Dodávaný proud je až 1,5 A při 30 V. 
Může dodávat připojenému zařízení až 45 W 
maximální délka spojení je 4,5 m


Fyzikcá vrstva je jediná hmatatelná vrstva. Jsou to totiž fyzicky dráty. Má tři hlavní funkce:

1) Překládá logické symboly, používané linkovou vrstvou, na elektrické signály pro různá média na sběrnici.
2) Garantuje, že právě jeden uzel vysílá data. Dělá to pomocí arbitrace.
3) Definuje mechanické rozhrani sériové sběrnice

Stará se o resynchronizaci a opakování dat a také o automatickou inicializaci sběrnice. Primárně je tato vrstva určená k příjmu a přenosu bitů, arbitraci a stanoveni mechanických a elektrických interfaců. O rovný přistup všech uzlů ke sběrnici se stará právě arbitrace o ní později. Data jsou mezi jednotlivými uzly posílana "zakódována" pomoci data-strobe mechanismu.

Data-srobe kodování

Strobe

Během přenosu paketů po sběrnici může vysílat pouze jeden uzel na sběrnici a tak zařízení mohou pracovat v half-duplex[1] režimu používajíc 2 signály: Data a Strb. Data jsou vysíláná pomocí NRZ[2] kódováni a jsou doplňována Strb signálem, který změní svůj stav, vždy když jdou 2 po sobě bity se stejnou hodnotou (2x 1 nebo 2x 0). Nikdy však nedochází ke změně logické hodnoty v obou kanálech zárověň. Buď se mení data nebo Strb. Přidáním Strb kódu má tu výhodu, že se lehcé získá hodinový takt se slabým jittrem. A to tím, že použijeme funkci XOR[3]


Příklad sitě

Konfigurace sběrnice

Po připojení nebo odpojení nového zařízení se vždy provede reset. Reset je signalizován na všechny uzly pomocí arbitračních signálů. Poté následují 3 kroky rekonfigurace, nutné k tomu abych věděl kdo a kde se mi na sběrnici nachází. Inicializace sběrnice, identifikace uzlů na svěrnici a vlastní identifikace. Uzly jsou rozděleny do skupin: Branch a leaf. Těch může být mnoho, ale je pouze jeden root. Kdykoliv se uzel připojí ke sběrnici nastane nucený reset sběrnice a nastane speciální stav, kdy se smažou věškeré informace o topologii sběrnice a začne další fáze.Po inicializaci sběrnice, má uzel, ať je kdekoliv, jedinou dostupnou informaci a to jesli je branch (více než jeden přímo připojený soused), nebo leaf (pouze jeden soused), nebo je izolován (nepřipojen) Siť složená z branch a leaf je na obrazku.



Identifikace uzlů

Jak je psáno dřive. Po připojení/odpojení uzlu se provede reset sběrnice. následují dva kroky konfigurace.

1. Tree identification - konfigurace sítě a její přeuspořádání na topologii stromu a určení Rootu
2. Self identification - určení čísel jednotlivých uzlů

Tree identification

Po inicializaci sběrnice, začne přidělování ID jednotlivým uzlům. Topologie sítě se předělá na topologii strom, kde se jeden uzel určí jako Root. Všechny ostatní stanice jsou k tomuto Rootu fyzicky připojeny . Směry vždy směřují k Rootu. Směr je určen označením každěho připojeného portu jako "rodič" ( připojen k uzlu blíže Rootu) nebo "dítě" ( připojen k uzlu dále od Rootu). Nezapojené porty jsou označeny jako vypnuté a dále se s nimi nepracuje. Jakákoliv smyčka v topologii je detekována tím, že vyprší time-out na přidělení jednotlivých ID. Uzel, který má všechny porty označené jako děti se stává root. Root může být nastaven i uživatelem.

Self identification

Dalším krokem je určení unikátního ID uzlům, tak aby bylo možne jednoznačně určit jakýkoliv objekt na sběrnici. Je to třeba, k určení přenosových rychlostí jednotlivých tras. Self-ID proces používá deterministický postup. Na připojený port s nejnižším čislem pošle Root "Arbitration Grand" signál a čeká až se mu vrátí "ident_done" signál, indikující, že všechny děti se identifikovaly. Poté pošle Root signál na další vyšší port a opět čeká na identifikaci dětí. Podřízené uzly mají stejný postup identifikování svých podřízených. Ukončení Self ID procesu se indikuje tím, že sběrnice je nečinná v době subaction mezery. Odeslání vlástního ID se provádí pomocí jednoho až čtyř velmi krátkých paketů vysláných na sběrnici. Pakety obsahuji samotné ID a některé informace o řízení. Tyto pakety slyší i ostatní stanice - počítají pakety a když na ně dojde řada, určí podle toho své ID. Prní uzel posílá self-ID paket/y s číslem 0, druhý 1 a tak dále.

Arbitrace

IEEE 1394 podporuje dva typy přenosu. Asynchronní a isochronní. Oba se mohou vysílat zároveň.

1. Asynchronní přenosový mód - umožňuje periodický přenos dat s garantovaným doručením. (potvrzují se ACK paketem - povtrzením o přijetí)
   * Nemá zaručen přístup ke sběrnici v každém přenosovém cyklu. 
   * Maximálně 20% přenosové kapacity je určeno pro tento mód
2. Isochronní přenosový mód - doručování dat s konstatní přeonosovou rychlostí. Nepotvrzují se ACK paketem.
   * Zaručen přenos v každém přenosovém cyklu.
   * Až 80% přenosové kapacity je vyhrazeno pro isochronní pakety.
  

Jaký přenosový mód zvolíme je závíslí na povaze přenášených dat. Pokud chci streamovat video ze své videokamery na internet. Je vhodné si zvolit isochronní mód. Známe potřebnou šířku přenosového kanálu navíc data musí být zasílána v konstantních intevralech. Naopak pokud kopíruju data z CD na pevný disk určitě chci aby přijatá data byla potvrzována a já měl jistotu, že se přenesla všechna data. Proto se hodí asynchronní mód.


Normální kabelové a backplaneové arbitrační metody zaručují, že pouze jeden uzel přenáší data na konci arbitrační periody. Tyto metody poskytují pouze striktní přednostní přístup. Uzel s vyšší přirozenou prioritou (nejvyšší arbitrační číslo, je blíže k rootu daneého kabelu), vždy vyhraje. Normální asynchronní arbitrace pro seriovou sběrnici přidává jednoduché schéma, které rovnoměrně rozděluje možnost přístupu na sběrnici mezi všechny uzly.


Fairness interval.png


Fairness protokol je založen na principu fairness intevralu. Fairness interval se skládá z jedné nebo více period aktivní sběrnice, oddělených krátkou mezerou zvanou subaction gap. Vše je následovánou delší mezerou zvanou "arbitration reset gap". Na konci každe subaction mezery rozhodne arbitrace sběrnice jaký další uzel bude posílat asynchronní pakety. Tento koncept je zobrazen na obrázku. Obecně platí, že přenosy jsou prováděny ve 125 us cyklech. Root vysílá indikační paket "Cycle_Start", který oznamuje, že začal cyklus, na všechny uzly na sběrnici. V zásadě jsou 2 rozdílné druhy arbitrace pro isoschornní a asynchronní přenos paketů.

Pokud jsou pouze asynchronní přenosy dat, vše je řízeno na základů "fair" plánování s prioritami. Po 20 us mezeře (bus idle time), začíná nová možnost přenosu dat. Pokud chce jeden uzlů hovořit, pošle přes ostaní uzly Rootu arbitration request. Jestliže žádá víc uzlů ve stejném cyklu o možnost mluvit, vyhraje ten uzel, který je blíže Rootu. Pokud jsou oba uzly od rootu stejně daleko, tzn jsou oba dva branch (viz obrázek dřive) , potom vyhraje uzel, který má nejnižsí čislo portu v Rootu.(Root má jednotlivé porty, na kterých jsou dalši uzly, očíslovány.). Každý port může hovořit pouze jednou v průběhu daneého cyklu. Po 10 us mezerě se opět rozhoduje o ulzu, který bude moct hovořit. Tak to pokračuje, až do doby, než se vystřídají všechny uzly. Poté následuje 20 us mezera a začíná nové kolo rozhodování.

S isochronními přenosy dat je to složitější. Isochronní přenos musí mít garantovanou šířku přenosového pásma. Každé kolo arbitrace trvá přibližně 125 us a tudíž i šířka pásma je rozdělena na 125 us intervaly. Root vyšle broadcastově cycle start paket, kterí značí začátek arbitračního kola. Všechny uzly, které chtějí vysílat pošlou arbitration request jako předtím. Opět vyhrává uzel, který je blíže k rootu. po 0,04 us idle mezeře se ostaní uzly postupně podělí o sběrnici. Poté, co každý uzel vyšle právě jedenkrát v jednom arbitračním kole svá ischronní data, přichází na řadu asynchronní přenos. Až 80% přenosové kapacity může být přiděleno isochronním paketů, zbytek připadá na asynchronní pakety. Přesáhne-li asynchronní paket přes dobu přenosového cyklu, vysílá root další cycle start paket ihned po isochronních paketech, dokud se nevyrovná zpoždění způsobené přesahem asynchronního paketu. Zpozdění.png



Vtip

Závěr

FireWire bylu vyvinuto jako náhrada paralelní sběrnice. Existuje do dnes v mnoha variantách od základní, která umožňovala přenos rychlostí až 400Mbit/s. Nyní je na trhu FireWire 800 s rychlosti 800Mbit/s s možností rozšíření rychlosti až na 3,2Mbit/s. V plánu jsou rychlosti 1,6 a 3,2 Gbit/s, což by měla být alternativa USB 3.0, které nabízí rychlost až 5 Gbit/s. V porovnání s USB 2.0 bylo v praxi základní FireWire 400 rychlejší ikdyž nabízelo nižší přenosovou rychlost. FireWire se na trhu chytlo hlavně u společnosti Apple, která jakožto tvůrce společně se Sony "cpe" konektory do všech notebooku. Ostaní výrobci spotřební elektroniky používají raději USB, je to dáno tím, že si Apple nárokuje za každe namontované FireWire 0,25 $ u sofistikovanějšich zařízeních 1-2$ Na závěr FireWire "vtípek"

Pro zájemce

Mohu poskytnout kusy kódu v jazyku C. Například self/tree identification atd

Reference

[1]http://read.pudn.com/downloads133/ebook/568600/IEEE%20Std%201394-1995.pdf

[2]http://en.wikipedia.org/wiki/IEEE_1394

[3]Adreson, Don: FireWire System Architecture. Addison-Wesley 1999

[4]http://files.keyfax.com/mlancentral/firewire.pdf

[6]IEEE Standard for a High-Performance Serial Bus



Poznamy ze cviceni

ctrl -z pozastavi program

bg posle proces na pozadi

fg posle z pozadi do popredi


Prikazy: xwininfo - zobrazi informace o okne do ktereho kliknu sudo apt-get update; sudo apt-get -y install libx11-dev - pri zadani do terminalu nainstaluje balicek libx11-dev sudo apt-get update; sudo apt-get -y install emacs xwd|xwud - po zadani prikazu kliknu na okno a to se mi "zkopiruje" xwd >soubor - zkopiruje mi to na co kliknu a vytvori z toho soubor xwud<soubor - vyvolani toho co jsem ulozil file soubor - vyhodi mi informace o tom vytvorenem souboru soubor


xterm -fn 12x24& spustim okno 12x24


http://verydemotivational.files.wordpress.com/2010/03/fthatdogp1.jpg

Helca a SliTaz

Návrh tématu semestrální práce:FireWire


cast 1. http://www.imagehosting.cz/?v=helenka.jpg

cast2 http://www.imagehosting.cz/?v=helca.jpg


QMON paralll enviroment MPI na paralelni procesy

cat>soubor echo start sleep 20 echo konec

ctrl d

potom sh soubor

vytvorim program do souboru a pote spustim

chmod +x soubor vytvori spustitelny soubor

./soubor            spusteni


qsub soubor vidim bezici proces v gmon job control

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje