СуперХ

Архитектура набора инструкций от Hitachi
СуперH (SH)
ДизайнерХитачи
Биты32-бит (32 → 64)
Введено1992 [1]
ДизайнРИСК
КодированиеSH-2: 16-битные инструкции
SH-2A и новее: смешанные 16- и 32-битные инструкции
Порядковый номер байтовБи
ОткрытьДа, и безвозмездно [2]

SuperH (или SH ) — это 32-битная архитектура набора инструкций (ISA) с сокращенным набором команд (RISC ), разработанная Hitachi и в настоящее время производимая Renesas . Она реализуется микроконтроллерами и микропроцессорами для встраиваемых систем .

На момент появления SuperH отличался наличием 16-битных инструкций фиксированной длины, несмотря на свою 32-битную архитектуру. Использование меньших инструкций имело последствия: регистровый файл был меньше, а инструкции, как правило, имели двухоперандный формат. Однако для рынка, на который был нацелен SuperH, это была небольшая цена за улучшенную память и эффективность кэша процессора .

Более поздние версии дизайна, начиная с SH-5, включали как 16-, так и 32-битные инструкции, причем 16-битные версии отображались на 32-битную версию внутри ЦП. Это позволяло машинному коду продолжать использовать более короткие инструкции для экономии памяти, не требуя при этом объема логики декодирования инструкций, необходимой, если бы они были полностью отдельными инструкциями. Эта концепция теперь известна как сжатый набор инструкций и также используется другими компаниями, наиболее ярким примером является ARM с ее набором инструкций Thumb .

В 2015 году срок действия многих первоначальных патентов на архитектуру SuperH истек, и процессор SH-2 был повторно реализован как аппаратное обеспечение с открытым исходным кодом под названием J2.

История

Ш-1 и Ш-2

SH-2 на Sega 32X и Sega Saturn

Семейство ядер процессоров SuperH было впервые разработано Hitachi в начале 1990-х годов. Концепция дизайна заключалась в едином наборе инструкций (ISA), который был бы совместим снизу вверх по ряду ядер ЦП .

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

Одним из ключевых осознаний в ходе разработки концепции RISC было то, что микрокод имел конечное время декодирования, и по мере того, как процессоры становились быстрее, это представляло собой неприемлемую потерю производительности. Чтобы решить эту проблему, Hitachi вместо этого разработала единую ISA для всей линейки, с неподдерживаемыми инструкциями, вызывающими ловушки в тех реализациях, которые не включали аппаратную поддержку. Например, начальные модели в линейке, SH-1 и SH-2, отличались только поддержкой 64-битного умножения; SH-2 поддерживала MUL, DMULSи DMULU, тогда как SH-1 вызывала ловушку, если они встречались. [3]

SH-1 была базовой моделью, поддерживая в общей сложности 56 инструкций. SH-2 добавила 64-битное умножение и несколько дополнительных команд для ветвления и других задач, доведя общее количество поддерживаемых инструкций до 62. [3] SH-1 и SH-2 использовались в Sega Saturn , Sega 32X и Capcom CPS-3 . [4]

ISA использует 16-битные инструкции для лучшей плотности кода, чем 32-битные инструкции, что было важно в то время из-за высокой стоимости основной памяти и стоимости реализации кэша. По состоянию на 2023 год плотность кода по-прежнему важна для небольших встраиваемых систем и многоядерных процессоров. Недостатками этого подхода было то, что для кодирования номера регистра или постоянного значения было доступно меньше бит. В оригинальной SuperH ISA было всего 16 общих регистров, требующих четыре бита для источника и еще четыре для назначения; однако некоторые инструкции имеют подразумеваемые R0, R15 или системный регистр в качестве дополнительного операнда. Код операции инструкции имеет длину четыре, восемь, двенадцать или шестнадцать бит, а оставшиеся четырехбитные поля используются для регистра или непосредственных операндов различными способами: существует двенадцать классов инструкций, что в общей сложности составляет 142 инструкции в SH-2. [5]

Отложенные переходы введены как для SH-1, так и для SH-2. Инструкции безусловного перехода имеют один слот задержки . [6]

Ш-3

Несколько лет спустя ядро ​​SH-3 было добавлено в семейство; новые функции включали другую концепцию прерываний , блок управления памятью (MMU) и измененную концепцию кэша. Эти функции требовали расширенного набора инструкций, добавляя шесть новых инструкций, в общей сложности 68. [3] SH-3 был bi-endian , работая либо в big-endian, либо в little-endian порядке байтов.

Ядро SH-3 также добавило расширение DSP , тогда называемое SH-3-DSP. С расширенными путями данных для эффективной обработки DSP, специальными аккумуляторами и выделенным движком DSP типа MAC , это ядро ​​объединило мир DSP и процессоров RISC. Производная DSP также использовалась с оригинальным ядром SH-2.

В период с 1994 по 1996 год по всему миру было продано 35,1 миллиона устройств SuperH. [7]

Ш-4

В 1997 году Hitachi и STMicroelectronics (STM) начали сотрудничать в разработке SH-4 для Dreamcast . SH-4 отличался суперскалярным (двусторонним) выполнением инструкций и векторным блоком с плавающей точкой (особенно подходящим для 3D-графики ). Стандартные чипы на основе SH-4 были представлены около 1998 года. [8]

Лицензирование

В начале 2001 года Hitachi и STM сформировали IP-компанию SuperH, Inc., которая собиралась лицензировать ядро ​​SH-4 другим компаниям и разрабатывала архитектуру SH-5, первый шаг SuperH в 64-битную область. Более ранние версии SH-1 по 3 оставались собственностью Hitachi. [8] [9]

В 2003 году Hitachi и Mitsubishi Electric создали совместное предприятие Renesas Technology , в котором Hitachi контролировала 55%. В 2004 году Renesas Technology выкупила долю STMicroelectronics в SuperH Inc., а вместе с ней и лицензию на ядра SH. [10] Позднее Renesas Technology стала Renesas Electronics после слияния с NEC Electronics .

Конструкция SH-5 поддерживала два режима работы: режим SHcompact, который эквивалентен инструкциям пользовательского режима набора инструкций SH-4; и режим SHmedia, который сильно отличается тем, что использует 32-битные инструкции с шестьюдесятью четырьмя 64-битными целочисленными регистрами и инструкциями SIMD . В режиме SHmedia назначение перехода ( перехода) загружается в регистр перехода отдельно от фактической инструкции перехода. Это позволяет процессору предварительно выбирать инструкции для перехода без необходимости отслеживать поток инструкций. Сочетание компактной 16-битной кодировки инструкций с более мощной 32-битной кодировкой инструкций не является уникальным для SH-5; процессоры ARM имеют 16-битный режим Thumb (ARM лицензировала несколько патентов от SuperH для Thumb [11] ), а процессоры MIPS имеют режим MIPS-16. Однако SH-5 отличается тем, что его режим обратной совместимости — это 16-битная кодировка, а не 32-битная кодировка.

Последний эволюционный шаг произошел около 2003 года, когда ядра от SH-2 до SH-4 были объединены в суперскалярное ядро ​​SH-X, которое образовало своего рода надмножество наборов инструкций предыдущих архитектур и добавило поддержку симметричной многопроцессорной обработки .

Постоянная доступность

С 2010 года ядра, архитектура и продукты ЦП SuperH принадлежат Renesas Electronics , а архитектура консолидирована вокруг платформ SH-2, SH-2A, SH-3, SH-4 и SH-4A. Продукты систем на кристалле на основе микропроцессоров SH-3, SH-4 и SH-4A впоследствии были заменены более новыми поколениями на основе лицензированных ядер ЦП от Arm Ltd. , при этом многие из существующих моделей все еще продаются и продаются до марта 2025 года через программу Renesas Product Longevity Program. [12]

Начиная с 2021 года компания Renesas продолжает продавать микроконтроллеры SH72xx на базе SH-2A с гарантированной доступностью до февраля 2029 года, наряду с новыми продуктами на базе нескольких других архитектур, включая Arm , RX и RH850 .

J-ядро

Последний из патентов SH-2 истек в 2014 году. На LinuxCon Japan 2015 разработчики j-core представили чистую переработку SH-2 ISA с расширениями (известную как «J2 core» из-за неистекших товарных знаков ). [11] [13] Впоследствии пошаговое руководство по проектированию было представлено на ELC 2016. [14]

Код VHDL с открытым исходным кодом , лицензированный BSD, для ядра J2 был проверен на ПЛИС Xilinx и на микросхемах ASIC, изготовленных по 180-нм техпроцессу TSMC , и способен загружать μClinux . [11] J2 обратно совместим с ISA SH-2, реализован как 5-ступенчатый конвейер с отдельными интерфейсами памяти инструкций и данных, а также сгенерированный машиной декодер инструкций, поддерживающий плотно упакованный и сложный (по сравнению с другими машинами RISC) ISA. Дополнительные инструкции легко добавлять. J2 реализует инструкции для динамического сдвига (используя шаблоны инструкций SH-3 и более поздние), расширенные атомарные операции (используемые для примитивов потоковой обработки) и блокировку/интерфейсы для поддержки симметричной многопроцессорной обработки. Планируется реализовать наборы инструкций SH-2A (как «J2+») и SH-4 (как «J4»), поскольку соответствующие патенты истекают в 2016–2017 годах. [11] [ требуется обновление ]

Несколько особенностей SuperH были названы в качестве мотиваций для проектирования новых ядер на основе этой архитектуры: [11]

  • Высокая плотность кода по сравнению с другими 32-битными RISC ISA, такими как ARM или MIPS [15], важна для производительности кэша и пропускной способности памяти.
  • Поддержка существующих компиляторов и операционных систем ( Linux , Windows Embedded , QNX [13] )
  • Чрезвычайно низкие затраты на изготовление ASIC теперь, когда истекает срок действия патентов (около 0,03 долл. США за двухъядерное ядро ​​J2 на 180-нм техпроцессе TSMC).
  • Реализация без патентов и роялти (лицензия BSD)
  • Полная и активная поддержка сообщества
  • Наличие недорогой аппаратной платформы разработки для инструментов ПЛИС с нулевыми затратами
  • Инструменты для генерации и интеграции RTL для ЦП и СнК, создание переносимых RTL для ПЛИС и ASIC и документации
  • Чистый, современный дизайн с открытым исходным кодом для проектирования, генерации, моделирования и верификации среды

Модели

Сравнение поколений [16]
Тактовая частота
[МГц]
Производительность компьютераИзображение
MIPSШВАБРЫГФЛОПС
Ш-12020SH-1-Процессор
Ш-228,778120SH-2-Процессор
Ш-3200260400SH-3-Процессор
Ш-42004801,9SH-4-Процессор
Ш-540070096002,8
Ш-6>2000>24000>7,0

Семейство ядер ЦП SuperH включает в себя:

  • SH-1 – используется в микроконтроллерах для глубоко встраиваемых приложений ( приводы CD-ROM , крупная бытовая техника и т. д.)
  • SH-2 – используется в микроконтроллерах с более высокими требованиями к производительности, сетевых приложениях, а также в игровых консолях, таких как Sega Saturn и Sega 32X add-on. SH-2 также нашел свое место во многих приложениях для автомобильных блоков управления двигателями , включая Subaru , Mitsubishi и Mazda .
  • SH-2A – Ядро SH-2A является расширением ядра SH-2, включая несколько дополнительных инструкций, но, что самое важное, переход на суперскалярную архитектуру (оно способно выполнять более одной инструкции за один цикл) и два пятиступенчатых конвейера. Оно также включает 15 банков регистров для облегчения задержки прерывания в 6 тактовых циклов. Оно также сильно в приложениях управления двигателем, но также и в мультимедиа, автомобильной аудиосистеме, трансмиссии, управлении кузовом автомобиля и автоматизации офисов и зданий
  • SH-DSP — изначально разработанный для рынка мобильных телефонов , позже используемый во многих потребительских приложениях, требующих производительности DSP для сжатия JPEG и т. д.
  • SH-3 – используется для мобильных и карманных приложений, таких как Jornada , сильна в приложениях Windows CE и много лет представлена ​​на рынке автомобильной навигации. Cave CV1000 , аналогичный центральному процессору оборудования Sega NAOMI , также использовал этот процессор. Музыкальные производственные блоки Korg Electribe EMX и ESX также используют SH-3. [17]
  • SH-3-DSP – используется в основном в мультимедийных терминалах и сетевых приложениях, а также в принтерах и факсимильных аппаратах.
  • SH-4 – используется там, где требуется высокая производительность, например, в автомобильных мультимедийных терминалах, игровых приставках , в частности Dreamcast , или телевизионных приставках.
  • SH-5 – используется в высокопроизводительных 64-битных мультимедийных приложениях.
  • SH-X – основное ядро, используемое в различных вариантах (с/без блока DSP или FPU) в блоках управления двигателем, автомобильном мультимедийном оборудовании, телевизионных приставках или мобильных телефонах.
  • SH-Mobile – мобильный процессор приложений SuperH; разработан для разгрузки обработки приложений от основной полосы LSI

Ш-2

Процессор Hitachi SH-2

SH-2 представляет собой 32-разрядную RISC-архитектуру с 16-разрядной фиксированной длиной инструкций для высокой плотности кода, оснащенную аппаратным блоком умножения-накопления (MAC) для алгоритмов цифровой обработки сигналов и пятиступенчатым конвейером.

SH-2 имеет кэш на всех устройствах без ПЗУ .

Он предоставляет 16 регистров общего назначения, векторный регистр, глобальный регистр и процедурный регистр.

Сегодня семейство SH-2 простирается от 32 КБ встроенной флэш-памяти до устройств без ПЗУ. Оно используется в различных устройствах с различными периферийными устройствами, такими как CAN, Ethernet, блок таймера управления двигателем, быстрый АЦП и другие.

Ш-2А

SH-2A — это обновление ядра SH-2, в которое добавлены некоторые 32-битные инструкции. Он был анонсирован в начале 2006 года.

Новые функции ядра SH-2A включают в себя:

  • Суперскалярная архитектура: выполнение 2 инструкций одновременно
  • Гарвардская архитектура
  • Два 5-ступенчатых трубопровода
  • Смешанные 16-битные и 32-битные инструкции
  • 15 банков регистров для реагирования на прерывания за 6 циклов.
  • Дополнительный FPU

Семейство SH-2A сегодня охватывает широкий диапазон памяти от 16 КБ и включает в себя множество вариаций без ПЗУ. Устройства оснащены стандартными периферийными устройствами, такими как CAN , Ethernet , USB и т. д., а также более специализированными периферийными устройствами, такими как таймеры управления двигателем , контроллеры TFT и периферийные устройства, предназначенные для автомобильных силовых агрегатов.

Ш-3

Процессор Hitachi SH-3 ( версия BGA )

Ш-4

SH-4 — это RISC-процессор, разработанный в первую очередь для использования в мультимедийных приложениях, таких как игровые системы Sega Dreamcast и NAOMI . Он включает в себя гораздо более мощный блок с плавающей точкой [примечание] и дополнительные встроенные функции, а также стандартную 32-битную целочисленную обработку и 16-битный размер инструкций.

Характеристики SH-4 включают в себя:

  • FPU с четырьмя умножителями с плавающей точкой, поддерживающими 32-битные числа одинарной точности и 64-битные числа двойной точности с плавающей точкой
  • Операция скалярного произведения 4D с плавающей точкой и умножение матрицы на вектор
  • 128-битная шина с плавающей точкой, обеспечивающая скорость передачи данных из кэша 3,2 ГБ/с
  • 64-битная внешняя шина данных с 32-битной адресацией памяти, позволяющая использовать максимум 4 ГБ адресуемой памяти (см. Байтовая адресация ) со скоростью передачи данных 800 МБ/с
  • Встроенные контроллеры прерываний, прямого доступа к памяти и управления питанием

^ В кастомной модели SH-4, созданной для Casio, SH7305, FPU отсутствует.

Ш-5

SH-5 — это 64-битный RISC-процессор. [18]

Почти не было выпущено несимулированного оборудования SH-5 [19] и, в отличие от все еще работающего SH-4, поддержка SH-5 была прекращена в GCC [20] и Linux.

Ш-6

SH-6 был анонсированным, но так и не реализованным дальнейшим развитием. Он должен был достичь более 2 GIPS, более 7 GFLOPS и более 24 GOPS. [16]

Ссылки

Цитаты

  1. ^ "История Hitachi SH-2 и Sega Saturn". www.sega-16.com . Renesas. Архивировано из оригинала 2023-02-27 . Получено 27 февраля 2023 .
  2. ^ Открытый процессор J-core
  3. ^ Программа abc 1996, стр. 1.
  4. ^ "CP System III (CPS3) Hardware (Capcom)". www.system16.com . System 16 . Получено 3 августа 2019 .
  5. Программа 1996, стр. 30–33.
  6. ^ "Руководство по оборудованию SH7020 и SH7021SuperH™ RISC engine". стр. 19,48 . Получено 2023-12-02 .
  7. ^ "360-MIPS SuperH RISC Processor Enables Personal Access Systems SH7750 Launches the SH-4 Series". Ноябрь 1997. Архивировано из оригинала 5 марта 2016.
  8. ^ ab "STMicro, Hitachi планируют новую компанию по разработке ядер RISC". EE Times . 3 апреля 2001 г. Hitachi создала семейство процессоров SH и разработала его первые четыре основные итерации, но сотрудничала с ST с 1997 г., когда компании договорились о совместном использовании общей дорожной карты высокопроизводительных микропроцессоров. Они совместно разработали 32-битное ядро ​​процессора SH4 RISC и начали разработку архитектуры SH5, которая теперь будет завершена SuperH. Первоначальным продуктом SuperH станет ядро ​​SH4. Более ранние версии SH не будут частью соглашения о выделении.
  9. ^ "SuperH, Inc. создана Hitachi и STMicroelectronics для ускорения распространения ядер SuperH во встраиваемых микропроцессорных приложениях". Архивировано из оригинала 19 февраля 2016 г.
  10. Кларк, Питер (28 сентября 2004 г.). «Renesas возьмет на себя основной бизнес SuperH». EE Times .
  11. ^ abcde Натан Уиллис (10 июня 2015 г.). «Воскрешение архитектуры SuperH». LWN.net .
  12. ^ ""SuperH RISC Engine Family MCUs"". Renesas Electronics .
  13. ^ ab "J Cores". j-core. Архивировано из оригинала 11 мая 2016 г. Получено 27 апреля 2016 г.
  14. ^ "j-core Design Walkthrough" (PDF) . Архивировано (PDF) из оригинала 2016-06-17.
  15. ^ VM Weaver (17 марта 2015 г.). «Изучение пределов плотности кода (технический отчет с новейшими результатами)» (PDF) . Архивировано (PDF) из оригинала 2015-07-13.
  16. ^ ab Fumio Arakawa (2013-07-27). "SH-5: первое 64-битное ядро ​​SuperH с расширением мультимедиа" (PDF; 617 кБ) . Hitachi, Ltd. Получено 2022-02-08 .
  17. ^ Кувабара, М. (25 июля 2019 г.). "Korg EMX / ESX Service Manual" (PDF) . Архивировано из оригинала (PDF) 13 июля 2019 г.
  18. ^ "SH-5 CPU Core, Volume1: Architecture" (PDF) . Архивировано (PDF) из оригинала 2009-03-20.
  19. ^ "Пресс-релиз Wasabi SH-5". 8 марта 2016 г.
  20. ^ "GCC 7 Release Series Изменения, новые функции и исправления". 2 февраля 2018 г.

Библиография

  • Руководство по программированию SuperH RISC Engine SH-1/SH-2 (PDF) . Hitachi Americal Ltd. 3 сентября 1996 г. . Получено 2020-12-06 .
  • Архитектура ядра ЦП SH-4 (PDF) . STMicroelectronics и Hitachi Ltd. 12 сентября 2002 г. ADCS 7182230F . Получено 06.12.2020 .
  • Renesas SuperH, Продукты, Инструменты, Руководства, Примечания к приложению, Информация
  • Открытый процессор J-core
  • J-core на GitHub
  • Список разработок Linux SuperH
  • DCTP - Hitachi 200 МГц SH-4 на Wayback Machine (архивировано 10 августа 2016 г.)
  • в процессе портирования Debian для SH4
  • Чен, Рэймонд (5 августа 2019 г.). "SuperH-3, часть 1: Введение". The Old New Thing (блог) . Получено 22.01.2024 . Серия из 15 частей по программированию микропроцессора.
Взято с "https://en.wikipedia.org/w/index.php?title=SuperH&oldid=1271518179#SH-4"