autor: Ing. Robert Krejčí, kategorie: Hardware

USB 3.0

USB 3.0
USB 3.0
Bity a bajty. Jak to je s rychlostí?

Nedávno jsem na jednom známém webu, který se zabývá hardwarem, narazil na článek s diskuzí o rychlosti přenosu dat u sběrnice USB 3.0. Protože se nejen někteří čtenáři neuměli dobře zorientovat v používaných pojmech, ale i sám autor si zřejmě nebyl jistý, jak to vlastně je, napsal jsem krátký článek o rychlosti přenosu dat u sběrnice USB.

Pod zmíněným článkem vznikla diskuze o tom, zda je rychlejší sběrnice USB 3.0, nebo IEEE 1394 (FireWire).

U těchto sběrnic má smysl uvažovat datový tok pouze v bitech za sekundu. Tedy porovnejme 5000 Mbit/s u sběrnice USB 3 proti třeba 800 Mbit/s u sběrnice IEEE 1394.

Autor zmíněného článku se pokouší vypočítat nějakých "příjemných 625 MB/s" (že by 5000 vydělěných osmi?!), což naprosto nedává smysl, protože USB stejně jako IEEE 1394 nebo Ethernet atd. jednak má nějaké režijní náklady na provoz sběrnice, což ubere nějaký ten megabit za sekundu, a pak také, zvláště ve specifikaci USB, žádné zařízení nedostane přidělěnou plnou šířku pásma. Takže skutečné vyjádření v bajtech za sekundu pak může být třeba poloviční a navíc bude kolísat podle momentálního vytížení sběrnice.

U těchto sběrnic se v žádném případě nejedná o klasický sériový přenos dat, jak ho známe např. ze specifikace RS-232 nebo MIDI:

  • 1 startbit (typicky sestupná hrana signálu)

  • (někdy 1 bit signalizující adresu = log. 1, nebo data = log. 0)

  • 8 datových bitů

  • 1 stopbit (typicky vzestupná hrana signálu)

Režijní náklady

Zjednodušeně řečeno, u sběrnice USB jde o to, že hostitel, který je vždy právě jeden, tj. většinou PC, se periodicky dotazuje postupně všech připojených zařízení, zda chtějí něco říct nebo zda chtějí nějaká data od hostitele. Interval dotazování je v případě nízké (1,5 Mbit/s) a plné (12 Mbit/s) rychlosti jedna milisekunda. V případě vysoké rychlosti (480 Mbit/s) to je osmina milisekundy, tj. 125 mikrosekund. Žádné zařízení nedostane přidělený celý tento časový interval, i kdyby bylo připojeno jako jediné zařízení na sběrnici.

Dotazování hostitele, odpovědi připojených zařízení a případné potvrzování o úspěšném přijetí dat zabírají vždy určitou část šířky pásma. Tomu se běžně říká režijní náklady.

Pakety USB

Další důvod, proč nelze jednoduše počet megabitů za sekundu vydělit osmi, a tím získat počet bajtů za sekundu, je následující. I kdybychom pro zjednodušení uvažovali pouze datové pakety (existují i další: žetonypotvrzovací), tak i každý datový paket má 16-bitové záhlaví, dále určitý počet osmibitových bajtů, 16-bitový kontrolní součet a nakonec signalizaci End of Packet (EOP) o délce dvou bitových intervalů. I samotný datový paket tedy v sobě zahrnuje určité režijní náklady.

Bajty za sekundu

Jediný případ, kdy má smysl (spíše pro přibližnou představu) hovořit o bajtech za sekundu, je tehdy, když průměrujeme probíhající datový tok a chceme vědět, jak asi rychle probíhá komunikace a kdy přibližně dojde k přenesení celého datového souboru. Typicky to je v případě, kdy stahujeme něco z internetu. Když např. mám rychlost připojení 512 kbit/s, tak rychlost stahování souborů mi obvykle kolísá kolem 46 kilobajtů za sekundu. Mimochodem, správu stahovaných souborů má výborně koncipovanou prohlížeč Opera.

Literatura

  • Gook, M.: Hardwarová rozhraní – Průvodce programátora, Computer Press, 2006

  • www.usb.org

Související články:

 
{e_like}
 
 
Nahoru