Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzam.docx
Скачиваний:
8
Добавлен:
18.09.2019
Размер:
3.23 Mб
Скачать

34. Організація конвеєру в risc-процесорах

Для большинст­ва машинных команд, которые имеют дело только с операндами в регистрах, цикл выполнения команды состоит из двух фаз:

  • I — фаза извлечения команды;

  • Е — фаза выполнения команды; при этом АЛУ выполняет преобразование опе­ рандов, поступающих из регистров, и записывает результат в один из них.

При выполнении команд загрузки данных из памяти и сохранения их в па­мяти цикл состоит из трех фаз:

  • I — фаза извлечения команды;

  • Е — фаза вычисления адреса;

  • D — фаза пересылки данных из регистра в память или из памяти в регистр.

На рис. 12.6,а показана последовательность выполнения операций при от­сутствии конвейера в процессоре. Совершенно очевидно, что при этом много времени тратится неэффективно. Даже простейшее совмещение выполнения от­дельных фаз может существенно увеличить производительность. На рис. 12.6,6 показана последовательность операций при использовании двухпозиционного конвейера, в котором совмещено выполнение фаз I и Е двух разных команд. При этом достигается почти двукратное повышение производительности. Дос­тичь теоретически максимально возможного повышения скорости мешает нали­чие двух проблем. Во-первых, предполагается, что используется однопортовая память, т.е. на каждом такте работы конвейера возможно только одно обраще­ние к памяти. В результате при выполнении некоторых команд в последователь­ность операций приходится включать холостую фазу. Во-вторых, последователь­ный поток выполнения команд прерывается командами переходов. Для преодо­ления указанных затруднений компилятор включает в формируемую машинную программу холостые команды NOOP.

Повысить скорость работы конвейера также можно, используя память, по­зволяющую обрабатывать два обращения за один такт работы конвейера. После­довательность операций при такой организации показана на рис. 12.6,в. Появля­ется возможность параллельного выполнения трех машинных команд и, теоре­тически, трехкратного повышения производительности. Но наличие команд передачи управления в программе не позволяет достичь максимального теорети­ческого предела. Кроме того, существует и зависимость между данными, обраба­тываемыми последовательно выполняемыми командами. Если в одной команде используется операнд, изменяемый в предыдущей команде, в конвейере необхо­димо организовать задержку (холостой такт). Для этого в последовательность включается команда NOOP.

35. Порівняльні характеристики risc і сisc комп’ютерів

После начального периода эйфории от перспектив, открывающихся пе­ред RISC-архитектурой, наступило некоторое отрезвление. Все больше конст­рукторов стали приходить к выводу, что RISC-архитектура выиграет, заим­ствуя некоторые особенности CISC-архитектуры, а CISC-архитектура получит преимущество, если в ее рамках будут реализованы некоторые идеи RISC-архитектуры. В результате большинство современных процессоров, которые принято относить к классу RISC, таковыми в чистом виде уже не являются. В частности, это относится к процессорам семейства PowerPC. Аналогично, и многие современные CISC-процессоры, например Pentium II, имеют опреде­ленные черты RISC-архитектуры.

Интересное сопоставление характеристик разных типов процессоров проведено в работе [MASH95]. В табл. 12.8 перечислены несколько моделей процессоров и проведено их сравнение по ряду характеристик. Считалось, что типовыми характеристиками RISC-архитектуры являются следующие.

  1. Единый размер машинных команд.

  2. Типовой размер команды — 4 байт.

  3. Весьма ограниченное количество режимов адресации (как правило, менее 5). Этот параметр в некоторых моделях процессоров оценить однозначно довольно трудно. Например, в таблице литеральный и регистровый режимы не учитыва­ лись, а форматы с разными размерами смещений учитывались раздельно.

  4. Отсутствие косвенной адресации, которая требует двойного обращения к памяти для извлечения операнда.

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

  1. Не более одного операнда, извлекаемого из памяти, в каждой команде.

  1. Отсутствие произвольного выравнивания элементов данных в операциях загрузки/сохранения (т.е. все данные выравниваются по границе ма­ шинного слова).

  2. Использование в минимальной степени устройства управления памятью (MMU — memory management unit) для адресации данных в команде.

  3. Количество битов для задания регистра целых чисел в команде должно быть больше или равно пяти, т.е. не менее 32 регистров можно в явном ви­ де адресовать в команде.

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

Свойства от 1-го до 3-го определяют сложность дешифрации команды. Свойства от 4-го до 8-го позволяют упростить схему конвейера операций, осо­бенно при использовании виртуальной памяти. Свойства 9 и 10 связаны с воз­можностями построения компиляторов.

Процессоры, перечисленные в первых восьми строках табл. 12.8, представ­ляют собой типичную реализацию идей RISC-архитектуры. Следующие пять — типичные CISC-процессоры, а последние два, хотя и считаются RISC-процессорами, имеют множество свойств, характерных для CICS-архитектуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]