ZXNet эхоконференция «code.zx»


тема: такты



от: 812/08.14
кому: Kirill Frolov
дата: 09 Jan 1998


Привет, Кирилл!

KF> Может кто-нибудь может объяснить, сколько времени уходит
KF> в скорпе (желтом) на выполнение комманд типа LDI/DJNZ/LD A,(HL)...?
KF> Дело в том, что они содержат нечетное число тактов, а скорп при
kF> чтении КОПА из RАМа может вставить /WAIT.

Спрашивали - отвечаем (ц) ... :)

Hа машинах Ленинград, Композит, Скорпион, Кау
при выборке команды из RAM вставляется один такт
ожидания, но не всегда, а тогда, Когда предыдущая
команда имела нечетное количество тактов.
Для простоты можно считать, что ожидание
возникает не в текущей, а в предыдущей команде
(нечетной).

Итак, если команда занимает нечетное коли-
чество тактов - вставляется лишний такт и,
таким образом, время дополняется до большего
четного значения.

LD A,(HL) 7 > 8
LD (0),A 13 > 14
DJNZ $ 13 > 14
и т.д.
(насчет LDI ты неправ - 16 тактов, четно, 16 и будет)

Таким образом, при подсчете тактов для любой
программы ты рядом с любой нечетной командой
дорисовываешь еще один такт к паспортному.

Сказанное справедливо и для турбо-машин
в нетурбо режиме.


KF> Eще вопрос: частота тактирования проца - 3.5 Мгц, прерываний
KF> 50Гц, а тактов за прерывание получается не 70000, а около 68000,
KF> причем это в ROMe и в RAMe (результаты одинаковые). В чем дело ?

А как ты считал такты в прерывании?

Я думаю, надо так - ставим IM2, и запускаем
программку вида

M0 INC DE:JP M0; 16 тактов/оборот

А в прерываниях ловим текущий DE, отписываем
его куда-нибудь, обнуляем его и запускаем снова.
Так повторяем 129 раз, каждый раз отписывая
получившийся DE (самое первое значение отбра-
сывается).

Получаем 128 значений.

Каждое нужно умножить на 16, к результату
добавить количество тактов, которое занимает
(с учетом нечетных команд!) программа на IM2
(запись DE в список, работа со стеком, цикл
129 раз и т.п.), и добавить 19 (20) тактов -
поправка на цикл INTACK. Из 128 скорректиро-
ванных значений высчитать среднее - это и есть
число тактов на фрейм.

Это только шаблон, в деталях может быть иначе,
только в это время процессор должен выполнять
колько четные команды (в моем примере 6+10).
А если будут нечетные - получишь неверный
результат, так как время выполнения нечетной
команды отличается от документированного.

Получаемая точность - 16 тактов.

Мне удавалось измерить с точностью до 4х
тактов - я забивал память NOPами, запускал,
а на прерываниях смотрел, до какого NOPа
дошла программа.

Теоретически возможно измерить с точностью
до такта - вот только зачем?
Я, например, знаю, что в моем Пентагоне
320 строк/кадр, в строке 224 такта, без тор-
моза - получается 71680 тактов (частота
кадров 48.828 Гц).
Hа Скорпе 312 строк, 224 такта в строке,
получаем 69888 тактов (частота кадров 50.08 Гц).


Еще момент. Во всех Скорпах/Ленинградах/
Композитах число строк всегда 312, а вот
число тактов в строке зависит от кривости
ручек, их собиравших, Может быть как 224,
так и больше или меньше...
А также, некоторые умники с целью поднять
совместимость с Пентагоном (к слову, у него
WAIT не возникает никогда) насилуют свои
Скорпионы/Ленинграды, увеличивая количество
тактов в строке (доработки в районе ИЕ7).
Такое решение, соответствнно, понижает
строчную и кадровую частоты, и нельзя считать,
что частота кадров 50 Гц - она получается
меньше, соответственно, тактов в Инте больше.

Измерить же количество тактов на строку
можно, лишь написав программу вертикальной
полосы на бордюре, и, методом тыка добившись
ее вертикальности, измерить количество
тактов в выводящей программе ( с учетом
нечетных команд!).



измеряла бы количество тактов с учетом тормоза
на нечетных командах, так никто и не удосужился...


Вот такие дела.

Всего хорошего,

Дмитрий AKA -=LD=-/X-TRADE GROUP


-+- ZXASM 3.0

от: 812/03.00
кому: Dmitry Lomov
дата: 12 Jan 1998

Смотрю вдруг 12-01-98, в 01:43 некто
Dmitry Lomov писал к Paul Falcon про такты :

Hi Dmitry !

PF>> я например не знаком с теорией этого явления,
PF>> но знаю на каких машинах это происходит.
PF>> человек спросил - я ответил.

DL> BEST!

DL> вопрос:
DL> - Сколько тактов на Скорпионе?
DL> ответ:
DL> - Да, а также на Пентагоне!
^^^^^^^^
ты че не замечаешь нифига? я не _про_пенатагон_ писал!

DL> Вот это и есть - "абы как"...

DL> Hе знаешь - не отвечай.

если ты заметил то я ответил не так. человек спросил
когда прибавляется лишний такт на командах которые
выполняюыся нечетное количесво тактов. я ответил что
всегда это происходит на скорпионах,каях,композитах и
на _кривом_пентагоне_ ! я могу еще раз повторить, что бы ты
понял, на _кривом_пентагоне_ . потому как у Hacker'a
зона 128 кАким-то образом переделаная под пентагон. тонкостей
этой переделки я незнаю.

PF>> и чего ты вдруг на меня так сорвался? вот твое _это_
PF>> письмо и не по теме и с наездом.

DL> Сначала я ответил на вопрос. А потом обратил
DL> твое внимание на мыльные пузыри. "Срываются" с обрыва...

DL> В мыло пойдем? :)

можешь идти куда угодно, меня не прет ругаться только
потому что тебе этого хочется. прет тебя ругаться с моквичами
вот и ругайся, только напиши им что я никакого отношения
к вам не имею и иметь не хочу, а то они мне 3 раз пишут.

еще раз напишешь в эху такую пургу - отрублю на неделю.

если тебе очень надо, можешь позвонить, все решим по телефону.

▌▌║▌█▐│▌▌▐▐ WiTh The BeST wIsheS fROM CREATOR product
▌812/03.00▐ Powered by Cyrix 6x86L 200+/16DIMM/S3TrV2 2MB/1.6GB


-+- SMM version 1.05

от: 812/08.14
кому: Kirill Frolov
дата: 13 Jan 1998



Привет, Кирилл!

[ аннигилировалось ]

DL>> Сказанное справедливо и для турбо-машин
DL>> в нетурбо режиме.

KF> А может наоборот - для турбо-машин в _турбо_ режиме ?

Hет. Именно так, как я сказал. В турбо-режиме
сказанное справедливо вдвойне :)

*скип*

KF> А это каким таким образом ? Если кварц на 14 должно быть 224...
KF> (и если с счетчиком Д4=ИЕ7 не наконструировали...)

Количество тактов в строке от частоты кварца
не зависит. Оно зависит от коэффициента деления
счетчика, т.е. от числа, которое в него загружается.
Hа разных платах стоят разные числа. (имеются в виду
старые Зоны). В Скорпе многое зависит от серии ИЕ7
и от RC-цепи в проводе загрузки счетчика.

*скип*

KF> А соотношение четные/нечетные должно быть какое ?
KF> Imho это очень сложный вопрос...

Тестить надо так: сначала проверить на четных
командах, получается ? тактов/ИHТ. Затем проверить
на нечетных. Если получится иное, значит, в системе
есть характерный зоновский тормоз...


KF> P.S. Hу и тормозит-же скорп как скейт без роликов...

Мой не тормозит, после того, как я из него
Пентагон сделал. Пришлось потрудиться...


Всего хорошего,

Дмитрий AKA -=LD=-/X-TRADE GROUP


-+- ZXASM 3.0

от: 812/08.14
кому: Kirill Frolov
дата: 16 Jan 1998


Привет, Кирилл!


KF> T.e. турбо машины в нетурбо режиме тормозят, а в турбо не тормзят ?

Hекоторые машины в нетурбо тормозят (кроме АТМ и Пентагона, IMHO).
Все турбированные машины в Турбо тормозят еще больше, но выигрыш
все же есть. Самая быстрая машина, IMHO, KAY-TURBO. Там в турбо-
режиме количество тактов в команде округлятся вверх до кратного
четырем:

4 > 4
6 > 8
7 > 8
8 > 8
9 > 12
13 > 16
...

Hо если учесть, что большая часть команд - 4 и 7 тактов, получаем
почти удвоенную производительность.

*скип*

KF> А почему пентагон не тормозит ? (схему его никогда не видел!)

Ввиду особенностей схемотехники.

Машины тормозят, так как:

Тактовая частота памяти равна частоте проца.
Из той же памяти на экран выводится информация,
при этом занят каждый второй такт памяти.

Память делится: один такт памяти процессору,
другой видеоконтроллеру.

Цикл чтения команды занимает полтора такта.

Вывод - иногда может случиться, что, когда процессор
хочет команду, память занята выводом на экран. Процессор ждет.

В турбе увеличивается частота работы процессора,
но быстродействие памяти остатся прежним.
Вывод - в турбе процессору иногда придется подождать
два такта.

В пентагоне деление циклов между процессором
и видео делается произвольно, из каждых двух
тактов памяти первый достается видеоконтроллеру,
второй процессору, но, если процессор хочет
память на первом такте, сначала работает он, а уж
за тем видеоконтроллер.

В зоновских машинах такты фиксены -
первый обязательно процессору, второй видео.

Вот так-то...

Всего хорошего,

Дмитрий AKA -=LD=-/X-TRADE GROUP

-+- ZXASM 3.0




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Демопати - Chaos C0NstRucTI0n'2001: результаты.
Интерфейс - Описание игры "Смагли-2".
B.B.S. Новости - О новой B.B.S. - Ditronik6-BBS.
A DREAM
Реклама - Реклама и объявления.

В этот день...   26 апреля