CN109087381B - 一种基于双发射vliw的统一架构渲染着色器 - Google Patents

一种基于双发射vliw的统一架构渲染着色器 Download PDF

Info

Publication number
CN109087381B
CN109087381B CN201810725246.3A CN201810725246A CN109087381B CN 109087381 B CN109087381 B CN 109087381B CN 201810725246 A CN201810725246 A CN 201810725246A CN 109087381 B CN109087381 B CN 109087381B
Authority
CN
China
Prior art keywords
texel
pixel
calculation
filtering
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810725246.3A
Other languages
English (en)
Other versions
CN109087381A (zh
Inventor
蒋林
刘鹏
山蕊
田汝佳
杨博文
韩孟桥
耿玉荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Posts and Telecommunications
Original Assignee
Xian University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University of Posts and Telecommunications filed Critical Xian University of Posts and Telecommunications
Priority to CN201810725246.3A priority Critical patent/CN109087381B/zh
Publication of CN109087381A publication Critical patent/CN109087381A/zh
Application granted granted Critical
Publication of CN109087381B publication Critical patent/CN109087381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明属于图形处理芯片设计技术领域,公开了一种基于双发射VLIW的统一架构渲染着色器,设置有:参数描述符电路对输入的命令流信息进行解析命令处理;着色状态控制电路根据待渲染多边形的渲染信息来确定统一着色器的不同流水线阶段处理内容;双发射VLIW处理器电路根据当前状态及配置参数进行相应的图形任务处理或通用计算处理;纹素滤波电路在VLIW处理器电路的配置下对从纹理存储器中读取的纹理纹素值进行双线性插值或三线性插值滤波处理。本发明可以很好的降低硬件设计复杂度和减少传统架构中数据在顶点着色器和像素着色器之间的转换时间;该统一着色器结构简洁、硬件面积小、实时性较好。

Description

一种基于双发射VLIW的统一架构渲染着色器
技术领域
本发明属于图形处理芯片设计技术领域,尤其涉及一种基于双发射VLIW的统一架构渲染着色器。还涉及一种统一架构图形处理单元电路,具体涉及一种用于顶点着色及像素着色的、基于浮点计算单元和超越函数计算单元复用的、采用基本SIMD架构的、基本双发射VLIW处理器的电路结构。
背景技术
目前,业内常用的现有技术是这样的:
IMR渲染架构中,每个提交用于渲染的对象都会被立即进行执行,并穿过整个渲染管线,正是因为该简单直接的设计方法对于每个提交的渲染命令都会立即进行执行,且当该渲染命令在整条渲染管线中执行完毕后才开始执行下一个渲染命令,当两次渲染有前后遮蔽关系时,IMR模式会对两次渲染命令都进行执行,因此会存在一些经过像素着色器后的pixel在深度测试阶段被抛弃,这样就浪费了着色器单元的计算过程。
TBR架构中,模型的顶点数据经过顶点着色器处理后被组装成一个个基本三角形,这些三角形会被缓存在一个triangle cache里面。然后判断所有三角形与tile之间的关系,如果得出某个三角形需要在某个特定的tile里面绘制,那么就会在该tile的Tile‐list中存一个指向这个待绘制三角形的一个索引。在一帧里面所有的渲染命令都经过顶点着色器处理生成基本三角形顶点信息以后,每个tile就会拥有一个Tile‐list,这list就包含了需要在该tile内部绘制的所有三角形信息。然后GPU再基于Tile‐list执行每个tile的光栅化操作和逐片元着色操作。
TBDR渲染架构中,TBDR架构依然将需要渲染的画面分成很多个Tile,并对每一个Tile进行处理,但该架构对每个光栅化生成的像素都进行深度测试操作,剔除掉被遮挡的像素,实现HSR操作,在进行像素着色之前进一步减少了待渲染片元信息,降低带宽需求。理论上经过HSR剔除以后,在不考虑alpha混合的情况下TBDR架构每帧需要渲染的像素上限就是屏幕像素的数量,而在执行复杂一点的游戏场景时,传统的TBR可能需要渲染6倍于屏幕的像素。
随着智能手机、平板电脑、可穿戴设备等移动终端的需求量不断扩大,从自主知识产权角度看移动终端图形处理器的研发显得尤为重要,而用于顶点和像素处理的着色器则是移动图形处理的关键电路。在移动设备中的着色器设计,需要考虑到功耗、物理尺寸以及实时性等。
实时图形处理一直以来都是移动设备中的关键任务,传统架构中是由分离式可编程图形处理单元来实现。分离式GPU通过采用片上Cache及动态可编程流水线等技术的顶点着色器和像素着色器实现,尽管通过合理的数量配比能够达到一定的性能平衡,但该架构仍很难在顶点着色和像素着色处理之间达到较高的硬件资源利用率。
基于传统架构中顶点着色器和像素着色器的指令集设计大致相同,除了一些特定指令,因此一种即可以实现顶点着色又可以实现像素着色的统一架构着色器被提出。
综上所述,现有技术存在的问题是:
IMR架构的渲染模式在执行过程中容易产生额外的计算资源消耗和内存带宽消耗的缺点。
TBR架构依然存在一些不足,在执行一帧的渲染命令时需要保存顶点着色器执行后的结果以及每个tile的Tile‐list。这意味着如果一帧里有大量的的顶点,那么片上缓存就很难存下如此多的顶点信息和Tile‐list信息,就不得不依靠外部内存来存储,这就会产生额外的带宽消耗。
以这种分离式架构设计实现的移动GPU中,顶点着色器和像素着色器二者的数量是一定的,但由于处理的渲染命令不同,二者只能对不同形式的输入数据进行特定的操作,在渲染过程中很容易出现两种着色器计算资源无法同时达到充分利用的问题。
(1)现有技术中,采用统一架构设计移动终端图形处理器不能很好的降低硬件设计复杂度和数据在处理器核之间的转换时间。
(2)很难在顶点着色和像素着色处理之间达到较高的硬件资源利用率。
解决上述技术问题的难度和意义:
难度在于:1、在同一个着色器上进行图形的顶点数据处理和像素数据处理,设计出一个统一的硬件架构及兼容性良好的指令集是一个设计难题;2、顶点处理程序和像素处理程序都会在同一个着色器中进行处理,因此判断并平衡着色器用于这两种程序的处理调度成为统一着色器的设计难题。
意义在于:1、降低硬件设计复杂度和数据在处理器核之间的转换时间,基于像素顶点多线程操作(Pixel-Vertex Multi-Threading,PVMT)策略在一定程度上减少了分时复用的性能损失。
2、基于双发射VLIW处理器的统一架构着色器在进行顶点数据处理时的高效性同时兼具可编程的灵活性。
发明内容
针对现有技术存在的问题,本发明提供了一种基于双发射VLIW的统一架构渲染着色器。针对移动终端图形处理器对物理尺寸等的要求,本发明提出一种结构简单、硬件面积小、实时性较好的统一架构着色器。
本发明是这样实现的,一种基于双发射VLIW的统一架构渲染着色器,包括:
参数描述符电路U1,对输入的命令流信息进行解析命令处理;
着色状态控制电路U0,根据命令信息中操作码信息确定统一着色器的处理任务,继而对参数描述符电路的数据及VLIW处理器电路的处理任务进行更新;
双发射VLIW处理器电路U2,根据当前状态及配置参数进行相应的图形任务处理或通用计算处理;
纹素滤波电路U3,在VLIW处理器电路的配置下进行对从纹理存储器中读取的纹理纹素值进行双线性插值或三线性插值滤波处理。
进一步,着色状态控制电路U0,对输入的操作码信息和反馈信息进行状态控制处理,根据参数描述符电路U1给出的操作码信息,解释命令信息含义;如果命令和本级无关,将上位机发送的命令透传到流水线的下一级,否则,进行进一步处理;如果命令是属性设置,将当前状态发送给参数描述符电路U1并提取属性设置命令后的参数并存储;如果命令是函数,根据每个函数对应的子程序入口地址,将入口地址写入到PC中,通过双发射VLIW处理器U2完成子程序片段运行,将计算处理的结果传送到流水线的下一级。
进一步,参数描述符电路U1,根据接收来自着色状态控制电路U0的当前状态信息,在空闲状态接收上位机148位的数据信号,其中data_in[147:138]为操作码信息,包含OpenGL命令名称,data_in[137:128]为控制字信息,data_in[127:96]、data_in[95:64]、data_in[63:32]及data_in[31:0]为参数信息,包含OpenGL函数参数信息;将操作码信息发送给着色状态控制电路U0,并将操作码信息、控制字及函数参数根据需要发送给双发射VLIW处理器电路U2。
进一步,双发射VLIW处理器电路U2,根据着色状态控制电路U0写入到PC中的每个函数对应的子程序入口地址、控制电路及参数描述符电路的信息开始计算相应的函数计算,矩阵计算、MipMap的LOD值及纹素地址,并向U3发送像素坐标、纹理映射坐标及状态控制信息;双发射VLIW处理器的指令格式如图2所示,单条指令格式如图3所示,其中rd为目的寄存器,rs,rt为两个源寄存器,immediate为立即数。指令集单条指令格式的编码方式分为R型、I型和J型指令,按指令功能分为算术运算、逻辑运算、浮点运算、存储访问和超越函数运算。
例如视口变换矩阵计算:a.数据准备,为了将视口变换矩阵的元素及顶点数据信息传输到VLIW处理器中,充分利用双发射VLIW处理器的两条数据通路并行的特征,通过寄存器堆中的专用顶点信息寄存器进行转储,然后并行的将专用顶点信息寄存器中的值转移到通用寄存器中进行矩阵运算。具体实现方式为:从参数数据通道中将图元顶点的X坐标及视口矩形的宽W赋值给寄存器堆中的R16、R17寄存器中,图元顶点的Y坐标及视口矩形的高H赋值给R18、R19寄存器中,图元顶点的Z坐标及视口变换的深度信息f,n赋值给R20、R21、R22寄存器中,视口矩形的左下角坐标x0,y0赋值给R23、R24寄存器中,图元顶点齐次坐标中的W值赋值给R25寄存器中。b.矩阵计算,根据前文对视口变换算法的推导分析证明了图元顶点坐标的X、Y、Z在进行矩阵计算时无数据相关性,同样根据视口变换算法中的视口矩阵中存在大量0元素,为了优化计算,提高计算效率,在算法映射时只执行有效元素的计算,这样情况下齐次坐标和视口矩阵计算可被拆分成3次除法操作、3次乘法操作、6次加法操作、1次减法操作及4次移位操作(除以2操作等效为向右移1位操作)。根据VLIW处理器的两条数据通路并行的特征,在手动映射的过程中,为了充分填充VLIW的指令槽信息,尽量减少计算单元的空操作,矩阵计算并行化映射实现如图4所示。
图4在指令序列中插入必要的NOP操作,是由于部分复杂操作,如定点乘除、浮点计算及三角函数等计算单元在输出结果时需要一定数量的时钟周期,因此在下一个指令用到这些复杂操作的计算结果时,需要插入一些空操作等待计算结果。图4中间结果中x、y、z和w1表示坐标信息(X,Y,Z,W),其中w、h、x0和y0表示视口变换的宽、高和视口矩形左下角的坐标位置,new_x、new_y、new_z表示经视口矩阵计算后产生的新的顶点坐标。c.结果数据输出,根据上述映射方法,经变换后新坐标(new_x,new_y,new_z)的结果分别存放在寄存器堆中的R11、R10、R14三个寄存器中。为了将计算结果传输至外围电路中进行下一级的处理,采用外围电路可访问的专用顶点信息寄存器进行软握手机制进行数据传输。实现步骤如下:通过专用顶点信息寄存器,将新坐标的计算结果(new_x,new_y,new_z)分别转储到R16、R18、R20三个寄存器中,并在转存结束的下一个时钟周期向R26寄存器写入数1用作握手信息,外围电路在VLIW处理器开始矩阵计算之后持续对R26寄存器进行判断,一旦握手成功便将R16、R18、R20取出,然后进行命令信息拼接操作传向下一级处理。)。
进一步,纹素滤波电路U3,根据双发射VLIW处理器电路U2电路的信息和输入的纹素数据计算出像素的最终颜色值。
纹素滤波电路U3,包括:纹素滤波模块主要对经过采样计算后通过纹素地址访问内存读取的纹素值进行插值计算,加速纹理贴图渲染速度,简化计算过程。纹素滤波模块采用双线性滤波及三线性滤波技术,双线性滤波过程主要分为采样点纹素权值的计算和采样点颜色值R,G,B分量的计算,三线性滤波过程在进行两次双线性滤波计算的基础上增加一级插值因子的线性插值计算。
滤波权值计算模块,滤波权值计算模块支持RGB888格式颜色值计算,输入参数主要为像素点在纹理空间的映射坐标(pixel_u,pixel_v),为了通过电路计算得出最终的四个采样点纹素权值,需先进行u'、v'、(1‐u')和(1‐v')参数的求取,然后通过乘法计算得到纹素权值,滤波权值计算模块电路框图如图5所示。
滤波权值计算模块的处理流程如下:使能信号start_r和像素纹理空间坐标(pixel_u,pixel_v)数据同时到达模块输入端,首先对pixel_u、pixel_v进行截取小数部分u'和v'操作得到pixel_u1和pixel_v1,然后通过2个减法器进行(1‐u')和(1‐v')操作得到pixel_us、pixel_vs,最后通过4个乘法器分别对(1‐u')(1‐v')、(1‐u')v'、u'(1‐v')和u'v'进行计算得出weight_u、weight_d、weight_tl和weight_l,完成双线性滤波中权值的计算。
纹素插值计算模块,纹素插值计算模块的电路框图如图6所示,图中纹素插值计算模块参数主要为4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,4个权值参数weight_u、weight_d、weight_tl和weight_l,以及纹素值有效信号valid、权值参数有效信号weight_done。为了通过电路求取双线性插值后的颜色值需首先求取每个r、g、b分量的权值计算后求和,然后进行拼接操作得到最终双线性插值颜色值。纹素插值计算模块的处理流程如下:首先对输入的4个采样点纹素值进行截位操作,分别截取出r、g、b分量,然后各分量值与相对应的权值通过乘法器计算得出各分量的权值计算值,继而通过加法器将各分量结果值进行求和得出最终的双线性滤波后r、g、b分量值bilin_valuer、bilin_valueg、bilin_valueb,最后通过拼接操作得出最终双线性滤波后颜色值bilin_value,完成双线性滤波的计算处理。
纹素滤波整体模块,纹素滤波整体模块的电路框图如图7所示,纹素滤波模块输入有当前像素坐标(pixel_x,pixel_y),当前像素对应纹理空间坐标(pixel_u,pixel_v),使能信号start_r,4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,纹素值有效信号valid,滤波模式filter_mode和三线性插值因子dinterp。
纹素滤波模块的处理流程如下:当前像素坐标、对应纹理空间坐标、使能信号和三线性插值因子同时输入纹素滤波模块,在使能信号下通过权值计算模块开始计算权值。然后,等待valid信号有效,同时采样点纹素值输入模块,当valid与weight_done信号同时为高时,对采样点纹素进行双线性插值计算。当双线性滤波计算完成后,根据滤波模式信号值选择进行三线滤波,在三线性滤波时需连续等待两次双线性滤波完成,再根据输入的三线性插值因子实现线性滤波插值计算。最后,根据滤波模式进行输出信号选择,输出信号在wr_en信号为高时输出有效,同时输出寄存的当前像素点坐标,和处理完的像素颜色值。)。
本发明的另一目的在于提供一种搭载有所述的基于双发射VLIW的统一架构渲染着色器的信息数据处理终端。
综上所述,本发明的优点及积极效果为:
针对视口变换的矩阵计算,采用双发射VLIW处理器只需一个ALU单元、一个乘法器和一个触发器在17个时钟周期内计算完成;
为了更好的说明本发明的统一架构着色器处理速度及其高效性,给出统一架构着色器的像素填充率和纹素填充率。采用像素填充率公式(1)和纹理填充率公式(2),进行像素填充率和纹理填充率计算。
像素填充率=核心频率×像素渲染管线数(1),
纹素填充率=核心频率×像素渲染管线数×单个纹理使用的texel数目(2)。
本发明的统一架构着色器电路工作频率在Xilinx的xc7z045-2-ffg900器件上可达到最大134MHz,包含1条像素渲染管线数,因此最大像素填充率为134MHz,在进行纹素处理时,USP在单个纹理中也是使用4个texel,因此最大纹素填充率为536Mtexels/s。
本发明采用统一架构设计移动终端图形处理器可以很好的降低硬件设计复杂度和数据在处理器核之间的转换时间。
本发明实现的统一架构着色器电路可同时支持顶点着色功能和像素着色功能,满足移动图形处理器的应用要求。该着色器结构简洁、硬件面积小、实时性较好,工作可靠。
附图说明
图1是本发明实施例提供的基于双发射VLIW的统一架构渲染着色器图。
图2是本发明实施例提供的双发射指令格式图。
图3是本发明实施例提供的单条VLIW处理器指令格式图。
图4是本发明实施例提供的VLIW视口变换并行化映射图。
图5是本发明实施例提供的滤波权值计算模块电路框图。
图6是本发明实施例提供的纹素插值计算模块的电路框图。
图7是本发明实施例提供的纹素滤波整体模块的电路框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术中,采用统一架构设计移动终端图形处理器不能很好的降低硬件设计复杂度和数据在处理器核之间的转换时间。
很难在顶点着色和像素着色处理之间达到较高的硬件资源利用率。
如图1所示,本发明实施例提供的基于双发射VLIW的统一架构渲染着色器,为一种用于顶点任务处理、像素任务处理等基本图形处理任务的移动端统一着色处理器,具体涉及一种用于移动终端图形处理器的基于双发射多通道VLIW处理器的统一架构着色器;具体包含一个着色状态控制电路U0、一个参数描述符电路U1、一个双发射VLIW处理器电路U2以及一个纹素滤波电路U3;
着色状态控制电路(U0)对输入的操作码和反馈信息进行状态机控制操作,并将当前状态发送给参数描述符电路(U1)和双发射VLIW处理器电路(U2);
参数描述符电路(U1)对下发的命令流信息进行处理,即通过一对握手信号接收上一级调度模块发送来的命令信息,进行预译码处理,将操作码和控制字发送给着色状态控制电路(U0)和双发射VLIW处理器电路(U2),并将参数信息和属性信息进行堆栈操作或发送给U2;
双发射VLIW处理器电路(U2)对输入的操作码、当前状态信息、控制字和参数信息进行处理,即对操作码和控制字进行译码处理,判断当前需要处理的是顶点着色任务或是像素着色任务,并根据译码信息进行相应指令读取对输入的参数数据进行计算处理。在处理像素着色的特殊指令操作时,如纹理贴图,将计算得到的纹素访问地址发送给片上纹理Cache、将待处理的像素及纹素坐标信息发送给纹素滤波电路(U3)、并修改特定寄存器值来使能U3开始执行相应处理;
纹素滤波电路(U3)接收U2发送来的像素级纹素坐标信息对U2中特定寄存器值进行读取判断,当触发使能时,等待就收从片上纹理Cache读取来的纹素值信息进行相应的滤波处理,如双线性滤波或三线性滤波。
下面结合具体分析对本发明作进一步描述。
本发明实施例提供的基于双发射VLIW的统一架构渲染着色器,包括:
着色状态控制电路U0,对输入的操作码信息和反馈信息进行状态控制处理,根据参数描述符电路U1给出的操作码信息,解释命令信息含义;如果命令和本级无关,将上位机发送的命令透传到流水线的下一级,否则,进行进一步处理;如果命令是属性设置,将当前状态发送给参数描述符电路U1并提取属性设置命令后的参数并存储;如果命令是函数,根据每个函数对应的子程序入口地址,将入口地址写入到PC中,通过双发射VLIW处理器U2完成子程序片段运行,将计算处理的结果传送到流水线的下一级。
参数描述符电路U1,根据接收来自着色状态控制电路U0的当前状态信息,在空闲状态接收上位机148位的数据信号,其中data_in[147:138]为操作码信息,包含OpenGL命令名称,data_in[137:128]为控制字信息,data_in[127:96]、data_in[95:64]、data_in[63:32]及data_in[31:0]为参数信息,包含OpenGL函数参数信息;将操作码信息发送给着色状态控制电路U0,并将操作码信息、控制字及函数参数根据需要发送给双发射VLIW处理器电路U2。
双发射VLIW处理器电路U2,根据着色状态控制电路U0写入到PC中的每个函数对应的子程序入口地址、控制电路及参数描述符电路的信息开始计算相应的函数计算,矩阵计算、MipMap的LOD值及纹素地址,并向U3发送像素坐标、纹理映射坐标及状态控制信息;双发射VLIW处理器的指令格式如图2所示,单条指令格式如图3所示,其中rd为目的寄存器,rs,rt为两个源寄存器,immediate为立即数。指令集单条指令格式的编码方式分为R型、I型和J型指令,按指令功能分为算术运算、逻辑运算、浮点运算、存储访问和超越函数运算。
例如视口变换矩阵计算:a.数据准备,为了将视口变换矩阵的元素及顶点数据信息传输到VLIW处理器中,充分利用双发射VLIW处理器的两条数据通路并行的特征,通过寄存器堆中的专用顶点信息寄存器进行转储,然后并行的将专用顶点信息寄存器中的值转移到通用寄存器中进行矩阵运算。具体实现方式为:从参数数据通道中将图元顶点的X坐标及视口矩形的宽W赋值给寄存器堆中的R16、R17寄存器中,图元顶点的Y坐标及视口矩形的高H赋值给R18、R19寄存器中,图元顶点的Z坐标及视口变换的深度信息f,n赋值给R20、R21、R22寄存器中,视口矩形的左下角坐标x0,y0赋值给R23、R24寄存器中,图元顶点齐次坐标中的W值赋值给R25寄存器中。b.矩阵计算,根据前文对视口变换算法的推导分析证明了图元顶点坐标的X、Y、Z在进行矩阵计算时无数据相关性,同样根据视口变换算法中的视口矩阵中存在大量0元素,为了优化计算,提高计算效率,在算法映射时只执行有效元素的计算,这样情况下齐次坐标和视口矩阵计算可被拆分成3次除法操作、3次乘法操作、6次加法操作、1次减法操作及4次移位操作(除以2操作等效为向右移1位操作)。根据VLIW处理器的两条数据通路并行的特征,在手动映射的过程中,为了充分填充VLIW的指令槽信息,尽量减少计算单元的空操作,矩阵计算并行化映射实现如图4所示。
图4在指令序列中插入必要的NOP操作,是由于部分复杂操作,如定点乘除、浮点计算及三角函数等计算单元在输出结果时需要一定数量的时钟周期,因此在下一个指令用到这些复杂操作的计算结果时,需要插入一些空操作等待计算结果。图4中间结果中x、y、z和w1表示坐标信息(X,Y,Z,W),其中w、h、x0和y0表示视口变换的宽、高和视口矩形左下角的坐标位置,new_x、new_y、new_z表示经视口矩阵计算后产生的新的顶点坐标。c.结果数据输出,根据上述映射方法,经变换后新坐标(new_x,new_y,new_z)的结果分别存放在寄存器堆中的R11、R10、R14三个寄存器中。为了将计算结果传输至外围电路中进行下一级的处理,采用外围电路可访问的专用顶点信息寄存器进行软握手机制进行数据传输。实现步骤如下:通过专用顶点信息寄存器,将新坐标的计算结果(new_x,new_y,new_z)分别转储到R16、R18、R20三个寄存器中,并在转存结束的下一个时钟周期向R26寄存器写入数1用作握手信息,外围电路在VLIW处理器开始矩阵计算之后持续对R26寄存器进行判断,一旦握手成功便将R16、R18、R20取出,然后进行命令信息拼接操作传向下一级处理)。
纹素滤波电路U3,根据双发射VLIW处理器电路U2电路的信息和输入的纹素数据计算出像素的最终颜色值。
纹素滤波电路U3包括:
1)纹素滤波模块主要对经过采样计算后通过纹素地址访问内存读取的纹素值进行插值计算,加速纹理贴图渲染速度,简化计算过程。纹素滤波模块采用双线性滤波及三线性滤波技术,双线性滤波过程主要分为采样点纹素权值的计算和采样点颜色值R,G,B分量的计算,三线性滤波过程在进行两次双线性滤波计算的基础上增加一级插值因子的线性插值计算。
2)滤波权值计算模块,
滤波权值计算模块支持RGB888格式颜色值计算,输入参数主要为像素点在纹理空间的映射坐标(pixel_u,pixel_v),为了通过电路计算得出最终的四个采样点纹素权值,需先进行u'、v'、(1‐u')和(1‐v')参数的求取,然后通过乘法计算得到纹素权值,滤波权值计算模块电路框图如图5所示。
滤波权值计算模块的处理流程如下:使能信号start_r和像素纹理空间坐标(pixel_u,pixel_v)数据同时到达模块输入端,首先对pixel_u、pixel_v进行截取小数部分u'和v'操作得到pixel_u1和pixel_v1,然后通过2个减法器进行(1‐u')和(1‐v')操作得到pixel_us、pixel_vs,最后通过4个乘法器分别对(1‐u')(1‐v')、(1‐u')v'、u'(1‐v')和u'v'进行计算得出weight_u、weight_d、weight_tl和weight_l,完成双线性滤波中权值的计算。
3)纹素插值计算模块,
纹素插值计算模块的电路框图如图6所示,图中纹素插值计算模块参数主要为4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,4个权值参数weight_u、weight_d、weight_tl和weight_l,以及纹素值有效信号valid、权值参数有效信号weight_done。为了通过电路求取双线性插值后的颜色值需首先求取每个r、g、b分量的权值计算后求和,然后进行拼接操作得到最终双线性插值颜色值。纹素插值计算模块的处理流程如下:首先对输入的4个采样点纹素值进行截位操作,分别截取出r、g、b分量,然后各分量值与相对应的权值通过乘法器计算得出各分量的权值计算值,继而通过加法器将各分量结果值进行求和得出最终的双线性滤波后r、g、b分量值bilin_valuer、bilin_valueg、bilin_valueb,最后通过拼接操作得出最终双线性滤波后颜色值bilin_value,完成双线性滤波的计算处理。
4)纹素滤波整体模块,纹素滤波整体模块的电路框图如图7所示,纹素滤波模块输入有当前像素坐标(pixel_x,pixel_y),当前像素对应纹理空间坐标(pixel_u,pixel_v),使能信号start_r,4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,纹素值有效信号valid,滤波模式filter_mode和三线性插值因子dinterp。
纹素滤波模块的处理流程如下:当前像素坐标、对应纹理空间坐标、使能信号和三线性插值因子同时输入纹素滤波模块,在使能信号下通过权值计算模块开始计算权值。然后,等待valid信号有效,同时采样点纹素值输入模块,当valid与weight_done信号同时为高时,对采样点纹素进行双线性插值计算。当双线性滤波计算完成后,根据滤波模式信号值选择进行三线滤波,在三线性滤波时需连续等待两次双线性滤波完成,再根据输入的三线性插值因子实现线性滤波插值计算。最后,根据滤波模式进行输出信号选择,输出信号在wr_en信号为高时输出有效,同时输出寄存的当前像素点坐标,和处理完的像素颜色值。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于双发射VLIW的统一架构渲染着色器,其特征在于,所述基于双发射VLIW的统一架构渲染着色器包括:
参数描述符电路U1,对输入的命令流信息进行解析命令处理;
着色状态控制电路U0,根据命令信息中操作码信息确定统一着色器的处理任务,继而对参数描述符电路的数据及VLIW处理器电路的处理任务进行更新;
双发射VLIW处理器电路U2,根据当前状态及配置参数进行相应的图形任务处理或通用计算处理;
纹素滤波电路U3,在VLIW处理器电路的配置下对从纹理存储器中读取的纹理纹素值进行双线性插值或三线性插值滤波处理。
2.如权利要求1所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
着色状态控制电路U0,对输入的操作码信息和反馈信息进行状态控制处理,根据参数描述符电路U1给出的操作码信息,解释命令信息含义;如果命令和本级无关,将上位机发送的命令透传到流水线的下一级,否则,进行进一步处理;如果命令是属性设置,将当前状态发送给参数描述符电路U1并提取属性设置命令后的参数并存储;如果命令是函数,根据每个函数对应的子程序入口地址,将入口地址写入到PC中,通过双发射VLIW处理器U2完成子程序片段运行,将计算处理的结果传送到流水线的下一级。
3.如权利要求1所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
参数描述符电路U1,根据接收来自着色状态控制电路U0的当前状态信息,在空闲状态接收上位机148位的数据信号,其中data_in[147:138]为操作码信息,包含OpenGL命令名称,data_in[137:128]为控制字信息,data_in[127:96]、data_in[95:64]、data_in[63:32]及data_in[31:0]为参数信息,包含OpenGL函数参数信息;将操作码信息发送给着色状态控制电路U0,并将操作码信息、控制字及函数参数根据需要发送给双发射VLIW处理器电路U2。
4.如权利要求1所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
双发射VLIW处理器电路U2,根据着色状态控制电路U0写入到PC中的每个函数对应的子程序入口地址、控制电路及参数描述符电路的信息开始计算相应的函数计算,矩阵计算、MipMap的LOD值及纹素地址,并向U3发送像素坐标、纹理映射坐标及状态控制信息。
5.如权利要求1所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,纹素滤波电路U3,根据双发射VLIW处理器电路U2电路的信息和输入的纹素数据计算出像素的最终颜色值;
纹素滤波电路U3包括:
纹素滤波模块,对经过采样计算后通过纹素地址访问内存读取的纹素值进行插值计算,加速纹理贴图渲染速度,简化计算过程;采用双线性滤波及三线性滤波技术;双线性滤波进行采样点纹素权值的计算和采样点颜色值R,G,B分量的计算,三线性滤波在进行两次双线性滤波计算的基础上增加一级插值因子的线性插值计算;
滤波权值计算模块,支持RGB888格式颜色值计算,输入参数为像素点在纹理空间的映射坐标pixel_u,pixel_v,通过计算得出最终的四个采样点纹素权值,需先进行u'、v'、(1‐u')和(1‐v')参数的求取,然后通过乘法计算得到纹素权值,
纹素插值计算模块,内置有4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,4个权值参数weight_u、weight_d、weight_tl和weight_l,以及纹素值有效信号valid、权值参数有效信号weight_done;通过电路求取双线性插值后的颜色值,需首先求取每个r、g、b分量的权值计算后求和,然后进行拼接操作得到最终双线性插值颜色值;
纹素滤波整体模块,输入有当前像素坐标(pixel_x,pixel_y),当前像素对应纹理空间坐标(pixel_u,pixel_v),使能信号start_r,4个采样点纹素值texel_u、texel_d、texel_tl和texel_l,纹素值有效信号valid,滤波模式filter_mode和三线性插值因子dinterp。
6.如权利要求5所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
滤波权值计算模块的处理方法包括:使能信号start_r和像素纹理空间坐标(pixel_u,pixel_v)数据同时到达模块输入端,首先对pixel_u、pixel_v进行截取小数部分u'和v'操作得到pixel_u1和pixel_v1,然后通过2个减法器进行(1‐u')和(1‐v')操作得到pixel_us、pixel_vs,最后通过4个乘法器分别对(1‐u')(1‐v')、(1‐u')v'、u'(1‐v')和u'v'进行计算得出weight_u、weight_d、weight_tl和weight_l,完成双线性滤波中权值的计算。
7.如权利要求5所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
纹素插值计算模块的处理方法包括:首先对输入的4个采样点纹素值进行截位操作,分别截取出r、g、b分量,然后各分量值与相对应的权值通过乘法器计算得出各分量的权值计算值,通过加法器将各分量结果值进行求和得出最终的双线性滤波后r、g、b分量值bilin_valuer、bilin_valueg、bilin_valueb,最后通过拼接操作得出最终双线性滤波后颜色值bilin_value,完成双线性滤波的计算处理。
8.如权利要求5所述的基于双发射VLIW的统一架构渲染着色器,其特征在于,
纹素滤波模块的处理方法包括:当前像素坐标、对应纹理空间坐标、使能信号和三线性插值因子同时输入纹素滤波模块,在使能信号下通过权值计算模块开始计算权值;然后,等待valid信号有效,同时采样点纹素值输入模块,当valid与weight_done信号同时为高时,对采样点纹素进行双线性插值计算;当双线性滤波计算完成后,根据滤波模式信号值选择进行三线滤波,在三线性滤波时需连续等待两次双线性滤波完成,再根据输入的三线性插值因子实现线性滤波插值计算;最后,根据滤波模式进行输出信号选择,输出信号在wr_en信号为高时输出有效,同时输出寄存的当前像素点坐标,和处理完的像素颜色值。
9.一种搭载有权利要求1~5任意一项所述的基于双发射VLIW的统一架构渲染着色器的信息数据处理终端。
CN201810725246.3A 2018-07-04 2018-07-04 一种基于双发射vliw的统一架构渲染着色器 Active CN109087381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810725246.3A CN109087381B (zh) 2018-07-04 2018-07-04 一种基于双发射vliw的统一架构渲染着色器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810725246.3A CN109087381B (zh) 2018-07-04 2018-07-04 一种基于双发射vliw的统一架构渲染着色器

Publications (2)

Publication Number Publication Date
CN109087381A CN109087381A (zh) 2018-12-25
CN109087381B true CN109087381B (zh) 2023-01-17

Family

ID=64837333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810725246.3A Active CN109087381B (zh) 2018-07-04 2018-07-04 一种基于双发射vliw的统一架构渲染着色器

Country Status (1)

Country Link
CN (1) CN109087381B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109426038A (zh) * 2017-08-25 2019-03-05 合肥捷达微电子有限公司 显示面板及显示装置
CN111966306A (zh) * 2019-05-20 2020-11-20 上海寒武纪信息科技有限公司 指令处理方法、装置及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7439979B1 (en) * 2004-11-10 2008-10-21 Nvidia Corporation Shader with cache memory
CN106537460A (zh) * 2014-08-15 2017-03-22 英特尔公司 针对多阶段像素着色的自动划分技术
CN108171644A (zh) * 2017-12-22 2018-06-15 天津麒麟信息技术有限公司 一种基于gcn架构显卡的二维图形加速方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US10354432B2 (en) * 2016-01-15 2019-07-16 Intel Corporation Texture space shading and reconstruction for ray tracing
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7439979B1 (en) * 2004-11-10 2008-10-21 Nvidia Corporation Shader with cache memory
CN106537460A (zh) * 2014-08-15 2017-03-22 英特尔公司 针对多阶段像素着色的自动划分技术
CN108171644A (zh) * 2017-12-22 2018-06-15 天津麒麟信息技术有限公司 一种基于gcn架构显卡的二维图形加速方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Dual-shader 3-D graphics processor with fast 4-D vector inner product units and power-aware texture cache;Yoon Jae-Sung等;《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》;20110401;第19卷(第4期);第525-537页 *
一种面向55nm工艺的可扩展统一架构图形处理器设计与实现;黄亮等;《计算机工程与科学》;20141215(第12期);第2418-2423页 *
基于自动线程和超长指令的统一架构着色器的设计研究;孙纲德;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20120715;第I138-2078页 *

Also Published As

Publication number Publication date
CN109087381A (zh) 2018-12-25

Similar Documents

Publication Publication Date Title
US20200320771A1 (en) Compressed bounding volume hierarchy
US11989580B2 (en) System and method to accelerate reduce operations in graphics processor
US11010858B2 (en) Mechanism to accelerate graphics workloads in a multi-core computing architecture
US20090265528A1 (en) Programmable streaming processor with mixed precision instruction execution
US9916634B2 (en) Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices
TWI632524B (zh) 以邊緣爲基礎之覆蓋遮罩壓縮技術
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
CN102176241A (zh) 使用统一着色器的图形处理结构
US10885603B2 (en) Alpha blending and display update bandwidth saving during render and display operations
US10546411B2 (en) Directed acyclic graph path enumeration with application in multilevel instancing
US10403024B2 (en) Optimizing for rendering with clear color
US10636110B2 (en) Architecture for interleaved rasterization and pixel shading for virtual reality and multi-view systems
US20170132833A1 (en) Programmable per pixel sample placement using conservative rasterization
US20170061926A1 (en) Color transformation using non-uniformly sampled multi-dimensional lookup table
JP2021082262A (ja) ベクトル正規化のための単一の命令セットアーキテクチャ(isa)命令の使用
US10089964B2 (en) Graphics processor logic for encoding increasing or decreasing values
CN109087381B (zh) 一种基于双发射vliw的统一架构渲染着色器
US10395423B2 (en) Apparatus and method for rendering adaptive mesh refinement (AMR) data
US9959590B2 (en) System and method of caching for pixel synchronization-based graphics techniques
CN110070597A (zh) 一种基于OpenCL的Unity3D渲染加速方法
蒋林 et al. Design of a unified rendering shader for mobile device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant