一种面向SIMT统一染色阵列的指令集的制作方法

文档序号:14419421阅读:183来源:国知局
一种面向SIMT统一染色阵列的指令集的制作方法
本发明属于图形处理器设计领域,涉及图形处理器染色内核的指令集设计,尤其涉及一种面向simt统一染色阵列的指令集。
背景技术
:图形处理器(gpu)是进行图形绘制、图像及视频处理和显示的关键部件,普遍存在于各类需对窗口系统、图形界面、游戏场景、图像应用和视频播放等进行加速的系统之中。simt统一染色阵列是统一染色图形处理器中负责顶点和像素染色的核心部件。simt统一染色阵列(usa)由多个simt染色器簇(ssc)成,而每个ssc则又有多个染色处理单元(spu)组成,每个spu由4个染色内核(sc)和1个特殊功能单元(sfu)组成。为具备较强的通用性,通用的cpu内核控制逻辑和实现复杂,集成度不能做到很高,且为具有广泛的适应性,指令集较为庞大,指令种类繁多、寻址方式复杂;ssc作为图形处理器中专门用于对顶点、像素染色进行并行处理的专用处理器簇,具有专用性,运算面向特定应用,更加注重专用运算能力、并行度和集成度,故需要控制简便、实现简单、运算定制、可大量集成的染色内核。因此,simt统一染色阵列的指令集不宜采用通用性强的通用cpu指令集,而需要采用面向图形处理染色任务专门设计、定制的指令集。此外,图形处理器、以及统一染色阵列设计和实现的差异,决定了不同的设计和实现,必须采用与之适应的指令集,才能获得较高的图形加速性能。技术实现要素:本发明的目的是:提供一种适用于图形处理器simt统一染色阵列中染色内核设计的指令集。本发明的技术解决方案是:一种面向simt统一染色阵列的指令集,该指令集采用risc结构,每条指令均为单字长;该指令集支持32个通用定点寄存器、32个通用浮点寄存器、32个特殊功能定点寄存器、32个特殊功能浮点寄存器;该指令集包括定点指令、浮点指令、控制指令和存储加载指令,共4类139条指令,构成了一个完整的图形处理器simt统一染色阵列中染色内核的指令集。1、所述的定点指令:包括算术运算指令、特殊运算指令、条件传送指令、条件设置指令、无条件传送指令、位操作指令;算术运算、特殊运算、条件传送、条件设置指令默认为有符号运算;无条件传送、位操作指令默认为无符号运算;算术运算指令包括:加法、带进位加法、减法、带借位减法、乘法、乘累加、除法、取余;特殊运算指令包括:对数、指数、倒数、倒数平方根、平方根、正弦、余弦;条件传送指令包括:小于传送、大于传送、小于等于传送、大于等于传送、等于传送、不等于传送;条件设置指令包括:小于设置、大于设置、小于等于设置、大于等于设置、等于设置、不等于设置;无条件传送指令包括:无条件传送、特殊寄存器无条件传送、sfu无条件传送、sfu特殊寄存器无条件传送;位操作指令包括:与、与非、或、或非、异或、异或非、逻辑左移、算术左移、逻辑右移、算术右移;定点指令,除特殊寄存器无条件传送和sfu特殊寄存器无条件传送指令外,每条指令的源操作数均有寄存器操作数和立即数操作数两种格式,(即目的操作数-源操作数,具有r-r、r-i两种;其中,r:寄存器,i-立即数);特殊寄存器无条件传送和sfu特殊寄存器无条件传送指令源操作数仅具有寄存器格式(r-r)。2、所述的浮点指令:浮点指令数据类型默认为单精度浮点;包括算术运算指令、特殊运算指令、传送指令和设置指令;算术运算指令包括:浮点加法、浮点减法、浮点乘法、浮点乘累加、浮点除法、浮点取整、浮点求绝对值、浮点转定点、定点转浮点;特殊运算指令包括:浮点对数、浮点指数、浮点倒数、浮点倒数平方根、浮点平方根、浮点正弦、浮点余弦;传送指令包括:浮点无条件传送、浮点小于传送、浮点大于传送、浮点小于等于传送、浮点大于等于传送、浮点等于传送、浮点不等于传送;设置指令包括:浮点小于设置、浮点大于设置、浮点小于等于设置、浮点大于等于设置、浮点等于设置、浮点不等于设置。3、所述的控制指令:控制指令默认为无符号运算;包括流程控制指令和mask控制指令;流程控制指令包括:等于零跳转、不等于零跳转、绝对跳转、保存pc并跳转、恢复pc、空操作;mask控制指令包括:压栈、出栈、取反。4、所述的存储加载指令:包括加载指令和存储指令;加载指令的源存储器包括:局部存储器、常量存储器、纹理单元;加载指令的目的寄存器包括:sc寄存器、sfu寄存器;存储指令的源寄存器包括:sc寄存器、sfu寄存器;存储指令的目的存储器包括:局部存储器;局部存储器加载和存储的模式包括:独享模式和共享模式;存储加载指令的寻址模式为:局部存储器和常量存储器采用“寄存器间接+立即数”寻址,即mem[(rs1)+#imm1],局部存储sfu存储指令除外;局部存储sfu存储指令中,局部存储器采用立即数寻址,即mem[#imm1];纹理单元采用寄存器间接寻址,即tex[(rs1)];加载指令包括:局部存储sc定点独享加载、局部存储sc定点共享加载、局部存储sfu定点独享加载、局部存储sfu定点共享加载、常量存储sc定点加载、常量存储sfu定点加载、纹理sc定点加载;局部存储sc浮点独享加载、局部存储sc浮点共享加载、局部存储sfu浮点独享加载、局部存储sfu浮点共享加载、常量存储sc浮点加载、常量存储sfu浮点加载;局部存储sc定点独享存储、局部存储sc定点共享存储、局部存储sfu定点独享存储、局部存储sfu定点共享存储;局部存储sc浮点独享存储、局部存储sc浮点共享存储、局部存储sfu浮点独享存储、局部存储sfu浮点共享存储。本发明的有益效果是:一、本发明提供的一种面向simt统一染色阵列的染色处理器的指令集,可用作统一染色图形处理器中支持单指令多线程统一染色阵列的指令集;二、使用本发明指令集编写染色程序,可完成顶点染色和像素染色的各项功能;三、本发明的指令集依据图形处理器染色程序的需求专门设计,支持乘累加及多种特殊功能计算,以及局部存储器的多种访问模式,极大地方便染色程序的编写,并有效提升染色的效率;四、本发明提供的一种面向simt统一染色阵列的染色处理器的指令集,可用于自主图形处理器芯片的研制。附图说明图1是本发明中加载指令的分类及示例;图2是本发明中存储指令的分类及示例。具体实施方式下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。面向simt统一染色阵列的指令集的指令整体上分为4类:定点指令、浮点指令、控制指令和存储加载指令。其中,定点指令共分6类,分别为:算术运算指令、特殊运算指令、条件传送指令、条件设置指令、无条件传送指令、位操作指令,具体如表1所示。表1定点指令浮点指令共分4类,分别为:算术运算指令、特殊运算指令、传送指令和设置指令,具体如表2所示。表2浮点指令控制指令分为2类:流程控制指令和mask控制指令,具体如表3所示。出于单指令多线程(simt)的特殊性,本指令集中对于绝对跳转仅提供立即数格式,不提供寄存器格式(可能导致多个线程的跳转目的地址不同)。此外,在当前指令集中,能改变程序执行流程的指令仅有绝对跳转(j、js、jr)和条件分支(beqz、bnez)指令,其他指令不改变程序的执行流程。simt程序主流程中pc的更新策略如下:a)j、js、jr指令,pc一定跳转;b)条件分支(beqz、bnez指令):——如果所有活动的线程条件分支无分歧,则按照条件跳转实际情况修改pc(条件成立,跳转;条件不成立,pc+1);——如果所有活动的的线程条件分支有分歧,则pc+1;simt执行过程中,为实现单条指令控制多个线程的执行,需要为每个线程设置excutemask,仅excutemask有效时该线程才执行指令;但为实现simt程序主流程的控制,本指令集中存在部分不受excutemask控制的特殊指令,包括:j、js、jr、push、pop和inv。表3控制指令存储加载指令分为加载指令和存储指令,存储加载指令详情见表4所示。表4存储加载指令其中,加载指令的分类及示例如表5和图1所示。对于局部存储器和常量存储器加载指令,rs1和#imm1用来形成存储器访问地址;对于纹理单元的加载指令,rs1为纹素的地址,#imm1为欲访问纹理的重数。表5加载指令的分类对于加载指令:数据来源有局部存储器、常量存储器和纹理单元;数据目的有scrf和sfurf。对于局部存储器的访问,访问模式有2种,其中:a)独享模式:访问sc/sfu对应的局部存储器;b)共享模式:对于scrf访问,该模式为访问spu内其他sc、sfu对应的局部存储器;对于sfurf访问,该模式为访问spu内其他sc对应的局部存储器。其中,指令中的立即数2(#imm2)的含义为:——对于ld.l,#imm2为spu内部局部存储器的编号,其中0~4分别对应于分量xyzw/rgba和sfu分量对应的局部存储器,即0:x/r;1:y/g;2:z/b;3:w/a;4:sfu;——对于sld.l,imm2为spu内部局部存储器的编号,其中0~3分别对应于分量xyzw/rgba对应的局部存储器,即0:x/r;1:y/g;2:z/b;3:w/a;存储指令的分类及示例如表6和图2所示。对于存储指令,数据来源有2种(scrf、sfurf),数据目的仅有1种(局部存储器),但局部存储器分为两种操作模式。常量存储器和纹理单元,都是只读的,没有存储操作。表6存储指令的分类及示例局部存储器(独享模式)局部存储器(共享模式)scrfstrd,rs1,#imm1st.lrd,rs1,#imm1,#imm2sfurfsstrd,#imm1sst.lrd,#imm1,#imm2最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1