Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем

.pdf
Скачиваний:
2028
Добавлен:
02.05.2014
Размер:
22.66 Mб
Скачать

Архитектуры с полным и сокращенным набором команд 4 4 7

Архитектуры с полным и сокращенным набором команд

Современная технология программирования ориентирована на языки высокого уровня (ЯВУ), главная задача которых — облегчить процесс написания программ. Более 90% всего процесса программирования осуществляют на ЯВУ. К сожале­ нию, операции, характерные для ЯВУ, отличаются от операций, реализуемых ма­ шинными командами. Эта проблема получила название семантического разрыва и ведет она к недостаточно эффективному выполнению программ. Пытаясь преодо­ леть семантический разрыв, разработчики ВМ расширяют систему команд, допол­ няя ее командами, реализующими сложные операторы ЯВУ на аппаратурном уров­ не, вводят дополнительные виды адресации и т. п. Вычислительные машины, где реализованы эти средства, принято называть ВМ с полным набором команд (CISC — Complex Instruction Set Computer). К типу CISC можно отнести практически все ВМ, выпускавшиеся до середины 80-х годов и значительную часть из выпускае­ мых в настоящее время.

Характерные для CISC способы решения проблемы семантического разрыва, вместе с тем ведут к усложнению архитектуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности в целом. Кроме того, в CISC очень сложно организовать эффективный конвейер команд, который, как уже отмечалось, является одним из наиболее перспектив­ ных путей повышения производительности ВМ. Все это заставило более внима­ тельно проанализировать программы, получаемые после компиляции с ЯВУ. Был предпринят комплекс исследований [128,158,177,178,209], в результате которых обнаружились интересные закономерности:

-Реализация сложных команд, эквивалентных операторам ЯВУ, требует увели­ чения емкости управляющей памяти в микропрограммном УУ. Микропрограмкак их доля в общем объеме программы зачастую не превышает 0,2%.

-В откомпилированной программе операторы ЯВУ реализуются в виде проце­ дур (подпрограмм), поэтому на операции вызова процедуры и возврата из нее приходится от 15 до 45% вычислительной нагрузки.

-При вызове процедуры вызывающая программа передает этой процедуре неко­ торое количество аргументов. Согласно [209], в 98% случаев число передавае­ мых аргументов не превышает шести. Примерно такое же положение сложи­ лось и с параметрами, которые процедура возвращает вызывающей программе. Более 80% переменных, используемых программой [177,178], являются локаль­ ными, то есть создаются при входе в процедуру и уничтожаются при выходе из нее. Количество локальных переменных, создаваемых отдельной процедурой, в 92% случаев не превышает шести [209].

-Почти половину операций в ходе вычислений составляет операция присваива­ ния, сводящаяся к пересылке данных между регистрами, ячейками памяти или регистрами и памятью.

4 4 8 Глава 9. Основные направления в архитектуре процессоров

Детальный анализ результатов исследований привел к серьезному пересмотру традиционных архитектурных решений, следствием чего стало появление арх и- тектуры с сокращенным набором команд (RISC - Reduced Instruction Set Compu­ ter) . Термин «RISC» впервые был использован Паттерсоном и Дитцелем в 1980 году.

Основные черты RISC-архитектуры

Главные усилия в архитектуре RISC направлены на построение максимально эф­ фективного конвейера команд, то есть такого, где все команды извлекаются из па­ мяти и поступают в ЦП на обработку в виде равномерного пoтока, причем ни одна команда не должна находиться в состоянии ожидания, а ЦП должен оставаться загруженным на протяжении всего времени. Кроме того, идеальным будет вариант, когда любой этап цикла команды выполняется в течение одного тактового периода,

Последнее условие относительно просто можно реализовать для этапа выборки. Необходимо лишь, чтобы все команды имели стандартную длину, равную ширине шины данных, соединяющей ЦП и память. Унификация времени исполнения для различных команд — значительно более сложная задача, поскольку наряду с реги­ стровыми существуют также команды с обращением к памяти.

Помимо одинаковой длины команд, важно иметь относительно простую под­ систему декодирования и управления: сложное устройство управления (УУ) бу­ дет вносить дополнительные задержки в формирование сигналов управления. Очевидный путь существенного упрощения УУ — сокращение числа выполняе­ мых команд, форматов команд и данных, а также видов адресации.

Излишне напоминать, что в сокращенном списке команд должны оставаться те, которые используются наиболее часто. Исследования показали, что 80-90% времени выполнения типовых программ приходится на относительно малую часть команд (10-20%). К наиболее часто востребуемым действиям относятся пересыл­ ка данных, арифметические и логические операции. Основная причина, препят­ ствующая сведению всех этапов цикла команды к одному тактовому периоду, - по­ тенциальная необходимость доступа к памяти для выборки операндов и/или записи результатов. Следует максимально сократить число команд, имеющих доступ к па­ мяти. Это соображение добавляет к ранее упомянутым принципам RISC еще два

-доступ к памяти во время исполнения осуществляется только командами «Чте­ ние» и «Запись»;

-все операции, кроме «Чтение» и «Запись», имеют тип «регистр-регистр».

Для упрощения выполнения большинства команд и приведения их к типу «ре­ гистр-регистр* требуется снабдить ЦП значительным числом регистров общего назначения. Большое число регистров в регистровом файле ЦП позволяет обеспе­ чить временное хранение промежуточных результатов, используемых как операн­ ды в последующих операциях, и ведет к уменьшению числа обращений к памяти, ускоряя выполнение операций. Минимальное число регистров, равное 32, приня­ то как стандарт де-факто большинством производителей RISC-компьютеров,

Суммируя сказанное, концепцию RISC-компьютера можно свести к следую­ щим положениям:

-выполнение всех (или, по крайней мере, 75% команд) за один цикл;

-стандартная однословная длина всех команд, равная естественной длине слова

иширине шины данных и допускающая унифицированную поточную обработ­ ку всех команд;

4 5 2 Глава 9. Основные направления в архитектуре процессоров

Window Pointer) содержит номер последнего из окон, сохраненных в памяти по причине переполнения циклического буфера. Если процедура D теперь вызовет процедуру Е, аргументы для нее она поместит в общее для обеих поле регистровых окон (пересечение окон 03 и О4 а значение CWP увеличится на единицу, то есть CWP будет показывать на окно 04.

Если далее процедура Е вызовет нроцедуру F, то этот вызов при существующем состоянии буфера не может быть выполнен, поскольку окно для F(05) перекрыва­ ется с окном процедуры А (00). Следовательно, при попытке F начать загружать правое поле своего окна будут потеряны параметры процедуры А (Авх). Поэтому когда CWP увеличивается на единицу (операция выполняется по модулю 6) и ока­ зывается равным SWP, возникает прерывание и окно процедуры А сохраняется в памяти (запоминаются только поля Авх и Авых). Далее значение CWP инкрементируется и производится вызов процедуры F, Аналогичное прерывание происхо­ дит и при возврате, например когда выполнится возврат из В в A CWP уменьшаетприведет к восстановлению содержимого окна процедуры А из памяти.

Как видно из примера, регистровый файл из п окон способен поддерживать п - 1 вызов процедуры. Число п не должно быть большим. В [208] показано, что при 8 регистровых окнах сохранение и восстановление окон в памяти требуется лишь для 1% операций вызова процедур. В ВМ Pyramid, например, используется 16 окон по 32 регистра в каждом.

Теоретически такой прием не исключен и в CISC. Однако устройство управле­ ния CISC-процессора оккупирует на кристалле более 50% площади, оставляя мало места для других подсистем, в частности для большого файла регистров. У У RISC занимает порядка 10% поверхности кристалла, предоставляя возможность иметь большой регистровый файл.

Другая часто встречаемая техника аппаратной оптимизации использования регистров — придание некоторым из них специального качества: такие регистры в состоянии принимать на себя имя любого РОН. Набор регистров, обладающих

подобным свойством, называют буфером переименования. Прием оказывается очень удобным при конвейеризации команд и позволяет предотвратить конфликты, когда одна команда хочет воспользоваться регистром, в данный момент занятым другой командой.

Преимущества и недостатки RISC

Сравнивая достоинства и недостатки CISC и RISC, невозможно сделать однознач­ ный вывод о неоспоримом преимуществе одной архитектуры над другой. Для от­ дельных сфер использования ВМ лучшей оказывается та или иная. Тем не менее ниже приводится основная аргументация «за» и «против» RISC-архитектуры,

Для технологии RISC характерна сравнительно простая структура устройства управления. Площадь, выделяемая на кристалле микросхемы для реализации УУ, существенно меньше.Так, в RISC I она составляет 6%,а в RISC II - 10%. Как след­ ствие, появляется возможность разместить на кристалле большое число регистров ЦП (138 в RISC II). Кроме того, остается больше места для других узлов ЦП и для дополнительных устройств: кэш-памяти, блока арифметики с плавающей запятой, части основной памяти, блока управления памятью, портов ввода/вывода.

Унификация набора команд, ориентация на потоковую конвейерную обработ­ ку, унификация размера команд и длительности их выполнения, устранение пери-

Суперскалярные процессоры 45 3

одов ожидания в конвейере — все эти факторы положительно сказываются на общем быстродействии. Простое устройство управления имеет немного вентилей и, следовательно, короткие линии связи для прохождения сигналов управления. Малое число команд, форматов и режимов приводит к упрощению схемы декоди­ рования, и оно происходит быстрее. Применяемое в RISC УУ с «жесткой»логикой быстрее микропрограммного. Высокой производительности способствует и уп­ рощение передачи параметров между процедурами. Таким образом, применение RISC ведет к сокращению времени выполнения программы или увеличению ско­ рости, за счет сокращения числа циклов на команду.

Простота У У, сопровождаемая снижением стоимости и повышением надежно­ сти, также говорит в пользу RISC. Разработка УУ занимает меньше времени. Про­ стое УУ будет содержать меньше конструктивных ошибок и поэтому более надежно.

Многие современные CISC-машины, такие как VAX 11/780, VА Х-8600, имеют много средств для прямой поддержки функций ЯВУ, наиболее частых в этих язы­ ках (управление процедурами, операции с массивами, проверка индексов масси­ вов, защита информации, управление памятью и т. д.). RISC также обладает рядом средств для непосредственной поддержки ЯВУ и упрощения разработки компи­ ляторов ЯВУ, благодаря чему эта архитектура в плане поддержки ЯВУ ни в чем не уступает CISC,

Недостатки RISC прямо связаны с некоторыми преимуществами этой архи­ тектуры. Принципиальный недостаток - сокращенное число команд: на выполне­ ние ряда функций приходится тратить несколько команд вместо одной в CISC. Это удлиняет код программы, увеличивает загрузку памяти и трафик команд меж­ ду памятью и ЦП. Недавние исследования показали, что RISC-программа в сред­ нем на 30% длиннее CISC-программы, реализующей те же функции.

Хотя большое число регистров дает существенные преимущества, само по себе оно усложняет схему декодирования номера регистра, тем самым увеличивается время доступа к регистрам,

УУ с «жесткой» логикой, реализованное в большинстве RISC-систем, менее гибко, более склонно к ошибкам, затрудняет поиск и исправление ошибок, уступа­ ет при выполнении сложных команд.

Однословная команда исключает прямую адресацию для полного 32-битового адреса Поэтому ряд производителей допускают небольшую часть команд двой­ ной длины, например в Intel 80960.

Суперскалярные процессоры

Поскольку возможности по совершенствованию элементной базы уже практичес­ ки исчерпаны, дальнейшее повышение производительности ВМ лежит в плоско­ сти архитектурных решений. Как уже отмечалось, один из наиболее эффективных подходов в этом плане - введение в вычислительный процесс различных уровней параллелизма Ранее рассмотренный конвейер команд - типичный пример такого подхода Тем же целям служат и арифметические конвейеры, где конвейеризации подвергается процесс выполнения арифметических операций. Дополнительный уровень параллелизма реализуется в векторных и матричных процессорах, но толь­ ко при обработке многокомпонентных операндов типа векторов и массивов. Здесь высокое быстродействие достигается за счет одновременной обработки всех ком­ понентов вектора или массива, однако подобные операнды характерны лишь для