(первый вариант 23.03.2010, последняя правка 04.04.2010)
Данный раздел составлен по результатам тестов, которые выполнил на своем ПК8002 observer-k, за что ему большое спасибо!
Тесты разработал Иван Городецкий, которому также объявляется благодарность :)
Отдельное спасибо Дмитрию Целикову за интерпретацию результатов теста турбо-режима.
Процессор: КР580ВМ80 2,5 МГц
2 режима работы:
1. "Нормальный" (не турбо) - торможение процессора постоянно и не зависит от того, какая часть кадра сейчас выводится на экран (при отключенных спрайтах).
2. Турбо - торможение процессора при выводе бордюра становится значительно менее жестким (поэтому самый быстрый вариант турбо - 50 Гц при 192 строках, а самый медленный - 60 Гц при 212 строках).
Характеристики развертки:
1. При кадровой частоте 50 Гц - в кадре 312 строк по 160 тактов.
2. При кадровой частоте 60 Гц - в кадре 260 (именно 260, а не 262) строк по 160 тактов.
Активных строк 192 или 212.
Растактовка почти всех команд. Для сравнения также приведено паспортное число тактов на команду для КР580ВМ80.
Команды |
По документации на КР580ВМ80 |
ПК8002 (не турбо) |
ПК8002 бордюр (турбо) |
Aci D8 | 7 |
8 |
8 |
Adc R | 4 |
4 |
4 |
Adc M | 7 |
8 |
8 |
Adi D8 | 7 |
8 |
8 |
Add R | 4 |
4 |
4 |
Add M | 7 |
8 |
8 |
Ana R | 4 |
4 |
4 |
Ana M | 7 |
8 |
8 |
Ani D8 | 7 |
8 |
8 |
C* Adr (N) | 11 |
16 |
12 |
C* Adr (Y) | 17 |
32 |
22 |
Call Adr | 17 |
32 |
22 |
Cma | 4 |
4 |
4 |
Cmc | 4 |
4 |
4 |
Daa | 4 |
4 |
4 |
Dad RP | 10 |
12 |
10 |
Dcr R | 5 |
8 |
5,33 (*) |
Dcr M | 10 |
16 |
12 |
Dcx RP | 5 |
8 |
5,33 (*) |
Di | 4 |
4 |
|
Ei | 4 |
4 |
|
In D8 | 10 |
12 |
12 |
Inr R | 5 |
8 |
5,33 (*) |
Inr M | 10 |
16 |
12 |
Inx RP | 5 |
8 |
5,33 (*) |
J* Adr (N) | 10 |
12 |
12 |
J* Adr (Y) | 10 |
12 |
12 |
Jmp Adr | 10 |
12 |
12 |
Lda Adr | 13 |
16 |
16 |
Ldax RP | 7 |
8 |
8 |
Lhld Adr | 16 |
20 |
20 |
Lxi RP,D16 | 10 |
12 |
12 |
Mov R,R | 5 |
8 |
5,33 (*) |
Mov M,R | 7 |
12 |
10 |
Mov R,M | 7 |
8 |
|
Mvi R,D8 | 7 |
8 |
8 |
Mvi M,D8 | 10 |
16 |
12 |
Nop | 4 |
4 |
4 |
Ora R | 4 |
4 |
4 |
Ora M | 7 |
8 |
8 |
Ori D8 | 7 |
8 |
8 |
Out D8 | 10 |
16 |
12 |
Pchl | 5 |
8 |
|
Pop RP | 10 |
12 |
12 |
Push RP | 11 |
20 |
16 |
R* (N) | 5 |
8 |
5,33 (*) |
R* (Y) | 11 |
16 |
12 |
Ral | 4 |
4 |
4 |
Rar | 4 |
4 |
4 |
Ret | 10 |
12 |
12 |
Rlc | 4 |
4 |
4 |
Rrc | 4 |
4 |
4 |
Rst N | 11 |
20 |
|
Sbb R | 4 |
4 |
4 |
Sbb M | 7 |
8 |
8 |
Sbi D8 | 7 |
8 |
8 |
Shld Adr | 16 |
28 |
20 |
Sphl | 5 |
8 |
5,33 (*) |
Sta Adr | 13 |
20 |
16 |
Stax RP | 7 |
12 |
10 |
Stc | 4 |
4 |
4 |
Sub R | 4 |
4 |
4 |
Sub M | 7 |
8 |
8 |
Sui D8 | 7 |
8 |
8 |
Xchg | 4 |
4 |
4 |
Xra R | 4 |
4 |
4 |
Xra M | 7 |
8 |
8 |
Xri D8 | 7 |
8 |
8 |
Xthl | 18 |
32 |
24 |
Примечание (*) - не стоит понимать количество тактов на команду 5,33 буквально. Конечно, число тактов для каждой отдельно взятой команды целое. Дробное "в среднем" значение в данном случае соответствует соотношению две пятитактных команды на одну шеститактную. Почему не пять пятитактных на одну семитактную или другие подобные соотношения - см. ниже комментарии по турбо-режиму.
Комментарий по "нормальному" (не турбо) режиму.
Из таблицы видно, что если команда только читает из памяти (или порта), то растактовка аналогична Вектору-06Ц (циклы по 4 такта, один из них - для чтения процессора). При записи в память или порт есть дополнительная задержка (похоже на ПК8000, но там задержка есть и при чтении).
Комментарий по турбо-режиму.
В турбо-режиме на бордюре (под бордюром в данном случае подразумеваются строки до и после активной области изображения, а также 32 из 160 тактов каждой строки активной области) торможение становится значительно более "щадящим" - процессору доступны 7 тактов из каждых 8-ми. Запись, как и в "нормальном" (не турбо) режиме происходит с дополнительной задержкой.
Отдельно стоит отметить, что отключение изображения в турбо-режиме позволяет выполнить за прерывание всего на 1-2 команды больше, чем при включенном изображении. Т.е. в активной области изображения видеоконтроллер продолжает производить выборки из памяти практически в обычном режиме. Причина имеющегося минимального различия быстродействия при включенном и выключенном отображении картинки пока неизвестна.