[發(fā)明專利]微處理器功能性指令實(shí)現(xiàn)裝置和方法有效
| 申請?zhí)枺?/td> | 200910243808.1 | 申請日: | 2009-12-21 |
| 公開(公告)號: | CN101739237A | 公開(公告)日: | 2010-06-16 |
| 發(fā)明(設(shè)計(jì))人: | 徐翠萍;李祖松;郝守青;汪文祥 | 申請(專利權(quán))人: | 北京龍芯中科技術(shù)服務(wù)中心有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/38 |
| 代理公司: | 北京市隆安律師事務(wù)所 11323 | 代理人: | 史霞 |
| 地址: | 100080 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 微處理器 功能 指令 實(shí)現(xiàn) 裝置 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別是涉及計(jì)算機(jī)微處理 器中指令實(shí)現(xiàn)的處理裝置和方法,尤其是涉及一種微處理器中對程序執(zhí)行結(jié)果 沒有任何影響的功能性指令實(shí)現(xiàn)裝置和方法。
背景技術(shù)
現(xiàn)代計(jì)算機(jī)中,微處理器通過執(zhí)行指令來完成有效的工作,而這些指令的 集合則被稱之為指令集。不同的微處理器可能實(shí)現(xiàn)不同的指令集。這些指令用 來指示微處理器去從內(nèi)存取數(shù)到寄存器中,或是將寄存器中的值保存到內(nèi)存特 定的位置中;或是對兩個寄存器里的值做加減乘除等運(yùn)算;或是做布爾運(yùn)算, 例如將對兩個寄存器里的值做與,或,比較等操作;或是左移或右移寄存器的 值等等。微處理器的這些指令大都是用與運(yùn)算相關(guān)的縮略詞所表示,比如一條 典型的處理器的指令A(yù)DD,表示加操作,即將一個寄存器的值與另一個寄存器 的值相加,其結(jié)果保存在另一個寄存器中。
但是,微處理器的指令集中還有一類功能性指令,功能性指令是指那類特 殊指令,它們雖然進(jìn)入流水線參與執(zhí)行,但實(shí)際上對整個程序的執(zhí)行結(jié)果不產(chǎn) 生任何影響,僅僅是為了一些特殊的原因需加入到程序中。這類功能性指令對 整個程序執(zhí)行結(jié)果沒有任何影響,但是卻是為了實(shí)現(xiàn)一些特定的目的而加入到 計(jì)算機(jī)程序中,例如空操作(NOP)指令與流水線停頓指令(MIPS指令集中的 wait,或INTEL指令集中的halt),前綴指令等等。
例如NOP指令作為一條普通的指令,指示微處理器不做任何操作,即它是 一條空操作指令。當(dāng)微處理器執(zhí)行這條指令后,不會對微處理器的狀態(tài)產(chǎn)生任 何的影響。NOP指令最初的用意是用來讓處理器通過執(zhí)行NOP指令產(chǎn)生一定的 延遲,但又不修改處理的狀態(tài)。比如在執(zhí)行某條特定指令之前需要等待一些時 間發(fā)生時,計(jì)算機(jī)就可以使用NOP指令來達(dá)到等待的目的。例如在一個流水的 微處理器結(jié)構(gòu)中,一條從內(nèi)存取數(shù)到寄存器的LOAD指令后跟著對這個寄存器 做加法的ADD指令,若這個ADD指令需緊跟在LOAD指令后面,那么可能會得 到錯誤的執(zhí)行結(jié)果。這是因?yàn)長OAD指令需要花費(fèi)兩拍或更多拍才能從內(nèi)存中 取得想要的值,所以當(dāng)ADD指令執(zhí)行時,LOAD指令還未將正確的值送入寄存 器中,那么ADD指令將取得錯誤的操作數(shù)從而使運(yùn)算結(jié)果出錯。
除了增加延遲以外,NOP指令還有另外的用處,特別是在MIPS處理器結(jié) 構(gòu)中,因?yàn)镸IPS指令集中要求所有的跳轉(zhuǎn)指令都必須有延遲槽。雖然延遲槽 指令緊跟著跳轉(zhuǎn)指令,但是對于大部分跳轉(zhuǎn)指令而言,不管這條跳轉(zhuǎn)指令是否 跳轉(zhuǎn)與否,延遲槽的指令都必須執(zhí)行。但是對微處理器而言,并不能為每條跳 轉(zhuǎn)指令都能插入合適的延遲槽指令,這時候就需要NOP指令來填充延遲槽。因 為執(zhí)行NOP指令對處理器而言并不會修改任何機(jī)器狀態(tài),NOP指令作為延遲槽 指令就再合適不過。
NOP指令還有一個重要的用處,就是用來做指令對齊。MIPS指令集中所有 的指令的長度都是一個字,所以比如對實(shí)現(xiàn)了MIPS指令集,且指令cache(緩 存)的cache行是8個字的處理器而言,若想讓兩條指令必須在一個cache 行中,那么可以在程序中填充NOP指令,直到這兩條指令處于一個cache行。 因?yàn)樘畛涞腘OP指令不會修改處理器的狀態(tài),因此在執(zhí)行結(jié)果上看,與沒有 NOP指令是一樣的。
而對于流水線停頓指令(wait或halt)而言,這類指令用來停止流水線 指令的執(zhí)行,當(dāng)程序發(fā)現(xiàn)處理器沒有有效的工作在運(yùn)行時,即可執(zhí)行一條這種 指令。
在現(xiàn)有技術(shù)中,一般處理器體系結(jié)構(gòu)的功能性指令都被編碼成普通運(yùn)算指 令。比如在MIPS指令集中NOP指令的編碼與SLLr0,r0,0,即NOP指令其 實(shí)等同于將0號處理器向左移0位的指令。因?yàn)樵贛IPS指令集中,0號處理 器是常值0,因此NOP指令等效于空操作,不會修改處理的任何狀態(tài)。同樣, NOP指令在intel與ARM指令集中有類似的處理。
雖然NOP指令本質(zhì)上是一個空操作,不會修改處理器的任何狀態(tài)。但是現(xiàn) 有技術(shù)中,為了達(dá)到NOP指令所要求的功能,在執(zhí)行NOP指令時,與其他指令 一樣,需要經(jīng)過以上五級流水才算做完。即譯碼階段,NOP指令經(jīng)過譯碼單元 譯碼后成為運(yùn)算寫入操作隊(duì)列并標(biāo)識其狀態(tài)為未發(fā)射;發(fā)射階段,NOP指令被 發(fā)射到對應(yīng)的指令運(yùn)算功能單元,并修改其狀態(tài)為已發(fā)射;執(zhí)行并寫回階段, 指令運(yùn)算功能單元將運(yùn)算的結(jié)果寫回到操作隊(duì)列,并修改其狀態(tài)位已寫回;提 交階段,將運(yùn)算結(jié)果提交,但提交的結(jié)果不會修改任何機(jī)器的狀態(tài)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京龍芯中科技術(shù)服務(wù)中心有限公司,未經(jīng)北京龍芯中科技術(shù)服務(wù)中心有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910243808.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 互動業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置





