Ich möchte einen möglichst einfachen Computer bauen. Geschwindigkeit und Speicher sind mir egal. Tatsächlich ist langsame Geschwindigkeit und geringe Speichergeschwindigkeit ein großer Vorteil, da ich sie aus Transistoren (im Idealfall Relais!) Zusammensetzen und für jeden Status eine LED haben möchte. Es wird über einen Himbeer-Pi programmiert, der eine Kamera hostet, sodass Sie sehen können, wie jeder Takt ausgeführt wird (ja, es wird mit Hz und nicht mit GHz ausgeführt). Es wird ein offenes Design mit der Absicht sein, dass Schulen die Teile kaufen, das Design verstehen und verbessern können. Das Gesamtbudget muss also deutlich unter 400 GBP liegen, vorzugsweise bei 100 GBP.
Ich habe dies über viele Jahre recherchiert und habe gute Ideen für die CPU (minimale Register, Mikrocode in DIP-Schaltern und bitweise serielle Logik / arithmetische Operationen zur Reduzierung der Transistoranzahl). Was ich nicht herausfinden kann, ist, wie ich den Speicher bekomme, ich möchte 1024 bis 8096 Bits.
Das Beste, was ich mir vorstellen kann, sind zwei 6-Bit-One-of-n-Decoder, die Zugriff auf ein 64 x 64-Gitter von Kondensatoren bieten. Entweder haben sie eine Anklage oder sie tun es nicht, und das Lesen würde diesen Zustand verstärken. Es würden keine LEDs an den Kondensatoren vorhanden sein, da die Aktualisierung dieses "DRAM" in der Größenordnung oder in Minuten erfolgen würde (was eine Schande ist, da dies der einzige Teil wäre, der den Zustand nicht anzeigt).
Andere Ideen sind ein Bandlaufwerk (kompakter Kassettenmechanismus: großartiger Speicher, zu komplex, kein Suchlauf), ein Trommelspeicher (Band um eine Bohnenkanne: zu hart, um die Mechanik zum Laufen zu bringen), ein mechanischer Speicher (Fahrradrad und Kugellager): zu viele Bitfehler), Kernspeicher (große Hartferritkerne: immer noch sehr schwierig, den erforderlichen Maßstab zu ermitteln), Band / Karte (können wir uns noch die Bandleser zulegen), rotierende Platte mit Lochungen in binärer Reihenfolge und etwas Magnet Speicher für die Speicherung (zu komplex zum Erstellen).
Letztendlich ist es das Ziel, ein Design zu veröffentlichen, das in einem Schuljahr erstellt werden kann, in dem alle Teile einer CPU und eines Speichers „sichtbar“ sind. Auf diese Weise können Sie sehen, wie Anweisungen abgerufen, in Mikrocode decodiert und Adressen decodiert / Registerzugriffe / Logik ausgeführt werden im Laufe der Minuten passiert.
Wenn jemand Ideen für wirklich billigen Speicher hat (<< £ 100), bei denen klar ist, wie er funktioniert, dann lass es mich bitte wissen.
Tony
PS: Aktueller Stand ist unter http://www.blinkingcomputer.org/.
quelle
Antworten:
Es gibt viele Leute, die Computer aus diskreten Transistoren, ICs, Relais und sogar Vakuumröhren gebaut haben. Sie reichen von 4-Bit-Rechnern bis hin zu 32-Bit-Rechnern. Die 4-Bitters sind natürlich die einfachsten, die man bauen und machen kann. Der allererste Mikroprozessor war Intels 4-Bit- 4004 .
Ich würde damit beginnen, bei Google nach " 4-Bit-Heimcomputern " zu suchen (ohne die Anführungszeichen).
Hier ist eine Platine von einem Transistor-4-Bit-Computer:
In Bezug auf den Speicher "betrügen" einige dieser Projekte, die ansonsten diskrete Transistoren verwenden, und verwenden SRAM-Chips. Sie sind unglaublich billig für moderate Mengen an Speicher, 32 KB 3,28 US-Dollar und erfordern keine Uhren und keine Aktualisierung.
Selbst wenn der Rest Ihres Computers Relais verwendet, ist die Verwendung dieser für den Speicher unerschwinglich.
Wenn Sie mit 1K-Bits auskommen können, können Sie eine mit Transistor-Flip-Flops bauen. 2048 2N3904 kosten 3 ¢ pro Stück (insgesamt 60 US-Dollar zuzüglich der anderen Komponenten, die sogar noch billiger sind - Widerstände für einen halben Cent usw.). Sie können Leiterplatten für 10 US-Dollar pro Stück kaufen und dann ein Kind damit beauftragen.
Relais - Computer in den späten 1930er Jahren den ganzen Weg zurückgehen , und einer der ersten war der Harvard Mark I . Hierher kommt der Name Harvard-Architektur (getrennter Programmraum und Daten im Vergleich zur von Neumann-Architektur) , die beide kombiniert).
Der berühmteste selbstgebraute Relaiscomputer ist einer, der von Harry Porter gebaut wurde.
Schauen Sie sich die Videos des laufenden Computers an. Erinnert mich an eine alte elektromechanische Telefonzentrale.
Hier ist ein Teil eines anderen selbstgebrauten Relais-Computers namens Zusie :
Viele blinkende Lichter.
Und zum Schluss hier ein Link zu einem Video eines 4-Bit-Addierers, der aus 24 Relais besteht. Addierer wie dieser sind das Herzstück der ALU (Arithmetic Logic Unit) in einem Computer.
quelle
Wenn Sie ein einfaches Gedächtnis haben wollen , dann schauen Sie nicht weiter als bis zu einem Flip-Flop . Mit zwei Transistoren und vier Widerständen können Sie eine ganze Menge Speicher haben. Sie können auch ein Flip-Flop mit zwei über Kreuz gekoppelten NOR-Gattern erstellen oder einfach einen IC kaufen, der bereits eine Reihe von Flip-Flops enthält.
Tatsächlich ist der sehr schnelle CPU-Cache im Grunde genommen eine Reihe von Flip-Flops, die in die CPU integriert sind.
quelle
Ich stimme zu, dass es ziemlich cool wäre, ein komplettes Computersystem mit einer LED für jeden Zustand zu haben, der für das menschliche Auge sichtbar ist.
Der TIM 8- Relaiscomputer verwendet in seinem 12-Byte-RAM-Hauptspeicher (Datenspeicher) 8 Kondensatoren, 2 Dioden und ein SPDT-Relais pro Byte. (Die TIM 8 hat 16 Byte Variablenspeicher, wenn Sie Register einbinden).
Der Relaisrechner TIM 8 verwendet Lochstreifen als Programmspeicher.
Ist es möglich, diese Dioden durch LEDs zu ersetzen, sodass ein kurzer Impuls die Daten anzeigt, die in einem Byte RAM ein- oder ausgehen? Wenn das System den DRAM schnell genug auffrischt und dabei jedes RAM-Byte durchsucht, scheint an diesen LEDs jedes Statusbit sichtbar zu sein (obwohl technisch gesehen zu jedem Zeitpunkt nur ein Byte LEDs aktiviert ist). (Dies müssten Hochstrom-LEDs sein, wenn Daten von diesen Kondensatoren in relaisbasierte Register geladen und dort gespeichert werden sollen.)
Ist es möglich, einen Widerstand und eine LED an jedem Bitspeicherkondensator anzubringen, die wirklich gleichzeitig jeden Zustand anzeigen? (Dies müssten ziemlich stromsparende LEDs und physikalisch große Kondensatoren sein, wenn der Kondensator die Daten lange genug für eine angemessene Aktualisierungsrate halten soll. Einige LEDs können problemlos mit nur 1 mA Strom gesehen werden. Mit einer Aktualisierung von 1 Sekunde Zyklus- und (Schätz-) Kondensatoren werden anfänglich auf 12 V geladen, obwohl (Schätz-) eine Ladung von 7 V am Kondensator ausreicht, um die nachgeschaltete Hardware aufzuladen, dann benötigt der Kondensator einen Nennstrom von C ~ = i * t / V = 1 mA * 1 s / (12 V - 7 V) = 200 uF.).
Dies ist natürlich sehr viel größer und erfordert mehr Arbeitsaufwand als so ziemlich jeder auf integrierten Schaltkreisen basierende Hauptspeicher.
quelle
Warum verwenden Sie nicht einfach eine einfache 8 - Bit - CPU (z. B. 6502) und eine sehr kleine Menge an Speicher (CPU - Register, IC - RAM und eine sehr kleine Menge an externem Speicher (z. B. FD, HD oder Flash - Disk usw.) .) & erkläre dann mit Folien:
Wenn Sie das Gerät so einfach und kostengünstig wie möglich halten möchten, verwenden Sie ein Mikrocontroller-Entwicklungssystem als Basissystem, oder sogar ein Arduino ist einfach und kostengünstig genug. Keiner der Studenten wird einen einfachen Relais- oder Vakuumröhrencomputer bauen - noch sollte jemand wirklich wollen, dass sie dies tun. Sie sollten mit einem guten Buch und einem Arduino für das grundlegende Verständnis der Programmierung beginnen. Wenn sie später mit dem Lesen / Steuern externer Geräte beginnen möchten, können sie sich mit der spezifischen Programmierung oder dem Engineering befassen.
Hier ist ein gutes Projekt, das Sie für Ideen in Betracht ziehen sollten:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS
quelle
Ich stimme zu, dass es ziemlich cool wäre, ein komplettes Computersystem mit einer LED für jeden Zustand zu haben, die für das menschliche Auge sichtbar ist, anstatt in einer mysteriösen Blackbox versteckt zu sein.
Sie könnten in Betracht ziehen, einen mehr oder weniger standardmäßigen bitparallelen Speicherbus zu verwenden - vielleicht so etwas wie den STEbus (IEEE-1000-Bus) .
Sie können eine Reihe von ICs wie 74HC273 oder 74LS373 oder 74HC564 verwenden, um die Daten zu speichern, damit der aktuelle Status der Daten im Chip immer auf LEDs sichtbar ist, die an die parallelen Ausgangspins angeschlossen sind. Verwenden Sie dann oktale Puffer mit drei Zuständen (wie 74HC241 oder 74LS245) oder Mux-Module, die ebenfalls an diese parallelen Ausgangspins angeschlossen sind, um die Daten in den Bus zu leiten. Am Ende stehen Ihnen ein paar One-of-N-Decoder-Chips und 2 Chips pro 8 Speicherbits zur Verfügung. "Auf diese Weise können Sie ... sehen, welche Daten tatsächlich in jedem Byte RAM gespeichert sind." - Pong Guy's SAP-1 Möglichst einfacher Computer mit RAM für diskrete Komponenten . Dieselbe Anordnung wird für die Register in Jaromirs Fourbit-CPU oder für die Register in Kyles 8-Bit-Spaghetti-CPU verwendet .
Die aktuellen (2016) Preise von Mouser.com liegen bei ca. 0,11 USD / Bit in Menge 10 für eine solche Anordnung (ein oktaler Speicher-Latch plus ein oktaler 3-Status-Puffer pro 8 Bits) und bei 0,05 USD / Bit für neue LEDs in Menge 500. Für 2 ^ 9 Bytes = 512 Bytes = 2 ^ 12 Bits = 4096 Bits, das ist (sehr grob)
Möglicherweise könnten Sie 64 Bytes Datenspeicher (genauso viel Datenspeicher wie ein Atmel ATTINY13 oder ein Microchip PIC16F570) für ungefähr 90 USD aufbauen (was in Ihr Budget von 150 USD ~ = 100 GBP passen könnte).
Sie werden sehen, warum es verlockend ist, all diese Speicher- und Puffer-Chips und die meisten Decoder-Chips durch einen handelsüblichen 32Kx8-Parallel-SRAM-Chip zu ersetzen, der Ihnen viel mehr Speicherplatz für weniger als 10 US-Dollar bietet. (Alliance AS6C1008-55PCN, Cypress CY7C199CN-15PXC usw.)
Dies mag der Grund sein, warum die meisten hausgemachten CPUs, von der winzigen 4-Bit-Nibbler-CPU bis zum beeindruckenden RC-3-Relay-Computer, http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , sind an einen Black-Box-SRAM-Chip für den Hauptspeicher angeschlossen.
Mit so etwas wie einem Standard-Speicherbus könnten möglicherweise mehrere verschiedene Speicherplatinen gleichzeitig an die CPU angeschlossen sein:
quelle
Hier ist ein weiterer Vorschlag für ein ähnliches Projekt, das sich lohnen könnte - den Bau einer Turing-Maschine. Es geht um die einfachste mögliche Rechenmaschine
quelle