Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Современные высокопроизводительные компьютеры



Последняя команда итерации цикла зависит от четвертой. Вместе эти условия означают, что мы не можем совмещать выполнение никаких команд между последовательными итерациями цикла! Имеется небольшая возможность совмещения посредством переименования регистров либо аппаратными, либо программными средствами, если цикл развернут, так что вторая загрузка более не антизависит от SW и может быть перенесена выше.
В альтернативном варианте, при выполнении по предположению, что переход не будет выполняться, мы можем попытаться совместить выполнение последовательных итераций цикла. Действительно, это в точности то, что делает компилятор с планированием трасс. Когда направление переходов может прогнозироваться во время компиляции, и компилятор может найти команды, которые он может безопасно перенести на место перед точкой перехода, решение, базирующееся на технологии компилятора, идеально. Эти два условия являются ключевыми ограничениями для выявления параллелизма уровня команд статически с помощью компилятора. Рассмотрим развернутый выше цикл. Переход просто трудно прогнозируем, поскольку частота, с которой он является выполняемым, зависит от длины списка, по которому осуществляется проход. Кроме того, мы не можем безопасно перенести команду загрузки через переход, поскольку, если содержимое R4 равно nil, то команда загрузки слова, которая использует R4 как базовый регистр, гарантированно приведет к ошибке и обычно сгенерирует исключительную ситуацию по защите. Во многих системах значение nil реализуется с помощью указателя на неиспользуемую страницу виртуальной памяти, что обеспечивает ловушку (trap) при обращении по нему. Такое решение хорошо для универсальной схемы обнаружения указателей на nil, но в данном случае это не очень помогает, поскольку мы можем регулярно генерировать эту исключительную ситуацию, и стоимость обработки исключительной ситуации плюс уничтожения результатов выполнения по предположению будет огромной.
Чтобы преодолеть эти сложности, машина может иметь в своем составе специальные аппаратные средства поддержки выполнения по предположению.

 

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz