vvkot |
Отправлено: 22.11.2006, 09:06 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Где найти? Время выполнения процессором операций. Есть очень коротенький код, выполняющийся миллиарды раз, необходимо вылизать помаксимуму, хотелось бы подобрать наиболее короткие операции, где узнакть за сколько тактов делается какая операция на пентиуме 4. |
|
Tantos |
Отправлено: 22.11.2006, 14:44 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 108
|
GetTickCount()?
|
|
Grigoriy |
Отправлено: 22.11.2006, 14:58 |
|
Мастер участка
Группа: Участник
Сообщений: 381
|
Время выполнения участка машинного кода (с относительно большим количеством выполняемых инструкций) можно вычислить используя инструкцию
RDTSC (без операндов)
она читает 64-разрядный счетчик времени TSC, значение которого нарастает на 1 с каждым тактом ядра процессора. Значение счетчика помещается командой в пару 32-разрядных регистров общего назначения
edx:eax (старшее двойное слово — в edx). Команда впервые появилась в микропроцессоре Pentium.
И насколько я измерял, то могу сказать, что сама она выполняется за 80 тактов примерно.
Вообще, если вам нужно знать самые "медленные" команды, могу написать так, навскидку,
медленно выполняются операция умножения чисел без знака mul
операция умножения чисел со знаком imul
операция деления чисел без знака div
операция деления чисел со знаком idiv
(операнды не указываю)
эти команды выполняются ориентировочно за 15...20 тактов,
а также операции умножения и деления FPU.
По моим измерениям операции умножения из набора инструкций MMX выполняются в два раза быстрее (видимо разработчики выделили больше транзисторов для этих блоков АЛУ под умножение на каждое упакованное число).
Используйте расширения MMX и XMM (SSE, SSE2, SSE3, 3DNow!)арифметико-логического устройства.
Следует также учесть, что обмен между ядром процессора и КЭШ-памятью 2 уровня происходит в несколько раз быстрее, чем обмен между ядром процессора и оперативной памятью (тактовые частоты различаются). По моим измерениям для моего компьютера, например,
соотношение скорости чтения из кэш_2_уровень к скорости чтения из оперативной памяти в 7 раз
соотношение скорости записи в кэш_2_уровень к скорости записи в оперативную память — в 20 раз.
Из тех ссылок, что я тебе могу дать, это ссылки на вот этой странице
http://developer.intel.ru/design/pentium4/...cumentation.htm
И если по ним полазить, то вот такие ссылки на англоязычные документы
Часть 1: Основы архитектуры описывает архитектуру и среду программирования архитектуры Intel® IA-32. Документ
(Имя файла/Размер: 25366517.pdf, 3,17 МБ)
http://developer.intel.ru/download/design/...ls/25366517.pdf
Справочник по набору команд, A-M описывает формат набора команд архитектуры IA-32 и рассказывает о справочных страницах инструкций от А до М. Документ (Имя файла/Размер: 25366617.pdf, 2,57 МБ)
http://developer.intel.ru/download/design/...ls/25366617.pdf
Справочник по набору команд, N-Z описывает формат набора команд архитектуры IA-32 и рассказывает о справочных страницах инструкций от N до Z. Документ
(Имя файла/Размер: 25366717.pdf, 2,08 МБ)
http://developer.intel.ru/download/design/...ls/25366717.pdf
Том 3: Руководство по системному программированию описывает поддержку операционных систем процессорами на базе архитектуры IA-32, в том числе функции управления памятью, защиты, управления задачами, обработки прерываний и исключений и режим системного управления. Документ
(Имя файла/Размер: 25366817.pdf, 5,56 МБ)
http://developer.intel.ru/download/design/...ls/25366817.pdf
Архитектура Intel IA-32 — руководство по оптимизации содержит информацию по микроархитектуре Intel NetBurst® и микроархитектуре процессоров Pentium® M. Описывает методики оптимизации программного кода, позволяющие отладить приложение для получения оптимальных результатов при работе с процессорами Pentium®, Intel® Xeon® и Pentium® M. Документ
(Имя файла/Размер: 24896612.pdf, 1,86 МБ)
http://developer.intel.ru/download/design/...ls/24896612.pdf
Отредактировано Grigoriy — 22.11.2006, 15:02
|
|
vvkot |
Отправлено: 22.11.2006, 19:51 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Спасибо за столь подробный ответ и приведенные ссылочки |
|
|