Распределение регистров при планировании инструкций для архитектуры “Эльбрус” презентация

Содержание

Задачи распределения регистров и планирования инструкций в компиляторе Планирование инструкций – эффективное переупорядочивание инструкций с учетом доступных вычислительных ресурсов. Распределение регистров – эффективное распределение доступных архитектурных регистров между переменными и результатами

Слайд 1Распределение регистров при планировании инструкций для архитектуры “Эльбрус”
Дипломная работа Иванова Д.

С.
Научный руководитель Шлыков С. Л.




Москва 2008


Слайд 2Задачи распределения регистров и планирования инструкций в компиляторе
Планирование инструкций – эффективное

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

Распределение регистров – эффективное распределение доступных архитектурных регистров между переменными и результатами инструкций.


Слайд 3Схемы взаимного расположения фаз планирования инструкций и распределения регистров
1. Распределение перед

планированием
Создает дополнительные зависимости между инструкциями, сильно ограничивая параллельность. Высокая алгоритмическая сложность.

2. Распределение после планирования
Приводит к разрезу спланированного кода при появлении инструкций откачки в память. Ограничения на планирование. Высокая алгоритмическая сложность.


3. Распределение при планировании
Позволяет избежать указанных проблем. Перспективная, но плохо исследованная техника.

Слайд 4Цель работы
Планирование инструкций
Распределение регистров

Распределение регистров при планировании инструкций
BACK
END

+


FRONT
END
OPTIMIZER





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

Сеть –

виртуальный регистр и множество инструкций его чтения и записи.

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

Глобальная сеть – любая нелокальная сеть.

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

Давление на регистровый файл – количество сетей, значения которых в данный момент необходимо хранить на регистрах.

Слайд 6Алгоритм распределения регистров при планировании инструкций
1. Подготовка к распределению регистров и

планированию инструкций

2. Распределение регистров для глобальных сетей перед планированием инструкций

3. Распределение регистров для локальных сетей одновременно с планированием инструкций

Слайд 7Подготовка к распределению регистров
1. Определение времен жизни глобальных сетей

2. Разделение регистрового

файла на две части для глобального и локального распределения для каждого линейного участка.

|------ Глоб. Сети ------|--- Лок. Сети ---|

3. Подсчет максимального давления локальных сетей на регистровый файл:


TU – среднее время планирования последнего чтения сети,
TL - среднее время планирования первой записи сети,
H – время планирования линейного участка.


Слайд 8Глобальное распределение регистров
Матрица сетей – битовая матрица, отображающая информацию

о временах жизни глобальных сетей по линейным участкам.
Матрица регистров – битовая матрица доступных для распределения регистров в линейных участках.


Слайд 9Глобальное распределение регистров
1. Подсчет приоритетов сетей (стоимость планирования инструкций откачки/подкачки) по

формуле:



spill_cst - стоимость планирования инструкции откачки,
fill_cst – стоимость планирования инструкции подкачки, node_cnt – значение счетчика линейного участка.

2. Распределение глобальных сетей на доступные регистры с помощью битовых матриц

3. Маркировка сетей, которые не удалось распределить на регистры.



Слайд 10Глобальное распределение регистров
Приоритет типов архитектурных регистров для глобального распределения:

1.

Глобальные регистры являются общими и доступны всем процедурам
2. Базированные регистры заблокированы для использования в циклах с наложением итераций
3. Локальные регистры не имеют ограничений на использование при распределении

|--Gs[0-31]--|--------Bs[0-127]--------|----Rs[0-63]----|


Слайд 11Локальное распределение регистров при планировании инструкций
Планирование инструкции в широкую команду:

1. Поиск

доступного исполнительного устройства

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

3. Приоритет регистров при локальном распределении:

|--Gs[0-31]--|----Rs[0-63]----|--------Bs[0-127]--------|

4. Создание и планирование на общих основаниях инструкций откачки и подкачки, если они необходимы

Слайд 12Преимущества реализованного алгоритма
1. Уменьшение времени работы за счет отказа от построения

графа несовместимости и совмещения схожих функций

2. Сохранение целостности спланированного кода за счет планирования инструкций откачки/подкачки на общих основаниях

3. Точный учет давления на регистры при планировании инструкции

Слайд 13Результаты


Слайд 14Результаты


Слайд 15Результаты


Слайд 16Результаты
1. Для архитектуры “Эльбрус” в составе оптимизирующего компилятора разработан и реализован

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

2. Проведено комплексное тестирование алгоритма, подтвердившее его эффективность на различных задачах

3. Реализованный алгоритм войдет в следующую версию оптимизирующего компилятора для архитектуры “Эльбрус”

Слайд 17Спасибо за внимание!


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика