Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по ВС.doc
Скачиваний:
228
Добавлен:
22.03.2016
Размер:
1.1 Mб
Скачать

5.5 CisCиRisCкомпьютеры

Как уже отмечалось, существует два подхода к повышению производительности компьютера; это создание машин с архитектурой CISC (Complex Instruction Set Computer – компьютер со сложным набором команд) и RISC (Reduced Instruction Set Computer - компьютер с сокращенным набором команд). Оба подхода обладают определенными достоинствами и недостатками. Поэтому в последних процессорах, например, Pentium IY, принято компромиссное решение. Однако вначале остановимся на особенностях этих архитектур.

В компьютерах с архитектурой CISC увеличение производительности достигается расширением числа аппаратно и микропрограммно реализуемых операций. Считалось, что расширение системы команд за счет включения в нее все более сложных операций представляет один из признанных архитектурных принципов повышения быстродействия процессора. Поэтому все мощные компьютеры строились с архитектурой CISC. Для такой архитектуры характерно:

  • Большое число машинных операций (именно поэтому архитектура и названа CISC), некоторые из которых для своего выполнения требуют нескольких тактов, так как для реализации этих операций широко используется принцип микропрограммирования,

  • Большое разнообразие способов адресации, часто приводящих к необходимости нескольких обращений в память при выполнении одной команды,

  • Преобладание двухадресных команд, причем в команде прямо указывается адрес памяти (или регистра), куда следует поместить результат,

  • Наличие сравнительно небольшого числа регистров общего назначения, что вызвано ограничениями на длину команды,

  • Широкое использование микрокомандного принципа управления.

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

Во-первых, реализовать сложную систему команд с помощью только аппаратных средств довольно трудно и поэтому для ее реализации почти всегда используют микропрограммные средства, т.е. дополнительную память с соответствующими каждой сложной операции микропрограммами. В этом случае каждая команда выполняется как бы за два этапа: первый этап связан с получением команды и операндов из памяти, а второй – с выполнением микропрограммы, хранящейся в памяти микропрограмм. Такое двухэтапное выполнение команды существенно замедляет ее выполнение.

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

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

В четвертых, усложнение ИС означает увеличение числа вентилей и длины проводников, т.е. ведет к увеличению задержек сигналов, а, следовательно, и к снижению скорости выполнения операций.

Все это привело к появлению архитектуры с сокращенным набором команд – RISC-архитектуры, в которой команды извлекаются из памяти в виде равномерного потока, и процессор остается постоянно загруженным. Основными предпосылками для повышения быстродействия при сокращении набора команд служат следующие:

  • Подавляющее большинство команд (более 90%) при решении определенной задачи образует компактное множество; команды, не входящие в это множество, при решении данной задачи встречаются чрезвычайно редко,

  • Сравнительно небольшой набор команд можно эффективно реализовать аппаратными средствами так, что каждая операция реализуется за один такт,

  • Для современного этапа развития технологии характерно заметное уменьшение различия в быстродействии оперативной и постоянной памяти микропрограмм, что делает многоуровневый принцип программирования нецелесообразным.

  • Современный уровень развития технологии позволяет на одном кристалле микропроцессора размещать большое число регистров, так называемого регистрового пула, а это делает возможным обращение к регистрам, а не к оперативной памяти.

Для RISC-процессоров характерно:

  • Малое число операций, причем каждая из них выполняется аппаратными средствами строго за один такт,

  • Постоянный формат команд, что ускоряет расшифровку команд и делает возможным быстро получать их из памяти (обычно количество форматов команд составляет не более четырех, а количество способов адресации также не превышает 4);

  • Преобладание трехадресных команд,

  • Неразрушающий принцип обращения к основной памяти, т.е. полученный результат выполненной операции не затирает значения операнда в памяти, а помещается в отдельный регистр,

  • Разделение команд обработки (эти команды имеют формат RR) и обмена с памятью (формат RS), причем команды обмена с памятью выполняются независимым блоком,

  • Наличие большого регистрового пула, т.е. количество регистров общего назначения составляет не менее 32, а в большинстве современных RISC-компьютеров 256 (известны компьютеры и с большим числом регистров),

  • Устройство управления RISC-процессора строится по принципу «жесткой» логики, т.е. отсутствует промежуточный микропрограммный уровень.

Система команд RISC-процессора включает небольшое (по сравнению с CISC) число операций и использует ограниченное число способов адресации; в число этих команд входят команды работы с памятью, копирования и некоторых арифметических операций. Поскольку число команд небольшое, то длина программы увеличивается, и как показали исследования, она становится примерно на 30% длиннее аналогичной программы CISC-компьютера.

Команды обращения к памяти выполняются отдельным блоком и служат для загрузки регистров процессора, число которых может достигать нескольких десятков и даже сотен. Очень важно, что загрузка регистров из памяти, а также передача их содержимого в память осуществляется совершенно независимо от работы собственно процессора. Все регистры объединены в несколько перекрывающихся окон – регистры одного из окон подвергаются загрузке из памяти, в то время как регистры из другого окна служат для работы с процессором. Перекрытие окон обеспечивает возможность непрерывного размещения команд и взаимодействия процессора со средствами загрузки. Большое число регистров дает неоспоримые преимущества, но усложняет схемы декодирования номера регистра, что приводит к некоторому увеличению времени обращения к ним.

Команды RISC-процессора обычно имеют фиксированный формат, что позволяет извлекать команду из памяти за одно обращение. Однако фиксированный формат исключает прямую адресацию памяти. Дешифрация кода операции, осуществляемая исключительно аппаратными средствами, также выполняется за один такт. Как уже отмечалось, процессор использует трехадресные операционные команды типа RR. Помимо этого, RISC-процессоры содержат кэш-памяти достаточно большого объема.

Все это приводит к ускорению выполнения программ, несмотря на то, что их длина (т.е. число команд) несколько увеличивается.

В RISC-процессорах реализуются средства повышения производительности, характерные для CISC-систем: суперскалярность, т.е. несколько команд выполняются за один машинный такт, и предсказание переходов. Эти средства рассмотрены позднее. Для RISC-процессоров характерно наличие средств поддержки мультипроцессности и компиляторов, позволяющих выполнять оптимизацию программ. Кроме того, на компилятор возлагается ряд дополнительных функций по контролю за вычислительным процессом, в том числе:

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

  • защита памяти,

  • контроль переполнения,

  • предотвращение блокировок конвейеров и т.п.

Компилятор должен так формировать программу, чтобы признаки результата использовались не следующей по порядку командой, а через одну (или две).