M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

DEC Alpha, ARM, MIPS, PowerPC, SPARC, VAX, PDP-8 и другие устройства
Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,12:55

Давно, в начале апреля прошлого года, попали мне в руки две платы M7676. Так начались мои развлечения с Т11 и процессорной платой на его основе.

Как оказалось поздее, мне малость не повезло - это были кастомизированные платы (видимо, поэтому их дёшево и продавали) - причём, не только содержимым набортного ПЗУ, но и дешифратором адресного пространства на основе PLS100N (ака 556РТ2). Про PLS я понял не сразу, а когда понял - прилично огорчился, ибо - под рукой такого не было, а замена на что то типа 64кб ПЗУ - несовпадение по ногами. В общем, платы были отложены в сторону.

С полгода назад в руки попала плата - M8063 - их младший (если судить по функционалу) или старший (если судить по возрасту) брат. После некоторого количества приключений (особенно вставляют перемычки на этих платах - прямо форт Баярд) с этой платой я таки её запустил и даже начал рисовать свой вариант прошивки - с загрузкой с HX.

И вот как, почитывая тему (я уже не помню, как я в очередной раз на неё налетел) про прошивку 556РТ2 и похожих на неё микросхем (и веселье, сей процесс сопровождающий) в голове вдруг засияло озарение - что PLS100N - это таки АКА 556РТ2 :) А их у меня некоторое количество было. Так же вспомнилось, что в процессе разборки с M7676 я натыкался в доках не то на исходные прошивки, не то на описание процесса - как создать свою. Поиск показали, что я был прав оба раза.

Так начался второй сезон приключений с M7676. Первой серией которого была серия - "Всё о прошивке 556РТ2 на Стерх-007 и мифы, сей процесс сопровождающие". Поскольку тема немножко не об этом, если в кратце - нормально они шьются Стерхом (ну, по крайне мере - МОИМ). Нужно только помнить две вещи -

1) процент брака (особенно после отлёжки) у микросхем приличный, причём для некоторых (очень некоторых) у Стерха срабатывает защита по току

2) они плохо контачат с колодкой Стерха.

По второму пункту - сначала я облуживал ножки, а потом нашёл лайфхак - кладешь микросхему в панельку, потом слегка - примерно на миллиметр приподнимаешь - и зажимаешь. Посмотреть, в чём там дело - сложно, но предполагаю, что из за длинности широкого участка ножки микросхемы (тот, который в корпус уходит) - чё-то где-то в ZIF плохо зажимается, а если прпиоднять - зажимается (и уже нормально) узкий участок микросхему (тот, который уйдёт в плату или панельку_ Ну, это предположение, на котором я не настаиваю, но - метОда работает. Если микросхема опозналась как чистая (по моим прикидкам - больше 90 процентов), то шанс, что она прошьёся - тоже где то процентом 90. К сожалению, к моменту, когда я нащупал - КАК надо работать с микросхемами при прошивке - порядка 20-25 корпусов были так или иначе запороты именно по моей вине - сначала я решил, что только три микросхемы оказались рабочими и чистым, а все остальные - на помойку :) Оказалось - показалось :)

Далее были разборки с прошивкой - как же её правильно описать. Пока - в редакторе Стерха. Попутно нарисован скрипт, который прошивку в формату jedec или в формате, как её показывет Стерх, преобразует в более понятный вид (на очереди скрипт для обратного процесса)

Потом - попытка понять - у кого и что не работает.

И вот сегодня утром решил пойти немного по другому пути - нарисовал прошивку, которая использует только набортное ОЗУ (вот где кастомность пригодилась - на плате стоят две микрухи по 32 кб) и...

Код: Выделить всё

@HX0
HX 2.2  RT-11 Cold boot..

HX DSK/TTY multiplexer   v3.3  2016

RT-11SB (S) V05.07

.R MSCPCK

.BOO ZB1:RT11SB

RT-11SB (S) V05.07

.R MSCPCK

.SHO CONF

RT-11SB (S) V05.07
Booted from ZB1:RT11SB

USR     is set SWAP
EXIT    is set SWAP
KMON    is set NOIND
MODE    is set NOSJ
TT      is set NOQUIET
ERROR   is set ERROR
SL      is set OFF
EDIT    is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

SBC 11/21 (T11) Processor
56KB of memory
50 Hertz System Clock

Memory parity support
SB timer support
Global .SCCA support
FPU support
Extended unit support


.RUN SPEED3

Тест быстродействия (кэш, если он есть, выключен)

R1+R0 classic                     408 499 оп./сек
R0(23456.)+R0(12345.) empty       136 143 оп./сек
R1(23456.)+R0(12345.)             102 518 оп./сек ->     415 081 оп./сек
R1+@R0 classic                    272 352 оп./сек
R1(23456.)+@R0(M-12345.) empty    136 141 оп./сек
R1(23456.)+@R0(M-12345.)           90 768 оп./сек ->     272 348 оп./сек
11.*12.                        - команда не реализована
R2-R3(34567.)/R1(321.)         - команда не реализована
34567./321. (FPU) empty        - команда не реализована
34567./321. (FPU)              - команда не реализована
MOV 8 word 1 empty                 90 874 оп./сек
MOV 8 word 1                       11 843 оп./сек ->      13 617 оп./сек
MOV 8 word 2 empty                 90 760 оп./сек
MOV 8 word 2                       14 555 оп./сек ->      17 334 оп./сек
R1 := M(word)                     205 529 оп./сек
R1 := M(even byte)                204 249 оп./сек
R1 := M(odd byte)                 204 249 оп./сек
#4+R0(2000) empty                 272 297 оп./сек
#4+R0(2000)                       136 148 оп./сек ->     272 295 оп./сек
CMP (R0)+,(R0)+ empty             272 297 оп./сек
CMP (R0)+,(R0)+                   116 720 оп./сек ->     204 287 оп./сек
#2+R0(2000) empty                 272 297 оп./сек
#2+R0(2000)                       136 148 оп./сек ->     272 295 оп./сек
INC R0 INC R0 empty               272 297 оп./сек
INC R0 INC R0                     117 215 оп./сек ->     205 809 оп./сек
TST (R0)+ empty                   272 282 оп./сек
TST (R0)+                         136 158 оп./сек ->     272 350 оп./сек
CLR R0 - SOB R0, . empty          408 476 оп./сек
CLR R0 - SOB R0, .                      4 оп./сек ->           4 оп./сек
.
К сожалению, RESORC не различает эти две платы. А по оценке быстройдействия результат примерно в полтора раза лучше, чем M8063. Не могу сказать, с чем это связано - кварц на плате стоит одинаковый, но - использовалась внешняя память на M8063 и набортная на M7676 и DEC увела много мелкологики (42 против 25) в какой то аналог CPLD или как они там раньше назывались. Возможно, это и позволило уменшить задержки. Как бы то нибыло - результат выше :)

В ПЗУ ещё нет загрузчика с Zx, только с HX, так что пришлось пойти таким путём.

Кстати, плату мультиконтроллера с M8063 в текущем варианте использовать нельзя - из за особенностей распределения адресного пространства в/в, а вот с M7676 - без проблем.
Последний раз редактировалось Hunta 13.08.2022,13:27, всего редактировалось 2 раза.

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,13:46

Уточнение. 25 РТ2 - это общее число не взлетевших сразу или запоротых. Судя по поведению или содержимому - не взлетвеших сразу порядка 10, то есть запорол примерно 15..

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,16:02

Пришла новая партия РТ2. Прошивать пока не пробовал, но прогнал все микрсхемы по критерию - читаемость в нулевом состоянии. Результат - точно 10 процентов дали ошибку - срабатывание защиты по току, из них у пары защита срабатывала не постоянно.

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,17:27

Ну, дальше мне как обычно захотелось странного и засунул я вместо T-11 его братишку - 1807ВМ1.
Что могу сказать.. Да ничего не могу сказать - вполне работоспособно :) Даже те же 408 с копейками тысяч операций в секунду показал :)

ra3qdp
Full Member
Сообщения: 234
Зарегистрирован: 05.11.2013,10:09
Откуда: Воронеж

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение ra3qdp » 30.04.2022,21:27

Hunta писал(а): 30.04.2022,17:27 408 с копейками тысяч операций в секунду
а как это по сравнению с чем-то близким по производительности (DEC и 1801) ?

а какое распределение адресов в той и другой платах и какое хотите сделать ?

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,21:43

ra3qdp писал(а): 30.04.2022,21:27 а как это по сравнению с чем-то близким по производительности (DEC и 1801) ?
Это уже было в моих темах - ищущий - да обрящет
ra3qdp писал(а): 30.04.2022,21:27 а какое распределение адресов
На первый столбец можно не обращать внимание, второй столбец (четыре символа) - при каком маппинге правило срабатывает, третий столбец - состояние сигнала BS7, четвёртый - с какого, пятый - по какой адрес, шестой - куда уводит
Falcon:

Код: Выделить всё

00 0123 1 177600 177777 QBus
01 0123 1 177570 177577 QBus
02 0123 1 177560 177567 DL0
03 0123 1 177540 177557 QBus
04 0123 1 177500 177537 QBus
05 0123 1 177400 177477 QBus
06 0123 1 177000 177377 QBus
07 0123 1 176600 176777 QBus
08 0123 1 176560 176577 QBus
09 0123 1 176550 176557 QBus
10 0123 1 176540 176547 DL1
11 0123 1 176500 176537 QBus
12 0123 1 176400 176477 QBus
13 0123 1 176300 176377 QBus
14 0123 1 176240 176277 QBus
15 0123 1 176220 176237 QBus
16 0123 1 176210 176217 QBus
17 0123 1 176200 176207 PIO
18 0123 1 176000 176177 QBus
19 0123 1 174000 175777 QBus
20 0    1 170000 173777 socketA, socketB
21   23 1 170000 173777 QBus
22  1   1 170000 173777 QBus
23 0123 1 164000 167777 localRAM
24 0123 1 162000 163777 localRAM
25 0123 1 161000 161777 localRAM
26 0123 1 160400 160777 localRAM
27 0123 1 160200 160377 localRAM
28 0123 1 160100 160177 localRAM
29 0123 1 160040 160077 localRAM
30 0123 1 160020 160037 localRAM
31 0123 1 160010 160017 localRAM
32 0123 1 160000 160007 QBus
33 0123 0 140000 157777 QBus
34 0123 0 120000 137777 QBus
35 0123 0 100000 117777 QBus
36 01   0 040000 077777 QBus
37   2  0 040000 077777 QBus
38    3 0 040000 077777 socketA
39 0    0 000000 037777 QBus
40    3 0 000000 037777 socketB
41   2  0 020000 037777 socketA
42  1   0 020000 037777 QBus
43   2  0 000000 017777 socketB
44  1   0 010000 017777 socketA
45  1   0 000000 007777 socketB
46 0123 0 160000 160007 QBus
47 0123 0 160000 167777 localRAM
Falcon+

Код: Выделить всё

00 0 2  1 177600 177777 localRAM
01  1 3 1 177600 177777 QBus
02 0123 1 177570 177577 QBus
03 0123 1 177560 177567 DL0
04 0123 1 177540 177557 QBus
05 0123 1 177500 177537 QBus
06 0123 1 177400 177477 QBus
07 0123 1 177000 177377 QBus
08 0123 1 176600 176777 QBus
09 0123 1 176560 176577 QBus
10 0123 1 176550 176557 QBus
11 0123 1 176540 176547 DL1
12 0123 1 176500 176537 QBus
13 0123 1 176400 176477 QBus
14 0123 1 176300 176377 QBus
15 0123 1 176240 176277 QBus
16 0123 1 176220 176237 QBus
17 0123 1 176210 176217 QBus
18 0123 1 176200 176207 PIO
19 0123 1 176000 176177 QBus
20 0123 1 174000 175777 QBus
21 0123 0 160000 177777 QBus
22 0 2  1 170000 173777 socketA
23  1 3 1 170000 173777 socketB
24 0 2  1 164000 167777 socketA
25  1 3 1 160000 167777 socketB
26 0 2  1 160000 163777 QBus
27 0    0 140000 157777 localRAM
28  1 3 0 140000 157777 socketB
29   2  0 140000 157777 QBus
30 0    0 100000 137777 socketB
31  1   0 100000 137777 localRAM
32   2  0 100000 137777 QBus
33    3 0 100000 137777 socketA
34 0    0 000000 077777 QBus
35  1   0 000000 077777 socketA
36   2  0 000000 037777 socketB
37    3 0 000000 037777 localRAM
38    3 0 040000 077777 socketA
39   2  0 040000 057777 localRAM
40   2  0 060000 067777 localRAM
41   2  0 070000 073777 localRAM
42   2  0 074000 075777 localRAM
43   2  0 076000 076777 localRAM
44   2  0 077000 077377 localRAM
45   2  0 077400 077577 localRAM
46   2  0 077600 077777 QBus
ra3qdp писал(а): 30.04.2022,21:27 какое хотите сделать
Отличие от стандартного - использования SocketB вместо localRAM - на заработавшей плате с ним непонятное - то ли не работают микросхемы, то ли по времени не успевает, то ли что ещё - поэтому прошивкой я просто исключил использование localRAM, благо в SocketB стоит в сумме 64 кб - даже в корзине не требуется плата памяти

ra3qdp
Full Member
Сообщения: 234
Зарегистрирован: 05.11.2013,10:09
Откуда: Воронеж

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение ra3qdp » 30.04.2022,22:06

Hunta писал(а): 30.04.2022,21:43 Это уже было в моих темах - ищущий - да обрящет
задан прямой вопрос, подразумевается - прямой ответ.

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 30.04.2022,22:53

ra3qdp писал(а): 30.04.2022,22:06 задан прямой вопрос, подразумевается - прямой ответ.
Мне без разницы - кто и чего подразумевает.
Hunta писал(а): 30.04.2022,21:43 Это уже было в моих темах
Открываем, ищем, сравниваем. Вам это интересно - приложите усилия для достижения интересуемого

ra3qdp
Full Member
Сообщения: 234
Зарегистрирован: 05.11.2013,10:09
Откуда: Воронеж

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение ra3qdp » 30.05.2022,23:20

в таблице Falcon+ нет 47-го терма, почему ?

Hunta
Advanced Member
Сообщения: 427
Зарегистрирован: 31.08.2020,21:16
Откуда: Самара

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение Hunta » 31.05.2022,00:00

ra3qdp писал(а): 30.05.2022,23:20почему ?
Не нужен. Если вообще на заморачиваться на четыре варианта распределения памяти - можно резко сократить количество правил.
Последний раз редактировалось Hunta 02.06.2022,09:56, всего редактировалось 1 раз.

ra3qdp
Full Member
Сообщения: 234
Зарегистрирован: 05.11.2013,10:09
Откуда: Воронеж

M7676-AA (ака SBC-11/21-Plus ака Falcon-Plus) и я

Сообщение ra3qdp » 31.05.2022,09:14

Hunta писал(а): 30.04.2022,12:55 А по оценке быстройдействия результат примерно в полтора раза лучше, чем M8073. Не могу сказать, с чем это связано - кварц на плате стоит одинаковый, но - использовалась внешняя память на M8073 и набортная на M7676
внешняя память на Q-bus ?

не М8073, а, наверное М8063?

В своем тесте Вы, наверное первым делом проверяете максимальное быстородействие на самых простых командах ?
Но конкретно для Т11 R1+R0 classic (408 499 оп./сек) это не самая быстрая, MOV регистр-регистр в полтора раза быстрее.
Возможно и для других так же.

Ответить