Просто я хочу понять о чем идёт разговор: о сравнении известно как разогнанных плат со стандартными или о том, почему неизвестно как копаные платы ведут себя по скорости по разному и со стандартными их никто и не сравнивает
Вид для печати
Просто я хочу понять о чем идёт разговор: о сравнении известно как разогнанных плат со стандартными или о том, почему неизвестно как копаные платы ведут себя по скорости по разному и со стандартными их никто и не сравнивает
Titus, Можете описать какие именно изменения сделаны для разгона? А от по фото у Вас и клава не так подключена и т.д. На фото такого качества понять что-то сложно
Titus, Сделайте на досуге, если не сложно. Заранее спасибо.
Titus, Дык я еще раз намекаю что на Ваших фотках слишком много отличий ои стандартных плат. Отличить сразу к чему эти отличия имеют отношение - сложно
hobot, Если есть желание поэксперементировать, вот какие есть мысли:
По Вашим слова при загрузке с флопа никаких проблем в работе с HDD нет до тех пор, пока не вступает в дело драйвер WD. То есть и разбивка, и тесты HDD проходят нормально, но при записи (например, init) сразу всё плохо.
Может имеет смысл попробовать вот этот драйвер: http://zx.pk.ru/showpost.php?p=425058&postcount=302.
Вроде как он не подгружает код в ПП, и, если проблема в скорости ПП - может он будет решением.
И попробуйте другой HDD. Если у Вас разогнанный ПП - могут быть ньюансы.
Ночь на дворе уже.
А с утра хорошие мысли приходят. Саму табуляцию делает RT-11, при выводе текста она рассчитывает счетчик позиций в строке, и потом при выводе <9> выводит нужное число пробелов. Два варианта:
1. Заменить в программе табуляции необходимым числом пробелов.
2. Т.к. после вывода RT-11 сбрасывает бит разрешения прерывания, то после вывода строки перед тестом сделать небольшую паузу и дождаться сброса этого бита. В этом случае можно выводить и макросом .TTYOUT.
P.S. А программа довольно короткая. Буфер можно было бы запросить с помощью .SETTOP, тогда программа занимала бы в объеме 7 блоков.Код:MOV #3000,R0
SOB R0,.
1$: BIT #100,@#177564
BNE 1$
:eek_std: ты уверен, что это УКНЦ в обычном её понимании как МС0511)))
:eek_std: вот и я про то же )))
не просто много, это в целом немного другая машинка вроде )))
(не удивлюсь если это аппаратный гибрид в духе EmuStudio, только КЦГД и КГД за кадром остались (на проводках) )))
А зачем переделывать обратно если это такой исторический раритет???
Как написал один из форумчан - обычных плат навалом??? Это же музейная ценность !!! Ни каких переделок обратно !!! Ни в коем случае !!! Её надо клонировать в ноль, сделать схему и отдать грамотному тапологу - чтобы в одно кристальном исполнении сию разработку увековечить - Titus - наверное ещё не поздно оформить патент на себя, хотя услуги патентного бюро нынче дороги )))
[hobot-test-lab] :
2:dk_spb - я отпишу по теме харда чуть позже !
2:Patron, Alex_K : напишу тут, но это по теме моих баг-репортов
с клавиатурой в UKNCBTL и ДВКа-эмуляторе !!! Так вот, если помните,
я ловил залипание при включении на буке режима ДКЛ, в случае
с эмулятором УКНЦ - залипала 11111111 или 5555555 и помогало только
перезапустить эмулятор, в случае с ДВК-эмулятором - я ловил только четыре или два символа в командную строку RT11 - либо 1155 либо 11 либо 55 - вычислил корень зла - драйвер из пакета к буку, а именно драйвер "точ-пада" (и почему так?), в общем после переустановки драйвера эта проблема пока больше не возникала.
Что это за новый термин - "время выборки адреса"? Под этим подразумевается - выставление адреса на шине и началом сигналов DIN/DOUT?
Если под "временем выборки адреса" Вы понимаете время от выдачи адреса на магистраль до начала сигнала DIN/DOUT, то для 1801ВМ1 это время строго тактировано. Для 1801ВМ2 это время зависит от времени между выдачей сигнала SYNC и приходом сигнала AR.
А под "временем выборки команды" понимается время между выставлением DIN/DOUT и выдачей RPLY? В УКНЦ это время на магистрали ЦП может варьироваться от 320 нс до 960 нс, но эта особенность связана с разделением доступа к ОЗУ между процессором и видеоадаптером, в ДВК разделять доступ не с кем, так что там выборка из ОЗУ зависит от типа применяемого контроллера (1801ВП1-013, 1801ВП1-030 или 1801ВП1-119).
Так вот надо подключить и практически посмотреть.
А как с помощью программных тестов вычислить время выполнения команды без учета ее выборки из памяти?
Зачем нужна пауза, если сразу можно ожидать сброса бита?
я про .SETTOP ничего не знал, поэтому делал напрямую)
---------- Post added at 12:50 ---------- Previous post was at 12:47 ----------
Ну ты фантазер) Это ОБЫЧНАЯ плата, неподдавайся на провокации тех, кто не может мысленно подставить вместо проводков разьемы)
Плюс небольшая переделка под турбо ПП пятью проводками.
Это у тебя навалом, а у меня только одна еще УКНЦ, кроме нее.
Это один из тех случаев, когда я сам не до конца понимаю смысл слов. Знаю лишь, что термин "время выборки адреса" самый обычный ( и по моим иллюзорным представлениям - означает время между установлением DIN/DOUT и приходом REPLY ), т.е. именно то, что разработчики ВМ1 называют tn.
Попробуем сделать это вместе :)
Проанализируем результаты теста
Понятно, что каждый раз, когда адрес источника находится не в регистре, а должен быть загружен из памяти - процесс выполнения команды увеличивается на один цикл чтения, а продолжителность команды увеличивается на продолжительность цикла чтения + накладные расходы.Код: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
Рассмотрим эти прибавки:
Самая небольшая прибавка была тогда, когда смещение к исполнительному адресу находилось сразу после кода команды. В этом случае дополнительный цикл чтения добавил всего 13 тактов. Логично предположить, что увеличенная прибавка к продолжительности команды в остальных случаях происходила за счёт накладных расходов.Код:TST R0 -> TST (R0) = + 15 T
TST (R0) -> TST x(R0) = + 13 T
TST x(R0) -> TST @x(R0) = + 14 T
А раз так, то и значение 13 тактов может включать накладные расходы ( вероятнее всего - от 0 до 1 такта ). Что означает продолжительность цикла чтения от 12 до 13 тактов.
Регистровые команды выполняются процессором ВМ1 за 14 тактов. Процессор получает сигнал готовности данных за 2 такта до завершения цикла чтения, поэтому логично предположить, что считанная команда начинает выполняться за 1 такт до завершения цикла чтения.
Из описания процессора ВМ3 известно, что при наличии кода команды в буфере предвыборки - регистровые команды выполняются им за 3 такта ( декодирование - исполнение - установка признаков ).
Похоже, что такая ситуация характерна для всех процессоров серии ВМ.
...
Результаты тестов ВМ2, в которых время выполнения (в тактах) регистровых команд типа INC R0, команд типа TST (R0) и команд типа INC (R0) совпало у ВМ1 и ВМ2 с точностью до такта - также наводит на мысль, что "алгоритмическая добавка" при выполнении таких команд процессором ВМ1 невелика - иначе ВМ2 сильно выигрывал бы за счёт предвыборки.
---------- Post added at 12:00 ---------- Previous post was at 11:57 ----------
Пауза не нужна.
Если посмотреть доку к ВМ2, где приведены примеры таймингов при разных, но очень быстрых скоростях памяти, то станет видно, что тайминги совсем другие:
http://s018.radikal.ru/i511/1202/e4/885d22c44a66.jpg
1. Ресет выведен на внешнюю кнопку.
2. Магнитофонный вход удален.
3. На оба разъема Видео допаяны проводки и какая-то еще фигня.
4. Питание и +/-12В выведены вниз на разъем/проводки.
5. Клавиатура выведена вниз на разъем/проводки.
6. Добавлен разъем на одно из гнезд расширения.
7. Добавлен проводок от гнезда расширения куда-то на проц (куда - плохо понятно).
8. Вместо перемычек задающих скорость Стыка С2 впаяны гнезда (и вставлены проволочки). Скорость не такая как задается перемычками по умолчанию.
Теперь по поводу МГТФ перемычек - я встречаю большую часть таких соплей постоянно и что-то мне сомнительно что они относятся к разгону. Вот у меня лежит дохлая плата (добитая мной) на которой такие же сопли (только с другой стороны платы) в наличии. В общем - качественные фото сомнительных узлов снимут все вопросы.
Здесь главную роль играет малое время t1/t2, характерное скорее для ПЗУ.
Там при t2 = 2T команда INC (R0) выполняется за 28 тактов.
А по результатам тестирования в реальном ОЗУ - за 40 тактов.
http://zx.pk.ru/attachment.php?attac...3&d=1330100573
Вот и прикиньте - сколько тактов занимает "время памяти" ( ещё один залихватский темин ) в реальном ОЗУ.
Если это время между установлением DIN/DOUT и приходом RPLY, то это уж никак не время выборки адреса. Этот термин здесь не применим. Это время реакции внешнего устройства на команды чтения/записи. Т.к. быстродействие разных устройств разное, то время разное. Все остальные времена (выставление адреса, установка SYNC, установка DIN/DOUT после снятия адреса, снятие SYNC,DIN/DOUT после прихода RPLY) у 1801ВМ1 строго тактированы. Поэтому если под tn разработчики подразумевают время между выставлением DIN/DOUT и приходом RPLY, то во время 8T входит и выставление адреса, и снятие SYNC и DIN/DOUT после RPLY, ну и соответственно дешифрация и исполнение команды.
Все времена в адресном обмене можно узнать из подробной документации, ну а там и вычислить время на дешифрацию и исполнение.
---------- Post added at 13:24 ---------- Previous post was at 13:19 ----------
Кстати у 1801ВМ2 входная тактовая частота CLCI делится на два, и многие внутренние схемы в процессоре работают уже на частоте CLCO. Поэтому если рассматривать с точки зрения CLCO, то регистровые команды выполняются за четыре такта с учетом выборки из быстрой памяти, т.е. если после исполнения команды, следующая уже находится в конвеере.
И еще на счет таймингов.
Когда-то, когда только писал процессор ВМ2, раскладывал для себя теоретически, как должен работать процессор, чтобы тайминги совпали с теми, что в доке. Получились примерно такие записи. Разложилось весьма хорошо, хотя и не факт, что достоверно:
Код:Timing Legend:
Число циклов обращения к памяти может быть только четным, а также
число циклов выполнение команды может быть только четным, поскольку
синхронизируется относительно CLKO (CLKI/2).
Запись для времени < 1T [1..2T]:
12/15 [12/15] тактов:
4 - выдача адреса на шину
1/3 - подготовка данных (зависит от метода адресации)
5 [6] - удержание данных на шине
1 - особождение шины и снятие запросов
Чтение для времени < 1T [1..2T]:
8 [10] тактов:
4 - выдача адреса на шину
3 [5] - чтение данных
1 - особождение шины и снятие запросов
Чтение-модификация-запись для времени < 1T [1..2T]:
18 [20?] тактов:
4 - выдача адреса на шину
3 [5] - чтение данных
4 - калькуляция и выдача данных шину (может быть больше, если это необходимо)
5 [6] - удержание данных на шине
1 - особождение шины и снятие запросов
Безадресное чтение:
4 такта?
Разложение времени выполнение команд на примерах, взятых из описания 1801ВМ2,
для времени памяти < 1T [1..2T]
ALU/MOV rn,rn - 8 [10]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<= 8 - выполнение фунцкии ALU (целиком перекрывается)
CLR (Rn) - 20 [22]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<=8 - подготовка адресного указателя (и данных?) для записи (целиком перекрывается)
12 - запись результата в память
INC (Rn) - 26 [28]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<=8 - подготовка адресного указателя (целиком перекрывается)
18 [18?] - цикл чтениь-модификация-запись
<=4 - ALU (целиком перекрывается)
MOV Rn,(Rn) - 20 [22]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<=8 - подготовка адресного указателя и данных для записи (целиком перекрывается)
12 - запись результата в память
MOV (Rn),(Rn) - 34 [38]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<=8 - подготовка адресного указателя и данных для чтения (целиком перекрывается)
8 [10] - чтение данных из памяти
6? - подготовка адресного указателя (и данных?) для записи
12 - запись результата в память
OR (Rn),(Rn) - 38 [42]
8 [10] - чтение из памяти следующего слова команды в буфер CRB
<=8 - подготовка адресного указателя и данных для чтения (целиком перекрывается)
8 [10] - чтение данных из памяти
4? - подготовка адресного указателя для записи
18 [18?] - цикл чтениь-модификация-запись
<=4 - ALU (целиком перекрывается)
mov #nnnn,r0 - 20 [22?]
8 [10] - чтение из памяти следующего слова команды в буфер DRB
4? - ALU? или, что вероятнее подготовка пререкэширования
8 [10?] - чтение из памяти следующего слова команды в буфер CRB
Об том и речь. Цикл чтения включает синхронные (строго тактированные) и асинхронные части. Насколько я понял из проведённых осциллографических исследований (весьма далёких от идеала) все синхронные части цикла чтения у ВМ1 занимают в сумме 6 тактов.
Т.е. на первый взгляд - можно было бы уточнить пресловутую формулу 8T + tn как ( 6T + tn ) + 2T. Но дело в том, что время между выставлением DIN/DOUT и приходом RPLY - это не единственный асинхронный участок цикла DATI, поэтому (по большому счёту) пресловутая формула 8T + tn вообще лишена смыслового содержания.
---------- Post added at 12:42 ---------- Previous post was at 12:31 ----------
Я свои наивные мысли по этому вопросу начал даже излагать в специальной теме.
Если осциллографическое исследование 1801ВМ1 продолжится - выложу там полученные графики циклов шины, типа такого:
http://s1.hostingkartinok.com/upload...579b5071d9.png
Ладно, выложу еще результаты измерений с более древней УКНЦ. Схемы нет, но она не подпадает ни под "КВАНТ", ни под "СЭМЗ", но ближе конечно к "КВАНТ". Видно, что ПП работает этак такта на четыре побыстрее.
Продолжение.
Фото маркировки, фото платы без подсветки, фото платы с подсветкой.
Сорри за качество - фото с мобильника.
Я уже упоминал, что в разных модификациях по разному сделана задержка сигнала AR после выдачи SYNC.
У "КВАНТ" она проходит через два элемента ИЛИ с конденсатором между ними и через 1801ВП1-055.
У "СЭМЗ" через двойной каскад двух элементов ИЛИ с конденсатором между ними. Итого четыре элемента и два конденсатора.
да супер плата !!! Положение ЦП другое и вроде полная в смысле С2+преобразователь???
так вот на этой машинке сейчас сижу:
Скрытый текст
вот эта в сторонку отложена:
Скрытый текст
Схемы на эту раннюю у меня нет. Но это и не важно, задержка, сделанная на логике и конденсаторах, не обладает прецизионной точностью, так что результаты могут разнится у разных экземпляров одной схемотехники и одного завода.
А по поводу разных машин - я вижу, что эту тему просматривают товарищи, обладающие реальными УКНЦ различных модификаций, только вот что-то результаты тестов они не выкладывают.
Переделал тест команд ЦП.
Теперь перед тестом каждой команды:
1. Ожидается запрещение прерываний от источника-0 ЦП (говорит нам о том, что все символы отправлены терминалу)
2. Сохраняется регистр состояния приемника-0 ЦП, и запрещаются прерывания от приемника-0 ЦП (чтобы не мешали нажатия клавиш)
3. Сам тест
4. Восстанавливается регистр состояния приемника-0 ЦП
Попробуйте на реале, может перестанет плавать скорость команд ЦП от запуска к запуску.
Ну вот результаты на древней УКНЦ. Первая часть.
Древняя УКНЦ. Вторая часть.
Слушай, по-моему перестало плавать!