Анализ зависимости скорости выполнения некоторых элементарных инструкций языка ассемб

10 марта 2006 года
00
Если говорить нормальным языком, то мы собираемся написать несколько программ с ассемблерными вставками. Каждая программа будет выполнять определенные инструкции (напр. сложение, работа с памятью, и т.д. ). Потом эти программы мы будем запускать на разных процессорах и замерять время их выполнения.
Зная тактовую частоту процессоров, мы кроме абсолютного времени выполнения команды сможем сделать некоторые выводы о производительности на 1 мегагерц тактовой частоты. Надеюсь, по результатам сможем сделать какие-то выводы.

:yes: Кириченко Пётр Олегович 3091
:yes: Колесников Николай Юрьевич 3091
10 марта 2006 года
00
http://os2.in.ru/forum/m023778.html

Цитировать — Сообщение №2
20 марта 2006 года
00
Цитата:
Первоначальное сообщение от KOT
http://os2.in.ru/forum/m023778.html


типо б0ян? =)


Цитировать — Сообщение №3
20 марта 2006 года
00
Цитата:
Первоначальное сообщение от IgNorEd
типо б0ян? =)

ТипО уже готовое решение, причем общепризнанное.


Цитировать — Сообщение №4
23 марта 2006 года
00
Кириченко П.О.
Спасибо за ссылку, кое чего мы с Николаем посмотрели, но все же хочу сказать, что BogoMips это немножко не то.
Эта программа создавалась для других целей и насколько я понимаю, она производит расчет времени выполнения ПУСТОГО ЦИКЛА, необходимого для работы функции delay().
В нашей работе мы измерим время выполнения пустого цикла на различных машинах, но лишь с целью более точного измрения скорости выполнения других команд.
В двух словах идея такова: вместо пуска пустых циклов, мы будем пускать циклы заполненные до отказа полезными инструкциями одного типа :).

Цитировать — Сообщение №5
24 марта 2006 года
00
Богомипс в первую очередь создавался как "мера крутизны" проца :) Так как мегагерцы не являются идеальной характеристикой производительности процессора (разные бывают архитектуры, знаете ли) и был введен некий простой синтетический тест на производительность.

Цитировать — Сообщение №6
24 марта 2006 года
00
Цитата с сайта http://ruslandh.narod.ru/howto_ru/mini/BogoMips/x74.html

Цитата:
BogoMips - это изобретение Linus Torvalds. Ядру требуются временные задержки состоящие, из пустых циклов, которые должны быть отрегулированы по отношению к скорости процессора.



и еще одна

Цитата:
BogoMips определяются в /usr/src/linux/init/main.c (простой алгоритм на C), и записывает ее в переменную ядра loops_per_sec, которая используется некоторыми драйверами для более серьезных нужд



Даже если считать Богомипс "мерой крутизны проца" , хотя ИМХО это слишком натянуто , мы займемся другим делом. Наша тема
"Анализ зависимости скорости выполнения некоторых элементарных ИНСТРУКЦИЯ ЯЗЫКА АССЕМБЛЕР" т.е. мы делаем уклон на время выполнения инструкций, а не на тесты процессоров.
В идеале наша программа должна сказать сколько инструкций какого либо типа выполняет процессор за секунду.

Богомипс дает некую оценку скорости выполнения пустых циклов.

В частности, не могу полностью отвечать за свои слова, но кое какие выводы мы уже сделали.Помимо логичных выводов есть некоторые пока у нас в голове не очень укладывающиеся вещи. Например, на "новых" (начиная с сеleronov socket 370) процессорах инструкции inc и add выполняются с одинаковой скоростью.
При желании представим доказательства сего факта или найдем у себя ошибку :).


Цитировать — Сообщение №7
03 апреля 2006 года
00
Проведя эксперименты мы поняли, что на современных процессорах (Р2 +) инструкция ADD выполняется как минимум не медленнее инструкции INC. Вот такие странные результаты.
Желающие ознакомиться с методикой тестирования и затем опровергнуть ее корректность могут писать сюда. :)
Мы обязательно дадим ссылки на EXEшники и сорцы (ассемблер и си).

Цитировать — Сообщение №8
Эта тема закрыта, так как последнее сообшение было оставлено больше года назад.