新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 適用于RISC CPU的轉移指令的原理及仿真

        適用于RISC CPU的轉移指令的原理及仿真

        作者: 時間:2016-12-02 來源:網絡 收藏


        本文引用地址:http://www.104case.com/article/201612/324824.htm

        2.3.2 BTC存儲

        當轉移指令第一次執行時,BTC在當前時鐘啟動存儲任務,把該指令執行的信息寫入對應的單元中,對于BCC指令,確定2BC的初始狀態。同時也把該行的VI置為有效。BTC采用隨機替換策略確定數據入口:在復位或Cache清零之后,按順序填充Cache,如果BTC寫滿,則隨機選通一行進行替換。

        2.3.3 BTC命中

        在取指周期開始時如果發現當前取指地址包含在BTC的TAG中,并且對應行的VI也有效,則認為BTC命中,從而啟動命中任務:讀出命中行的數據,把DI送到指令總線,如果是CALL指令,轉移目標地址作為下一條指令的地址;如果是BCC 指令則需要判斷跳轉是否發生:當標志位有效時,根據條件碼與標志位判斷,否則根據HI進行預測,然后確定下一條指令的地址:跳轉時為轉移目標地址,不跳轉為PC+2。對于帶A參數的BCC指令,在跳轉不執行時,要禁止DI在下一時鐘進入譯碼級。BTC命中的流程如圖3。


        2.3.4 BTC檢查

        如果前一周期BTC命中,則在當前周期開始時啟動BTC檢查任務;如果前一周期BTC是根據HI預測BCC的跳轉,那么在當前時鐘標志位有效后,要重新判斷跳轉決定是否正確,如果不正確就要進行更正,給出正確的取指地址,請求在下一時鐘禁止譯碼級或執行級。同時還要根據最終的跳轉情況和HI的更新算法更新HI。BTC檢查的流程圖如圖4。


        3 結論

        整個RISC CPU用VerilogHDL語言進行了描述,并針對標準程序進行了仿真,仿真結果表明,采用上述方法處理轉移指令可以明顯提高流水線的吞吐率。由于在轉移指令后面插入了延時槽指令,轉移指令的執行與程序順序執行時完全相同; BTC的使用雖然在硬件上增加了一些開銷,但使轉移指令再次執行時基本不占用流水線資源,大大提高了CPU的效率。

        上一頁 1 2 下一頁

        關鍵詞: RISCCPU轉移指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 象州县| 体育| 东乡县| 麻栗坡县| 海口市| 宁化县| 都江堰市| 沈丘县| 藁城市| 商都县| 资中县| 镇远县| 丹东市| 和龙市| 鹰潭市| 广丰县| 双辽市| 托克托县| 海兴县| 搜索| 乐都县| 广汉市| 徐州市| 历史| 巴塘县| 安图县| 澄城县| 汶上县| 城固县| 明光市| 甘孜| 赣州市| 广州市| 孟连| 南漳县| 蕲春县| 麻江县| 靖远县| 育儿| 科技| 潼关县|