SuperH
SuperH (або SH) — це 32-розрядна архітектура системи команд (ISA) зі скороченим набором інструкцій (RISC), розроблена Hitachi і наразі виробляється Renesas[en]. Реалізується мікроконтролерами та мікропроцесорами для вбудованих систем.
На момент появи SuperH відрізнявся тим, що мав 16-розрядні інструкції фіксованої довжини, незважаючи на свою 32-розрядну архітектуру. Це був новий підхід; у той час процесори RISC завжди використовували розмір інструкції, який був таким же, як і ширина внутрішніх даних, зазвичай 32 біти. Використання менших інструкцій мало наслідки: файл реєстру був меншим, а інструкції, як правило, мали двооперандний формат. Але для ринку, на який був орієнтований SuperH, це була невелика ціна за покращену і ефективність пам'яті і кеша процесора.
Пізніші версії, починаючи з SH-5, включали як 16-, так і 32-розрядні інструкції, при цьому 16-розрядні версії відображалися на 32-розрядну версію всередині ЦП. Це дозволило машинному коду продовжувати використовувати коротші інструкції для збереження пам'яті, не вимагаючи необхідної кількості логіки декодування інструкцій, якщо вони були повністю окремими інструкціями. Ця концепція тепер відома як стиснутий набір інструкцій[en] і також використовується іншими компаніями, найбільш помітним прикладом є ARM для свого набору інструкцій Thumb.
Станом на 2015, багато оригінальних патентів на архітектуру втратили чинність, і процесор SH-2 був повторно імплементований як відерите апаратне забезпечення під назвою J2.
Сімейство ядер процесорів SuperH було вперше розроблено Hitachi на початку 1990-х років. Концепція дизайну полягала в єдиному наборі інструкцій (ISA), який був би сумісним[en] з майбутніми серіями ядер ЦП.
У минулому такого роду проблеми проектування можна було б вирішити за допомогою мікрокоду, коли моделі нижчого класу в серії виконували нереалізовані інструкції як низку більш базових інструкцій. Наприклад, «довге множення» (множення двох 32-розрядних регістрів для отримання 64-розрядного добутку) може бути реалізовано в апаратному забезпеченні на моделях високого класу, але натомість виконуватися як серія додавань на моделях нижчого класу.
Одним із ключових усвідомлень під час розробки концепції RISC було те, що мікрокод мав кінцевий час декодування, і оскільки процесори ставали швидшими, це являло собою неприпустимі накладні витрати на продуктивність. Щоб вирішити цю проблему, Hitachi натомість розробила єдиний ISA для всієї лінійки з «пастками» непідтримуваних інструкцій для тих реалізацій, які не включали підтримку апаратним забезпеченням. Наприклад, початкові моделі лінійки SH-1 і SH-2 відрізнялися лише підтримкою 64-розрядного множення; SH-2 підтримував MUL
, DMULS
і DMULU
, тоді як SH-1 викликав би пастку, якщо б вони були виявлені.[1]
SH-1 була базовою моделлю, яка підтримувала загалом 56 інструкцій. SH-2 додав 64-розрядне множення та кілька додаткових команд для розгалуження та інших завдань, довівши загальну кількість підтримуваних інструкцій до 62.[1] SH-1 і SH-2 використовувалися в Sega Saturn, Sega 32X і Capcom CPS-3[en].[2]
ISA використовує 16-розрядні інструкції для кращої щільності коду, ніж 32-розрядні інструкції, що було великою перевагою на той час через високу вартість основної пам'яті. Недоліки цього підходу полягали в тому, що було менше бітів, доступних для кодування номера регістра або постійного значення. У SuperH ISA було лише 16 регістрів, які вимагали чотири біти для джерела та ще чотири для призначення. Сама інструкція також складалася з чотирьох бітів, залишаючи ще чотири біти неврахованими. Деякі інструкції використовували ці останні чотири біти для зміщення під час доступу до масиву, тоді як інші поєднували другий регістровий слот і останні чотири біти для отримання 8-бітної константи.[3]
Через кілька років ядро SH-3 було додано до сімейства; нові функції включали іншу концепцію переривань, блок керування пам'яттю (MMU) і модифіковану концепцію кешу. Ці функції вимагали розширеного набору інструкцій, додавши шість нових інструкцій до загальної кількості 68 інструкцій.[1] SH-3 був bi-endian, працював у порядку байтів або в порядку старшого, або в порядку малого.
Ядро SH-3 також додало розширення DSP, яке тоді називалося SH-3-DSP. З розширеними шляхами передачі даних для ефективної обробки DSP, спеціальними накопичувачами та спеціальним механізмом DSP типу MAC це ядро об'єднало світ процесорів DSP і RISC. Похідний DSP також використовувався з оригінальним ядром SH-2.
Між 1994 і 1996 роками по всьому світу було поставлено 35,1 мільйона пристроїв SuperH.[4]
У 1997 році Hitachi і STMicroelectronics (STM) почали співпрацю над дизайном SH-4 для Dreamcast. SH-4 мав суперскалярне (двоканальне) виконання інструкцій і векторний блок з плаваючою комою (особливо підходить для 3D-графіки). Стандартні мікросхеми на основі SH-4 були представлені приблизно в 1998 році.[5]
На початку 2001 року Hitachi та STM створили IP-компанію[en] SuperH, Inc., яка збиралася ліцензувати ядро SH-4 іншим компаніям і розробляла архітектуру SH-5, перший крок SuperH у 64-розрядну область. Попередні SH-1-3 залишалися власністю Hitachi.[5][6]
У 2003 році Hitachi і Mitsubishi Electric створили спільне підприємство під назвою Renesas Technology[en], 55 % якого контролює Hitachi. У 2004 році Renesas Technology купила частку власності STMicroelectronics у SuperH Inc., а разом з нею і ліцензію на ядра SH.[7] 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[8]), а процесори 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.[9]
Станом на 2021 рік Renesas продовжує продавати мікроконтролери SH72xx на основі SH-2A з гарантованою доступністю до лютого 2029 року, а також нові продукти на основі кількох інших архітектур, зокрема ARM, RX[en] і RH850[en].
Термін дії останнього з патентів SH-2 закінчився в 2014 році. На LinuxCon[en] Japan 2015 розробники j-core представили перевикористання чистих приміщень SH-2 ISA із розширеннями (відоме як «ядро J2» через незавершені торгові марки).[8][10] Згодом на ELC 2016 було представлено покрокове керівництво по дизайну.[11]
Код VHDL з відкритим кодом під ліцензією BSD для ядра J2 був перевірений на Xilinx FPGA та на ASIC, виготовлених за 180-нм[en] техпроцесом TSMC, і здатний завантажувати µClinux[en].[8] J2 зворотно ISA-сумісний із SH-2, реалізований як 5-етапний конвеєр з окремими інтерфейсами пам'яті інструкцій і даних, а також декодером інструкцій, створеним машиною, що підтримує щільно упакований і складний (порівняно з іншими машинами RISC) ISA. Додаткові інструкції легко додати. J2 реалізує інструкції для динамічного зсуву (з використанням шаблонів інструкцій SH-3 і пізніших), розширених атомарних операцій (використовуються для потокових примітивів) і блокування/інтерфейсів для підтримки симетричного багатопроцесорного процесора. Термін дії відповідних патентів для наборів інструкцій SH-2A (як «J2 ») і SH-4 (як «J4») закінчується в 2016—2017 роках.[8]
Кілька особливостей SuperH були названі мотивами для розробки нових ядер на основі цієї архітектури:[8]
- Висока щільність коду порівняно з іншими 32-розрядними RISC ISA, такими як ARM або MIPS[12], важлива для продуктивності кешу та пропускної здатності пам'яті
- Існуюча підтримка компілятором та операційною системою (Linux, Windows Embedded, QNX[10])
- Надзвичайно низькі витрати на виготовлення ASIC зараз, коли термін дії патентів закінчується (близько US$0,03 за двоядерне ядро J2 на TSMC 180 nm процес)
- Реалізація без патентів і роялті (з ліцензією BSD)
- Повна та активна підтримка спільноти
- Наявність недорогої платформи розробки обладнання для безкоштовних інструментів FPGA
- Інструменти для генерації та інтеграції рівня передачі регістрів (RTL) CPU та SoC, створення портативних RTL lді FPGA та ASIC та документації
- Чистий, сучасний дизайн із відкритим вихідним кодом, генерація, моделювання та середовище перевірки
Сімейство процесорних ядер SuperH включає:
- SH-1 — використовується в мікроконтролерах для глибоко вбудованих застосувань (приводів компакт-дисків, основних пристроїв тощо).
- SH-2 — використовується в мікроконтролерах з вищими вимогами до продуктивності, також використовується в автомобілях, таких як блоки керування двигуном або в мережевих програмах, а також у відеоігрових консолях, таких як доповнення Sega Saturn і Sega 32X. SH-2 також знайшов своє місце в багатьох блоках керування автомобільними двигунами, включаючи Subaru, Mitsubishi та Mazda.
- SH-2A — ядро SH-2A є розширенням ядра SH-2, включає кілька додаткових інструкцій, але, що найважливіше, перехід до суперскалярної архітектури (вона здатна виконувати більше однієї інструкції за один цикл) і двох п'яти- етапні конвеєри. Він також містить 15 банків регістрів для забезпечення затримки переривання в 6 тактів. Він також вдалий у застосуванні керування двигуном, а також у мультимедіа, автомобільній аудіосистемі, трансмісії, кузовному контролі автомобіля та автоматизації офісів і будівель
- SH-DSP — спочатку розроблений для ринку мобільних телефонів, пізніше використовується в багатьох споживчих програмах, які потребують продуктивності DSP для стиснення JPEG тощо.
- SH-3 — використовується для мобільних і кишенькових додатків, таких як Jornada[en], вдалий у застосуваннях Windows CE і вже багато років на ринку автомобільної навігації. Cave CV1000, подібний до апаратного процесора Sega NAOMI[en], також використовував цей процесор. Музичні установки Korg Electribe EMX і ESX також використовують SH-3.[13]
- SH-3-DSP — використовується в основному в мультимедійних терміналах і мережевих програмах, а також у принтерах і факсимільних апаратах
- SH-4 — використовується щоразу, коли потрібна висока продуктивність, наприклад автомобільні мультимедійні термінали, ігрові консолі або приставки
- SH-5 — використовується в високотехнологічних 64-розрядних мультимедійних програмах
- SH-X — основне ядро, що використовується в різних варіантах (з/без блоку DSP або FPU) у блоці керування двигуном, автомобільному мультимедійному обладнанні, приставках або мобільних телефонах
- SH-Mobile — процесор мобільних додатків SuperH; розроблений для того, щоб розвантажити застосування від обробки базової смуги LSI
SH-2 — це 32-розрядна RISC-архітектура з 16-розрядною фіксованою довжиною інструкцій для високої щільності коду та оснащена апаратним блоком множення–накопичення (MAC) для алгоритмів DSP і має п'ятиступінчастий конвеєр.
SH-2 має кеш на всіх пристроях без ПЗУ.
Він забезпечує 16 регістрів загального призначення, векторний регістр, регістр глобальної бази та регістр процедури.
Сьогодні сімейство SH-2 налічує 32 Кб вбудованої флеш-пам'яті до пристроїв без ПЗУ. Він використовується в різних пристроях з різними периферійними пристроями, такими як CAN, Ethernet, блок таймера керування двигуном, швидкий АЦП та інші.
SH-2A — це оновлення ядра SH-2, яке додало деякі 32-розрядні інструкції. Про це було оголошено на початку 2006 року.
Нові функції ядра SH-2A включають:
- Суперскалярна архітектура: виконання 2 інструкцій одночасно
- Гарвардська архітектура
- Два 5-ступінчастих конвеєра
- Змішані 16-бітні та 32-бітні інструкції
- 15 банків реєстрації для відповіді на переривання в 6 циклів.
- Додатковий FPU
Сімейство SH-2A сьогодні охоплює широке поле пам'яті від 16 KB до та включає багато варіацій без ПЗУ. Пристрої оснащені стандартними периферійними пристроями, такими як CAN, Ethernet, USB та інші, а також периферійними пристроями, призначеними для більш специфічних застосувань, такими як таймери керування двигуном, контролери TFT та периферійні пристрої, призначені для додатків автомобільної трансмісії.
SH-4 — це 32-розрядний процесор RISC, розроблений для основного використання в мультимедійних програмах, таких як ігрові системи Sega Dreamcast і NAOMI[en]. Він включає в себе набагато потужніший блок з плаваючою комою [note] і додаткові вбудовані функції разом зі стандартною 32-бітною обробкою цілих чисел і 16-бітним розміром інструкції.
Функції SH-4 включають:
- FPU з чотирма множниками з плаваючою точкою, підтримкою 32-розрядних чисел одинарної точності та 64-розрядних подвійної точності
- 4D операція скалярного добутку з плаваючою точкою та множення матриці на вектор
- 128-розрядна шина з плаваючою точкою дозволяє мати швидкість передачі даних із кешу 3.2 ГБ/с
- 64-розрядна зовнішня шина даних із 32-розрядною адресацією пам'яті, що дозволяє використовувати максимум 4 ГБ адресованої пам'яті (див. адресація байтів[en]) зі швидкістю передачі 800 Мб/с
- Вбудовані контролери переривань, DMA та управління живленням
↑ У спеціальному SH4, виготовленому для Casio, SH7305, немає FPU.
SH-5 — це 64-розрядний процесор RISC.[14]
Майже жодного несимульованого апаратного забезпечення SH-5 ніколи не було випущено,[15] і, на відміну від все ще живого SH-4, підтримку SH-5 було вилучено з GCC[16] і Linux.
- ↑ а б в Program, 1996, с. 1.
- ↑ CP System III (CPS3) Hardware (Capcom). www.system16.com. System 16. Процитовано 3 серпня 2019.
- ↑ Program, 1996, с. 30—33.
- ↑ 360-MIPS SuperH RISC Processor Enables Personal Access Systems SH7750 Launches the SH-4 Series. November 1997. Архів оригіналу за 5 March 2016.
- ↑ а б STMicro, Hitachi plan new company to develop RISC cores. EE Times. 3 квітня 2001.
Hitachi created the SH family of processors and developed its first four major iterations, but has worked with ST since 1997, when the companies agreed to share a common high-end microprocessor road map. They jointly developed the 32-bit SH4 RISC processor core, and began development of the SH5 architecture, which will now be completed by SuperH. SuperH's initial product will be the SH4 core. Earlier SH versions will not be part of the spin-off agreement.
- ↑ SuperH, Inc. formed by Hitachi and STMicroelectronics to Boost the Proliferation of SuperH Cores in Embedded Microprocessor Applications.[недоступне посилання з 01.09.2021]
- ↑ Clarke, Peter (28 вересня 2004). Renesas to take over SuperH core business. EE Times.
- ↑ а б в г д Nathan Willis (10 червня 2015). Resurrecting the SuperH architecture. LWN.net.
- ↑ "SuperH RISC Engine Family MCUs". Renesas Electronics.
- ↑ а б J Cores. j-core. Архів оригіналу за 11 травня 2016. Процитовано 27 квітня 2016.
- ↑ j-core Design Walkthrough (PDF).
- ↑ V.M. Weaver (17 березня 2015). Exploring the Limits of Code Density (Tech Report with Newest Results) (PDF).
- ↑ Kuwabara, M. (25 липня 2019). Korg EMX / ESX Service Manual (PDF). Архів оригіналу (PDF) за 13 July 2019.
- ↑ SH-5 CPU Core, Volume1: Architecture (PDF). Архів оригіналу (PDF) за 31 грудня 2022. Процитовано 31 грудня 2022.
- ↑ Wasabi SH-5 Press Release. 8 березня 2016.
- ↑ GCC 7 Release Series Changes, New Features, and Fixes. 2 лютого 2018.
- SuperH RISC Engine SH-1/SH-2 Programming Manual (PDF). Hitachi Americal Ltd. 3 вересня 1996. Процитовано 6 грудня 2020.
- SH-4 CPU Core Architecture (PDF). STMicroelectronics and Hitachi Ltd. 12 вересня 2002. ADCS 7182230F. Процитовано 6 грудня 2020.
- Renesas SuperH, продукти, інструменти, посібники, додаток. Примітки, інформація
- Відкритий процесор J-core
- J-core на GitHub
- Список розробників Linux SuperH
- DCTP — Hitachi 200 MHz SH-4
- перенесення Debian для SH4