單片機時鐘周期、機器周期、指令周期與總線周期
時鐘周期:
時鐘周期也稱為振蕩周期,定義為時鐘脈沖的倒數(shù)(可以這樣來理解,時鐘周期就是單片機外接晶振的倒數(shù),例如12M的晶振,它的時間周期就是1/12us),是計算機中最基本的、最小的時間單位。
在一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。對于某種單片機,若采用了1MHZ的時鐘頻率,則時鐘周期為1us;若采用4MHZ的時鐘頻率,則時鐘周期為250us。由于時鐘脈沖是計算機的基本工作脈沖,它控制著計算機的工作節(jié)奏(使計算機的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機型的計算機,時鐘頻率越高,計算機的工作速度就越快。具體計算就是1/fosc。也就是說如果晶振為1MHz,那么時鐘周期就為1us;6MHz的話,就是1/6us。
8051單片機把一個時鐘周期定義為一個節(jié)拍(用P表示),二個節(jié)拍定義為一個狀態(tài)周期(用S表示)。
機器周期:
在計算機中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。完成一個基本操作所需要的時間稱為機器周期。一般情況下,一個機器周期由若干個S周期(狀態(tài)周期)組成。
8051系列單片機的一個機器周期同6個S周期(狀態(tài)周期)組成。前面已說過一個時鐘周期定義為一個節(jié)拍(用P表示),二個節(jié)拍定義為一個狀態(tài)周期(用S表示),8051單片機的機器周期由6個狀態(tài)周期組成,也就是說一個機器周期=6個狀態(tài)周期=12個時鐘周期。具體計算為:時鐘周期Xcycles。如果單片機是12周期的話,那么機器周期就是T×12。假設(shè)晶振頻率為12M,單片機為12周期的話,那么機器周期就是1us。
例如外接24M晶振的單片機,他的一個機器周期=12/24M秒;52系列單片機一個機器周期等于12個時鐘周期。設(shè)晶振頻率為12MHz時,52單片機是12T的單片機,即頻率要12分頻。12M經(jīng)過分頻變?yōu)?M,由T=1/f,即一個機器周期變?yōu)?us
指令周期:
執(zhí)行一條指令所需要的時間,一般由若干個機器周期組成。指令不同,所需的機器周期也不同。通常,包含一個機器周期的指令成為單周期指令,比如CLR,MOV等等。包含兩個機器周期的指令稱為雙周期指令。另外還有4周期指令,比如乘法和除法指令。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機器周期。對于一些比較復雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個或者兩個以上的機器周期。
總線周期:
由于存貯器和I/O端口是掛接在總線上的,CPU對存貯器和I/O接口的訪問,是通過總線實現(xiàn)的。通常把CPU通過總線對微處理器外部(存貯器或I/O接口)進行一次訪問所需時間稱為一個總線周期。
總結(jié)一下,時鐘周期是最小單位,機器周期需要1個或多個時鐘周期,指令周期需要1個或多個機器周期;機器周期指的是完成一個基本操作的時間,這個基本操作有時可能包含總線讀寫,因而包含總線周期,但是有時可能與總線讀寫無關(guān),所以,并無明確的相互包含的關(guān)系。
指令周期:是CPU的關(guān)鍵指標,指取出并執(zhí)行一條指令的時間。一般以機器周期為單位,分單指令執(zhí)行周期、雙指令執(zhí)行周期等,F(xiàn)在的處理器的大部分指令(ARM、DSP)均采用單指令執(zhí)行周期。
機器周期:完成一個基本操作的時間單元,如取指周期、取數(shù)周期。
時鐘周期:CPU的晶振的工作頻率的倒數(shù)。
例子1:
22.1184MHZ的晶振,它的晶振周期、時鐘周期和機器周期分別是多少?
以51為例,晶振22.1184M,時鐘周期(晶振周期)就是(1/22.1184)μs,一個機器周期包含12個時鐘周期,一個機器周期就是0.5425μs。一個機器周期一般是一條指令花費的時間,也有些是2個機器周期的指令,DJNZ,是雙周期指令.
例子2:
1、振蕩周期(時鐘周期):為單片機提供時鐘信號的振蕩源的周期。
2、機器周期:通常將完成一個基本操作所需的時間稱為機器周期。
3、指令周期:是指MCU執(zhí)行一條指令所需要的時間。一個指令周期通常含有1~4個機器周期。
若MCU單片機外接晶振為12MHz時具體值為:
振蕩周期(時鐘周期)=1/12MHz=1/12μs=0.0833μs,機器周期=12*1/12μs=1μs,指令周期=1~4μs
說明:
1、時鐘周期即晶振的單位時間發(fā)出的脈沖數(shù),12MHz=12×10的6次方,即每秒發(fā)出12000000個脈沖信號,那么發(fā)出一個脈沖的時間就是時鐘周期,即1/12微秒。
2、一個機器周期等于12個時鐘周期,所以是1微秒。
編輯:admin 最后修改時間:2019-08-10