Wie entwickel ich eine eigene CPU?

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


Blekii 
Beitragsersteller
 19.03.2022, 10:31

Noch eine Frage: Wenn ich den Plan einer CPU entwickelt habe, muss die Bauteile nur noch bestellen und richtig zusammensetzen? (einfach gesagt)

0
kmkcl  19.03.2022, 11:21
@Blekii

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.

0
Blekii 
Beitragsersteller
 19.03.2022, 11:43
@kmkcl

Danke! Aber die Teile, die ich noch programmieren muss: Wie übertrage ich das Programmierte auf das jeweilige Bauteil(Wie bei einem USB Stick)?

0
kmkcl  19.03.2022, 11:54
@Blekii

Das kommt ganz konkret auf die Teile an. Meistens wirst du irgend einen Programmieradapter benötigen...

0
Blekii 
Beitragsersteller
 19.03.2022, 13:33
@kmkcl

Ok. Super. Vielen Dank das hat mir sehr weitergeholfen!

0
Blekii 
Beitragsersteller
 19.03.2022, 10:56

@kmkcl

0