MIPS или ARM?


PDF версия

От выбора архитектуры процессора зависит производительность, а также время разработки и стоимость устройства. В статье подробно описана архитектура MIPS32 ядер М4К и М14К. Сравнение архитектур MIPS32 и Cortex-M показывает преимущества первой.

Архитектура MIPS

Архитектура MIPS впервые была применена в процессоре R2000 в 1985 г. C тех пор она претерпела ряд изменений и сейчас изготавливается в двух вариантах: 32- и 64-рарядном, MIPS32 и MIPS64, соответственно.

В основе MIPS лежит гарвардская архитектура и набор команд RISC. Конвейер содержит 5 уровней (см. рис. 1) и логические схемы, обеспечивающие еще до завершения обработки инструкции быстрый доступ к данным, которые используются следующей инструкцией. Все арифметические и сдвиговые операции выполняются за один цикл. Для ускорения отдельных процессов предусмотрены опциональные специализированные расширения, в число которых входят MIPS16e, SmartMIPS, блок многопотоковых вычислений и модули обработки сигнала и объемного изображения.

Рис. 1. Структура конвейера в архитектуре MIPS32: I – выбор команды (доступ к памяти команд I-SRAM и флеш-памяти); E – выполнение ( чтение файла регистров, АЛУ); M – доступ к памяти данных (D-SRAM); A – выравнивание/накопление; W – обратная запись в файл регистров

Высокое быстродействие MIPS32 отчасти достигается за счет использования высокоскоростных интерфейсов памяти SRAM, кэш-контроллеров с высокой эффективностью и блоков распределения памяти, а также наличия большого набора регистров и ускорителей, выполняющих операции с плавающей запятой. Регистры делятся на два класса: стандартные общего назначения (РОН) и дополнительные для хранения данных или использования в качестве «теневых» регистров, которые привязываются к контроллеру прерывания, чтобы уменьшить время реакции на событие и время переключения между программным и аппаратным обеспечением.

Обработка сигналов улучшена за счет аппаратного блока деления и умножения (MDU) с программной поддержкой инструкций умножения со знаком и без, инструкций деления и умножения с накоплением (МАС). Для команд MDU предусмотрен отдельный конвейер, и они выполняются параллельно с целочисленными операциями. Блок MDU позволяет ускорить вычисление таких функций как БПФ, КИХ или БИХ. Например, МК PIC32 обрабатывает 256 выборок БПФ за 22 тыс. циклов, затрачивая 83 мкс при частоте 80 МГц. Микроконтроллеру STM32 на основе Cortex-M3 для выполнения этих же операций понадобится на 14% больше циклов.

Ядро М4К

Ядро М4К на базе MIPS32 превосходит процессоры ARM семейства Cortex-M по производительности, экономичности расхода энергии и компактности кристалла. Попробуем разобраться, за счет чего удалось этого достичь.

Во-первых, в ядре М4К предусмотрена возможность увеличения количества РОН до 16 наборов по 32 регистра. Эти регистры используются для хранения параметров и значений операндов на кристалле, чтобы уменьшить количество пересылок в модуль памяти и тем самым сократить количество циклов, повысить быстродействие. Регистры общего назначения могут также использоваться в качестве «теневых» для ускорения обработки прерываний.

При обработке прерывания или исключения ЦП определяет, какой из теневых наборов следует использовать. Выбранный набор переводится в активное состояние, после чего вектор прерывания продолжает выполнение. При этом не требуется ни сохранение контекста, ни выполнение восстановления, поскольку только подпрограмма прерывания имеет доступ к активному в текущий момент регистру. Соответственно, сокращается время обработки прерывания и уменьшается количество обращений к памяти, т.к. содержимое регистров сохраняется после обработки предыдущего прерывания или исключения, и загрузка значений из SRAM не производится.

Повышение производительности обеспечено за счет блока MDU и быстродействующей памяти SRAM, доступ к которой осуществляется с малой задержкой. Ядро М4К выполняет операции умножения с накоплением и умножения 32×16 за один цикл, а 32×32 — за 2 цикла. Как мы упоминали выше, благодаря отдельному функциональному блоку, работающему независимо от конвейера, операции умножения и деления выполняются параллельно арифметическим и сдвиговым.

Адресное пространство памяти разделено на область данных D-SRAM и область инструкций I-SRAM, что позволяет одновременно выполнять транзакции с инструкциями и данными. При желании эти области можно объединить, переведя модуль памяти в соответствующий режим (Unified).

В отличие от ARM, где нет возможности управления памятью, интерфейс I-SRAM позволяет использовать память программ для хранения энергонезависимых данных. Также SRAM позволяет прерывать длительные транзакции или отменять выполнение транзакции на любой стадии конвейера и мгновенно реагировать на внешние события, такие как исключения и прерывания (EJTAG).

Еще одна уникальная особенность MIPS32 — аппаратно-программный модуль CorExtend, позволяющий добавлять собственные устройства и расширять набор инструкций пользовательскими командами UDI. Это позволяет осуществлять тонкую оптимизацию всех «проблемных» мест системы, ускорив работу приложения. Например, с помощью CorExtend можно реализовать блок обработки графики, TCP/IP ускоритель, логические схемы безопасности и криптографии, беспроводное управление или интерфейс реального времени.

Модульность архитектуры М4К делает ее очень гибкой. Из большого количества опциональных блоков можно выбрать нужные, сократив количество вентилей и, соответственно, размер кристалла и энергопотребление. К таким блокам относятся модуль отслеживания и отладки (EJTAG), интерфейс для сопроцессора и расширения CorExtend. Кроме того, предусмотрены возможности подключения и отключения функций отладки, установки точек останова, а также выбор количества файлов регистров, скорости работы MDU и типа интерфейса SRAM. Все это позволяет варьировать характеристики ядра, в первую очередь быстродействие, в широких пределах.

Немаловажное значение имеет набор аппаратных и программных инструментов, которые предлагаются производителем для упрощения разработки, ускорения тестирования и оценки конечного проекта. Среди них можно отметить отладочный щуп EJTAG System Navigator™, набор инструментов GNU с поддержкой ОСРВ и Linux, симуляторы Cycle Accurate и Instruction Accurate, оценочные платы и пакет Navigator Integrated Component Suite. Помимо этого компания MIPS Technologies предлагает программную среду разработки с поддержкой всего спектра инструментов для MIPS. Наконец, создано сообщество сторонних производителей средств разработки. Вместе эти инструменты обеспечивают всестороннюю и полную поддержку проектирования на базе MIPS.

Сравнение архитектур ARM и MIPS

Оба ядра MIPS32 и ARM Сortex-M имеют 32-разрядную шину данных и сокращенный набор команд RISC. Однако на этом их сходство кончается. Изначально компания MIPS Technologies занималась разработкой высокопроизводительных рабочих станций и серверов, в то время как ARM начинала как разработчик процессоров для мобильных аппаратов начального уровня.

По сравнению с семействами ARM Сortex-M процессоры M4K имеют более высокое быстродействие. Частично это обусловлено более эффективной структурой набора команд (ISA — instruction set architecture) и оптимизированными программными средствами, но в большей степени это достигается за счет самой архитектуры MIPS. Перечислим основные различия между ядрами.

1. Процессоры MIPS имеют 32 встроенных регистра общего назначения, ARM — только 16.

2. В процессорах MIPS предусмотрены «теневые» регистры, позволяющие ускорить функции сохранения и восстановления при обработке прерываний. Соответственно, на контекстное переключение уходит меньше циклов.

3. В архитектуре MIPS большая часть команд содержит только одну операцию, а инструкции ARM выполняют несколько операций перед записью в регистр (смена операнда, проверка бита состояния и др.). За счет этого MIPS имеет более высокую тактовую частоту.

4. В MIPS более простая система адресов, за счет чего также повышается рабочая частота.

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

6. В отличие от MIPS, в ARM не предусмотрена отложенная передача управления, поэтому при меньшей глубине конвейера обеспечивается более высокая эффективность.

7. Архитектура MIPS реализована как в 32-, так и в 64-разрядном варианте, что обеспечивает полную совместимость устройств с предыдущими поколениями.

Как показывает тестирование в от-
крытой среде CoreMark [1], микроконтроллер PIC32 с ядром М4К обгоняет микроконтроллеры NXP и STMicroelectronics на базе ядра Cortex-M3 на 20—50%, а МК NXP на основе Cortex-M0 —
на 63%, даже несмотря на то, что М4К выполняет два цикла ожидания при обращении к памяти, а Cortex-M — ни одного. Скорость работы М4К достигает 1,5 DMIPS/МГц, в то время как Cortex-M3 выполняет до 1,25 DMIPS/МГц, а Cortex-M0 — до 0,9 DMIPS/МГц.

За счет более высокой производительности ядра приложения на ядре М4К могут работать на меньших тактовых частотах, потребляя меньше энергии. В ядре М4К предусмотрено несколько функций управления мощностью, в т.ч. контроль активной мощности с помощью использования стробирования синхросигнала и поддержки режима пониженного потребления энергии.

Большая часть энергии расходуется схемой синхронизации и регистрами. Расширенное управление стробированием синхросигнала позволяет отключать выбранные неиспользуемые области ядра. Команда WAIT переводит ядро в режим ожидания, в котором внутренний тактовый генератор и конвейер временно приостанавливаются. При наступлении события или сброса ядро возвращается к нормальному режиму работы. В таблице 1 сведены величины энергопотребления для Cortex-M3 и М4К, произведенных по технологическим нормам 180 нм и 90 нм, оптимизированных по быстродействию или площади кристалла. Как видно, на одной и той же тактовой частоте ядро М4К заметно превосходит Cortex-M3 как по потреблению, так и по эффективности расхода энергии.

Табл. 1. Характеристики M4K и Cortex-M3 при различных технологических нормах и параметрах оптимизации

Тех. нормы

180 нм

90 нм

Ядро

М4К

Cortex-M3

М4К

Cortex-M3

Оптимизация

Скорость

Площадь

Скорость

Площадь

Скорость

Площадь

Скорость

Площадь

Частота, МГц

100

50

100

50

275

50

275

50

Потребление, мВт/МГц

0,21

0,17

0,33

0,2

0,03

0,02

Нет данных

0,1

Эффективность энергопотребления, DMIPS/мВт

7,14

8,82

3,75

6,25

50

75

Нет данных

12,5

Ядро М14К

Недавно в семействе MIPS32 4K были представлены два ядра — модели М14К и М14Кс. Они содержат декодеры инструкций MIPS32 и microMIPS. Это первые модели, содержащие microMIPS — специальный набор команд, позволяющий сократить объем кода по крайней мере на 30% при сохранении быстродействия.

Как и в случае с М4К, ядро М14К содержит 5-уровневый конвейер. Однако по сравнению с предшественником М14К обладает рядом усовершенствований: сокращена задержка обработки прерывания, ускорен доступ к флэш-коду и оптимизирован процесс обработки прерывания. Помимо этого встроенные библиотеки М14К содержат стандартный интерфейс AHB и полный набор усовершенствованных функций для профилирования и отладки приложения.

Структура М14К приведена на рисунке 2. В таблице 2 представлены характеристики ядра М14К в сравнении с ядром Cortex-M3.

Табл. 2. Сравнительные характеристики М14К и Cortex-M3

Параметр

M14K

Cortex-M3

Архитектура

Гарвардская

Гарвардская

Набор команд

MIPS32, microMIPS

Thumb-2

Количество команд

300+

155

Производительность в Dhrystone, DMIPS/МГц

1,5

1,25

Производительность в CoreMark

2,36

1,76

Количество РОН

32

16

Макс. кол-во наборов РОН

16

1

Управление прерываниями

Внутреннее, внешнее

Внутреннее

Задержка прерывания, циклов

10

12

Канал быстрой отладки

Есть

Нет

Блок умножения и деления

Есть

есть

Память программ, Гбайт

4

1

Память данных, Гбайт

4

1

Пользовательские команды

Да

Нет

Рис. 2. Блок-схема ядра М14К

Заключение

Стандартная архитектура MIPS отвечает всем требованиям разработчиков микроконтроллеров и превосходит семейства ARM Cortex-M по быстродействию, потреблению и функционалу. Основные преимущества MIPS перед Cortex-M:

– производительность M4K и M14K на 20% выше, чем Cortex-M3;

– максимальная тактовая частота M4K и M14K на 20% выше, чем ядра Сortex-M3;

– M14K затрачивает на 30% меньше циклов при обработке прерывания;

– буфер предварительной выборки в М14К уменьшает время доступа к флэш-памяти. Интерфейс SRAM ускоряет время выполнения;

– обработка сигнала на PIC32 производится на 14% быстрее, чем на STM32F (для функции БПФ);

– низкое потребление и высокая эффективность расхода энергии;

– широкий спектр аппаратных и программных средств проектирования, совместимых с ведущими ОСРВ, пакет связующего ПО, поддержка ведущих САПР.

Архитектура MIPS проверена временем и как нельзя лучше подходит для встраиваемых систем нового поколения.

Литература

1. MIPS Technologies. Beyond the Hype: MIPS® — the Processor for MCUs.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *