Во время работы над демкой Good Apple написал много тестов производительности. Мне нужно было знать точное время выполнения команд и - главное - целых блоков кода (выяснилось, что в силу архитектурных особенностей контроллера динамической памяти БК, сумма длительностей взятых по отдельности команд может не совпадать с реальной длительностью всего блока кода). Нужно это было потому, что я хотел выводить звук на Covox ровно каждые 176 тактов процессора, дабы поддерживать постоянную частоту звука 22727 Гц безо всякого джиттера.
Расчёт проводил как для медленной динамической памяти, так и помещая код в быструю верхнюю память контроллера жесткого диска. Результаты, конечно, разные.
Решил выложить часть тестов, чтобы все могли сверить свои эмуляторы
Исходники здесь же. Можете тестировать произвольные блоки кода и любые команды по отдельности.
speed-tests-manwe-1.zip
Вскоре собираюсь доделать тесты до конца (все команды) и выложить в отдельную тему в разделе БК-0010/11
Пока что промежуточные исходники и бинарники здесь.
Несколько примеров для БК-0010-01 3 МГц:
Аргументы fast, fm, f предназначались для обращения в fast memory, но по-моему там идёт обращение к тому типу памяти, который указан в заголовке теста. То есть для теста 45com-lo это будет обращение в low (нижнюю медленную) память.
Ещё картинки:
Скрытый текст
http://thesands.ru/bk0010/temp/45com-hi.jpg
http://thesands.ru/bk0010/temp/speed-lo.jpg
http://thesands.ru/bk0010/temp/speed-hi.jpg
http://thesands.ru/bk0010/temp/test4lo.jpg
http://thesands.ru/bk0010/temp/test4hi.jpg
http://thesands.ru/bk0010/temp/test5lo.jpg
http://thesands.ru/bk0010/temp/test5hi.jpg
[свернуть]
Производительность понятно как посчитать: 3 мегагерца делим на число тактов команды. Например, получаем 250'000 операций NOP в секунду. Отсюда одна команда NOP длится 4 микросекунды. В условиях выполнения в обычной медленной памяти.






Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
