Аппаратный ускоритель вукпд
Иллюстрации
Показать всеИзобретение относится к технике связи и может использоваться для формирования и расформирования кадров. Технический результат состоит в восстановлении данных пакета. Ускоритель высокоуровневого управления передачей данных (ВУКПД) включает в себя блок расформирования кадров и блок формирования кадров для ускорения соответственно процессов расформирования кадров и формирования кадров для пакетов РРР. Блок расформирования пакета включает в себя входной модуль интерфейса, модуль обнаружения, модуль преобразования и выходной модуль интерфейса. Входной модуль интерфейса принимает пакет данных, который будет подвергаться операции расформирования кадров. Модуль обнаружения оценивает каждый байт данных для обнаружения специальных байтов. Модуль преобразования расформировывает кадры принятых данных, удаляя байты флажка и управляющие байты, «преобразовывает из управляющей последовательности» байт данных, расположенный после каждого управляющего байта, обеспечивает слово заголовка для каждого байта флажка и проверяет каждый пакет, который будет подвергаться операции расформирования кадров. 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, которые подверглись операции расформирования кадров, хранящихся в выходном буфере блока расформирования кадров. Хотя выравнивание байтов может выполняться с помощью блока расформирования кадров как одна из задач в операции расформирования кадров, другие разработки блока расформирования кадров могут пропускать эту зада