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

Существует два подхода к повышению производительности компьютера: создание машин с архитектурой CISC (Complex Instruction Set Computer — компьютер со сложным набором ко­манд) и RISC (Reduced Instruction Set Computer — компьютер с сокращенным набором команд). Оба подхода обладают достоин­ствами и недостатками, поэтому в последних процессорах, на­пример Pentium IV, принято компромиссное решение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

использование принципа «жесткой» логики для схем управле­ния процессором.

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

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

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

В RISC-процессорах реализуются средства повышения произ­водительности, характерные для CISC-систем: суперскалярность (несколько команд выполняются за один машинный такт) и пред­сказание переходов.

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

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

защита памяти;

контроль переполнения;

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

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

В настоящее время большинство процессоров персональных компьютеров выполняют в виде одной или, реже, нескольких интегральных схем, которые принято делить на процессоры об­щего назначения и специализированные. К числу процессоров об­щего назначения относятся популярные процессоры Pentium фир­мы Intel, большинство процессоров фирмы AMD, а также фирмы Apple. Из-за большой сложности таких процессоров число изго­тавливающих их фирм очень мало. Процессоры персональных ком­пьютеров изготавливаются в виде БИС и требуют сложнейшего оборудования стоимостью в сотни миллионов долларов.

Для повышения производительности в микропроцессорах пер­сональных компьютеров используют технические решения, по­добные тем, что применяются в современных быстродействую­щих RISC-процессорах. Наиболее часто для повышения произво­дительности процессоров в персональных компьютерах использу­ют:

суперскалярную обработку данных, предусматривающую запуск и параллельное выполнение нескольких команд из одной про­граммы;

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

внутреннюю кэш-память команд и данных первого уровня до­статочно большой емкости;

внешнюю кэш-память второго уровня, емкость которой состав­ляет несколько сотен килобайт.

Кроме того, в большинстве этих микропроцессоров предус­матривается:

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

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

Однако перед рассмотрением перечисленных механизмов по­вышения производительности нужно познакомиться с функция­ми и структурой устройства управления.

1

124

Соседние файлы в папке Ответы