Ist es möglich, einen einfachen Computer vollständig aus Steckbrettern und grundlegenden elektronischen Bauteilen herzustellen? Ist es beispielsweise möglich, auf diese Weise einen wissenschaftlichen Taschenrechner zu konstruieren?
Ist es möglich, einen einfachen Computer vollständig aus Steckbrettern und grundlegenden elektronischen Bauteilen herzustellen? Ist es beispielsweise möglich, auf diese Weise einen wissenschaftlichen Taschenrechner zu konstruieren?
Antworten:
Ich werde nicht zustimmen, dass das Platzieren eines Mikrocontrollers auf einem Steckbrett als das Bauen eines Computers auf einem Steckbrett qualifiziert ist. Mit Ausnahme von E / A (z. B. Tastatur und Display) ist ein Mikrocontroller an sich so ziemlich ein vollständiger Computer. Nur auf ein Steckbrett zu legen und ein paar Drähte anzuschließen, ist trivial und in zehn Minuten erledigt.
Als das OP fragte: "Ist es möglich, einen einfachen Computer vollständig mit Steckplatinen und grundlegenden elektronischen Bauteilen herzustellen?", Meine ich mit grundlegenden elektronischen Bauteilen etwas Ähnliches:
Das ist ein Computer auf einem Steckbrett (also mehrere Steckbretter), der aus grundlegenden Komponenten besteht . Die Beschreibung dazu finden Sie hier . Es besteht aus einem Dutzend Typen von ICs der 74LS00-Serie. (Ich glaube nicht, dass wir zurück zu den Transistoren wollen; der ursprüngliche PDP-8 hatte die Größe eines kleinen Kühlschranks ).
Wenn Sie einen Universalcomputer wie den oben gezeigten gebaut haben, können Sie ihn als wissenschaftlichen Taschenrechner programmieren. Einen wissenschaftlichen Taschenrechner nur mit Logik-ICs (ohne Computer) zu konstruieren, wäre äußerst schwierig. Alle Hersteller solcher Taschenrechner (Ti, HP usw.) verwendeten spezielle ICs in großem Maßstab . Hier ist ein selbstgebauter Rechner , der einen frühen 4-Bit-Rechner-IC verwendet.
Ich werde zustimmen, dass die Verwendung eines Mikrocontrollers der richtige Weg ist, wenn ein Computer so schnell wie möglich zum Laufen gebracht werden soll. Wenn man wirklich verstehen will, wie ein Computer intern funktioniert, ist der Aufbau eines aus Basis-ICs der richtige Weg.
Es ist nicht nur möglich, ich habe es tatsächlich getan: siehe https://www.vttoth.com/CMS/projects/47
So sah die Verkabelung auf der Rückseite eines der Steckbretter aus:
Natürlich hängt alles davon ab, welche Komponenten als "grundlegend" zu qualifizieren sind. In meinem Fall waren die Grundkomponenten TTL-Chips der Serie 74 ..., ungefähr hundert davon. Zum Beispiel einen Computer komplett aus Transistoren zu bauen ... das wäre viel zu überwältigend.
Außerdem ist mein 4-Bit-Computer nicht leistungsfähig genug, um als wissenschaftlicher Taschenrechner verwendet zu werden, hauptsächlich aufgrund von Speicherbeschränkungen (256 4-Bit-Nybbles). Es ist jedoch nicht sonderlich schwierig, den Adressraum zu erweitern, vielleicht mithilfe eines Paging-Mechanismus, und 4096 Nybbles (12-Bit-Adressen) könnten mit Sicherheit schon genug sein, 65536 Nybbles (16-Bit-Adressen).
Ja, es ist möglich, aber Sie brauchen ein bisschen mehr als nur ein paar Steckbretter, um einen wissenschaftlichen Taschenrechner zu entwickeln. Dies hängt natürlich davon ab, was Sie als Grundkomponente betrachten: ob Sie einen Transistor als Grundkomponente oder als Flip-Flop bezeichnen , ein EEPROM oder einfach etwas, das Sie aus einem alten Kühlschrank herauslöten können.
Hier gibt es einige gute Antworten, aber ich möchte nur auf eine Sache hinweisen, die die Leute oft nicht in Betracht ziehen. In Bezug auf die Geschichte der Computergeräte liegt die Schwierigkeit beim Bau eines Computers aus Baumrinde und Nägeln nicht in der CPU oder der ALU. Das Hauptproblem ist das Gedächtnis. Weil Sie eine Menge davon benötigen, damit das gesamte gespeicherte Programmkonzept funktioniert. Sie können eine CPU aus ein paar Flip-Flops und NAND-Gattern erstellen. Zum Beispiel habe ich für eine Leistungselektronikanwendung mit bestimmten Einschränkungen einmal einen Mikroprozessor entworfen, der nur 69 Flip-Flops verwendet (4 16-Bit-Register, 4 Flags und 1 Statusregister-Bit für FETCH / EXECUTE). Es ist in Silizium implementiert und die Leute schreiben Software, die darauf läuft. Das ist einfach und passt in die Größe eines Drain-Kontakts eines Leistungstransistors. Aber der Speicher, der benötigt wird, um ein nützliches Programm zu speichern, ist viel.
Schon früh war die Erinnerung der Ausgangspunkt des Entwurfs. Sie können bistabile Relais verwenden, wie sie es in früheren Telefonvermittlungen getan haben. Sie könnten Vakuumröhren oder Transistoren verwenden, um Flip-Flops herzustellen. und die Register der CPU wurden normalerweise auf diese Weise implementiert. Für die Programm- und Datenspeicherung wurden jedoch Papierbänder, Magnetbänder, Schleuderscheiben oder Schleudertrommeln verwendet. Sogar Schallwellen auf Stahldraht, die ständig von der Elektronik empfangen und weitergeleitet werden. Alles, was Sie sich vorstellen können, könnte einige Bits für einen angemessenen Zeitraum zu angemessenen Kosten enthalten. Apollo-Orbiter- und Mondlandecomputer verwendeten Spulenkern-Speicher, die als Seile aufgewickelt waren. All dies erfordert eine andere Schnittstellenausstattung und hat einen enormen Einfluss darauf, wie die CPU aussehen muss, um auf diese Art von Speichern zuzugreifen. Halbleiterspeicher erschien wirklich nur in den 1970er Jahren, endlich diese Art von Komplexität zu verwerfen. Aber auch moderne dynamische RAMs sind nicht so einfach.
Hinzu kommt die wunderbare Möglichkeit, Ein- und Ausgabegeräte für den Computer entwickeln zu müssen. Ein paar Glühbirnen reichen für einige Anwendungen aus, aber wenn Sie Texteingabe / -ausgabe oder etwas noch Komplexeres benötigen, stehen Sie erneut vor größeren Schwierigkeiten. Lochkartenleser, Drucker und Papierterminals waren zu ihrer Zeit ein großes Geschäft. Ein VT100-Videoterminal im Textmodus aus dem Jahr 1978 verfügt über viel mehr Speicher und Verarbeitungsleistung als Ihr wissenschaftlicher Taschenrechner-Steckbrettcomputer.
Es ist möglich, aber die Komplexität und Größe hängt davon ab, was Sie als grundlegende elektronische Komponenten bezeichnen. Eine ALU- und Sequenzerlogik ist etwas komplex, aber machbar. Das Gedächtnis ist einfach, aber das Grundmuster muss sehr oft wiederholt werden (man denke tausendmal).
Neben der Hardware benötigen Sie auch Software, die darauf ausgeführt wird. Als grobe Schätzung wird Ihr Softwareaufwand für eine mäßig komplexe CPU (klassische 16-Bit-Anweisungen, 8-Bit-Datenebene) mit Ihrem Hardwareaufwand verglichen. (Für eine einfachere CPU benötigen Sie mehr SW-Aufwand.) Und wie laden Sie diese SW in Ihren Computer?
Die Fehlersuche (und -behebung) wird ein interessantes Unterfangen sein. Ich würde Ihnen raten, mit dem Schreiben in VHDL zu beginnen und das auf einem Simulator auszuführen, der viel einfacher zu debuggen ist als ein Haufen Chips und Drähte.
Zwei meiner Studenten erstellten in ca. 1 Jahr eine 16-Bit-CPU mit einer Basissoftware (einschließlich eines GCC-Backend-Ports), beginnend mit VHDL- und C-Code für die Simulation. Die ALU verwendete 74181-Chips, der Speicher war statischer RAM, und sie verwendeten einen atMega, um eine Schnittstelle zwischen dem PC und ihrem Computer herzustellen. Der Computer befand sich teils auf lötfreien Breadbords, teils auf Leiterplatten (den 8 16-Bit-Registern). (Diese beiden waren keine durchschnittlichen Studenten!)
Ja, es ist möglich. Aber Sie brauchen einen Mikrocontroller, um die Mathematik zu machen. Dies ist ein Beispielprojekt. Es verwendet einen AVR-Mikrocontroller und ein 16 × 2-LCD-Display.