Как работает CPU: интерактивный вводный урок

Simple CPU — маленький урок, который знакомит новичка с ключевыми понятиями информатики. Экспресс-курс за 5 минут объясняет любому постороннему человеку, что такое программирование. Хотя урок предназначен для «самых маленьких», но даже образованному человеку приятно видеть, насколько доступно и элегантно можно изложить сложный материал.Урок состоит из 8 интерактивных примеров.

1. Бинарное счисление.

2. Логические операции на примере штриха Шеффера (NAND gate).

b71f93b04c184832bcf1ece4eddb0799.gifШтрих Шеффера (NAND gate)3. Триггер. Демонстрирует, как хранится информация в компьютере. Верхний переключатель изменяет значение бита, а нижний включает/отключает хранение.

4c953b61313c4cf9b19dedb20e5e8dd0.gifD-триггер (триггер задержки)

Восемь триггеров сохраняют 1 байт информации.

4. Логические операции AND, OR, XOR. Щёлкая мышкой по входящим значениям, можно наглядно посмотреть, как они работают.

ef9b33b2125f4b68b1b7f47a71917256.gif

Что делать с числами, которые мы храним в памяти?

5. На схеме показано устройство под названием сумматор, которое складывает два бита. Если нужно сложить несколько бит, то последовательно используется несколько сумматоров: вход одного (carry in) подключается к выходу другого (carry out).

1b35601ae5944c49927584e336280c3f.gif

Опять же, это интерактивная схема.

Далее, как из калькулятора сделать компьютер?

6. Программирование.

С точки зрения CPU, программа не отличается от данных в том смысле, что здесь такой же двоичный код. Но он воспринимаются как инструкции. Например:

Инструкция Код «Добавить одно число к другому»    00000001 «Вычесть одно число из другого»    00000010 У каждого байта в памяти есть свой адрес, так что мы можем обратиться к CPU и попросить сделать что-то с конкретным байтом. Например, если нужно обратиться к ячейке памяти № 5, то мы указываем её адрес 00000101.Таким образом, команда «Сложить число в ячейке памяти № 5 с числом в ячейке памяти № 7 транслируется в машинный код:

00000001 00000101 00000111(сложить)(адрес № 5)(адрес № 7)

7. Набор инструкций CPU.

8. Эмулятор CPU.

Здесь автор предлагает поиграться с простым эмулятором процессора, указывая инструкции в отдельных ячейках памяти. При этом инструкции меняют значение других ячеек, где тоже хранятся инструкции. Можно придумать забавные рекурсии. Компьютер понимает три инструкции: сложение, вычитание и перемещение данных из одной ячейки в другую.

Simple CPU на Github

Об авторе P.S. Интересно, что проект родился на форумах Reddit, а его автор — только что закончивший школу пользователь r00nk. Поскольку r00nk двоечник, его сейчас не берут ни в один хороший колледж, так что он пытается пройти курс информатики самостоятельно, попутно изучая OpenGL.

© Habrahabr.ru