Forum: Mikrocontroller und Digitale Elektronik Grundlagen IT-Technik und Schaltkreise


von Lukas K. (lukas_k)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Lothar S. (loeti)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lothar S. schrieb:
> Beitrag "CPU Selbstbau"

Wobei der dort verlinkte Server nicht mehr existiert.  Dennis'
MyCPU-Projekt lebt jetzt hier:

http://www.mycpu.eu/

von Dumdi D. (dumdidum)


Lesenswert?

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.

von Nachbar (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Lukas K. (lukas_k)


Lesenswert?

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?

von Thomas (Gast)


Lesenswert?

@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

von Lukas K. (lukas_k)


Lesenswert?

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.)?

von Thomas (Gast)


Lesenswert?


von Lukas K. (lukas_k)


Lesenswert?

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. ;)

von eingast (Gast)


Lesenswert?

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.

von Lukas K. (lukas_k)


Lesenswert?

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?

von Hmm (Gast)


Lesenswert?

@ 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

von Lukas K. (lukas_k)


Lesenswert?

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
Noch kein Account? Hier anmelden.