8000 рэндов
R8000 , — это микропроцессоров набор разработанный MIPS Technologies, Inc. (MTI), Toshiba и Weitek . [1] Это была первая реализация MIPS IV архитектуры набора команд . R8000 также известен как TFP , от Tremendous Floating-Point , его названия во время разработки.
История
[ редактировать ]Разработка R8000 началась в начале 1990-х годов в компании Silicon Graphics , Inc. (SGI). R8000 был специально разработан для обеспечения производительности суперкомпьютеров 1990-х годов с микропроцессором вместо центрального процессора (ЦП), построенным из множества дискретных компонентов, таких как вентильные матрицы . В то время производительность традиционных суперкомпьютеров росла не так быстро, как микропроцессоры компьютеров с сокращенным набором команд (RISC). Было предсказано, что микропроцессоры RISC в конечном итоге будут соответствовать производительности более дорогих и более крупных суперкомпьютеров при гораздо меньшей стоимости и размере, что сделает компьютеры с таким уровнем производительности более доступными и позволит настольным рабочим станциям и серверам заменить суперкомпьютеры во многих ситуациях.
Первые подробности о R8000 появились в апреле 1992 года в объявлении MIPS Computer Systems, в котором подробно описывались будущие микропроцессоры MIPS. В марте 1992 года SGI объявила о приобретении компании MIPS Computer Systems, которая в середине 1992 года стала дочерней компанией SGI под названием MIPS Technologies, Inc. (MTI). Разработка R8000 была передана в MTI, где и продолжилась. Ожидалось, что R8000 будет представлен в 1993 году, но его выпуск был отложен до середины 1994 года. Первый R8000 с частотой 75 МГц был представлен 7 июня 1994 года. На тот момент его цена составляла 2500 долларов США. В середине 1995 года часть 90 МГц появилась в системах от SGI. Высокая стоимость и узкий рынок R8000 (технические и научные вычисления) ограничили его долю на рынке, и, хотя он был популярен на предполагаемом рынке, он был в значительной степени заменен более дешевым и в целом более производительным R10000, представленным в январе 1996 года.
Пользователями R8000 были SGI, которые использовали его на своей Power Indigo2 рабочей станции , Power Challenge сервере , кластере Power ChallengeArray и Power Onyx системе визуализации . В списке TOP500 за ноябрь 1994 года 50 систем из 500 использовали R8000. Системы на базе R8000 с самым высоким рейтингом получили четыре системы Power Challenge, занимающие позиции с 154 по 157. В каждой было по 18 R8000. [2] SGI заявила, что пропускная способность операций с плавающей запятой составляет 300 миллионов инструкций в секунду, рейтинг SPECfp92 — 310 и более скромный рейтинг SPECint92 — 108. [3]
Описание
[ редактировать ]Набор микросхем состоял из микропроцессора R8000, блока операций с плавающей запятой R8010, двух ОЗУ тегов и потокового кэша. R8000 является суперскалярным , способен выдавать до четырех инструкций за цикл и выполняет инструкции в программном порядке. Он имеет пятиэтапный целочисленный конвейер .
8000 рэндов
[ редактировать ]R8000 управлял набором микросхем и выполнял целочисленные инструкции. Он содержал целочисленные исполнительные блоки, файл целочисленных регистров , первичные кэши и аппаратное обеспечение для выборки команд, прогнозирования ветвей и ( буферы резервной трансляции TLB).
На первом этапе из кэша команд извлекаются четыре инструкции. Кэш инструкций имеет размер 16 КБ, имеет прямое отображение , виртуально помечен и виртуально индексирован , а размер строки составляет 32 байта. Декодирование инструкций и чтение регистров происходят на втором этапе, а также разрешаются инструкции ветвления, что приводит к штрафу за неправильное предсказание ветвления в один цикл. Инструкции загрузки и сохранения начинают выполняться на третьем этапе, а целочисленные инструкции — на четвертом. Выполнение целочисленных операций было отложено до четвертого этапа, чтобы целочисленные инструкции, использующие результат загрузки в качестве операнда, могли быть выполнены в цикле после загрузки. Результаты записываются в файл целочисленных регистров на пятом этапе.
Файл целочисленных регистров имеет девять портов чтения и четыре порта записи. Четыре порта чтения поставляют операнды двум целочисленным исполнительным блокам (модуль ветвления считался частью целочисленного блока). Еще четыре порта чтения передают операнды двум генераторам адресов. Требуется четыре порта, а не два, поскольку в MIPS IV ISA добавлен стиль адреса базовый (регистр) + индекс (регистр). R8000 выдает не более одного целочисленного хранилища за цикл, а один последний порт чтения доставляет данные целочисленного хранилища.
Два порта записи файла регистров используются для записи результатов из двух целочисленных функциональных блоков. R8000 выдает две целочисленные загрузки за цикл, а два других порта записи используются для записи результатов целочисленных загрузок в файл регистров.
Кэш данных уровня 1 был организован в виде двух резервных массивов, каждый из которых имел один порт чтения и один порт записи. Целочисленные хранилища были записаны в оба массива. Две нагрузки могли обрабатываться параллельно, по одной на каждый массив.
Целочисленные функциональные блоки состояли из двух целочисленных блоков, блока сдвига, блока умножения-деления и двух блоков генератора адресов. Инструкции умножения и деления выполняются в блоке умножения-деления, который не является конвейерным. В результате задержка для инструкции умножения составляет четыре цикла для 32-битных операндов и шесть циклов для 64-битных. Задержка для инструкции деления зависит от количества значащих цифр в результате и, таким образом, варьируется от 21 до 73 тактов.
Грузы и магазины
[ редактировать ]Загрузка и сохранение начинаются на третьем этапе. R8000 имеет два блока генерации адреса (AGU), которые вычисляют виртуальный адрес для загрузки и сохранения. На четвертом этапе виртуальные адреса преобразуются в физические адреса с помощью двухпортового TLB, который содержит 384 записи и является трехсторонним ассоциативным набором. Доступ к кэшу данных объемом 16 КБ осуществляется в том же цикле. Он двухпортовый, доступ к нему осуществляется через две 64-битные шины. Он может обслуживать две нагрузки или одну загрузку и один магазин за цикл. Кэш не защищен четностью или кодом исправления ошибок (ECC). В случае промаха кэша данные должны быть загружены из потокового кэша со штрафом в восемь циклов. Кэш виртуально индексируется, физически помечен , напрямую отображается , имеет размер строки 32 байта и использует сквозную запись с протоколом распределения. Если загрузки попадают в кэш данных, результат записывается в файл целочисленных регистров на пятом этапе.
Р8010
[ редактировать ]R8010 выполнял инструкции с плавающей запятой, предоставленные очередью инструкций на R8000. Очередь отделила конвейер операций с плавающей запятой от конвейера целых чисел, реализовав ограниченную форму внеочередного выполнения , позволяя выполнять инструкции с плавающей запятой, когда это возможно, после или до выдачи целочисленных инструкций из той же группы. Конвейеры были разделены, чтобы частично снизить задержку потокового кэша.
Он содержал файл регистров с плавающей запятой, очередь загрузки, очередь сохранения и два идентичных модуля с плавающей запятой. Все инструкции, за исключением деления и извлечения квадратного корня, являются конвейерными. В R8010 реализован итеративный алгоритм деления и извлечения квадратного корня, который использует множитель для ключевой части, что требует остановки конвейера на время операции.
Арифметические инструкции, за исключением операций сравнения, имеют задержку в четыре такта. Деление одинарной и двойной точности имеет задержку 14 и 20 циклов соответственно; [1] а квадратные корни одинарной и двойной точности имеют задержку 14 и 23 цикла соответственно. [4]
Потоковый кэш и ОЗУ тегов
[ редактировать ]Потоковый кэш представляет собой внешний кэш объемом от 1 до 16 МБ, который служит унифицированным кэшем L2 в R8000 и кэшем данных L1 в R8010. Он работает на той же тактовой частоте, что и R8000, и построен на базе стандартной синхронной статической оперативной памяти . [1] Эта схема использовалась для достижения устойчивой производительности с плавающей запятой, что требует частого доступа к данным. Небольшой первичный кэш с низкой задержкой не будет содержать достаточного количества данных и часто будет пропадать, что приводит к необходимости повторных файлов с длительной задержкой, что снижает производительность.
Потоковый кэш имеет двустороннее чередование . Он имеет два независимых банка , каждый из которых содержит данные с четных или нечетных адресов. Таким образом, он может выполнять два чтения, две записи или чтение и запись за каждый цикл, при условии, что два доступа предназначены для отдельных банков. [1] [5] Доступ к каждому банку осуществляется через две 64-битные однонаправленные шины: одна для чтения, другая для записи. Эта схема использовалась, чтобы избежать оборота автобусов , который требуется для двунаправленных автобусов. Избегая оборота шины, кэш можно прочитать за один цикл, а затем записать в следующий цикл без промежуточного цикла оборота, что приводит к повышению производительности. [5]
Теги потокового кэша содержатся в двух чипах ОЗУ тегов, по одному на каждый банк. Оба чипа содержат идентичные данные. Каждый чип содержит 1,189 Мбит кэш-тегов, реализованных четырехтранзисторными ячейками SRAM. Чипы изготовлены по технологии BiCMOS 0,7 мкм с двумя уровнями поликремния и двумя уровнями алюминиевых межсоединений . Схема BiCMOS использовалась в декодерах и комбинированных частях усилителя считывания и компаратора чипа для сокращения времени цикла. Каждое ОЗУ тегов имеет размер 14,8х14,8 мм, упаковано в 155-контактный CPGA и рассеивает 3 Вт на частоте 75 МГц. [6] Помимо предоставления тегов кэша, ОЗУ тегов отвечают за четырехстороннюю ассоциативность потокового кэша. Чтобы избежать большого количества выводов, теги кэша являются четырехсторонними ассоциативными наборами, и логика выбирает, к какому набору получить доступ после поиска, вместо обычного способа реализации наборно-ассоциативного кэша. [1]
Доступ к потоковому кэшу осуществляется конвейерно, чтобы частично снизить задержку. Конвейер состоит из пяти этапов: на первом этапе адреса отправляются в ОЗУ тегов, доступ к которым осуществляется на втором этапе. На третьем этапе сигналы из RAM тегов распространяются на SSRAM. На четвертом этапе осуществляется доступ к SSRAM, и на пятом этапе данные возвращаются в R8000 или R8010.
Физический
[ редактировать ]R8000 содержал 2,6 миллиона транзисторов и имел размеры 17,34 на 17,30 мм (299,98 мм). 2 ). R8010 содержал 830 000 транзисторов. В общей сложности два чипа содержали 3,43 миллиона транзисторов. Оба были изготовлены Toshiba по процессу VHMOSIII, трехслойному процессу комплементарного металла-оксида-полупроводника (КМОП) толщиной 0,7 мкм. Оба они упакованы в 591-контактный корпус с керамической решеткой выводов (CPGA). Оба чипа использовали питание 3,3 В, а R8000 рассеивал 13 Вт на частоте 75 МГц.
Примечания
[ редактировать ]Ссылки
[ редактировать ]- «Согласование инструкций для многократной отправки» . Боковая панель в Pountain, Дик, «Последний бастион», Байт , август 1994 г.
- Донгарра, Джек Дж.; Мейер, Ханс В. и Стромайер, Эрих (9 ноября 1994 г.). ТОП500 суперкомпьютерных сайтов .
- Гвеннап, Линли (15 февраля 1993 г.). «SGI предоставляет обзор процессора TFP». Отчет о микропроцессоре , вып. 7, нет. 2.
- Гвеннап, Линли (23 августа 1993 г.). «TFP рассчитан на огромные числа с плавающей запятой». Отчет о микропроцессоре , вып. 7, нет. 11.
- Сюй, Питер Ян-Тек (2 июня 1994 г.). Конструкция микропроцессора R8000 [ постоянная мертвая ссылка ] .
- MIPS Technologies, Inc. (август 1994 г.). Обзор продукта микропроцессорного набора микросхем R8000 [ постоянная мертвая ссылка ] .
- Паунтейн, Дик (сентябрь 1994 г.). «Последний бастион» . Байт .
- Шен, Джон Пол; Липасти, Микко Х. (2005). Проектирование современных процессоров: основы суперскалярных микропроцессоров . МакГроу-Хилл Профессионал. стр. 418–419.
- Унекава, Ясуо и др. (1993). «Синхронное ОЗУ тегов 110 МГц / 1 Мбит». Симпозиум по СБИС . стр. 15–16.
Дальнейшее чтение
[ редактировать ]- Икуми Н. и др. (февраль 1994 г.). «Суперскалярный CMOS-микропроцессор с четырьмя выпусками 300 MIPS, 300 MFLOPS». Сборник технических документов ISSCC .
- Унекава Ю. и др. (апрель 1994 г.). «Синхронная TagRAM 110 МГц / 1 МБ». Журнал IEEE твердотельных схем 29 (4): стр. 403–410.
- Как VLIW почти исчез
- Питер Сюй. Дизайн R8000 IEEE Micro, 1994 г.