Современные микропроцессоры
помещают данные в буфер записи, где они ожидают обращения к кэш-памяти
второго уровня. Отличительной особенностью микропроцессора 21164 является
размещение на кристалле вторичного трехканального множественно-
ассоциативного кэша, емкостью 96 Кбайт. Вторичный кэш резко снижает
количество обращений к внешней шине микропроцессора. Кроме вторичного кэша
на кристалле поддерживается работа с внешним кэшем третьего уровня.
Сочетание большого количества вычислительных устройств, более
быстрого выполнения операций с плавающей точкой (четыре такта вместо
шести), более быстрого доступа к первичному кэшу (два такта вместо трех)
обеспечивала этому микропроцессору рекордную по тем временам
производительности.
4. Особенности архитектуры POWER компании IBM и PowerPC компаний
Motorola, Apple и IBM.
Как уже было отмечено, одним из разработчиков фундаментальной
концепции RISC-архитектуры был Джон Кук из Исследовательского центра IBM
им. Уотсона, который в середине 70-х проводил исследования в этом
направлении и построил миникомпьютер IBM 801, который так никогда и не
появился на рынке. Дальнейшее развитие этих идей в компании IBM нашло
отражение при разработке архитектуру POWER в конце 80-х. Архитектура POWER
(и ее поднаправления POWER2 и PowerPC) в настоящее время являются основой
семейства рабочих станций и серверов RISC System /6000 компании IBM.
Развитие архитектуры IBM 801 в направлении POWER шло в следующих
направлениях: воплощение концепции суперскалярной обработки, улучшение
архитектуры как целевого объекта компиляторов, сокращение длины конвейера и
времени выполнения команд и, наконец, приоритетная ориентация на
эффективное выполнение операций с плавающей точкой.
Архитектура POWER
Архитектура POWER во многих отношениях представляет собой
традиционную RISC-архитектуру. Она придерживается наиболее важных
отличительных особенностей RISC: фиксированной длины команд, архитектуры
регистр-регистр, простых способов адресации, простых (не требующих
интерпретации) команд, большого регистрового файла и трехоперандного
(неразрушительного) формата команд. Однако архитектура POWER имеет также
несколько дополнительных свойств, которые отличают ее от других RISC-
архитектур.
Во-первых, набор команд был основан на идее суперскалярной обработки.
В базовой архитектуре команды распределяются по трем независимым
исполнительным устройствам: устройству переходов, устройству с
фиксированной точкой и устройству с плавающей точкой. Команды могут
направляться в каждое из этих устройств одновременно, где они могут
выполняться одновременно и заканчиваться не в порядке поступления. Для
увеличения уровня параллелизма, который может быть достигнут на практике,
архитектура набора команд определяет для каждого из устройств независимый
набор регистров. Это минимизирует связи и синхронизацию, требуемые между
устройствами, позволяя тем самым исполнительным устройствам настраиваться
на динамическую смесь команд. Любая связь по данным, требующаяся между
устройствами, должна анализироваться компилятором, который может ее
эффективно спланировать. Следует отметить, что это только концептуальная
модель. Любой конкретный процессор с архитектурой POWER может рассматривать
любое из концептуальных устройств как множество исполнительных устройств
для поддержки дополнительного параллелизма команд. Но существование модели
приводит к согласованной разработке набора команд, который естественно
поддерживает степень параллелизма по крайней мере равную трем.
Во-вторых, архитектура POWER расширена несколькими "смешанными"
командами для сокращения времен выполнения. Возможно единственным
недостатком технологии RISC по сравнению с CISC, является то, что иногда
она использует большее количество команд для выполнения одного и того же
задания. Было обнаружено, что во многих случаях увеличения размера кода
можно избежать путем небольшого расширения набора команд, которое вовсе не
означает возврат к сложным командам, подобным командам CISC. Например,
значительная часть увеличения программного кода была обнаружена в кодах
пролога и эпилога, связанных с сохранением и восстановлением регистров во
время вызова процедуры. Чтобы устранить этот фактор IBM ввела команды
"групповой загрузки и записи", которые обеспечивают пересылку нескольких
регистров в/из памяти с помощью единственной команды. Соглашения о связях,
используемые компиляторами POWER, рассматривают задачи планирования,
разделяемые библиотеки и динамическое связывание как простой, единый
механизм. Это было сделано с помощью косвенной адресации посредством
таблицы содержания (TOC - Table Of Contents), которая модифицируется во
время загрузки. Команды групповой загрузки и записи были важным элементом
этих соглашений о связях.
Другим примером смешанных команд является возможность модификации
базового регистра вновь вычисленным эффективным адресом при выполнении
операций загрузки или записи (аналог автоинкрементной адресации). Эти
команды устраняют необходимость выполнения дополнительных команд сложения,
которые в противном случае потребовались бы для инкрементирования индекса
при обращениях к массивам. Хотя это смешанная операция, она не мешает
работе традиционного RISC-конвейера, поскольку модифицированный адрес уже
вычислен и порт записи регистрового файла во время ожидания операции с
памятью свободен.
Архитектура POWER обеспечивает также несколько других способов
сокращения времени выполнения команд такие как: обширный набор команд для
манипуляции битовыми полями, смешанные команды умножения-сложения с
плавающей точкой, установку регистра условий в качестве побочного эффекта
нормального выполнения команды и команды загрузки и записи строк (которые
работают с произвольно выровненными строками байтов).
Третьим фактором, который отличает архитектуру POWER от многих других
RISC-архитектур, является отсутствие механизма "задержанных переходов".
Обычно этот механизм обеспечивает выполнение команды, следующей за командой
условного перехода, перед выполнением самого перехода. Этот механизм
эффективно работал в ранних RISC-машинах для заполнения "пузыря",
появляющегося при оценке условий для выбора направления перехода и выборки
нового потока команд. Однако в более продвинутых, суперскалярных машинах,
этот механизм может оказаться неэффективным, поскольку один такт задержки
команды перехода может привести к появлению нескольких "пузырей", которые
не могут быть покрыты с помощью одного архитектурного слота задержки. Почти
все такие машины, чтобы устранить влияние этих "пузырей", вынуждены вводить
дополнительное оборудование (например, кэш-память адресов переходов). В
таких машинах механизм задержанных переходов становится не только мало
эффективным, но и привносит значительную сложность в логику обработки
последовательности команд. Вместо этого архитектура переходов POWER была
организована для поддержки методики "предварительного просмотра условных
переходов" (branch-lockahead) и методики "свертывания переходов" (branch-
folding).
Методика реализации условных переходов, используемая в архитектуре
POWER, является четвертым уникальным свойством по сравнению с другими RISC-
процессорами. Архитектура POWER определяет расширенные свойства регистра
условий. Проблема архитектур с традиционным регистром условий заключается в
том, что установка битов условий как побочного эффекта выполнения команды,
ставит серьезные ограничения на возможность компилятора изменить порядок
следования команд. Кроме того, регистр условий представляет собой
единственный архитектурный ресурс, создающий серьезное узкое горло в
машине, которая параллельно выполняет несколько команд или выполняет
команды не в порядке их появления в программе. Некоторые RISC-архитектуры
обходят эту проблему путем полного исключения из своего состава регистра
условий и требуют установки кода условий с помощью команд сравнения в
универсальный регистр, либо путем включения операции сравнения в саму
команду перехода. Последний подход потенциально перегружает конвейер команд
при выполнении перехода. Поэтому архитектура POWER вместо того, чтобы
исправлять проблемы, связанные с традиционным подходом к регистру условий,
предлагает: a) наличие специального бита в коде операции каждой команды,
что делает модификацию регистра условий дополнительной возможностью, и тем
самым восстанавливает способность компилятора реорганизовать код, и b)
несколько (восемь) регистров условий для того, чтобы обойти проблему
единственного ресурса и обеспечить большее число имен регистра условий так,
что компилятор может разместить и распределить ресурсы регистра условий,
как он это делает для универсальных регистров.
Другой причиной выбора модели расширенного регистра условий является
то, что она согласуется с организацией машины в виде независимых
исполнительных устройств. Концептуально регистр условий является локальным
по отношению к устройству переходов. Следовательно, для оценки направления
выполнения условного перехода не обязательно обращаться к универсальному
регистровому файлу (который является локальным для устройства с
фиксированной точкой). Для той степени, с которой компилятор может заранее
спланировать модификацию кода условия (и/или загрузить заранее регистры
адреса перехода), аппаратура может заранее просмотреть и свернуть условные
переходы, выделяя их из потока команд. Это позволяет освободить в конвейере
временной слот (такт) выдачи команды, обычно занятый командой перехода, и
дает возможность диспетчеру команд создавать непрерывный линейный поток
команд для вычислительных исполнительных устройств.
Первая реализация архитектуры POWER появилась на рынке в 1990 году. С
тех пор компания IBM представила на рынок еще две версии процессоров POWER2
и POWER2+, обеспечивающих поддержку кэш-памяти второго уровня и имеющих
расширенный набор команд.
По данным IBM процессор POWER требует менее одного такта для
выполнении одной команды по сравнению с примерно 1.25 такта у процессора
Motorola 68040, 1.45 такта у процессора SPARC, 1.8 такта у Intel i486DX и
1.8 такта Hewlett-Packard PA-RISC. Тактовая частота архитектурного ряда в
зависимости от модели меняется от 25 МГц до 62 МГц.
Процессоры POWER работают на частоте 33, 41.6, 45, 50 и 62.5 МГЦ.
Архитектура POWER включает раздельную кэш-память команд и данных (за
исключением рабочих станций и серверов рабочих групп начального уровня,
которые имеют однокристальную реализацию процессора POWER и общую кэш-
память команд и данных), 64- или 128-битовую шину памяти и 52-битовый
виртуальный адрес. Она также имеет интегрированный процессор плавающей
точки и таким образом хорошо подходит для приложений с интенсивными
вычислениями, типичными для технической среды, хотя текущая стратегия
RS/6000 нацелена как на коммерческие, так и на технические приложения.
RS/6000 показывает хорошую производительность на плавающей точке: 134.6
SPECp92 для POWERstation/Powerserver 580. Это меньше, чем уровень моделей
Hewlett-Packard 9000 Series 800 G/H/I-50, которые достигают уровня 150
SPECfp92.
Для реализации быстрой обработки ввода/вывода в архитектуре POWER
используется шина Micro Channel, имеющая пропускную способность 40 или 80
Мбайт/сек. Шина Micro Channel включает 64-битовую шину данных и
обеспечивает поддержку работы нескольких главных адаптеров шины. Такая
поддержка позволяет сетевым контроллерам, видеоадаптерам и другим
интеллектуальным устройствам передавать информацию по шине независимо от
основного процессора, что снижает нагрузку на процессор и соответственно
увеличивает системную производительность.
Многокристальный набор POWER2 состоит из восьми полузаказных микросхем
(устройств):
Блок кэш-памяти команд (ICU) - 32 Кбайт, имеет два порта с 128-битовыми
шинами;
Блок устройств целочисленной арифметики (FXU) - содержит два целочисленных
конвейера и два блока регистров общего назначения (по 32 32-битовых
регистра). Выполняет все целочисленные и логические операции, а также все
операции обращения к памяти;
Блок устройств плавающей точки (FPU) - содержит два конвейера для
выполнения операций с плавающей точкой двойной точности, а также 54 64-
битовых регистра плавающей точки;
Четыре блока кэш-памяти данных - максимальный объем кэш-памяти первого
уровня составляет 256 Кбайт. Каждый блок имеет два порта. Устройство
реализует также ряд функций обнаружения и коррекции ошибок при
взаимодействии с системой памяти;
Блок управления памятью (MMU).
Набор кристаллов POWER2 содержит порядка 23 миллионов транзисторов на
площади 1217 квадратных мм и изготовлен по технологии КМОП с проектными
нормами 0.45 микрон. Рассеиваемая мощность на частоте 66.5 МГц составляет
65 Вт.
Производительность процессора POWER2 по сравнению с POWER значительно
повышена: при тактовой частоте 71.5 МГц она достигает 131 SPECint92 и 274
SPECfp92.
Эволюция архитектуры POWER в направлении архитектуры PowerPC
Компания IBM распространяет влияние архитектуры POWER в направлении
малых систем с помощью платформы PowerPC. Архитектура POWER в этой форме
может обеспечивать уровень производительности и масштабируемость,
превышающие возможности современных персональных компьютеров. PowerPC
базируется на платформе RS/6000 в дешевой конфигурации. В архитектурном
плане основные отличия этих двух разработок заключаются лишь в том, что
системы PowerPC используют однокристальную реализацию архитектуры POWER,
изготавливаемую компанией Motorola, в то время как большинство систем
RS/6000 используют многокристальную реализацию. Имеется несколько вариаций
процессора PowerPC, обеспечивающих потребности портативных изделий и
настольных рабочих станций, но это не исключает возможность применения этих
процессоров в больших системах. Первым на рынке был объявлен процессор 601,
предназначенный для использования в настольных рабочих станциях компаний
IBM и Apple. За ним последовали кристаллы 603 для портативных и настольных
систем начального уровня и 604 для высокопроизводительных настольных
систем. Наконец, процессор 620 разработан специально для серверных
конфигураций и ожидается, что со своей 64-битовой организацией он обеспечит
исключительно высокий уровень производительности.
При разработке архитектуры PowerPC для удовлетворения потребностей
трех различных компаний (Apple, IBM и Motorola) при сохранении
совместимости с RS/6000, в архитектуре POWER было сделано несколько
изменений в следующих направлениях:
упрощение архитектуры с целью ее приспособления ее для реализации дешевых
однокристальных процессоров;
устранение команд, которые могут стать препятствием повышения тактовой
частоты;
устранение архитектурных препятствий суперскалярной обработке и
внеочередному выполнению команд;
добавление свойств, необходимых для поддержки симметричной
многопроцессорной обработки;
добавление новых свойств, считающихся необходимыми для будущих прикладных
программ;
ясное определение линии раздела между "архитектурой" и "реализацией";
обеспечение длительного времени жизни архитектуры путем ее расширения до 64-
битовой.
Архитектура PowerPC поддерживает ту же самую базовую модель
программирования и назначение кодов операций команд, что и архитектура
POWER. В тех местах, где были сделаны изменения, которые могли потенциально
препятствовать процессорам PowerPC выполнять существующие двоичные коды
RS/6000, были расставлены "ловушки", обеспечивающие прерывание и эмуляцию с
помощью программного обеспечения. Такие изменения вводились, естественно,
только в тех случаях, если соответствующая возможность либо использовалась
не очень часто в кодах прикладных программ, либо была изолирована в
библиотечных программах, которые можно просто заменить.
PowerPC 601
Первый микропроцессор PowerPC, PowerPC 601, в настоящее время
выпускается как компанией IBM, так и компанией Motorola. Он представляет
собой процессор среднего класса и предназначен для использования в
настольных вычислительных системах малой и средней стоимости. Он был
разработан в качестве переходной модели от архитектуры POWER к архитектуре
PowerPC и реализует возможности обеих архитектур. При этом двоичные коды
RS/6000 выполняются на нем без изменений, что дало дополнительное время
разработчикам компиляторов для освоения архитектуры PowerPC, а также
разработчикам прикладных систем, которые должны перекомпилировать свои
программы, чтобы полностью использовать возможности архитектуры PowerPC.
Процессор 601 базировался на однокристальном процессоре IBM, который
был разработан к моменту создания альянса трех ведущих фирм. Но по
сравнению со своим предшественником, PowerPC 601 претерпел серьезные
изменения в сторону повышения производительности и снижения стоимости.
Например, в его состав было включено более сложное устройство переходов,
расширенные возможностями мультипроцессорной работы, включая интерфейс шины
высокопроизводительного процессора 88110 компании Motorola. В Power 601
реализована суперскалярная обработка, позволяющая выдавать на выполнение в
каждом такте 3 команды, возможно не в порядке их расположения в программном
коде.
Процессор PowerPC 603
PowerPC 603 является первым микропроцессором в семействе PowerPC,
который полностью поддерживает архитектуру PowerPC (рисунок 6.). Он
включает пять функциональных устройств: устройство переходов, целочисленное
устройство, устройство плавающей точки, устройство загрузки/записи и
устройство системных регистров, а также две, расположенных на кристалле кэш-
памяти для команд и данных, емкостью по 8 Кбайт. Поскольку PowerPC 603 -
суперскалярный микропроцессор, он может выдавать в эти исполнительные
устройства и завершать выполнение до трех команд в каждом такте. Для
увеличения производительности PowerPC 603 допускает внеочередное выполнение
команд. Кроме того он обеспечивает программируемые режимы снижения
потребляемой мощности, которые дают разработчикам систем гибкость
реализации различных технологий управления питанием.
При обработке в процессоре команды распределяются по пяти
исполнительным устройствам в заданном программой порядке. Если отсутствуют
зависимости по операндам, выполнение происходит немедленно. Целочисленное
устройство выполняет большинство команд за один такт. Устройство плавающей
точки имеет конвейерную организацию и выполняет операции с плавающей точкой
как с одинарной, так и с двойной точностью. Команды условных переходов
обрабатывается в устройстве переходов. Если условия перехода доступны, то
решение о направлении перехода принимается немедленно, в противном случае
выполнение последующих команд продолжается по предположению (спекулятивно).
Команды, модифицирующие состояние регистров управления процессором,
выполняются устройством системных регистров. Наконец, пересылки данных
между кэш-памятью данных, с одной стороны, и регистрами общего назначения и
регистрами плавающей точки, с другой стороны, обрабатываются устройством
загрузки/записи.
В случае промаха при обращении к кэш-памяти, обращение к основной
памяти осуществляется с помощью 64-битовой высокопроизводительной шины,
подобной шине микропроцессора MC88110. Для максимизации пропускной
способности и, как следствие, увеличения общей производительности кэш-
память взаимодействует с основной памятью главным образом посредством
групповых операций, которые позволяют заполнить строку кэш-памяти за одну
транзакцию.
Рис.6..
После окончания выполнения команды в исполнительном устройстве ее
результаты направляются в буфер завершения команд (completion buffer) и
затем последовательно записываются в соответствующий регистровый файл по
мере изъятия команд из буфера завершения. Для минимизации конфликтов по
регистрам, в процессоре PowerPC 603 предусмотрены отдельные наборы из 32
целочисленных регистров общего назначения и 32 регистров плавающей точки.
PowerPC 604
Суперскалярный процессор PowerPC 604 обеспечивает одновременную
выдачу до четырех команд. При этом параллельно в каждом такте может
завершаться выполнение до шести команд. На рисунке 5.21 представлена блок-
схема процессора 604. Процессор включает шесть исполнительных устройств,
которые могут работать параллельно:
устройство плавающей точки (FPU);
устройство выполнения переходов (BPU);
устройство загрузки/записи (LSU);
три целочисленных устройства (IU):
два однотактных целочисленных устройства (SCIU);
одно многотактное целочисленное устройство (MCIU).
Такая параллельная конструкция в сочетании со спецификацией команд
PowerPC, допускающей реализацию ускоренного выполнения команд, обеспечивает
высокую эффективность и большую пропускную способность процессора.
Применяемые в процессоре 604 буфера переименования регистров, буферные
станции резервирования, динамическое прогнозирование направления условных
переходов и устройство завершения выполнения команд существенно увеличивают
пропускную способность системы, гарантируют завершение выполнения команд в
порядке, предписанном программой, и обеспечивают реализацию модели точного
прерывания.
В процессоре 604 имеются отдельные устройства управления памятью и
отдельные по 16 Кбайт внутренние кэши для команд и данных. В нем
реализованы два буфера преобразования виртуальных адресов в физические TLB
(отдельно для команд и для данных), содержащие по 128 строк. Оба буфера
являются двухканальными множественно-ассоциативными и обеспечивают
переменный размер страниц виртуальной памяти. Кэш-памяти и буфера TLB
используют для замещения блоков алгоритм LRU.
Процессор 604 имеет 64-битовую внешнюю шину данных и 32-битовую шину
адреса. Интерфейсный протокол процессора 604 позволяет нескольким главным
устройствам шины конкурировать за системные ресурсы при наличии
централизованного внешнего арбитра. Кроме того, внутренние логические схемы
наблюдения за шиной поддерживают когерентность кэш-памяти в
мультипроцессорных конфигурациях. Процессор 604 обеспечивает как одиночные,
так и групповые пересылки данных при обращении к основной памяти.
PowerPC 620
К концу 1995 года ожидается появление нового процессора PowerPC 620.
В отличие от своих предшественников это будет полностью 64-битовый
процессор. При работе на тактовой частоте 133 МГц его производительность
оценивается в 225 единиц SPECint92 и 300 единиц SPECfp92, что
соответственно на 40 и 100% больше показателей процессора PowerPC 604.
Подобно другим 64-битовым процессорам, PowerPC 620 содержит 64-
битовые регистры общего назначения и плавающей точки и обеспечивает
формирование 64-битовых виртуальных адресов. При этом сохраняется
совместимость с 32-битовым режимом работы, реализованным в других моделях
семейства PowerPC.
В процессоре имеется кэш-память данных и команд общей емкостью 64
Кбайт, интерфейсные схемы управления кэш-памятью второго уровня, 128-
битовая шина данных между процессором и основной памятью, а также
логические схемы поддержания когерентного состояния памяти при организации
многопроцессорной системы.
Процессор PowerPC 620 нацелен на рынок высокопроизводительных рабочих
станций и серверов.
В заключении отметим, что в иллюстрациях к курсу приведены основные
характеристики некоторых современных систем, построенных на рассмотренных в
данном разделе процессорах.
4. Особенности архитектуры MIPS компании MIPS Technology
Архитектура MIPS была одной из первых RISC-архитектур, получившей
признание со стороны промышленности. Она была анонсирована в 1986 году.
Первоначально это была полностью 32-битовая архитектура, которая включала
32 регистра общего назначения, 16 регистров плавающей точки и специальную
пару регистров для хранения результатов выполнения операций целочисленного
умножения и деления. Размер команд составлял 32 бит, в ней поддерживался
всего один метод адресации, и пользовательское адресное пространство также
определялось 32 битами. Выполнение арифметических операций
регламентировалось стандартом IEEE 754. В компьютерной промышленности
широкую популярность приобрели 32-битовые процессоры R2000 и R3000, которые
в течение достаточно длительного времени служили основой для построения
рабочих станций и серверов компаний Silicon Graphics, Digital, Siemens
Nixdorf и др. Процессоры R3000/R3010 работали на тактовой частоте 33 или 40
МГц и обеспечивали производительность на уровне 20 SPECint92 и 23 SPECfp92.
Затем на смену микропроцессорам семейства R3000 пришли новые 64-
битовые микропроцессоры R4000 и R4400. (MIPS Technology была первой
компанией выпустившей процессоры с 64-битовой архитектурой). Набор команд
этих процессоров (спецификация MIPS II) был расширен командами загрузки и
записи 64-разрядных чисел с плавающей точкой, командами вычисления
квадратного корня с одинарной и двойной точностью, командами условных
прерываний, а также атомарными операциями, необходимыми для поддержки
мультипроцессорных конфигураций. В процессорах R4000 и R4400 реализованы 64-
битовые шины данных и 64-битовые регистры. В этих процессорах применяется
метод удвоения внутренней тактовой частоты.
Процессоры R2000 и R3000 имели стандартные пятиступенчатые конвейеры
команд. В процессорах R4000 и R4400 применяются более длинные конвейеры
(иногда их называют суперконвейерами). Количество ступеней в процессорах
R4000 и R4400 увеличилось до восьми, что объясняется прежде всего
увеличением тактовой частоты и необходимостью распределения логики для
обеспечения заданной пропускной способности конвейера. Процессор R4000
может работать с тактовой частотой 50/100 МГц и обеспечивает уровень
производительности в 58 SPECint92 и 61 SPECfp92. Процессор R4400 может
работать на частоте 50/100 МГц, или 75/150 МГц, показывая уровень
производительности 94 SPECint92 и 105 SPECfp92.
Внутренняя кэш-память процессора R4000 имеет емкость 16 Кбайт. Она
разделена на 8-Кб кэш команд и 8-Кб кэш данных. С точки зрения реализации
кэш-памяти процессор R4400 имеет более развитые возможности. Он выпускается
в трех модификациях: PC (Primary Cashe) - имеет внутренние кэши команд и
данных емкостью по 16 Кбайт. Процессор в такой конфигурации предназначен
главным образом для дешевых моделей рабочих станций. SC (Secondary Cashe)
содержит логику управления кэш-памятью второго уровня. MC (Multiprocessor
Cashe) - использует специальные алгоритмы обеспечения когерентности и
согласованного состояния памяти для многопроцессорных конфигураций.
В середине 1994 года компания MIPS анонсировала процессор R8000,
который прежде всего был ориентирован на научные прикладные задачи с
интенсивным использованием операций с плавающей точкой. Этот процессор
построен на двух кристаллах (выпускается в виде многокристальной сборки) и
представляет собой первую суперскалярную реализацию архитектуры MIPS.
Теоретическая пиковая производительность процессора для тактовой частоты 75
МГц составляет 300 MFLOPs (до четырех команд и шести операций с плавающей
точкой в каждом такте). Реализация большой кэш-памяти данных емкостью 16
Мбайт, высокой пропускной способности доступа к данным (до 1.2 Гбайт/с) в
сочетании с высокой скоростью выполнения операций позволяет R8000 достигать
75% теоретической производительности даже при решении больших задач типа
LINPACK с размерами матриц 1000x1000 элементов. Аппаратные средства
поддержки когерентного состояния кэш-памяти вместе со средствами
распараллеливания компиляторов обеспечивают возможность построения
высокопроизводительных симметричных многопроцессорных систем. Например,
процессоры R8000 используются в системе Power Challenge компании Silicon
Graphics, которая вполне может сравниться по производительности с
известными суперкомпьютерами Cray Y-MP, имеет на порядок меньшую стоимость
и предъявляет значительно меньшие требования к подсистемам питания и
охлаждения. В однопроцессорном исполнении эта система обеспечивает
производительность на уровне 310 SPECfp92 и 265 MFLOPs на пакете LINPACK
(1000x1000).
В 1994 году MIPS Technology объявила также о создании своего нового
суперскалярного процессора R10000. MIPS Technology R10000 обеспечивает
пиковую производительность в 800 MIPS при работе с внутренней тактовой
частотой 200 МГц за счет обеспечения выдачи для выполнения четырех команд в
каждом такте синхронизации. При этом он обеспечивает обмен данными с кэш-
памятью второго уровня со скоростью 3.2 Гбайт/с.
Рис. 8. Блок-схема микропроцессора R10000
Иерархия памяти
При разработке процессора R10000 большое внимание было уделено
эффективной реализации иерархии памяти. В нем обеспечиваются раннее
обнаружение промахов кэш-памяти и параллельная перезагрузка строк с
выполнением другой полезной работой. Реализованные на кристалле кэши
поддерживают одновременную выборку команд, выполнение команд загрузки и
записи данных в память, а также операций перезагрузки строк кэш-памяти.
Заполнение строк кэш-памяти выполняется по принципу "запрошенное слово
первым", что позволяет существенно сократить простои процессора из-за
ожидания требуемой информации. Все кэши имеют двухканальную множественно-
ассоциативную организацию с алгоритмом замещения LRU.
Кэш-память данных первого уровня
Кэш-память данных первого уровня процессора R10000 имеет емкость 32
Кбайт и организована в виде двух одинаковых банков емкостью по 16 Кбайт,
что обеспечивает двухкратное расслоение при выполнении обращений к этой кэш-
памяти. Каждый банк представляет собой двухканальную множественно-
ассоциативную кэш-память с размером строки (блока) в 32 байта. Кэш данных
индексируется с помощью виртуального адреса и хранит теги физических
адресов памяти. Такой метод индексации позволяет выбрать подмножество кэш-
памяти в том же такте, в котором формируется виртуальный адрес. Однако для
того, чтобы поддерживать когерентность с кэш-памятью второго уровня, в кэше
первого уровня хранятся теги физических адресов памяти.
Массивы данных и тегов в каждом банке являются независимыми. Эти
четыре массива работают под общим управлением очереди формирования адресов
памяти и схем внешнего интерфейса кристалла. В очереди адресов могут
одновременно находиться до 16 команд загрузки и записи, которые
обрабатываются в четырех отдельных конвейерах. Команды из этой очереди
динамически выдаются для выполнения в специальный конвейер, который
обеспечивает вычисление исполнительного виртуального адреса и
преобразование этого адреса в физический. Три других параллельно работающих
конвейера могут одновременно выполнять проверку тегов, осуществлять
пересылку данных для команд загрузки и завершать выполнение команд записи в
память. Хотя команды выполняются в строгом порядке их расположения в
памяти, вычисление адресов и пересылка данных для команд загрузки могут
происходить неупорядоченно. Схемы внешнего интерфейса кристалла могут
выполнять заполнение или обратное копирование строк кэш-памяти, либо
операции просмотра тегов. Такая параллельная работа большинства устройств
процессора позволяет R10000 эффективно выполнять реальные многопроцессорные
приложения.
Работа конвейеров кэш-памяти данных тесно координирована. Например,
команды загрузки могут выполнять проверку тегов и чтение данных в том же
такте, что и преобразование адреса. Команды записи сразу же начинают
проверку тегов, чтобы в случае необходимости как можно раньше инициировать
заполнение требуемой строки из кэш-памяти второго уровня, но
непосредственная запись данных в кэш задерживается до тех пор, пока сама
команда записи не станет самой старой командой в общей очереди выполняемых
команд и ей будет позволено зафиксировать свой результат ("выпустится").
Промах при обращении к кэш-памяти данных первого уровня инициирует процесс
заполнения строки из кэш-памяти второго уровня. При выполнении команд
загрузки одновременно с заполнением строки кэш-памяти данные могут
поступать по цепям обхода в регистровый файл.
При обнаружении промаха при обращении к кэш-памяти данных ее работа
не блокируется, т.е. она может продолжать обслуживание следующих запросов.
Это особенно полезно для уменьшения такого важного показателя качества
реализованной архитектуры как среднее число тактов на команду (CPI - clock
cycles per instruction). На рисунке 5.14 представлены результаты
моделирования работы R10000 на нескольких программах тестового пакета SPEC.
Для каждого теста даны два результата: с блокировкой кэш-памяти данных при
обнаружении промаха (вверху) и действительное значение CPI R10000 (внизу).
Выделенная более темным цветом правая область соответствует времени,
потерянному из-за промахов кэш-памяти. Верхний результат отражает полную
задержку в случае, если бы все операции по перезагрузке кэш-памяти
выполнялись строго последовательно. Таким образом, стрелка представляет
потери времени, которые возникают в блокируемом кэше. Эффект применения
неблокируемой кэш-памяти сильно зависит характеристик самих программ. Для
небольших тестов, рабочие наборы которых полностью помещаются в кэш-памяти
первого уровня, этот эффект не велик. Однако для более реальных программ,
подобных тесту tomcatv или тяжелому для кэш-памяти тесту compress, выигрыш
оказывается существенным.
Кэш-память второго уровня
Интерфейс кэш-памяти второго уровня процессора R10000 поддерживает
128-битовую магистраль данных, которая может работать с тактовой частотой
до 200 МГц, обеспечивая скорость обмена до 3.2 Гбайт/с (для снижения
требований к быстродействию микросхем памяти предусмотрена также
возможность деления частоты с коэффициентами 1.5, 2, 2.5 и 3). Все
стандартные синхронные сигналы управления статической памятью
вырабатываются внутри процессора. Не требуется никаких внешних интерфейсных
схем. Минимальный объем кэш-памяти второго уровня составляет 512 Кбайт,
максимальный размер - 16 Мбайт. Размер строки этой кэш-памяти
Страницы: 1, 2, 3
|