ОБЗОР
MIPS была одной из первых RISC-архитектур, получивших признание промышленности
Корпорация SGI (www.sgi.com) одна из немногих компьютерных компаний, которая разрабатывает вычислительные системы от начала до конца, т. е. от создания микропроцессоров (MIPS) и архитектуры вычислительной системы до написания ОС (IRIX) и ПО. Очевидно, именно поэтому пользователями компьютерных систем SGI являются многие военные и государственные учреждения США, крупные исследовательские центры и корпорации.
Архитектура MIPS (Microprocessor without Interlocked Pipeline Stages), предложенная специалистами SGI/MIPS Technologies, была одной из первых RISC-архитектур, получивших признание промышленности. В настоящее время она лицензирована крупнейшими производителями полупроводниковых устройств, среди которых Broadcom, IDT, LSI Logic, NEC, NKK, Philips и Toshiba. Разработан специальный стандарт, обеспечивающий переносимость бинарных приложений между различными MIPS-платформами, действующими под управлением ОС UNIX. У MIPS Technologies, пожалуй, самый длительный опыт работы с 64-разрядными архитектурами, а выпускаемые ею микропроцессоры поддерживают создание SMP-архитектур с разделяемой памятью из десятков микропроцессоров. Пользователей очень привлекает ориентация этой архитектуры на применение мультимедиа и высококачественные средства визуализации изображений. Довольно часто микропроцессоры этого семейства встречаются во встроенных контроллерах.
Благодаря высоким, по тем временам, параметрам быстродействия, относительной простоте и неприхотливости первые микропроцессоры MIPS сразу завоевали широкую популярность. Кристаллы серии R2000, R3000, R4000 и их последующие модификации стали основой для построения рабочих станций и серверов ряда известных компаний.
Они были первыми
Сама аббревиатура MIPS обозначает микропроцессор “без задержек ожидания конвейера”. Тем самым подчеркнуто важнейшее свойство этой RISC-архитектуры - сбалансированность тракта выборки команд с функциональными узлами процессора. Первый кристалл MIPS имел 32-разрядную архитектуру, включающую 32 регистра общего назначения, 16 регистров для вещественных чисел и специальную пару регистров для хранения результатов выполнения операций целочисленного умножения и деления. Размер команд составлял 32 разряда, причем поддерживался всего один метод адресации, а пользовательское адресное пространство также определялось 32 разрядами. Выполнение арифметических операций регламентировалось стандартом IEEE 754.
Процессоры R3000/R3010 имели стандартные пятиступенчатые конвейеры команд и работали на тактовых частотах 33 и 40 МГц. На смену семейству R3000 пришли 64-разрядные микропроцессоры R4000 и R4400. Стоит отметить, что MIPS Technologies - первая компания, выпустившая процессоры с 64-разрядной архитектурой. Набор команд этих устройств был расширен командами загрузки и записи 64-разрядных вещественных чисел, вычисления квадратного корня с одинарной и двойной точностью, условных прерываний, а также операциями, необходимыми для поддержки мультипроцессорных конфигураций. В процессорах R4000 и R4400 реализованы 64-разрядные шины данных и 64-разрядные регистры. Именно в этих процессорах применяется метод удвоения внутренней частоты. В семействе R4х00 использовались более длинные конвейеры (иногда их называли суперконвейерами), число ступеней у которых было увеличено до восьми, что объяснялось прежде всего увеличением тактовой частоты и необходимостью распределения логики для обеспечения заданной пропускной способности. Процессоры R4х00 могли работать с тактовыми частотами от 50 до 100 МГц.
Внутренняя кэш-память процессора R4000 имела емкость 16 Кб. Она разделялась на 8 Кб для команд и 8 Кб для данных. Отличительной особенностью семейства чипов R4x00 стали специальные алгоритмы обеспечения когерентности кэш-памяти в многопроцессорных конфигурациях. В частности, архитектура микропроцессора R4400 позволяла за один такт обращения к памяти записать или прочитать либо одно вещественное число (с плавающей запятой), либо две инструкции. Благодаря этому внутренний конвейер ядра работал с удвоением частоты.
На смену микросхемам R4600 и R4700, работающим на тактовых частотах 175 МГц и предназначенным для однопроцессорных моделей компьютеров младшего класса, пришли кристаллы R5000. Кстати, в 1997 г. Microprocessor Report назвал R4700 микропроцессором года.
В середине 1994 г. MIPS Technologies анонсировала процессор R8000, который главным образом предназначался для решения научных прикладных задач с интенсивным использованием операций над вещественными числами. Устройство представляло собой микросборку, построенную на двух кристаллах. Это была первая суперскалярная реализация архитектуры MIPS. Теоретически за каждый такт на частоте 75 МГц могло выполняться четыре команды и шесть операций над вещественными числами. Поддержка большой кэш-памяти данных емкостью 16 Мб была обеспечена высокой пропускной способностью доступа - до 1,2 Гб/с. Аппаратные средства поддержки когерентного состояния кэш-памяти вместе со средствами распараллеливания компиляторов обеспечивали возможность построения мощных симметричных многопроцессорных систем.
Следующий шаг в создании высокопроизводительных систем - выпуск процессора R10000. Благодаря наличию нескольких обрабатывающих устройств данный кристалл смог выполнять две целочисленные команды и две операции над вещественными числами за один такт, что обеспечило ему повышенную производительность на тактовой частоте 200 МГц. При этом обмен данными с кэш-памятью второго уровня осуществлялся со скоростью 3,2 Гб/с.
Массовые поставки R10000 начались в конце 1995 г. Размеры поверхности кристалла составляли 16,6x17,9 мм. При соблюдении проектных норм 0,35 мкм микросхема содержала 6,8 млн. транзисторов, причем 4,4 млн. из них было задействовано для построения кэш-памяти. При размере кэш-памяти второго уровня 4 Мб и тактовой частоте 250 МГц производительность при операциях с вещественными числами достигала 24,5 SPECfp95.
Особенности архитектуры R1x000
Семейство кристаллов R1x000 можно охарактеризовать как суперскалярные микропроцессоры с внеочередным спекулятивным выполнением команд, в которых используется техника переименования регистров и динамическое предсказание переходов. В частности, R10000 может выполнять четыре команды за такт, причем выборка и декодирование четырех команд также происходит за один такт. Емкость кэш-памяти первого уровня в процессоре составляет 32 Кб для команд и столько же для данных. Оба этих устройства являются двухканальными наборно-ассоциативными. Емкость кэш-памяти второго уровня может варьироваться в диапазоне от 0,5 до 16 Мб. В процессоре предусмотрен полностью ассоциативный буфер быстрой переадресации TLB емкостью 64 строки и дополнительный буфер TLB для команд емкостью восемь строк.
При разработке процессора R10000 большое внимание было уделено эффективной иерархии памяти. В частности, в данном кристалле обеспечивается раннее обнаружение промахов кэш-памяти с выполнением другой полезной работы. Так, кэш-память поддерживает одновременную выборку и выполнение команд загрузки и записи данных в память, а также операции перезагрузки строк кэш-памяти. Работа конвейеров кэш-памяти данных тесно координирована. При обнаружении промаха при обращении к кэш-памяти данных ее работа не блокируется, следовательно, она может продолжать обслуживание следующих запросов.
Архитектура R1х000 включает 64 физических регистра. В процессоре имеется пять полностью независимых исполнительных устройств: два целочисленных, два вещественной арифметики, а также устройство загрузки/записи.
Время выполнения всех целочисленных операций, за исключением операций умножения и деления, составляет один такт. Целочисленные операции умножения вырабатывают произведение с двойной точностью. Для операций с одинарной точностью происходит распространение знака результата до 64 разрядов прежде, чем он будет помещен в регистры. Операции с двойной точностью выполняются примерно в два раза быстрее операций с одинарной точностью.
Кроме основных устройств вещественной арифметики существуют два дополнительных, которые обрабатывают длинные операции деления и вычисления квадратного корня. Устройство загрузки/записи выполняет команды загрузки, записи, предварительной выборки, а также инструкции для работы с кэш-памятью. Внешняя кэш-память второго уровня управляется с помощью внутреннего контроллера, который имеет для этой цели специальный порт. По магистрали шириной в 128 разрядов осуществляются пересылки данных на внутренней тактовой частоте 200 МГц. Системный 64-разрядный интерфейс R10000 используется в качестве шлюза между самим процессором, связанным с ним кэш-памятью второго уровня, и остальной системой. Микросхема R10000 допускает два способа организации многопроцессорной системы.
Архитектура последователя R10000 - кристалла R12000 отличается весьма незначительно. Так, в четыре раза возросла емкость таблицы предсказания переходов, появилась кэш-память адресов переходов, в адресной очереди были введены отдельные конвейеры для проверки тегов и для расчета адресов. Емкость активного списка очереди команд увеличилась с 32 до 48 строк, емкость таблицы использования данных в контроллере кэш-памяти второго уровня - вдвое. Кроме того, улучшена расщепленная обработка транзакций на системной шине для уменьшения времени занятости кэш-памяти второго уровня. Стоит отметить, что в R12000 все команды загрузки регистров, записи в память и работы с кэш-памятью посылаются сначала в очередь целочисленных команд, а оттуда выдаются в исполнительное устройство. После чего они удаляются из очереди целочисленных команд и помещаются в очередь команд загрузки регистров и записи в память. Такая схема, по утверждению разработчиков, позволила даже упростить конструкцию R12000 по сравнению с R10000. Кроме того, в R12000 была доработана архитектура кэш-памяти. Выполненный с соблюдением проектных норм 0,25 мкм кристалл R12000 содержит 6,9 млн. транзисторов. На тактовой частоте 300 МГц он показывает производительность 27,5 SPECfp95.
Версия процессора R12000A появилась в июле прошлого года и полностью базируется на архитектуре R12000. Изменилась только технология изготовления. Благодаря ужесточению проектных норм до 0,18 мкм, тактовые частоты удалось увеличить до 360 и даже 400 МГц. Стоит отметить, что короткие конвейеры, заложенные в архитектуре, затрудняют легкое наращивание тактовых частот. Так, при емкости кэш-памяти второго уровня 8 Мб производительность кристалла на частоте 400 МГц увеличилась лишь до 43,5 SPECfp95.
Перспективные планы
Микропроцессоры MIPS стали в свое время одними из первых 64-разрядных микропроцессоров и были в числе лидеров по производительности. Однако стратегическое решение ориентироваться в перспективе только на 64-разрядную архитектуру Intel, принятое в свое время руководством SGI, оказалось ошибочным. Многочисленные задержки с выпуском Itanium привели к потере корпорацией лидирующих позиций в области создания RISC-кристаллов. Видимо, это событие заставило руководство SGI вновь заняться разработкой очередных моделей семейства R1x000.
По последним данным (The IRIX 6.5.X/MIPS Roadmap, Release 6.5.10), в SGI собираются продолжить эту линию процессоров, по крайней мере, до 2005 г. Вслед за R12000А в этом году должен появиться кристалл R14000 с тактовой частотой 500 МГц, с кэш-памятью второго уровня типа DDR SDRAM, работающей на основной частоте процессора. Данный кристалл будет изготавливаться с соблюдением проектных норм 0,13 мкм с использованием медных межсоединений. Уровень напряжения предполагается снизить до 1,5 В. Емкость кэш-памяти второго уровня в системах, построенных на базе R14000, также может составлять 8 Мб. Модель R14000A будет отличаться только новым технологическим процессом и дальнейшим ужесточением проектных норм. На 2002 г. намечен выпуск R16000 с тактовой частотой 600 МГц. В этом микропроцессоре кэш-память второго уровня разместится на самом кристалле, где для кэш-памяти третьего уровня будут предусмотрены тэги.
Кардинальные изменения в архитектуре MIPS ожидаются в 2003 г. с появлением модели R18000. В этом процессоре, впервые после R8000, станут выдаваться четыре 64-разрядных результата с плавающей запятой за такт. В архитектуру планируется добавить дополнительные устройства загрузки/записи и вещественной арифметики. На тактовой частоте 800 МГц R18000 должен иметь пиковую производительность 3,2 GFLOPS. Тактовая частота для процессоров MIPS достигнет заветной черты 1 ГГц не ранее 2005 г., когда появится кристалл R20000.