|Originally published February, 2001|
|¿ 2001, 2005 Carlo Kopp|
The IEEE 1394 Firewire standard is increasing in popularity, especially in consumer oriented and desktop products. Should the predictions of Apple, the originators of the Firewire standard, come to fruition, then Firewire will supplant SCSI, IDE, RS-232C, parallel I/O ports and every other manner of digital interface between a motherboard and a peripheral device. This is indeed a very ambitious claim, and thus deserves a little closer scrutiny. In this month's issue we will take a closer look at this standard and the longer term implications of its growth in the commodity computing market.
IEEE 1394 Overview
The IEEE 1394-1995, 1394a and 1394b Firewire standards are almost unique amongst current peripheral interconnect schemes, in that they combine a standard for cable, optical fibre and backplane interconnects.
Firewire is a serial bussing technology. In its basic form, the transmission medium is a composite cable with two shielded or unshielded twisted pairs for data. Two of six wires are used for power distribution to transceivers along the serial bus, and the two twisted pairs are used for data transmission, with the remaining two of eight connector pins committed to shielding. Power is distributed at a voltage level between 8 and 40 Volts DC, one wire is used for a common ground and the other for the power voltage, current load is limited by the standard to a robust 1.5 Amperes. The aim of the power distribution scheme is to enable the interfaces on devices which are powered down to actively repeat the 1394 signal through the bus. Most implementations will regulate the bus power down to 5V or 3.3V to cleanly power the tranceiver device.
The nominal cable impedance for Firewire is 110 Ohms, which is a typical number for a high speed twisted pair cable. Cable quality is an important issue for all high speed serial transmission schemes, and Firewire is no exception with current versions supporting hundreds of Megabits/s and future versions planned to support Gigabits/s. The nominal termination impedance is 112 Ohms. The cable layout is depicted in Figure 1 (http://www.adaptec.com/technology/standards/1394bus.html), showing the two shielded twisted pair cables, two power carrying wires, and the external shield. The standard connector is derived from the GameBoy design.
At the lowest, physical transmission layer, the Firewire standard uses differential signalling on twisted pairs, with nominal signal levels for 0 and 1 basically the same as TTL/HCMOS logic. In this respect it is very close to the well established RS-422/485 standard but optimised to run about 10 times faster over shorter distances, in current incarnations. The optimised design cable length between devices using a lightweight cable is 4.5 metres, or more with a high quality cable type.
The standard supports hot plugging/unplugging of devices at the hardware level, and dynamic allocation of devices at the protocol level.
Where Firewire becomes much more interesting is in the bus protocol and bus topology model, where it departs from most of the established commodity bussing schemes. Firewire is not a conventional tapped bus, and is designed around a tree or chain structured model. The latter topology will support up to 16 devices, daisy-chained in series, with each node or device repeating to its neighbour nodes. This model is designed to do away with the speed limiting impedance mismatch problems of conventional tapped busses, since each cable segment is terminated and has only two devices attached, one at either end of the cable.
A typical Firewire device would have three connectors, to allow it to be used in a tree topology with one parent and two child nodes, however many current devices have only one or two connectors, for use as end nodes in a chain, or as individual nodes in a daisy chain. While the standard permits up to 27 connectors, typical interface chips such as the Texas Instruments TSB12LV01B/TSB41AB3 use only three.
Firewire topology rules forbid loops in the topology of a bus, the only valid topologies are non-cyclic, such as trees and chains. A Firewire bridge is a protocol adaptor designed to interface Firewire to another bus standard such as SCSI, PCI, ATA/ATAPI, and would frequently be used as the root node in a Firewire tree, corresponding to the host interface. Bridges are considered important as they provide a smooth transition path between Firewire hardware and older technology busses.
The basic topology rules also apply to the embedded backplane variant of Firewire, which also requires a bridge device to couple to the cable variety.
Firewire uses an interesting addressing model, which is closer to a backplane address model than a traditional cabled bus model.
The bus address comprises 64 bits in total, of which 10 bits are reserved for a Bus ID, 6 bits for a Node ID and 48 bits for individual addresses. This model is designed to allow the addressing of up to 1023 busses, with up to 63 nodes each, in which 281 Terabytes of memory can be addressed. By using a memory-like addressing model, the designers of Firewire opted to radically depart from the established tradition in serial and parallel cabled busses, where the device addressing model is typically segregated from data addressing models. The use of a memroy mapped model is particularly useful when designing bridges to interface with other bus protocols, e.g. PCI, Sbus or VMEbus, and simplifies the design of device drivers and bootPROM probing code.
The current IEEE 1394a standard bus transmits data packets at clock speeds of 98.304, 196.608, and 393.216 Megabits/s, designated S100, S200 and S400. These in turn yield burst mode throughput rates of about 12, 24 and 48 Megabytes/s. In comparison with an 8-bit SCSI bus, Firewire must be clocked 8 times faster to achieve similar throughput, against a wide 16-bit SCSI 16 times faster. Firewire interfaces are designed to support the concurrent operation of devices clocked at S100, S200 and S400 rates.
Unlike most peripheral busses and collision detection LAN bus
standards which are
In summary, Firewire at the lowest levels is a differential,
packet oriented high speed bus, with a memory mapped addressing model
which radically departs from traditional parallel peripheral busses, and
LAN bus protocols. In a sense it overlaps the functions of LAN and
peripheral storage busses, yet is sufficiently unique not to fit into
either traditional category. High transmission speed is achieved by the
use of high performance twisted pair cable and driver/receiver hardware.
The Protocol Layers and Isochronous Operation
The IEEE 1394 protocol model has designed to comply with the ISO/IEC 13213:1994 [ANSI/IEEE Std 1212, 1994 Edition] Control and Status Register model at the Transaction layer. In conformance with the layered ISO model for protocol stacks, Firewire uses three layers:
When a Firewire bus comes out of reset, it will go through an initialisation sequence, during which previously allocated isochronous resources are freed up, the bus topology is identified, node IDs are assigned to nodes, and a cycle master and resource manager for isochronous operation are arbitrated. The standard allows peer to peer and master slave transfers on the bus.
The isochronous resource allocation scheme is of considerable interest, since it is the key to Firewire's dominance in the digital multimedia market, and will be the decisive feature as the bus penetrates into realtime industrial control, automotive and commercial/military avionics markets. All of these applications require highly predictable transmission times for datagrams.
Firewire achieves its isochronous function by the reservation of bus bandwidth, to which end a BANDWIDTH_AVAILABLE register is maintained to show what bandwidth remains for additional isochronous devices. Bandwidth is measured and allocated in bandwidth allocation units. A total of 6,144 units fit into a 125 ms cycle. Nodes which request an isochronous channel from the resource manager are assigned channels (0 to 63) from the CHANNELS_AVAILABLE register, and the channel identifier is then embedded in the isochronous packet. Once a node relinquishes an isochronous channel, the resource manager will reallocate its assigned channel number and bus capacity.
The Gigabit Firewire or IEEE 1394b standard is now maturing and we will soon see it supplant the established standard in more demanding applications. The aims of this evolved standard are ambitious, with operation over distances of 50-100 metres and at burst data rates of 800 - 1600 Megabits/s, 3200 Megabits/s being planned in as a growth feature.
Achieving the additional performance, while retaining backward compatibility, proved to be a difficult task. The 1394b standard incorporates important changes in the connection model, arbitration, signalling and encoding.
In 1394b-speak, the new high speed signalling and arbitration protocol is designated Beta Mode, while the old protocol is designated DS Mode. A bilingual port will support both Beta and DS or legacy modes.
The new standard supports operation over Shielded Twisted Pair (STP), UTP5, Plastic Optical Fibre (POF), Hard Polymer Clad Fibre (HPCF) and Glass Optical Fibre. An important feature is that the binary encoding and signalling scheme is identical for all media.
In operation, 1394b will support continuous full-duplex operation of the bus. To meet demanding emission leakage standards, the data is scrambled and fed through a modified 8B10B encoder to guarantee that the signal is DC balanced. The latter is important to ensure that large common mode voltages are not produced on the cable. A demanding Bit Error Rate requirement of 10^-12 was mandated.
The STP interface is intended for short haul use, and compatibility with legacy 1394a hardware. The connectors for Beta Mode, bilingual and legacy hardware will differ. This will be the most common interface for use with internal and external peripherals in computer equipment.
The UTP5 interface, using Cat-5 cable and RJ45 connectors, is intended for runs of up to 100 metres in an intrabuilding environment. The transmit path is on connector pins 1 and 2, the receive path on 7 and 8. Electrical signalling uses a peak to peak voltage of 1 Volt, and adaptive equalisation is used to get the required bandwidth from the cable medium. This scheme is where 1394b will overlap with established LAN hardware, and at 1600 Megabits/s it will compete quite effectively against LAN hardware in many applications, such as host/peripheral clusters and storage area networks.
The plastic optical fibre variants are designed to complement the UTP5 variant, by providing a low cost alternative which is free of emission and common mode or crosstalk problems. The standard supports two plastic fibre formats with an identical two fibre PN connector. The shorter ranging and cheaper ranging POF variant uses a 1000 micron step index plastic fibre usable to 50 metres, the HPCF variant uses as 225 micron graded index fibre.
Finally, the best speed performance is provided by using a 50 micron graded index glass fibre, exploiting fibre channel and Gigabit Ethernet transceiver technology and an LC connector format. This variant is to provide the growth path to S3200 (3.2 Gigabits/s).
The biggest performance hindrance encountered in the design of the 1394b specification was due to arbitration gaps. In 1394, a device must wait for an idle bus, then arbitrate to acquire the bus, transmit its packet, and then idle awaiting the arrival of the acknowledgement (ACK) packet from the recipient device. The gap time between the end of the packet and the arrival of the ACK in 1394 must be greater than the round trip propagation delay across the bus topology.
This did not prove to be a problem with large packet sizes, even with up to 16 hops to cover in a daisy chain bus. However, since this is a fixed overhead incurred per packet, as the packet size is decreased it bit increasingly into the available transmission time. A model published by Whitby-Strevens showed only 25% of the bus throughput was available with 16 hops and 64 byte packets at 100 Megabits/s, i.e. three quarters of bus time was idled away. Driving the bus speed up to 400 Megabits/s pushed this down to less than 10% of bus throughput.
Some measures were taken in the 1394a standard to address this problem, involving manipulation of the arbitration scheme, concatenation of data packets to reduce the average overhead, and other measures.
These were not found to be adequate for the 1394b environment, and thus the full duplex model was adopted, in a large part to allow the pipelining of arbitration requests. In additional changes were made to the arbitration protocol.
An additional feature under consideration was loop healing, intended to automatically identify loops in the bus and break these to achieve a valid topology. In effect, the 1394b standard would be idiot proof.
Other Firewire Variants
The IEEE 1394-1995 spec defined the Firewire standard, and the subsequent 1394a standard plugged numerous holes, in effect becoming a bugfix standard with additional extensions. The aim of 1394a was in part to rapidly field the S800 speed variant to accommodate contemporary disk drives, in competition with newer UltraSCSI variants. The 1394b standard then extends 1394a to further improve speed and acheivable distance, thereby accommodating applications currently covered by Fiber Channel and Gigabit Ethernet.
Other variants exist. The 1394.1 standard encompasses four wire variants of the standard such as those used with Sony digital camcorders, digital VCRs and other consumer products. The standard also defines bridge behaviour, with a view to covering consumer household applications.
Somewhat more controversial is the 1394.2 standard, being developed by Apple, Sun Microsystems and Intel. This standard is intended for clustering CPUs at Gigabits/s speeds, and departs from the established protocol. It is frequently referred to as SCI-Lite, after the IEEE Scalable Coherent Interface (SCI) standard, aimed at high performance host to host links.
Firewire vs USB
The USB standard is frequently portrayed as a cheaper and more practical alternative to Firewire. This is somewhat misleading, since the USB protocol is designed for quite different applications. While Firewire is clearly targeted at performance intensive uses, and indeed has been pushed out to seduce the Fibre Channel, UltraSCSI and Gigabit Ethernet user base, USB is aimed at much slower applications with the aim of simplifying the cabling to modems, mice, keyboards, trackballs, joysticks, tablets, CD-ROMs, printers and other miscellania.
At a nominal 12 Megabits/s, USB will have great difficulty in successfully competing against Firewire in its primary multimedia and storage device niches. While the standard could be extended, it is questionable whether this is worthwhile given the head start held by the Firewire community.
Reading the marketing literature surrounding Firewire, one would quickly reach the conclusion that everything should be networked using Firewire, and indeed it is the universal connectivity panacea which solves all such problems!
Reality at this time is a little more mundane. Firewire is well established in two market niches. The first is digital video and multimedia, where its throughput and robust isochronous transmission support will be hard to beat. It is likely to eventually usurp this market as the standard, being used to interconnect desktop machines, digital televisions, DVD players, hi-fi systems and any other devices which eventually find their way into the household entertainment complex.
The second market where Firewire is becoming well established is as a peripheral interconnect for Apple machines and Apple clones. Given the availability of PCI and Sbus adaptors, we may see this niche expand to encompass other categories of desktop machine. For most of the medium speed peripherals in the market, an S400 or S800 Firewire interface will be more than adequate. The big question is the longer term competitiveness of Firewire in the critical high speed fixed disk market, where SCSI reigns supreme at the performance end of market.
Firewire as a serial bus will always be easier to cable than a parallel SCSI bus, but it will be handicapped by the need to be clocked at 8, 16 or 32 times the speed of a competing SCSI variant to acheive the same throughput. The most recent SCSI variants use a tree topology with repeaters, thereby bypassing the nasty bottlenecks resulting from multidrop technology. While Firewire uses only four wires for data transmission, the quality of the cable used must be significantly better than SCSI to achieve comparable throughput. A 1394b adaptor will be much more complex, in Silicon, than a high speed low voltage differential SCSI equivalent. Of course, the next step beyond copper Firewire and SCSI is serial optical fibre, which then equalises the speed advantage and pushes the game into protocol issues, flexibility, ease of use and price. Attempting to guess that long term outcome is a rather hazardous game from which I will refrain!
At this stage the outcome of a SCSI vs Firewire storage bus contest is unclear. IDE is likely to fall victim to the depredations of the SCSI/Firewire duo, as this older bus is arguably on its last legs in terms of technology.
Where Firewire promises to produce big changes is in automotive and aviation applications. For linking various systems in a car, bus or truck, and integrating entertainment systems, Firewire is well suited. The IDB-1394 specification will adapt Firewire to this environment.
Firewire has already found its way into the aviation market, with passenger cabin entertainment systems built around Firewire now being fitted to aircraft. A Firewire based systems allows passengers to hook their laptops or other devices into the airliner's internal entertainment systems.
Where it promises to produce a much bigger impact is in the replacement of the now somewhat decrepid Mil-Std-1553B serial mux bus, and its commercial ARINC clone, as the primary interconnection medium for cockpit displays, navigation equipment, communications equipment, and control panels. The existing serial bus technology is limited to the order of a Megabit/s which is clearly inadequate for handling the graphics intensive modern cockpit. As pressure will increase to integrate night vision equipment and millimetric wave imaging equipment into commercial glass digital cockpits, Firewire may become the standard of choice, since it provides isochronous transmission modes necessary for both digital video and real time sensitive messages where timing does matter, yet it provides performance well suited to the application in coming years.
There is no nominated successor at this time for the well entrenched Mil-Std-1553B/ARINC standards package, and its performance is so woeful that proprietary high speed serial links are being fudged in to systems, or bird's nests of dedicated point-to-point Mil-Std-1553B/ARINC busses are being kludged together to plug the throughput gap. The US Air Force did nominate the IEEE SCI standard as the primary candidate for its latest fighter project (JSF), but that project is almost a decade away from production, and its adoption of SCI in no way addresses the issue of how to get more bandwidth into the established commercial and military aircraft fleets, most of which will need ongoing avionic upgrades over the next decade.
Firewire is now making its first forays into the industrial process control and instrumentation markets, and at least one VME-1394 adaptor is now in the market. If rated for the temperature and vibration environment, VME-1394 adaptors could become the killer interface product via which Firewire establishes itself in the commercial and military avionic, military embedded computing and industrial markets.
On current indications, Firewire faces a bright future, although it may be difficult to determine at this time exactly which niches it will come to dominate over time. Vendors of other bus products should take note - ignore Firewire at your peril!
|$Revision: 1.1 $|
|Last Updated: Sun Apr 24 11:22:45 GMT 2005|
|Artwork and text ¿ 2005 Carlo Kopp|