CN101059865B - 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统 - Google Patents

指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统 Download PDF

Info

Publication number
CN101059865B
CN101059865B CN200610074828A CN200610074828A CN101059865B CN 101059865 B CN101059865 B CN 101059865B CN 200610074828 A CN200610074828 A CN 200610074828A CN 200610074828 A CN200610074828 A CN 200610074828A CN 101059865 B CN101059865 B CN 101059865B
Authority
CN
China
Prior art keywords
instruction
processing system
folds
program
instructions
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.)
Expired - Fee Related
Application number
CN200610074828A
Other languages
English (en)
Other versions
CN101059865A (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.)
Silicon Integrated Systems Corp
Original Assignee
Silicon Integrated Systems Corp
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 Silicon Integrated Systems Corp filed Critical Silicon Integrated Systems Corp
Priority to CN200610074828A priority Critical patent/CN101059865B/zh
Publication of CN101059865A publication Critical patent/CN101059865A/zh
Application granted granted Critical
Publication of CN101059865B publication Critical patent/CN101059865B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明提供一种指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统。像素处理系统包括指令摺叠处理单元及像素着色器,指令摺叠处理单元摺叠第一程序中若干个第一指令,以产生具有第二指令的第二程序。像素着色撷取第二指令并且作译码。指令摺叠处理单元包括指令排序器、摺叠规则检查器及指令结合器。指令排序器根据指令的静态位置来扫描,以对第一指令进行排序。摺叠规则检查器利用摺叠规则来检查第一指令之间的数据独立性。指令结合器用以结合具有数据独立性的第一指令,并且利用具有数据独立性的第一指令形成第二程序中的第二指令。本发明摺叠处理单元及方法可以形成简化的复合指令,并节省像素处理系统的成本,更可以改善像素处理系统的效能。

Description

指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统
【技术领域】
本发明关于一种摺叠处理单元及其方法,以及执行该摺叠处理单元及该方法的像素处理系统,特别是有关于一种用于图形处理器(GraphicProcessor Unit,GPU)的指令摺叠处理单元(Instruction Folding Mechanism)及指令摺叠方法,以及使用该摺叠处理单元及该摺叠方法的像素处理系统。
【背景技术】
图1为现有的图形处理器的管线(Pipeline)架构方框图。图形处理器100主要包含三角设定单元102、像素处理单元104以及深度处理单元106,像素处理单元104包括像素着色器108以及连接于像素着色器108的材质单元(Texture Unit)110与色彩内插器(Color Interpolator)112。
将三维对象的表面分割成若干个三角形,该些三角形以几何关联性排列且具有任意的尺寸。每个三角形包含三个顶点,并且将这些顶点数据传送至三角设定单元102,三角设定单元102将像素的参数输出至像素处理单元104,其中参数像素在三角形的位置以及对应于三角形顶点的材质坐标。依据像素的位置以及顶点的材质坐标,利用材质单元110内插所有像素的材质坐标,然后将内插形成的材质坐标输入至像素着色器108,并且在像素着色器108中进行处理。接着像素着色器108执行加载指令,并且回传已处理完成的材质坐标给材质单元110。根据未处理的材质坐标以及已处理的材质坐标,材质单元110对像素在材质图中的材质颜色进行取样,并且将材质颜色输出至像素着色器108。同时依据像素的位置以及顶点的材质坐标,色彩内插器112对所有像素的顶点颜色作内插运算,并且将这些顶点颜色输出至像素着色器108。像素着色器108处理材质颜色以及像素的顶点颜色,并且将色彩值以及深度值输出至深度处理单元106,以形成所显示的像素颜色。然后画出最后的颜色,以形成整个画面(Frame)。
图2为习知的图形处理器以像素着色器执行一范例程序的方框图。像素着色器108使用五种缓存器,主要包含:用来储存暂时性数据的一般缓存器(rn)、材质坐标缓存器(tn)、材质编号缓存器(sn)、顶点混色缓存器(vn)以及输出缓存器(ocn),并且将最后转换完成的像素颜色传送至深度处理单元106。
像素着色器108的处理流程主要包括四个阶段:坐标计算阶段、材质加载阶段、混色阶段以及发出阶段。首先将来自材质单元110的像素内插材质坐标储存于材质坐标缓存器(tn)。在坐标计算阶段,将来自材质单元110的像素的内插材质坐标利用材质坐标缓存器(tn)以及一般缓存器(rn)进行算术运算,然后将运算的结果(亦即处理之后的材质坐标)储存于一般缓存器(rn)内。在材质处理阶段,根据材质坐标缓存器(tn)以及一般缓存器(rn)内的材质坐标,利用像素着色器108来执行材质加载指令,使材质单元110从材质编号缓存器(sn)指定的材质图中取样出材质颜色,再将取样完成的材质颜色传回一般缓存器(rn)。在混色阶段,利用像素着色器108将储存在缓存器(rn)的材质颜色以及来自色彩内插器112的顶点颜色作混色运算,并且将混色运算的结果储存于顶点混色缓存器(vn)中。最后在发出阶段,像素着色器108将色彩值以及深度值输出至深度处理单元106。应注意的是,坐标计算阶段、材质处理阶段以及混色阶段可重复进行。
每个缓存器系由四个具有浮点数据格式的字段(Components)所组成,例如(x,y,z,w)或是(r,g,b,a),此四种字段(x,y,z,w)称为四元向量(Four-wide Vectors)。在坐标计算以及材质处理阶段,此四种字段用来表示三维空间的坐标或者是表示不同的材质格式的坐标。在混色阶段以及发出阶段,四种字段(r,g,b,a)分别代表红(Red)、绿(Green)、蓝(Blue)三原色以及透明度(Transparency)。这些字段配置给指令来源缓存器以及目标缓存器,而且可读取各个字段内的值或是将值写入至字段中,举例来说,“r0.w”表示指令读取”r0”缓存器的”w”字段的数据,或是表示将数据写入至“w”字段内。
现有技术中,由于四种字段(r,g,b,a)的红(Red)、绿(Green)、蓝(Blue)三个字段与透明度字段的性质不同,故其处理步骤不相同,因此需要至少两种以上的独立管线架构来处理不同的字段。同样地,当以坐标字段表示时,坐标(x,y,z)字段也与透视度“w”字段不相同。例如在DirectX的规格中,串联两个独立的管线来处理一指令对(Pair)并且将该指令对同时发出,其利用此指令对(Pair)中后面的指令之前加注正号“+”而与前面的指令串联在一起来形成该指令对,此指令对称为指令配对(Instruction Pairing)或是指令同时发出(Instruction Co-issue)处理单元,其字段的比值为3比1,如图3A所示。然而必须大幅增加解析运算子的译码器、管线、缓存器写入端口以及缓存器读取端口的数量,至少需要两倍以上的数量才能处理这些指令配对。进一步地,现有技术的像素着色器108需要更多、更复杂的处理功能,例如字段的选择、数据格式的转换、指令修正,以便使指令能处理来源缓存器以及目标缓存器中的操作数(Operand),以致于像素处理系统在执行上述复杂的功能时需要大幅增加硬件成本。
参考图3B,其为现有的像素着色程序中指令的字段比例图式,其中一比例图式为三个色彩字段与一个透明度字段,另一比例图式为二个色彩字段与二个透明度字段。在两个互为独立的指令中,一个指令用来写入两个色彩字段“r”以及“g”,另一个指令用来写入一个色彩“b”字段以及透明度“a”字段。由于必须使用更为复杂的硬件架构来处理这些指令,因而提高像素着色器的硬件成本,例如nVidia公司的GeForce6系列的图形处理器就是使用此种复杂的指令同时发出处理单元。
图4为现有的像素着色器中使用指令同时发出处理单元的方框图。撷取装置400根据程序指位器(Program Counter)由指令队列402中读取两个指令,然后一对译码器(404a,404b)对撷取的指令进行译码,并且控制算术逻辑单元(406a,406b)的运算。由于算术逻辑单元(406a,406b)以平行处理方式执行四个向量字段,并且至少需要使用一对缓存器端口(408a,408b),而每个缓存器端口(408a,408b)包括三个缓存器读取端口以及一个缓存器写入端口。此外每个缓存器端口必需使用一个来源修正器(Source Modifier)以及一个指令修正器(Instruction Modifier),以便处理指令中来源操作数以及目标操作数的字段选择以及数据格式的转换。
因此,当色彩字段与透明度字段之间的比例不同时,指令同时发出处理单元必须使用额外的侦测处理单元来决定同时发出处理单元的时序,导致像素着色程序的指令执行更加地复杂.而且,有关于两个指令之间的来源缓存器以及目标缓存器的指令配对规则之处理时序并不相同,所以缓存器读取端口以及缓存器写入端口的使用数量至少是处理单一指令所需要的数量两倍以上.此外,来源修正器以及指令修正器的数量亦需要两倍以上的数量.
因此需要发展一种具有摺叠处理单元的像素处理系统,以降低硬件的成本以及提高图形处理器的效能。
【发明内容】
本发明的主要目的在于提供一种用于像素处理系统的摺叠处理单元及其方法,以摺叠一程序中具有数据独立性的指令,形成由该指令组成的复合指令,以产生一新程序。
本发明的另一目的在于提供一种用于像素处理系统的摺叠处理单元及其方法,以摺叠具有相同目标缓存器的指令,并且将各个指令处理之后的数据输出至该目标缓存器的不同字段,以节省像素处理系统的硬件成本。
本发明的再一目的在于提供一种用于像素处理系统的摺叠处理单元及该像素处理系统,以改善像素处理系统的执行效能。
根据上述目的,本发明提出一种指令摺叠处理单元及其方法,以及使用该摺叠处理单元及该方法的像素处理系统。像素处理系统主要包括指令摺叠处理单元以及像素着色装置,指令摺叠处理单元系用以摺叠第一程序中若干个第一指令,以产生具有第二指令的第二程序,其中第二指令是由第一指令所组成的复合指令。像素着色装置连接于指令摺叠处理单元,用以撷取第二程序,并且对第二程序中的第二指令进行译码,以执行该第二程序。
指令摺叠处理单元主要包括指令排序器、摺叠规则检查器以及指令结合器。指令排序器连接于摺叠规则检查器,主要是根据指令的静态位置来扫描第一指令,以对第一程序中的第一指令进行排序。在较佳实施例中,指令排序器以连续方式扫描第一指令,摺叠规则检查器利用一摺叠规则来检查第一指令之间使用的数据的独立性。指令结合器连接于摺叠规则检查器,用以结合具有数据独立性的第一指令,并且利用具有数据独立性的第一指令形成第二程序中的第二指令。
在一实施例中,相邻的第一指令之间的数据独立性是指后一个第一指令的来源缓存器与前一个第一指令的目标缓存器两者不相同,换言之,后一个第一指令的来源缓存器与前一个第一指令的目标缓存器为空集合(nullset),即相邻指令的执行结果输出至一目标缓存器的不同字段。在一实施例中,第一指令以及第二指令的来源操作数的总数量为一预定临界值,且译码器可以针对不同的复合指令进行译码。
当执行像素处理系统的方法时,首先利用一摺叠处理单元摺叠第一程序中若干个第一指令,以形成具有第二指令的第二程序,第二指令为两个或是两个以上的第一指令所组成的复合指令。接着根据一程序指位器撷取第二指令。然后利用一译码器对第二指令进行译码,并且形成一控制信号。随后一算术逻辑单元根据控制信号对第二指令的若干个缓存器字段进行逻辑运算。最后利用控制缓存器端口来选定缓存器字段,以进行第二指令的操作数数据格式的转换处理。
本发明的优点主要包括:(a)依据数据的独立性摺叠指令,可以形成简化的复合指令,以产生新的程序;(b)摺叠程序中具有相同目标缓存器的指令,并且将数据输出至该目标缓存器的不同字段,可以节省像素处理系统的硬件成本;以及(c)提供了一种应用于像素处理系统的摺叠处理单元,其可以改善像素处理系统的效能.
【附图说明】
图1为现有技术中图形处理器的管线架构的方框图。
图2为现有的图形处理器中以像素着色装置执行一范例程序的方框图。
图3A为现有的像素着色程序中每个指令的字段的比例图式,其中该比例图式为三个色彩字段以及一个透明度字段。
图3B为现有的像素着色程序中每个指令的字段的比例图式,其中一比例图式为三个色彩字段以及一个透明度字段,另一比例图式为二个色彩字段以及二个透明度字段。
图4为现有的像素着色装置中使用指令同时发出处理单元的方框图。
图5为本发明一实施例中具有指令摺叠处理单元的像素处理系统的方框图。
图6为本发明一实施例中利用图5所示的摺叠处理单元执行一范例程序的方框图。
图7为图5中的摺叠处理单元的详细方框图。
图8为依据本发明的一实施例像素处理系统的执行流程图。
图9为图8中像素处理系统的执行过程中的摺叠处理单元的流程图。
【具体实施方式】
本发明提供一种指令摺叠处理单元及其方法,以及使用该摺叠处理单元与该方法之像素处理系统,通过摺叠具有数据独立性(Data Independent)的指令来产生简化的指令,进而形成一新的程序。此外,指令摺叠处理单元还可用来摺叠具有相同目标缓存器的指令,并且将该指令的数据输出至目标缓存器的不同字段,以节省像素处理系统的硬件成本。熟习此项技术的业内一般人士都应知道,本发明的摺叠处理单元更可适用于图形处理系统中的顶点着色装置(Vertex Shader)以及几何着色装置(Geometric Shader)。
图5为根据本发明的一实施例具有指令摺叠处理单元的像素处理系统的方框图。该像素处理系统主要包括指令摺叠处理单元500以及像素着色装置502,指令摺叠处理单元500用以摺叠第一程序504中若干个第一指令,以产生具有第二指令的第二程序506,其中第二指令是由第一指令所组成的族群,亦即第二指令是由第一指令组成的复合指令。像素着色装置502连接于指令摺叠处理单元500,用以撷取第二程序506,并且对第二程序506中的第二指令进行译码,以执行该第二程序506。
图6为根据本发明的一实施例利用图5的摺叠处理单元500执行一范例程序的方框图.在第一程序504中,指令“mul”的数据与指令“mov”的数据两者互相独立而不互相使用,而且指令“mul”与“mov”的输出数据被储存于相同的缓存器中,即缓存器”r1”,且储存于同一缓存器的不同字段.在本发明的一实施例中,资料的来源操作数的总数量为三个,主要包括“r0”、“t0”以及“r0.a”,并且利用指令摺叠处理单元500来摺叠来源操作数,以形成另一复合指令”mul_mov”,亦即该复合指令是由第一指令所组成,进而形成第二程序506,而且译码器可解析出摺叠第一指令之后产生的复合指令.由于本发明的像素着色装置502的指令可涵盖来源操作数的总数,而译码出任何的复合指令,故并不需要在指令中新增操作数,因此可以节省像素着色装置的成本.相对地,在现有的指令同时发出处理单元中,必须使用额外的译码器来解析运算子(Operator),以及使用更多的管线架构、缓存器写入端口以及缓存器读取端口.而且现有的指令必须具备更多的处理能力,例如缓存器的字段选择、数据格式的转换、程序来源码的修正以及来源操作数与目的操作数的指令修正,所以如何有效降低操作数的数量实为重要的课题.
图7为图5所示的摺叠处理单元的详细方框图。指令摺叠处理单元500主要包括指令排序器(Instruction Scheduler)700、摺叠规则检查器(Folding Rule Checker)702以及指令结合器(Instruction Combiner)704。指令排序器700连接于摺叠规则检查器702,其主要根据第一指令在第一程序中的静态位置来扫描第一指令,以对第一程序504中的第一指令进行排序。较佳实施例中,指令排序器700以连续方式扫描第一指令。摺叠规则检查器702利用一摺叠规则来检查第一指令之间的数据的独立性。指令结合器704连接于摺叠规则检查器702,用以结合具有数据独立性的第一指令,并且利用具有数据独立性的第一指令形成第二程序506中的第二指令。此处所称的“数据独立性”表示两个指令之间所处理的数据不具有依赖性,亦即后一个指令的数据不会使用到前一个指令的运算结果。特定而言,在本发明的较佳实施例中,摺叠规则以下列方程式表示:
(1)
OPC1        tgt.[r|g|b],src0,src1
OPC2        tgt.a,src2
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,此处
            tgt.[r|g|b]∩src2=φ
OPC1以及OPC2为任意的运算子,且OPC1_OPC2为一复合运算子,用以表示OPC1存取色彩字段(r,g,b)以及OPC2存取透明度字段(a),OPC1的目标操作数为“tgt.[r|g|b]”且OPC1的目标操作数为“tgt.a”,所以OPC1以及OPC2两个运算子的目标操作数相同,均为缓存器“tgt”,然而其缓存器的字段不相同,例如透明度字段(a)设于OPC2但是不设在OPC1中。此外色彩字段(r,g,b)中例如可为至少一种或是一种以上的色彩向量字段。
src0,src1,src2为来源操作数(Source Operand)并且设有任意字段数量的缓存器,其中OPC1例如可为含有两个操作数的二元(Binary)运算子,亦即包括src0、src1,或者可为只有一个src0操作数的单元(Unitary)运算子。tgt.[r|g|b]∩src2=φ表示OPC1与OPC2之间的数据独立性,亦即OPC1的运算结果与OPC2的来源操作数无关联性。在一实施例中,OPC1并不需要与OPC2相邻,而只要OPC1的数据与OPC2的数据互相独立而不相关联即可将OPC1与OPC2结合成一复合指令。当考虑OPC1与OPC2之间的顺序时,上述方程式表示为:
(2)
OPC2        tgt.a,src2
OPC1        tgt.[r|g|b],src0,src1
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,此处
            tgt.a∩(src0∪src1)=φ
当指令OPC1为单元操作数以及OPC2为二元操作数,摺叠规则的方程式也可表示为:
(3)
OPC1        tgt.[r|g|b],src0
OPC2        tgt.a,src1,src2
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,此处
            tgt.[r|g|b]∩(src1∪src2)=φ
(4)
OPC2        tgt.a,src1,src2
OPC1         tgt.[r|g|b],src0
OPC1_OPC2    tgt.[r|g|b]a,src0,src1,src2,此处
             tgt.a∩src0=φ
应注意的是,当OPC2为单元运算子,只需要使用src1操作数。
在本发明的较佳实施例中,于图形处理特效的应用领域,当字段“a”用来表示透明度或是对象的四元向量坐标之一,可单独存取字段“a”并且利用指令“mov”将其结果移出。于打光特效的应用领域中,当字段“a”为离光源的距离或是角度,可利用指令“rsq”存取字段“a”,以计算出(1/√x)的结果。当字段(r,g,b)表示为色彩或是坐标,存取这些字段的指令例如可为指令“mov”、“mul”、“add”、“mad”以及“dp3”。在一实施例中,当OPC1为指令“mov”、“mul”、“add”、“mad”或是“dp3”,且OPC2为“mov”或是“rsq”,则复合指令OPC1_OPC2可为指令“mov_mov”、“mul_mov”、“add_mov”、“dp3_mov”、“mov_rsq”、“mul_rsq”、“add_rsq”或是“dp3_rsq”。本发明中所使用的译码器,例如可以是硬件或是软件译码器,用以对上述复合指令进行译码,或是针对其它OPC1与OPC2组合而成的复合指令作译码,以有效提高像素着色系统的处理能力。
在本发明的另一较佳实施例中,依据摺叠规则产生的复合指令的操作数为四个,主要包括src0、src1、src2、src3,并且可配合使用指令“mad”。本发明使用缓存器读取端口以及来源修正器,其成本效益优于习知指令同时发出处理单元所使用的缓存器读取端口以及来源修正器。上述之摺叠规则的方程式表示为:
(5)
OPC1        tgt.[r|g|b],src0,src1,src2
OPC2        tgt.a,src3
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
            tgt.[r|g|b]∩src3=φ
当考虑OPC1与OPC2之间的顺序时,上述之方程式可表示为:
(6)
OPC2        tgt.a,src3
OPC1        tgt.[r|g|b],src0,src1,src2
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
            tgt.a∩(src0∪src1∪src2)=φ
应注意的是,当OPC1为单元运算子,只需要使用src0操作数,当OPC1为二元运算子,使用src0、src1两个操作数。在一实施例中,当OPC1为单元运算子且OPC2为三元运算子,摺叠规则的方程式表示如下:
(7)
OPC1        tgt.[r|g|b],src0
OPC2        tgt.a,src1,src2,src3
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
tgt.[r|g|b]∩(src1∪src2∪src3)=φ
(8)
OPC2        tgt.a,src1,src2,src3
OPC1        tgt.[r|g|b],src0
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
            tgt.a∩src0=φ
应注意的是,当OPC2为单元运算子,只需要使用src1操作数,而当OPC2为二元运算子,使用src1、src2两个操作数。在一实施例中,当OPC1为二元运算子且OPC2也为二元运算子,摺叠规则的方程式表示如下:
(9)
OPC1        tgt.[r|g|b],src0,src1
OPC2        tgt.a,src2,src3
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
tgt.[r|g|b]∩(src2∪src3)=φ
(10)
OPC2        tgt.a,src2,src3
OPC1        tgt.[r|g|b],src0,src1
OPC1_OPC2   tgt.[r|g|b]a,src0,src1,src2,src3,此处
            tgt.a∩(src0∪src1)=φ
应注意的是,当OPC1为单元运算子,只需要使用src0操作数,而当OPC2为二元运算子,使用src1、src2两个操作数。因此根据上述,当OPC1为指令“mad”且OPC2为指令“mov”或是“rsq”,则复合指令OPC1_OPC2可为“mad_mov”或是“mad_rsq”。
本发明的实施例中,相邻的第一指令之间的数据独立性是指后一个第一指令的来源缓存器与前一个指令的第一缓存器的目标缓存器两者不相同。换言之,后一个第一指令的来源缓存器与前一个第一指令的目标缓存器为空集合(null set),例如(1)式所述的tgt.[r|g|b]∩src2=φ,亦即相邻指令的执行结果是输出至一目标缓存器的不同字段。在一实施例中,第一指令以及第二指令的来源操作数的总数量为一预定临界值,例如3个、4个或是更多数量的操作数,而且使得译码器可以针对不同的复合指令进行译码。当第一指令中两个相邻指令之间具有数据独立性,将其中一个第一指令写入至该第二程序中,然后根据摺叠规则继续将另一个第一指令与下一个第一指令作检查,以检测其余第一指令之间的数据独立性。
继续参考图5,像素着色装置502包括指令存储器(InstructionMemory)508、撷取装置(Fetcher)510、译码器(Decoder)512、算术逻辑单元(Arithmetic Logic Unit,ALU)514、缓存器端口(Register Port)516以及缓存器单元(Register Unit)518.指令存储器508用于储存第二程序506的第二指令,撷取装置510连接于译码器512,并且根据一程序指位器(ProgramCounter)来撷取储存于指令存储器508中的第二指令.译码器512对第二指令进行译码,并且产生控制信号来控制算术逻辑单元514的运算.算术逻辑单元514连接于译码器512,并根据控制信号对第二指令的缓存器中的字段进行运算.缓存器端口516连接于算术逻辑单元514,用以选定缓存器中的字段,以转换第二指令的操作数的数据格式.缓存器单元518连接于缓存器端口516,用以储存第二指令在运算过程中每个字段产生的数据.
熟习此项技术的业内一般人士应了解的是,本发明的指令摺叠处理单元500例如可为硬件电路或是软件程序。当以软件程序执行时,指令摺叠处理单元500可为计算机操作系统中执行的软件开发工具、程序加载器(ProgramLoader)、或是一部分依附在编译器(Compiler)后段的装置驱动程序。此外,当以硬件电路执行时,指令摺叠处理单元500连接于指令撷取单元或是译码单元,亦即将指令摺叠处理单元500设置于像素着色装置502的指令存储器508以及译码器512之前,或者是将指令摺叠处理单元500嵌入于像素着色装置502的内部。
图8为依据本发明一实施例像素处理系统的处理流程图。在步骤S800中,利用一摺叠处理单元摺叠第一程序中若干个第一指令,以形成具有第二指令的第二程序,而且第二指令为两个或是两个以上的第一指令所组成的复合指令。在步骤S802中,根据一程序指位器撷取第二指令。然后在步骤S804中,利用一译码器对第二指令进行译码,并且形成一控制信号。接着在步骤S806中,算术逻辑单元根据控制信号对第二指令的若干个缓存器字段进行逻辑运算。最后在步骤S808中,控制缓存器端口来选定缓存器字段,以进行第二指令的操作数数据格式的转换处理。
图9为图8所示像素处理系统处理流程中的摺叠处理单元的处理流程图。在步骤S800中,进一步根据第一指令的静态位置扫描第一指令,以对第一程序中的第一指令进行排序,或者是将具有数据独立性的第一指令重新排列,如步骤S900所示。接着在步骤S902中,摺叠规则检查器根据一摺叠规则检查第一指令,其中该摺叠规则主要是用来判断第一指令之间的数据独立性。
然后在步骤S904a中,当摺叠规则检查器检查两个相邻第一指令之间的数据独立性且该相邻第一指令之间具有数据独立性,则将此相邻的第一指令结合成为一第二指令并且写入至第二程序中。另一方面在步骤S904b中,当该相邻第一指令之间为数据相依性(Data Dependent),将其中一个指令写入至第二程序中,并且依据摺叠规则使另一个第一指令与下一个第一指令继续检查比对。接着在步骤S906中,判断是否完成所有第一指令的检查步骤,若是(YES),则形成由第二指令组成的第二程序,如步骤S908所示。若尚有第一指令未(NO)以摺叠规则检查,则继续执行步骤S902。
根据本发明一较佳实施例中,在步骤S900之前还包括,利用指令排序器建立相依性关联图(Dependence Graph,DG),以决定后一个指令是否有使用到前一个指令的运算结果,以显示第一指令之间的相依关联性,如步骤S910所示,其中每个指令可以视为一个节点(Node),以形成该相依性关联图(DG)。特定而言,在相依性关联图(DG)中,当节点以边缘记号连接在一起时,表示该第一指令具有数据相依性的特性。
本发明的实施例中,相邻的第一指令之间的数据独立性是指后一个第一指令的来源缓存器与前一个第一指令的目标缓存器两者不相同.换言之,后一个第一指令的来源缓存器与前一个第一指令的目标缓存器为空集合(nullset),亦即相邻指令的执行结果是输出至一目标缓存器的不同字段.在一实施例中,第一指令以及第二指令的来源操作数的总数量为一预定临界值,而且使得译码器可以针对不同的复合指令进行译码.
本发明的优点主要包括:(a)依据数据的独立性摺叠指令,以形成简化的复合指令,进而产生新的程序;(b)摺叠程序中具有相同目标缓存器的指令,并且将数据输出至该目标缓存器的不同字段,以节省像素处理系统的硬件成本;以及(c)提供一种应用于像素处理系统的摺叠处理单元,以改善像素处理系统的效能。
综上所述,虽然本发明仅以一些特定实施例揭露如上,但本领域的普通技术人员可以对本发明进行各种改动而不脱离本发明的精神和范围。倘若对本发明的修改属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动在内。

Claims (21)

1.一种像素处理系统,其特征在于,该系统至少包括:
一指令摺叠处理单元,用以摺叠来自一第一程序中的若干个第一指令,进而产生一具有至少一第二指令的第二程序,其中该第二指令为所述若干个第一指令所组成的复合指令;以及
一连接于该指令摺叠处理单元的像素着色装置,用以撷取所述第二程序,并对该第二程序中的第二指令进行译码,以执行该第二程序,其中所述指令摺叠处理单元更包含一摺叠规则检查器,其利用一摺叠规则来检查所述若干个第一指令之间的数据独立性。
2.如权利要求1所述的像素处理系统,其特征在于:所述指令摺叠处理单元更包含一连接于该摺叠规则检查器的指令结合器,其通过结合具有数据独立性的所述若干个第一指令来形成该第二指令。
3.如权利要求1所述的像素处理系统,其特征在于:所述指令摺叠处理单元更包含一连接于该摺叠规则检查器的指令排序器,其根据所述第一指令的静态位置将所述若干个第一指令作扫描,从而对该第一程序中的所述若干个第一指令进行排序。
4.如权利要求3所述的像素处理系统,其特征在于:所述指令排序器连续地扫描所述若干个第一指令。
5.如权利要求1所述的像素处理系统,其特征在于:所述像素着色装置包括一缓存器单元,其用以储存第二指令在运算过程中每个字段产生的数据,所述第一指令之间的数据独立性对于相邻的两条第一指令来说是指存在于缓存器单元中用以暂存后一个第一指令的一来源缓存器与存在于缓存器单元中用以暂存前一个第一指令的目标缓存器两者不同。
6.如权利要求5所述的像素处理系统,其特征在于:所述相邻的第一指令的执行结果被保存在所述目标缓存器的不同字段。
7.如权利要求5所述的像素处理系统,其特征在于:所述第一指令与第二指令的来源操作数的总数量小于一预定临界值,且该预定临界值表示像素着色装置中一译码器可解析指令的总数量。
8.如权利要求1所述的像素处理系统,其特征在于:当所述若干个第一指令中两个相邻指令之间具有数据相依性时,该指令摺叠处理单元用以将其中一个第一指令写入至该第二程序中,且该指令摺叠处理单元根据该摺叠规则检查另一个第一指令与下一个第一指令之间的数据独立性。
9.如权利要求1所述的像素处理系统,其特征在于:所述像素着色装置至少包含:
一译码装置,用以解析该第二指令,并且产生一控制信号;
一连接于该译码装置的算术逻辑单元,用以根据该控制信号来执行该第二指令的若干个缓存器字段的处理;以及
一连接于该算术逻辑单元的缓存器端口,用以选定缓存器字段,以转换该第二指令的操作数的数据格式。
10.如权利要求9所述的像素处理系统,其特征在于:所述像素着色装置进一步包括:
一指令存储装置,以储存该第二程序的该第二指令;以及
一连接于该译码装置的撷取装置,其根据一程序指位器来撷取储存于该指令存储装置的第二指令。
11.如权利要求9所述的像素处理系统,其特征在于:所述像素着色装置更包含一连接于该缓存器端口的缓存器单元,用以储存该第二指令的该缓存器字段的数据.
12.一种像素处理系统的执行方法,其特征在于:该方法至少包括下列步骤:
以一摺叠处理单元摺叠第一程序中若干个第一指令,以形成具有第二指令的第二程序,且该第二指令是由该第一指令所组成的复合指令,所述摺叠是根据一摺叠规则检查所述若干个第一指令的数据独立性;
根据一程序指位器撷取该第二指令;
以一译码器对该第二指令进行译码,以形成一控制信号;
以一算术逻辑单元根据该控制信号对该第二指令的若干个缓存器字段进行逻辑运算;以及
通过一缓存器端口选定该缓存器字段,以对该第二指令的操作数数据格式进行转换。
13.如权利要求12所述的像素处理系统的执行方法,其特征在于:所述根据该摺叠规则检查所述若干个第一指令的数据独立性的步骤之前,更包含根据该第一指令的静态位置扫描所述若干个第一指令,以对该第一程序中的所述若干个第一指令进行排序。
14.如权利要求13所述的像素处理系统的执行方法,其特征在于:所述扫描所述若干个第一指令的步骤中是以连续的方式扫描该第一指令。
15.如权利要求13所述的像素处理系统的执行方法,其特征在于:所述扫描所述若干个第一指令的步骤中,更包含重新排列所述若干个具有数据独立性的第一指令。
16.如权利要求12所述的像素处理系统的执行方法,其特征在于:所述根据该摺叠规则检查所述若干个第一指令的数据独立性的步骤中,当相邻两个第一指令之间具有数据独立性,则将该两个相邻的第一指令结合成为一第二指令并且写入至该第二程序中。
17.如权利要求16所述的像素处理系统的执行方法,其特征在于:所述相邻第一指令之间具有数据独立性是指后一个第一指令的来源缓存器不同于前一个第一指令的目标缓存器。
18.如权利要求17所述的像素处理系统的执行方法,其特征在于:所述相邻第一指令的执行结果被输出至该目标缓存器的不相同字段。
19.如权利要求17所述的像素处理系统的执行方法,其特征在于:所述第一指令与该第二指令使用的若干来源操作数的数量小于一预定临界值,且该预定临界值为该译码器可解析指令的总数量。
20.如权利要求12所述的像素处理系统的执行方法,其特征在于:所述根据一摺叠规则检查所述若干个第一指令的数据独立性的步骤中,当该相邻第一指令之间具有数据相依性时,将其中一个该相邻的第一指令写入至该第二程序中,并且根据该摺叠规则将另一个该相邻的第一指令与下一个第一指令进行检查。
21.如权利要求12所述的像素处理系统的执行方法,进一步包括建立相依性关联图的步骤,该关联图用以表示所述若干个第一指令之间的数据相依性的关联性。
CN200610074828A 2006-04-18 2006-04-18 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统 Expired - Fee Related CN101059865B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200610074828A CN101059865B (zh) 2006-04-18 2006-04-18 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610074828A CN101059865B (zh) 2006-04-18 2006-04-18 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统

Publications (2)

Publication Number Publication Date
CN101059865A CN101059865A (zh) 2007-10-24
CN101059865B true CN101059865B (zh) 2010-05-12

Family

ID=38865961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610074828A Expired - Fee Related CN101059865B (zh) 2006-04-18 2006-04-18 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统

Country Status (1)

Country Link
CN (1) CN101059865B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1234560A (zh) * 1998-03-31 1999-11-10 英特尔公司 用于执行重排指令的系统和方法
US6237086B1 (en) * 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
CN1335561A (zh) * 2000-06-30 2002-02-13 先进数字芯片股份有限公司 扩展指令字折叠设备
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1234560A (zh) * 1998-03-31 1999-11-10 英特尔公司 用于执行重排指令的系统和方法
US6237086B1 (en) * 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
CN1335561A (zh) * 2000-06-30 2002-02-13 先进数字芯片股份有限公司 扩展指令字折叠设备
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平6-332870A 1994.12.02

Also Published As

Publication number Publication date
CN101059865A (zh) 2007-10-24

Similar Documents

Publication Publication Date Title
US6954205B2 (en) Method and system for managing graphics objects in a graphics display system
US10140678B2 (en) Specialized code paths in GPU processing
US8823718B2 (en) Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
KR101231291B1 (ko) 자원 결합 방법 및 그를 위한 컴퓨터 판독가능 매체 및 애플리케이션 프로그래밍 인터페이스와, 종속성 트리 재구성 방법
US8194083B2 (en) Color computation of pixels using a plurality of vertex or fragment shader programs
US7800606B2 (en) Method and system for defining and controlling algorithmic elements in a graphics display system
JP4608510B2 (ja) 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム
US6624819B1 (en) Method and system for providing a flexible and efficient processor for use in a graphics processing system
US8520016B2 (en) Instruction folding mechanism, method for performing the same and pixel processing system employing the same
CN101156176A (zh) 图像处理装置
US8081184B1 (en) Pixel shader program thread assembly
TWI632524B (zh) 以邊緣爲基礎之覆蓋遮罩壓縮技術
US20020178301A1 (en) Method and system for providing a unified API for both 2D and 3D graphics objects
CN107077828A (zh) 对颜色查找表的大小进行压缩
US9058680B2 (en) Multi-threaded multi-format blending device for computer graphics operations
US6812923B2 (en) Method and system for efficiently transferring data objects within a graphics display system
CN108780579A (zh) 使用压缩数据的每样本msaa渲染
US20030014562A1 (en) Method and system for maintaining connections between surfaces and objects in a graphics display system
US7623132B1 (en) Programmable shader having register forwarding for reduced register-file bandwidth consumption
CN101059865B (zh) 指令摺叠处理单元及其方法以及使用该摺叠处理单元及该方法之像素处理系统
US20020122034A1 (en) Method and system for providing data to a graphics chip in a graphics display system
Doggett Programmability features of graphics hardware

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: TAIJI HOLDING CO., LTD.

Free format text: FORMER OWNER: XITONG SCIENCE AND TECHNOLOGY CO LTD

Effective date: 20091113

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20091113

Address after: Delaware

Applicant after: Silicon Integrated Systems Corporation

Address before: Taiwan, Hsinchu, China Science Park, the new road, No. 16

Applicant before: Xitong Science & Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100512

Termination date: 20120418