Просмотр полной версии : Цифровая археология: 1801 и все-все-все
Страницы :
1
2
3
4
5
6
7
8
9
10
[
11]
Посмотрел внимательнее на фотки. Получается, LSI-11 сразу рассчитана на РА и ПЗ, разница только в том, воткнули ли в нее третью БИС микрокода, ту, где РА и ПЗ, или нет. А наша М1 тоже была просто без запаянной 581РУ3, или как? В смысле, припаяй ее в посадочное гнездо, и превратишь ЦП М1 в ЦП М2? Или это была отдельная разводка?
А то ведь ещё и LSI-11/23 в доках есть. Известный как PDP-11/23Кстати, фоток LSI-11 и 11/2 в Сети навалом, а вот 11/23 найти не удалось. М6, которая с нее содрана, есть, а вот оригинала не нашел...
11/23 найти не удалось.
Ой, да ладно! (http://www.KpXX.Ru/DEC/PDP-11/Hardware/KDF11-A/LSI-11(23.jpg)
Точно надо все мои платы перефоткать
А двух м/с не хватает - это некомплект? Или допустимый вариант поставки?
- - - Добавлено - - -
Точно надо все мои платы перефоткатьКстати, да. В хорошем качестве и в высоком разрешении.
А двух м/с не хватает - это некомплект? Или допустимый вариант поставки?
Так то просто сборки с микрокодом. Поставка в зависимости от задач у пользователя.
А двух м/с не хватает - это некомплект? Или допустимый вариант поставки?
Плата начинает работать, если стоит микросборка процессора (на фото - наверху)
Хочешь ДП - вставляешь микросхему ДП (на фото - внизу)
Хочешь FPP - вставляешь микросборку FPP (на фото - нет)
Хочешь CIS - снимаешь FPP и вставляешь микросборку CIS (на фото - нет)
То есть, FPP и CIS одновременно воткнуть нельзя? А для чего тогда еще одно гнездо?
FPP и CIS одновременно воткнуть нельзя?
Гнёзд не хватит.
А для чего тогда еще одно гнездо?
Если вместо FPP воткнуто CIS
- - - Добавлено - - -
Но никто не мешает использовать KDF11-B ака PDP-11/23+ (http://www.KpXX.Ru/DEC/PDP-11/Hardware/KDF11-B/KDF11-B-Front.JPG)
Как я понял, на этом фото снизу вверх сначала ДП, потом ЦП, потом микрокод FPP и самое верхнее широкое чудо о шести чипах - это тот самый CIS, да?
Угу. Вот поэтому и два посадочных места
Гнёзд не хватит.
В FPGA хватит, лишь бы ты CIS вычитал.
PS. Выскажусь по теме :) - в схеме 1811ВМ1 осталось 523 транзистора нарисовать, из бывших ~7900.
В FPGA хватит, лишь бы ты CIS вычитал.
Да это понятно :)
Я очень постараюсь :)
в схеме 1811ВМ1 осталось 523 транзистора нарисовать
И тогда останутся 1801ВМ3 и J11 :)
ПОнятно. Как я понял, наши содрать CIS не успели, да? А вон та сборка из четырех чипов, что стоит на нашем М6 - это, как я понял, ЦП + FPP. Так вот: это наше творчество, или в оригинале тоже такое было?
Как я понял, наши содрать CIS не успели, да?
У меня впечатление - а чего там сдирать то? Микрухи - типа ПЗУ, то есть вычитать и сделать по аналогии с тем же FPP
в оригинале тоже такое было?
Мне не попадалось, скорее всего наше творчество. Хотя оно как бы сам просилось
Не все так однозначно со считывалкой microm от F11, так просто stm32 не втыкнуть. Там по некоторым входам минимальное входное напряжение высокого уровня составляет +3.4 вольта, надо делать 5-вольтовый буфер, а по тактовому входу вообще +10.8, старая технология - это тактовый внутри идет прямо на затворы транзисторов. Придется 170АП3 снова ставить.
А на процессорных платах микросборки тоже таким высоким напряжением запитаны?..
А на процессорных платах микросборки тоже таким высоким напряжением запитаны?..
Да, на процессорной плате М6 стоит 170АП4 для формирования тактового сигнала, и на KDF11 тоже спец буфер TTL-2-MOS - DEC9643 на тактовом сигнале стоит.
- - - Добавлено - - -
Вот схема первого предварительного варианта считывалки F11:
https://www.1801bm1.com/files/images/reader1811.pdf
Да, на KDF11-A нашёл :) А на KDF11-B, видимо, какие то аналоги. Из мелкого там - UC9636ATC и UC9637ATC - но судя по тому, что они рядом с серийными портами - это скорее всего к ним что то относится, а ещё рядом с кварцем - MMH0026 CP1, а с другой стороны от микросборок - 16028-01. Больше восьминожек нету...
MMH0026 Эта и есть заморская к170ап3
На хабре статься по цифровому рентгену появилась:
https://habr.com/ru/post/549870/#habracut
Предлагают бесплатный доступ к оборудованию, разрешение порядка 10-15 микрон.
Если у кого есть 581ВЕ1 - можно поехать посмотреть что внутри, разрешения хватит понять сколько там кристаллов и как они расположены.
по тактовому входу вообще +10.8, старая технология - это тактовый внутри идет прямо на затворы транзисторов. Придется 170АП3 снова ставить.
Мне рассказывали, что с соответствием с прототипом у 170АП3 были проблемы - она должна формировать фронты определенной длительности, т.к. по фронту формируются тактовые фазы при определенных напряжениях по ходу фронта. Компараторы там используются внутри микропроцессора или просто полевики с разным пороговым напряжением - не знаю. (и сколько фаз формируется - то же не знаю).
Как Вы думаете этот "момент" моделировать ?
На счет 581ВМ1 - попробую выяснить у причастных.
Vasily_A
07.04.2021, 16:28
по рентгену - на любом предприятии, что БГА монтирует, есть рентген хороший, там все видно... у нас есть, но я в Калуге. Если передадут, сделаю красивые фото :)
кривой вариант (зато есть везде) - у зубного врача можно снять :). Давно, когда рентгеновского томографа еще не было, я так делал...
https://www.1801bm1.com/files/images/reader_1811.png
Мда, не очень примитивная считывалка выходит. Буду готовить герберы и заказывать.
А куда она считанное будет выдавать?
А куда она считанное будет выдавать?
В PC по UART через преобразователь TTL->USB-COM, до 921600 Бод. Ну если очень много данных будет (не будет, я весь перебор/верификацию внутри stm32 на Си напишу, там того РОМ/ПЛМ кот наплакал), то на SD-карту запишет.
В PC по UART через преобразователь TTL->USB-COM,
Угу, так и подумал
Отослал платы считывалки на изготовление, два типа двухслойных плат по 5шт - в сумме $9, плюс $12 доставка, недорого, в-общем.
А почему два типа?
Одна основная, а вторая - переходник для напайки 1811ВУх, не захотел возиться трассировкой, да и микросхемы три штуки - ВУ1/ВУ2/ВУ3, не хочу перепаивать на одно и то же место несколько раз. А в составе МК1 процессор может мешаться, тоже не хочу разбираться.
А в составе МК1 процессор может мешаться, тоже не хочу разбираться
А, понятно :)
Закончен реверс 1801ВП1-034 (https://github.com/1801BM1/k1801/tree/master/034)
Выложены топологии, схема, сделано описание, выполнено моделирование, в дополнение к автогенерированным написаны "нормальные" Верилог модели.
Закончен реверс 1801ВП1-033 (https://github.com/1801BM1/k1801/tree/master/033)
Возни с такой многорежимной микросхемой, конечно, много. По факту это 3-в-1, надо готовить три симуляции, разбираться и документировать три режима, продираясь через многочисленные опечатки с номерами битов и режимами инверсии. Вроде бы все удалось уточнить и исправить.
Теперь можно спокойно продолжить реверс 1811.
У DEC, оказывается была кучка ревизий микросхем F11 (Fonz), причем всего - процессора, управляющего чипа и MMU.
Поскольку на МК1 работает плавающая точка то соответствие серии 1811 оригиналам, как минимум, такое (или более позднее ревизии от DEC):
KH1811BM1 = DEC DC302 – 21-15541-AB Data Chip (16-bit ALU etc)
KH1811BУ1 = DEC DC303 – 23-001C7-AA standard instruction set
KH1811BУ2 = DEC DC303 – 23-002C7-AA FP instruction set Part 1
KH1811BУ3 = DEC DC303 – 23-003C7-AA FP instruction set Part 2
KH1811BT1 = DEC DC304 - 21-15542-01 - MMU
У меня есть оригинальные DEC-овские чипы, состояние правда не очень, но часть можно будет попробовать прочитать чтобы выяснить точнее с чего именно драли 1811.
У меня есть в доступе с дюжену МК1 ред1 и ред3 если нужно считать микрокод то надо плату считывалки.
У меня есть в доступе с дюжену МК1 ред1 и ред3 если нужно считать микрокод то надо плату считывалки.
МК1 Ред1 и Ред3, и микросхемы 1811 россыпью и у меня есть. Интерес представляют оригинальные дековские модули.
Плат считывалки заказано 5 штук, две уже расписано куда поедут, одна останется у меня, свободны еще две. Но я думаю, что они будут переезжать по мере появления желающих почитать новые еще нечитанные чипы.
Интерес представляют оригинальные дековские модули.
У меня их некоторое количество, в течении дня соберу инфу - какие есть.
Извиняюсь, меня тут озадачили предложением работы, так что не получилось за один день собрать, но теперь срисовал со всех
303D 23-001C7 AA 570000001A1
302F 21-15541AB
303D 23-001C7 AA 570000001A1
302H 21-15541-AB
303E 23-002C7 AA 570000101A1
303E 23-003C7 AA
KDF11-A
304E 21-1554201
303D 23-001C7 AA 570000001A1
302? 21-15541A?
303D 23-002C7 AA 570000101A1
303E 23-003C7 AA
KDF11-A
304E 21-1554201
303D 23-001C7 AA 57-00000-01
302F 21-15541AB
303D 23-002C7 AA 57-00000-00
303D 23-003C7 AA
KDF11-B
304E 21-15542-01
303E 23-001C7-AA 570000001A1
302H 21-15541-AB
303E 23-002C7-AA 570000101A1
303E 23-003C7-AA
303E 23-008C7-AA 5700006B1
303E 23-009C7-AA
303E 23-105C7-AA
303E 23-106C7-AA
303E 23-107C7-AA
303E 23-204C7-AA
Некоторый прогресс по реверсу DEC F-11/КН1811
- написан верилог для 1811ВУ1 (предположительно 23-001C7-AA)
- из схемы вытащено содержимое ROM и PLM
- выложено в промежуточной ветке cou11/next
Следующие планируемые шаги:
- написать тестбенч для чтения ВУ1 и промоделировать в ModelSim
- перенести полученный алгоритм чтения на stm32
- спаять и запустить читалку
- произвести сверку ROM полученного из схемы с прочитанным из реальной микросхемы
(интересно, сколько косяков, сверка планировалась изначально, поэтому матрица не перепроверялась глазами супер-тщательно)
- запустить софт на базе ESPRESSO и получить уравнения для ПЛМ-части, посмотрим насколько похоже на правду
Прочитался ROM из 1811ВУ1 и проведена сверка со значениями вытащенными из схемы. В схеме матрицы найдено всего 6 ошибок (что очень круто для почти 9К транзисторов), подтверждено фотографией кристалла (то есть ошиблись когда топологию по фотографии перерисовывали). Теперь надо вычитывать матрицу PLA и матрицу модификации адресов, там объемы данных побольше будут - до 32 мегабайт надо будет скачивать на PC для последующего анализа. Читалка, конечно, весьма нетривиальная вышла, функции чтения сложные и непрямые.
//__________________________________________________ ___________________________
//
int read_ac(unsigned int addr, unsigned int data, int na)
{
int ret;
set_clk(1);
set_rst(0);
set_ezn(0);
set_ad(NOT_USED_PLA);
set_mi(NANO_CMD_LD);
ena_mi(1);
wait_ck();
set_clk(0); // jump to non-existing chip
set_mi(NOT_USED_CHIP << 6); // to reset AXT and CS
wait_ck();
set_clk(1);
set_mi(NANO_CMD_NOP);
wait_ck();
if (get_cs())
{
dbg_printf("\r\nread_mi: no CS deassert after selection non-used chip");
return -1;
}
set_clk(0);
set_mi((sel_cs << 6) | 0x10 | (addr_ta & 0xF) | ((addr & 0x200) ? 0 : 0x20));
wait_ck();
set_clk(1);
set_mi(NANO_CMD_AXT);
wait_ck();
set_clk(0);
set_mi(DUMMY_MI | 0x30);
wait_ck();
set_clk(1);
set_ad(addr);
set_mi(NANO_CMD_AXT);
wait_ck();
set_clk(0);
set_mi(DUMMY_MI);
wait_ck();
if (na)
{
set_clk(1);
set_ad(data);
set_mi(NANO_CMD_LD);
wait_ck();
set_clk(0);
set_mi(DUMMY_MI);
wait_ck();
}
set_clk(1);
set_ezn(1);
set_ad(data);
set_mi((NANO_CMD_LD & ~0x400) | (na ? 0 : 0x400));
wait_ck();
ena_mi(0);
set_clk(0);
wait_ck();
wait_ck();
wait_ck();
wait_ck();
ret = get_mi();
set_ezn(0);
set_clk(1);
ena_mi(1);
wait_ck();
// if (na && (ret ^ addr) & 0x200) // RNI (next address == 0) resets AXT
// dbg_printf("\r\nread_mi: AXT address bit mismatch %03X", addr);
if (na)
{
if ((ret & 0xFC00) != 0xFC00)
dbg_printf("\r\nread_mi: invalid high address %04X", ret);
ret &= 0x1FF;
}
return ret;
}
то есть ошиблись когда топологию по фотографии перерисовывали
В Воронеже ошиблись???? Скопировали неверно?
В Воронеже ошиблись???? Скопировали неверно?
Нет, мы ошиблись, когда обрисовывали фотографию. На 9К транзисторов, которые рисуются руками - такое вполне вероятно.
Vslav, разрешите поинтересоваться как у самого грамотного - сколько нс при 4 Мгц ( или тактов ) 1801ВМ1А отстоит перепад уровня +5в.--->0в. сигнала SYNC до перепада сигнала DIN с +5в. до 0в. при обычном цикле чтения МПИ ?
https://pic.maxiol.com/thumbs2/1623505640.531453114.syncdin.jpg (https://pic.maxiol.com/?v=1623505640.531453114.syncdin.jpg&dp=2)
Параметр "Т ?" ориентировочно полтакта.
Если теоретически, то все описано в документации, ничего нового я не скажу:
"По срезу Т2 на выходе nSYNC формируется активный низкий уровень. По фронту Т2 выставленный адрес снимается с шины и выводы nAD переводятся в высокоимпедансное состояние, также выставляется активный низкий уровень на линии nDIN, далее микропроцессор переходит в состояние ожидания данных и сигнала подтверждения nRPLY от ведомого устройства." То есть, интервал зависит от длительности низкого уровня тактовой частоты.
Практика подтверждает, вот одно из моих старых сообщений (https://zx-pk.ru/threads/11557-testy-vm1.html?p=591796#post591796).
Если надо еще точнее - то берется двухканальный осциллограф и измеряется на конкретной системе, для конкретного экземпляра процессора.
то берется двухканальный осциллограф и измеряется на конкретной системе
Измерил осликом на БК11М 4 мгц цикл чтения ПЗУ, 1 большая клеточка ослика - 200 нс.
https://pic.maxiol.com/thumbs2/1623594313.531452124.11.jpg (https://pic.maxiol.com/?v=1623594313.531452124.11.jpg&dp=2)
И на 6 мгц :
https://pic.maxiol.com/thumbs2/1623594423.531452124.116.jpg (https://pic.maxiol.com/?v=1623594423.531452124.116.jpg&dp=2)
Сигналы сверху - вниз :
CLC М1801ВМ1А
SYNC
DIN
RPLY
Да, все правильно:
https://www.1801bm1.com/files/images/vm1_sync_din.png
От тактового события (фронт или срез) на входе CLC до видимой реакции на выходах проходит какое-то время, пока событие распространится по внутренним цепям. Зависит от экземпляра, температуры, напряжения питания и нагрузки на выходах. Тут мы видим примерно 80нс. nSYNC-у, кстати не очень хорошо, по ходу на нем здоровая емкость висит.
Добрый день, Vslav!
Где то мне попадалось, но не могу вспомнить где, и самое главное, не уверен, про какой процессор..
Посмотрел по проектам но с ходу что то не нашёл, возможно, ты быстрей подскажешь.
Вопрос.
Нет ли у 581 (LSI-11) проца такой особенности, как работоспособность встроенного ODT только при наличии ОЗУ. Хотя бы по адресу 0. ??
Возможно, мне это про 1811 (F11) попадалось...
Вечером попробую стенд собрать, но не уверен, будет ли время...
Нет ли у 581 (LSI-11) проца такой особенности, как работоспособность встроенного ODT только при наличии ОЗУ. Хотя бы по адресу 0. ??
Да вроде нет, ODT должен работать и без внешнего ОЗУ. Возможно там проблема с регенерацией из ODT, которая просто чтением делается.
В смысле - ODT периодически сам делает регенерацию, читая ОЗУ? Или я не так понял?..
В смысле - ODT периодически сам делает регенерацию, читая ОЗУ? Или я не так понял?..
Там есть хитрый аппаратный обработчик запросов на регенерацию.
По определенным локациям в Microm, если есть запрос на регенерацию, то происходит аппаратное ветвление (ну, типа прерывания, только без сохранения контекста). И ODT через такую локацию ходит, и если поступают запросы на регенерацию - то они обслуживаются. Не напрямую ODT, но процедура регенерации через аппаратное ветвление вызывается.
А, понятно, спасибо!
Точнее - про отсутствие ОЗУ пока не понятно, но по крайне мере понятно - при чём тут регенерация и ODT :)
Ок, вечером всё таки попробую поиграться с разными платами процессоров в отсутствии ОЗУ. Кто то у меня точно отказывался работать... Жалко, LSI-11 пока не запустилась, точнее - я пока с ней особо и не ковырялся. Но, учитывая уарт четырёхпортовку - можно будет попробовать второй подход с снаряду..
Память упорно царапает про F11, но... Не доверяю я ей щас :)
1811ВУ2 (91MB) (https://www.1801bm1.com/files/retro/1811/images/1811vu2.jpg)
1811ВУ3 (78MB) (https://www.1801bm1.com/files/retro/1811/images/1811vu3.jpg)
Действительно красота.
Несколько вопросов.
1. Поскольку процедура чтения отработана, черные ляпы, местами встречающиеся на поверхности, безразличны?
2. А откуда эти ляпы? Мне казалось, что в кузове "керамика-металл" кристалл не залит пластиком? А ведь эти ВУ-шки - две из четырех мелких металло-керамических игрушек на одной керамической пластине, или как?
3. Как я понимаю, две широких вертикальных полосы по краям кристалла - это "периферия", которая у обеих ВУ-шек должна быть одинаковой, а разница между ними в прошивке, которая занимает три горизонтальных полосы в средней части кристалла, примерно половина его площади?
И еще, как я понимаю, ФПГА-шек, в которые влезет полный F-11 и при этом пригодных для ручного монтажа паяльником, в природе не существует - все они в кузовах BGA. А, поэтому, прости-прощай мечта о заказанной у китайцев двусторонней "половинке" ДВК/Э-60 с ФПГА, SDRAM и кучкой 531АП2 на борту, куда прошит ЦП М6 с полной памятью и консольным DLV-11. На "половинке"-то оно поместится без вопросов, только, ИМХО, для такого дела даже 4 слоев мало, надо 6-8, а это будет сильно дорого...
1. Поскольку процедура чтения отработана, черные ляпы, местами встречающиеся на поверхности, безразличны?
Они и без процедуры чтения безразличны, обычно понятно что под ними, да и вторая фотография шлифованной диффузии покрывает затененные области.
2. А откуда эти ляпы? Мне казалось, что в кузове "керамика-металл" кристалл не залит пластиком? А ведь эти ВУ-шки - две из четырех мелких металло-керамических игрушек на одной керамической пластине, или как?
Я думаю что в данном случае это опилки от вскрытия корпуса дремелем. Я, правда, прохожусь магнитом и еще обдуваю кристалл сжатым воздухом, но что-то остается. И еще заводские дефекты верхнего слоя стекла бывают. У меня есть ВУ-шки отдельные, непаянные, поэтому я думал снимать не придется. Но ВУ2 оказалась партия с очень темным "закопченным" стеклом, нижележащие слои вообще не видно, поэтому снял одну ВУ2 с расколотого керамического МК1 (на фотографии видно что фотомаска на поликремнии зеленая - просто другая партия ВУ2, 1988 года).
3. Как я понимаю, две широких вертикальных полосы по краям кристалла - это "периферия", которая у обеих ВУ-шек должна быть одинаковой,
Не совсем так, справа-слева есть еще матрицы декодирования команд PDP-11 (все ВУх обрабатывают свой набор команд), матрицы выбора кристалла (у всех ВУx разный адрес выборки CS), и матрицы модификации спец-адресов. Их можно ухитриться вычитать, но алгоритм сложный, я сделал фотографии для контроля.
а разница между ними в прошивке, которая занимает три горизонтальных полосы в средней части кристалла, примерно половина его площади?
Даже, наверное, 80 процентов транзисторов в этих центральных матрицах.
И еще, как я понимаю, ФПГА-шек, в которые влезет полный F-11 и при этом пригодных для ручного монтажа паяльником, в природе не существует
Существуют, в обычный циклон EP4CE10 должно влезть, ну в EP4CE22 точно.
А, поэтому, прости-прощай мечта о заказанной у китайцев двусторонней "половинке" ДВК/Э-60 с ФПГА
Мне Личитанг нравится для такой поделки - $19 за модуль с FPGA и 32-bit@200MHz SDRAM внутри + очень простая внешняя 2-х-слойная платка.
2. А откуда эти ляпы? Мне казалось, что в кузове "керамика-металл" кристалл не залит пластиком?
Когда вскрываются корпуса, внутрь летят как опилки, так и микроскопический мусор из комнаты (а может и с самого вскрывающего). Для удаления прополоскать в изопропиловом спирте несколько раз, со сменой жидкости.
Но ВУ2 оказалась партия с очень темным "закопченным" стеклом
Это происки технологов из Воронежа))) На КР581ВА1 тоже вся поверхность кристалла "зернистая" и ничего не видно ниже слоя металла.
https://www.1801bm1.com/files/images/vm88a.jpg
1810ВМ88А (128MB) (https://www.1801bm1.com/files/retro/1810/1810vm88a.jpg) тоже хорошо получился. Квазар, 1988 год.
1801ВМ88А (128MB) тоже хорошо получился. Квазар, 1988 год.
Может быть 1810ВМ88?
Может быть 1810ВМ88?
Ага :)
Ага
Бывает) После многолетнего романа с со всей семейкой 1801) Но это лучше, чем назвать жену именем любовницы)
чем назвать жену именем любовницы)
Моя жена знает, что каждые 5 лет в айти приводят к одному психическому расстройству. А у меня их уже скоро 7 :)
что каждые 5 лет в айти приводят к одному психическому расстройству. А у меня их уже скоро 7
7 лет? или 7 раз по 5 лет ;-)
Моя жена знает, что каждые 5 лет в айти приводят к одному психическому расстройству.
Это к какому же?
7 лет? или 7 раз по 5 лет ;-)
7x5 :)
- - - Добавлено - - -
Это к какому же?
А это у всех по-разному - индивидуально :)
И они с нескрываемым удовольствием стали меряться количеством и глубиной заслуженных ими психических расстройств ;-)
Считывалка F11 уже умеет работать с модулями
(когда несколько MiCROM с разными CS на одном носителе):
https://www.1801bm1.com/files/images/read_mk1.jpg
Процеcсор 1811ВМ1 пришлось снять, он мешал чтению.
На импортных сборках запрет шин процессорного чипа вообще наружу не выходит,
поэтому сборки с процессором без его снятия прочитать не получится.
Сборки только с микросхемами MicROM (FPP, CIS - без процессора) - вполне.
У меня импортный модуль есть только очень гнилой, вся медь в труху,
даже не пытался прочитать. 1811ВУ1-ВУ3 вполне прочитаны.
Сделал надежный протокол (с повторами, контрольными суммами)
чтения многомегабайтных матриц и запись из в hex-файл на хосте.
Пересобрал Espresso-AB (p-term logic minimizer), проанализировал
матрицу модификации адреса в ВУ1 (в ВУ2/ВУ3 они не откликаются
но по фотографии кристалла видно что они там есть и такие же точно,
видимо микропрограмма там этой возможностью (матрица хорошо анализирует
методы адресации) не пользуется. Результирующая матрица (прочитана
как 512 килобайт сырых данных на хост, преобразована во входной
формат Espresso и затем получены уравнения) совпала с вытащенной
из фотографии, заодно пару ошибок в Верилоге поправлено.
//__________________________________________________ ____________________________
//
// The results of reading Next Address matrix from physical chip (cs=00)
// and following ESPRESSO AB minimization
//
// na d[15:0] dcop na_xxx
//
// 111 0000-00001------ 1000 1 111 na_clr[3]
// 111 0000100--------- 1000 1 111
//
// --- -1-0000---000--- 0100 4,2 xxx na_clr[2]
// --- --01000---000--- 0100 4,2 xxx
// --- -01-000---000--- 0100 4,2 xxx
// -11 1000110-0-000--- 0100 4,0 111
// -11 -0001100--000--- 0100 4,0 111
// -11 -000110--1000--- 0100 4,0 111
// -11 -000101---000--- 0100 4,0 111
// -11 01110-----000--- 0100 4,0 111
// -11 0111-00---000--- 0100 4,0 111
// -11 0---000011000--- 0100 4,0 111
// -00 ----------000--- 0100 4 x00
//
// --- -1-0000--------- 0010 3,2 xxx na_clr[1]
// --- --01000--------- 0010 3,2 xxx
// --- -01-000--------- 0010 3,2 xxx
// 1-1 1000110-0------- 0010 0 111
// 1-1 -0001100-------- 0010 0 111
// 1-1 -000110--1------ 0010 0 111
// 1-1 -000101--------- 0010 0 111
// 1-1 01110----------- 0010 0 111
// 1-1 0111-00--------- 0010 0 111
// 1-1 0---000011------ 0010 0 111
//
// --- -1-0------------ 0001 3 xxx na_clr[0]
// --- --01------------ 0001 3 xxx
// --- -01------------- 0001 3 xxx
//
С матрицами основного PLA посложнее, они на 23 входа, и 25 выходов,
всего 32 мегабайта сырых данных, Espresso уже три дня думает над первой,
Еще немного подожду и наверное напишу разбор по Клейну-МакКласки сам,
вероятно будет быстрее. Пока полной ясности насколько верно читается,
записывается на хост и там конвертится, нет. Алгоритмы чтения MiCROM/PLA F11
очень нетривиальные, приходится прикидываться процессором,
подсовывать команды jump/conditional jump, плюс выдавать достаточно
сложные нанокоманды.
MicROM прочитаны со всех ВУ1/2/3, для 1811ВУ1 совпадение с вытащенным из схемы,
для ВУ2/ВУ3 пока нет фотографии диффузии и самой схемы, неоткуда вытаскивать.
Пока полной ясности насколько верно читается, записывается на хост и там конвертится
Что то где то не дописано?
Что то где то не дописано?
Там две матрицы в совмещенной области - ROM и PLA. По ROM все хорошо, ВУ1 готов,
полностью совпадает прочитанное с чипа и распознанное по кристаллу. По PLA пока неясно,
Espresso третий день думает, нет уравнений на выходе, не с чем сравнить.
В принципе, уравнения можно и не получать, там есть функция сравнения
матриц. Можно мои уравнения, которые я вытащил из схемы ВУ1, превратить
в матрицу (это быстро) и потом сравнить с прочитанным. Если оно инвариантно
совпадает, то прочитано и распознано верно.
Но в схеме могут быть ошибки, например по области ROM нашли шесть ошибок
распознавания, так было запланировано - рисуем матрицу не напрягаясь, потом
сравниваем с физически прочитанным эталоном и исправляем немногие ожидаемые
ошибки. В ROM ошибки искать легко, в PLA уже не так весело. А матрицы эти
совмещены физически на кристалле - строки перемежаются, а столбцы вообще
общие на обе матрицы (но у каждой к ним подключен свой блок транзисторов,
коды разные).
Нет, я не про то - фраза так звучит, как будто где то НЕ пропущено и возможно, что то в фразе не дописано.
Про матрицы то понятно :)
я столбцы - наверно, всё таки не ты столбцы, а А столбцы :):)
Нет, я не про то - фраза так звучит, как будто где то НЕ пропущено и возможно, что то в фразе не дописано.
Да, не хватало ", нет" в конце :)
Аха, вот теперь всё логично :)
Свет вырубили, упса не хватило. Теперь еще минимум три дня ждать :(
- - - Добавлено - - -
Аха, вот теперь всё логично :)
После окончания работы с матрицами PLA первый экземпляр считывалки
сначала поедет к anasana, там мы прочтем оригинальные FPP от DEC,
и заодно посмотрим насколько получится запустить считывалку с
удаленными консультациями, устраним подводные камни. После этого
она поедет к тебе. Ты можешь начинать искать хороший преобразователь
USB<->UART 3.3V. Потому что матрицы здоровые, 32 мегабайта и так 20 минут
вычитываются на 921600. Если будет галимый кетаец, то, скорее всего придется,
снижать скорость. У меня точно FTDI-оригинал, работает стабильно, кетайцы же
страдают потерей и искажениями данных даже на 230400.
Ты можешь начинать искать хороший преобразователь USB<->UART 3.3V.
Хм.. Ок, понял. У меня такой есть, вроде как нормальный, но - китайский и проверялся только на 115200.
Буду попробовать поискать, но есть так же мысль как попробовать проверить и его на больших скоростях..
Года 3-4 назад я купил на Али кучку конвертеров USB <-> UART на чипе CH340G. Безукоризненно, в том числе и на больших скоростях. Не считая того, что, по слухам, несколько этих свистулек под одной виндой не работают - сам я больше одной свистульки в писюк не толкал.
Года 3-4 назад я купил на Али кучку конвертеров USB <-> UART на чипе CH340G
О, спасибо, напомнил, тоже их, если я не ошибаюсь, прикупил несколько штук. Надо будет достать и попробовать
Вот такой маршрут извлечения данных из MiCROM F11:
https://www.1801bm1.com/files/images/workflow.png
Reader, MLOG, VLIST (https://github.com/1801BM1/cpu11/tree/next/xen/tools/vlist), MCODE (https://github.com/1801BM1/cpu11/tree/next/xen/tools/mcode) - разработанные мной утилиты.
Написал процедуры верификации и теперь прочитанная PLA из 1811ВУ1 совпадает с распознанной по фотографии.
По ходу еще три неверно распознанных транзистора удалил. Теперь Верилог матрицы получен из двух источников -
прочитан физически и распознан по фотографии. Для ВУ2/ВУ3 можно пройти так же. Для чипов которые не будут
вскрываться нужно вот то что на сером фоне (Квейн-МакКласки) - это конвертор бинарной таблицы в уравнения
(почти Верилог), делается старым кодом Espresso (который три дня думает и результата не дает), наверное буду
писать свою утилиту, но позже. Сейчас модель 1811ВУ1 готова, можно переходить к 1811ВМ1.
Круть :)
Ты в исходники MCODE посмотри :)
Там вычисление матриц с использованием SSE/AVX2.
8 миллионов состояний генерируется и верифицируется за 250мс на одном ядре старенького Haswell.
С такой базой уже можно и самому Квейна-МакКласки-Петрика писать и не ждать
три дня пока древний Espressо раздуплится :)
Сделать виртуалку на Xeon-е (12 ядер, 3.33 ГГц и дать доступ? :)
Сделать виртуалку на Xeon-е (12 ядер, 3.33 ГГц и дать доступ? :)
Не нужно, если хасвелл не справится, то рассмотрим CUDA :)
Сейчас перевожу на Верилог схему M6/M8186/KDF-11Ax и вижу что там предоставляется доступ к регистрам MMU и PSW со стороны внешней шины. Были ли реальные внешние устройства которые могли хотя бы читать PSW/MMU? Потому что в KDF-11Bx чтение регистров со стороны шины уже, похоже, недоступно.
Процессоры с MMU придется представлять с дополнительной ведомой шиной, как это было с 1801ВМ1 - там тоже были регистры внутренней периферии - таймер и прочее.
Были ли реальные внешние устройства которые могли хотя бы читать PSW/MMU?
Насколько я помню читаемое, вроде, в младших моделях Unibus процессоров, по крайне мере PSW, был доступен по ПДП.
По поводу регистров ДП - не помню, возможно и не попадалось.
Использовалось ли это реально в каком то девайсе - вот тут ничего не скажу.
Потому что в KDF-11Bx чтение регистров со стороны шины уже, похоже, недоступно.
Несколько странно, так как процессор то один и тот же. И по сути вопрос - как поведёт себя процессор (а не плата на его основе), если устройство ПДП выставит адрес его внутреннего регистра.
Надо будет попробовать поэкспериментировать с этим через мультиконтроллер :) С разными процессорами и процессорными платами :)
Несколько странно, так как процессор то один и тот же.
На KDF-11B навертели памяти и SLU, и, оказывается, мелких отличий тоже хватает.
Доступ к MMU/PSW со стороны внешней шины на KDF-11A сделан маскируемым - BS7 поступит на CPU/MMU только если оба бита регистра расширения адреса ODT единичные. То есть, даже на KDF-11A внешний доступ вызывает вопросы, микропрограмма может им управлять.
На KDF-11B навертели памяти и SLU,
Ну, SLU - да, а памяти чего то я там (кроме ROM) не видел
оба бита регистра расширения адреса ODT единичные
Это что то внутри-процессорное - регистр расширения адреса ODT ?
Это что то внутри-процессорное - регистр расширения адреса ODT ?
Да, микропрограмма использует его чтобы обращаться к адресам за пределами 64К.
В-общем, отбой, обнаружил что DIN/DOUT работают только на выход, читать PSW/MMU с внешней шины на KDF11A не получится.
внешние устройства которые могли хотя бы читать PSW/MMU
а как это может быть полезно ? для чего это может быть нужно ? может для ремонта компьютера ?
- - - Добавлено - - -
микропрограмма использует его чтобы обращаться к адресам за пределами 64К
может, изучив внутреннюю структуру F-11, стало понятно - почему его OTD работает только с 18 разрядами, памяти, а не с 22 ?
а как это может быть полезно ? для чего это может быть нужно ? может для ремонта компьютера ?
Причём здесь эти вопросы, когда речь идёт о создании точной реплики процессора?
а как это может быть полезно ? для чего это может быть нужно ? может для ремонта компьютера ?-
Для потенциальной трансляции виртуальных адресов в физические на стороне устройства.
Допустим у нас есть операционная система использующая MMU, какой-то очень умный дисковый контроллер, и его регистры отмаплены напрямую в адресное пространство непривилегированной задачи. Задача хочет записать блок данных из своего какого-то буфера на диск, и просто засылает виртуальный (а другого у задачи нет) адрес своего буфера и другие параметры прямо в регистры контроллера (которые ей доступны). Контроллер непосредственно после старта команды по DMA читает текущие настройки MMU (которые соответствуют контексту задачи) и пересчитывает виртуальный адрес адресного пространства задачи в физический, после чего по DMA выполняет запрошенную операцию. Преимущество - для ввода-вывода не привлекается операционная система, все происходит быстро, но нужен продвинутый контроллер :). Так сейчас современные контроллеры работают по SR-IOV, например, можно отмапить виртуальную копию PCIe устройства в виртуальную машину, и все родные драйверы внутри нее будут работать как поверх физического устройства, не привлекая гипервизор вообще. Но эта история явно не для тех времен.
Vslav, в данном сценарии
Контроллер непосредственно после старта команды по DMA читает текущие настройки MMU (которые соответствуют контексту задачи)
программе и контроллеру должно достаточно сильно свести, так как существует ненулевая вероятность того, в промежутке между стартом операции в контроллере и его обращении к регистрам ДП что то поменяется - биты в PSW (их, кстати, тоже придётся считывать) или содержимое регистров ДП (то есть он будет уже указывать на на АП программы, которая запустила операцию). Маленькая, конечно, но не нулевая
программе и контроллеру должно достаточно сильно свести
Я специально подчеркнул - "Контроллер непосредственно после старта команды".
То есть - задача пишет команду в регистр, контроллер сразу забирает шину и читает MMU, которое в данный момент содержит контекст задачи. Прерывания для потенциальной передиспетчеризации задачи, при котором MMU будет перезаписано, может даже не начаться. Не говоря уже о том, что пока ОС начнет менять контекст MMU должно исполнится некоторое количество кода.
Но это для тех времен все чисто умозрительно.
Я специально подчеркнул - "Контроллер непосредственно после старта команды".
То есть - задача пишет команду в регистр, контроллер сразу забирает шину
И тем не менее. Тут мы полагаемся на то, что процессор СРАЗУ отдаст шину. Я не берусь утверждать наверняка (надо вдумчиво почитать доку и поэкспериментировать), но в J11 есть настройка PMG count (по крайне мере KDJ11-B в ПЗУ есть доступ к этой настройке - но на что она реально действует - пока не скажу):
This parameter has a range of 0 to 7, and it determines the value of the PMG counter in the BCSR. When a 0 is selected, the counter is disabled. The counter enabled the KDJ11-B to supress DMA requests and make the processor the busmaster during the next DMA arbitration cycle after the cunter overflows.
Ну и кроме того, процессор - арбитр мастера шины - эээ.. по умолчанию, так что ли сказать. Никто не запрещает сделать своего арбитра шины - и тогда выше приведённый сценарий становится совсем непредсказуемым :) Да, этот сценарий тоже из разряда - минимально возможный, но тем не менее :)
Допустим у нас есть операционная система использующая MMU, какой-то очень умный дисковый контроллер
По моему Вы пишите о какой-то другой машине - не PDP-11 и о какой-то неизвестной пока ОС.
Что насчет 22 разрядов и OTD в F-11 ?
А никто не подскажет чем тестировать ("заводские тесты" или фирменная диагностика от DEC) FPP на F11?
Тесты процессора и MMU есть и anasana даже перевел сканы в компилируемые исходники (за что ему отдельное спасибо).
А вот чем тестировать FPP (микропрограмму в ВУ2/ВУ3) пока неясно. Мануал на KDF11A говорит что FPP там совместимый с FP11-A (11/34), FP11-C (11/45, 11/55, 11/70) и FP11-E (11/60). На FP11-C бинарники тестов и сканы исходников найдены все, на FP11-E есть бинарники, но нет части сканов. Пока склоняюсь к использованию тестов от FP11-C. Интересно, что идет в комплекте с Э85 для тестирования FPP?
Так вроде есть родные - JKDC и JKDD
- - - Добавлено - - -
Родные - в смысле - для F11
- - - Добавлено - - -
Вдогонку - листинги тоже есть, где то с месяц-полтора назад мучал F11 на PDP-2011 - гонял все тесты, включая FPP - как раз на FPP налетел (ЕМНИП, что на PDP-11/24) на небольшое расхождение
Так вроде есть родные - JKDC и JKDD
Родные - в смысле - для F11
Спасибо! Пропустил как-то я их в базе данных по диагностике.
Пропустил как-то я их в базе данных по диагностике
Ну, я собрал все найденные тесты у себя в одно место и начал сортировать. А когда начал гонять тесты на PDP-2011 - ещё и документацию стал подтягивать туда же :)
Я тут (http://retrocmp.com/tools/pdp-11-diagnostic-database/202-pdp-11-diagnostics-database) смотрю, все уже давно энтузиастами собрано и выложено. Но я искал FP11, а надо было KEF-11 или 11/23, или в Diagnostic Handbook заглянуть.
Я знаю этот сайт, но предпочитаю иметь всё под рукой :)
Vslav - не отвечать на вопросы - не вежливо.
Vslav - не отвечать на вопросы - не вежливо.
Я оставлю за собой право отвечать на вопросы которые:
a) мне интересны
b) я знаю точный ответ
OK?
Вы так и не ответили. Какой из вариантов ?
может, изучив внутреннюю структуру F-11, стало понятно - почему его OTD работает только с 18 разрядами, памяти, а не с 22 ?Что такое OTD ?
не правильно написал, конечно же имел ввиду - ODT.
ODT F-11 превосходно работает с 22 разрядами. Проверено на Э-85. Возможно, оно как-то дурит на Э-60.1 (ЦП М6) из-за того, что она бывает как с 18-разрядным адресом, так и с 22-разрядным. Допустим, кто-то неправильно сигналит о разрядности шины адреса...
Проверено на Э-85
и на ней - только 18 разрядов. ODT - внутри процессора, микропрограммно. "сигналов" о "разрядности шины" не требует поэтому воспринять не может.
У меня имеется некоторая документация по э-60. Тест команд к примеру в формате распечатанного листинга. Это может как то вам помочь? Или если нужно могу поискать что-то чего нет в интернете.
Так это... я же сканировал :)
https://media.discordapp.net/attachments/660577089119846411/884523861478088714/unknown.png
https://cdn.discordapp.com/attachments/660577089119846411/884525792770535545/unknown.png
Тут (https://zx-pk.ru/threads/22429-chto-za-evm-elektronika-ms0108.html?p=1053719&viewfull=1#post1053719)
- - - Добавлено - - -
Да, понимаю. С бумажки вбивать никому не понравится. Но оно хотя бы есть.
Плюс наверное можно и распознавалку текста натравить....
ODT F-11 превосходно работает с 22 разрядами. Проверено на Э-85.
Я бегло просмотрел схему и почитал техническое описание модуля НС1, он отличается от KDF-11 (M6). Похоже, там нет регистра адреса ODT, по HALT процессор уходит на ПЗУ. Если я ничего не пропустил то Э85 не использует микропрограммный ODT, а вместо него некоторый аналог в ПЗУ.
- - - Добавлено - - -
Так это... я же сканировал :)
Тестовая программа "Диагностика ..." - это не ODT. "Octal Debug Tool" в F11 - реализована как часть микропрограммы в микросхеме DC303E – 23-001C7-AA (1811ВУ1), места там мало остается после реализации BIS/EIS/исключений/прерываний, поэтому возможности ODT очень скромные. MMU из ODT пользоваться нельзя, так как это вызывает обращения на шине, влияет на регистры MMU, и негде сохранять текущий контекст. Поэтому при работе ODT блокируется MMU, и вместо него используется отдельный 2-битный регистр для формирования старших разрядов адреса. 22-бита из ODT F11 не поддерживаются, скорее всего, потому что не хватило места в Microm для полноценного обновления начальной 18-битной версии.
- - - Добавлено - - -
и на ней - только 18 разрядов.
В Э-85 полноценная 22-битная адресная шина. Может быть таки начнете читать документацию вместо риторического вопрошания?
и на ней - только 18 разрядов. ODTЕсли не врет мой склероз, ODT у F-11 вообще 16-разрядная, но работает с виртуальным адресом через диспетчер памяти. Обычно, в кернелмоде, но можно попросить переключиться в юзермоду и назад. А работа с большими физическими адресами, ИМХО, это наша фенечка, реализованная в теневой UDT ВМ3-го, (1801РЕ2-134). Зато у нее нет возможностей работы через диспетчер памяти. И только теневая ODT в 1801РЕ2-377 имеет полноценную работу со всеми тремя типами адресов - физическим 22-разрядным и двумя вирткальными = в Kernelmode и в Usermode.
Поэтому при работе ODT блокируется MMU, и вместо него используется отдельный 2-битный регистр для формирования старших разрядов адреса. 22-бита из ODT F11 не поддерживаются, скорее всего, потому что не хватило места в Microm для полноценного обновления начальной 18-битной версии.
не надо путать поддержку процессора 22-х разрядов и работу его встроенного ODT c 22-мя разрядами. Раз для формирования адресов старше 16-ти разрядов при работе ODT используется только 2-битый регистр, то становится ясно, что поддерживается только 18 разрядов.
Возможно, что сначала DEC делала F-11 18-ти разрядным. Ведь в то время еще, наверное, не было микросхем динамического ОЗУ большой емкости, да и контроллеров с прямым доступом 22-х разрядных - Т11, для MSCP, появился раньше или позже, чем F-11 ?
Или, просто архитектура кристаллов F-11 никак не позволяла, например, реализовать этот регистр для ODT не 2-х разрядным, а 6-ти ? (вопрос к Vslav, который разобрался в устройстве F-11 вплоть до транзисторов).
Vslav, а ты смотрел техническое руководство про Professional 300? Они там в пятой главе в описании вроде как забрались на микроуровень...
- - - Добавлено - - -
Полистал документацию на процессорные модули KDF11-A и KDF11-B. В описании microODT подчёркивается, что он использует 18-ти битный адрес. А в документацией на Pro300 наткнулся на интересное предложение:
This feature is called microcode on-line debugging technique (Micro-ODT). Micro-ODT accepts 16-bit addresses, allowing it to access 56 kilobytes of memory plus the 8 kilobyte I/O page.
И ещё более явное:
5.4.14.5 Address Specification - The Professional 300 series Micro-ODT accepts 16-bit addresses, allowing it to access 56 kilobytes of memory plus the 8 kilobyte I/O Page. Addresses 000000 through 157776 correspond to the first 56 Kilobytes of physical memory. Addresses 160000 through 177776 correspond to the I/O page (physical locations 17760000 through 17777776). If an address with more than 16 bits is specified, only the 16 least significant bits are used.
- - - Добавлено - - -
И ещё есть отличие (между описаниями microODT для LSI-11/23 23+ и Pro300)
LSI-11/23:
"H" caused th LSI-11/23 to execute microcode routine that, in effect, does nothing
"H" caused th LSI-11/23 to echo the "H" and print a prompt character rathers than a "?", which is the invalid character response. No other operation is performed
Pro300:
H (ASCII 110) HaIt
The H command asserts a HALT request to the processor and corresponds to the HALT switch on other PDP-II consoles. Each time the H command is typed, an internal halt request flip-flop is toggled. On entering ODT, the halt request flip-flop is cleared (not asserting a halt request). Typing the H toggles the flip-flop and asserts a halt request. Typing the H again resets the flip-flop and clears the halt request. This allows the user to single step through this code. To single step, the H command should be used to assert a halt request to the processor. Then, each time the P command is typed, one instruction is executed. When single stepping is no longer wanted, type the H command followed by one more P command.
. А в документацией на Pro300 наткнулся на интересное предложение:
This feature is called microcode on-line debugging technique (Micro-ODT). Micro-ODT accepts 16-bit addresses, allowing it to access 56 kilobytes of memory plus the 8 kilobyte I/O page.
Значит там точно нет даже 2-х битного регистра расширения физического адреса для транзакций ODT.
If an address with more than 16 bits is specified, only the 16 least significant bits are used.
Микрокод никто не менял, он по-прежнему может получить с консоли 6 полных цифр адреса (с 2-7 в старшей цифре), но старшие два бита проигнорируются - нет регистра.
с переводом машины в OTD - понятно, он по-разному реализован в Машинах с Qbus и Pro.
А, вот почему OTD в Pro - 16, разрядов, а в Qbus-машинах - 18, пока не понятно.
Интересно было бы на живых машинах реально попробовать этот момент. Попрошу Anasana проверить на Э-85 и Pro-350.
Надеюсь кто-нибудь проверит на PDP-11/23 и М6.
Pro300:
H (ASCII 110) HaIt
The H command asserts a HALT request to the processor and corresponds to the HALT switch on other PDP-II consoles.
Я вижу два возможных варианта:
- на Э85 два отладчика - один во внешнем ROM, программный, второй в MiCROM - микропрограммный.
- есть какая-то опция микрокода F11, запись в какой-то внешний триггер по 'H', выход которого выдается на линию HALT, возможно этот триггер не реализован в KDF-11.
Значит там точно нет даже 2-х битного регистра расширения физического адреса для транзакций ODT
этот регистр на плате или внутри процессора ? Если на плате - то как (по какому адресу) к нему обращается процессор ? И почему его тогда не сделали бОльшей разрядности ?
Еще вопрос : ODT в F11 совсем без памяти работает ?
- - - Добавлено - - -
в 85й машине при входе в ODT дешифратор адреса внешних устройств переключается в другой режим. ODT работет через порт принтера, естественно по адресам 177560..., а в нормальной работе порт принтера имеет другой адрес.
этот регистр на плате или внутри процессора ?
На плате. Отдельная микросхема типа 531ТМ2 (или другой регистр).
Если на плате - то как (по какому адресу) к нему обращается процессор ?
Ни по какому. Запись происходит с разрядов AD0 и AD1 в специальном микроцикле, когда бит 3 в управляющем микрослове (не микрокоманде) равен 0.
И почему его тогда не сделали бОльшей разрядности ?
Я не знаю. Возможно, сначала написали микрокод под 18 разрядов и потом не смогли/не захотели расширять до 22.
Еще вопрос : ODT в F11 совсем без памяти работает ?
Разумеется, ODT предназначен в том числе и для диагностики машин с отказом памяти.
в 85й машине при входе в ODT дешифратор адреса внешних устройств переключается в другой режим. ODT работет через порт принтера, естественно по адресам 177560..., а в нормальной работе порт принтера имеет другой адрес.
Запись происходит с разрядов AD0 и AD1 в специальном микроцикл
вот в этом и причина - процессор может передать только 2 разряда. В 85й, наверное - нет этого регистра и поэтому - только 16, но интересно - как ODT на 85й реагирует на обращение куда-нибудь в 250000 ? Может, просто открывает 150000 ?
Запись происходит с разрядов AD0 и AD1 в специальном микроцикле
А другие разряды тоже выдаются или только эти два?
- - - Добавлено - - -
В 85й, наверное
Гадать, может, не надо - есть схемы.
Кстати, народ утверждает, что ODT в М6 - 22-ух разрядный. Пока не могу проверить - у меня стенды несколько разобранные недели на две, скорее всего...
вот в этом и причина - процессор может передать только 2 разряда.
Неверно, тут нет никаких аппаратных ограничений. Шина AD - 16-ти разрядная, то есть, передать можно до 16 разрядов.
Также можно поставить сколько угодно регистров и расширить адрес до любых значений.
Но 22-битный адрес требует уже 8 цифр, надо переписывать консольный ввод-вывод адресов и прочее.
Поэтому основное ограничение тут - микрокод.
Микрокод никто не менял, он по-прежнему может получить с консоли 7 цифр адреса
Ну это понятно - Воронеж драл один а один.
Не 7 - 6-ти цифр достаточно :)
- - - Добавлено - - -
Шина AD - 16-ти разрядная, то есть, передать можно до 16 разрядов.
Аха, так и думал, ответ на мой вопрос есть :)
А другие разряды тоже выдаются или только эти два?
Судя по схемам М6/M8186 (он же KDF11Ax) - выдаются только два.
Гадать, может, не надо - есть схемы.
Стопудово, гадать не надо :) Я полностью схему M6/M8186 перерисовал в электронном виде (https://www.1801bm1.com/files/retro/DVK/sch/), сверяя по советской синьке и оригиналу от DECa. Схемы идентичны за исключением непринципиальных мелочей. Поэтому микросхемы поставил советские, но поименовал большинство цепей оригинальными дековскими названиями.
Кстати, народ утверждает, что ODT в М6 - 22-ух разрядный. Пока не могу проверить - у меня стенды несколько разобранные недели на две, скорее всего...
Утверждать можно, но регистр расширения адреса 6-битным не станет. TM2 никак не станет TM9 и микрокод в ROM перепрошивке не подлежит :)
Судя по схемам М6/M8186 (он же KDF11Ax) - выдаются только два.
Нет, я имел ввиду, что из процессора выходит полное слово, а уж сколько там потом бит из него и какие используются - это уже другой вопрос
Утверждать можно, но регистр расширения адреса 6-битным не станет.
Скажем так - на тот момент у меня только в памяти царапало, что в доках попадалось про 18-ти битный адрес, но тогда мне было лениво искать в доках или проверять :) Поэтому на тот момент я забил :) Ну а тут, поскольку пошло весёлое обсуждение... Залез в доки :) Посмотреть в живую пока не могу, но что то мне подсказывает, что после посмотреть - неожиданных открытий не будет :)
Нет, я имел ввиду, что из процессора выходит полное слово, а уж сколько там потом бит из него и какие используются - это уже другой вопрос
Я пока не знаю - надо реверсить микрокод, до этого пока руки не дошли. Более того, неизвестна система микрокоманд, придется придумывать мнемоники и восстанавливать бинарный код по схемам.
Но, судя по документации, ODT может брать с консоли только 6 цифр адреса, поэтому высокая вероятность что поддержки 22-битного адреса в микрокоде ODT нет вообще.
Но, судя по документации, ODT может брать с консоли только 6 цифр адреса
Понятно.. Ну ок, постараюсь стенды побыстрее собрать опять и глянуть в живую на обеих вариантах KDF и на М6
интересно, а машина Unibus PDP-11/24 сколько разрядов шины адреса имеет ?
А документацию прям никак? 22
интересно, а машина Unibus PDP-11/24 сколько разрядов шины адреса имеет ?
Вы меня извините, за 8 лет на форуме у меня в списке игнорирования всего один человек - но подобные вопросы, задаваемые в заметном количестве, меня сильно искушают список пополнить. Может быть, Вы попытаетесь хотя бы минутку погуглить перед вопрошанием? Я понимаю, бывают новички, совсем не в теме, не грех им подсказать, нормально - корона не упадет. Но Ваш вопрос ...
вопрос: люди делают "самодельные PDP-11" и возникает вопрос по схеме "сброса" процессоров (сигналы аварии питания и сетевого питания).
Я когда-то, используя платы 1201, взял один разъем под гребенку, припаял кнопку и один конденсатор (на аварию питания) обошелся только этим.
Как внутри микропроцессоров, которые уже изучены, устроена эта цепь ?
http://www.nedopc.org/forum/download/file.php?id=9772
Немного научно-познавательной информации на пальцах)
https://www.youtube.com/watch?v=lHptVT-tS-Y
CodeMaster
17.10.2021, 14:25
Titus, 3D-кристаллы на время спасут ситуацию. Правда, возникает проблема с охлаждением.
Titus, 3D-кристаллы на время спасут ситуацию. Правда, возникает проблема с охлаждением.
Они и так 3D. Мы все живем в 3D.
Действительно, интересно, что будет, когда мы упремся в потолок технологических норм. Мультиплицирование ядер тоже не панацея.
CodeMaster
17.10.2021, 15:00
Они и так 3D
Ну, это ещё 2.5-2.7D пока ;-)
что будет, когда мы упремся в потолок технологических норм.
Наконец-то вернутся к оптимизации кода? А то ставил недавно консольную утилиту на мегабайт, так она час обновляла Винду и установила полтора гига библиотек.
Наконец-то вернутся к оптимизации кода?
Что то мне подсказывает, что начнут клепать программы, состоящие из миллионов микросервисов и вместо одного компа программа для своей работы будет требовать десяток :)
SuperMax
17.10.2021, 16:07
Наконец-то вернутся к оптимизации кода?
исключено
скорость производства кода важнее его качества
пока не будет изменена сама бизнес-модель, изменений в качестве кода тоже не будет
пока не будет изменена сама бизнес-модель, изменений в качестве кода тоже не будет
Пока не будет изменения модель жизни, нацеленная на ПОТРЕБЛЕНИЕ - остальное тоже не изменят..
Основаная модель в "промышленном программировании" - выкатить результат к релизу, затративши минимальное количество работы. Потому имеем то, что имеем. Не всегда в этой "потогонке" есть возможность остановиться, пораскинуть мозгами, переделать то, что "работает".
Внутри DC302 очень много двунаправленных шин и bus-holders на них, ввиду чего шины могут работать как кратковременные латчи при низком CLK. И это достаточно сильно затрудняло анализ, было непонятно направление передачи данных и в какой момент. Пришлось нарисовать относительно высокоуровневую блок-схему и раскрасить ее согласно рабочей фазе тактового сингала:
https://www.1801bm1.com/files/images/dc302.png
Теперь стало принципиально понятно где что бегает и можно допиливать асинхронную модель F11.
Пока не будет изменения модель жизни, нацеленная на ПОТРЕБЛЕНИЕ - остальное тоже не изменят..Не потребляй :)
исключено. скорость производства кода важнее его качества. пока не будет изменена сама бизнес-модель, изменений в качестве кода тоже не будетМожет быть после завершения проекта выкладывать исходники (хотя бы частично) и тогда народ займётся оптимизацией?
Как пример – первый Doom оптимизировали (https://www.doomworld.com/forum/topic/116001-fastdoom-dos-vanilla-doom-optimized-for-386486-processors/) недавно.
Может быть после завершения проекта выкладывать исходники
ХА! В обществе потребления? Два раза ХА!
первый Doom оптимизировали недавно
Хрень там, а не оптимизация
Дописал начерно асинхронную модель F11 в мнималке - KDF11A + DC302 + DC302. Пока без MMU (там еще схему доделывать) и FPP (там надо шлифовать, фотографировать, матрицы верифицировать, еще очень много работы). Можно приступать к отладке :).
Вот тут (https://www.1801bm1.com/files/retro/1811/vm1/diff.tif) выложил двухстраничный tiff, показывающий сколько ошибок было исправлено в процессе рисования схемы и написания модели (если переключаться между страничками - то хорошо будет видно дельту).
Как пример – первый Doom оптимизировали (https://www.doomworld.com/forum/topic/116001-fastdoom-dos-vanilla-doom-optimized-for-386486-processors/) недавно.
Это спорный пример. Там исходно код неправильно написан. Doom на самом деле нормально рисует только вертикальные стены. А полы и потолки -- это зазоры между стен, которые условно считаются, как стены, затем пересортируются в специальные структуры под названием visplane (которых иногда бывает not enough :D ), и вконец рисуются отдельным специальным образом. Всё это медленно.
В Quake всё гораздо лучше. Собственно, сам Кармак говорил, что если технологии вставить оттуда туда, то скорость Doom должна вырасти на 25% примерно. Я прикидывал на пальцах -- вроде верно.
В видео оптимизация сводится к отказу от тестурирования полов. Ну ясное дело, так быстрее.
Sandro, в любом случае есть исходники, есть желающие оптимизировать, есть даже один готовый результат.
А некоторые считают, что в «обществе потребления» такого быть не может :)
Оставлю здесь записанные мною формы сигнала отечественного микропроцессора 588 может пригодятся. Записаны микрокоманды начальной установки. Могу скормить любой код для выполнения если кому надо.
76433
Оставлю здесь записанные мною формы сигнала отечественного микропроцессора 588 может пригодятся. Записаны микрокоманды начальной установки. Могу скормить любой код для выполнения если кому надо.
76433
Спасибо! это очень ценно.
С какой машинки записаны сигналы? то есть, в каком окружении работают эти ВС2 и ВГ ?
В принципе, исполнение любого кода будет интересно посмотреть, потому что инфы по этим чипам очень мало, и микропрограммы из КР588ВУ2 тоже не считаны.
микропрограммы из КР588ВУ2 тоже не считаны.
Там не просто микропрограммы, а очень похожая логика как и у F11, и тоже ПЛМ внутри, причем вообще недокументированной структуры. Поэтому читалка может быть нетривиальной и опять все упирается во вменяемую реализацию Quine-McCluskey.
Sergei Frolov
17.11.2021, 16:09
Дампы ПЗУ от ОКА-400 на КР588ВС2 интересны?
http://www.leningrad.su/museum/show_calc.php?n=484
Дампы ПЗУ от ОКА-400 на КР588ВС2 интересны?
http://www.leningrad.su/museum/show_calc.php?n=484
Так вообще любые дампы ПЗУ интересны, выкладывайте.
Sergei Frolov
17.11.2021, 16:54
Вот
Спасибо! это очень ценно.
С какой машинки записаны сигналы? то есть, в каком окружении работают эти ВС2 и ВГ ?
В принципе, исполнение любого кода будет интересно посмотреть, потому что инфы по этим чипам очень мало, и микропрограммы из КР588ВУ2 тоже не считаны.
Окружение 588: кодировки 001 002 004 006 007 и умножитель с ОЗУ пзу
- - - Добавлено - - -
Оставлю здесь записанные мною формы сигнала отечественного микропроцессора 588 может пригодятся. Записаны микрокоманды начальной установки. Могу скормить любой код для выполнения если кому надо.
76433 как дополнение книжка по 588 набору https://cloud.mail.ru/public/LY7U/nHab3y4yg
Оставлю здесь записанные мною формы сигнала отечественного микропроцессора 588Круто. Вот бы ещё 587 и 532
Коллеги, а кто-нибудь пробовал если не реверсить, то хотя бы снимать фото спектрумовских БМК?
Вот неполный список:
И185
КА1515ХМ1-171
КА1515ХМ1-216
КА1515ХМ1-433
КА1515ХМ1-458
КА1515ХМ1-6003
КА1515ХМ1-6004
КА1515ХМ1-6006
КА1515ХМ1-6008
КА1515ХМ1-6108
КБ01ВГ1-2
КН1854ВГ5
Мэджик
СК1
Продолжается запуск асинхронной модели F11, в самом простом варианте - без MMU и FPP.
Предварительно определено используемое подмножество микрокоманд, сделано описание: https://github.com/1801BM1/cpu11/blob/next/f11/doc/1811.docx
Написан дизассмеблер: https://github.com/1801BM1/cpu11/blob/next/f11/rom/tools/disf11.py
Моделька стартует, но не обращается к fdin для определения типа страрта, явно куда-то не туда заезжает, буду брать реальный МК1, вставлять в "считывалку" и захватывать стартовую последовательность с реальных микросхем, при этом эмулируя работу платы M6 на stm32.
Товарищ vslav, а вы же хотели сделать фото 588 серии? Или передумали?
Товарищ vslav, а вы же хотели сделать фото 588 серии? Или передумали?
Не хотел, просто прикупил 588 серию. Реверс очень много времени занимает, разбрасываться нельзя, поэтому пока не закончу F11 - никаких фотографий, а дальше видно будет.
(скромно так) Ну ещё там ВМ3 завалялся... :)
(скромно так) Ну ещё там ВМ3 завалялся... :)
Да, продолжение реверса будет рассматриваться после F11.
Когда - не знаю, F11 - это такой очень скромный и простой проект:
- 5 микросхем открыто, 10 панорам сделано (ВМ1/ВУ1/ВУ2/ВУ3/ВТ1)
- 5 топологий векторизовано
- сделаны схемы ВМ1/ВУ1/ВУ3, ВУ2 и ВТ1 в процессе
- сделана считывалка микромов ВУx
- матрицы и ROM ВУ1 и ВУ3 полностью верифицированы, ВУ2 anasana сейчас домучивает
- всего обработано за 50К транзисторов, сейчас еще ~10K доделывается
- восстановлена система микрокоманд 1811ВМ1, документации на это дело не было абсолютно никакой, написан дизассемблер
- нарисована в пикаде схема платы M8186/M6, восстановлена матрица декодера, выяснены перемычки, диаграммы и прочее, 1811 - это голый микропроцессорный комплект, чтобы получить из него рабочий процессор к нему еще под сотню микросхем обвязки надо
- написана асинхронная модель ВМ1 и ВУx
- написана асинхронная модель платы 8186
Объем работы проделан колоссальный, спасибо Леше anasana за помощь в векторизации и переносе схем матриц.
Вот сейчас это все запускается, дошло до чтения вектора 24, но пока сразу трапается по вектору 10 :)
To be continued...
нарисована в пикаде схема платы M8186/M6,
Я надеюсь что не с платы М6 рисовали, т.к. на плату схема есть, и описание тоже.
...
Если есть возможность, сделать пикадовскую схему в PDF и дать ссылку.
Спасибо.
Если есть возможность, сделать пикадовскую схему в PDF и дать ссылку.
https://www.1801bm1.com/files/retro/DVK/sch/
Рисовал не с платы, по Э3 1601 и по оригинальной дековской схеме на M8186.
PS. Ошибки потихоньку фиксятся - асинхронная моделька F11 стартует и даже выводит мусор на консоль.
Ну что, первая асинхронная модель успешно проходит полностью заводской тест JKDBD0 (тест базовых команд).
Полностью разобраны и веурифицированы 1811ВМ1/ВУ1/ВУ2/ВУ3.
Реальные микросхемы ВУx еще и вычитаны на специальной читалке, и матрицы извлеченные их схем полностью совпадают с прочитанным.
Полностью разобраны и кратко документированы микрокоманды.
Предварительная версия выложена в ветке next: https://github.com/1801BM1/cpu11/tree/next
На выходных еще перепроверю и замерджу в основную ветку.
В модели нет FPU и MMU, эти опции требуют DC304/ВТ1, там уже выполнена векторизация, и готово 60% схемы. После готовности FPU/MMU можно будет приступать к разработке синхронной схемы.
Отдельное и специальное спасибо Леше anasana, практически все матрицы нарисованы и перенесены в схему его силами. Также распознанные и верифицированные исходники заводских тестов - его заслуга.
Продолжение следует...
Подскажите как на 1801вм* или на 1806вм2 вызвать такие же прерывания конкретно 270 вектор остальные есть как я понимаю. Это табличка из описания 588 мпк
https://i.ibb.co/LvwGmDp/PXL-20220125-091237597.jpg (https://ibb.co/b7hfTjd)
Прерывание с вектором можно сделать либо программно, например для отладки софта, либо аппаратно, создав некое устройство кое и будет выдавать требуемый вектор.
Всё зависит от конкретной задачи ;)
У меня есть гнусные домыслы, что есть какой-то софт под эти прерывания. Но что за софт мне совершенно не понятно. Так как для его корректной работы скорее всего необходима какая-то аппаратура... Сама по себе эмуляция прерывания смысла мало имеет. Надо знать алгоритм работы аппаратуры.
Подскажите как на 1801вм* или на 1806вм2 вызвать такие же прерывания конкретно 270 вектор остальные есть как я понимаю. Это табличка из описания 588 мпк
На 1801ВМ1 в документации: https://github.com/1801BM1/cpu11/blob/master/vm1/doc/1801vm1.pdf
Таблица на странице 55, строки 9 и 11.
На 1801ВМ2, судя по заводской документации и реверсу, нет "встроенного" прерывания по 270 вектору
Про 1806ВМ2, судя по документации, 270-го вектора тоже нет
Спасибо
- - - Добавлено - - -
Прерывание с вектором можно сделать либо программно, например для отладки софта, либо аппаратно, создав некое устройство кое и будет выдавать требуемый вектор.
Всё зависит от конкретной задачи ;)
У меня есть гнусные домыслы, что есть какой-то софт под эти прерывания. Но что за софт мне совершенно не понятно. Так как для его корректной работы скорее всего необходима какая-то аппаратура... Сама по себе эмуляция прерывания смысла мало имеет. Надо знать алгоритм работы аппаратуры.
А вопрос тогда может ли 588вт1 быть таким устройством ?
- - - Добавлено - - -
На 1801ВМ1 в документации: https://github.com/1801BM1/cpu11/blob/master/vm1/doc/1801vm1.pdf
судя по документации, 270-го вектора тоже нет
Вопрос к ув. Vslav вы изучили множество процессоров может припомните где может быть такой же набор векторов кроме 1801вм1
На 1801ВМ2, судя по заводской документации и реверсу, нет "встроенного" прерывания по 270 вектору
Абсолютно точно нет.
588вт1
588ВН1 с небольшим обвесом.
Вопрос к ув. Vslav вы изучили множество процессоров может припомните где может быть такой же набор векторов кроме 1801вм1
Я могу говорить только о тех процессорах что отреверсены, по 1801ВМ1/ВМ2, по ним уже ответ дан.
По микропрограммным процессорам - LSI/M4 так просто не ответишь, надо разбирать исходники микрокода и матрицы PLM для анализа полного покрытия пространства векторов. Если анализ делать быстрый - то навскидку в LSI-11 и M4 вектора 270 тоже нет.
По таблице о 588-ом напрашивается вывод, что он имеет отдельные входы для прерываний по векторам 170, 174, 270 и 274, примерно как на 1801 вход EVENT для прерывания по 100 вектору. То есть устройство просто выставляет сигналы, не заморачиваясь о векторах. Если это так, то близко к 100 процентам, что таких входов нет ни на одном процессоре семейства PDP-11 или совместимых (ну кроме 588, понятно). Во всяком случае, по документации мне входов для таких векторов навскидку по памяти - не попадалось.
таких входов нет ни на одном процессоре семейства PDP-11
Если рассматривать с точки зрения общего базиса, то у всех процессоров есть запрос на HALT (с особенностями обработки пультовым режимом у серии 1801, и ODT в остальных), у всех есть запрос на таймерное прерывание EVNT по сотому вектору, и у всех есть минимум векторное IRQ7. У продвинутых процессоров векторное еще может быть разбито по приоритетам IRQ4-IRQ7. IRQ3 у 1801ВМ1 не является "векторным с приоритетом 3", это уже нестандартная для PDP-11 самодеятельность по фиксированному
вектору 270.
то у всех процессоров есть
Я имел ввиду именно ту четверку - 170 174 270 274
IRQ3 у 1801ВМ1
Про эту особенность ВМ1 забыл - всё таки с ним (и с 1801ВМ2) почти не ковырялся :)
- - - Добавлено - - -
по приоритетам IRQ4-IRQ7
Интересно, что формально запросы с приоритетами 0-3 есть, а фактически - изба индейцев. Ну, кроме регистра PIRQ у некоторых процов, который позволяет послать запросы на прерывание с приоритетами 0-3, но учитвая, что это все унутри проца... и для всех один и тот же вектор... и что добраться до этого регистра можно только через страницу в/в... узок круг этих рэволюционеров, страшно далеки они от внешнего мира :)
Вообще я так подозреваю что из-за своей всеядности 588вг1 имеет эти прерывания для построения на ней нестандартного процессора со своей системой команд лично у меня 588вг1 есть в исполнении с 556рт6 вместо 588ву2
построения на ней нестандартного процессора со своей системой команд
Это если найти описание функционала 588ВС1 и 588ВУ1(2). И вроде как пока они не найдены?
Все есть https://i.ibb.co/MZFVTQ8/PXL-20210709-100236054.jpg (https://ibb.co/4KhTy3s) правая колонка номер кодировки
правая колонка номер кодировки
Это то, что уже реализован и зашито в соотвествующие микросхемы. Я имел ввиду, если на основе этого комплекта делать что то совсем своё, а не PDP-11-подобное
Intel можно кодировки 8 9
Не готовое использовать, а сделать что то своё
Это если найти описание функционала 588ВС1 и 588ВУ1(2). И вроде как пока они не найдены?
Давно все найдено: https://www.1801bm1.com/files/retro/588/doc/
И у Шахнова какое-то описание есть. Можно попробовать 588-ую сфотографировать, но там КМОП, и пока F11 не закончу - ни на что другое отвлекаться не буду.
Intel можно кодировки 8 9
А где про них подробнее почитать? Их вообще хоть кто-то видел?
Не готовое использовать, а сделать что то своё
Можно свое попробовать на базе м4 делать - там 16-ый проц на секционниках Am2900/K1804. Я даже микроассемблер секционный под это дело написал, но возиться дальше лень. И будут особенности с извлечением регистров по индексу в опкоде реализуемой системы команд и с условными переходами - под это дело схема затачивается специально.
Давно все найдено
Спасибо, как то я это дело пропустил :)
Ещё один глупый вопрос. Будет ли работать 1801вм1 в плате от 1801вм2 если сделать переходник
CodeMaster
26.01.2022, 14:31
сделать переходник
По ногам? Нет. У него тактирование и схема запуска вроде бы другие.
Будет ли работать 1801вм1 в плате от 1801вм2 если сделать переходник
Вопрос изучается.
В переходнике потребуется несколько мелких ИС :
1. Делить такт на 2
2. Стробировать RPLY
3. Фиксировать РНП - т.е. адрес пуска будет определятся в переходнике.
4. Тайминг МПИ будет фиксированным, т.к. у ВМ1 нет входа AR.
*
5. И переписать софт под ВМ1 - т.к. ВМ2 использует таблицу векторов в скрытой области адресации, определяемой сигналом SEL - т.е. ВМ1 адресует 64 Кайт, а ВМ2 - 128 Кбайт по факту.
Либо какое-то аппаратное решение по режиму пульта ВМ1.
Вот вы говорите про тайминг мпи, а разве есть асинхронный приемо-передатчит для подобного согласования
И вопрос по прерываниям помимо 588вн1 ещё существует что-то что может давать прерывания
И вопрос по прерываниям помимо 588вн1 ещё существует что-то что может давать прерывания
по идее есть брошура тех времен DEC CHIP KIT (http://www.bitsavers.org/pdf/dec/qbus/Chipkit_Users_Manual_1982.pdf) там типовые схемы реализации периферийных адаптеров с применением спец микрух которые были разобранны и содранны в СССР
а разве есть асинхронный приемо-передатчит для подобного согласования
Бывают "синтезаторы таймингов МПИ", обычно применяются с очень быстрыми процессорами типа J-11 1831ВМ1 и 1806ВМ5, на куче мелкоты или БМК/ПЛИС.
ещё существует что-то что может давать прерывания
Теоретически можно нажучить 1801ВП1-033 давать векторные прерывания, но это малость сложновато.
*
Если нужно получить 1 шт. фиксированный вектор , например 270 - берется 588ВН1 без обвеса и монтируется проволочками на переход Н1806ВМ2, в разрез сигнала ВМ2 "IAKO".
Но у 588ВН1 мала нагрузочная способность выходов, на нагрузки не менее 2.2 ком ( 1 ком может не потянуть ).
Ну что, начерно нарисовал схемку 1811ВТ1, еще неделька и будет начисто. Нету там никакого сумматора плавающей запятой. Есть семнадцать 32-разрядных регистров ПЗ, очевидно они дают 8 64-битных аккумулятора ПЗ и есть еще непонятный 32-битный остаток, возможно флаги, еще не понял как оно из микрокода адресуется. Есть микрокоманды, можно за цикл переслать в ПЗ и обратно 16-битное слово из основного регистрового файла и все вычисления будут на основном АЛУ, хоть и реализованные микрокодом.
и есть еще непонятный 32-битный остаток
По идее, там ещё 16-ти битный регистр адреса команды FPP (если вылезет ошибка при операции) и 16-ти битный регистр всяких настроек и флагов
Это табличка из описания 588 мпк
https://i.ibb.co/LvwGmDp/PXL-20220125-091237597.jpg (https://ibb.co/b7hfTjd)
Простите, а есть всё описание в электронном виде?
К сожалению нет но я выложу фото той информации что доступна
К сожалению нет но я выложу фото той информации что доступна
А про прошивки 0008 и 0009 расскажете? Совершенно нигде не нашёл про них информации и случаев применения.
Вы говорите что там зашит микрокод команд Intel. А какой конкретно? 8080? 8086? Где это подробнее описано?
Подробнее про это нет так как они были экспериментальные, на заводы были отправлены под таким именем как 588ву, а далее их переименовали (возможно). Данная информация передана от старого инженера достоверность мала. Про архитектуру 8080. Если я найду эти микросхемы обязательно поделюсь с теми кто их вскроет пока я сам в них не особо верю может деду приснилось.
Вопрос изучается.
В переходнике потребуется несколько мелких ИС :
1. Делить такт на 2
2. Стробировать RPLY
3. Фиксировать РНП - т.е. адрес пуска будет определятся в переходнике.
4. Тайминг МПИ будет фиксированным, т.к. у ВМ1 нет входа AR.
*
5. И переписать софт под ВМ1 - т.к. ВМ2 использует таблицу векторов в скрытой области адресации, определяемой сигналом SEL - т.е. ВМ1 адресует 64 Кайт, а ВМ2 - 128 Кбайт по факту.
Либо какое-то аппаратное решение по режиму пульта ВМ1.
Есть желание помочь? У меня просто есть все на руках для этого и 3 процессора на случай не работы одного из них
Дорисовал схему 1811ВТ1, начал добавлять матрицы ВУ2 и ВУ3, но пока без ВТ1.
Начало помирать в тесте невалидных инструкций на 170007 (невалидная FPP), нашел ошибку - прошло базовый тест JKDBD0 со всеми добавленными матрицами. Интересно будет посмотреть как детектится нерабочий FPP с отсутствующим ВТ1 - там находятся все плавающие регистры.
Vslav, скажите пожалуйста а в синхронной модели vm2_wb.v (1801ВМ2) как дела обстоя дела с частотой работы ядра процессора и его внешней шины в сравнении с железным 1806ВМ2?
Vslav, скажите пожалуйста а в синхронной модели vm2_wb.v (1801ВМ2) как дела обстоя дела с частотой работы ядра процессора и его внешней шины в сравнении с железным 1806ВМ2?
Я про 1806ВМ2 знаю точно то же что и все, только то что есть в открытом доступе.
Входная тактовая частота подается на 1801/1806ВМ2 подается на вход CLCI.
На выходе CLCO выдается частота ядра, для 1801 - это половина CLCI, для 1806 - равна CLCI.
Внутри 1801ВМ2 CLCI практически нигде не используется, просто делится пополам и генерирует
сигналы с частотой CLCO с разными фазами и все. Поэтому CLCO определяет частоту ядра и всех остальных блоков процессора, там внутри нет ничего работающего на частоте CLCI. Модель 1801ВМ2 тоже использует только CLCO, которая совпадает с CLCI (нет деления пополам) и которая достигает 100МГц и выше.
Написал MMU/FPP, прикрутил к асинхронной модели, потихоньку отлаживаю, запускаю заводской тест MMU - jkadad
Сначала умирала так:
CJKDAD0 KTF11-AA MMU DIAG.
SR2 NOT TRACKING CORRECTLY
SR2 WAS EXPECTD TESTNO ERRORPC
0
Поправил шину данных, стала умирать так:
CJKDAD0 KTF11-AA MMU DIAG.
UNEXPECTED CPU TRAP TO LOC. 004
OLD PC OLD PSW R6 WAS TESTNO ERRORPC
037 06 000 002112
Поправил логику SR2:
CJKDAD0 KTF11-AA MMU DIAG.
MEM. MGMT. REG. BITS NOT SET CORRECTLY
REGISTR WROTE READ READ-(BINARY)
ADDRESS (OCTAL) (OCTAL) 5432109876543210 TESTNO ERRORPC
172340 077777 000000 0000000000000000 000015 022352
Добежало аж до 15-го теста и умерло на тестировании чтения-записи PAR.
Починил чтение (забыл шину от PAR/PDR/FPP на выход dc304 протянуть) стало так:
CJKDAD0 KTF11-AA MMU DIAG.
UNEXPECTED CPU TRAP TO LOC. 004
OLD PC OLD PSW R6 WAS TESTNO ERRORPC
023526 000010 001100 000023 002126
Это любопытнейший тест цепей переноса сумматора физического адреса.
У меня скорее всего просто косяк в трансляции, но подход DECа к написанию тестов впечатляет.
И уже добегает до 23 теста из 47, почти половина.
CodeMaster
15.02.2022, 06:25
но подход DECа к написанию тестов впечатляет.
Эпоха такая была: компы уже выпускались массово, но были ещё достоточно "дискретными", чтобы на ходу могло отвалиться что угодно. Поэтому, был смысл и необходимость в таких углубленных тестах.
CJKDAD0 KTF11-AA MMU DIAG.
END PASS # 1
TOTAL ERRORS SINCE LAST START AT 200 0
Это значит что моделью пройден заводской тест функционала MMU.
Начал тестировать FPP, но там пока первая часть тестов валится.
Асинхронная модель F-11 успешно прошла заводские тесты:
- jkdad0- MMU diagnostics
- jkdbd0 - instruction set (BIS/EIS)
- jkdcb0 - FPP diagnostics, part 1
- jkddb0 - FPP diagnostics, part 2
Все материлы по модели: https://github.com/1801BM1/cpu11/tree/master/f11
Топологии и схемы всего комплекта: https://github.com/1801BM1/cad11/tree/master/f11 (там есть pdf)
Можно приступать к синхронному варианту.
Можно приступать к синхронному варианту. А CIS ?
А CIS ?
А что CIS? Просто дополнительные MicROM и PLA, архитектурно ничего нового, на синхронные модели никак не повлияет.
Я сделал читалку, все 1811ВУx вычитались нормально, все совпало с реверсом. Но импортные DC303 не читаются, возможно контактные явления, надо попытаться разобраться почему не читается. Спаян второй экземпляр считывалки, собираюсь отправить его Хунте. Получится у него считать CIS - хорошо, будем тогда заниматься Куайн-МакКласки-Петрик и пытаться получить уравнения для включения в проект.
А что CIS? Просто дополнительные MicROM и PLA, архитектурно ничего нового Просто я надеялся прикупить DE-какую-нибудь, сочинить к ней согласователь интерфейса с корзинкой ДВК/Э-60 и получить нечто, вроде ЦП М6, но еще и с CIS. С синхронной моделью такое, как я понимаю, не сделаешь...
Просто я надеялся прикупить DE-какую-нибудь, сочинить к ней согласователь интерфейса с корзинкой ДВК/Э-60 и получить нечто, вроде ЦП М6, но еще и с CIS. С синхронной моделью такое, как я понимаю, не сделаешь...
Синхронная модель - это промежуточная платформа для перевода всего процессора в синхронный дизайн, чисто для разработки. А потом уже следует рабочая модель c Wishbone, которая адаптирована для применения в FPGA. Вот ее можно взять, прицепить к модели ДВК от forth32 и запустить уже на плате DEx (я, кстати, буду запускать на DE0). Для внешнего МПИ надо сделать железный согласователь, а внутри сделать мост Wishbone <-> МПИ, он несложный.
Начали разбор 1806вм2 на основе единственного фото кристалла и результатов успешного реверса 1801вм2.
Уже сделали PLA декодера команд.
Сегодня выложил PLA микрокода. Будем исследовать.
Обсуждение в телеграмм-чате про Союз-Неон ПК-11/16 http://t.me/souz_neon
КР581ВЕ1
https://pic.maxiol.com/thumbs2/1617040003.1559557688.post26470751989001.jpg (https://pic.maxiol.com/?v=1617040003.1559557688.post26470751989001.jpg&dp=2)
Вроде бы даже м/с на руках у людей есть, а никто её так и не "открыл" (до кристалла)...
Да хотя бы рентгеном. Потому что непонятно: это однокристалка или гибридка?
В интернете, в частности, в Вики есть информация, что КР581ВЕ1 клон CP1651. Об этом в Вики написали в 2008, позже на ixbt упоминалось.
Взято это, похоже, из справочника "Все отечественные микросхемы, Додэка, 2004" (https://djvu.online/file/cv4CyX2BJcnZ1)
https://pic.maxiol.com/thumbs2/1757501831.1504645828.djvureaderl9rmdwdf.png (https://pic.maxiol.com/?v=1757501831.1504645828.djvureaderl9rmdwdf.png&dp=2)
Откуда это взяли авторы справочника найти не удалось, так как, например, в справочнике "Интегральные микросхемы производства СССР и их зарубежные аналоги, Радио и связь, 1990" у КР581ВЕ1 аналог не указан.
Усиленный поиск CP1651 дал вот такой справочник: American Microsystems Inc., Databook, IC Master, 1978 (https://www.worldradiohistory.com/Archive-Electronic-Design/1976/Electronic-Design-V24-N01-1976-0105.pdf) - осторожно, 170 мб.
В нём есть такое, как раз от Western Digital:
https://pic.maxiol.com/thumbs2/1757502198.1504645828.msedgehzbesmnjg7.png (https://pic.maxiol.com/?v=1757502198.1504645828.msedgehzbesmnjg7.png&dp=2)
Больше свидетельств существования данной микросхемы я не нашел. Может, кто-то что-то знает? Это всё же клон, или отечественная разработка.
///
Помимо этого смутила в справочнике Додэка информация о БИС, кроме процессора, которые стали прототипом для плат процессора М8 и М11 - К1831ВУ2 и КЛ1831ВТ1. По справочнику их аналоги - SA1542 и CF1307 соответственно.
https://pic.maxiol.com/thumbs2/1757502596.1504645828.djvureader3ojwszqg.png (https://pic.maxiol.com/?v=1757502596.1504645828.djvureader3ojwszqg.png&dp=2)
Существовали ли эти БИС на DEC KDJ11-A так понять и не смог, ни единого фото не нашел. Зато были с CF13014 и CG1604A на большинстве фото, если БИС не керамические (например: https://forum.oldtriod.ru/topic/105-pdp-11/).
Вопрос, существовали ли БИС, указанные в справочнике.
Кстати если кто-то пропустил, тестер микросхем от trolsoft (https://trolsoft.ru/ru/sch/chip-tester) научился проверять и читать 1801РЕ2, можно сверять работоспособность микросхемы с проверкой CRC по известным прошивкам, а также вычитывать неизвестные прошивки из них или из РР1 без программатора Sterh!
Если кому интересно, дизассемблировал MicroODT в микрокоде F-11.
Ранее тут обсуждалось, поддерживает ли MicroODT 22-разрядный адрес или нет. В прошивке, которая выложена у Vslav на github, этой поддержки нет. Там только ввод 18-разрядного адреса. Точнее при вводе можно ввести довольно много цифр, ограничений нет. Но используются только последние шесть и для расширения адреса в ODT хранятся только два разряда. Для этой поддержки так же нужен внешний регистр на плате.
используются только последние шесть и для расширения адреса в ODT хранятся только два разряда. Для этой поддержки так же нужен внешний регистр на плате
поясните
поясните
А что неясно? Вроде всё расписал, да и в документации оригинальной всё сказано, там где написано, что <Rubout> для коррекции не поддерживается и если ошиблись, то надо ввести больше цифр и будет использоваться только последние шесть. Это видно в прошивке, где обрабатывается ввод цифр.
что за "внешний регистр на плате" ? физически - что это ?
Как Вы думаете - почему не вышло использовать 22 разряда адреса ?
что за "внешний регистр на плате" ? физически - что это ?
Физически - это микросхема.
Как Вы думаете - почему не вышло использовать 22 разряда адреса ?
Возможно не хватило ёмкости ПЗУ или регистров для хранения всех параметров. В той версии, что выложена у Vslav-а на github (как я понимаю, это МК1 ред.1) всё занято в ПЛМ (все 138 записей) и в ПЗУ есть только одна свободная ячейка. Для поддержки шести разрядов нужен другой алгоритм сдвига. В данной версии перед сдвигом копируется старший байт в другой регистр и осуществляется три сдвига. В версии с 22 разрядами копировать байт не надо, но надо шесть сдвигов. Плюс к тому же надо держать эти шесть разрядов в отдельном регистре. Ну и регистров не слишком много, можно использовать всего пять - R9, R10, R11, R14, R15. Потому эти два разряда хранятся в байте состояния MicroODT. Ну и 18 разрядов - это шесть восьмеричных цифр. Т.к. коррекция с помощью <Rubout> (ЗАБОЙ по нашему) не поддерживается, то при ошибке ввода надо набрать правильное значение и будут использованы только последние шесть цифр. Ну и для 22 разрядов также будет другой вывод на экран, разное число выводимых цифр. Ну как я уже написал - свободного места в ПЗУ нет.
Физически - это микросхема.
это микросхема диспетчер памяти ?
Если нет этой микросхемы, то как поведет себя OTD ?
это микросхема диспетчер памяти ?
Нет, это не диспетчер памяти. Это одна из микросхем обвязки.
Если нет этой микросхемы, то как поведет себя OTD ?
Ну как поведёт? Будут доступны только 16 разрядов. Но тогда надо ещё и правильно формировать сигнал BS, чтобы был доступ к внешним устройствам. В командах доступа к внешней шине есть 4 бита режима. В этих битах кодируется информация о том в каком режиме читать/писать данные - KERNEL, текущий режим, предыдущий режим, чтение вектора, доступ через ODT. Вот при доступе через ODT диспетчер памяти отключается и используется именно 18-разрядный физический адрес. И в этом случае сигнал BS формируется, если пять старших разрядов равны единице, с учётом разрядов в регистре расширения адреса. Если этот регистр расширения изъять, то будет доступно только 16 разрядов адреса, но тогда придётся изменять и схему формирования BS.
Это одна из микросхем обвязки
может Вы знаете - какая именно это микросхема на схеме М6 или соотвествующей KDF ? (или покажете на фото внешнего вида этих плат)
- - - Добавлено - - -
Если этот регистр расширения изъять, то будет доступно только 16 разрядов адреса, но тогда придётся изменять и схему формирования BS
выходит, что если оставить в панельках на плате процессора только одну сборку (процессор и базовую микропрограмму), то не в любой конфигурации компьютер заработает ? (не все внешние устройства "откликнутся")
Не знаю. К тому же дайте ссылку на М6. Схемы на KDF я вероятно найду на bitsavers.
Схемы на KDF я вероятно найду на bitsavers.
KDF, так KDF, это не принципиально.
Просто интересно - каким образом процессор "общается" с этим регистром.
может Вы знаете - какая именно это микросхема на схеме М6 или соотвествующей KDF ? (или покажете на фото внешнего вида этих плат)
KDF-11B - https://bitsavers.org/pdf/dec/pdp11/1123/MP01236_KDF11-B_schem.pdf. Страница 12, в верхнем левом углу ODT LOGIC, регистр E49 74LS75.
- - - Добавлено - - -
выходит, что если оставить в панельках на плате процессора только одну сборку (процессор и базовую микропрограмму), то не в любой конфигурации компьютер заработает ? (не все внешние устройства "откликнутся")
В подробностях не разбирался, но ODT диспетчер памяти не использует.
- - - Добавлено - - -
Просто интересно - каким образом процессор "общается" с этим регистром.
Вы дизассемблированный вариант MicroODT смотрели? Вот там везде есть комментарии - микрокоманда OIR 7,R11. Семёрка означает, что устанавливается регистр расширения адреса, а в R11 содержится значение, соответственно используются только два младших бита.
спасибо за инфо.
Как Вы думаете - микропрограмму писали вручную или был микроассемблер ?
микрокоманда OIR 7,R11
Есть ещё и OIR 7,R15. Тут регистр роли не играет, главное OIR 7.
а это - что означает ?
Не понял. Вы про что?
а это - что означает ?
OIR 7,R15
а это - что означает ?
OIR 7,R15
Документация на 1811 - https://github.com/1801BM1/cpu11/tree/master/f11/doc. Там есть описание системы команд DC302(К1811ВМ1).
OIR - это установка регистра инструкций в DC302, регистра ПЛМ в DC303 и одновременно передача управляющего слова. Вот семь в управляющем слове - это установка регистра расширения адреса.
Дизассемблированный вариант в микрокоде, связанный с начальным стартом, обработкой прерываний и запуском команды. Так же выкладывается подкорректированный от ошибок вариант MicroODT и ПЛМ ВУ1 в удобном для просмотра виде.
Выложу обработку основных команд в F-11. Комментариев не делал, работа чисто ручная, поэтому могут быть ошибки. В ПЗУ с номером 0 обрабатываются все команды, кроме FPP, CIS, FIS. То есть все базовые команды плюс EIS.
Для анализа кода обязательно надо знать систему команд DC302(1811ВМ1), её можно найти у Vslav на github - https://github.com/1801BM1/cpu11/tree/master/f11/doc.
Из моментов, что были мною замечены:
1. Обработка команд RTI и RTT выполняется одним микрокодом, нету никаких различий. Прерывание по T-биту происходит после этих команд всегда. И уже при обработке прерывания смотрится, какая команда исполнялась до этого. Если это RTT, то маскируется прерывание по T-биту на один шаг.
2. На завершающем этапе команды MARK фактически делается операция RTS R5, чем разработчики и воспользовались. Они загружают в регистр инструкций код команды RTS R5 (000205) и переходят на адрес в ПЛМ 0F, где происходит декодирование команды.
3. Чтобы ускорить реализацию команды MUL разработчики частично развернули основной цикл. В счётчик цикла загружается пять, а в теле цикла три раза повторяется последовательность из команд сдвига и прибавления.
4. Очень интересно начинается выполнение команд MFPI, EIS (MUL, DIV, ASH, ASHC), MTPS, MFPD. Там команда JMP 0,15. Потом идёт загрузка регистра инструкций и переход на исполнение команды. Сама команда JMP 0,15 осуществляет переход на адрес 15 в ПЗУ номер ноль, на то же где и исполняется. Возможно, когда делали микрокод, реализация этих команд была в другом ПЗУ, но разработчики смогли сделать всё в одном.
5. Есть поддержка FIS (075xxx). Осуществляется переход на ПЗУ с номером 3. С этим же номером ПЗУ связано и прерывание с битом 6 в слове состояния процессора.
6. CIS поддерживается для диапазона 076000-076677. Для него осуществляется переход на ПЗУ с номером четыре. Для диапазона 076700-076777 переход идёт на ПЗУ с номером 31.
7. Ну и для FPP переход идёт на ПЗУ с номером 1.
Нет ли у кого-нибудь схем от СМ-2103 (процессор СМ3) ?
Нет ли у кого-нибудь схем от СМ-2103 (процессор СМ3) ?
А схемы от pdp-11/05 разве не подходят? :v2_dizzy_priest:
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot