Ich verstehe nicht wie eine Maschine den Binärcode verstehen kann?
Irgendjemand bzw. irgendwie muss die CPU ja so entworfen haben, dass sie Maschinencode einlesen kann und abspeichern lässt. Ich verstehe nur dass es verschiedene Schaltkreise gibt die über 0 und 1 kommunizieren also Schalter aus Schalter ein. Aber wie versteht die CPU dass dies eine Zahl bedeutet oder dass sie etwas abspeichern muss. Wie wurde die CPU dafür entworfen? Ich finde im Internet keine Geschichte dazu.
5 Antworten
Das ist ja gerade der "Witz" am binären System und der Computersprache: Alles besteht aus einer Ketten von Einsen und Nullen.
In den 1980ern hätte ich vielleicht noch grob die Funktion oder Arbeitsweise eines C64 erklären können. Aber heute??? Funktioniert ähnlich, basiert darauf - aber das Datenvolumen ist unfassbar höher, wenn man auf einfachsten Ebenen arbeitet.
Am Ende ist es aber wirklich so: Das, was Konrad Zuse mit Relais geschafft hat, das schafft man heute mit Transistoren. Und diese Transistoren sind winzig und auf Chips gebrannt, damit sie zig-tausendfach in der Sekunde zwischen 0 = low und 1 = high entscheiden und blitzschnell Datenblöcke aneinander fügen und auf den Bildschirm bringen.
Die Maschine "weiß" gar nichts, sie tut, wozu sie gebaut wurde.
Zahlen werden in einer CPU durch eine Folgen von (z.B. 16) Bits repräsentiert. Zwei Zahlen sind dann eben zwei separate Bitfolgen. Und die Operation "addiere" ist in Hardware so gebaut, dass als Ergebnis wieder Eine Bitfolge rauskommt, die der Summe beider Eingabebitfolgen entspricht.
https://de.wikipedia.org/wiki/Halbaddierer
https://de.wikipedia.org/wiki/Volladdierer
https://de.wikipedia.org/wiki/Addierwerk
https://de.wikipedia.org/wiki/Schaltnetz
...
Das lernt man im Fach Digitaltechnik. Hier bei Null zu beginnen, macht keinen Sinn. Schau mal bei
https://www.elektronik-kompendium.de/sites/dig/index.htm
Du kannst dich da schrittweise emporarbeiten. Wenn man aber mit Null Wissen begreifen will, was eine CPU macht, ist man natürlich überfordert: Das ist so, also wolltest du eine Bach-Partitur verstehen wollen, ohne jemals gehört zu haben, was eine Musiknote ist. Fang klein an, wenn du es tatsächlich lernen magst.
Du siehst das leider total falsch: nicht umsonst lernt man das in einer ganzen Ausbildung (Schule, Uni, FH, Lehre...). Es ist nich Allgemeinwissen, das auch die Großmutter hat. Ich kann ja auch nich bei allen Themen mitreden und verstehe beispielsweise die Finanzwirtschaft so wenig, wie du eine CPU. Entspanne dich...
Ich dachte zu wissen wie ein Computer Maschinenbefehle verarbeitet gehört heute eher schon ein wenig zu Allgemeinwissen. Die physikalischen Vorgänge im Detail zu verstehen auch wie die einzelnen Teile konstruiert werden ist dann kein Allgemeinwissen mehr. Aber es stimmt schon dass nach wie vor wenige Leute den Computer nicht mal oberflächlich verstehen. Also Danke!
Zu wissen, DASS ein Computer Maschinenbefehle verarbeitet, impliziert keineswegs, dass man automatisch auch weiß, WIE das in der CPU Hardware gelöst wird. Damit beschäftigen sich nur wenige Leute. Und selbst dort weiß man i.A. nicht, was jeder einzelne Transistor macht, da verschiedene funktionale Komponenten schon fix und fertig in einer "Schublade" liegen, die dann einfach verwendet werden. Ein Autohersteller dreht ja auch nicht jede Schraube selbst auf der Drehbank sondern ist von Lieferanten abhängig. Die Prozesskette im Chip-Design ist extrem hierarchisch aufgebaut und geht von der tiefsten Halbleiterphysik bis hin zum CPU Design - jedes Kettenglied ist von den Ergebnissen der Vorgänger abhängig. Jemand der beispielsweise die Pipeline einer CPU designt, hat mit Halbleiterphysik nichts am Hut und weiß auch nicht mal im Ansatz, was jeder Transistor macht. Und die Halbleiterphysiker haben null Tau davon, wie eine CPU funktioniert.
Bis zu einem gewissen Grad sollte man aber trotzdem sich Wissen über Mathematik und Physik aneignen. Aber klar wie du es ähnlich beschrieben hattest nicht so tief bis ins Detail der Halbleiterphysik
Danke für deine Antwort und die Verlinkung. ich bin beruhigt dass es normal ist überfordert zu sein. Ich hatte solch Selbstzweifel deswegen.
Hallo justforamoment1!
Ja, genau, die CPUs sind so gebaut, dass sie Anweisungen und die Ausführung der Anweisungen gespeichert haben. Diese Anweisungen sind mit Ziffern versehen, die als Binärcode bei der CPU ankommen. Die Anweisung 3 bedeutet dann z.B. "Addiere zwei Zahlen" oder "Lade Daten aus dem Speicher M in Register b" etc.
https://learn.arcade.academy/de/latest/chapters/06_what_is_a_programming_language/
LG
gufrastella
Danke aber ich wollte wissen wie eine CPU gebaut ist um diese Anweisungen auszuführen. Wie können einzelne Transistoren wissen wann Sie auf aus oder ein schalten müssen anhand eines Binärcodes
Dazu gibt es viel Literatur, auch im Internet. Siehe hier zum Aufbau und Funktionieren von Transitoren : https://www.conrad.de/de/ratgeber/industrie-40/elektronik-bauteile/transistoren.html
oder zur CPU: https://bsz-limbach.com/wir/schueler/tg15mo/seite1.html
Schau dir mal die "Geschichte" an. Dann wird es evtl. klarer. Ganz früher hat man noch Lochkarten benutzt ;).
Kurz gesagt, der Computer übersetzt die Befehle in z.B. Assembler oder höhere Levels wie in C oder anderen Programmiersprachen in Maschinencode. Aka die 0en und 1en.
Diese Schalter sind Transistoren und Nanometer groß & millionenfach auf einem Die.
Also es ist so 1 und 0 sind einfach Ladungen in bestimmten Volt Bereichen. Und dann schau dir an, was ein Logikgatter ist.
Aber wie wurde die CPU produziert bzw. entworfen damit Sie eine beliebige Kombination aus Nullen und Einsen begreift?
Die begreift eigentlich gar nix. Das ist nicht das Konzept. Das geht in der Basis über Logikgatter und Halbleiter. Beschäftige dich damit ausführlich.
Ich verstehe nur Bahnhof bei deinen verlinkten Wiki Artikeln. Ist wirklich nervig. Ich werde dass ja dann nie begreifen. Dabei finde ich es doch so interessant :-(