Регистры сопроцессора x87




Сопроцессор (FPU) предназначен для выполнения операций над вещественными числами. С программной точки зрения сопроцессор содержит блок регистров данных, регистр управления и группу регистров состояния и указателей. Восемь регистров данных разрядностью 80 бит организованы в стек. Номер регистра, являющегося текущей вершиной стека, хранится в специальном поле регистра состояния (указателе вершины стека). Операция push уменьшает значение указателя на 1 и помещает в стек данные в регистр, являющийся новой вершиной стека. Операция pop записывает данные с вершины стека в память или регистр и увеличивает указатель на 1. Инструкции адресуют регистры либо явно, либо неявно. Неявная адресация подразумевает операнд, находящийся на вершине стека. Явная адресация подразумевает указание смещения регистра относительно вершины стека - st(i).

 

Регистры данных FPU (арифметический стек)

Физические номера 80 бит Относительные номера
1 бит 15 бит 64 бит
Знак Порядок Мантисса
      mm0 ST(5)
      mm1 ST(6)
      mm2 ST(7)
      mm3 ST(0)
      mm4 ST(1)
      mm5 ST(2)
      mm6 ST(3)
      mm7 ST(4)
      Регистры MMX / 3DNow!  

 

Расширение MMX

MMX было первым расширением, реализующим технологию SIMD (Single Instruction - Multiple Data). Основная идея SIMD заключается в одновременной обработке нескольких элементов данных одной операцией. Расширение MMX использует новые типы упакованных 64-битные целочисленных данных:

- 8 упакованных байт (Packed byte);

- 4 упакованных слова (Packed word);

- 2 упакованных двойных слова (Packed double word);

- 1 учетверенное слово (Quad word);

Эти типы данных могут специальным образом обрабатываться в 64-битных регистрах MM0-MM7, представляющих собой младшие биты стека 80-битных регистров FPU. Каждая инструкция MMX выполняет действие сразу над всем комплектом операндов (8, 4, 2 или 1), размещенных в адресуемых регистрах. Как и регистры FPU, эти регистры не могут использоваться для адресации памяти. Совпадение регистров MMX и FPU накладывает ограничение на чередование кодов FPU и MMX. В отличие от стека FPU регистры MMX адресуются не с помощью стека, а физически (по своим физическим номерам).

 

Расширение 3DNow!

Технология 3DNow!, разработанная AMD, расширяет возможности MMX. Она позволяет оперировать с новым типом данных - парой упакованных вещественных чисел одинарной точности. Эти числа занимают по двойному слову (32 бита) в 64-битных регистрах MMX.

Расширение 3DNow! работает с упакованными данными в FP-формате с одинарной точностью, а также упакованными 8 байт, 4 слова, 2 двойных слова и 64-битными целыми числами, размещая их в младших 64 битах регистров FPU/MMX.

 

Блок XMM

Начиная с Pentium III, Intel использует в своих процессорах новое потоковое расширение SSE (Streaming SIMD Extension). Оно реализуется дополнительным независимым блоком, имеющим восемь 128-битных регистров, названных XMM0-XMM7, и регистр состояния/управления MXCSR. В каждый из регистров XMM помещаются четыре числа в формате с плавающей точкой одинарной точности. Блок позволяет выполнять векторные (пакетные) и скалярные инструкции. Векторные инструкции реализуют операции сразу над четырьмя комплектами операндов. Скалярные инструкции работают только с одним комплектом операндов - младшим 32-битным словом. При выполнении инструкций XMM традиционное оборудование FPU/MMX не используется, что позволяет эффективно смешивать инструкции MMX с инструкциями с плавающей точкой.

Кроме инструкций с новым блоком XMM в расширение SSE входят и дополнительные целочисленные инструкции с регистрами MMX, а также инструкции управления кэшированием.

 

В процессоре Pentium4 набор инструкций получил новое расширение - SSE2, в основном касающееся добавления новых типов 128-битных типов данных для блока XMM:

- упакованная пара вещественных чисел двойной точности;

- упакованные целые числа: 16 байт, 8 слов, 4 двойных слова или пара учетверенных слов.

В процессор введены новые функции целочисленной арифметики, 128-разрядные для регистров XMM и такие же 64-разрядные для регистров MMX; ряд старых инструкций MMX распространили на XMM (в 128-битном варианте); добавлены инструкции преобразования для новых форматов данных, а также расширены возможности "перемешивания" данных в блоке XMM. Кроме того, расширена поддержка управления кэшированием и порядком исполнения операций с памятью.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: