Парадигма
Здесь довольно важно особенно выделить то, что машинный код должен выглядеть в относительно беглом субъективном восприятии именно псевдокодом на полях таблиц дампа и как можно минимально отдавать эзотеричностью каких-либо битовых полей.Дешифратор Команд
Одним из самых важных и ключевых элементов любого автомата является устройство декодирования именно того действия в определённый момент времени, которое имел ввиду сам программист, когда составлял порядок этих команд в своих алгоритмах.Сначала необходимо в Logisim сделать набросок дешифратора Кода-Койяанискаци, использовав наиболее доступные логические элементы из номенклатуры выпускаемой серии ТТЛ, чтобы обеспечить лёгкую сборку дешифратора на реальных микросхемах.
Здесь придумываем дешифратору УсловноеГрафическоеОбозначение, что необходимо для обеспечения компактности и наглядности целой схемы автомата в перспективе, а также для проверки корректности работы дешифрации всех 256 кодов инструкций.
Регистры Безвременных Префиксов
Когда визуальное тестирование работоспособности дешифратора прошло нормально и без видимых сбоев, пришло время подключить основные регистры хранения индексов активных РОН, срабатывающих по командам группы REG как архитектурные префиксы.Для обеспечения хранения векторов маршрутизации данных инструкциями АЛУ и ОЗУ, добавляется ещё один регистр и два связанных мультиплексора, с помощью которых можно связывать произвольные регистры любых групп в качестве операндов команд.
Сами по себе эти регистры не предназначены для хранения результатов вычислений и выполняют своего рода роль указателей на нужные регистры, чтобы обеспечить в программе управляемое взаимодействие между всеми доступными РОН и/или памятью.
Архитектурное Состояние
Обеспечение нормального программного взаимодействия всех регистров нуждается в наличии двухпортового РегистровогоФайла, отсутствующего в составе библиотек у Logisim, вынуждает искать другие более-менее затратные альтернативные решения. Классический Койяанискаци имеет довольно сложный РегистровыйФайл, который тут не рассматривается в качестве наглядного примера и требуется разработка нового решения по организации многотактового РегистровогоФайла с медленным доступом. Так как схема получилась однотактовой, организовать РегистровыйФайл в ОЗУ тут достаточно сложно и появляется необходимость построения многотактовой схемы со множеством специальных циклов, сменяющих друг друга в строго заданном порядке.Алгоритмическое выражение счётчика циклов может описываться как m&=m-1 с последовательным выключением всех активных битов архитектурного состояния, где в определённый момент МашинногоЦикла активируются только ключевые узлы схемы. Максимально развёрнутый прототип СчётчикаМашинныхЦиклов представить можно на эскизе подобной схемы, которая достаточно сложна к пониманию логики её работы.
Наиболее оптимальным и универсальным вариантом может служить и подобный эскиз:
И для использования в схеме УсловноеГрафическоеОбозначение может быть таким:
С помощью вентилей 3-ИЛИ-логики теперь можно сигнал каждой из команд перевести в битовую маску нужных циклов, необходимых для корректного исполнения команды, на весь период выполнения которой счётчик команд будет временно приостановлен.
Заключение
Итак, как можно убедиться, чтобы хоть более-менее начать разбираться в нюансах самостоятельного построения программируемого автомата, нам достаточно обойтисьдаже базовыми знаниями на уровнях прорисовки схемы моргающей ёлочной гирлянды. Здесь намеренно не использовались никакие известные всем справочные материалы, чтобы творческий процесс был более захватывающим и свободным от всяких мировых тенденций и трендов, не обращая внимания на все возможные просчёты или ошибки.
В следующей части я постараюсь продолжить своё пошаговое построение процессораакына,
так как новый черновой вариант у меня почти работает, но я решил его перерисовывать с нуля,
а заодно и задокументировать все ключевые стадии