Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Методы снижения приостановок конвейера



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; Прочитано: 517 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...