Gigabit Ethernet utilises five levels and 8b/10b encoding, to provide even more efficient use of the limited cable bandwidth, sending 1 Gbps within approx 100 MHz of bandwidth (i.e. the capacity of a UTP Cat5e cable.
In 8b/10b encoding each byte of data is assigned a 10 bit code. The byte is split up into the 3 most significant bits and the 5 least significant bits. This is then represented as two decimal numbers with the least significant bits first e.g. for the octet 101 00110 the result is the decimal 6.5. 10 bits are used to create this code and the naming convention follows the format /D6.5/. There are also 12 special codes which follow the naming convention /Kx.y/.
The 10 bit code must contain either five ones and five zeros, or four ones and six zeros, or six ones and four zeros. This prevents a sequence of too many consecutive ones and zeros, assisting clock synchronisation.
Two 'commas' are used to aid in bit synchronisation, these 'commas' are the 7 bit patterns 0011111 (+comma)and 1100000 (-comma).
To maintain a DC balance, a calculation called the Running Disparity calculation is used to keep the number of '0's transmitted the same as the number of '1's transmitted.
The method uses 10 bits for each 8 bits of data (byte) and therefore increases the rate required to send the data. A 1 Gbps the line speed results in a transmission rate of 10/8 x 1 = 1.25 Gbps. In Gigabit Ethernet this rate is then reduced using PAM-5 a 5-level code (utilising less bandwidth than possible with a 3-level code).
The interface encoded byte of data generates a 10 bit code that is scrambled and converted into a physical layer signal by mapping pairs of bits using a 5-level Pulse-Amplitude-Modulation (PAM), a scrambled 5-level code (using less bandwidth than possible with a 3 level code, such as MLT).