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