
On many implementations, particularly those like PCs and Macs using the popular OHCI, the mapping between the FireWire 'Physical Memory Space' and device physical memory is done in hardware, without operating system intervention. (While 8-bit symbols can encode a maximum of 256 values, 10-bit symbols permit the encoding of up to 1024.) Symbols invalid for the current state of the receiving PHY indicate data errors. This is possible due to the 'surplus' symbols afforded by the 8B/10B expansion. An additional function of the coding scheme is to support the arbitration for bus access and general bus control.

This gives the packet the ability to have at least two 1s, ensuring synchronization of the PLL at the receiving end to the correct bit boundaries for reliable transfer. Then, the different partitions are sent through a 5B/6B encoder for the 5 bit partition and a 3B/4B encoder for the 3 bit partition. The Running Disparity calculator attempts to keep the number of 1s transmitted equal to 0s, thereby assuring a DC-balanced signal. The partitioned data is sent through a Running Disparity calculator function.

8B/10B encoding involves expanding an 8 bit data word into 10 bits, with the extra bits after the 5th and 8th data bits.

Beta mode is based on 8B/10B (from Gigabit Ethernet, also used for many other protocols).
