Jump to content

Кодирование 8b/10b

(Перенаправлено с 8b/10b )

оптоволоконный канал
Уровень 4. Сопоставление протоколов
Маскировка LUN
Уровень 3. Общие услуги
Уровень 2. Сеть
Ткань Fibre Channel
Зонирование Fibre Channel
Уведомление об изменении зарегистрированного состояния
Уровень 1. Канал передачи данных
Кодирование Fibre Channel 8b/10b
Уровень 0. Физический

В телекоммуникациях , 8b/10b — это линейный код который отображает 8-битные слова в 10-битные символы для достижения баланса постоянного тока и ограниченного несоответствия и в то же время обеспечивает достаточное количество изменений состояния, чтобы обеспечить разумное восстановление тактовой частоты . Это означает, что разница между количеством единиц и нулей в строке длиной не менее 20 бит составляет не более двух и что в строке находится не более пяти единиц или нулей. Это помогает снизить требования к нижнему пределу полосы пропускания канала, необходимому для передачи сигнала. [1]

Код 8b/10b может быть реализован различными способами с акцентом на разные параметры производительности. Одна реализация была разработана К. Одакой для DAT . цифрового аудиорекордера [2] Кес Шухамер Имминк разработал код 8b/10b для DCC . аудиорекордера [3] Реализация IBM была описана в 1983 году Элом Видмером и Питером Франашеком . [4] [5]

реализация IBM

[ редактировать ]

Как следует из названия схемы, восемь бит данных передаются как 10-битный объект, называемый символом или символом . Младшие пять битов данных кодируются в 6-битную группу (часть 5b/6b), а старшие три бита кодируются в 4-битную группу (часть 3b/4b). Эти группы кодов объединяются вместе, образуя 10-битный символ, который передается по проводу. Символы данных часто обозначаются как Dxy, где x находится в диапазоне от 0 до 31, а y — от 0 до 7. Стандарты, использующие кодировку 8b/10b, также определяют до 12 специальных символов (или управляющих символов ), которые могут быть отправлены вместо символа данных . Они часто используются для обозначения начала кадра, конца кадра, простоя канала, пропуска и подобных состояний на уровне канала. По крайней мере один из них (т.е. символ «запятая») должен использоваться для определения выравнивания 10-битных символов. Они называются Kxy и имеют кодировку, отличную от любого из символов Dxy.

Поскольку при кодировании 8b/10b для кодирования 8-битных слов используются 10-битные символы, некоторые из возможных 1024 (10 бит, 2 10 ) символы могут быть исключены, чтобы обеспечить ограничение длины серии в 5 последовательных равных битов и обеспечить, чтобы разница между количеством нулей и единиц была не более двух. Некоторые из 256 возможных 8-битных слов можно закодировать двумя разными способами. Используя эти альтернативные кодировки, схема способна достичь долговременного баланса постоянного тока в потоке последовательных данных. Это позволяет передавать поток данных через канал с высокочастотной характеристикой, например, или через неэкранированную витую пару с трансформаторной связью Ethernet оптические приемники с автоматической регулировкой усиления.

Таблицы кодирования и кодирование байтов

[ редактировать ]

Обратите внимание, что в следующих таблицах для каждого входного байта (представленного как HGF EDCBA), A обозначает младший значащий бит (LSB), а H — самый значимый (MSB). На выходе появляются два дополнительных бита: i и j . Биты передаются из младшего разряда в старший разряд: a, b, c, d, e, i , f, g, h и j ; т.е. за кодом 5b/6b следует код 3b/4b. Это обеспечивает уникальность специальной битовой последовательности в символах запятой.

Остаточное влияние на поток количества передаваемых нулей и единиц поддерживается в виде текущего несоответствия ( RD ), а эффект нарастания уравновешивается выбором кодировки для следующих символов.

Код 5b/6b представляет собой парный код несоответствия , как и код 3b/4b. Каждое 6- или 4-битное кодовое слово имеет либо одинаковое количество нулей и единиц (несоответствие нулей), либо имеет пару форм, в одной из которых на два нуля больше, чем на единицы (четыре нуля и две единицы или три нуля и на один соответственно) и на один на два меньше. Когда используется 6- или 4-битный код, который имеет ненулевое несоответствие (счет единиц минус количество нулей; т. е. -2 или +2), выбор кодирования положительного или отрицательного несоответствия должен быть таким, который переключает бегущее неравенство. Другими словами, коды ненулевой диспаратности чередуются.

Текущее неравенство

[ редактировать ]

Кодирование 8b/10b не содержит постоянного тока, а это означает, что долговременное соотношение передаваемых единиц и нулей составляет ровно 50%. Для этого разница между количеством переданных единиц и количеством переданных нулей всегда ограничивается ±2, а в конце каждого символа она равна либо +1, либо -1. Эта разница известна как текущее неравенство (RD).

Этой схеме нужны только два состояния для текущего несоответствия +1 и -1. Оно начинается с −1. [6]

Для каждого кода 5b/6b и 3b/4b с неодинаковым количеством единиц и нулей существует два битовых шаблона, которые можно использовать для его передачи: один с двумя дополнительными битами «1» и один со всеми инвертированными битами и, следовательно, с двумя битами «1». больше нулей. В зависимости от текущего несоответствия сигнала механизм кодирования выбирает, какую из двух возможных шести- или четырехбитных последовательностей отправить для данных данных. Очевидно, что если шестибитный или четырехбитный код имеет равное количество единиц и нулей, выбора нет, так как несоответствие останется неизменным, за исключением подблоков D.07 (00111) и Dx3 ( 011). В любом случае несоответствие остается неизменным, но если RD положителен при обнаружении D.07, используется 000111, а если он отрицательный, используется 111000. Аналогично, если RD положителен при обнаружении Dx3, используется 0011, а если он отрицательный, используется 1100. Это точно отражено на диаграммах ниже, но об этом стоит упомянуть дополнительно, поскольку это единственные два подблока с одинаковым количеством единиц и нулей, каждый из которых имеет две возможные кодировки.

Правила учета неравенства
предыдущий
РД
Несоответствие
кодовое слово
Несоответствие
выбранный
следующий
РД
−1 0 0 −1
−1 ±2 +2 +1
+1 0 0 +1
+1 ±2 −2 −1

Код 5b/6b (abcdei)

[ редактировать ]
Вход РД = −1 РД = +1 Вход РД = −1 РД = +1
Код ЭДКБА а б в г е я Код ЭДКБА а б в г е я
Д.00 00000 100111 011000 Д.16 10000 011011 100100
Д.01 00001 011101 100010 Д.17 10001 100011
Д.02 00010 101101 010010 Д.18 10010 010011
Д.03 00011 110001 Д.19 10011 110010
Д.04 00100 110101 001010 Д.20 10100 001011
Д.05 00101 101001 Д.21 10101 101010
Д.06 00110 011001 Д.22 10110 011010
Д.07 00111 111000 000111 Д.23 † 10111 111010 000101 также используется для символа K.23.7
Д.08 01000 111001 000110 Д.24 11000 110011 001100
Д.09 01001 100101 Д.25 11001 100110
Д.10 01010 010101 Д.26 11010 010110
Д.11 01011 110100 Д.27 † 11011 110110 001001 также используется для символа K.27.7
Д.12 01100 001101 Д.28 11100 001110
Д.13 01101 101100 Д.29 † 11101 101110 010001 также используется для символа K.29.7
Д.14 01110 011100 Д.30 † 11110 011110 100001 также используется для символа K.30.7
Д.15 01111 010111 101000 Д.31 11111 101011 010100
не используется 1111 00 0000 11 К.28 ‡ 11100 00 1111 11 0000 используется исключительно для символов K.28.x

† также используется для кода 5b/6b Kx7.

‡ используется исключительно для кода 5b/6b K.28.y.

Код 3b/4b (fghj)

[ редактировать ]
Вход РД = −1 РД = +1 Вход РД = −1 РД = +1
Код HGF ж г ч j Код HGF ж г ч j
Дх0 000 1011 0100 Кх0 000 1011 0100
Дх1 001 1001 Кx1 ‡ 001 0 110 1 001
Дх2 010 0101 Кх2 010 1010 0101
Дх3 011 1100 0011 Кх3 011 1100 0011
Дх4 100 1101 0010 Кх4 100 1101 0010
Dx5 101 1010 Кx5 ‡ 101 0 101 1 010
Dx6 110 0110 Крx6 110 1001 0110
ДхП7 † 111 1110 0001 Крx7 ‡ 111 0 111 1 000
DxA7 † 0111 1000

† Для Dx7 необходимо выбрать либо основную (DxP7), либо альтернативную (DxA7) кодировку, чтобы избежать серии из пяти последовательных нулей или единиц в сочетании с предыдущим кодом 5b/6b.
Последовательности ровно из пяти одинаковых битов используются в символах запятой для проблем синхронизации.
используется только DxA7

  • когда RD = −1: для x = 17, 18 и 20 и
  • когда RD = +1: для x = 11, 13 и 14.

При x =23, x =27, x =29 и x =30 часть кода 3b/4b, используемая для символов управления Kx7, такая же, как и для DxA7.
Любой другой код DxA7 использовать нельзя, так как это может привести к смещению последовательностей запятых.

‡ Только K.28.1, K.28.5 и K.28.7 генерируют символы запятой, которые содержат битовую последовательность из пяти нулей или единиц.
Символ имеет формат 11 0000 0 1xx или 00 1111 1 0xx.

Символы управления

[ редактировать ]

Управляющие символы внутри 8b/10b представляют собой символы 10b, которые представляют собой действительные последовательности битов (не более шести единиц или нулей), но не имеют соответствующего байта данных 8b. Они используются для функций управления низкого уровня. Например, в Fibre Channel K28.5 используется в начале четырехбайтовых последовательностей (называемых «упорядоченными наборами»), которые выполняют такие функции, как арбитраж цикла, слова заполнения, сброс канала и т. д.

На основании таблиц 5b/6b и 3b/4b разрешена передача следующих 12 управляющих символов:

Символы управления
Вход РД = −1 РД = +1
Символ Декабрь шестигранник HGF EDCBA abcdei fghj abcdei fghj
К.28.0 28 000 11100 001111 0100 110000 1011
К.28.1 † 60 001 11100 00 1111 1 001 11 0000 0 110
К.28.2 92 010 11100 001111 0101 110000 1010
К.28.3 124 011 11100 001111 0011 110000 1100
К.28.4 156 100 11100 001111 0010 110000 1101
К.28.5 † 188 до нашей эры 101 11100 00 1111 1 010 11 0000 0 101
К.28.6 220 округ Колумбия 110 11100 001111 0110 110000 1001
К.28.7 ‡ 252 ФК 111 11100 00 1111 1 000 11 0000 0 111
К.23.7 247 F7 111 10111 111010 1000 000101 0111
К.27.7 251 ФБ 111 11011 110110 1000 001001 0111
К.29.7 253 ФД 111 11101 101110 1000 010001 0111
К.30.7 254 ИП 111 11110 011110 1000 100001 0111

† В управляющих символах K.28.1, K.28.5 и K.28.7 являются «символами запятой». Символы запятой используются для синхронизации (нахождения выравнивания кодов 8b/10b в битовом потоке). Если K.28.7 не используется, уникальные последовательности запятых 00 11111 0 или 11 00000 1 не могут случайно появиться в любой позиции бита в любой комбинации обычных кодов.

‡ Если K.28.7 разрешен в фактическом кодировании, необходимо использовать более сложное определение шаблона синхронизации, чем предложено †, поскольку комбинация K.28.7 с несколькими другими кодами образует ложный смещенный символ запятой, перекрывающий два кода. . Последовательность нескольких кодов K.28.7 не допускается ни в коем случае, так как это приведет к необнаружимым смещенным символам запятой.

K.28.7 — единственный символ запятой, который не может быть результатом ошибки в один бит в потоке данных.

Пример кодировки D31.1

[ редактировать ]
D31.1 для обоих текущих случаев несоответствия
Вход РД = −1 РД = +1
Код Декабрь шестигранник HGF EDCBA abcdei fghj abcdei fghj
Д31.1 63 3эт. 001 11111 101011 1001 010100 1001

Технологии, использующие 8b/10b

[ редактировать ]

После истечения срока действия вышеупомянутого патента IBM схема стала еще более популярной и была выбрана в качестве линейного кода без постоянного тока для нескольких технологий связи.

Среди областей, в которых находит применение кодирование 8b/10b, можно выделить следующие:

Fibre Channel (только варианты 4GFC и 8GFC)

[ редактировать ]

Стандарт FC-0 определяет, какая схема кодирования должна использоваться (8b/10b или 64b/66b) в системе Fibre Channel. [8] – варианты с более высокой скоростью обычно используют 64b/66b для оптимизации эффективности использования полосы пропускания (поскольку накладные расходы на полосу пропускания составляют 20% в 8b/10b по сравнению примерно с 3% (~ 2/66) в системах 64b/66b). Таким образом, кодировка 8b/10b используется для вариантов 4GFC и 8GFC; для вариантов 10GFC и 16GFC это 64b/66b. [9] Канальный уровень Fibre Channel FC1 затем отвечает за реализацию кодирования и декодирования сигналов 8b/10b.

Схема кодирования Fibre Channel 8b/10b также используется в других телекоммуникационных системах. Данные расширяются с помощью алгоритма, который создает одно из двух возможных 10-битных выходных значений для каждого входного 8-битного значения. Каждое 8-битное входное значение может сопоставляться либо с 10-битным выходным значением с нечетным несоответствием, либо с четным несоответствием. Такое сопоставление обычно выполняется в тот момент, когда параллельные входные данные преобразуются в последовательный выходной поток для передачи по оптоволоконному каналу. Выбор нечетного/четного выполняется таким образом, что сохраняется долговременное нулевое несоответствие между единицами и нулями. Это часто называют «балансировкой постоянного тока».

Схема преобразования 8-бит в 10-бит использует только 512 из 1024 возможных выходных значений. Из оставшихся 512 неиспользуемых выходных значений большинство содержат слишком много единиц (или слишком много нулей) и поэтому не допускаются. Это по-прежнему оставляет достаточно запасных 10-битных пар кодирования «нечет + чет», чтобы можно было использовать как минимум 12 специальных символов, не являющихся данными.

Коды, представляющие 256 значений данных, называются кодами данных (D). Коды, которые представляют 12 специальных символов, не являющихся данными, называются управляющими кодами (K).

Все коды можно описать, указав 3 восьмеричных значения. Это делается с использованием соглашения об именах «Dxx.x» или «Kxx.x». (Обратите внимание, что в таблицах в предыдущих разделах используются десятичные, а не восьмеричные значения для Dxx.x или Kxx.x)

Пример:

Биты входных данных: ABCDEFGH
Данные разделены: ABC DEFGH
Данные перемешиваются: DEFGH ABC

Теперь эти биты преобразуются в десятичные числа так, как они спарены.

Входные данные

C3 (HEX) = 11000011
         = 110 00011
         = 00011 110
         =   3    6

И 8Б/10Б = Д03.6

Цифровое аудио

[ редактировать ]

Схемы кодирования 8b/10b нашли широкое применение в приложениях для хранения цифрового звука, а именно:

используется другая, но схожая схема Для аудио компакт-дисков и компакт-дисков :

Альтернативы

[ редактировать ]

Обратите внимание, что 8b/10b — это схема кодирования, а не конкретный код. Хотя многие приложения используют один и тот же код, существуют некоторые несовместимые реализации; например, Transition Minimized Differential Signaling , который также расширяет 8 бит до 10 бит, но использует для этого совершенно другой метод.

Кодирование 64b/66b , представленное для (PMD) 10 Gigabit Ethernet интерфейсов 10GBASE -R Physical Medium Dependent , представляет собой альтернативу кодированию 8b/10b с меньшими издержками, имеющую двухбитные издержки на 64 бита (вместо восьми битов). закодированных данных. Эта схема значительно отличается по конструкции от кодирования 8b/10b и не гарантирует явного баланса постоянного тока, короткой длины прогона и плотности перехода (эти функции достигаются статистически посредством скремблирования ). Кодировка 64b/66b была расширена до вариантов кодирования 128b/130b и 128b/132b для PCI Express 3.0 и USB 3.1 соответственно, заменив кодировку 8b/10b в более ранних версиях каждого стандарта. [10]

  1. ^ Кес Шухамер Имминк (март 1997 г.). «Оценка производительности многомодовых кодов без постоянного тока». Транзакции IEEE в области коммуникаций . 45 (3): 293–299. дои : 10.1109/26.558690 . Сбалансированные по постоянному току или беспостоянные коды, как их часто называют, имеют долгую историю, и их применение, конечно, не ограничивается практикой записи.
  2. ^ US 4456905 , «Способ и устройство для кодирования двоичных данных», опубликован 26 июня 1984 г.  
  3. ^ US 4620311 , «Способ передачи информации, устройство кодирования для использования в способе и устройство декодирования для использования в способе», опубликовано 28 октября 1986 г.  
  4. ^ Эл X. Видмер, Питер А. Франашек (1983). «Сбалансированный по постоянному току, разделенный блок, код передачи 8B/10B» . Журнал исследований и разработок IBM . 27 (5): 440–451. дои : 10.1147/rd.275.0440 .
  5. ^ США 4,486,739 , «Байт-ориентированный сбалансированный (0,4) 8B/10B код передачи разделенных блоков постоянного тока», опубликован 4 декабря 1984 г.  
  6. ^ Тэтчер, Джонатан (1 апреля 1996 г.). «Мысли о физическом гигабитном Ethernet» . ИБМ . Проверено 17 августа 2008 г.
  7. ^ «Спецификации физического уровня» . Мипи.орг . МИПИ Альянс . Проверено 20 апреля 2014 г.
  8. ^ Оптоволоконный канал Фрейминг и сигнализация - 3 (FC-FS-3) Версия 1.1 Разделы 5.2.1 и 5.3.1 [1]
  9. ^ ВОЛОКОННЫЙ КАНАЛ Физический интерфейс-5 (ФК-ПИ-5) РЕД. 6.10 Раздел 5.7 [2]
  10. ^ Махеш Ваг (6 августа 2011 г.). «Кодирование PCIe 3.0 и логика PHY» (PDF) . pcisig.com . Проверено 5 июня 2015 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c53307b9e2a34007f408642d54744f82__1722384000
URL1:https://arc.ask3.ru/arc/aa/c5/82/c53307b9e2a34007f408642d54744f82.html
Заголовок, (Title) документа по адресу, URL1:
8b/10b encoding - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)