一种基于SystemC面向GPU顶点着色任务调度方法与流程

文档序号:17488739发布日期:2019-04-23 20:13阅读:467来源:国知局
一种基于SystemC面向GPU顶点着色任务调度方法与流程

本发明涉及计算机硬件建模技术领域,尤其涉及一种基于systemc面向gpu顶点着色任务调度方法。



背景技术:

随着图形化应用的不断增加,早期单靠cpu进行图形绘制的解决方案已经难以满足成绩和技术增长的图形处理需求,图形处理器(graphicprocessingunit,gpu)应运而生。从1999年nvidia发布第一款gpu产品至今,gpu技术的发展主要经历了固定功能流水线阶段、分离染色器架构阶段、统一染色器架构阶段,其图形处理能力不断提升,应用领域也从最初的图形绘制逐步扩展到通用计算领域。gpu流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。

目前,我国gpu研制能力薄弱,各领域显示控制系统中大量采用国外进口的商用gpu芯片。尤其是在军用领域中,国外进口商用gpu芯片存在安全性、可靠性、保障性等方面的隐患,无法满足军用环境的需求;而且,出于政治、军事、经济等原因,国外对我国实行技术“封锁”和产品“垄断”,难以获得gpu芯片的底层技术资料,如寄存器资料、详细内部微架构、核心软件源码等,导致gpu功能、性能无法充分发挥,且移植性较差;上述问题严重制约了我国显示系统的独立研制和自主发展,突破图形处理器关键技术、研制图形处理器芯片迫在眉睫。

gpu芯片研制硬件逻辑规模巨大,复杂程度越来越高,需要在更高的抽象层次上对设计进行描述,以便能进行更高速度的仿真、软/硬件协同仿真和体系架构的探索。当设计被表达为系统级模型时,选用不同的算法对设计进行多次尝试是很容易做到的,换用不同的结构进行试验也能很快的完成;倘若使用寄存器传输级或门级模型来表达设计,规模通常相当大,若要试探不同的设计结构或者做一些改动,即使不是太困难,也相当费时费力。

systemc作为一种语言推动其开发和标准化的关键因素是可以进行系统级设计,并且可以描述硬件的架构和软件的算法,支持验证和ip的交流。在系统级上使用systemc作为软件和硬件的分割权衡比其他语言容易的多,并且进行仿真比使用多种语言进行仿真要快速的多。因此采用基于systemc来设计和描述单元的微结构能够建立一个完全标准的仿真环境,在高抽象层次上直接建模。



技术实现要素:

基于背景技术中存在的问题,本发明提供的一种基于systemc面向gpu顶点着色任务调度方法,能够解决rtl仿真gpu顶点着色任务调度单元数据精确比对的问题,能够提前rtl对gpu顶点着色任务调度单元的硬件微结构在tlm模型上进行功能验证的问题。

本发明的技术解决方案是:

一种基于systemc面向gpu顶点着色任务调度方法,包括:步骤1:初始化功能,若图形绘制fifo中有数据,则通过事务级接口输出到图形绘制模块2,跳转到步骤2;否则若图形功能码使能变量glfuncodeenable为使能,则通过事务级接口输出到功能码处理模块3,跳转到步骤3;否则若调试模式debugmode为使能状态,则通过事务级接口输出到调试模块4,跳转到步骤4;否则循环执行步骤1;

步骤2:执行图形绘制命令在简单模式和复杂模式下的处理和调度;

步骤3:执行图形功能码的处理和调度;

步骤4:执行调试模式下的数据处理和调度。

步骤1包括:

图形绘制fifo:接收来自状态参数管理模块6的图形绘制数据;

图形功能码使能变量glfuncodeenable:来自状态参数管理模块6的标志功能码使能的状态;

调试模式debugmode:来自寄存器模块5的调试模式使能状态。

步骤2包括:

步骤21:读图形绘制fifo,解析读出的图形绘制数据,具体包括任务信息和属性数据;跳转到步骤22;

步骤22:将解析出的图形绘制属性数据通过事务级接口写入寄存器模块5;跳转到步骤23;

步骤23:读取寄存器模块5的寄存器组,执行判断简单/复杂模式的操作,若为简单模式则跳转到步骤24;若为复杂模式则跳转到步骤25;

步骤24:执行简单模式下的绘制命令的处理和调度:通过事物级接口读取寄存器模块5,读出顶点位置、顶点颜色和顶点边界标记这三个属性数据,再将这三个属性值组装到一起,形成257bit的数据数据传递到输出控制模块7;

步骤25:执行复杂模式下的绘制命令的处理和调度:通过事物级接口读取寄存器模块5,读出顶点属性信息:包括位置、颜色、边界标记、第二颜色、6组纹理坐标、雾坐标、法向量、10组光照属性;以及这些属性对应的开关状态;根据各属性的开关状态组装顶点属性信息;将顶点属性信息通过事务级接口发送到统一染色阵列模块8;然后将顶点任务信息通过事务级接口发送到输出控制模块7。

步骤3具体执行步骤如下:

步骤31:通过事物级接口读取寄存器模块5,读出顶点属性信息:包括位置、颜色、边界标记、第二颜色、6组纹理坐标、雾坐标、法向量、10组光照属性;跳转到步骤32;

步骤32:忽略所有属性的开关条件,无条件组装所有属性数据;跳转到步骤33;

步骤33:组装任务信息,标记任务类型为功能码类型;跳转到步骤34;

步骤34:将顶点属性信息通过事务级接口发送到统一染色阵列模块8;跳转到步骤35;

步骤35:将顶点任务信息通过事务级接口发送到输出控制模块7。

步骤4包括:

通过事务级接口连接到初始化模块1、寄存器模块5和统一染色阵列模块8;通过获取寄存器模块5中的染色任务类型,执行在染色任务类型为顶点时获取调试信息并通过事务级接口配置统一染色阵列模块8。

染色任务类型包括:顶点类型和片元类型。

调试信息包括染色任务类型、染色任务掩码。

本发明的技术效果是:

1、本发明提供的基于systemc面向gpu顶点着色任务调度方法,内部集成初始化模块1、图形绘制模块2、功能码处理模块3、调试模块4、寄存器模块5单元,能够实现gpu顶点着色任务组装和调度。

2、图形绘制模块2实现了图形绘制数据的组装和调度功能。满足了在简单模式和复杂模式下不同的调度流程。

3、功能码处理模块实现了功能码数据的组装和调度功能。

4、本发明解决了gpu顶点着色块任务调度模rtl仿真结果模型比对的问题,解决了基于gpu顶点着色任务调度方法单元功能验证的问题,并且加快了仿真的速度。

附图说明

图1是顶点着色任务调度方法框图。

具体实施方式

一种基于systemc面向gpu顶点着色任务调度方法,包括:

步骤1:初始化功能,若图形绘制fifo中有数据,则通过事务级接口输出到图形绘制模块2,跳转到步骤2;否则若图形功能码使能变量glfuncodeenable为使能,则通过事务级接口输出到功能码处理模块3,跳转到步骤3;否则若调试模式debugmode为使能状态,则通过事务级接口输出到调试模块4,跳转到步骤4;否则循环执行步骤1;

步骤2:执行图形绘制命令在简单模式和复杂模式下的处理和调度;

步骤3:执行图形功能码的处理和调度;

步骤4:执行调试模式下的数据处理和调度。

所述的步骤1,其特征在于:

图形绘制fifo:接收来自状态参数管理模块6的图形绘制数据;

图形功能码使能变量glfuncodeenable:来自状态参数管理模块6的标志功能码使能的状态;

调试模式debugmode:来自寄存器模块5的调试模式使能状态。

所述的步骤2,其特征在于:

步骤21:读图形绘制fifo,解析读出的图形绘制数据,具体包括任务信息和属性数据;跳转到步骤22:

步骤22:将解析出的图形绘制属性数据通过事务级接口写入寄存器模块5;跳转到步骤23:

步骤23:读取寄存器模块5的寄存器组,执行判断简单/复杂模式的操作,若为简单模式则跳转到步骤24;若为复杂模式则跳转到步骤25;

步骤24:执行简单模式下的绘制命令的处理和调度:通过事物级接口读取寄存器模块5,读出顶点位置、顶点颜色和顶点边界标记这三个属性数据,再将这三个属性值组装到一起,形成257bit的数据数据传递到输出控制模块7;

步骤25:执行复杂模式下的绘制命令的处理和调度:通过事物级接口读取寄存器模块5,读出顶点属性信息:包括位置、颜色、边界标记、第二颜色、6组纹理坐标、雾坐标、法向量、10组光照属性;以及这些属性对应的开关状态;根据各属性的开关状态组装顶点属性信息;将顶点属性信息通过事务级接口发送到统一染色阵列模块8;然后将顶点任务信息通过事务级接口发送到输出控制模块7。

所述的步骤3,其特征在于:执行功能码数据的组装和调度,顶点着色任务调度单元收到的功能码只有glrasterpos一个,具体执行步骤如下:

步骤31:通过事物级接口读取寄存器模块5,读出顶点属性信息:包括位置、颜色、边界标记、第二颜色、6组纹理坐标、雾坐标、法向量、10组光照属性;跳转到步骤32;

步骤32:忽略所有属性的开关条件,无条件组装所有属性数据;跳转到步骤33;

步骤33:组装任务信息,标记任务类型为功能码类型;跳转到步骤34;

步骤34:将顶点属性信息通过事务级接口发送到统一染色阵列模块8;跳转到步骤35;

步骤35:将顶点任务信息通过事务级接口发送到输出控制模块7。

所述的步骤4,其特征在于:通过事务级接口连接到初始化模块1、寄存器模块5和统一染色阵列模块8;通过获取寄存器模块5中的染色任务类型(支持顶点和片元两种),执行在染色任务类型为顶点时获取调试信息(包括染色任务类型、染色任务掩码等)并通过事务级接口配置统一染色阵列模块8。

所述的基于systemc面向gpu顶点着色任务调度方法,涉及到的微结构包括初始化模块1、图形绘制模块2、功能码处理模块3、调试模块4、寄存器模块5。

所述初始化模块1与外部状态参数管理模块6通过事务级接口相连接;图形绘制模块2、功能码处理模块3、调试模块4三个子单元在物理、逻辑上相互独立,均与初始化模块1通过事务级接口相连接;

图形绘制模块2与外部输出控制模块7和统一染色阵列模块8通过事务级接口相连接;

功能码处理模块3与外部输出控制模块7和统一染色阵列模块8通过事务级接口相连接;

寄存器模块5通过事务级接口与初始化模块1、几何数据组装模块2、位图/图像数据组装模块3、调试模块4及外部模块主机9相连接。如附图1所示。

最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1