Введение
R5000 – 64-битный, двухсторонний, суперскалярный микропроцессор с последовательным выполнением и возможностью выдачи двух инструкций за такт, реализующий архитектуру набора команд MIPS IV (ISA), разработанную компанией Quantum Effect Design (QED) в 1996 году. Проект финансировался компанией MIPS Technologies, Inc (MTI), которая также являлась лицензиаром. MTI затем лицензировала этот дизайн компаниям Integrated Device Technology (IDT), NEC, NKK и Toshiba. R5000 сменил QED R4600 и R4700 в качестве флагманского высокопроизводительного встраиваемого микропроцессора. IDT продавала свою версию R5000 под названием 79RV5000, NEC – VR5000, NKK – NR5000, а Toshiba – TX5000. R5000 был продан компании PMC Sierra после приобретения QED. Производные модели R5000 до сих пор выпускаются для встраиваемых систем.
Пользователи
Пользователями R5000 в рабочих станциях и серверных компьютерах были компании Silicon Graphics, Inc. (SGI) и Siemens Nixdorf. SGI использовала R5000 в своих рабочих станциях начального уровня O2 и Indy. R5000 также применялся во встраиваемых системах, таких как сетевые маршрутизаторы и высокопроизводительные принтеры. R5000 получил распространение в индустрии аркадных игр: материнские платы на базе R5000 использовались компаниями Atari и Midway. Первоначально в Cobalt Qube и Cobalt RaQ применялась производная модель – RM5230 и RM5231. В Qube 2700 использовался микропроцессор RM5230, а в Qube 2 – RM5231. Первые системы RaQ были оснащены процессорами RM5230 или RM5231, но в более поздних моделях использовались чипы AMD K6 2, а в финальных – процессоры Intel Pentium III.
История
Первоначальный план предусматривал работу на частоте 200 МГц в начале 1996 года, 250 МГц в конце 1996 года, а затем в 1997 году – выпуск R5000A. R5000 был представлен в январе 1996 года, но не достиг заявленных 200 МГц, остановившись на отметке 180 МГц. В качестве микропроцессора для недорогих рабочих станций его конкурентами были IBM и Motorola PowerPC 604, HP PA 7300LC и Intel Pentium Pro.
Описание
R5000 – это двухканальный суперскалярный процессор, выполняющий инструкции последовательно. R5000 мог одновременно выдавать целочисленную и инструкцию с плавающей запятой. Он имел один простой конвейер для целочисленных инструкций и другой для инструкций с плавающей запятой, чтобы сэкономить транзисторы и площадь кристалла для снижения стоимости. R5000 не выполнял динамическое предсказание переходов из-за соображений стоимости. Вместо этого он использовал статический подход, используя подсказки, закодированные компилятором в инструкциях вероятного перехода, впервые представленных в архитектуре MIPS II, для определения вероятности перехода. R5000 обладал большими L1-кэшами, что являлось отличительной чертой QED, чьи разработчики предпочитали простые конструкции с большими кэшами. R5000 имел два L1-кэша: один для инструкций и другой для данных. Оба имеют емкость 32 КБ. Кэши двухканальные ассоциативные, имеют размер линии 32 байта и используют виртуальное индексирование с физической маркировкой. Инструкции предварительно декодировались при входе в кэш инструкций путем добавления четырех битов к каждой инструкции. Эти четыре бита указывают, могут ли они быть выполнены одновременно и в каком исполнительном устройстве они будут выполняться. Это способствовало сверхскалярному выполнению инструкций, переместив часть проверки зависимостей и конфликтов за пределы критического пути. Целочисленный блок выполняет большинство инструкций с задержкой и пропускной способностью в один цикл, за исключением умножения и деления. 32-битные умножения имеют задержку в пять циклов и пропускную способность в четыре цикла. 64-битные умножения имеют дополнительную задержку в четыре цикла и половинную пропускную способность. Деления имеют задержку и пропускную способность в 36 циклов для 32-битных целых чисел, а для 64-битных целых чисел они увеличиваются до 68 циклов. Блок с плавающей запятой (FPU) был быстрым одноточным (32-битным) устройством, предназначенным для снижения стоимости и получения выгоды для SGI, чьи 3D-графические рабочие станции среднего уровня в основном полагались на одноточную арифметику для 3D-графических приложений. Он был полностью конвейеризован, что делало его значительно лучше, чем у R4700. R5000 реализует инструкцию умножения-сложения из набора инструкций MIPS IV ISA. Одноточные сложения, умножения и умножения-сложения имеют задержку в четыре цикла и пропускную способность в один цикл. Одноточные деления имеют задержку в 21 цикл и пропускную способность в 19 циклов, а вычисление квадратного корня – задержку в 26 циклов и пропускную способность в 38 циклов. Деление и вычисление квадратного корня не были конвейеризованы. Инструкции, работающие с числами двойной точности, имеют значительно более высокую задержку и более низкую пропускную способность, за исключением сложения, которое имеет идентичную задержку и пропускную способность с одноточным сложением. Умножение и умножение-сложение имеют задержку в пять циклов и пропускную способность в два цикла. Деление имеет задержку в 36 циклов и пропускную способность в 34 цикла. Вычисление квадратного корня имеет задержку в 68 циклов и пропускную способность в 66 циклов. R5000 имел встроенный контроллер L2-кэша, поддерживающий емкости 512 КБ, 1 МБ и 2 МБ. L2-кэш использует шину SysAD совместно с внешним интерфейсом. Кэш был построен на основе специализированных синхронных SRAM (SSRAM). Микропроцессор использует шину SysAD, которая также используется несколькими другими микропроцессорами MIPS. Шина мультиплексирована (адрес и данные используют один и тот же набор линий) и может работать на тактовых частотах до 100 МГц. Первоначальный R5000 не поддерживал многопроцессорность, но в корпусе было зарезервировано восемь контактов для будущего добавления этой функции. QED была компанией, не имеющей собственного производства, и не изготавливала собственные разработки. R5000 производился компаниями IDT, NEC и NKK. Все три компании производили R5000 по 0,35 мкм комплементарной металл-оксид-полупроводниковой (CMOS) технологии, но с различными особенностями процесса. IDT производила R5000 в процессе с двумя уровнями поликремния и тремя уровнями алюминиевой межсоединения. Два уровня поликремния позволили IDT использовать четырехтранзисторную ячейку SRAM, в результате чего количество транзисторов составило 3,6 миллиона, а размер кристалла – 8,7 мм x 9,7 мм (84,39 мм2). NEC и NKK производили R5000 в процессе с одним уровнем поликремния и тремя уровнями алюминиевой межсоединения. Без дополнительного уровня поликремния обе компании должны были использовать шеститранзисторную ячейку SRAM, в результате чего количество транзисторов составило 5,0 миллиона и больший кристалл площадью около 87 мм2. MTI заявляла о размерах кристаллов в диапазоне от 80 до 90 мм2. 0,8 миллиона транзисторов в обеих версиях использовались для логики, а остальные содержались в кэшах. Он поставлялся в корпусе 272-контактной пластиковой решетки шариков (BGA) или 223-контактной керамической решетки выводов (PGA). Он не был совместим по выводам с предыдущими микропроцессорами MIPS.
Деривативы
В конце 1990-х годов Quantum Effect Design приобрела лицензию на производство и продажу микропроцессоров MIPS от MTI и стала поставщиком микропроцессоров, изменив свое название на Quantum Effect Devices, чтобы отразить новую бизнес-модель. Первыми продуктами компании были представители семейства RM52xx, которое изначально состояло из двух моделей: RM5230 и RM5260. Они были анонсированы 24 марта 1997 года. RM5230 первоначально был доступен на частотах 100 и 133 МГц, а RM5260 – на частотах 133 и 150 МГц. 29 сентября 1997 года были представлены новые RM5230 с частотой 150 и 175 МГц, а также RM5260 с частотой 175 и 200 МГц. И RM5230, и RM5260 являются производными от R5000 и отличаются размером первичных кэшей (16 КБ каждый вместо 32 КБ), шириной системных интерфейсов (RM5230 имеет 32-битную шину SysAD с частотой 67 МГц, а RM5260 – 64-битную шину SysAD с частотой 75 МГц), а также добавлением инструкций умножения-сложения и трех операндов для приложений цифровой обработки сигналов. Эти микропроцессоры были изготовлены компанией Taiwan Semiconductor Manufacturing Company (TSMC) по технологии 0,35 мкм с тремя уровнями металлизации. Корпусирование осуществляла компания Amkor Technology в корпусах Power Quad 4: RM5230 – в 128-выводном, а RM5260 – в 208-выводном. Позже к семейству RM52xx присоединился RM5270, который был анонсирован на конференции Embedded Systems Conference 29 сентября 1997 года. Предназначенный для высокопроизводительных встраиваемых приложений, RM5270 был доступен на частотах 150 и 200 МГц. Улучшения заключались в добавлении контроллера вторичного кэша на кристалле, поддерживающего до 2 МБ кэша. Ширина шины SysAD составляет 64 бита и может работать на частоте 100 МГц. Он поставлялся в 304-выводном корпусе Super BGA (SBGA), который был совместим с RM7000 и предлагался как путь миграции к RM7000. 20 июля 1998 года было анонсировано семейство RM52x1, состоящее из RM5231, RM5261 и RM5271. Эти микропроцессоры были производными от соответствующих устройств семейства RM52x0, изготовленных по технологии 0,25 мкм с четырьмя уровнями металлизации. RM5231 первоначально был доступен на частотах 150, 200 и 250 МГц, в то время как RM5261 и RM5271 – на частотах 250 и 266 МГц. 6 июля 1999 года был представлен RM5271 с частотой 300 МГц по цене 140 долларов США при заказе партии в 10 000 штук. RM52x1 превосходил предыдущее семейство увеличенными первичными кэшами объемом 32 КБ и более быстрой шиной SysAD, поддерживающей тактовые частоты до 125 МГц. После приобретения QED компанией PMC Sierra семейства RM52xx и RM52x1 продолжили выпускаться как продукция PMC Sierra. 4 апреля 2001 года PMC Sierra представила два производных RM52x1: RM5231A и RM5261A. Эти микропроцессоры были изготовлены компанией TSMC по технологии 0,18 мкм и отличаются от предыдущих устройств более высокими тактовыми частотами и меньшим энергопотреблением. RM5231A был доступен на частотах от 250 до 350 МГц, а RM5261A – от 250 до 400 МГц. R5900, используемый в Sony PlayStation 2, является модифицированной версией процессора R5000 под названием Emotion Engine с настроенной организацией кэша инструкций/данных и фирменными 107-векторными SIMD Multimedia Extensions (MMI) от Sony. Его специализированный FPU не соответствует стандарту IEEE 754, в отличие от FPU, используемых в R5000. Он также имеет второе ядро MIPS, которое выступало в качестве контроллера синхронизации для специализированных векторных сопроцессоров, важных для 3D-математики, которая в то время в основном вычислялась на процессоре.