Core Duo: Cycles per Instruction

31/01/2009 - 13:20 von Markus O. | Report spam
Hallo,

ich bin auf der Suche nach einem Developer Manual, in dem ich nachlesen
kann wie viele cycles eine Instruktion fuer eine Ausführung benoetigt.

Ich habe zwar eine Instruction-Set Dokumentation gefunden unter:

http://www.intel.com/design/core2du...b_techdocs

aber es befinden sich keine Angaben zu den Cycles dort.

Alternativ waere vielleicht ein Simulator nuetzlich, der die CPU
emuliert und man schritt fuer schritt die einzelnen Instruktionen
abarbeiten kann und dann jeweils die Clocks zaehlen kann.

Viele Gruesse und vielen Dank!
Markus
 

Lesen sie die antworten

#1 Hendrik van der Heijden
31/01/2009 - 17:52 | Warnen spam
Markus O. schrieb:
ich bin auf der Suche nach einem Developer Manual, in dem ich nachlesen
kann wie viele cycles eine Instruktion fuer eine Ausführung benoetigt.



Làßt sich auch nicht einfach sagen (wie noch bis zum 486er).

Mittlerweile hàngt Taktzahl für eine Instruktion u.a. von folgendem ab:
- ob/in welchem Cache-Level Memory-Operanden sind
(und ggf. wie schnell das RAM-Subsystem die Daten besorgt)
- welche Instruktionen davor und danach im Programmablauf stehen
(Core2 arbeitet üblich zu jedem Zeitpunkt an dutzenden Instruktionen
gleichzeitig) und deren Datenabhàngigkeiten
- ob konditionale Sprünge vor der Instruktion korrekt vorhergesagt wurden
- ob alle nötigen Recheneinheiten verfügbar oder durch andere
Operationen belegt sind
- an welcher Position in einer Cache-Line die Operation steht

Ich habe zwar eine Instruction-Set Dokumentation gefunden [..]
aber es befinden sich keine Angaben zu den Cycles dort.



Von Intel (Intel 64 and IA-32 Arch. Optimization Reference Manual):
<http://www.intel.com/design/process...66.pdf>
(Appendix C: Intruction Latency and Throughput)

Gemessene Werte von Dritten:
<http://www.agner.org/optimize>
<http://swox.com/doc/x86-timing.pdf>

Alternativ waere vielleicht ein Simulator nuetzlich, der die CPU
emuliert und man schritt fuer schritt die einzelnen Instruktionen
abarbeiten kann und dann jeweils die Clocks zaehlen kann.



AMD hatte sowas für Athlon64, afaik aber auch nur nàherungsweise.


Hendrik vdH

Ähnliche fragen