GigaSpaceWire, проблемы и решения

Бесплатный доступ

В статье рассматривается разрабатываемый стандарт GigaSpaceWire как дополнение к существующему стандарту SpaceWire, а также проведенные исследования и вычисления для решения существующих проблем использования стандарта GigaSpaceWire.

Короткий адрес: https://sciup.org/148204409

IDR: 148204409

Текст научной статьи GigaSpaceWire, проблемы и решения

Технология SpaceWire отвечает потребностям бортовых вычислительных задач и применяется в различных бортовых вычислительных системах. Одной из основных целей стандарта SpaceWire является обеспечение совместимости с различными видами оборудования и многофункциональное использование конечных элементов и подсистем. Например, система обработки данных, разработанная для оптических систем, может быть использована для радарного прибора (требуется только заменить оптический датчик на радарный). Процессорные устройства, модули массивной памяти, аппаратные телеметрические системы, разработанные для решения одной задачи, без труда могут использоваться для решения другой, тем самым, сокращая стоимость системы, увеличивая её надёжность и производительность [1]. SpaceWire поддерживает интегрирование и тестирование сложных бортовых систем путём внедрения соответствующего оборудования непосредственно в аппаратуру обработки данных. Мониторинг и тестирование могут быть проведены без необходимости создания отдельного физического интерфейса с аппаратурой обработки данных. SpaceWire – это результат работы Европейского Космического Агентства, Европейской Космической Промышленности и Европейской Космической Академии. Задачей этого стандарта является передача данных и управляющей информации на борту космических аппаратов. Этот стандарт описывает высокоскоростные каналы и отвечает требованиям будущего. Он предназначен для создания высокопроизводительных систем, сбора информации, и других космических задач. SpaceWire позволяет строить комплексные инфраструктуры высокоскоростной обработки данных, включающей в себя датчики, вычислительные элементы, модули памяти, а также подсистемы передачи информации из космоса и EGSE оборудования. Назначения стандарта:

  • -    упростить проектирование бортовых высокопроизводительных систем обработки данных;

  • -   сократить затраты на внедрение систем;

  • - повысить совместимость оборудования обработки

данных и подсистем;

  • -    поддержать многоразовое использование (reusing) вычислительного оборудования для решения различных задач.

SpaceWire основывается на стандартах IEEE 1355-1995 и ANSI/TIA/EIA-644 и специально разработан для применения в бортовых системах космических аппаратов [2]. Текущие реализации SpaceWire, анонсируемые ESA, показывают следующие характеристики:

скорость передачи данных 400 Мб/сек, максимальная длина кабеля - 10 метров. На практике во многих реализациях удаётся получать более высокие характеристики при меньшей длине кабеля [3]. Дальнейшее увеличение скорости влечет довольно серьезное уменьшение расстояния передачи, из-за особенностей используемого кодирования. Так же реализация гальванической развязки довольно трудна из-за использования 2-х линий данных при использовании DS-кодирования. Для того, чтобы решить данные задачи был разработан новый стандарт GigaSpaceWire, дополняющий существующий SpaceWire.

Для того, чтобы обеспечить преемственность двух стандартов, создаваемого и SpaceWire верхние уровни остались неизменными. В качестве нижних уровней нового стандарта для замены используемого кодирования SpaceWire используется кодирование 8b/10b. На физическом уровне предполагается использование любого физического канала, поддерживающего вышеописанное кодирование. Сочетание новых уровней позволяет обеспечивать передачи на высоких скоростях (>1 Гбит/c) на длинные расстояния по медному кабелю (до 100 м) и по оптическому кабелю (более 100 м). Так как кодирование 8b/10b более простое, чем кодирование SpaceWire (размер символов одинаковый), то приемная часть канального уровня также более простая, чем в базовом стандарте SpaceWire. В результате у нас получился новый стек протоколов, который будет отличаться от стека протоколов SpacveWire на нижних уровнях, но полностью совпадать с ним на верхних (рис. 1).

Рис. 1. Сравнение стека протоколов SpaceWire и GigaSpaceWire

Как видно из представленного рисунка, в разработанном стандарте GigaSpaceWire физический, сигнальный и часть символьного уровня стандарта SpaceWire заменяются на уровни, содержащие кодирование 8b/10b, а так же физический уровень, описывающий среду передачи и уровни физического кодирования сигнала. Сами символы данных и служебные символы стандарта SpaceWire остаются без изменения. Рассмотрим типы символов стандарта SpaсeWire и получившиеся символы данных и управляющие символы стандарта GigaSpaceWire. В стандарте SpaceWire (соответственно и в GigaSpaceWire) используются два типа символов:

  • -    символы данных: содержат восемь бит данных, передающиеся младшими разрядами вперёд. Gj cnfylfhne GigaSpaceWire каждый символ данных кодируется как символ данных посредством кодирования 8b/10b, описанного в стандарте кодирования 8b/10b. Таким образом – 8 бит преобразуются в 10 и посылаются посредством передающего устройства;

  • -    управляющие символы: кодируются посредством кодирования 8b/10b как К символы стандарта 8b/10b. Таким образом, символы FCT, EEP, EOP и IDLE (NULL в стандарте SpaceWire) кодируются как различные K символы стандарта 8b/10b.

Особое кодирование у управляющих символов распределенных прерываний и меток времени. Данные символы кодируются последовательностью K символа + Ccode как данное кода 8b/10b. Символ IDLE передаётся всегда, когда канал не занят передачей, он используется для сохранения активности канала и возможности определения рассоединения. Time-код или метка времени служит для поддержания единого системного времени в сети. Распределенные прерывания предназначены для передачи прерываний и ответа на них по сети SpaceWire [4].

Проблема установки соединения. При переходе к новой концепции нижних уровней стандарта GigaSpaceWire была решена проблема установления соединения. Так как при использовании DS-кодирования стандарта SpaceWire использовалось только изменение уровня с 0 на 1 на любой из линий передачи. Использование 8b/10b кодирование наложило ряд ограничений на создаваемый физический и канальный уровень создаваемого стандарта. Во-первых, на физическом уровне появился процесс синхронизации приемника и передатчика и выравнивание символов, которые отсутствует при DS-кодировании. Во-вторых, соединение двух устройств осуществляется не только на физическом уровне, но и на канальном уровне. В-третьих, ошибки в канале так же делятся на 2 части – ошибки на канальном уровне и ошибки на физическом уровне. И если при канальном уровне достаточно быстро переустановить символьную связь, то при возникновении ошибки на физическом уровне (скорее всего потеря синхронизации) придется проходить всю процедуру синхронизации заново.

Расчет параметров механизма кредитования канального уровня. В спецификации механизма кредитования канального уровня необходимо выделить два основных параметра:

  • 1.    Максимально допустимое значение счетчика кредитов (в SpaceWire этот параметр равен 56).

  • 2.    Количество символов, кредитуемых одним FCT, т.е. размер флита (в SpaceWire этот параметр равен 8).

Для стандарта SpaceWire при скоростях до 400 Мбит в секунду и расстояниях до 10 м значения параметров, указанных выше были оптимальными и не нуждались в корректировке. Однако при увеличении расстояния и скоростей передачи данные параметры не оптимальны, и канал используется не полностью, для чего был сделан математический расчет и прототипирование. Для расчета указанных параметров не- обходимо, прежде всего, оценить время передачи одного символа по каналу (Tprop), которое складывается из времени прохождения символа через конвейер передатчика, передатчик SerDes, кабель, приемник SerDes, эластичный буфер и конвейер приемника:

Pr op     Logic + ElasticBuf + SerDes + Cable ^^

где T Logic – сумма задержек передающего и принимающего конвейеров, T ElasticBuf – задержка, вносимая эластичным буфером, T SerDes – сумма задержек передатчика и приемника SerDes, T cable – задержка в кабеле.

В свою очередь, задержка в кабеле зависит от длины кабеля (Lcable), передающей частоты (FTx), задержки распространения сигнала в кабеле на 1 м (TS, изме- ряется в нс) и отношения локальной частоты к пере- дающей частоте (kFr):

T Cable = Г kFr ( LCable ' FTx ' TS ) !

Минимально необходимое количество кредитов (Credit_Min_Number) – это минимально необходимое значение счетчика кредитов, необходимое для 100%- загрузки канала, которое оценивается по следующей формуле:

Credit _ Min _ Number =

= L C ^ser (2 T pr op + T fct + T tx + ( FCT - 1)) J        (3)

где Cu – пропускная способность канала, доступная пользователю, TFCT – сумма времени генерации символа FCT на принимающей стороне и времени обработки FCT на передающей стороне, TTx – задержка отправления символа FCT, FCT – размер флита.

Таким образом, максимально допустимое значение счетчика кредитов (Credit_Max_Number) должно быть больше, чем рассчитанное минимально необхо- димое      значение      счетчика      кредитов

( Credit_Min_Number ):

Credit Max Number Credit Min Number

Элементы, вносящие задержки в передачу символов на канальном уровне, приведены на рис. 2.

Для проверки разработанной методики расчета параметров кредитования были проведены тесты, результаты которых сравнивались с результатами расчетов. Тесты было проведены в шести конфигурациях, параметры каждой конфигурации и результаты тестов представлены в табл. 1.

Рис. 2. Элементы, вносящие задержку в передачу символов на канальном уровне

Таблица 1. Практические результаты моделирования

Параметр

Конф. 1

Конф. 2

Конф. 3

Конф. 4

Конф. 5

Конф. 6

длина кабеля ( L cable )

5 м

5 м

30 м

30 м

30 м

30 м

количество символов, кредитуемых одним FCT

8

8

8

8

16

16

Credit_Max_Number (заданное значение)

56

96

96

112

104

112

Credit_Min_Number (значение, рассчитанное по формуле 3)

79

79

104

104

112

112

Credit_Max_Number   Cred-

it_Min_Number

-23

+17

-8

+8

-8

0

максимальное число последовательных символов IDLE, зафиксированных во время теста (т.е. количество тактов, в течение которых у передатчика не было кредитов)

24

IDLE’ов нет, канал загружен на 100%

4

IDLE’ов нет, канал загружен на 100%

4

IDLE’ов нет, канал загружен на 100%

Выбранные значения для параметров, используемых в формулах (1) – (4):

  • •   T Logic = 5 (в тактах локальной частоты, рассчитано

исходя из реализации)

  • •   T EiasticBuf = 8 (в тактах локальной частоты, т.к. размер

эластичного буфера = 16)

  • •   T serDes = 20 (в тактах локальной частоты)

  • •   С и = 15/16 (частота отправления символов Comma =

1/16)

  • •   T fct = 5 (в тактах локальной частоты, рассчитано

исходя из реализации)

  • •   Т тх = 1 (FCT может быть задержан на 1 такт симво

лом Comma)

  • •   T s = 5 (нс)

Таким образом, значения параметров, используемые при расчетах, не наихудшие, а максимально приближенные к тестовым условиям. Низкая разница между результатами, которые были получены теоретическим и практическим путем, демонстрируют высокую точность разработанных формул. На основании этого можно сделать вывод о пригодности формул для расчета параметров спецификации, которые невозможно проверить путем прототипирования.

Расчет параметра «Максимально допустимое значение счетчика кредитов». Для расчета параметров спецификации GigaSpaceWire необходимо оценить наихудшие значения задержек, используемых в формулах (1) – (4). Очевидно, что математически наихудшие значения не могут быть выбраны, т.к. полученные в результате расчетов результаты не будут достижимы на практике. Таким образом, наихудшие значения задержек должны быть рациональными, т.к. возможными на практике, но только в наихудшем случае. Исходя из свойств анализируемого стандарта и здравого смысла, были выбраны следующие значения:

  •    сумма задержек передающего и принимающего конвейеров T Logic = 12 (в тактах локальной частоты);

  •    задержка, вносимая эластичным буфером T EiasticBuf = 16 (в тактах локальной частоты);

  •    сумма задержек передатчика и приемника SerDes T s er d es = 24 (в тактах локальной частоты);

  •    пропускная способность канала, доступная пользователю C u = 127/128 (т.е. частота отправления символов Comma равна минимально допустимому значению 1/128);

  •    сумма времени генерации символа FCT на принимающей стороне и времени обработки FCT на передающей стороне T FCT = 8 (в тактах локальной частоты);

  •    задержка отправления символа FCT Т тх = 7 (в качестве рационально наихудшего случая выбран случай, когда символ FCT задержан 1 символом Comma и тремя управляющими кодами);

  •    длина кабеля L cabie = 100 м.

  • •   T s = 5 (нс)

Таким образом, минимально необходимое зна- чение счетчика кредитов в наихудшем случае состав- ляет:

Credit Min Number =

— (244 + FCT)

где FCT – это размер флита.

Выбор параметра «размер флита». Значение параметра FCT задано в спецификации GigaSpaceWire. Рассмотрим возможные значения параметра Cred-it_Min_Number при различных значениях параметра FCT:

Если FCT = 8, то Credit Min Number = 250 Если FCT = 16, то Credit Min  Number = 257

Если FCT = 32, то Credit Min Number = 273

Если FCT = 64, то Credit Min Number = 305

При выборе значения параметра «размер фли-та» необходимо учитывать две функции. Так как символы FCT относятся к управляющим символам стандарта, пропускная способность канала, доступная пользователю, обратно пропорциональна частоте отправления символов FCT (при прочих равных условиях) и, следовательно, обратно пропорциональна размеру флита FCT. Таким образом, чем больше выбранный размер флита, тем выше пропускная способность канала, доступная пользователю. С другой стороны, из формулы (6) следует, что минимально необходимое значение счетчика кредитов прямо пропорционально размеру флита. Таким образом, чем больше выбранный размер флита, тем больше минимально необходимое значение счетчика кредитов, и, следовательно, тем больше специфицируемое значение «максимально допустимое значение счетчика кредитов».

На основании вышесказанного мы предлагаем заменить используемое в данный момент значение размера флита, равное 8, на 32. С одной стороны, это изменение позволит уменьшить в 4 раза пропускную способность канала, занятую под передачу символов FCT. С другой стороны, минимально необходимое значение счетчика кредитов увеличиться незначительно

(с 250 до 273). Таким образом, размер флита, равный 32 символам является оптимальным для кредитования и буфера кредитования. Следовательно, значение параметра Credit_Min_Number = 273 . Исходя из формулы (4), минимально возможное значение параметра «максимально допустимое значение счетчика кредитов» составляет 288, что соответствует 9 символам FCT, кредитующим по 32 символа данных.

Машина состояний канального уровня. Машина состояний SpaceWire так же подверглась изменениям. Частоты передачи данных стандарта SpaceWire находятся в промежутке от 2 до 400 мегагерц, поэтому задержки при сбросе приемника и передатчика составляют примерно 15-20 мкс. Такое время является довольно значительным для приемника и передатчика Gigabit SpaceWire, поэтому данные тайминги подверглись изменениям. Так же изменилась сама процедура соединения на канальном уровне, о чем писалось выше. Машина состояний представлена на рис. 3.

Первое изменение в машине состояний является появление специального символа COMMA. Данный символ, кроме установки связи на канальном уровне (переход из состояния Started, так же обеспечивает выравнивание символов на физическом уровне, и отвечает за определения рассоединения приемника и передатчика на канальном уровне (Ошибка рассоединения из состояния RUN). Все остальные символы остались как в машине состояний стандарта SpaceWire.

в1.

Unk_Enabled=(Link_Start ИЛИ (AutoStart* (ПринятCOMMA)! И НE(LINK_DISABLEDJ

ЕВ_ЕггОг - Ошибка эластичного буфера

RXError - Ошибка приемника

Рис. 3. Машина состояний GigaSpaceWire

В отличии от SpaceWire, где все времена переходов были заданы однозначно в микросекундах в машине состояний GigaSpaceWire времена соединения переменные. Это связано с тем, что установка связи, должна происходить быстрее, в зависимости от частоты передачи на которой работает передатчик и приемник. Время ResetTime рассчитывается от соответствующих параметров, указанных в созданном стандарте, достаточных для определения ошибки рассоединения.

Выводы: в результате проведенных исследований и проведенных изменений в технологии GigaSpaceWire можно сделать следующие выводы:

  • 1)    Увеличение скорости установки соединения и переустановки соединения после ошибок.

  • 2)    Модернизация машины состояний, уменьшение количества состояний, упрощение работы.

  • 3)    Увеличение полезной пропускной способности путем уменьшения служебной информации.

  • 4)    Уменьшение времени простоя канала путем выбора оптимальных параметров кредитования.

Дополнение стандарта SpaceWire характеристиками для работы на больших расстояниях позволяет использовать сеть SpaceWire / GigaSpacewire не только как стандарт для передачи данных внутри блока, а так же для передачи информации вне блока.

Список литературы GigaSpaceWire, проблемы и решения

  • Шейнин, Ю.Е. Технология SpaceWire для параллельных систем и бортовых распределенных комплексов/Ю.Е. Шейнин, Т.В. Солохина, Я.Я. Петричкович//Электроника: Наука, технология, бизнес. 2007. № 1. С. 38-49.
  • ECSS Standard ECSS-E-ST-50-12C, “SpaceWire, Links, Nodes, Routers and Networks”, Issue 1, European Cooperation for Space Data Standardization, July 2008.
  • Yablokov, E. “Giga Space Wire -Gigabit Links for Space Wire Networks”/E. Yablokov, Yu. Sheynin, E. Suvorova et al.//Space Wire-2013. Proceedings of the 5th International Space Wire Conference, Gothenburg 2013. Space Technology Centre, University of Dundee, Dundee, 2013, pp. 28-34.
  • Яблоков Е.Н., Гигабитные каналы в сетях SpaceWire/Е.Н. Яблоков, Ю.Е. Шейнин, Е.А. Суворова и др.//Вопросы Радиоэлектроники. Серия Общетехническая. 2012. Вып. 2. С. 24-36.
Статья научная