1 時鍾周期
例如51單片機,外部晶振為12MHz,則時鍾周期為1/(12M),也就是(1/12)微秒。
2 機器周期
用C語言寫的程序,會被轉換成一條一條的指令,不同的指令執行的時間不同。
而這個時間的最小衡量單位是機器周期。
簡單指令需要一個機器周期,復雜指令可能需要兩個或兩個以上的機器周期。
對於51單片機,一個機器周期等於12個時鍾周期。
也就是一個時鍾周期為1us。以前用_nop();進行1us延時就是這個道理。
3 指令周期
不同的指令,執行的時間是不同的,但基本的衡量單位是機器周期。
4 STM32的時鍾周期、機器周期與指令周期
STM32時鍾樹如下圖所示。
從時鍾樹可以看出,HCLK、PCLK以及FCLK都是由SYSCLK分頻或倍頻得到的。
STM32時鍾樹里縮略詞說明如下圖所示。
縮略詞 | 英文 | 中文 |
SYSCLK | System Clock | 系統時鍾 |
HCLK | High Performance Bus Clock |
高性能總線時鍾 |
PCLK | Periphral Bus Clock | 外圍設備總線時鍾 |
FCLK | Free Runing Clock | 自由運行時鍾 |
如下圖所示,內核(core)的時鍾為72MHz。
正點原子:“STM32有三級流水線,指令周期不定的,arm給出的是1.25MIPS/Mhz,一個平均執行速度。”
“就是1Mhz的頻率,每秒鍾可以執行1.25M指令。72M,那么就是72*1.25。”
MIPS(Million Instructions Per Second):每秒處理1百萬條指令。
5 參考
51、430、stm32周期和執行一條語句需要多長時間的問題
https://blog.csdn.net/helenie/article/details/52810046
計算機組成原理:時鍾周期、機器周期和指令周期
https://blog.csdn.net/billbonaparte1/article/details/51297189
STM32的一個指令周期是多少個時鍾周期呀?