Оптимизации АЛУ
Apr. 8th, 2019 12:37 pmПосле переписывания дорогих команд сборки, разборки и сдвига в многотактный вид и исправления нормализации вправо инвертированных мантисс (прибавлять младший бит инверсии можно по ходу нормализации, и в окончательном суммировании РМРу участвовать больше не нужно) всё стало гораздо компактнее:
Коммит будет сегодня вечером.
There are 31 levels of combinational cells
2-input LUTs: 309
3-input LUTs: 231
4-input LUTs: 228
5-input LUTs: 375
6-input LUTs: 726
Total LUT area: 1869
State : 204
(FF) : 204
CARRY4 : 132
DSP : 6
Коммит будет сегодня вечером.
no subject
Date: 2019-04-09 06:16 am (UTC)Что делать с текущим К1 при вызове вложенного экстракода?
Можно сделать Экстракоды так чтобы они всегда выталкивали полный текущий PC_next по адресу [K15--], а команда ВЫПР возвращалась на [++K15]. При необходимости, программное выталкивание К2, К3 прописать в "соглашении о программных вызовах".
no subject
Date: 2019-04-09 07:05 am (UTC)Напомню, что стек в БЭСМ-6 растёт в сторону увеличения адресов, и 15-й регистр указывает на первую свободную ячейку стека. Поэтому push - это присваивание mem[M15++], а pop - это чтение из mem[--M15].
no subject
Date: 2019-04-10 04:57 am (UTC)no subject
Date: 2019-04-10 01:45 pm (UTC)Есть мысль, чтобы процессор ходил в память через арбитр как в БЭСМ6, что позволит реализовать подсистемы блочного ввода/вывода с SD-карты, Ethernet (через шилд от ардуины), UART (протокол похожий на SLIP). Обращение к регистрам ввода/вывода сделать через команду УВВ (033), запрет/разрешение прерываний по маске через РЕГ 002.