PIC 8位單片機的分類和特點二
發(fā)布時間:2018-04-07 瀏覽量:
PIC 8位單片機的分類和特點二
PIC 8位單片機具有指令少、執(zhí)行速度快等優(yōu)點,其主要原因是PIC系列單片機在結(jié)構(gòu)上與其它單片機不同。該系列單片機引入了原用于小型計算機的雙總線和兩級指令流水結(jié)構(gòu)。這種結(jié)構(gòu)與一般采用CISC(復(fù)雜指令集計算機)的單片機在結(jié)構(gòu)上是有不同的。
1.雙總線結(jié)構(gòu)
具有CISC結(jié)構(gòu)的單片機均在同一存儲空間取指令和數(shù)據(jù),片內(nèi)只有一種總線。這種總線既要傳送指令又要傳送數(shù)據(jù)(如圖1-a所示)。因此,它不可能同時對程序存儲器和數(shù)據(jù)存儲器進行訪問。因與CPU直接相連的總線只有一種,要求數(shù)據(jù)和指令同時通過,顯然“亂套”,這正如一個“瓶頸”,瓶內(nèi)的數(shù)據(jù)和指令要一起倒出來,往往就被瓶頸卡住了。所以具有這種結(jié)構(gòu)的單片機,只能先取出指令,再執(zhí)行指令(在此過程中往往要取數(shù)),然后,待這條指令執(zhí)行完畢,再取出另一條指令,繼續(xù)執(zhí)行下一條。這種結(jié)構(gòu)通常稱為馮·諾依曼結(jié)構(gòu),又稱普林斯頓結(jié)構(gòu)。
在這里PIC系列單片機采用了一種雙總線結(jié)構(gòu),即所謂哈佛結(jié)構(gòu)。這種結(jié)構(gòu)有兩種總線,即程序總線和數(shù)據(jù)總線。這兩種總線可以采用不同的字長,如PIC系列單片機是八位機,所以其數(shù)據(jù)總線當(dāng)然是八位。但低檔、中檔和高檔的PIC系列單片機分別有12位、14位和16位的指令總線。這樣,取指令時則經(jīng)指令總線,取數(shù)據(jù)時則經(jīng)數(shù)據(jù)總線,互不沖突。這種結(jié)構(gòu)如圖1-b所示。
指令總線為什么不用八位,而要增加位數(shù)呢?這是因為指令的位數(shù)多,則每條指令包含的信息量就大,這種指令的功能就強。一條12位、14位或16位的指令可能會具有兩條八位指令的功能。因此PIC系列單片機的指令與CISC結(jié)構(gòu)的單片機指令相比,前者的指令總數(shù)要少得多(即RISC指令集)。
2.兩級指令流水線結(jié)構(gòu)
由于PIC單片機采用了指令空間和數(shù)據(jù)空間分開的哈佛結(jié)構(gòu),用了兩種位數(shù)不同的總線。因此,取指令和取數(shù)據(jù)有可能同時交疊進行,所以在PIC單片機中取指令和執(zhí)行指令就采用指令流水線結(jié)構(gòu)(如圖2所示)。當(dāng)?shù)谝粭l指令被取出后,隨即進入執(zhí)行階段,這時可能會從某寄存器取數(shù)而送至另一寄存器,或從一端口向寄存器傳送數(shù)等,但數(shù)據(jù)不會流經(jīng)程序總線,而只是在數(shù)據(jù)總線中流動,因此,在這段時間內(nèi),程序總線有空,可以同時取出第二條指令。當(dāng)?shù)谝粭l指令執(zhí)行完畢,就可執(zhí)行第二條指令,同時取出第3條指令,……如此等等。這樣,除了第一條指令的取出,其余各條指令的執(zhí)行和下一條指令的取出是同時進行的,使得在每個時鐘周期可以獲得最高效率。
在大多數(shù)微控制器中,取指令和指令執(zhí)行都是順序進行的,但在PIC單片機指令流水線結(jié)構(gòu)中,取指令和執(zhí)行指令在時間上是相互重疊的,所以PIC系列單片機才可能實現(xiàn)單周期指令。
只有涉及到改變程序計數(shù)器PC值的程序分支指令(例如GOTO、CALL)等才需要兩個周期。
此外,PIC單片機的結(jié)構(gòu)特點還體現(xiàn)在寄存器組上,如寄存器I/O口、定時器和程序寄存器等都是采用了RAM結(jié)構(gòu)形式,而且都只需要一個周期就可以完成訪問和操作。而其它單片機常需要兩個或兩個以上的周期才能改變寄存器的內(nèi)容。上述各項,就是PIC單片機能做到指令總數(shù)少,且大都為單周期指令的重要原因。
成都 衛(wèi)東
知識競賽試題:
3簡述PIC 8位單片機的指令長度和其優(yōu)點。
4比較PIC與MCS-51單片機取指令不同的特點。