Дела у Hitachi шли отлично, их знаменитые чипы SuperH нашли несколько покупателей и компания была готова к выпуску четвёртой версии процессора. Их новый чип объединит возможности для встраиваемой электроники с функционалом, используемым 3D играми.
Неудивительно, что Sega, будучи одним из ранних пользователей SuperH, выбрала новинку от Hitachi для своей новой консоли. Следовательно, Dreamcast имеет процессор SH-4, запущенный на умопомрачительных 200 МГц . А ещё, чтобы на этот раз сделать всё как надо, в консоли стоит только один полноценный процессор.
Возможности
И что же такого особенного в этом процессоре?
Ну, для начала, SH-4 представляет собой расширение предыдущих моделей, что значит наследование всего существующего функционала линейки SuperH, включая 32-разрядную архитектуру RISC, 5-этапный конвейер и 16-битный набор инструкций. Увы, он также унаследовал конфликты управления (control hazards).
Кроме того, как процессор следующего поколения, он представил множество улучшений, выходящих за рамки использования во встраиваемой электронике :
- Двунаправленный суперскалярный конвейер: Новый метод параллелизма, когда процессор может обрабатывать более одной инструкции за раз (в нашем случае две) на каждом этапе конвейера. Это позволяет выполнять больше инструкций в секунду.
- Под капотом, процессор распределяет две инструкции на два разных (и доступных) устройства выполнения (execution unit). То есть, за небольшими исключениями, все инструкции должны быть разного типа (например, операция ветвления, арифметика и т.п.), чтобы выполниться параллельно . В противном случае они будут выполнены последовательно. В любом случае SH-4 также обладает набором инструкций, которые невозможно выполнить параллельно, так как это не выгодно из-за слишком большого количества зависимостей.
- 8 КБ кэша инструкций и 16 КБ кэша данных: Это соотношение выглядит любопытно, поскольку консоли обычно включают больше кэша инструкций, чем кэша данных. Однако SH-4 позволяет поделить кэш данных на два раздела: 8 КБ Scratchpad (быстрая ОЗУ) и 8 КБ кэша данных.
Особая работа
Основной работой процессора игровой консоли обычно является обработка логики игры, просчитывание ИИ противников и снабжение GPU задачами на отрисовку.
В случае Dreamcast можно заметить, что графический процессор выполняет только растеризацию. Таким образом, процессор должен быть задействован в большинстве этапов графического конвейера. Это значит, что процессор будет обрабатывать колоссальное количество данных о геометрии (например, вычислять преобразования перспективы). Чтобы процессор смог справиться со своей задачей, Sega и Hitachi совместно добавили две важные функции в SH-4.
Первым дополнением является отдельный 64-битный модуль операций с плавающей точкой (Floating-Point Unit, FPU). Этот компонент вычисляет 32-битные десятичные числа (так называемые "числа одинарной точности" или "float") или 64-битные ("числа двойной точности" или "double") по стандарту IEEE-754. Его регистровый файл состоит из тридцати двух 32-разрядных регистров, но они также могут быть объединены в отдельную группу из шестнадцати 64-разрядных регистров, что позволяет сопроцессору обрабатывать числа двойной точности.
Если и этого недостаточно, Hitachi пошла дальше и внедрила дополнительную логику для создания другой регистровой группы, на этот раз составленной из восьми 128-битных регистров. В этой группе каждый регистр хранит четыре 32-разрядных числа, или другими словами 128-битный вектор. Этот формат оптимален для операций, связанных с графикой.
Чтобы воспользоваться новыми векторами по полной, FPU включает в себя дополнительные инструкции для работы с ними, очень похожие на инструкции Saturn Control Unit, правда сейчас индустрия более-менее пришла к единому стандарту. Новые инструкции представляют собой то, что обычно называется Single Instruction Multiple Data (SIMD, одиночный поток команд, множественный поток данных, ОКМД). Они могут выполнять следующие алгебраические операции:
- Скалярное произведение.
- Сумма квадратов.
- Умножение матриц.
Второе дополнение - это внешняя шина SH-4, которая стала 64-битной, что позволяет процессору одновременно передавать пары 32-битных значений. Это ещё одно улучшение, которое увеличивает общую производительность процессора.
Память и доступ к ней
Dreamcast обладает 16 МБ SDRAM, напрямую подключённой к процессору через шину на 100 МГц (половина скорости процессора).
С другой стороны, ширина шины данных памяти — всего 32 бита . Значит ли это, что потенциал новенькой 64-битной шины ЦП не раскрыт? Вовсе нет, ведь ОЗУ установлена двумя банками по 8 МБ. Таким образом, оба чипа делят линии шины процессора пополам.
Для работы с памятью процессор включает в себя Memory Management Unit (Блок Управления Памятью) или "MMU" для виртуальной адресации. Этот блок полезен, так как ширина физического пространства адреса памяти как раз составляет 29 бит. Кроме того, благодаря включению четырех Translation Lookaside Buffer (TLB, Буфер ассоциативной трансляции), программисты могут использовать 32-битные адреса без ущерба производительности.
Поскольку для адресации необходимы только 29 бит, три оставшиеся бита управляют защитой памяти, изменяя карту распределения памяти (memory map) и включая обход кэша соответственно .
В конце концов, программист сам решает, использовать ли эти функции или нет. Играм для этой системы не требуется защита памяти, так что MMU, если он нужен, должен быть включен вручную при загрузке системы.
Без UMA, но...
Несмотря на то, что эта система не основана на архитектуре единой памяти (Unified Memory Architecture), как делает её широко известный конкурент, она тем не менее делегирует ввод-вывод графическому чипу (GPU). Это означает что если процессору необходимо извлечь что-либо за пределами своей выделенной памяти или последовательного интерфейса (serial interface), он должен сделать запрос графическому чипу и, если требуется, подождать своей очереди.
Процессор так же поддерживает уникальный функционал под названием Parallel I/O (параллельный ввод-вывод) или 'PIO', который используется для одновременных манипуляций над несколькими I/O адресами. Sega использовала PIO выводы процессора, чтобы управлять видео режимом GPU (подробнее об этом рассказано в разделе "Графика").
Конечная остановка
Даже после всех описанных преимуществ, боюсь, что серия SuperH не получила дальнейшего развития после того, как её последний крупный пользователь, Dreamcast, исчез с полок магазинов. После популярности SH-4, Hitachi (или Renesas Electronics, текущий владелец) не смогла воспроизвести такой же уровень успеха, а учитывая, что рынок портативных и встраиваемых устройств с тех пор отдаёт предпочтение ARM (благодаря StrongARM), я не думаю, что Renesas собирается развивать изобретение Hitachi.
Благо в сфере вычислительных технологий технологический прогресс часто выходит за рамки брендов и компаний. Например, техника сжатых инструкций SH нашла развитие в режиме Thumb у ARM (вторичный 16-битный набор команд) . Более того, в 2012 году группой энтузиастов был начат проект по созданию современного SuperH-совместимого ЦП под названием "J2" .

