R8000

редактировать

R8000 - это микропроцессор набор микросхем, разработанный MIPS Technologies, Inc. (MTI), Toshiba и Weitek. Это была первая реализация архитектуры набора команд MIPS IV . R8000 также известен как TFP, что в переводе с английского означает «огромная плавающая точка».

Содержание

  • 1 История
  • 2 Описание
    • 2.1 R8000
      • 2.1.1 Загружает и сохраняет
    • 2.2 R8010
    • 2.3 Кэш потоковой передачи и ОЗУ тегов
    • 2.4 Физические
  • 3 Примечания
  • 4 Ссылки
  • 5 Дополнительная литература

История

Разработка 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 года в системах от SGI появилась часть 90 МГц. Высокая стоимость и узкий рынок 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.

Описание

Набор микросхем состоял из микропроцессора R8000, блока с плавающей запятой R8010, два ОЗУ для тегов и кэш потоковой передачи. R8000 - это суперскаляр, способный выдавать до четырех инструкций за цикл и выполнять инструкции в программном порядке. Он имеет пятиступенчатый целочисленный конвейер.

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

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

Он содержал файл регистра с плавающей запятой, очередь загрузки, очередь сохранения и два идентичных блока с плавающей запятой. Все инструкции, кроме деления и извлечения квадратного корня, конвейерные. R8010 реализует алгоритм итеративного деления и извлечения квадратного корня, который использует множитель для ключевой части, требуя, чтобы конвейер останавливал устройство на время работы.

Арифметические инструкции, за исключением сравнений, имеют задержку в четыре цикла. У делителей одинарной и двойной точности задержки составляют 14 и 20 циклов соответственно; а также квадратные корни одинарной и двойной точности имеют задержки 14 и 23 цикла соответственно.

Кэш потоковой передачи и ОЗУ тегов

Кэш потоковой передачи - это внешний кэш размером от 1 до 16 МБ, который служит Унифицированный кэш L2 R8000 и кэш данных L1 R8010. Он работает с той же тактовой частотой, что и R8000, и построен из обычных продуктов. Эта схема использовалась для достижения устойчивой производительности с плавающей запятой, что требует частого доступа к данным. Небольшой первичный кеш с малой задержкой не будет содержать достаточно данных и часто пропускается, что требует повторного заполнения с длительной задержкой, что снижает производительность.

Кэш потоковой передачи является двусторонним с чередованием. Он имеет два независимых банка, каждый из которых содержит данные с четных или нечетных адресов. Таким образом, он может выполнять два чтения, две записи или чтение и запись в каждом цикле при условии, что эти два доступа относятся к разным банкам. Доступ к каждому банку осуществляется через две 64-битные однонаправленные шины, одна для чтения, а другая для записи. Эта схема использовалась, чтобы избежать того, что требуется для двунаправленных шин. Избегая оборота шины, кэш может быть прочитан в одном цикле, а затем записан в следующем цикле без промежуточного цикла для оборота, что приводит к повышению производительности.

Теги потокового кеша содержатся в двух RAM тегах фишки, по одной на каждый банк. Оба чипа содержат идентичные данные. Каждая микросхема содержит 1,189 Мбит кэш-тегов, реализованных четырехтранзисторными ячейками SRAM. Микросхемы выполнены по технологии 0,7 мкм BiCMOS с двумя уровнями поликремния и двумя уровнями алюминиевого межсоединения. Схема BiCMOS использовалась в декодерах и частях комбинированного считывающего усилителя и компаратора микросхемы для сокращения времени цикла. Каждый Tag RAM имеет размер 14,8 мм на 14,8 мм, упакован в 155-контактный CPGA и рассеивает 3 Вт на частоте 75 МГц. Помимо предоставления тегов кэша, RAM тегов отвечают за то, что кэш потоковой передачи является четырехсторонним ассоциативным. Чтобы избежать большого количества выводов, теги кэша являются четырехсторонними ассоциативными наборами, и логический выбор выбирает, доступ к которым устанавливается после поиска, вместо обычного способа реализации ассоциативных кешей наборов.

Доступ к потоковому кешу конвейерный чтобы уменьшить время ожидания. Конвейер состоит из пяти этапов: на первом этапе адреса отправляются в 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 МГц.

Примечания

Ссылки

Дополнительная литература

  • Ikumi, N. et al. (Февраль 1994). "Суперскалярный КМОП микропроцессор с четырьмя выпусками 300 MIPS, 300 MFLOPS". Дайджест технических документов ISSCC.
  • Unekawa, Y. et al. (Апрель 1994). «Синхронная TagRAM 110 МГц / 1 Мб». IEEE Journal of Solid-State Circuits 29 (4): pp. 403–410.
Последняя правка сделана 2021-06-03 04:09:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте