Микропроцессор R10000

На сегодняшний день семейство микропроцессоров Rxxxxx является абсолютным лидером по объему продаж RISC-процессоров. Область применения этих процессоров велика: от игровых приставок компаний Sony и Nintendo, до высокопроизводительных серверов и рабочих станций компаний Pyramid Technology, MIPS, Silicon Graphics Inc. (SGI), Siemens Nixdorf Inc. (SNI).

В основе микропроцессора R10000 лежит суперскалярная RISC-технология 5-го поколения. Микропроцессор R10000 представляет собой однокристальный процессор общего назначения для настольных персональных компьютеров, рабочих станций и серверов. Производительность процессора с тактовой частотой 200 МГц составляет 10,7 SPECint 95 и 19,0 SPECfp 95. Структура процессора представлена на рис. 4.3.

Основными особенностями архитектуры процессора R10000 являются:

- высокая степень параллельности выполнения микроопераций;

- эффективное предсказание переходов;

- планирование загрузки функциональных модулей.

R10000 имеет 5 функциональных блоков: два блока операций с плавающей точкой, два блока целочисленных операций и один блок загрузки/хранения (и соответственно 5 конвейеров).

Схема предсказания переходов использует 512-входовую таблицу предыстории переходов. Вероятность правильного предсказания на SPEC92 составляет 0,87. В момент выполнения предсказательного перехода процессор сохраняет свое состояние в 4-х позиционном стеке переходов. В него заносится альтернативный адрес перехода, полная копия таблиц отображения регистров с плавающей точкой и фиксированной точкой и различные управляющие биты. Эта информация требуется для восстановления в случае неправильного предсказания перехода. При заполнении стека декодирование команд производится до новой команды перехода, после чего ожидается освобождение позиции в стеке. При неправильно предсказанном переходе отменяются все команды, выбранные после неправильно предсказанного перехода.

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

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

После декодирования команды разделяются на три очереди (l=16), в которых ожидают готовности операндов и функциональных блоков: целочисленных АЛУ, блоков выполнения операций с плавающей точкой и блока загрузки/записи. Очереди обслуживаются в порядке освобождения функциональных блоков процессора. Команда выполняется в одном из 5 конвейеров процессора, связанном с функциональным блоком. Функциональные блоки выполнения операций с фиксированной и плавающей точкой независимы, имеют раздельные регистровые файлы и пути передачи данных. Длина целочисленного конвейера – 1 такт, конвейера блока загрузки/сохранения – 2, блока операций с плавающей точкой – 3. При потенциальной способности выполнять 5 команд за такт R10000 допускает выборку только четырех, оставляя «пространство для маневра» при планировании загрузки функциональных блоков. Это позволяет R10000 в большинстве случаев выполнять четыре команды за такт, благодаря чему за один такт можно получить до 4 результатов.

R10000 содержит высокоскоростной (до 1,6 Гбайт/с) внутрикристальный интерфейс «процессор-шина», позволяющий объединить до 4-х процессоров без использования дополнительных интегральных схем.


Рис. 4.3. Структура микропроцессора R10000


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: