Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интерфейсы.docx
Скачиваний:
2
Добавлен:
30.08.2019
Размер:
1.73 Mб
Скачать

Вопрос 21

Транзакционный уровень (TransactionLayer) устройства отвечает за создание трафика исходящих пакетов TLP в одном из включенных в систему устройств и прием входящего трафика от одного из нескольких в общем случае (когда устройством является переключатель) других устройств.

Для описания задач уровня транзакций, транзакционный уровень устройства удобно представить состоящим из совокупности буферов виртуального канала (VC-буферов), предназначенных для хранения исходящих пакетов TLP, которые ожидают передачи, а также хранения входящих пакетов TLP, принимаемых из канала.

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

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

В-третьих, транзакционный уровень поддерживает протокол качества обслуживания.

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

Уровень транзакций принимает необходимую информацию от программного уровня (ядра системы) и генерирует выходные пакеты TLP запроса и завершения, которые он хранит в буферах виртуального канала.

Главные компоненты транзакционного пакета TLP - это поле заголовка, поле данных (собственно передаваемая в пакете информация) и дополнительное ECRC поле контроля

Протокол управления потоком данных

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

Управление потоком данных автоматически осуществляется на аппаратном уровне и не заметно для программного обеспечения. Программное обеспечение привлекается только для того, чтобы управлять подключением дополнительных буферов сверх VC0 буфера. Буфер VC0 (один на каждое из четырех адресных пространств) включается автоматически после включения канала, таким образом, позволяя TLP трафику проходить через структуру сразу же после подключения устройств к каналу.

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

Для понимания процесса управления потоком данных обратимся к Рис.. Приемное устройство периодически передает пакеты DLLP, называемые пакетами управления потоком данных (FCxDLLP), передающему устройству. Пакеты FCxDLLP содержат информацию для управления потоком данных. Эта информация оповещает передающее устройство относительно доступного буферного пространства в VC буфере приемного устройства. Передающее устройство учитывает эту информацию и будет передавать транзакционные пакеты TLP только если знает, что приемное устройство имеет достаточное буферное пространство для приема пакетов TLP.