память для простейшего компьютера (Pi0K)

13

Я хотел бы построить самый простой компьютер. Меня не волнует скорость или объем памяти. Действительно, медленная скорость и низкий объем памяти - огромное преимущество, так как я хочу построить его из транзисторов (в идеале, реле!), И мне нужен светодиод для каждого состояния. Он будет запрограммирован через Raspberry Pi, в котором будет размещена камера, чтобы вы могли видеть выполнение каждого тактового цикла (да, он будет работать на частоте Гц, а не ГГц). Это будет открытый дизайн с намерением, чтобы школы могли покупать детали, понимать и улучшать дизайн. Таким образом, общий бюджет должен быть менее 400 фунтов стерлингов, предпочтительно около 100 фунтов стерлингов.

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

Лучшее, что я могу придумать, - это два 6-битных одноканальных декодера, обеспечивающих доступ к сетке конденсаторов 64 x 64. Либо у них есть заряд или они не, и чтение укрепило бы это состояние. На конденсаторах не было бы светодиодов, так как обновление этой «DRAM» было бы в порядке или в минутах (это позор, поскольку это была бы единственная часть, которая не показывала бы состояние).

Другие идеи включают в себя некоторую форму ленточного привода (компактный кассетный механизм: большое хранилище, слишком сложное, без поиска), память барабана (лента вокруг боба: слишком трудно заставить работать механику), механическую память (велосипедное колесо и шарикоподшипники: слишком много ошибок в битах), память ядра (большие жесткие ферритовые сердечники: все еще очень сложно разобраться с требуемым масштабом), лента / карта (можно ли еще купить устройства чтения ленты), вращающийся диск с перфорированными отверстиями в двоичном порядке и некоторые магнитные память для хранения (слишком сложная для сборки).

В конечном итоге цель состоит в том, чтобы опубликовать проект, который можно построить в учебном году, где все части ЦП и памяти «видны», чтобы вы могли видеть выборку инструкций, декодирование в микрокод и адреса декодирования / доступа к регистру / логики. происходит в течение нескольких минут.

Если у кого-то есть идеи по-настоящему дешевой памяти (<< 100 фунтов стерлингов), где ясно, как именно она работает, тогда, пожалуйста, дайте мне знать.

Тони

PS Текущее состояние игры на http://www.blinkingcomputer.org/

Тони Робинсон
источник
Просто поищите людей, которые уже делали это и тому подобное, дизайн есть, вы можете создать спецификацию и обнаружить, что вам, вероятно, нужно немного больше денег и времени.
PlasmaHH
Я бы предположил, что переход на уровень транзисторов может быть немного для школьного проекта. Я думаю, что интеграция CMOS малого и среднего масштаба была бы гораздо более выполнимой и, вероятно, более понятной (логические элементы, регистры, буферы, декодеры и т. Д.). Вы можете включить что-то, что демонстрирует, как ворота сделаны из транзисторов, шлепанцы сделаны из ворот и т. Д.).
Тута
1
Просто идея: Вы должны сделать память (программу) легко модифицируемой вручную, чтобы люди могли "программировать" своими руками :-).
Ойвинд
Сначала решите, что вы хотите, чтобы компьютер мог делать. Это будет определять, сколько памяти вам нужно и какой набор инструкций должен быть.
Тони Эннис
Спасибо всем. PlasmaHH: Да, это огромная проблема, связанная с деньгами и временными ограничениями, поэтому еще никто этого не сделал. Тут я очень хочу видеть каждый сигнал. Тогда люди увидят, как логические элементы строятся из транзисторов. oywind: Да, он будет программироваться через Raspberry Pi с веб-интерфейсом, чтобы вы могли написать свой собственный код и увидеть, как он работает с веб-камерой. Тони Эннис: Я хочу построить самый простой компьютер, который показывает каждый сигнал - это продемонстрирует все аспекты и потребует нестандартных архитектур, таких как последовательный битовый ALU.
Тони Робинсон

Ответы:

9

Есть много людей, которые построили компьютеры из дискретных транзисторов, интегральных схем, реле и даже вакуумных ламп. Они варьируются от 4-битных машин до 32-битных. Конечно, 4-битный будет самым простым, что вы можете построить и сделать что-нибудь. Самым первым микропроцессором был Intel 4-bit 4004 .

Я бы начал с поиска в Google " самодельных 4-битных компьютеров " (без кавычек).

Вот плата от транзисторного 4-битного компьютера:

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

Что касается памяти, некоторые из этих проектов, в которых используются дискретные транзисторы, «обманывают» и используют микросхемы SRAM. Они невероятно дешевы при умеренных объемах памяти, 32 КБ стоят $ 3,28 и не требуют часов и обновления.

Даже если на вашем компьютере используются реле, использование их в качестве памяти будет чрезмерно дорогим.

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

Релейная компьютеры датировать все пути назад к концу 1930 - х годов, и один из первых был Harvard Mark I . Отсюда и название « Гарвардская архитектура» (отдельное пространство программ и данных по сравнению с архитектурой фон Неймана, которая объединяет их).

Самый известный компьютер для домашнего приготовления - это компьютер, созданный Гарри Портером.

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

Посмотрите видео о работающем компьютере. Напоминает мне старую электромеханическую телефонную станцию.

Вот часть другого домашнего реле-компьютера под названием Zusie :

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

Много мигающих огней.

И, наконец, вот ссылка на видео 4-битного сумматора, состоящего из 24 реле. Такие сумматоры являются сердцем АЛУ (арифметико-логического устройства) в компьютере.

tcrosley
источник
Извините, «Я исследовал это в течение многих лет» был похоронен во втором абзаце. Я отредактировал заголовок поста, чтобы четко указать, какая память мне нужна. Если вы можете обойтись с 1K битами, вы можете построить один с транзисторными триггерами; 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, и от того, какое семейство логики вы планируете использовать. (Я бы ожидал, что средний настольный блок питания сможет обеспечить немного больше энергии)
user253751
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 мкФ.).

Это, конечно, будет значительно больше и потребует больше человеческого труда для сборки, чем почти любая основанная на интегральных схемах основная память.

davidcary
источник
1

Почему бы вам просто не использовать простой 8-битный ЦП (например, 6502) и очень маленький объем памяти (регистры ЦП, ОЗУ микросхемы и очень маленький объем внешней памяти (например, FD, HD или флэш-диск и т. Д.) .) а затем просто объясните слайдами следующее:

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

Если вы хотите, чтобы устройство было максимально простым и недорогим, используйте систему разработки микроконтроллера в качестве базовой системы или даже Arduino достаточно простой и недорогой. Никто из учеников не собирается создавать простой компьютер с реле или вакуумной лампой - и никто не должен этого делать. Они должны начать с хорошей книги и Arduino для базового понимания программирования. Затем, если они захотят заняться чтением / управлением внешними устройствами, они могут углубиться в конкретное программирование или разработку.

Вот хороший проект для вас, чтобы рассмотреть идеи:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS

DIYser
источник
Хотя в настоящее время мы называем это " W65C02S "
Игнасио Васкес-Абрамс
Спасибо, я пришел с 6502 дней (BBC Micro, но я также работал на ZX80). Я согласен, что на этом уровне можно многому научиться, на самом деле я просто перечитывал Расширенное руководство пользователя микрокомпьютера BBC . Я действительно хочу быть ниже этого уровня, вы видите, как поступает 5-битная инструкция, она перепрыгивает через небольшой набор микрокодов, которые устанавливают несколько битовых регистров и шинных линий, и вызывает битовый последовательный ALU, чтобы вы могли видеть всю логику происходит постепенно. Вот почему это будет самым медленным.
Тони Робинсон
Да, это будет медленнее. Вы просматривали подробности по этому адресу: instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS Это на самом деле довольно хорошо и позволяет сделать некоторые уникальные настройки для вашей системы.
DIYser
0

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

Вы можете рассмотреть возможность использования более или менее стандартной шины параллельной памяти - возможно, что-то вроде STEbus (шина IEEE-1000) .

Вы можете рассмотреть возможность использования нескольких микросхем, таких как 74HC273 или 74LS373 или 74HC564, для хранения данных, чтобы текущее состояние данных внутри чипа всегда было видно на светодиодах, подключенных к выводам параллельного выхода. Затем используйте восьмеричные буферы с 3 состояниями (такие как 74HC241 или 74LS245) или мультиплексоры, также подключенные к этим параллельным выходным выводам, для направления данных в шину. В итоге вы получаете несколько чипов декодера «один из N» и 2 чипа на 8 бит памяти. «Это позволяет вам ... посмотреть, какие данные на самом деле хранятся в каждом байте оперативной памяти». - Простой компьютер Pong Guy SAP-1 с дискретной оперативной памятью . Такая же схема используется для регистров в четырехбитном процессоре Яромира или для регистров в 8-битном процессоре спагетти Кайла .

Текущие (2016 г.) цены от Mouser.com составляют около 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 фунтов).

Вы можете понять, почему заманчиво заменить все эти чипы хранения и буфера, а также большинство чипов декодера готовым параллельным чипом SRAM 32Kx8, который дает вам гораздо больше памяти менее чем за 10 долларов. (Альянс 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, которую можно иногда подключать для хранения программ или данных, или того и другого, когда вы еще не создали достаточно полностью видимой памяти для их хранения.
davidcary
источник
0

Вот еще одно предложение для подобного проекта, которое может быть полезным - создать машину Тьюринга . Это самая простая вычислительная машина, какая только возможна.

Дирк Брюер
источник