![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
CPI – среднее количество тактов на выполнение команды (clock per instruction)
CPI конв. = CPI ид.конв. + Cс + Cд + Cу,
где Cс, Cд, Cу – приостановки конвейера из-за структурных конфликтов, конфликтов по данным и конфликтов по управлению, соответственно.
Методы минимизации приостановок работы конвейера нацелены на достижение идеального CPI = 1.
Основные методы:
- применение арифметического конвейера для выполнения многотактных операций;
- применение конвейера с дополнительными функциональными устройствами.
87. RISC-архитектура: предпосылки создания, принципы реализации.
RISC – Reduced Instruction Set Architecture.
Согласно проведенным Дэвидом Паттерсоном и Джоном Хеннеси исследованиям (исследовались языки С, Pascal: операции, операнды и последовательность их выполнения) в типичной программе:
1. Большинство ссылок – скалярные переменные (в основном – локальные).
2. Больше всего времени занимают вызов подпрограмм (и возврат из них) и условные переходы.
Для улучшения эффективности было решено упростить архитектуру компьютера – так появилась RISC-архитектура. Концепции:
- выполнение по крайней мере, 75% команд за один машинный цикл;
- устройство управления с «жесткой» логикой;
- стандартная однословная длина всех команд:
= равна естественной длине слова и ширине шины данных;
= допускает унифицированную поточную обработку всех команд;
- малое число команд (не более 128);
- малое количество форматов команд (не более 4);
- малое число способов адресации (не более 4; отсутствие косвенной адресации памяти);
- доступ к памяти только посредством команд «Чтение» и «Запись»;
- все команды, за исключением «Чтения» и «Записи», используют внутрипроцессорные межрегистровые пересылки;
- относительно большой (не менее 32) процессорный файл РОНов (в современных микропроцессорах превышает 500).
88. RISC-архитектура: средства оптимизации использования регистров.
1. Программный метод: Реализуется компилятором с ЯПВУ. Регистры процессора распределяются для переменных, наиболее интенсивно используемых в заданном временном интервале.
- Каждой переменной выделяется виртуальный регистр (их число m не ограничено).
- Виртуальные регистры отображаются на ограниченное количество (n) физических регистров:
= неперекрывающиеся виртуальные регистры отображаются на один и тот же физический регистр;
= при нехватке физических регистров их роль для оставшихся виртуальных регистров выполняют ячейки памяти.
Задача: определить, каким переменным в данной точке программы выгоднее всего выделить физические регистры.
Метод решения: распространенный – раскраска графа:
Элементы графа: узел – виртуальный регистр; кол-во узлов – m; цвет узла – физический регистр; кол-во цветов – n; ребро – соединяет два виртуальных регистра, одновременно используемых в одном и том же фрагменте программы.
Требования: соседние узлы должны иметь разный цвет; общее количество цветов должно быть минимальным; неокрашенным узлам вместо физических регистров выделяются ячейки в памяти.
2. Аппаратный метод: Реализуется посредством регистровых окон. Упрощение и ускорение передачи параметров между вызывающей и вызываемой процедурами.
Весь набор регистров процессора делится на множество небольших групп – регистровых окон (register window). В процессе выполнения программы:
- каждое окно связывается с определенной подпрограммой;
- в любой момент процессору доступны регистры только одного окна;
- при вызове очередной подпрограммы процессор автоматически переключается на использование регистрового окна, связанного с ней;
- окна вызывающей и вызываемой подпрограмм частично перекрываются, благодаря чему:
= возможна автоматическая передача параметров;
= не требуются операции пересылки данных.
Обычно выделяют в регистровом окне: локальные регистры, регистры параметров (параметры вызова данной подпрограммы и сохранение результата), временные регистры(параметры вызова подпрограмм). Организация: циклический буфер. CWP – указатель текущего окна (current window pointer): определяет окно текущей активной подпрограммы. SWP – указатель сохраненного окна (saved window pointer): информация об окне, данные из которого были сохранены в памяти по причине переполнения циклического буфера.
Дата публикования: 2015-01-24; Прочитано: 537 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!