Масштабируемый универсальный интерфейс канала связи SLink

Полезная модель относится к области вычислительной техники, а конкретно к интерфейсам приема-передачи данных.
Известен «универсальный круговой пользовательский интерфейс со многими состояниями» [РФ №2450320 С2, G06F 3/048, 10.05.2012], содержащее устройство обработки содержимого, пользовательский интерфейс, соединенный с указанным устройством обработки содержимого, и процессор, расположенный в устройстве обработки содержимого и предназначенный для: активации системы выбора меню состояний, создания управляющего набора функций, относящегося к доступному приложению устройства, отображения по меньшей мере одной функции из указанного управляющего набора функций, по меньшей мере, на одном устройстве ввода данных, входящем в состав указанного устройства обработки содержимого, и активации одной из указанной, по меньшей мере, одной функции, отображенной на указанном по меньшей мере одном устройстве ввода данных и входящей в указанный управляющий набор функций, после активации указанного по меньшей мере одного устройства ввода данных.
Недостатком данного интерфейса является то, что оно используется только в приложениях устройств мобильной связи.
Наиболее близким к заявляемому является универсальный двунаправленный последовательный интерфейс передачи данных и способ передачи данных [РФ №2345401 С2, G06F 3/00, 27.01.2009], содержащий приемопередающий блок, конфигурированный для приема и передачи данных, который соответствует спецификации USB (универсальной последовательной шины); блок детектирования, конфигурированный для определения данных, принятых приемопередающим блоком, для того, чтобы определить, необходимо ли преобразовать принятые данные в данные, которые соответствуют конкретной спецификации; и блок преобразования, конфигурированный для преобразования принятых данных в данные, которые соответствуют конкретной спецификации, после определения, что принятые данные должны быть преобразованы в данные, которые соответствуют конкретной спецификации, и для преобразования данных передачи, которые соответствуют конкретной спецификации, в данные, которые соответствуют спецификации USB, для передачи через приемопередающий блок.
Недостатком данного интерфейса является то, что он не позволяет организовать межмодульные каналы обмена с пропускной способностью, сбалансированной с параметрами потоков обмена между указанными модулями в обоих направлениях.
Технический результат заключается в расширении арсенала средств, то есть в реализации назначения заявленного универсального интерфейса канала связи.
Технический результат достигается тем, что в масштабируемый универсальный интерфейс канала связи, содержащий приемопередающий блок для приема и передачи данных, дополнительно введено то, что приемопередающий блок разделен на блок передатчика интерфейса и блок приемника интерфейса, и в него дополнительно введены два логических блока, расположенные соответственно в модулях А и В, два выходных блока передатчика интерфейса и два входных блока приемника интерфейса, расположенные каждый в соответствующих модулях А и В, выход логического блока, расположенного в модуле А, через системный интерфейс передатчика соединен с входом выходного блока передатчика интерфейса, расположенного в модуле А, выход которого через внешний масштабируемый интерфейс канала связи соединен с входом входного блока приемника интерфейса, расположенного в модуле В, выход которого через системный интерфейс приемника соединен с входом логического блока, расположенного в модуле В, выход которого через системный интерфейс передатчика соединен с входом выходного блока передатчика интерфейса, расположенного в модуле В, выход которого через внешний масштабируемый интерфейс канала связи соединен с входом входного блока приемника интерфейса, расположенного в модуле А, выход которого через системный интерфейс приемника соединен с входом логического блока, расположенного в модуле А, причем каждый выходной блок передатчика интерфейса содержит регистр заголовков, регистр данных и выходной блок передатчика, выход регистра заголовков соединен с первым входом выходного блока передатчика, второй вход которого соединен с выходом регистра данных, вход которого соединен с вторым входом выходного блока передатчика интерфейса, первый вход которого соединен с входом регистра заголовков, а выход выходного блока передатчика интерфейса соединен с выходом выходного блока передатчика, причем каждый входной блок приемника интерфейса содержит регистр заголовков, регистр данных и входной блок приемника, вход регистра заголовков соединен с первым выходом входного блока приемника, второй выход которого соединен с входом регистра данных, выход которого соединен с вторым выходом выходного блока приемника интерфейса, первый выход которого соединен с выходом регистра заголовков, а вход выходного блока приемника интерфейса соединен с входом входного блока приемника.
Введение указанных дополнительных элементов и последовательности его подключения обеспечивает возможность в расширении арсенала средств, то есть в реализации назначенного заявленного универсального интерфейса канала связи.
На фиг. 1 представлена общая схема масштабируемого универсального интерфейса канала связи.
На фиг. 2 представлена схема выходного блока передатчика интерфейса (Slink ТХ Client).
На фиг. 3 представлена схема входного блока приемника интерфейса (Slink RX Client).
Масштабируемый универсальный интерфейс канала связи (фиг. 1) содержит два логических блока 1 и 4, расположенные соответственно в модулях А и В, два выходных блока 2 и 6 передатчика интерфейса (Slink ТХ Client), расположенные соответственно в модулях А и В, два входных блока 3 и 5 приемника интерфейса (Slink RX Client), расположенные соответственно в модулях А и В.
Каждый выходной блок 2 и 6 передатчика интерфейса (Slink ТХ Client) (фиг. 2) содержит регистр 7 заголовков (Header Array), регистр 8 данных (Data Array) и выходной блок 9 передатчика (ТХ Link).
Каждый входной блок 3 и 5 приемника интерфейса (Slink RX Client) (фиг. 3) содержит регистр 10 заголовков (Header Array), регистр 11 данных (Data Array) и входной блок 12 приемника (ТХ Link).
Интерфейс (фиг. 1, фиг. 3) содержит два логических блока 1 и 4, расположенные соответственно в модулях А и В, два выходных блока 2 и 6 передатчика интерфейса (Slink ТХ Client), расположенные соответственно в модулях А и В, два входных блока 3 и 5 приемника интерфейса (Slink RX Client), расположенные соответственно в модулях А и В, выход логического блока 1, расположенного в модуле А, через системный интерфейс передатчика (system ТХ interface) соединен с входом выходного блока 2 передатчика интерфейса (Slink ТХ Client), расположенного в модуле А, выход которого через External Slink interface соединен с входом входного блока 5 приемника интерфейса (Slink RX Client), расположенного в модуле В, выход которого через системный интерфейс приемника (system RX interface) соединен с входом логического блока 4, расположенного в модуле В, выход которого через системный интерфейс передатчика (system ТХ interface) соединен с входом выходного блока 6 передатчика интерфейса (Slink ТХ Client), расположенного в модуле В, выход которого через External Slink interface соединен с входом входного блока 3 приемника интерфейса (Slink RX Client), расположенного в модуле А, выход которого через системный интерфейс приемника (system RX) interface соединен с входом логического блока 1, расположенного в модуле А, причем каждый выходной блок 2 и 6 передатчика интерфейса (Slink ТХ Client) содержит регистр 7 заголовков (Header Array), регистр 8 данных (Data Array) и выходной блок 9 передатчика (ТХ Link), выход регистр 7 заголовков (Header Array) соединен с первым входом выходного блока 9 передатчика (ТХ Link), второй вход которого соединен с выходом регистра 8 данных (Data Array), вход которого соединен с вторым входом блока, первый вход которого соединен с входом регистр 7 заголовков (Header Array), а выход соединен с выходом выходного блока 9 передатчика (ТХ Link), причем каждый входной блок 3 и 5 приемника интерфейса (Slink RX Client) содержит регистр 10 заголовков (Header Array), регистр 11 данных (Data Array) и входной блок 12 приемника (RX Link), вход регистра 10 заголовков (Header Array) соединен с первым выходом входного блока 12 приемника (RX Link), второй выход которого соединен с входом регистра 11 данных (Data Array), выход которого соединен с вторым выходом блока, первый выход которого соединен с выходом регистр 10 заголовков (Header Array), а вход соединен с входом входного блок 12 передатчика (RX Link).
Работа интерфейса (фиг. 1, …, фиг. 3) заключается в следующем.
При организации множества каналов обмена между однотипными модулями на одном кристалле, как правило, используется единый для всех модулей интерфейс, обладающий фиксированной максимальной пропускной способностью. Пропускная способность интерфейса выбирается такой, чтобы покрыть потребности самого требовательного из модулей. При этом для каналов, требования которых на пропускную способность ниже, используется тот же интерфейс и то же количество аппаратных ресурсов.
В случае больших межмодульных расстояний и широкого диапазона требований на пропускную способность используемых каналов это может приводить к неоправданному избыточному использованию аппаратных ресурсов и усложнению трассировки проводников на кристалле, особенно в случае, когда потребности в пропускной способности самого требовательного из каналов велики. Одним из способов решения указанной проблемы является использование масштабируемого универсального интерфейса канала связи SLink.
Интерфейс SLink является коммутируемой (одни и те же линии используются для передачи как параметров (адрес, команда и т.п.), так и данных пакета) однонаправленной шиной. Ширина линии данных/параметров является задаваемым в соответствии с требуемой пропускной способностью параметром, а сам протокол обмена и набор управляющих сигналов является фиксированным. Параметр ширины линии данных/параметров задается в байтах и может быть задан с шагом в 1 байт в диапазоне от 1 байта и выше. Для организации двунаправленного обмена используются отдельные интерфейсы SLink для каждого из направлений. Таким образом, использование интерфейса SLink позволяет организовать межмодульные каналы обмена с пропускной способностью, сбалансированной с параметрами потоков обмена между указанными модулями в обоих направлениях, например, между модулем А (Module А) и модулем В (Module В) (Фиг. 1). Для подключения контроллеров Slink к модулям используются системные интерфейсы А(В) system TX/RX interface.
Для организации канала обмена в одном направлении между парой модулей пользователь делает оценку требуемой пропускной способности для соответствующего направления и выбирает в соответствии с указанной оценкой ширину линии данных/параметров внешнего интерфейса пары передатчик-приемник контроллера SLink. Кроме этого пользователь задает такие параметры системных интерфейсов контроллеров приемника и передатчика, как ширины линий заголовка и ширины линий данных и заносит их в файл конфигурации. Результатом работы скрипта являются два файла: контроллер приемника и контроллер передатчика. В случае необходимости аналогичная процедура выполняется для канала обратного направления обмена.
Набор и параметры сигналов системного интерфейса определяются разнообразием видов передаваемых пакетов: если все передаваемые пакеты состоят только из заголовков, то сигналы в системном интерфейсе отсутствуют.
Например, модуль-передатчик может формировать только запросы чтения и/или ответы без данных.
Расположение полей параметров в заголовке определяет эффективность использования функции сжатия заголовков на интерфейсе «SLink». Наибольшая эффективность достигается при расположении наиболее часто меняющихся параметров в младших байтах заголовка.
Эффективность использования функции сжатия заголовков при передаче независимых потоков массивов запросов зависит от частоты чередования запросов от разных потоков. Для достижения максимальной эффективности арбитрирование потоков на передачу по интерфейсу «SLink» необходимо осуществлять пачками максимально возможного размера, т.е. после N, где N=1, 2, 3, …, запросов одного потока осуществляется передача М, где М=1, 2, 3, …, запросов другого потока, при этом, чем больше значения М и N, тем выше эффективность использования функции сжатия.
Модуль-источник А или В ведет учет свободных ресурсов в удаленном модуле-приемнике с помощью счетчиков ресурсов. Активный уровень сигнала строба освобождения кредитов (wl free) в текущем такте означает освобождение одного ресурса в буфере удаленного модуля-приемника и вызывает инкрементирование соответствующего счетчика. В общем случае сигнал строба освобождения кредитов (wl free) является многоразрядным, каждый из разрядов соответствует определенному типу пакетов. Разделение буферов по типам пакетов не является необходимым и осуществляется в соответствии со спецификой конкретного модуля-приемника. В случае отсутствия разделения ресурсов по типам сигнал строба освобождения кредитов (wl free) является одноразрядным. Выдача очередного пакета модулем-источником сопровождается декрементированием соответствующего счетчика. Выдача пакета из модуля-источника осуществляется только при условии наличия в модуле-приемнике ресурса для хранения указанного пакета.
Передача нескольких пакетов может выполняться без тактов ожидания между ними. Передача пакета начинается со стартовой посылки по сигналу начала передачи пакета (wl start=1) и заканчивается по сигналу окончания передачи пакета (wl stop=1). Стартовый и окончания посылки могут быть совмещены. Передача пакета осуществляется пофрагментно. Текущим фрагментом пакета является посылка заголовка и/или данных, расположенных на линиях заголовка пакета (wl header) и данных в пакете (wl data) соответственно, сопровождаемых параметрами значимости/размера указателя значимости заголовка (wl hptr) и указателя значимости данных (wl dptr) соответственно. Окончание приема текущего фрагмента пакета из модуля-источника в передатчик контроллера интерфейса SLink подтверждается со стороны контроллера установкой в активное состояние сигнала подтверждения (wl ack). Значения сигналов системного интерфейса, установленные модулем-источником при выдаче очередного фрагмента пакета не могут изменяться до подтверждения приема выставленного фрагмента от передатчика контроллера интерфейса Slink сигнала подтверждения (wl ack=1). Выдача фрагментов текущего пакета может осуществляться как непрерывно, что возможно только при условии непрерывности уровня сигнала подтверждения (wl ack=1), так и с циклами ожидания, введенными модулем-источником. Циклом ожидания является передача пустой нестартовой посылки данных по сигналам начала передачи пакета (wl start=0) и указателя значимости данных (wl dptr=0). Циклы ожидания могут вводиться только вследствие временного отсутствия данных у модуля-источника. Формирование цикла ожидания в стоповой посылке (wl_stop=1, wl_dptr=0) запрещено. В стартовой посылке могут передаваться как заголовок + данные, так и только заголовок, независимо от того, содержит пакет данные или нет. При передаче заголовка модуль-источник указывает размер значимой части заголовка на линии заголовка пакета (wl header) с помощью параметра значимости/размера указателя значимости заголовка (wl hptr). Отсчет размера значимой части осуществляется с 0-го байта линии заголовка пакета (wl header). В случае если заголовок текущего пакета отличается от заголовка предыдущего пакета только в N младших байтах, модуль-источник может (но не обязан) указать размер значимой части заголовка wl hptr=N, при этом допустимо значение N=0 (это означает, что заголовок текущего пакета полностью совпадает с заголовком предыдущего пакета).
В посылках, не являющимися стартовыми, передача заголовка запрещена, как следствие модуль-источник должен установить указатель значимости заголовка (wl hptr=0) на все время, когда не ведется выдача стартовой посылки, в том числе и на время, когда пакеты не выдаются вообще. При передаче данных модуль-источник указывает размер значимой части вектора данных на линии данных в пакете (wl data) с помощью параметра значимости/размера указателя значимости данных (wl dptr). Отсчет размера значимой части осуществляется с 0-го байта линии данных в пакете (wl data). Рекомендуется организовать выдачу данных таким образом, чтобы основная часть фрагментов данных выдавалась с размером, соответствующим полной ширине линии данных в пакете (wl data). Невозможность выполнения указанной рекомендации означает неоптимальный выбор параметра ширины линии системного интерфейса данных в пакете (wl data) пользователем.
Модуль-приемник заносит принятый пакет в буфер. По мере освобождения места в указанном буфере под очередной пакет формируется однотактовый импульс освобождения ресурса на линии wl free. В общем случае сигнал строба освобождения кредитов (wl free) является многоразрядным, каждый из разрядов соответствует определенному типу пакетов. Разделение буферов по типам пакетов не является необходимым и осуществляется в соответствии со спецификой конкретного модуля-приемника. В случае отсутствия разделения ресурсов по типам сигнал строба освобождения кредитов (wl free) является одноразрядным.
Выдача приемником контроллера SLink на системный интерфейс нескольких пакетов может выполняться без тактов ожидания между ними. Выдача пакета начинается со стартовой посылки (wl_start=1) и заканчивается стоповой (wl_stop=1).
Сигналы начала передачи пакета и окончания передачи пакета могут быть совмещены, в этом случае они равны 1 wl start=1 и wl stop=1. Выдача пакета осуществляется пофрагментно. Текущим фрагментом пакета является посылка заголовка и/или данных, расположенных на линиях заголовка пакета (wl header), и данных в пакете (wl data) соответственно. Посылка данных сопровождаемых параметром значимости/размера wl_dptr. Выдача фрагментов текущего пакета может осуществляться как непрерывно, так и с циклами ожидания, введенными приемником контроллера SLink. Циклом ожидания является передача пустой нестартовой посылки данных по сигналам начала передачи пакета (wl start=0) и указателя значимости данных (wl dptr=0). Циклы ожидания могут появляется вследствие накопления приемником контроллера SLink данных с внешнего интерфейса для выдачи вектора полной ширины линии данных в пакете (wl data). В стартовой посылке могут передаваться как заголовок + данные, так и только заголовок, независимо от того, содержит пакет данные или нет. При выдаче заголовка размер значимой части на линии заголовка пакета (wl header) не указывается, фактический размер значимой части определяется типом транзакции (поле tType заголовка). При выдаче данных указывается размер значимой части вектора данных на линии данных в пакете (wl data) с помощью параметра значимости/размера указателя значимости данных (wl dptr). Отсчет размера значимой части осуществляется с 0-го байта линии данных в пакете (wl data). Во всех выдаваемых посылках, кроме стоповой, параметр указатель значимости данных (wl dptr) может принимать значения либо «0» (отсутствие данных), либо W (W - полная ширина линии данных в пакете (wl data)B байтах). В стоповой посылке (wl_stop=1) параметр wl_dptr может принимать любые значения от «1» до W включительно, где W=1, 2, 3, … .
Связь между модулем А и модулем В и обратно (Фиг. 1) осуществляется через внешний масштабируемый интерфейс канала связи (External Slink interface). Внутри каждого модуля связь осуществляется через системый интерфейс System ТХ interface при передаче или через системый интерфейс System RX interface при приеме пакетов.
При этом блоки (Фиг. 1, Фиг. 2) в каждом модуле выполняют следующие функции.
Логический блок 1 (Logical Block), который обычно является в качестве внешнего канала приема и передачи информации, подключается к интерфейсу, осуществляет работу с информацией, например хранение, обработку, передачу и т.д.
Логический блок 4 (Logical Block) предназначен для хранения заголовка передаваемого пакета.
Выходной блок передатчика 2 и 6 интерфейса Slink (Slink ТХ Client) (Фиг. 1) осуществляет прием пакетов с системного интерфейса (System ТХ interface), перекодировку во внешний интерфейс SLink и передачу информации от логического блока.
Входной блок приемника 3 и 5 интерфейса Slink (Slink RX Client) осуществляет прием пакета с внешнего масштабируемого интерфейса канала связи Slink (External Slink interface), перекодировку в системный интерфейс и передачу информации в соответствующие логические блоки 1 и 4.
Блок регистров заголовка 8 и 11 (Header Array) (Фиг. 2) предназначен для хранения заголовка передаваемого пакета.
Блок регистров данных 9 и 12 (Data Array) предназначен для хранения пакета, передающиегося в текущий момент.
Блоки 10 (ТХ Link) и 13 (RX Link) (Фиг. 2) являются выходным передатчика и входным приемника блоками и осуществляют соответственно сериализацию и передачу информации и десериализацию и прием информации.
Таким образом, использование интерфейса Slink, где Slink - условное обозначение, позволяет расширить арсенал средств, то есть в реализации назначенного заявленного универсального интерфейса канала связи.