R10000 , кодовое название «T5», представляет собой реализацию RISC- микропроцессора архитектуры набора инструкций MIPS IV (ISA), разработанную MIPS Technologies, Inc. ( MTI ), тогда подразделением Silicon Graphics, Inc. (SGI). Главными конструкторами являются Крис Роуэн и Кеннет К. Йегер. Микроархитектура R10000 известна как ANDES, аббревиатура от Architecture with Non-sequential Dynamic Execution Scheduling. R10000 в значительной степени заменяет R8000 в high-end и R4400 в других местах. MTI была полупроводниковой компанией без собственных производственных мощностей ; R10000 был изготовлен NEC и Toshiba . Предыдущие производители микропроцессоров MIPS, такие как Integrated Device Technology (IDT) и три других, не производили R10000, поскольку это было дороже, чем R4000 и R4400.
R10000 был представлен в январе 1996 года с тактовыми частотами 175 МГц и 195 МГц. Версия 150 МГц была представлена в линейке продуктов O2 в 1997 году, но вскоре была снята с производства из-за предпочтения клиентов версии 175 МГц. R10000 не был доступен в больших объемах до конца года из-за проблем с изготовлением на литейных заводах MIPS. Версия 195 МГц была в дефиците в течение всего 1996 года и в результате стоила 3000 долларов США. [1]
25 сентября 1996 года SGI объявила, что R10000, произведенные NEC в период с марта по конец июля того года, были неисправны, потребляли слишком много тока и приводили к отключению систем во время работы. В результате SGI отозвала 10 000 R10000, которые были поставлены в системы, что повлияло на доходы компании.
В 1997 году версия R10000, изготовленная по 0,25 мкм техпроцессу, позволила микропроцессору достичь тактовой частоты 250 МГц.
Пользователи R10000 включают в себя:
R10000 — это четырехканальный суперскалярный дизайн, реализующий переименование регистров и выполняющий инструкции вне очереди . Его конструкция отличается от предыдущих микропроцессоров MTI, таких как R4000, который представляет собой гораздо более простую скалярную конструкцию с порядком выполнения , которая в значительной степени опирается на высокие тактовые частоты для производительности.
R10000 извлекает четыре инструкции в каждом цикле из своего кэша инструкций . Эти инструкции декодируются и затем помещаются в очереди инструкций для целых чисел, чисел с плавающей точкой или загрузки/хранения в зависимости от типа инструкции. Блоку декодирования помогают предварительно декодированные инструкции из кэша инструкций, которые добавляют пять бит к каждой инструкции, чтобы блок мог быстро определить, в каком блоке выполнения выполняется инструкция, и перестроить формат инструкции для оптимизации процесса декодирования.
Каждая из очередей инструкций может принимать до четырех инструкций от декодера, избегая любых узких мест. Очереди инструкций выдают свои инструкции своим исполнительным блокам динамически в зависимости от доступности операндов и ресурсов. Каждая из очередей, за исключением очереди загрузки/сохранения, может выдавать до двух инструкций за каждый цикл своим исполнительным блокам. Очередь загрузки/сохранения может выдавать только одну инструкцию. Таким образом, R10000 может выдавать до пяти инструкций за каждый цикл.
Целочисленный блок состоит из файла целочисленных регистров и трех конвейеров , два целочисленных, один загрузочный. Файл целочисленных регистров имеет ширину 64 бита и содержит 64 записи, из которых 32 являются архитектурными регистрами и 32 являются регистрами переименования, которые реализуют переименование регистров. Регистровый файл имеет семь портов чтения и три порта записи. Оба целочисленных конвейера имеют сумматор и логическое устройство. Однако только первый конвейер имеет сдвигающий барабан и оборудование для подтверждения прогнозирования условных ветвлений. Второй конвейер используется для доступа к множителю и делителю. Умножения конвейеризованы и имеют задержку в шесть циклов для 32-битных целых чисел и десять для 64-битных целых чисел. Деление не конвейеризовано. Делитель использует невосстанавливающий алгоритм , который производит один бит за цикл. Задержки для 32-битных и 64-битных делений составляют 35 и 67 циклов соответственно.
Блок с плавающей точкой (FPU) состоит из четырех функциональных блоков: сумматора, умножителя, блока деления и блока квадратного корня. Сумматор и умножитель конвейеризированы, а блоки деления и квадратного корня — нет. Сложения и умножения имеют задержку в три цикла, а сумматор и умножитель могут принимать новую инструкцию каждый цикл. Блок деления имеет задержку в 12 или 19 циклов в зависимости от того, является ли деление одинарной или двойной точностью соответственно.
Блок квадратного корня выполняет инструкции квадратного корня и обратного квадратного корня . Инструкции квадратного корня имеют задержку в 18 или 33 цикла для одинарной точности или двойной точности соответственно. Новая инструкция квадратного корня может быть выдана блоку деления каждые 20 или 35 циклов для одинарной точности и двойной точности соответственно. Обратные квадратные корни имеют более длительные задержки, от 30 до 52 циклов для одинарной точности (32 бита) и двойной точности (64 бита) соответственно.
Файл регистров с плавающей точкой содержит шестьдесят четыре 64-битных регистра, из которых тридцать два являются архитектурными, а остальные — регистрами переименования. Сумматор имеет свои собственные выделенные порты чтения и записи, тогда как множитель делит их с делителем и квадратным корнем.
Блоки деления и квадратного корня используют алгоритм SRT . MIPS IV ISA имеет инструкцию умножения-сложения. Эта инструкция реализована R10000 с обходом — результат умножения может обойти регистровый файл и быть доставлен в конвейер сложения в качестве операнда, таким образом, это не объединенное умножение-сложение и имеет задержку в четыре цикла.
R10000 имеет два сравнительно больших кэша на кристалле, кэш инструкций 32 КБ и кэш данных 32 КБ. Кэш инструкций является двухсторонним наборно-ассоциативным и имеет размер строки 128 байт. Инструкции частично декодируются путем добавления четырех бит к каждой инструкции (которая имеет длину 32 бита) перед тем, как они помещаются в кэш.
Кэш данных объемом 32 КБ имеет двойной порт с помощью двухстороннего чередования. Он состоит из двух банков по 16 КБ , и каждый банк является двухсторонним наборно-ассоциативным. Кэш имеет 64-байтовые строки, использует протокол обратной записи и виртуально индексируется и физически помечается, чтобы обеспечить индексацию кэша в том же тактовом цикле и поддерживать согласованность с вторичным кэшем.
Внешний вторичный унифицированный кэш поддерживал емкость от 512 КБ до 16 МБ. Он реализован с использованием стандартной синхронной статической памяти с произвольным доступом (SSRAM). Доступ к кэшу осуществляется через собственную 128-битную шину, защищенную 9-битным кодом коррекции ошибок (ECC). Кэш и шина работают на той же тактовой частоте, что и R10000, максимальная частота которой составляла 200 МГц. При частоте 200 МГц шина обеспечивала пиковую пропускную способность 3,2 ГБ/с. Кэш является двухсторонним наборно-ассоциативным, но для того, чтобы избежать большого количества выводов, R10000 предсказывает, к какому пути осуществляется доступ.
MIPS IV — это 64-битная архитектура, но для снижения стоимости R10000 не реализует весь физический или виртуальный адрес . Вместо этого он имеет 40-битный физический адрес и 44-битный виртуальный адрес, таким образом, он способен адресовать 1 ТБ физической памяти и 16 ТБ виртуальной памяти .
R10000 использует шину Avalanche, 64-битную шину , работающую на частотах до 100 МГц. Avalanche — это мультиплексированная шина адреса и данных, поэтому на частоте 100 МГц она обеспечивает максимальную теоретическую пропускную способность 800 МБ/с, но ее пиковая пропускная способность составляет 640 МБ/с, поскольку для передачи адресов требуются некоторые циклы.
Контроллер системного интерфейса поддерживает симметричную многопроцессорную обработку без клея (SMP) до четырех микропроцессоров. Системы, использующие R10000 с внешней логикой, могут масштабироваться до сотен процессоров. Примером такой системы является Origin 2000 .
R10000 состоит приблизительно из 6,8 миллионов транзисторов, из которых приблизительно 4,4 миллиона содержатся в первичной кэш-памяти. [2] Размеры кристалла составляют 16,640 на 17,934 мм, площадь кристалла составляет 298,422 мм2 . Он изготовлен по технологии 0,35 мкм и упакован в 599-контактный керамический корпус ( LGA). До того, как был представлен R10000, в отчете Microprocessor Report , посвященном Форуму по микропроцессорам 1994 года, сообщалось, что он был упакован в 527-контактный керамический корпус (CPGA); и что поставщики также исследовали возможность использования 339-контактного многокристального модуля (MCM), содержащего кристалл микропроцессора и 1 МБ кэш-памяти. [3]
R10000 был расширен несколькими последовательными производными. Все производные после R12000 имеют максимально низкую тактовую частоту, чтобы поддерживать рассеивание мощности в диапазоне от 15 до 20 Вт, чтобы их можно было плотно упаковать в высокопроизводительных вычислительных системах (HPC) SGI.
R12000 является производной от R10000, начатого MIPS и завершенного SGI. Он был изготовлен NEC и Toshiba. Версия, изготовленная NEC, называется VR12000. Микропроцессор был представлен в ноябре 1998 года. Он доступен на частотах 270, 300 и 360 МГц. R12000 был разработан как временное решение после отмены проекта «Beast», который был призван предоставить преемника R10000. Пользователями R12000 являются NEC, Siemens-Nixdorf , SGI и Tandem Computers (а позже Compaq, после приобретения ими Tandem).
R12000 улучшает микроархитектуру R10000 за счет: вставки дополнительной ступени конвейера для повышения тактовой частоты путем разрешения критического пути; увеличения количества записей в таблице истории ветвлений, улучшения прогнозирования; изменения очередей инструкций таким образом, чтобы они учитывали возраст поставленной в очередь инструкции, что позволяет выполнять старые инструкции перед новыми, если это возможно.
R12000 был изготовлен NEC и Toshiba по 0,25 мкм КМОП-технологии с четырьмя уровнями алюминиевых межсоединений . Использование нового процесса не означает, что R12000 был простой усадкой кристалла с измененной микроархитектурой; компоновка кристалла оптимизирована для использования преимуществ 0,25 мкм-технологии. [4] [5] Изготовленный 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 мкм CMOS- процессу с пятью уровнями медных соединений, с помощью которых он изготовлен. Он отличается улучшениями микроархитектуры R12000, поддерживая SSRAM с двойной скоростью передачи данных (DDR) для вторичного кэша и системной шины 200 МГц. [6]
R14000A является дальнейшей разработкой R14000, анонсированного в феврале 2002 года. Он работает на частоте 600 МГц, рассеивает мощность около 17 Вт и был изготовлен корпорацией NEC по 0,13 мкм КМОП-технологии с семью уровнями медных соединений. [6]
R16000, кодовое название «N0», является последним производным от R10000. Он разработан SGI и изготовлен NEC по их 0,11 мкм процессу с восемью уровнями медных соединений. Микропроцессор был представлен 9 января 2003 года, дебютировав на частоте 700 МГц для Fuel, а также использовался в их Onyx4 Ultimate Vision. [7] В апреле 2003 года была представлена версия на 600 МГц для Origin 350. Улучшения включают 64 КБ кэша инструкций и данных.
R16000A относится к микропроцессорам R16000 с тактовой частотой выше 700 МГц. Первый R16000A — это версия с тактовой частотой 800 МГц, представленная 4 февраля 2004 года. Позже была представлена версия с тактовой частотой 900 МГц, и эта версия некоторое время была самой быстрой из известных публично R16000A — SGI позже сообщила, что R16000 с тактовой частотой 1,0 ГГц поставлялись отдельным клиентам. Среди пользователей R16000 были HP и SGI. SGI использовала микропроцессор в своих рабочих станциях Fuel и Tezro ; а также в серверах и суперкомпьютерах Origin 3000. HP использовала R16000A в своих отказоустойчивых серверах NonStop Himalaya S-Series, унаследованных от Tandem через Compaq.
R18000 — это отмененное дальнейшее развитие микроархитектуры R10000, которая включала значительные улучшения от Silicon Graphics, Inc., описанные на симпозиуме Hot Chips в 2001 году. R18000 был разработан специально для серверов ccNUMA и суперкомпьютеров SGI. Каждый узел будет иметь два R18000, подключенных через мультиплексную шину к системному контроллеру, который будет связывать микропроцессоры с их локальной памятью и остальной частью системы через сеть гиперкуба.
R18000 улучшил очереди инструкций с плавающей точкой и переработал блок с плавающей точкой, включив два блока умножения-сложения, что увеличило пиковое количество FLOPS в четыре раза. Деление и квадратный корень будут выполняться в отдельных неконвейерных блоках параллельно с блоками умножения-сложения. Системный интерфейс и иерархия памяти также были значительно переработаны. Он будет иметь 52-битный виртуальный адрес и 48-битный физический адрес. Двунаправленная мультиплексированная адресная и системная шина данных более ранних моделей будет заменена двумя однонаправленными каналами DDR, 64-битным мультиплексированным адресом и путем записи и 128-битным путем чтения. Пути могут быть общими с другим R18000 посредством мультиплексирования. Шину также можно будет настроить в конфигурации SysAD или Avalanche для обратной совместимости с системами R10000.
R18000 будет иметь 1 МБ четырехканального ассоциативного вторичного кэша, который будет включен в кристалл; дополненный дополнительным третичным кэшем, созданным из одинарной скорости передачи данных (SDR) или двойной скорости передачи данных (DDR) SSRAM или DDR SDRAM с емкостью от 2 до 64 МБ. Кэш L3 будет иметь свои кэш-теги, эквивалентные 400 КБ, расположенные на кристалле для уменьшения задержки. Кэш L3 будет доступен через 144-битную шину, из которых 128 бит предназначены для данных и 16 бит для ECC. Тактовая частота кэша L3 будет программируемой.
R18000 должен был быть изготовлен по технологии NEC UX5, 0,13 мкм CMOS-процессу с девятью уровнями медных соединений . Он должен был использовать источник питания 1,2 В и рассеивать меньше тепла, чем современные серверные микропроцессоры, чтобы быть плотно упакованным в системы.