Главная страница
Расширение SSE (требует pentium3)

Во времена пентиумов вторых фирма Intel ввела расширение MMX (для параллельной обработки целых чисел). Но оказалось, что существует множество задач, интенсивно работающих с вещественной арифметикой, причём количество операций довольно большое, а сами операции простые. Специально для подобного рода задач фирма Intel придумала расширение SSE. Это расширение требуется для выполнения параллельных операций над упакованными вещественными числами. Формат упакованных вещественных чисел такой: в одной 128-битной переменной находится 4 числа типа single (32-битные вещественные числа). Приведём пример работы таких команд:
var
   x, y, z: array [0..3] of single;
begin
   x[0]:=...; x[1]:=...; x[2]:=...; x[3]:=...;
   y[0]:=...; y[1]:=...; y[2]:=...; y[3]:=...;
   asm
      movups XMM0, x; {в регистре XMM0 находится массив x}
      movups XMM1, y; {в регистре XMM1 находится массив y}
      addps XMM0, XMM1;
      {теперь в XMM0 четыре суммы, вычисленные параллельно}
      movups z, XMM0; {теперь в z находится значение XMM0}
   end;
end;
После этого фрагмента z[0]=x[0]+y[0], z[1]=x[1]+y[1], z[2]=x[2]+y[2], z[3]=x[3]+y[3]

Следующая страница (как организовано SSE)