单片机指令周期、机器周期、状态周期、时钟周期
單片機(jī)的系統(tǒng)指令周期根據(jù)不同的內(nèi)核架構(gòu)各有區(qū)別。
8051系列單片機(jī)采用的是同步式的順序邏輯系統(tǒng),整個(gè)系統(tǒng)的工作完全是依賴系統(tǒng)內(nèi)部的時(shí)脈信號(hào)。它的指令周期、機(jī)器周期等也是根據(jù)時(shí)鐘脈沖信號(hào)來確定。下面說明機(jī)器周期、指令周期等的關(guān)系。
時(shí)鐘周期:又叫時(shí)鐘振蕩周期,指晶振振蕩產(chǎn)生的脈沖,一個(gè)脈沖表示一個(gè)時(shí)鐘周期。
狀態(tài)周期:在8051單片機(jī)中把一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示)。一個(gè)狀態(tài)周期等于兩個(gè)時(shí)鐘周期。
機(jī)器周期:一般也叫CPU周期,表示從內(nèi)存讀取一條指令字的最短時(shí)間,它是指令周期的最小單位。它等于單指令的周期長(zhǎng)度。一個(gè)機(jī)器周期等于6個(gè)狀態(tài)周期。
指令周期:一條指令包括1個(gè)或多個(gè)機(jī)器周期。所有的C語言代碼最后都會(huì)編譯成匯編代碼來執(zhí)行,而執(zhí)行一條匯編指令需要的機(jī)器周期就叫做指令周期。
不用的指令的時(shí)鐘周期不一樣,同意8051內(nèi)核,同一指令的時(shí)鐘周期也不一樣,由下圖就可以知道,MOV指令將寄存器值放入累加器需要一個(gè)機(jī)器周期,MOV指令將直接地址中的值放入累加器需要兩個(gè)周期;同一指令,8051和90系列單片機(jī)的指令周期也不同,8051系列執(zhí)行單指令需要12個(gè)時(shí)鐘周期,90系列執(zhí)行單指令需要6個(gè)周期,他們都是需要一個(gè)機(jī)器周期,但是90系列一個(gè)機(jī)器周期只需要6個(gè)時(shí)鐘周期。
我們常用的NOP指令就是一個(gè)單指令,需要一個(gè)機(jī)器周期,8051需要晶振產(chǎn)生12個(gè)脈沖。
8051百度百科:8051是一種8位元的單芯片微控制器,屬于MCS-51單芯片的一種,由英特爾公司于1981年制造。INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機(jī),如Atmel、飛利浦、深聯(lián)華等公司,相繼開發(fā)了功能更多、更強(qiáng)大的兼容產(chǎn)品。
CORTEX-M0 M3 M4等,采用的是ARMv6-M、ARMv7-M、ARMv8-MThumb指令集,采用的是三級(jí)流水線工藝,M3具有分支預(yù)測(cè)功能,可以預(yù)取分支目標(biāo)地址的指令,使分支延遲減少到一個(gè)時(shí)鐘周期。
CORTEX-M系列的指令周期是不確定的,一方面MCU從Flash取指是有延時(shí)的,另一方面Cortex的指令集不是固定周期的,特別從M3加入分支預(yù)測(cè)后,分支指令在Cortex-M不同型號(hào)上的結(jié)果都不相同。
完。
總結(jié)
以上是生活随笔為你收集整理的单片机指令周期、机器周期、状态周期、时钟周期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 抽象方法作用,andro
- 下一篇: Theoretically Princi