КОНТРОЛЛЕР СЕТЕВОГО ТРАНСПОРТНОГО ПРОТОКОЛА
NETWORK TRANSPORT PROTOCOL CONTROLLER

В качестве аналога выбрано изобретение «Контроллер сетевого транспортного протокола» (патент №2692571 RU). Задачей изобретения является разработка структурно-функционального блока аппаратной реализации сетевого транспортного протокола (СТП), обеспечивающего высоконадежную транспортировку передаваемых данных по линиям связи сети SpaceWire.
Признаками, общими для прототипа и заявляемого изобретения, являются:
контроллер приема пакетов СТП, служащий для приема поступающих от SpaceWire порта пакетов, контроля их корректности, связанный с буфером на отправку пакетов СТП, буфером принятых подтверждений приема, буфером принятых команд сообщений, организованных по принципу «первым ушел» - «первым пришел», где буфер принятых команд сообщений связан с контроллером транзакций на прием пакетов СТП; контроллер передачи пакетов СТП, состоящий из блока арбитража, блока формирования СТП пакета, распределяющего сформированные пакеты в зависимости от типа пакета в блоки буферизации команд, буферизации сообщений и буферизации срочных сообщений, связанные с блоком арбитража, через который пакеты передаются в сеть SpaceWire, и с буфером принятых подтверждений приема; при этом, если для пакета требуется отправка подтверждения, то параметры транзакции подтверждения помещаются из контроллера приема пакетов СТП в буфер на отправку пакетов СТП и далее - в блок арбитража; контроллер передачи пакетов СТП связан с контроллером транзакций на отправку пакетов СТП; при этом контроллер транзакций на отправку пакетов СТП и контроллер транзакций на прием пакетов СТП связаны через блок арбитража обращений с контроллером, преобразующим обращения от контроллеров транзакций СТП в транзакции на шину; блок регистров режима/состояний, связанный с контроллером приема пакетов СТП, контроллером передачи пакетов СТП, контроллером транзакций на отправку пакетов СТП, контроллером транзакций на прием пакетов СТП и контроллером, преобразующим поступающие к нему транзакции в обращения на чтение/запись в блок регистров режима/состояния.
Недостатками прототипа являются: возможность прохождения дублированных команд управления, значительный объём служебной информации при передачи больших объёмов полезных данных, отсутствие управления потоком передаваемых данных, максимальный размер сообщения 2 Кбайт, отсутствие планирования передачи пакетов.
Задачей изобретения является сохранение обратной совместимости с прототипом, для обеспечения возможности совместного использования в информационных сетях; обнаружение дублированных команд управления; реализация механизма транспортных соединений представляющего собой виртуальное однонаправленное соединение между двумя удаленными узлами сети, отвечающее за передачу информации между ними на транспортном уровне, для передачи больших объёмов информации с минимальными накладными расходами; обеспечение управлением потоком передаваемых данных посредством предоставления отправителю информации о наличии свободного мета в буфере приемника; увеличение максимального размера сообщений до 64 Кбайт; обеспечение возможности планирования путем передачи пакетов в соответствии с заданным расписанием.
Поставленная задача изобретения решается за счет того контроллер сетевого транспортного протокола (СТП) содержит контроллер приема пакетов СТП, служащий для приема поступающих от SpaceWire порта пакетов, контроля их корректности, связанный с буфером на отправку пакетов СТП, буфером принятых подтверждений приема, буфером принятых команд, сообщений, организованных по принципу «первым ушел» - «первым пришел», где буфер принятых команд сообщений, связан с контроллером транзакций на прием пакетов СТП; контроллер передачи пакетов СТП, состоящий из блока арбитража, блока формирования СТП пакета, блока буферизации команд, блока буферизации сообщений и блока буферизации срочных сообщений, связанные с буфером принятых подтверждений приема и с блоком арбитража, через который пакеты передаются в сеть SpaceWire; контроллер передачи пакетов СТП связан с контроллером транзакций на отправку пакетов СТП; при этом контроллер транзакций на отправку пакетов СТП и контроллер транзакций на прием пакетов СТП связаны через блок арбитража обращений с контроллером, преобразующим обращения от контроллеров транзакций СТП в транзакции на шину; блок регистров режима/состояний, связанный с контроллером приема пакетов СТП, контроллером передачи пакетов СТП, контроллером транзакций на отправку пакетов СТП, контроллером транзакций на прием пакетов СТП и контроллером, преобразующим поступающие к нему транзакции в обращения на чтение/запись в блок регистров режима/состояния; контроллер приема пакетов СТП через буфер принятых пакетов транспортных соединений связан с менеджером транспортных соединений, который соединен с буфером данных транспортных соединений, блоком формирования пакетов СТП, блоком арбитража и контроллером транзакций на прием пакетов СТП; контроллер приема пакетов СТП содержит блок обнаружения дуплетных команд; причем, такие компоненты, как блок буферизации сообщений, блок буферизации срочных сообщений, блок буферизации команд, FIFO принятых ACK, FIFO ACK на отправку могут быть исключены из состава контроллера СТП в случае не использования подтверждения.
Структурная схема контроллера представлена на фиг.1.
Контроллер СТП включает в себя следующие компоненты:
- контроллер передачи пакетов СТП - 1,
- контроллер приема пакетов СТП – 2,
- контроллер транзакций приема пакетов СТП – 3,
- контроллер транзакций на отправку пакетов СТП - 4,
- менеджер транспортных соединений – 5,
- FIFO ACK (acknowledgement/подтверждение приема) на отправку (FIFO ACK - буфер, организованный по принципу «первым пришел» - «первым ушел», подтверждений приема на отправку) - 6,
- FIFO принятых ACK (буфер, организованный по принципу «первым пришел» - «первым ушел», принятых подтверждений приема) – 7,
- FIFO принятых пакетов транспортных соединений - 8,
- FIFO принятых команд, сообщений (буфер, организованный по принципу «первым пришел» - «первым ушел», принятых команд, сообщений) - 9,
- блок буферизации команд - 10,
- блок буферизации срочных сообщений - 11,
- блок буферизации сообщений - 12,
- блок арбитража - 13,
- блок формирования пакета СТП - 14,
- блок регистров режима/состояния - 15,
- блок арбитража обращений - 16,
- контроллер внутрикристальной шины АНВ (master) (устройство, обеспечивающее передачу данных от контроллера СТП во внутрикристальную шину с получением квитанции подтверждения) - 17,
- контроллер внутрикристальной шины АНВ (slave) (устройство, обеспечивающее передачу данных от внутрикристальной шины в контроллер СТП) - 18,
- буфер данных транспортных соединений - 19,
- блок обнаружения дублетных команд – 20.
Контроллер приема пакетов СТП 2 передает полученные данные в буферы памяти FIFO (FIFO ACK на отправку 6, FIFO принятых ACK 7, FIFO принятых пакетов транспортных соединений 8, FIFO принятых команд, сообщений 9). Из FIFO принятых пакетов транспортных соединений 8 (при режиме с установкой соединения) данные передаются в менеджер транспортных соединений 5, а затем в контроллер транзакций приема пакетов СТП 3. Из FIFO принятых команд, сообщений 9 данные передаются в контроллер транзакций приема пакетов СТП 3. Контроллер передачи пакетов СТП 1 преобразует транзакции от прикладного уровня в пакеты, поступающие от контроллера транзакций на отправку пакетов СТП 4. Контроллер передачи пакетов СТП 1 состоит из блока арбитража 13, блока формирования СТП пакета 14, блока буферизации команд 10, блока буферизации сообщений 12 и блока буферизации срочных сообщений 11. При этом блок формирования СТП пакета 14 распределяет сформированные пакеты по буферам в зависимости от типа пакета, затем через блок арбитража 13 пакеты передаются в сеть SpaceWire. Контроллер транзакций на отправку пакетов СТП 4 и контроллер транзакций на прием пакетов СТП 3 связаны через блок арбитража обращений 16 с контроллером внутрикристальной шины (master) 17. Менеджер транспортных соединений 5 ведёт учёт активных и неактивных транспортных соединений. Блок регистров режима/состояний 15 связан с функциональными блоками (контроллер приема пакетов СТП 2, контроллер передачи пакетов СТП 1, контроллер транзакций на отправку пакетов СТП 4, контроллер транзакций на прием пакетов СТП 3) и контроллером внутрикристальной шины (slave) 18. Контроллер внутрикристальной шины (master) 17 и контроллер внутрикристальной шины (slave) 18 служат для связи с внутрикристальной шиной, при этом контроллер внутрикристальной шины (master) 17 инициирует обращения к внутрикристальной шине, а контроллер внутрикристальной шины (slave) 18 только принимает данные от внутрикристальной шины.
Такие компоненты, как блок буферизации сообщений 12, блок буферизации срочных сообщений 11, блок буферизации команд 10, FIFO принятых ACK 7, FIFO ACK на отправку 6 могут быть исключены из состава контроллера СТП в случае неиспользования подтверждения.
Если не используются подтверждения для всех типов пакетов (и команд, и сообщений), то исключаются все буфера; если не используются подтверждения для части типов, то исключаются только относящиеся к ним буфера в блоке контроллера передачи СТП. Под исключением компонентов из состава контроллера СТП подразумевается их отсутствие в структурной схеме или программной реализации или аппаратной или аппаратно-программной реализации. Средством исключения в программной реализации является отсутствие исполняемого кода, который обеспечивает выделение областей памяти или регистров для исключаемых компонентов и обеспечивает их работу. Средством исключения в аппаратной реализации является отсутствие компонентов на топологии микросхемы или их электрическое отключение. Средством исключения в аппаратно-программной реализации может служить средство описанное для программной реализации или средства описанные для аппаратной реализации или оба средства совместно.
Устройство работает следующим образом.
1. Контроллер передачи пакетов СТП 1 осуществляет преобразование транзакций, поступающих от прикладного уровня в пакеты СТП, передачу их в порт SpaceWire; преобразование транзакций на отправку ACK, поступающих от контроллера приема пакетов СТП 2, передачу их в порт SpaceWire, приём меток времени от прикладного уровня при качестве сервиса с планированием и передачу данных в соответствии с расписанием. В контроллере передачи пакетов СТП 1 выполняется буферизация пакетов СТП, на которые должны быть получены подтверждения, арбитраж на передачу среди пакетов, уже находящихся в буферах и вновь поступающих от приложений и ACK, поступающих от контроллера приема СТП 2. Пакеты хранятся в блоках буферизации соответствующих им типов. В блоках буферизации выполняется контроль времени жизни пакетов и времени повторной отправки пакетов; регистрация подтверждений пакетов. Блоки буферизации включают в себя комплекты таймеров времени жизни, времени повторной передачи, автоматы управления повторной передачей и стиранием пакетов в соответствии со значениями таймеров и параметрами принятых из сети подтверждений. Параметры принятых из сети подтверждений поступают в контроллер передачи пакетов СТП 1 из контроллера приема пакетов СТП 2 через FIFO принятых ACK 7. При установке транспортных соединений контроллер передачи пакетов СТП 1 ведёт учёт разрешенного к отправке объёма данных. Информация о свободном пространстве передаётся в пакетах подтверждений, в результате чего осуществляется управление потоком для передаваемых данных с качеством сервиса «Гарантированная доставка».
2. Контроллер приема пакетов СТП 2 осуществляет прием поступающих в него от SpaceWire порта пакетов, контроль их корректности. Блок обнаружения дуплетных команд 20 входящий в состав контроллера приема пакетов выполняет проверку соответствия принятых пакетов временному интервалу, ведет историю принятых пакетов команд для обнаружения дублированных команд. Среди корректных пакетов выделяются пакеты подтверждений. Их параметры помещаются в FIFO принятых ACK 7. Корректные пакеты команд, сообщений транспортных соединений, срочных сообщений и обычных сообщений помещаются в FIFO принятых команд, сообщений 9. Если для пакета требуется отправка подтверждения, то параметры транзакции подтверждения помещаются в FIFO ACK на отправку 6, из которого передаются в сеть через блок арбитража 13. При установке транспортных соединений контроллер приема пакетов СТП 2 резервирует запрошенный объём буферного пространства и ведёт учёт заполнения данного пространства при помощи счётчиков: «свободные кредиты» в байтах и «используемое пространство» в байтах.
3. Контроллер транзакций на отправку пакетов СТП 4 выполняет прием транзакций от уровня приложений, их интерпретацию и передачу в контроллер передачи пакетов СТП 1. Все параметры транзакции поля данных отправляемого пакета должны быть расположены в памяти, доступной контроллеру СТП через интерфейс контроллера внутрикристальной шины (master) 17. Начальный адрес и размер области памяти, в которой расположена одна или несколько транзакций передаются в контроллер транзакций на отправку пакетов СТП 4 путем записи соответствующих значений в регистры, расположенные в блоке регистров режима/состояния. Контроллер транзакций на отправку пакетов СТП 4 осуществляет чтение параметров транзакций и передачу их в контроллер передачи пакетов СТП 1. Чтение параметров осуществляется за одно или несколько обращений к внутрикристальной шине через её контроллер (master) 17. Максимально допустимое количество слов в одном обращении задается через соответствующий регистр режима.
4. Контроллер транзакций на прием пакетов СТП 3 осуществляет преобразование принятых корректных пакетов команд, сообщений транспортных соединений, срочных сообщений и обычных сообщений в транзакции для прикладного уровня. Все параметры транзакций записываются в область памяти, доступную контроллеру СТП через интерфейс контроллера внутрикристальной шины (master) 17. Начальный адрес и размер области памяти задаются путем записи в соответствующие регистры блока регистров режима/состояния 15. Запись параметров транзакции осуществляется за одно или несколько обращений к внутрикристальной шине через её контроллер (master) 17. Максимально допустимое количество слов в одном обращении задается через соответствующий регистр режима.
5. Менеджер транспортных соединений 5 формирует пакет запроса установления соединения при поступлении запроса на установку транспортного соединения от прикладного уровня, отправляет его узлу назначения и помещает в буфер данных транспортных соединений 19, после окончания таймера забирает пакет из буфера данных транспортных соединений 19 и повторно отправляет пакет запроса установления соединения, выбирает номер транспортного соединения для установки транспортного соединения при приеме пакета запроса установки соединения на ведомом устройстве через FIFO принятых ACK 7, делает запрос на отправку пакета подтверждения установки соединения. Пакеты запросов установления соединения и пакеты подтверждения установки соединения менеджер транспортных соединений 5 отправляет блоку формирования пакета СТП 14 и производит управление блоком арбитража 13 для отправки этих пакетов.
6. Блок арбитража обращений 16 выполняет арбитраж обращений к контроллеру внутрикристальной шины (master) 17 от контроллера транзакций на отправку пакетов СТП 4 и контроллера транзакций на прием пакетов СТП 3. Арбитраж выполняется по схеме с динамическими циклическими приоритетами.
7. Контроллер внутрикристальной шины (master) 17 преобразует обращения от контроллеров транзакций СТП 3,4 в транзакции на внутрикристальную шину, осуществляет контроль их выполнения.
8. Контроллер внутрикристальной шины (slave) 18 преобразует поступающие к нему транзакции внутрикристальной шины в обращения на чтение/запись в блок регистров режима/состояния 15.
9. Блок регистров режима/состояний 15 включает в себя массив регистров режима/состояния и контроллеры записи и чтения регистров со стороны внутрикристальной шины через её контроллер (slave) и со стороны функциональных блоков, входящих в состав контроллера СТП.
Контроллер СТП является конфигурируемым, обеспечивая возможность исключать разные его компоненты. Контроллер СТП позволяет реализовать сетевой транспортный протокол, обеспечивающий высоконадежную транспортировку передаваемых данных по линиям связи сети SpaceWire.
За счет ввода новых элементов устраняются недостатки прототипа: исключается возможность прохождения дублированных команд управления, уменьшается объём служебной информации при передачи больших объёмов полезных данных тем самым пропускная способность линии связи перераспределяется в пользу полезных данных, осуществляется управления потоком передаваемых данных за счет возможности получения информации о свободном месте в буфере приемника, максимальный размер сообщения увеличен до 64 Кбайт, появляется возможность отправки пакетов в соответствии с заданным расписанием (планирование).