Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Расширенный расширяемый интерфейс ( AXI ), часть АРМ Расширенного Микроконтроллер архитектура шина 3 (AXI3) и 4 (AXI4) технические характеристики, [1] является параллельной высокой производительность, синхронным , высокочастотные, мульти-мастер, мульти-ведомого интерфейс связи , в основном предназначенный для связи внутри кристалла.

AXI был представлен в 2003 году со спецификацией AMBA3. В 2010 году новая редакция AMBA, AMBA4, определил AXI4, AXI4-Lite и AXI4-Стрим протокол . AXI не требует лицензионных отчислений, а его спецификации свободно доступны в ARM .

AXI предлагает широкий спектр функций, в том числе:

  • отдельные фазы адреса / управления и данных
  • поддержка невыровненного доступа к данным
  • пакетные передачи с однократной передачей начального адреса
  • отдельные и независимые каналы чтения и записи
  • поддержка незавершенных транзакций
  • поддержка завершения транзакций вне очереди для транзакций, имеющих разные идентификаторы потока на одном и том же главном порту. (Транзакции на одном и том же главном порту с одинаковым идентификатором потока должны выполняться по порядку. Кроме того, разные главные порты могут выполняться не по порядку относительно друг друга.)
  • поддержка атомарных операций .

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

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

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


ID потоков [ править ]

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

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

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

(Дополнительная шина axi-lite ограничена поддержкой длины транзакции только в 1 слово данных на транзакцию.)

Рукопожатие [ править ]

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

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

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

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

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

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

Каналы [ править ]

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

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

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

Каналы записи адресов, данных и ответов в AXI.

AXI [ править ]

Сигналы [ править ]

[10]

  1. ^ a b c d Различное поведение между AXI3 и AXI4
  2. ^ a b c d e f g h i Доступно только с AXI4
  3. ^ Доступно только с AXI3

Всплески [ править ]

Пример пакетов FIXED, INCR и WRAP

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

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

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

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

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

с

Транзакции [ править ]

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

Пример транзакции чтения AXI. Мастер запрашивает 4 бита (ARLEN + 1 [13] ) по 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 [13] ) по 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-Lite - это подмножество протокола AXI4, обеспечивающее регистровую структуру с уменьшенными функциями и сложностью. [14] Заметные различия:

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

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

Сигналы [ править ]

[16]

См. Также [ править ]

  • Расширенная архитектура шины микроконтроллера
  • Wishbone (компьютерный автобус)
  • Мастер / подчиненный (технология)

Ссылки [ править ]

  1. ^ "AMBA | Документация" . Arm Holdings.
  2. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 109–118 . Дата обращения 5 июля 2019 .
  3. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 23–24 . Дата обращения 5 июля 2019 .
  4. ^ "Протокол интерфейса AMBA AXI4" . www.xilinx.com . Xilinx Inc.
  5. ^ "AXI4 IP" . www.xilinx.com . Xilinx Inc.
  6. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 37–38 . Дата обращения 5 июля 2019 .
  7. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 22–23 . Дата обращения 5 июля 2019 .
  8. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 40 . Дата обращения 5 июля 2019 .
  9. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 38 . Дата обращения 5 июля 2019 .
  10. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 28–34 . Дата обращения 5 июля 2019 .
  11. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 22 . Дата обращения 5 июля 2019 .
  12. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 45–47 . Дата обращения 5 июля 2019 .
  13. ^ a b Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 44 . Дата обращения 5 июля 2019 .
  14. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . С. 121–128 . Дата обращения 5 июля 2019 .
  15. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 124 . Дата обращения 5 июля 2019 .
  16. ^ Arm Holdings. «Спецификация протокола AMBA AXI и ACE» (PDF) . developer.arm.com . п. 122 . Дата обращения 5 июля 2019 .

Внешние ссылки [ править ]

  • Веб-страница AMBA
  • Спецификация AXI4
  • ARM AXI введение
  • Xilinx AXI введение