Часть УУ работает
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 17:56 (UTC)no subject
Date: 2019-03-20 18:57 (UTC)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, увеличивает регистр стека (после выполнения), остальные уменьшают (перед выполнением).
У меня в голове уже сложилась картина, как добавить магазинный режим малой кровью. Давай я сделаю, а вы с Лёней покритикуете.
no subject
Date: 2019-03-27 03:21 (UTC)Но тест "stack" пока не проходит: не хватает команд APX, AUX, ACX и ANX.
no subject
Date: 2019-03-28 00:24 (UTC)ACX уже почти готова, нужен только микрокод, вызывающий потом ARX; остальные 3 можно для начала просто содрать из эмулятора. Пусть выполняются в 1 такт; оптимизировать синтез будем потом.
Код для сложения/умножения с нормализацией уже есть, осталось только интегрировать.
no subject
Date: 2019-03-28 01:46 (UTC)https://github.com/besm6/mesm6/commit/11406057e187224947a1b0716e9dbda04b45c312
https://github.com/besm6/mesm6/commit/cfe69ddc4df5c67a5812f90152cb895f2ca5d325
Наверное с точки зрения синтеза можно как-то улучшить, но я не знаю как.
no subject
Date: 2019-03-28 03:23 (UTC)Комбинационные сборка-разборка в любом случае будут синтезироваться совершенно безумно, так что рано или поздно придется делать state machine для скорости.
no subject
Date: 2019-03-28 06:29 (UTC)Если заменить pack() на тривиальное поразрядное "и", получается 188 лутов:
То есть pack() занимает порядка 1270-188 = 1082 LUTs.
no subject
Date: 2019-03-28 06:36 (UTC)no subject
Date: 2019-03-28 02:26 (UTC)Если на входе 0, команда возвращает 0, а не 48, как в БЭСМ-6.
Так делает микро-бэсм, и это логично.
Иначе бы единица и ноль на входе никак не различались.
Скажется ли это на Паскаль-компиляторе?
no subject
Date: 2019-03-28 03:12 (UTC)11(1) - это константа 6400...0, 21(1) - 6400...1.
Видимо, на ВЦ машина была хакнутая. Тады ой.