пам'ять для найпростішого можливого комп'ютера (Pi0K)


13

Я хотів би побудувати найпростіший можливий комп'ютер. Мені не хвилюється швидкість чи запам'ятовування, адже повільна швидкість і низьке зберігання є величезною перевагою, оскільки я хочу побудувати його з транзисторів (в ідеалі реле!), І мені хочеться світлодіод для кожного стану. Він буде запрограмований за допомогою Raspberry Pi, який розмістить камеру, щоб ви могли бачити кожен виконуваний тактовий цикл (так, він буде працювати на Гц, а не ГГц). Це буде відкритий дизайн із наміром, щоб школи могли придбати деталі, зрозуміти та вдосконалити дизайн. Таким чином, загальний бюджет повинен бути значно менше 400 фунтів, бажано близько 100 фунтів.

Я досліджував це протягом багатьох років і маю гарні ідеї для процесора (мінімальні регістри, мікрокод в DIP-комутаторах і бітова послідовна логіка / арифметичні операції для зменшення кількості транзисторів). Я не можу зрозуміти, як отримати пам'ять, я хотів би від 1024 до 8096 біт.

Найкраще, що я можу придумати, це два 6-бітні одноразові декодери, що надають доступ до сітки конденсаторів 64 x 64. Або в них є звинувачення, або у них немає, і читання посилить цю державу. Не було б світлодіодів на конденсаторах, оскільки оновлення цієї 'DRAM' було б у порядку чи хвилинах (що шкода, оскільки це була б єдина частина не показувати стан).

Інші ідеї включають певну форму стрічкового приводу (компактний касетний механізм: велике сховище, занадто складний, не шукайте), барабанну пам’ять (стрічка навколо боби може: занадто важко, щоб працювати механіку), механічну пам’ять (велосипедні колеса та кулькові підшипники: занадто багато бітових помилок), основна пам'ять (великі тверді ферритові сердечники: все ще дуже складно отримати потрібну шкалу), стрічка / карта (чи можна все-таки придбати зчитувачі стрічок), обертовий диск з перфорованими отворами у двійковому порядку та деякі магнітні пам'ять для зберігання (занадто складна для складання).

Зрештою, мета - опублікувати дизайн, який можна скласти у навчальному році, де всі частини процесора та пам'яті "видимі", і таким чином ви можете побачити збір інструкцій, декодування до мікрокодування та розшифровку адрес / реєстрацію доступу / логіку всіх що відбувається протягом хвилин.

Якщо у когось є ідеї по-справжньому дешевої пам'яті (<< £ 100), де зрозуміло, як саме вона працює, то, будь ласка, дайте мені знати.

Тоні

Поточний стан PS знаходиться на веб- сайті http://www.blinkingcomputer.org/


Просто гугл для людей, які вже робили це і подібні речі, конструкції є, ви можете зробити BOM і виявити, що вам, ймовірно, потрібно трохи більше грошей і часу.
ПлазмаHH

Я б припустив, що вихід на рівень транзистора може бути дещо значним для шкільного проекту. Я думаю, що невелика та середньомасштабна інтеграція CMOS була б набагато зручнішою та, ймовірно, зрозумілішою (ворота, регістри, буфери, декодери тощо). Ви можете включити щось, що демонструє, як ворота робляться з транзисторів, шльопанці зроблені з воріт тощо).
Тута

1
Просто ідея: Ви повинні зробити пам'ять (програму) легко змінювати вручну, щоб люди могли "програмувати" вручну своїми руками :-).
ойвінд

Спочатку вирішіть, що ви хочете, щоб комп'ютер міг зробити. Це визначить, скільки пам'яті вам потрібно і яким повинен бути набір інструкцій.
Тоні Енніс

Дякую всім. ПлазмаHH: Так, це величезний виклик зробити це у грошових та часових обмеженнях, тому ніхто ще цього не зробив. Тут: Мені дуже хочеться бачити кожен сигнал. Тоді люди побачать, як з транзисторів будуються логічні ворота. oywind: Так, це можна програмувати через Raspberry Pi з веб-інтерфейсом, що ви можете написати власний код і побачити його, що працює з веб-камерою. Тоні Енніс: Я хочу створити найпростіший комп’ютер, який показує кожен сигнал - це продемонструє всі аспекти та потребує нестандартних архітектур, таких як бітовий серійний ALU.
Тоні Робінсон

Відповіді:


9

Є багато людей, які побудували комп'ютери з дискретних транзисторів, ІС, реле і навіть вакуумних трубок. Вони варіюються від 4-розрядних машин аж до 32-розрядних. Зрозуміло, 4-х бітне буде найпростішим, що ви зможете створити і зробити що-небудь. Першим мікропроцесором став 4-розрядний 4004 Intel .

Я б почав з пошуку в Google « домашніх 4-бітних комп’ютерів » (без лапок).

Ось плата з транзиторизованого 4-розрядного комп'ютера:

введіть тут опис зображення

Що стосується пам’яті, то деякі з цих проектів, які інакше використовують дискретні транзистори, «обманюють» і використовують чіпи SRAM. Вони неймовірно дешеві для помірного обсягу пам’яті, 32 КБ - 3,28 долара і не потребують ні годин, ні оновлення.

Навіть якщо решта вашого комп'ютера використовує реле, використання їх для пам'яті буде непомірно дорогим.

Якщо ви можете обійтись за допомогою 1K біт, ви можете створити один із транзисторизованих тригерів; 2048 2N3904 коштуватиме 3 ¢ за штуку (загалом 60 доларів, плюс інші компоненти, які будуть ще дешевшими - резиденти на 1/2 цента тощо). Ви можете отримати друковані плати за 10 доларів за штуку, а потім найняти дитину, щоб їх набити.

Релейная комп'ютери датувати всі шляхи назад до кінця 1930 - х років, і один з перших був Harvard Mark I . Звідси походить назва Гарвардська архітектура (окремий програмний простір та дані, порівняно з архітектурою фон Неймана, яка поєднує в собі це два).

Найвідоміший релейний комп’ютер домашнього пивоваріння - той, який побудував Гаррі Портер.

введіть тут опис зображення

Перегляньте відео з комп’ютера, на якому працює. Нагадує мені про стару електромеханічну телефонну станцію.

Ось частина іншого ретрансляційного комп'ютера домашнього пива під назвою Zusie :

введіть тут опис зображення

Багато блимаючих вогнів.

І наостанок, ось посилання на відео 4-розрядного суматора, що складається з 24 ретрансляцій. Такі добавки є серцем ALU (арифметичної логічної одиниці) в комп'ютері.


Вибачте, "я досліджував це протягом багатьох років" було поховано у другому абзаці. Я відредагував заголовок публікації, щоб чітко вказати, що це пам'ять, про яку я хвилююсь. Якщо ви можете обійтись за допомогою 1-бітових бітів, ви можете побудувати її з транзисторизованими шльопанці; 2048 2N3904 коштуватиме 3 ¢ за штуку (загалом 60 доларів плюс інші компоненти, які будуть ще дешевші - резидент на 1/2 цента тощо). Ви можете отримати друковані плати за 10 доларів за штуку, а потім найняти дитину, щоб їх набити.
Тоні Робінсон

ctd ... це ближче, ніж я оцінив, але вам потрібно розшифровка адреси, і я б ввів більше транзисторів на комірку пам'яті. Можливо, один транзисторний один конденсаторний осередок пам'яті "DRAM" також можливий в межах бюджету.
Тоні Робінсон

@TonyRobinson Я намагався вирішити питання використання пам'яті (як ви визнали), але я також намагався надати інформацію про ваше бажання зробити комп'ютер з дискретних транзисторів та / або реле, і проілюструвати, що кілька успіхів у цьому. Успіхів у ваших починаннях.
tcrosley

6

Якщо ви хочете простої пам’яті, то виглядайте не далі, ніж триггер . З двома транзисторами та чотирма резисторами ви можете мати цілий біт пам'яті. Ви також можете зробити триггер з двома перехрещеними воротами NOR або просто придбати ІМС з купою вже трикутників.

Насправді, дуже швидкий кеш процесора - це, в основному, купа тригерів, інтегрованих у процесор.


2
DRAM споживає більше енергії, оскільки його потрібно постійно оновлювати, тоді як SRAM використовує лише невеликий струм спокою, коли працює в режимі очікування. Причина використання конденсаторів полягає в тому, що для цього потрібен лише один транзистор на біт, тому допускається значно більша щільність пам'яті.
Том Карпентер

Ви маєте рацію - я мав на увазі прості шльопанці RTL. Відредагую, щоб уточнити.
Філ Мороз

1
ІМС - вони приховують, що насправді відбувається. Я хочу, щоб кожен сигнал був виставлений наскільки це можливо. Мені дуже не байдуже енергія - я не бачу, що живлення є проблемою, вона буде підключена до Raspberry Pi, щоб живлення була доступною. Один транзисторний DRAM може бути набагато кращим способом, ніж мій масив конденсаторних ідей, як було запропоновано в попередньому дописі - мені доведеться розробити, які транзистори потрібні для цього, щоб утримати заряд досить низьким (мені потрібно час оновлення в порядок хвилин). Ще, так, шльопанці виглядають як наступна найкраща ідея.
Тоні Робінсон

@TonyRobinson "Це буде підключено до Raspberry Pi, щоб живлення була доступною." - ...можливо. Залежить від максимальної потужності, яка доступна через Raspberry Pi, і якої логічної родини ви плануєте використовувати. (Я б очікував, що середній живий блок живлення зможе забезпечити трохи більше енергії)
користувач253751

2

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

Реле комп'ютер ТІМ 8 використовує 8 конденсаторів, 2 діодів і один SPDT реле на байт в його 12 байт ОЗУ основний пам'яті (пам'ять даних). (У TIM 8 є 16 байт змінної пам'яті, якщо ви включаєте регістри).

Релейний комп'ютер TIM 8 використовує ударну стрічку для своєї програмної пам'яті.

введіть тут опис зображення

введіть тут опис зображення

Чи можна замінити ці діоди на світлодіоди, тому там є короткий імпульс, що показує дані, що надходять або виходять з байта оперативної пам’яті? Можливо, якщо система DRAM оновлюється досить швидко, скануючи хоча кожен байт оперативної пам’яті, то кожен біт стану буде видно на цих світлодіодах (хоча технічно тільки один байт світлодіодів буде активований у будь-який момент). (Вони повинні мати досить великі світлодіодні світлодіоди, якщо ми хочемо ЗАвантажувати та зберігати дані з цих конденсаторів для релейних реєстрів).

Чи можна поставити резистор і світлодіод по кожному бітовому конденсатору, істинно одночасно показуючи кожен біт стану? (Це повинні бути досить низькими світлодіодними світлодіодами та фізично великими конденсаторами, якщо ми хочемо, щоб конденсатор міг зберігати дані досить довго для розумної частоти оновлення. Деякі світлодіоди можна легко побачити лише струмом 1 мА. З оновленням 1 секунду. циклічні та (здогадуючі) конденсатори, спочатку заряджені до 12 В, хоча (здогадуючись) заряд 7 конденсатора на конденсаторі достатній для зарядки обладнання нижче за течією, тоді конденсатору потрібна оцінка C ~ = i * t / V = ​​1 мА * 1 с / (12 В - 7 В) = 200 уФ.).

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


1

Чому б ви просто не використали простий 8-бітний процесор (наприклад, 6502) та дуже малий об'єм пам'яті (регістри процесора, оперативна пам'ять IC і дуже невеликий об'єм зовнішньої пам’яті (наприклад, FD, HD або флеш-диск тощо) .) і потім просто поясніть слайдами наступне:

  1. Апаратні компоненти, підкомпоненти та їх функції
  2. Операційна система, системні програми та користувацькі програми
  3. Завантаження та виконання простої програми, щоб додати 2 числа разом, зберегти результат у кожному типі пам'яті та відобразити його на відеодисплеї.

Якщо ви хочете зберегти пристрій максимально просто та недорого, скористайтеся системою розробки мікроконтролера як базової системи або навіть Arduino досить просто і недорого. Ніхто з учнів не збирається побудувати простий релейний або вакуумний комп'ютер - а також ніхто не хоче їх робити. Вони повинні почати з гарної книги та ардуїно для базового розуміння програмування. Тоді пізніше, якщо вони хочуть потрапити на читання / контроль зовнішніх пристроїв, вони можуть заглибитись у конкретні програми чи інженерії.

Ось вам хороший проект, який слід розглянути для ідей:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS


Хоча сьогодні ми називаємо це " W65C02S "
Ігнасіо Васкес-Абрамс

Дякую, я прийшов з 6502 днів (BBC мікро, але також я працював на ZX80). Я погоджуюся, що на цьому рівні можна багато чому навчитися, адже я просто перечитував Посібник користувача для розширеного користування мікрокомп'ютером BBC . Я дуже хочу бути рівнем нижче цього, ви бачите, що надходить 5-бітна інструкція, вона проскакує через невеликий набір мікрокодів, які встановлюють кілька бітових регістрів і шин, і викликає трохи послідовний ALU, щоб ви могли бачити всю логіку відбувається потроху Ось чому це буде найповільніше.
Тоні Робінсон

Так - це буде повільніше. Ви детально ознайомилися з цією URL-адресою: instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS Це насправді досить добре і дозволяє здійснити унікальну налаштування для вашої системи.
DIYser

0

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

Можна подумати про використання більш-менш стандартної бітової паралельної шини пам'яті - можливо, щось на зразок STEbus (шина IEEE-1000) .

Ви можете розглянути можливість використання купі ІС, таких як 74HC273 або 74LS373 або 74HC564 для зберігання даних, щоб поточний стан даних всередині мікросхеми завжди було видно на світлодіодах, підключених до контактів паралельного виводу. Потім використовуйте восьмеричні 3-стану буфери (такі як 74HC241 або 74LS245) або мікси, також підключені до цих паралельних вихідних штифтів, щоб перенаправити дані в шину. У кінцевому підсумку ви знайдете кілька мікросхем декодера і 2 мікросхеми на 8 біт пам’яті. "Це дозволяє вам переглядати, які дані фактично зберігаються у кожному байті оперативної пам'яті." - SAP-1 Pong Guy - простий максимально можливий комп'ютер з дискретною оперативною пам’яттю . Таке ж розташування використовується для регістрів у Fourbit CPU Jaromir або регістрів у 8-бітовому процесорі спагетті Kyle .

Поточні ціни на Mouser.com (2016) становлять близько 0,11 дол. / Біт у кількості 10 для такої домовленості (одна восьмі засувка для зберігання плюс один восьмигранний 3-державний буфер за 8 біт) та 0,05 долара / біт для нових світлодіодів у кількості 500. Для 2 ^ 9 байт = 512 байт = 2 ^ 12 біт = 4096 біт, це (дуже приблизно)

  • 205 доларів у світлодіодах
  • 450 доларів чіпів для зберігання та буфера
  • $ ??? мікросхеми декодера 1-з-N для вибору відповідного чіпа для зберігання або буфера; вартість дощок, дроту, праці тощо.

Можливо, ви могли б скласти (дуже приблизно) 64 байти пам'яті даних (такий же обсяг пам’яті даних, як Atmel ATTINY13 або Microchip PIC16F570) приблизно за 90 доларів (що може входити у ваш бюджет в розмірі 150 ~ = 100 фунтів).

Ви можете зрозуміти, чому замінити всі ці мікросхеми зберігання та буфера та більшість мікросхем декодера на чіткі 32Kx8 паралельні SRAM-мікросхеми 32Kx8, що дають набагато більше місця для зберігання менше 10 доларів. (Alliance AS6C1008-55PCN, Cypress CY7C199CN-15PXC тощо)

Це може бути причиною більшості домашніх процесорів, від крихітного 4-розрядного процесора Nibbler до вражаючого релейного комп'ютера RC-3 http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , підключені до мікросхема SRAM чорного кольору для основної пам'яті.

Маючи щось на зразок стандартної шини пам'яті, можливо, ви могли б одночасно підключити до процесора кілька різних плат пам'яті:

  • Кілька байтів повністю видимої змінної пам’яті та кілька байтів повністю видимого жорстко-провідного програмного ПЗУ, чого повинно вистачити для деяких цікавих демонстраційних програм.
  • Мікросхема SRAM, яку можна періодично підключати для зберігання програм або даних або обох, коли ви ще не створили достатньо повністю видимої пам'яті для їх зберігання.

0

Ось ще одна пропозиція щодо подібного проекту, яка може бути корисною - побудувати машину Тьюрінга . Йдеться про найпростішу можливу обчислювальну машину

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.