Ursprung Hardware, Befehle verstehen?


05.07.2022, 13:53

Könntest du als Individuum die seeehr kleinen Teilchen von einer Hardware (Bild) chemisch dazu bringen Inhalte zu speichern? Nein ? aber irgendjemand hat das wohl getan, wie funktioniert das denn ... ?

6 Antworten

Erstmal vielleicht interessant, wie wird ein Chip hergestellt?

https://www.youtube.com/watch?v=_Kj58yQ67KI

Im Video ist auch die Rede von Transistoren. Transistoren sind praktisch Schalter, die einerseits ein elektrisches Signal ein- und ausschalten können, aber selbst wiederum durch ein anderes elektrisches Signal gesteuert werden können.

Jetzt nehmen wir noch die binären Zahlen dazu, die lediglich die Ziffern 1 und 0 verwenden, denn die kann man super mit "Strom an" und "Strom aus" repräsentieren.

In einem Chips gibt es unvorstellbar viele Transistoren, die miteinander verbunden sind, sich also gegenseitig ansteuern können. Ein oder mehrere Transistoren können einen oder mehrere andere Transistoren steuern.

An irgendeiner Stelle hat man dann eben z.B. 64 Eingangssignale, und je nach dem, welche dieser Signale (Bit) 0 oder 1 sind, gibt es eben eine entsprechende "Kettenreaktion" in den Transistoren, die dann zu einem entsprechenden Ausgangssignal führt.

Woher ich das weiß:Hobby – Up-to-date dank PCGH-Abo und vielen anderen Quellen

Ein elektrisches Signal wird erzeugt und für den PC zur Verfügung gestellt. Es gibt Lokiggatter, wie zum Beispiel "und". Dabei wird ein Signal mit einem anderen verglichen und wenn beide an sind gibt es ein Output - Signal. Du kannst da mal nach Bildern für suchen.

Wenn jetzt also ein Programm sagt

falls Taste "a" und Taste "b" gedrückt sind:

lasse Pixel 727374828282 leuchten

Wird der Pixel angemacht, wenn das "und"- Gate "a&b" einen Output gibt. Es gibt für alle Kombinationen alle Gatter, also enorm viele.

Diese Erklärung ist zwar sehr simpel, aber so funktioniert es grundsätzlich.

Zuerst müssten wir klären, was "ein Befehl" ist - Hochsprachenbefehle sind etwas anderes als die Instruktionen, die auf CPU-Ebene abgearbeitet werden. Letztere verrichten meist weniger Arbeit, sind also primitiver. Die Darstellung ist auch eine andere, nämlich eine Folge von Nullen und Einsen. Diese Folgen werden "opcodes" genannt.

Lange Listen solcher opcodes, genannt "Programme", werden in den Speicher geladen, und von dort nacheinander von der CPU gelesen und ... ausgeführt.

Was beinhaltet dieses "Ausführen":

Wenn wir eine CPU bauen, können wir deren Design bestimmen, welche Instruktionen mit welchen opcodes korrespondieren. Zum Beispiel bestimmen wir, dass mit einem opcode, welcher nur aus Nullen besteht, gar keine Aktion verbunden ist - eine sogenannte "no operation". Damit geht die CPU einfach weiter zum nächsten opcode, liest den, und führt diesen aus.

Das könnte erneut ein "no operation" sein, oder eine andere Instruktion. Z.B. "Springe zu einer anderen Stelle im Programm", also "verändere, von welcher Speicheradresses die CPU die nächste Instruktion lesen soll"

Wo diese andere Stelle ist, könnte z.b. durch eine Zahl hinter dem opcode für "Springen" angegeben werden. Diese würde die CPU ebenfalls lesen, und als "nächste Adresse" speichern. Und dann weiter fortfahren mit Lesen von Instruktionen an dieser Adresse.

Ausser diesen zwei Instruktionen gibt es aber noch viele anderen. Arithmetische zum Rechnen, logische für logische Operationen wie "und, oder, nicht", bedingte Sprünge ("springe nur wenn diese und jene Bedingung gegeben ist"), Vergleiche, Lesen und Schreiben von Daten im Speicher und mehr. jede dieser Instruktionen wird durch einen anderen "opcode" dargestellt, und damit kann die CPU diese auch auseinanderhalten.

Auf Hochsprachenniveau werden dann mehrere dieser einfachen, primitiven Instruktionen zu komplexeren Sequenzen zusammengefügt, die damit auch vergleichsweise mehr tun können.

Bushmills145  05.07.2022, 14:56

Wenn du bissel vertraut mit flow chart ähnlichen Diagrammformen bist - hier ist eine einfache CPU, aufgebaut in flow chart ähnlicher Darstellung. Diese ist lauffähig - denn das was bissel wie flow charts aussieht, ist tatsächlich eine Art Programm, also es kann ausgeführt werden. Und wenn es dann läuft, simuliert es diese hier dargestellte CPU: http://fachkurs.de/vm/vm.pdf

auf github findet sich auch ein Compiler dafür, um Programmtext zu übersetzen, so dass diese simulierte CPU die auch abarbeiten kann.

0

Hi Malikwissen

Das ist eine wirklich gute Frage.

Bin Ausbilder für Fachinformatiker, in dem Beruf lernt man solche Sachen. Das dauert aber drei Jahre.

Würde man das hier beantworten, käme mindestens ein Buch raus. Ich glaube, das wäre nicht richtig. Sorry, weiss keine Antwort in zwei Sätzen.

Vielleicht weißt du, das ein Computer mit Nullen und Einsen läuft.

Mit diesen ist nun dem Computer eingehämmert worden, was die Befehle machen.

(Grob beschrieben 😁)

Wenn du es genauer brauchst, sag Bescheid, ich hoffe ich konnte dir helfen.

Woher ich das weiß:eigene Erfahrung