Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [ 79 ] 80 81 82 83 84 85 86 87 88

4g4 Ассемблер в задачах защиты информации

Инструкция EMMS занимает только один такт, но первая инструкция FPU после EMMS занимает примерно на 58 тактов больше, а первая инструкция ММХ после инструкции FPU занимает примерно на 38 тактов больше.

Нет потерь при использовании операндов памяти в инструкции ММХ, потому что арифметический модуль ММХ находится на один шаг дальше по конвейеру, чем модуль загрузки. Но потери будут, когда нужно будет сохранять данные из регистра ММХ в память или в 32-битный регистр: данные должны быть готовы на один такт раньше. Это аналогично инструкциям FPU. Все инструкции ММХ, кроме EMMS, спариваются в любом конвейере. Правила спаривания для инструкций ММХ объяснены в разделе 6.10.

6.29. Список периодов выполнения инструкций и задержек микроопераций для РРго, Р2 и РЗ

Пояснения

Операнды: г - регистр, m - память, i - число, sr - сегментный регистр, т32 - 32-битный операнд в памяти и т. д.

Микрооперации: количество микроопераций, которые генерирует инструкция для

каждого порта выполнения:

ж рО: порт О: ALU и т.д.

ш р1: порт 1: ALU, переходы

в р01: инструкции, которые могут попасть как в порт О, так и в порт 1 (какой будет свободен первым) В р2: порт 2: загрузка данных и т.д. ж рЗ: порт 3: генерация адреса для сохранения и р4: порт 4: сохранение данных

Задержка - задержка, которую генерирует инструкция в цепочке зависимости. Это не то же самое, что время, потраченное в модуле выполнения. Значения мотуг быть неточны в тех ситуациях, когда они не могут быть достоверно измерены, особенно, что касается операндов из памяти. Значения являются минимальными. Промахи кэша, невырав-ненность и исключения могут повысить количество тактов весьма значительно. Предполагается, что операнды с плавающей запятой являются нормальными. Ненормальные числа, NAN и бесконечность увеличивают задержку на 50-150 тактов, кроме пересылок ХММ, перемешиваний и булевых инструкций. Переполнения FPU, потеря значимости, ненормальные или NAN-результаты дают аналогичную задержку.

Производительность - максимальная производительность нескольких инструкций одного вида. Например, производительность в 1/2 для FMUL означает, что новая инструК ция FMUL может начинать выполнение каждые 2 такта.


i....?"!..?." процессоров семейства Pentium

6.29.1 Целочисленные инструкции (РРго, Р2 и РЗ)

моу

MOV

MOVSX MOVZX

MOVSX MOVZX CMOVcc

CMOVcc XCHG

XCHG

XLAT PUSH

POP POP

PUSH

""push"

!USHF([))

,OPA(0) -ifSAHF

Таблица 6.10. Время выполнения инструкций. Процессоры РРго, Р2 и

r,r/i

m,r/i

r,sr

m,sr

sr,r

sr,m

(E)SP

микрооперации

highb)



ADD SUB AND ORXOR

r,n/i

ADD SUB AND ORXOR

ADD SUB AND ORXOR

m,rli

AOCSBB

r,n/i

ADCSBB

AOCSBB

m,rli

CMP TEST

r,n/i

CMP TEST

m,rli

INC DEC NEG NOT

INCDECNEGNOT

AASDAADAS

MULIMUL

r,(r),(i)

MULIMUL

(r),m

DIV IDIV

DIVIOIV

DIVIDIV

DIVIDIV

DIVIDIV

DIVIDIV

CBWCWDE

CWDCDQ

SHRSHLSAR ROR

r,i/CL

SHRSHLSAR ROR

ni,i/CL

RCRRCL

RCR RCL RCR RCL RCRRCL RCRRCL

r8,i/CL

rl6/32,i/CL

m8,i/CL

4 3 1 4

3 2 3

ml6/32,i/CL

Thldshrd

r,r,i/CL

LOSHRD

m,r,i/CL

r.r/i

m,r/i

BTRBTSBTC

r.r/i

"Ttrbtsbtc

m,r/i

BSFBSR

BSFBSR

SETcc

SETcc

short/near

m(near)

m(far)

conditional jump

sliort/near

call

near

CALL

CALL

CALL

m(near)

CALL

m(far)

RETN

RETN

RETF

RETF

J(E)CXZ

sliort

Loop

short

L0OP(N)E

short

ENTER

ENTER

BOUN0

..iLCSTC CMC

..STD

,.[N10



LOOS

REP LOOS

10+бп

STOS

REP STOS

ca. 5n

MOVS

REP MOVS

ca. 6n

SCAS

REP(N)ESCAS

12+7П

CMPS

REP(N)E CMPS

12+9П

BSWAP

CPUIO

23-48

RDTSC

>300

>300

PREFETCHNTA d)

PREFETCHTO/ 1/2 d)

SFENCEd)

Примечания

a) быстро при определенных условиях: см. пункт 6.26,3;

b) смотри пункт 6.26.1;

c) 3, если константа без базового или индексного регистра;

d) только РЗ.

Табли1а 6.11. Время выполнения инструкций FPU. Процессоры РРго, Р2 и Р

"-

микрооперации

га a.

Ql %

t; Ф

h-S EX О

so m s о о. c

т32/64

FBLO

FST(P)

FST(P)

т32/т64

FSTP

FBSTP

FXCH

3/1 f)

Ш{Р)

FLDZ

FLDl FLOPI FLDL2E e

FCMOVcc

FNSTSW

FNSTSW

FLOCW

FNSTCW

FAOO(P) FSUB(R)(P)

FAOD(P) FSUB(R)(P)

FMUL(P)

1/2 g)

FMUL(P)

1/2 g)

FOIV(R)(p)

38 h)

1/37

tWy( R)(P)

38 h)

1/37

ABS

5 29.2 Инструкции FPU (РРго, Р2 и РЗ)



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [ 79 ] 80 81 82 83 84 85 86 87 88