Смекни!
smekni.com

Командный цикл процессора (стр. 1 из 4)

1. Какие факторы оказывают существенное влияние на «удлинение» командного цикла процессора?

- Структурные конфликты (выдача команд приостановливает):

устройство не является полностью конвейерным;

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

- Конфликты WAW (т.к. команды больше не поступают на ступень WB в порядке их выдачи за выполнения), конфликты типа WAR невозможны (чтение регистров осуществляется на ступени ID)

- проблема с реализацией прерываний (команды могут завершатся не в том порядке, в котором они поступали).

2. В каком(-их) месте(-ах) командного цикла обычно реализуется фаза прерывания?

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

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

- сохранение текущего состояния процесса;

- переход к процедуре обслуживания прерывания.

Классы прерываний:

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

Аппаратные – генерируются специальными средствами контроля работоспособности аппаратуры при обнаружении сбоев (пропадание питания, ошибка контроля памяти по четности и т.п.).

Ввода-вывода – генерируются контроллером ввода-вывода (завершение текущей операции ввода-вывода, возникновение ошибки процедуры ввода-вывода).

Прерывания по таймеру – генерируются таймером процессора и используются ОС для переходов в многозадачном режиме.

Поток данных при прерывании:

На рисунке: регистр адреса памяти (РгАП, MAR); буферный регистр данных памяти (БРгП, MBR); программный счетчик (ПС, PC). Текущее содержимое ПС сохраняется (в стеке), что позволяет в дальнейшем возобновить выполнение прерванной программы с той же точки. В ПС вместо текущего адреса прерванной программы загружается начальный адрес подпрограммы обработки прерывания.

Какие прерывания относятся к программным?

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

3. Что представляет собой класс прерываний?

Классы прерываний:

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

Аппаратные – генерируются специальными средствами контроля работоспособности аппаратуры при обнаружении сбоев (пропадание питания, ошибка контроля памяти по четности и т.п.).

Ввода-вывода – генерируются контроллером ввода-вывода (завершение текущей операции ввода-вывода, возникновение ошибки процедуры ввода-вывода).

Прерывания по таймеру – генерируются таймером процессора и используются ОС для переходов в многозадачном режиме.

Что является концептуальной основой конвейерных вычислений?

Средства повышения эффективности работы системы:

- совершенствование элементной базы;

- архитектурные решения: увеличение количества программно доступных регистров ЦП; использование кэш-памяти; совмещение операций.

Аппаратура компьютера в любой момент времени выполняет одновременно более одной базовой операции. Два вида совмещения:

- параллелизм (аппаратная структура воспроизводится в нескольких копиях);

- конвейеризация (конвейерная обработка) – архитектурное решение, способ организации процесса обработки команд, основанный на совмещении во времени отдельных этапов рабочего цикла.

Принцип конвейеризации:

- подлежащая исполнению функция делится на более мелкие части (этапы, стадии, ступени);

- для каждого этапа выделяется отдельный блок аппаратуры;

- данные передаются от одного этапа к следующему;

- этапы выполнения разных команд совмещаются.

Способы синхронизации ступеней конвейера:

1. Синхронный конвейер - характерен для традиционных компьютеров: синхронный характер работы процессора; короткие тракты распространения сигналов синхронизации (перекос сигналов не существенен).

2. Асинхронный конвейер


Условия применения:

- длительности временных интервалов отдельных ступеней конвейера зависят от типа команды и вида операндов;

- связь между ступенями не сильна;

- длина сигнальных трактов между разными ступенями сильно рознится;

Что означает понятие RISC?

RISC – Reduced Instruction Set Architecture. Компьютер с сокращенным форматом команд.

RISC - Reduced (Restricted) Instruction Set Computer - процессоры (компьютеры) с сокращенной системой команд. Эти процессоры обычно имеют набор однородных регистров универсального назначения; их система команд отличается относительной простотой. В результате аппаратная реализация такой архитектуры позволяет с небольшими затратами выполнять эти инструкции за минимальное (в пределе 1) число тактов синхронизации.

4. Перечислите характеристики RISC?

Для улучшения эффективности было решено упростить архитектуру компьютера – так появилась RISC-архитектура. Концепции:

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

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

- стандартная однословная длина всех команд:

равна естественной длине слова и ширине шины данных;

допускает унифицированную поточную обработку всех команд;

- малое число команд (не более 128);

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

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

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

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

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

Что являлось направлением исследований, приведших к созданию RISC-архитектуры?

Согласно проведенным Дэвидом Паттерсоном и Джоном Хеннеси исследованиям (исследовались языки С, Pascal:

- операции – функции выполняемые ЦП взаимодействие ЦП з ОП

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

- последовательность выполнения – определяет структуру управлении процессором и конвейером.

1. Большинство ссылок – скалярные переменные (в основном – локальные).

2. Больше всего времени занимают вызов подпрограмм (и возврат из них) и условные переходы.

Оцениваемые параметры:

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

- динамичная частота появления разных классов(типов) переменных.

Какие выводы из научных исследований привели к появлению RISC?

Эффективный путь повышения производительности:

- основа – конвейер команд:

проектирование конвейера (традиционный неэффективен)

использования компиляторов оптимизующих работу конвейера.

- более интенсивно использовать регистры (минимальное обращение к переменным в ОП)

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


5. Что является технической основой реализации RISC?

Технической основой реализации RISC является процессор у которого большое количество внутренних регистров и обмены происходит «регистр – регистр».

Регистры процессора, их оптимизация:

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

- Каждой переменной выделяется виртуальный регистр (их число m не ограничено).

- Виртуальные регистры отображаются на ограниченное количество (n) физических регистров:

неперекрывающиеся виртуальные регистры отображаются на один и тот же физический регистр;

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

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

Метод решения: распространенный – раскраска графа:

Элементы графа: узел – виртуальный регистр; кол-во узлов – m; цвет узла – физический регистр; кол-во цветов – n; ребро – соединяет два виртуальных регистра, одновременно используемых в одном и том же фрагменте программы.

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

2. Аппаратный метод: Реализуется посредством регистровых окон. Упрощение и ускорение передачи параметров между вызывающей и вызываемой процедурами.

Весь набор регистров процессора делится на множество небольших групп – регистровых окон (register window). В процессе выполнения программы:

- каждое окно связывается с определенной подпрограммой;

- в любой момент процессору доступны регистры только одного окна;

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

- окна вызывающей и вызываемой подпрограмм частично перекрываются, благодаря чему:

возможна автоматическая передача параметров;

не требуются операции пересылки данных.

Обычно выделяют в регистровом окне: локальные регистры, регистры параметров (параметры вызова данной подпрограммы и сохранение результата), временные регистры(параметры вызова подпрограмм). Организация: циклический буфер. CWP – указатель текущего окна (current window pointer): определяет окно текущей активной подпрограммы. SWP – указатель сохраненного окна (saved window pointer): информация об окне, данные из которого были сохранены в памяти по причине переполнения циклического буфера.