4. Микропроцессор Itanium

4.1. Программная модель пользователя

4.2. Адресация памяти

4.3. Программная модель системного программиста

4.4. Поддержка архитектуры IA-32

4.1. Программная модель пользователя

64-разрядный микропроцессор фирмы Intel ITANIUM (Itanium II) представляет RISC-процессор, имеющий большое число внутренних регистров, фиксированный формат машинной команды и ряд других особенностей, характеризующих процессоры данного вида. Фиксированный формат машинной команды позволяет эффективно организовать конвейер команд за счет однотипности действий процессора. Большое число регистров и особенности их использования позволяют свести до минимума количество обращений к оперативной памяти. Это приводит к увеличению быстродействия процессора.

Архитектурно Itanium не похож на 32-разрядные процессоры предыдущих поколений (имеются в виду процессоры фирмы Intel). Itanium поддерживает программную модель и систему команд 32-разрядных процессоров (IA-32 архитектура). В любой момент процессор может выполнять либо базовый поток команд Itanium, либо поток команд IA-32. Для переключения с одного потока команд на другой есть специальные команды. Команда jmpe (команда IA-32) переключает процессор на базовый поток команд, а команда br.ia (базового потока – «branch IA») – на поток IA-32. При выполнении потока IA-32 процессор ассоциирует часть своих внутренних регистров с регистрами процессора класса Pentium III (смотри разд. 4.5), переходя на программную модель 32-разрядного процессора. Операционную систему (ОС), предназначенную для Itanium, можно написать в одном из трех вариантов:

— поддерживает только поток команд IA-32;

— поддерживает только базовый поток команд;

— поддерживает микширование потоков.

На Itanium можно использовать ОС: Windows 95, 98, 2000,…XP… Команды базового потока совсем не похожи на хорошо известный Ассемблер 16- и 32-разрядных процессоров. Например, привычный для нас фрагмент кода на обычном Ассемблере

        cmp eax, ebx

        jne m1

        add ebx, 7

        jmp m2

m1: add ebx,10

m2:  ………

; сравнить содержимое регистров

; если не равно – прыжок на m1

; если равно – прибавить к ebx 7

; прыжок на m2

; если не равно – прибавить к ebx 10

To top