VituZz wrote:Lavr wrote:
А в том, что на одной выборке S0sum, к примеру,
выполняется несколько команд, которые при включенном суматоре имеют разные С, В и А.
Эту коммутацию и должен делать наш сложный дешифратор.
Признаться, я пока по дешифратору не понял, в чём смысл. Можно чуть больше слов?

Да в принципе - можно,
хотя я не люблю слов без готовой схемы.
Суть следующая: по выборке
S0sum включаются выходы сумматора на выходы АЛУ -
R0-R3.
Выполняется операция сумирования
R = А + B + C при этом
С = 0, значит это команда
ADD или
ADI.
Если выполнить простое вычитание, то
R = А + инверсия_B + C при этом
С = 1, значит это команда
SUB или
SUI.
Значит вычитание - это тоже сложение только надо включить инвертор
В, и включить
мультиплексор С = 1, но выборка
S0sum - должна быть включена!
И таких ситуаций, когда выборка
S0sum включена набегает примерно 6 или более штук.
То есть на разные коды операций дешифратор должен сделать активным один и тот-же выход:
S0sum.
Обычный дешифратор типа К155ИД4 так сделать не сможет.
У него
000 - на входе однозначно включает
S0sum на выходе.
Именно поэтому приходится сочинить хитрый дешифратор, который при разных кодах на входе будет делать активной одну и ту же линию
S0sum, но при этом переключать также
мультиплексор С,
инвертор В и
мультиплексор А, чтобы на включенном блоке сумматора реализовать суммирование, вычитание, сравнение, инкремент и декремент.
То есть - все эти операции выполняет сумматор, его включает выборка
S0sum , но вот аргументы и значение флага переноса на входе сумматора при этих операциях разные.
Это вкратце. Если я рассказал неубедительно, то очень хороша и понятна книжка:
Computation Structures (
MIT Electrical Engineering and Computer Science)
Все кто берутся за "самогонные компьютеры", обычно опираются на неё.
Ссылки есть в нашей "библиотеке". И ещё подходящую литературку я там упоминал...