Многополосная связь
MULTIBAND COMMUNICATION

Настоящее изобретение относится к многополосным линиям связи. В частности, настоящее изобретение относится к интерфейсам многополосной связи для применения в многополосной линии связи, самим многополосным линиям связи и связанным с ними способам связи. Настоящее изобретение может найти применение в линии связи SpaceFibre.
Предпосылки создания изобретения
SpaceWire и SpaceFibre - это сети обработки данных для применения на борту космических аппаратов. SpaceWire устанавливается в качестве одного из основных протоколов обработки данных и применяется во многих космических аппаратах ESA (Европейского космического агентства), NASA (Национального управления по аэронавтике и исследованию космического пространства) и JAXA (Японского агентства по освоению аэрокосмического пространства). SpaceFibre - это новый стандарт, который обеспечивает очень высокоскоростную последовательную линию передачи данных для полезных нагрузок с высокой скоростью передачи данных, дополняющую возможности широко применяемой SpaceWire.
SpaceFibre - это бортовая линия передачи данных космических аппаратов и сетевая технология, работающая как на медных, так и на оптоволоконных кабелях. Изначально ориентированные на инструменты с очень высокой скоростью передачи данных, такие как радиолокационная станция с синтезированной апертурой (SAR) и мультиспектральные средства визуализации, SpaceFibre способна удовлетворять более широкому набору применений для бортовой связи космических аппаратов благодаря своим встроенным возможностям QoS (качество обслуживания) и FDIR (обнаружение, локализация и устранение неисправностей) и обратной совместимости с технологией SpaceWire. SpaceFibre работает со скоростью 2,5 Гбит/с и более, обеспечивая 12-кратную пропускную способность линии SpaceWire с помощью современной пригодной к полетам технологии и позволяя передавать данные с нескольких устройств SpaceWire на одну линию SpaceFibre. Это существенно уменьшает массу жгута кабелей и упрощает стратегии избыточности.
На фиг. 1 проиллюстрирован стек протоколов для многополосной линии связи SpaceFibre, как раскрыто в документе за авторством Parkes et al., «SpaceFibre: A Multi-Gigabit/s Interconnect for Spacecraft Onboard Data Handling (SpaceFibre: межсоединение со скоростью в несколько гигабит в секунду для обработки данных на борту космических аппаратов)», Aerospace Conference (Аэрокосмическая конференция), 2015 г., IEEE (Институт инженеров электротехники и электроники). Протокол 102 сетевого уровня предоставляет две службы для передачи информации приложения по сети SpaceFibre: службу пакетной передачи с помощью пакетного интерфейса 104 и службу широковещательных сообщений с помощью интерфейса 106 широковещательных сообщений. Служба пакетной передачи передает пакеты SpaceFibre по сети SpaceFibre, используя те же формат пакета и концепции маршрутизации, что и SpaceWire. Служба широковещательных сообщений передает короткие сообщения, несущие информацию о времени и синхронизации, всем узлам сети.
Канальный уровень 108 обеспечивает качество обслуживания и управление потоком для линии SpaceFibre. Он формирует информацию, которая должна быть отправлена по линии для поддержки QoS, и скремблирует пакетные данные для снижения электромагнитных излучений. Он также обеспечивает возможность восстановления после ошибок; обнаружение любых кадров или управляющих слов, которые пропадают или поступают с ошибками, и их повторную отправку. В общем многополосная линия представляет собой систему передачи данных, которая передает данные с использованием логической линии, состоящей из нескольких физических полос.
Со ссылкой на фиг. 1 многополосный уровень 110 способен управлять несколькими полосами SpaceFibre параллельно, обеспечивая более высокую пропускную способность. В документе за авторством Parkes et al. раскрыто, что, в случае сбоя в полосе, многополосный уровень обеспечивает поддержку постепенной деградации, автоматически распределяя трафик по оставшимся работающим полосам, и он делает это быстро без какого-либо внешнего вмешательства. Однако, как это достигается, там не раскрыто.
Полосовой уровень 112 устанавливает связь по полосе SpaceFibre, кодирует слова данных и управляющие слова в символы, отправляет и принимает символы по полосе, декодирует принятые символы в слова данных и управляющие слова и повторно устанавливает связь по полосе, когда возникает ошибка в полосе.
Данные кодируются в символы для передачи с использованием кодирования 8В/10В и декодируются в приемнике. Символы типа 8В/10В сбалансированы по постоянному току, поддерживая связь по переменному току интерфейсов SpaceFibre.
Физический уровень 114 сериализует символы типа 8В/10В и отправляет их по физической среде через физический интерфейс 116. В приемнике физический уровень восстанавливает тактовые сигналы и данные из последовательного битового потока, определяет границы символов и восстанавливает символы типа 8В/10В. SpaceFibre поддерживает как электрические кабели, так и оптоволоконные кабели.
Уровень 118 управления поддерживает конфигурирование, управление и мониторинг всех уровней в стеке протоколов SpaceFibre с помощью интерфейса 120 управления.
Проблема с традиционными подходами в многополосном режиме заключается в том, что количество полос фиксируется после конфигурирования, и произвольное количество смешанных двунаправленных и однонаправленных полос невозможно.
Другая проблема заключается в том, что при традиционных подходах время восстановления после отказа длительное, поэтому какие-либо данные, не отправленные, пока линия восстанавливается после отказа полосы, не могут быть сохранены в небольших внутренних буферах, не влияя на работу конечного пользователя.
Сущность изобретения
Желательно, чтобы многополосные линии передачи данных динамически адаптировались к изменениям состояния и конфигурации полосы. Желательно, чтобы многополосный уровень в стеке протоколов обеспечивал поддержку постепенной деградации, автоматически быстро без какого-либо внешнего вмешательства распределяя трафик по оставшимся работающим полосам. Желательно обеспечивать асимметричные многополосные последовательные линии с отказоустойчивыми и энергосберегающими возможностями и допускать использование произвольного количества полос, например, не более 16. Согласно первому аспекту настоящего изобретения предоставлен интерфейс многополосной связи для применения в линии, имеющей ближний конец и дальний конец, при этом интерфейс многополосной связи содержит логический блок, чтобы при работе на ближнем конце совместно с интерфейсом многополосной связи дальнего конца:
устанавливать символьную синхронизацию с интерфейсом дальнего конца по одной или нескольким полосам;
отправлять слова данных на интерфейс дальнего конца и принимать их с него, сохраняя при этом символьную синхронизацию;
обнаруживать изменение состояния полосы; и
после обнаружения изменения состояния полосы и при сохранении символьной синхронизации:
(a) прекращать отправку слов данных;
(b) отправлять управляющие слова состояния полосы ближнего конца на дальний конец вместо слов данных, пока не будет определено, что ближний конец готов отправлять слова данных, затем возобновлять отправку слов данных; и
(c) отправлять сигналы выравнивания полос ближнего конца на дальний конец, пока не будет принято слово данных с дальнего конца.
Предпочтительно интерфейс многополосной связи содержит логический блок для обнаружения изменения состояния полосы посредством приема управляющего слова состояния полосы дальнего конца, отправленного с интерфейса дальнего конца.
Предпочтительно интерфейс многополосной связи дополнительно содержит логический блок, чтобы после обнаружения изменения состояния полосы посредством приема управляющего слова состояния полосы дальнего конца, отправленного с интерфейса дальнего конца, обновлять активное состояние полосы ближнего конца соответственно, не меняя при этом состояния полосы других полос.
Предпочтительно интерфейс многополосной связи содержит логический блок для обновления активного состояния полосы ближнего конца посредством отключения полосы ближнего конца, которая не активна на дальнем конце. Предпочтительно интерфейс многополосной связи дополнительно содержит логический блок, чтобы обнаруживать изменение состояния полосы посредством обнаружения ошибок данных или изменений конфигурации на ближнем конце и после обнаружения изменения состояния полосы обновлять активное состояние полосы ближнего конца соответственно, не меняя при этом состояния полосы других полос.
Предпочтительно интерфейс многополосной связи дополнительно содержит логический блок для прекращения пропускания принятых слов данных на канальный уровень линии, пока ближний конец не будет готов отправлять слова данных.
Предпочтительно на этапе (b) определяют, что ближний конец готов отправлять слова данных, посредством выполнения с помощью логического блока: определения состояния полосы ближнего конца на ближнем конце; сравнивания с определенным состоянием полосы ближнего конца состояния полосы дальнего конца, принятого в управляющем слове состояния полосы дальнего конца с интерфейса дальнего конца; и определения того, что все полосы выровнены. Предпочтительно посредством приема сигналов выравнивания полос дальнего конца с интерфейса дальнего конца определяют, выровнены ли все полосы. Предпочтительно сигналы выравнивания полос дальнего конца, принятые с дальнего конца, содержат информацию о состоянии передачи полосы на дальнем конце.
Предпочтительно интерфейс многополосной связи дополнительно содержит логический блок для определения того, что ближний конец не готов отправлять слова данных, если ошибку обнаруживают в период времени после определения того, что ближний конец готов отправлять слова данных, при этом период времени представляет собой двустороннюю задержку линии, включающую любую задержку обработки.
Предпочтительно на этапе (с) сигналы выравнивания полос ближнего конца, отправленные на дальний конец, содержат информацию о состоянии передачи полосы на ближнем конце.
Предпочтительно линия имеет произвольное количество физических полос, которые включают как однонаправленные, так и двунаправленные полосы. Предпочтительно интерфейс многополосной связи дополнительно содержит логический блок для обнаружения для каждой полосы того, отключил ли интерфейс дальнего конца драйвер передачи или приема, чтобы соответствующая полоса стала однонаправленной, при этом интерфейс многополосной связи способен адаптироваться к изменению динамической конфигурации линии, используя оставшуюся полосу пропускания линии. Предпочтительно слова данных, которые не могут быть отправлены после обнаружения изменения состояния полосы и пока ближний конец не будет готов отправлять слова данных, хранятся в интерфейсе многополосной связи для предотвращения обнаружения внешним источником данных того, что слова данных не могут быть отправлены с помощью интерфейса многополосной связи. Согласно второму аспекту настоящего изобретения предоставлена линия связи, содержащая интерфейс многополосной связи согласно первому аспекту. Согласно третьему аспекту настоящего изобретения предоставлен способ связи по многополосной линии связи, имеющей ближний конец и дальний конец, при этом способ при выполнении на ближнем конце совместно с дальним концом линии включает этапы:
установления символьной синхронизации с интерфейсом дальнего конца по одной или нескольким полосам;
отправки слов данных на интерфейс дальнего конца и приема их с него, сохраняя при этом символьную синхронизацию;
обнаружения изменения состояния полосы; и
после обнаружения изменения состояния полосы и при сохранении символьной синхронизации:
(a) прекращения отправки слов данных;
(b) отправки управляющих слов состояния полосы ближнего конца на дальний конец вместо слов данных, пока не будет определено, что ближний конец готов отправлять слова данных, затем возобновления отправки слов данных; и
(c) отправки сигналов выравнивания полос ближнего конца на дальний конец, пока с дальнего конца не будет принято слово данных.
Предпочтительно этап обнаружения изменения состояния полосы включает обнаружение изменения состояния полосы посредством приема управляющего слова состояния полосы дальнего конца, отправленного с интерфейса дальнего конца.
Предпочтительно способ дополнительно включает этап обновления активного состояния полосы ближнего конца соответственно, не меняя при этом состояния полосы других полос, после обнаружения изменения состояния полосы посредством приема управляющего слова состояния полосы дальнего конца, отправленного с интерфейса дальнего конца.
Предпочтительно способ включает этап обновления активного состояния полосы ближнего конца посредством отключения полосы ближнего конца, которая не активна на дальнем конце.
Предпочтительно способ дополнительно включает обнаружение изменения состояния полосы посредством обнаружения ошибок данных или изменений конфигурации на ближнем конце и после обнаружения изменения состояния полосы, обновление активного состояния полосы ближнего конца соответственно, не меняя при этом состояния полосы других полос.
Предпочтительно способ дополнительно включает прекращение пропускания принятых слов данных на канальный уровень линии, пока ближний конец не будет готов отправлять слова данных.
Предпочтительно на этапе (b) определяют, что ближний конец готов отправлять слова данных, посредством:
определения состояния полосы ближнего конца на ближнем конце;
сравнивания с определенным состоянием полосы ближнего конца состояния полосы дальнего конца, принятого в управляющем слове состояния полосы дальнего конца с интерфейса дальнего конца; и
определения того, что все полосы выровнены.
Предпочтительно посредством приема сигналов выравнивания полос дальнего конца с интерфейса дальнего конца определяют, выровнены ли все полосы.
Предпочтительно сигналы выравнивания полос дальнего конца, принятые с дальнего конца, содержат информацию о состоянии передачи полосы на дальнем конце.
Предпочтительно способ дополнительно включает этап определения того, что ближний конец не готов отправлять слова данных, если ошибку обнаруживают в период времени после определения того, что ближний конец готов отправлять слова данных, при этом период времени представляет собой двустороннюю задержку линии, включающую любую задержку обработки. Предпочтительно на этапе (с) сигналы выравнивания полос ближнего конца, отправленные на дальний конец, содержат информацию о состоянии передачи полосы на ближнем конце.
Предпочтительно многополосная линия связи имеет произвольное количество физических полос, которые включают как однонаправленные, так и двунаправленные полосы.
Предпочтительно способ дополнительно включает обнаружение для каждой полосы того, отключил ли интерфейс дальнего конца драйвер передачи или приема, чтобы соответствующая полоса стала однонаправленной, при этом способ включает адаптацию к изменению динамической конфигурации линии, используя оставшуюся полосу пропускания линии.
Предпочтительно слова данных, которые не могут быть отправлены после обнаружения изменения состояния полосы и пока ближний конец не будет готов отправлять слова данных, хранятся в интерфейсе многополосной связи для предотвращения обнаружения внешним источником данных того, что слова данных не могут быть отправлены с помощью многополосной линии связи. Согласно четвертому аспекту настоящего изобретения предоставлен энергонезависимый машиночитаемый носитель, содержащий программный код, при этом программный код адаптирован для конфигурирования схемы или по меньшей мере одного процессора по меньшей мере одного компьютера для выполнения способа согласно третьему аспекту. Согласно пятому аспекту настоящего изобретения предоставлен машиночитаемый носитель, содержащий программный код, при этом программный код адаптирован для конфигурирования схемы или по меньшей мере одного процессора по меньшей мере одного компьютера для выполнения способа согласно третьему аспекту, при этом машиночитаемый носитель выбирают из группы, состоящей из компакт-диска (CD), цифрового видеодиска (DVD), устройства хранения данных на основе флеш-памяти, жесткого диска, оперативного запоминающего устройства (RAM) и постоянного запоминающего устройства (ROM).
Краткое описание графических материалов
Настоящее изобретение относится к интерфейсу многополосной связи. Последующее описание содержит конкретную информацию, относящуюся к реализации настоящего изобретения. Специалисту в данной области техники будет понятно, что настоящее изобретение может быть реализовано способом, отличным от того, который конкретно обсуждается в настоящей заявке. Более того, некоторые конкретные подробности настоящего изобретения не обсуждаются, чтобы не затруднять понимание настоящего изобретения. Графические материалы в настоящей заявке и сопровождающее их подробное описание относятся всего лишь к примерным вариантам осуществления настоящего изобретения. Для поддержания краткости другие варианты осуществления настоящего изобретения конкретно не описаны в настоящей заявке и конкретно не проиллюстрированы на графических материалах. Теперь только в качестве примера будут описаны варианты осуществления настоящего изобретения со ссылкой на графические материалы, на которых:
на фиг. 1 проиллюстрирован стек протоколов для многополосной линии связи SpaceFibre;
на фиг. 2 показан пример многополосной линии с четырьмя полосами с разной конфигурацией и состоянием;
на фиг. 3 представлена концептуальная схема, иллюстрирующая применение каждого типа слова, описанного в данном документе, и то, как они мультиплексируются;
на фиг. 4 показаны примеры того, как конкретные управляющие слова могут быть определены для реализации выравнивающих и активных слов согласно варианту осуществления настоящего изобретения;
на фиг. 5 проиллюстрировано выравнивание слов, принятых с нескольких полос;
на фиг. 6 представлена диаграмма состояний линии интерфейса многополосной связи согласно варианту осуществления настоящего изобретения;
на фиг. 7 показан пример того, как работает интерфейс многополосной связи, когда однонаправленная только принимающая полоса отключена вследствие ошибки, или задания режима энергосбережения, или другого изменения конфигурации.
Описание вариантов осуществления
В этом описании и формуле изобретения многополосная линия представляет собой двухточечное соединение между двумя устройствами, которое содержит по меньшей мере одну двунаправленную полосу и ноль или более однонаправленных полос и которое отправляет и принимает информацию с использованием одной или нескольких активных полос.
Варианты осуществления настоящего изобретения могут обеспечивать интерфейс многополосной связи, который позволяет многополосной линии с произвольным нечетным или четным количеством физических линий (однонаправленных или двунаправленных) автоматически продолжать работать, когда происходят произвольные изменения количества передающих и принимающих полос вследствие сбоев или изменений конфигурации энергосбережения. Таким образом, многополосная линия может работать, используя полосы, которые все еще доступны, поэтому, если одна полоса вышла из строя или деактивирована, она работает со всеми остальными полосами. Это может обеспечить то, что данные всегда извлекаются в том же порядке, что и были отправлены, поэтому гарантируется целостность данных по порядку, даже если на обоих концах линии происходит несколько асинхронных событий (сбои или изменения конфигурации полосы).
Многополосная линия автоматически определяет, какие полосы больше недоступны для передачи или приема данных. Время восстановления после отказа сводится к минимуму, поэтому любые данные, которые еще не доставлены, пока линия восстанавливается после отказа полосы, могут храниться в небольших внутренних буферах, не влияя на работу конечного пользователя. Это предотвращает обнаружение внешним источником данных того, что данные не могут быть отправлены интерфейсом многополосной связи. В вариантах осуществления настоящего изобретения каждая полоса многополосной линии может работать независимо от других полос той же линии. Ошибки декодирования в одной полосе линии, такие как ошибки несоответствия в схеме кодирования 8 В10 В, таким образом, не влияют на состояние других полос линии, как это происходит с другими решениями (например, PCI Express и Rapid IO).
В вариантах осуществления настоящего изобретения полосы могут быть активированы и деактивированы в любое время. При традиционных подходах полосы должны быть инициализированы вместе, и, если количество рабочих полос изменяется, все они должны быть повторно инициализированы. В вариантах осуществления настоящего изобретения линия может состоять из произвольного количества полос, и они могут быть однонаправленными или двунаправленными. При традиционных подходах (например, PCI Express и Rapid IO) количество полос должно быть кратным двум.
На фиг. 2 показан пример многополосной линии с четырьмя полосами с разной конфигурацией и состоянием. Многополосная линия содержит интерфейс 202 многополосной связи ближнего конца, соединенный с устройством 204 на ближнем конце линии. Интерфейс 206 многополосной связи дальнего конца соединен с устройством 208 на дальнем конце линии.
Полоса 0 - работающая двунаправленная полоса. Полоса 1 - двунаправленная полоса, в которой передатчик Тх на ближнем конце отключен по соображениям энергосбережения, поэтому она работает как однонаправленная полоса. Полоса 2 - двунаправленная полоса, в которой произошел сбой вследствие ошибки 210 и которая больше не может использоваться. Полоса 3 может работать только как однонаправленная полоса, так как она содержит только передатчик Тх на одном конце линии и приемник Rx на другом конце.
При традиционных подходах, таких как Rapid IO и PCI Express, состояние полосы не является независимым. При таких подходах один конец линии определяет конфигурацию и пытается запустить все полосы с этой конфигурацией. Другой конец делает то же самое, и оба конца принимают информацию о конфигурации, которую использует другой конец. Если конец определяет, что конфигурация не соответствует, он перезапускает все снова с новой конфигурацией, которая, скорее всего, будет соответствовать другой стороне. Таким образом, линия повторно инициализируется посредством сброса всех полос, не поддерживающих битовую или символьную синхронизацию. Эта система не поддерживает изменений конфигурации при инициализации системы. Примерами изменения конфигурации являются примеры, когда пользователь отключает полосу или полоса прекращает работу, как описано со ссылкой на фиг. 2.
На фиг. 3 представлена концептуальная схема, иллюстрирующая применение каждого типа блока данных, описанного в данном документе, и то как они мультиплексируются.
Полосы 302 отправляют информацию в несколько блоков данных, называемых словами. Теперь будут описаны разные типы слов. Слова 304 данных генерируются приложением 306 и переносят содержимое данных пользователя. Управляющие слова 308 генерируются произвольным протоколом 310 связи. Протокол 310 выбирает (пунктирная линия) данные или управляющие слова для вывода из мультиплексора 312.
Выравнивающие и активные слова 314 - это управляющие слова, относящиеся к состоянию линии и состоянию 316 полосы. Состояние линии связано с механизмом многополосного выравнивания, описанным со ссылкой на фиг. 5. Выравнивающие и активные слова 314, которые передают состояние каждой полосы, выбираются для вывода мультиплексором 318 в зависимости от состояния 320 линии. Выравнивающие и активные слова 314, мультиплексированные со словами 304 данных и другими управляющими словами 308, распределяются посредством многополосного распределения 322 по N полосам 302 после упорядочения полос, определяемого номерами полос 0…N-1.
На фиг. 4 показаны примеры того, как конкретные управляющие слова могут быть определены для реализации выравнивающих и активных слов согласно варианту осуществления настоящего изобретения.
Показаны выравнивающее слово 402 и активное слово 404, каждое из которых содержит четыре символа. В обоих словах первый символ - это запятая, а второй символ обозначает тип слова, выравнивающее или активное. Третий символ выравнивающего слова 402 содержит текущее количество полос, используемых для отправки слов, и номер полосы, используемой для отправки выравнивающего слова. Четвертый символ - это значение контрольной суммы для защиты от ошибок.
Третий и четвертый символы активного слова 404 указывают, у каких полос их конечный автомат инициализации полосы находится в активном состоянии. Каждый бит этих двух символов связан с соответствующим номером полосы, начиная с номера полосы 0 и до 15.
Варианты осуществления настоящего изобретения являются более надежными, чем традиционные подходы, поскольку в любой момент в конфигурации могут быть осуществлены изменения, даже если одна сторона линии готова, а другая сторона еще не готова. Эффект от применения выравнивающего слова, которое содержит количество полос, используемых для отправки, обеспечивает преимущество, так как проверка выравнивания и проверка количества полос могут быть выполнены одновременно.
В примере каждая полоса многополосной линии может быть задана как однонаправленная только принимающая полоса, однонаправленная только передающая полоса или двунаправленная полоса, способная как передавать, так и принимать данные. Полоса может быть включена или отключена в любое время. Каждая включенная полоса может находиться в активном состоянии или неактивном состоянии. Ожидается, что полоса в активном состоянии будет корректно только принимать, только отправлять или как отправлять, так и принимать слова данных и управляющие слова.
Полоса может считаться находящейся в активном состоянии при выполнении одного или нескольких из следующих условий:
- когда оба конца готовы корректно отправлять и принимать данные;
- когда полоса задается как однонаправленная только принимающая полоса, и она может корректно принимать данные; или
- когда другие полосы линии принимают на дальнем конце линии информацию о том, что эта полоса находится в активном состоянии.
Это позволяет однонаправленной только передающей полосе достичь активного состояния. Это также позволяет определить на дальнем конце, когда полоса задана как однонаправленная только принимающая полоса по причинам энергосбережения. В этом случае полоса задается как только передающая полоса, если она ранее не была задана как таковая.
Полоса в активном состоянии может выйти из этого состояния, когда выполняется одно или несколько из следующих условий:
- когда полоса отключается пользователем;
- когда для полосы задана возможность приема данных, но драйвер приемника указывает, что нет полезного сигнала, или измеренная интенсивность битовых ошибок этой полосы слишком велика. Интенсивность битовых ошибок может быть измерена, например, посредством подсчета количества ошибок декодирования 8В10В;
- когда полоса принимает слова, указывающие на то, что другой конец будет отключать полосу, потому что он хочет сэкономить электроэнергию или потому что обнаруживает слишком много ошибок и не может корректно принимать данные; или
- когда полоса задана как однонаправленная только передающая полоса, и другие полосы линии приняли информацию, что на дальнем конце линии эта полоса не находится в активном состоянии.
Если одна полоса выходит из строя вследствие ошибок, принятых в этой полосе, обновляется состояние только этой полосы, не меняя при этом состояния полосы других полос. Это отличается от других подходов, при которых, если в одной полосе присутствуют ошибки, то это заставляет всю линию перезапускать все полосы.
Многополосная линия состоит из двух или более полос. Каждая полоса многополосной линии имеет назначенный номер полосы, начиная со значения 0 до значения N-1, где N - количество полос, которые имеет линия. В любой конкретный момент линию можно считать готовой или неготовой отправлять и принимать слова данных и управляющие слова. Когда линия готова, слова данных, которые должны быть переданы, распределяются по активным полосам линии слово за словом, следуя тому же порядку номера полосы. Управляющие слова также могут быть распределены по активным полосам таким же образом, или одно и то же управляющее слово может быть скопировано и отправлено по всем активным полосам одновременно. Кроме того, только после того, как линия готова, слова данных и управляющие слова могут быть приняты со всех активных полос линии слово за словом, следуя тому же порядку присвоения номера полосы.
Когда линия считается неготовой, линия не может отправлять и принимать слова данных.
После включения питания линия первоначально считается неготовой. Когда линия не готова, она отправляет слова, предоставляющие информацию о том, какие полосы линии, идентифицированные своим номером полосы, находятся в активном состоянии. Эти слова, называемые в этом примере активными словами, не отправляются, когда линия готова, поэтому они также используются для указания дальнему концу, что линия не готова. Активные управляющие слова используются для сигнализации на дальнем конце линии о том, какие полосы являются активными. Активное управляющее слово является допустимым, если оно совпадает с ранее принятым активным управляющим словом. Каждая полоса линии может иметь разное отклонение, поэтому слова, принятые каждой полосой, выравниваются так, чтобы слова обрабатывались в том же порядке, в каком они были отправлены. Чтобы помочь с процессом выравнивания, определенное слово, называемое в этом примере выравнивающим словом, периодически отправляется одновременно по всем активным полосам с периодом, большим чем отклонение между полосами в наихудшем случае. Выравнивающее слово отправляется, когда линия не готова или когда дальний конец линии не готов, как указано приемом активных слов. Выравнивающее слово содержит информацию о количестве полос, используемых для передачи данных, то есть о количестве полос, которые являются активными и могут отправлять слова данных и управляющие слова на конец линии, которая отправляет выравнивающее слово. Каждое выравнивающее слово может также содержать номер полосы, которая отправила это выравнивающее слово. Выравнивающие управляющие слова применяются для выравнивания строки по активным полосам. Выравнивающие управляющие слова отправляются каждым концом многополосной линии для сигнализации на другом конце линии, какие полосы являются активными отправляющими полосами. Когда линия должна повторно выровнять свои полосы, она повторно отправляет активные управляющие слова, периодически перемежающиеся с выравнивающими управляющими словами, пока все полосы в линии не будут выровнены.
На фиг. 5 проиллюстрировано выравнивание слов из нескольких полос. На этапе 502: необходимо повторное выравнивание, поэтому отправляют семь активных слов, за которыми следует выравнивающее слово во всех полосах. Полосы не выровнены, поэтому одно выравнивающее слово принимают несинхронно с другими. Считывают все полосы.
На этапе 504: выравнивающее слово отправляют во всех полосах после семи активных слов.
Полосу 0 и полосу 3 не считывают, потому что они содержат выравнивающее слово, но не все полосы содержат выравнивающее слово. На этапе 506: все полосы содержат выравнивающее слово на выходе, поэтому считывают все полосы. Последующие слова (от слова 0 до слова 5) на самом деле будут дополнительными активными управляющими словами, пока не будет сигнализировано о выравнивании на другом конце линии. Эти слова пронумерованы для ясности.
На этапе 508: выровненные данные считывают со всех полос. Выравнивание полосы обеспечивает то, что каждая из активных полос линии корректно выровнена, чтобы, когда информацию считывают с полос, слова полной строки считывались вместе. Небольшие различия в задержке через различные полосы линии могут привести к тому, что одна полоса, имеющая свое слово в строке, доступна немного раньше или позже, чем слова в той же строке с других полос. Это может привести к тому, что для строки будут считаны неверные данные. Выравнивание строк обеспечивает то, что различия в задержках компенсируются и все слова строки выстраиваются в линию, чтобы их можно было считать вместе. После выравнивания считанная первая строка содержит первое множество из принятых N слов, следующая строка - следующее множество из N слов и т.д.
Для выполнения выравнивания строк для каждой полосы предусмотрен буфер FIFO выравнивания. Каждый буфер FIFO выравнивания способен хранить достаточное количество слов данных или управляющих слов, чтобы обеспечить выравнивание принятой строки. Когда слово данных или управляющее слово поступает с уровня полосы, оно помещается в буфер FIFO выравнивания для этой полосы. Когда следующее слово, которое должно быть считано из буфера FIFO выравнивания, является допустимым выравнивающим управляющим словом, оно считывается только из буфера FIFO выравнивания, когда следующее слово, которое подлежит считыванию со всех активных полос, является допустимым выравнивающим управляющим словом, при этом допустимое выравнивающее управляющее слово - это слово, которое не является ошибкой. Когда следующим словом, которое должно быть считано, является слово данных или управляющее слово, отличное от выравнивающего управляющего слова, это слово считывается из буфера FIFO выравнивания. Когда следующее слово, которое должно быть считано из буфера FIFO выравнивания каждой активной полосы, является допустимым выравнивающим управляющим словом, строка полностью выравнивается и все выравнивающие управляющие слова считываются из буфера FIFO выравнивания одновременно. Когда строка полностью выровнена и выравнивающие управляющие слова были считаны, каждая следующая строка содержит выровненные слова данных и управляющие слова, и каждая строка считывается до тех пор, пока не возникнет состояние нарушения выравнивания, и выравнивание необходимо выполнить еще раз. Если один буфер FIFO выравнивания заполнен, когда в него должно быть помещено слово, все буферы FIFO выравнивания будут сброшены на постоянное запоминающее устройство. Это может произойти при потере выравнивающего слова.
На фиг. 6 показана диаграмма состояний конечного автомата, которая иллюстрирует поведение интерфейса многополосной связи согласно варианту осуществления настоящего изобретения.
Интерфейс многополосной связи применяется на обоих концах многополосной линии, при этом два конца линии называются ближним концом и дальним концом. В следующем примере интерфейс многополосной связи работает на ближнем конце совместно с интерфейсом многополосной связи дальнего конца. В этом случае интерфейс многополосной связи дальнего конца может работать так же, как интерфейс многополосной связи ближнего конца.
Интерфейс многополосной связи содержит логический блок для инициализации линии и установления символьной синхронизации с интерфейсом дальнего конца. Этим логическим блоком управляет конечный автомат выравнивания, который проиллюстрирован на фиг. 6 и который может быть реализован в логическом блоке, содержащем программное обеспечение и/или логическую схему. После сброса 602 линии конечный автомат выравнивания входит в состояние В неготовности. Символьная синхронизация устанавливается с помощью интерфейса дальнего конца.
В состоянии В неготовности полосы линии еще не выровнены, поэтому слова данных не могут быть отправлены или приняты. Чтобы выровнять полосы, конечный автомат выравнивания управляет многополосным логическим блоком для отправки активных управляющих слов по каждой полосе линии и для периодической отправки выравнивающих управляющих слов, например, одного выравнивающего слова на каждые семь активных слов. Когда выравнивающие и активные управляющие слова приняты, они содержат информацию о том, какие полосы на дальнем конце линии активны. Это можно сравнить с состоянием полос на ближнем конце линии, и, когда они совпадут, ближний конец будет готов начать отправлять слова данных. Буферы FIFO выравнивания будут принимать активные и выравнивающие управляющие слова по каждой активной полосе и выравнивать их. Как только было достигнуто выравнивание строк, и информация о состоянии дальнего конца, содержащаяся в активных и выравнивающих управляющих словах, согласуется с информацией о состоянии ближнего конца, полосы выравниваются 604, и конечный автомат выравнивания может перейти в состояние С готовности ближнего конца.
Для полос, которые должны быть выровнены 604, выполняются все следующие условия:
- процесс выравнивания полос, который компенсирует отклонение между полосами, завершен, поэтому ближний конец линии принимает слова от активных полос в том же порядке, в каком они были отправлены дальним концом. Это условие подтверждается одновременным приемом выравнивающего слова всеми активными полосами. Когда линия уже находится в состоянии готовности, это также может быть подтверждено приемом управляющих слов, которые одновременно отправляются всеми полосами;
- количество полос, используемых для отправки данных на дальнем конце линии, как указано последним принятым выравнивающим словом, соответствует количеству полос, используемых для приема данных;
- номер полосы, присвоенный на обоих концах каждой полосы, одинаков. Это подтверждается содержимым выравнивающего слова или содержимым других слов, отправляемых, когда полоса не готова;
- полосы, которые являются активными, одинаковы на обоих концах линии. Это подтверждается приемом активных слов.
В состоянии С готовности ближнего конца конечный автомат выравнивания выдает команду многополосному логическому блоку прекратить отправку активных управляющих слов и позволяет ему отправлять и принимать слова данных, сохраняя при этом символьную синхронизацию. Выравнивающие слова по-прежнему отправляются периодически, чтобы гарантировать, что процесс выравнивания на дальнем конце линии завершается, все еще сохраняя при этом символьную синхронизацию.
Нарушение выравнивания строки полос может происходить по одной из нескольких причин:
- полосы на ближнем конце линии, находящиеся в активном состоянии, могут измениться, т.е. активная полоса может перестать быть активной или полоса, которая не была активной, может стать активной;
- полосы на дальнем конце линии, которые находятся в активном состоянии, могут измениться, и это будет указано в активных управляющих словах;
- буферы FIFO выравнивания могут переполняться;
- принятая строка может быть недопустимой, содержащей комбинацию управляющих слов и слов данных в одной строке;
- может быть принято выравнивающее управляющее слово, содержащее ошибку; или
- может быть принято управляющее слово или слово данных, содержащее ошибку, в течение короткого периода времени после входа в состояние готовности ближнего конца. Эта ошибка была бы распространена по линии между двумя концами линии, когда было бы обнаружено выравнивание строк. Эта проверка обеспечивает то, что обе стороны не заканчиваются в несогласованном состоянии вследствие ошибок в одной или нескольких полосах. Интерфейс содержит логический блок, чтобы определять, что ближний конец не готов отправлять слова данных, если ошибку обнаруживают в период времени после того, как будет определено, что ближний конец готов отправлять слова данных. Период времени представляет собой двустороннюю задержку линии, включающую любую задержку обработки. Он предпочтительно составляет менее 4 микросекунд. Период времени является результатом суммы времени для передачи слова в наихудшем случае, плюс задержка, пока оно не достигнет дальнего конца, плюс обработка этого слова на дальнем конце, плюс задержка слова, созданного на дальнем конце, пока оно не достигнет ближнего конца. По истечении этого периода времени интерфейс ближнего конца может принимать информацию с дальнего конца, которая известна и актуальна для текущего состояния ближнего конца, если оно не изменилось, с тех пор как начался период времени. Чтобы протокол был надежным, ближний конец не может получать ошибки приема до тех пор, пока не истечет период времени после того, как линия стала готовой. В состоянии С готовности ближнего конца, когда возникает 606 состояние нарушения выравнивания, конечный автомат выравнивания возвращается в состояние В неготовности. Таким образом, в случае изменений, обнаруженных с помощью принятых активных управляющих слов, интерфейс ближнего конца может обнаруживать изменение состояния полосы посредством приема данных состояния полосы дальнего конца, отправленных с интерфейса дальнего конца. Находясь в состоянии В неготовности, конечный автомат выравнивания будет затем с помощью многополосного логического блока выполнять этапы, необходимые для достижения корректного выравнивания строк. В состоянии С готовности ближнего конца, когда принимается слово данных и не возникает 608 нарушение выравнивания, конечный автомат выравнивания переходит в состояние А готовности обоих концов. Конечный автомат выравнивания выдает команду многополосному логическому блоку не отправлять активные и выравнивающие управляющие слова, а отправлять и принимать слова данных и другие управляющие слова канального уровня. В состоянии А готовности обоих концов оба конца многополосной линии полностью выровнены и способны передавать данные, используя полосы, которые являются активными. Если, когда конечный автомат выравнивания находится в состоянии А готовности обоих концов, возникает состояние нарушения выравнивания или принимается 610 активное слово, указывающее на изменение активных полос (т.е. состояние полос) на дальнем конце линии, конечный автомат выравнивания переходит в состояние В неготовности ближнего конца и снова запускает процесс выравнивания полос. Таким образом, опять же, интерфейс ближнего конца может обнаруживать изменение состояния полосы, принимая данные состояния полосы дальнего конца, отправленные с интерфейса дальнего конца.
Таким образом, после обнаружения изменения состояния полосы логический блок:
(a) прекращает отправку слов данных, сохраняя при этом символьную синхронизацию;
(b) отправляет управляющие слова состояния линии ближнего конца (активные слова) на дальний конец вместо слов данных, сохраняя при этом символьную синхронизацию, пока не будет определено, что ближний конец готов отправлять слова данных, затем возобновляет отправку слов данных, сохраняя при этом символьную синхронизацию; и
(c) отправляет сигналы выравнивания полос ближнего конца (выравнивающие слова) на дальний конец, сохраняя при этом символьную синхронизацию, пока не будет принято слово данных с дальнего конца.
Использование интерфейса многополосной связи обеспечивает линию, которая постоянно отслеживает, какие полосы являются активными и готовы отправлять данные, на каждом конце линии, чтобы динамически реагировать на изменения в их конфигурации и состоянии, не требуя полной инициализации всей системы. Когда линия обнаруживает, что состояние одной или нескольких полос меняется с активного на неактивное или неактивного на активное из-за произошедшего сбоя или изменения конфигурации энергосбережения, линия немедленно прекращает отправку данных пользователя и начинает отправлять информацию о состоянии каждой полосы (т.е. переходит из состояния А в состояние В), сохраняя при этом символьную синхронизацию. Это предотвращает обработку данных пользователя дальним концом линии при недопустимом упорядочении полосы и позволяет дальнему концу проверить, что полосы, используемые для приема данных на ближнем конце, являются теми же самыми, что и полосы на дальнем конце, используемые для отправки этих данных. Если на дальнем конце обнаружено несоответствие посредством приема этой информации о состоянии, дальний конец также прекращает отправку данных пользователя и отправляет вместо этого информацию о состоянии каждой из его полос. Линия может возобновить отправку данных, как только будет подтверждено, что состояние каждой полосы одинаково на обоих концах линии, а полосы выровнены так, что разное отклонение между каждой полосой компенсировано.
Вскоре после обнаружения сбоя или новой конфигурации полосы состояние полосы дальнего конца линии снова будет соответствовать состоянию ближнего конца. В случае двунаправленной полосы, полоса сама может обнаруживать, если дальний конец вошел в активное состояние или вышел из него. В случае однонаправленной только передающей полосы, полоса информируется линией, когда дальний конец вошел или вышел из активного состояния, поэтому она может соответствующим образом изменить свое собственное состояние. Это делается по меньшей мере в одной двунаправленной полосе, которая присутствует в линии.
Выравнивающее слово применяется для обнаружения и компенсации отклонения разных полос, а также включает информацию о том, сколько полос являются активными и готовыми отправлять данные. Линия может возобновить отправку данных пользователя, когда это управляющее слово принято и его содержимое проверено, т.е. указанное количество полос, используемых для отправки, равно количеству полос, используемых в настоящее время для приема. Это управляющее слово отправляется периодически, когда любой конец линии становится неготовым. Это позволяет обоим концам линии возобновить работу, даже если на одной или нескольких полосах имеются произвольные ошибки, приводящие к потере переданной информации.
На фиг. 7 показан пример того, как работает интерфейс многополосной связи, когда однонаправленная только принимающая полоса отключена вследствие ошибки или задания режима энергосбережения. В этом примере на левом конце линии, обозначенной буквой L, эта полоса является однонаправленной только передающей полосой, поэтому левый конец не имеет средств, чтобы обнаружить, что правый конец, обозначенный буквой R, отключен. Используя активные слова, подход обеспечивает то, что только передающая полоса отключается, и оба конца согласуются с количеством используемых полос. Даже если есть дополнительные ошибки или изменения конфигурации в одной или нескольких полосах, гарантируется целостность данных, связанная с упорядочением полос. Показаны два конца линии, каждый со своим интерфейсом многополосной связи согласно варианту осуществления настоящего изобретения. Временная ось проходит сверху вниз.
Рассматривая левый конец L с интерфейсом левого конца, начиная с состояния А «готовности обоих концов»:
на этапе 702:
- активные слова принимают с одной из полос в другом состоянии;
- только передающую полосую Тх уведомляют о том, что другой конец не находится в активном состоянии, поэтому она также выходит из активного состояния;
- интерфейс левого конца переходит в состояние В «неготовности ближнего конца»;
на этапе 704:
- принимают выравнивающее слово с его количеством полос, используемых для отправки поля, равным количеству полос, используемых для приема на ближнем конце (левом конце);
- выполняют все остальные условия, необходимые для перехода интерфейса левого конца в состояние готовности;
- интерфейс левого конца переходит в состояние С «готовности ближнего конца»;
на этапе 706:
- левый конец периодически отправляет выравнивающие слова, чередуемые между словами данных и управляющими словами, потому что принимаются активные слова, указывая, что другая сторона линии (правая сторона) находится в состоянии В неготовности;
на этапе 708:
- принимают слово данных, указывающее на то, что другой конец линии (правый конец) достиг состояния С готовности ближнего конца, так что оба конца теперь готовы;
- интерфейс левого конца переходит в состояние А «готовности обоих концов линии».
Рассматривая правый конец R с интерфейсом правого конца, начиная с состояния А «готовности обоих концов линии»:
на этапе 710:
- только принимающая линия обнаруживает слишком много ошибок и отключается;
- соответственно изменяется количество полос в активном состоянии;
- интерфейс правого конца переходит в состояние В «неготовности ближнего конца»;
- принятые впоследствии слова данных отбрасывают;
на этапе 712:
- слова данных отбрасывают, поскольку правый конец линии все еще находится в состоянии неготовности;
- периодически отправляют выравнивающие слова, чередуя между активными словами, потому что правый конец линии находится в состоянии неготовности;
на этапе 714:
- происходит ошибка, и выравнивающее слово не принимают; на этапе 716:
- слова данных отбрасывают, поскольку линия все еще находится в состоянии неготовности;
на этапе 718:
- принимают выравнивающее слово с его количеством полос, используемых для отправки поля, равным количеству полос, используемых для приема на ближнем конце (правом конце);
- выполняют все остальные условия, необходимые для перехода интерфейса правого конца в состояние готовности;
- интерфейс правого конца переходит в состояние С «готовности ближнего конца»;
на этапе 720:
- принимают слово данных, указывающее, что другой конец линии (левый конец) находится в состоянии С готовности ближнего конца, поэтому оба конца линии теперь готовы;
- интерфейс правого конца переходит в состояние А «готовности обоих концов линии».
Преимущества, обеспечиваемые одним или несколькими вариантами осуществления настоящего изобретения, заключаются в следующем. Многополосная линия может работать с произвольным количеством однонаправленных (передающих или принимающих) и двунаправленных полос. Общая доступная полоса пропускания представляет собой сумму индивидуальной полосы пропускания каждой полосы без учета накладных протокольных затрат. Линия автоматически определяет количество полос передачи и приема, используемых на дальнем конце линии, и являются ли они однонаправленными или двунаправленными.
Полосы линии обладают встроенными возможностями «горячей замены», так как их состояние может быть изменено в любое время.
Каждая полоса линии может быть сконфигурирована независимо, не ограничивая другие полосы.
Если полоса выходит из строя или отключается, она не влияет на работу других полос.
Ширина порта (размер интерфейса с приложением) не зависит от ширины линии (количества полос).
Доставка данных по порядку, которая может быть нарушена распределением данных по нескольким полосам, гарантируется даже в случае потери любого количества слов вследствие ошибок в одной или нескольких полосах или в случае нескольких асинхронных изменений в конфигурации и состоянии полосы на каждом конце линии. Приемник обнаруживает, что порядок полос на дальнем конце изменился до обработки данных с некорректным порядком полос. Когда происходит изменение состояния или конфигурации одной полосы, система может возобновить передачу данных с остальных полос, не дожидаясь истечения времени ожидания таймера или повторной инициализации полосы. Специалисту в данной области техники понятно, что инновационный интерфейс многополосной связи по меньшей мере в некоторых вариантах осуществления реализован посредством логического блока, содержащего программный код и/или логическую схему для выполнения различных этапов логического блока настоящего изобретения, как описано выше. Логическая схема может содержать компьютерную микросхему, спроектированную с помощью кода VHDL (языка описания аппаратуры VHSIC (сверхбыстродействующих схем с высоким уровнем интеграции)). Кроме того, программный код или код, необходимый для проектирования такой компьютерной микросхемы, конечно можно хранить в и/или считывать с любого машиночитаемого носителя, такого как компакт-диск (CD), цифровой видеодиск (DVD), устройство хранения данных на основе флеш-памяти, жесткий диск, оперативное запоминающее устройство (RAM) или постоянное запоминающее устройство (ROM), а также множество других машиночитаемых носителей, конкретно не упомянутых в настоящей заявке.
Из приведенного выше описания настоящего изобретения очевидно, что для реализации концепций настоящего изобретения без отступления от его объема могут быть использованы различные методики. Кроме того, хотя настоящее изобретение было описано с конкретной ссылкой на некоторые варианты осуществления, специалисту в данной области техники будет понятно, что в форме и деталях без отклонения от сущности и объема настоящего изобретения могут быть сделаны изменения. Таким образом, описанные варианты осуществления должны рассматриваться во всех отношениях как иллюстративные, а не ограничительные. Следует также понимать, что настоящее изобретение не ограничено конкретными вариантами осуществления, описанными в данном документе, но допускает множество реконфигураций, модификаций и замещений без отступления от объема настоящего изобретения.