Это должно сказываться на времени выполнения одной команды, а группа из 1000 одинаковых команд должна выполняться уже какое-то усредненное время. Т.е., допустим, 2 раза 320нс, один раз 960нс, в 2 раза 320, один 960 и т.д.
Вид для печати
Пример, в первом тесте у тебя такие значения:
MOV (R0),R1 - 5069
MOV (R0)+,R1 - 5085
а во втором:
MOV (R0),R1 - 4797
MOV (R0)+,R1 - 4797
т.е. видно, что в течение одного теста, команды, которые должны выполняться за одинаковое время действительно выполняются за примерно одинаковое (+- несколько команд)
Он их коллекционирует.
---------- Post added at 20:43 ---------- Previous post was at 20:42 ----------
В общем, надо выяснить, почему так колеблется время команд ЦП от запуску к запуску. Не смотря на то, что течение одного теста оно не колеблется, хотя тест периодически перерывается обращением к системе для печати результатов, и ни о какой случайной синхронности речи быть не может.
---------- Post added at 20:46 ---------- Previous post was at 20:43 ----------
В первом тесте вообще время выполнение команд более гладенькое, меньший разброс.
перекидывать на живую машинку долго же ))) (в моём случае), а вот понабивать что-бы клавишки вспомнить и скомпилить било бы "удовольствием" ! )))
Titus, я у себя обязательно прогоню, просто сегодня не планировал УКНЦ врубать - я её тут пару суток мучал по всякому - решил паузу сделать. Не думаю
что там сенсация будет, но для статистики и свои скрины выложу обязательно )))
---------- Post added at 20:47 ---------- Previous post was at 20:46 ----------
и это тоже конечно )))
Нихт гутен. RT-11 по запросам все складывает в буфер и устанавливает флаг разрешения прерывания (в 177564). А уже п/п обработки прерывания опустошает этот буфер. Так что лучше выводить через 177564/177566 в режиме опроса флага готовности без всяких прерываний.
---------- Post added at 21:01 ---------- Previous post was at 21:00 ----------
Господи!!! :o:o:o А там то что можно такое тестировать?
А вот так-то. Попробуй подкопайся, когда нужно управлять и ЦП, и ПП одновременно, при этом честно под системой, при этом в реальном времени меняя условия возникновения прерываний, снятия запросов и т.д.
---------- Post added at 21:08 ---------- Previous post was at 21:07 ----------
Распиши подробно на примере.
Со стороны ЦП:
Канал 0 (приемник, клавиатура) - бит прерываний все время стоит, но если не жать клавишу, то и не помешает.
Канал 0 (источник, терминал) - бит прерываний сбрасывает операционная система, когда опустошиться буфер.
Канал 1 (приемник) - вообще стандартно не используется.
Канал 1 (источник, принтер) - т.к. не используется, то и прерывания запрещены.
Канал 2 (источник) - стандартно драйвер MZ разрешает прерывания после передачи адреса массива параметров. После того как ПП выполнил работу, он читает четвертый байт и возникает прерывание в ЦП. Но т.к. программа уже прочитана, то и прерывания запрещены.
Со стороны ПП все проще - запуск п/п пользователя имеет самый низкий приоритет в диспетчере процессов, так что после того как все обработается (в том числе и вывод на экран), тогда и вызовется подпрограмма.
Так что ничего запрещать не надо, а во время теста просто не жать клавиши.
Эти тайминги (на первый взгляд) один в один совпадают с таймингами ВМ1:
С точностью до такта.Код:R0 (R0) (R0)+ @(R0)+ -(R0) @-(R0) Addr @#Addr @Tab(R0)
Tst 14 29 29 42 30 43 42 42 56
TstB 14 29 29 42 30 43 42 42 56
MTPS 26 35 35 48 35 49 48 48 61
MFPS 14 41 41 54 41 55 54 54 67
XOr 14 43 43 56 44 56 56 56 70
SXt 14 41 41 54 41 55 54 54 67
SwaB 14 41 41 54 41 55 54 54 67
Clr 14 41 41 54 41 55 54 54 67
ClrB 14 41 41 54 41 55 54 54 67
Inc 14 41 41 54 41 55 54 54 67
IncB 14 41 41 54 41 55 54 54 67
Dec 14 41 41 54 41 55 54 54 67
DecB 14 41 41 54 41 55 54 54 67
AdC 14 41 41 54 41 55 54 54 67
AdCB 14 40 40 54 41 55 54 54 67
SbC 14 41 40 54 41 55 54 54 67
SbCB 14 40 41 54 41 55 54 54 67
ASL 14 41 41 54 41 55 54 54 67
ASLB 14 41 41 54 41 55 54 54 67
ASR 14 41 40 54 41 55 54 54 67
ASRB 14 41 41 54 41 55 54 54 67
RoL 14 40 41 54 41 55 54 54 67
RoLB 14 40 40 54 41 55 54 54 67
RoR 14 41 40 54 41 55 54 54 67
RoRB 14 41 41 54 41 55 54 54 67
Com 14 40 41 54 41 55 54 54 67
ComB 14 40 41 54 41 55 54 54 67
Neg 14 41 40 54 41 55 54 54 67
NegB 14 41 41 54 41 55 54 54 67
Jmp 24 26 35 35 35 48
Call 39 40 49 49 49 61
Я еще делаю перед тестом вот это:
KeyOFF: .ASCII <27><91><50><104><128>
Чтобы не реагировал на клавиши пользователя.
---------- Post added at 22:19 ---------- Previous post was at 22:17 ----------
Может быть у них и абсолютно одинаковое ядро, но предвыборка команды в ВМ2 должна влиять. Да и скорость работы памяти надо учитывать. У нас же тест на конкретном железе, с конкретной памятью.
Если команда выполняется ядром быстрее, чем цикл шины "ВВОД" ( а это справедливо для большинства регистровых команд ), то предвыборка влиять не может.
Что же до быстродействия памяти - то да, безусловно.
Потому я и удивился, что число тактов, затрачиваемых на выполнение большинства команд - совпадают в обоих тестах один-в-один.
Например:
http://zx.pk.ru/attachment.php?attac...3&d=1330100573
И ещё там на предыдущем экране - регистровые команды выполнялись за те же 14 тактов, что и в данном тесте ВМ1.Код:R0 (R0) (R0)+ @(R0)+ -(R0) @-(R0) Addr @#Addr @Tab(R0)
Tst 14 29 29 42 30 43 42 42 56
TstB 14 29 29 42 30 43 42 42 56
MTPS 26 35 35 48 35 49 48 48 61
MFPS 14 41 41 54 41 55 54 54 67
XOr 14 43 43 56 44 56 56 56 70
SXt 14 41 41 54 41 55 54 54 67
SwaB 14 41 41 54 41 55 54 54 67
Clr 14 41 41 54 41 55 54 54 67
ClrB 14 41 41 54 41 55 54 54 67
Inc 14 41 41 54 41 55 54 54 67
IncB 14 41 41 54 41 55 54 54 67
Dec 14 41 41 54 41 55 54 54 67
DecB 14 41 41 54 41 55 54 54 67
AdC 14 41 41 54 41 55 54 54 67
AdCB 14 40 40 54 41 55 54 54 67
SbC 14 41 40 54 41 55 54 54 67
SbCB 14 40 41 54 41 55 54 54 67
ASL 14 41 41 54 41 55 54 54 67
ASLB 14 41 41 54 41 55 54 54 67
ASR 14 41 40 54 41 55 54 54 67
ASRB 14 41 41 54 41 55 54 54 67
RoL 14 40 41 54 41 55 54 54 67
RoLB 14 40 40 54 41 55 54 54 67
RoR 14 41 40 54 41 55 54 54 67
RoRB 14 41 41 54 41 55 54 54 67
Com 14 40 41 54 41 55 54 54 67
ComB 14 40 41 54 41 55 54 54 67
Neg 14 41 40 54 41 55 54 54 67
NegB 14 41 41 54 41 55 54 54 67
Jmp 24 26 35 35 35 48
Call 39 40 49 49 49 61
А кем проведен тест ВМ1? На каком железе? Или это теоретический расклад?
И почему это не должна выборка команд влиять на время? Она же не с перекрытием идет в ВМ1.
Вот ветка данного тестирования ВМ1 и Результаты №1 ;Результаты №2.
Интересная особенность процессоров типа ВМ в том, что многие простые команды выполняются ими быстрее, чем заканчивается чтение кода команды из ОЗУ. Понятно, что процессор не может начать выполнять следующую команду, пока на шине не завершился цикл "ВВОД" чтения кода текущей команды, поэтому быстродействие регистровых команд полностью определяется быстродействием памяти. При выполнении нескольких команд типа INC R0 подряд - циклы "ВВОД" идут на шине один за другим без "зазора".
Но для регистровых команд это довольно слабо влияет на быстродействие.
Рассмотрим следующий пример:
На момент начала выборки кода первой команды INC R0 из ОЗУ - и ВМ1, и ВМ2 находятся в абсолютно одинаковой ситуации.Код:JMP Label
Label:
INC R0
INC R0
INC R0
Процессор ВМ1 тратит на выполнение команды INC R0 три такта, начинает выполнять команду за один такт до завершения цикла "ВВОД" и завершает выполнение команды через 2 такта после завершения цикла чтения её кода.
Процессор ВМ2 начинает предвыборку кода следующей команды сразу после завершения выборки текущей, поэтому на команде INC R0 экономия составляет целых 2 такта за команду, что составляет ~15% от общего времени выполнения (при задержке памяти 1000 нс).
Ой, надо подумать) Похоже, я не совсем верные имею представления о ВМ1) Зачем тогда в ВМ2 предвыборка, если в пакетном выполнении время одинаковое с ВМ1?
Процессору ВМ1 предвыборка не была особо нужна. Ведь за время DATI+2 ( на БК и ДВК это обычно 14 тактов ) ВМ1 выполняет почти все регистровые команды.
Но ведь время выполнения команд EIS у ВМ2 наверняка гораздо больше, чем 3 такта, поэтому при чередовании обычных команд с командами EIS - экономия за счёт предвыборки должна быть ощутимой.
Так много букв и никто не сказал: и с ГФ и без платы выпускали ОБА завода.\
Так что давайте на секунду отложим "измерительные приборы" и определимся в чью честь забег (что мы ищем)?
И если у кого-то типа "разогнанные платы", то, было бы оченно недурственно, увидеть ФОТО обеих сторон платы, а то спор уже идёт о цвете хвоста сферического коня в вакууме.... :-(
Сделал, как ты сказал - пропал знак табуляции <9> )))
Теперь думаю, как его сделать)
---------- Post added at 00:32 ---------- Previous post was at 00:29 ----------
У меня разогнанная плата, но не заводом разогнаная, а пользователем.
Могу сфоткать, если желаете.
Давно хотел ее обратно в неразогнанную переделать)
Отдал мне эту УКНЦ, если не ошибаюсь, некий Павел Абрамкин. Может известный в кругах УКНЦ'шников. Он тогда пересел на то ли НЕОН, вот и отдал по просьбе Сотченко Дениса, тоже известного БК-шника.
Titus, Вроде он не божился что заводские. Или я что-то путаю?
Качество мобильное - не обессудьте.
Фотки компа с разогнанным ПП до 8МГц:
http://s001.radikal.ru/i196/1202/69/50e13d2897f6t.jpg
http://s017.radikal.ru/i434/1202/eb/f05f589f16aat.jpg
Обана!!!!!!!!!!!!11
А что это за 5 разъема снизу платы?!?!?!?!?!??!?!?!
И что за куча желто-бало-красных проводков?
Это все для разгона?????
Нет, я, конечно, шучу, но если Вам не трудно, раз уж так МНОГО отличий, не моглм бы Вы рассказать какие отличия для разгона? И работают ли к Вас одновременне КМД и КНЖМД?
Если верить разработчикамт.е. (насколько я понимаю) не время выборки команды, а время выборки адреса. Время же выборки команды гораздо больше.Код:tn - время между выдачей DIN/DOUT и приходом RPLY
Насколько я понимаю, у типовой памяти БК/ДВК/УКНЦ время выборки адреса 250..400 нс, а время выборки команды 600..1000 нс.
В любом случае, если подключить осциллограф или логический анализатор к шине, то (насколько я понимаю) можно заметить, что типовая регистровая команда выполняется процессором ВМ1 на 2 такта дольше, чем цикл чтения шины.
Что и подтверждают многочисленные тесты.
Какая куча?
Там просто припаяны провода к видеоразьему, а так же к другим разьемам, т.к. корпуса с ней не было, и он был в самодельном коробочном корпусе.
КНЖМД у меня нету, а КМД прекрасно работает.
И отличий я НЕ ЗНАЮ, помню, что хозяин бывший говорил, что разогнал и все.