数据单元的关联性检查方法以及使用该方法的装置的制造方法

文档序号:9688269阅读:284来源:国知局
数据单元的关联性检查方法以及使用该方法的装置的制造方法
【技术领域】
[0001]本发明涉及一种三维图形技术,特别是一种数据单元的关联性(dependency)检查方法以及使用该方法的装置。
【背景技术】
[0002]在三维图形管道中,光栅化器(rasterizer)转换像素(primitives)为画素(pixels),并且将画素传送至画素着色器(pixel shader)。画素着色器则用以决定即将写入绘制目标的最后画素颜色。光栅化器顺序性地产生像素,并且为每一个像素产生片元。数据单元(例如,小方块,quads)的信息会摘要出来并打包至执行线程。一个执行线程包含一定数目的数据单元,画素着色器初始并平行执行多个执行线程。执行线程于画素着色器中执行时可能不按照顺序。但是,画素着色器需要依据光栅化器产生数据单元的顺序来输出这些数据单元。然而,对于相同数据单元,执行线程间可能发生未写入便读出的意外。因此,需要一种数据单元的关联性检查方法以及使用该方法的装置,用以避免以上所述的问题。

【发明内容】

[0003]本发明的实施例提出一种数据单元的关联性检查方法。从画素着色器中的第一执行线程接收关联于数据单元的存储器存取请求,以及从窗口缓存器取得数据单元的处理状态。藉由处理状态判断数据单元是否正被第二执行线程处理。如果是,则执行请求拒绝程序,用以避免第一执行线程存取动态随机存取存储器中关联于数据单元的属性值。否则,执行请求允许程序,用以允许上述第一执行线程存取上述动态随机存取存储器中关联上述数据单元的属性值。
[0004]本发明的实施例提出一种数据单元的关联性检查装置,包含窗口缓存器及窗口签入器。窗口签入器耦接于窗口缓存器,从画素着色器中的第一执行线程接收关联于数据单元的存储器存取请求;从窗口缓存器取得数据单元的处理状态;藉由处理状态判断数据单元是否正被第二执行线程处理;如果是,则执行请求拒绝程序,用以避免第一执行线程存取动态随机存取存储器中关联于数据单元的属性值;否则,执行请求允许程序,用以允许第一执行线程存取动态随机存取存储器中关联数据单元的属性值。
【附图说明】
[0005]图1是依据本发明实施例的数据单元的关联性检查装置的硬件架构图。
[0006]图2是依据本发明实施例的转换到二维影像的像素示意图。
[0007]图3是依据本发明实施例的画素处理方法流程图。
[0008]图4是依据本发明实施例由窗口检查器130执行的关联性检查方法的流程图。
[0009]图5是依据本发明实施例由窗口释放器150执行的关联性检查方法的流程图。
[0010]图6是依据本发明实施例的仲裁器的方块图。
【具体实施方式】
[0011]以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的
【发明内容】
必须参考之后的权利要求范围。
[0012]必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
[0013]于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
[0014]图1是依据本发明实施例的数据单元的关联性检查装置的硬件架构图。动态随机存取存储器120储存关联于2D影像中画素的属性值,例如坐标、Z值、颜色等。于执行特定作业时,例如,产生光栅顺序视图(ROV,Raster Ordered Views)、融合像素间的画素值等,画素着色器110需要存取动态随机存取存储器(DRAM,Dynamic Random Access Memory) 120中的画素的属性值。一个作业通常包含从动态随机存取存储器120读取关联特定位置的属性值、运算以及将关联特定位置的运算结果写回动态随机存取存储器120。于此须注意的是,当画素着色器110中的一个执行线程已经读取特定位置的属性值但尚未将运算结果写回时,特定位置的属性值不能被其它执行线程读取。否则,将发生未写入便读出的意外。图2是依据本发明实施例的转换到二维(2D, two-dimens1nal)影像的像素示意图。光栅化器依序产生像素210及230,并转换到以小方块(quads)为单位的2D影像,其中反斜线的部分是像素210及230间重叠的区域。当重叠区域中的任一画素同时被关联于像素210及230的执行线程处理时,画素着色器110需保证除非关联于像素210的执行线程处理此画素结束,否则不能让关联于像素230的执行线程开始处理此画素。
[0015]图3是依据本发明实施例的画素处理方法的流程图。此方法由画素着色器110中的一个执行线程实施。首先,从缓存器取得待处理的数据单元的信息(步骤S311)。其中,数据单元可为一或多个画素、小方块、片元等。取得信息中至少包含此数据单元于2D影像上的位置。2D影像的位置可以(x,y)坐标、小方块编号(quad number)、片元编号(tile number),或其它信息表示。为保证执行线程间存取相同画素的属性值的顺序符合像素产生的顺序,执行线程向窗口检查器(window checker) 130发出关联于此数据单元的存储器存取请求(步骤S313)。存储器存取请求中至少包含此数据单元于2D影像上的位置。接着,于接收到窗口检查器130的请求允许信息(Acknowledgement)后(步骤S315中“是”的路径),从动态随机存取存储器120读取关联于此数据单元的属性值(步骤S331)。于接收到窗口检查器130的请求拒绝信息(Reject1n)后(步骤S315中“否”的路径),执行线程可于一段时间后重新向窗口检查器130发出关联于此数据单元的存储器存取请求(步骤S313)。于另一些实施例中,执行线程可于发出存储器存取请求后启动一个定时器,用以计时一段时间。当定时器逾时前接收到窗口检查器130的请求允许信息后(步骤S315中“是”的路径),从动态随机存取存储器120读取关联于此数据单元的属性值(步骤S331)。当定时器逾时后(步骤S315中“否”的路径),重新向窗口检查器130发出关联于此数据单元的存储器存取请求(步骤S313)。于读取所需数据后(步骤S331),执行线程对此数据单元的属性值进行运算(步骤S333),将此数据单元的运算结果写回动态随机存取存储器120(步骤S335),以及通知窗口释放器(windowreleaser) 150关联此数据单元的存储器存取结束(步骤S337)。窗口检查器130及窗口释放器150的技术细节将讨论如后。
[0016]窗口缓存器160储存每一个数据单元的处理状态,可实施于一读一写类型的静态存取存储器(1R1W type SRAM, Static Random Access Memory)。窗口缓存器 160可包含一定数量Μ的储存格(cell),以及每一储存格包含一定数量N的比特(bit)。每一个比特表示关联于一个数据单元的处理状态,“1”表示此数据单元目前正被一个执行线程处理,“0”表示此数据单元目前没有被任何执行线程处理。例如,为符合画素着色器110的最大处理能力,窗口缓存器160包含256个储存格,以及每一储存格包含256个比特。窗口缓存器160中的数据单元的处理状态寻址与2D影像的位置相符。于一个例子中,第0个储存格中第0至255个比
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1