Микропроцессоры (микропроцессоры arm), разработанные в последнее время, имеют следующие особенности:
1) суперскалярную архитектуру;
2) раздельное кэширование программного кода и данных;
3) блок предсказания правильного адреса перехода;
4) поддержку многопроцессорного режима работы;
5) средства задания размера страницы памяти;
6) средства обнаружения ошибок и функциональной избыточности;
7) управление производительностью.
Суперскалярная архитектура подразумевает наличие двух и более конвейеров (вычислительных блоков), что позволяет выполнять 2 или более команд за один период тактовой частоты. Каждый конвейер выполняет команду за следующие этапы:
- предварительная подготовка;
- декодирование команды;
- генерация адреса;
- выполнение;
- запись.
Это позволяет нескольким командам находиться в различных стадиях выполнения, тем самым увеличивается вычислительная производительность микропроцессора. Каждый конвейер имеет свое АЛУ, совокупность устройств генерации адреса и интерфейс кэширования данных.
В случае наличия одного блока кэш-памяти возможен конфликт между процессом предварительной подготовки команды и доступом к данным. Выполнение раздельного кэширования для команд и данных (как в микропроцессоре Pentium) исключает такие конфликты, давая возможность обеим командам выполняться одновременно.
Блок предсказания правильного адреса перехода прогнозирует, какая ветвь программы будет затребована, основываясь на допущении; что предыдущая ветвь будет использоваться снова.
Новейшие микропроцессоры (начиная с Pentium) содержат усовершенствования, присущие проектированию класса больших ЭВМ такие, как внутреннее определение ошибок и контроль за счет функциональной избыточности.
Кроме того, новейшие микропроцессоры обладают следующими особенностями:
- обработка нескольких блоков данных одной командой (технология SIMD – Single Instruction Multiple Data – один поток команд множество потоков данных);
- технология динамического исполнения команд (Dynamic Execution);
- предсказание ветвлений, позволяющее прогнозировать исполнение программы по нескольким возможным путям и ускоряющее поступление данных;
- упреждающее исполнение команд в оптимальном порядке повышающее общую производительность (обеспечивая постоянную загрузку блоков суперскалярных вычислений);
- возможность одновременной обработки множества запросов через системную шину;
- наличие потоковых SIMD-расширений таких, как: команды групповой обработки данных с плавающей точкой; дополнительные команды групповой обработки целочисленных данных; команды управления кэшированием.