使用可重构高速缓存的图形处理器指令群组的制作方法

文档序号:6557708阅读:150来源:国知局
专利名称:使用可重构高速缓存的图形处理器指令群组的制作方法
技术领域
本发明涉及的是一种可重构高速缓存,特别涉及的是一种使用一可重构高速缓存的图形处理器指令群组,本发明具有影音加速能力且可应用在可携式掌上型装置,例如数字相机(DSC)、数字录像机(DV)、个人数字助理器(PDA)、行动电子装置、第三代行动电话、手机或智能电话,但并不限定仅为上述装置。
背景技术
可重构高速缓存可提供图形处理器(GPU)进行顶点计算时作为顶点缓冲器使用而达到最佳工作效率,在动态预测时,可重构高速缓存可对影音压缩规格(videocompact standard)的搜寻范围缓冲器进行重构,另外,GPU的可程序能力可作为使用GPU处理压缩影音资料(compact video data)时,实质地增加动态预测的速度,且达到硬件资源共享最大化,该可重构高速缓存可降低制造成本及节省一般行动多媒体平台的计算处理的耗能。
现有图形处理器架构包含顶点输入缓存器、顶点输出缓存器、常数缓存器及暂时缓存器四组缓存器,每一组缓存器的数量为固定且不能被改变,然而,所有应用技术将使用到全部四组缓存器而导致运作没有效率。
因此,我们需要一种新的架构来达到有效率使用此四组缓存器的目的。

发明内容
本发明的目的是解决上述问题及提供一种使用可重构高速缓存的图形处理器指令群组,以加速影音编码的动作预测(Motion Estimation)。
为了达到上述目的本发明所采用的技术方案是提供一种使用可重构高速缓存的图形处理器指令群组,该使用可重构高速缓存的图形处理器指令群组包含下列组件一顶点绘图器,以供操控顶点数据;一可重构高速缓存,以供透过若干个数据总线存取顶点绘图器的数据;一内存库交错,以替可重构高速缓存完成字节对齐;一软件控制数据回馈,以供降低可重构高速缓存的缓存器的存取频率;以及一软件控制数据写回,以供决定是否数据需要被写回至缓存器,其中可重构高速缓存包含若干个内存库以供储存数据、若干个频道以供逻辑映像至内存库、一缓存器档案控制器以供分配适当内存库的缓存器数量至每一频道以及若干个总线,该总线可供传输数据在内存库与缓存器档案控制器之间和频道与缓存器档案控制器之间。
为了便于了解本发明的结构特征及所达成的功效,下面结合附图以较佳的实施例对本发明进行详细说明。


图1为本发明的可重构高速缓存使用在GPU的应用方块图;图2为本发明的图1的可重构高速缓存的方块图;图3本发明的缓存器档案控制器的应用范例;图4本发明的缓存器档案控制器的应用范例;图5为说明线性地址作为寻址的示意图;图6为说明使用及未使用内存库交错的缓存器档案的例子的示意图;图7为说明通过延伸线性地址完成字节对齐的示意图;图8为说明未使用内存库交错的字符对齐模式的示意图;图9为说明具有内存库交错的字节对齐模式的示意图;图10为说明具有内存库交错的字节对齐模式的范例的示意图;图11为说明具有内存库交错的译码模式的示意图;图12为说明具有双向VLIW指令群组的硬件的示意图。
附图符号说明10-顶点绘图器;20-可重构高速缓存;30-数据总线;100-内存库;110-频道;120-总线;130-缓存器档案控制器。
具体实施例方式
请参阅图1,其为本发明的可重构高速缓存使用在GPU的应用技术的方块流程图,如图1所示,一顶点绘图器10透过四个数据总线30取得可重构高速缓存20的数据,该顶点绘图器10被用以操作顶点数据及相关顶点数据的状态,该可重构高速缓存20使用一缓存器档案控制器及数个嵌入式静态随机存取内存(SRAMs)而为所有GPU的缓存器的重要架构。
请参阅图2,其为本发明的图1的可重构高速缓存的方块图,如图2所示,可重构高速缓存20包含由8个嵌入式独立静态随机存取内存(SRAMs)构成,数个总线120及一缓存器档案控制器130.并且逻辑上最多可重构成八个内存库100(从bank0到bank7)、四个频道110(从CH0到CH3).每一内存库100为一分散工作的静态随机存取内存(SRAM),每一频道110可为一组GPU需求的缓存器,该四个频道110可分别为一组顶点输入缓存器(vertex input registers)(CH0)、一组顶点输出缓存器(vertex output registers)(CH1)、一组常数缓存器(constant registers)(CH2)及一组暂时缓存器(temporary registers)(CH3),通过此提供GPU所有的需求,该总线120用以传输数据在内存库100与缓存器档案控制器130之间和频道110与缓存器档案控制器130之间。缓存器档案控制器130用在找出适当的缓存器数量给每一频道,以使得每一缓存器具有最大工作效率。
请参阅图3和图4,表示本发明的缓存器档案控制器的范例,如图3所示,缓存器档案控制器130分别分配二个内存库给每一频道(从CH0到CH3),如第四图所示,缓存器档案控制器130分别分配四个内存库给CH0、二个内存库给CH2及二个内存库给CH3,此处最多有8个内存库(在本范例为八个静态随机存取内存),故需要3位(bit)作为选择适当内存库数量的寻址(addressing),每一内存库具有16个字符,所以需要4位作为寻址用,欲对所有缓存器寻址需要7位,图5说明一线性地址的寻址。
如图6所示,缓存器档案控制器130亦具有一内存库交错模式,若不使用内存库交错,一线性地址(LA)的次一线性地址(LA+1)的数据可出现在同一内存库(如图6左方所示),若使用内存库交错,线性地址(LA)的次一线性地址(LA+1)的数据可出现在另一内存库(如图6右方所示),奇数地址的数据可被置在同一内存库,而偶数位置的数据可被置在相同内存库,通过此,GPU透过内存库交错可在一组缓存器内逻辑上达到数个读取/写入(rd/wt)连接埠(ports)。
内存库交错可进行字节(byte)对齐,图5说明线性地址仅可达到字符(word)对齐,但多数计算需要字节(byte)对齐的正确性,如图7所示,通过延伸线性地址可轻易达到字节对齐。
图8的示意图说明未使用内存库交错的字符对齐模式,图8的缓存器线性地址(RLA)[11:4]仅代表第11至第4位可被看见,第3至第0位无法被看见,第3至第0位代表0-15字节的数据,而本发明的数据总线为128位(表示一个word为128bits大小),则一次可得到16字节,因此,当缓存器的地址接收时未使用内存库交错,完整RLA[11:0]的第3至第0位并未对嵌入式静态随机存取内存(SRAMs)的寻址产生影响,如图8所示,当下一个字符(word)的128位(RLA[11:4]+1)的数据需取用,则数据位在相同内存库,依此类推,当需完整取用第0-15区段(section)的128位的数据,则数据位在另一内存库,图8显示一具有8个内存库的频道,当数据每一次被取用时,需要16字节对齐也就是0-15字节在同一个字符(word),16-31字节在同一个字符(word)以此类推,虽然第0-15字节的数据可同时被取用,但是第1至第16字节无法被取用,只有在第0至第15字节的后才能取用第16至第31字节,第0至第15字节位在相同字符,而第16至第31字节位在次一字符,但都在相同内存库内,故同一时间无法取得所需的数据。
图9的示意图说明使用内存库交错的字节对齐模式,通过使用内存库交错,次一16字节数据被置在次一数据库,RLA[11:4]=0及RLA[11:4]=1位在不同内存库,图9有8个内存库,故8个连续区段的16字节数据置在不同内存库,接着,其余数据回到第一内存库且放进去。
图10的示意图说明使用内存库交错的字节对齐模式的一范例,通过使用内存库交错,当第1至第16字节的数据需取用时,缓存器档案控制器130可同时在两相异的内存库进行存取,其中第一内存库取用第0至第15字节,次一内存库取用第16至第31字节,同时,透过二内存库的数据组合可完成字节对齐的存取。
图11的示意图说明使用内存库交错的译码模式,在无内存库交错模式下,第0至第3位寻址前16字节的数据,然而,本发明的数据总线基本上可同时取得16字节的数据,因此,在此模式,第0至第3位并未对数据的取得造成影响,第4至第7位使用在选择某一静态随机存取内存(SRAM)的某一字符(128位),而第8至第10位用在选择某一内存库,在8个内存库交错模式,第0至第3位代表128位的初始位置,第4至第6位被译码以存取某些内存库,而第7至第10位用以存取某些内存库的某些字符,同样地,在4个内存库交错模式,第0至第3位代表128位的初始位置,第4至第5位被译码以存取4个内存库的某些内存库,而第6至第9位用以存取某些内存库的某些字符,第10位被译码以存取另一4个内存库,对是统中的8个SRAM,当4个内存库交错模式进行时,内存库的4个SRAM中的两组存在,第10位被译码以存取另一组4个内存库,在2个内存库交错模式,第0至第3位代表128位的初始位置,第4位被译码以存取某些内存库,而第5至第8位用以存取某些内存库的某些字符,第9至第10位用以存取别的二内存库的四组。
本发明的图形处理器指令群组进一步包含一软件控制数据回馈用以降低缓存器的存取频率而节省能源消耗,本发明的图形处理器指令群组亦包含一软件控制数据写回,以供决定是否数据需要被写回至缓存器,而节省写回至缓存器的能源,图12的示意图说明具有双触发VLIW指令群组,双触发VLIW代表极长指令字符(Very Long Instruction Word),其可同时送出两个指令,Slot0表示一指令以及Slot1表示另一指令,Slot0和Slot1合并为一VLIW指令,每一Slot指令的格式包含OP、主动向量(Active Vector)、Src0、Src1、Dst、写入屏蔽(Write Mask)以及Swizzle字段,该主动向量被用在分配多少向量因计算需要而被启动,例如,向量1(x,y,z,w)x向量2(x,y,z,w)可完成四维向量计算,向量1(x,y,)x向量2(x,y,)仅能完成二维向量计算,Src0及Src1为输入源字段(INPUT Source fields),某些数值经定义和赋予特定内部缓存器以完成软件控制数据回馈,例如r0=r1*c1;o0=r0+c2其中r0,r1,c1,o0和c2分别代表缓存器0、缓存器1、常数1、输出缓存器o0和常数2,乘法指令用以使缓存器1和常数1相乘,相乘结果储存进缓存器0,缓存器0和常数2相加等在输出缓存器o0。
透过软件编译器,上述二方程式可被重写如下NoDst=r1*c1;o0=Mul_Reg+c2NoDst符号表示乘法指令使缓存器1和常数1相乘的结果,该结果无须被存入缓存器0,Mul_Reg符号代表乘法器内部缓存器,该加法直接使用内部乘法装置的缓存器的数值,故可知NoDst解决软件控制数据写回的问题,而Mul_Reg解决软件控制数据回馈的问题。
本发明的图形处理器指令群组进一步包含一绝对差异和(sum of absolutedifference,SAD)指令,其使用GPU的高速缓存作为搜寻范围缓冲以及特制GPU的计算单元以完成硬件资源共享。
以上所述仅为本发明的较佳实施例,并非用以限制本发明范围。因此,根据本发明原理所作的改变,在不脱离本创作精神范围内,例如对于构形或布置型态加以变换,对之各种变化,修饰与应用,所产生等效作用,均应落入本发明的保护范围内。
权利要求
1.一种使用可重构高速缓存的图形处理器指令群组,其特征在于,其包含一顶点绘图器,以供操控顶点数据;一可重构高速缓存,以供透过若干个数据总线存取顶点绘图器的数据;一内存库交错,以替代可重构高速缓存完成字节对齐功能;一软件控制数据回馈,以供降低可重构高速缓存的缓存器的存取频率;以及一软件控制数据写回,以供决定是否数据需要被写回至缓存器;其中该可重构高速缓存包含若干个逻辑内存库,以供储存数据;若干个逻辑频道,以供逻辑映像至逻辑内存库;一缓存器档案控制器,以供分配适当数量的内存库的缓存器至每一频道;以及若干个总线,以供传输数据在内存库与缓存器档案控制器之间和频道与缓存器档案控制器之间。
2.根据权利要求1所述的使用可重构高速缓存的图形处理器指令群组,其特征在于,所述每一内存库为分开工作的嵌入式静态随机存取内存。
3.根据权利要求1所述的使用可重构高速缓存的图形处理器指令群组,其特征在于,所述每一频道可为一组顶点输入缓存器、一组顶点输出缓存器、一组常数缓存器或一组暂时缓存器。
4.一种使用在图形处理器的可重构高速缓存,其特征在于,其包含若干个内存库,以供储存数据;若干个频道,以供逻辑映像至内存库;一缓存器档案控制器,以供分配适当数量的内存库的缓存器至每一频道;若干个总线,以供传输数据在内存库与缓存器档案控制器之间和频道与缓存器档案控制器之间;以及一内存库交错,以替代可重构高速缓存完成字节对齐功能。
5.根据权利要求4所述的使用在图形处理器的可重构高速缓存,其特征在于,所述每一内存库为分开工作的静态随机存取内存。
6.根据权利要求4所述的使用在图形处理器的可重构高速缓存,其特征在于,所述每一频道可为一组顶点输入缓存器、一组顶点输出缓存器、一组常数缓存器或一组暂时缓存器。
全文摘要
本发明公开了一种使用可重构高速缓存的的图形处理器指令群组,该图形处理器指令群组包含下列组件一顶点绘图器,以供操控顶点数据;一可重构高速缓存,以供透过若干个数据总线存取顶点绘图器的数据;一内存库交错,以替可重构高速缓存完成字节的对齐;一软件控制数据回馈,以供降低可重构高速缓存的缓存器的存取频率;以及一软件控制数据写回,以供决定是否数据需要被写回至缓存器。
文档编号G06T1/60GK101051383SQ200610067138
公开日2007年10月10日 申请日期2006年4月3日 优先权日2006年4月3日
发明者曹友铭 申请人:绘展科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1