Wie entwickel ich eine eigene CPU?
Liebe Leute,
ich will meine eigene CPU entwickeln, dabei sollt ihr am Anfang verstehen: Ich will sie nicht selber bauen. Ich will am Anfang ein Modell entwickeln und die CPU programmieren. Natürlich kann diese CPU nicht mit Intel oder AMD mithalten, aber darum geht es mir auch nicht.
Schon mal danke für alle Antworten!
5 Antworten
Du musst dich mit dem Thema beschäftigen... Ich würde am ehesten Bücher vorschlagen, aber es gibt sicher auch viele hilfreiche Youtube-Videos.
Vorneweg: Eine einfache CPU zu entwerfen ist nicht sooo schwer. Es gibt viele Hobby-Projekte, die das machen und z.B. als "Homebrew CPU" oder "Homebrew Computer" bei Hackaday zu finden sind. Außerdem ist die Theorie auch Bestandteil bestimmter Fachrichtungen von Elektrotechnik- oder Informatikstudium... Es gibt also viele didaktisch aufbereitete Bücher dazu.
Du solltest z.B. die Begriffe: Register, ALU, Rechenwerk, Steuerwerk kennen. Dann kannst du mal nach Ein-Akkumulator-Maschine schauen, ein sehr einfacher Grundtyp.
Für den Assembler-Befehlssatz solltest du mal nach Turing-Vollständigkeit schauen, oder nach besonders kleinen Programmiersprachen, wie Brainfuck. Im Prinzip brauchst du die Grundbefehlstypen: bedingte Ausführung, Sprünge und Addition - damit lässt sich alles erreichen. Besonders "esoterisch" wird eine one-instruction-set-architecture, also CPU mit nur einem Befehl, aber das würde ich eher nicht empfehlen, da es andere Dinge verkompliziert.
Ansonsten Literatur:
https://www.elektronik-labor.de/Lernpakete/TPS/TPS0.html (bildet eine eigene CPU mit Mikrocontroller nach, mit einem sehr einfachen Assembler-Satz direkt binär über Tasten zu programmieren)
Bisschen antiquiert:
https://archive.org/details/howtobuildaworkingdigitalcomputer_jun67
Das kommt völlig darauf an, welche Bauteile du verwenden möchtest... Wenn es nur Transisoren und Logikgatter sind, kannst du sie einfach "richtig" zusammensetzen. Öfters wird aber auch an irgend einer Stelle mit programmierbaren Bauteilen (ROMs, EEPROMs, ...) gearbeitet, dann müsstest du die noch programmieren.
Im Normalfall wird eine CPU auf verschiedenen Abstraktionsstufen entwickelt... Du beginnst mit einer Schema-Zeichnung mit ALU, Registern, Speichern. Dabei solltest du dir auch schon Gedanken über das Instruktionsset machen, also welche Assembleranweisungen es geben soll. (Also ob es z.B. eine reine Register-Maschine werden soll, oder Daten aus Speicher geladen werden können) Dann werden die Komponenten nach- und nach detaillierter ausgearbeitet. Das wäre ein Top-Down-Ansatz. Kann sein, dass manche Tutorials von der kleinsten Einheit beginnen und die CPU sukzessive erweitern (Bottum-up-Ansatz).
Du kannst deine CPU auf verschiedenen Ebenen realisieren: Als reine Software-Simulation, als Simulation von Logikblöcken, als programmierbare Logik (FPGA, etc...), als Hardware-Simulation in Mikrocontroller oder als Logikschaltung in Hardware.
Gedanken musst du dir dann noch über die Ein- und Ausgabe der Programme machen.
Du musst erstmal die architektur verstehen, mit ALU, CU, Registern usw.. Dann kannst du anfangen diese komponenten zu entwerfen.
DIeser kollege hat eine sehr interessante serie zu dem thema!
https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU&index=1
https://www.youtube.com/watch?v=0MoemHyNMTg
Das könnt man zumindest nachbauen, habe eigentlich nach einen anderen youtuber gesucht, der selbst cpus herstellt er hat aber Equipment das ganz viel kostet
Noch eine Frage: Wenn ich den Plan einer CPU entwickelt habe, muss die Bauteile nur noch bestellen und richtig zusammensetzen? (einfach gesagt)