В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Emotion Engine — центральный процессор, разработанный и произведенный Sony Computer Entertainment и Toshiba для использования в игровой консоли PlayStation 2. Он также использовался в ранних моделях PlayStation 3 , продаваемых в Японии и Северной Америке (номера моделей CECHAxx и CECHBxx), для обеспечения поддержки игр PlayStation 2. Массовое производство Emotion Engine началось в 1999 году и закончилось в конце 2012 года с прекращением выпуска PlayStation 2. [1]
Emotion Engine состоит из восьми отдельных «блоков», каждый из которых выполняет определенную задачу, интегрированных в один кристалл . Эти блоки: ядро ЦП, два векторных процессора (VPU), 10-канальный блок DMA , контроллер памяти и блок обработки изображений (IPU). Существует три интерфейса: интерфейс ввода-вывода для процессора ввода-вывода, графический интерфейс (GIF) для графического синтезатора и интерфейс памяти для системной памяти. [2]
Ядро ЦП тесно связано с первым VPU, VPU 0. Вместе они отвечают за выполнение игрового кода и высокоуровневые расчеты моделирования. Второй VPU, VPU 1 , предназначен для геометрических преобразований и освещения и работает независимо, параллельно ядру ЦП, управляемому микрокодом . VPU 0 , когда он не используется, также может использоваться для геометрических преобразований. Списки отображения, сгенерированные CPU/VPU0 и VPU1, отправляются в GIF, который устанавливает их приоритеты перед отправкой в графический синтезатор для рендеринга.
Ядро ЦП представляет собой двухсторонний суперскалярный RISC- процессор с последовательным порядком выполнения . [3] Основанный на MIPS R5900, он реализует архитектуру набора инструкций MIPS-III (ISA) и большую часть MIPS-IV, в дополнение к пользовательскому набору инструкций, разработанному Sony, который работал с 128-битными группами 32-битных, 16-битных или 8-битных целых чисел в режиме одной инструкции, множественных данных (SIMD) (например, четыре 32-битных целых числа можно было добавить к четырем другим с помощью одной инструкции). Определенные инструкции включают: сложение, вычитание, умножение, деление, мин/макс, сдвиг, логический, подсчет ведущих нулей, 128-битную загрузку/сохранение и сдвиг воронки из 256 бит в 128 бит в дополнение к некоторым, не описанным Sony по причинам конкуренции. Вопреки некоторым заблуждениям, эти возможности SIMD не означали, что процессор был "128-битным", поскольку ни адреса памяти, ни сами целые числа не были 128-битными, только общие регистры SIMD/целые числа. Для сравнения, 128-битные регистры и инструкции SIMD присутствовали в 32-битной архитектуре x86 с 1999 года, с введением SSE . Однако внутренние пути данных были 128-битными, и его процессоры были способны работать с 4x32-битными величинами параллельно в отдельных регистрах.
Он имеет 6-ступенчатый целочисленный конвейер и 15-ступенчатый конвейер с плавающей точкой (FP). Ассортимент его регистров состоит из 32 128-битных регистров VLIW SIMD (именование/переименование), одного 64-битного аккумулятора и двух 64-битных общих регистров данных, 8 16-битных регистров фиксированных функций, 16 8-битных регистров контроллера. Процессор также имеет два 64-битных целочисленных арифметических логических устройства (ALU), 128-битный блок загрузки-сохранения (LSU), блок выполнения ветвей (BXU) и 32-битный сопроцессор VU1 с плавающей точкой (FPU) (который выступал в качестве контроллера синхронизации для VPU0/VPU1), содержащий ядро базового процессора MIPS с 32 64-битными регистрами FP и 15 32-битными целочисленными регистрами. ALU — 64-битные, с 32-битным FPU, который не соответствует IEEE 754. Пользовательский набор инструкций 107 MMI (Multimedia Extensions) был реализован путем группировки двух 64-битных целочисленных ALU. Как целочисленные, так и с плавающей точкой конвейеры имеют длину в шесть стадий.
Для подачи инструкций и данных в исполнительные блоки имеется 16-килобайтный двухсторонний ассоциативный кэш инструкций , 8-килобайтный [4] двухсторонний ассоциативный неблокируемый кэш данных и 16-килобайтная оперативная память . И кеши инструкций, и кеши данных виртуально индексируются и физически помечаются, в то время как оперативная память существует в отдельном пространстве памяти. Для трансляции виртуальных адресов предусмотрен объединенный буфер на 48 двойных записей инструкций и трансляции данных . Предсказание ветвлений достигается с помощью 64-записного целевого адреса ветвления и таблицы истории ветвлений, которая интегрирована в кэш инструкций. Штраф за неправильное предсказание ветвлений составляет три цикла из-за короткого шестиступенчатого конвейера.
Большая часть производительности с плавающей точкой Emotion Engine обеспечивается двумя векторными процессорами (VPU), обозначенными как VPU0 и VPU1. По сути, это были DSP, адаптированные для 3D-математики, и предшественники конвейеров аппаратных вершинных шейдеров . Каждый VPU имеет 32 128-битных векторных регистра SIMD (хранящих данные 4D-векторов ), 16 16-битных регистров с фиксированной точкой, четыре блока умножения-накопления с плавающей точкой (FMAC), блок деления с плавающей точкой (FDIV) и локальную память данных . Объем памяти данных для VPU0 составляет 4 КБ, в то время как VPU1 имеет объем памяти данных 16 КБ.
Для достижения высокой пропускной способности память данных VPU напрямую подключена к GIF, и обе памяти данных могут быть напрямую прочитаны блоком DMA . Одна векторная инструкция состоит из четырех 32-битных значений с плавающей точкой одинарной точности , которые распределяются по четырем блокам FMAC одинарной точности (32-битным) для обработки. Эта схема похожа на расширения SSEx от Intel.
Блоки FMAC выполняют одну инструкцию за четыре цикла, но поскольку блоки имеют шестиступенчатый конвейер , они имеют пропускную способность в одну инструкцию за цикл. Блок FDIV имеет девятиступенчатый конвейер и может выполнять одну инструкцию каждые семь циклов.
IPU позволял декодировать сжатые изображения MPEG-2 , воспроизводя DVD и игровые FMV . Он также позволял осуществлять векторное квантование для данных 2D-графики. [5]
Блок управления памятью, контроллер RDRAM и контроллер DMA управляют доступом к памяти в системе. [5]
Связь между ядром MIPS, двумя VPU, GIF, контроллером памяти и другими блоками обрабатывается 128-битной внутренней шиной данных, работающей на половине тактовой частоты Emotion Engine, но для обеспечения большей пропускной способности также имеется 128-битный выделенный путь между CPU и VPU0 и 128-битный выделенный путь между VPU1 и GIF. На частоте 150 МГц внутренняя шина данных обеспечивает максимальную теоретическую пропускную способность 2,4 ГБ/с.
Связь между Emotion Engine и RAM осуществляется через два канала DRDRAM (Direct Rambus Dynamic Random Access Memory) и контроллер памяти , который взаимодействует с внутренней шиной данных. Каждый канал имеет ширину 16 бит и работает на частоте 400 МГц DDR (Double Data Rate). В совокупности два канала DRDRAM имеют максимальную теоретическую пропускную способность 25,6 Гбит/с (3,2 ГБ/с), что примерно на 33% больше пропускной способности внутренней шины данных. Из-за этого контроллер памяти буферизует данные, отправленные из каналов DRDRAM, чтобы дополнительная пропускная способность могла использоваться ЦП.
Emotion Engine напрямую взаимодействует с графическим синтезатором через GIF с выделенной 64-битной шиной 150 МГц, которая имеет максимальную теоретическую пропускную способность 1,2 ГБ/с. [6]
Для обеспечения связи между Emotion Engine и процессором ввода-вывода (IOP) интерфейс ввода-вывода соединяет 32-битную шину ввода-вывода с частотой 37,5 МГц и максимальной теоретической пропускной способностью 150 МБ/с с внутренней шиной данных. Интерфейс обеспечивает достаточную пропускную способность для разъема расширения PCMCIA, который использовался для сетевого адаптера со встроенным интерфейсом P-ATA для более быстрого доступа к данным и онлайн-функциональности. Преимущество высокой пропускной способности заключалось в том, что ее можно было легко использовать для внедрения аппаратных расширений, таких как сетевой адаптер со встроенной поддержкой жесткого диска IDE или других расширений для расширения функциональности и жизненного цикла продукта, что можно рассматривать как конкурентное преимущество. Однако в более новых вариантах (например, в тонком издании) интерфейс предлагал бы значительно большую пропускную способность, чем требуется для устройств ввода-вывода PlayStation, поскольку поддержка жесткого диска была удалена, а конструкция разъема PCMCIA была заменена на более тонкую конструкцию.
Emotion Engine содержал 13,5 миллионов транзисторов металл-оксид-полупроводник (МОП) [7] на кристалле интегральной схемы (ИС) размером 240 мм 2 [8] . Он был изготовлен Sony и Toshiba по 0,25 мкм ( 0,18 мкм эффективная длина волны ) комплементарной металл-оксид-полупроводник (КМОП) технологии с четырьмя уровнями межсоединений.
Emotion Engine был упакован в пластиковую шариковую решетку с 540 контактами (PBGA).
Основным применением Emotion Engine было использование в качестве центрального процессора PlayStation 2 .
Первые выпущенные ревизии PlayStation 3 также имели Emotion Engine на материнской плате для достижения обратной совместимости с играми PlayStation 2. Однако во вторых ревизиях PlayStation 3 отсутствовал физический Emotion Engine для снижения затрат, выполняя все свои функции с помощью программной эмуляции , выполняемой процессором Cell Broadband , в сочетании с аппаратным графическим синтезатором, все еще присутствующим для достижения обратной совместимости с PlayStation 2. Во всех последующих ревизиях графический синтезатор был удален; однако программный эмулятор PlayStation 2 доступен в более поздних ревизиях системного программного обеспечения для использования с играми Sony PS2 Classics, доступными для покупки в Sony Entertainment Network.
Emotion Engine также использовался в PSX (цифровом видеомагнитофоне) , а также в моделях HDTV-телевизоров Sony WEGA HVX (номера моделей KDE-xxxHVX/KDL-xxxHVX) и Sony BRAVIA KDL22PX300, все из которых использовали аппаратное обеспечение PlayStation 2.