指令週期是某條指令的執行時間,某條指令的執行時間是由若干個機器週期構成,一個機器週期包含6個狀態週期(S1-S6),而一個狀態週期又包含兩個時鐘振盪週期(簡稱時鐘週期)。ide
51單片機的指令週期有長有短,可是一個機器週期恆等於6個狀態週期或12個時鐘振盪週期。學習
單片機在運行時,是把每條指令分解爲一個一個最基本的微操做來執行,因此必須給每一個微操做規定嚴格的執行時間並提供每一個動做的起始信號,讓這些微操做有節奏、有規律,這就須要一個穩定節拍發生器(即晶體振盪器),晶體振盪器的週期就是振盪週期(即時鐘週期),而狀態週期和機器週期則是在此基礎上更宏觀一點的「分解動做」,與振盪週期配合起來能夠產生更多的特定的時鐘信號。it
時鐘週期class
時鐘週期也稱爲振盪週期,定義爲時鐘脈衝的倒數(能夠這樣來理解,時鐘週期就是單片機外接晶振的倒數,例如 12M的晶振,它的時間週期就是1/12 us),是計算機中最基本的、最小的時間單位。基礎
在一個時鐘週期內,CPU僅完成一個最基本的動做。對於某種單片機,若採用了1MHZ的時鐘頻率,則時鐘週期爲1us;若採用4MHZ的時鐘頻率,則時鐘週期爲250us。因爲時鐘脈衝是計算機的基本工做脈衝,它控制着計算機的工做節奏(使計算機的每一步都統一到它的步調上來)。顯然,對同一種機型的計算機,時鐘頻率越高,計算機的工做速度就越快。可是,因爲不一樣的計算機硬件電路和器件的不徹底相同,因此其所須要的時鐘周頻率範圍也不必定相同。咱們學習的8051單片機的時鐘範圍是1.2MHz-12MHz。硬件
在8051單片機中把一個時鐘週期定義爲一個節拍(用P表示),二個節拍定義爲一個狀態週期(用S表示)。請你們參考後面的時序圖。計算機
機器週期di
在計算機中,爲了便於管理,常把一條指令的執行過程劃分爲若干個階段,每一階段完成一項工做。例如,取指令、存儲器讀、存儲器寫等,這每一項工做稱爲一個基本操做。完成一個基本操做所須要的時間稱爲機器週期。通常狀況下,一個機器週期由若干個S週期(狀態週期)組成。8051系列單片機的一個機器週期同6個S週期(狀態週期)組成。前面已說過一個時鐘週期定義爲一個節拍(用P表示),二個節拍定義爲一個狀態週期(用S表示),8051單片機的機器週期由6個狀態週期組成,也就是說一個機器週期=6個狀態週期=12個時鐘週期。參見後面的時序圖。時間
指令週期view
指令週期是執行一條指令所須要的時間,通常由若干個機器週期組成。指令不一樣,所需的機器週期數也不一樣。對於一些簡單的的單字節指令,在取指令週期中,指令取出到指令寄存器後,當即譯碼執行,再也不須要其它的機器週期。對於一些比較複雜的指令,例如轉移指令、乘法指令,則須要兩個或者兩個以上的機器週期。
時鐘週期、機器週期、指令週期之間的關係圖以下。
一般含一個機器週期的指令稱爲單週期指令,包含兩個機器週期的指令稱爲雙週期指令。