Руководство по TD4: четырёхбитный самодельный процессор
TD4, это учебный четырёхбитный процессор, доступный как набор на Aliexpress. Устройство содержит 2 регистра (A и B), программное ПЗУ ёмкостью 16 байт и сигнальные светодиоды. Несмотря на минимальные возможности, плата демонстрирует основные принципы организации компьютерной архитектуры: дешифратор адреса, селектор данных, сумматор, логика управления потоком и регистры переноса для обнаружения переполнения.
Программа загружается через DIP-переключатели, где каждый переключатель кодирует одну инструкцию: 4 бита определяют опкод (ADD, MOV, IN, OUT, JNC, JMP), остальные 4 бита задают непосредственное значение. Статья включает примеры реальных программ: мигание светодиодов, счёт вверх и вниз по модулю 16, а также Python-ассемблер и симулятор для тестирования кода перед загрузкой на плату.
Ключевые факты
- TD4 состоит из 2 регистров (A, B) и ПЗУ на базе 16 DIP-переключателей, всего 16 инструкций памяти
- Архитектура включает дешифратор адреса, селектор данных, 4-битный сумматор и D-триггер для управления условными прыжками
- Набор инструкций: ADD, MOV, IN, OUT, JNC, JMP, где непосредственное значение кодируется в обратном порядке
- Примеры программ демонстрируют счёт, условные переходы и использование переноса как флага переполнения
- Включен Python-ассемблер с регулярными выражениями и симулятор для отладки логики до программирования платы
Ред. Шестнадцать байт памяти и шесть инструкций: оптимизировать тут придётся не ради скорости, а ради того, чтобы хоть что-то поместилось.
Почему это важно
TD4, это минималистичный, но функционально полный процессор, который наглядно показывает, как работают все основные компоненты современного компьютера. Вместо чёрного ящика вроде x86 студент видит каждую цепочку: как программа в памяти управляет адресом, как адрес выбирает инструкцию, как инструкция управляет сумматором и регистрами. Это знание необходимо для глубокого понимания компьютерной архитектуры, а не только для её использования.
Ред. Здесь чёрного ящика нет, потому что весь компьютер и есть открытая коробка с торчащими ножками.
Кому это важно
Студентам, изучающим цифровую электронику, компьютерную архитектуру и логический синтез. Инженерам, которые хотят понять, как работают микроконтроллеры и FPGA, но без отвлечения на отраслевую сложность. Hobbyistам, интересующимся электроникой и процессорами. Преподавателям, которым нужен конкретный, собираемый пример для обучения.
Ред. Курс по архитектуре, где первое домашнее задание это паяльник.
Как это применить
Заказать набор TD4 (около 10, 20 долларов на Aliexpress), припаять компоненты и загрузить простые программы на DIP-переключатели согласно описанной схеме кодирования. Использовать приложенный Python-ассемблер для преобразования мнемоники в битовые последовательности. Начать с простых программ (вывод константы на светодиоды), затем пробовать условные переходы и циклы. Плата включает переключатели для ручного или автоматического тактирования, что позволяет пошагово отлаживать логику.
Ред. Двадцать долларов и навык не путать минимальный значимый бит с местом, где он лежит на плате.
Можно ли доверять
Автор подробно разбирает принципы работы и приводит конкретные примеры программ с объяснением кодирования. Статья основана на личном опыте сборки и тестирования платы, включая ошибки, которые они допустили (например, неправильный порядок прыжков в условном переходе). Python-код содержит регулярные выражения для парсинга и полный симулятор состояния машины, что позволяет проверить логику до загрузки на плату. Ссылки на исходные сведения (репозиторий на GitHub) доступны для самопроверки.
Ред. Автор честно описывает собственный баг с порядком прыжков, и это внушает больше доверия, чем безупречный туториал.
Риски и подводные камни
Припайка поверхностных диодов требует внимания к полярности (маленькая линия на одной стороне). Припайка USB-разъёма трудна, если её делать после установки микросхем (рекомендуется припаивать его в первую очередь). Порядок битов в DIP-переключателях противоинтуитивен: минимальный значимый бит находится внизу, что может привести к ошибкам кодирования. Ограничение в 16 байт памяти значительно, даже простые программы требуют осторожного управления адресами переходов. Ошибки в программировании переключателей сложны для отладки без симулятора.
Ред. Сначала припаять USB, потом микросхемы, не перепутать полярность диодов: половина рисков проекта решается порядком действий, а не знанием архитектуры.
«Soldering all those diodes sucked.»
— Philip Zucker, guide author