Технология асинхронного режима передачи. Основные принципы АТМ. Поддержка протокола ATM, страница 6

3.6.2. Буферные дескрипторы.

АТМ-контроллер работает как многоканальный протокол, сегментирование и реассемблирование данных при приеме и передаче для каждого канале; может выполняться одновременно и независимо. Каждый канал имеет в памяти свои собственные буферы для передачи и приема данных. Организация таблиц буферов и буферных дескрипторов у контроллера МРС860SAR аналогична другим контроллерам семейства МРС860. Для управления буферами каждый канал имеет две таблицы буферных дескрипторов (одна - для приема, дру­гая - для передачи). Общее число буферов канала зависит от параметров графика для этого канала, а размер каждого буфера определяется пользова­телем. Такая организация памяти позволяет проводить операции сегмента­ции (сборка пакета из маленьких ячеек) и реассемблирования (разбивка па­кета на ячейки) прямо в памяти и улучшает общее использование памяти.

Каждый канал имеет в АРС-памяти (или в ТСТ-таблице для передачи, или в RCT-таблице для приема) ячейки, которые являются его памятью параметров.

В АРС-таблице ячейки TBDBASE и RBDBASE содержат базовые адреса таб­лиц буферных дескрипторов всех каналов для передачи и приема, соответст­венно. В ячейках TBASE и RBASE хранится смещение относительно начала таблиц дескрипторов, которое показывает, где начинаются дескрипторы для конкретного канала. Таким образом, первый дескриптор передачи N канала будет находиться по адресу TDBASE+TBASE_N. Указатели в ячейках TBD_PTR и RBD_PTR отмечают, какой дескриптор обслуживается в данный момент времени, т. е. указывают на текущий активный BD. После оконча­ния обработки текущего буфера указатели TBD_PTR и RBD_PTR переме­щаются на следующий дескриптор в таблице BD. Если достигнут конец таб­лицы, то указатель перемещается на начало таблицы TBD_PTR:= TBASE и RBD_PTR:= RBASE. Дополнительные указатели TB_PTR и RB_PTR содер­жат адрес расположения в памяти данных следующей АТМ-ячейки.

3.6.2.1. Буферы AAL5.

Буферы могут располагаться или во внутренней памяти контроллера, или во внешней памяти. Каждый буфер может содержать или целое сообщение CPCS-PDU, или его часть. Указатели на эти буферы включаются в стан­дартный список буферных дескрипторов, но если они содержат части сооб­щения CPCS-PDU, то в списке BD дескрипторов они должны занимать со­седние позиции. Согласно требованиям спецификации ITU I.363 последний буфер сообщения автоматически заполняется передатчиком информацией из поля данных AAL5-ячейки. Размер двух соседних буферов для передачи должен быть не менее 48 байт, чтобы данные из передаваемой ячейки зани­мали не более двух буферов.

Длина буферов приема должна быть кратной 48 байтам. Коэффициент крат­ности задается в ячейке SMRBLR памяти параметров, таким образом, длина буфера равна SMRBLRx48 байт. При приеме буферы последовательно за­полняются данными из сети, за исключением последнего буфера сообще­ния, из которого удаляются символы заполнителя (AAL5 pads).

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

3.6.2.2. Буфер AAL0-ячеек.

При работе с AAL0-протоколом АТМ-контроллер принимает и передает ячейки, не обрабатывая их содержимое. После завершения обработки оче­редной ячейки контроллер переходит к следующему буферному дескриптору и генерирует запрос на прерывание, чтобы пользователь узнал об окончании обработки очередной ячейки.

В буфере AAL0-ячейка занимает 64 байта. Первые 4 байта - заголовок ячейки (без поля НЕС контрольной суммы, которое генерируется передат­чиком при передаче ячейки в сеть), далее 48 байт данных и 12 незанятых байт. Буфер данных может располагаться во внутренней или внешней памя­ти и должен иметь стартовый адрес, кратный 16.