Смекни!
smekni.com

Архитектура и производительность серверных ЦП (стр. 11 из 13)

Микропроцессор Rock, появление которого намечено на 2008 год, представляет собой дальнейшее развитие идей, реализованных в проекте Niagara, однако в этой реализации «центр тяжести» перенесен на построение серверных систем занятых интенсивной обработкой данных, для чего в архитектуре сделаны соответствующие изменения.

MIPS

MIPS — старейшая из существующих сегодня RISC-архитектур. Ее основы были заложены в 1981 г. во время работы над одноименным проектом в Стэнфордском университете, руководителем которого был Джон Хеннесси (John Hennessy). MIPS — это аббревиатура от Microprocessor without Interlocked Pipeline Stages, т. е. микропроцессор без блокированных стадий конвейеров. Суть архитектуры следует из названия — в ней реализована идея оптимизации работы конвейеров благодаря упрощению набора команд.

Современные ЦП выполняют команды самого разного назначения, причем многие из них просты и могут быть выполнены за один такт. Но некоторые команды, например, целочисленное умножение или деление, а также часть вещественных, например вычисление квадратного корня, требуют большого числа процессорных тактов. Когда такая команда выполняется, логика планировщика ЦП должна приостановить (блокировать) подачу на конвейер других команд. Разработчики архитектуры MIPS решили исключить из логики ЦП все команды, которые не могли быть выполнены за один такт.

Это, разумеется, не означает, что ЦП архитектуры MIPS не в состоянии выполнять сложные операции, просто расчеты будут выполняться при помощи серии более простых команд. Это также не означает, что такие ЦП окажутся малоэффективными и непроизводительными: например, архитектура Alpha тоже не предусматривала аппаратное выполнение целочисленного деления, но ЦП этой архитектуры долгое время были эталоном производительности. Пожертвовав быстродействием на некоторых операциях, разработчики получили простое и легко синхронизируемое ядро, предоставляющее возможность добиться высоких тактовых частот, увеличить количество конвейеров ФУ, реализовать более мощные блоки предсказания переходов и увеличить объемы интегрируемой кэш-памяти.

В 1984 г. Хеннесси, уверенный в коммерческом успехе своего мероприятия, уходит из Стенфорда и основывает MIPS Computer Systems. Первым MIPS-процессором стал выпущенный в начале 1986 г. 32-бит R2000 с тактовой частотой 8 МГц, состоящий из 110 тыс. транзисторов и изготавливаемый по 2-мкм технологическому процессу. Логика F-box отсутствовала (что неудивительно, учитывая количество транзисторов в ядре ЦП), к ЦП подключался математический сопроцессор R2010.

В 1988 г. вышел доработанный вариант процессора R3000, работающий в многопроцессорном режиме при почти том же количестве транзисторов. Он также дополнялся математическим сопроцессором R3010.

В феврале 1991 г. MIPS анонсировала свой ЦП следующего поколения — 64-бит R4000 со встроенным математическим сопроцессором. Его тактовая частота составила 100 МГц, первые партии ЦП были отгружены в марте 1992 г. Таким образом, именно MIPS стала первой 64-бит архитектурой, опередив DEC Alpha. Для обеспечения требуемой нагрузки на конвейеры ФУ при работе на столь высоких тактовых частотах в ядро были впервые встроены 8-Кбайт I-cache и D-cache, предусмотрен внешний B-cache объемом до 1 Мбайт. ЦП получился далеко не таким доступным по цене, как R2000 и R3000 — реализация 64-бит команд и встроенного кэша потребовала 1,35 млн. транзисторов, а площадь ядра составила 213 мм2.

Длина целочисленного конвейера была увеличена до восьми стадий, тогда это считалось очень длинным конвейером. ЦП изготавливался по весьма совершенному в то время 800-нм процессу и обладал максимальной рассеиваемой мощностью 15 Вт (для сравнения: у R3000 значение соответствующей характеристики 4 Вт). В мае 1993 г. компания объявила о выпуске R4400, доработанного варианта R4000. Он отличался вдвое увеличенными I-cache и D-cache, а также исправлением ошибок 64-бит режима. Количество транзисторов возросло до 2,3 млн.

К началу 1990-х гг. у компании начались финансовые проблемы, и R4000 мог оказаться последней разработкой компании. В марте 1992 г. Silicon Graphics — основной потребитель ЦП MIPS — объявила о своем намерении купить компанию. MIPS Computer Systems стала дочерней компанией Silicon Graphics и была переименована в MIPS Technologies. С этого момента компания занимается исключительно исследованиями, разработкой ЦП и лицензированием своих разработок.

В июне 1994 г. MIPS анонсирует свой первый ЦП с целочисленной суперскалярностью — R8000, который располагал двухконвейерными Е-box и А-box, 16-Кбайт I-cache с прямым отображением и двухпортовым 16-Кбайт D-cache с прямым отображением и сквозной записью. Также присутствовал кэш условных переходов на 1024 записи. Двухконвейерный F-box был вынесен во внешний сопроцессор (R8010). Ни I-cache, ни D-cache не поддерживали никаких алгоритмов определения и коррекции ошибок. Подсистема S-cache состояла из микросхемы контроллера, двух логических банков S-тегов и двух логических банков синхронного S-cache (в обоих случаях по одному на четные и нечетные адреса). В итоге объем S-cache с четырехканальной ассоциативностью и обратной записью мог достигать 16 Мбайт. Двухпортовый трехканальный унифицированный TLB позволял хранить 384 записи.

Оба целочисленных конвейера имели по одному вычислительному блоку для простых команд, а также блок смещений и блок умножения-деления, которые были общими для обоих конвейеров. Файл целочисленных регистров располагал девятью портами чтения и четырьмя портами записи. R8000, R8010 и контроллер S-cache использовали общую 80-бит шину TBus, работающую на частоте ЦП. Системная шина ЦП со 128-бит каналом данных и 40-бит каналом адресов также работала на частоте ЦП.

R8000 и R8010 состояли из 2,8 и 0,8 млн. транзисторов соответственно, изготавливались по 500-нм проектным нормам (три слоя), что позволило достичь тактовой частоты 75МГц, которая год спустя была повышена до 90 МГц. Несмотря на столь невысокие тактовые частоты, R8000 и R8010 демонстрировали сравнительно неплохую производительность. Например, рабочая станция Silicon Graphics Power Indigo2 (75-МГц R8000 и R8010 с 2-Мбайт B-cache) по результатам SPECfp92 не уступала DEC 3000 Model 900 (275-МГц 21064А с 2-Мбайт B-cache), а по SPECint92 — была на 47% медленнее.

В марте 1996 г. компания выпускает R10000, анонсированный еще в октябре 1994 г. Основываясь на R4000, но учитывая наработки R8000 и преимущества внедрения внеочередного выполнения команд с переименованием регистров, компания создала ЦП, послуживший основой для всех ее последующих разработок вплоть до наших дней. Все поступающие в ЦП команды (по четыре за такт) немедленно проходили процедуру предварительного декодирования и сортировки, в ходе которой к ним добавлялось по четыре дополнительных байта, и в таком виде они помещались в 32-Кбайт 1-cache с двухканальной ассоциативностью. Для предсказания переходов использовалась таблица истории, состоящая из 512 двухбитовых записей. I-box проводил выборку и декодирование команд из I-cache со скоростью четыре команды за такт, после чего они направлялись в очереди емкостью по 16 команд, по одной очереди на Е-box (пять стадий, два конвейера), F-box (семь стадий, два конвейера) и А-box (один шестистадийный конвейер).

Для успешной работы алгоритмов внеочередного выполнения и переименования регистров имелось два файла регистров по 64 записи в каждом. Файл целочисленных регистров располагал 12 портами чтения и четырьмя портами записи, а файл вещественных регистров — 16 и четыре соответственно. Оба целочисленных конвейера полнофункциональны, но только первый может выполнять команды смещения, а второй — умножения и деления. Первый вещественный конвейер рассчитан на простые арифметические операции, а второй — на команды умножения, деления и извлечения квадратного корня. Почти все целочисленные команды (кроме умножения и деления) выполнялись за один такт, а почти все вещественные (кроме умножения, деления и вычисления квадратного корня) — за три такта. Выборка данных производилась из 32-Кбайт D-cache с двухканальной ассоциативностью, предусмотрен также 16-Мбайт B-cache с двухканальной ассоциативностью и 128-бит каналом данных, работающего со скоростью от 1/3 до полной частоты ядра ЦП.

Емкость унифицированного TLB — 64 записи. Также была реализована новая 64-бит системная шина (Avalanche), работающая со скоростью от 1/4 до полной частоты ядра ЦП, с мультиплексированием каналов данных и адресов, выполняющая до восьми одновременных операций.

Был предусмотрен многопроцессорный режим — топология общей шины, до четырех ЦП. R10000 совместим с набором команд MIPS V, используемым для векторизации вещественных расчетов путем одновременной обработки двух 32-бит чисел одинарной точности в любом вещественном регистре, а также MDMX (MIPS Digital Media Extension, аналог Intel MMX) для векторизации целочисленных вычислений, с позиционированием новых регистров на существующие вещественные.

Процессор изготавливался по 350-нм технологии на мощностях NEC и Toshiba, содержал 0,8 млн. транзисторов и работал с тактовой частотой до 180 МГц.

В ноябре 1998 г. вышла модификация R12000, перепроектированная под 250-нм техпроцесс. Размер таблицы истории переходов был увеличен до 2048 записей, некоторые изменения были внесены также в логику I-box и С-box. Количество транзисторов возросло до 7,15 млн., тактовые частоты были подняты до 300 МГц и выше. В дальнейшем производство перешло на 180-нм техпроцессы.

В 2001 г. был выпущен процессор R14000 — практически R12000, перепроектированный под 130-нм проектные нормы, с увеличенной до 600 МГц тактовой частотой. Выпущенный в 2002 г. R16000 отличался лишь удвоенными размерами I-cache и D-cache, а также возросшей до 700 МГц тактовой частотой вследствие перехода на 110-нм проектные нормы.