1. 程式人生 > >cpu時鐘頻率和MIPS

cpu時鐘頻率和MIPS

首先,瞭解下晶振的作用。沒有晶振,就沒有時鐘週期,沒有時鐘週期,就無法執行程式程式碼,微控制器就無法工作。 微控制器工作時,是一條一條地從RoM中取指令,然後一步一步地執行。微控制器訪問一次儲存器的時間,稱之為一個機器週期,這是一個時間基準。—個機器週期包括12個時鐘週期。如果一個微控制器選擇了12MHz晶振,它的時鐘週期是1/12us,它的一個機器週期是12×(1/12)us,也就是1us。 MCS—51微控制器的所有指令中,有一些完成得比較快,只要一個機器週期就行了,有一些完成得比較饅,得要2個機器週期,還有兩條指令要4個機器週期才行。為了衡量指令執行時間的長短,又引入一個新的概念:指令週期。所謂指令週期就是指執行一條指令的時間。例如,當需要計算DJNZ指令完成所需要的時間時,首先必須要知道晶振的頻率,設所用晶振為120MHz,則一個機器週期就是0.1us。而DJNZ指令是雙週期指令,所以執行一次的指令週期為0.2us,每秒執行指令次數為5百萬,即5mips。

首先,mips是理論值,理論上CPU每秒處理的萬條指令數,實際數量小於這個值。
mips有很多東西決定,當然包括流水線,時鐘頻率等等。
大多數處理器都是一條指令只做一個操作,mips往往等於ALU的時鐘週期的萬分之一。
不過,有的處理器支援SIMD 單指令多資料流,也就是一條指令可以同時完成多個操作,這時候一條指令就不光是一條指令了。
所以,兩個處理器有相同的核心頻率,卻可以有不同的mips。

另外,由於流水線的存在,現在的CPU的實際處理速度遠小於他的mips。大量的跳轉指令頻繁的重新整理流水線,導致一條指令往往花了多個週期才能執行。
同時,主頁取決於記憶體和其它裝置的速度。
比如兩個操作序列
(1)


c=a+b
f=c+n
(2)
c=a+b
f=d+n
有流水線的情況下,(2)要明顯快於(1)。(1)中的第二條指令要等待地一條指令的執行結果,而這個結果會導致流水線停滯。

現在的CPU為了防止流水線被頻繁的重新整理和停止,採用了指令級的亂序處理,超標量和分支提前預測等等技術,也導致了CPU體積不斷變大,越來越複雜。