Cortex-a9
Cortex-A9 обеспечивает высокий уровень производительности и эффективности при низкой мощности энергопотребления. Возможна реализация в виде масштабируемого многоядерного процессора MPCore или классического одноядерного процессора. Область применения распространяется от мобильных устройств до высокопроизводительных потребительских и корпоративных продуктов.
Процессоры Cortex-A9 являются конфигурируемыми - набор доступных опций зависит от конкретной реализации. Характеристики процессора представлены в таблице.
Таблица 1. Характеристики Cortex-A9
Свойство |
Возможное значение |
Частота |
До 2ГГц |
Кэш-память команд |
16КБ, 32КБ, 64КБ |
Кэш-память данных |
16КБ, 32КБ, 64КБ |
Количество записей в TLB |
64, 128, 256, 512 |
Количество записей в BTAC |
512, 1024, 2048, 4096 |
Количество GHB дескрипторов |
1024, 2048, 4096, 8192, 16384 |
Количество записей в micro TLB |
32, 64 |
Архитектурное расширение Jazelle |
Полное или ограниченное |
NEON |
Опционально |
FPU |
Опционально |
Интерфейс PTM |
Опционально |
Preload Engine |
Опционально |
Размер PLE FIFO (при наличии Preload Engine) |
16, 8, 4 |
MBIST |
Опционально |
Обобщенная схема процессора Cortex-A9 (кодовое имя - Falcon) представлена на рисунке 3. Процессор включает в себя суперскалярный конвейер переменной длины с изменением порядка выполнения и динамическим предсказанием ветвления. На рисунке 4 приведена высокоуровневая диаграмма работы процессора.
Рис. 3. Схема процессора Cortex-A9
Рис. 4. Диаграмма работы процессора Cortex-A9
Обработка данных
Модули обработки данных MPE и FPU являются взаимоисключаемыми.
MPE –Media Processing Engine, обеспечивает поддержку инструкций NEON и 32-разрядный VFP.
FPU – обеспечивает 16-разрядный VFP.
Механизм предварительной загрузки
Модуль PLE (Preload Engine) является опциональным.
PLE загружает выбранные области памяти в L2 интерфейс. Параметры операции предварительной загрузки входят в PLE FIFO, включающую в себя:
Программируемые параметры
Базовый адрес
Длину шага
Число блоков
Бит валидности
Бит состояния NS
Адрес базы таблицы перевода (Translation Table Base)
Значение идентификатора адресного пространства (Address Space ID)
Предзагруженые блоки могут охватывать несколько страниц. Запрограммированные записи могут оставаться валидными в случае смены контекста.
Динамическое предсказание переходов
Блок предварительной выборки реализует 2-уровневое предсказание ветвлений, включает в себя BTAC (Branch Target Address Cache), GHB (Global History Buffer) и стек возвратов (return stack).
Переименование регистров
Схема переименования регистров упрощает выполнение команд с изменением последовательности в ситуациях «запись после записи» (WAW) и «запись после чтения» (WAR) для регистров общего назначения и флагов в регистре текущего состояния программы (CPSR).
Схема отображает архитектурные регистры на пул из 56 физических 32-разрядных регистров и переименовывает флаги (N, Z, C, V, Q, GE) CPSR, используя выделенный пул из 8 физических 9-разрядных регистров.
Интерфейс PTM
Опционально процессор реализует интерфейс PTM (Program Trace Macrocell), совместимый с архитектурным протоколом PFT (Program Flow Trace). Путевые точки, изменения в ходе выполнения программы или события, такие как изменения в ID контекста, выводятся для коррелирования трассировки с изображением кода.
Контроль производительности
Процессор предоставляет программные счетчики и мониторы событий, которые могут быть сконфигурированы для сбора статистики об операциях процессора и системы памяти.
