Аппаратный ускоритель вукпд

Изобретение относится к технике связи и может использоваться для формирования и расформирования кадров. Технический результат состоит в восстановлении данных пакета. Ускоритель высокоуровневого управления передачей данных (ВУКПД) включает в себя блок расформирования кадров и блок формирования кадров для ускорения соответственно процессов расформирования кадров и формирования кадров для пакетов РРР. Блок расформирования пакета включает в себя входной модуль интерфейса, модуль обнаружения, модуль преобразования и выходной модуль интерфейса. Входной модуль интерфейса принимает пакет данных, который будет подвергаться операции расформирования кадров. Модуль обнаружения оценивает каждый байт данных для обнаружения специальных байтов. Модуль преобразования расформировывает кадры принятых данных, удаляя байты флажка и управляющие байты, «преобразовывает из управляющей последовательности» байт данных, расположенный после каждого управляющего байта, обеспечивает слово заголовка для каждого байта флажка и проверяет каждый пакет, который будет подвергаться операции расформирования кадров. 11 н. и 41 з.п. ф-лы, 15 ил.

 

Область техники, к которой относится изобретение

Настоящее изобретение относится в общем случае к передаче данных, а более конкретно, к аппаратному ускорителю «высокоуровневого управления каналом передачи данных» (ВУКПД, HDLC) для формирования кадров и расформирования кадров пакетов PPP.

Уровень техники

Быстрый рост компьютерных сетей, таких как Интернет, привел к возникновению требования на инфраструктуры высокоскоростной передачи данных, которые могут поддерживать огромный объем трафика данных, сгенерированного этими сетями. Приблизительно параллельно с ростом Интернет происходит развертывание и признание беспроводных систем связи, способных поддерживать разнообразные услуги. Системы радиосвязи нового поколения предназначены для эффективного обеспечения передачи данных и голоса, что включает в себя трафик данных, сгенерированный Интернет.

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

Стандартная передача данных Интернет обычно поддерживается через уровень протокола управления передачей (TCP), который работает поверх уровня Интернет протокола (IP), который может дополнительно работать поверх уровня протокола двухточечного соединения (ПДС, PPP). Эти уровни определяются с помощью эталонной модели взаимодействия открытых систем, которая обычно упоминается, как модель OSI и известна из предшествующего уровня техники. Беспроводная связь может поддерживаться через уровень протокола радиолинии (УПР, RLP), который работает поверх физического уровня, такого как, например, уровень высокоскоростной передачи данных (HDR), определенный с помощью промежуточного стандарта IS-856.

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

Обычно обработку пакетов RLP для восстановления данных пакета PPP и обработку данных пакета RLP для формирования пакетов PPP выполняют с помощью программного обеспечения, выполняемого на процессоре. Для восстановления данных пакета PPP в каждом пакете RLP программное обеспечение обычно должно извлекать каждый байт пакета RLP, определять, должна ли какая-либо обработка выполняться с этим байтом, и затем выполнять необходимую обработку (если она необходима). «Преобразование» данных между PPP и RLP может потреблять большой процент от вычислительных возможностей процессора. Это потребует более быстрого процессора для беспроводного устройства связи и/или ограничит функциональные возможности и особенности, которые могут обеспечиваться устройством. Кроме того, дополнительная память обычно требуется для выполнения преобразования с помощью программного обеспечения.

Поэтому в предшествующем уровне техники существует потребность в аппаратном ускорителе, который может восстанавливать данные пакета PPP из пакетов RLP и формировать пакеты PPP из данных пакета RLP.

Раскрытие изобретения

Ускоритель ВУКПД обеспечивают для ускорения процессов расформирования и формирования кадров для пакетов PPP. В частности, специализированный аппаратный блок расформирования кадров ВУКПД обеспечивают для расформирования кадров пакетов RLP, для восстановления данных пакета PPP, и специализированный аппаратный блок формирования кадров ВУКПД обеспечивают для формирования кадров пакетов PPP из данных пакета RLP. Блок расформирования кадров и блок формирования кадров включают в себя достаточное количество аппаратных схем, поэтому минимальное программное управление необходимо, соответственно, для выполнения расформирования и формирования кадров.

Конкретный вариант осуществления обеспечивает блок расформирования кадров для использования в беспроводном устройстве связи. Блок расформирования кадров включает в себя входной модуль интерфейса, модуль обнаружения, модуль преобразования и выходной модуль интерфейса. Входной модуль интерфейса принимает, например, пакет данных RLP для расформирования кадров, одно слово за один раз, и для каждого принятого слова обеспечивает один байт данных за один раз для последующей обработки. Пакет RLP включает в себя один или более полных и/или неполных пакетов PPP, имеющих формат, определенный Интернет-стандартом RFC 1662 (запрос на комментарии 1662). Модуль обнаружения оценивает каждый байт данных от входного модуля интерфейса для обнаружения специальных байтов (например, байтов флажка, управляющих байтов и недопустимых байтов). Модуль преобразования выполняет расформирование кадра данных из модуля интерфейса, удаляя байты флажка и управляющие байты, «преобразует из управляющей последовательности» байт данных, следующий после каждого управляющего байта (например, выполняя операцию «исключающее ИЛИ» байта данных с «0х20»), обеспечивая слово заголовка для каждого байта флажка и проверяя каждый пакет с расформированными кадрами, основываясь на значении контрольной суммы кадра (КСК, FCS), связанной с данным пакетом. Выходной модуль интерфейса обеспечивает передачу данных с расформированными кадрами и может дополнительно выполнять выравнивание байтов при обеспечении передачи данных с расформированными кадрами. Блок расформирования кадров может также включать в себя модуль контроля состояния, предназначенный для обеспечения управляющих сигналов, указывающих конкретные задания, которые будут выполняться для расформирования кадров (например, вставка заголовка, удаление управляющего байта и т.д.).

Другой конкретный вариант осуществления обеспечивает блок формирования кадров для использования в беспроводном устройстве связи. Блок формирования кадров включает в себя входной модуль интерфейса, модуль обнаружения, модуль преобразования и выходной модуль интерфейса. Входной модуль интерфейса принимает пакет данных, в которых будут сформированы кадры, одно слово за один раз, и для каждого принятого слова обеспечивает один байт данных за один раз для последующей обработки. Модуль обнаружения оценивает каждый байт данных из входного модуля интерфейса для обнаружения байтов с определенным значением (например, байтов, для которых нужно сформировать управляющую последовательность). Модуль преобразования формирует кадры из данных из модуля интерфейса, вставляя управляющий байт для каждого байта данных, для которого будет сформирована управляющая последовательность, и преобразуя в управляющую последовательность этот байт данных, вставляя байт флажка в ответ на прием команды вставить байт флажка и вставляя значение КСК в ответ на прием команды вставить значение КСК. Выходной модуль интерфейса обеспечивает передачу созданных данных, имеющих формат, определенный стандартом RFC 1662. Блок формирования кадров может также включать в себя модуль контроля состояния, предназначенный для обеспечения управляющих сигналов, указывающих конкретные задания, которые будут выполняться для формирования кадров (например, вставка флажка, вставка управляющего байта, вставка КСК и т.д.).

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

Краткое описание чертежей

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

фиг.1 - диаграмма варианта осуществления системы связи, способной поддерживать передачу голоса и данных;

фиг.2 - структурная схема конкретного варианта осуществления терминала доступа;

фиг.3A - диаграмма, иллюстрирующая формат кадра, основанный на структуре кадра PPP подобного ВУКПД, описанной в Интернет-стандарте RFC 1662 (запрос на комментарии 1662);

фиг.3B - диаграмма, иллюстрирующая зависимость между последовательностью пакетов RLP и последовательностью пакетов PPP;

фиг.4 - структурная схема ускорителя ВУКПД, который может использоваться для выполнения формирования кадров и расформирования кадров для пакетов PPP;

фиг.5A - диаграмма формата памяти для выходного буфера блока расформирования кадров;

фиг.5B - диаграмма, графически иллюстрирующая выравнивание байтов и зависимость между буфером RLP и выходным буфером блока расформирования кадров;

фиг.6A и 6B - структурные схемы варианта осуществления блока расформирования кадров;

фиг.7 - последовательность операций процесса для выполнения расформирования кадров;

фиг.8 - диаграмма состояний варианта осуществления состояний для блока расформирования кадров;

фиг.9A и 9B - временные диаграммы для некоторых событий при расформировании кадров данных;

фиг.10 - структурная схема варианта осуществления блока формирования кадров;

фиг.11 - последовательность операций процесса выполнения формирования кадров;

фиг.12 - диаграмма состояний варианта осуществления состояний для блока формирования кадров;

фиг.13 - временная диаграмма для некоторых событий при формировании кадра данных;

фиг.14 - схема варианта осуществления модуля интерфейса выходного буфера;

фиг.15A - схема варианта осуществления поразрядного генератора циклического контроля избыточности (CRC);

фиг.15B-15D - схема варианта осуществления побайтового генератора циклического контроля избыточности (CRC).

Осуществление изобретения

Фиг.1 - диаграмма варианта осуществления системы 100 связи, которая способна поддерживать передачу голоса и данных. Система 100 может использоваться для обеспечения, например, беспроводных услуг Интернет в фиксированных, переносных и мобильных средах. Система 100 включает в себя множество терминалов 110 доступа, которые могут связываться с помощью интерфейса с различными устройствами 108 через проводные и/или беспроводные каналы связи (для простоты на фиг.1 показаны только один терминал и одно устройство). Устройства 108 могут быть компьютерами, приборами, персональными цифровыми помощниками (PDA), абонентскими устройствами, принтерами и т.д.

Каждый терминал 110 доступа связывается с одной или более точками 120 доступа по беспроводному каналу связи (снова, только одна точка доступа показана на фиг.1 для простоты). Воздушный канал связи между терминалами доступа и точками доступа может быть достигнут на основе различных технологий (например, множественный доступ с кодовым разделением каналов (CDMA), множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA) и т.д.) и различных разработок. Каждая точка 120 доступа поддерживает передачу данных для множества терминалов 110 доступа, расположенных в пределах его области охвата. Каждая точка 120 доступа может дополнительно соединяться с одним или более маршрутизатором 130 через высокоскоростные каналы связи (например, линию T1/E1 или Ethernet). Каждый маршрутизатор 130 направляет трафик между точками доступа и другими сетевыми элементами (например, локальным сервером 142a) и сетями (например, IP-сетью 140), присоединенными к ней. IP-сеть 140 может дополнительно соединяться с другими сетевыми элементами (например, с удаленным сервером 142b), локальной сетью (ЛС), узлом обслуживания пакетных данных (УОПД, PDSN) и т.д.

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

Фиг.1 также показывает конкретный вариант осуществления стека протоколов для системы 100 связи в течение сеанса просмотра веб-страниц в сети Интернет. Пользователь может выполнять приложение веб-браузера на компьютере пользователя (клиент) для доступа к данным, хранящимся на сервере, таком как локальный сервер 142a или удаленный сервер 142b. После того, как сеанс просмотра веб-страниц в сети Интернет был установлен, стек протоколов для различных элементов в коммуникационном пути от клиента 108 на серверы 142 может быть таким, как показано внизу фиг.1.

Показанный на фиг.1 стек протоколов представляет конкретное воплощение. Клиент и сервер выполняют сетевое приложение, которое работает поверх протоколов TCP и IP, которые поддерживают связь между клиентом и сервером. Связь между клиентом и терминалом доступа может быть достигнута через Ethernet или некоторый другой интерфейс. Связь между терминалом доступа и точкой доступа может достигаться через протоколы IP и PPP (которые являются стандартными протоколами Интернет) поверх протоколов RLP и HDR (которые являются протоколами воздушного канала связи). Связь между другими сетевыми элементами может достигаться так, как показано на фиг.1. Другие протоколы могут также использоваться для облегчения связи между клиентом и сервером.

Фиг.2 - структурная схема конкретного варианта осуществления терминала 110x доступа. В этом варианте осуществления терминал 110x доступа способен обеспечивать двунаправленную связь через принимающий путь и передающий путь.

Для принимающего пути один или более переданных сигналов принимаются с помощью антенны 212, направляются через антенный коммутатор (АК) 214 и обеспечиваются на приемнике 216. Приемник 216 приводит к требуемому состоянию (например, фильтрует, усиливает и преобразует с понижением частоты) принятый сигнал и оцифровывает приведенный к требуемому состоянию сигнал для обеспечения выборки данных. Затем демодулятор (ДЕМОД) 222 обрабатывает выборки данных для обеспечения передачи демодулированных данных. Для системы CDMA обработка с помощью демодулятора 222 может включать в себя (1) сжатие спектра выборки данных с помощью псевдошумовой (ПШ, PN) последовательности или кода дешифрации, (2) демодулирование данных со сжатым спектром с помощью кода формирования каналов (например, кода Уолша или кода OVSF) и (3) повторное демодулирование демодулированных данных с помощью восстановленного пилот-сигнала для обеспечения передачи демодулированных данных.

Декодер 224 затем деперемежает и декодирует каждый кадр данных или пакет в соответствии со схемами деперемежения и декодирования, которые являются дополняющими к схемам перемежения и кодирования, используемым в системе передатчика. Например, Витерби, турбо и/или блочное декодирование может выполняться, если сверточное, турбо и/или блочное кодирование, соответственно, выполняется в системе передатчика. Декодированные данные могут дополнительно проверяться на ошибки кадра, основываясь на коде циклического контроля избыточности (СКС), который обычно используется в системах CDMA. Декодированные данные могут обеспечиваться на основной контроллер 230 и/или храниться в запоминающем устройстве (например, в памяти 232).

Для передающего пути данные, которые будут переданы от терминала 110x доступа, обеспечивают на кодер 252 для обработки. Кодер 252 кодирует принятые данные в соответствии с конкретной схемой кодирования, которая может включать в себя любую комбинацию CRC, сверточного, турбо и/или блочного кодирования. Кодированные данные затем перемежаются в соответствии с конкретной схемой перемежения, и перемеженные данные дополнительно обрабатываются с помощью модулятора (МОД) 254. Для системы CDMA обработка с помощью модулятора 254 может включать в себя модулирование данных с помощью кода формирования каналов и расширение спектра модулированных данных с помощью ПШ последовательности или кода шифрования. Модулированные данные затем приводят к требуемому состоянию (например, фильтруют, усиливают и преобразуют с повышением частоты) с помощью передатчика 256 для обеспечения передачи модулированного сигнала, который затем направляют через антенный коммутатор 214 и передают через антенну 212.

Основной контроллер 230 может выполнять различные функции обработки для передачи голоса/данных и может также использоваться для управления работой различных процессоров в пределах терминала 110x доступа. Основной контроллер 230 может воплощаться, основываясь на различных разработках, таких как процессор с сокращенным набором команд (RISC), процессор со сложным набором системных команд (CISC) и т.д. Ускоритель 240 «высокоуровневого управление передачей данных» (ВУКПД) обрабатывает пакетные данные в одном протоколе для восстановления или формирования пакетов в другом протоколе, как описано более подробно ниже. Входной/выходной модули 242 интерфейса обеспечивают сопряжение с внешним устройством 108 (например, компьютером).

В одном из вариантов осуществления, показанном на фиг.2, системная шина 228 соединяет различные процессоры в пределах терминала 110x доступа. Системная шина 228 может воплощаться как расширенная системная шина (ASB), расширенная периферийная шина (APB) или некоторая другая шинная разработка. Некоторые из процессоров могут воплощаться в пределах специализированной интегральной схемы (СпИС, ASIC). Например, СпИС 220 может включать в себя процессоры 222-254 на фиг.2.

Как показано на фиг.1, терминал доступа может поддерживать протоколы IP, PPP, RLP и HDR для связи с точкой доступа. Каждый протокол конкретно определяет формат для блока передачи данных этого протокола, который является «пакетом» для RLP и «кадром» для PPP. Каждый кадр PPP обычно формируется с помощью инкапсуляции пакета PPP с заголовком и/или завершителем.

Фиг.3A - диаграмма, иллюстрирующая формат 310 кадра, основанного на PPP ВУКПД подобной структуре кадра, описанной в Интернет-стандарте RFC 1662, озаглавленном «PPP in HDLC-like Framing», который представлен для справки. Формат кадра включает в себя поле 312 флажка, поле 314 адреса, поле 316 управления, поле 318 протокола, поле 320 информации (данных), поле 322 заполнения и поле 324 контрольной суммы кадра (КСК). Поле 312 флажка указывает начало или конец пакета PPP и имеет значение «0х7e». Поле 324 КСК включает в себя 16-разрядное или 32-разрядное значение, сгенерированное на основании данных в полях 314-322. Это значение КСК используется для определения, был ли пакет PPP принят правильно или с ошибкой. Все другие поля определены в указанном выше стандарте RFC 1662.

Пакет PPP является основным модулем данных, передаваемым с верхнего уровня на уровень PPP, и является полезной информацией кадра PPP. Данные пакета PPP подвергают процедуре «формирования кадров» для получения кадра PPP, который является в таком случае полезной информацией нижнего уровня (например, уровня RLP). Пакет RLP является полезной информацией уровня RLP, и он может включать в себя один или множество неполных и/или полных кадров PPP, причем каждый кадр PPP содержит один пакет PPP, который является полезной информацией кадра PPP.

Фиг.3B - диаграмма, иллюстрирующая зависимость между последовательностью 330 пакетов RLP и последовательностью 340 кадров PPP. Каждый пакет RLP обычно определяется так, чтобы он имел определенную длину, например, как определено по воплощаемому стандарту CDMA, которая может быть 10 мс или 20 мс. Для заданной скорости передачи данных каждый пакет RLP включает в себя определенное количество битов. Напротив, кадры PPP могут иметь переменную длину. Следовательно, границы пакетов RLP и кадров PPP не определяются с помощью конкретной зависимости. Пакет RLP может включать в себя один кадр PPP, множество кадров PPP или только часть кадра PPP. Начало каждого пакета RLP может быть выровнено по системному времени, а начало каждого кадра PPP может определяться с помощью байта флажка (который обозначен как «F» на фиг.3B и имеет значение «0х7e»).

Как правило, данные для одного протокола должны обрабатываться для обеспечения правильно отформатированных данных для другого протокола. Например, «расформирование кадра» может выполняться для данных беспроводной передачи, принятых в терминале доступа от точки доступа. В этом случае в терминале доступа пакеты RLP принимаются от физического уровня и должны подвергаться процедуре расформирования кадров для восстановления данных пакета PPP в пакетах RLP. Данные пакета PPP с расформированными кадрами затем обеспечивают к более высокому уровню. Наоборот, формирование кадра может выполняться для беспроводной передачи данных от терминала доступа к точке доступа. В этом случае в терминале доступа данные пакета PPP принимают от более высокого уровня и подвергают процедуре формирования кадров для формирования пакетов PPP с сформированными кадрами, которые затем обеспечивают в пакетах RLP к физическому уровню. Операции расформирования и формирования кадров описаны более подробно ниже.

Обычно программное обеспечение используется для формирования кадров и расформирования кадров данных пакета PPP. Для выполнения операции расформирования кадров для восстановления данных пакета PPP из пакетов RLP один или более пакетов RLP могут сначала сохранять в буфере RLP. Программное обеспечение затем извлекает каждый байт из буфера RLP, обрабатывает байт по мере необходимости, проверяет значение КСК (например, значение CRC) для каждого пакета PPP и сохраняет данные пакета PPP с расформированными кадрами в другом буфере. Этот процесс расформирования кадров обычно требует довольно большого количества вычислительной мощности и дополнительной памяти. Операция формирования кадров для обработки данных пакета RLP для формирования пакетов PPP также требует вычислительной мощности и памяти.

В одном из аспектов обеспечивают ускоритель ВУКПД для ускорения процессов расформирования и формирования кадров. В частности специализированный аппаратный блок расформирования кадров ВУКПД обеспечивают для расформирования кадров пакетов RLP для восстановления данных пакета PPP, и специализированный аппаратный блок формирования кадров ВУКПД обеспечивают для формирования кадров пакетов PPP в кадры PPP согласно документу RFC 1662.

Фиг.4 - структурная схема ускорителя ВУКПД 240x, который может использоваться для выполнения формирования кадров и расформирования кадров для пакетов PPP. Ускоритель ВУКПД 240x - один из вариантов осуществления ускорителя ВУКПД 240 на фиг.2. Ускоритель ВУКПД 240x соединен с основным контроллером 230 (например, через системную шину 228), который может управлять различными операциями ускорителя ВУКПД 240x. В одном из вариантов осуществления, показанном на фиг.4, ускоритель ВУКПД 240x включает в себя блок 410 расформирования кадров, блок 420 формирования кадров, генераторы КСК 416 и 426 и модули 418 и 428 интерфейса выходного буфера.

Блок 410 расформирования кадров принимает и расформировывает кадры пакетов PPP в пакете RLP и обеспечивает данные пакета PPP с расформированными кадрами к выходному буферу 232a блока расформирования кадров. Блок 410 расформирования кадров включает в себя модуль 412 контроля состояния, который управляет операцией расформирования кадров, и логический модуль 414 расформирования кадров, который выполняет фактическое расформирование кадра (например, удаляет байты флажка и управляющие байты в принятых пакетах PPP и проверяет значение КСК для каждого пакета PPP). Соответственно, блок 420 формирования кадров принимает и формирует кадры данных пакета PPP в пакет RLP и обеспечивает созданные пакеты PPP к выходному буферу 232b блока формирования кадров. Блок 420 формирования кадров включает в себя модуль 422 контроля состояния, который управляет операцией формирования кадров, и логическим модулем 424 формирования кадров, который выполняет фактическое формирование кадра (например, вставляет байты флажка и управляющие байты, генерирует и вставляет значение КСК для каждого созданного пакета PPP). Модули 412 и 422 контроля состояния могут воплощаться как два отдельных конечных автомата (КА, FSM) или как один объединенный КА.

Генераторы КСК 416 и 426 используются для генерирования значения КСК для операций расформирования и формирования кадров, соответственно (или один генератор КСК может совместно использоваться и блоком формирования кадров, и блоком расформирования кадров). Для операции расформирования кадров значение КСК может использоваться для определения, прошел ли пакет PPP проверку на ошибку. Для операции формирования кадров значение КСК добавляют в конце каждого пакета PPP. Генераторы КСК 416 и 426 могут воплощать схемы CRC или некоторого другого кодирования с обнаружением ошибок, и они описаны более подробно ниже.

Выходные буферы 232a и 232b блока расформирования кадров и блока формирования кадров используются для хранения выходной информации блока 410 расформирования кадров и блока 420 формирования кадров, соответственно. Выходные буферы 232a и 232b могут воплощаться, как часть памяти 232 на фиг.2. Модули 418 и 428 интерфейса выходного буфера используются для считывания данных из выходных буферов 232a и 232b блока расформирования кадров и блока формирования кадров, соответственно. Каждый из модулей 418 и 428 интерфейса может быть предназначен для поддержания схемы доступа, посредством чего одна операция чтения может выполняться для обращения ко всему пакету PPP или всему содержимому выходных буферов блока расформирования кадров и блока формирования кадров.

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

Ускоритель ВУКПД 240x может использоваться для осуществления различных стандартов, таких как указанный выше стандарт RFC 1662. Высокоуровневое управление передачей данных также описано в документе международной организации по стандартизации/международной электротехнической комиссии 3309:1991 (E), озаглавленном «Information Technology - Telecommunications and information exchange between systems - High-level data link control (HDLC) procedures - Frame Structure», международная организация по стандартизации, четвертое издание 1991-06-01, который представлен для справки.

Расформирование кадров ВУКПД

Для операции расформирования кадров с помощью блока расформирования кадров обеспечивают пакет RLP, который может включать в себя неполный пакет PPP, один полный пакет PPP или множество полных/неполных пакетов PPP. Каждый полный пакет PPP включает в себя поля флажок, адрес, управление, протокол, информация, заполнение и КСК, как показано на фиг.3A. Блок расформирования кадров затем выполняет следующий набор заданий для расформирования кадров пакетов PPP в пакете RLP:

Удаляет байты флажка («0х7e»).

Удаляет каждый управляющий байт («0х7d»), с которым столкнулись в пакете RLP, и восстанавливает последующий байт, который следует за управляющим байтом, выполняя операцию «исключающее ИЛИ» данного байта с «0х20».

Проверяет КСК для каждого полного пакета PPP.

Выполняет выравнивание байтов при сохранении данных пакета PPP с расформированными кадрами в выходном буфере блока расформирования кадров.

Сохраняет данные пакета PPP с расформированными кадрами для пакета RLP в выходном буфере блока расформирования кадров (например, используя формат памяти, описанный ниже).

Как описано в указанном выше стандарте RFC 1662, каждый пакет PPP маркирован с каждой стороны с помощью байта флажка, который удаляют с помощью блока расформирования кадров. Во время формирования кадров некоторые байты в данных, которые подвергаются операции формирования кадров, возможно, были подвергнуты операции «формирования управляющей последовательности» с помощью (1) вставки управляющего байта перед каждым таким байтом и (2) инвертирования 5-ого бита такого байта, выполняя операцию «исключающее ИЛИ» данного байта с «0х20». Конкретные байты, которые будут подвергаться операции формирования управляющей последовательности, определяют с помощью таблицы символов асинхронного управления (ТСАУ, ACCM). Во время расформирования кадров выполняют обратные операции для «преобразования из управляющей последовательности» этих байтов. Задачи расформирования кадров описаны более подробно ниже.

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

Блок расформирования кадров принимает пакет RLP для расформирования кадров, который может включать в себя неполный пакет PPP или один или более полный и/или неполный пакеты PPP, причем каждый полный пакет PPP содержит поля 312-324, показанные на фиг.3A. Блок расформирования кадров удаляет байт флажка в поле 312 и управляющие байты и выполняет другую обработку. Блок расформирования кадров затем обеспечивает передачу каждого пакета PPP с расформированными кадрами, состоящего из полей 314-322, к выходному буферу блока расформирования кадров.

Фиг.5A - диаграмма конкретного варианта осуществления формата памяти для выходного буфера 232a блока расформирования кадров. В одном из вариантов осуществления передача слова заголовка обеспечивается в выходном буфере блока расформирования кадров для каждого полного или неполного пакета PPP, подвергнутого операции расформирования кадров и сохраненного в выходном буфере. В частности, передача 512a слова заголовка обеспечивается для первого пакета PPP, подвергнутого операции расформирования кадров, и передача 512b слова заголовка обеспечивается для каждого последующего пакета PPP, подвергнутого операции расформирования кадров. Так как пакет RLP может включать в себя один или множество полных и/или неполных пакетов PPP, один или множество заголовков могут обеспечиваться и сохраняться в выходном буфере.

Каждое слово заголовка включает в себя информацию, используемую более высоким уровнем (например, программным обеспечением, выполняемым на основном контроллере 230) для обработки данных в выходном буфере блока расформирования кадров. В одном из вариантов осуществления каждое слово заголовка включает в себя три поля - бит FCS_pass («A») 514a, бит PPP_end («B») 514b и поле PPP_length (в байтах) («C») 514c. Бит FCS_pass указывает, прошел ли пакет PPP проверку кадра, который является допустимым, только если был принят полный пакет PPP. Бит PPP_end указывает, включает ли в себя текущий выходной буфер блока расформирования кадров полный пакет PPP. Этот бит установлен в ноль («0») для указания, что пакет PPP будет продолжаться в следующем выходном буфере блока расформирования кадров. Поле PPP_length указывает длину (в байтах) пакета PPP, который включает в себя выходной буфер блока расформирования кадров.

Как показано на фиг.5A, после каждого слова заголовка следуют данные пакета PPP, подвергнутого операции расформирования кадров, которые могут иметь любую длину, которая указана в поле PPP_length. Так как один или более пакетов PPP могут быть подвергнуты операции расформирования кадров и сохранены в выходном буфере блока расформирования кадров для данного пакета RLP, размер буфера устанавливают таким, чтобы он был способен обрабатывать сценарий самого плохого случая, когда один пакет RLP включает в себя много коротких пакетов PPP.

Фиг.5B - диаграмма, графически иллюстрирующая выравнивание байтов и зависимость между буфером RLP и выходным буфером блока расформирования кадров для операции расформирования пакета. В этом примере два пакета RLP должны подвергаться операции расформирования кадров последовательно. Первый пакет RLP сохраняют в буфере RLP с начальным смещением два, как обозначено стрелкой. Это начальное смещение может обеспечиваться с помощью более высокого уровня. В этом примере один длинный пакет PPP охватывает множество пакетов RLP.

Для выполнения операции расформирования кадров первый пакет RLP (RLP1) первоначально передают или записывают в блок расформирования кадров. Пакет RLP может не полностью заполнять буфер RLP, и, возможно, не был записан в буфер RLP, начиная с расположения первого байта или заканчивая в расположении последнего байта. В примере, показанном на фиг.5B, первое слово для RLP1 в буфере RLP является неполным словом, составленным только из двух байтов, «01» и «02». Это неполное слово может передаваться к блоку расформирования кадров один байт за один раз, используя передачу байтов. После того, как граница слова была достигнута, целые слова могут передаваться в блок расформирования кадров одно слово за один раз, используя передачу слов, которая быстрее, чем передача байтов. В частности операция записи одной пачки может выполняться для передачи множества слов к блоку расформирования кадров (снова, одно слово за один раз). В одном из вариантов осуществления слово включает в себя четыре байта, но другие значения длины слова могут также использоваться, и они входят в объем заявленного изобретения. Последние три байта RLP1 также передают к блоку расформирования кадров, используя передачу байтов. В одном из вариантов осуществления только допустимые байты в буфере RLP передают к блоку расформирования кадров.

Первый пакет RLP подвергается операции расформирования кадров с помощью блока расформирования кадров и сохраняется в выходном буфере блока расформирования кадров. Как показано на фиг.5B, для RLP1 выходной буфер блока расформирования кадров включает в себя слово заголовка 512x для пакета PPP в RLP1, затем данные для пакета PPP, который подвергся операции расформирования кадров. В этом примере, так как пакет PPP продолжается в следующем пакете RLP, последний байт («05») в RLP1 не сохраняют в текущем выходном буфере, но вместо этого сохраняют в следующем выходном буфере. Таким образом байты в выходном буфере блока расформирования кадров выравнивают по границе слова, до возможной степени, что может затем упростить поиск и обработку данных, хранящихся в выходном буфере.

Затем второй пакет RLP (RLP2) передают к блоку расформирования кадров подобным образом и обрабатывают. Снова передача байтов может использоваться для передачи первого слова для RLP2 (которое включает в себя только байт «06»). Передача слов может затем выполняться для последующих целых слов. И наконец, передача байтов может выполняться для последнего слова, состоящего только из одного байта «07».

Второй пакет RLP подвергается операции расформирования кадров и сохраняется в выходном буфере блока расформирования кадров. Для RLP2 выходной буфер блока расформирования кадров включает в себя слово заголовка 512y для пакета PPP в RLP2, затем данные пакета PPP, который подвергся операции расформирования кадров. Первое информационное слово в выходном буфере включает в себя байт «05», перенесенный из предыдущего пакета RLP, который расположен в начале информационного слова. В этом примере, поскольку пакет PPP заканчивается в этом пакете RLP, последнее неполное слово, заканчивающееся байтом «07», записывается в выходной буфер блока расформирования кадров.

Формат памяти для выходного буфера блока расформирования кадров, показанный на фиг.5A и 5B, выравнивает байты по границе слова (до возможной степени). Это, следовательно, освобождает более высокий уровень (например, основной контроллер) от необходимости выполнять операцию выравнивания байтов для пакетов PPP, которые подверглись операции расформирования кадров, хранящихся в выходном буфере блока расформирования кадров. Хотя выравнивание байтов может выполняться с помощью блока расформирования кадров как одна из задач в операции расформирования кадров, другие разработки блока расформирования кадров могут пропускать эту задачу выравнивания байтов, и это также входит в объем заявленного изобретения.

В одном из вариантов осуществления после передачи всех допустимых байтов в пакете RLP к блоку расформирования кадров команду dwrite_done выдают в блок расформирования кадров (например, с помощью основного контроллера). Блок расформирования кадров затем модифицирует регистр deframer_length для указания количества пакетов PPP, которые подверглись операции расформирования кадров из предыдущего пакета RLP. Чтение пачки может затем выполняться для извлечения пакетов PPP, которые подверглись операции расформирования кадров, из выходного буфера блока расформирования кадров для только что обработанного пакета RLP, и передача следующего пакета RLP может одновременно обеспечиваться к блоку расформирования кадров для расформирования кадров.

Фиг.6A - структурная схема блока 410x расформирования кадров, который является конкретным вариантом осуществления блока 410 расформирования кадров на фиг.4. Блок 410x расформирования кадров включает в себя модуль 412 контроля состояния и логический модуль 414 расформирования кадров, который включает в себя входной модуль 610 интерфейса, модуль 620 обнаружения, модуль 630 преобразования и выходной модуль 640 интерфейса. Краткое описание этих модулей представлено ниже, а более подробное описание обеспечено впоследствии.

Входной модуль 610 интерфейса принимает данные пакета RLP, который включает в себя пакеты PPP, для расформирования кадров (например, через системную шину 228) и управляющие сигналы (например, от основного контроллера 230) и обеспечивает передачу принятых данных, один байт за один раз, к модулю 620 обнаружения. Модуль 620 обнаружения обнаруживает определенные типы байтов в принятых данных (например, байты флажка, управляющие байты и недопустимые байты) и обеспечивает сигналы для указания, что эти байты обнаружены.

Модуль 630 преобразования выполняет обработку для расформирования кадров пакетов PPP, которая включает в себя удаление байтов флажка и управляющих байтов и проверку каждого полного пакета PPP, используя значение КСК. Модуль 630 преобразования дополнительно обеспечивает слово заголовка для каждого полного или неполного пакета PPP, сохраненного в выходном буфере блока расформирования кадров, и для конца выходного буфера. Первоначально, когда первый раз слово заголовка записывают для начала выходного буфера блока расформирования кадров или для каждого нового пакета PPP, поле PPP_length не известно. Генератор адреса в пределах выходного модуля 640 интерфейса затем будет указывать обратно на расположение заголовка после того, как каждый пакет будет подвергнут операции расформирования кадров, и информация FCS_pass, PPP_end и PPP_length для заголовка этого обработанного пакета PPP затем модифицируется. Таким образом, заголовок модифицируют в конце операции расформирования кадров для каждого пакета PPP всякий раз, когда блок расформирования кадров сталкивается с байтом флажка. Также всякий раз, когда блок расформирования кадров сталкивается с командой dwrite_done, он переходит назад и модифицирует заголовок. Регистр deframer_length используется для того, чтобы сообщить основному контроллеру, сколько допустимых заголовков включает в себя выходной буфер блока расформирования кадров после того, как один пакет RLP был подвергнут операции расформирования кадров.

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

Фиг.7 - последовательность операций варианта осуществления процесса 700 для выполнения расформирования кадров. Процесс 700 включает в себя этапы передачи (или записи) пакета RLP в блок расформирования кадров (этап 710) и этапы обработки пакета RLP с помощью блока расформирования кадров (этап 720). Эти этапы могут выполняться одновременно с помощью различных аппаратных схем в пределах блока расформирования кадров. Блок расформирования кадров может сбрасываться в начале каждого нового сеанса передачи данных (этап 708).

Для расформирования кадров пакета RLP сначала может выполняться передача байтов для записи головных байтов первого неполного слова в буфере RLP в блок расформирования кадров, пока граница слова буфера RLP не будет достигнута (этап 712). Затем могут выполняться запись слова или запись пачки для записи целого слова в буфере RLP в блок расформирования кадров (этап 714). Затем может выполняться передача байтов для записи хвостовых байтов последнего неполного слова в блок расформирования кадров, если пакет RLP не заканчивается на границе слова (этап 716). Когда все данные для пакета RLP в буфере RLP переданы в блок расформирования кадров, можно послать указание dwrite_done (например, установив сигнал dwrite_en на фиг.6A) в блок расформирования кадров (этап 718). Затем может выполняться операция записи для следующего пакета RLP с начала буфера RLP.

Блок расформирования кадров проверяет и обрабатывает каждый байт, принятый от передачи байта и слова (этап 722). Блок расформирования кадров готовит слово заголовка, если байт флажка принят (а также для начала выходного буфера блока расформирования кадров), удаляет управляющие байты и увеличивает счетчик для количества допустимых байтов. Блок расформирования кадров также проверяет значение КСК для каждого полного пакета PPP (этап 724). При завершении обработки пакета RLP блок расформирования кадров сохраняет в регистре deframer_length значение, указывающее количество пакетов PPP, подвергшихся операции расформирования кадров, сохраненных в выходном буфере блока расформирования кадров для только что обработанного пакета RLP (этап 726). Блок расформирования кадров может также установить регистр deframer_error, если какой-либо байт пакета PPP записывается по адресу вне предела выходного буфера блока расформирования кадров (этап 728).

Фиг.8 - диаграмма состояний варианта осуществления состояний для блока 410х расформирования кадров. В одном из вариантов осуществления в любой заданный момент времени блок расформирования кадров может быть в одном из четырех возможных состояний - состоянии 810 простоя (ожидания), состоянии 812 обработки, состоянии 814 управляющей последовательности и состоянии 816 заголовка.

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

Состояние 812 обработки. Блок расформирования кадров находится в состоянии обработки, когда запись выполняется для записи пакета RLP в блок расформирования кадров. Пакет RLP может включать в себя один или более полных и/или неполных пакетов PPP, которые будут подвергнуты операции расформирования кадров. Блок расформирования кадров обрабатывает байты, когда они принимаются, и непрерывно записывает данные, которые подвергнуты операции расформирования кадров, в выходной буфер блока расформирования кадров, когда каждое слово из допустимых байтов доступно (например, каждый четвертый допустимый байт).

Состояние 814 управляющей последовательности. Блок расформирования кадров входит в состояние управляющей последовательности всякий раз, когда управляющий байт («0x7d») обнаружен для принятого байта. В этом состоянии управляющий байт удаляют и с последующим байтом выполняют операцию преобразования из управляющей последовательности с помощью операции «исключающее ИЛИ» этого байта с «0x20». Блок расформирования кадров затем возвращается к состоянию обработки.

Состояние 816 заголовка. Блок расформирования кадров входит в состояние заголовка, если (1) байт флажка («0x7e») принят, или (2) полный пакет RLP был записан в блок расформирования кадров (что может быть указано с помощью приема индикатора dwrite_done на сигнале dwrite_en). Как отмечено выше, последний текущий заголовок в выходном буфере блока расформирования кадров модифицируют, когда или принят байт флажка, или принята команда dwrite_done. Блок расформирования кадров устанавливает поля FCS_pass, PPP_end и PPP_length слова заголовка для соответствующего пакета PPP и записывает слово заголовка в выходной буфер блока расформирования кадров. В одном из вариантов осуществления блок расформирования кадров находится в состоянии заголовка в течение одного тактового цикла для записи модифицированного слова заголовка. Если обнаружен байт флажка, то блок расформирования кадров возвращается в состояние обработки. Иначе, если был принят индикатор dwrite_done, то блок расформирования кадров возвращается в состояние простоя.

Как видно на фиг.6A, в пределах входного модуля 610 интерфейса пакет RLP записывают одно слово за один раз в мультиплексор 613. (До) четырех байтов для каждого принятого слова затем обеспечивают один байт за один раз из мультиплексора 613 для последующей обработки. Выбранный байт (обозначен как curr_byte) определяется с помощью управляющего сигнала dbyte_sel от счетчика 615 и фиксируется с помощью регистра-защелки 614. Счетчик 615 загружают начальным значением в начале каждого пакета RLP (т.е. когда запись пакета RLP инициализируют командой dwrite_start). Начальным значением является значение start_offset для первого допустимого байта в буфере RLP (которое равно 2 для RLP1 на фиг.5B). Счетчик 615 после этого увеличивают на единицу для каждого тактового цикла так, чтобы каждый байт принятого слова был в конечном счете выбран, но временно приостанавливают, когда обнаружен байт флажка, чтобы слово заголовка для обработанного пакета PPP могло быть записано в выходной буфер блока расформирования кадров. Это достигается с помощью управления допустимой входной информацией счетчика 615 с помощью сигнала dwen0x. Логический модуль 616 обеспечивает сигнал dwait для указания, когда запись в блок расформирования кадров должна быть приостановлена (например, когда обрабатывается байт флажка).

Сигнал dwrite_en устанавливают, когда пакет RLP записывают в блок расформирования кадров. Сигнал dwrite_en фиксируют с помощью двух последовательно соединенных регистров-защелок 617a и 617b для обеспечения задержанных версий сигнала, dwen1 и dwen2, которые используются модулем 620 обнаружения и модулем 630 преобразования, соответственно. С сигналами dwrite_en и dwen1 также выполняют операцию «логическое И» с инвертированным сигналом PPP_done с помощью логических элементов «И» 618a и 618b, соответственно, для формирования сигналов dwen0x и dwen1x, которые используются для разрешения работы различных элементов схемы в пределах блока 410x расформирования кадров.

В пределах модуля 620 обнаружения каждый байт из входного модуля 610 интерфейса (обозначенный как prev_byte) фиксируют с помощью регистра-защелки 622 и также обеспечивают к логическим модулям 624a, 624b и 624c сравнения. Логические модули 624a, 624b и 624c сравнения выполняют необходимые сравнения для определения, является ли принятый байт байтом флажка, управляющим байтом или недопустимым байтом, соответственно, и для обеспечения сигналов, которые устанавливают всякий раз, когда эти байты обнаружены. Недопустимые байты могут определяться в соответствии с конкретным протоколом или воплощением, которое поддерживается. Например, значение данных «0x7e» можно посылать, как «0x7e 0x7e», в этом случае второе значение «0x7e» считают недопустимым. Сигналы от модулей 624a, 624b и 624c фиксируют регистры-защелки 626a, 626b и 626c для обеспечения сигналов PPP_done, PPP_esc, и invalid_byte, соответственно. Логический элемент 627 затем выполняет операцию «логическое И» этих трех сигналов с сигналом dwen2 для обеспечения сигнала dvalid_byte, который устанавливают всякий раз, когда обнаружено, что принятый байт является допустимым (т.е. не флажок, не управляющий байт и не недопустимый байт).

В пределах модуля 630 преобразования с каждым байтом, принятым от модуля 620 обнаружения (обозначен как new_byte), выполняют операцию «исключающее ИЛИ» с помощью логической схемы 631 «исключающее ИЛИ» для преобразования байта из управляющей последовательности. Принятый байт и обработанный с помощью операции «исключающее ИЛИ» байт обеспечивают на мультиплексор 632, который обеспечивает передачу обработанного с помощью операции «исключающее ИЛИ» байта, если блок расформирования кадров находится в состоянии управляющей последовательности, и принятого байта иначе. В состояние управляющей последовательности входят при обнаружении управляющего байта (т.е. когда установлен PPP_esc), что обозначено с помощью установки сигнала escape_state. Выходной байт от мультиплексора 632 (обозначен как buf_byte) обеспечивают к трем последовательно соединенным регистрам-защелкам 633a, 633b и 633c, которые используются для выполнения преобразования байта в слово. Генератор 416 КСК также принимает выходную информацию от мультиплексора 632 и генерирует значение КСК, используемое для проверки каждого полного пакета PPP. Генератор 634 заголовка генерирует слово заголовка для каждого нового пакета PPP, принятого блоком расформирования кадров, и для начала выходного буфера блока расформирования кадров.

Фиг.6B - схема варианта осуществления выходного модуля 640 интерфейса. В пределах модуля 640 интерфейса буфера слово заголовка от генератора 634 заголовка и слово, подвергшееся операции расформирования кадров, из регистров-защелок 633a - 633c обеспечивают на мультиплексор 642, который обеспечивает передачу слова заголовка, если блок расформирования кадров находится в состоянии заголовка, а иначе слово, подвергшееся операции расформирования кадров. Состояние заголовка устанавливается при обнаружении байта флажка (т.е. при сбросе PPP_done) и обозначено с помощью установки сигнала header_state. Выходное слово из мультиплексора 642 затем записывают в выходной буфер блока расформирования кадров.

Модуль 640 интерфейса буфера также включает в себя генератор 650 адреса и генератор 660 управляющих сигналов, используемые, соответственно, для генерации адреса и управляющих сигналов для записи данных пакета PPP, подвергшихся операции расформирования кадров, в выходной буфер блока расформирования кадров. Генератор 650 адреса включает в себя счетчик 652, который считает количество допустимых байтов, записанных в выходной буфер блока расформирования кадров. Счетчик 652 загружают значением load_value всякий раз, когда устанавливают сигнал load_en. В одном из вариантов осуществления счетчик 652 загружают значением load_value «0x04», если сигнал load_en устанавливают из-за сброса блока расформирования кадров или нового пакета RLP, записываемого в блок расформирования кадров (как указано с помощью установки сигнала dwrite_start), и загружают значением load_value header_addr+«0x04», если сигнал load_en устанавливают из-за того, что блок расформирования кадров находится в состоянии заголовка. При загрузке счетчика 652 значением load_value «0x04» первое слово в выходном буфере блока расформирования кадров резервируется для слова заголовка. В конце каждого пакета PPP, который подвергся операции расформирования кадров, который указан с помощью получения байта флажка, блок расформирования кадров вынужден записать последнее полное или неполное слово пакета PPP в выходной буфер.

Генератор 654 адреса заголовка генерирует адрес для следующего слова заголовка (header_addr). Сигнал header_addr для следующего пакета PPP генерируют на основании значения счетчика из счетчика 652, так чтобы слово заголовка было сохранено в следующем слове в выходном буфере блока расформирования кадров. Генератор 654 обеспечивает передачу сигнала header_addr к одному входу мультиплексора 656 и значение load_value к счетчику 652. Выход счетчика 652 (за исключением двух младших битов) также используется как адрес данных, подвергшихся операции расформирования кадров, для выходного буфера блока расформирования кадров, и его передачу обеспечивают к другому входу мультиплексора 656. Мультиплексор 656 затем обеспечивает адрес заголовка, если слово заголовка записывают в выходной буфер блока расформирования кадров, и адрес данных, если записывают слово, подвергшееся операции расформирования кадров. Генератор 660 управляющих сигналов обеспечивает сигнал dobuffer_we, который устанавливают всякий раз, когда (1) полное слово должно быть записано в выходной буфер блока расформирования кадров (например, каждый четвертый допустимый байт), (2) неполное слово должно быть записано в конце пакета PPP, когда установлен сигнал PPP_done, и есть незаписанные остаточные байты, или (3) должно быть записано слово заголовка.

Фиг.9A и 9B являются временными диаграммами для некоторых событий для операции расформирования кадров, выполняемой в соответствии с конкретной разработкой блока расформирования кадров, показанного на фиг.6A и 6B. Пакет RLP записывают в блок расформирования кадров словами, по одному начиная с момента времени T0, причем каждое слово включает в себя до четырех байтов. Для каждого принятого слова управляющий сигнал dbyte_sel последовательно выбирает каждый байт слова для обработки.

Фиг.9A показывает обработку байта флажка. После обнаружения байта флажка («0x7e») в момент времени T1, который указывает начало нового пакета PPP, устанавливают сигнал dwait (т.е. устанавливают высокий уровень логического сигнала) для временной приостановки записи данных RLP в блок расформирования кадров. В момент времени T2 устанавливают сигнал PPP_done для указания завершения обработки предшествующего пакета PPP, сбрасывают сигнал dvalid_byte для указания получения недопустимого байта (т.е. байта флажка), устанавливают сигнал dobuffer_we для вызова записи последнего неполного слова предшествующего пакета PPP в выходной буфер блока расформирования кадров и генерируют слово заголовка для следующего пакета PPP. В момент времени T3 блок расформирования кадров входит в состояние заголовка, и слово заголовка записывают в выходной буфер блока расформирования кадров. В момент времени T4 блок расформирования кадров возвращается в состояние обработки, начинается обработка следующего пакета PPP, и устанавливают сигнал dvalid_byte и сбрасывают сигнал dobuffer_we.

Фиг.9B показывает обработку управляющего байта. При выборе последнего байта принятого слова (например, dbyte_sel=«11») в момент времени T1 сбрасывают сигнал dwait для того, чтобы позволить основному контроллеру продолжить работу. В момент времени T2 устанавливают сигнал PPP_esc для указания обнаружения управляющего байта и сбрасывают сигнал dvalid_byte для указания получения недопустимого байта (т.е. управляющего байта), который должен быть удален. В момент времени T3 блок расформирования кадров входит в состояние управляющей последовательности со следующим байтом («0x56»), расположенным после управляющего байта, выполняют операцию «исключающее ИЛИ» с «0x20» для обеспечения байта, который преобразован из управляющей последовательности («0x76»), и устанавливают сигнал dvalid_byte. В момент времени T4 блок расформирования кадров возвращается в состояние обработки, обработка пакета PPP продолжается, и устанавливают сигнал dobuffer_we для записи четырех допустимых байтов: «0x12», «0x34», «0x76» и «0x78» в выходной буфер блока расформирования кадров.

Формирование кадров ВУКПД

Для операции формирования кадров блок формирования кадров обеспечивают данными, которые будут обработаны с помощью операции формирования кадров, он выполняет задачи формирования кадров и обеспечивает созданные пакеты PPP. Каждый созданный пакет PPP включает в себя поля флажок, адрес, управление, протокол, информация, заполнение и КСК, как показано на фиг.3A. В одном из вариантов осуществления блок формирования кадров выполняет следующий набор задач для каждого создаваемого пакета PPP.

Добавляет байт флажка в начале создаваемого пакета PPP.

Заменяет каждый байт «0x7e» двумя байтами «0x7d0x5e».

Заменяет каждый байт «0x7d» двумя байтами «0x7d0x5d».

Заменяет каждый байт с «0x00» по «0x1f» управляющим байтом («0x7d»), за которым следует этот байт, если ТСАУ сконфигурирована таким образом.

Генерирует и добавляет значение КСК для пакета PPP.

Сохраняет созданный пакет PPP в выходном буфере блока формирования кадров.

В одном из вариантов осуществления данные, которые будут обработаны с помощью операции формирования кадров (например, данные пакета RLP), обеспечивают в блок формирования кадров при операции записи. Блок формирования кадров затем обеспечивает созданные пакеты PPP, добавляя байт флажка и формируя управляющую последовательность из некоторых специальных символов, основываясь на определенной ТСАУ.

Как показано на фиг.3A, блок формирования кадров принимает данные пакета PPP, состоящие из полей 314-322. Блок формирования кадров добавляет байт флажка для поля 312 и значение КСК для поля 324 и обеспечивает созданный пакет PPP, составленный из полей 312-324, который сохраняют в выходном буфере блока формирования кадров.

Фиг.10 - структурная схема блока 420x формирования кадров, который является конкретным вариантом осуществления блока 420 формирования кадров на фиг.4. Блок 420x формирования кадров включает в себя модуль 422 контроля состояния и логический модуль 424 формирования кадров, который включает в себя входной модуль 1010 интерфейса, модуль 1020 декодирования, модуль 1030 преобразования и выходной модуль 1040 интерфейса. Краткое описание этих модулей представлено ниже, а более подробное описание обеспечено впоследствии.

Входной модуль 1010 интерфейса принимает данные, которые будут обработаны с помощью операции формирования кадров, и управляющие сигналы и обеспечивает принятые данные по одному байту к модулю 1020 декодирования. Модуль 1020 декодирования определяет специальные байты в принятых данных и обеспечивает указание, когда каждый такой байт обнаружен. Модуль 1030 преобразования выполняет обработку формирования кадров в принятых данных, что включает в себя вставку флажка и управляющих байтов, преобразование в управляющую последовательность специальных байтов и генерацию и вставку значения КСК для каждого созданного пакета PPP. Выходной модуль 1040 интерфейса принимает созданные данные пакета PPP и обеспечивает эти данные в выходной буфер блока формирования кадров. Выходной модуль 1040 интерфейса дополнительно включает в себя генератор адреса и генератор управляющих сигналов, используемые, соответственно, для генерации адреса и управляющих сигналов для записи данных в выходной буфер.

Фиг.11 - последовательность операций варианта осуществления процесса 1100 для выполнения формирования кадров. Процесс 1100 включает в себя этапы для передачи данных, которые будут обработаны с помощью операции формирования кадров, к блоку формирования кадров (этап 1110) и этапы обработки данных для обеспечения созданных пакетов PPP (этап 1120). В одном из вариантов осуществления данные, которые будут обработаны с помощью операции формирования кадров, обеспечивают из буфера RLP (например, от передачи, принятой через беспроводной канал связи). Эти этапы могут выполняться одновременно различными аппаратными схемами в пределах блока формирования кадров. Блок формирования кадров может сбрасываться в начале каждого нового сеанса передачи данных (этап 1108).

Для каждой операции формирования кадров сначала может выполняться передача байта для записи головных байтов первого неполного слова, которое будет создано, из буфера RLP в блок формирования кадров, пока не будет достигнута граница слова (этап 1112). Запись слова может затем выполняться для записи целых слов в буфере RLP в блоке формирования кадров (этап 1114). Передача байта может затем выполняться для записи хвостовых байтов последнего неполного слова в блок формирования кадров, если RLP данные не заканчиваются на границе слова (этап 1116). Для каждого пакета PPP команды для вставки байта флажка и значения КСК также обеспечивают в блок формирования кадров (этап 1118). Когда все содержимое буфера RLP записано в блок формирования кадров, индикатор fwrite_done может обеспечиваться в блок формирования кадров так, чтобы операция записи для формирования кадров следующего пакета RLP могла выполняться, начиная с начала буфера RLP (этап 1120).

Блок формирования кадров проверяет и обрабатывает каждый байт, принятый от передач байта и слова (этап 1122). Блок формирования кадров вставляет байт флажка всякий раз, когда указано, вставляет управляющие байты по мере необходимости и «преобразует в управляющую последовательность» каждый специальный байт («например, с «0x00» по «0x1f), что может определяться служебным битом ТСАУ. Блок формирования кадров также генерирует значение КСК для каждого созданного пакета PPP и добавляет значение КСК, когда указано (этап 1124). При завершении обработки принятых данных, что обозначено индикатором fwrite_done, блок формирования кадров сохраняет в регистре framer_length значение, указывающее количество созданных пакетов PPP, сохраненных в выходном буфере блока формирования кадров (этап 1126). Блок формирования кадров может также устанавливать регистр framer_error, если какой-либо созданный с помощью операции формирования кадров байт пакета PPP записывают по адресу вне предела выходного буфера блока формирования кадров (этап 1128).

Фиг.12 - диаграмма состояний варианта осуществления состояний для блока формирования кадров 420x. В одном из вариантов осуществления в любой заданный момент блок формирования кадров может находиться в одном из шести возможных состояний: состоянии 1210 простоя, состоянии 1212 обработки, состоянии 1214 флажка, состоянии 1216 управляющей последовательности, состоянии 1218 КСК и состоянии 1220 КСК-управляющей последовательности.

Состояние 1210 простоя. Блок формирования кадров первоначально начинает работу в состоянии простоя, будучи сброшенным. Блок формирования кадров находится также в этом состоянии до инициализации записи для записи данных, которые будут подвергнуты операции формирования кадров, в блок формирования кадров, и после того, как запись закончена. Блок формирования кадров не записывает в выходной буфер блока формирования кадров, когда он находится в этом состоянии, но данные, уже сохраненные в выходном буфере, могут считываться.

Состояние 1212 обработки. Блок формирования кадров находится в состоянии обработки, когда выполняется запись для записи данных в блок формирования кадров. Блок формирования кадров обрабатывает каждый принятый байт и непрерывно записывает созданные данные в выходной буфер блока формирования кадров, когда каждое слово доступно. Если для принятого байта нужно создать управляющую последовательность, то блок формирования кадров обеспечивает управляющий байт («0x7d»), за которым следует байт, который преобразовывают в управляющую последовательность (т.е. принятый байт с инвертированным 5 разрядом).

Состояние 1214 флажка. Блок формирования кадров входит в состояние флажка, когда принята команда flag_cmd. В этом состоянии блок формирования кадров обеспечивает байт флажка для следующего пакета PPP. Блок формирования кадров находится в этом состоянии в течение одного цикла для обеспечения байта флажка и после этого возвращается в состояние обработки.

Состояние 1216 управляющей последовательности. Блок формирования кадров входит в состояние управляющей последовательности всякий раз, когда принимают байт, который необходимо обработать с помощью операции формирования управляющей последовательности. Для каждого такого байта блок формирования кадров обеспечивает управляющий байт («0x7d»), в то время когда он все еще находится в состоянии обработки, и затем входит в состояние управляющей последовательности для обеспечения управляющего байта. Блок формирования кадров остается в состоянии управляющей последовательности в течение одного цикла для обработки управляющего байта и после этого возвращается в состояние обработки.

Состояние 1218 КСК. Блок формирования кадров входит в состояние КСК, когда принята команда FCS_cmd. В этом состоянии блок формирования кадров добавляет значение КСК в конец пакета PPP и записывает это значение в выходной буфер блока формирования кадров. Если значение КСК включает в себя какой-либо байт, из которого нужно сформировать управляющую последовательность, то блок формирования кадров входит в состояние КСК-управляющей последовательности для обработки такого байта.

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

Как показано на фиг.10, в пределах входного модуля 1010 интерфейса данные, которые будут обработаны для формирования кадров, записывают по одному слову за один раз на мультиплексор 1013. Так как один «обычный» байт может обрабатываться в одном тактовом цикле, а специальный байт, из которого нужно сформировать управляющую последовательность, обрабатывают в двух циклах, слово (до четырех байтов) поддерживается на входе мультиплексора от одного до восьми циклов, в зависимости от количества байтов в слове и значения каждого байта. До четырех байтов для каждого принятого слова затем обеспечивают по одному байту за один раз от мультиплексора 1013 для последующей обработки. Выбранный байт (обозначенный как curr_byte) определяют с помощью управляющего сигнала fbyte_sel от счетчика 1015 и фиксируют с помощью регистра-защелки 1014. Счетчик 1015 считает количество байтов, принятых и обработанных блоком формирования кадров, и его временно приостанавливают (в течение одного тактового цикла), если из принятого байта нужно сформировать управляющую последовательность. Счетчик 1015 может воплощаться подобно счетчику 615 на фиг.6A. Логический модуль 1016 обеспечивает сигнал fwait для указания, когда запись в блок формирования кадров должна быть приостановлена (например, всякий раз, когда принимают байт, из которого нужно сформировать управляющую последовательность).

Сигнал fwrite_en устанавливают, когда данные, которые будут обработаны с помощью операции формирования кадров, записывают в блок формирования кадров. Сигнал fwrite_en фиксируют с помощью двух последовательно соединенных регистров-защелок 1017a и 1017b для обеспечения задержанных версий сигналов fwen1 и fwen2, которые используются модулем 1020 обнаружения и модулем 1030 преобразования, соответственно.

В пределах модуля 1020 обнаружения каждый байт из входного модуля 1010 интерфейса (обозначенный как prev_byte) фиксируют с помощью регистра-защелки 1022 и также обеспечивают к одному входу мультиплексора 1023. Мультиплексор 1023 также принимает байт КСК на другом входе и обеспечивает байт КСК, если блок формирования кадров находится в состоянии КСК, а иначе - байт данных. Модуль 1024 ТСАУ обеспечивает управляющие сигналы, указывающие, должен ли определенный байт быть преобразован в управляющую последовательность. Логическая схема 1025 обнаружения затем определяет, должен ли принятый байт быть преобразован в управляющую последовательность, основываясь на управляющих сигналах от модуля 1024 ТСАУ, и обеспечивает сигнал FCS_escape, указывающий на это условие. Этот сигнал фиксируют с помощью регистра-защелки 1026 для обеспечения сигнала escape.

Модуль 422 контроля состояний принимает fwen1 сигнал от входного модуля 1010 интерфейса, сигналы FCS_escape и escape от модуля 1020 обнаружения и сигналы FCS_cmd, flag_cmd и done_cmd (например, от основного контроллера 230). Модуль 422 контроля состояний затем обеспечивает сигнал fvalid_byte, который устанавливают всякий раз, когда принятый байт является допустимым, сигнал FCS_state, который указывает, находится ли блок формирования кадров в состоянии КСК, и управляющий сигнал out_sel, используемый для обеспечения передачи надлежащего выходного байта.

В пределах модуля 1030 преобразования с каждым байтом, принятым из модуля 1020 обнаружения (обозначен как new_byte), выполняют операцию «исключающее ИЛИ» с помощью логического элемента 1031а «исключающее ИЛИ» для преобразования из управляющей последовательности для данного байта. Точно так же с каждым байтом КСК от генератора 426 КСК выполняют операцию «исключающее ИЛИ» с помощью логического элемента 1031b «исключающее ИЛИ» для преобразования из управляющей последовательности для данного байта. Принятый байт данных, обработанные с помощью операции «исключающее ИЛИ» данные и байты КСК, соответственно, от логических элементов 1031a и 1031b «исключающее ИЛИ», байт КСК, управляющий байт («0x7d») и байт флажка («0x7e») обеспечивают к шести входам мультиплексора 1032. Мультиплексор 1032 затем обеспечивает один из входных байтов, как выходной байт (обозначен как buf_byte), основываясь на управляющем сигнале out_sel от модуля 422 контроля состояний. Сигнал buf_byte обеспечивают к трем соединенным последовательно регистрам-защелкам 1033a, 1033b и 1033c, которые используются для выполнения преобразования байта в слово. Генератор 426 КСК также принимает выходную информацию от мультиплексора 1032 и генерирует значение КСК, которое будет добавляться к каждому созданному пакету PPP.

В пределах выходного модуля 1040 интерфейса слово от регистров-защелок 1033a-1033c обеспечивают как fobuffer_data в выходной буфер блока формирования кадров. Модуль 1040 интерфейса буфера также включает в себя счетчик 1050 и генератор 1060 управляющих сигналов, используемые, соответственно, для обеспечения адреса и управляющих сигналов для записи созданных пакетов PPP в выходной буфер блока формирования кадров. Счетчик 1050 считает количество байтов, записанных в выходной буфер блока формирования кадров. В одном из вариантов осуществления счетчик 1050 сбрасывают при запуске системы после приема программной команды или в начале операции записи в пустой выходной буфер. Генератор 1060 сигналов обеспечивает сигнал fobuffer_we, который устанавливают всякий раз, когда слово должно записываться в выходной буфер блока формирования кадров, что обычно происходит каждый четвертый байт, но может быть через более короткий промежуток времени для последнего неполного слова, которое должно записываться для созданного пакета PPP.

Фиг.13 - временная диаграмма для некоторых событий для операции формирования кадров, выполняемой в соответствии с конкретной разработкой блока формирования кадров, показанного на фиг.10. Данные, которые будут обрабатываться с помощью операции формирования кадров, записывают в блок формирования кадров по одному слову, начиная с момента Т0 времени, причем каждое слово включает в себя до четырех байтов. Для каждого принятого слова управляющий сигнал fbyte_sel последовательно выбирает каждый байт слова для обработки.

При обнаружении байта («0x7e»), для которого нужно выполнить формирование управляющей последовательности, в момент Т1 времени устанавливают сигнал fwait для временной приостановки записи данных в блок формирования кадров. В момент Т2 времени устанавливают сигнал escape для указания на обнаружение байта, для которого нужно выполнить формирование управляющей последовательности, и управляющий байт («0x7d») обеспечивают, как выходной байт. В момент Т3 времени блок формирования кадров входит в состояние управляющей последовательности, для принятого байта («0x7e») выполняют формирование управляющей последовательности с помощью операции «исключающее ИЛИ» данного байта со значением («0x20»), и байт, для которого выполнили формирование управляющей последовательности («0x5e»), обеспечивают как выходной байт. В момент Т4 времени блок формирования кадров возвращается в состояние обработки, и обработка принятых байтов продолжается.

Фиг.14 - схема варианта осуществления модуля 418x интерфейса выходного буфера, который может использоваться для считывания данных из выходного буфера блока расформирования кадров или блока формирования кадров. Модуль 418x интерфейса буфера может использоваться для каждого из модулей 418 и 428 интерфейса буфера на фиг.4, но он описан ниже для модуля 418 интерфейса буфера. В пределах модуля 418x интерфейса регистр 1412 используется для временного хранения слова, извлеченного из выходного буфера блока расформирования кадров, и счетчик 1414 используется для генерации адреса для буфера. Логический элемент «ИЛИ» принимает сигнал rd_buffer и сигнал done_cmd (например, от основного контроллера 230) и обеспечивает сигнал (dobuf_oe), разрешающий вывод информации из буфера. Сигнал dobuf_oe устанавливают, если (1) чтение с выхода буфера разрешено, что указано установкой сигнала rd_buffer, или (2) запись данных, которые будут обработаны с помощью формирования кадров, закончена, что указано установкой сигнала done_cmd. Сигнал dobuf_oe также используется для разрешения приращения счетчика 1414.

Генераторы контрольной суммы кадра

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

Фиг.15A - схема варианта осуществления поразрядного генератора 1500 CRC, который воплощает полином x16+x12+x5+x, описанный протоколе RFC 1662. Генератор 1500 CRC включает в себя 16 1-разрядных регистров-защелок 1512a-1512p, соединенных последовательно. Сумматор 1514a по модулю 2 вставляют между регистрами-защелками 1512e и 1512f, сумматор 1514b по модулю 2 вставляют между регистрами-защелками 1512l и 1512m и сумматор 1514c по модулю 2 соединяют с выходом регистра-защелки 1512p.Сумматор 1514c принимает данные пакета PPP один бит за один раз во время генерации CRC и нулевой бит, когда значение CRC считывается из регистров-защелок 1512. Переключатели 1516a-1516c находятся в верхнем положении во время генерации CRC и в нижнем положении - при считывании значения CRC.

Фиг.15B - схема варианта осуществления побайтового генератора 1520 CRC, который воплощает полином x16+x12+x5+x. Генератор 1520 CRC может принимать байт данных по каждому тактовому импульсу и модифицировать свое внутреннее состояние в течение одного тактового импульса. Генератор 1520 CRC включает в себя восемь 1-разрядных генераторов 1522a-1522h CRC и 8-разрядный регистр-защелку 1524, соединенный последовательно по кольцу. Каждый 1-разрядный генератор 1522 CRC принимает 16-разрядную выходную информацию от предыдущего генератора (или регистра-защелки) и соответствующий бит байта данных, модифицирует свое состояние, основываясь на принятых данных, и обеспечивает 16-разрядную выходную информацию на следующий генератор (или регистр-защелку). После того, как все байты данных для пакета PPP были закодированы с помощью CRC, значение CRC для пакета может считываться из регистра-защелки 1524.

Фиг.15C - схема варианта осуществления 1-разрядного генератора 1522x CRC, который может использоваться для каждого из 1-разрядных генераторов 1522a-1522h CRC на фиг.15B. Генератор 1522x CRC принимает 16-разрядную входную информацию от предыдущей стадии и один бит байта данных, который будет закодирован с помощью CRC. Эти 15 младших битов 16-разрядной входной информации умножают на два и обеспечивают к одному входу мультиплексора 1532 и на 16-разрядный сумматор 1534. Сумматор 1534 складывает принятое 16-разрядное значение с «0b000 1000000100001» (или «0x1021» для полинома х16+x12+x5+x) и обеспечивает результат к другому входу мультиплексора 1532. Старшие значащие биты 16-разрядной входной информации складывают по модулю 2 с битом данных с помощью сумматора 1536 по модулю 2 и результирующий бит cx обеспечивают на мультиплексор 1532, и он используется для выбора одного из входов. Выход мультиплексора 1532 содержит 16-разрядную выходную информацию 1-разрядного генератора 1522x CRC.

Фиг.15D - схема варианта осуществления 1-разрядного генератора 1522y CRC, который может также использоваться для каждого из 1-разрядных генераторов 1522a-1522h CRC на фиг.15B. Генератор 1522y CRC также принимает 16-разрядную входную информацию от предыдущей стадии и один бита байта данных для кодирования с помощью CRC. Старшие разряды 16-разрядной входной информации складывают по модулю 2 с информационным разрядом с помощью сумматора 1546 по модулю 2 и результирующий бит cx обеспечивают к логическому элементу 1544 «И». Логический элемент 1544 «И» также принимает «0x1021» и обеспечивает «0x1021», если бит cx является логической единицей, и нуль, если бит cx является логическим нулем. 15 младших битов 16-разрядной входной информации умножают на два и складывают с 16-разрядной выходной информацией от логического элемента 1544 «И» с помощью 16-разрядного сумматора 1542, и 16-разрядная выходная информация от сумматора 1542 содержит 16-разрядную выходную информацию 1-разрядного генератора 1522y CRC.

Побайтовая разработка CRC, которая показана на фиг.15B-15D, может изменяться для выполнения мультиразрядной генерации CRC для любого количества разрядов. В общем случае количество битов, которые будут передаваться между 1-разрядными генераторами 1522 CRC, определяется порядком воплощаемого полинома, и количество стадий определяется количеством битов, которые кодируются с помощью CRC одновременно. Мультиразрядный генератор CRC может преимущественно использоваться в приложениях высокоскоростной передачи данных, таких, которые предназначены для беспроводных систем связи и сетей передачи данных.

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

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

Описанный ускоритель ВУКПД может преимущественно использоваться для беспроводных устройств связи (например, терминалов, мобильных телефонов, телефонных трубок и т.д.). Ускоритель ВУКПД может также использоваться в других устройствах связи и электронных модулях (например, в сетевом оборудовании).

Описанный ускоритель ВУКПД может воплощаться с помощью различных средств. Например, ускоритель ВУКПД (т.е. блок расформирования кадров, блок формирования кадров или оба) может воплощаться в пределах одной или более специализированных интегральных схем (СпИС), процессоров цифровой обработки сигналов (ПЦОС, DSPD), цифровых устройств обработки сигналов (ЦУОС, DSPD), программируемых логических устройств (ПЛУ, PLD), программируемых пользователем вентильных матриц (ППВМ, FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров, других электронных модулей, предназначенных для выполнения описанных функций или их комбинации.

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

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

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

2. Блок расформирования кадров по п.1, в котором данные, которые будут подвергаться операции расформирования кадров, соответствуют формату кадра, определенному с помощью стандарта RFC 1662.

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

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

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

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

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

8. Блок расформирования кадров по п.1, в котором модуль преобразования предназначен для проверки каждого пакета, который подвергся операции расформирования кадров, основываясь на значении контрольной суммы кадра (КСК), связанной с данным пакетом.

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

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

11. Блок расформирования кадров по п.1, в котором блок расформирования кадров предназначен для обеспечения данных, которые подверглись операции расформирования кадров, в словах из множества байтов.

12. Блок расформирования кадров по п.1, в котором блок расформирования кадров предназначен для расформирования кадров блока данных для каждой операции расформирования кадров.

13. Блок расформирования кадров по п.12, в котором блок данных соответствует пакету протокола радиолинии (RLP).

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

15. Блок расформирования кадров по п.12, в котором модуль преобразования также предназначен для обеспечения первого заголовка для начала блока данных.

16. Блок расформирования кадров по п.1, в котором блок расформирования кадров находится в одном из множества рабочих состояний в любой заданный момент, и в котором рабочие состояния включают в себя состояние незанятости, которое указывает, что расформирование кадра не выполняется, и состояние обработки, которое указывает, что расформирование кадра выполняется.

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

18. Блок расформирования кадров для беспроводного устройства связи, содержащий входной модуль интерфейса, который предназначен для приема данных пакета RLP, которые будут подвергаться операции расформирования кадров, одно слово за один раз, и для каждого принятого слова для обеспечения одного байта данных за один раз для последующей обработки, и в котором пакет RLP включает в себя один или более полных или неполных пакетов РРР, имеющих формат, определенный стандартом RFC 1662, модуль обнаружения, который предназначен для оценки каждого байта данных из входного модуля интерфейса для обнаружения байтов флажка, управляющих байтов и недопустимых байтов, модуль преобразования, который предназначен для обработки каждого байта данных из модуля интерфейса с помощью удаления байтов флажка и управляющих байтов, преобразования из управляющей последовательности байта данных, расположенного после каждого управляющего байта, обеспечения слова заголовка для каждого байта флажка и проверки каждого пакета, который подвергся операции расформирования кадров, основываясь на значении контрольной суммы кадра (КСК), связанной с данным пакетом, и выходной модуль интерфейса, который предназначен для обеспечения передачи данных, которые подверглись операции расформирования кадров.

19. Интегральная схема для беспроводного устройства связи, содержащая входной модуль интерфейса, который предназначен для приема пакета RLP данных, которые будут подвергнуты операции расформирования кадров, одно слово за один раз, и для каждого принятого слова для обеспечения одного байта данных за один раз для последующей обработки, причем пакет RLP включает в себя один или более полных или неполных пакетов РРР, имеющих формат, определенный с помощью стандарта RFC 1662, модуль обнаружения, который предназначен для оценки каждого байта данных из входного модуля интерфейса для обнаружения байтов флажка, управляющих байтов и недопустимых байтов, модуль преобразования, который предназначен для обработки каждого байта данных из модуля интерфейса с помощью удаления байтов флажка и управляющих байтов, преобразования из управляющей последовательности байта данных, расположенного после каждого управляющего байта, обеспечения слова заголовка для каждого байта флажка и проверки каждого пакета, который подвергся операции расформирования кадров, основываясь на значении контрольной суммы кадра (КСК), связанной с данным пакетом, и выходной модуль интерфейса, который предназначен для обеспечения передачи данных, которые подверглись операции расформирования кадров.

20. Способ расформирования кадров данных пакета RLP, содержащих один или больше пакетов РРР, имеющих формат, определенный с помощью стандарта RFC 1662, данный способ содержит этапы, на которых принимают пакет RLP, одно слово за один раз, оценивают каждый байт каждого принятого слова для обнаружения байтов флажка и управляющих байтов, обеспечивают сигналы состояния, которые указывают обнаружение каждого байта флажка и управляющего байта, удаляют байты флажка и управляющие байты, преобразуют из управляющей последовательности байт данных, расположенный после каждого обнаруженного управляющего байта, проверяют каждый пакет РРР, основываясь на значении КСК, связанной с данным пакетом, и обеспечивают передачу данных, которые подверглись операции расформирования кадров.

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

22. Блок формирования кадров по п.21, в котором созданные данные соответствуют формату кадра, определенному стандартом RFC 1662.

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

24. Блок формирования кадров по п.21, в котором модуль преобразования также предназначен для вставки байта флажка в ответ на прием первой команды.

25. Блок формирования кадров по п.21, в котором модуль преобразования также предназначен для вставки значения контрольной суммы кадра (КСК) в ответ на прием второй команды.

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

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

28. Блок формирования кадров по п.27, в котором выходной модуль интерфейса также предназначен для выполнения выравнивания байтов созданных данных.

29. Блок формирования кадров по п.27, в котором выходной модуль интерфейса предназначен для обеспечения передачи созданных данных в словах из множества байтов.

30. Блок формирования кадров по п.21, в котором блок формирования кадров предназначен для формирования кадров для блока данных для каждой операции формирования кадров.

31. Блок формирования кадров по п.30, в котором блок данных соответствует пакету протокола радиолинии (RLP).

32. Блок формирования кадров по п.21, в котором блок формирования кадров находится в одном из множества рабочих состояний в любой заданный момент времени, и в котором рабочие состояния включают в себя состояние незанятости, указывающее на то, что формирование кадра не выполняется, и состояние обработки, указывающее на выполнение формирования кадров.

33. Блок формирования кадров по п.32, в котором рабочие состояния также включают в себя состояние управляющей последовательности, указывающее на обработку управляющего байта.

34. Блок формирования кадров по п.32, в котором рабочие состояния также включают в себя состояние флажка, указывающее на вставку байта флажка для создаваемого пакета, и состояние КСК, указывающее на вставку значения КСК для создаваемого пакета.

35. Блок формирования кадров по п.21, который также содержит первый регистр, предназначенный для хранения значения, которое указывает количество созданных пакетов для блока данных.

36. Блок формирования кадров для беспроводного устройства связи, содержащий входной модуль интерфейса, который предназначен для приема пакета данных, которые будут подвергнуты операции формирования кадров, одно слово за один раз, и для каждого принятого слова для обеспечения одного байта данных за один раз для последующей обработки, модуль обнаружения, который предназначен для оценки каждого байта данных из входного модуля интерфейса для обнаружения байтов с определенными значениями, модуль преобразования, который предназначен для обработки каждого байта данных из модуля интерфейса для формирования кадров для принятых данных, вставляя управляющий байт для каждого байта данных, для которого будет сформирована управляющая последовательность, и преобразуя в управляющую последовательность байт данных, вставляя байт флажка в ответ на прием первой команды и вставляя КСК значения в ответ на прием второй команды, и выходной модуль интерфейса, который предназначен для обеспечения передачи созданных данных, которые имеют формат, определяемый с помощью стандарта RFC 1662.

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

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

39. Ускоритель высокоуровневого управления передачей данных (ВУКПД) для беспроводного устройства связи, содержащий блок расформирования кадров, который предназначен для приема первого блока данных, которые будут подвергаться операции расформирования кадров, обнаружения байтов данных с первым набором определенных значений, расформирования кадров первого блока данных в соответствии с конкретной схемой расформирования кадров и обеспечения передачи данных, которые подверглись операции расформирования кадров, для первого блока данных, и блок формирования кадров, который предназначен для приема второго блока данных, которые будут подвергаться операции формирования кадров, обнаружения для байтов данных второго набора определенных значений, формирования кадров второго блока данных в соответствии с конкретной схемой формирования кадров, и обеспечение передачи созданных данных для второго блока данных.

40. Ускоритель ВУКПД по п.39, в котором и данные, которые будут подвергаться операции расформирования кадров в первом блоке данных, и данные, которые подверглись операции формирования кадров во втором блоке данных, имеют формат, определяемый стандартом RFC 1662.

41. Ускоритель ВУКПД по п.39, который также содержит по меньшей мере один генератор контрольной суммы кадра (КСК), который предназначен для генерации значения КСК для каждого пакета, который будет подвергаться операции расформирования или формирования кадров.

42. Ускоритель ВУКПД по п.39, который также содержит первый буфер, предназначенный для хранения данных, которые подверглись операции расформирования кадров, из блока расформирования кадров.

43. Ускоритель ВУКПД по п.42, который также содержит второй буфер, предназначенный для хранения данных, которые подверглись операции формирования кадров, из блока формирования кадров.

44. Ускоритель ВУКПД по п.43, который также содержит по меньшей мере один модуль интерфейса буфера, предназначенный для извлечения данных, которые подверглись операции расформирования кадров, хранящихся в первом буфере, или данных, которые подверглись операции формирования кадров, хранящиеся во втором буфере.

45. Ускоритель ВУКПД по п.39, в котором каждый из блока расформирования кадров и блока формирования кадров работает в одном из множества возможных рабочих состояний.

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

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

48. Мультиразрядный генератор CRC, содержащий регистр-защелку, предназначенный для хранения N-битного значения, и множество (М) 1-разрядных генераторов CRC, соединенных последовательно и по кольцу с регистром-защелкой, причем каждый 1-разрядный генератор CRC предназначен для приема N-битного значения из предыдущего 1-разрядного генератора CRC или из регистра-защелки и соответствующего входного информационного разряда, масштабирования N-1 младших значащих битов принятого N-битного значения в два раза, выборочного сложения масштабированного значения с предопределенным значением, соответствующим воплощаемому полиному, и обеспечения выборочно сложенного результата, как N-битную выходную информацию для 1-разрядного генератора CRC.

49. Мультиразрядный генератор CRC по п.48, в котором М равно восьми.

50. Мультиразрядный генератор CRC по п.48, в котором N равно 16.

51. Мультиразрядный генератор CRC по п.48, в котором каждый 1-разрядный генератор CRC включает в себя первый сумматор, предназначенный для сложения старших значащих разрядов принятого N-битного значения с входным информационным разрядом для обеспечения управляющего значения, второй сумматор, предназначенный для сложения масштабированного значения с предопределенным значением для обеспечения суммированного значения, и мультиплексор, предназначенный для обеспечения масштабированного значения, если управляющее значение является нулем, и суммированного значения, если управляющее значение является единицей, причем выход мультиплексора является N-битным выходом для 1-разрядного генератора CRC.

52. Мультиразрядный генератор CRC по п.48, в котором каждый 1-разрядный генератор CRC включает в себя первый сумматор, предназначенный для сложения старших значащих битов принятого N-битного значения с входным информационным разрядом для обеспечения управляющего значения, логическую схему, предназначенную для обеспечения передачи предопределенного значения, если управляющее значение равно единице, и нуля, если управляющее значение равно нулю, и второй сумматор, предназначенный для сложения масштабированного значения с выходным значением от логической схемы для обеспечения N-битного выходного значения для 1-разрядного генератора CRC.



 

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

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

Изобретение относится к области передачи пакетных данных в системе связи. .

Изобретение относится к системе передачи данных, в частности к способу и системе для генерирования IP-адреса терминала доступа на основе Протокола Интернет версии 6 (IPv6).

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

Изобретение относится к системам предоставления потребителю доступа к мультемидийному продуктам через соединения цифровой абонентской линии (ЦАЛ, xDSL). .

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

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

Изобретение относится к системам связи. .

Изобретение относится к системе подвижной связи и, в частности, к способу перераспределения обслуживающей подсистемы радиосети (ОПРС). .

Изобретение относится к системе и способу аутентификации для коммутируемого соединения с сетью через терминал

Изобретение относится к беспроводным локальным сетям (БЛС)

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

Изобретение относится к устройствам обработки информации

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

Изобретение относится к сетевым коммуникациям и, в частности, к встраиваемым в приложения средствам управления для осуществления обмена по сетям
Наверх