Knapt havde vi lært at stave til USB, før vi skal lære navnet på en ny busarkitektur. Kristian Hansen kigger nærmere på den nye turbobus ved navn FireWire.
FireWire er oprindeligt udviklet af Apple, og alene det skulle jo få de fleste pc-ejere til at løbe skrigende væk, men det er der faktisk ingen grund til. Gamle pc-støtter som Microsoft og Intel har allerede planer om at indbygge FireWire i deres produkter, så måske er den virkeligt værd at kigge nærmere på.
Jamen, vi har jo USB…
Den væsentligste forskel på USB og FireWire er hastigheden. USBs maksimumshastighed er 12Mbit/s, mens FireWire har mulighed for at overføre op til 400 Mbit/s, hvilket langt overgår endda Ultra-SCSI med 40 Mbit/s.
To forskellige versioner
Der findes to udgaver af USB. Den ene er en cable virtuel bus, mens den anden er en backplane bus, der bruges til at forbinde de enheder, der tilsluttes eksternt til pc’en. Det er cable bussen, der har overførselshastigheder på op til 400 Mbit/s, mens backplane-udgaven opererer ved hastigheder op til 50 Mbit/s.
Seriel opbygning
Ligesom USB er FireWire en seriel bus. Umiddelbart skulle man tro, at det var en ulempe sammenlignet med den parallelle struktur, hvor flere bits kan overføres samtidigt. Den parallele arkitektur har imidlertid en altoverskyggende ulempe. Man kan simpelthen ikke få det op på den høje hastighed. Når flere bits skal transmitteres samtidigt, er man nødt til at sørge for, at de bits, der hører sammen, ankommer samtidigt i den anden ende af kablet. Det betyder, at man ikke kan sende bits ved den samme hastighed, som man kan, hvis man kun skal holde styr på en enkelt bit ad gangen. Den anden måde man kan forøge hastigheden ved en parallel bus på, er ved at lægge flere ledninger i kablet. Allerede nu har et SCSI kabel 50 ledninger, og et Wide SCSI har 68. Hvis man skulle tilføje så mange ledninger, at den parallelle bus kunne overføre data med samme hastighed som den serielle, skulle man virkeligt tilføje mange, og ville ende med et særdeles tykt kabel.
Eksperter indenfor I/O-teknologi tvivler på, at den parallelle teknologi vil blive brugt i pc’ere på den anden side af årtusindskiftet.
Plug and play
Ligesom USB understøtter FireWire plug and play. Ikke alene identificeres enhederne på bussen automatisk, men det er også muligt at tage enheder af og sætte andre enheder på, mens computeren kører. Det fænomen kaldes hot-pluggability. Antallet af enheder på FireWire-bussen er begrænset til 63 enheder og længden må ikke overstige 4,5 meter, men det skulle vel ikke give problemer for den gennemsnitlige bruger.
Derudover er det nemt at sætte enheder til bussen. Stikket svarer stort set til de jack-stik, man kender fra sin hovedtelefon, og det er vel de færreste, der har oplevet problemer med det. Faktisk siges det, at designerne af bussen blevet inspireret af designet af GameBoy.
Opbygningen
FireWire-arkitekturen er lagdelt inspireret af OSI-modellen. Det er imidlertid kun tre af OSI-modellens lag, der er omtalt i specifikationerne. Det drejer sig om det fysiske lag, link-laget og transaktionslaget. Det fysiske lag håndterer de signaler, FireWire-bussen bruger. Link-laget tager de rå signaler fra det fysiske lag og konverterer dem til pakker i overensstemmelse med IEEE-1394-standarden. Transaktionslaget tager pakkerne fra link-laget og præsenterer dem for de programmer, der anvender bussen eller de enheder, der er tilsluttet den. Det gøres blandt andet ved at understøtte Request-Response-protokollen, der kort fortalt vil sige, at de to deltagende parter i kommunikationen har hver deres opgave. Den ene stiller en forespørgsel, og modtager svaret herpå. Den anden modtager en forespørgsel og sender det passende svar herpå. Det kan for eksempel være et program, der har brug for at læse fra harddisken. Så vil forespørgslen være “hvilken data ligger på denne position på harddisken”. Forespørgslen vil – ved hjælp af de lavereliggende lag – blive sendt fra programmet til harddisken, der vil finde de pågældende data og returnere dem til programmet.
De funktioner, der skal udføres af link-laget og en del af de funktioner, der skal udføres i transaktionslaget, kan varetages af link-chips. De øvrige funktioner i transaktionslaget skal varetages af software.
De to forskellige udgaver af FireWire er kompatible fra link-laget og op.
Når bussen bootes
Ligesom computeren har sin boot-funktion, har FireWire også en. Det i denne fase, at alle enhederne på bussen identificeres og tildeles deres eget unikke id. Bussen bootes, når computeren startes, eller når der tages enheder af bussen, eller når nye enheder tilsluttes – det kaldes et bus reset. Ved et bus reset skannes bussen for enheder. Her opbygges et navneregister – Name Registry – der indeholder enhedernes id og deres driver-version. Bruger man en Macintosh kan man regne med, at Mac OS nu selv vil indlæse de passende drivere – Windows 95 og NT indeholder ikke tilsvarende funktioner, men det kan vel forventes i næste version af operativsystemerne. Især set i det lys, at Microsoft har inkluderet FireWire-understøttelse som et krav til computere, der skal understøtte Microsofts PC97-standard – og det skal man for at kunne reklamere med, at computeren er “designet til Windows 95”.
Synkron eller asynkron
Der findes to former for overførsel på FireWire-bussen: asynkron og synkron. Ved den synkrone overførsel garanteres enheden en bestemt overførselshastighed. Det har for eksempel betydning ved optagelse af video – her bliver det hele håbløst, hvis overførselshastigheden ikke er høj nok til at kunne overføre billederne lige så hurtigt, som kameraet kan optage dem. Den garanterede overførselshastighed bliver kontrolleret af et register ved navn BANDWITH_AVAILABLE, der – meget logisk – angiver den ledige båndbredde. Hvis en enhed ønsker en synkron overførsel med en bestemt hastighed, bliver det kontrolleret, om den ønskede båndbredde er til rådighed. Er dette ikke tilfældet, forventes det, at enheden sender sit ønske igen, indtil den ønskede båndbredde er der.
Ved den asynkrone overførsel garanteres overførselshastigheden ikke. Denne overførselsform anvendes af enheder, der ikke synes, det er vigtigt, om deres data kommer fra om et eller to millisekunder. Det er for eksempel gældende for tastaturer.
Den teoretiske og den reelle hastighed
FireWire-specifikationerne angiver en maksimal overførselshastighed på 400 Mbit/s og allerede nu snakker man om overførselshastigheder på 800 eller 1600 Mbit/s. Virkeligheden er bare, at denne hastighed næppe kan opnås – en mere rimelig hastighed er nok 100 Mbit/s. Desuden skal man også lægge mærke til, at alle enheder på bussen kommunikerer med samme hastighed, som den langsomste aktive enhed, der er tilsluttet. Men selvom FireWire måske kun kører med halvdelen af de 100 Mbit/s, er det er jo stadigvæk væsentlig hurtigere end USB. Om FireWire med tiden også kan slå den gode gamle PCI-bus af banen, er en helt anden sag. PCI-bussen har en maksimal overførselshastighed på 1 gigabit/s, og selvom der allerede nu er tale om nye versioner af FireWire med væsentligt højere overførselshastigheder, er det nok for tidligt at erklære PCI-arkitekturen for død.
Er USB død?
Indtil videre ser det hele jo meget lyserødt ud, men FireWire har også sine problemer. Det største er nok, at den ikke er her. Den er godt nok indbygget i de nyere Macintosh-maskiner, men det gør den jo ikke til en succes. Godt nok forventes den, at blive indbygget i de nyere bundkort fra Intel, men i skrivende stund venter vi stadig i spænding. Spænding er der også om, hvornår Microsoft kommer med et operativsystem, der understøtter FireWire. Kommer det i den første version af Windows 98 eller skal der installeres en opdatering? USB er her allerede. Windows 95 understøtter den – hvis man installerer en service pack – der findes adskillige pc’ere i de danske hjem, der understøtter USB, og enheder, der kan sluttes til den er her også.
Endeligt skal man jo også huske, at selvom USB ikke kan leve op til FireWires imponerende overførselshastighed, er den 12 Mbit/s stadigvæk væsentligt højere, end de 2 Mbit/s, den gode gamle parallelport overfører.
Konklusion
Selvom FireWire umiddelbart har fordelene til at slå USB ud af markedet, synes det ikke sandsynligt, at den gør det. USB har allerede fået et så godt greb på markedet, at den næppe giver sig godvilligt. Sandsynligvis bliver markedet del, så USB får de enheder, der ikke behøver den høje overførselshastighed – tastaturer, mus, printere, modems og lignende. Til gengæld vil de enheder, der kræver høj overførselshastighed – videokameraer og lignende – vil benytte FireWire og den synkrone overførsel. Selvom USB og FireWire begge lover, at alt kan sættes til samme bus, tyder meget på, at vi også i fremtiden skal have flere forskellige stik bag på computeren.
FireWire og IEEE
Selvom FireWire oprindeligt blev udvikling af Apple, kontrolleres standarden nu af IEEE. Derfor har FireWire også fået et IEEE-nummer –IEEE-1394-1995. At der er tale om en standard betyder imidlertid ikke, at der er total enheden om opbygningen. Apple, Intel og Sun arbejder på en ny version af FireWire – 1394.2 – der leverer væsentligt højere overførselshastigheder. Problemet er blot, at de stik, der skal slutte enheder til bussen, ikke er det samme i 1394 og 1394.2. Derfor er en stor del af hardwarefabrikanterne imod den nye standard – de vil hellere videreudvikle den oprindelige standard.