Чи можливо зробити простий комп’ютер повністю з макетними дошками та основними електронними компонентами? Чи можливо, наприклад, побудувати науковий калькулятор таким чином?
Чи можливо зробити простий комп’ютер повністю з макетними дошками та основними електронними компонентами? Чи можливо, наприклад, побудувати науковий калькулятор таким чином?
Відповіді:
Я не погоджуюся, що розміщення мікроконтролера на дошці кваліфікується як побудова комп'ютера на дошці. За винятком вводу-виводу (наприклад, клавіатури та дисплея), мікроконтролер сам по собі є майже повноцінним комп'ютером. Просто розміщення його на дошці та з'єднання декількох проводів є тривіальним і це можна зробити за десять хвилин.
Коли ОП запитала: "Чи можна зробити простий комп'ютер цілком з дошками та основними електронними компонентами?", Під основними електронними компонентами я думаю, що це означає щось подібне:
Тепер це комп’ютер на дошці (ну, кілька макетів), побудований із основних компонентів . Опис його тут . Він складається з десятка типів ІС серії 74LS00. (Я не думаю, що ми хочемо повернутись назад до транзисторів; оригінальний PDP-8 був розміром з невеликий холодильник ).
Що стосується наукового калькулятора, якщо ви побудували комп'ютер загального призначення, як той, що показаний вище, то він може бути запрограмований як науковий калькулятор. Побудувати науковий калькулятор, використовуючи лише логічні ІМС (без комп’ютера), було б надзвичайно складно; на всіх виробництвах таких калькуляторів (Ti, HP тощо) використовували спеціальні великомасштабні ІС . Ось домашній калькулятор, який використовує ранню 4-бітну калькулятор IC.
Я погоджусь, що якщо хтось хоче якнайшвидше налаштувати і запустити комп’ютер, то використання мікроконтролера - це шлях. Якщо ви хочете реально зрозуміти, як працює комп'ютер внутрішньо, то побудова одного з базових ІМС - це правильний шлях.
Це не тільки можливо, я фактично це зробив: дивіться https://www.vttoth.com/CMS/projects/47
Ось як виглядало проводка на звороті однієї з дощок:
Звичайно, все залежить від того, які компоненти кваліфікуються як "базові". У моєму випадку базовими компонентами були мікросхеми TTL серії 74 ..., приблизно їх сотня. Побудувати комп'ютер цілком з, скажімо, транзисторів ... це було б занадто непосильно.
Крім того, мій 4-розрядний комп'ютер насправді недостатньо потужний, щоб використовувати його як науковий калькулятор, головним чином через обмеження пам'яті (256 4-розрядних ніблів). Однак розширити адресний простір не дуже складно, можливо, використовуючи механізм підкачки, і 4096 ніблів (12-бітових адрес) може бути вже досить, 65536 ніблів (16-бітових адрес) точно.
Так, це можливо, але вам знадобиться трохи більше, ніж просто кілька дощок, щоб придумати науковий калькулятор, звичайно, залежно від того, що ви вважаєте базовим компонентом: чи називаєте ви транзистор базовим компонентом, або триггер , EEPROM або просто щось, що можна випаяти зі старого холодильника.
Тут є кілька хороших відповідей, але я хотів би лише зазначити одну річ, яку люди часто не враховують. Дивлячись на історію обчислювальних пристроїв, складність у створенні комп’ютера з кори дерева та цвяхів не є ні процесором, ні АЛУ. Основна проблема - пам’ять. Тому що вам потрібна величезна кількість для роботи всієї програми, що зберігається. Ви можете зробити центральний процесор з декількох тригерів та воріт NAND; наприклад, для додатка силової електроніки з певними обмеженнями, я одного разу розробив мікропроцесор, який використовує лише 69 тригерів (4 16-бітні регістри, 4 прапори та 1 біт реєстру стану, що позначає FETCH / EXECUTE). Він реалізований у кремнію, і люди пишуть програмне забезпечення, яке працює на ньому. Це просто і підходить до розміру зливного контакту силового транзистора. Але пам'ять, необхідна для зберігання будь-якої корисної програми, набагато, значно більша.
На початку пам'ять була відправною точкою дизайну. Ви можете використовувати двостабільні реле, як це було зроблено на ранніх телефонних станціях. Ви можете використовувати вакуумні трубки або транзистори для виготовлення тригерів; і регістри ЦП зазвичай реалізовувалися таким чином. Але для програми та зберігання даних використовували паперові стрічки, магнітні стрічки, прядильні диски або прядильні барабани. Навіть акустичні хвилі на сталевому дроті, які постійно приймаються та повторно передаються електронікою. Все, що ви можете придумати, може затримати деякі біти протягом розумної кількості часу з розумною вартістю. Комп'ютери з орбітальним орбітальним апаратом та місячним десантом використовували спогади котушки, що були звиті як мотузки. Усі вони потребують різного інтерфейсного обладнання та мають величезний вплив на те, яким повинен бути процесор, щоб отримати доступ до таких видів пам'яті. Напівпровідникова пам'ять з'явилася лише в 1970-х, нарешті відхилила таку складність. Але знову ж таки, сучасні динамічні оперативні пам’яті теж не такі легкі.
Тоді додається чудова необхідність проектувати обладнання вводу-виводу для комп'ютера. Кілька лампочок чудово підходить для деяких програм, але якщо вам потрібно введення / виведення тексту або щось ще складніше, ви знову стикаєтеся з більшими труднощами. Зчитувачі карт-карт, принтери та термінали для паперу були величезною справою в наші дні. Відеотермінал текстового режиму VT100 з 1978 року має набагато більше пам’яті та оброблювальну потужність, ніж у вашому комп'ютері з науковим калькулятором.
Це можливо, але складність і розмір залежить від того, що ви називаєте основними електронними компонентами. Логіка АЛУ та секвенсора трохи складна, але виконана. Пам'ять проста, але основну схему потрібно повторити дуже велику кількість разів (подумайте 1000 разів).
Крім обладнання, вам також знадобиться програмне забезпечення, яке працює на ньому. Як приблизна оцінка, для помірно складного процесора (класичні 16-бітні інструкції, 8-бітний рівень даних) ваші програмні зусилля будуть порівнянні з вашими апаратними зусиллями. (Для більш спрощеного процесора вам знадобиться більше зусиль SW.) А як ви збираєтеся завантажити цей SW в свою машину?
Полювання на помилок (і їх вирішення) буде цікавим починанням. Я б радив запустити wrtd у VHDL і запустити це на тренажері, що буде набагато простіше налагодити, ніж купу мікросхем і проводів.
Мої двоє студентів створили 16-розрядний процесор з базовим програмним забезпеченням (включаючи резервний порт GCC) за ~ 1 рік, починаючи з коду VHDL та C для моделювання. ALU використовував 74181 мікросхеми, пам'ять - статична оперативна пам'ять, і вони використовували atMega для інтерфейсу між ПК та комп'ютером. Комп'ютер був частково на паяннях без пайки та частково на друкованих плат (8 16-бітових регістрів). (Ці двоє були не середніми студентами!)
Так, можливо. Але для математики вам потрібен мікроконтролер. Це приклад проекту. Він використовує мікроконтролер AVR та РК-дисплей 16 × 2.