Hallo liebe Mikrocontroller-Community, ich bin auf der Suche nach einer guten Lektüre (Website, Buch etc.), die mir weiterhilft, die Arbeit eines Computers auf Schaltkreisebene genau zu verstehen. Die Grundlagen (AND-, OR-, XOR-Gatter etc) sind ja einfach zu verstehen. Aber es gibt kaum eine Website, die es schafft, genau den Übergang zwischen Schaltkreisebene und Programmierung/Datenverarbeitung zu erklären. Was ich möchte, ist, mir z.B. diese hier gezeigten Operationen auf Schaltkreisebene vorstellen zu können, zumindest halbwegs, wenn es nicht vollständig möglich ist. http://de.wikipedia.org/wiki/Assemblersprache Leitgebend sind dazu folgende Fragen: 1. Wie wird denn eine Eingabe (z.B. über die Tastatur) behandelt in der CPU? Hier muss ja eigentlich nichts gerechnet werden, wie wird das dann gehandhabt? 2. Wenn ich jetzt Maschinencode habe (z.B. 10011010010), dann kann ich damit ja etwas programmieren? Aber wie funktioniert denn das eigentlich auf der Schaltkreisebene? Irgendwie müssen ja diese Zustande in einen (oder mehrere) Schaltkreise übertragen werden. Außerdem bleibt ja auch hier wieder die Frage wie bei 1., dass ja bei vielen Vorgangen nicht gerechnet werden muss, z.B. bei der Anzeige von Hello World. 3. Und da wären wir schon beim nächsten, der Anzeige: Werden da einfach Zustände an den Bildschirmspeicher weitergeleitet und der „weiß“ dann anhand dieser Zustande, was er anzeigen muss? Und wie funktioniert das mit dem „Wissen“. Gehen da die Zustände wieder durch AND/OR/XOR/usw.-Schaltkreise und am Ende wird ist dann der Pixel beleuchtet, bei dem die Schaltung geschlossen ist? Entdeckt habe ich bisher dieses Handbuch. http://www.z1013.mrboot.de/DE/handbuch_1.html Falls das gut für mich wäre, könnte ich das ja ausdrucken, ansonsten habt ihr vielleicht noch Vorschläge. ;) Ich hoffe mal, das hier ist nicht das falsche Unterforum, wusste nicht, in welches das genau passt. Gruß Lukas
Du schmeißt hier ziemlich viele Dinge wild durcheinander. Zum einen willst du wissen, wie so eine CPU auf unterster Ebene funktioniert. Gleich danach redest du aber von Eingabe, Tastatur, Bildschirm etc. — Dinge, für deren Benutzung man weit mehr als nur eine primitive CPU braucht. Wenn du dich von der Gatterebene weiter in Richtung CPU bewegst, stolperst du ggf. über den 74180: eine “Arithmetic Logic Unit” (ALU), die das Herzstück einer klassischen CPU bilden kann. Dazu muss man noch Register und einen Speicher samt Ansteuerung gruppieren, dann hat man einen sehr einfach Computer: http://ygg-it.tripod.com/ Aber: wie dort schon steht, das ist ein rein didaktisches Teil. Dinge wie Tastatur oder Bildschirm wirst du dort vermissen: deren Ansteuerung wäre deutlich zu komplex für so eine einfache CPU. Die Eingabe erfolgt bitweise über Schiebeschalter, die Ausgabe bitweise über LEDs. Der Z1013, den du da gefunden hast, ist ein einfacher Computer auf Basis des legendären Z80 (bzw. seines DDR-Clones mit dem Namen U880). Das ist dann gegenüber der Primitiv-CPU oben der nächste Schritt. Die CPU ist hier ein einziger Schaltkreis, Programm- und Datenspeicher sind schon deutlich größer. Im Gegensatz zu einem PC-ähnlichen Computer hat man jedoch keinen direkt angebundenen Massenspeicher, die Programme sind also entweder fest in einem ROM abgelegt oder aber beim Ausschalten wieder weg.
Lothar S. schrieb: > Beitrag "CPU Selbstbau" Wobei der dort verlinkte Server nicht mehr existiert. Dennis' MyCPU-Projekt lebt jetzt hier: http://www.mycpu.eu/
Jörg Wunsch schrieb: > um einen willst du wissen, wie so eine CPU auf unterster Ebene > funktioniert. Gleich danach redest du aber von Eingabe, Tastatur, > Bildschirm etc. — Dinge, für deren Benutzung man weit mehr als > nur eine primitive CPU braucht. Für die Frage des drumherum (und falls Du gerne bastelst): http://books.google.de/books/about/Build_Your_Own_Z80_Computer.html?id=mVQnFgWzX0AC&redir_esc=y Und hie hat jemand eine CPU selbst gebaut (nicht Z80) http://cpuville.com/ eine vollständige Z80 CPU zu bauen (ca 8000 Transistoren, ~ 500 Chips geschätzt) könnte auch den härtesten Hacker überfordern.
dumdi dum schrieb: > eine vollständige Z80 CPU zu bauen (ca 8000 Transistoren, ~ 500 Chips > geschätzt) könnte auch den härtesten Hacker überfordern. Bauen lassen, bzw nur Beschrieben FPGA ist das Zauberwort. Ich empfehle vielleicht mal ein paar Bücher über den 8051, irgendwo hatte ich auch mal unterlagen die bei einfacher Transistorlogik über Gatterlogik über wählbare Gatterlogik (Wenn "Befehl" 0 dann mache Register 1 und Akku, wenn Befehle 1 dann Register 1+ Akku) bis zum lese Byte aus ROM und abhängig vom gelesenen Byte mache X (das ist dann ja schon Assembler). Es wird halt immer weiter Abstrahiert, sonst verliert jeder die Übersicht.
dumdi dum schrieb: > eine vollständige Z80 CPU zu bauen (ca 8000 Transistoren, ~ 500 Chips > geschätzt) könnte auch den härtesten Hacker überfordern. Wenn man ihren inneren Aufbau diskret nachbaut ja. Mit Microcode wärs aber wohl im Rahmen. Allerdings etwas langsam, da man (anders als früher) vmtl. keine geeigneten Multiport-RAMs mehr kriegt.
Okay, Vielen Dank für die Antworten bis jetzt. @Jörg Wunsch Kann man sich dann ein LED vereinfacht als einen Pixel auf dem Bildschirm vorstellen?
@Lukas: Nein, die LEDs sind einfach nur an oder aus und stellen damit eine (binäre) '1' oder '0' da. Ein ganz einfacher 'Computer' könnte z.B. aus 3 Mal 4 Drahtbrücken und 1 Mal 4 LEDs bestehen. Bei den ersten 4 Drahtbrücken ziehst du die ganz links raus, die rechts daneben steckst du, die rechts daneben wieder rausziehen und die ganz rechts stecken -> Damit hast du die Kombination '0101' 'eingegeben' (0 ist kein Strom der fließt, bei 1 fließt ein Strom). (1. Operant) Bei den zweiten 4 Drahtbrücken machen wir: '0011' (2. Operant) Und bei den dritten 4 Drahtbrücken machen wir '0001' (Operationscode) Der Computer ist nun so verkabelt dass er die dritten Drahtbrücken 'auswertet' - dies ist der Operationscode und feststellt (intern ist das so verschalten) dass der Operationscode '0001' ADDIEREN heißt. Nun werden der erste Operant und der zweite Operant so miteinander verbunden (mit Logikgattern AND, OR, NOT - das nennt sich dann ALU) dass an den LEDs das Ergebnis der Addition rauskommt. In dem Fall 0101 + 0011 kommt 1000 raus. Es leuchtet also die LED ganz links, die anderen 3 bleiben aus. Und das ist auch schon der ganze Computer. Also so fast. Ein paar Sachen mehr sind da schon noch drin :-) Thomas
Wo du das gerade ansprichst, so eine einfache ALU wäre mal etwas für die Ferien (einer, der bis 15 rechnen kann, wie dein Beispiel, sollte ja nicht allzu umständlich sein). Am einfachsten ist das wahrscheinlich mit fertigen Transistoren. Schaltkreise selber bauen ging zwar auch, würde aber ausufern. Röhren könnte man doch auch verwenden, oder? Wo bestellt man denn sowas am besten (Steckbrett, Transistoren etc.)?
Na ganz einfach, selber bauen :-) Guck mal z.B. hier: http://minnie.tuhs.org/CompArch/Tutes/week01.html http://minnie.tuhs.org/CompArch/Tutes/week02.html Thomas
Aber ein Relais, ein oder mehrere Steckbretter, Schalter (wobei die wohl nicht zwingend notwendig sind) und Drähte braucht man doch auch, wenn man auf Transistoren verzichtet und die Gatter selber baut. Bei Conrad könnte ich natürlich bestellen, aber welche genau, wüsste ich nicht. Danke für die Links aber. ;)
Die Bibel: Hennessy, Patterson: Computer Architecture, A Quantitative Approach. Wenn du da durch bist, weisst du alles um eine moderne CPU selbst zu entwickeln. Quantitativ ist eher wörtlich zu nehmen, ist ein ziemlicher Brummer. Ich fand das sehr gut, man muss nicht unbedingt jede einzelne Seite lesen um ein gutes Verständnis für die Materie zu kriegen. Müsste in jeder (technischen) Uni-Bibliothek vorhanden sein.
Danke für den Buchtipp, aber das mit der technischen Uni wird etwas schwer (die nächste technische Uni ist relativ weit weg und einen Schein habe ich sowieso nicht), aber mal schon, vielleicht komm ich ja an das Buch. Wie sieht das jetzt mit dem Bestellen aus? Eigentlich bräuchte man doch noch ein Netzteil, das alle Schaltkreise mit Strom versorgt, wenn ich das wirklich so machen will, oder?
@ Lukas Ich denke das Problem ist, ein Beispiel zu finden, bei dem der Sprung von Gattern und Flip-Flops sehr klein, aber dennoch groß genug ist. Guck mal hier: http://www.tinymicros.com/wiki/MC14500B
Sorry, dass ich jetzt zum dritten Mal frage, aber hat denn jemand einen Tipp, wo ich alle nötigen Sachen bestellen könnte? @Hmm Meinst du jetzt auch andere Literatur zu diesem Chip oder speziell das, was man dazu auf dieser Seite findet?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.