一种低功耗GPU染色任务与统一染色阵列任务现场映射结构的制作方法

文档序号:11144623阅读:414来源:国知局
一种低功耗GPU染色任务与统一染色阵列任务现场映射结构的制造方法与工艺

本发明属于图形处理器设计领域,涉及一种低功耗GPU染色任务与统一染色阵列任务现场映射结构。



背景技术:

图形处理器(Graphic Process Unit,GPU)是现代计算机硬件的重要组成部分,是进行图形绘制、处理和显示的关键部件,普遍存在于工作站、个人电脑、笔记本、手机以及各类需进行图形显示的系统中。GPU产生2D和3D的图形、图像和视频,以支持基于窗口的操作系统、图形用户界面、视频游戏、可视化图像应用和视频播放等可视化计算。GPU图形处理能力随着纹理贴图技术的普遍应用而不断提升,GPU流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。

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



技术实现要素:

本发明的目的是:提供一种低功耗GPU染色任务与统一染色阵列任务现场映射结构,突破统一染色GPU染色任务与统一染色阵列任务现场映射的关键技术。

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

一种低功耗GPU染色任务与统一染色阵列任务现场映射结构,包含:

输入数据组装与转发单元(1),从外部的GFU(图形功能单元)、GDU(图形绘制单元)和GEU(几何引擎单元)获取Vertex染色任务和Pixel染色任务的输入数据,将GFU和GDU输入的16个Vertex的i个相关属性数据组装成Vertex warp,将GEU输入的16个pixel的j个相关属性数据组装成pixel warp,当前Vertex warp和pixel warp组装和传输完毕,则产生warp组装使能输出给向任务管理单元(3);输入数据组装与转发单元(1)从任务管理单元(3)获取slot id11和slot id12,使用slot id11和slot id12产生Vertex warp和pixel warp数据到外部的USA(统一染色阵列)的localsram存储器地址,将Vertex warp和pixel warp的数据输出到USA(统一染色阵列)的localsram;

配置与管理单元(2),从外部的HIU(主机接口单元)获取输入数据,设置slot配置码和SSC(SIMT Shading Cluster,SIMT染色处理单元簇)使能配置码,产生SSC低功耗编码;向任务管理单元(3)输出slot配置码的值和SSC使能配置码的值,向资源管理单元(4)输出slot配置码的值和SSC使能配置码的值,向外部的USA输出SSC低功耗编码;

任务管理单元(3),以输入数据组装与转发单元(1)的warp组装使能为输入,结合配置与管理单元(2)输入的slot配置码的值和SSC使能配置码的值,查询slot状态表单元(5)中n个slot的状态值,依据深度优先的算法得到slot id11和slot id12,将slot id11和slot id12输出到输入数据组装与转发单元(1),将slot id11和slot id12作为slot的地址,将slot id11和slot id12的slot的配置信息输出到slot状态表单元(5),占用该slot;将Vertex warp和Pixel warp的染色任务控制信息,包括slot id11和slot id12,任务类型,输出到外部的USA(统一染色阵列),以外部的OCU(输出控制单元)模块输出的Vertex warp任务和Pixel warp任务的slot id21和slot id22为输入,作为slot的地址,将slot的配置信息输出到slot状态表单元(5),释放slot资源;

资源管理单元(4),将slot状态表单元(5)的n个slot的全部状态作为输入,统计n个slot的负载状态,结合配置与管理单元(2)输入的slot配置码的值和SSC使能配置码的值,实施slot资源分配与映射操作,将slot id3和slot的配置信息输出到slot状态表单元(5),改变slot资源的任务类型;

slot状态表单元(5),用于记录m个slot状态,每个slot的状态包括2个bit,第1个bit表示slot的当前状态:busy/idle,第2个bit表示slot的类型:Vertex/Pixel;向任务管理单元(3)输出slot id11和slot id12,以及n个slot的全部状态,指导任务映射操作,向资源管理单元(4)输出n个slot的全部状态,接收资源管理单元(4)输入的slot id3和slot任务类型的设置信息,指导资源映射操作。

i的取值范围为3-25的整数;j的取值范围为3-10的整数。

本发明的技术效果是:

1、本发明提供一种低功耗GPU染色任务与统一染色阵列任务现场映射结构,由多个子功能模块组成,实现Vertex染色任务和Pixel染色任务到统一染色阵列任务现场的映射。输入数据组装与转发单元(1)和任务管理单元(3)具备Vertex染色任务和Pixel染色任务数据的并行组装与转发、Vertex染色任务和Pixel染色任务的并行映射、并行输出和并行提交能力;配置及管理单元和资源管理单元(4)实现低功耗资源管理方法;任务管理单元(3)的空闲slot查询与任务映射模块采用低功耗任务映射算法。以上三方面的特征使得GPU染色任务与统一染色阵列任务现场映射结构能够实现低功耗任务管理、低功耗资源管理方法和任务现场映射。

2、低功耗GPU染色任务与统一染色阵列任务现场映射结构的基本功能包括:Vertex warp和Pixel warp输入数据的并行组装与转发;Vertex空闲slot查询与任务映射;Pixel空闲slot查询与任务映射;Vertex warp任务输出;Pixel warp任务输出;Vertex warp任务提交;Pixel warp任务提交;统一染色阵列资源的低功耗管理方法;实时设置低功耗管理相关的配置参数。

3、本发明突破了图形处理器设计中低功耗GPU染色任务与统一染色阵列任务现场映射结构的设计技术,可用于国产图形处理器芯片的研制。

附图说明:

图1是本发明一种低功耗GPU染色任务与统一染色阵列任务现场映射结构的整体框图,包含:输入数据组装与转发单元(1)、配置及管理单元(2)、任务管理单元(3)、资源管理单元(4)、slot状态表单元(5)。

具体实施方式:

下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。

一种低功耗GPU染色任务与统一染色阵列任务现场映射结构,包含:

输入数据组装与转发单元(1),从外部的GFU(图形功能单元)、GDU(图形绘制单元)和GEU(几何引擎单元)获取Vertex染色任务和Pixel染色任务的输入数据,将GFU和GDU输入的16个Vertex的i个相关属性数据组装成Vertex warp,将GEU输入的16个pixel的j个相关属性数据组装成pixel warp,当前Vertex warp和pixel warp组装和传输完毕,则产生warp组装使能输出给向任务管理单元(3);输入数据组装与转发单元(1)从任务管理单元(3)获取slot id11和slot id12,使用slot id11和slot id12产生Vertex warp和pixel warp数据到外部的USA(统一染色阵列)的localsram存储器地址,将Vertex warp和pixel warp的数据输出到USA(统一染色阵列)的localsram;i的取值范围为3-25的整数;j的取值范围为3-10的整数。

配置与管理单元(2),从外部的HIU(主机接口单元)获取输入数据,设置slot配置码和SSC(SIMT Shading Cluster,SIMT染色处理单元簇)使能配置码,产生SSC低功耗编码;向任务管理单元(3)输出slot配置码的值和SSC使能配置码的值,向资源管理单元(4)输出slot配置码的值和SSC使能配置码的值,向外部的USA输出SSC低功耗编码;

任务管理单元(3),以输入数据组装与转发单元(1)的warp组装使能为输入,结合配置与管理单元(2)输入的slot配置码的值和SSC使能配置码的值,查询slot状态表单元(5)中n个slot的状态值,依据深度优先的算法得到slot id11和slot id12,将slot id11和slot id12输出到输入数据组装与转发单元(1),将slot id11和slot id12作为slot的地址,将slot id11和slot id12的slot的配置信息输出到slot状态表单元(5),占用该slot;将Vertex warp和Pixel warp的染色任务控制信息,包括slot id11和slot id12,任务类型,输出到外部的USA(统一染色阵列),以外部的OCU(输出控制单元)模块输出的Vertex warp任务和Pixel warp任务的slot id21和slot id22为输入,作为slot的地址,将slot的配置信息输出到slot状态表单元(5),释放slot资源;

资源管理单元(4),将slot状态表单元(5)的n个slot的全部状态作为输入,统计n个slot的负载状态,结合配置与管理单元(2)输入的slot配置码的值和SSC使能配置码的值,实施slot资源分配与映射操作,将slot id3和slot的配置信息输出到slot状态表单元(5),改变slot资源的任务类型;

slot状态表单元(5),用于记录m个slot状态,每个slot的状态包括2个bit,第1个bit表示slot的当前状态:busy/idle,第2个bit表示slot的类型:Vertex/Pixel;向任务管理单元(3)输出slot id11和slot id12,以及n个slot的全部状态,指导任务映射操作,向资源管理单元(4)输出n个slot的全部状态,接收资源管理单元(4)输入的slot id3和slot任务类型的设置信息,指导资源映射操作。

实施例

如图1所示,低功耗GPU染色任务与统一染色阵列任务现场映射结构的体系结构整体框图,一个输入数据组装与转发单元(1)、一个配置及管理单元(2)、一个任务管理单元(3)、一个资源管理单元(4)、一个slot状态表单元(5)。

下面详细介绍各模块的具体结构及功能:

1、输入数据组装与转发单元(1):是低功耗GPU染色任务与统一染色阵列任务现场映射结构的主要组成部分,是将染色任务输入数据映射到USA内部指定slot的localsram的硬件载体。该模块实现多项功能,包括:

1.1、Vertex warp组装:外部的GDU(图形绘制单元)和GFU(图形功能单元)提供vertex的输入属性数据,输入数据宽度为128bit,将glVertex、glwindowpos或glrasterpos顶点的所有属性组装成1个Vertex warp,1个Vertex warp包含16个Vertex顶点染色任务,或者1个glrasterpos顶点染色任务,或者1个glwindowpos顶点染色任务。并将经过组装的Vertex warp的输入数据映射到USA内部指定slot的localsram,与外部的USA的输出数据宽度为2048bit。并设置1个16组的写使能信号,写使能信号指示16个128bit(2048bit)的输出数据是否全部有效。输出数据的地址信息来源于任务管理单元(3)的空闲slot查询与任务映射模块发送的slot-id11。每次传输16个Vertex的同一种顶点全局属性,经过i个周期(i为Vertex的属性个数),可将16个Vertex的全部属性传输完毕,此时,Vertex warp组装和转发完毕。

1.2Pixel warp组装:转发外部GEU的光栅化器单元(RU)的Pixel warp的全部属性数据,1个Pixel warp包含16个Pixel染色任务,将一个Pixel warp的像素染色任务的输入数据输出到USA内部指定slot的localsram。对于点、线和三角形图元,光栅化器单元(RU)都输出quad(在空间上相邻的4个Pixel)形式的Pixel数据。quad除了包含4个Pixel的全部属性信息,还包含1个4bit的mask信息。GEU的光栅化器单元(RU)每次输出4个quad,并将4个quad的所有Pixel属性准备好之后再通知输入数据组装与转发单元(1)读取数据。4个quad,共16个Pixel按照固定顺序被传输到统一染色阵列内slot_id12所在slot的localsram内。每次传输16个Pixel的同一种属性,经过j个周期(j为Pixel的属性个数),可将16个Pixel的全部属性传输完毕,此时,Pixel warp组装和转发完毕。

1.3、染色任务输入数据属性开关寄存器:为了提高数据组装与传输操作的性能,通过解析opengl API可以获取顶点全局属性和像素属性控制开关(使能)的值:例如,光照开关,雾开关,第0重纹理使能,第1重纹理使能,…,第6重纹理开关值,当输入数据组装与转发单元(1)实施输入数据组装与传输操作的时候,仅传输属性开关的值为“1”的顶点属性和像素属性,不传输属性开关的值为“0”的顶点属性和像素属性,从而减少了数据组装和传输的时间,提高了染色任务输入数据到USA的指定slot的localsram映射操作的性能。

2、配置及管理单元:接收外部繁荣HIU(主机接口单元)的配置参数。配置参数包含:SSC使能码、slot配置码。SSC使能码,具有n个bit,从低位到高位,第1个bit与SSC1对应,第2个bit与SSC2对应,第3个bit与SSC3对应,第4个bit与SSC4对应,第5个bit与SSC5,…,第n个bit与SSCn对应。SSC使能码用于设置SSC使能寄存器的n个SSC的使能位(available/unavailable),用于关闭指定的SSC。slot配置码用于设置slot配置寄存器内m个slot有效位的值(valid/invalid):用于屏蔽无法使用的slot,处于invalid状态的slot不允许为其映射任何任务。Slot配置码具有m个bit,与m个slot一一对应。

3、任务管理单元(3):是低功耗GPU染色任务与统一染色阵列任务现场映射结构的主要组成部分,实现Vertex染色任务和Pixel染色任务的并行映射、并行输出和并行提交,是将染色任务控制信息映射到USA内部指定slot的硬件载体。任务管理单元(3)的结构实现多项功能,包括:

3.1、空闲slot查询与任务映射:并行独立的执行Vertex空闲slot查询与任务映射操作和Pixel空闲slot查询与任务映射操作。Vertex空闲slot查询与任务映射的方法:当Vertex Warp输入数据组装与转发单元准备组装Warp,则按照深度优先方法执行空闲slot查询与任务映射操作,将第1个idle状态的Vertex Slot作为Vertex Warp任务映射的对象,将此slot的状态修改为Vertex&busy,并将此slot的Slot id11送给输入数据组装和转发单元内的Vertex Warp组装与转发单元。Pixel空闲slot查询和任务映射的方法:当Pixel Warp输入数据组装与转发单元准备组装Warp,则按照深度优先方法执行空闲slot查询与任务映射操作,将第1个idle的Pixel Slot作为Pixel warp任务映射的对象,将此slot的状态修改为Pixel&busy,并将此Slot id12送给输入数据组装和传输单元内的Pixel Warp组装与转发单元。深度优先任务映射算法中m个slot的优先级顺序从高到低依次为:SSC1的slot1,SSC1的slot2,SSC1的slot3,SSC1的slot4,…,SSC1的slot8,SSC2的slot1,SSC2的slot2,SSC2的slot3,SSC2的slot4,…,SSC2的slot8,…,SSCn的slot1,SSCn的slot2,SSCn的slot3,SSCn的slot4,…,SSCn的slot8。深度优先任务映射算法按照m个slot的优先级顺序选择空闲slot,将染色任务集中映射到高优先级的SSC中,使得最低优先级的SSC的所有slot长期处于空闲状态,当优先级最低的处于avai lable状态的SSC在较长一段时间内负载为0,则将通过该SSC置于低功耗工作模式。

3.2、任务输出:接收Vertex warp组装和传输单元的染色任务信息、Pixel warp组装和传输单元的染色任务信息,组装Vertex warp和Pixel warp的染色任务控制信息,Vertex warp的染色任务控制信息包括slot id11,Pixel warp的染色任务控制信息包括slot id12,并将染色任务控制信息输出到外部的USA,完成染色任务控制信息到USA指定slot的映射操作,并将染色任务控制信息输出到外部的OCU,完成染色任务输出的自动排序。每周期最多能输出2个不同类型的染色任务,1个是Pixel warp任务,另外1个是Vertex warp任务。

3.3、任务提交:接收OCU发送的任务提交请求,更新Vertex warp任务提交请求slot-id21所指定的slot状态表单元(5)内的slot状态,将slot状态从busy修改为idle,释放该slot的资源。更新Pixel warp任务提交请求slot-id22所指定的slot状态表单元(5)内的slot状态,将slot状态从busy修改为idle,释放该slot的资源。任务提交单元每周期最多能并行接收两种任务提交请求,一个是Vertex的任务提交,另一个是Pixel的任务提交。

4、资源管理单元(4):记录n个SSC的使用状态,实现SSC的低功耗管理方法,从slot状态表单元(5)获取n个slot的状态值,完成Slot资源分配与映射,向slot状态表单元(5)输出slot id3以及slot配置码,修改slot的任务类型。记录n个SSC的使用状态,每个SSC需要1个bit状态位,表明对应的SSC是否处于使用状态,0表示关闭(unavailable),1表示开启(available)。更新SSC使能码会使SSC状态寄存器的值发生改变,在低功耗的资源管理方法中,初始阶段,仅启用优先级最高的SSC,之后依据负载状态逐步将启用全部开启状态的SSC,被启用的SSC状态寄存器的值为1,不被启用的SSC的状态寄存器的值为0,只有处于开启状态的SSC才允许被启用,处于关闭状态的SSC只能处于关闭状态。SSC状态寄存器作为任务管理单元(3)内部“空闲slot查询与任务映射单元”查询可用slot的依据,通过查询SSC状态寄存器的值,即可确定Slot所在的SSC是否被开启,被关闭的SSC不允许被分配和映射任务。Slot资源的分配与映射方法:初始状态下,slot资源分配与映射模块使得优先级最高的SSC处于工作状态,则按照固定分配比例设置8个slot的状态和任务类型。之后根据GPU的vertex和pixel负载状态,按照SSC的优先级顺序,每次开启和关闭1个处于使能状态的SSC,每次开启1个SSC,则按照固定分配比例设置8个slot的状态和任务类型。设置低功耗编码控制位于USA内的n个SSC工作状态,具有n个bit,与n个SSC一一对应,为0表示将对应的SSC置于工作状态,为1表示将对应的SSC置于低功耗状态。低功耗编码的编码方法:监控Slot状态表中所有busy slot个数,其中busy slot指的是Vertex busy slot和Pixel busy slot,当SSC状态寄存器中第n个bit的值为“0”并且第n个SSC内busy slot的个数为0,则将低功耗使能码第n个bit置为1,否则置为0。

5、slot状态表单元(5):存储m个slot的状态,m等于n*8。n个SSC优先级从高到低依次为:SSC1,SSC2,SSC3,SSC4,SSC5,…,SSCn。每个SSC具有8个slot,8个slot优先级从高到低依次为:slot1,slot2,slot3,slot4,slot5,slot6,slot7,slot8。为了辅助低功耗资源管理方法、低功耗任务管理方法的实施,需要为任务管理单元(3)提供m个Slot的状态。为资源管理单元(4)提供m个Slot的状态。每个slot的状态包括:该slot的当前状态(idle/busy);该slot的任务类型(Vertex/Pixel)。

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

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