CARDIAC - комп'ютер з паперу своїми руками

Якщо ви берете шматок паперу, принтер ручки, ножиці і клею ...




Вступ
У літньому комп'ютерній школі ми іноді пропонуємо дітям побудувати «біокомп'ютер», тобто обчислювальний апарат від чого лежить буквально під ногами. Так як діти не знають, як працюють обчислювальні пристрої, вони зазвичай отримують щось схоже на картинку під псуванням. Але деякі люди роблять бали або abacus.
Біокомп'ютер



У 1968 році в лабораторії Bell’s. Комп'ютер називається CARDIAC (CARDboard Illustrative Aid to Computation), яка грубо перекладається як картонний візуальний обчислювальний посібник. Тобто, по суті, це не зовсім комп'ютер, так як провідник сигналів, а також арифметично-логічний пристрій в ньому є особою. Тим не менш, це дозволяє нам зрозуміти деякі принципи, що лежать в основі сучасних обчислень. Крім того, після короткого пошуку я знайшов опис і матеріали для виготовлення CARDIAC.

Як працює комп'ютер
CARDIAC складається з двох блоків – пам’яті та процесора. Кілька паперових смужок вставляються в блок процесора за допомогою якого потрібно вибрати інструкцію виконання. Крім того, стрічка вставляється в блок пам'яті, де відбувається вихід, а стрічка з вхідними даними вставляється в процесор.


Навігація
Комп'ютер має 100 клітин пам'яті з адресами від 00 до 99. Кожен може бути використаний для зберігання однієї інструкції або одного тримісного числа. Будь-який з клітин можна переписати, тому ви навіть можете написати програму самомоделювання, якщо ви хочете. Значення в клітинах записані олівцем, і модифіковані олівцем і еустом. У той же час значення 001 завжди «вишита» в комірці 0. Дуже зручно використовувати для підсилення, так як комп'ютер не має команд з безпосередними значеннями аргументів.

Як виглядає оригінальний блок пам'яті:
8042834

Інструкції
У оригіналі дамба використовується як лічильник інструкцій, так як на малюнку вище. У кожній з клітин пам'яті вставляється спеціальні отвори. З Я не хочу зробити 100 отворів, я використовував ще одну дамбунку для позначення лічильника команди - Я просто виклав його на правій комірці.



Акумулятори
Єдиний реєстр в комп'ютері є акумулятором. Застосовується для виконання арифметичних операцій (додатків, відступу, зсуву), а також для умовних переходів. На відміну від клітин пам'яті, акумулятор може зберігати 4 десяткових біт.

Командна система
Кожна інструкція зашифрована трьома цифрами. Перший номер завжди є кодом операції. Решта двох цифр, як правило, адреса комірки, яка працює на інструкції.

CARDIAC може виконувати 10 різних інструкцій (коди 0 до 9):
  • 0 - INP - значення введення з вхідної стрічки
  • 1 – CLA – завантаження вмісту комірки пам’яті в акумулятор
  • 2 - ADD - додаючи до батареї пам'яті
  • 3 - TAC - перейти на задану адресу, якщо значення батареї негативно
  • 4 – SFT – операція з перемикання лівих і правих на задану кількість десяткових місць
  • 5 - OUT - вихід комірки пам'яті на вихідну стрічку
  • 6 - СТО - запис батареї в комірці пам'яті
  • 7 - SUB - відхилення від батареї пам'яті
  • 8 – JMP – безумовний перехід на задану адресу
  • 9 - HRS - зупинки і скидання

Комп'ютерне виробництво
Я роздрукував замкнені матеріали на товстому папері, виріжте всі необхідні отвори, вставляємо смуги руху всередині і приклеюємо обидва блоки разом.

р.





Як це працює?
Функція комп'ютера полягає в тому, щоб виконати інструкції послідовно. Перед початком виконання необхідно побачити, де дамбаг є (тобто лічильник інструкції) і перенести смуги, щоб набрати значення з цієї комірки пам'яті в вікні «Інструкції реєстрації».



Далі потрібно слідувати стрілками, починаючи з напису «Старт» і дотримуйтеся всіх інструкцій. Наприклад, в вищезгаданій картині спочатку потрібно перемістити інструкцію контр вперед, а потім додати вміст комірки 41 до акумулятора.

Звісно, розрахунки (видача, відступ і зсув) будуть виконуватися вручну. Для цього поруч з написом "Акумулятор" є кілька вікон, які дозволяють додати / вивести в стовпчик.

Приклад роботи комп'ютера
Для початку, я «розроблений» (тобто, олівцем в клітинки пам'яті від 17 до 23) першим з програм в інструкції:
Адреса значення Decoding 17 034 Введіть значення в клітині 34 18 035 Введіть значення в комірці 35 19 134 Скопіювати клітинку 34 в акумулятор 20 235 Додати клітинку 35 до батареї 21 636 Написати акумулятор в комірці 36 22 536 З комірки 36 23 900 Стоп і скидання
Ця програма додає два номери, які прочитаються з вхідної стрічки і записують результат на вихідну стрічку.
Введення інструкції прочитає значення з вхідної стрічки, пише її на даній комірці, а потім пересуває вхідну стрічку одним кроком вперед, щоб наступне значення з'являється в вхідному вікні. У цьому випадку вам доведеться скористатися олівцем (і можливо, епоху) для написання значення до комірки пам'яті.

Після виконання цієї програми з вхідними значеннями 42 та 128, стан пам'яті:



Комп'ютер "швидкість"
Що таке комп'ютерний огляд без бендиктів? Я взяв наступну програму з керівництва, призначену для розмноження двох чисел.
Адреса Декодування 07 068 Введіть значення в комірці 68 08 404 Замінити акумулятор, змінивши 4 праворуч 09 669 Написати акумулятор в комірці 69 10 070 Введіть значення в комірці 70 11 170 Завантажити комірку 70 до батареї 12 700 Відняти клітинку 0 (тобто значення 1) від батареї 13 670 Написати акумулятор в комірці 70 14 319 Якщо акумулятор негативний, то перейдіть на адресу 19 16 16 169 Завантажте клітинку 69 до акумулятора 17 669 Написати акумулятор до комірки 18 69 Трансфер в комірку 19 811 69
Я побіг цю програму для входів 5 і 3. Я повинен дотримуватися 34 інструкцій, які взяли мене менше 15 хвилин, щоб завершити. Отже, частота наступних інструкцій для цього комп'ютера (повна з мене) склала близько 38 МГц (не плутати з МГц).

Пам'ять та вихідний вміст стрічок



Інші програми
творці КАРДІАК взяли питання серйозно і розвивали наступні програми:
  • Програма для “повернення” чисел
  • Bootstrap для завантаження програм з вхідної стрічки
  • Механізм виклику підпрограми
  • Програма для гри з одним клацанням (тобто, гра Баше)

Посилання
Відеопоказ оригінального:


  • Вікіпедія сторінки: en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation
  • English, Українська, Français...
  • Матеріали для саморобного комп'ютера: kylem.net/hardware/hardware.html


Джерело: habrahabr.ru/post/222277/