2013-01-09 14 views
0

CPU處理指令與石英晶體振盪頻率之間似乎存在差距。 CPU的頻率究竟如何影響程序運行的速度?時鐘頻率和給定時間內處理的指令數量之間是否存在關係?根據CPU處理的指令,時鐘速率決定了什麼?

例如:mov R0, #1。假設這條指令需要一個時鐘週期,這是否需要對晶振進行一次密切配合,還是不能像那樣工作?

回答

2

對於處理器的速度,時鐘速率是一個非常糟糕的估計。在古代(二千年前?)的日子裏,時鐘頻率是一個相當不錯的速度估計。更高的時鐘頻率總是意味着更好的性能但是,現在這不是事實。你可以擁有一個4GHz的處理器,它需要20個時鐘週期來完成任何事情,而且它將比1GHz處理器在一個時鐘週期內執行所有事情要慢得多。這條指令:時鐘週期比例在過去幾年變得更加複雜。現在,需要考慮L1和L2緩存。如果存在高速緩存未命中,則需要額外的時鐘週期或兩個...通常情況下。然後有無序的執行和優化機制,可能會導致分頻指令從小於1(有點)到10個時鐘週期。還有超線程,這意味着當另一個線程正在使用一個組件時,另一個線程將不得不等待額外的時鐘週期......我可以繼續這樣做。

基本上,不要。除非你正在研究簡單的嵌入式(即不是ARM或x86)架構,否則時鐘頻率與指令/秒關係不大。當然,兩個等效的處理器和一個使用更高時鐘的處理器在理論上應該產生更高的指令/秒,但任何人都會猜測每秒多少條指令。

2

它沒有,它在很大程度上取決於具體的處理器設計。粗略地說,在70年代末和80年代,微處理器需要多個時鐘週期來執行指令。 RISC處理器在90年代有了鼎盛時期,他們的重點確實在於使用單個週期來執行指令,並在需要時簡化指令集。很大程度上被具有多個執行內核的處理器設計取代,允許每個時鐘週期退出多個指令。

時鐘電路也有類似的演變。現代處理器使用相對較低頻率的振盪器,並使用片上乘法器來達到千兆赫範圍。並動態改變這個頻率。