в начало · e-mail

история
график выхода
размещение рекламы

 

процессоры
системные платы
видеокарты
память, hdd, cd, dvd
звуковые карты и    акустические системы
источники UPS
модемы
сети
программы
игры
руководство и чаво
мониторы
принтеры
сканеры и камеры
законченые решения
ноутбуки и hpc
разное
  компьютеры
комплектующие и    периферия
программы
оргтехника
средства связи
аудио-видео
бытовая техника
охранные системы
  вышедшие в этом    месяце
полная коллекция
  вышедшие в этом    месяце
архив
  последний выпуск
архив
  форум
чат
 


Апорт Top 1000

Компьютерная архитектура XXI века.

В конце 1999 года Intel и Hewlett–Packard планируют представить Merced — первый процессор, построенный с использованием архитектуры нового поколения. Эта 64–разрядная архитектура основана на многолетних исследованиях Intel, HP, других компаний и университетов. Она радикально отличается от всего, что было до сих пор на рынке. Будет она иметь успех или нет неизвестно, одно очевидно уже сейчас: она изменит всю компьютерную индустрию.
Эта архитектура, известная под названием Intel Architecture–64 (IA–64), полностью “порывает с прошлым”. IA–64 не является ни 64–разрядным расширением 32–разрядной архитектуры х86 компании Intel, ни переработкой 64–разрядной архитектуры PA–RISC компании HP. IA–64 представляет собой нечто абсолютно новое. Она использует длинные слова команд (long instruction words — LIW), предикаты команд (instruction predication), устранение ветвлений (branch elimination), предварительную загрузку данных (speculative loading) и другие ухищрения, чтобы “извлечь больше параллелизма” из кода программ.
По поводу совместимости стоит заметить, что в Merced существует два режима декодирования команд: новый — VLIW и старый — CISC. Т.е. программы переключаются в необходимый режим исполнения. В архитектуре х86 был добавлен ряд команд для перехода в новый режим, а также для передачи данных. В IA–64 такие команды есть изначально. Так что теперь ОС будут содержать и 64–х разрядную часть на IA–64 и старую 32–х разрядную.

x86

IA-64

Использование сложных инструкций переменной длины, обрабатываемых по одной.

Использование простых инструкций, сгруппированных по три, одинаковой длины.

Переупорядочивание и оптимизация инструкций во время выполнения.

Переупорядочивание и оптимизация инструкций во время компиляции.

Попытки предсказания переходов.

Исполнение нескольких последовательностей команд одновременно без предсказания переходов.

Загрузка данных из памяти по мере необходимости, в первую очередь проверяя кэш.

Загрузка данных до того, как они потребуются. Кэш проверяется вначале.

Попробуем понять, почему Intel и HP рискнули пойти на столь кардинальные перемены. Причина сводится к следующему: они считают, что как CISC, так и RISC–архитектуры исчерпали себя.
Небольшой экскурс в прошлое. Архитектура х86 компании Intel — CISC архитектура — появилась в 1978 году. В те времена процессоры представляли собой скалярные устройства (то есть могли в каждый момент времени выполнять только одну команду), при этом конвейеров практически не было. Процессоры содержали десятки тысяч
транзисторов. PA–RISC компании HP была разработана в 1986 году, когда технология суперскалярных (с возможностью выполнения нескольких команд одновременно) конвейеров только начала развиваться. Процессоры содержали сотни тысяч транзисторов. В конце 90–х наиболее совершенные процессоры содержат миллионы транзисторов. К моменту начала выпуска Merced компания Intel планирует перейти на 0.18–микронную, а в дальнейшем и на 0.11–микронную технологию вместо нынешней 0.25–микронной. Уже первые чипы архитектуры IA–64 будут содержать десятки миллионов транзисторов.
Первоначально Merced будет обладать рабочей скоростью 600 МГц. Уже к 2000 году планируется довести скорость до 1.2 ГГц. Предполагается, что производительность Merced 1.2 ГГц составит свыше 100 по известному тесту SPECfp95. Для сравнения, процессоры Pentium II могут продемонстрировать сейчас уровень производительности около 6,7. За то время, пока чип будут “разгонять” до 1.2 ГГц, Intel собирается отработать технологию до такой степени, что стоимость его производства снизится до 100 долларов. Это должно сделать Merced самым распространенным процессором в промышленных и бытовых устройствах. Помимо обычного ускорения тактовой частоты, Merced должен исполнять до 8 команд одновременно. (Процессоры Pentium II могут исполнять до 4 команд.)
Команды в Merced будут упаковываться по три в 128–битный пакет для быстрейшей обработки. Каждый 128–битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие из команд могут выполняться параллельно. Теперь процессору не нужно будет анализировать поток команд во время выполнения для выявления “скрытого параллелизма”. Наличие параллелизма определяет компилятор и помещает информацию в код программы. Каждая команда (как для целочисленных вычислений, так и для вычислений с плавающей точкой) содержит три 7–битных поля регистра общего назначения (РОН). Из этого следует, что процессоры архитектуры IA–64 содержат 128 целочисленных РОН и 128 регистров для вычислений с плавающей точкой. Все они доступны программисту и являются регистрами с произвольным доступом (programmer–visible random–access registers). По сравнению с процессорами х86, у которых всего восемь целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA–64 намного “шире” и, соответственно, будет намного реже простаивать из–за “нехватки регистров”.
Компиляторы для Merced будут использовать технологию “отмеченных команд” (predication) для устранения потерь производительности из–за неправильно предсказанных переходов и необходимости пропуска участков кода после ветвлений. Когда процессор встречает “отмеченное” ветвление в процессе выполнения программы, он начинает одновременно выполнять все ветви. После того, как будет определена “истинная” ветвь, процессор сохраняет необходимые результаты и сбрасывает остальные.
Компиляторы будут также просматривать исходный код с целью поиска команд, использующих данные из памяти. Найдя такую команду, они будут добавлять пару команд — команду предварительной загрузки (speculative loading) и проверки загрузки (speculative check). Во время выполнения программы первая из команд загружает данные в память до того, как они понадобятся программе. Вторая команда проверяет, успешно ли произошла загрузка, перед тем, как разрешить программе использовать эти данные. Предварительная загрузка позволяет уменьшить потери производительности из–за задержек при доступе к памяти, а также повысить параллелизм.
Из всего вышесказанного следует, что компиляторы для процессоров архитектуры IA–64 должны лучше знать микроархитектуру процессора, для которого они вырабатывают код. Существующие чипы, в том числе и RISC–процессоры, производят гораздо больше оптимизации на этапе выполнения программ, даже при использовании оптимизирующих компиляторов. IA–64 перекладывает практически всю работу по оптимизации потока команд на компилятор. Таким образом, программы, скомпилированные для одного поколения процессоров архитектуры IA–64, на процессорах следующего поколения без перекомпиляции могут выполняться неэффективно. Это ставит перед поставщиками нелёгкую задачу по выпуску нескольких версий исполняемых файлов для достижения максимальной производительности.
Как следствие, будет увеличение размеров кода, так как команды IA–64 длиннее, чем 32–битные RISC–команды. Компиляция при этом будет занимать больше времени, поскольку IA–64, как уже было сказано, требует от компилятора гораздо больше действий. Intel и HP заявили, что уже работают совместно с поставщиками средств разработки над переработкой этих программных продуктов.
Технология “отмеченных команд” является наиболее характерным примером “дополнительной ноши”, перекладываемой на компиляторы. Эта технология является центральной для устранения ветвлений и управления параллельным выполнением команд.
В 80–е годы некоторые разработчики RISC–процессоров высмеивали CISC–архитектуру и предрекали скорую погибель семейству х86. Несмотря на технологические преимущества RISC–архитектуры, огромные ресурсы корпорации Intel и господство операционных систем DОS и Windows привели к тому, что процессоры архитектуры х86 остаются конкурентоспособными до сих пор. Теперь уже Intel заявляет, что RISC–архитектура устарела. Не совершает ли корпорация той же ошибки?

Полкунов Ю.С.

 

спонсор статьи:

© 1996 - 2000 MEGA plus Co. All rights reserved (095) 231-2054, 231-2056
Сайт управляется системой uCoz