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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.