Es wäre ziemlich schwierig, einen modernen Mikrocontroller auf Transistorebene zu entwerfen. Transistoren werden verwendet, um Logikgatter als Bausteine der niedrigsten Ebene herzustellen . Das einfachste Gatter ist das NICHT-Gatter, das den Eingangspegel invertiert: Eine logische 0 wird zu einer 1 und umgekehrt. Das NICHT-Gatter besteht aus 2 Transistoren:
Der obere Transistor leitet, wenn sein Eingang (der kleine Punkt) niedrig ist, der untere Transistor (kein Punkt), wenn sein Eingang hoch ist. Wenn Sie also einen hohen Eingang anlegen, leitet der untere Transistor als Schalter und schaltet den Ausgang Q auf Vss (das ist Ihr -) oder einen niedrigen Pegel. Wir haben die Eingabe invertiert. Andere Tore basieren darauf. Nehmen Sie zum Beispiel das NAND-Gatter. Es hat zwei oder mehr Eingänge und der Ausgang ist niedrig, wenn alle Eingänge hoch sind. In allen anderen Fällen ist der Eingang hoch.
Dies ist ein NAND-Gatter mit 2 Eingängen. Sie können immer noch einen Teil des Wechselrichters darin sehen. Wenn beide Eingänge hoch sind, leiten beide unteren Transistoren, und der Ausgang wird durch seine Verbindung mit Vss niedrig gemacht. Wenn einer der Eingänge niedrig ist, leitet mindestens einer der oberen Transistoren und der Ausgang wird durch die Verbindung mit Vdd hoch (das ist Ihr +). Wir haben ein funktionierendes NAND-Gatter. Und so geht es weiter, wir können ein XOR-Gatter mit 4 NAND-Gattern erstellen, und andere komplexere Logik wird aus einer Kombination von Bausteinen erstellt. Sie benötigen einen Baustein, um eine Registerfunktion zu erstellen: einen Teil, der seinen Status wie ein Speicher beibehalten kann.
Wenn ein Befehl aus dem RAM lesen möchte, gibt es zuerst den Befehlsdecoder. Durch eine Kombination von Gattern leitet es eine Anzahl von Signalen ab, die es zur Ausführung des Befehls benötigt. Eine davon besteht darin, die zu lesende RAM-Adresse an den Adressbus zu übergeben. (Busse sind Signalkanäle, ein Adressbus für einen 8-Bit-Controller kann beispielsweise 16 parallele Drähte haben. Busse sind eine Möglichkeit, die Dinge zu organisieren. Ohne sie würde das Design des Controllers sehr ineffizient werden.) Ein anderes Signal aktiviert die RD Zeile (für "Lesen"), die dem RAM signalisiert, dass die Daten im Datenbus abgelegt werden sollen. Ein weiteres Signal speichert diese Daten in einem Register.
Eine wichtige Sache ist das Timing. Sie können die Daten nicht zwischenspeichern, wenn Sie dem RAM nicht die Zeit gegeben haben, sie auf dem Bus zu platzieren. Alles nach der gleichen Logik, aus Bausteinen, die wiederum aus Transistoren aufgebaut sind.
"Transistoren erhöhen irgendwie die Rechengeschwindigkeit"
Es gibt nichts anderes als Transistoren und ihre Verbindungen. Transistoren alleine erhöhen die Geschwindigkeit nicht. Was jedoch stimmt, ist, dass technologische Verbesserungen schnellere Transistoren ermöglichen und schnellere Transistoren eine schnellere Berechnung bedeuten. Einige dieser Verbesserungen sind einzigartige Technologieschritte, die Sie nur einmal ausführen können. Aber die Skalierung ist ein weiterer Faktor, und das haben sie seit der Entwicklung der ersten ICs immer wieder wiederholt. Vor 40 Jahren hatte ein IC normalerweise 5 bis 8μm Feature-Größe. Heute können wir bis zu 22 nm Feature-Größe produzieren. (DNA hat einen Durchmesser von 15 nm.) Bei kleinerer Strukturgröße ändern sich die physikalischen Eigenschaften des Transistors, sodass er schneller schalten kann. Moore sah in dieser fortgesetzten Skalierung einen Trend, der als Moores Gesetz bekannt wurde. Dies kann nicht ewig so weitergehen, ohne einen Sprung in die verwendete Technologie machen zu müssen. In den 80er Jahren wurde befürchtet, dass die damals verwendete Technologie ihre Grenzen bei etwa 200 nm bis 300 nm haben würde, da der lithografische Prozess bei Wellenlängen unter sichtbarem Licht möglicherweise nicht funktioniert. Aber Lithographie ist immer noch die Technologie, die heutzutage von Steppern verwendet wird.