图形处理事件同步的方法及系统的制作方法

文档序号:86042阅读:265来源:国知局
专利名称:图形处理事件同步的方法及系统的制作方法
技术领域
本申请案请求2005年10月18日申请的美国专利申请案第60/727,668号「用于多重图形处理单元(GPU)解决方案的智能型中央处理单元(CPU)同步技术」的权利。本申请案也与美国专利申请案第60/727,635号有关,后者与本申请案为共同拥有并一起申请,其内容以引用的方式全部并入本文中。
本发明涉及一种具有多重图形处理单元(GPU)的计算机系统中的图形处理同步(synchronization),更特定言之,涉及图像转译(image rendering)与翻转(flipping)的时序(timing)。
背景技术
现代计算机系统通常采用多重图形处理单元(GPU)来同时转译图像,并将此等图像存储在多个缓冲器中。某一特定的GPU(称为主GPU)连接到显示驱动器。所有图像都通过图形驱动器的翻转操作,并从与主GPU关联的一或多个缓冲器来显示。翻转是将之前的前缓冲器变成后缓冲器,并将之前的后缓冲器变成前缓冲器。所谓的「前缓冲器」是目前将图像提供到显示驱动器的缓冲器,而后缓冲器是准备从转译或位区块传送接收图像的缓冲器。
位区块传送(BLT)将来自两个缓冲器的两个图像(例如,位图)图案合而为一。由于只有一主GPU进行翻转,因此所有其它GPU都是从属的。从GPU所转译的图像最终以位区块传送的方式从其自身的缓冲器传送到与主GPU关联的主缓冲器。图形驱动器还管理BLT时序以及已转译及随后传送的图像来源与目标缓冲器中的存储位置。图形驱动器可以在任何数量的缓冲器之间翻转,但传统的双缓冲器仍然是驱动器最容易处理的,因此最理想。但在任何情况下,驱动器都必须使翻转、转译和BLT同步,为此,持续检查每个组件(即GPU、缓冲器等)的状态的传统方式较无效率。
因此,计算机系统最好具有统一、有效的方式来使这些事件同步。

发明内容鉴于上述问题,本发明提供一种用于监视图形处理事件(例如,转译、翻转和BLT)的状态、从而使此等事件同步的方法及系统。
为了达到上述目的,本发明揭露了一种方法及系统,用于使具有多重图形处理单元(GPU)的计算机系统中的图形处理事件同步。例如,主GPU(masterGPU)将第一图像转译到与显示驱动器或显示接口关联的主缓冲器(masterbuffer)或主要缓冲器(primary buffer)的第一部分中,然后将对应于第一图像的第一预定值写入第一内存单元。从GPU(slave GPU)将第二图像转译到从缓冲器(slave buffer)或次要缓冲器(secondary buffer)中,然后将第二图像传送到主缓冲器的第二部分,并且将对应于第二图像的第二预定值写入第一内存单元。第一及第二预定值表示图像的转译结束事件。主GPU翻转第一图像并仅在检查第一内存单元中的第一预定值之后显示,并且翻转第二图像并仅在检查第一内存单元中的第二预定值之后显示。
根据以下结合附图所述的特定具体实施例,将能充分了解本发明的构造及操作方法,以及其额外的目的和优点。
图1是根据本发明的一具体实施例的具有两个图形处理单元(GPU)及两个事件内存的计算机系统的一部分的方块图。
图2是根据本发明的一具体实施例的计算机系统的时序图。
附图符号说明100 计算机系统110 主GPU120 主缓冲器阵列130 显示接口140 从GPU150 缓冲器阵列160 W事件内存170 S事件内存180 CPU190 总线
195 主存储器230 时隙235 时隙240 时隙244 时隙248 时隙250 时隙254 时隙258 时隙260 时隙265 时隙270 时隙275 时隙280 时隙285 时隙具体实施方式
美国专利申请案第60/727,635号详细说明具有多个图形处理单元(GPU)及其相关缓冲器(buffer)的计算机系统的操作,此申请案与本申请案一起申请,并将全文并入本文中。
图1是根据本发明的一具体实施例的计算机系统的一部分的方块图。计算机系统100具有两个图形处理单元(GPU)110及140。主GPU 110将图像转译到与显示接口130连接的主缓冲器或主要缓冲器120。将主缓冲器120中存储或队列(queue)的图像依次翻转到显示接口130。从GPU 140独立将图像转译到从缓冲器或次要缓冲器150。应了解的是,缓冲器可以是缓冲器阵列或内存单元配置的任何其它形式。主与从GPU交替转译图像,即如果主GPU转译帧[i],则从GPU140转译帧[i+1],然后主GPU转译帧[i+2],依此类推。为了将从缓冲器150中的图像传送到主缓冲器120,主GPU 110或从GPU 140在特定的时间通过总线190开始位区块传送(BLT),从而使所有转译的图像以相同于转译序列的序列在主缓冲器120中队列。
根据本发明的一具体实施例,藉由内存对映(memory-mapped)输入/输出(I/O)或多媒体输入/输出(MultiMedia I/O,MMIO)执行翻转操作。亦即,在CPU写入GPU中已进行内存对映的相关缓存器之后,显示装置立即显示指定缓冲器中的图像。
根据本发明的一具体实施例,为了方便计算机系统各组件的转译、翻转及BLT事件的同步,配置两个事件内存(event memory),即W事件内存160和S事件内存170。
在本发明的一具体实施例中,GPU更新W事件内存160。无论何时完成转译工作,主GPU 110都会将W事件内存160的值递增(increments)。同样,无论何时从GPU 140完成BLT,其也会将递增值写入W事件内存160中。藉由在每个命令周期(command cycle)期间检查W事件内存160的值,CPU 180可以决定特定的图像是否已完全转译并准备翻转。请注意,W内存具有用于不同GPU的不同部分。以下是伪代码(pseudo codes)的示范性子程序(subroutine),名为「queued-flip(队列翻转)」,用于使CPU 180检查并翻转主缓冲器120中的队列图像。
While(queued-flip){get the first flipif(tracked W event value not back)break;do FLIP through MMIOwrite an incremental S event value to the S event memoryRemove current flip}请注意,在以上队列翻转子程序中的翻转之后,CPU 180将递增的S事件值写入S事件内存170,这意味着队列图像已翻转,并且主缓冲器120可接受新图像。因此,藉由检查S事件内存的值,CPU可决定其是否可让GPU将新图像转译或BLT到主缓冲器120中以进行队列。
但是,如果主缓冲器120很大,以致新转译的图像保证不会覆写未翻转的队列图像,则不需要检查甚至配置S事件内存。
图2为详细说明事件内存如何辅助多GPU系统中的转译、翻转及BLT事件的同步的时序图。参考图1及图2,图2中包含CPU 180、主GPU 110、从GPU 140。CPU180内包含时隙230等待S(i+2-N)命令至从GPU140、时隙235等待S(i+4-N)命令至从GPU140及时隙240等待S(i+1-N)命令至主GPU110、时隙244 queued filp(i),「写入S(i)」、时隙248 queued filp(i+1),「写入S(i+1)」、时隙250等待事件S(i+3-N)命令至主GPU 110、时隙254 queuedfilp(i+2),「写入S(i+2)」、时隙258 queued filp(i+3),「写入S(i+3)」。主GPU 110包含时隙260转译帧[i]写入W(i)及时隙265转译帧[i+2]。从GPU 140包含时隙270转译帧[i+1]、时隙275将帧BLT至主缓冲器,写入W(i+1)、时隙280转译帧[i+3]、时隙285将帧BLT至主缓冲器,写入W(i+3)等举例说明。假定主GPU 110与从GPU 140都具有N个组件。每次将转译命令发送到主GPU 110之前,CPU 180检查S事件内存170,并且新转译命令仅在时隙240中当S事件内存170的值达到i+1-N时发送,这意味着在目前的图像之前,已经有N个缓冲的图像翻转,并且缓冲器准备好接受新转译的图像,而不会覆写先前转译及队列的图像。此处,「i」是表示目前命令周期的索引。在每个命令周期中转译一图像帧。
从CPU 180收到转译命令之后,主GPU 110开始在时隙260中转译帧[i]。当完成转译时,主GPU 110也在时隙260中将值i写入W事件内存中。
从GPU 140以不同的方式操作。其转译相当独立,并且其可以在时隙270中转译后续的帧[i+1],当主GPU 110转译帧[i]时,时隙270可以与时隙260重迭。但在时隙275中以位区块传送(BLT)的方式将从GPU转译的图像(即帧[i+1])传送到主缓冲器120需要确保S事件内存的值经过i+2-N,即在帧[i+1]之前,已经有N个以上的帧翻转,并且主缓冲器准备好接受新转译的图像。如图2所示,时隙275在时隙230之后。在时隙230中,CPU 180在S事件内存的值经过i+2-N之后,将BLT命令发送到从GPU 140。在完成BLT命令之后,从GPU 140还会在时隙275中将递增值i+1写入W事件内存中。
在时隙244中执行子程序queued-flip(i+1)时,CPU 180首先检查W事件内存160的值。如果值i+1已经在W事件内存160中,即帧[i+1]已经在主缓冲器120中队列,则其翻转帧[i+1],并将值i+1写入S事件内存。这些步骤亦在以上queued-flip子程序中陈述。
本质上,CPU 180在对应于队列图像的值位于W事件内存160中之后翻转主缓冲器120中的队列图像,并在翻转结束时将递增的值写入S事件内存。同时,GPU转译或BLT欲在主缓冲器120中队列的图像,并在主GPU 110完成转译或从GPU 140完成传送之后,将递增的值写入W事件内存160。以此方式,简化了计算机图形子系统中的翻转、转译及位区块传送的同步。
本发明提供许多不同的具体实施例或范例,用于实施本发明的不同特征。说明组件和方法的特定范例是为了帮助阐明本揭示内容。当然,这些只是范例,无意限制申请专利范围所述的本揭示内容的范围。
权利要求
1.一种用于在具有一主图形处理单元及至少一从图形处理单元的计算机系统中使图形处理事件同步的方法,该方法包括藉由该主图形处理单元转译一第一图像以存储在一主缓冲器的一第一部分中;藉由该从图形处理单元转译一第二图像以存储在一从缓冲器中;将对应于该第一图像的一第一预定值写入一第一内存单元;将该第二图像传送到该主缓冲器的一第二部分;在完成该传送之后将对应于该第二图像的一第二预定值写入该第一内存单元;以及发送一第一及一第二翻转命令,用于翻转该主缓冲器中的该第一及该第二图像,以便在检查该第一内存单元中对应于该等图像的值之后显示,其中,该第一及该第二预定值表示欲队列进行显示的第一及第二图像的一序列。
2.如权利要求
1所述的方法,其中,该发送进一步包括如下之一如果对应于该图像的值未在该第一内存单元中,则取消发送该翻转命令;发送一条内存对映输入/输出翻转命令。
3.如权利要求
1所述的方法,其进一步包括如下步骤的群组之一以一预定的序列发送一或多条转译命令至该主图形处理单元及该从图形处理单元;在图像翻转完成之后,将对应于翻转图像的该主缓冲器的一第三部分的预定值写入一第二内存单元,以及,在将一图像转译或传送至该主缓冲器的该第三部分之前,检查该第二内存单元中的值。
4.如权利要求
1所述的方法,其中,该传送进一步包括发送一位区块传送命令,以传送该第二图像。
5.一种用于在具有至少一第一及一第二图形处理单元的计算机系统中使图形处理事件同步的方法,该方法包括藉由该第一图形处理单元转译一第一图像以存储在一主要缓冲器中;藉由该第二图形处理单元转译一第二图像以存储在一次要缓冲器中;将该第二图像传送到该主要缓冲器以在该第一图像后队列;在完成该传送之后将对应于该第二图像的一预定值写入一第一事件内存单元;以及显示该第一图像之后,一旦确认该预定值位于该第一事件内存单元中,即发送翻转命令,以翻转该主要缓冲器中队列的该第二图像。
6.如权利要求
5所述的方法,其进一步包括如下步骤的群组之一将对应于该第一图像的一预定值写入该第一事件内存单元;在图像翻转完成之后,将对应于该翻转图像的该主要缓冲器中的一第一位置的一预定值写入一第二事件内存单元,以及,在将一图像转译或传送至该主要缓冲器中的第一位置之前,检查该第二事件内存单元中的值。
7.如权利要求
5所述的方法,其中,该发送翻转命令进一步包括发送一条内存对映输入/输出翻转命令。
8.一种具有图形处理事件同步的计算机系统,该系统包括一或多个图形处理单元;一图像缓冲器,用于供每个图形处理单元存储所转译的图像,其中,一主缓冲器耦合至显示接口;一或多个指定的内存,用于记录表示图形处理事件的值;以及至少一中央处理单元,用于检查指定内存中的值并发送对应于与该等值的命令。
9.如权利要求
8所述的系统,其中,该等指定的内存进一步包括一第一内存,用于记录表示翻转事件的该值。
10.如权利要求
9所述的系统,其中,该等指定的内存进一步包括一第二内存,用于记录表示该主缓冲器中的图像缓冲事件的值。
11.如权利要求
8所述的系统,其进一步包括一主存储器。
12.如权利要求
8所述的系统,其进一步包括一总线,用于将图像从一图像缓冲器传送到另一图像缓冲器。
13.如权利要求
12所述的系统,其中,该总线将图像从其它缓冲器传送到该主缓冲器。
专利摘要
本发明揭露了一种用于使多重图形处理单元(GPU)计算机系统中的图形处理事件同步的方法及系统。主GPU将第一图像转译到与显示接口关联的主缓冲器的第一部分中,然后将对应于第一图像的第一预定值写入第一内存单元。从GPU将第二图像转译到从缓冲器中,然后将第二图像传送到主缓冲器的第二部分,并将对应于第二图像的第二预定值写入第一内存单元。上述第一及第二预定值表示所转译图像的队列序列。主GPU翻转第一图像并仅在检查第一内存单元中的第一预定值之后显示,并且翻转第二图像并仅在检查第一内存单元中的第二预定值之后显示。
文档编号G06T1/60GK1991903SQ200610135590
公开日2007年7月4日 申请日期2006年10月18日
发明者张国峰, 赵璇 申请人:威盛电子股份有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1