Если пока нет готовых других тестов, то можно попробовать синтетические смеси
Вид для печати
Если пока нет готовых других тестов, то можно попробовать синтетические смеси
Разобрал корпус, ткнулся осциллографом
b00005 - последовательность команд XTHL/XRA/OUT. Синхронизация осцилла (третий шуп) от выходной ножки порта.
опять налажал: CAS неправильный
https://pic.maxiol.com/images2/16169...scillogram.png
Подсказывайте, что/где ещё посмотреть.
- - - Добавлено - - -
tstsp2_result_96khz_8bit.wav.7z по ссылке
Результаты тестирования смесей не такие уж плохие, в том смысле, что сложение результатов тестирования одиночных команд в основном дает довольно близкие результаты. Самое большое отклонение - NOP+MOV A,M, почти два такта. Еще NOP+NOP+MOV A,A - отклонение почти такт. Вместо LXI+POP лучше было что-то новенькое, т.к. фактически это аналог теста POP из tstsp1.
DDp, картинки очень уж мелкие. Например, мне хотелось бы разглядеть, в какой момент READY переходит из 0 в 1.
- - - Добавлено - - -
Исправил ссылку на результаты
Вот, вам комментарии на предыдущие результаты - ссылка :v2_finge:
В какой команде на каком такте/цикле? Это поможет понять торможение во Львове??? :v2_dry:
Надеюсь, что момент перехода READY 0->1 всегда одинаковый относительно границ слота доступа CPU к ОЗУ (в конце слота или за 50 нс до окончания, или за 100 нс или где-то еще). Поэтому в принципе должно быть без разницы, какую команду смотреть. Но для простоты лучше посмотреть на примере NOP или MOV A,A (или их аналогов, т.е. 4 или 5 тактных команд). Еще хорошо бы увидеть запись, лучше тоже на простом примере типа MOV M,A.
Без этого вряд ли возможно точно понять львовское торможение, по крайней мере у меня не получается.
чтение NOP
https://pic.maxiol.com/images2/16169...116662.nop.png
запись MOV M,A
https://pic.maxiol.com/images2/16169...6662.movma.png
Похоже получилось разобраться по крайней мере с чтением. Расписал NOP; MOV A,A и MOV A,M и точные растактовки установившихся циклов из одинаковых команд:
NOP - 6.4
MOV A,A - 7.(1)
MOV A,M - 11.(428571)
Если возникнет вопрос, почему везде чуть меньше, чем в tstsp1, то дело в накладных расходах на организацию цикла (оценить их величину можно по результатам при отсутствии торможения). Совсем без накладных расходов на цикл можно при наличии таймера, но это уже другая история. Очевидно можно уменьшить погрешность, вносимую командами организации цикла, если увеличить число команд в одном прогоне. Теперь надо бы и запись попробовать расписать (отмечу, что вручную весьма неудобно).
Посчитал для последовательности MOV M,A - 12.(4) такта. Все это познавательно, но малоприменимо в эмуляторе, там желательно какие-нибудь сравнительно простые и похожие на правду правила расчета. В принципе сейчас уже точность эмулятора весьма хорошая.
Если кто-то не понял, 11.(428571) - это 11 3/7
Пока не уверен насчет всех команд, но последовательности 4 попробованных после переходного процесса вышли на циклы: 32/5=6.4; 64/9=7.(1); 80/7=11.(428571); 112/9=12.(4). Числитель - длительность цикла в тактах проца, знаменатель - сколько соответствующих команд там помещается. Теоретически можно попробовать так считать любые команды и их сочетания, но по хорошему вероятно надо писать какую-то программку, вручную много не насчитаешь.