Assembler - язык неограниченных возможностей

         

Общая информация о скоростях выполнения


Скорости выполнения команд для процессоров 8086 – Р5 даны в тактах (когда говорят, что тактовая частота процессора 100 MHz, это означает, что за секунду проходит 100 миллионов тактов).

Для процессоров Р5 (Pentium, Pentium MMX) помимо скорости указано, может ли команда выполняться одновременно с другими, и если да, то в каком конвейере (см. главу 9.3.2):

UV — может выполняться одновременно, в любом конвейере;

PU — может выполняться одновременно, в U-конвейере;

PV — может выполняться одновременно, в V-конвейере;

FX — может выполняться одновременно с командой FXCH;

NP — не может выполняться одновременно (для ММХ — не может выполняться одновременно с командой того же типа, который указан после буквы «n»).

Для процессоров Р6 (Pentium Pro, Pentium II) указано количество микроопераций, на которые декодируется команда. Буквой «С» отмечены команды со сложным строением (см. главу 9.3.3).

Во всех случаях даны минимально возможные скорости — если шина данных не заблокирована, операнды выровнены по границам двойных слов, операнды находятся в кэше данных, команды по адресу для перехода находятся в кэше кода, переходы угаданы процессором правильно, в момент выполнения команды не происходит заполнения кэша, страницы находятся в TLB (иначе для Р5 следует прибавить 13 – 28 тактов), не происходит исключений в момент выполнения команды, не происходят AGI и т.д.

Операнды обозначаются следующим образом:

im — непосредственный операнд;

i8, i16, i32 — непосредственный операнд указанного размера;

ас — ЕАХ, АХ, AL;



r — любой регистр общего назначения;

r8 — АН, AL, BH, BL, DH, DL, CH, CL;

r16 — АХ, ВХ, СХ, DX, ВР, SP, SI, DI;

r32 — ЕАХ, ЕВХ, ЕСХ, EDX, EBP, ESP, ESI, EDI;

sr — сегментный регистр;

m — операнд в памяти;

mm — регистр ММХ;

s0 — регистр ST(0);

si — регистр ST(i).

Для команд условных переходов приводятся два значения скорости выполнения — если переход произошел и если нет.

Другие используемые сокращения:

РМ — защищенный режим;

RM — реальный режим;

VM — режим V86;

TS — переключение задачи;

CG — шлюз вызова;

TG — шлюз задачи;

/in — увеличение привилегий;

/out — уменьшение привилегий;

/NT — переход во вложенную задачу.

Время переключения задачи:

Pentium: TS = 85 при переключении в 32-битный и 16-битный TSS и 71 при переключении в V86 TSS;

80486: TS = 199 при переключении в 32-битный и 16-битный TSS и 177 при переключении в V86 TSS;

80386: TS = 307 – 314 при переключении в 32-битный и 16-битный TSS и 224 – 231 при переключении в V86;

80286: JS = 280.


Содержание раздела