Ich habe mich neulich darüber gewundert, als ich einem Freund von mir binär und hexadezimal erklärte und dies auftauchte. Die Frage geht ungefähr so:
Wie genau hängen die Ausführungsgeschwindigkeiten von Anweisungen mit den Taktraten in modernen Computern zusammen?
Angenommen, ein Computerprozessor verwendet ein Taktsignal von 1 MHz. Der Prozessor führt Operationen an der Flanke dieses Takts aus (an der negativen Flanke, wenn ich mich nicht irre), aber das bedeutet nicht, dass für jeden Taktzyklus eine vollständige Anweisung ausgeführt wird.
Um ein spezifischeres Beispiel zu haben: Wenn ein Intel x86-Prozessor einen MOV BX, 45- Befehl hat, gehe ich davon aus, dass es mehrere Taktzyklen dauern wird, um dies abzuschließen, da die Zahl 45 generiert und das BX-Register lokalisiert werden muss usw. Vielleicht könnte dies ein einzelner Taktzyklus sein, da es sich um einen sofortigen Wert handelt, der in ein Register verschoben wird, aber hoffentlich erklärt dies meine Frage. Vielleicht wäre ein JNE- Befehl ein besseres Beispiel.
Darüber hinaus gibt es den Abruf-Dekodier-Ausführungs-Zyklus, der das Verhältnis von Anweisungen pro Takt auf weniger als 1:1 reduzieren würde, ist das richtig? Bitte verzeihen Sie mir, wenn ich völlig falsch verstehe, wie dieses Zeug funktioniert. Ich interessiere mich sehr dafür und weiß, dass viele von Ihnen ziemlich viel darüber wissen. Bitte zögern Sie nicht, etwas Licht in meine Unwissenheit zu bringen :D
Vielen Dank
Chris
Ich gehe davon aus, dass es mehrere Taktzyklen dauern wird, um dies abzuschließen
Es ist ziemlich kompliziert, aber siehe: https://stackoverflow.com/questions/692718/how-many-cpu-cycles-are-needed-for-each-assembly-instruction
Für eine einfache Erklärung sind im Wesentlichen drei Faktoren zu berücksichtigen:
Pipelines erschweren das Timing für "Verzweigungs"-Befehle wie JNE. Möglicherweise stellen Sie fest, dass es einen Zyklus dauert, um nicht zu verzweigen, und hundert Zyklen, um die Verzweigung zu nehmen – es sei denn, der Verzweigungsprädiktor hat richtig geraten, in diesem Fall sind diese Kosten umgekehrt.
Cache-Misses dauern auch ziemlich lange.
Tony Stewart EE75
Mike
glen_geek
dandavis
63!
zum Beispiel ...