同步存取方法及其系统以及绘图处理单元的制作方法

文档序号:6571097阅读:209来源:国知局

专利名称::同步存取方法及其系统以及绘图处理单元的制作方法
技术领域
:本发明涉及一种数据处理系统,特别是涉及一种计算机绘图系统(computergraphicsystem)与方法。
背景技术
:计算机绘图是通过计算机产生画像(picture)、影像(image)或是其它图形或绘画信息的技术。产生画像或影像的技术通常又称为转列(rendering)。一般来说,在3D(threedimension)计算机绘图中系将对象表面(或体积)的几何图案转换为储存于数据帧缓冲器(framebuffer)中的像素(pixel)(画像元素),并且显示于显示装置。其中一项难题为决定如何分享高速缓存(cachememory)。例如,于应用层(applicationlevel)可通过中央处理器(CPU)判断的深度以和/或纹理(texture)处理,在绘图处理器之前端(例如通过顶点着色程序(vertexshaderprogram)产生纹理形式的数据映图(datamap)),或可使用于后处理方法(例如通过转列于数据帧缓冲器中的后影像的像素着色)。很明显的,根据使用于这些或其它处理的模块位置的变化,高速缓存的存取(不论是读或写)是可以分享的。例如,参照图1所示的数据处理系统10,控制器20(例如软件模块)是提供命令(或是指令)至包括上游处理单元P112、中间处理单元P214以及下游处理单元P316的管线(pipeline)。每个单元(P1-P3)包括至少一寄存器(未图标),分别用以于传递与下一个单元没有关联的命令时,接收适用于各别单元的指令。P112与P316系共享高速缓存18,当高速缓存18通过管线接收由控制器20所发送的致能命令而被致能或启动时,P112与P316可存取高速缓存18中的数据。换句话说,高速缓存18较佳为根据控制器20所提供的命令而被已启动的处理单元P112与P316的一者存取,以避免发生写后读出(readafterwrite,RAW)危障。因此,控制器20(或驱动软件)可经由P112与P214而提供致能命令至P316。同样的,控制器20可传送去能命令至P112而使P112立即被解除或去能。当命令从P112切换至P316时,由于命令是从管线的P112传递至P316,因此当P112进入闲置状态后,P316不可能遗漏任何命令,因此不需要使用同步机制。换句话说,当P316通过管线接收寄存器(未图标)中的致能命令时,P112的操作便会终止。然而,当命令从P316反相地切换至P112时,储存于高速缓存18中的数据将会有遗失的风险,因为P112于去能命令通过管线到达P316前可接收来自控制器20储存于寄存器(未图标)中的致能命令。
发明内容有鉴于此,本发明提供一种同步存取系统与方法,适用于同步存取管线系统中多个模块之间的存储器。同步存取方法包括适用于同步存取介于管线系统的上游模块与下游模块之间的存储器,包括于上游模块接收等待命令并且于下游模块接收信号命令,等待命令与信号命令分别具有辨识器;根据所接收的等待命令延迟存取存储器;接收来自下游模块的辨识器;比较来自下游模块的辨识器与对应于等待命令的辨识器;以及当对应于等待命令的辨识器符合来自下游模块的辨识器时存取存储器。再者,本发明提供一种同步存取方法,适用于同步存取介于管线系统的上游模块与下游模块之间的存储器,包括于下游模块接收信号命令,信号命令具有辨识器;将数据写入存储器,直到达到闲置状态;以及根据闲置状态提供辨识器至上游模块。再者,本发明提供一种同步存取系统,适用于同步存取管线系统中设置于多个模块之间的存储器,包括上游模块,包括第一寄存器,用以接收具有辨识器的等待命令;以及第一存取逻辑单元,用以根据第一寄存器所接收的等待命令延迟存取存储器,接收来自下游模块的辨识器,比较来自下游模块的辨识器与对应于等待命令的辨识器,并且当对应于等待命令的辨识器符合来自下游模块的辨识器时存取存储器。再者,本发明提供一种同步存取系统,适用于同步存取管线系统中设置于多个模块之间的存储器,包括下游模块,包括第二寄存器,用以接收具有辨识器的信号命令;以及第二存取逻辑单元,用以将数据写入存储器,直到进入闲置状态,并且根据闲置状态提供辨识器至上游模块。再者,本发明提供一种绘图处理单元,包括上游模块以及电连接至上游模块的下游模块,上游模块包括第一寄存器,用以接收具有辨识器的等待命令;以及第一存取逻辑单元,用以根据第一寄存器所接收的等待命令延迟存取存储器,接收来自下游模块的辨识器,比较来自下游模块的辨识器与对应于等待命令的辨识器,并且当对应于等待命令的辨识器符合来自下游模块的辨识器时存取存储器;以及下游模块,包括第二寄存器,用以接收具有辨识器的信号命令;以及第二存取逻辑单元,用以将数据写入存储器,直到达到闲置状态,并且根据闲置状态提供对应到上述信号命令的辨识器至上游模块。图1是显示传统管线系统的方块图,其中的高速缓存系为多个处理单元所共享。图2是显示根据本发明实施例所述的绘图处理系统的方块图,通过绘图处理系统可实现共享存储器同步系统与方法。图3是显示图2所示的绘图处理单元与共享存储器同步系统的方块图。图4是显示根据本发明实施例所述的选择图3所示的共享存储器同步系统的组件的方块图。图5是显示根据本发明实施例所述的同步存取介于图4所示的系统的上游模块以及下游模块之间的高速缓存的方法的流程图。图6是显示根据本发明实施例所述的同步存取介于图4所示的系统的上游模块以及下游模块之间的高速缓存的方法的流程图。附图符号说明10~数据处理系统12、P1~上游处理单元14、P2~中间处理单元16、P3~下游处理单元18~高速缓存20~控制器100~绘图处理系统200、200a~同步系统202~显示装置204、DIU~显示接口单元206~本地存储器210、MIU~存储器接口单元222~芯片组224~系统存储器226~中央处理器250~驱动器软件322、VX~顶点看色器328~ZL1单元330~ZL1高速缓存332~ZL2单元334~Z高速缓存340~像素着色单元342~纹理高速缓存344~ZL3单元346~目标单元348~D高速缓存402、406~存取逻辑单元404、408~寄存器410~曲线214、214a、GPU~绘图处理单元218、BIU~总线接口单元320、BCI~缓冲器控制初始单元324、TSU~三角形生成单元326、STG~跨距与图砖产生单元502~510流程步骤具体实施方式为使本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并结合附图详细说明如下。实施例本发明实施例披露了共享存储器的同步系统与方法。同步系统包括设置为管线的多个处理单元或模块,其中多个处理单元或模块可共享对高速缓存的存取。同步存取通过一对等待/信号命令对(pairedwait/signalcommand)而实现。例如,考虑两个模块,其中一个模块(在此称为上游模块(upstreammodule))相对于另一模块(在此称为下游模块(downstreammodule))设置于管线的上游,且控制权是从下游模块传递至上游模块(反之亦然)。尽管高速缓存每次仅可以被一个模块存取,但是两个模块仍可共享对高速缓存的存取。当控制权从下游模块切换至上游模块时(即上游模块被致能命令启动,且下游模块被去能命令去能),上游模块接收具有匹配辨识器的指令对。命令对包括一等待命令以及一信号命令。辨识器(Identifier)可以是由每次皆会增加的计数器所产生的值,且辨识器具有用以控制下游模块至上游模块的开关。等待命令将上游模块设定为”等待”的状态。处于等待状态的上游模块无法对与下游模块共享的高速缓存执行存取。信号指令沿着管线传递至下游模块,并且被下游模块的寄存器接收。在一些实施例中,上游模块与下游模块之间可能具有其它的模块。当下游模块被去能命令去能之前会完成其程序。下游模块一旦被去能,下游模块即进入闲置状态而无法对共享的高速缓存执行任何存取,直到下游模块接收到致能命令。当进入闲置状态时,下游模块提供信号命令辨识器至上游模块。上游模块比较对应于等待命令的辨识器与来自下游模块的辨识器,当等待命令的辨识器符合来自下游模块的辨识器时,上游模块便开始对高速缓存执行存取。也就是,上游模块对等待命令辨识器与对应的信号命令的辨识器执行比较,当等待命令的辨识器符合对应于信号命令的辨识器时,上游模块可以对与下游模块共享的高速缓存执行存取而不会或是较不可能发生写后读出(readafterwrite(RAW))危障。再者,与传统作法相比,不需要任何外部支持(例如管线冲洗(pipelineflush)或是等待外部事件)即可对内部每个管线执行同步。虽然所述是以绘图处理系统为背景,尤其是深度处理(Z)单元(depthprocessingunit),深度处理单元是共享设置于绘图处理系统中的Z-高速缓存。本发明较佳实施例的范围包括其它管线架构,架构中的模块(例如固定功能(fixedfunction)单元,可编程单元等)系共享对Z-高速缓存或是其它类型的高速缓存的存取。图2是显示根据本发明实施例所述的绘图处理系统100的方块图,在实施例中系实现共享存储器同步系统与方法。在一些实施例中,绘图处理系统100可以被设定为计算机系统。绘图处理系统100可包括由显示接口单元(displayinterfaceunit,DIU)204所驱动的显示装置202以及本地存储器206(例如包括显示缓冲区、纹理缓冲区(texturebuffer)、命令缓冲区等)。在此说明书中,本地存储器206亦可以码帧缓冲器(framebuffer)或是储存单元称之。本地存储器206通过存储器接口单元(memoryinterfaceunit,MIU)210耦接至绘图处理单元(graphicsprocessingunit,GPU)214。根据本发明实施例,MIU210、GPU214以及DIU204耦接至与周边组件快速相互连结PCIE(peripheralcomponentinterconnectexpress)标准兼容的总线接口单元(businterfaceunit,BIU)218。虽然图中所示的BIU218使用图形地址重映像表(graphicsaddressremappingtable,GART),但BIU218亦可使用其它存储器映像机制。GPU214包括同步系统200。虽然图中所示的同步系统200为GPU214的组件,然而,在其它实施例中,同步系统200可包括至少一额外绘图处理系统100的组件(如图所示),或是不同的组件。BIU218耦接至芯片组222(例如北桥芯片组)或开关。芯片组222包括界面电子,用以将信号从中央处理器(centralprocessingunit,CPU)226延伸,并且将传送至以及来自系统存储器224的信号与传送至以及来自输入/输出装置(未图标)的信号分开。虽然已经说明了PCIE总线协议,然而在其它实施例中可以使用主处理器与GPU214之间连接以和/或沟通的其它方法(例如PCI、私有高速总线等)。系统存储器224亦包括驱动器软件250,通过CPU226与指令或命令沟通便可在GPU214中注册。在一些实施例中可利用额外的绘图处理单元,藉由PCIE总线协议通过芯片组222而耦接至组件(如图2所示)。根据本发明实施例,绘图处理系统100可通过图2所示的所有组件(或是少于图2的组件以和/或不同于图2的组件)而实现。再者,在一些实施例中可使用额外的组件,例如耦接至芯片组222的南桥芯片组。同步系统200可实现于硬件、软件、固件或是上述的组合中。根据本发明较佳实施例,同步系统200实现于硬件中,包括下列任何本领域的技术人员所知道的技术或是下列技术的组合离散逻辑电路(discretelogiccircuit)具有用以根据数据信号实现逻辑函式的逻辑门,特殊应用集成电路(applicationspecificintegratedcircuit,ASIC)具有适当的组合逻辑门、可编程逻辑门阵列(programmablegatearray,PGA)以及现场可编程逻辑门阵列(fieldprogrammablegatearray,FPGA)等。当驱动器软件250实现于软件或固件中时,驱动器软件250控制硬件处理,这样的驱动器软件250可通过任何计算机可读取媒体将用以实现逻辑函式的依序排列的可执行指令实现,计算机可读取媒体可以被指令执行系统、设备或装置使用(或与其有关),例如计算机化系统、具有处理器的系统或是可通过指令执行系统、设备或装置撷取并执行指令的其它系统。在此文件中,计算机可读取媒体可以为可包括、储存、沟通、传递或传送程序的装置,用以被指令执行系统、设备或装置使用或与其有关。计算机可读取媒体可以但并非限定为电子、磁性、光学、电磁、红外线或是半导体系统、设备或装置或是传递媒体。更多计算机可读取媒体的特例(不存在的清单)可包括具有至少一导线的电连接(电子)、便携式计算机磁盘(磁性)、随机存取存储器(RAM)(电子)、只读存储器(ROM)(电子)、可擦除可编程只读存储器(EPROM或闪存)(电子)、光纤(光学)、只读光盘(CD-ROM)(光学)。值得注意的是,计算机可读取媒体为可用以打印程序的纸或是其它适合的媒体,必要时,程序可通过对纸或其它媒体执行光学扫瞄而被电捕获、编译、解译或是以适当的方法执行,并且将结果储存于计算机存储器中。图3是显示图2所示的绘图处理单元214a与同步系统200a的方块图。在一些实施例中亦可包括比图3更多或更少的组件。例如,接下来所说明的每个模块可具有自己的内部寄存器(未图标),由与寄存器共同设置的模块所使用或是与不同的模块共享。绘图处理单元214a包括缓冲器控制初始(buffercontrolinitialization,BCI)单元320、顶点着色器(vertexshader,VS)322、三角形生成单元(trianglesetupunit,TSU)324、跨距与图砖产生(spanandtilegeneration,STG)单元326、ZL1单元328(等级Z单元)、ZL1高速缓存330,且像素等级Z单元(pixellevelZunit)包括ZL2单元332(在此亦称为上游模块)、Z高速缓存334、像素着色(pixelshader,PS)单元340、纹理高速缓存(texture(T)cache)342、ZL3单元344(在此亦称为下游模块)、目标(destination(D))单元346以及D高速缓存348。在一些实施例中,可以结合这些单元(例如D单元346以及D高速缓存348)的至少一个的功能,或是重新排列这些单元在管线中的顺序。BCI单元320通过BIU218与MIU210接收数据与命令(接着来自软件驱动器250)并且开始处理顶点数据。根据本发明一实施例,BIU218与MIU210被设定用以根据PCIE协议以及双倍数据速率(doubledatarate,DDR)存储器协议传送数据以及接收数据。ZL1高速缓存330以及D高速缓存348分别作为MIU210与BIU218(例如用以执行读取或写入操作)的界面。为了着色功能(例如递色(dither)、雾化(fog)、Alpha混合等),D单元346耦接至PS单元340与ZL3单元(下游模块)344,并且还存取D高速缓存348。PS单元340根据纹理取样(texturefetch)与过滤机制存取对应于纹理处理的T高速缓存342。在操作中,BCI320接收来自驱动器软件250或其它软件(未图标)的命令而绘制三角形。BCI320亦接收对应于即将绘制的三角形的顶点信息。顶点信息传送至VS322以执行顶点转换。必须注意的是,对象是从对象空间(objectspace)转换至工作空间(workspace)以及屏幕空间(screenspace)的三角形。三角形是传送至组合基元(primitive)并且执行其它已知函数中的例如产生边界框(boundingboxgeneration)、裁切(culling)、产生边缘函数(edgefunctiongeneration)以及三角形等级排除(trianglelevelrejection)等工作的TSU324。TSU324系将数据传送至提供图砖产生功能的STG326,藉以将数据对象分割为图砖(例如8*8,16*16等)并且传送至ZL1单元328。如同ZL2单元332与ZL3单元344,ZL1单元328用以执行Z值处理,例如Z值的高阶排除(例如较低阶类似的处理消耗更少的位)。一般来说,ZL2单元(上游模块)332与ZL3单元(下游模块)344包括用以执行已知绘图处理功能的逻辑单元/电路,例如实现Z-比较与模板测试(stenciltest)。再者,ZL3单元(下游模块)344包括用以执行alpha测试的逻辑单元。ZL单元328、332与344分别与ZL1高速缓存330、Z高速缓存334以及Z高速缓存334结合。例如,ZL2单元(上游模块)332与ZL3单元(下游模块)344用以存取Z高速缓存334。PS单元340包括用以接收纹理与管线数据并且提供输出至D单元346与ZL3单元(下游模块)344的可编程单元。在Z高速缓存334或是D高速缓存348中的值需要更新之前,D单元346与ZL3单元(下游模块)344被设定用以执行alpha测试与模板测试。在某些实施例中,会在T高速缓存342与PS单元340之前执行Z排除,以降低适用于许多Z图砖的未使用的纹理快取以及PS执行,并且可节省存储器流量以及PS使用率。ZL3单元(下游模块)344致能于PS单元340后完成Z测试,例如以传统的方式致能alpha测试并且以传统的方式执行ZL1单元328。通过管线(例如经过BCI320,VS322等),驱动器软件250可传递不同的命令,属于特定单元的命令会被单元中各自的寄存器所接收。例如,属于ZL2单元(上游模块)332与ZL3单元(下游模块)344的一命令对的部分命令对分别被ZL2与ZL3单元中的寄存器所接收。命令对的一部份(等待命令)被ZL2单元(上游模块)332中的寄存器所接收,命令对的其它部分(信号命令)经由ZL2单元(上游模块)332而被ZL3单元(下游模块)344中的寄存器所接收。命令对具有匹配的辨识器。ZL3单元(下游模块)344通过直接连接350提供信号命令的辨识器部分给ZL2单元(上游模块)332,以执行下列比较。图4是显示图3所示的同步系统200a的方块图。值得注意的是,在一些实施例中,同步系统200a可利用比图4所示更多、更少或不同的组件。例如,在一些实施例中,同步系统200a可不包括驱动器250、T高速缓存324等;或是在一些实施例中,同步系统200a可包括大部分(但不是全部)的GPU214或是绘图处理系统100的组件。图4显示根据本发明实施例所述的同步系统200a包括驱动器软件250、ZL2单元(上游模块)332、耦接于ZL2单元(上游模块)332与ZL3单元(下游模块)344之间的PS单元340、耦接至PS单元340的T高速缓存单元342、设置于由ZL2单元(上游模块)332与ZL3单元(下游模块)344所提供的至少一处的Z高速缓存334,以及提供命令辨识器从ZL3单元(下游模块)344传送至ZL2单元(上游模块)332的直接连接350。介于ZL2单元(上游模块)332与驱动器软件250之间的曲线410用以表示驱动器软件提供命令至设置于对应于ZL2单元(上游模块)332的管线上游的至少一处理单元。除了上述功能,ZL2单元(上游模块)332包括存取逻辑402以及至少一寄存器(例如寄存器404)。同样的,ZL3单元(下游模块)344包括存取逻辑单元406以及至少一寄存器408。其它模块,例如Z高速缓存334亦包括寄存器(未图标)。驱动器软件250提供不同的命令至用以提供暂时储存的寄存器404,包括即将被ZL2单元(上游模块)332执行的ZL2工作,致能_ZL2命令以及命令对的一部份(包括ZL3至ZL2_等待(辨识器)命令)。ZL3至ZL2_信号(辨识器)以及去能_ZL3命令沿着管线传送至ZL3单元(下游模块)344的寄存器408。辨识器可以为符记(token)形式,例如每当控制权从ZL3单元(下游模块)344传送至至ZL2单元(上游模块)332时,驱动器软件250便会活化计数器(未图示)而增加32-位值。当通过去能_ZL3与致能_ZL2命令改变状态时,ZL2单元(上游模块)332与ZL3单元(下游模块)344可以交换(即交换控制权)。ZL2单元(上游模块)332与ZL3单元(下游模块)344共享Z高速缓存中的寄存器,并因此需要同步以避免发生写后读出危障。虽然ZL2单元(上游模块)332与ZL3单元(下游模块)344两个装置中分别的寄存器404与408随时皆可以接受指令,但是只有一个活化的装置(ZL2单元(上游模块)332或ZL3单元(下游模块)344)可存取(例如改变值)高速缓存334中的至少一寄存器。当控制权从ZL2单元(上游模块)332转换为ZL3单元(下游模块)344时,管线架构的特性通常可保证当设置于管线相对前端的模块进入闲置状态时,设置于管线末端的模块(例如ZL3单元(下游模块)344)可接收任何的工作,因此,同步机制通常不保证适用于这样的控制权转移。值得注意的是,当控制权从ZL2单元(上游模块)332转换至ZL3单元(下游模块)344时,某些实施例仍可以包括同步机制。在操作中,去能_ZL3与致能_ZL2命令分别由寄存器404与408所接收,以分别将ZL2单元(上游模块)332以及ZL3单元(下游模块)344启动或去能。命令对包括ZL3至ZL2_等待(辨识器)以及ZL3至ZL2_信号(辨识器)亦于传送去能ZL3_与致能ZL2_命令时传送。ZL3至ZL2_等待(辨识器)以及ZL3至ZL2_信号(辨识器)命令系分别由寄存器404与408接收。如上所述,这两个命令为成对的,并且需要相同的辨识器。辨识器可通过驱动器软件250的管理而辨别其它以管线控制顺序而执行的转换(例如对应于其它状态)。如上所述,维持辨识器的机制为当ZL3转换为ZL2时增加计数器的值。当辨识器达到设计的尺寸时(例如32位宽),辨识器可以被绕回(wraparound)(即将计数器的值绕回)。如上所述,由于不需要通过内部同步来执行转换,因此不需要计算ZL2至ZL3的转换。当ZL2单元(上游模块)332接收ZL3至ZL2_等待(辨识器)命令时,存取逻辑单元402对储存于寄存器404中ZL3至ZL2_等待(辨识器)命令的辨识器或是从存取逻辑单元406返回的辨识器复本(ZL3单元(下游模块)344)执行比较。由于ZL3至ZL2_信号(辨识器)命令仅从ZL2单元(上游模块)332沿着管线传下来,从ZL3单元(下游模块)344的存取逻辑单元406返回的辨识器可能小于ZL2_等待(辨识器)命令中的辨识器。因此,ZL2单元(上游模块)332的存取逻辑限制(例如禁止Z高速缓存的存取或是改变寄存器的内容)任何其它的ZL2请求,并且持续等待从ZL3单元(下游模块)344的存取逻辑单元406返回的辨识器,以相同于目前ZL3至ZL2_等待(辨识器)命令中的辨识器。在此等待期间,不允许ZL2单元(上游模块)332的存取逻辑单元402存取Z高速缓存334,以保证ZL2单元(上游模块)332不会存取来自高速缓存334中不稳定的数据。同样的,在此等待期间,命令对中ZL3至ZL2_信号(辨识器)命令会持续沿着管线移动,并且最终会到达ZL3单元(下游模块)344的寄存器408。虽然ZL3单元(下游模块)344的寄存器408可能已接收去能_ZL3以和/或ZL3至ZL2_信号(辨识器)命令,ZL3单元(下游模块)344会持续执行目前的ZL3工作,直到完成所有的图砖且Z数据通过存取逻辑单元406被写入Z高速缓存334。一旦写入数据,ZL3单元(下游模块)344便会进入闲置状态,使得Z高速缓存334不会再被存取直到ZL3单元(下游模块)344被启动(例如通过来自驱动器软件250的致能命令)。在对应于闲置状态的时间,ZL3单元(下游模块)344的存取逻辑单元406会分析储存于寄存器408中ZL3至ZL2_信号(辨识器)命令的辨识器(或是辨识器复本),并且通过直接连接350提供同样的辨识器至ZL2单元(上游模块)332的寄存器404。由于ZL3至ZL2_信号(辨识器)命令与所有的ZL3工作皆在管线中执行,因此当ZL3单元(下游模块)344进入闲置状态后,便可立即通过直接连接350提供辨识器。ZL2单元(上游模块)332的存取逻辑单元402比较辨识器以作为部分的循环维持,藉以确认辨识器之间是否吻合。当存取逻辑单元402检测到匹配后,ZL2单元(上游模块)332的存取逻辑单元402立即结束等待循环,且ZL2单元(上游模块)332系于寄存器404接收ZL3至ZL2_等待(辨识器)命令的后开始处理所接收的项目。换句话说,继续执行ZL2并且完成上述ZL3至ZL2转换循环。值得注意的是,虽然许多的功能是由存取逻辑单元402与406所产生(如上所述),本领域的技术人员皆了解当功能与标准Z处理功能整合(或是分开)时,这样的逻辑功能可以进一步的被合并,因而造成在某些实施例中具有较少的组件,亦或是在某些实施例中具有额外的组件。综上所述,图5是显示根据本发明一实施例所述的同步存取介于管线系统的上游模块以及下游模块之间的高速缓存的方法200b,包括于上游模块接收等待命令,并且于下游模块接收信号命令,其中等待命令与信号命令分别具有辨识器(502);根据所接收的等待命令延迟对存储器的存取(504);接收来自下游模块的辨识器(506);比较来自下游模块的辨识器与对应于等待命令的辨识器(508);以及当对应于等待命令的辨识与来自下游模块的辨识器匹配时,对存储器执行存取(510)。图6是显示根据本发明另一实施例所述的同步存取介于管线系统的上游模块以及下游模块之间的高速缓存的方法200c,包括于下游模块接收信号命令,信号命令具有辨识器(602);将数据写入存储器,直到进入闲置状态(604);以及根据闲置状态提供辨识器至上游模块(606)。图5与图6是显示根据本发明实施例所述的同步系统200的架构、功能以和/或操作。当执行来自驱动器软件250的指令或命令时,每个方块代表至少一模块的不同的功能(例如上游模块332、下游模块344等)。值得注意的是,在其它实施例中,方块所代表的功能的顺序可能不同于图5与图6中的顺序。例如,在图5与图6中根据方块所包含的功能,连续的方块大体同时执行或以相反的顺序执行。本发明虽以较佳实施例披露如上,然其并非用以限定本发明的范围,本领域的技术人员在不脱离本发明的精神和范围的前提下可做若干的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。权利要求1.一种同步存取方法,适用于同步存取介于一管线系统的一上游模块与一下游模块之间的一存储器,包括于上述上游模块接收一等待命令并且于上述下游模块接收一信号命令,上述等待命令与信号命令分别具有一辨识器;根据所接收的上述等待命令延迟存取上述存储器;接收来自上述下游模块的辨识器;比较来自上述下游模块的辨识器与对应于上述等待命令的辨识器;以及当对应于上述等待命令的辨识器符合来自上述下游模块的辨识器时,存取上述存储器。2.如权利要求1所述的同步存取方法,其中存取包括根据在上述等待命令后所接收的所有命令执行存取。3.如权利要求1所述的同步存取方法,其中存取包括存取上述存储器中共享的一位置,上述位置是由上述上游模块与下游模块共享。4.如权利要求1所述的同步存取方法,其中延迟存取包括限制上述上游模块的存取操作。5.如权利要求1所述的同步存取方法,还包括于上述上游模块接收一致能命令以启动上述上游模块,以及于上述下游模块接收一去能命令以于上述上游模块与下游模块分别接收上述等待与信号命令时去能上述下游模块。6.如权利要求1所述的同步存取方法,其中接收来自上述下游模块的辨识器包括通过介于上述上游模块与下游模块之间的一直接连接而接收。7.一种同步存取方法,适用于同步存取介于一管线系统的一上游模块与一下游模块之间的一存储器,包括于上述下游模块接收一信号命令,上述信号命令具有一辨识器;将一数据写入上述存储器,直到达到一闲置状态;以及根据上述闲置状态提供上述辨识器至上述上游模块。8.如权利要求7所述的同步存取方法,其中将上述数据写入上述存储器包括将上述数据写入上述存储器中与上述上游模块共享的一位置。9.如权利要求7所述的同步存取方法,还包括于上述下游模块接收一去能命令,以开始上述闲置状态。10.如权利要求7所述的同步存取方法,其中提供上述辨识器系通过介于上述上游模块与下游模块之间的一直接连接。11.如权利要求7所述的同步存取方法,还包括闲置直到接收一致能命令。12.如权利要求11所述的同步存取方法,还包括于上述闲置期间停止存取上述存储器。13.一种同步存取系统,适用于同步存取一管线系统中设置于多个模块之间的一存储器,包括一上游模块,包括一第一寄存器,用以接收具有一辨识器的一等待命令;以及一第一存取逻辑单元,用以根据上述第一寄存器所接收的上述等待命令延迟存取上述存储器,接收来自一下游模块的辨识器,比较来自上述下游模块的辨识器与对应于上述等待命令的辨识器,并且当对应于上述等待命令的辨识器符合来自上述下游模块的辨识器时存取上述存储器。14.如权利要求13所述的同步存取系统,还包括直接连接至上述上游模块的上述下游模块。15.如权利要求13所述的同步存取系统,还包括耦接至上述上游模块的一驱动器软件,用以提供上述等待命令至上述第一寄存器。16.一种同步存取系统,适用于同步存取一管线系统中设置于多个模块之间的一存储器,包括一下游模块,包括一第二寄存器,用以接收具有一辨识器的一信号命令;以及一第二存取逻辑单元,用以将数据写入上述存储器,直到达到一闲置状态,并且根据上述闲置状态提供上述辨识器至一上游模块。17.如权利要求16所述的同步存取系统,其中上述第二存取逻辑单元用以将数据写入上述存储器中与上述上游模块共享的一位置。18.如权利要求16所述的同步存取系统,其中上述第二存取逻辑单元用以通过界于上述上游模块与上述下游模块的一直接连接提供上述辨识器。19.如权利要求16所述的同步存取系统,其中上述第二存取逻辑单元用以维持一闲置状态,直到接收一致能命令。20.如权利要求19所述的同步存取系统,其中上述第二存取逻辑单元用以于上述闲置状态期间停止存取上述存储器。21.如权利要求16所述的同步存取系统,还包括直接连接至上述下游模块的上述上游模块。22.如权利要求16所述的同步存取系统,还包括耦接至上述下游模块的一驱动器软件,用以提供上述信号命令至上述第二寄存器。23.一种绘图处理单元,包括一上游模块以及电连接至上述上游模块的一下游模块,上述上游模块包括一第一寄存器,用以接收具有一辨识器的一等待命令;以及一第一存取逻辑单元,用以根据上述第一寄存器所接收的上述等待命令延迟存取上述存储器,接收来自一下游模块的辨识器,比较来自上述下游模块的辨识器与对应于上述等待命令的辨识器,并且当对应于上述等待命令的辨识器符合来自上述下游模块的辨识器时存取上述存储器;以及上述下游模块,包括一第二寄存器,用以接收具有一辨识器的一信号命令;以及一第二存取逻辑单元,用以将数据写入上述存储器,直到达到一闲置状态,并且根据上述闲置状态提供对应到上述信号命令的上述辨识器至一上游模块。24.如权利要求23所述的绘图处理单元,其中上述上游模块与上述下游模块分别包括一Z处理单元。25.如权利要求23所述的绘图处理单元,其上述存储器还包括一Z高速缓存单元。全文摘要一种同步存取系统与方法,适用于同步存取管线系统中介于多个模块之间的存储器。同步存取系统包括分别共享存储器中至少一位置的上游模块与下游模块。上游模块系用以接收具有匹配辨识器的一命令对,其中等待命令系用以致能上游模块延迟存取存储器,以避免发生写后读出危障,而信号命令系传送至下游模块。下游模块于下游模块进入闲置状态时将来自信号命令的辨识器传送至上游模块,因而中止对存储器的存取。上游模块系根据判断来自下游模块藉由直接连接所接收的辨识器是否来自命令对而存取存储器中的至少一位置。文档编号G06T1/60GK1983328SQ200710003928公开日2007年6月20日申请日期2007年1月18日优先权日2006年6月12日发明者陈文中,徐建明,屈惠中,郑建刚,程寿玉申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1