Часть УУ работает
2019-03-12 11:06МЭСМ-6 уже проходит несколько тестов: работают команды uj, vtm, utm, mtj, vzm, v1m, j+m, vjm, vlm, utc, wtc.
Я добавил в фазу decode автоматическое приращение счётчика команд (PC), теперь некоторые команды выполняются за один такт (vtm, utm, mtj. j+m).
Описание микроархитектуры по мере разработки постепенно образуется на странице: https://github.com/besm6/mesm6/wiki/Microarchitecture
Я добавил в фазу decode автоматическое приращение счётчика команд (PC), теперь некоторые команды выполняются за один такт (vtm, utm, mtj. j+m).
Описание микроархитектуры по мере разработки постепенно образуется на странице: https://github.com/besm6/mesm6/wiki/Microarchitecture

no subject
Date: 2019-03-20 21:10 (UTC)Специальный интерес представляют только команды, инкрементирующие SP.
no subject
Date: 2019-03-21 05:05 (UTC)Инкрементирующая только одна команда: ATX 0(15).
no subject
Date: 2019-03-21 05:31 (UTC)Да ну его, чем добавлять хитрые цепи в УУ, проще ввести отдельные микропрограммы для стекового режима.
no subject
Date: 2019-03-21 06:24 (UTC)no subject
Date: 2019-03-21 06:37 (UTC)Там чуть сложнее, потому что нужны незащелкнутые значения на такт раньше, но это непринципиально.
И этот бит добавляется в индекс для entry16[] и entry64[] при вычислении адреса перехода.
no subject
Date: 2019-03-23 04:42 (UTC)Исходя из тех таблиц получаются, что только две команды которые обращаются к памяти дважды - STX, XTS которые потребуют отдельный микрокод.
Только три команды в случае "магазина" - ATX, XTS, ITS увеличивают SP после исполнения, все остальные "магазинные" его уменьшают перед исполнением.
Может всё таки не так страшно будет ввести дополнительные сигналы в микрокоманду?
В logisim есть запас, да и расширить эту часть тривально - добавив еще одну "микросхему" ПЗУ.
no subject
Date: 2019-03-23 04:59 (UTC)https://github.com/besm6/simh/blob/master/BESM6/besm6_cpu.c#L911
Точнее не бывает. На этом симуляторе весь бэсмовский софт, который нам удалось собрать, выполняется абсолютно правильно.
Команды STX, XTS, STI и ITS, несмотря на название, к магазинному режиму нечувствительны. С нулевым адресом и 15 регистром они выполняются ровно так же, как и обычно.
В магазинном режиме работают команды: ATX, A+X, A-X, X-A, AMX, XTA, AAX, AEX, ARX, AVX, AOX, A/X, A*X, APX, AUX, ACX, ANX, E+X, E-X, ASX, XTR и WTC. Только одна из них, а именно ATX, увеличивает регистр стека (после выполнения), остальные уменьшают (перед выполнением).
У меня в голове уже сложилась картина, как добавить магазинный режим малой кровью. Давай я сделаю, а вы с Лёней покритикуете.