Jak każda skomplikowana rzecz, możesz opisać sposób działania procesora na różnych poziomach.
Na najbardziej podstawowym poziomie procesor napędzany jest przez dokładny zegar. Częstotliwość zegara może się zmieniać; pomyśl SpeedStep Intela. Ale przez cały czas procesor jest całkowicie w 100% zablokowany na sygnał zegara.
Instrukcje procesora działają na znacznie wyższym poziomie. Pojedyncza instrukcja jest złożoną rzeczą i może trwać od mniej niż jednego cyklu do tysięcy cykli do zakończenia , jak wyjaśniono tutaj na Wikipedii .
Zasadniczo więc instrukcja zużyje pewną liczbę cykli zegara . W nowoczesnych procesorach, ze względu na technologie takie jak wiele rdzeni, HyperThreading, potokowanie, buforowanie, poza kolejnością i wykonywanie spekulacyjne, dokładna liczba cykli zegara dla pojedynczej instrukcji nie jest gwarantowana i będzie się zmieniać za każdym razem, gdy wydasz taką instrukcję !
EDYTOWAĆ
czy są dostępne informacje na temat wariancji dla konkretnego procesora?
Tak i nie. 99,99% użytkowników końcowych jest zainteresowanych ogólną wydajnością , którą można określić ilościowo, przeprowadzając różne testy porównawcze.
To, o co prosisz, to wysoce techniczne informacje. Intel nie publikuje pełnych lub dokładnych informacji na temat opóźnienia / przepustowości instrukcji procesora .
Są naukowcy, którzy podjęli się tego, aby spróbować to zrozumieć. Oto dwa pliki PDF, które mogą być interesujące:
Niestety trudno jest uzyskać dane dotyczące wariancji . Cytowanie z pierwszego pliku PDF:
podane liczby są wartościami minimalnymi. Chybienia w pamięci podręcznej, niewspółosiowość i wyjątki mogą znacznie zwiększyć liczbę zegarów.
Mimo to ciekawa lektura!