Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Зависимости от исхода условия, исполняет один из этих базовых





Блоков, пропуская все другие. Более развитые процессоры пытаются

Прогнозировать исход операции перехода и заранее (спекулятивно,

По предположению) выполняют один из блоков, теряя время при

Ошибке прогнозирования.

Базовые блоки обычно малы (2— команды) и ветвление встре-

Чается в среднем через каждые шесть операторов языка программи-

Рования. Поэтому выигрыш оказывается небольшим.

I

I

Технологии повышения производительности процессоров 121

Когда компилятор уровня IA-64 обнаруживает оператор ветвле-

Ния в исходной программе, он анализирует все возможные ветви

(блоки) и помечает их метками или предикатами (predicate). После

Этого он определяет, какие из них могут быть выполнены парал-

Лельно (из соседних, независимых, ветвей).

Затем компилятор группирует машинные коды в 128-битовые

Связки (bundles), по 3 команды в каждой. В описания связок (template)

Заносится информация о том, какие команды могут исполняться

Параллельно (независимо). Например, если компилятор находит

Команд, которые не имеют взаимной связи, он укладывает их в

Независимых связок (по 3 в первых 5 и одна в 6-й) и помечает их в

Описании.

В процессе выполнения программы ЦП просматривает описа-

Ния связок, выбирает команды, которые взаимно независимы и рас-

Пределяет их на параллельную обработку. Если ЦП обнаруживает

Оператор ветвления, он не пытается предсказать переход, а начинает

Выполнять все возможные ветви программы.

Таким образом, могут быть обработаны все ветви программы,

Но без записи полученного результата. В определенный момент про-

цессор наконец ≪узнает≫ о реальном исходе условного оператора,

записывает в память результат ≪правильной ветви≫ и отменяет ос-

Тальные результаты.

Опережающее чтение (по предположению) разделяет загрузку

Date: 2015-11-13; view: 350; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию