Оптимизация объектного кода для процессорных архитектур с поддержкой параллелизма на уровне команд

Оптимизация объектного кода для процессорных архитектур с поддержкой параллелизма на уровне команд

Автор: Шумаков, Сергей Михайлович

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2002

Место защиты: Москва

Количество страниц: 164 с. ил

Артикул: 2322299

Автор: Шумаков, Сергей Михайлович

Стоимость: 250 руб.

Оптимизация объектного кода для процессорных архитектур с поддержкой параллелизма на уровне команд  Оптимизация объектного кода для процессорных архитектур с поддержкой параллелизма на уровне команд 

Оглавление
Оглавление.
1. Введение.
2. Обзор методов оптимизации кода для процессоров с поддержкой параллелизма на уровне команд.
2.1.1ЬРплатформы
2.2. Критерии оптимизации кода.
2.3. Круг проблем, связанных с оптимизацией кода для 1ЬРпроцессоров
2.4. Области планирования
2.5. Усиление параллелизма в пределах областей планирования
2.5.1. Преобразования циклов.
2.5.2. Встраивание функций.
2.5.3. Снятие зависимостей поданным
2.5.4. Соотношение программного и аппаратного параллелизма.
2.6. Планирование команд.
2.6.1. Алгоритмы планирования
2.6.2. Координация планирования и распределения регистров
2.6.3. Глобальное планирование.
2.6.4. Аппаратная поддержка глобального планирования.
2.6.5. Метод доминантного параллелизма при планировании в древовидных областях.
2.6.6. Планирование по прогнозу значений данных
2.7. Особенности генерации кода для ЦПОС.
2.8. О роли языковых расширений
2.9. Сводка методов оптимизации для процессоров с поддержкой
параллелизма на уровне команд.
3. Компилятор с оптимизирующим постпроцессором детальное
описание
3.1. Характеристика процессора 1В7.
3.2. Общие сведения о компиляторе для 1В7
3.3. Роль базового компилятора.
3.4. Постпроцессирование.
3.4.1. Примеры оптимизаций, выполняемых постпроцессором
3.4.2. Основные понятия.
3.4.3. Последовательность обработки входного ассемблерного файла.
3.4.4. Аппаратная совместимость.
3.4.5. Модель линейного участка и постановка задачи
планирования
3.4.6. Алгоритм планирования
3.4.7. Учет аппаратных задержек.
3.4.8. Сокращение перебора
3.4.9. Подбор вариантов команд.
3.4 Модификация команд.
3.5. Настройка постпроцессора на архитектуру 1В7.
3.5.1. Регистры
3.5.2. Классы регистров
3.5.3. Соглашения о связях.
3.5.4. Ресурсы.
3.5.5. Свойства команд.
3.5.6. Варианты
3.5.7. Псевдокоманды модификаторы
3.5.8. Динамические ресурсы
3.5.9. Реализация аппаратных ограничений при помощи псевдорегистров.
4. Оценки эффективности
4.1. Сравнение с другими методами планирования.
4.1.1. Списочное планирование
4.1.2. Методы планирования на основе ЦЛП.
4.1.3. Метод планирования с использованием дизъюнктивных
графов
4.2. Измерение эффективности кода для процессора 1В7
4.2.1. Цели и методика измерений.
4.2.2. Результаты измерений
4.2.3. Конвейеризация и развертка циклов.
4.2.4. Замена адресации со смещением на адресацию с
постинкрементацией адресного регистра.
4.2.5. Перестановки обращений к памяти.
4.2.6. Оценка эффективности оптимизаций
4.2.7. Распределение регистров.
5. Заключение.
6. Литература
1. Введение
Актуальность


Различаются суперскалярные процессоры с упорядоченной и неупорядоченной выдачей команд на исполнение. Процессор первого типа выдает команды на исполнение в точности в том порядке, в котором они закодированы в программе. На каждом такте на исполнение выдается от 1 до п очередных команд с учетом возможности их параллельного исполнения. Процессор второго типа анализирует команды в пределах некоторого "окна" -текущего фрагмента входной программы - выбирая в нем для выдачи на исполнение от 1 до л команд с учетом связей по данным и возможности параллельного исполнения. При разработке суперскалярных процессоров обычно преследуют цель обеспечить бинарную совместимость с предшествующими поколениями (скалярными или суперскалярными) данного модельного ряда процессоров (см. Суперскалярный процессор выполняет (без перекомпиляции) программный код для предшествующей модели, обеспечивая более высокую производительность. УЬ^-процессоры отличаются от суперскалярных тем, что код для них организован в виде последовательности очень длинных командных слов, каждое из которых содержит несколько элементарных команд (операций). Забота о корректном заполнении командных слов возлагается на компилятор (или программиста, пишущего на ассемблере). УЫУ-процессоры в целом производительнее суперскалярных, поскольку исключается динамический анализ зависимостей по данным и функциональным устройствам во время выполнения. Однако реальная эффективность выполнения программы целиком зависит от качества кода, сгенерированного компилятором. ЭВМ может способствовать также встраивание избыточной информации о программе, доступной во время компиляции и позволяющей процессору динамически производить дополнительные оптимизации. Пример применения этого подхода можно найти в []. VLIW-процессор способен работать с большей эффективностью, чем суперскалярный, поскольку у него нет необходимости заниматься динамическим анализом кода. Суперскалярный процессор, тем не менее, превосходит его в качестве планирования команд, поскольку имеет больше информации. Так, при статическом анализе невозможно предсказать случаи непопадания в кэш при чтении из памяти, из-за чего при выполнении возможны простои, в то время как динамический планировщик в этом случае может запустить другие готовые к исполнению команды. Компилятор не имеет права поменять местами команду чтения из памяти с последующей командой записи в память, поскольку адрес записи, возможно, совпадает с адресом чтения. Динамическому планировщику эти адреса уже известны, следовательно, он обладает большей свободой переупорядочения команд. Еще одно преимущество суперскалярных процессоров заключается в поддержке механизма предсказания ветвлений (branch prediction) и выполнения по прогнозу ветвления (control speculation). Аппаратура выбирает направление ветвления исходя из частоты предыдущих ветвлений в этой точке и с упреждением исполняет команды из более вероятной ветви. Это дает ускорение, если прогноз был верен. При неверном прогнозе аппаратура аннулирует результаты упреждающих вычислений. Концепция явного параллелизма на уровне команд (EPIC - Explicitly Parallel Instruction Computing) возникла из стремления объединить преимущества двух типов архитектур. В разд. С точки зрения применимости различных методов оптимизации существенно различие между VLIW-процессорами с регулярной и нерегулярной организацией командного слова. Последние отличаются тем, что на параллельно исполняемые инструкции налагаются дополнительные ограничения. В частности, для параллельно исполняемой инструкции могут допускаться в качестве операндов не все сочетания регистров или не все способы адресации, которые возможны в такой же инструкции, если параллельно с ней не закодированы другие инструкции. Такие особенности характерны, в частности, для цифровых процессоров обработки сигналов, где, в целях ускорения выборки команд, а также для сокращения общего размера кода и энергопотребления, проектировщики стремятся минимизировать длину командного слова и используют для этого нерегулярные способы кодирования. Нерегулярная организация командного слова (см.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.458, запросов: 244