什么是經(jīng)濟(jì)型數(shù)控系統(tǒng)之指令冗余技術(shù)?
發(fā)布者:銳峰五金機(jī)械 發(fā)布時(shí)間:2019/4/19 14:41:36
MCS-51 的指令由操作碼和操作數(shù)組成。單字節(jié)指令僅有操作碼;雙字節(jié)指令第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是操作數(shù); 3字節(jié)指令第一個(gè)字節(jié)為操作碼,后兩 個(gè)字節(jié)為操作數(shù)。CPU 取指時(shí),先取操作碼,后取操作數(shù)。如何區(qū)別某個(gè)數(shù)據(jù)是操作碼還是操作數(shù),這完全由取指的順序來(lái)決定。CPU 復(fù)位后,首先取出指令的操作碼,然后取出操作數(shù)。當(dāng)一條指令執(zhí) 行完畢,緊接著又去取下一條指令的操作碼與操作數(shù)。這些操作的時(shí)序完全由程序計(jì)數(shù)器PC 來(lái)控制。
因此,一旦PC 因干擾而出現(xiàn)錯(cuò)誤,程序便脫離正常的運(yùn)行軌道,出現(xiàn)“亂飛”的現(xiàn)象,導(dǎo)致操作數(shù)的數(shù)值改變或者將操作數(shù)當(dāng)成操作碼的錯(cuò)誤產(chǎn)生。當(dāng)程序“亂 飛”到某個(gè)單字節(jié)指令上時(shí),可以自動(dòng)納入正軌;當(dāng)“亂飛”到某雙字節(jié)指令上時(shí),若恰恰在取指令的時(shí)刻落在操作數(shù)上,就會(huì)將該操作數(shù)當(dāng)成操作碼,程序?qū)⒊鲥e(cuò);當(dāng)程序“亂飛”到某個(gè)3 字節(jié)指令 上時(shí),因?yàn)橛袃蓚€(gè)操作數(shù),誤將操作數(shù)當(dāng)成操作碼的幾率將會(huì)更大。用單字節(jié)指令,并在關(guān)鍵地方人為地插入一些單字節(jié)指令NOP,或?qū)⒂行У膯巫止?jié)指令重復(fù)寫幾次。
這種方式稱之為指令冗余??稍陔p字節(jié)指令和3 字節(jié)指令之后插入兩個(gè)NOP,這可保證其后的指令不被拆散。因?yàn)椤皝y飛”的程序即使落到操作數(shù)上,由于NOP 的 存在,不會(huì)將其后的指令當(dāng)成操作數(shù)來(lái)執(zhí)行,從而使程序納入正軌。對(duì)程序流向起決定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ 等)和某些對(duì)系統(tǒng)工作狀態(tài)起重要作 用的指令(如SETB EA 等),可在之前插入兩個(gè)NOP,以保證“亂飛”的程序迅速落入正軌;對(duì)于某些子程序必要時(shí)可以連續(xù)多次重復(fù)調(diào)用,某些狀態(tài)的查詢也可多次進(jìn)行。采用冗余技術(shù)使PC 納入正軌 的條件是:跑飛的PC必須指向程序運(yùn)行區(qū),并且有可能執(zhí)行到冗余指令。
因此,一旦PC 因干擾而出現(xiàn)錯(cuò)誤,程序便脫離正常的運(yùn)行軌道,出現(xiàn)“亂飛”的現(xiàn)象,導(dǎo)致操作數(shù)的數(shù)值改變或者將操作數(shù)當(dāng)成操作碼的錯(cuò)誤產(chǎn)生。當(dāng)程序“亂 飛”到某個(gè)單字節(jié)指令上時(shí),可以自動(dòng)納入正軌;當(dāng)“亂飛”到某雙字節(jié)指令上時(shí),若恰恰在取指令的時(shí)刻落在操作數(shù)上,就會(huì)將該操作數(shù)當(dāng)成操作碼,程序?qū)⒊鲥e(cuò);當(dāng)程序“亂飛”到某個(gè)3 字節(jié)指令 上時(shí),因?yàn)橛袃蓚€(gè)操作數(shù),誤將操作數(shù)當(dāng)成操作碼的幾率將會(huì)更大。用單字節(jié)指令,并在關(guān)鍵地方人為地插入一些單字節(jié)指令NOP,或?qū)⒂行У膯巫止?jié)指令重復(fù)寫幾次。
這種方式稱之為指令冗余??稍陔p字節(jié)指令和3 字節(jié)指令之后插入兩個(gè)NOP,這可保證其后的指令不被拆散。因?yàn)椤皝y飛”的程序即使落到操作數(shù)上,由于NOP 的 存在,不會(huì)將其后的指令當(dāng)成操作數(shù)來(lái)執(zhí)行,從而使程序納入正軌。對(duì)程序流向起決定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ 等)和某些對(duì)系統(tǒng)工作狀態(tài)起重要作 用的指令(如SETB EA 等),可在之前插入兩個(gè)NOP,以保證“亂飛”的程序迅速落入正軌;對(duì)于某些子程序必要時(shí)可以連續(xù)多次重復(fù)調(diào)用,某些狀態(tài)的查詢也可多次進(jìn)行。采用冗余技術(shù)使PC 納入正軌 的條件是:跑飛的PC必須指向程序運(yùn)行區(qū),并且有可能執(zhí)行到冗余指令。
相關(guān)新聞
- [2021.12.17]數(shù)控車床的開(kāi)環(huán)、閉環(huán)、半閉環(huán)伺…
- [2015.11.05]數(shù)控車床對(duì)刀具的選擇
- [2019.04.23]怎么清洗數(shù)控機(jī)床才更高到位
- [2019.09.21]數(shù)控車床加工零件表面粗糙度的缺…
- [2016.02.23]儀表車床的原理和使用
- [2020.06.15]了解數(shù)控車床的切削功率嗎?
- [2018.09.17]數(shù)控車床對(duì)刀儀的設(shè)計(jì)
- [2021.12.13]數(shù)控車床工件錐度出現(xiàn)大小頭的原…
- [2019.04.22]數(shù)控車床各主要部件的作用
- [2019.09.20]數(shù)控車床常用電氣接線留意事項(xiàng)
- [2015.11.25]分類不同水平的數(shù)控車床
- [2020.06.11]數(shù)控車床發(fā)作磕碰的首要原因分析…
- [2017.06.02]數(shù)控車床加工的幾種不同加工方法…
- [2018.09.17]數(shù)控車床的配件有哪些?
- [2021.12.09]數(shù)控車床加工機(jī)床的軟故障
- [2019.04.20]合理選擇切削液可有郊減少切削時(shí)…
- [2015.10.09]數(shù)控車床廠家給您介紹數(shù)控車床技…
- [2019.09.19]數(shù)控車床的組成與應(yīng)用
- [2016.02.22]數(shù)控車床在新時(shí)代如何改善自己
- [2020.06.09]數(shù)控車床的作業(yè)原理和加工的數(shù)控…