MIPS (Microprocessor without Interlocked Pipeline Stages)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:14, 23 января 2019.
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 (англ. Microprocessor without Interlocked Pipeline Stages) — микропроцессоры, разработанные компанией MIPS Computer Systems (в настоящее время MIPS Technologies) в соответствии с архитектурой RISC. Наиболее распространенным являются процессоры на архитектурах MIPS 32 и MIPS 64. Основанная на наследии построенных и постоянно развивающихся на протяжении более чем трёх десятилетиях архитектура процессоров MISC - самая эффективная архитектура среди всех RISC архитектур, предоставляющая лучшую производительность и самое низкое энергопотребление среди своих конкурентов. Инженеры SoC имеют возможность использовать эти преимущества для значительного снижения затрат и снижения потребления или для создания дополнительных ядер, чтобы предоставить преимущество в производительности перед классом устройств с такими же энерго, термо и стоимостными характеристиками.

Описание

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

MIPS - одна из трех архитектур официально поддерживаемых компанией Google на своей платформе Android, таким образом данная архитектура идеальна для устройств на базе Андроид, так же как и на множестве других ОС, включая Linux, и такие варианты как RTOS. С миллиардами уже проданных устройств многие университеты и школы по всему свету изучают архитектуру CPU используя MIPS в качестве основного источника знаний, MIPS - будущее завтрашних SoC, от высокопроизводительных мобильных приложений до устройств, почти не потребляющих энергию.

Архитектура

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

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

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

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

microAptiv™

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

interAptiv™

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

proAptiv™

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

Ядра MIPS Series5 Warrior

Представленные в 2013, данные ядра - представители новых архитектурных решений. Это семейство включает 32-битные и 64-битные варианты с фокусом на высокую производительность для микропроцессоров высокого, среднего и начального ценовых сегментов. Построенные на настоящих 32 и 64-битных множествах инструкций MIPS, предоставляют бинарную совместимость с другими процессорами MIPS. 64-битные ядра Warriror не нуждаются в лишнем багаже кода, для исполнения оригинального 32-битного ПО, таким образом позволяют использовать приложения, созданные за 20 лет существования архитектуры. Ключевые возможности:

  • Виртуализация на уровне железа на целом множестве ядер предоставляет неоспоримые преимущества для приложений от высокоинтенсивных окружений в корпоративных приложениях до ресурсоэффективных мобильных платформ
  • Поддержка многопоточности, позволяет улучшить огромное множество параметров, таких как качество QoS.
  • Уникальные, расширяемый фреймворк для приложений, включаязащиту данных на мобильных устройствах, сетевых ротоколах и сервисах оплаты.
  • MIPS SIMD архитектура, построенная на инструкциях, разработанных для прямой поддержки высокоуровневыми языками такими как C или OpenCL для быстрой и простой разработки нового ПО и так же для поддержки старого.

Продукты

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

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

MIPS I

Первая версия архитектуры MIPS была разработана MIPS Computer Systems для своего микропроцессора R2000, первой реализации MIPS. И MIPS, и R2000 были введены вместе в 1985 году. Когда MIPS II был представлен, MIPS был переименован в MIPS I, чтобы отличить его от новой версии. MIPS - это архитектура загрузки / хранения; за исключением команд загрузки / сохранения, используемых для доступа к памяти , все инструкции работают с регистрами.

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 включил в себя:

  • Простой регистр + регистр адресации для загрузки и хранения чисел с плавающей запятой
  • Операции FMA и FMS одинарной и двойной точности для чисел с плавающей запятой
  • Команды условного перехода для целых чисел и для чисел с плавающей запятой
  • Дополнительные условные биты в регистре контроля и состояния числа с плавающей запятой: в общей сложности 8 битов.

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 года добавляла следующие возможности:

  • новое семейство ветвей без слотов задержки
    • бессостоятельные ветви и BALC с 26 битным смещением
    • условные ветки для нуля/не нуля с 21-битным смещением
    • полное множество знаковых и беззнаковых ветвей сравнения между двумя регистрами(BGTUC) или регистр нуля(BGTZC)
  • инструкции без задержки для поддержки длинных абсолютных адресов
  • инструкции загрузки 16-битных немедленных команд на позиции 16б 31 и 48, позволяя легко создавать большие константы
  • относящиеся к PC инструкции загрузки, так же как адрес генерации больших смещений относящихся к PC
  • инструкции переворота и битового выравнивания инструкций(раньше были доступны только с расширением DSP).
  • инструкции умножения и деления переопределены использовать один регистр для хранения результата
  • инструкции формирующие положительные значения генерируют все нули или все единицы для очистки или установки 0 бита
  • инструкции использующие булевое значение интерпретируют все нули как ложное, вместо того, чтобы смотреть на первый нулевой бит

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

  • некоторые условные ходы
  • вероятные ветки инструкции (не рекомендуется в предыдущих выпусках).
  • целочисленные инструкции по перехвату переполнения с 16-битным
  • инструкции целочисленного аккумулятора (вместе регистры HI / LO, перемещенные в расширение для конкретного приложения DSP)
  • инструкции невыровненной загрузки (LWL и LWR) (требующие, чтобы большинство обычных загрузок и хранилищ поддерживали неправильный доступ, возможно, с помощью перехвата и с добавлением новой инструкции (BALIGN))

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

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

MIPS MCU ASE

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

  • Раздельный приоритет и векторная генерация
  • Поддержка 256 прерываний в режиме EIC и восьми прерываний на уровне разъемов.
  • 16-битный вектор смещения адресов
  • Предрасчетный вектор прерывания исключения
  • AIE - восстанавливает состояние системы, которое хранилось на стеке для возврата из прерывания.
  • Сцепление прерывания - поддержка сервиса ожидания прерываний без необходимость выхода в начальные режим прерывания, сохраняет такты для хранения и восстановления множества активных прерываний.

MIPS16

MIPS16 - это специализированное расширение для MIPS I-to-V, разработанное LSI Logic и MIPS Technologies, анонсированное 21 октября 1996 года вместе с его первой реализацией, процессором LSI Logic TinyRISC. MIPS16 был впоследствии лицензирован NEC Electronics, Philips Semiconductors и Toshiba (среди прочих); и реализован в качестве расширения архитектуры MIPS I, II, III. MIPS16 уменьшает размер приложения до 40% за счет использования 16-битных инструкций вместо 32-битных инструкций, а также повышает эффективность энергопотребления, частоту обращений к кэшу команд и эквивалентна по производительности своей базовой архитектуре. Он поддерживается инструментами разработки аппаратного и программного обеспечения от MIPS Technologies и других поставщиков.

MIPS16e

IPS16e - это улучшенная версия MIPS16, впервые поддерживаемая MIPS32 и MIPS64 Release 1.

MIPS16e2

MIPS16e2 - это улучшенная версия MIPS16, поддерживаемая MIPS32 и MIPS64 (до выпуска 5). Выпуск 6 заменил его на microMIPS.

MIPS DSP ASE

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

MIPS SIMD

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

  • 32 векторных регистра по 16 x 8-битных, 8 x 16-битных, 4 x 32-битных и 2 x 64-битных векторных элементов
  • Эффективные векторные параллельные арифметические операции с целочисленными данными, данными с фиксированной и с плавающей точкой
  • Операции с операндами абсолютного значения
  • Доступны варианты округления и насыщения
  • Полная точность умножения и умножения-сложения
  • Преобразование между целочисленными данными, данными с плавающей точкой и данными с фиксированной точкой
  • Полный набор инструкций сравнения на уровне вектора и ветвления без флага условия
  • Соответствует стандарту IEEE для арифметики с плавающей точкой 754-2008
  • Элемент точной сигнализации исключения с плавающей точкой
  • Предопределенные масштабируемые расширения для чипов с большим количеством затворов / транзисторов
  • Ускоряет ресурсоемкие приложения в сочетании с общей поддержкой компиляторов
  • Новые данные, интеллектуальный анализ данных, обработка изображений и видео, а также приложения взаимодействия человека с компьютером.
  • Высокопроизводительные научные вычисления

eXtended Physical Address (XPA)

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

MIPS Virtualization

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

MIPS Multi-Threading

Каждое ядро MIPS способно поддерживать до двух VPE, которые делят один конвейер, как другие ресурсы железа. Как бы то ни было, из-за того что каждый элемент VPE включает полную копию состояния процессора, видимого системой ОС, каждый VPE выглядит как отдельный процессор в ОС Linux. Архитектура MIPS MT позволяет отправляют такты в потоки и множество родственных потоковых приоритетов с опциональным качеством сервиса. Это позволять двум механизмам приоритета определить поток информации между шиной. Первый механизм позволяет пользователю выставить приоритет одного потока над другим. Второй - выделить отношение циклов к одному потоку с течением времени. Комбинированное использование обоих механизмов позволяет эффективно выделять пропускную способность множества потоков и лучше контролировать задержки. В системах реального времени, определение на уровне системы критично и QoS блок решает задачу улучшения предсказуемости системы. Разработчики железа продвинутых систем могут заменить стандартный QoS на более подходящий их задачам. Однопоточные процессоры сегодня тратят впустую много циклов, в то время как ожидание доступа к памяти сильно ограничивает производительность системы. Использования мультипотоков в результате значительно увеличивает скорость выполнения приложений. Пользователь может выделить определенную ширину для задач реального времени, тем самым гарантируя QoS.

Источники

  1. Digital, MIPS Add Multimedia Extensions // Microdesign resources. Дата обновления: 18.11.1996. URL: http://studies.ac.upc.edu/ETSETB/SEGPAR/microprocessors/mdmx%20(mpr).pdf (дата обращения: 23.01.2019).
  2. MIPS – Market-leading RISC CPU IP processor solutions // Imagination. Дата обновления: 04.03.2016. URL: https://www.imgtec.com. (дата обращения: 11.01.2019).
  3. Instruction Set Architecture - LinuxMIPS // Wikipedia. [2019-2019]. Дата обновления: 20.04.2017. URL: https://www.linux-mips.org/wiki/Instruction_Set_Architecture#DSP_ASE (дата обращения: 11.01.2019).