R8000 - R8000
В R8000 это микропроцессор чипсет разработан MIPS Technologies, Inc. (MTI), Toshiba, и Weitek.[1] Это была первая реализация MIPS IV архитектура набора команд. R8000 также известен как TFP, за Потрясающая плавающая точка, его имя во время разработки.
История
Разработка R8000 началась в начале 1990-х гг. Силиконовая Графика, 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 года в системах от SGI появилась часть 90 МГц. Высокая стоимость и узкий рынок R8000 (технические и научные вычисления) ограничивали его долю рынка, и, хотя он был популярен на предполагаемом рынке, он был в значительной степени заменен более дешевым и в целом более производительным R10000 введен в январе 1996 г.
Пользователями R8000 были SGI, которые использовали его в своих Мощность Индиго2 рабочая станция, Power Challenge сервер, Power ChallengeArray кластер и Power Onyx система визуализации. В ноябре 1994 г. TOP500 По списку, 50 систем из 500 использовали R8000. Системы на базе R8000 с самым высоким рейтингом получили четыре Power Challenge на позициях с 154 по 157. В каждой было по 18 R8000.[2]
Описание
Набор микросхем состоял из микропроцессора R8000, модуля с плавающей запятой R8010, двух RAM тегов и кэша потоковой передачи. R8000 - это суперскалярный, способный выдавать до четырех инструкций за цикл и выполнять инструкции в программном порядке. Имеет пятиступенчатое целое число трубопровод.
R8000
R8000 управлял набором микросхем и выполнял целочисленные инструкции. Он содержал целые исполнительные единицы, целые зарегистрировать файл, первичные кеши и оборудование для получения инструкций, предсказание ветвления то резервные буферы перевода (TLB).
На первом этапе из кэша команд выбираются четыре инструкции. Кэш инструкций имеет размер 16 КБ, с прямым отображением, виртуально помечены и виртуально проиндексированы, и имеет размер строки 32 байта. Декодирование инструкций и чтение регистров происходят на втором этапе, и инструкции перехода также обрабатываются, что приводит к штрафу за неправильное предсказание перехода в один цикл. Инструкции загрузки и сохранения начинают выполнение на третьем этапе, а целочисленные инструкции - на четвертом. Целочисленное выполнение было отложено до четвертого этапа, так что целочисленные инструкции, которые используют результат загрузки в качестве операнда, могут быть выполнены в цикле после загрузки. Результаты записываются в файл целочисленного регистра на пятом этапе.
Целое число зарегистрировать файл имеет девять портов чтения и четыре порта записи. Четыре порта чтения поставляют операнды двум целочисленным исполнительным блокам (блок ветвления считался частью целочисленного блока). Еще четыре порта чтения поставляют операнды двум генераторам адресов. Необходимо четыре порта, а не два, из-за стиля адреса базовый (регистр) + индекс (регистр), добавленного в MIPS IV ISA. R8000 выдает не более одного целочисленного хранилища за цикл, а один порт последнего чтения доставляет данные целочисленного хранилища.
Два порта записи регистрового файла используются для записи результатов от двух целочисленных функциональных блоков. R8000 выдает две целочисленные загрузки за цикл, а два других порта записи используются для записи результатов целочисленных загрузок в файл регистров.
Кэш данных уровня 1 был организован как два избыточных массива, каждый из которых имел один порт чтения и один порт записи. Целочисленные хранилища были записаны в оба массива. Две загрузки могут обрабатываться параллельно, по одной на каждый массив.
Целочисленные функциональные блоки состояли из двух целочисленных блоков, блока сдвига, блока умножения-деления и двух блоков генерации адресов. Команды умножения и деления выполняются в блоке умножения-деления, который не является конвейерным. В результате задержка для инструкции умножения составляет четыре цикла для 32-битных операндов и шесть циклов для 64-битных. Задержка для команды деления зависит от количества значащих цифр в результате и, таким образом, варьируется от 21 до 73 циклов.
Грузы и магазины
Загрузка и сохранение начинают выполнение на третьем этапе. R8000 имеет два блоки генерации адресов (AGU), которые вычисляют виртуальный адрес для загрузок и магазинов. На четвертом этапе виртуальные адреса преобразуются в физические адреса с помощью двухпортового TLB, который содержит 384 записи и является ассоциативным с трехсторонним набором. Доступ к кеш-памяти размером 16 КБ осуществляется в том же цикле. Он двухпортовый и доступен через две 64-битные шины. Он может обслуживать две загрузки или одну загрузку и один магазин за цикл. Кеш не защищен паритет или по код исправления ошибок (ECC). В случае промах в кеше, данные должны быть загружены из кэша потоковой передачи со штрафом в восемь циклов. Кеш виртуально индексированный, физически помеченный, прямое сопоставление, имеет размер строки 32 байта и использует сквозная запись с выделенным протоколом. Если загрузка попадает в кэш данных, результат записывается в файл целочисленного регистра на пятом этапе.
R8010
R8010 выполнен плавающая точка инструкции, предоставленные очередью инструкций на R8000. Очередь отделила конвейер с плавающей запятой от конвейера целых чисел, реализовав ограниченную форму внеочередное исполнение разрешая выполнение инструкций с плавающей запятой, когда это возможно, после или до выдачи целочисленных инструкций из той же группы. Конвейеры были разделены, чтобы уменьшить задержку в кэше потоковой передачи.
Он содержал файл регистров с плавающей запятой, очередь загрузки, очередь хранения и два идентичных модуля с плавающей запятой. Все инструкции, кроме деления и извлечения квадратного корня, конвейерные. R8010 реализует алгоритм итеративного деления и извлечения квадратного корня, который использует множитель для ключевой части, требуя, чтобы конвейер остановил устройство на время операции.
Арифметические инструкции, за исключением сравнений, имеют задержку в четыре цикла. У делителей одинарной и двойной точности задержки составляют 14 и 20 циклов соответственно;[1] а также квадратные корни одинарной и двойной точности имеют задержки 14 и 23 цикла соответственно.[3]
Кэш потоковой передачи и RAM тегов
В кеш потоковой передачи - это внешний кэш от 1 до 16 МБ, который служит объединенным кешем L2 R8000 и кешем данных L1 R8010. Он работает с той же тактовой частотой, что и R8000, и построен из обычных синхронные статические ОЗУ.[1] Эта схема использовалась для достижения устойчивой производительности с плавающей запятой, что требует частого доступа к данным. Небольшой первичный кеш с малой задержкой не будет содержать достаточно данных и часто пропускается, что требует повторного заполнения с длительной задержкой, что снижает производительность.
Кэш потоковой передачи двусторонний чередующийся. Имеет два независимых банки, каждый из которых содержит данные с четных или нечетных адресов. Таким образом, он может выполнять два чтения, две записи или чтение и запись в каждом цикле при условии, что эти два доступа относятся к разным банкам.[1][4] Доступ к каждому банку осуществляется через две 64-битные однонаправленные шины, одна для чтения, а другая для записи. Эта схема использовалась, чтобы избежать автобусный оборот, что требуется для двунаправленных шин. Избегая оборота шины, кэш может быть прочитан в одном цикле, а затем записан в следующем цикле без промежуточного цикла для оборота, что приведет к повышению производительности.[4]
Теги кэша потоковой передачи содержатся на двух микросхемах Tag RAM, по одной для каждого банка. Оба чипа содержат идентичные данные. Каждая микросхема содержит 1,189 Мбит кэш-тегов, реализованных четырехтранзисторными ячейками SRAM. Чипы выполнены в размере 0,7 мкм. BiCMOS процесс с двумя уровнями поликремния и двумя уровнями алюминиевый соединитель. Схема BiCMOS использовалась в декодерах и частях комбинированного считывающего усилителя и компаратора микросхемы для сокращения времени цикла. Каждый Tag RAM имеет размер 14,8 мм на 14,8 мм, упакован в 155-контактный CPGA и рассеивает 3 Вт на частоте 75 МГц.[5] Помимо предоставления тегов кэша, RAM тегов отвечают за то, что кэш потоковой передачи является четырехсторонним ассоциативным. Чтобы избежать большого количества выводов, теги кэша являются четырехсторонними ассоциативными наборами, а логические выборки, которые устанавливаются для доступа после поиска, вместо обычного способа реализации наборов ассоциативных кешей.[1]
Доступ к кешу потоковой передачи организован по конвейеру для уменьшения задержки. Конвейер состоит из пяти этапов: на первом этапе адреса отправляются в RAM тегов, доступ к которым осуществляется на втором этапе. На третьем этапе сигналы от RAM тегов передаются в SSRAM. На четвертом этапе осуществляется доступ к SSRAM, и на пятом этапе данные возвращаются в R8000 или R8010.
Физический
R8000 содержит 2,6 миллиона транзисторов и имеет размеры 17,34 на 17,30 мм (299,98 мм²). R8010 содержит 830 000 транзисторов. Всего в двух микросхемах было 3,43 миллиона транзисторов. Оба были изготовлены Toshiba в их процессе VHMOSIII трехслойный металл толщиной 0,7 мкм комплементарный металл – оксид – полупроводник (CMOS) процесс. Оба упакованы в 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). Современный дизайн процессоров: основы суперскалярных микропроцессоров. McGraw-Hill Professional. С. 418–419.
- Унекава, Ясуо и др. (1993). «Синхронная Tag RAM 110 МГц / 1 Мбит». Симпозиум по схемам СБИС. С. 15–16.
дальнейшее чтение
- Икуми, Н. и др. (Февраль 1994). "Суперскалярный КМОП микропроцессор с четырьмя выпусками 300 MIPS, 300 MFLOPS". Дайджест технических документов ISSCC.
- Unekawa, Y. et al. (Апрель 1994). «Синхронная TagRAM 110 МГц / 1 Мб». Журнал IEEE по твердотельным схемам 29 (4): стр. 403–410.