Проектирование процессорного устройства «Койяанискаци» шаг за шагом

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
В отличии от аналогичных материалов по проектированию процессора с применением справочного материала книги «Код» Чарльза Петцольда и придерживанием некоторых правил, здесь будет изложена позиция проектировщика лишь на собственном опыте. Основной акцент будет направлен на построение автомата программного управления с машинным кодом, который представляется не сухим набором нулей или единиц, но читаем аббревиатурами двухсимвольных слов шестнадцатеричной системы счисления. Здесь машинный код будет придерживаться парадигмы псевдокода, который довольно легко понимаем подготовленным разработчиком и легко исполняем на уровне железа малой ТТЛ-номенклатурой данным целевым проектируемым процессорным устройством.

Парадигма

Здесь довольно важно особенно выделить то, что машинный код должен выглядеть в относительно беглом субъективном восприятии именно псевдокодом на полях таблиц дампа и как можно минимально отдавать эзотеричностью каких-либо битовых полей.

Дешифратор Команд

Одним из самых важных и ключевых элементов любого автомата является устройство декодирования именно того действия в определённый момент времени, которое имел ввиду сам программист, когда составлял порядок этих команд в своих алгоритмах.

Сначала необходимо в Logisim сделать набросок дешифратора «Кода-Койяанискаци», использовав наиболее доступные логические элементы из номенклатуры выпускаемой серии ТТЛ, чтобы обеспечить лёгкую сборку дешифратора на реальных микросхемах.
image
Здесь придумываем дешифратору Условное Графическое Обозначение, что необходимо для обеспечения компактности и наглядности целой схемы автомата в перспективе, а также для проверки корректности работы дешифрации всех 256 кодов инструкций.
image

Регистры Безвременных Префиксов

Когда визуальное тестирование работоспособности дешифратора прошло нормально и без видимых сбоев, пришло время подключить основные регистры хранения индексов активных РОН, срабатывающих по командам группы REG как архитектурные префиксы.
image
Для обеспечения хранения векторов маршрутизации данных инструкциями АЛУ и ОЗУ, добавляется ещё один регистр и два связанных мультиплексора, с помощью которых можно связывать произвольные регистры любых групп в качестве операндов команд.
image
Сами по себе эти регистры не предназначены для хранения результатов вычислений и выполняют своего рода роль указателей на нужные регистры, чтобы обеспечить в программе управляемое взаимодействие между всеми доступными РОН и/или памятью.

Архитектурное Состояние

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

С помощью вентилей 3-ИЛИ-логики теперь можно сигнал каждой из команд перевести в битовую маску нужных циклов, необходимых для корректного исполнения команды, на весь период выполнения которой счётчик команд будет временно приостановлен.
image

Заключение

Итак, как можно убедиться, чтобы хоть более-менее начать разбираться в нюансах самостоятельного построения программируемого автомата, нам достаточно обойтись
даже базовыми знаниями на уровнях прорисовки схемы моргающей ёлочной гирлянды. Здесь намеренно не использовались никакие известные всем справочные материалы, чтобы творческий процесс был более захватывающим и свободным от всяких мировых тенденций и трендов, не обращая внимания на все возможные просчёты или ошибки.

В следующей части я постараюсь продолжить своё пошаговое построение «процессора акына»,
так как новый черновой вариант у меня почти работает, но я решил его перерисовывать с нуля,
а заодно и задокументировать все ключевые стадии…
Источник: https://habr.com/ru/post/536686/


Интересные статьи

Интересные статьи

Озера данных (data lakes) фактически стали стандартом для предприятий и корпораций, которые стараются использовать всю имеющуюся у них информацию. Компоненты с открытым исходным к...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.
Говорят, ремонт хуже пожара. К счастью, у нас есть «Леруа Мерлен», поэтому тушить ремонтный пожар гораздо проще. Мы мчимся в ближайший Леруа и хаотично скупаем штукатурку, гипсокартон, армату...
Как быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над са...
Хочу рассказать о статье "I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions", опубликованной на личной странице одного из разработчиков ScyllaDB, Pekk...