Отказоустойчивый канал системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных



Отказоустойчивый канал системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных
Отказоустойчивый канал системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных

Владельцы патента RU 2768535:

Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") (RU)
Федеральное государственное унитарное предприятие "Российский федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") (RU)

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

 

Изобретение, относится к области коммуникационных систем, в частности к механизмам высокоскоростного последовательного ввода/вывода данных.

Известно устройство - канальный блок системы межпроцессорного обмена на основе мультигигабитных последовательных приемопередатчиков GTX фирмы Xilinx (см. http://hpc-education.unn.ru/files/conference_hpc/2011/files/174.pdf). содержащее первый блок управления передачей и приемом данных по одной линии, включающий в себя буфер для отправки данных, выход которого соединен со входом блока управления передачей пакетов на передающей стороне, приемопередатчик, блок управления приемом пакетов на приемной стороне, выход которого соединен со входом буфера для приема данных.

На передающей стороне (выходной канал) данные от коммутатора записываются в буфер для передачи их по каналу связи. Буфер представляет собой очередь с организацией «первый пришел - первый вышел» (FIFΟ). От туда данные считываются блоком управления передачей пакетов, который формирует служебные признаки начала и конца пакетов и передает данные приемопередатчику. При появлении первого слова пакета в буфере блок управления передачей пакетов передает служебный символ начала пакета. Затем передается пакет и выполняется проверка на наличие ошибок в нем. Если ошибок нет, то приемопередатчику передается признак конца пакета без ошибок. Иначе передается признак конца пакета с ошибками. Приемопередатчик выполняет кодировку данных (применяемая кодировка 8В/10В).

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

На приемной стороне (входной канал) приемопередатчик выполняет обратные действия: преобразует данные в параллельный код, декодирует их и передает блоку управления приемом пакетов. К каждому принятому слову полезных данных блок управления приемом пакетов добавляет три служебных флага. После получения служебного признака начала пакета к следующему слову добавляется служебный флаг начала пакета и происходит запись в буфер для приема данных. Если во время приема пакета были ошибки или пришел признак конца пакета с ошибками, то к последнему слову пакета вместе со служебным флагом конец пакета добавляется флаг ошибки. При отсутствии синхронизации между передатчиком и приемником блок управления выставляет сигнал приемопередатчику произвести посимвольное выравнивание данных.

Вышеуказанное устройство является наиболее близким по технической сущности к заявляемому устройству и поэтому выбрано в качестве прототипа.

Недостатками прототипа являются отсутствие виртуальных каналов, передача и прием данных по одной линии, использование кодировки 8В/10В.

Решаемой технической проблемой является создание отказоустойчивого канала системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных с повышенной надежностью и пропускной способностью, а также обеспечивающего поддержку как различных топологий коммуникационной сети, так и обменов данными без возникновения состояния взаимной блокировки (Deadlock).

Достигаемым техническим результатом является введение буферов виртуальных каналов, дополнительных линий передачи и приема данных, использование кодировки 64В/66В, а также программируемого и адаптивного выбора линий передачи данных для различных режимов работы канала.

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

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

На фигуре 1 представлена блок-схема заявляемого устройства.

Отказоустойчивый канал системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных содержит первый блок управления передачей и приемом данных по одной линии 1, включающий в себя буфер для отправки данных 2. выход которого соединен со входом блока управления передачей пакетов на передающей стороне 3, приемопередатчик 5, блок управления приемом пакетов на приемной стороне 8, выход которого соединен со входом буфера для приема данных 9. Блоки управления передачей и приемом данных по одной линии 1.1-1.11 идентичны первому блоку 1, при этом в каждый блок 1-1.11. на передающей стороне введены блок кодирования данных 4, вход которого соединен с выходом блока управления передачей пакетов 3, а выход его соединен с входом приемопередатчика 5, а на приемной стороне введены блок декодирования данных 6 и блок синхронизации данных 7, вход/выход которого соединен со входом/выходом блока декодирования данных 6, вход которого соединен с выходом приемопередатчика 5, а выход соединен со входом блока управления приемом пакетов 8. На передающей и приемной сторонах введены блоки коммутаторов виртуальных каналов 12 и 13, буферы виртуальных каналов 10-10.5 и 11-11.5, входы каждого буфера для отправки данных 2-2.11 всех блоков управления передачей и приемом данных по одной линии 1-1.11 на передающей стороне соединены с соответствующими выходами коммутатора виртуальных каналов на передающей стороне 12, выходы каждого буфера для приема данных 9-9.1 всех блоков управления передачей и приемом данных по одной линии 1-1.11 на приемной стороне соединены с соответствующими входами коммутатора виртуальных каналов на приемной стороне 13. Введен блок управления режимами работы канала 14, выход которого соединен с соответствующими входами коммутаторов виртуальных каналов на передающей 12 и приемной стороне 13, входы и выходы которых соединены соответственно с выходами и входами буферов виртуальных каналов на передающей 10-10.5 и приемной стороне 11-11.5, входы и выходы которых являются входами и выходами устройства.

Устройство работает следующим образом. На передающей стороне данные от коммутатора записываются в буферы виртуальных каналов 10-10.5 для передачи их по каналу связи. Все шесть буферов 10-10.5 идентичны и представляют собой очередь с организацией «первый пришел - первый вышел» (FIFO). Буфер каждого виртуального канала 10-10.5 имеет сигнал, который устанавливается в значение «1», когда в нем осталось место только для одного пакета данных. Этот сигнал подключен к коммутатору и предназначен для предотвращения переполнения буферов 10-10.5.

Из буферов 10-10.5 данные считываются коммутатором виртуальных каналов 12, который выполняет следующие функции:

- коммутацию пакетов данных между буферами виртуальных каналов 10-10.5;

- форматирование слов в зависимости οт режима работы канального блока;

- запись данных в асинхронные буферы линий 2-2.11, соответствующих режиму работы;

- обработку информации о состоянии буферов виртуальных каналов приемника 11-11.5.

Коммутатор виртуальных каналов 12 определяет, из какого буфера виртуальных каналов 10-10.5 считывать данные. Переключение с одного буфера виртуальных каналов 10-10.5 на друзой происходит после считывания признака конца пакета. Если данные находятся только в одном буфере виртуальных каналов 10-10.5, то они будут считываться из него, вне очереди. Пакет начинает считываться, если не заполнен соответствующий буфер виртуального канала на приемной стороне 11-11.5. При получении информации о заполнении буферов виртуальных каналов приемника 11-11.5 коммутатор 12 останавливает процесс передачи пакетов по каналу. Передача данных возобновляется, когда установится сигнал об освобождении буферов 11-11.5. Коммутатор виртуальных каналов на передающей стороне 12 поддерживает следующие режимы работы:

- режим х12 - передача и прием данных осуществляется одновременно по 12 независимым линиям;

- режим х8 - передача и прием данных осуществляется одновременно по восьми независимым линиям;

- режим х4 - передача и прием данных осуществляется одновременно по четырем независимым.

- режим x1 - передача и прием данных осуществляется по одной линии.

Канальный блок содержит 12 идентичных и независимых блоков управления передачей и приемом данных по одной линии 1-1.11. Каждый блок управления 1-1.11 работает на собственных тактовых частотах для передачи и приема данных.

Для перевода данных с тактовой частоты коммутатора на тактовую частоту линии 1 используется асинхронный буфер 2. Данные в буфер 2 записываются коммутатором виртуальных каналов на передающей стороне 12 на частоте работы коммутатора, а считываются блоком управления передачей пакетов 3 на чистоте линии.

При появлении первого слова пакета в буфере 2 блок управления передачей пакетов 3 передает служебный символ начала пакета. Вместе с этим символом передается номер виртуального канала, из которого был считан пакет. Затем передается пакет и проверяется каждое слово на наличие признака конца пакета. После считывания из буфера 2 последнего слова пакета, проверяется, есть ли ошибки в этом пакете. Если их нет, и не было ошибок во время передачи пакета, то в канал передается признак конца пакета без ошибок. Иначе передается признак конца пакета с ошибками.

С каждым словом данных (кадром) передается его заголовок. Заголовок кадра (преамбула) определяет тип передаваемых данных. Предусмотрено два типа кадров: кадр с данными (преамбула = «01») и кадр с управляющей информацией/данными (преамбула = «10»).

Преамбулы «00» и «11» считаются ошибочными, и при приеме такой преамбулы блоком синхронизации данных 7 детектируется ошибка синхронизации кадров.

Передача данных останавливается при установке сигнала, указывающего на заполнение буферов линий приемника 9-9.11. Передача данных возобновляется при сбросе этого сигнала. Во время передачи данных постоянно анализируется состояние буферов приемника 9-9.11. В случае изменения состояния буферов 9-9.11, по каналу передается соответствующая информация.

Блок управления передачей пакетов 3 передает слова на вход блоку кодирования данных 4. Сначала происходит скремблирование данных, т.е. выполняется преобразование входных данных в псевдослучайную последовательность. Это необходимо для обеспечения баланса "0" и "1" в последовательном потоке данных. Преамбулы кадров не скремблируются и используются блоком синхронизации данных 7 для определения границ выравнивания слов. Применение скремблера не гарантирует равномерного распределения "0" и "1" в последовательном потоке, однако выбор в качестве разрешенных преамбул кадра значений «01» и «10» гарантирует, что, хотя бы один переход из "0" в "1" или из "1" в "0" случается не реже чем через 66 битовых интервалов. Затем происходит преобразование 66 разрядной выходной шины скремблера, сопровождаемой сигналом истинности в 64 разрядную входную шину приемопередатчика 5. Так как вместе с 64 битными кадрами передается двухбитная преамбула, то раз в 32 такта делается пуаза на один такт, чтобы избежать потери данных.

Блок кодирования 4 передает данные на вход приемопередатчику 5. Приемопередатчик 5 преобразует данные из параллельного кода в последовательный поток символов и передает его по дифференциальной паре. При приеме осуществляет обратное преобразование последовательного потока данных в параллельный код.

Далее данные поступают на вход блоку декодирования 6. Сначала выполняется формирование из принимаемых данных кадров и их преамбул. По сигналу, устанавливаемым блоком синхронизации данных 7. сдвигается на один бит граница кадров. Затем происходит преобразование входного скремблированного кода в первоначальный формат данных. Преамбула данных не требует дескремблирования, и используются блоком синхронизации данных 7 для определения границ кадров.

Блок синхронизации данных 7 выполняет анализ синхронизирующих заголовков кадров и устанавливает сигнал блоку декодирования данных 6 сдвинуть на один бит границу слов. Разрешенные заголовки «01» и «10». ошибочные заголовки - «00» или «11».

Блок управления приемом пакетов 8 получает данные от блока декодирования 0. После получения служебного символа начала пакета блок управления 8 переходит в режим приема пакета, добавлять к каждому принятому слову три служебных флага и записывать слова в асинхронный буфер 9. К каждому слову добавляется номер виртуального канала, указывающий в какой буфер виртуального канала 11-11.5 записывать принимаемый пакет. Для выравнивания данных блоком коммутатора виртуальных каналов на приемной стороне 13 к каждому слову добавляется его номер в пакете данных и номер пакета. Если во время приема пакета были ошибки или пришел признак конца пакета с ошибками, то к последнему слову пакета вместе со служебным флагом конец пакета добавляется флаг ошибки. После установления синхронизации линии и приема из канала сигнала о синхронизации приемника, блок управления приемом пакетов 8 устанавливает признак готовности линии к передаче и приему данных.

Для перевода данных с тактовой частоты линии на тактовую частоту коммутатора используется асинхронный буфер 9. Данные в буфер 9 записываются блоком управления передачей пакетов 8 на чистоте линии, а считывают см коммутатором виртуальных каналов на приемной стороне 13 на частоте коммутатора.

Коммутатор виртуальных каналов на приемной 13 стороне выполняет следующие функции:

- коммутацию пакетов между буферами виртуальных каналов 11-11.5;

- форматирование слов, в зависимости от режима работы канального блока;

- чтение данных из асинхронных буферов линии 9-9.11, соответствующих режиму работы;

- пословное выравнивание принятых данных;

- обработку информации о состоянии буферов виртуальных каналов 11-11.5 приемника.

Коммутатор виртуальных каналов 13 считывает данные из асинхронных буферов линий 9-9.11 и определяет, в какой буфер виртуальных каналов 11-11.5 их записать. Все шесть буферов 11-11.5 идентичны. При получении информации о заполнении буферов виртуальных каналов приемника 11-11.5. коммутатор 13 устанавливает сигнал остановки передачи данных. Считывание пакета данных начинается, когда во всех соответствующих режиму работы буферах линий 9-9.11 появятся данные с признаком начала пакета. Проверяется номер каждого слова и номер пакета. Если при считывании данных у слов будут отличаться номера, то коммутатор виртуальных каналов 15 устанавливает сигнал, но которому будет произведен сброс канального блока. Если во время приема данных произойдет символьная ошибка на одной из линий 1-1.11, то в буфер виртуальных каналов запишется признак конца пакета с ошибкой 11-11.5. Коммутатор виртуальных каналов на приемной стороне 13 поддерживает режимы работы х12, х8, х4 и x1.

Выбор буфера виртуального канала 11-11.5 для записи данных на приемной стороне осуществляется в блоке коммутатора виртуальных каналов 13. Поэтому, в канальном блоке вместе с каждым пакетом передается номер виртуального канала, из которого был считан пакет. На приемной стороне, в соответствии с этим номером, каждый пакет записывается в соответствующий буфер виртуального канала 11-11.5.

Информация о состоянии буферов виртуальных каналов приемника 11-11.5 передается после каждого пакета, а в случае ее изменения, непосредственно во время передачи пакета. Если место в буфере 11-11.5 заканчивается, то передача данных по каналу должна останавливаться до тех пор, пока буфер 11-11.5 не освободится. Таким образом, осуществляется защита от возможных потерь данных, связанных с недостатком места в буферах виртуальных каналов на приемной стороне 11-11.5.

Блок управления режимом работы канала 14 отвечает за переключение между режимами х12. х8, х4 или x1. По умолчанию и после процедуры сброса в канале задается в режим х12. Если количество синхронизированных (активных) линий 1-1.11 меньше 12, но больше или равно восьми, то осуществляется переход на режим х8. Если количество активных линий 1-1.11 меньше восьми, но больше или равно четырем, то осуществляется переход на режим х4. Если количество активных линий 1-1.11 меньше четырех, но есть хотя бы одна активная линия 1-1.11, то осуществляется переход на режим x1. Переключение между режимами осуществляется как автоматически при потере синхронизации на линиях 1-1.11. так и принудительно, при получении команды. Может быть использована любая комбинация линий 1-1.11. соответствующая по количеству требуемому режиму работы при условии, что ли линии 1-1.11 активны. Переход на режим с большим количеством линий 1-1.11 может осуществляться только после процедуры сброса или после отключения и подключения кабеля.

Отказоустойчивый канал системы межпроцессорных обменов с программируемым и адаптивным выбором линий передачи данных прошел проверку и показал свою работоспособность в составе прошивки программируемой логической интегральной схемы на макетных платах.

Применение данного устройства в составе прошивки системы межпроцессорных обменов позволило увеличить пропускную способность одного канала примерно в 12 раз по сравнению с прототипом за счет использования дополнительных линий передачи и приема данных и кодировки 64 В/66 В. Также повысилась надежность системы за счет введения дополнительных режимов работы канала х12, х8, х4, x1, а также за счет программируемого и адаптивного выбора линий передачи данных. Введения буферов виртуальных каналов обеспечило поддержку как различных топологий коммуникационной сети, так и обменов данными без возникновения состояния взаимной блокировки.

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



 

Похожие патенты:

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении раннего обнаружения вредоносных программных агентов и выведения их из строя.

Изобретение относится к средствам синхронизации памяти в многоядерной системе. Техническим результатом является расширение арсенала средств синхронизации памяти в многоядерной системе.

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

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

Изобретение относится к области антивредоносных систем, использующих технологию аппаратной виртуализации. Техническим результатом является защита компьютерных систем от вредоносных программ.

Изобретение относится к области антивредоносных систем, использующих технологию аппаратной виртуализации. Техническим результатом является защита компьютерных систем от вредоносных программ.

Изобретение относится к средству подкачки страниц. Технический результат заключается в повышении скорости загрузки страниц.

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

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