Что вы можете сделать без модов и без командных блоков

В ванильном Minecraft (без модов) есть два пути к “компьютеру”.

1) Декоративный “ПК” - сборка, которая выглядит как компьютер. Она не дает реального вычисления. Такой вариант обычно делают через команды, которые запускают генерацию объектов, поэтому полностью без командных блоков он обычно не выходит.
2) Реальную “ЭВМ” на логических элементах - строят сами схемы из редстоуна: сумматоры, регистры, память, счетчик команд. Это тоже не “компьютер из коробки”, а проект, где вы управляете работой через механику редстоуна.

Поскольку запрос требует и без модов, и без командных блоков, ниже будет практичный вариант №2 - построение ЭВМ на редстоуне по принципу fetch-decode-execute, как в учебных проектах на логических элементах.

Подготовка: что нужно знать про ЭВМ в Minecraft

В цифровых схемах ЭВМ строят из логических элементов: AND, OR, XOR, NOT и их комбинаций. В игре это удобно тем, что сигнал либо есть, либо его нет.

Ключевые блоки, которые придется собрать:
- логические элементы (AND/OR/XOR/NOT и производные)
- регистры (хранение битов)
- память (хранение данных или команд)
- арифметический блок (АЛУ/АУ)
- счетчик команд (чтобы переходить по адресу)
- декодер команд (чтобы преобразовывать инструкцию в управляющие сигналы)

Общий цикл исполнения команды обычно такой: получить - декодировать - исполнить.

Эта логика описана в разборе построения ЭВМ на редстоуне (прототип с АЛУ, регистрами, памятью и декодером). См. статью на Habr: https://habr.com/ru/articles/820077/

Схема по шагам: минимальная ЭВМ на редстоуне

Ниже - рабочая структура проекта. Делайте по этапам, иначе сложно искать ошибки.

Шаг 1. Соберите базовые логические элементы

Сделайте устойчивые узлы для:
- NOT
- AND
- OR
- XOR

Используйте их дальше как “кирпичи” для более сложных блоков. Для проверки собирайте маленькие таблицы истинности на редстоуне: включили входы - получили предсказуемый выход.

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

Источник по логическим элементам и их применению в ЭВМ: https://habr.com/ru/articles/820077/

Шаг 2. Соберите АЛУ или хотя бы арифметический блок

Для минимальной ЭВМ обычно начинают с сумматора/вычитателя на битах. На практике это превращается в “цепочку” сумматоров по разрядам.

На уровне схем часто используют full-adder как строительный блок для сумматора. В описанном прототипе показывается, как из full-adder собирают 8-битную операцию и как поддерживают вычитание через дополнительные коды (инверсия и прибавление 1).

Источник по АЛУ на редстоуне и сборке сумматора: https://habr.com/ru/articles/820077/

Шаг 3. Сделайте регистры

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

Практическая схема такая:
- вы строите “бит памяти”
- затем повторяете ее 8 раз, чтобы получить 8-битный регистр
- объединяете входы записи и выходы чтения

В учебном проекте регистры реализуют через D-триггеры и объясняют, как наращивают разрядность.

Источник по регистрами на редстоуне: https://habr.com/ru/articles/820077/

Шаг 4. Соберите память

Минимально нужны:
- память данных (RAM-подобная), чтобы хранить значения
- память команд (ROM-подобная), чтобы выдавать инструкцию по адресу

В учебном прототипе память описана как блоки с ячейками и адресной шиной. Принцип такой: по адресу вы “считываете” сохраненный паттерн, а для RAM предусмотрена запись.

Источник по памяти и ее организации: https://habr.com/ru/articles/820077/

Шаг 5. Сделайте счетчик команд и тактирование

Счетчик команд нужен, чтобы:
- выдавать адрес в ROM-память
- при каждом такте переходить к следующей команде
- поддерживать остановку и переходы

Для тактирования удобнее всего сделать “часы” редстоун-логикой, чтобы адрес счетчика обновлялся с понятным периодом.

В описанном прототипе счетчик команд напрямую связан с ROM, а входы позволяют делать остановку и ветвления.

Источник по счетчику команд: https://habr.com/ru/articles/820077/

Шаг 6. Сделайте декодер команд

Декодер команд - это логика, которая берет код операции и включает нужные управляющие сигналы:
- какие регистры читать
- куда писать результат
- какую операцию выполнить в АЛУ
- нужен ли переход и куда

В прототипе декодер преобразует биты инструкции в управляющие линии для остальных блоков. Сначала проще собрать декодер под небольшой набор команд: например NOP, HLT, ADD, SUB, LOD/STR и переходы.

Источник по декодеру: https://habr.com/ru/articles/820077/

Шаг 7. Соедините блоки в архитектуру “получить - декодировать - исполнить”

На этом этапе важно задать “поток”:
1) счетчик команд выбирает адрес из ROM
2) ROM выдает инструкцию в декодер
3) декодер включает нужные управляющие сигналы
4) регистры читают входные данные
5) АЛУ выполняет операцию
6) запись результата уходит в регистр или память
7) счетчик команд обновляется на следующий такт или на адрес перехода

Проверяйте каждую часть отдельно тестовыми сигналами, а затем собирайте в цикл.

Источник по принципу цикла и устройству ЭВМ: https://habr.com/ru/articles/820077/

Что именно вы получите в итоге

  • Ванильную “ЭВМ” на редстоун-логике.
  • Возможность выполнять ограниченный набор команд.
  • Реальную обработку данных, но ценой трудоемкой сборки и настройки.

Это отличается от “ПК-декорации”. Декоративный компьютер обычно пытаются собрать через команды, а без командных блоков он часто упирается в то, что без внешней генерации вы не получите нужные блоки “по щелчку”. Поэтому рационально идти по редстоуну.

Типичные ошибки

Ошибка Как проявляется Как исправить
Собирать узлы сразу всей “машиной” Непонятно, где именно сломалось Сначала собирайте и тестируйте логические элементы, потом регистры, потом АЛУ, потом память
Слишком сложный набор команд на старте Проект зависает или дает неверные результаты Начните с 3-5 команд, добейтесь стабильной работы цикла
Нет явных тактов Данные “шевелятся”, запись не соответствует ожиданиям Задайте понятный период тактирования и проверяйте запись в моменты фронта
Нет контроля за адресами ROM и память выдают не те ячейки Добавьте индикацию: куда сейчас смотрит счетчик команд, какая инструкция декодируется

Итог

Чтобы построить компьютер в Minecraft без модов и без командных блоков, самый надежный путь - собрать ЭВМ из редстоун-логики: логические элементы, регистры, память, АЛУ, счетчик команд и декодер, затем собрать цикл fetch-decode-execute. Такой подход подробно разобран в учебном проекте на Habr, включая принципы логических элементов и архитектуру прототипа ЭВМ.

Полезные ссылки

  • Habr. Прототип ЭВМ на редстоуне, логические элементы и архитектура fetch-decode-execute: https://habr.com/ru/articles/820077/