Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Зависимости от исхода условия, исполняет один из этих базовых
Блоков, пропуская все другие. Более развитые процессоры пытаются Прогнозировать исход операции перехода и заранее (спекулятивно, По предположению) выполняют один из блоков, теряя время при Ошибке прогнозирования. Базовые блоки обычно малы (2— команды) и ветвление встре- Чается в среднем через каждые шесть операторов языка программи- Рования. Поэтому выигрыш оказывается небольшим. I I Технологии повышения производительности процессоров 121 Когда компилятор уровня IA-64 обнаруживает оператор ветвле- Ния в исходной программе, он анализирует все возможные ветви (блоки) и помечает их метками или предикатами (predicate). После Этого он определяет, какие из них могут быть выполнены парал- Лельно (из соседних, независимых, ветвей). Затем компилятор группирует машинные коды в 128-битовые Связки (bundles), по 3 команды в каждой. В описания связок (template) Заносится информация о том, какие команды могут исполняться Параллельно (независимо). Например, если компилятор находит Команд, которые не имеют взаимной связи, он укладывает их в Независимых связок (по 3 в первых 5 и одна в 6-й) и помечает их в Описании. В процессе выполнения программы ЦП просматривает описа- Ния связок, выбирает команды, которые взаимно независимы и рас- Пределяет их на параллельную обработку. Если ЦП обнаруживает Оператор ветвления, он не пытается предсказать переход, а начинает Выполнять все возможные ветви программы. Таким образом, могут быть обработаны все ветви программы, Но без записи полученного результата. В определенный момент про- цессор наконец ≪узнает≫ о реальном исходе условного оператора, записывает в память результат ≪правильной ветви≫ и отменяет ос- Тальные результаты. Опережающее чтение (по предположению) разделяет загрузку Date: 2015-11-13; view: 393; Нарушение авторских прав |