Этот процессор может быть выполнен на транзисторах в домашних условиях. Схема строится только на логических элементах NOT, OR, AND, XOR, NOR. Битность можно задать любую добавляя провода и логические элементы в соответствии со схемой. Здесь представлена схема минималистичного 4-х битного варианта на 155 логических элементов.
Для просмотра схемы используйте Logic Circuit: https://www.logiccircuit.org/
English. This processor can be hand-made. The only logic gates the circuit uses are NOT, OR, AND, XOR, NOR. You can adjust the word size by adding more wires and logic gates in line with the circuit. The circuit provided here is a minimalistic 4-bit one with 155 logic components.
Use Logic Circuit to view the circuit: https://www.logiccircuit.org/
В src находится эмулятор процессора, написанный на языке C, компилируется командой gcc "эмуляция.c". Эмулятор имеет некоторый набор операций, который при необходимости нужно добавить в память схемы, так как представленная схема имеет только одну операцию - инкремент счётчика комманд. С помощью эмулятора можно задать битность процессора, написать для него программу и посмотреть на результат выполнения.
Для запуска схемы в LogicCircuit нужно
- загрузить программу в ПЗУ, расположенном на схеме "Память"
- включить питание схемы ctrl + W
- выключить кнопку сброса на схеме.
Программа состоит из последовательности LOAD/STORE операций между регистром-аккумулятором и ячейками RAM памяти. Выполнение одной операции занимает 2 такта генератора тактовой частоты.
- 0-й бит: команда, если 0, то команда записи из регистра-аккумулятора в адрес, заданный в битах 2...N, если 1 то чтение из адреса в регистр-аккумулятор
- 1-й бит: условное выполнения, если значение 1 то текущая команда выполняется в любом случае, если 0 то выполнится только если в регистре-аккумуляторе не все нули
- 2-N биты: адрес в little-endian
Из-за особенностей представления кода 2 первых бита не используются в кодировании адреса, потому память для 4-х битного процессора адресуется 2-мя битами, т.е. всего 4 ячейки доступны, из них ячейка 00 отведена под 2-х битный program counter, 01 - RAM, 02, 03 - ПЗУ. Для адресации некоторого количества памяти нужно на 2 бита больше, например для адресации 64 КБ RAM памяти нужна разрядность процессора в 18 бит.