Jump to content

Расширенный расширяемый интерфейс

Расширенный расширяемый интерфейс ( AXI ) — это протокол встроенной коммуникационной шины, являющийся частью спецификации усовершенствованной архитектуры шины микроконтроллера (AMBA). [1] [2] AXI был представлен в 2003 году со спецификацией AMBA3. В 2010 году новая версия AMBA, AMBA4, определила протоколы AXI4, AXI4-Lite и AXI4-Stream . AXI не требует лицензионных отчислений , а его спецификация доступна бесплатно на сайте ARM .

AMBA AXI определяет множество дополнительных сигналов , которые могут быть включены в зависимости от конкретных требований конструкции. [3] что делает AXI универсальной шиной для множества применений.

Хотя связь по шине AXI осуществляется между одним инициатором и одной целью, спецификация включает подробные описания и сигналы для включения межсоединений N:M, позволяющих расширить шину до топологий с несколькими инициаторами и целями. [4]

AMBA AXI4, AXI4-Lite и AXI4-Stream были приняты компанией Xilinx и многими ее партнерами в качестве основной коммуникационной шины в своих продуктах. [5] [6]

Идентификаторы потоков

[ редактировать ]

Идентификаторы потоков позволяют одному порту инициатора поддерживать несколько потоков, при этом каждый поток имеет упорядоченный доступ к адресному пространству AXI, однако каждый идентификатор потока, инициированный из одного порта инициатора, может завершиться не по порядку по отношению друг к другу. Например, в случае, когда один идентификатор потока блокируется медленным периферийным устройством, другой идентификатор потока может продолжаться независимо от порядка первого идентификатора потока. Другой пример: одному потоку на ЦП может быть назначен идентификатор потока для доступа к памяти конкретного порта инициатора, например, чтение адреса1, запись адреса1, чтение адреса1, и эта последовательность будет завершена по порядку, поскольку каждая транзакция имеет одинаковый идентификатор потока порта инициатора. Другой поток, работающий в ЦП, может иметь другой идентификатор потока порта инициатора, назначенный ему, и его доступ к памяти также будет в порядке, но может быть перемешан с транзакциями идентификаторов первого потока.

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

Шина AXI-Lite — это шина AXI, которая поддерживает только один поток идентификатора для каждого инициатора. Эта шина обычно используется для конечной точки, которой необходимо одновременно взаимодействовать только с одним устройством-инициатором, например, с простым периферийным устройством, таким как UART . Напротив, ЦП способен инициировать транзакции с несколькими периферийными устройствами и адресными пространствами одновременно и будет поддерживать более одного идентификатора потока на своих портах инициатора AXI и целевых портах AXI. Вот почему ЦП обычно поддерживает полную спецификацию шины AXI. Типичный пример переключателя AXI на передней стороне может включать в себя инициатор AXI с полной спецификацией, подключенный к инициатору ЦП, и несколько целевых объектов AXI-Lite, подключенных к переключателю AXI от различных периферийных устройств.

(Кроме того, шина AXI-Lite ограничена поддержкой только длины транзакции, равной одному слову данных на транзакцию.)

Рукопожатие

[ редактировать ]
Базовый механизм установления связи AMBA AXI протокола . В этом примере объект назначения ожидает высокого уровня VALID, чтобы подтвердить свой собственный READY.

AXI определяет базовый механизм установления связи , состоящий из xVALID и xREADY сигнал. [7] xVALID Сигнал подается источником, чтобы сообщить объекту-получателю, что полезная нагрузка на канале действительна и может быть прочитана, начиная с этого тактового цикла . Аналогичным образом, xREADY Сигнал подается принимающим объектом для уведомления о том, что он готов к приему данных.

Когда оба xVALID и xREADY сигналы имеют высокий уровень в одном и том же тактовом цикле , полезная нагрузка данных считается переданной, и источник может либо предоставить новую полезную нагрузку данных, сохраняя высокий уровень xVALIDили прекратить передачу, отменив утверждение xVALID. Индивидуальная передача данных, поэтому тактовый цикл, когда оба xVALID и xREADY высокие, называется «бить».

Для управления этими сигналами определены два основных правила:

  • Источник не должен ждать высокого xREADY утверждать xVALID.
  • Один раз xVALID утверждается, источник должен поддерживать это утверждение до тех пор, пока не произойдет рукопожатие.

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

В спецификации AXI пять каналов : описаны [8]

  • Чтение адресного канала (AR)
  • Чтение канала данных (R)
  • Канал записи адреса (AW)
  • Канал записи данных (W)
  • Канал ответа записи (B)

Помимо некоторых основных правил заказа, [9] каждый канал независим друг от друга и имеет свою пару xVALID/xREADY рукопожатия . сигналы [10]

AXI каналы чтения
AXI Каналы чтения адреса и чтения данных.
AXI каналы записи
AXI Каналы записи адреса, записи данных и записи ответа.
Сигналы каналов чтения и записи адреса
Описание сигнала Запись адреса канала Чтение адресного канала
Идентификатор адреса для идентификации нескольких потоков по одному каналу. AWID засуха
Адрес первого бита пакета АВАДДР АРАДДР
Количество бит внутри пакета ОЛЕН [номер 1] АРЛЕН [номер 1]
Размер каждого бита РАЗМЕР АРЗАЙЗ
Тип взрыва АВБЕРСТ АРБЕРСТ
Тип блокировки для обеспечения атомарных операций. АВЛОК [номер 1] АРЛОК [номер 1]
Тип памяти, как транзакция должна проходить через систему АВКЭШ АРКАШ
Тип защиты: привилегии , уровень безопасности и доступ к данным/инструкциям. АВПРОТ АРПРОТ
Качество обслуживания сделки АВКОС [номер 2] АРКИ [номер 2]
Идентификатор региона для доступа к нескольким логическим интерфейсам с одного физического. АРЕГИОН [номер 2] АРРЕГИОН [номер 2]
Пользовательские данные АВУЗЕР [номер 2] АРУСЕР [номер 2]
xVALID рукопожатия сигнал АВДЕЙСТВИТЕЛЬНО АРВАЛИД
xREADY рукопожатия сигнал УЖЕ УЖЕ
Сигналы каналов чтения и записи данных
Описание сигнала Канал записи данных Чтение канала данных
Идентификатор данных для идентификации нескольких потоков по одному каналу. WID [номер 3] ИЗБАВЛЯТЬ
Чтение/запись данных ВДАТА РДАТА
Прочитайте ответ, чтобы указать статус текущего сигнала RDATA. РЕСП
Строб байта, указывающий, какие байты сигнала WDATA действительны. ВСТРБ
Идентификатор последнего бита ПОСЛЕДНИЙ РЛАСТ
Пользовательские данные ВУСЕР [номер 2] РУССКИЙ [номер 2]
xVALID рукопожатия сигнал WVALID РВАЛИД
xREADY рукопожатия сигнал ВРЕДИ ГОТОВО
Сигналы канала Write Response
Описание сигнала Написать канал ответа
Запишите идентификатор ответа, чтобы идентифицировать несколько потоков по одному каналу. ДЕЛАТЬ СТАВКУ
Напишите ответ, чтобы указать статус пакета. БРЕСП
Пользовательские данные АВТОБУСЕР [номер 2]
xVALID рукопожатия сигнал БВАЛИД
xREADY рукопожатия сигнал ХЛЕБ

[11]

  1. ^ Перейти обратно: а б с д Различное поведение между AXI3 и AXI4
  2. ^ Перейти обратно: а б с д и ж г час я Доступно только с AXI4
  3. ^ Доступно только с AXI3.

всплески

[ редактировать ]
Пример пакетов FIXED, INCR и WRAP

AXI — пакетный протокол , [12] это означает, что для одного запроса может быть несколько передач данных (или тактов). Это делает его полезным в тех случаях, когда необходимо передать большой объем данных с определенного шаблона адресов или на него.В AXI пакеты могут быть трех типов, выбираемых сигналами ARBURST (для чтения) или AWBURST (для записи): [13]

  • ЗАФИКСИРОВАННЫЙ
  • ИНКР
  • СВОРАЧИВАТЬ

В ФИКСИРОВАННЫХ пакетах каждый такт внутри передачи имеет один и тот же адрес. Это полезно для повторного доступа к одной и той же ячейке памяти, например, при чтении или записи FIFO .

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

Пакеты WRAP аналогичны пакетам INCR, поскольку каждая передача имеет адрес, равный предыдущему, плюс размер передачи. Однако при использовании пакетов WRAP, если адрес текущего такта достигает «высшей границы адреса», он сбрасывается до «границы переноса»:

с

Транзакции

[ редактировать ]
Пример транзакции чтения AXI. Инициатор запрашивает 4 такта (АРЛЕН + 1 [14] ) по 4 байта каждый, начиная с адреса 0x0, с типом INCR. Цель возвращает 0x10 для адреса 0x0, 0x11 для адреса 0x4, 0x12 для адреса 0x8 и 0x13 для адреса 0xc, все со статусом OKAY. Здесь показаны только наиболее релевантные сигналы.

Чтобы начать транзакцию чтения, инициатор должен предоставить в канале адреса чтения:

  • начальный адрес на ARADDR
  • тип пакета FIXED, INCR или WRAP для ARBURST (если присутствует)
  • длина пакета на ARLEN (если присутствует).

Кроме того, другие вспомогательные сигналы, если они присутствуют, используются для определения более конкретных передач.

После обычного рукопожатия ARVALID/ARREADY цель должна предоставить по каналу данных чтения:

  • данные, соответствующие указанному адресу(ям) в RDATA
  • статус каждого такта на RRESP

плюс любые другие дополнительные сигналы.Каждый такт ответа цели выполняется с помощью рукопожатия RVALID/RREADY, и при последней передаче цель должна установить RLAST, чтобы сообщить, что без нового запроса на чтение больше тактов не будет.

Пример транзакции записи AXI. Инициатор совершает 4 удара (AWLEN + 1 [14] ) по 4 байта каждый, начиная с адреса 0x0, с типом INCR, записывая 0x10 для адреса 0x0, 0x11 для адреса 0x4, 0x12 для адреса 0x8 и 0x13 для адреса 0xc. Цель возвращает «OKAY» в качестве ответа на запись для всей транзакции. Здесь показаны только наиболее релевантные сигналы.

Чтобы начать операцию записи, инициатор должен предоставить как информацию об адресе, так и данные.

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

  • начальный адрес должен быть указан в AWADDR
  • тип пакета: FIXED, INCR или WRAP, на AWBURST (если присутствует)
  • длина пакета на AWLEN (если присутствует)

и, если присутствуют, все дополнительные сигналы.

Инициатор также должен предоставить данные, относящиеся к указанному адресу(ам) по каналу записи данных:

  • данные по WDATA
  • биты «строба» в WSTRB (если они есть), которые условно помечают отдельные байты WDATA как «действительные» или «недействительные».

Как и в пути чтения, в последнем слове данных инициатор должен установить WLAST.

После завершения обеих транзакций цель должна отправить обратно инициатору статус записи по каналу ответа на запись, вернув результат по сигналу BRESP.

AXI4-Lite — это подмножество протокола AXI4, обеспечивающее структуру , подобную регистру, с уменьшенными функциями и сложностью. [15] Заметные различия:

  • все пакеты состоят только из 1 доли
  • при любом доступе к данным используется полная ширина шины данных, которая может составлять 32 или 64 бита.

AXI4-Lite удаляет часть сигналов AXI4, но для остальных соответствует спецификации AXI4. Будучи подмножеством AXI4, транзакции AXI4-Lite полностью совместимы с устройствами AXI4, обеспечивая взаимодействие между инициаторами AXI4-Lite и целями AXI4 без дополнительной логики преобразования. [16]

Написать адрес канала Запись канала данных Написать канал ответа Чтение адресного канала Чтение канала данных
АВДЕЙСТВИТЕЛЬНО WVALID БВАЛИД АРВАЛИД РВАЛИД
УЖЕ ВРЕДИ ХЛЕБ УЖЕ ГОТОВО
АВАДДР ВДАТА БРЕСП АРАДДР РДАТА
АВПРОТ ВСТРБ АРПРОТ РЕСП

[17]

AXI4-Stream — это упрощенный и легкий протокол шины, разработанный специально для приложений высокоскоростной потоковой передачи данных. Он поддерживает только однонаправленный поток данных без необходимости адресации или сложного установления связи. Поток AXI аналогичен каналу записи данных AXI, но с некоторыми важными отличиями в организации данных:

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

Протокол AXI5 Stream обеспечивает сигнализацию пробуждения и защиту сигнала с использованием четности.

Один передатчик потока AXI может управлять несколькими потоками, которые могут чередоваться, но переупорядочение не допускается.

Сигнал Источник Ширина Описание
АКЛК Часы 1 ACLK — это глобальный тактовый сигнал. Все сигналы отбираются по нарастающему фронту ACLK.
ARESETn Перезагрузить 1 ARESETn — это сигнал глобального сброса.
ТВАЛС Передатчик 1 TVALID указывает, что передатчик осуществляет действительную передачу. Передача происходит, когда подтверждены как TVALID, так и TREADY.
ТРИДИ Получатель 1 TREADY указывает, что Получатель может принять перевод.
ТДАТА Передатчик TDATA_WIDTH TDATA — это основная полезная нагрузка, используемая для предоставления данных, передаваемых через интерфейс. TDATA_WIDTH должно быть целым числом байтов; рекомендуется его длина 8, 16, 32, 64, 128, 256, 512 или 1024 бита.
ТСТРБ Передатчик TDATA_WIDTH/8 TSTRB — это квалификатор байта, который указывает, обрабатывается ли содержимое связанного байта TDATA как байт данных или байт позиции.
ДЕРЖАТЬ Передатчик TDATA_WIDTH/8 TKEEP — это квалификатор байта, который указывает, обрабатывается ли содержимое связанного байта TDATA как часть потока данных.
ТЛАСТ Передатчик 1 TLAST указывает границу пакета.
ВРЕМЯ Передатчик TIME_WIDTH TID — идентификатор потока данных. TID_WIDTH рекомендуется составлять не более 8.
TDEST Передатчик TDEST_WIDTH TDEST предоставляет информацию о маршрутизации потока данных. Рекомендуется значение TDEST_WIDTH не более 8.
ТЫСЯЧИ Передатчик TUSER_WIDTH TUSER — это определяемая пользователем информация о боковой полосе, которая может передаваться в потоке данных. Рекомендуется, чтобы значение TUSER_WIDTH было целым числом, кратным TDATA_WIDTH/8.
ПРОБУЖДЕНИЕ Передатчик 1 TWAKEUP идентифицирует любую активность, связанную с интерфейсом AXI-Stream.

См. также

[ редактировать ]
  1. ^ «АМБА | Документация» . Арм Холдингс.
  2. ^ Тул, Кристина (24 октября 2016 г.). «Введение в протокол AXI: понимание интерфейса AXI» . Arm.com . Арм Лимитед . Проверено 11 сентября 2023 г. Сегодня многие разработчики SoC используют протокол AXI, или Advanced eXtensible Interface, и он является частью спецификации Arm Advanced Microcontroller Bus Architecture (AMBA). Он особенно распространен в устройствах Zynq от Xilinx, обеспечивая интерфейс между системой обработки и программируемыми логическими секциями чипа.
  3. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 109–118. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  4. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 23–24. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  5. ^ «Протокол интерфейса AMBA AXI4» . www.xilinx.com . Компания Xilinx Inc.
  6. ^ «AXI4 IP» . www.xilinx.com . Компания Xilinx Inc.
  7. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 37–38. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  8. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 22–23. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  9. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 40. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  10. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 38. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  11. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 28–34. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  12. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 22. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  13. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 45–47. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  14. ^ Перейти обратно: а б Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 44 . Проверено 5 июля 2019 г.
  15. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . стр. 121–128. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  16. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 124. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
  17. ^ Арм Холдингс. «Спецификация протоколов AMBA AXI и ACE» (PDF) . Developer.arm.com . п. 122. Архивировано из оригинала (PDF) 5 июля 2019 года . Проверено 5 июля 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e873277ebbe58f4a65ddec42686aee31__1721970060
URL1:https://arc.ask3.ru/arc/aa/e8/31/e873277ebbe58f4a65ddec42686aee31.html
Заголовок, (Title) документа по адресу, URL1:
Advanced eXtensible Interface - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)