Интересно было бы узнать про конфигурацию памяти.
ВМ3 работает на плате PDP-2018? Статическая память? Сколько циклов занимает чтение слова?
М8 имеет на борту кеш, основная память тоже на борту PDP-2018?
Интересно было бы узнать про конфигурацию памяти.
ВМ3 работает на плате PDP-2018? Статическая память? Сколько циклов занимает чтение слова?
М8 имеет на борту кеш, основная память тоже на борту PDP-2018?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
И ВМ3 и J-11 используют одну и ту же статическую память.
Но для ВМ3 она на той же плате и работают они от одного и того же тактового генератора 20 МГц, только для ВМ3 делится на 4.
А для J-11 это внешняя плата, тактовый генератор тот же - 20 МГц
Я сделал модуль ОЗУ-ПЗУ из 1201.2018 - на плате нет процессора и изменена прошивка.
Но вот конфигурация немного отличается. Сказать с ходу, сколько тактов занимает чтение слова (для J-11?) - не могу, модуль писался из принципа - что бы заработало, пока никакой оптимизации. Но могу предположить, что чтение - скорее всего 2 такта на 20 МГц
- - - Добавлено - - -
Конфигурация прошивки
- - - Добавлено - - -
Посмотрел код. После прилёта DIN или DOUT - RPLY прилетит на следующем такте.
Но вот оценить - сколько всё продлится от выдачи SYNC - не могу...
- - - Добавлено - - -
То есть на плате с ВМ3 как только прилетает DIN или DOUT - сразу RPLY
А на J-11 - после прилёта DIN или DOUT - задержка RPLY на один 20 МГц-овый такт
Судя по тому, что я наблюдал (разные показали скорости скорости сложения регистр - память в SPEED) - кэш играет свою роль.
Возможно, там как раз плата стартует с выключенной или включённой кэш памятью.
Вот только как это делается - я пока не понимаю.
Способ, который я знаю - выставить бит cache bypass в регистре управления кэшом.
Но он сбрасывается при выполнении команды RESET
Она выполняется, когда входишь в код ПЗУ из MicroODT
Можно, конечно, попробовать его выставить уже из ПЗУ и потом загрузиться, но пройдёт ли такой фокус - с ходу не скажу.
По хорошему, надо сделать как в KDJ-11E - полностью отказаться от кэша, но учитывая, что на процессоре есть вход MISS L (промах кэша) - нужно, что бы на нём всегда висела единица.
- - - Добавлено - - -
Вдогонку.
Судя по документации - если пришёл сигнал MISS L, J-11 увеличивает длительность цикла шины минимум в два раза (то есть из кэша цикл - 4 такт, промах - и уже минимум 8 тактов, даже если RPLY прилетит раньше), ну и дальше шаг 2 такта
Последний раз редактировалось Hunta; 12.04.2020 в 17:12.
Я правильно понимаю что это такты 10МГц? Число микроциклов не увеличивается, просто растягивается цикл внешнего обращения к шине.
Поэтому просто поделить 10/4 и сказать что J-11 работает на 2.5МГц не совсем корректно.
С ВМ3 ситуация другая, там частота внешней шины и ядра одинаковые. В ВМ3 добавили отдельный сумматор на PC+2 и, учитывая предварительный декодер команд, эта штука стала тратить всего 2 такта на операции регистр-регистр, узким местом стала внешняя шина (и ВМ3 очень не помешал бы внутренний кеш). Вот и любопытно, насколько удачно это решено в J-11. Кстати, а сколько тактов занимает обращение ВМ3 к статической памяти платы 2018? Интересно было бы увидеть собственно на процессоре.
Нет, это такты 20 МГц (на стороне памяти). То есть разборки с адресом, ожидание DIN (DOUT) - и вот тут не понятно сколько, а как только прилете DIN(DOUT) - задержка на один такт 20 МГц - и выдача RPLY. Без задержки не работало (видимо данные не успевали устаканиваться, но я думаю попробовать по спаду клока).
Насчёт 2.5 МГц - безусловно - не совсем корректно, но думаю можно сказать, что это его макс частота на чтение. Кроме чтения (из памяти!) с попаданием в кэш и nop-операции (проц не работает с шиной, у него внутренние дела) - вроде все остальные операции идут растянутым циклом - то есть минимум 8 клоков.
Но и 1600 операций сложения на регистр-регистр - это тоже как бы макс скорость ВМ3Что тоже не совсем корректно
Как только прилетает DIN(DOUT) - выдаётся RPLY без задержки. Насколько я помню, это даже не тактируется клокомПамять выбрана, DIN(DOOT) прилетел - логическим выражением выдаётся RPLY - то есть только внутри CPLD-шные задержки, а она 10 нс. Микрухи памяти - 45 нс.
Я могу снять диаграммы, но это уже скорее всего в следующие выходные![]()
Почему? 3 такта на инструкцию у ВМ3 - это реально наблюдалось
Сравним ВМ3 5 МГц и J11 на 10 МГц, рег-рег, без ветвлений и с идеальными доступом к памяти:
1801ВМ3@5MHz - 3 такта на инструкцию (из них один такт ядро простаивает) - 600нс/инструкция
J11@10MHz 10- 4 такта на инструкцию (попали в кеш) - 400нс/инструкция
Итого - на штатных частотах ВМ3 проиграл, потому что медленная шина. Но если J11 лишить кеша, то ситуация может и поменяться
А ядра у них на этих частотах одинаковые 2такта/инструкция и 4такта/инструкция дают одинаковые 2.5MIPS.
SignalTap втыкнуть, должно все сразу все показать.
hobot(12.04.2020)
Я не про то, что наблюдалось или не наблюдалось (знаю, что наблюдалось), я про то, что, как и в случае с 4 тактами у J-11 - это скорее редкость, чем правило
Фокус в том, что именно лишить (та же быстрая память, которая БУДЕТ успевать работать со скоростью J-11), а не запретить. Потому как если кэш запретить - будут растянутые циклы по 8 тактов, когда J-11 ждёт якобы медленную память (а она та же самая, что и у ВМ3, то есть отнюдь не медленная). То есть по сути мы просто искусственно затормозим в два раза чтение из памяти для J-11, а ВМ3 будет работать на полной. Думаю, это неправильно
- - - Добавлено - - -
Сигналтап - да, но у меня с сигналтапом только FPGA на мультиконтроллере, а там мало ячеек. Надо специально тест нарисовать. Попробую.
- - - Добавлено - - -
Результат генерации на (почти) 15 МГц
15 МГц:
18:59:36
15:28:47
03:30:49
10 МГц:
19:16:26
14:35:43
04:40:43
Против времени ВМ3
15:59:13
09:49:43
06:09:30
intRAMReply_L <= SYNTHESIZED_WIRE_x207 or (intDIN_L and intDOUT_L);
Думаю, RPLY снимается быстро
Попробовал сделать задержку с RPLY по спаду клока
Было
СталоКод:.RUN LD:SPEED ТЕСТ БЫСТРОДЕЙСТВИЯ КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 528 КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 424 КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 136 КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336 .
- - - Добавлено - - -Код:.RUN LD:SPEED ТЕСТ БЫСТРОДЕЙСТВИЯ КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 560 КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 432 КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 136 КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 352 .
Ну.. на скорости копирования в ноль не сильно сказалось - 1:53 против 1:55
- - - Добавлено - - -
Щас погоняю ещё J-11 на предмет устойчивости - и попробую глянуть сигналтапом
На данный момент наиболее интересно сколько реально тактов тратит на цикл шины ВМ3, это ключевой момент.
J11 считаем, в-основном, попадает в кеш. Тогда мы как-то сможем оценить уже проделанные тесты по генерации системы.
- - - Добавлено - - -
Нет, там именно была очень жесткая времянка между снятием DIN и анализом RPLY внутри процессора. 50нс задержки оказалось много.
Вот мой пост по теме.
Последний раз редактировалось Vslav; 12.04.2020 в 19:07.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)