Программная оптимизация использования регистров

 

Пусть в составе процессора имеется небольшое ко­личество регистров (примерно 16-32) и ответственность за их оп­тимальное использование перекладывается на программы компиляторов с языков высокого уровня в машинный код. Естественно, что в исходном тексте программы на языке высокого уровня никаких ссылок на регистры не содержится. Обращение ко всем языковым кон­струкциям, описывающим данные в программе, производится на уровне симво­лов языка. Компилятор должен так преобразовать исходный текст программы в последовательность машинных команд, чтобы как можно больше часто используемых в текущем фрагменте переменных хранилось в регистрах, а не в оперативной памяти. В итоге, количество операций пересылки данных между регистрами и оперативной памятью будет минимальным.

Исследования показали, что применение даже простых алгоритмов оптимизации делает излишним использование количества регист­ров свыше 64. Применение же сложных алгоритмов оптимизации позволяет вполне обойтись 32 регистрами без сколько-нибудь заметного снижения производительно­сти. Кроме того, исследователи пришли к выводу, что при использовании небольшо­го количества регистров (например, 16) компьютер без специализации регистров ра­ботает быстрее, чем компьютер с разделением регистров по типам форматов чисел. Аналогичные результаты были получены и в ряде других работ, в которых сравни­валась эффективность использования оптимизирующих компиляторов для процессо­ров с малым числом регистров по сравнению с процессорами с расширенным набо­ром регистров, организованных в виде регистровых окон.

 

 








Дата добавления: 2015-09-29; просмотров: 546;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.