Moderne Prozessoren werden getaktet: Jede Operation benötigt eine ganzzahlige Anzahl von Taktzyklen. Die Entwickler des Prozessors bestimmen die Länge eines Taktzyklus. Dabei gibt es zwei Überlegungen: Zum einen die Geschwindigkeit der Hardware, beispielsweise gemessen als Verzögerung eines einzelnen NAND-Gatters. Dies hängt von der verwendeten Technologie und von Kompromissen zwischen Geschwindigkeit und Stromverbrauch ab. Es ist unabhängig vom Prozessordesign. Zweitens entscheiden die Designer, dass die Länge eines Taktzyklus n Verzögerungen eines einzelnen NAND-Gatters entspricht, wobei n 10 oder 30 oder ein beliebiger anderer Wert sein kann.
Diese Auswahl begrenzt, wie komplex Operationen sein können, die in einem Zyklus verarbeitet werden können. Es wird Operationen geben, die in 16, aber nicht in 15 NAND-Verzögerungen ausgeführt werden können. Wenn Sie also n = 16 wählen, bedeutet dies, dass eine solche Operation in einem Zyklus ausgeführt werden kann. Wenn Sie n = 15 wählen, bedeutet dies, dass dies nicht ausgeführt werden kann.
Die Konstrukteure werden n auswählen, damit viele wichtige Operationen in einem oder vielleicht zwei oder drei Zyklen ausgeführt werden können. n wird lokal optimal gewählt: Wenn Sie n durch n-1 ersetzen, wären die meisten Operationen etwas schneller, aber einige (diejenigen, die wirklich die vollen n NAND-Verzögerungen benötigen) wären langsamer. Wenn sich nur wenige Vorgänge verlangsamen würden, sodass die gesamte Programmausführung im Durchschnitt schneller ist, hätten Sie n-1 gewählt. Sie hätten auch n + 1 auswählen können. Das macht die meisten Operationen etwas langsamer, aber wenn Sie viele Operationen haben, die nicht innerhalb von n Verzögerungen, sondern innerhalb von n + 1 Verzögerungen ausgeführt werden können, würde dies den Prozessor insgesamt schneller machen.
Jetzt Ihre Frage: Addieren und Subtrahieren sind so übliche Operationen, dass Sie sie in einem Zyklus ausführen möchten. Infolgedessen spielt es keine Rolle, dass AND, OR usw. schneller ausgeführt werden können: Sie benötigen immer noch diesen einen Zyklus. Natürlich hat die Einheit, die UND, ODER usw. "berechnet", viel Zeit, um ihre Daumen zu drehen, aber dem kann nicht geholfen werden.
Beachten Sie, dass es nicht nur darum geht, ob eine Operation innerhalb von n NAND-Verzögerungen ausgeführt werden kann oder nicht: Eine Addition kann zum Beispiel schneller erfolgen, indem Sie ein bisschen clever sind, noch schneller, indem Sie sehr clever sind, noch ein bisschen schneller, indem Sie außerordentlich viel Hardware investieren , und endlich kann ein Prozessor eine Mischung aus sehr schnellen, sehr teuren und etwas langsameren und billigeren Schaltungen haben, so dass die Möglichkeit besteht, eine Operation gerade so schnell genug zu machen, indem man mehr Geld dafür ausgibt.
Jetzt könnten Sie die Taktrate so hoch / den Zyklus so kurz machen, dass nur die einfachen Bitoperationen in einem Zyklus ausgeführt werden und alles andere in zwei oder mehr. Das würde den Prozessor höchstwahrscheinlich verlangsamen. Bei Operationen, die zwei Zyklen dauern, ist es in der Regel mit einem Mehraufwand verbunden, eine unvollständige Anweisung von einem Zyklus zum nächsten zu verschieben. Zwei Zyklen bedeuten also nicht, dass Sie doppelt so viel Zeit für die Ausführung haben. Um die Addition in zwei Zyklen durchzuführen, konnte man die Taktrate nicht verdoppeln.