新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > RISC CPU對轉移指令的處理及仿真分析

        RISC CPU對轉移指令的處理及仿真分析

        作者: 時間:2012-03-12 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/171905.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 結論

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 封丘县| 平度市| 安泽县| 余江县| 新昌县| 盐源县| 灌云县| 田东县| 都江堰市| 青阳县| 章丘市| 盐源县| 盐津县| 丰镇市| 正镶白旗| 五台县| 乌兰县| 墨江| 河北区| 满洲里市| 东阳市| 兰坪| 嘉禾县| 海城市| 陇南市| 永川市| 公主岭市| 石河子市| 临朐县| 囊谦县| 来安县| 澳门| 沈丘县| 仙游县| 南郑县| 秦皇岛市| 上高县| 灵川县| 班戈县| 澄城县| 凉城县|