[發明專利]一種基于有限狀態機的OpenGL圖形命令預譯碼方法有效
| 申請號: | 201911147526.1 | 申請日: | 2019-11-21 |
| 公開(公告)號: | CN110956573B | 公開(公告)日: | 2023-06-13 |
| 發明(設計)人: | 牛少平;鄧藝;郝沖;韓一鵬;魏艷艷 | 申請(專利權)人: | 中國航空工業集團公司西安航空計算技術研究所 |
| 主分類號: | G06T1/20 | 分類號: | G06T1/20 |
| 代理公司: | 北京清大紫荊知識產權代理有限公司 11718 | 代理人: | 李紅 |
| 地址: | 710065 陜西省*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 有限狀態機 opengl 圖形 命令 譯碼 方法 | ||
1.一種基于有限狀態機的OpenGL圖形命令預譯碼方法,包括以下步驟:
1)對輸入的OpenGL圖形命令進行命令格式的正確性檢測;
2)對檢測正確的OpenGL圖形命令進行命令類型的劃分、命令執行通路分配;
3)對已分配通路的命令進行并行執行的控制邏輯;
4)對并行執行的命令進行命令執行完成的控制邏輯;
所述圖形預譯碼方法由有限狀態機實現,所述有限狀態機包括:命令預譯碼開始狀態(1)、命令格式檢錯狀態(2)、命令類型劃分狀態(3)、A類子狀態機劃分轉狀態(4)、B類子狀態機劃分狀態(5)、子狀態1—A類寄存器配置狀態(6)、子狀態2—A類圖形繪制狀態(7)、子狀態3—A類RISC處理狀態(8)、子狀態4—B類程序加載狀態(9)、子狀態5—B類列表調用狀態(10)、子狀態6—B類列表新建狀態(11)、子狀態7—B類命令檢錯狀態(12)、子狀態8—B類圖形繪制狀態(13)、子狀態9—B類頂點數組狀態(14)、子狀態10—B類RISC處理狀態(15)、子狀態11—B類寄存器初始化狀態(16)、輸出通路1—寄存器通路狀態(17)、輸出通路2—組裝模塊狀態(18)、輸出通路3—RISC狀態(19)、輸出通路4—統一染色陣列狀態(20)、輸出通路5—列表存儲訪問模塊狀態(21)、輸出通路6—狀態寄存器狀態(22)、子狀態N的完成標志達成狀態(23)和命令預譯碼結束狀態(24);
所述的命令預譯碼開始狀態(1)在接收到OpenGL命令輸入后,命令的預譯碼階段開始執行,從轉入命令格式檢錯狀態(2);命令格式檢錯狀態(2)檢錯階段檢測命令的包頭中各位段是否正確、包含命令的A、B類別信息是否正確、攜帶的地址信息是否越界和命令攜帶的功能碼是否有效等;命令類型劃分狀態(3)按照命令包頭中的A、B類型字段進行劃分,提升子狀態類別劃分電路的效率,若屬于A類配置類命令則轉入A類子狀態機劃分狀態(4);若屬于B類功能類命令則轉入B類子狀態機劃分狀態(5);
A類子狀態機劃分狀態(4)按照命令包頭中的地址信息判定命令的子狀態類別,若屬于寄存器的地址配置,將A類子狀態機劃分狀態(4)轉入子狀態1—A類寄存器配置狀態(6);若屬于圖形繪制的地址配置,將A類子狀態機劃分狀態(4)轉入子狀態2—A類圖形繪制狀態(7);若需處理器處理,將A類子狀態機劃分狀態(4)轉入子狀態3—A類RISC處理狀態(8);B類子狀態機劃分狀態(5)按照命令包頭中的功能碼判定命令的子狀態類別,若屬于程序加載功能,將B類子狀態機劃分狀態(5)轉入子狀態4—B類程序加載狀態(9);若屬于調用列表功能,從B類子狀態機劃分狀態(5)轉入子狀態5—B類列表調用狀態(10);若屬于新建列表的命令,從B類子狀態機劃分狀態(5)轉入子狀態6—B類列表新建狀態(11);若屬于功能錯誤命令,從B類子狀態機劃分狀態(5)轉入子狀態7—B類命令檢錯狀態(12);若屬于圖形繪制功能,從B類子狀態機劃分狀態(5)轉入子狀態8—B類圖形繪制狀態(13);若屬于頂點數組功能,從B類子狀態機劃分狀態(5)轉入子狀態9—B類頂點數組狀態(14);若需處理器處理,從B類子狀態機劃分狀態(5)轉入子狀態10—B類RISC處理狀態(15);若屬于寄存器初始化功能,從B類子狀態機劃分狀態(5)轉入子狀態11—B類寄存器初始化狀態(16);
子狀態1—A類寄存器配置狀態(6)用于寄存器配置數據準備階段,當數據準備好后,子狀態1—A類寄存器配置狀態(6)轉入輸出通路1—寄存器通路狀態(17);圖形繪制數據準備階段,當數據準備好后,子狀態2—A類圖形繪制狀態(7)轉入輸出通路2—組裝模塊狀態(18);RISC數據準備階段,當數據準備好后,子狀態3—A類RISC處理狀態(8)轉入輸出通路3—RISC狀態(19);
子狀態4—B類程序加載狀態(9)用于命令譯碼及加載的程序配置信息準備階段,若譯碼的被加載對象為RISC處理器,從子狀態4—B類程序加載狀態(9)轉入輸出通路3—RISC狀態(19);若譯碼的被加載對象為統一染色陣列,從子狀態4—B類程序加載狀態(9)轉入輸出通路4—統一染色陣列狀態(20);列表調用功能的配置信息準備階段,當數據準備好后,子狀態5—B類列表調用狀態(10)轉入輸出通路5—列表存儲訪問模塊狀態(21);列表新建功能的配置信息準備階段,當數據準備好后,子狀態6—B類列表新建狀態(11)轉入輸出通路5—列表存儲訪問模塊狀態(21);當檢測到命令的功能沖突類錯誤階段,將命令數據準備好后,子狀態7—B類命令檢錯狀態(12)轉入子狀態N的完成標志達成狀態(23);圖形繪制數據準備階段,當數據準備好后,子狀態8—B類圖形繪制狀態(13)轉入輸出通路2—組裝模塊狀態(18);子狀態9—B類頂點數組狀態(14),其特征在于,頂點數組配置數據準備階段,當數據準備好后,轉入輸出通路2—組裝模塊狀態(18);RISC數據準備階段,當數據準備好后,子狀態10—B類RISC狀態(15)轉入輸出通路3—RISC狀態(19);子狀態11—B類寄存器初始化狀態(16),其特征在于,寄存器初始化配置信息準備階段,當數據準備好后,則轉入輸出通路6—狀態寄存器狀態(22);
輸出通路1—寄存器通路狀態(17)、輸出通路2—組裝模塊狀態(18)、輸出通路3—RISC狀態(19)、輸出通路4—統一染色陣列狀態(20)、輸出通路5—列表存儲訪問模塊狀態(21)以及輸出通路6—狀態寄存器狀態(22)用于檢測當前通路或模塊的忙狀態及數據接收能力,將命令數據輸出至各輸出通路,并標記當前通路的完成標志,檢測條件達成后,從輸出通路1—寄存器通路狀態(17)、輸出通路2—組裝模塊狀態(18)、輸出通路3—RISC狀態(19)、輸出通路4—統一染色陣列狀態(20)、(21)輸出通路5—列表存儲訪問模塊或輸出通路6—狀態寄存器狀態(22)轉入子狀態N的完成標志達成狀態(23);
子狀態N的完成標志達成狀態(23)檢測到子狀態N(1≤N≤11)所有功能的完成標志均達成后,從子狀態N的完成標志達成(23)轉入命令預譯碼結束狀態(24);
所述命令預譯碼結束狀態(24)用于標志當前一次命令的預譯碼過程結束,從命令預譯碼結束狀態(24)轉入命令預譯碼開始狀態(1)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國航空工業集團公司西安航空計算技術研究所,未經中國航空工業集團公司西安航空計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911147526.1/1.html,轉載請聲明來源鉆瓜專利網。





