Архитектура mips что это

Сегодня MIPS стал Open Source, против RISC-V и ARM. Как Россия повлияла на стратегию американской процессорной компании

То, о чем говорили сторонники Open Source с 1980-х — свершилось! Сегодня архитектура процессоров MIPS стала Open Source. Учитывая, что такие компании как Broadcom, Cavium, китайский ICT и Ingenic платили MIPS за архитектурную лицензию (право сделать совместимую по системе команд микроархитектурную реализацию) миллионы долларов (иногда более десяти миллионов), это историческая веха. Теперь у RISC-V нет преимущества в этом аспекте, да и ARM придется оправдываться. У MIPS до сих пор есть технические преимущества перед RISC-V — лучшая плотность кода у nanoMIPS, лучшая поддержка аппаратной многопоточности, лучшие бенчмарки на high-end ядрах, более полная экосистема. И 8 миллиардов выпущенных чипов на основе MIPS.

Вот команда разработчиков 64-битного процессорного ядра MIPS I6400 «Samurai» и MIPS I6500 «Daimyo» в Сан-Франциско. Это ядро лицензировала в частности японская компания автомобильной электроники DENSO, поставщик Тойоты:

А вот представители российской компании ЭЛВИС-НеоТек вместе с русскими, украинскими и казахстанским разработчиком ядер MIPS и софтвера для него. ЭЛВИС-НеоТек является как лицензиатом ядер MIPS, так и разработчиком собственного по микроархитектуре ядра, совместимого с архитектурой MIPS. А также аппаратных блоков видео-обработки и алгоритмов распознавания:

Российское MIPS-коммьюнити оказано непосредственное влияние на этот шаг:

Сегодня я разговаривал с президентом MIPS Артом Свифтом. До нынешнего поста Арт был вице-председателем комитета по маркетингу RISC-V, вице-президентом Sun, DEC и Cirrus Logic. Я спросил у Арта, чем же отличается Open MIPS от не ставшего популярным Open SPARC.

Арт ответил, что Sun Microsystems была открытой только на словах и не очень любила строить коммьюнити. А вот мы в Open MIPS будем заниматься именно построением коммьюнити. Причем методы построения всемирного коммьюнити будут основаны на опыте строительства MIPS-коммьюнити в России (!), а точнее на работе с российскими компаниями (ЭЛВИС-НеоТек, Байкал Электроникс, НИИСИ, НИИМА Прогресс) и университетами, которые проводили семинары по MIPSfpga (МИЭТ, МФТИ, ИТМО, МИФИ, МГУ, СГАУ, НГТУ, ТГУ, КПИ и другие).

Немного истории. Истоки MIPS — в Стенфорде начала 1980-х годов. В 1984 году была основана компания MIPS Computer Systems, которая потом неоднократно меняла владельцев (Silicon Graphics, MIPS Technologies, Imagination Technologies, Wave Computing). В том же 1984 году возникла и компания ARM. Вот основатель MIPS Джон Хеннесси с первым чипом:

Впоследствие MIPS использовался в ранних игровых приставках Nintendo64 и Sony Playstation. Вот девушка Ирина в музее компьютеров рядом с рабочими станциями Silicon Graphics, которые использовались для съемок первых реалистично-графических голливудских фильмов, включая «Парк Юрского Периода». Эти же компьютеры упомянуты в романе русского писателя Виктора Пелевина «Поколение П». Внутри — процессор MIPS R4000:

А вот — встреча в прошлом году в Москве участников семинаров по MIPSfpga, образовательной программы, в которой университетские исследователи могут модицифировать реальный промышленный процессор MIPS interAptiv UP, синтезировать его для ПЛИС и посмотреть, как он работает, в том числе в потактовом режиме. В центре — Роберт Оуэн, менеджер образовательных программ Imagination Technologies, слева от него — Станислав Жельнио, автор российского учебного ядра schoolMIPS (его можно найти на GitHub):

В вот российский компьютер на основе процессора КОМДИВ-64, с вариантом архитектуры MIPS + спроектированной в России микроархитектурой + разработанными в России векторными расширениями архитектуры:

А вот Максим Горбунов, менеджер из НИИСИ, где был спроектирован КОМДИВ-64. Максим — второй слева, между специалистом по образовательным программам из российского Самсунга Татьяной Волковой и специалистом по образованию школьников из МФТИ Андреем Огневым:

Вот в офисе лицензиата MIPS Байкал Электроникс. Процессор Байкал-Т1 на основе MIPS P5600 «Apache» используется сейчас в российских контроллерах станков и сетевых устройствах:

А вот в Киевском Политехническом Институте на хакатоне MIPSfpga. Победители этого хакатона впоследствие получили бронзу на европейском финале конкурса Innovate FPGA, организованного Интелом:

Этот хакатон также вошел в презентации и статьи про практику MIPSfpga в университетах:

Архитектура mips что это. image loader. Архитектура mips что это фото. Архитектура mips что это-image loader. картинка Архитектура mips что это. картинка image loader.

MIPS вдохновил создателей специализированных вычислительных устройств, например David Wentzlaff, который читает курс по продвинутой процессорной архитектуре в Принстоне и на Курсере:

Архитектура mips что это. image loader. Архитектура mips что это фото. Архитектура mips что это-image loader. картинка Архитектура mips что это. картинка image loader.

Устройство, которое разработано Девидом, предстваляло из себя сетку (mesh) из 64 процессоров. Интересно, что сейчас Wave Computing, компания, частью которой является MIPS, тоже работает над сеткой, но из десятков тысяч процессорных элементов. Эта архитектура предназначена для ускорителя нейросетей, чипа на 7 нанометров, который Wave Computing разрабатывает совместно с Broadcom. Вот в офисе Wave Computing в Campbell, California. Слева специалист по функциональной верификации и UVM Jon Wang, а справа старший директором по Custom Design Steve Dilbeck. Стив — большой авторитет в asynchronous design, dynamic logic и разных эффектах на уровне транзисторов, когда размеры опускаются до 7 нанометров, а частоты поднимаются выше 6 гигагерц:

Вот слайд из презентации по нейроускорителю:

Источник

Изучаем MIPS-ассемблер

Архитектура mips что это. image loader. Архитектура mips что это фото. Архитектура mips что это-image loader. картинка Архитектура mips что это. картинка image loader.

Как говорит Википедия, MIPS – микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) и впервые реализованный 1985 году. Существует большое количество модификаций этой архитектуры, созданных специально для 3D-моделирования, быстрой обработки чисел с плавающей запятой, многопотоковых вычислений. Различные варианты этих процессоров использутся в роутерах Cisco и Mikrotik, смартфонах, планшетах и игровых консолях.

Инструкции MIPS достаточно просты для понимания, и именно с него рекомендуется начинать изучение ассемблера. Чем сейчас, собственно, и займёмся.

Структура программы на MIPS-ассемблере

Типы в MIPS-ассемблере

Вот сравнительная таблица основных типов в C++ и в MIPS:
Архитектура mips что это. be123ad7a4d124dd671a5864436c6743. Архитектура mips что это фото. Архитектура mips что это-be123ad7a4d124dd671a5864436c6743. картинка Архитектура mips что это. картинка be123ad7a4d124dd671a5864436c6743.
Как можно увидеть в таблице, выбор типа в для переменной в MIPS основывается только на объёме памяти, который будет занимать эта переменная. Обратите внимание, что MIPS в этом плане не различает signed- и unsigned-переменные.

Метки (символы)

Основные директивы

Немного глубже мы рассмотрим типы данных по мере их использования в коде.

Регистры

Инструкции MIPS

Примечание. C этого момента мы будем рассматривать MIPS-процессор, его инструкции и дополнения на примере замечательного симулятора MIPS под названием MARS, который можно загрузить отсюда. Имплементация MIPS в этом симуляторе полностью соответствует стандартам.

В коде в начале статьи мы уже выделили все функциональные части программы и определили инструкции и псевдоинструкции как то, что не является комментарием, символом (меткой) или директивой. Псевдоинструкции также называют макросами, они трансформируются в одну или несколько инструкций во время выполнения кода. Вот пример макроса:

переходит в набор инструкций:

Как видно, MIPS-программы всегда записываются по одной инструкции на строчку.

Типы инструкций

Также существуют инструкции для сопроцессоров, но их мы рассмотрим позже.

Инструкция syscall

Архитектура mips что это. 3fec3dcd77d8625259ccd277080a117d. Архитектура mips что это фото. Архитектура mips что это-3fec3dcd77d8625259ccd277080a117d. картинка Архитектура mips что это. картинка 3fec3dcd77d8625259ccd277080a117d.

Весь ввод и вывод происходит через консоль MARS’a.

Арифметические инструкции

Кстати, imm16 по умолчанию интерпретируются как позитивные. Например:

Если нужно добавить отрицательное значение, то нужно явно это указать:

А теперь можно протестировать получившийся код в MARS. Загрузите черновик вот отсюда и откройте его в MARS:

Архитектура mips что это. 46e65d284e3ff0ace3346c816824cdce. Архитектура mips что это фото. Архитектура mips что это-46e65d284e3ff0ace3346c816824cdce. картинка Архитектура mips что это. картинка 46e65d284e3ff0ace3346c816824cdce.

Архитектура mips что это. 6bfbc794e06a3ea45fb940522e8274b0. Архитектура mips что это фото. Архитектура mips что это-6bfbc794e06a3ea45fb940522e8274b0. картинка Архитектура mips что это. картинка 6bfbc794e06a3ea45fb940522e8274b0.

Архитектура mips что это. d3db99300875eacf7def9b09d3d7bea5. Архитектура mips что это фото. Архитектура mips что это-d3db99300875eacf7def9b09d3d7bea5. картинка Архитектура mips что это. картинка d3db99300875eacf7def9b09d3d7bea5.

Продолжение следует

В следующей статье рассмотрим логические инструкции, а также умножение и деление целых чисел. В ней же попробуем работать с памятью и стеком. А пока предлагаю вам попробовать переписать вот этот код на MIPS-ассемблер:

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

MIPS (Microprocessor without Interlocked Pipeline Stages)

MIPS

ДизайнерMIPS Technologies
Биты64-bit (32→64)
Представлен1981
ДизайнRISC
ТипРегистр-регистр
Кодированиефиксированное
Разветвлениепо сравнению двух регистров
Порядок байтовBi-endian (big→bi)
РасширенияMDMX, MIPS-3D, MIPS16e, MIPS MT
Регистры
FPU (Floating Point Unit)32 (для double используются пары регистров в 32-битных версиях процессора)

Содержание

Описание

Семейство ядер MIPS идеально для устройств, где необходимо сверхнизкое энергопотребление и каждая единица площади на счету. Семейства MISC процессоров удовлетворяют любым нуждам: от любителей, до профессионалов. MISC процессоры умеют выполнять такие задачи, как многоядерность на уровне железа, совместимая с 32/64-битными инструкциями в множестве архитектур ISA, а так же предоставить стабильность работы, недостижимую аналогичным устройствам в той же ценовой категории.

Архитектура

Основа сегодняшних процессоров MIPS была заложена в первой половине 1980х. Основой являлся 32-битная RISC процессор, задачей которого было предоставление самых высоких уровней производительности вместе с новыми недостижимыми возможностями эффективности, которые стали достижимыми, благодаря архитектуре, не имеющей лишних и ненужных деталей. Процессоры MIPS предоставляют низкое потребление и меньший размер относительно своих конкурентов, благодаря огромному опыту, накопленному за несколько десятилетий. Процессоры используются в огромном множестве устройств, от роутеров до телевизоров.

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

Aptiv-процессорные ядра

microAptiv™

Высокоэффективные, компактные встраиваемые процессорные ядра с функциональностью microMIPS включают в себя DSP и SIMD функциональность, чтобы обрабатывать сигналы, требуемые широкому множеству микроконтроллеров и встраиваемым системам начального уровня, включая автоматизированные системы управления, интеллектуальные счетчики, автомобильные, проводные / беспроводные системы коммуникации.

interAptiv™

Процессорное ядро использует сбалансированный девятиступенчатый конвейер с поддержкой мультипоточности и является высокоэффективным среди конкурентов. Идеально для распараллеливаемых приложений, требующих оптимизаций энергопотребления, таких как шлюзы связи, устройства приема LTE сигнала, контроллеры SSD дисков и автомобильное оборудование.

proAptiv™

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

Ядра MIPS Series5 Warrior

Продукты

Версии множества инструкций MIPS

MIPS I

MIPS II

MIPS Computer Systems R6000 микропроцессор, представленный в 1989 году, является первой реализацией MIPS II. Предназначен для серверов, R6000 был изготовлен и продан Bipolar Integrated Technology, но был коммерческим провалом. В середине 1990-х годов многие новые 32-разрядные процессоры MIPS для встраиваемых систем были реализациями MIPS II, так как введение в 1991 году 64-разрядной архитектуры MIPS III сделало MIPS II самой новой 32-разрядной архитектурой MIPS, пока в 1999 году не была введена MIPS32.

MIPS III

MIPS Computer Systems R4000 микропроцессор, представленный в 1991 году, была первой реализации MIPS III. Он был разработан для использования на персональных компьютерах, компьютерах рабочих станций и серверах. MIPS Computer Systems активно продвигали архитектуру MIPS и R4000, создавая консорциум Advanced Computing Environment (ACE) для продвижения своего стандарта Advanced RISC Computing (ARC), целью которого было установить MIPS в качестве доминирующей платформы персональных компьютеров. ARC не добился большого успеха в персональных компьютерах, но R4000 (и производная от R4400) широко использовались на рабочих станциях и серверных компьютерах, особенно его крупнейшим пользователем, Silicon Graphics. Другое использование R4000 включало высококачественные встроенные системы и суперкомпьютеры. MIPS III был в конечном итоге реализован рядом встроенных микропроцессоров.

MIPS IV

MIPS IV — четвёртое поколение архитектуры, представляет собой расширенную версию MIPS III и совместим со всеми существующими моделями MIPS. Первая реализация MIPS IV была представлена в 1994 году под названием R8000. MIPS IV включил в себя:

MIPS V

MIPS V — пятая версия архитектуры, была представлена 21 октября 1996 года на Микропроцессорном форуме 1996 года. Эта модель была разработана для того, чтобы повысить производительность графических 3D-приложений. В середине 1990-х большая часть не встроенных микропроцессоров MIPS приходилась на графические терминалы от SGI. Разработка MIPS V была дополнена целочисленными мультимедийными расширениями MDMX (MIPS Digital Media Extensions), которые были представлены в тот же день, что и MIPS V.

Реализации MIPS V так никогда и не были внедрены. В 1997 году SGI представила микропроцессоры под названиями «H1» («Beast») и «H2» («Capitan»), которые должны были быть произведены в 1999 году. Но вскоре их объединили, и в конечном итоге в 1998 году эти проекты были отменены.

В MIPS V был добавлен новый тип данных — PS (pair-single), который представляет собой два числа с плавающей запятой двойной точности (32-битные), хранящиеся в 64-битном регистре с плавающей запятой. Чтобы работать с этим типом данных в режиме SIMD, были добавлены различные варианты арифметических, сравнительных операций над числами с плавающей запятой, а также команда условного перехода. Появились новые инструкции для загрузки, реконфигурации и преобразования PS-данных. Это первая архитектура, сумевшая реализовать обработку чисел с плавающей запятой в SIMD-режиме с имеющимися ресурсами. [Источник 1]

MIPS32/MIPS64

Множества 32-битных инструкций MIPS32 и 64-битных инструкций MIPS64 были представлены в 1999 году. MIPS32 основан на MIPS II с некоторыми дополнительными функциями от MIPS III, MIPS IV, MIPS V; MIPS64 основан на MIPS V. Такие корпорации как NEC, Toshiba, SiByte приобрели лицензии на множество инструкций MIPS64 сразу после их анонса. Остальные корпорации, такие как Philips, присоединились к ним позже.

MIPS32/MIPS64 релиз 1

Первая версия MIPS32, основанная на множестве инструкция MIPS II добавила перемещения по условиям, инструкции перемещения и другие возможности из семейств R4000 и R5000 64-битных процессоров. Первая версия MIPS64 добавила режим выполнения запуская 32-битного когда.

MIPS32/MIPS64 релиз 2

MIPS32/MIPS64 релиз 3

MIPS32/MIPS64 релиз 4 (пропущен)

Пропущен, так как с числом 4 в некоторых азиатских странах связанно дурное поверье.

MIPS32/MIPS64 релиз 5

Анонсирована в 2012.

MIPS32/MIPS64 релиз 6

MIPS32/MIPS64 2014 года добавляла следующие возможности:

Удалены редко используемые инструкции:

Изменилась кодировка команд, освободилось место для будущих расширений. [Источник 2]

Расширения на уровне приложений

MIPS MCU ASE

Улучшения для приложений микроконтроллеров. Разработан для расширения прерывания поддержки контроллера, уменьшения задержки и улучшений контроля ввода вывода типичных для микроконтроллерных систем.

MIPS16

MIPS16e

MIPS16e2

MIPS DSP ASE

DSP ASE является дополнительным расширением для MIPS32 / MIPS64 Release 2 и более новых наборов команд, которые можно использовать для ускорения большого диапазона вычислений «мультимедиа», в частности аудио и видео. Модуль DSP содержит набор инструкций и состояний в целочисленном конвейере и требует минимальной дополнительной логики для реализации в ядрах процессора MIPS. Редакция 2 ASE была представлена ​​во второй половине 2006 года. Эта ревизия добавляет дополнительные инструкции к оригинальной ASE, но в остальном обратно совместима с ней. В отличие от основной части архитектуры MIPS, это довольно нерегулярный набор операций, многие из которых выбраны для определенной релевантности некоторому ключевому алгоритму. [Источник 3]

MIPS SIMD

Множество расширений инструкций предназначены для ускорения мультимедиа.

eXtended Physical Address (XPA)

Расширяет до 40 бит физический адрес (до 1 ТБ).

MIPS Virtualization

Поддержка на уровне железа технологий виртуализации

MIPS Multi-Threading

Источник

MIPS или ARM?

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

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

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

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

Архитектура mips что это. 1 opt 2. Архитектура mips что это фото. Архитектура mips что это-1 opt 2. картинка Архитектура mips что это. картинка 1 opt 2.

Высокое быстродействие 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 при различных технологических нормах и параметрах оптимизации

Источник

Добавить комментарий

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

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