1. 程式人生 > >原子性(CPU核\匯流排\週期\鎖)

原子性(CPU核\匯流排\週期\鎖)

CPU每取出一條指令並執行這條指令,都要完成一系列的操作,這一系列操作所需要的時間通常叫做一個指令週期。換言之指令週期是取出一條指令並執行這條指令的時間。由於各條指令的操作功能不同,因此各種指令的指令週期是不盡相同的。例如一條加法指令的指令週期同一條乘法指令的指令週期是不相同的。 指令週期常常用若干個CPU週期數來表示,CPU週期也稱機器週期。指令不同,所需的機器週期數也不同。對於一些簡單的單位元組指令,在取指令週期中,指令取出到指令暫存器後,立即譯碼執行,不再需要其它的機器週期。對於一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器週期。通常含一個機器週期的指令稱為單週期指令
,包含兩個機器週期的指令稱為雙週期指令
 
1.微處理器是在時鐘訊號CLK控制下按節拍工作的。8086/8088系統的時鐘頻率為4.77MHz,每個時鐘週期約為200ns。
2.由於存貯器和I/O埠是掛接在總線上的,CPU對存貯器和I/O介面的訪問,是通過匯流排實現的。通常把CPU通過匯流排對微處理器外部(存貯器或 I/O介面)進行一次訪問所需時間稱為一個匯流排週期。一個匯流排週期一般包含4個時鐘週期,這4個時鐘週期分別稱4個狀態即T1狀態、T2狀態、T3狀態和 T4狀態。
一個CPU週期時間有包含若干個時鐘週期。時鐘週期定義為時鐘脈衝的倒數(可以這樣來理解,時鐘週期就是微控制器外接晶振的倒數,例如12M的晶振,它的時間週期就是1/12μs),是計算機中最基本的、最小的時間單位。
在一個時鐘週期內,CPU僅完成一個最基本的動作。由於時鐘脈衝是計算機的基本工作脈衝,它控制著計算機的工作節奏(使計算機的每一步都統一到它的步調上來)。顯然,對同一種機型的計算機,時鐘頻率越高,計算機的工作速度就越快。但是,由於不同的計算機硬體電路和器件的不完全相同,所以其所需要的時鐘周頻率範圍也不一定相同。我們學習的 8051微控制器的時鐘範圍是1.2MHz-12MHz。
一個機器週期包含六個狀態週期(用S表示)。一個狀態週期有兩個節拍(用P1、P2表示)。
8051系列微控制器的一個機器週期同6 個S週期(狀態週期)組成。也就是說一個機器週期=6個狀態週期=12個振盪週期(即時鐘週期)。
 
總結一下,它們之間的關係就是,指令週期由若干個機器週期組成,匯流排週期一般由4個時鐘週期組成,6個震盪週期。
機器週期和匯流排週期 並無明確的相互包含的關係。機器週期指的是完成一個基本操作的時間,這個基本操作有時可能包含匯流排讀寫,因而包含匯流排週期,但是有時可能與匯流排讀寫無關。
指令週期:是CPU的關鍵指標,指取出並執行一條指令的時間。一般以機器週期為單位,分單指令執行週期、雙指令執行週期等。現在的處理器的大部分指令(ARM、DSP)均採用單指令執行週期。
機器週期:完成一個基本操作的時間單元,如取指週期、取數週期。
時鐘週期:CPU的晶振頻率的倒數的。(fantaxy:晶振一次需要的時間)
一個機器週期一般是一條指令花費的時間,也有些是2個機器週期的指令,DJNZ,是雙週期指令。
週期:就是時間,完成一次任務的時間
時鐘週期:
這個名字的英文clockcycle; clock period;時鐘是用來計時的,是一個基本單位;在計算機中,cpu的晶振時間就是一個最最基本的單位,因此時鐘週期很基本,別的週期都用它來參考!