Контроллер сетевого транспортного протокола
NETWORK TRANSPORT PROTOCOL CONTROLLER

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