109
рующим составом были, естественно, единая идеология, при-
шедшая на смену CISC - EPIC (Explicitly Parallel Instruction
Computing), и новая архитектура - IA-64, включающая в себя на-
бор инструкций, описание регистров, и прочие подобные вещи.
Впрочем, архитектура как раз - вещь изменчивая, достаточно
вспомнить как отличаются между собой такие CISC процессоры,
как 8086 и i80486, оба созданные на базе 80x86.
Точно так же и с Merced и McKinley, Itanium и Itanium 2 -
оба построены на базе одной идеологии, но в разных разновидно-
стях архитектуры. В свое время та же история, в общем то, была и
с Pentium и Pentium Pro. Впрочем, общие черты были и у тех, есть
и у этих, за это "отвечает" EPIC. В первую очередь речь идет о
полноценной масштабной суперскалярности, то
есть, способности
выполнять одновременно несколько инструкций. Для чего, естест-
венно, процессор содержит исполнительные модули - для опера-
ций с целыми числами, с числами с плавающей запятой, и т.д.
В отличие от Pentium и его последователей, разбирающихся
в коде самостоятельно, EPIC-процессоры сильно полагаются на
компилятор, который должен сам проанализировать код на пред-
мет нахождения оптимальных мест для распараллеливания его вы-
полнения, и снабдить процессор этой информацией. Поэтому и
используется «explicitly» - процессор не должен сам пытаться по-
нять, что можно исполнять параллельно, а что нет, и т.д. - все это
ему уже заранее объяснит компилятор. Плюс, мощные механизмы
по предсказанию переходов, предварительному выполнению кус-
ков
кода, предварительной загрузке данных, и тому подобные ве-
щи - загрузка исполнительных блоков должна быть распределена
максимально равномерно.
Кардинально решен вопрос с регистрами, количество кото-
рых увеличено в несколько раз: у Itanium их количество составляет
128 общего назначения (рис.17), 128 - для хранения чисел с пла-
вающей запятой, 8 регистров переходов, и 64, отвечающих за ра-
боту
механизмов предсказания. Здесь все очевидно - такого коли-
чества регистров, да еще реально 64-битных, хватит для хранения
любых требуемых чисел для любого разумного количество испол-
нительных модулей. У Itanium, первого представителя семейства,
таких регистров всего пять - два целочисленных, два для операций