Не понимаю, почему против. :v2_huh:
Стек указывает на ПЗУ ! :v2_dizzy_facepalm:
Переделал - b00002b (по той же ссылке)
---
Здесь был неправильный тест b00004, правильный b00005 смотри ниже, 28.03.2021.
Вид для печати
Не понимаю, почему против. :v2_huh:
Стек указывает на ПЗУ ! :v2_dizzy_facepalm:
Переделал - b00002b (по той же ссылке)
---
Здесь был неправильный тест b00004, правильный b00005 смотри ниже, 28.03.2021.
Вот тесты и результаты, которые мы получили с DDp еще в январе:
https://disk.yandex.ru/d/o1AQ9SpJfYcDVw
Насчет дополнительных 0,75 такта на запись, пожалуй, согласен. А вот насчет 5-тактных циклов не совсем понимаю. Откуда такое предположение? Тот же MOV A,A состоит из единственного 5-тактного цикла, но довольно хорошо ложится в модель, даже наоборот, нужно убирать лишние такты... Вообще, в тесте не так много инструкций с 5-тактными циклами попали...
Кроме искусственных тестов неплохо бы еще побольше примеров работы реальных программ, для которых можно было бы замерить скорость выполнения и сравнить с эмулятором...
Попробую +0.75 для записи и посмотрю результат на том, что уже есть.
Так я и написал "при наличии 5 тактных циклов дополнительное торможение уменьшается".
Насчет дополнительного торможения при записи наверно не стоит торопиться, оно наблюдается для некоторых команд (MOV A,M и MOV M,A, LDA по сравнению с STA, LHLD и SHLD), и его нет для других (POP против MVI M/INR M).
Это да. Или еще можно попробовать в качестве синтетического теста смеси команд.
pi из темы
Или мандельброт.
Измерить время работы можно или вручную секундомером или с помощью записи в wav. При старте напишет PRESS ANY KEY, жмем клавишу, в wav запишется клик. Когда все нарисует в wav запишется второй клик и можно будет измерить время между кликами. Из emu получилось 81.5 секунд.
Получается для пи скорость реала примерно 67%, для мандельброта 64%. Вероятно в пи активнее используется dad.
Mandel: Emu80 в текущем состоянии: 129,597 с (реал - 127,372)
Pi32 - 10,451 (реал - 10.274)
PiRk20 - 13,941 (реал - 13.542)
В общем, эмулятор пока работает чуть медленнее реала, видимо, после добавления тактов на запись нужно будет уменьшать такты на чтение
Потестировал немного разные варианты, пока остановился на таком:
обращение к ОЗУ +2 1/3 такта, для записи дополнительно 3/4 такта
Мандельброт - 127,71 (+0,27%)
Pi32 - 10,155 (-1,16%)
Pirk20 - 13,705 (+1,21%)
Биперная музыка от NEO SPECTRUMAN и заставка DRILLER - около +1%
Может быть, стоит чуть уменьшить 2 1/3 примерно до 2,3 - нужно больше тестов...