УСТРОЙСТВО КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА GIGASPACEWIRE
GIGASPACEWIRE COMMUNICATION INTERFACE DEVICE

Описание изобретения
Настоящее изобретение представляет собой устройство (систему) коммуникационного интерфейса и относится к цифровой вычислительной технике, а именно, к высокоскоростным коммуникационным системам для высокопроизводительных многопроцессорных вычислительных систем с распределенной обработкой информации и локальным вычислительным сетям, создаваемых на базе технологии SpaceWire [ECSS Standard ECSS-E-50-12A, "SpaceWire, Links, Nodes, Routers and Networks", Issue 1, European Cooperation for Space Data Standardization, February 2003.]. Данное устройство предназначено, в частности, для использования при построении многопроцессорных вычислительных систем с распределенной архитектурой, используемых во встраиваемых применения, в том числе, в бортовых вычислительных комплексах, а также бортовых локальных сетей.
В качестве аналога из уровня техники известен коммуникационный интерфейс, описанный в патенте, в котором при передаче данных по последовательному коммуникационному каналу используется преобразование 8b/10b для представления восьмибитовых символов в виде 10-битовых кодов. В устройствах, взаимодействующих через данный коммуникационный интерфейс, каждые восемь битов исходной последовательности заменяются 10 битами в соответствии с определенными правилами. В результате для 256 возможных комбинаций из восьми входных битов получается 1024 возможные комбинации для 10 выходных битов. Но разрешенными из этих 1024 комбинаций являются только 256, а остальные - запрещенными. Как правило, такая избыточность используется для того, чтобы повысить помехоустойчивость кодирования (если при приеме обнаруживается запрещенная последовательность, то распознается ошибка передачи). Кроме того, такая избыточность улучшает самосинхронизирующие свойства кода, поскольку исключает возможность появления в цепочке передаваемых битов длинных последовательностей нулей и единиц, что способствует, в конечном счете, повышению надежности работы устройства. При приеме данных осуществляется декодирование 8b/10b, то есть каждой группе из 10 битов сопоставляется восемь битов.
Недостаток этого подхода состоит в отсутствии возможности передачи специальных управляющих кодов наряду с символами данных. Специальные управляющие коды необходимы для поддержки системных функций и управления в реальном масштабе времени, что существенно ограничивает область применения.
Известно устройство преобразования 8b/10b, [US Patent 06977599 В2. 8В/10В encoding and decoding for high speed applications, Apr 30, 2002]. используемый в стандарте FibreChannel. Устройство содержит блок кодирования 8b/10b, выходной 10-разрядный сдвиговый регистр, обеспечивающий преобразование параллельных 10-битовых кодов в последовательный поток битов, выдаваемых в коммуникационный интерфейс, входной 10-разрядный сдвиговый регистр, обеспечивающий обратное преобразование последовательного потока битов в параллельные 10-битовые коды и блок декодирования 8b/10b. Устройство работает на локальной частоте в 10 раз меньшей частоты передачи битов в коммуникационном интерфейсе. Применение кода 8b/10b позволяет использовать в коммуникационном канале одну передающую линию данных, так как при кодировании 8b/10b имеется возможность передачи наряду с символами данных специального встроенного символа тактирования, предназначенного для синхронизации взаимодействующих устройств.
В качестве недостатка необходимо отметить, что устройство не обеспечивает передачу в реальном масштабе времени различных специальных управляющих кодов (системных прерываний, маркеров системного времени и других управляющих сигналов, необходимых для управления на системном уровне), поскольку отсутствует возможность вставить управляющий код внутрь последовательности передаваемых восьмибитовых символов данных одного кадра. Необходимость ожидания окончания передачи очередного кадра данных проводит к существенным временным задержкам при выполнении системных функций. Кроме того, невозможность реализации системных механизмов в реальном масштабе времени значительно сужает область применения.
Известен последовательный коммуникационный интерфейс, реализующий способ DS-кодирования (Data-Strobe coding) в соответствии со стандартом SpaceWire [ECSS Standard ECSS-E-50-12A, "SpaceWire, Links, Nodes, Routers and Networks", Issue 1, European Cooperation for Space Data Standardization, February 2003.] и широко применяемый для передачи потоков битов между обрабатывающими узлами в бортовых распределенных вычислительных комплексах. Использование в коммуникационном интерфейсе линий данных и строба (D- и S-сигналов) в каждом направлении позволяет обеспечить высокоскоростную передачу битов данных в широком диапазоне скоростей от 2 Мбит/с до 400 Мбит/с. Простая реализация процедуры формирования пакетов данных, основанная на применении служебных (управляющих) символов конца пакета ЕОР (End Of Packet), позволяет передавать информационные символы в виде пакетов произвольной длины. Такая возможность упрощает структуру коммутационных узлов (коммутаторов и концентраторов), применяемых для передачи и коммутации битовых потоков от бортовых датчиков к обрабатывающим узлам в распределенных вычислительных комплексах.
Недостатком интерфейса SpaceWire является наличие джиттера (вариации времени задержки) между параллельно передаваемыми D- и S-сигналами в физическом канале. DS-кодирование из-за необходимости использования двух линий для передачи битов данных и сигналов стробирования предъявляет достаточно жесткие требования к скосу (фазовому сдвигу) и джиттеру D- и S-сигналов, что затрудняет его использование на расстояниях более 10 метров. Так же наличие двух линий для каждого направления передачи затрудняет использование гальванической развязки из-за возникающих разных задержек на самой развязке, что существенно ограничивает область применения устройств SpaceWire в бортовых распределенных вычислительных комплексах.
Известно устройство коммуникационного интерфейса [Patent GB №91304711.4. Communication interface for serial transmission of variable length data tokens / Priority 25.05.90, №9011700. Data of filing 24.05.91. Data of publication 27.11.91. Bulletin 91/48 of European Patent Office. Publication number 0458648 A2] для использования в коммуникационной системе, соединяющей как минимум два компьютера, причем устройство коммуникационного интерфейса, содержащее блок управления, блок управления потоком данных, блок выдачи данных и блок приема данных, входы данных и стробирования которого являются соответственно входами данных и стробирования интерфейса устройства с каналом приема информации, выходы данных и стробирования интерфейса устройства с каналом выдачи информации являются соответственно выходами данных и стробирования блока выдачи данных. Блок управления потоком устройства с помощью специальных управляющих символов управления потоком FCT (Flow Control Token) реализует механизм кредитования, позволяющий использовать буферы ограниченного размера для приема и передачи пакетов неограниченной длины.
Недостатком данного устройства коммуникационного интерфейса является ограничение расстояния между взаимодействующими сторонами и отсутствие гальванической развязки, что может вызывать отказы и неисправности из-за коротких замыканий.
Ближайшим аналогом к заявляемому является устройство коммуникационного интерфейса для сети SpaceWire [Патент РФ №2483351 С1 на изобретение, заявка №2012115639/08, заявл. 19.04.2012, опубл. 27.05.2013 Бюл. №15]. Известное устройство, реализующее коммуникационный интерфейс GigaSpaceWire, содержит блок выдачи данных, преобразователь передаваемых символов, приемопередатчик символов, преобразователь принимаемых символов, блок приема данных, блок проверки соединения, блок управления и блок управления потоком данных, выход запроса на выдачу символа управления потоком которого соединен с одноименным входом блока выдачи данных, выход готовности выдачи символа управления потоком которого соединен с одноименным входом блока управления потоком данных, входы подтверждения приема символа управления потоком и подтверждения приема информационного символа которого соединены соответственно с одноименными выходами блока приема данных и одноименными входами блока управления, выход ошибки кодировки символа которого является выходом ошибки кодировки символа системного интерфейса устройства, вход синхронизации которого соединен с одноименными входами блока выдачи данных, блока приема данных, блока управления потоком данных и блока управления, вход сброса системного интерфейса устройства является входом сброса блока управления, первый выход сброса которого соединен входами сброса блока выдачи данных, преобразователя передаваемых символов и приемопередатчика символов, второй выход сброса блока управления соединен с входом сброса блока приема данных, выход «получен NULL» которого соединен с одноименным входом блока управления, вход чтения данных системного интерфейса устройства является одноименным входом блока приема данных, выходы данных для приема и готовности данных для приема которого являются соответствующими выходами системного интерфейса устройства, выход ошибки кредитования системного интерфейса устройства является одноименным выходом блока управления потоком данных и соединен с одноименным входом блока управления, третий выход сброса которого соединен с входом сброса блока управления потоком данных, входы подтверждения выдачи информационного символа и разрешения приема данных которого соединены с одноименными выходами соответственно блока выдачи данных и блока приема данных, выход готовности выдачи данных системного интерфейса устройства является одноименным выходом блока выдачи данных, входы записи и данных для выдачи системного интерфейса устройства являются соответствующими входами блока выдачи данных, выход ошибки рассоединения блока проверки соединения соединен с одноименным входом блока управления, информационный вход приемопередатчика символов соединен с выходом символа 8b преобразователя передаваемых символов, выход готовности выдачи символа которого соединен с входом готовности блока выдачи данных, информационный выход и выход типа символа которого соединены соответственно с входами данных и типа символа преобразователя передаваемых символов, выход признака спецсимвола которого соединен с входом признака типа символа приемопередатчика символов, выход битовых сигналов которого является одноименным выходом коммуникационного интерфейса устройства, выход локальной синхронизации приемопередатчика символов соединен с одноименными входами преобразователя передаваемых символов, преобразователя принимаемых символов, блока управления, блока приема данных и блока выдачи данных, вход записи управляющего кода которого является одноименным входом системного интерфейса устройства, выход готовности выдачи управляющего кода которого является одноименным выходом блока выдачи данных, вход управляющего кода для выдачи которого является одноименным входом системного интерфейса устройства, выход принятого управляющего кода которого является одноименным выходом блока приема данных, выход готовности принятого управляющего кода которого является одноименным выходом системного интерфейса устройства, вход чтения управляющего кода которого является одноименным входом блока приема данных, информационный вход и вход типа символа которого соединены соответственно с одноименными выходами преобразователя принимаемых символов, информационный вход которого соединен с одноименным выходом приемопередатчика символов, выход символа 8b которого соединен с информационным входом блока проверки соединения, вход признака спецсимвола которого соединен с одноименными входом преобразователя принимаемых символов и выходом приемопередатчика символов, выход ошибки кодирования которого соединен с одноименным входом блока управления, вход установления соединения которого соединен с одноименным выходом блока проверки соединения, вход признака соединения которого соединен с одноименным входом преобразователя принимаемых символов и с одноименным выходом приемопередатчика символов, выход синхронизации приема которого соединен с одноименным входом блока проверки соединения, вход битовых сигналов приемопередатчика символов является одноименным входом коммуникационного интерфейса устройства, причем блок управления потоком данных содержит формирователь запросов кредитования, счетчик принятых символов, счетчик переданных символов и детектор ошибки кредитования, первый выход которого является выходом ошибки кредитования блока управления потоком данных, вход разрешения приема данных и вход готовности выдачи символа управления которого являются соответственно первым и вторым входами формирователя запросов кредитования, третий вход которого соединен с выходом состояния счетчика принятых символов, вход синхронизации которого является входом синхронизации блока управления потоком данных и соединен с входами синхронизации формирователя запросов кредитования, счетчика переданных символов и детектора ошибки кредитования, вход сброса блока управления потоком данных соединен с входами сброса формирователя запросов кредитования, счетчика принятых символов, счетчика переданных символов и детектора ошибки кредитования, первый информационный вход которого соединен с выходом ошибки кредита приема счетчика принятых символов, первый управляющий вход которого соединен с выходом формирователя запросов кредитования и является выходом запроса на выдачу символа управления потоком блока управления потоком данных, второй управляющий вход счетчика принятых символов является входом подтверждения приема информационного символа блока управления потоком данных, вход подтверждения приема символа управления потоком которого является первым управляющим входом счетчика переданных символов, второй управляющий вход которого является входом подтверждения выдачи информационного символа блока управления потоком данных, второй информационный вход детектора ошибки кредитования соединен с выходом состояния счетчика переданных символов; блок управления содержит регистр состояния, блок формирования нового состояния и формирователь управляющих сигналов, вход сброса которого является входом сброса блока управления и соединен с входами сброса регистра состояния, выход состояния которого соединен с первым управляющим входом блока формирования нового состояния и с управляющим входом формирователя управляющих сигналов, выход установления соединения, выход ошибки рассоединения и выход ошибки кодировки символа регистра состояния являются одноименными выходами блока управления, вход синхронизации которого является входом синхронизации регистра состояния, вход управления состоянием которого соединен с выходом управления состоянием блока формирования нового состояния, входы установления соединения, ошибки кредитования, ошибки рассоединения, ошибки кодировки символа, подтверждения приема символа управления потоком, и подтверждения приема информационного символа которого являются одноименными входами блока управления, вход локальной синхронизации которого соединен с одноименными входом формирователя управляющих сигналов, первый, второй, третий выходы сброса и выход разрешения передачи символа управления потоком которого являются одноименными выходами блока управления, вход «Получен NULL» которого является одноименным входом блока формирования нового состояния; блок проверки соединения содержит дешифратор символа поддержки связи, триггер установки связи, счетчик ожидания, первый элемент ИЛИ, второй элемент ИЛИ и элемент И, выход которого является выходом ошибки рассоединения блока проверки соединения, информационный вход и вход признака спецсимвола которого являются соответственно первым и вторым входами дешифратора символа поддержки связи, выход селекции символа поддержки связи которого соединен с первым входом первого элемента ИЛИ, выход которого соединен с входом данных триггера установки связи, выход установления соединения которого соединен со вторым входом первого элемента ИЛИ, с первым входом элемента И и является выходом установления соединения блока проверки соединения, вход признака соединения которого соединен с разрешающим входом дешифратора, с инверсным входом сброса триггера установки связи и с первым инверсным входом второго элемента ИЛИ, выход признака рассоединения и второй вход которого соединены соответственно со вторым входом элемента И и выходом переноса счетчика ожидания, декрементный вход которого соединен со входом синхронизации триггера установки связи и является входом синхронизации приема блока проверки соединения.
Данное устройство поддерживает работу на частотах 1 ГГц, с локальной частотой в 10 раз меньше, чем частота передачи и приема битов. То есть оно позволяет передавать поток битов данных в коммуникационном интерфейсе на частоте в десять раз большей локальной частоты, на которой работают все остальные блоки устройства. Однако увеличение длины кабеля и повышение частоты передачи данных приводит к проблемам с достижением максимальной пропускной способности при обеспечении постоянной загруженности канала.
Недостатком данного технического является уменьшение коэффициента использования пропускной способности канала при передаче на большие расстояния и/или со скоростями, превышающими 1 Гбит/с, из-за наличия довольно длительного простоя канала, когда отсутствует реальная передача данных. При таких ситуациях не удается повысить полезную пропускную способность канала, так как применяемый механизм кредитования не позволяет эффективно использовать максимальную долю пропускной способности устройства для реальной передачи символов пользовательских данных. На расстояниях свыше 10 метров и на скорости 1 Гбит/с ограничение в пределах 56 канальных символов величины кредита, предоставляемого в соответствии со стандартом SpaceWire при передаче подряд семи символов запроса кредита FCT в вышеописанном решении, недостаточно для обеспечения эффективного механизма передачи кредитов, так как служебные символы кредитования просто не успевают доходить вовремя до передающего интерфейса из-за физических задержек в кабеле, соединяющем взаимодействующие устройства коммуникационного интерфейса. Таким образом, при отсутствии кредитов, взаимодействующие стороны не в состоянии эффективно поддерживать передачу и в канале происходят пропуски в транзакциях передачи символов данных, заполняемые передачей служебных символов NULL.
В основу настоящего изобретения поставлена задача повышение пропускной способности устройства коммуникационного интерфейса при обеспечении расширения функциональных возможностей за счет реализации возможности передачи данных без пробелов в виде пустых символов при передаче постоянного потока данных. Техническим результатом предлагаемого изобретения является расширение области применения устройства коммуникационного интерфейса за счет обеспечения адаптируемого к конкретным параметрам канала связи механизма кредитования при передаче данных.
Технический результат достигается тем, что в предложенном устройстве коммуникационного интерфейса GigaSpaceWire, содержащем блок выдачи данных, преобразователь передаваемых символов, приемопередатчик символов, преобразователь принимаемых символов, блок приема данных, блок проверки соединения, блок управления и блок управления потоком данных, выход запроса на выдачу символа управления потоком которого соединен с одноименным входом блока выдачи данных, выход готовности выдачи символа управления потоком которого соединен с одноименным входом блока управления потоком данных, входы подтверждения приема символа управления потоком и подтверждения приема информационного символа которого соединены соответственно с одноименными выходами блока приема данных и одноименными входами блока управления, выход ошибки кодировки символа которого является выходом ошибки кодировки символа системного интерфейса устройства, вход синхронизации которого соединен с одноименными входами блока выдачи данных, блока приема данных, блока управления потоком данных и блока управления, вход сброса системного интерфейса устройства является входом сброса блока управления, первый выход сброса которого соединен с входами сброса блока выдачи данных, преобразователя передаваемых символов и приемопередатчика символов, второй выход сброса блока управления соединен с входом сброса блока приема данных, выход «получен NULL» которого соединен с одноименным входом блока управления, вход чтения данных системного интерфейса устройства является одноименным входом блока приема данных, выходы данных для приема и готовности данных для приема которого являются соответствующими выходами системного интерфейса устройства, выход ошибки кредитования системного интерфейса устройства является одноименным выходом блока управления потоком данных и соединен с одноименным входом блока управления, третий выход сброса которого соединен с входом сброса блока управления потоком данных, входы подтверждения выдачи информационного символа и разрешения приема данных которого соединены с одноименными выходами соответственно блока выдачи данных и блока приема данных, выход готовности выдачи данных системного интерфейса устройства является одноименным выходом блока выдачи данных, входы записи и данных для выдачи системного интерфейса устройства являются соответствующими входами блока выдачи данных, выход ошибки рассоединения блока проверки соединения соединен с одноименным входом блока управления, информационный вход приемопередатчика символов соединен с выходом символа 8b преобразователя передаваемых символов, выход готовности выдачи символа которого соединен с входом готовности блока выдачи данных, информационный выход и выход типа символа которого соединены соответственно с входами данных и типа символа преобразователя передаваемых символов, выход признака спецсимвола которого соединен с входом признака типа символа приемопередатчика символов, выход битовых сигналов которого является одноименным выходом коммуникационного интерфейса устройства, выход локальной синхронизации приемопередатчика символов соединен с одноименными входами преобразователя передаваемых символов, преобразователя принимаемых символов, блока управления, блока приема данных и блока выдачи данных, вход записи управляющего кода которого является одноименным входом системного интерфейса устройства, выход готовности выдачи управляющего кода которого является одноименным выходом блока выдачи данных, вход управляющего кода для выдачи которого является одноименным входом системного интерфейса устройства, выход принятого управляющего кода которого является одноименным выходом блока приема данных, выход готовности принятого управляющего кода которого является одноименным выходом системного интерфейса устройства, вход чтения управляющего кода которого является одноименным входом блока приема данных, информационный вход и вход типа символа которого соединены соответственно с одноименными выходами преобразователя принимаемых символов, информационный вход которого соединен с одноименным выходом приемопередатчика символов, выход символа 8b которого соединен с информационным входом блока проверки соединения, вход признака спецсимвола которого соединен с одноименными с одноименными входом преобразователя принимаемых символов и выходом приемопередатчика символов, выход ошибки кодирования которого соединен с одноименным входом блока управления, вход установления соединения которого соединен с одноименным выходом блока проверки соединения, вход признака соединения которого соединен с одноименным входом преобразователя принимаемых символов и с одноименным выходом приемопередатчика символов, выход синхронизации приема которого соединен с одноименным входом блока проверки соединения, вход битовых сигналов приемопередатчика символов является одноименным входом коммуникационного интерфейса устройства, причем блок управления потоком данных содержит формирователь запросов кредитования, счетчик принятых символов, счетчик переданных символов и детектор ошибки кредитования, первый выход которого является выходом ошибки кредитования блока управления потоком данных, вход разрешения приема данных и вход готовности выдачи символа управления которого являются соответственно первым и вторым входами формирователя запросов кредитования, третий вход которого соединен с выходом состояния счетчика принятых символов, вход синхронизации которого является входом синхронизации блока управления потоком данных и соединен с входами синхронизации формирователя запросов кредитования, счетчика переданных символов и детектора ошибки кредитования, вход сброса блока управления потоком данных соединен с входами сброса формирователя запросов кредитования, счетчика принятых символов, счетчика переданных символов и детектора ошибки кредитования, первый информационный вход которого соединен с выходом ошибки кредита приема счетчика принятых символов, первый управляющий вход которого соединен с выходом формирователя запросов кредитования и является выходом запроса на выдачу символа управления потоком блока управления потоком данных, второй управляющий вход счетчика принятых символов является входом подтверждения приема информационного символа блока управления потоком данных, вход подтверждения приема символа управления потоком которого является первым управляющим входом счетчика переданных символов, второй управляющий вход которого является входом подтверждения выдачи информационного символа блока управления потоком данных, второй информационный вход детектора ошибок кредитования соединен с выходом состояния счетчика переданных символов; блок управления содержит регистр состояния, блок формирования нового состояния и формирователь управляющих сигналов, вход сброса которого является входом сброса блока управления и соединен с входами сброса регистра состояния, выход состояния которого соединен с первым управляющим входом блока формирования нового состояния и с управляющим входом формирователя управляющих сигналов, выход установления соединения, выход ошибки рассоединения и выход ошибки кодировки символа регистра состояния являются одноименными выходами блока управления, вход синхронизации которого является входом синхронизации регистра состояния, вход управления состоянием которого соединен с выходом управления состоянием блока формирования нового состояния, входы установления соединения, ошибки кредитования, ошибки рассоединения, ошибки кодировки символа, подтверждения приема символа управления потоком, и подтверждения приема информационного символа которого являются одноименными входами блока управления, вход локальной синхронизации которого соединен с одноименными входом формирователя управляющих сигналов, первый, второй, третий выходы сброса и выход разрешения передачи символа управления потоком которого являются одноименными выходами блока управления, вход «Получен NULL» которого является одноименным входом блока формирования нового состояния; блок проверки соединения содержит дешифратор символа поддержки связи, триггер установки связи, счетчик ожидания, первый элемент ИЛИ, второй элемент ИЛИ и элемент И, выход которого является выходом ошибки рассоединения блока проверки соединения, информационный вход и вход признака спецсимвола которого являются соответственно первым и вторым входами дешифратора символа поддержки связи, выход селекции символа поддержки связи которого соединен с первым входом первого элемента ИЛИ, выход которого соединен с входом данных триггера установки связи, выход установления соединения которого соединен со вторым входом первого элемента ИЛИ, с первым входом элемента И и является выходом установления соединения блока проверки соединения, вход признака соединения которого соединен с разрешающим входом дешифратора, с инверсным входом сброса триггера установки связи и с первым инверсным входом второго элемента ИЛИ, выход признака рассоединения и второй вход которого соединены соответственно со вторым входом элемента И и выходом переноса счетчика ожидания, декрементный вход которого соединен со входом синхронизации триггера установки связи и является входом синхронизации приема блока проверки соединения, дополнительно введены регистр параметра и дешифратор, управляющий вход которого является входом разрешения селекции системного интерфейса устройства, информационный вход которого соединен с адресным входом дешифратора и информационным входом регистра параметра, управляющий вход которого является входом разрешения записи параметра системного интерфейса устройства, вход синхронизации которого соединен с входом синхронизации регистра параметра, выход которого соединен с входами параметра блока проверки соединения, блока управления и блока управления потоком, вход записи которого соединен с первым разрешающим выходом дешифратора, второй и третий разрешающие выходы которого соединены с входами записи соответственно блока управления и блока проверки соединения, вход сброса которого соединен с вторым выходом сброса блока управления, причем блок управления дополнительно содержит счетчик соединения, регистр константы задержек и схема совпадения, первый вход которой соединен с выходом регистра константы задержек, информационный вход которого является входом параметра блока управления, вход записи которого является входом записи регистра константы задержек, вход синхронизации которого является входом синхронизации блока управления, вход сброса которого соединен с одноименными входами регистра константы задержек и счетчика соединений, выход которого соединен с вторым входом схемы совпадения, выход которой соединен с вторым управляющим входом блока формирования нового состояния, управляющий выход формирователя управляющих сигналов соединен с одноименным входом счетчика соединения, счетный вход которого является входом локальной синхронизации блока управления.
Предпочтительно, блок управления потоком данных дополнительно содержит регистры первой и второй констант и компаратор, выход которого соединен с входом признака ошибки детектора ошибки кредитования, второй выход которого является выходом разрешения выдачи данных блока управления потоком данных, выход состояния счетчика переданных символов соединен с первым входом компаратора, второй вход которого соединен с выходом регистра второй константы, информационный вход которого соединен с информационным входом регистра первой константы и является входом параметра блока управления потоком данных, вход записи которого включает в себя линию записи первой константы, соединенную с входом записи регистра первой константы, и линию записи второй константы, соединенную с входом записи регистра второй константы, вход синхронизации которого соединен с одноименным входом регистра первой константы и является входом синхронизации блока управления потоком данных, вход сброса которого соединен с одноименными входами регистра второй константы и регистра первой константы, выход которого соединен с информационным входом счетчика принятых символов.
Предпочтительно, блок проверки соединения дополнительно содержит регистр параметра рассоединения и третий элемент ИЛИ, выход которого соединен с входом загрузки счетчика ожидания, информационный вход которого соединен с выходом регистра параметра рассоединения, информационный вход и вход записи которого являются соответственно входом параметра и входом записи блока проверки соединения, вход синхронизации которого является входом синхронизации загрузки счетчика ожидания, выход дешифратора символа поддержки связи соединен с первым входом третьего элемента ИЛИ, второй вход которого является входом сброса блока проверки соединения.
В данном устройстве коммуникационного интерфейса GigaSpaceWire технический результат обеспечивается за счет применения настраиваемой системы кредитования, позволяющей устранить потери полезной пропускной способности как в случае увеличения частоты работы устройства и соответствующего роста скорости передачи битов в интерфейсе до 1 Гбит/с и выше, так и при повышении длины канала связи. Добавление механизма задания переменных параметров обеспечивает гибкую настройку режима управления потоком данных, принятого в стандарте SpaceWire, для различных ситуаций, что позволяет ликвидировать проблемы системы кредитования и устранить падение полезной пропускной способности в коммуникационном интерфейсе GigaSpaceWire. Изменение машины состояния, определяющей работу устройства на уровне обмена, дает возможность сократить в состоянии сброса время восстановления соединения в коммуникационном интерфейсе GigaSpaceWire, что также способствует повышению его пропускной способности.
Детально сущность данного технического решения поясняется описанием со ссылками на фигуры чертежей, где на фиг. 1 представлена структурная схема устройства. На фиг. 2 и фиг. 3 - представлены возможные варианты реализации функциональных схем блока выдачи данных и блока приема данных. На фиг. 4 приведена функциональная схема блока управления потоком данных, на фиг. 5 - функциональная схема блока управления, на фиг. 6 - функциональная схема блока проверки соединения. На фиг. 7 показан автомат состояний физического уровня обмена сигналами (PHY). На фиг. 8 приведены временные диаграммы, иллюстрирующие процедуру выравнивания символов 10b. На фиг. 9 изображен автомат уровня адаптации SpaceWire. На фиг. 10 приведены временные диаграммы, иллюстрирующие передачу спецсимвола СОММА поддержки связи среди других символов. На фиг. 11 представлен граф машины состояния, описывающий режимы функционирования устройства коммуникационного интерфейса GigaSpaceWire на уровне обмена. На фиг. 12 приведены временные диаграммы передачи байтов пакетных данных, на фиг. 13 - временные диаграммы приема символов данных, управляющих символов и управляющих кодов, на фиг. 14 - временные диаграммы передачи управляющего кода, на фиг. 15 - временные диаграммы передачи управляющего кода и спецсимвола СОММА поддержки связи. На фиг. 16 представлены временные диаграммы записи значения параметра (константы) для настройки блоков устройства.
Как показано на фиг. 1, предлагаемое устройство содержит блок 1 выдачи данных, блок 2 приема данных, блок 3 управления потоком данных, блок 4 управления, преобразователь 5 передаваемых символов, блок 6 приемопередатчик символов, преобразователь 7 принимаемых символов, блок 8 проверки соединения, дешифратор 9, регистр 10 параметра, вход 11 разрешение селекции системного интерфейса, информационный вход 12 системного интерфейса, вход 13 синхронизации системного интерфейса, вход 14 сброса системного интерфейса, выход 15 готовности выдачи данных системного интерфейса, вход 16 записи данных системного интерфейса, вход 17 данных для выдачи системного интерфейса, выход 18 готовности принятых данных системного интерфейса, выход 19 принятых данных системного интерфейса, вход 20 чтения данных системного интерфейса, выход 21 готовности выдачи управляющего кода системного интерфейса, вход 22 записи управляющего кода системного интерфейса, вход 23 управляющего кода для выдачи системного интерфейса, выход 24 готовности принятого управляющего кода системного интерфейса, выход 25 принятого управляющего кода системного интерфейса, вход 26 чтения управляющего кода системного интерфейса, выход 27 установления соединения системного интерфейса, выход 28 ошибки рассоединения системного интерфейса, выход 29 ошибки кодировки символа системного интерфейса, выход 30 ошибки кредитования системного интерфейса, выход 31 подтверждения приема символа управления потоком, выход 32 подтверждения приема информационного символа, выход 33 запроса на выдачу символа управления потоком, первый выход 34 сброса, второй выход 35 сброса, третий выход 36 сброса, выход 37 готовности выдачи символа управления потоком, выход 38 разрешения передачи символа управления потоком, выход 39 подтверждения выдачи информационного символа, выход 40 разрешения приема данных, выход 41 разрешения выдачи данных, информационный выход 42, выход 43 типа символа, выход 44 готовности выдачи символа, выход 45 признака спецсимвола, выход 46 символа 8b, выход 47 регистра параметра, выход 48 локальной синхронизации, выход 49 битовых сигналов коммуникационного интерфейса, вход 50 битовых сигналов коммуникационного интерфейса, вход 51 разрешения записи параметра системного интерфейса, выход 52 синхронизации приема, выход 53 признака соединения, выход 54 символа 8b, выход 55 «Получен NULL», выход 56 признака спецсимвола, выход 57 ошибки кодирования, информационный выход 58, выход 59 признака спецсимвола, выход 60 ошибки рассоединения, выход 61 установления соединения, информационный выход 62, выход 63 типа принятого символа, первый разрешающий выход 117 дешифратора, второй разрешающий выход 118 дешифратора, третий разрешающий выход 119 дешифратора.
Блок 1 выдачи данных (см. фиг. 2) содержит блок 64 арбитража выдачи символов, буфер 65 выдачи данных, регистр 66 выдачи управляющего кода, мультиплексор 67 данных, вход 68 сброса, вход 69 разрешения выдачи, вход 70 синхронизации выдачи, вход 71 запроса на выдачу символа управления потоком, вход 72 разрешения передачи символа управления потоком, вход 73 готовности, выход 74 готовности данных, выход 75 чтения данных, выход 76 признака конца пакета, выход 77 данных, выход 78 чтения управляющего кода, выход 79 селекции информации, выход 80 готовности управляющего кода, выход 81 управляющего кода, вход 13 синхронизации, выход 15 готовности выдачи данных, вход 16 записи, вход 17 данных для выдачи, выход 21 готовности выдачи управляющего кода, вход 22 записи управляющего кода, вход 23 управляющего кода для выдачи, выход 37 готовности выдачи символа управления потоком, выход 39 подтверждения выдачи информационного символа, информационный выход 42, выход 43 типа символа.
Блок 2 приема данных (см. фиг. 3) содержит дешифратор 82 преобразованного кода, буфер 83 приема данных, регистр 84 приема управляющего кода, информационный вход 85, вход 86 типа символа, вход 87 сброса, вход 88 локальной синхронизации, выход 89 селекции управляющего кода, выход 55 «Получен NULL», вход 13 синхронизации, выход 18 готовности принятых данных, выход 19 принятых данных, вход 20 чтения данных, выход 24 готовности принятого управляющего кода, выход 25 принятого управляющего кода, вход 26 чтения управляющего кода, выход 31 подтверждения приема символа управления потоком, выход 32 подтверждения приема информационного символа, выход 40 разрешения приема данных.
Блок 3 управления потоком данных содержит (см. фиг. 4) формирователь 90 запросов кредитования, счетчик 91 принятых символов, счетчик 92 переданных символов, детектор 93 ошибки кредитования, регистр 120 первой константы, регистр 121 второй константы, компаратор 122, вход 94 разрешения приема данных, вход 95 сброса, вход 96 готовности выдачи символа управления потоком, вход 97 подтверждения приема информационного символа, вход 98 подтверждение приема символа управления потоком, вход 99 подтверждения выдачи информационного символа, выход 100 состояния счетчика, выход 101 ошибки кредита приема, выход 102 состояния, вход 123 записи, вход 124 параметра, выход 133 формирователя запросов кредитования, выход 134 компаратора, выход 135 регистра первой константы, выход 136 регистра второй константы, линия 137 записи первой константы, линия 138 записи второй константы, вход 13 синхронизации, выход 26 ошибки кредитования, выход 33 запроса на выдачу символа управления потоком, выход 41 разрешения выдачи данных.
Блок 4 управления содержит (см. фиг. 5) регистр 103 состояния, блок 104 формирования нового состояния, формирователь 105 управляющих сигналов, счетчик 106 соединения, регистр 125 константы задержек, схема 126 совпадения, вход 107 установления соединения, вход 108 ошибки кредитования, вход 109 ошибки рассоединения, вход 110 ошибки кодировки символа, вход 111 подтверждения приема символа управления потоком, вход 112 подтверждения приема информационного символа, вход 113 локальной синхронизации, выход 114 состояния, выход 115 управления состоянием, управляющий выход 116, выход 127 счетчика соединения, информационный выход 128, выход 129 схемы совпадения, вход 130 записи, вход 131 параметра, вход 132 «Получен NULL», вход 13 синхронизации, вход 14 сброса, выход 27 установления соединения, выход 28 ошибки рассоединения, выход 29 ошибки кодировки символа, первый выход 34 сброса, второй выход 35 сброса, третий выход 36 сброса, выход 38 разрешения передачи символа управления потоком.
Блок 8 проверки соединения (см. фиг. 6) содержит дешифратор 141 символа поддержки связи, триггер 142 установки связи, второй счетчик 143, первый элемент 144 ИЛИ, второй элемент 145 ИЛИ, элемент 146 И, регистр 147 параметра рассоединения, третий элемент 148 ИЛИ, информационный вход 149, вход 150 признака спецсимвола, вход 151 признака соединения, вход 152 синхронизации приема, вход 153 записи, вход 154 параметра, выход 155 селекции символа поддержки связи, выход 156 переноса, выход 157 признака рассоединения, выход 158 регистра параметра рассоединения, выход 159 третьего элемента ИЛИ, вход 160 сброса, выход 60 ошибки рассоединения, выход 61 установления соединения.
На временных диаграммах (см. фиг. 8) для процесса выравнивания символов в устройстве показано: а - значения битовых сигналов, b - признак соединения на выходе 53 приемопередатчика 6 символов, с - тактовые сигналы на выходе 52 синхронизации приема битов данных приемопередатчика 6 символов, d - выровненные после приема битов символы 10b в приемопередатчике 6 символов.
На временных диаграммах (см. фиг. 10) для процесса передачи спецсимвола поддержки связи показано: а - тактовые сигналы, b - данные после буферизации в преобразователе 5 передаваемых символов, с - код типа символа после буферизации в преобразователе 5 передаваемых символов, d - сигнал выдачи спецсимвола СОММА, генерируемый в преобразователе 5, е - данные на выходе 46 преобразователя 5 передаваемых символов, f - признак спецсимвола на выходе 45 преобразователя 5 передаваемых символов, g - сигнал готовности записи на выходе 44 преобразователя 5 передаваемых символов.
На временных диаграммах (см. фиг. 12) для процесса передачи байтов пакетных данных в преобразователя 5 передаваемых символов показано: а - тактовые сигналы, b - данные после буферизации в преобразователе 5 передаваемых символов, с - код типа символа после буферизации в преобразователе 5 передаваемых символов, d - данные на выходе 46 преобразователя 5 передаваемых символов, е - признак спецсимвола, формируемый ПЗУ преобразователя 5 передаваемых символов, f - сигнал готовности записи на выходе 44 преобразователя 5 передаваемых символов.
На временных диаграммах (см. фиг. 13) для процесса приема символов 8b показано: а - тактовые сигналы, b - данные на информационном выходе 58 приемопередатчика символов, с - признак спецсимвола на выходе 59 приемопередатчика символов, d - код типа символа, формируемый ПЗУ преобразователя 7 принимаемых символов, е - данные на информационном выходе 62 преобразователя 7 принимаемых символов, f - код типа символа, задержанного на такт в преобразователе 7 принимаемых символов, g - признак управляющего кода, формируемый ПЗУ преобразователя 7 принимаемых символов, h - внутренний флаг управляющего кода преобразователя 7 принимаемых символов, i - код типа символа на выходе 63 преобразователя 7 принимаемых символов.
На временных диаграммах (см. фиг. 14) для процесса передачи управляющего кода показано: а - тактовые сигналы, b - данные после буферизации в преобразователе 5 передаваемых символов, с - код типа символа после буферизации в преобразователе 5 передаваемых символов, d - данные на выходе 46 преобразователя 5 передаваемых символов, е - признак спецсимвола на выходе 45 преобразователя 5 передаваемых символов, f - сигнал готовности записи на выходе 44 преобразователя 5 передаваемых символов.
На временных диаграммах (см. фиг. 15) для процесса передачи управляющего кода и спецсимвола поддержки связи показано: а - тактовые сигналы, b - данные после буферизации в преобразователе 5 передаваемых символов, с - код типа символа после буферизации в преобразователе 5 передаваемых символов, d - сигнал выдачи спецсимвола СОММА, генерируемый в преобразователе 5, е - данные на выходе 46 преобразователя 5 передаваемых символов, f - признак спецсимвола на выходе 45 преобразователя 5 передаваемых символов, g - сигнал готовности записи на выходе 44 преобразователя 5 передаваемых символов.
На временных диаграммах (см. фиг. 16) для процесса записи значения параметра для настройки блоков устройства показано: а - тактовые сигналы, b - данные на информационном входе 12 системного интерфейса устройства, с - сигнал на входе 51 разрешения записи параметра системного интерфейса, d - значение параметра на выходе 47 регистра параметра, е - сигнал на входе 11 разрешение селекции системного интерфейса, f - сигнал селекции на одном из трех разрешающих выходов 117, 118 или 119 дешифратора 9, g - значение параметра (константа), загруженное в один из регистров блока 3, 4 или 12.
Блок 1 выдачи данных предназначен для формирования символов данных SpaceWire из пакетных данных, поступающих через вход данных для выдачи, соединенного с одноименным входом 17 системного интерфейса устройства, а также управляющих символов по требованию, поступающему с выхода 33 запроса на выдачу символа управления потоком блока 3 управления потоком данных на одноименный вход блока 1. Вход 16 записи данных системного интерфейса устройства является одноименным входом блока 1 выдачи данных, выход 15 готовности выдачи данных которого является одноименным выходом системного интерфейса устройства. Выход 15 и вход 16 системного интерфейса предназначены для реализации стандартного механизма буферизации пакетных данных из хост-системы (компьютера, коммутатора или другого узла сети SpaceWire) в блоке 1 выдачи данных. Вход 22 записи управляющего кода системного интерфейса устройства является одноименным входом блока 1 выдачи данных, выход 21 готовности выдачи управляющего кода которого является одноименным выходом системного интерфейса. Вход 23 управляющего кода для выдачи системного интерфейса устройства соединен с одноименным входом блока 1. Запись байтов пакетных данных и управляющих кодов в блок 1 тактируется с его входа синхронизации, соединенного с входом 13 синхронизации системного интерфейса устройства. Выходы 37 готовности выдачи символа управления потоком и 39 подтверждения выдачи информационного символа блока 1 соединены с одноименными входами блока 3 управления потоком данных и предназначены для реализации механизма кредитования, необходимого для организации передачи и приема данных через коммуникационный интерфейс без переполнения буферов приема у взаимодействующих устройств. Информационный выход 42 блока 1 соединен с входом данных преобразователя 5 передаваемых символов и обеспечивают передачу байтов данных пакетов и управляющих кодов. Выход 43 типа символа блока 1 соединен с одноименным входом преобразователя 5 передаваемых символов и предназначен для определения типа передаваемого символа SpaceWire.
Блок 2 приема данных обеспечивает получение символов SpaceWire и управляющих кодов от удаленного устройства, буферизацию байтов данных пакетов и управляющих кодов. Выход 19 принятых данных блока 2 является одноименным выходом системного интерфейса устройства и обеспечивает выдачу байтов буферируемых пакетных данных в хост-систему. Выход 18 готовности принятых данных блока 2 является одноименным выходом системного интерфейса устройства, вход 20 чтения данных которого является одноименным входом блока 2 приема данных. Выход 40 разрешения приема данных блока 2, соединенный с одноименным входом блока 3 управления потоком данных, предназначен для извещения о наличии достаточного свободного пространства в буфере 83 приема данных. Выход 25 принятого управляющего кода блока 2 является одноименным выходом системного интерфейса устройства и обеспечивает выдачу управляющего кода в хост-систему. Выход 24 готовности принятого управляющего кода блока 2 является одноименным выходом системного интерфейса устройства, вход 26 чтения управляющего кода которого является одноименным входом блока 2 приема данных. Блок 2 приема данных обеспечивает извещение блока 3 управления потоком данных и блока 4 управления через выход 31 приема символа управления потоком, соединенный с одноименными входами блоков 3 и 4, о приеме управляющего символа управления потоком и через выход 32 подтверждения приема информационного символа, соединенный с одноименными входами блоков 3 и 4, о получении информационного символа от удаленного устройства. Выход 55 «Получен NULL» блока 2 соединен с одноименным входом блока 4 управления.
Блок 3 управления потоком данных предназначен для реализации механизма кредитования, необходимого при обмене пакетными данными в дуплексном режиме между двумя устройствами через коммуникационный интерфейс с учетом ограниченного объема буферной памяти для приема данных, имеющейся у каждого устройства в блоке 2 приема данных. Выход 33 запроса на выдачу символа управления потоком блока 3, соединенный с одноименным входом блока 1 выдачи данных, предназначен для инициализации выдачи блоком 1 управляющего символа управления потоком, подтверждающего наличие в блоке 2 приема данных свободного буферного пространства, необходимого для приема определенного числа символов данных. В описываемом устройстве величина кредита, предоставляемого при выдаче одного символа управления потоком, определяется значением константы FCT_count, задаваемой программно. Выход 26 ошибки кредитования блока 3 управления потоком данных соединен с одноименным входом блока 4 управления и является одноименным выходом системного интерфейса устройства. Блок 3 управления потоком данных тактируется с входа синхронизации, соединенного с входом 13 синхронизации системного интерфейса устройства.
Блок 4 управления предназначен для отслеживания состояния устройства при поступлении из блока 2 приема данных сигналов о выделении символов SpaceWire из принятого преобразованного кода и выработки управляющих сигналов под воздействием машины состояний и сигнала начальной установки с входа сброса, соединенного с входом 14 сброса системного интерфейса устройства. Выход 38 разрешения передачи символа управления потоком блока 4 управления соединен с одноименным входом блока 1 выдачи данных и предназначен для извещения о том, что машина состояния блока 4 перешла в режим, разрешающий выдачу символов управления потоком. Первый 34 выход сброса блока 4 управления соединен с входами сброса блока 1 выдачи данных, преобразователя 5 передаваемых символов и приемопередатчика 6 символов. Второй 35 выход сброса блока 4 управления соединен с входами сброса блока 2 приема данных и блока 8 проверки соединения. Третий выход 36 сброса блока 4 управления соединен с входом сброса блока 3 управления потоком данных. Сигналы сброса предназначены для установки соответствующих блоков в начальное состояние. Выход 27 установления соединения блока 4 является одноименным выходом системного интерфейса устройства и предназначен для информирования хост-системы об этом событии. Выход 28 ошибки рассоединения блока 4 является одноименным выходом системного интерфейса устройства и предназначен для информирования хост-системы об этом событии. Выход 29 ошибки кредитования блока 4 является одноименным выходом системного интерфейса устройства и предназначен для информирования хост-системы об этом событии. Тактирование при формировании сигналов состояния блока 4 управления осуществляется с входа синхронизации, соединенного с входом 13 синхронизации системного интерфейса устройства.
Преобразователь 5 передаваемых символов предназначен для перекодирования символов SpaceWire и управляющих кодов в символы 8b. Выход 46 символа 8b преобразователя 5 соединен с информационным входом приемопередатчика 6 символов и предназначен для передачи восьмиразрядного кода символа 8b, который соответствует либо байту данных, либо коду специального символа управления. Выход 45 признака спецсимвола преобразователя 5 соединен с входом признака типа символа приемопередатчика 6 символов и идентифицирует, какой тип символа 8b выдается с выхода 46 преобразователя 5 в текущем такте (байт данных или специальный символ управления). Выход 44 готовности выдачи символа преобразователя 5 соединен с входом готовности блока 1 выдачи данных и обеспечивает индикацию состояния готовности преобразователя 5 к поступлению очередного символа SpaceWire или управляющего кода из блока 1 выдачи данных. Если сигнал готовности равен «0», то преобразователь 5 в текущем такте не считывает информацию из блока 1, поскольку занят формированием дополнительного символа 8b в соответствии с алгоритмом своего функционирования. Правила формирования кодов спецсимволов на выходах преобразователя 5 передаваемых символов могут быть реализованы с помощью восьмиразрядных констант, записанных во встроенное ПЗУ и определяющих при кодировании символов 8b специальные символы управления, которые используются в данном техническом решении для кодирования управляющих символов SpaceWire и управляющих кодов различных типов. Возможный вариант реализации этих правил на базе ПЗУ констант показаны в табл. 1.
Приемопередатчик 6 символов предназначен для преобразования восьмиразрядных символов в 10-разрядные символы стандарта 8b/10b и обеспечивает выдачу 10-разрядного кода в каждом такте локальной синхронизации. Выход 49 битовых сигналов приемопередатчика 6 символов предназначен для выдачи в последовательном виде битовых сигналов сформированных 10-разрядных символов формата 10b в коммуникационный канал устройства. Выход 48 локальной синхронизации приемопередатчика 6 символов соединен с одноименными входами блока 1 выдачи данных, блока 2 приема данных, блока 4 управления, преобразователя 5 передаваемых символов, и преобразователя 7 принимаемых символов. Вход 50 битовых сигналов приемопередатчика 6 символов, являющийся входом коммуникационного интерфейса устройства, предназначен для приема входного потока битовых сигналов, формирования из них параллельного кода символов формата 10b и последующего преобразования в параллельный код символа формата 8b. Выход 54 символа 8b соединен с информационным входом блока 8 проверки соединения. Выход 52 синхронизации приема приемопередатчика 6 соединен с входом синхронизации приема блока 8 проверки соединения. Выход 53 признака соединения приемопередатчика 6 символов предназначен для формирования единичного сигнала при выделении в потоке принятых битовых сигналов одного из специальных символов управления - символа проверки связи и соединен с одноименными входами преобразователя 7 принимаемых символов и блока 8 проверки соединения. Выход 56 признака спецсимвола приемопередатчика 6 соединен с одноименным входом блока 8 проверки соединения и определяет, какой тип символа 8b (байт данных или специальный символ управления) выдается с выхода 54 в текущем такте. Выход 57 ошибки кодирования приемопередатчика 6 соединен с одноименным входом блока 4 управления и извещает о выявлении ошибки при декодировании символов 10b. Информационный выход 58 приемопередатчика 6 соединен с одноименным входом преобразователя 7 принимаемых символов и обеспечивает выдачу после буферизации восьмиразрядного кода символа в формате 8b на частоте локальной синхронизации. Выход 59 признака спецсимвола приемопередатчика 6 соединен с одноименным входом преобразователя 7 принимаемых символов и определяет, какой символ (байт данных или специальный символ управления) считывается с информационного выхода 58.
Преобразователь 7 принимаемых символов предназначен для перекодирования символов формата 8b во внутренние коды типов символов стандарта SpaceWire. Информационный выход 62 преобразователя 7 соединен с одноименным входом блока 2 приема данных и обеспечивает передачу в него символов SpaceWire и управляющих кодов, полученных от удаленного устройства. Выход 63 типа символа преобразователя 7 соединен с одноименным входом блока 2 приема данных и предназначен для идентификации типа символа SpaceWire либо управляющего кода, выставленного на информационном выходе 62 в текущем такте. Правила формирования кодов типов символов SpaceWire могут быть реализованы в преобразователе 7 принимаемых символов с помощью четырехразрядных констант, записанных во встроенное ПЗУ. Возможный вариант реализации этих правил на базе ПЗУ констант показаны в табл. 2.
Блок 8 проверки соединения осуществляет контроль за состоянием соединения между удаленными устройствами в процессе их взаимодействия путем отслеживания интервалов между поступлением специального символа управления - символа поддержки связи (Comma). Выход 60 ошибки рассоединения блока 8 соединен с одноименным входом блока 4 управления и обеспечивает передачу единичного сигнала о нарушении соединения при истечении времени ожидания символа Comma. Выход 61 установления соединения блока 8 соединен с одноименным входом блока 4 управления и обеспечивает формирование сигнала готовности приема выровненных символов 10b/8b.
Дешифратор 9 обеспечивает формирование на одном из своих выходов сигнала селекции, разрешающего запись параметра для настройки режима работы одного из блоков 3, 4 или 8, в соответствии с двоичным кодом на своем адресном входе, являющимся информационным входом 12 системного интерфейса устройства, при наличии разрешающего сигнала на своем управляющем входе, являющимся входом 11 разрешения селекции системного интерфейса устройства. Первый разрешающий выход 117 дешифратора 9 соединен со входом записи блока 3 управления потоком данных, второй разрешающий выход 118 дешифратора 9 соединен со входом записи блока 4 управления, третий разрешающий выход 119 дешифратора 9 соединен со входом записи блока 8 проверки соединения.
Регистр 10 параметра предназначен для буферизации параметра настройки режимов работы блоков устройства по синхросигналу на своем входе синхронизации, соединенном с одноименным входом 13 системного интерфейса устройства и при наличии разрешающего сигнала на своем управляющем входе. Управляющий вход регистра 10 параметра соединен с входом 51 разрешения записи параметра системного интерфейса устройства. Информационный вход регистра 10 параметра соединен с информационным входом 12 системного интерфейса устройства. Выход 47 регистра 10 параметра соединен с входами параметра блока 3 управления потоком данных, блока 4 управления и блока 8 проверки соединения.
В блоке 1 выдачи данных буфер 65 выдачи данных (см. фиг. 2) предназначен для промежуточного хранения пакетных данных, поступающих на вход данных для выдачи буфера 65, соединенный с одноименным входом 17 блока 1 выдачи данных. Выход 15 готовности выдачи данных буфера 65 является одноименным выходом блока 1 выдачи данных и предназначен для уведомления хост-системы через системный интерфейс о возможности буферизации очередного байта данных, которая осуществляется при подаче сигнала записи на вход записи буфера 65, являющийся входом 16 записи блока 1 выдачи данных. Буферизация данных обеспечивается при тактировании с входа синхронизации буфера 65, соединенного с входом 13 синхронизации блока 1 выдачи данных. Вход 68 сброса блока 1 выдачи данных соединен с входом сброса буфера 65 выдачи данных и предназначен для его инициализации. Представление информации в пакете данных, поступающем из системного интерфейса устройства в буфер 65 выдачи данных, показано в табл. 3.
Считывание буферированных пакетных данных обеспечивается с выхода 77 данных буфера 65 выдачи данных, соединенного с первым информационным входом мультиплексора 67 данных. Выход 74 готовности данных буфера 65 соединен с одноименным входом блока 64 арбитража выдачи символов и предназначен для уведомления о наличии байта данных, готового к выдаче. Выход 76 признака конца пакета буфера 65 соединен с одноименным входом блока 64 арбитража выдачи символов и предназначен для индикации о том, что предыдущий байт был последним в пакете.
Регистр 66 выдачи управляющего кода предназначен для промежуточного хранения управляющего кода, поступающего на вход управляющего кода для выдачи, соединенный с одноименным входом 23 блока 1 выдачи данных. Выход 21 готовности выдачи управляющего кода регистра 66 является одноименным выходом блока 1 выдачи данных и предназначен для уведомления хост-системы через системный интерфейс о возможности выдачи очередного управляющего кода, которая осуществляется при подаче сигнала записи на вход записи регистра 66, соединенный с входом 16 записи блока 1 выдачи данных. Запоминание управляющего кода обеспечивается при тактировании с входа синхронизации регистра 66, соединенного с входом 13 синхронизации блока 1 выдачи данных. В управляющем коде, поступающем в устройство из хост-системы, содержится два поля: поле типа управляющего кода и поле значения управляющего кода. В поле типа управляющего кода указывается, для передачи какого конкретного системного сигнала управления используется данный управляющий код, например, метки системного времени или сигнала системного прерывания. В поле значения управляющего кода приводится конкретный параметр, характеризующий смысл передаваемого системного сигнала управления, например, значение текущего системного времени или вектор конкретного прерывания. Вход 68 сброса блока 1 выдачи данных соединен с входом сброса регистра 66 выдачи данных и предназначен для его инициализации. Считывание записанного управляющего кода обеспечивается с выхода 81 управляющего кода регистра 66, соединенного со вторым информационным входом мультиплексора 67 данных. Выход 80 готовности управляющего кода регистра 66 соединен с одноименным входом блока 64 арбитража выдачи символов и предназначен для уведомления о наличии управляющего кода, готового к выдаче.
Блок 64 арбитража выдачи символов предназначен для регулирования формирования и порядка выдачи символов данных и управляющих символов, определяемых стандартом SpaceWire, по требованиям от блока 3 управления потоком данных и управляющих кодов по мере их поступления и в зависимости от заданного приоритета. Символы SpaceWire, передаваемые устройством через коммуникационный интерфейс, подразделяются на канальные и информационные символы. К информационным символам относятся символ данных (Nchar), символ конца пакета (ЕОР) и символ ошибочного конца пакета (ЕЕР). Канальные символы предназначены для управления состоянием коммуникационного канала и в отличие от информационных символов в системный интерфейс не передаются. К канальным символам относятся символ управления потоком (FCT) и нулевой символ (NULL код). Символ FCT используется для реализации механизма кредитования при передаче пакетных данных между взаимодействующими через коммуникационный канал устройствами. NULL код предназначен для сохранения активности коммуникационного канала и должен постоянно передаваться, если канал не занят передачей других символов. С входа 71 запроса на выдачу символа управления потоком блока 1 выдачи данных, соединенного с одноименным входом блока 64, поступает требование выдачи управляющего символа управления потоком. Выход 75 чтения данных блока 64 арбитража выдачи символов, соединенный с одноименным входом буфера 65 выдачи данных, предназначен для управления темпом поступления данных из буфера 65 для формирования внутреннего кода символов данных в блоке 64. Выход 78 чтения управляющего кода блока 64, соединенный с одноименным входом регистра 66 управляющих кодов, предназначен для управления темпом выдачи управляющих кодов с выхода 81 регистра 66. Внутренне кодирование формируемых в блоке 64 символов показано в табл. 4.
Вход 72 разрешения передачи символа управления потоком блока 1 выдачи данных, являющийся одноименным входом блока 64 арбитража выдачи символов, предназначен для первоначального разрешения выдачи символов FCT после установления соединения с удаленным устройством. Выход готовности 37 выдачи символа управления потоком блока 64, являющийся одноименным выходом блока 1 выдачи данных, предназначен для извещения блока 3 управления потоком о возможности выдачи очередного символа FCT. Выход 39 подтверждения выдачи информационного символа, являющийся одноименным выходом блока 1 выдачи данных, предназначен для извещения блока 3 управления потоком о выдаче очередного символа Nchar с целью управления кредитным счетчиком 92 переданных символов. Выход 43 типа символа блока 64 арбитража выдачи символов, являющийся одноименным выходом блока 1 выдачи данных, предназначен для идентификации в соответствии с кодировкой, приведенной в табл. 2, символа или управляющего кода, передаваемого через мультиплексор 67 данных. Выход 79 селекции информации блока 64, соединенный с управляющим входом мультиплексора 67 данных, обеспечивают выбор источника информации для передачи через мультиплексор 67. При нулевом значении сигнала селекции на информационный выход 42 мультиплексора 67 с первого информационного входа подается байт данных из буфера 65 выдачи данных; при единичном значении сигнала селекции на информационный выход 42 мультиплексора 67 со второго информационного входа подается управляющий код из буфера 66 выдачи управляющих кодов. Таким образом, как показано в табл. 2, тип символа данных или управляющего кода на выходе 43 сопровождается самим байтом данных на выходе 42 блока 1 выдачи символов. Тактирование блока 64 арбитража выдачи символов осуществляется с входа синхронизации, соединенного с входом 13 синхронизации блока 1 выдачи данных, вход 68 сброса которого соединен с входом сброса блока 64 и предназначен для его инициализации. Информационный выход 42 мультиплексора 67 данных является одноименным выходом блока 1 выдачи данных.
В блоке 2 приема данных дешифратор 82 преобразованного кода (см. фиг. 3) кода предназначен для распознавания символов и управляющих кодов сети SpaceWire в соответствии с кодированием, показанном в табл. 3, и формирования управляющих сигналов, необходимых для буферизации принимаемых пакетных данных и управляющих кодов, а также изменения состояния блоков 3 управления потоком данных и 4 управления. Информационный вход дешифратора 82 является входом 86 типа символа блока 2 приема данных. Выход 32 подтверждения приема информационного символа дешифратора 82, являющийся одноименным выходом блока 2 приема данных и соединенный с входом разрешения записи буфера 83 приема данных, предназначен для формирования единичного сигнала в одном из двух следующих вариантов: либо при приеме символа данных Nchar, либо при приеме символа конца пакета (ЕОР). Выход 89 селекции управляющего кода дешифратора 82, соединенный с входом разрешения записи буфера 84 приема управляющих кодов, формирует единичный сигнал, подтверждающий прием управляющего кода. Выход 31 подтверждения приема символа управления потоком, являющийся одноименным выходом блока 2 приема данных, предназначен для выдачи признака подтверждения приема символа FCT, необходимого для работы механизма кредитования при управлении потоком данных из данного устройства в удаленное. Выход 55 «Получен NULL» дешифратора 82, являющийся одноименным выходом блока 2 приема данных, формирует единичный сигнал, подтверждающий прием NULL кода.
Буфер 83 приема данных предназначен для промежуточного запоминания принятых пакетов данных, поступающих на его информационный вход с одноименного входа 85 блока 2 приема данных, при наличии единичного сигнала на входе разрешения записи. На выходе 19 принятых данных буфера 83, являющемся одноименным выходом блока 2 приема данных, обеспечивается побайтная выдача пакетов данных, разделенных признаками конца пакета. Выдача данных из буфера 83 приема данных обеспечивается по принципу «первым принят, первым считан» (FIFO) в сопровождении сигнала готовности данных на выходе 18 готовности принятых данных, являющемся одноименным выходом блока 2 приема данных, и при наличии единичного сигнала на входе чтения данных буфера 83, являющегося входом 20 чтения данных блока 2 приема данных. Выход 40 разрешения приема данных буфера 83, являющийся одноименным выходом блока 2 приема данных, свидетельствует о наличии определенного числа свободных ячеек в нем (в описываемом варианте - не менее восьми) и предназначен для управления механизмом кредитования. При записи данных в буфер 83 приема данных тактируется по восходящему фронту синхросигнала с первого входа синхронизации, соединенного с входом 88 локальной синхронизации блока 2 приема данных. При считывании данных буфер 83 тактируется со второго входа синхронизации, соединенного с входом 13 синхронизации блока 2 приема данных и переводится в начальное состояние по сигналу с входа сброса, соединенного с входом 87 сброса блока 2 приема данных.
Регистр 84 приема управляющего кода предназначен для промежуточного запоминания принятого управляющего кода, поступающего на его информационный вход с информационного входа 85 блока 2 приема данных, при наличии соответствующего единичного сигнала на входе разрешения записи. На выходе 25 принятого управляющего кода регистра 84, являющемся одноименным выходом блока 2 приема данных, обеспечивается выдача управляющего кода. Считывание управляющего кода из регистра 84 обеспечивается в сопровождении единичного сигнала готовности на выходе 24 готовности принятого управляющего кода, являющимся одноименным выходом блока 2 приема данных, и при наличии единичного сигнала на входе чтения управляющего кода регистра 84, являющемся одноименным входом 26 блока 2 приема данных. При записи управляющего кода регистр 84 приема управляющего кода тактируется по восходящему фронту синхросигнала с первого входа синхронизации регистра 84, соединенного с входом 88 локальной синхронизации блока 2 приема данных. При считывании управляющего кода регистр 84 тактируется со второго входа синхронизации, соединенного с входом 13 синхронизации блока 2 приема данных и переводится в начальное состояние по сигналу с входа сброса, соединенного с входом 87 сброса блока 2 приема данных.
В блоке 3 управления потоком данных (см. фиг. 4) формирователь 90 запросов кредитования предназначен для выработки сигнала запроса выдачи символа FCT на выходе 33 запроса на выдачу символа управления потоком блока 3 при наличии разрешающих сигналов на входах 96 готовности выдачи символа управления потоком и 94 разрешения приема данных блока 3 и в зависимости от состояния счетчика 91 принятых символов. Вход 94 разрешения приема данных блока 3 является первым входом формирователя 90. Вход 96 готовности выдачи символа управления потоком блока 3 является вторым входом формирователя 90. Выход 100 состояния счетчика 91 принятых символов соединен с третьим входом формирователя 90. Вход 13 синхронизации блока 3, соединенный с входами синхронизации формирователя 90 запросов кредитования, счетчика 91 принятых символов, счетчика 92 переданных символов и детектора 93 ошибки кредитования, обеспечивает синхронизацию их работы на частоте системного интерфейса. Вход 95 сброса блока 3 предназначен для установки начального состояния и соединен с входами сброса формирователя 90 запросов кредитования, счетчика 91 принятых символов, счетчика 92 переданных символов и детектора 93 ошибки кредитования, регистра 120 первой константы и регистра 121 второй константы. Счетчик 91 принятых символов обеспечивает формирование двоичного кода, определяющего число информационных символов, которые разрешается принять в данном устройстве. Первый управляющий вход счетчика 91, соединенный с выходом 133 формирователя 90 запросов кредитования, предназначен для загрузки в счетчик 91 значение константы FCT_count со своего информационного входа при выработке сигнала запроса на выдачу символа управления потоком. Регистр 120 первой костанты предназначен для хранения значения константы FCT_count, определяющей величину кредита при передаче информационных символов между взаимодействующими сторонами. Информационный вход регистра 120 соединен с входом 124 параметра блока 3. Вход 123 записи блока 3 включает в себя линию 137 записи первой константы, соединенную с входом записи регистра 120 первой константы и обеспечивающую запись в него константы FCT_count по синхросигналу, поступающего с входа 13 синхронизации блока 3 на вход синхронизации регистра 120. Выход 135 регистра 120 первой константы соединен с информационным входом счетчика 91 принятых символов. Второй управляющий вход счетчика 91, являющийся входом 97 подтверждения приема информационного символа блока 3, предназначен для уменьшения на единицу содержимого счетчика 91 при приеме от другого устройства каждого информационного символа. Изменение состояния счетчика 91 принятых символов под воздействием управляющих сигналов осуществляется по фронту синхросигналов, поступающих с входа 13 синхронизации блока 3 на вход синхронизации счетчика 91. Выход 101 ошибки кредита приема счетчика 91 соединен с первым информационным входом детектора 93 ошибки кредитования и предназначен для формирования сигнала ошибки при попытке уменьшения состояния счетчика ниже предельно допустимого значения. Счетчик 92 переданных символов обеспечивает формирование двоичного кода, определяющего число информационных символов, которые разрешается передать из данного устройства. Первый управляющий вход счетчика 92, являющийся входом 98 подтверждения приема символа управления потоком блока 3, предназначен для разрешения подсчета передаваемых информационных символов в счетчике 92 при приеме каждого символа FCT. Второй управляющий вход счетчика 92, являющийся входом 99 подтверждения выдачи информационного символа блока 3, предназначен для увеличения на единицу содержимого счетчика 92 переданных символов. Изменение состояния счетчика 92 переданных символов при подаче управляющих сигналов осуществляется по фронту синхросигналов, поступающих с входа 13 синхронизации блока 3 на вход синхронизации счетчика 92. Выход 102 состояния счетчика 92 соединен со вторым информационным входом детектора 93 ошибки кредитования и первым входом компаратора 122.
Детектор 93 ошибки кредитования обеспечивает формирование объединенного тактируемого сигнала ошибки кредитования на своем первом выходе, являющемся выходом 26 ошибки кредитования блока 3, или сигнала разрешения выдачи данных на своем втором выходе, являющемся выходом 41 разрешения выдачи данных блока 3. Вход синхронизации детектора 93 соединен с входом 13 синхронизации блока 3 управления потоком данных. Регистр 121 второй константы предназначен для хранения значения константы Max_Fct_count, определяющей максимальную величину кредита при выдаче информационных символов. Информационный вход регистра 121 второй константы соединен с входом 124 параметра блока 3. Вход 123 записи блока 3 включает в себя линию 138 записи второй константы, соединенную с входом записи регистра 121 и обеспечивающую запись в него константы Max_FCT_count по синхросигналу, поступающего с входа 13 синхронизации блока 3 на вход синхронизации регистра 121. Выход 136 регистра 121 второй константы соединен с вторым входом компаратора 122, который предназначен для формирования сигнала ошибки при попытке увеличения состояния счетчика 92 выше предельно допустимого значения, определяемого величиной константы Max_Fct_count. Выход 134 компаратора 122 соединен с входом признака ошибки детектора 93 ошибки кредитования.
В блоке 4 управления (см. фиг. 5), реализующем машину состояний, регистр 103 состояния предназначен для оперативного запоминания и контроля состояния фаз работы устройства. Фактически регистр 103 состояния является памятью машины состояний, которая реализуется блоком 4 управления. Регистр 103 может быть доступен как на чтение, так и на запись для хост-системы (на фиг. 5 не показано). Заполнение регистра выполняется побитно по сигналам от блока 2 приема данных или процессора хост-системы. Выход 114 состояния регистра 103 соединен с первым управляющим входом блока 104 формирования нового состояния и с управляющим входом формирователя 105 управляющих сигналов. Выход 27 установления соединения регистра 103 состояния является одноименным выходом блока 4 управления. Единичное значение сигнала на этом выходе свидетельствует о наличии соединения на уровне обмена стандарта SpaceWire. Выход 28 ошибки рассоединения регистра 103 состояния является одноименным выходом блока 4 управления. Единичное значение сигнала на этом выходе свидетельствует о наличии ошибки соединения при обмене данными между удаленными устройствами. Выход 28 ошибки кредитования регистра 103 состояния является одноименным выходом блока 4 управления. Единичное значение сигнала на этом выходе свидетельствует о наличии ошибки кредита при обмене данными между удаленными устройствами. Вход 14 сброса блока 4 управления предназначен для установки начального состояния и соединен с входами сброса регистра 103 состояния, формирователя 105 управляющих сигналов и блока 106 задержки. Запись битов состояния в регистр 103 обеспечивается по восходящему фронту тактового сигнала на его входе синхронизации, являющемся входом 13 синхронизации блока 4 управления. Блок 104 формирования нового состояния предназначен для реализации логики машины состояний, выполняющей функцию автомата, переходящего под воздействием входных сигналов в различные состояния. Формирователь 105 управляющих сигналов обеспечивает выработку управляющих сигналов, с помощью которых машина состояний переводит блок 1 выдачи данных, блок 2 приема данных, блок 3 управления потоком данных и блок 8 проверки соединения в исходные состояния, позволяя таким образом обеспечить корректную работу устройства в целом. Счетчик 106 соединения предназначен для формирования тайм-аутов, необходимых для правильного функционирования машины состояний при установлении и поддержании соединения с удаленной стороной через коммуникационный интерфейс. Для реализации графа машины состояний, показанной на фиг. 11 требуется необходимость в формировании нескольких тайм-аутов. Вход 113 локальной синхронизации блока 4 управления соединен с входами синхронизации формирователя 105 управляющих сигналов и счетчика 106 соединения. Вход 107 установления соединения блока 4 управления является первым входом блока 104 формирования нового состояния. Вход 108 ошибки кредитования блока 4 является вторым входом блока 104. Вход 109 ошибки рассоединения блока 4 является третьим входом блока 104. Вход 110 ошибки кодировки символа блока 4 является четвертым входом блока 104. Вход 111 подтверждения приема символа управления потоком блока 4 является пятым входом блока 104. Вход 112 подтверждения приема информационного символа блока 4 является шестым входом блока 104. Вход 132 «Получен NULL» является седьмым входом блока 104 формирования нового состояния, выход 115 которого соединен с входом записи битов состояния регистра 103 состояния. Управляющий выход 116 формирователя 105 управляющих сигналов соединен с входом управления счетчика 106 соединения, выход 127 которого соединен с вторым входом схемы 126 совпадения, первый вход которой соединен с выходом 128 регистра 125 константы задержек. Схема 126 совпадения предназначена для формирования сигнала завершения тайм-аута на своем выходе 129, который соединен с вторым управляющим входом блока 104 формирования нового состояния. Выход 38 разрешения передачи символа управления потоком формирователя 105 управляющих сигналов является одноименным выходом блока 4 управления. Первый выход 34 сброса формирователя 105 является одноименным выходом блока 4. Второй выход 35 сброса формирователя 82 является одноименным выходом блока 4. Третий выход 36 сброса формирователя 82 является одноименным выходом блока 4 управления.
В блоке 8 проверки соединения (см. фиг. 6) дешифратор 141 символа поддержки связи обеспечивает селекцию символа поддержки связи Comma путем формирования единичного сигнала на своем выходе 155, который соединен с первым входом третьего элемента 148 ИЛИ и с первым входом первого элемента 144 ИЛИ, выход которого соединен с входом данных триггера 142 установки связи. Разрешающий вход дешифратора 141 соединен с входом 151 признака соединения блока 8, с инверсным входом сброса триггера 142 установки связи и с первым инверсным входом второго элемента 145 ИЛИ. Нулевой уровень сигнала на этом входе обеспечивает запрет работы дешифратора 141, при котором выход 155 дешифратора 141 находится в пассивном нулевом состоянии. Единичный уровень сигнала признака соединения активирует работу дешифратора 141. Первый вход дешифратора 165 является информационным входом 149 блока 8 и обеспечивает поступление в дешифратор 141 восьмиразрядного двоичного кода символа 8b. Второй вход дешифратора 141 является входом 150 признака спецсимвола блока 8 и обеспечивает подачу одноразрядного управляющего сигнала, единичное значение которого настраивает дешифратор 141 на декодирование поступившего двоичного кода на его первый вход, как специального символа управления. При нулевом значении признака спецсимвола дешифратор 141 игнорирует двоичный код на первом входе, поскольку этот двоичный код является символом данных, который необходимо записывать в буферный регистр данных в преобразователе 7 принимаемых данных. Триггер 142 установки связи предназначен для фиксации установления соединения, при котором становится возможным обмен данными между взаимосвязанными устройствами, то есть каждое устройство получает разрешения передачи данных в удаленное устройство. Вход синхронизации триггера 142 является входом 152 синхронизации приема блока 8 проверки соединения и соединен с декрементным входом счетчика 143 ожидания. При единичном значении на входе данных по возрастающему входу синхросигнала обеспечивается переход триггера 142 установки связи в единичное состояние, которое свидетельствует об установлении соединения. Выход установления соединения триггера 142 установки связи является выходом 61 установления соединения блока 8 проверки соединения и соединен со вторым входом первого элемента 144 ИЛИ и с первым входом четвертого элемента 146 И.
Счетчик 143 ожидания предназначен для отслеживания временного интервала CommaTime, в течение которого для поддержания соединения от удаленного устройства должен поступить специальный символ поддержки связи Comma. Если в течение интервала CommaTime не поступает указанный спецсимвол управления, то счетчик 143 обеспечивает формирование сигнала переноса, извещающего об ошибке рассоединения. Выход 156 переноса счетчика 143 соединен со вторым входом второго элемента 145 ИЛИ, который обеспечивает формирование единичного значения признака рассоединения при длительном отсутствии спецсимвола проверки связи или при потере синхронизации. Выход 157 признака рассоединения второго элемента 145 ИЛИ соединен со вторым входом элемента 146 И, который обеспечивает формирование единичного значения сигнала ошибки рассоединения только при наличии установленного соединения. Выход четвертого элемента 146 И является выходом 60 ошибки рассоединения блока 8 проверки соединения. Регистр 147 параметра рассоединения предназначен для хранения значения интервала CommaTime, которое записывается с информационного входа, соединенного с входом 154 параметра блока 8, по разрешающему сигналу на входе записи, соединенном с входом 153 записи блока 8. Вход 160 сброса блока 8 соединен с вторым входом третьего элемента 148 ИЛИ, который предназначен для формирования сигнала загрузки начального значения интервала в счетчик 143 ожидания. Вход 159 третьего элемента 148 ИЛИ соединен с входом загрузки счетчика 143 ожидания. Значение CommaTime с выхода 158 регистра 147 параметра рассоединения, соединенного с информационным входом счетчика 143 ожидания, записывается в счетчик 143 при наличии разрешающего сигнала на входе загрузки и фронта тактового сигнала на входе синхронизации загрузки, соединенного с входом синхронизации блока 8 проверки соединения.
Устройство работает следующим образом. Задачей устройства является обеспечение обмена данными между локальной хост-системой (компьютером или процессорным узлом, имеющим локальную память данных) и удаленной хост-системой через аналогичное удаленное устройство коммуникационного интерфейса. Локальное устройство и его локальная хост-система в дальнейшем именуются как «Сторона А», удаленные устройство коммуникационного интерфейса и его хост-система - «Сторона Б». Для выполнения указанной задачи данное устройство осуществляет организацию соединения в коммуникационном канале, связывающем стороны А и Б, и обеспечивает управление потоком данных. Коммуникационный канал, поддерживающий дуплексный режим передачи последовательных данных, образован (см. фиг. 1) выходной 49 и входной 50 симплексными линиями передачи битовых сигналов.
В устройстве имеется три уровня управления соединением и обменом информацией: уровень обмена сети SpaceWire, уровень адаптации и уровень битовой синхронизации. Автомат состояний каждого уровня управления представлен диаграммой состояний (см. фиг. 7, 9 и 11).
Перед установлением соединения на уровне обмена SpaceWire необходимо установить физическую связь на уровнях адаптации и битовой синхронизации. Автомат состояний уровня битовой синхронизации, определяющий обмен сигналами на физическом уровне (PHY), изображен на фиг. 7. После того, как уровень обмена SpaceWire разрешил уровню PHY начать работу, блок кодирования 8b/10b приемопередатчика 6 символов начинает отправлять специальные символы для установления битовой синхронизации с блоком приема битов приемопередатчика 6 удаленного устройства. Для этого взаимосвязанные устройства посылают друг другу первичные символы синхронизации формата 10b, определенные как символы D10.2. После кодирования на выходе 49 приемопередатчика 6 он имеет вид «1010101010». После включения приемопередатчики 6 символов в каждом из устройств отправляют в канал символы синхронизации D10.2 в течение определенного интервала времени. В этом состоянии «Битовой синхронизации» продолжается отправка D10.2, и кодек ожидает синхронизации приема. После установления синхронизации приема автомат переходит в состояние «Выравнивание». Для этого передатчик генерирует специальный символ Comma поддержки связи К28.5 в формате 8b, после кодирования в формате 10b он имеет вид «1100000101». При появлении этого символа в приемнике данные считаются выровненными и появляются параллельные 10-ти битные последовательности, передаваемые вышележащему уровню, как это отражено на фиг. 8. Приемопередатчик 6 на выходе 53 выставляет единичный уровень сигнала признака соединения. По приему данного символа Comma уровень PHY переходит в состояние «Готовности» (см. фиг. 7).
Для организации взаимодействия физического уровня коммуникационного интерфейса GigaSpaceWire и уровня обмена SpaceWire вводится уровень адаптации SpaceWire, задачами которого являются:
1) кодирование и декодирование символов SpaceWire в 8b-символы (последовательность символов);
2) определение ошибок рассоединения;
3) согласование частот работы приемника и передатчика.
Уровень адаптации отвечает за кодирование символов стандарта SpaceWire в 8b символы. Автомат уровня адаптации, изображенный на фиг. 9, начинает свою работу после включения устройства и в состоянии «Сброс» ожидает синхронизации уровня PHY. После того, как синхронизация будет установлена, выполняется переход в состояние «Ожидание». Через 2 мкс происходит переход автомата адаптационного уровня в состояние «Запуск». В этом состоянии начинается периодическая отправка спецсимволов Comma поддержки связи (К28.5). После приема символа Comma и отправки как минимум одного символа после этого - происходит переход в состояние «Готовность». В этом состоянии разрешается преобразование 8b-символов в символы SpaceWire и обратно, и таким образом подготавливаются условия для приема первого NULL кода, что важным событием для машины состояний уровня обмена SpaceWire. Если в течение определенного времени не был принят спецсимвол поддержки связи или была обнаружена ошибка кодирования 8b/10b, происходит переход в состояние «Ошибка». Для уровня обмена SpaceWire генерируется сигнал ошибки кодирования на выходе 57 приемопередатчика 6 символов, что вызовет сброс машины состояния SpaceWire (на уровне обмена). После этого, если нижележащий уровень PHY не потерял синхронизацию, выполняется переход в состояние «Ожидание». При потере синхронизации уровня PHY выполняется переход в состояние «Сброс».
Определение ошибки рассоединения, которую обрабатывает уровень обмена SpaceWire, возлагается на уровень адаптации. Для обнаружения рассоединения из преобразователя 5 передаваемых символов отправляется спецсимвол поддержки связи через интервал CommaTime (см временные диаграммы на фиг. 10), вставляя его в общий поток символов. CommaTime, интервал между передачей двух символов СОММА, не может быть больше времени, необходимого для передачи 128 символов, но не может быть меньше, чем время передачи 8 символов. Работа в диапазоне времени передачи от 8 до 32 символов должна поддерживаться во всех реализациях.
Если на одной из сторон произошла ошибка, эта сторона переходит в состояние «Ошибка», а потом в состояние «Ожидание». В этих состояниях спецсимвол Comma (К28.5) не посылается. Противоположная сторона, не получив спецсимвол Comma поддержки связи в течение длительного времени (в пределах 640 нс - 960 нс при частоте передачи 1 ГГц), обнаруживает ошибку рассоединения и также переходит в состояние «Ошибка».
Уровень обмена стандарта SpaceWire и выше функционируют в соответствии с рекомендациями стандарта SpaceWire. Изменение состояний блока 1 выдачи данных, блока 2 приема данных, блока 3 управления потоком данных и блок 4 управления осуществляется в соответствии с диаграммой машины состояний (см. фиг. 11) уровня управления обменом SpaceWire: от инициализации устройства по сигналу начальной установки, начинающейся со сброса одной из сторон, соединенных коммуникационным каналом, до состояния нормальной работой, в котором обеспечивается передача пакетных данных и управляющих кодов в обоих направлениях. Из состояния «Сброс», в котором блок 2 приема данных ничего не делает, он переходит в состояние «Запуск». В этом состоянии блок 2 запущен и ожидает приема первого бита. Когда блок 2 приема данных получит первый NULL код, он переходит в режим «Соединение», при этом включается механизм обнаружения рассоединения и разрешается принимать только NULL коды. После получения FCT символа от удаленного устройства коммуникационного интерфейса, блок 2 приема данных переходит в состояние Run и может получать NULL коды, FCT символы, информационные символы, включающие символы данных Nchar и символы конца пакета ЕОР/ЕЕР, и управляющие коды (УК), которые передаются в сети SpaceWire. В этом состоянии в устройстве включен механизм обнаружения ошибок рассоединения и кодирования.
После сброса или ошибки в канале блок 1 выдачи данных переводится в состоянии «Сброс» и при инициализации соединения на уровне обмена SpaceWire может находиться в одном из четырех состояний:
1. Сброс (Reset). Блок 1 выдачи данных ничего не делает.
2. Запуск (Connecting). Блок 1 выдачи данных посылает только NULL коды. Он не готов передавать информационные символы и не передает FCT символы.
3. Соединение (Connected). Передача FCT символов/NULL кодов. Блок 1 выдачи данных посылает FCT символы или NULL коды и не готов передавать информационные символы.
4. Рабочий режим (Run) - обычный режим работы блока 1 выдачи данных (передача FCT/Nchar/NULL/УК). Он посылает FCT символы, NULL коды, информационные символы (Nchar/EOP) и управляющие коды.
Блок 4 управления выполняет в устройстве функцию управляющего автомата, которым является машина состояний, граф которой представлен на фиг. 11. Он контролирует работу блока 1 выдачи данных, блока 2 приема данных устройства и блока 3 управления потоком, получая от них сигналы о состоянии и рассылая им управляющие сигналы. В качестве событий или условий, вызывающих переходы из состояния в состояние, служат два типа сигналов: внешние (например, сброс) и внутренние управляющие сигналы. Одним из определяющих факторов, влияющих на быстродействие устройства при установлении соединения после сброса и его восстановление после ошибок, является выбор значений задержек. Из-за слишком больших задержек в состоянии «Сброса», определенных в стандарте SpaceWire, восстановление соединения в коммуникационном интерфейсе GigaSpaceWire происходит замедленно, что снижает пропускную способность интерфейса. Поэтому в данном техническом решении введены переменные значения задержек, обеспечивающие гибкую настройку устройства для различных применений. Одним из основных внутренних управляющих сигналов, вызывающих переходы в машине состояний, является сигналы срабатывания задержек Т.
Прошло время Т - сигналы задержки при переполнении счетчика 106 соединения в блоке 4 управления вызывают переходы по тайм-ауту (временной задержки) из одного состояния в другое. Величины задержек определяются следующими параметрами.
- DiscDetect - временной интервал, за который определяется ошибка рассоединения. Должен быть в два раза больше, чем параметр CommaTime.
- ResetTime - временной интервал нахождения в состоянии Reset. Должен быть в два раза больше, чем DiscDetect.
- Wait_conn_Time - временной интервал установки соединения. Должен быть не менее, чем в 8 раз больше времени CommaTime.
Другими внутренними управляющими сигналами, вызывающими переходы между состояниями, являются:
- Получен NULL-код - сигнал устанавливается на выходе 55 блока 2 приема данных (см. фиг. 3), когда принят первый NULL-код.
- Получен FCT символ - сигнал устанавливается на выходе 31 подтверждения приема символа управления потоком блока 2 приема данных и означает факт принятия FCT символа. Прием FCT символа является корректным только в состояниях «Соединение (Connected))) или «Рабочий режим (Run)». Прием FCT символа в других состояниях воспринимается как ошибка.
- Получен Nchar - сигнал устанавливается на выходе 32 подтверждения приема информационного символа блока 2 приема данных и означает факт принятия информационного символа. Прием информационного символа в любом состоянии кроме состояния Run воспринимается как ошибка.
- Ошибка рассоединения - сигнал на выходе 60 ошибки рассоединения блока 8 проверки соединения означает рассинхронизацию в коммуникационном канале. Механизм определения ошибки рассоединения в блоке 8 запускается при после установления соединения и выхода из состояния «Сброс».
- Ошибка кодировки - сигнал на выходе 57 ошибки кодирования приемопередатчика 6 символов означает определение ошибки в принятом символе либо ошибки из-за неправильного кодирования. Определение ошибки кодирования разрешается только при запущенном блоке 2 приема данных и после получения первого NULL-кода.
- Ошибка кредитования - сигнал на выходе 30 ошибки кредитования блока 3 управления потоком данных означает, что приняты информационные символы, которые не ожидаются (прием информационного символа в момент, когда уже приняты все информационные символы в ответ на отправленные FCT символы). Также ошибка кредитования возникает при приеме FCT символа в момент, когда увеличение кредита превысит максимальное значение Max_FCT_Count. Величина Max_FCT_Count при работе в режиме стандарта SpaceWire должна быть равной 56, в режиме управления потоком для интерфейса GigaSpaceWire параметр Max_FCT_Count должен быть равен 512.
Кроме внутренних управляющих сигналов, формируемых в блоках устройства, машина состояний вырабатывает следующие внутренние условия для переходов:
- Ошибка приема - это условие обозначает возникновение ошибки рассоединения или сигнала ошибки кодирования.
- Ошибка последовательности символов - это условие формируется машиной состояний по-разному в зависимости от текущего состояния:
a. Любые символы, принятые до первого NULL кода, игнорируются. В состояниях «Ожидание» и «Готовность» это приводит к ошибке, по которой осуществляется переход в состояние «Сброс». На диаграмме состояний (см. фиг. 11) указаны события «Получен FCT» и «Получен Nchar».
b. После получения первого NULL кода получение FCT символа до отправки первого NULL кода (то есть в состоянии «Запуск (Started)») воспринимается как ошибка.
c. Информационный символ может быть принят только после того, как принят NULL код и FCT символ, в противном случае ситуация является ошибочной. Поэтому в состояние «Соединение (Connected))) событие «Получен Nchar» вызывает сброс устройства. Таким образом,
информационные символы могут приниматься только в рабочем режиме (состояние «Run»).
Передачу данных в коммуникационный канал в рабочем режиме устройство осуществляет последовательно (см. временные диаграммы на фиг. 12), считывая байты пакетных данных из буфера 66 выдачи данных блока 1 выдачи данных по мере их поступления из хост-системы. При наличии готовности выдачи данных в виде единичного уровня на выходе 44 преобразователя 5 (см. фиг. 12,f) очередной байт данных считывается с информационного выхода 42 блока 1 выдачи данных и буферизируется в преобразователе 5 (см. фиг. 12,b) и далее поступает на выход 46 символа 8b преобразователя 5 (см. фиг. 12,d). При этом внутренний код типа символа, равный «001» (см. табл. 1), считывается с выхода 43 типа символа блока 1, при этом встроенное ПЗУ в преобразователе 5 формирует нулевой уровень признака спецсимвола (см. фиг. 12,е). Нулевой сигнал признака спецсимвола на выходе 45 преобразователя 5 подтверждает, что в приемопередатчике 6 при выполнении кодирования 8b/10b поступающий в текущем такте символ 8b должен интерпретироваться как символ данных. Если очередной переданный байт данных был последним в пакете, то в следующем такте передается символ конца пакета. Код типа символа ЕОР равен «010» (см. табл. 4), в соответствии с ним ПЗУ в преобразователе 5 формирует спецсимвол K28.3, а признак спецсимвола примет единичное значение (см. фиг. 12, диаграммы d,e). Восьмиразрядный код этого специального символа 8b передается на выход 46 символа 8b преобразователя 5, и на выходе 45 признака спецсимвола присутствует единичное значение.
Когда буфер 65 выдачи данных в блоке 1 пуст и происходит приостановка передачи байтов данных через устройство на другую сторону соединения, то передается NULL код, чтобы не потерять синхронизацию соединения устройств. Встроенное ПЗУ в преобразователе 5 в этой ситуации формирует другой специальный символ - К28.0 (см. фиг. 12, диаграммы b, c, d), означающий передачу NULL-кода (см. табл. 4). Временные диаграммы, иллюстрирующие процесс передачи управляющего кода в потоке пакетных данных, приведены на фиг. 14. В канал будет отправлен сначала спецсимвол K28.6 в качестве заголовка УК, а следующий за ним символ данных является параметром управляющего кода (см. фиг. 14, диаграммы b, c, d). Для этого преобразователь 5 сначала выдаст на выход 46 байтовый код константы (К28.6) из встроенного ПЗУ вместе с единичным признаком спецсимвола на выходе 45 (см. фиг. 14,d), а на следующем такте - байт параметра управляющего кода, считанный с информационного выхода 42 блока 1 выдачи данных. При совпадении передачи управляющего кода и спецсимвола поддержки связи сначала будет передан управляющий символ, потом символ поддержки связи К28.5 (см. фиг. 15, диаграммы b, c, d, e, f).
Принимаемые символы формата 8b буферизируются в приемопередатчике 6 символов, из которого поступают на преобразование в символы SpaceWire в преобразователь 7 принимаемых символов. Принятые символы 8b (см. фиг. 4) поступают на информационный вход 58 преобразователя 7, при этом встроенное ПЗУ декодирует символы 8b во внутренний код типа символов SpaceWire (см. табл. 2 и фиг. 13,d). Байт данных после буферизации в преобразователе 7 (см. фиг. 13,е) напрямую с информационного выхода 62 записываются в выходной буфер 83 приема данных блока 2. При этом код типа принятого символа данных с выхода ПЗУ буферизируется и появляется на выходе 63 типа принятого символа преобразователя 7 (см. фиг. 13,i). Дешифратор 82 преобразованного кода в блоке 2 приема данных распознает символ Nchar, формируя единичный сигнал на выходе 32 подтверждения приема информационного символа. Если будет принят управляющий код, формируется единичный признак управляющего кода на выходе ПЗУ в преобразователе 7 (см. фиг. 13,g). Этот признак фиксируется как флаг управляющего кода (см. фиг. 13,h), при этом код типа управляющего кода также задерживается на такт (см. фиг. 13,f) и затем поступает на выход 63 типа принятого символа преобразователя 7 принимаемых символов (см. фиг. 13,i). При этом на информационный выход 62 преобразователя 7 выдается байт параметра управляющего кода, который далее поступит в регистр 84 приема управляющего кода блока 2 приема данных.
Предлагаемое техническое решение снимет значительную часть проблем технологии SpaceWire, которые решены при разработке данного устройства коммуникационного интерфейса GigaSpaceWire: позволяет по максимуму использовать фактор увеличения скорости передачи битов в канале для повышения пропускной способности в целом для устройства коммуникационного интерфейса GigaSpaceWire. Возможность гибкого выбора и настройки параметров задержек в машине состояний для различных применений позволяет ускорить процедуры восстановления соединения в интерфейсе GigaSpaceWire. В результате экспериментальных исследований может быть рекомендовано следующее соотношение между временными интервалами (тайм-аутами), определяющими эффективность функционирования устройства коммуникационного интерфейса GigaSpaceWire. Если интервал CommaTime выдачи в канал спецсимвола СОММА поддержки связи равен 128 наносекунд, то DiscDetect будет равен 256 наносекунд, ResetTime равен 512 наносекунд, Wait_conn_Time равен 1024 наносекунды. При этом доля пропускной способности канала, используемая на комму неэффективно, составит t/(128+t), где t - время передачи символа СОММА в канал. Если частота передачи битов канал связи составляет 1 ГГц, то общее время передачи символа СОММА составляет 10 нс, и тогда t/(128+t)=~0,072, то есть 7,2% пропускной способности канала используется неэффективно.
Уменьшая частоту отправки символа СОММА, можно обеспечить большую полезную пропускную способность канала, для этого можно увеличить интервал CommaTime в пределах до 1024 наносекунд, тогда DiscDetect будет равен 2048 наносекунд, ResetTime равен 4096 наносекунд, Wait_conn_Time равен 8192 наносекунды. При этом величины тайм-аутов не зависят от скорости или длины канала. Если интервал CommaTime равен 1024 наносекунды, то неэффективное использование пропускной способности канала равно t/(1024+t)=~0,01, что означает потерю 1% пропускной способности канала. Таким образом, более чем на 6% повышается эффективное использование полезной пропускной способности канала. Для сравнения отметим, что в прототипе константа, определяющая число информационных символов, после передачи которых необходимо выдавать спецсимвол СОММА, составляла 16 слов для конкретной реализации. Возьмем за основу максимальную частоту канала, при которой передача эффективна, равной 625 МГц. Тогда интервал CommaTime составляет 320 нс. Время рассоединения DiscDetect в этом случае будет равно 640 нс, ResetTime равен 1280 нс для всех случаев. По той же формуле t/(320+t)=~0,059, что соответствует примерно 6% пропускной способности канала, используемой неэффективно. Уменьшить эти потери в конкретной реализации прототипа нет никакой технической возможности.
Необходимость изменения машины состояний также продиктована большим временем соединения при выявлении ошибки в канале. В прототипе в исходном варианте машины состояний требовалось 19,2 мкс для перехода в состояние соединения. Это вполне адекватное время восстановления для малых скоростей передачи, но абсолютно неприемлемо для частот передачи выше 1ГГц, так как интервал, равный 19,2 мкс был использован для наихудшего худшего случая с большим запасом. Данную задержку, необходимую для выполнения процедур восстановления соединения в канале, можно сократить путем ввода соответствующего коэффициента, зависящего от частоты отправки символа СОММА, как показано на вышеприведенных примерах. Если сделать задержку восстановления соединения, зависящую только от частоты отправки спецсимвола СОММА, время на установку соединения сократится в несколько раз в зависимости от заданных констант.
Устранение в данном техническом решении проблем системы кредитования, свойственные устройствам коммуникационного интерфейса GigaSpaceWire, работающим на частотах свыше 600 МГц в соответствии со спецификациями стандарта SpaceWire, позволяет ликвидировать потери пропускной способности устройства при увеличении скорости передачи битов в канале до 1 Гбит/с и выше. Изменение размера кредита связано с тем, что неэффективное использование канала при высоких частотах (больше 1 ГГц) и длинах канала более 50 метров составляет примерно 80% в самом худшем случае. При физической реализации сопряжения с коммуникационным каналом (на уровне PHY) в устройстве могут использоваться различные сигнальные уровни, что находит отражение в существенном расширении области применения модулей SpaceWire. В устройстве можно использовать LVDS по стандартам Serial RapidIO (вполне реализуемые на скоростях в 1 Гбит/с и более), физические каналы на медных кабелях и волоконно-оптические каналы. Имеются условия для использования в технических реализациях данного устройства отработанных технических решений, например, по гальванической развязке. Из имеющейся на рынке электронной компонентной базы для PHY могут использоваться сигналы с уровнями PECL/LV-PECL FibreChannel, могут быть применены кабельная продукция и разъемы InfiniBand, и другие известные технические решения. Таким образом, данное техническое решение способствует достижению более высоких показателей надежности и быстродействия, имеет значительные функциональные преимущества по сравнению с известными аналогами, и является реализуемым с использованием современного уровня техники.