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): информация об окне, данные из которого были сохранены в памяти по причине переполнения циклического буфера.