Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Ядро процессора Cortex-A8




 

Характеристики ядра:

архитектура ARMv7;

двойной симметричный конвейер с упреждающей выборкой;

суперскалярное ядро;

13-ступенчатый конвейер;

кэш-память-память второго уровня, емкость кэш-памяти второго уровня - от 64К байт до 2М байт;

ряд фирменных подсистем (Jazelle, TrustZone и так далее);

ориентировано на задачи, требующие достаточно высокого быстродействия (на уровне 2000 MIPS Dhrystone) при невысоком энергопотреблении и тепловыделении.

ядро Cortex-A8 работало при частотах до 1 ГГц;

65-нм технологический процесс;

максимальное энергопотребление составляло 300 мВт.

Структура ядра Cortex-A8 приведена на рис. 32.3.

Рис. 32.3. Структура ядра Cortex-A8

 

 

В ядре реализована система команд Thumb 2 (обеспечивалась "упаковка" 32-разрядных команд в 16-разрядные, что уменьшало размер программ и важно при подготовке модулей, записываемых в постоянную память). Уменьшение размера программ при использовании режима Thumb 2 связано с внесением в систему команд ряда дополнительных команд (около 130 команд). Поскольку Thumb - 16-разрядная система команд, на которую отображается основное подмножество 32-разрядных команд ARM, но поскольку оставались "неэмулируемые" команды, приходилось писать дополнительные программы для реализации тех действий, которые решает единственная 32-разрядная команда.

Важнейшая особенность - отсутствие необходимости переключаться между режимами ARM и Thumb при обработке прерываний и доступ к полному набору регистров. В итоге сохраняется малый размер программ, свойственный режиму Thumb, и скорость, как правило, на уровне программ с 32-разрядными командами ARM.

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

Средства Jazelle RCT обеспечивали снижение размера Java-программ (до 70%) за счет динамического преобразования (JIT) байт-кода (что закономерно повышало скорость и снижало энергопотребление).

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

Улучшена подсистема вычислений с плавающей точкой (версия VFPv3). В частности, до 32 увеличено число регистров для вычислений с двойной точностью, реализованы команды для преобразования чисел с плавающей и фиксированной точкой.

С технической точки зрения одной из наиболее существенных особенностей была система "статического планирования" для суперскалярного конвейера.

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

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

Обработка команд сопроцессора NEON начиналась в конце главного конвейера (соответственно, все предсказания ветвлений, результаты операции и прочее уже отработаны), и, что важнее, все необходимые данные уже находятся в кэш-памяти первого уровня.

Средства буферизации данных между блоками ядра и сопроцессором NEON также позволяли нивелировать влияние многоступенчатой буферизации при изменении содержимого кэш-памяти (для потоковых данных это могло быть критично). Сам модуль NEON не связан с главным целочисленным конвейером ядра.

Подсистема выполнения команд позволяла выбирать до двух правильных команд сопроцессора NEON за цикл, в сопроцессоре NEON имелась 128-разрядная шина и собственные средства работы с кэш-памятью, а также три целочисленных конвейера SIMD, конвейер загрузки, два конвейера для вычислений с плавающей точкой (с одинарной точностью) и модуль векторных вычислений. Вычисления велись скалярно, поскольку логика предсказания ветвлений и обработки неправильных предсказаний в этом случае привела бы к потере производительности.

 

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 519 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Стремитесь не к успеху, а к ценностям, которые он дает © Альберт Эйнштейн
==> читать все изречения...

2151 - | 2107 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.