PRELIMINARY
CYP32G0401DX
order, and the y is the decimal value of the binary number com-
posed of the bits H, G, and F in that order. When c is set to K, xx
and y are derived by comparing the encoded bit patterns of the
Special Character to those patterns derived from encoded Valid
Data bytes and selecting the names of the patterns most similar to
the encoded bit patterns of the Special Character.
ANSI X3.230 (FC-PH) Codes and Notation
Information to be transmitted over a serial link is encoded 8
bits at a time into a 10-bit Transmission Character and then
sent serially, bit by bit. Information received over a serial link
is collected ten bits at a time, and those Transmission Charac-
ters that are used for data (Data Characters) are decoded into
the correct eight-bit codes. The 10-bit Transmission Code sup-
ports all 256 8-bit combinations. Some of the remaining Trans-
mission Characters (Special Characters) are used for func-
tions other than data transmission.
Under the above conventions, the Transmission Character
used for the examples above, is referred to by the name D5.2.
The Special Character K29.7 is so named because the first six
bits (abcdei) of this character make up a bit pattern similar to
that resulting from the encoding of the unencoded 11101 pat-
tern (29), and because the second four bits (fghj) make up a
bit pattern similar to that resulting from the encoding of the
unencoded 111 pattern (7).
The primary rationale for use of a Transmission Code is to
improve the transmission characteristics of a serial link. The
encoding defined by the Transmission Code ensures that suf-
ficient transitions are present in the serial bit stream to make
clock recovery possible at the Receiver. Such encoding also
greatly increases the likelihood of detecting any single or mul-
tiple bit errors that may occur during transmission and recep-
tion of information. In addition, some Special Characters of the
Transmission Code selected by Fibre Channel Standard con-
sist of a distinct and easily recognizable bit pattern (the Special
Character COMMA) that assists a Receiver in achieving word
alignment on the incoming bit stream.
Note: This definition of the 10-bit Transmission Code is based
on (and is in basic agreement with) the following references,
which describe the same 10-bit transmission code.
A.X. Widmer and P.A. Franaszek. “A DC-Balanced, Parti-
tioned-Block, 8B/10B Transmission Code” IBM Journal of Re-
search and Development, 27, No. 5: 440−451 (September, 1983).
U.S. Patent 4,486,739. Peter A. Franaszek and Albert X. Wid-
mer. “Byte-Oriented DC Balanced (0.4) 8B/10B Partitioned
Block Transmission Code” (December 4, 1984).
Notation Conventions
Fibre Channel Physical and Signaling Interface (ANS X3.230−
1994 ANSI FC−PH Standard).
The documentation for the 8B/10B Transmission Code uses
letter notation for the bits in an 8-bit byte. Fibre Channel Stan-
dard notation uses a bit notation of A, B, C, D, E, F, G, H for
the 8-bit byte for the raw 8-bit data, and the letters a, b, c, d,
e, i, f, g, h, j for encoded 10-bit data. There is a correspon-
dence between bit A and bit a, B and b, C and c, D and d, E
and e, F and f, G and g, and H and h. Bits i and j are derived,
respectively, from (A,B,C,D,E) and (F,G,H).
IBM Enterprise Systems Architecture/390 ESCON I/O Inter-
face (document number SA22−7202).
8B/10B Transmission Code
The following information describes how the tables are used
for both generating valid Transmission Characters (encoding)
and checking the validity of received Transmission Characters
(decoding). It also specifies the ordering rules to be followed
when transmitting the bits within a character and the charac-
ters within the higher-level constructs specified by the stan-
dard.
The bit labeled A in the description of the 8B/10B Transmission
Code corresponds to bit 0 in the numbering scheme of the FC-
2 specification, B corresponds to bit 1, as shown below.
FC-2 bit designation—
HOTLink D/Q designation— 7
8B/10B bit designation—
7
6
6
G F
5
5
4
4
E
3
3
D
2
2
C
1
1
B
0
0
A
H
Transmission Order
To clarify this correspondence, the following example shows
the conversion from an FC-2 Valid Data Byte to a Transmission
Character (using 8B/10B Transmission Code notation)
Within the definition of the 8B/10B Transmission Code, the bit
positions of the Transmission Characters are labeled a, b, c,
d, e, i, f, g, h, j. Bit “a” is transmitted first followed by bits b, c,
d, e, i, f, g, h, and j in that order. (Note that bit i is transmitted
between bit e and bit f, rather than in alphabetical order.)
FC-2 45
Bits: 7654 3210
0100 0101
Valid and Invalid Transmission Characters
Converted to 8B/10B notation (note carefully that the order of
bits is reversed):
The following tables define the valid Data Characters and valid
Special Characters (K characters), respectively. The tables
are used for both generating valid Transmission Characters
(encoding) and checking the validity of received Transmission
Characters (decoding). In the tables, each Valid-Data-byte or
Special-Character-code entry has two columns that represent
two (not necessarily different) Transmission Characters. The
two columns correspond to the current value of the running
disparity (“Current RD−” or “Current RD+”). Running disparity
is a binary parameter with either the value negative (−) or the
value positive (+).
Data Byte Name
D5.2
Bits:ABCDEFGH
10100 010
Translated to a transmission Character in the 8B/10B Trans-
mission Code:
Bits: abcdeifghj
1010010101
Each valid Transmission Character of the 8B/10B Transmis-
sion Code has been given a name using the following conven-
tion: cxx.y, where c is used to show whether the Transmission
Character is a Data Character (c is set to D) or a Special Char-
acter (c is set to K). When c is set to D, xx is the decimal value of
the binary number composed of the bits E, D, C, B, and A in that
After powering on, the Transmitter will assume a negative val-
ue for its initial running disparity. Upon transmission of any
Transmission Character, the transmitter selects the proper
version of the Transmission Character based on the current
running disparity value, and the Transmitter calculates a new
Document #: 38-02019 Rev. *C
Page 26 of 34