W wielu materiałach dotyczących na przykład interfejsu PCIe 5.0 czy układów wyposażonych w ten interkonekt pojawia się jednostka GT/s - gigatransfer na sekundę. Co ona tak na prawdę oznacza? Pojawiła się ona wraz z prezentacją standardu PCI Express (PCIe), opracowanego przez PCI-SIG (PCI Special Interest Group). Przy każdej kolejnej iteracji regularnie powtarzano np. o "podwojeniu prędkości transmisji z 16 GT/s do 32 GT/s" etc. Co oznacza jednak gigatransfer?
Przyzwyczajeni jesteśmy do podawania transferów w gigabitach na sekundę (Gbps, Gb/s), dzięki temu łatwo wyobrazić sobie ile "zer i jedynek" przekazanych może być danym interfejsem w jednostce czasu. W przypadku PCIe sytuacja jest jednak inna z uwagi na zastosowane kodowanie danych. W PCI Express transmisje są szeregowe, a zegar jest wkomponowany w sam transfer danych. Aby odbiornik mógł z powodzeniem "odzyskać" sygnał zegarowy z strumienia danych, system kodujący zadbać musi, aby w danym pakiecie było odpowiednio dużo zboczy (przejść z 1 do 0 i z 0 do 1). Aby uzyskać zwiększoną liczbę przejść, w PCIe wykorzystuje się kodowanie 8b/10b - każde osiem bitów jest kodowane jako 10-bitowy symbol, który następnie jest dekodowany przez odbiornik z powrotem do 8 bitów. Oznacza to, że na każde osiem niekodowanych bitów potrzebne jest przesłanie 10 bitów. Spójrzmy na PCIe 1.1 - pojedynczy kanał tego interfejsu ma przepustowość 2,5 Gbps w każdą ze stron, więc łącznie 5 Gbps. Ponieważ szyna przesłać musi 10 bitów na każdy przesłany bajt danych, efektywna prędkość transmisji wynosi:
5 Gbps * 8/10 = 4 Gbps
16-kanałowy interkonekt PCIe 1.1 może przesłać zatem 80 Gbps zakodowanych lub 64 Gbps niezakodowanych danych. PCIe 2.0 podwoiło te parametry, dzięki czemu jeden kanał był w stanie przesłać 8 Gbps danych niekodowanych, a 16-kanałowy interkonekt PCIe 2.0 może przesłać do 128 Gbps niekodowanych danych, to 16 gigabajtów na sekundę. Gigatransfery odnoszą się zatem do ilości surowych danych, jakie są przesyłane przez interfejs. Aby z gigatransferów wyznaczyć realną efektywną przepustowość, uwzględnić trzeba jeszcze kodowanie danych.
Uwzględnienie kodowania danych w przypadku dwóch pierwszych generacji PCI Express jest dosyć proste - kodowanie 8b/10b oznacza, że prędkość w GT/s mnożymy razy 0,8 by uzyskać efektywną przepustowość w Gbps. Od PCIe 3.0 stosuje się jednak kodowanie 128b/130b, oznacza to, że każde 128 bitów (16 bajtów) kodowanych jest w znaku, który ma 130 bitów. Zatem w przypadku standardów od wersji trzeciej, liczbę gigatransferów mnożymy razy 128/130 (≈0,985) aby uzyskać efektywną przepustowość interfejsu. Oznacza to, że interkonekt PCIe w wersji 5.0, który osiąga 32 GT/s w każdym z kierunków - łącznie 64 GT/s - ma przepustowość 64 * 128/130, czyli ok. 63 Gbps - nimalże 7,88 gigabajta na sekundę. Przy 16 kanałach interfejsu oznacza to możliwość przesłania tym interkonektem 126 gigabajtów danych w ciągu sekundy.
Źródło: https://www.edn.com/electronics-news/4380071/What-does-GT-s-mean-anyway-
Przyzwyczajeni jesteśmy do podawania transferów w gigabitach na sekundę (Gbps, Gb/s), dzięki temu łatwo wyobrazić sobie ile "zer i jedynek" przekazanych może być danym interfejsem w jednostce czasu. W przypadku PCIe sytuacja jest jednak inna z uwagi na zastosowane kodowanie danych. W PCI Express transmisje są szeregowe, a zegar jest wkomponowany w sam transfer danych. Aby odbiornik mógł z powodzeniem "odzyskać" sygnał zegarowy z strumienia danych, system kodujący zadbać musi, aby w danym pakiecie było odpowiednio dużo zboczy (przejść z 1 do 0 i z 0 do 1). Aby uzyskać zwiększoną liczbę przejść, w PCIe wykorzystuje się kodowanie 8b/10b - każde osiem bitów jest kodowane jako 10-bitowy symbol, który następnie jest dekodowany przez odbiornik z powrotem do 8 bitów. Oznacza to, że na każde osiem niekodowanych bitów potrzebne jest przesłanie 10 bitów. Spójrzmy na PCIe 1.1 - pojedynczy kanał tego interfejsu ma przepustowość 2,5 Gbps w każdą ze stron, więc łącznie 5 Gbps. Ponieważ szyna przesłać musi 10 bitów na każdy przesłany bajt danych, efektywna prędkość transmisji wynosi:
5 Gbps * 8/10 = 4 Gbps
16-kanałowy interkonekt PCIe 1.1 może przesłać zatem 80 Gbps zakodowanych lub 64 Gbps niezakodowanych danych. PCIe 2.0 podwoiło te parametry, dzięki czemu jeden kanał był w stanie przesłać 8 Gbps danych niekodowanych, a 16-kanałowy interkonekt PCIe 2.0 może przesłać do 128 Gbps niekodowanych danych, to 16 gigabajtów na sekundę. Gigatransfery odnoszą się zatem do ilości surowych danych, jakie są przesyłane przez interfejs. Aby z gigatransferów wyznaczyć realną efektywną przepustowość, uwzględnić trzeba jeszcze kodowanie danych.
Uwzględnienie kodowania danych w przypadku dwóch pierwszych generacji PCI Express jest dosyć proste - kodowanie 8b/10b oznacza, że prędkość w GT/s mnożymy razy 0,8 by uzyskać efektywną przepustowość w Gbps. Od PCIe 3.0 stosuje się jednak kodowanie 128b/130b, oznacza to, że każde 128 bitów (16 bajtów) kodowanych jest w znaku, który ma 130 bitów. Zatem w przypadku standardów od wersji trzeciej, liczbę gigatransferów mnożymy razy 128/130 (≈0,985) aby uzyskać efektywną przepustowość interfejsu. Oznacza to, że interkonekt PCIe w wersji 5.0, który osiąga 32 GT/s w każdym z kierunków - łącznie 64 GT/s - ma przepustowość 64 * 128/130, czyli ok. 63 Gbps - nimalże 7,88 gigabajta na sekundę. Przy 16 kanałach interfejsu oznacza to możliwość przesłania tym interkonektem 126 gigabajtów danych w ciągu sekundy.
Źródło: https://www.edn.com/electronics-news/4380071/What-does-GT-s-mean-anyway-
Fajne? Ranking DIY
