- PVSM.RU - https://www.pvsm.ru -
Simple CPU [1] — маленький урок, который знакомит новичка с ключевыми понятиями информатики. Хотя урок далеко не полный и предназначен для «самых маленьких», но даже образованному человеку приятно видеть, насколько доступно и элегантно можно изложить сложный материал.
Урок состоит из 8 интерактивных примеров.
1. Бинарное счисление [2].
2. Логические операции [3] на примере штриха Шеффера (NAND gate).
Штрих Шеффера (NAND gate)
3. Триггер [4]. Демонстрирует, как хранится информация в компьютере. Верхний переключатель изменяет значение бита, а нижний включает/отключает хранение.
D-триггер (триггер задержки)
Восемь триггеров сохраняют 1 байт информации.
4. Логические операции AND, OR, XOR [5]. Щёлкая мышкой по входящим значениям, можно наглядно посмотреть, как они работают.
Что делать с числами, которые мы храним в памяти?
5. На схеме показано устройство под названием сумматор [6], которое складывает два бита. Если нужно сложить несколько бит, то последовательно используется несколько сумматоров: вход одного (carry in) подключается к выходу другого (carry out).
Опять же, это интерактивная схема.
Далее, как из калькулятора сделать компьютер?
6. Программирование [7].
С точки зрения CPU, программа не отличается от данных в том смысле, что здесь такой же двоичный код. Но он воспринимаются как инструкции. Например:
Инструкция | Код | |
«Добавить одно число к другому» | 00000001 | |
«Вычесть одно число из другого» | 00000010 |
У каждого байта в памяти есть свой адрес, так что мы можем обратиться к CPU и попросить сделать что-то с конкретным байтом. Например, если нужно обратиться к ячейке памяти № 5, то мы указываем её адрес 00000101.
Таким образом, команда «Сложить число в ячейке памяти № 5 с числом в ячейке памяти № 7 транслируется в машинный код:
00000001 00000101 00000111
(сложить)(адрес № 5)(адрес № 7)
7. Набор инструкций CPU [8].
8. Эмулятор CPU [9].
Здесь автор предлагает поиграться с простым эмулятором процессора, указывая инструкции в отдельных ячейках памяти. При этом инструкции меняют значение других ячеек, где тоже хранятся инструкции. Можно придумать забавные рекурсии. Компьютер понимает три инструкции: сложение, вычитание и перемещение данных из одной ячейки в другую.
Simple CPU на Github [10]
Автор: alizar
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/72151
Ссылки в тексте:
[1] Simple CPU: http://www.simplecpu.com/
[2] Бинарное счисление: http://www.simplecpu.com/Binary.html
[3] Логические операции: http://www.simplecpu.com/NAND.html
[4] Триггер: http://www.simplecpu.com/memory.html
[5] Логические операции AND, OR, XOR: http://www.simplecpu.com/moreGates.html
[6] схеме показано устройство под названием сумматор: http://www.simplecpu.com/adder.html
[7] Программирование: http://www.simplecpu.com/code.html
[8] Набор инструкций CPU: http://www.simplecpu.com/InstructionPointer.html
[9] Эмулятор CPU: http://www.simplecpu.com/cpu.html
[10] Simple CPU на Github: https://github.com/r0nk/simplecpu
[11] родился на форумах Reddit: https://www.reddit.com/r/explainlikeimfive/comments/2ax3k3/eli5_how_does_a_computer_actually_work_like_how/cizpwki
[12] r00nk: https://www.reddit.com/user/r00nk
[13] Источник: http://habrahabr.ru/post/240929/
Нажмите здесь для печати.