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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

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

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

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

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

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

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

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

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

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

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

 

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

Суперскалярным(этот термин впервые был использован в 1987 году) на­зывается центральный процессор (ЦП), который одновременно выполняет более чем одну скалярную команду. Это достигается за счет включения в состав ЦП не­скольких самостоятельных функциональных (исполнительных) блоков, каждый из которых отвечает за свой класс операций и может присутствовать в процессоре в нескольких экземплярах. Так, в микропроцессоре Pentium III блоки целочислен­ной арифметики и операций с плавающей точкой дублированы, а в микропроцессо­рах Pentium 4 и Athlon – троированы. Структура типичного суперскалярного про­цессора показана на рис. 55. Процессор включает в себя шесть блоков: выборки команд, декодирования команд, диспетчеризации команд, распределения команд по функциональным блокам, блок исполнения и блок обновления состояния.

 

 

Рис. 55. Архитектура суперскалярного процессора.

 

Блок выборки команд извлекает команды из основной памяти через кэш-память команд. Этот блок хранит несколько значений счетчика команд и обрабатывает команды условного перехода.

Блок декодирования расшифровывает код операции, содержащийся в извлечен­ных из кэш-памяти командах. В некоторых суперскалярных процессорах, например в микропроцессорах фирмы Intel, блоки выборки и декодирования совмещены.

Блоки диспетчеризации и распределениявзаимодействуют между собой и в со­вокупности играют в суперскалярном процессоре роль контроллера трафика. Оба блока хранят очереди декодированных команд. Очередь блока распределения часто рассредоточивается по несколько самостоятельным буферам – накопителям ко­манд или схемам резервирования (reservation station), – предназначенным для хранения команд, которые уже декодированы, но еще не выполнены. Каждый на­копитель команд связан со своим функциональным блоком (ФБ), поэтому число накопителей обычно равно числу ФБ, но если в процессоре используется несколь­ко однотипных ФБ, то им придается общий накопитель. По отношению к блоку диспетчеризации накопители команд выступают в роли виртуальных функцио­нальных устройств.

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

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

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

Подобный подход реализован в микропроцессоре Intel Pentium, где имеются два конвейера, каждый со своим АЛУ (рис. 56). Отметим, что здесь, в отличие от стандартного конвейера, в каждом цикле необходимо производить выборку более чем одной команды. Соответственно, память ВМ должна допускать одновремен­ное считывание нескольких команд и операндов, что чаще всего обеспечивается за счет ее модульного построения.

 

Рис. 56. Суперскалярный процессор с двумя конвейерами.

 

Более интегрированный подход к построению суперскалярного конвейера по­казан на рис. 57. Здесь блок выборки (ВК) извлекает из памяти более одной ко­манды и передает их через ступени декодирования команды и вычисления адресов операндов в блок выборки операндов (ВО). Когда операнды становятся доступны­ми, команды распределяются по соответствующим исполнительным блокам. Об­ратим внимание, что операции «Чтение», «Запись» и «Переход» реализуются са­мостоятельными исполнительными блоками. Подобная форма суперскалярного процессора используется в микропроцессорах Pentium II и Pentium III фирмы Intel, а форма с тремя конвейерами — в микропроцессоре Athlon фирмы AMD.

 

Рис. 57. Суперскалярный конвейер со специализированными исполнительными блоками.

По разным оценкам, применение суперскалярного подхода приводит к повы­шению производительности ВМ в пределах от 1,8 до 8 раз.

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

 

Рис. 58. Сравнение суперскалярного и суперконвейерного подхода.

 

В процессорах некоторых ВМ реализованы как суперскалярность, так и супер­конвейеризация (рис. 59). Такое совмещение имеет место в микропроцессорах Athlon и Duron фирмы AMD, причем охватывает оно не только конвейер команд, но и блок обработки чисел в форме с плавающей запятой.

 

Рис. 59. Сравнение эффективности стандартной суперскалярной и совмещённой схем суперскалярных вычислений.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-09-18; просмотров: 1703; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.113.197 (0.013 с.)