R4000 — микропроцессор , разработанный MIPS Computer Systems , реализующий архитектуру набора инструкций MIPS III (ISA). Официально анонсированный 1 октября 1991 года, он был одним из первых 64-битных микропроцессоров и первой реализацией MIPS III. В начале 1990-х годов, когда ожидалось, что микропроцессоры RISC заменят микропроцессоры CISC, такие как Intel i486 , R4000 был выбран в качестве микропроцессора Advanced Computing Environment (ACE), отраслевого стандарта, призванного определить общую платформу RISC. ACE в конечном итоге потерпел неудачу по ряду причин , но R4000 добился успеха на рынках рабочих станций и серверов.
Существует три конфигурации R4000: R4000PC — модель начального уровня без поддержки вторичного кэша; R4000SC — модель со вторичным кэшем, но без возможности многопроцессорной обработки; и R4000MC — модель со вторичным кэшем и поддержкой протоколов когерентности кэша, необходимых для многопроцессорных систем.
R4000 — это скалярный суперконвейерный микропроцессор с восьмиступенчатым целочисленным конвейером. На первом этапе (IF) генерируется виртуальный адрес для инструкции, а буфер TLB (перевод инструкций ) начинает перевод адреса в физический адрес. На втором этапе (IS) перевод завершается, и инструкция извлекается из внутреннего кэша инструкций объемом 8 КБ. Кэш инструкций напрямую отображается и виртуально индексируется, физически помечен . Он имеет размер строки 16 или 32 байта. Архитектурно его можно расширить до 32 КБ.
На третьем этапе (RF) инструкция декодируется и регистровый файл считывается. MIPS III определяет два регистровых файла, один для целочисленного блока, а другой для плавающей точки. Каждый регистровый файл имеет ширину 64 бита и содержит 32 записи. Целочисленный регистровый файл имеет два порта чтения и один порт записи, в то время как регистровый файл с плавающей точкой имеет два порта чтения и два порта записи. Выполнение начинается на четвертом этапе (EX) как для целочисленных, так и для плавающей точки инструкций; и записывается обратно в регистровые файлы по завершении на восьмом этапе (WB). Результаты можно пропустить, если это возможно.
R4000 имеет арифметико-логическое устройство (АЛУ), сдвигатель, умножитель и делитель и выравниватель нагрузки для выполнения целочисленных инструкций. АЛУ состоит из 64-битного сумматора с выбором переноса и логического устройства и является конвейерным. Сдвиговое устройство представляет собой 32-битный сдвиговый барабан . Он выполняет 64-битные сдвиги за два цикла, в результате чего конвейер останавливается. Такая конструкция была выбрана для экономии площади кристалла. Умножитель и делитель не конвейерные и имеют значительные задержки: умножение имеет задержку в 10 или 20 циклов для 32-битных или 64-битных целых чисел соответственно; тогда как деление имеет задержку в 69 или 133 цикла для 32-битных или 64-битных целых чисел соответственно. Большинство инструкций имеют задержку в один цикл. Сумматор АЛУ также используется для вычисления виртуальных адресов для загрузок, сохранений и ветвлений.
Инструкции по загрузке и сохранению выполняются целочисленным конвейером и обращаются к кэшу данных объемом 8 КБ на кристалле.
R4000 имеет встроенный блок с плавающей точкой (FPU), соответствующий стандарту IEEE 754-1985 , называемый R4010. FPU — это сопроцессор, обозначенный как CP1 [1] (MIPS ISA определил четыре сопроцессора, обозначенных от CP0 до CP3). FPU может работать в двух режимах, 32- или 64-битном, которые выбираются установкой бита, бита FR, в регистре состояния ЦП. В 32-битном режиме 32 регистра с плавающей точкой становятся 32-битными при использовании для хранения чисел с плавающей точкой одинарной точности. При использовании для хранения чисел с двойной точностью имеется 16 регистров с плавающей точкой (регистры парные).
FPU может работать параллельно с ALU, если только нет зависимости от данных или ресурсов, которая приводит к его остановке. Он содержит три подблока: сумматор, множитель и делитель. Множитель и делитель могут выполнять инструкцию параллельно с сумматором, но они используют сумматор на последних этапах выполнения, тем самым накладывая ограничения на перекрывающееся выполнение. Таким образом, при определенных условиях он может выполнять до трех инструкций в любой момент времени, по одной в каждом блоке. FPU способен удалять одну инструкцию за цикл.
Сумматор и умножитель конвейерные. Умножитель имеет четырехступенчатый конвейер умножения. Он тактируется на частоте, вдвое превышающей тактовую частоту микропроцессора для адекватной производительности, и использует динамическую логику для достижения высокой тактовой частоты. Деление имеет задержку в 23 или 36 циклов для операций с одинарной или двойной точностью, а квадратный корень имеет задержку в 54 или 112 циклов. Деление и квадратный корень используют алгоритм SRT .
Блок управления памятью (MMU) использует 48-элементный буфер трансляции lookaside для трансляции виртуальных адресов . R4000 использует 64-битный виртуальный адрес, но реализует только 40 из 64 бит, что позволяет использовать 1 ТБ виртуальной памяти ; остальные биты проверяются, чтобы убедиться, что они содержат ноль. R4000 использует 36-битный физический адрес , таким образом, он может адресовать 64 ГБ физической памяти .
R4000 (только конфигурации SC и MC) поддерживает внешний вторичный кэш емкостью от 128 КБ до 4 МБ. Доступ к кэшу осуществляется через выделенную 128-битную шину данных. Вторичный кэш может быть сконфигурирован либо как объединенный кэш, либо как разделенный кэш инструкций и данных. В последней конфигурации каждый кэш может иметь емкость от 128 КБ до 2 МБ. [2] Вторичный кэш физически индексирован, физически помечен и имеет программируемый размер строки 128, 256, 512 или 1024 байта. Контроллер кэша находится на кристалле. Кэш построен из стандартной статической памяти с произвольным доступом (SRAM). Шины данных и тегов защищены ECC.
R4000 использует 64-битную системную шину, называемую шиной SysAD. Шина SysAD была мультиплексированной шиной адресов и данных, то есть она использовала один и тот же набор проводов для передачи данных и адресов. Хотя это снижает пропускную способность, это также менее затратно, чем предоставление отдельной адресной шины, которая требует больше контактов и увеличивает сложность системы. Шину SysAD можно настроить для работы на половине, трети или четверти внутренней тактовой частоты. Шина SysAD генерирует свой тактовый сигнал путем деления рабочей частоты.
R4000 содержит 1,2 миллиона транзисторов. [3] Он был разработан для 1,0 мкм двухслойного металлического комплементарного металл-оксид-полупроводник (CMOS) процесса. Поскольку MIPS была компанией без собственных производственных мощностей , R4000 был изготовлен партнерами по их собственным процессам, которые имели минимальный размер элемента 0,8 мкм. [4]
R4000 генерирует различные тактовые сигналы из главного тактового сигнала, генерируемого извне. Для рабочей частоты R4000 умножает главный тактовый сигнал на два с помощью фазовой автоподстройки частоты (PLL) на кристалле.
R4000PC упакован в 179-контактный керамический штыревой массив (CPGA). R4000SC и R4000MC упакованы в 447-контактный керамический ступенчатый штыревой массив (SPGA). Распиновка R4000MC отличается от R4000SC, некоторые штырьки, которые не используются в R4000SC, используются для сигналов для реализации когерентности кэша на R4000MC. Распиновка R4000PC аналогична распиновке микропроцессоров R4200 и R4600 в корпусе PGA . Эта характеристика позволяет правильно спроектированной системе использовать любой из трех микропроцессоров.
R4400 является дальнейшим развитием R4000. Он был анонсирован в начале ноября 1992 года. Образцы микропроцессора были отправлены избранным клиентам до этого, а общедоступный продукт появился в январе 1993 года. R4400 работает на тактовых частотах 100, 133, 150, 200 и 250 МГц. Единственное существенное улучшение по сравнению с R4000 — это более крупные первичные кэши, емкость которых была удвоена с 8 КБ до 16 КБ каждая. Он содержал 2,3 миллиона транзисторов.
R4400 был лицензирован Integrated Device Technology (IDT), LSI Logic , NEC , Performance Semiconductor, Siemens AG и Toshiba . IDT, NEC, Siemens и Toshiba изготавливали и продавали микропроцессор. LSI Logic использовала R4400 в заказных продуктах. Performance Semiconductor продала свое логическое подразделение Cypress Semiconductor, где выпуск микропроцессорных продуктов MIPS был прекращен.
NEC продавала свою версию как VR4400. Первая версия, часть 150 МГц, была анонсирована в ноябре 1992 года. Ранние версии были изготовлены по 0,6 мкм процессу. [5] В середине 1995 года началось производство 250 МГц части. Она была изготовлена по 0,35 мкм четырехслойному металлическому процессу. [6] NEC также выпустила MR4401, керамический многокристальный модуль (MCM), который содержал VR4400SC с десятью 1 Мбит чипами SRAM, которые реализовали вторичный кэш 1 МБ. MCM был совместим по выводам с R4x00PC. Первая версия, часть 150 МГц, была анонсирована в 1994 году. В 1995 году была анонсирована часть 200 МГц.
Toshiba продавала свою версию как TC86R4400. 200 МГц часть, содержащая 2,3 миллиона транзисторов и имеющая размеры 134 мм2 , изготовленная по 0,3 мкм процессу, была представлена в середине 1994 года. R4400PC стоила 1600 долларов , R4400SC — 1950 долларов , а R4400MC — 2150 долларов в партиях по 10 000. [7]
R4400 используется:
Микропроцессоры R4000 и R4400 были подключены к системе с помощью специализированных микросхем ASIC или коммерчески доступных чипсетов. Поставщики систем, такие как SGI, разработали собственные микросхемы ASIC для своих систем. Коммерческие чипсеты были разработаны, изготовлены и проданы такими компаниями, как Toshiba с их чипсетом Tiger Shark, который обеспечивал шину, совместимую с i486 . [13]