19343

АРХИТЕКТУРЫ С ПОЛНЫМ И СОКРАЩЁННЫМ НАБОРОМ КОМАНД

Лекция

Информатика, кибернетика и программирование

АК ЛЕКЦИЯ № 20 АРХИТЕКТУРЫ С ПОЛНЫМ И СОКРАЩЁННЫМ НАБОРОМ КОМАНД Современная технология программирования ориентирована на языки высокого уровня ЯВУ главная задача которых облегчить процесс написания программ. Более 90 всего процесса программирования осуществл...

Русский

2013-07-11

158.5 KB

13 чел.

АК ЛЕКЦИЯ № 20 АРХИТЕКТУРЫ С ПОЛНЫМ И СОКРАЩЁННЫМ НАБОРОМ КОМАНД

Современная технология программирования ориентирована на языки высокого уровня (ЯВУ), главная задача которых — облегчить процесс написания программ. Более 90% всего процесса программирования осуществляют на ЯВУ. К сожалению, операции, характерные для ЯВУ, отличаются от операций, реализуемых машинными командами. Эта проблема получила название семантического разрыва и ведет она к недостаточно эффективному выполнению программ. Пытаясь преодолеть семантический разрыв, разработчики ВМ расширяют систему команд, дополняя ее командами, реализующими сложные операторы ЯВУ на аппаратурном уровне, вводят дополнительные виды адресации и т. п. Вычислительные машины, где реализованы эти средства, принято называть ВМ с полным набором команд (CISC — Complex Instruction Set Computer). К типу CISC можно отнести практически все ВМ, выпускавшиеся до середины 80-х годов и значительную часть из выпускаемых в настоящее время.

Характерные для CISC способы решения проблемы семантического разрыва, вместе с тем ведут к усложнению архитектуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности в целом. Кроме того, в CISC очень сложно организовать эффективный конвейер команд, который, как уже отмечалось, является одним из наиболее перспективных путей повышения производительности ВМ. Все это заставило более внимательно проанализировать программы, получаемые после компиляции с ЯВУ. Был предпринят комплекс исследований, в результате которых обнаружились интересные закономерности:

- Реализация сложных команд, эквивалентных операторам ЯВУ, требует увеличения емкости управляющей памяти в микропрограммном УУ. Микропрограммы требуют существенного объёма памяти для хранения, между тем как их доля в общем объеме программы зачастую не превышает 0,2%.

- В откомпилированной программе операторы ЯВУ реализуются в виде процедур (подпрограмм), поэтому на операции вызова процедуры и возврата из нее приходится от 15 до 45% вычислительной нагрузки.

- При вызове процедуры вызывающая программа передает этой процедуре некоторое количество аргументов. В 98% случаев число передаваемых аргументов не превышает шести. Примерно такое же положение сложилось и с параметрами, которые процедура возвращает вызывающей программе. Более 80% переменных, используемых программой, являются локальными, то есть создаются при входе в процедуру и уничтожаются при выходе из нее. Количество локальных переменных, создаваемых отдельной процедурой, в 92% случаев не превышает шести.

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

Детальный анализ результатов исследований привел к серьезному пересмотру традиционных архитектурных решений, следствием чего стало появление архитектуры с сокращенным набором команд (RISC — Reduced Instruction Set Computer). Термин «RISC» впервые был использован Паттерсоном и Дитцелем в 1980 году.

Основные черты RISC-архитектуры

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

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

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

Очевидный путь существенного упрощения УУ — сокращение числа выполняемых команд, форматов команд и данных, а также видов адресации.

Излишне напоминать, что в сокращенном списке команд должны оставаться те, которые используются наиболее часто. Исследования показали, что 80-90% времени выполнения типовых программ приходится на относительно малую часть команд (10-20%). К наиболее часто востребуемым действиям относятся пересылка данных, арифметические и логические операции. Основная причина, препятствующая сведению всех этапов цикла команды к одному тактовому периоду, - потенциальная необходимость доступа к памяти для выборки операндов и/или записи результатов. Следует максимально сократить число команд, имеющих доступ к памяти. Это соображение добавляет к ранее упомянутым принципам RISC еще два:

- доступ к памяти во время исполнения осуществляется только командами «Чтение» и «Запись»;

- все операции, кроме «Чтение» и «Запись», имеют тип «регистр-регистр».

Для упрощения выполнения большинства команд и приведения их к типу «регистр-регистр* требуется снабдить ЦП значительным числом регистров общего назначения. Большое число регистров в регистровом файле ЦП позволяет обеспечить временное хранение промежуточных результатов, используемых как операнды в последующих операциях, и ведет к уменьшению числа обращений к памяти, ускоряя выполнение операций. Минимальное число регистров, равное 32, принято как стандарт де-факто большинством производителей RISC-компьютеров.

Суммируя сказанное, концепцию RISC-компьютера можно свести к следующим положениям:

- выполнение всех (или, по крайней мере, 75% команд) за один цикл;

- стандартная однословная длина всех команд, равная естественной длине слова и ширине шины данных и допускающая унифицированную поточную обработку всех команд;

- малое количество форматов команд (не более 4);

- малое число способов адресации (не более 4);

- доступ к памяти только посредством команд «Чтение» и -«Запись»;

- все команды, за исключением «Чтения» и «Записи», используют внутрипроцессорные межрегистровые пересылки;

- устройство управления «жесткой» логикой;

- относительно большой (не менее 32) процессорный файл регистров общего назначения (число РОН в современных RISC-микропроцессорах может превышать 500).

Регистры в RISC-процессорах

Отличительная черта RISC-архитектуры — большое число регистров общего назначения, что объясняется стремлением свести все пересылки к типу «регистр-регистр». Но увеличение числа РОН способно дать эффект лишь при разумном их использовании. Оптимизация использования регистров в RISC-процессорах обеспечивается как программными, так и аппаратными средствами.

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

На начальном этапе компилятор выделяет каждой переменной виртуальный регистр. Число виртуальных регистров в принципе не ограничено. Затем компилятор отображает виртуальные регистры на ограниченное количество физических регистров. Виртуальные регистры, использование которых не перекрывается, отображаются на один и тот же физический регистр. Если в определенном фрагменте программы физических регистров не хватает, то их роль для оставшихся виртуальных регистров выполняют ячейки памяти. В ходе вычислений содержимое каждой такой ячейки с помощью команды «Чтение» временно засылается в регистр, после чего командой «Запись» вновь возвращается в ячейку памяти.

Задача оптимизации состоит в определении того, каким переменным в данной точке программы выгоднее всего выделить физические регистры. Наиболее распространенный метод, применяемый для этой цели, известен как раскраска графа.

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

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

Как видно, не удалось раскрасить только виртуальный регистр F, его придется отображать на ячейку памяти.

Аппаратная оптимизация использования регистров в RISC-процессорах ориентирована на сокращение затрат времени при работе с процедурами. Наибольшее время в программах, написанных на ЯВУ, расходуется на вызовы процедур и возврат из них. Связано это с созданием и обработкой большого числа локальных переменных и констант. Одним из механизмов для борьбы с этим эффектом являются так называемые регистровые окна. Главная их задача — упростить и ускорить передачу параметров от вызывающей процедуры к вызываемой и обратно.

Регистровый файл разбивается на группы регистров, называемые окнами. Отдельное окно назначается глобальным переменным. Глобальные регистры доступны всем процедурам, выполняемым в системе в любое время. С другой стороны, каждой процедуре выделяется отдельное окно в регистровом файле. Все окна имеют одинаковый размер (обычно по 32 регистра) и состоят из трех полей. Левое поле каждого регистрового окна одновременно является и правым полем предшествующего ему окна (рис. 9.38). Среднее поле служит для хранения локальных переменных и констант процедуры.

База окна (первый в последовательности регистров окна) указывается полем, называемым указателем текущего окна (CWP, Current Window Pointer), обычно расположенным в регистре (слове) состояния ЦП. Если текущей процедуре назначено регистровое окно j CWP содержит значение j.

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

Упомянутые k регистров сразу же будут доступны вызванной процедуре без всяких пересылок. Естественно, вызов приведет к увеличению содержимого поля CPW на единицу.

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

Это достигается за счет организации окон в виде циклического буфера.

На рис. 9.39 показан циклический буфер из шести окон, заполненный на глубину 4 (процедура А вызвала В, В вызвала С, С вызвала D). Указатель текущего окна (CWP) идентифицирует окно активной на данный момент процедуры — D, то есть окно 03, При выполнении процедуры все ссылки на регистры в командах преобразуются в смещение относительно С WP. Указатель сохраненного окна (SWP, Saved Window Pointer) содержит номер последнего из окон, сохраненных в памяти по причине переполнения циклического буфера. Если процедура D теперь вызовет процедуру Е, аргументы для нее она поместит в общее для обеих поле регистровых окон (пересечение окон 03 и О4 а значение CWP увеличится на единицу, то есть CWP будет показывать на окно 04.

Если далее процедура Е вызовет нроцедуру F, то этот вызов при существующем состоянии буфера не может быть выполнен, поскольку окно для F(05) перекрывается с окном процедуры А (0 ). Следовательно, при попытке F начать загружать правое поле своего окна будут потеряны параметры процедуры А (А вх). Поэтому когда CWP увеличивается на единицу (операция выполняется по модулю 6) и оказывается равным SWP, возникает прерывание и окно процедуры А сохраняется в памяти (запоминаются только поля А вх и А вых). Далее значение CWP инкрементируется и производится вызов процедуры F, Аналогичное прерывание происходит и при возврате, например когда выполнится возврат из В в A. CWP уменьшается, что приведет к восстановлению содержимого окна процедуры А из памяти.

Как видно из примера, регистровый файл из п окон способен поддерживать п – 1 вызов процедуры. Число п не должно быть большим. Показано, что при 8 регистровых окнах сохранение и восстановление окон в памяти требуется лишь для 1% операций вызова процедур. В ВМ Pyramid, например, используется 16 окон по 32 регистра в каждом.

Теоретически такой прием не исключен и в CISC. Однако устройство управления CISC-процессора оккупирует на кристалле более 50% площади, оставляя мало места для других подсистем, в частности для большого файла регистров. УУ RISC занимает порядка 10% поверхности кристалла, предоставляя возможность иметь большой регистровый файл.

Другая часто встречаемая техника аппаратной оптимизации использования регистров — придание некоторым из них специального качества: такие регистры в состоянии принимать на себя имя любого РОН. Набор регистров, обладающих подобным свойством, называют буфером переименования. Прием оказывается очень удобным при конвейеризации команд и позволяет предотвратить конфликты, когда одна команда хочет воспользоваться регистром, в данный момент занятым другой командой.

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

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

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

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

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

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

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

Недостатки RISC прямо связаны с некоторыми преимуществами этой архитектуры. Принципиальный недостаток — сокращенное число команд: на выполнение ряда функций приходится тратить несколько команд вместо одной в CISC.

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

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

36192. Виды систем канализации. Устройство наружных и внутренних канализационных систем 20.42 KB
  Канализация представляет собой комплекс инженерных сооружений и мероприятий предназначенных для следующих целей: приема сточных вод в местах образования и транспортирования их к очистным сооружениям; очистки и обеззараживания сточных вод; утилизации полезных веществ содержащихся в сточных водах и в их осадке; выпуска очищенных вод в водоем. Системы канализации: Под системой канализации принято понимать совместное или разделительное отведение сточных вод. Общесплавными называют системы канализации при которых все сточные воды ...
36193. Двухтрубная система отопления с естественной циркуляцией и нижней разводкой 217.5 KB
  Удаление воздуха осуществляется либо через воздушные краны краны Маевского установленные на радиаторах отопления верхнего этажа либо через воздушную трубу соединяющую подающие стояки с расширительным баком. Преимущества нижней разводки отопления перед верхней разводкой: Меньшие потери теплоты так как магистральные трубопроводы не прокладываются на чердаке. При строительстве можно запускать систему отопления при недостроенных верхних этажах.
36194. Системы вентиляции 73.54 KB
  Результатом плохой вентиляции в помещении может стать: несвежий воздух неприятные запахи из кухни и туалетных комнат повышенная влажность конденсация влаги ощущение недостатка свежего воздуха. Существует два основных типа вентиляции: естественная вентиляция и принудительная вентиляция. Для создания усиления естественной вентиляции в стенах зданий прокладывают специальные вытяжные вентиляционные каналы ведущие в кухню в ванную и туалет.
36195. Сфера деятельности дизайнера пространственной среды и вопросы которые он должен решать в проектировании различных объектов 28 KB
  Суть дизайнерской деятельности: с одной стороны это комплекс знаний и навыков преобразованные в метод проектирования который в дальнейшем используется для создания дизайнпроекта; с другой это мировоззрение проектировщика его взгляд на объект проектирования и окружающий мир а также умение обобщать синтезировать вычленять существенные взаимосвязи и закономерности Дизайн и архитектура вместе образуют основу предметнопространственного окружения второй природы которую создает вокруг себя человек. Архитектура формирует ее стабильный...
36196. Методика подхода к проектированию объектов дизайна среды 37 KB
  Основными методами являются – анализ синтез оценка Методы проектирования можно разделить на критерии: Обследование знакомство с ситуацией контекстом размещения будущего объекта перечнем свойств которыми он должен обладать. столкновения противоречий между обстоятельствами будущей жизни объекта и эксплуатационными характеристиками его структур. Так сделала многие свои открытия современная бионика почти копирующая в технических объектах принципы и конструкции подсмотренные у природы; субъективные когда автор воображает себя неким...
36197. Коммуникации как одна из фундаментальных тем архитектуры. Градостроительные идеи ХХ века 4.14 MB
  Городасады В 1898 г. вышла книга Городасады будущего где Э. Схема городасада Размышления Говарда стали основой будущих городовспутников широко распространенных и в России с середины XX в. Планировочная схема городасада представлена в виде круга опоясанного сельскохозяйственной зеленой зоной рис.
36198. Цвет и свет в формировании пространства 19.84 KB
  Понятие свет и цвет неразделимы. Цвет. Цветкак один из важнейших компонентов среды обитания человекав проектной практике организуется в соответствии с конкретными условиями с учетом психофизиологиипсихологии и эстетики.
36199. Эргономика 19.15 KB
  Задача: создание таких условий работы для человека которые бы способствовали сохранению здоровья повышению эффективности труда снижению утомляемости. Эргономические требования это требования которые предъявляются к системе человекмашинасреда в целях оптимизации деятельности человекаоператора с учетом его объективных характеристик и возможностей Факторы определяющие эргономические требования Социальнопсихологические факторы предполагают соответствие конструкции машины и организации раб. Психологические факторы предопределяют...
36200. НОРМАТИВЫ В ПРОЕКТНОЙ ДЕЯТЕЛЬНОСТИ 24.62 KB
  Строительные нормативные документы и стандарты должны содержать в первую очередь эксплуатационные характеристики строительных изделий и сооружений основанные на требованиях потребителя. Нормативные документы должны не предписывать как проектировать и строить а устанавливать требования к строительной продукции которые должны быть удовлетворены или цели которые должны быть достигнуты в процессе проектирования и строительства....