Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арх ЭВМ.docx
Скачиваний:
4
Добавлен:
23.08.2019
Размер:
189.65 Кб
Скачать

Вопрос 24. Процессор ia-64. Особенности построения и работы архитектура ia-64 (Merced)

Merced – кодовое имя первого поколения процессоров Itanium — микропроцессоров с архитектурой IA-64, разработанных совместно компаниями Intel и Hewlett-Packard.

Архитектура появилась в конце 1999 года, является продуктом компании Intel и HP. Радикально отличается от всего, что до сих пор было представлено на рынке. IA-64 – передовая архитектура, использующая длинные командные слова, предикаты команд, устранение ветвлений, предварительную загрузку данных, и прочие методы извлечения большего параллелизма из кода программы.

Компания заявила, что он разрабатывается для серверов и для рабочих станций с высокой производительностью, а не для компьютеров среднего уровня. К началу выпуска Merced (АИ-64), компания Интел перешла на 0,18 – микронную технологию вместо используемой 0,25.

Команды в формате IA-64 упакованы по 3 в 128 битный пакет. Каждый 128 битный пакет содержит шаблон длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие команды могут выполняться параллельно. Формат команд IA-64 не имеет ничего общего с х86. Команды х86 могут иметь длину от 8 до 104 бит, и процессор должен последовательно декодировать каждую команду после определения её границ.

Каждая команда (как для целочисленных вычислений, так и для вычислений с плавающей точкой) содержит три 7-битных поля регистра общего назначения (РОН). Из этого следует, что процессоры архитектуры IA-64 содержат 128 целочисленных РОН и 128 регистров для вычислений с плавающей точкой. Все они доступны программисту и являются регистрами с произвольным доступом. По сравнению с процессорами х86, у которых всего восемь целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA-64 намного "шире" и, соответственно, будет намного реже простаивать из-за "нехватки регистров".

Компиляторы используют технологию отмеченных команд (predication). Это устраняет потери из-за неправильно предсказанных переходов, и необходимости пропуска участка кода после ветвления. Когда процессор встречает отмеченное ветвление в процессе выполнения команды, он начинает одновременно выполнять все ветви. После того, как будет определена истинная ветвь, процессор сохраняет необходимые результаты и сбрасывает остальные.

Компиляторы для IA -64 просматривают исходный код с целью поиска команд, использующих данные из памяти. Найдя такую команду, компилятор добавляет еще две команды – команды предварительной загрузки и команду проверки загрузки. Во время выполнения программы, первая из команд загружает данные в память до того, как они понадобятся программе. Вторая команда проверяет, успешно ли прошла загрузка, перед тем как разрешить программе использовать эти данные.

Предварительная загрузка позволяет уменьшить потери производительности из-за задержек при доступе к памяти, а также повысить параллелизм.

Выводы:

  1. Вся работа по оптимизации потока команд возложена на компилятор. Программа, скомпилированная для одного поколения процессоров архитектуры АИ-64, без перекомпиляции не смогут эффективно использоваться в следующих поколениях.

  2. Следствием увеличения размера кода будет большее время, необходимое для компиляции, что потребует дополнительных усилий по разработке программных продуктов.