|
指令時(shí)序 HT48R05A-1系統(tǒng)時(shí)鐘由石英晶體振蕩器或RC振蕩器產(chǎn)生,系統(tǒng)內(nèi)部對(duì)此頻率進(jìn)行分頻,產(chǎn)生四個(gè)不重疊的時(shí)鐘周期,一個(gè)指令周期包含4個(gè)系統(tǒng)時(shí)鐘周期。
時(shí)序框圖
HT48R05A-1時(shí)序框圖
指令讀取與執(zhí)行是以流水線方式進(jìn)行的,這種方式允許在一個(gè)指令周期進(jìn)行讀取指令操作,而在下一個(gè)指令周期里進(jìn)行解碼與執(zhí)行該指令。這種流水線方式在一個(gè)指令周期里有效地執(zhí)行一個(gè)指令。但是,如果指令是要改變程序計(jì)數(shù)器,就需要花兩個(gè)指令周期來(lái)完成這一指令。
程序計(jì)數(shù)器(PC)
程序計(jì)數(shù)器控制存放在程序存儲(chǔ)器中的要執(zhí)行的指令序列。程序計(jì)數(shù)器可尋址程序存儲(chǔ)器的所有地址。
通過(guò)訪問(wèn)一個(gè)程序存儲(chǔ)器單元來(lái)取出指令代碼后,PC值便會(huì)加1,然后程序計(jì)數(shù)器便會(huì)指向下一條指令代碼所在的程序存儲(chǔ)器單元。
當(dāng)執(zhí)行一條跳轉(zhuǎn)指令,條件跳轉(zhuǎn)指令,裝載PCL寄存器,子程序調(diào)用,初始復(fù)位,內(nèi)部中斷,外部中斷,或從一個(gè)子程序返回,PC會(huì)通過(guò)裝載相應(yīng)的地址來(lái)執(zhí)行程序轉(zhuǎn)移。
通過(guò)指令實(shí)現(xiàn)條件跳轉(zhuǎn),一旦條件滿足,那么在當(dāng)前指令執(zhí)行期間取出的下一條指令會(huì)被放棄,而替代它的是一個(gè)假指令周期(dummy cycle)來(lái)獲取正確的指令,接著就執(zhí)行這條指令,否則就執(zhí)行下一條指令。
程序計(jì)數(shù)器的低位字節(jié)(PCL:06H)是可讀寫的寄存器。將數(shù)據(jù)賦值到PCL會(huì)執(zhí)行一個(gè)短跳轉(zhuǎn),這種跳轉(zhuǎn)只能在256個(gè)地址范圍內(nèi)。
當(dāng)一個(gè)控制轉(zhuǎn)移發(fā)生時(shí),就需要有一個(gè)附加的假指令周期。
HT48R05A-1程序計(jì)數(shù)器
注:*8—*0:程序計(jì)數(shù)器位,S8—S0:堆棧寄存器位,#8—#0:指令代碼位,@7—@0PCL:位 |