Войти
ФлеймФорумПроЭкты

16-bit mode of KISC (Koy Instruction Set Computing): «Koy-Machine» by Alikberov

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 310 11 Следующая »
#0
(Правка: 13 дек. 2020, 19:19) 0:00, 6 дек. 2020

Discord-Канал (05.07.2020)

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Eсли x80 задумывался как процессор с интуитивно понятным машинным кодом CISC-архитектуры, то описываемый здесь процессор является попыткой разработки интуитивно понятной системы команд в рамках RISC-архитектуры.
Основной материал с описанием моей архитектуры можно найти на дебютной странице с максимально исчерпывающим документационным материалом.
Замечание #118 было взято мною за девиз и всю схему в Logisim я рисовал именно так, как я понимаю построение процессора вообще…

Если Вы прочли меня на Хабре, то уже ознакомились с особенностями этого моего процессора.
Если же Вам лень что-либо читать от меня, то кратко изложу всё сжато здесь…

Была идея придумать такой процессор, система команд которого своими нибблами, если их озвучивать фонетическим способом, несла бы в себе основную смысловую нагрузку и сам шестнадцатеричный дамп кода уже представлял собой набор мнемоник…
Например, код «A5» означает «Регистр #A₅», код «B7» означает «Регистр #B₇», код «BA» означает связку операндов «B,A» для любых АЛУ-операций, как «3E», означающего «B₇ Eor A₃» в данном случае комбинации перечисленного кода…
Тем самым, для кодирования какого-либо алгоритма не требуется ни транслятор, ни зубрёж всех кодов команд. А сам дамп можно было бы выполнить даже механически, из 512 тумблеров подобного типа:
Изображение

Много времени ушло на разработку дешифратора команд, так как первые варианты строились на ПЗУ со специальной прошивкой. Но я сделал упор на комбинаторику и сначала отладил блок дешифрации команд в Logisim с акцентом на стандартную номенклатуру ТТЛ:
Изображение
Что существенно облегчило мне перерисовку схемы в Proteus:
Изображение
Так как в Logisim существенно легче всё отлаживать, чем в Proteus или в ModelSim…

Схема индикации состояния:
Изображение

+ Схема регистрового файла
+ Quartus синтез схемы


#1
0:01, 6 дек. 2020

reserved…

#2
0:02, 6 дек. 2020

reserved…

#3
0:03, 6 дек. 2020

reserved…

#4
0:04, 6 дек. 2020

reserved…

#5
0:05, 6 дек. 2020

reserved…

#6
0:06, 6 дек. 2020

reserved…

#7
0:07, 6 дек. 2020

reserved…
#7

#8
0:08, 6 дек. 2020

reserved…
#8

#9
0:09, 6 дек. 2020

#9

#10
0:59, 6 дек. 2020

Основная фишка ассемблера — что он умеет автоматом расставлять куски кода/данных по памяти и заменять имена меток на конкретные адреса. От этой функциональности никуда не уйти, соответственно, без ассемблера работать, по любому, невозможно. А раз ассемблер все равно есть, то и смысла в человекочитаемом машинном коде (ценой усложнения схемотехники) никакого.

#11
5:56, 6 дек. 2020

}:+()___ [Smile]
> то и смысла в человекочитаемом машинном коде (ценой усложнения схемотехники)
> никакого.

70 лет назад смысл был: https://gamedev.ru/flame/forum/?id=247237
Тем не менее забавно конечно.

#12
9:20, 6 дек. 2020

Ты бы лучше аппаратную потдержку нейросетей проектировал. Тьюринг-архитектура скоро станет лишь тонкой и забытой перефирией.

#13
(Правка: 7 дек. 2020, 0:00) 12:21, 6 дек. 2020

раб вакуумной лампы
> Ты бы лучше аппаратную потдержку нейросетей проектировал.
Нейросeть «Мадам Пип», ага… :)
> Тьюринг-архитектура скоро станет лишь тонкой и забытой перефирией.
На некоторых сайтах подобная архитектура почти приветствуется как наиболее удобная для решения разных специфических задач.
Например, сотней таких тумблеров можно набить код на 50 байтов. А 50 операций - это достаточно сложная программа уже!
Например, дождаться, пока вскипит чайник и отключить плиту. Сейчас это модно делать на Raspberry Pi под ARM'ом, хотя это - как из пушки по воробьям.

А предлагаемый мною Койяанискаци вполне позволит сделать это
Изображение

}:+()___ [Smile]
> (ценой усложнения схемотехники)
Разве это - сложнейший дешифратор команд?
Изображение

+ Эскиз печатной платы декодера команд

Если исполнительный блок делать Гарвардским, то процессор вообще упрощается в разы.
Думаю, Вы просто не загружали схему и не запускали её в симуляции: Самое сложное в ней - регистровый файл. :)

К тому же, весь процессор задумывался как универсальный по разрядности.
Его можно сделать и 4-битный, что упростит регистровый файл.
Его можно сделать и 64-битный, что позволит производить SIMD-вычисления.
Так как машинный код не зависит от разрядности регистров (от слова совсем, если выбран Гарвардский режим выборки команд), то АЛУ и регистры можно делать любой разрядности.
То есть:
#14
21:19, 6 дек. 2020

Alikberov
> Разве это - сложнейший дешифратор команд?
Для RISC-микроконтроллера — да.
В простейшем случае там, вообще, никакой логики, битовые линии напрямую в register select и ALU идут.

> Сам процессор, по-хорошему, идеально было бы сделать как наращиваемую процессорную секцию со внешним регистровым файлом и АЛУ.
В век интегральных микросхем это даст нереальные лаги.

Страницы: 1 2 310 11 Следующая »
ФлеймФорумПроЭкты