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




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

Похожие статьи:
И снова party 3 - новое виртуальное пати для Спектрума: Antique Toy 2002
Новинки - На этои неделе на базаре появилась новая (для нас) игруха RETURN TO HOME.
Обзор игрушек - Обзор новых игровых программ: CATCH 23
Новости - Новости от FLASH на 13.07.97 года.
Ликбез - полное описание и дизассемблер ПЗУ (часть 12).

В этот день...   8 мая