Программная архитектура Alpha. Характеристики программной архитектуры Alpha. Использование регистров в Alpha Linux. Команды архитектуры Alpha

Страницы работы

Содержание работы

Программная архитектура Alpha

Alpha является полностью 64-битной RISC архитектурой. Все регистры имеют длину 64 бита, и все операции производятся между 64-битными регистрами.

Это не 32-битная архитектура, которая была расширена до 64 бит (как, например, x86-64).

Характеристики программной архитектуры Alpha

·  Все инструкции имеют длину 32 бита и четко заданный формат.

·  Существуют 32 целочисленных 64-битных регистра (R0-R31). Регистр R31 всегда равен нулю, и запись в него не производится.

·  Все операции над целыми значениями происходят в целочисленных регистрах. Параметры операций: до двух регистров – источники данных, один регистр – приемник.

·  Существуют 32 вещественных 64-битных регистра (F0-F31). Регистр F31 всегда равен нулю, и запись в него не производится.

·  Все операции над вещественными значениями происходят в вещественных регистрах. Параметры операций: до двух регистров – источники данных, один регистр – приемник.

·  Инструкции могут перемещать данные из вещественных регистров в целочисленные и обратно. При этом инструкции не рассматривают содержимое отдельных битов и не обращаются в память.

·  Для работы с памятью существуют только инструкции чтения значения из памяти в регистр и записи из регистра в память.

·  Команды условных переходов проверяют значения целочисленных или вещественных регистров, которые могут являться результатом предшествующего сравнения.

Поддерживаются следующие типы данных

Целочисленные

            Байт – Byte

            Слово – Word

            Двойное (длинное) слово – Double (long) Word

            Учетверенное слово – Quad Word

Вещественные

F_Floating – 32 бита (VAX),

            G_Floating – 64 бита (VAX),

            D_Floating – 64 бита (VAX),

            S_Floating – 32 бита (IEEE),

            T_Floating – 64 бита (IEEE),

            X_Floating – 128 бит (IEEE) – только программная поддержка.

Использование регистров в Alpha Linux

Имя регистра

Программное имя регистра

Описание

r0

v0

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

r1…r8

t0…t7

Временные регистры, их значения не сохраняются при вызове подпрограмм.

r9…r14

s0…s5

Сохраняемые регистры, их значения должны сохраняться при вызове подпрограмм.

r15

FP или s6

Указатель кадра или сохраняемый регистр.

r16…r21

a0…a5

Аргументные регистры, используются для передачи первых шести целочисленных аргументов подпрограмм, их значения не сохраняются при вызове подпрограмм.

r22…r25

t8…t11

Врéменные регистры, их значения не сохраняются при вызове подпрограмм.

r26

ra

Содержит адрес возврата; используется для вычисления выражений.

r27

pv или t12

Значение процедуры или временный регистр.

r28

at

Временный регистр ассемблера, значение не сохраняется при вызове подпрограмм.

r29

GP

Глобальный указатель.

r30

SP

Указатель стека.

r31

zero

Всегда имеет значение 0.

Команды архитектуры Alpha

Типы команд процессора Alpha:

·  Команды PALcode (Privileged Architecture Library) – набор подпрограмм, характерных для реализации конкретной операционной системы.

·  Команды ветвлений. Команды условного перехода могут проверять значение регистра на больше/меньше, ноль/не ноль или четное/нечетное. Команды безусловного перехода могут записать адрес возврата в регистр.

·  Команды чтения и записи – перемещают 8, 16, 32, 64-битные выровненные значения из памяти и в память. Адреса в памяти 64-битные виртуальные без сегментации.

·  Команды целочисленных операций.

Большинство целочисленных операций работает с 64-битными значениями. Это обычный набор команд, состоящий из арифметических и логических операций, операций сравнения и побитового сдвига. Есть также три 32-битные операции: сложение, вычитание и умножение. Операция целочисленного деления отсутствует.

Архитектура Alpha также поддерживает следующие дополнительные операции:

·  масштабируемое сложение/вычитание (для быстрого вычисления индекса),

·  128-битное умножение (для выполнения деления и использования высокоточной арифметики),

·  условное присваивание (для избежания ветвлений),

·  большой набор инструкций для манипуляций байтами и словами в регистрах,

·  набор мультимедиа инструкций (для обработки графики и видео).

·  Команды вещественных операций включают четыре полных набора арифметических операций для обработки вещественных значений в форматах VAX и IEEE, а также инструкции для преобразования вещественных чисел в целые и наоборот.

Группы команд

  • Целочисленные команды чтения и записи,
  • Целочисленные команды управления,
  • Целочисленные арифметические команды,
  • Логические команды и команды сдвига,
  • Команды манипуляции байтами,
  • Вещественные команды чтения и записи,
  • Вещественные команды управления,
  • Вещественные команды ветвления,
  • Вещественные арифметические команды,
  • Дополнительные команды,
  • Команды поддержки форматов данных VAX,
  • Команды мультимедиа

Похожие материалы

Информация о работе