Simple CPU — маленький урок, который знакомит новичка с ключевыми понятиями информатики. Хотя урок далеко не полный и предназначен для «самых маленьких», но даже образованному человеку приятно видеть, насколько доступно и элегантно можно изложить сложный материал.
Урок состоит из 8 интерактивных примеров.
2. Логические операции на примере штриха Шеффера (NAND gate).
Штрих Шеффера (NAND gate)
3. Триггер. Демонстрирует, как хранится информация в компьютере. Верхний переключатель изменяет значение бита, а нижний включает/отключает хранение.
D-триггер (триггер задержки)
Восемь триггеров сохраняют 1 байт информации.
4. Логические операции AND, OR, XOR. Щёлкая мышкой по входящим значениям, можно наглядно посмотреть, как они работают.
Что делать с числами, которые мы храним в памяти?
5. На схеме показано устройство под названием сумматор, которое складывает два бита. Если нужно сложить несколько бит, то последовательно используется несколько сумматоров: вход одного (carry in) подключается к выходу другого (carry out).
Опять же, это интерактивная схема.
Далее, как из калькулятора сделать компьютер?
6. Программирование.
С точки зрения CPU, программа не отличается от данных в том смысле, что здесь такой же двоичный код. Но он воспринимаются как инструкции. Например:
Инструкция | Код | |
«Добавить одно число к другому» | 00000001 | |
«Вычесть одно число из другого» | 00000010 |
У каждого байта в памяти есть свой адрес, так что мы можем обратиться к CPU и попросить сделать что-то с конкретным байтом. Например, если нужно обратиться к ячейке памяти № 5, то мы указываем её адрес 00000101.
Таким образом, команда «Сложить число в ячейке памяти № 5 с числом в ячейке памяти № 7 транслируется в машинный код:
00000001 00000101 00000111
(сложить)(адрес № 5)(адрес № 7)
8. Эмулятор CPU.
Здесь автор предлагает поиграться с простым эмулятором процессора, указывая инструкции в отдельных ячейках памяти. При этом инструкции меняют значение других ячеек, где тоже хранятся инструкции. Можно придумать забавные рекурсии. Компьютер понимает три инструкции: сложение, вычитание и перемещение данных из одной ячейки в другую.
Автор: alizar