單片機的執行速度
單片機的執行速度與什么有關呢,當然對于初學者來說,第一時間想到的是晶振,沒錯,晶振算一個,但準確的來說應該是單片機的時鐘源(再具體一點就是單片機的系統時鐘)。單片機的時鐘源來說有分為內部時鐘和外部時鐘,外部時鐘源一般指的就是晶振了;內部時鐘對于比較老的單片機是沒有的(比如51單片機)。還有一點需要注意的是現在許多高級一點的單片機都會涉及到倍頻和分頻,n倍頻即把單片機的時鐘源乘以n作為單片機的系統時鐘;分頻與倍頻恰好相反。
本文引用地址:http://www.104case.com/article/201807/383567.htm第二點,應該是執行一條指令需要多少個時鐘周期,對于老一點的51單片機執行一條指令需要12個時鐘周期,但現在大多數單片機執行一條指令僅需1個時鐘周期(STC的 1 T 單片機),這樣速度一下子就提高12倍。
第三點,就是常說的幾位機,最初接觸的51大多為8位機,而后來隨著技術的發展有了16位機(飛思卡爾、AVR等)、32位機(stm32)。我們都知道所有的指令最后執行的都是一連串的2進制數,對于8位機一次可以執行8位,而16位機可以執行16位,32位機可以執行32位,這樣32位的明顯比8位的快。
最后一點也是比較難理解的一點,就是單片機的內部結構,正常情況下一條執行完成需要經過取指令、解密尋址、執行指令三個步驟,比較老的單片機在執行這三個步驟時需要按照執行順序依次執行,而高級的單片機(stm32)具有三級流水線,通俗的理解就是可以同時執行三個步驟,這樣也大大的增加了單片機的執行速度。
特別注意的是:所有的速度并不是成線性關系的,即在相同條件下,不是32位機的執行速度就是8位機的4倍,更不是具有三級流水線的單片機的執行速度是普通單片機的3倍。具體原因與其內部設計的局限性有關系,這里我也不太清楚,不做太多介紹了。
評論