Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 22
Текст из файла (страница 22)
5.5. Компьютеры С!ЗС и й!ЗС Существует два подхода к повышению производительности компьютера: создание машин с архитектурой С1БС (Сотр!ех 1пагшсйоп БеГ Сотрщег — компьютер со сложным набором команд) и К1БС (Кедисед 1пигисгюп Бес Сотрщег — компьютер с сокращенным набором команд). Оба подхода обладают достоинствами и недостатками, поэтому в последних процессорах, например Репйшп 1У, принято компромиссное решение.
В компьютерах с архитектурой С1БС увеличение производительности достигается за счет расширения числа аппаратно и микропрограммно реализуемых операций. Считалось, что расширение системы команд за счет включения в нее все более сложных операций представляет один из признанных архитектурных принципов повышения быстродействия процессора, поэтому все мощные компьютеры строились с архитектурой С1БС.
Для такой архитектуры характерно: большое число машинных операций (именно поэтому архитектура и названа С1БС), некоторые из которых для своего выполнения требуют нескольких тактов, так как для реализации этих операций широко используется принцип микропрограммирования; разнообразие способов адресации, часто приводящих к необходимости нескольких обращений в память при выполнении одной команды; преобладание двухадресных команд, причем в команде прямо указывается адрес памяти (или регистра), куда следует поместить результат; наличие сравнительно небольшого числа регистров общего назначения, что вызвано ограничениями на длину команды; 122 широкое использование микрокомандного принципа управления Однако введение в систему команд таких команд, которые для своего выполнения требуют нескольких машинных тактов, имеют различную длину и используют разные способы адресации, сильно усложняет логику управления и весь процессор в целом. На цуги повышения производительности машины за счет расширения системы ее команд возникает, таким образом, ряд трудностей.
Во-первых, реализовать сложную систему команд с помощью только аппаратных средств довольно трудно, поэтому для ее реализации почти всегда используют микропрограммные средства, т.е. дополнительную память с соответствующими каждой сложной операции микропрограммами. В этом случае каждая команда выполняется как бы за два этапа: первый этап связан с получением команды и операндов из памяти, а второй — с выполнением микропрограммы, хранящейся в памяти микропрограмм. Такое двухэтапное выполнение команды замедляет ее выполнение.
Во-вторых, микропрограммы «сложных» команд занимают значительную часть управляющей памяти. В-третьих, аппаратная реализация редко встречающихся операций не приводит к заметному увеличению быстродействия процессора, но значительно усложняет его структуру и отдельных интегральных схем.
В-четвертых, усложнение интегральных схем означает увеличение числа вентилей и длины проводников, т.е. ведет к увеличению задержек сигналов, а следовательно, к снижению скорости выполнения операций. Все это обусловило появление архитектуры с сокращенным набором команд — К1БС-архитектуры, в которой команды извлекаются из памяти в виде равномерного потока, а процессор постоянно загружен.
Для повышения быстродействия при сокращении набора команд служат следующие основные предпосылки: подавляющее большинство команд (более 90%) при решении определенной задачи образует компактное множество; команды, не входящие в это множество, при решении данной задачи встречаются чрезвычайно редко; сравнительно небольшой набор команд можно эффективно Реализовать аппаратными средствами так, что каждая операция Реализуется за один такт; для современного этапа развития технологии характерно заметное уменьшение различия в быстродействии оперативной и постоянной памяти микропрограмм, что делает многоуровневый принцип программирования нецелесообразным; современный уровень развития технологии позволяет на одном кристалле микропроцессора размещать большое число реги- 123 стров, так называемый регистровый пул, а это делает возможным обращение к регистрам, а не к оперативной памяти.
Для К1БС-процессоров характерно: малое число операций, причем каждая из них выполняется аппаратными средствами строго за один такт; постоянный формат команд, что ускоряет расшифровку команд и делает возможным быстро получать их из памяти (обычно число форматов команд и способов адресации не превышает четырех); преобладание трехадресных команд; неразрушающий принцип обращения к ОП, т.е. полученный результат выполненной операции не затирает значения операнда в памяти, а помещается в отдельный регистр; разделение команд обработки (эти команды имеют формат КК) и обмена с памятью (формат КБ), причем команды обмена с памятью выполняются независимым блоком; наличие большого регистрового пула, т.е.
число регистров общего назначения составляет не менее 32, а в большинстве современных К1БС-компьютеров 256 (известны компьютеры и с большим числом регистров); использование принципа «жесткой» логики для схем управления процессором. Система команд К1БС-процессора включает в себя небольшое (по сравнению с С!ЗС) число операций и использует ограниченное число способов адресации; к этим командам относятся команды работы с памятью, копирования и некоторых арифметических операций. Поскольку число команд небольшое„то длина программы увеличивается и, как показали исследования, она становится примерно на 30 % длиннее аналогичной программы С1БС- компьютера.
Команды обращения к памяти выполняются отдельным блоком и служат для загрузки регистров процессора, число которых может достигать нескольких десятков и даже сотен. Очень важно, что загрузка регистров из памяти, а также передача их содержимого в память осуществляется совершенно независимо от работы собственно процессора. Все регистры объединены в несколько перекрывающихся окон — регистры одного из окон загружаются из памяти, в то время как регистры из другого окна служат для работы с процессором. Перекрытие окон обеспечивает возможность непрерывного размещения команд и взаимодействия процессора со средствами загрузки.
Большое число регистров дает неоспоримые преимущества, но усложняет схемы декодирования номера регистра, что приводит к некоторому увеличению времени обращения к ним. Команды К1БС-процессора обычно имеют фиксированный формат, что позволяет извлекать команду из памяти за одно обра- 124 ,пение. Однако фиксированный формат исключает прямую адресацию памяти. Дешифрация кода операции, осуществляемая исключительно аппаратными средствами, также выполняется за один такт, Такие процессоры используют трехадресные операционные команды типа КК и содержат кэш-памяти достаточно большого объема.
Все это приводит к ускорению выполнения программ, несмотря на то что их длина (т.е. число команд) несколько увеличивается. В К13С-процессорах реализуются средства повышения производительности, характерные для С1БС-систем: суперскалярность (иесколько команд выполняются за один машинный такт) и предсказание переходов.
Для К1БС-процессоров характерно наличие средств поддержки мультипроцессности и компиляторов, позволяющих выполнять оптимизацию программ. Кроме того, на компилятор возлагаются дополнительные функции по контролю над вычислительным процессом, в том числе: распределение регистров, уменьшающее число команд пересылки данных между регистрами и памятью; зашита памяти; контроль переполнения; предотвращение блокнровок конвейеров и т.п. Компилятор должен так формировать программу, чтобы признаки результата использовались не следующей по порядку командой, а через одну (или две). В настоящее время большинство процессоров персональных компьютеров выполняют в виде одной или, реже, нескольких интегральных схем, которые принято делить на процессоры общего назначения и специализированные. К числу процессоров общего назначения относятся популярные процессоры Реп11шп фирмы 1п1е1, большинство процессоров фирмы АМ0, а также фирмы Арр!е.
Из-за большой сложности таких процессоров число изготавливающих их фирм очень мало. Процессоры персональных компьютеров изготавливаются в виде БИС и требуют сложнейшего оборудования стоимостью в сотни миллионов долларов. Для повышения производительности в микропроцессорах персональных компьютеров используют технические решения, подобные тем, что применяются в современных быстродействующих К1БС-процессорах.
Наиболее часто для повышения производительности процессоров в персональных компьютерах используют: суперскалярную обработку данных, предусматривающую запуск и параллельное выполнение нескольких команд из одной программы; увеличение разрядности шины для передачи данных и команд между процессором и памятью до 64 бит, а иногда и больше; 125 внутреннюю кэш-память команд и данных первого уровня достаточно большой емкости; внешнюю кэш-память второго уровня, емкость которой составляет несколько сотен килобайт. Кроме того, в большинстве этих микропроцессоров предусматривается: изменение последовательности выполнения команд, т.е. выполнение команд в последовательности, отличной от той, в которой они находятся в программе.
Это повышает производительность процессора, так как ему не нужно ждать результатов предыдущих операций для выполнения последующих; переименование регистров, позволяющее «увеличить» размеры блока регистров, т.е. ослабить влияние самого главного недостатка архитектуры С1БС. Однако перед рассмотрением перечисленных механизмов повышения производительности нужно познакомиться с функциями и структурой устройства управления. 5.6. Устройства управления Любое устройство компьютера состоит из двух блоков — операционного и управляющего.