Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы 2008-2009.doc
Скачиваний:
20
Добавлен:
17.09.2019
Размер:
4.36 Mб
Скачать

88. Risc-архитектура: средства оптимизации использования регистров.

  1. Программный метод

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

  1. Аппаратный метод

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

Программная оптимизация

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

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

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

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

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

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

Требования: соседние узлы должны иметь разный цвет; общее количество цветов должно быть минимальным;

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

Регистровые окна

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

В процессе выполнения программы:

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

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

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

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

возможна автоматическая передача параметров;не требуются операции пересылки данных.

Перекрывающиеся регистровые окна

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

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

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

указатель текущего окна обычно хранится в ССП; определяет окно текущей активной подпрограммы; В подпрограмме обращение к регистру задается указанием смещения регистра относительно

Буфер заполняется до глубины вложенности 4 (подпрограмма А вызывает подпрограмму В, В вызывает С, С вызывает D), а активной в текущий момент является подпрограмма D.

Если подпрограмма D вызовет подпрограмму Е, аргументы вызова Е будут помещены в область временных регистров подпрограммы D (область перекрытия окон w3 и w4), а указатель CWP будет сдвинут на одно окно вперед по кольцу.

Если подпрограмма Е попытается вызвать подпрограмму F, то этот вызов при текущем состоянии кольцевого буфера реализован быть не может, т.к. F перекрывает окно подпрограммы А.В этом случае формируется аппаратное прерывание, при обработке которого содержимое окна подпрограммы А будет сохранено в памяти.