[发明专利]一种基于有限状态机的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.vipzhuanli.com/pat/books/201911147526.1/1.html,转载请声明来源钻瓜专利网。