Шина AMBA (Advanced Microcontroller Bus Architecture) — это открытый стандарт шины на кристалле, предложенный ARM. Он не зависит от процессора и технологии обработки и обладает характеристиками высокой скорости и низкого энергопотребления.
Интерфейсы необходимы для подключения различных модулей в системном чипе;
Шина служит общим каналом связи между подсистемами;
Его преимущества: низкая стоимость, удобство и простота в использовании.
Недостатки: подвержены узким местам в производительности.
История развития автобуса АМБА:
AMBA 1.0 : ASB, APB
AMBA 2.0 : AHB, ASB, APB
AMBA 3.0 : AMBA Advanced eXiensibele Interface (AXI)
AMBA 4.0 : ...
Автобусная система AMBA включает в себя следующие три автобуса:
Типичная система AMBA приведена ниже:
В качестве примера возьмем проект архитектуры системы SOC:
Шину AHB/ASB с шиной APB необходимо соединить через мост.
Применительно к медленным периферийным устройствам, таким как UART, клавиатура и т. д., арбитр и декодер в системе шины AHB не требуются. Арбитр — арбитр, решающий, какой Мастер будет работать. Декодер — это декодер, который определяет, какому ведомому устройству ведущий будет передавать данные.
Видно, что интерфейс шины APB в основном включает в себя системные сигналы, сигналы адреса, сигналы направления, сигналы данных и сигналы управления этапом передачи.
С точки зрения конечного автомата APB требуется 2 цикла для передачи каждого фрагмента данных, и передача данных APB не подходит для конструкций модулей с конвейерной архитектурой.
На следующем рисунке показаны основные операции записи APB.
Из рисунка видно, что, за исключением того, что сигнал записи действителен в обратном направлении, временная диаграмма операции чтения APB очень похожа на временную диаграмму операции записи, поэтому мы не будем объяснять ее подробно здесь.
Важно отметить, что после T3, то есть после входа в цикл ENABLE, APB должен подготовить данные для чтения M, чтобы M мог правильно прочитать данные при запуске по положительному фронту тактового сигнала T4 в конце цикл ENABLE Чтение.
Когда частота очень высока, данные в ENABLE CYCLE не могут быть напрямую сопоставлены с шиной AHB. Их необходимо заблокировать в мосту APB на Т4, и их выборка может осуществляться только ведущим устройством AHB на Т5. Хотя требуется еще один период ожидания (всего 2, HREADY противодавляет два такта), общая производительность также улучшается за счет увеличения частоты.
T1: Начать передачу по шине AHB;
T2: Адрес выбирается шиной APB. Если передача предназначена для периферийного устройства, этот адрес будет декодирован в сигнал выбора и отправлен на периферийное устройство. T2 — это ЦИКЛ НАСТРОЙКИ AHB.
T3: APB ENALBE CYCLE, PENABLE поднимается на высокий уровень, и данные считываются.
T4: Считанные данные напрямую передаются на шину AHB и выбираются ведущим устройством AHB по нарастающему фронту.
Запись отдельных блоков данных на шину APB не требует циклов ожидания. Мост APB отвечает за выборку адресов и данных и сохранение их значений во время операций записи.
T1: AHB начинает передавать адрес данных, а также сигналы управления чтением и записью (HADDR и HWRITE).
T2: Болт моста APB принимает адрес данных, а также сигналы управления чтением и записью, отправленные AHB, и в то же время переходит в состояние ENABLE конечного автомата APB.
T3~: Последующие действия чтения и записи точно такие же, как действия чтения и записи APB, представленные ранее, поэтому мы не будем здесь вдаваться в подробности.
На следующем рисунке представлена временная диаграмма передачи пакетной записи:
Хотя первая передача может обрабатывать состояния ожидания с нулевым состоянием, последующие передачи на периферийную шину потребуют состояния ожидания для выполнения каждой передачи.
В мосту APB требуются 2 адресных регистра. При обработке операции записи блока данных может быть зарегистрирован адрес следующего блока данных.
На рисунке ниже показана временная последовательность обратной передачи, соответственно запись, чтение, запись и чтение.
Если за операцией записи следует операция чтения, для завершения операции чтения потребуется 3 цикла ожидания. Обычно операция чтения, за которой следует операция записи, не выполняется, поскольку ЦП читает инструкции между ними.