Vielleicht denke ich nicht richtig darüber nach, aber wenn Sie der CPU einen Befehl wie „Register multiplizieren (MR) R2, R4“ geben, wie entscheidet sie dann, welche Logikgatter sie verwenden wird? Sind es nur die ersten verfügbaren Gatter oder passiert da etwas, von dem ich nicht weiß, dass es im Hintergrund vor sich geht? Mir ist klar, dass eine CPU Millionen von Logikgattern hat. Wie verwaltet sie also deren Verwendung richtig?
Antwort1
Ihre Frage betrifft eher den Bereich der Elektrotechnik als der Informatik und ist daher etwas abseits vom Thema, aber ich werde sehen, was ich tun kann.
Ihr Multiplikationsbefehl wird in eine Warteschlange gestellt.Arithmetische Verarbeitungseinheitan einem seiner Eingangs-/Ausgangsanschlüsse.
Die ALU verwendetKombinatorische Logikin seinem Layout, sodass der Strom durch den gesamten Schaltkreis fließt und sein Ausgang je nach empfangenem Eingang variiert. Es wird kein Satz von zu verwendenden Gattern ausgewählt, alle Gatter empfangen Signale, aber das Layout des Schaltkreises erzeugt eine reproduzierbare Transformation des Eingangssignals, die das Ergebnis trägt. Beachten Sie, dass Sie auf dieser Ebene sowohl mit analogen als auch mit digitalen Bits arbeiten, sodass der Strom wie Wasser durch ein Netzwerk von Rohren fließt und die Schaltung mehr oder weniger Wasser durch verschiedene Wege lässt.
Die Ausführungseinheit, die den Befehl steuert, sendet ihn zur Verarbeitung an die ALU und erwartet beim nächsten Taktschlag, dass das Ergebnis in einem der Ausgaberegister der ALU verfügbar ist. Weitere Einzelheiten finden Sie hier:https://en.wikipedia.org/wiki/Arithmetische_Logikeinheit#Schaltungsoperation
Antwort2
Einfach ausgedrückt ist es der Befehl, den Sie ausführen, der die Transistorzustände und damit die verwendeten Logikgatter bestimmt. Er wird eine Reihe von Bytes sehen und diese Reihe konfiguriert effektiv den Anfangszustand des Prozessors. Bei modernen Prozessoren mit mehreren Ausführungseinheiten ist es viel komplizierter, aber das ist der Kern der Sache.
Wenn der Prozessor startet, befindet er sich an der Adresse 0 und legt diese Adresse auf den Adressbus. Er wartet dann darauf, dass die Bytes an der Adresse 0 an seinen Dateneingängen erscheinen. Dadurch wird dem Prozessor der Startzustand mitgeteilt, in dem er sich befinden muss, damit er die nächste Adressposition auf den Adressbus legen und auf das nächste Byte warten kann und so weiter.
Bald wird er einen vollständigen Befehl und die Bytes haben, die er miteinander multiplizieren muss. All diese Bytes „konfigurieren“ den Prozessorkern effektiv für die auszuführende Aufgabe.
Nachdem der vollständige Befehl zusammen mit den im Register abgelegten benötigten Datenbytes abgerufen wurde, kann mit dem erforderlichen Befehl fortgefahren werden. Nach dem Durchlaufen der erforderlichen Reihe logischer Übergänge wird dann das Ergebnis ausgegeben.