Военно-морской флот
- 1 year ago
- 0
- 0
R10000 (кодовое имя «Т5») — RISC - микропроцессор , реализующий набор инструкций MIPS IV . Разработан компанией MIPS Technoligies, Inc. (MTI, позже ставшей подразделением SGI ). Главные разработчики — Крис Роуэн и Кеннет С. Йегер. R10000 построен на основе микроархитектуры ANDES (Architecture with Non-sequential Dynamic Execution Scheduling — архитектура с непоследовательным динамическим планированием исполнения). R10000 во многом заменил R8000 в высокопроизводительном сегменте и в других применениях. MTI является бесфабричной компанией , процессоры R10000 изготавливались NEC и Toshiba . Предыдущие производители микропроцессоров MIPS, IDT и другие не производили R10000, так как это было более дорогим, чем R4000 и R4400.
R10000 был представлен в январе 1996 года в версиях с тактовой частотой 175 МГц и 195 МГц. В 1997 году была представлена 150 МГц версия в продуктовой линейке О2, но её вскоре сняли с производства из-за большей популярности 175 МГц модели. R10000 не был доступен в больших объёмах до конца года из-за проблем изготовления. Версия 195 МГц оставалась в дефиците на протяжении 1996 года, и продавалась по цене в 3000 долларов США.
25 сентября 1996 года SGI объявила о том, что R10000 произведенные компанией NEC в марте и конце июля были неисправны, потребляет слишком много тока и приводят к отключению систем во время работы. SGI отозвал системы, использующие около 10 тысяч процессоров R10000, что повлияло на прибыль компании.
В 1997 году версия R10000, изготовленная по 0.25 мкм техпроцессу, достигла частоты 250 МГц.
R10000 использовался в нескольких компьютерных системах:
R10000 имеет суперскалярный дизайн с 4 конвейерами, реализует переименование регистров и применяет внеочередное исполнение инструкций . Дизайн R10000 отличается от предыдущих MIPS микропроцессоров, таких как R4000, который представлял собой скалярный процессор без внеочередного исполнения и опирался в основном на высокие тактовые частоты для получения производительности.
Каждый такт в R10000 может запрашиваться до четырёх инструкции из кэша инструкций. Эти инструкции декодируются и затем, в зависимости от типа, помещаются в одну из очередей исполнения: целочисленных операций, команд над числами с плавающей запятой или инструкций загрузки/сохранения. Блок декодирования использует подсказки типа команд, подготовленные кэшем инструкций: каждая команда помечается пятью битами для определения, в какие исполнительные устройства направить инструкцию, и оптимизации процесса декодирования.
Каждая из очередей инструкций может принять до четырёх инструкций от декодера. Инструкции из очередей выдаются на исполнение в соответствующий исполнительный конвейер динамически, в зависимости от готовности их операндов и доступности ресурсов. Каждая из очередей, за исключением очереди операций загрузки/сохранения может выдавать до двух инструкций за такт. В очереди загрузки/сохранения может запускаться только одна инструкция. Таким образом, R10000 может исполнять до пяти команд в такт.
Целочисленное устройство состоит из целочисленного регистрового файла и трех конвейеров : два для исполнения целочисленных операций, и один для операций с памятью. Целочисленный регистровый файл имеет ширину 64 бита и содержит 64 регистра, из которых 32 являются архитектурными и 32 используются для переименования регистров. Регистровый файл имеет семь портов чтения и три порта записи. Оба целочисленных конвейера имеют блоки сумматора и логических операций. Однако только первый конвейер предоставляет устройство быстрого сдвига (barrel shifter) и оборудование для подтверждения предсказания ветвления. Второй конвейер используется для доступа к умножителю и делителю. Умножитель конвейеризован, имеют шеститактную задержку для 32-разрядных целых чисел, и задержку в десять тактов для 64-разрядных целых чисел. Блок деления не конвейеризован. Деление производится по , который выдает по одному биту за такт. Задержка деления для 32-битных и 64-битных целых составляет 35 и 67 тактов соответственно.
Блок вычислений с плавающей запятой (FPU) состоит из четырёх функциональных устройств: сумматора, умножителя, блока деления и блоки извлечения квадратного корня. Сумматор и умножитель конвейеризованы, деление и блок квадратного корня — не конвейеризованы. Сложение и умножение имеют задержку в три такта и могут принимать новую инструкцию каждый такт. Блок деления имеет задержку 12 или 19 тактов в зависимости от разрядности данных, для одинарной точности и двойной соответственно.
Блок квадратного корня блок выполняет операции извлечения квадратного корня и обратного квадратного корня . Инструкции квадратного корня имеют задержку в 18 и 33 такта для одинарной и двойной точности соответственно. Новая инструкция квадратного корня может выдаваться в блок каждые 20 или 35 тактов для одинарной и двойной точности соответственно. Обратные квадратные корни вычисляются за 30 или 52 тактов для одинарной (32-бит) и двойной точности (64-бит) соответственно.
Регистровый файл для чисел с плавающей запятой содержит шестьдесят четыре 64-разрядных регистра, из которых 32 — архитектурные и 32 — для переименования регистров. Сумматор имеет собственные выделенные порты чтение и записи, для остальных блоков используется разделяемый порт.
Блоки деления и квадратного корня используют алгоритм . MIPS IV имеет команду умножения-сложения. Данная инструкция реализована в R10000 при помощи байпаса — результат умножения может быть доставлен в обход регистрового файла непосредственно в конвейер сумматора в качестве операнда. Поэтому данная реализация не является совмещенным умножением-сложением и имеет четыре такта задержки.
R10000 использует две сравнительно больших кэша, реализованных на том же чипе: 32 КБ кэш инструкций и 32 КБ кэш данных. Кэш инструкций — 2-х канальный множественно- ассоциативный , использует строки в 128 байтов. Инструкции частично декодируется путем добавления четырёх битов к каждой инструкции (размер одной инструкции 32 бита).
32 КБ кэш данных является двухпортовым с двукратным чередованием. Он состоит из двух 16 КБ , и каждый банк использует двух-канальную ассоциативность. Кэш использует строки размером 64 байта, протокол write-back , индексируется виртуально и тегируется физически . Такой подход позволяет производить индексирование в том же такте и поддерживать когерентность с кэшем L2.
Внешний кэш L2 является общим для инструкций и данных и может иметь размер от 512 КБ до 16 МБ. Он реализуется на базе синхронной статической памяти (SSRAM). Доступ к кэшу осуществляется через 128-битную шину, защищенную 9-битным кодом коррекции ошибок (ECC). Кэш и шина работают на тактовой частоте процессора R10000. На 200 МГц, шина имеет пиковую пропускную способность 3.2 ГБ/с. Кэш использует двух-канальную ассоциативность, но для сокращения числа контактов R10000 прогнозирует канал для обращения.
MIPS IV является 64-битной архитектурой, но R10000 не реализует полное физическое или для снижения себестоимости. Процессор предлагает 40-битную и 44-разрядную виртуальную адресацию, что позволяет адресовать до 1 ТБ физической памяти и до 16 ТБ виртуальной памяти .
В качестве системной шины используется Avalance — 64-разрядная шина , работающая на частотах до 100 МГц. Шина Avalance мультиплексирует адреса и данные, поэтому из максимальной теоретической пропускной способности 800 МБ/с при частоте 100 МГц для передачи данных доступно лишь 640 МБ/с, так как часть тактов используется для передачи адресов.
Встроенный контроллер системного интерфейса поддерживает реализацию симметричных многопроцессорных систем ( SMP ) размером до четырёх микропроцессоров включительно. Применение внешних контроллеров позволяет создавать системы из сотен процессоров R10000. Примером такой системы является .
Процессор R10000 насчитывает около 6,8 миллионов транзисторов, из которых примерно 4,4 миллиона составляют реализацию кэшей первого уровня. Чип имеет размеры 16.64 на 17.934 мм с общей площадью 298.42 мм 2 . Он изготавливался по техпроцессу 0.35 мкм и упаковывался в керамический LGA корпус на 599 контактов.
R10000 был расширен в нескольких производных проектах. Все производные после R12000 имели сниженные тактовые частоты для сохранения рассеиваемой мощности в пределах от 15 до 20 Вт. Это позволяла плотно упаковывать процессоры в высокопроизводительных вычислительных системах SGI.
R12000 является производной от R10000, начатой в MIPS и завершенной в SGI. Он изготавливался NEC и Toshiba. Версия от NEC называется VR12000. Микропроцессор был представлен в ноябре 1998 года, он был доступен с частотами 270, 300 и 360 МГц. R12000 был разработан как временное решение после отмены проекта Beast, в котором планировалось создать преемника для R10000. Процессор R12000 использовался NEC, Siemens-Nixdorf , SGI и Tandem Computers (позже стала частью Compaq).
В R12000 улучшена микроархитектура R10000 путем включения дополнительных стадий конвейера для повышения тактовой частоты, увеличения количества записей в таблицах истории ветвлений, улучшения прогнозирования ветвлений, изменения очередей инструкций для учёта возраста инструкций (более старым инструкциям придается приоритет для исполнения).
R12000 изготавливался компаниями NEC и Toshiba по 0.25 мкм КМОП-процессу с четырьмя уровнями алюминиевых соединений. Использование нового техпроцесса не означает, что R12000 был просто усадкой предыдущего дизайна с оптимизациями микроархитектуры. Топология R12000 была оптимизирована для получения преимуществ от 0.25 мкм техпроцесса. Изготовленные NEC процессоры VR12000 содержат 7,15 млн транзисторов в кристалле размером 15.7 на 14.6 мм (229.22 мм 2 ).
R12000A — производная от R12000, разработанная в SGI. Представлен в июле 2000 года, работает на 400 МГц и изготовлен компанией NEC на 0.18 мкм техпроцессе с алюминиевыми соединениями.
R14000 является дальнейшим развитием R12000, анонсированным в июле 2001 года. R14000 работает на частоте 500 МГц благодаря применению 0.13 мкм КМОП техпроцесса с пятью уровнями . Кроме улучшений в микроархитектуре R12000 процессор поддерживает SSRAM с интерфейсом (DDR) для вторичной кэш-памяти и системную шину с частотой 200 МГц.
R14000A является дальнейшим развитием R14000, о котором было объявлено в феврале 2002 года. Он работает на 600 МГц, рассеивает около 17 Вт, и изготовлен компанией NEC по 0.13 мкм КМОП техпроцессу с семью уровнями медных соединений.
R16000 (кодовое название «N0») — последняя производная R10000. Процессор разработан компанией SGI и изготовлен NEC по нормам 0.11 мкм техпроцесса с восемью уровнями медных межсоединений. Микропроцессор был представлен 9 января 2003 года, дебютировав на частоте 700 МГц для компьютера . Также использовался в SGI . В апреле 2003 года была представлена 600 МГц версия для . В R16000 были увеличены до 64 КБ размеры кэша инструкций и данных.
Под R16000A обозначают варианты процессоров R16000 с тактовыми частотами выше 700 МГц. Первый R16000A с 800 МГц был представлен 4 февраля 2004 года. Позже появилась 900 МГц версия. Для некоторых клиентов SGI поставлял R16000 с частотой 1.0 ГГц. Среди пользователей R16000 — НР и SGI. SGI использовала микропроцессор в своих и рабочих станциях и в серверах . Компания HP использует R16000A в серии отказоустойчивых серверов (унаследованы от компании Tandem через Compaq).
R18000 — отмененный проект дальнейшего развития R10000. Запланированные изменения микроархитектуры были представлены Silicon Graphics на симпозиуме в 2001 году. R18000 был разработан специально для SGI ccNUMA серверов и суперкомпьютеров. Каждый узел использовал бы два R18000, подключенных через мультиплексированную шину к системному контроллеру. Он подключает микропроцессоры к локальной памяти и остальной частью системы через сеть топологии гиперкуб.
В R18000 улучшены очереди инструкций с плавающей запятой, а в блоке плавающих операций используется два устройства умножения-сложения, что в 4 раза увеличивает пиковый темп FLOPS. Деление и операция квадратного корня могут выполняться в отдельных неконвейерных устройствах одновременно со сложением и умножением. Значительно переработаны системный интерфейс и иерархия памяти. Используются 52-разрядные виртуальные адреса и 48-битные физические адреса. Двунаправленная мультиплексированная системная шина более ранних моделей заменяется на два однонаправленных DDR канала: 64-разрядную мультиплексированный канал для адресов и записи данных и 128-битный канал чтений. Эти два канала могут разделятся со вторым процессором R18000 посредством мультиплексирования. Шина также может быть переконфигурирована в режимы SysAD или Avalance для обратной совместимости с системами R10000.
R18000 использует 1 МБ четырёх-канальный множественно-ассоциативный кэш второго уровня, реализованный на том же кристалле. Опционально может использоваться кэш третьего уровня, построенный из памяти SDR или DDR SSRAM, либо из или DDR SDRAM с ёмкостью от 2 до 64 МБ. Такой L3 кэш дополнен кэшем тегов в размере 400 КБ, расположенном на кристалле процессора для уменьшения задержек. Для доступа к L3 кэшу используется шина шириной 144-разрядов: 128 бит для данных и 16 бит для ЕСС. Частоты L3 кэша могут настраиваться.
R18000 планировался к изготовлению по NEC техпроцессу «UX5» по нормам 0.13 мкм КМОП с девятью уровнями . Этот процесс использует питание 1.2 V, что позволило бы снизить тепловыделение и повысить плотность упаковки в больших системах.