CN101034469A - 图形处理单元管线同步及控制系统和方法 - Google Patents

图形处理单元管线同步及控制系统和方法 Download PDF

Info

Publication number
CN101034469A
CN101034469A CN 200610137496 CN200610137496A CN101034469A CN 101034469 A CN101034469 A CN 101034469A CN 200610137496 CN200610137496 CN 200610137496 CN 200610137496 A CN200610137496 A CN 200610137496A CN 101034469 A CN101034469 A CN 101034469A
Authority
CN
China
Prior art keywords
data
input
drawing pipeline
token
pipeline assembly
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.)
Granted
Application number
CN 200610137496
Other languages
English (en)
Other versions
CN101034469B (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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101034469A publication Critical patent/CN101034469A/zh
Application granted granted Critical
Publication of CN101034469B publication Critical patent/CN101034469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

一种根据信号及符记用以同步进行数据处理的绘图管线具有至少四种组件:第一组件具有一输入端及一输出端,当从该输入端接收到符记、发生内部事件或从一输入路径上接收到一信号时,该第一组件将输出符记或接线信号;第二组件具有一输入端及多个输出端,当从该输入端接收到符记、发生内部事件或从一输入路径上接收到信号时,该第二组件通过一输出端输出符记或接线信号;第三组件具有多个输入端及一输出端,当从一输入端接收到符记、发生内部事件或从一输入路径接收到信号时,该第三组件通过该输出端输出符记或接线信号;第四组件具有多个输入端及多个输出端,并且兼具有第三及第四组件的功能。

Description

图形处理单元管线同步及控制系统和方法
技术领域
本发明涉及绘图处理,特别是涉及一种同步及控制绘图管线的方法及装置。
背景技术
目前的计算机应用程序常常运用大量的绘图,比以往更需高程度的绘图处理能力,诸如游戏等应用程序通常涉及复杂且非常精细的绘图,故需要大量而不间断的计算,为了满足消费者的需求,提高游戏等计算机应用程序的绘图能力,计算机结构亦随的改变。
有鉴于程序设计师对娱乐和多媒体应用程序(例如高画质视讯及最新3D游戏)的要求越来越严苛,随着计算机(尤其是个人计算机)必须要能应付此种需求,系统频宽亦开始受到重视,因此,已出现若干方法以分配频宽给这种高度需求频宽的应用程序,以及提供将来产生的应用程序更余裕的频宽空间。
基于这些理由,目前的计算机系统往往包含多个处理器,举例来说,除了中央处理单元(central processing unit,CPU)等主处理器之外,还包含诸如图形处理单元(graphics processing unit,GPU)等副处理器,依其设计用以进行特定的处理工作,于进行这种工作的过程中,图形处理单元可让中央处理单元处理其它工作。于某些情况下,图形处理单元等副处理器可连同中央处理单元(可为微处理器)整合于计算机系统的主机板上,不过,本领域的技术人员可明白,图形处理单元和/或其它副处理装置可设置于独立的适配卡上,再与计算机系统电连接,例如图形处理单元就设置于显示卡上。
副处理器(例如图形处理单元)通常可存取扩充存储器,例如视讯存储器,以进行其处理工作,副处理器通常设计专门用来进行特定的工作,如图形处理单元就专门负责执行三维绘图运算,以支持需要大量绘图的应用程序,虽然现有的的计算机系统及副处理器在执行单一需大量绘图的应用程序时可能没什么问题,但是当尝试同时执行多个需大量绘图的应用程序时,这种计算机系统及副处理器即可能遇到问题。
我们常看到的是,一般副处理器以一种缺乏效率的方式安排其处理工作,于一些操作系统中,图形处理单元会依照所接收指令的顺序来执行各操作,以此种方式执行多个工作。
此方式有一个问题,当具有不同优先级的应用程序欲存取相同资源时,此方式无法进行妥善的安排,目前控制图形处理单元副处理器资源的第一应用程序必须释出其控制权,这样其它的应用程序方能进行存取,倘若第一应用程序未释出其控制权给其它等待中的应用程序,则图形处理单元即被绑定,当图形处理单元完成处理有关第一应用程序的计算时,等待中的应用程序已被堵住,如前所述,如果仅执行单一需大量绘图的应用程序,这种堵住的情况可能还不严重,然而,当多个应用程序尝试同时使用图形处理单元或副处理器时,这种绑住图形处理单元或其它副处理器资源的问题就变得更明显。
目前提出了一种利用可中断的中央处理单元来进行工作切换的概念,以分配处理程序,尤其是,最近的中央处理单元已利用环境(context)储存/恢复(restore)的概念,以储存相关缓存器的内容以及程序计数器数据,以恢复被中断的处理工作。虽然使用复杂排程的中央处理单元的分配处理问题已获得解决,但尚未有效率地解决副处理器的排程问题。
导致此种情况的原因在于副处理器(例如图形处理单元)通常被视为一种代替中央处理单元进行计算繁重及耗时操作的资源,让中央处理单元得以处理其它功能。已知绘图操作包含大量的计算,要有相当的处理能力才能进行,随着绘图应用程序的复杂度提高,图形处理单元变得更进步,方可处理繁重的计算及描绘动作。
然而,当要重新命名架构缓存器、或于处理管线的不同阶段中同时执行数十个指令,具有平行功能单元和非循序(out-of-order)执行的超纯量(superscalar)及并行指令代码(explicitly parallel instruction code,EPIC)型中央处理单元的复杂架构并无法精确中断中央处理单元,为了要实现精确中断的功能,超纯量中央处理单元中设置了重排缓冲区,并于处理管线中新增「命令提交(或撤回)」阶段。
由于目前的图形处理单元涵括连接于多重先进先出(first-in-first-out,FIFO)缓冲器的可编程和固定功能单元,其结构也就变得愈来愈复杂,执行每一个图形处理单元命令可能要花上数百至数千周期,相较于中央处理单元,用于今日绘图处理应用程序中的图形处理单元更加仰赖管线技术,因此,大部份图形处理单元系设计成在任何时候均能处理大量数据,这使得尝试分配图形处理单元处理的工作更加复杂,因为图形处理单元不具有适当的机构以于储存或恢复操作中处理大量数据。
为处理大量数据而发展的现代图形处理单元架构具有复杂的形式,涉及新的机制以同步数据串流处理中的管线单元,除主要的固定功能绘图管线单元外,另外应用的可编程平行处理单元涉及维持图形处理单元管线于不同阶段中接收及更新的像素数据的顺序。再者,于图形处理单元的绘图管线中同时保持具有可中断性的多重环境亦涉及这些中断环境的再同步化,务期效能损失能减到最低,并能平顺地于中断和恢复绘图环境间切换。然而,目前的图形处理单元架构无法妥善地处理环境的同步化,反而造成管线的完全清空(flush),因而使得操作效率低下及降低绘图能力。
再者,当图形处理单元描绘的表面将成为下一流程的来源表面时,这样的多流程描绘(multi-pass rendering)亦牵涉到同步动作,以避免当第二流程开始存取共享表面时所产生的写后读(read after write,RAW)数据问题,再者,当图形处理单元根据中央处理单元执行绪(thread)内的事件及目前图形处理单元环境开始和/或恢复某一环境执行时,中央处理单元工作执行的同步化亦为目前图形处理单元处理实务的一重要议题,然而,目前的中央处理单元却无法适时地传递及响应此种变化,其发展尚无法跟上绘图应用程序的需求。
因此,迄今仍有需要克服以上所述的这种缺陷和缺点。
发明内容
一种绘图管线,可用以根据接线信号及事件符记(token)使数据处理同步,因为电路的延迟,接线信号异步到达指定的管线组件,于先进先出装置内的中间数据缓冲可改变符记到达指定管线组件的延迟,而与在相同路径数据项的其它数据同步移动。此种绘图管线可包含具有一输入端及一输出端的第一组件,对应于该第一组件从该输入端接收到符记、该第一组件内部发生一预定事件、或从该第一组件的一输入路径接收到一预定信号,该第一组件将输出符记或接线信号。
绘图管线的第二组件可具有一输入端及多个输出端,此第二组件可通过至少一输出端输出符记或接线信号,甚至可通过全部的输出端输出相同的符记,当第二组件于其输入端上接收到某些符记、该第二组件内部发生一预定事件、或该第二组件从一输入路径接收到一预定信号时,该第二组件可因此输出符记或接线信号。
绘图管线亦可包含具有多个输入端及一输出端的第三组件,当第三组件从一个输入端接收到选择符记、第三组件内部发生一预定事件、或该第三组件从一输入路径接收到一预定信号时,该第三组件可因此通过输出端输出符记或接线信号。再者,当接收到指定符记指明欲处理的数据位于其它输入端上,第三组件可于多个输入端间切换,藉以维持管线的同步。
绘图管线的第四组件可具有多个输入端及多个输出端,此第四种组件可具有前述三种组件的所有功能,因此,当第四组件从一个输入端接收到特定符记、该第四组件内部发生一预定事件、或该第四组件从一输入路径上接收到一预定信号时,该第四组件可因此通过至少一输出端输出符记或接线信号。
前述四种组件所接收及输出的符记或接线信号可为事件起始符记/信号、事件结束符记/信号及数据相关符记/信号,因此,对应于从个别输入路径接收到这种符记或信号,此四种组件可采取某些行动及/或亦可产生单一或复制的符记给组件的输出端,或产生信号给输出信号路径,以同步绘图管线中的其它组件。
一绘图管线组件具有一数据输入端及一数据输出端,一种适用于绘图管线的数据同步方法包含下列步骤:自数据输入端接收一个或多个输入符记;从绘图管线组件的一输入信号路径接收一笔或多笔输入信号;通过数据输出端输出一个或多个同步符记至绘图管线中的一个或多个其它组件,其中该一个或多个同步符记系与该一个或多个输入符记、该一笔或多笔输入信号、或绘图管线组件的内部事件有关;以及通过绘图管线组件的一输出信号路径输出一笔或多笔同步信号至绘图管线中的一个或多个其它组件,其中该一笔或多笔同步信号系对应于该一个或多个输入符记、该一笔或多笔输入信号、或该内部事件。
叉型绘图管线组件具有一数据输入端及多个数据输出端,一种适用于绘图管线的数据同步方法包含下列步骤:从数据输入端接收一个或多个输入符记;从叉型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;通过多个数据输出端输出一个或多个同步符记至绘图管线中的一个或多个其它组件,其中该一个或多个同步符记与该一个或多个输入符记、该一笔或多笔输入信号、或叉型绘图管线组件的内部事件有关;以及通过叉型绘图管线组件的一输出信号路径输出一笔或多笔同步信号至绘图管线中的一个或多个其它组件,其中该一笔或多笔同步信号对应于该一个或多个输入符记、该一个或多个输入信号、或该内部事件。
结合型绘图管线组件具有多个数据输入端及一数据输出端,一种适用于绘图管线的数据同步方法包含下列步骤:从一数据输入端接收一个或多个输入符记;从结合型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;以及通过数据输出端输出一个或多个同步符记至该绘图管线的一个或多个其它组件,其中该一个或多个同步符记与该一个或多个输入符记、该一笔或多笔输入信号、或该结合型绘图管线组件的一内部事件有关。
结合/叉型绘图管线组件具有多个数据输入端及多个数据输出端,一种适用于绘图管线的数据同步方法包含下列步骤:从该多个数据输入端的一数据输入端接收一个或多个输入符记;从该结合/叉型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;以及通过该多个数据输出端输出一个或多个同步符记至该结合/叉型绘图管线的一个或多个其它组件,其中该一个或多个同步符记与该一个或多个输入符记、该一笔或多笔输入信号、或该结合/叉型绘图管线组件的一内部事件有关。
一种绘图管线系统包含一处理组件,该处理组件具有一数据输入端、一数据输出端、一接线信号输入路径及一接线信号输出路径,该处理组件用以从该数据输入端接收至少一事件起始符记及一事件结束符记,以及通过该数据输出端输出该事件起始符记及该事件结束符记,该处理组件同时用以从该接线信号输入路径接收一事件起始信号及一事件结束信号中的至少一信号,以及通过该接线信号输出路径输出该至少一信号;该处理组件亦具有一同步背压输入端,用以与该绘图管线中的次一处理组件信号连接;该处理组件还具有一同步背压输出端,用以与该绘图管线中的前一处理组件信号连接。
附图说明
图1为具有一计算机的一计算机系统的示意图。
图2为可见于图1所示图形处理单元中的典型绘图管线示意图。
图3为图形处理单元绘图管线的示意图,其可存在于图1所示的图形处理单元中,并且可包含固定功能与可编程单元,这种单元通过传递不同数据结构的多重先进先出装置而彼此连接。
图4为一种可涵括于图3所示绘图管线中的标准型组件的示意图。
图5为叉型绘图处理组件的示意图,其具有一输入端及多个输出路径,以连接图3所示绘图管线内的其它组件。
图6为可配置于图3所示绘图管线内的标准型及叉型处理单元的处理流示意图。
图7为可用于图3所示绘图管线中的结合型组件示意图,具有两个数据输入端及一个数据输出端。
图8为结合/叉型单元的示意图,可构成图3所示绘图管线中的另一种处理组件。
图9为图7的结合型绘图处理组件及图8的结合/叉型绘图处理组件的状态机器的流程图。
图10为图3所示绘图管线中的命令串流处理器示意图,可具有如图5所示的叉型组件架构。
图11为图3所示绘图管线的TSU-ASU组件示意图,可具有如图5所示的叉型架构。
图12为图3所示Z预测单元的示意图,可具有如图8所示的结合/叉型单元架构。
附图符号说明
计算机系统10            计算机12
处理单元16              系统存储器18
系统总线21              只读存储器24
随机存取存储器26        基本输出入系统27
操作系统29              应用程序31
其它程序模块33          程序数据35
硬盘机41                磁盘驱动器51
磁盘52                  光驱55
光盘片56                    使用者输入接口60
指针装置61                  键盘62
网络接口70                  局域网络71
调制解调器72                广域网络73
远端计算机80                存储器储存装置81
图形接口8                   图形处理单元84
远端应用程序85              视讯存储器86
视讯接口90                  显示器91
输出外围接口95              打印机96
扬声器97                    绘图管线100、110
命令及数据解析器114
事件接线115
绘图管线组件120、140、190、222
数据输入端121、223、230、327、329
数据输出端122、232、234、331、332
符记125、134、145、156、162、192、198、212
先进先出装置126、135、146、154、161、194、202、214、312、316、318、320
路径127、129、132、136、148、151、152、158、203、204、206、208、210、246、281、304、306、308、310
绘图管线单元130              处理流166
流程图250                    输入串流283
状态数据组286                像素数据组288
三维数据和状态组290          二维数据和状态组292
管线图300                    几何及属性设定单元302
Z预测单元325                 超图块先进先出装置326
Z先进先出装置334             T先进先出装置336
三角形结束数据符记338a、338b、338c
具体实施方式
图1为一例示非限定的计算机系统10的示意图,其包含一计算机12,于此非限制定实施例中,计算机12的组件可包含一处理单元16、一系统存储器18以及一系统总线21,该系统总线21将诸如系统存储器18等不同的系统组件连接于处理单元16,系统总线21可为本领域技术人员所知晓的任一种总线结构,如存储器总线或存储器控制器、外围装置总线以及局部总线,就一非限定实施例而言,这种架构可包含外围组件互连(peripheral componentinterconnect,PCI)总线、绘图加速端口(accelerated graphics port,AGP)及/或快速外围组件互连(PCI Express)总线。
计算机12可包含多种计算机可读取的介质,计算机可读取的介质可为任一种已知的计算机可存取介质,并且包含易失性和非易失性存储器,可为可移除或不可移除的存储器。
系统存储器18可为易失性和/或非易失性存储器形式的计算机储存介质,例如只读存储器(read only memory,ROM)24及随机存取存储器(randomaccess memory,RAM)26,只读存储器24中可储存有基本输出入系统(basicinput/output system,BIOS)27,于一非限定实施例中,随机存取存储器26可涵括操作系统29、应用程序31、其它程序模块33及程序数据35。
计算机12亦包含其它可移除/不可移除的易失性/非易失性计算机储存介质,于一非限定实施例中,硬盘机41可擦写不可移除的非易失性磁性介质,磁盘驱动器51可擦写可移除的非易失性磁盘52,光驱55则可擦写光盘片56。
通过如键盘62及指针装置61等输入装置,使用者可输入命令及信息给计算机12,所述输入装置通过使用者输入接口60及系统总线21而与处理单元16连接,然而,本领域技术人员应可理解,其它接口及总线结构亦可用于连接这种装置与计算机12,例如并行端口、游戏端口、通用序列总线(universal serial bus,USB)。
一种或多种图形处理单元(graphics processing unit,GPU)84可通过系统总线21与图形接口82信号连接,于一非限定实施例中,图形处理单元84可包含芯片上存储器储存装置,例如缓存器储存装置及高速缓存,有必要时,图形处理单元84亦可与视讯存储器86信号连接。
显示器91或其它类型的显示装置亦可通过视讯接口90与系统总线21连接,视讯接口90亦可与视讯存储器86信号连接,除显示器91外,计算机系统10亦可包含其它外围输出装置,例如打印机96及扬声器97,均可通过输出外围接口95达成连接的目的。
利用逻辑连接一部或多部远端计算机80,计算机12可于网络或分布式环境中操作,远端计算机80可为个人计算机、服务器、路由器、网络计算机、端末装置或其它常见的网络节点,虽然图1中仅显示存储器储存装置81及远端应用程序85,但远端计算机80亦可包含许多上述组件,于图1中所示的逻辑联机包含局域网络(local area network,LAN)71及广域网络(widearea network,WAN)73,但本领域技术人员应该明白,亦可包含其它种类的网络/总线。
于图1的非限定实施例中,远端计算机80可通过局域网络71及网络接口70而连接至计算机12,同样地,亦可使用调制解调器72及使用者输入接口60通过广域网络73将计算机12连接至远端计算机80。
如前所述,于另一环境处理或操作期间,图形处理单元84可用以切换处理程序或环境,在此情形下,图形处理单元84用以储存中断的环境,以及引发处理另一环境,这个环境可能是先前中断及储存的环境。
图形处理单元84可用以支持属于相同环境的多重图形处理单元程序(命令)的循序执行,然而,如前所述,为了使图形处理单元84于处理单元16前后的执行同步,可使用多阶或同步化程序。
全阶存储器数据存取系统同步化可为第一种高阶同步处理单元16的应用程序或驱动程序的方法,其中图形处理单元环境由图形处理单元84所执行。于第二阶或中阶同步中,存储器数据存取同步化可出现于由图形处理单元84执行的两个图形处理单元环境之间,因此,如前所述,二个环境间的同步化的发生点可恰为环境中断的场合,以恢复或引发第二环境。于第三阶同步中,图形处理单元84中的管线设计成管线中的各单元或组件可以被同步,此构成较低阶的内部同步。因此,可使用此三阶同步方法,以使处理单元16可于图形处理单元84前后的执行同步,进而控制复杂及循环的处理操作。
图2为可见于图形处理单元84中的典型绘图管线100的示意图,虽然没有分别描述绘图管线100的各组件,但本领域技术人员应该明白其如何操作和交互作用,以处理绘图信息。
然而,较旧的同步化机制可能无法比得上较新的多执行绪中央处理单元的速度,多执行绪中央处理单元支持同时执行多个绘图工作,换句话说,图1的绘图管线100无法如同多执行绪中央处理单元尝试实质上同时处理多个绘图工作或环境,因而造成明显的效能降低。
造成此种情形的原因之一,即绘图管线100是配置成使管线100的不同组件可与相邻组件同步,此概念为背压同步(back pressure synchronization),会暂停每一对应组件之间的管线。此同步方法可支持多重环境的执行,但涉及完全管线清空,明显耗时,于此管线中进行环境切换将比预期的慢,会大大地降低绘图管线100的效能。
图3为图形处理单元绘图管线110的示意图,其可存在于图1的图形处理单元中,并且经由支持不同数据结构的多重先进先出装置而连接数个固定功能单元与可编程单元的组合,因为多类型区块具有不只一个输入或一个输出,此与图2的图形处理单元绘图管线100相反,故图形处理单元绘图管线110的同步就很重要,因此,为了尝试使图3的图形处理单元绘图管线110同步,应认可不同类型的数据流,以维持像素描绘的顺序,以及同步现代图形处理单元中的二维、三维、视讯及其它信道间的时序。
联合的可程序平行处理单元可用于图形处理单元绘图管线110的若干阶段中,并且可能产生乱序结果,这些结果应重新排序且与其它数据流同步,以进行进一步绘图相关处理。于图形处理单元绘图管线110中的命令/状态与数据处理的同步可利用插入特殊的标示符记(markup token),供图形处理单元绘图管线110中的各单元辨识,且亦可用于如前述的低阶同步化技术中的数据/命令流。
于一非限定实施例中,图3的图形处理单元绘图管线110可使用至少二种标示符记,由图形处理单元绘图管线110的不同的处理组件将其插入数据/命令流中。第一种标示符记可为数据型符记,可用以表示任一种数据项的结束,于一非限定实施例中,数据型符记可为「状态区块结束」、「基本区块结束」、「三维命令区块结束」或「二维命令区块结束」等符记,当通过图3所示图形处理单元绘图管线110的项目含有不确定数量的数据时,这种符记是很有用的。
第二种标示符记可为事件型符记,可用以表示图形处理单元绘图管线110的一处理组件中所发生的特殊事件,事件型符记包含事件起始符记及事件结束符记,例如「环境结束」及「直接存储器存取(direct memory access,DMA)结束」等符记,同样地,「中断结束」也是一种事件结束符记。
于一实施例中,图形处理单元绘图管线110中的处理区块可经过配置,使得得以插入数据型符记及事件型符记,以同步数据、命令及状态处理流,借着将符记插入图形处理单元绘图管线110,不同的处理组件可提供所需的低阶同步机制。
另一种可利用的同步工具为事件信号,于一非限定实施例中,事件信号是由图3的事件接线115进行传递,对应于任一条件、硬线或事件而于图形处理单元绘图管线110的任一管线处理区块中产生事件信号,此信号可传送至图形处理单元绘图管线110中的一个或多个其它处理区块,借着将事件接线115连接至一个或多个其它处理区块,事件接线115上的事件信号可改变处理顺序,或可使图形处理单元绘图管线中某些接收到事件接线信号的特殊组件抛弃某些数据和命令。
与所述事件型符记相似,于事件接线115上传递的事件信号可以是成对的信号配置,例如事件起始信号及事件结束信号,再者,事件信号可与事件型符记以下列组合方式配对,以进行同步控制:
1.事件起始信号/事件结束符记
2.事件起始符记/事件结束信号
3.事件起始信号/事件结束信号
4.事件起始符记/事件结束符记
事件信号与事件符记的组合会随着管线同步化的架构改变,用于不同区块及绘图管线110的输入事件符记及信号可在给定的情况下达成预期的结果,因此,为了引发一事件,一区块可能从绘图管线110中的前一区块获得符记,例如可从配置于一对区块间的先进先出缓冲器获得符记,于一非限定实施例中,当接收到符记时,可引发反馈回路,以清空先进先出缓冲器;另一种事件状况的开始可包含事件信号,例如图3所示事件接线115所传递的信号,通过事件接线115传递的事件信号可来自绘图管线110的任一特殊处理组件,也可涉及局部组件事件。
为了结束一事件,可从前一区块接收输入符记,该符记代表某一动作的结束,例如清空先进先出缓冲器,以供当前的区块使用。信号接线亦可用作事件结束辨识,以结束某一操作,如可使用事件接线115以将一信号从一区块(例如绘图管线110中的命令串流处理器(command stream processor,CSP)114)传递至一处理区块,以告知指定的活动或局部区块事件已结束。
事件符记及事件信号亦可用于绘图管线110的区块内的输出操作,为了引发事件,第一区块输出一符记给绘图管线中的其它区块以供操作,例如前述的反馈回路。同样地,一区块可送出一事件信号至绘图管线110中的任一其它区块(图3),以产生预期的结果。
为了结束事件,输出符记亦可从绘图管线1 10中的任一组件传递至指定组件,例如在绘图管线110中的次一组件,于一非限定实施例中,经由清除已停止环境数据,输出符记可使得接收组件切换环境,如此,符记从绘图管线110中的一组件输出至另一组件,使得另一组件抛弃存储器中的数据,好准备处理新环境。再者,任一组件可使用事件信号通知其它组件,如图3所示,以使事件结束。
应注意,于图3的绘图管线110内,为了经由符记、事件信号及背压同步信号(与图2所示者类似)实现同步,管线的组件必须要能控制这些通讯类型,因此,绘图管线110可包含对应数目的组件类型,用以接收事件符记、事件信号、背压同步信号,并将其输出此至其它组件。
图4为一种可涵括于图3所示绘图管线110中的标准型(regular-type)绘图管线单元(或区块)的示意图,标准型绘图管线组件120具有一数据输入端121及一数据输出端122,并且亦可通过路径129及136传递背压同步信号或暂停(stall)信号,此为本领域技术人员所知。
图4的绘图管线组件120可从三个来源接收符记或事件信号(或另一预定事件)。就第一种来源而言,另一绘图管线组件(未显示)将符记125(如前述,可为事件或数据符记)放入先进先出装置126中,以供绘图管线120执行。因此,当绘图管线组件120处理先进先出装置126的内容时,终究会接收到事件或数据符记125,表示要引发或开始对应的事件,如前所述,于一非限定实施例中,事件或数据符记125可以使得绘图管线组件120引发一抛弃顺序,以清空先进先出装置126的内容,以供制备欲接续执行的新环境,此为一种绘图管线110的组件同步方式。
就第二种输入形式而言,绘图管线120可通过如图4所示的路径127从另一组件接收事件信号,如前所述,从路径127所接收的事件信号可引发或完成某些预定的操作。
第三,绘图管线组件120可从路径129(亦可视为背压同步接线)上接收来自绘图管线单元130的背压同步信号,绘图管线单元130可为接在图3所示绘图管线110后方的单元。绘图管线组件120具有同步背压输入端,用以与绘图管线中的次一处理单元连接,于路径129上接收此信号可能造成两组件对应于一特殊事件而同步化,绘图管线组件120亦具有同步背压输出端,用以连接绘图管线中的前一处理单元。
图4的绘图管线组件120亦可用以输出接收到的事件或数据符记,以使某些事件于图3的绘图管线110内发生,如前所述,绘图管线组件120可用以将事件或数据符记放入图3所示绘图管线110之后的组件的先进先出装置135中,因此,如前面有关先进先出装置126的描述,当绘图管线组件120将事件或数据符记134放入先进先出装置135内,可使得接下来的图形处理组件(例如绘图处理组件130或绘图管线单元)在接收到事件符记134后,跟着进行一系列的动作。
绘图管线组件120亦可用以通过路径132(可视为接线)输出如以上讨论的事件信号(或事件接线信号)给图3所示绘图管线110中与路径132连接的任一区块,因此,对应于在路径132上传送的一事件信号,绘图管线组件120可引发或终止另一组件内的处理程序。
因此,如前所述,此种标准型绘图管线组件120可为图3所示绘图管线110内的一种处理类型,如前所述,此标准型单元120可用以接收以及输出事件符记及/或信号,以同步化绘图管线110内至少此种类型的单元。
虽然图4的标准型绘图管线单元120仅具有一输出端,但绘图管线110内的处理区块其实可具有两个或更多的输出端,因此,可建立一种叉型区块,其中数据、命令及状态可于多个输出路径中择一传送。
图5为叉型(fork-type)绘图处理组件140的示意图,其具有一输入端及多个输出路径,可连接至图3所示绘图管线110内的其它组件,除了如图4的标准型单元所述的背压及抛弃同步外,叉型绘图处理组件140可用以将符记插入于输出数据流项目之间,以提供区隔或分割功能。
因此,于此非限定实施例中的绘图管线组件140可从先进先出装置146接收事件或数据符记145,本领域技术人员应该明白,该先进先出装置146可配置于前一绘图管线处理组件与绘图管线组件140之间,当绘图管线组件140接收到事件或数据符记145时,可引发或终止对应的同步导向操作,于一非限定实施例中,倘若事件或数据符记145引发一抛弃程序,则绘图管线组件140会抛弃先进先出装置146的内容,直到接收到结束符记为止,前一组件(未显示于图5中)接着会写入其它指令或项目于该先进先出装置146中,以取代该结束符记。
同样地,绘图管线组件140可用以通过事件接线148从另一处理单元接收事件信号,因此,如前所述,当接收到事件信号时,绘图管线单元140会引发抛弃先进先出装置146内数据的操作,此仅为一非限定实施例,当接收如前所述的事件或数据符记时,绘图管线组件140会进行若干同步导向动作。
如前所述,图5的绘图管线组件140亦可用以输出符记及/或信号,事件信号可依照前述的类似方式,沿着路径151传递至连接于路径151并属于绘图管线的任一区块。
然而,绘图管线组件140可用以将符记插入于两个或多个位于绘图管线组件140之后的处理区块的数据处理路径,于第一非限定实施例中,通过连接后续绘图处理组件的数据路径152,绘图管线组件140可将事件或数据符记156插入先进先出装置154中,以引发某一程序或操作,因此,此事件或数据符记156可接着项目C1和C2之后输出,故当其到达后续绘图管线组件时,事件经识别后即进行对应的步骤,绘图管线组件140接着可放置另一符记,表示事件已结束和/或恢复先前操作。
除了利用路径152传递事件或数据符记156给先进先出装置154,叉型绘图处理组件140亦可通过路径158传递事件或数据符记162,路径158也可连接另一绘图管线组件,依照类似方式,沿着与路径152分开的路径,先进先出装置161可连接后续的绘图管线组件,所以,绘图管线组件140可通过至少两个不同的数据路径传递符记,将符记162插入先进先出装置161将引发或结束对应于该符记的同步导向动作,如此可于图3所示绘图管线110中进行程序化,依此方式,本领域技术人员应该明白,叉型单元140可通过分支的输出路径152和158传递符记。
本领域技术人员亦可了解,叉型绘图处理组件140可具有超过两个输出端,然而,不论有多少的输出端,此类型组件根据前一输出端所接收的数据和信号,将符记及数据送到适当的输出端。
图6是将标准型处理单元120及叉型处理单元140配置于图3所示绘图管线110内的处理流166的示意图,标准型处理单元120及叉型处理单元140同样具有一数据输入端,使得对应于标准型和/或叉型区块的绘图管线组件可执行一固定程序,处理及执行从该输入端接收到的数据和/或命令。
然而,当外部事件开始时,当接收到信号或符记时,流程从步骤168移至170,于一非限定实施例中,此步骤可包含发出事件起始符记或对应的信号至其它区块,当绘图管线单元收到此外部起始信号和/或符记时,便可移至步骤172,引发另一处理模式和/或抛弃顺序(如前所述)。之后,于步骤174中,处理流接收到一事件结束信号或符记,使得绘图管线组件依照与所述发出事件起始符记类似的方式发出一事件结束符记或信号给任一其它组件,之后,流程回到步骤168,恢复正常处理操作。
绘图管线组件亦可历经一内部区块事件,以发出一信号、事件或数据符记给图3所述绘图管线110内的其它绘图管线组件,因此,于步骤178中,由于一内部区块事件,绘图管线组件可发出一事件起始信号或符记,之后于步骤182中,可跟着进行一内部事件流程或程序,使得发出事件起始符记和/或信号的绘图管线组件根据内部区块事件执行操作。
当完成与内部区块事件有关的处理时,绘图管线组件120或140可移至步骤184,并且发出一事件结束信号或符记,告知图3所示绘图管线110内的适当接收组件处理已完成。
之后,流程回到步骤168,恢复正常处理操作,依此方式,标准型单元120及叉型单元140可对应于所接收到的任一输入信号和/或符记、或由区块本身对应于内部事件所产生的输入信号和/或符记,通过预定的输出路径传递信号和/或符记。
图7为可用于图3所示绘图管线110中的结合型(join-type)组件的示意图,此组件具有两个数据输入端及一个数据输出端,与前述方式类似,绘图管线组件190可从先进先出装置194接收事件或数据符记192,事件或数据符记192可能由图3所示绘图管线110内的前一处理管线单元插入,当接收到通过路径166传递的事件或数据符记192时,可进行对应的同步导向动作,例如抛弃先进先出装置194的内容,直到接收到对应的结束事件符记(未显示,但已说明)为止。
同样地,绘图管线组件190可通过与绘图管线组件190连接的路径204从先进先出装置202接收事件或数据符记198,当通过路径204接收到事件或数据符记198时,绘图管线组件190会跟着抛弃先进先出装置202的内容,直到接收到对应的事件结束符记(亦说明如上)为止,或可进行其它预定的动作。
事件或数据符记192和/或198可切换绘图管线组件190的路径203或204,当绘图管线组件190必须从输入端接收数据以处理相关数据时,可能产生此种切换动作,因此,倘若绘图管线组件190从路径203接收到名称为「标示符记A」的特殊符记,则绘图管线组件190开始通过路径204从先进先出装置202接收数据和/或信息;同样地,倘若绘图管线组件190接收到另一种称为「标示符记B」的特殊符记198,则绘图管线组件190会依指示从路径203(于此非限定实施例中即表示其它输入端)接收数据。
类似以上所述,绘图管线组件190亦可从路径206接收事件信号,以及通过路径208输出事件信号,如前所述,事件信号及事件符记可合并用于输入数据抛弃操作,亦可使绘图管线组件190于不同输入端之间切换,以进行有效数据处理。
绘图管线组件190可用以将符记212插入先进先出装置214中,先进先出装置214可经由路径210连接于绘图管线组件190的输出端,此一插入输出符记(例如符记212)的方法与从事件输入端203或204接收到的符记或从事件接线206上接收的信号有关。再者,如前所述,绘图管线组件190亦可根据内部事件将符记212插入绘图管线组件190中。
最后,如同前述标准型处理单元120及叉型处理单元140,结合型绘图管线组件190亦可用于背压同步,如此,绘图管线组件190可于图3所示绘图管线110中进行同步动作。
图8为结合/叉型单元的示意图,其可构成图3所示绘图管线110中的另一种处理组件,于此非限定实施例中,绘图管线组件222具有两个或多个输入端及输出端,故可根据不同输入端及输出端接收和/或传递符记。
简单地说,接至绘图管线组件222的输入端223及230具有类似前述结合型绘图管线组件190的架构,换言之,如以上讨论,结合/叉型组件有关输入端的操作方式与前述结合型绘图管线组件190类似。
同样地,绘图管线组件222的输出端232及234具有类似前述有关叉型绘图处理组件140的架构,换言之,如以上讨论,结合/叉型组件有关输出端的操作方式与前述叉型绘图处理单元140类似。
图9为图7所示结合型绘图处理组件及图8所示结合/叉型绘图处理组件的例示状态机的流程图250,这种组件具有多个输入端和/或多个输出端,于图9的此非限定实施例250中,倘若绘图处理组件(190或222)具有三个输入端,于步骤252中,绘图管线组件可根据第一输入端维持主处理模式来执行数据或命令项目,当与输入1有关的批处理结束时,经由批次结束标示符记的通知,绘图管线单元可移至输入2,如步骤254所示,根据输入端的数据及/或命令引发处理程序,当此程序结束时,批次结束符记令绘图管线组件移至输入3,以此类推,重复执行这样的程序,绘图管线单元最终回到输入1的处理数据和/或命令的步骤。
然而,如前所述,当察觉到一内部事件时,绘图管线组件移至步骤258,并且发出一事件起始信号或符记,并从绘图管线组件的输出接在线送出此信号,例如从图7的路径208或图8的路径246,事件符记可通过数据输出路径从绘图管线组件输出至一个或多个后续的单元,当于步骤258中发出事件起始信号或符记时,绘图管线组件移至步骤260,并且开始进行有关内部事件的处理程序,当完成步骤260的处理程序,绘图管线组件移至步骤262,并且依照与以上所述相同的方式发出一事件结束信号或符记,告知绘图管线110内的其它组件程序已完成。
类似以上所述,图9所示绘图管线组件亦可接收一外部事件起始信号或符记,因此,此方法可使绘图管线组件从步骤252(或步骤254或256,取决于当接收信号或事件符记时正进行处理的输入步骤而定)移动,进而于步骤264中发出一事件起始符记至其它组件,发出事件符记之后,绘图管线组件会引发另一处理模式或数据抛弃操作,以删去连接于绘图管线的先进先出装置中的数据,步骤266中的处理可持续到程序被中断或完成为止,然后进行步骤268,绘图管线组件接收一事件结束符记或信号,因此,于步骤268中,绘图管线组件可发出一事件结束符记或信号至其它组件,表示对应该中断的外部事件已结束,之后,绘图管线单元可回到如前所述的主处理模式。
图9的步骤270及272表示绘图管线组件可因进入输入2或输入3的外部事件信号或符记而中断,其机制类似于输出1的说明,因此,当接收到此信号或符记时,可引发另一处理模式,同时输出符记至连接于结合型组件190和/或结合/叉型绘图处理组件222输出端的其它组件。
图10为图3所示绘图管线110中的命令及数据解析器114(亦可视为命令串流处理器(CSP))的示意图,于一非限定实施例中,其为一种叉型组件,例如图5所示叉型组件140的非限定实施例,于此非限定实施例中,命令及数据解析器114可根据发生的事件或数据,将事件符记或数据符记插入于路径281上所传递的输入串流283(于路径281上接收)中,输入串流283与图3所示绘图管线110中出现的数据及事件有关。
命令及数据解析器114可用以解码串流283中各命令的类型和数据长度等信息,因此可于对应及适当的输出串流中插入相关符记,于一非限定实施例中,当命令及数据解析器114接收到状态数据,例如状态数据1、状态数据2或状态数据3,命令及数据解析器114可发送此状态数据于状态数据组286中,如图10所示,之后将其传送至指定的管线组件。
同样地,命令及数据解析器114会输出串流283中的每一个像素(primitive)数据1-4至像素数据组288,然后送至对应数目的绘图管线组件进行处理;另外,命令及数据解析器114会将对应三维绘图组件的状态数据及三维命令传送至三维命令及状态组290,以进行之后的三维处理;最后,命令及数据解析器114可传送二维命令及对应的数据给二维数据和状态组292,供负责处理二维命令及数据的绘图管线单元进行处理。因此,依此方式,命令及数据解析器114系如叉型单元般的操作方式,传递对应于某些类型的处理操作的数据至其适当的组件。
当命令及数据解析器114察觉到输入串流283中的一事件,例如信号中断,便会将一个或多个事件型符记插入上述数据/命令组(286、288、290及292),于一非限定实施例中,「中断结束」符记、「直接存储器存取结束」符记及「环境结束」符记等符记例子可被传送至命令及数据解析器114的一个或多个输出路径。
图11为图3所示绘图管线110的三角形设定单元/属性设定单元(triangle setup unit/attribute setup unit,TSU-ASU)组件或单元的示意图300,其具有如图5所示的叉型架构,于此非限定实施例中,几何及属性设定单元302可具有与路径304连接的单一输入端及对应于路径306、308及310的三个输出端,每一个输出端会与图3所示绘图管线110中的其它组件连接,因此,当沿着输入路径304接收对应于先进先出装置312的数据时,几何及属性设定单元302会通过一输出端306、308或310分配命令和数据,因此,于此非限定实施例中,几何及属性设定单元302可通过路径306传送状态数据、事件及数据符记以及其它三角形信息至Z相关和命令/状态数据先进先出装置,此相当于图3的先进先出装置316。
几何及属性设定单元302的第二输出端308可连接于图3的属性先进先出装置318,此属性先进先出装置318可用以接收对应于三角形属性及命令/状态数据的属性数据、事件及数据符记以及状态数据。
最后,几何及属性设定单元302可通过输出端传送任一种三角形边缘/边界盒及命令/状态数据给先进先出装置320,以供进一步处理,因此,几何及属性设定单元302可传送通过路径304从先进先出装置312接收的状态及命令数据和/或三角形边缘信息,和/或其它可由几何及属性设定单元302处理的数据,再者,几何及属性设定单元302亦可输出一个或多个如图11所示的事件或数据符记给先进先出装置320。
图12为图3所示Z预测(preset)(ZL1)单元325的示意图,类似图8所示结合/叉型单元222,于此非限定实施例中,Z预测单元325可连接至图3所示ASU-ZL1先进先出装置316以及超图块(supertile,ST)先进先出装置326,以接收数据及/或信息,如前所述,先进先出装置316及326均可送出命令、状态数据以及事件及数据符记。
Z预测单元325可选择输入端327或329,以从分别连接于图3所示Z先进先出装置334及T先进先出装置336的输出端331及332输出数据,例如「环境结束」或「中断结束」等符记可位于先进先出装置316及326之内,通过输出端331及332送至对应的Z先进先出装置334及T先进先出装置336,因此,于一非限定实施例中,倘若Z预测单元325根据超图块先进先出装置326处理指令及命令并且接收到「三角形结束」数据符记338a,如图12所示,则Z预测单元325会通过输出端322传送「三角形结束」数据符记给T先进先出装置336中的位置338b处。
同样地,Z预测单元325亦可传递一「三角形结束」数据符记338c至Z先进先出装置334,藉此复制符记于Z预测单元325的双输出端中,依此方式,Z预测单元325通过其双输入端接收命令及数据,并且于进行适当的计算和操作之后,将其输出至一个或多个输出端331及332,故管线110中的其它组件会接收到同步命令和数据,以供处理。
如图12所示,接收例如「中断结束」及/或「环境结束」等事件符记可使Z预测单元325复制事件符记给每一输出端,同样地,由Z预测单元325接收例如「三角形结束」和/或「批次结束」等数据型符记亦可复制数据型符记给每一个输出端331及332,例如三角形结束符记338b及338c,因此,管线处理组件可以于两个或多个输入端及输出端间作用,以协调数据处理以及同步绘图管线110中的不同组件。
应强调的是,以上所述的具体例及非限定实施例仅为可能的施行范例,仅用以清楚说明本披露的原理,即便对上述具体例及非限定实施例施以变化和修饰,然皆不脱离所述的精神和范围。所有这种修饰及变化应涵括于本发明的范围内,受本发明的权利要求的保护。

Claims (37)

1.一种适用于绘图管线的数据同步方法,其包含下列步骤:
一绘图管线组件具有一数据输入端及一数据输出端,自该数据输入端接收一个或多个输入符记;
从该绘图管线组件的一输入信号路径接收一笔或多笔输入信号;
通过该数据输出端输出一个或多个同步符记至该绘图管线中的一个或多个其它组件,其中该一个或多个同步符记是与该一个或多个输入符记、该一笔或多笔输入信号、或该绘图管线组件的一内部事件有关;以及
通过该绘图管线组件的一输出信号路径输出一笔或多笔同步信号至该绘图管线中的一个或多个其它组件,其中该一笔或多笔同步信号系对应于该一个或多个输入符记、该一笔或多笔输入信号、或该内部事件。
2.如权利要求1所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该绘图管线组件清空与该绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
3.如权利要求1所述的数据同步方法,其中该一笔或多笔输入信号使该绘图管线组件清空与该绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
4.如权利要求1所述的数据同步方法,其中当该绘图管线组件接收到该一个或多个输入符记或该一笔或多笔输入信号的数据时,进行另一处理模式,并且当完成该另一处理模式时,输出该同步信号或该同步符记至一个或多个其它组件。
5.如权利要求1所述的数据同步方法,进一步包含以下步骤:
从该绘图管线中的次一组件接收一背压同步信号;
对应于接收该背压同步信号,进行一预定的动作;以及
对应于一预定事件,输出一背压同步信号至该绘图管线中的前一组件。
6.如权利要求1所述的数据同步方法,其中该同步符记置于不同的数据项类型之间,以区隔不同的数据项类型。
7.一种适用于绘图管线的数据同步方法,其包含下列步骤:
一叉型绘图管线组件具有一数据输入端及多个数据输出端,从该数据输入端接收一个或多个输入符记;
从该叉型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;
通过该多个数据输出端输出一个或多个同步符记至该绘图管线中的一个或多个其它组件,其中该一个或多个同步符记是与该一个或多个输入符记、该一笔或多笔输入信号、或该叉型绘图管线组件的一内部事件有关;以及
通过该叉型绘图管线组件的一输出信号路径输出一笔或多笔同步信号至该绘图管线中的一个或多个其它组件,其中该一笔或多笔同步信号对应于该一个或多个输入符记、该一个或多个输入信号、或该内部事件。
8.如权利要求7所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该叉型绘图管线组件清空与该叉型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
9.如权利要求7所述的数据同步方法,其中该一笔或多笔输入信号使该叉型绘图管线组件清空与该叉型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
10.如权利要求7所述的数据同步方法,其中该叉型绘图管线组件系根据从该数据输入端接收的不同数据项类型,而分配数据和符记给该多个输出端。
11.如权利要求7所述的数据同步方法,其中该叉型绘图管线组件系对应于一个或多个预定事件而输出一个或多个指定符记给所有数据输出端。
12.如权利要求7所述的数据同步方法,其中该预定事件为从该输入信号路径上接收一预定输入信号。
13.一种适用于绘图管线的数据同步方法,其包含下列步骤:
一结合型绘图管线组件具有多个数据输入端及一数据输出端,从该数据输入端接收一个或多个输入符记;
从该结合型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;以及
通过该数据输出端输出一个或多个同步符记至该绘图管线的一个或多个其它组件,其中该一个或多个同步符记系与该一个或多个输入符记、该一笔或多笔输入信号、或该结合型绘图管线组件的一内部事件有关。
14.如权利要求13所述的数据同步方法,进一步包含步骤:
从该结合型绘图管线组件的一输出信号路径输出一笔或多笔同步信号至该绘图管线的一个或多个其它组件,其中该一笔或多笔同步信号对应于该一个或多个输入符记、该一笔或多笔输入信号或该内部事件。
15.如权利要求13所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该结合型绘图管线组件清空与该结合型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
16.如权利要求13所述的数据同步方法,其中该一笔或多笔输入信号使该结合型绘图管线组件清空与该结合型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
17.如权利要求13所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该结合型绘图管线组件引发另一处理模式。
18.如权利要求13所述的数据同步方法,其中该一笔或多笔输入信号使该结合型绘图管线组件引发另一处理模式。
19.如权利要求13所述的数据同步方法,进一步包含步骤:
当该结合型绘图管线组件接收一指定符记时,将该多个输入端的一输入端切换至另一输入端,以从其接收信息。
20.如权利要求19所述的数据同步方法,其中该指定符记的配置使得该结合型绘图管线组件处理该另一输入端上的数据,该数据与该一输入端先前处理的数据有关。
21.如权利要求13所述的数据同步方法,其中该结合型绘图管线组件通过该数据输出端输出对应不同数据项的数据,其是由该结合型绘图管线组件所插入的区隔符记分开不同数据项。
22.一种适用于绘图管线的数据同步方法,其包含下列步骤:
一结合/叉型绘图管线组件具有多个数据输入端及多个数据输出端,从该多个数据输入端的一数据输入端接收一个或多个输入符记;
从该结合/叉型绘图管线组件的一输入信号路径接收一笔或多笔输入信号;以及
通过该多个数据输出端输出一个或多个同步符记至该结合/叉型绘图管线的一个或多个其它组件,其中该一个或多个同步符记是与该一个或多个输入符记、该一笔或多笔输入信号、或该结合/叉型绘图管线组件的一内部事件有关。
23.如权利要求22所述的数据同步方法,进一步包含步骤:
通过该结合/叉型绘图管线组件的一输出信号路径输出一笔或多笔同步信号至该绘图管线的一个或多个其它组件,其中该一笔或多笔同步信号对应于该一个或多个输入符记、该一笔或多笔输入信号、或该内部事件。
24.如权利要求22所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该结合/叉型绘图管线组件清空与该结合/叉型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
25.如权利要求22所述的数据同步方法,其中该一笔或多笔输入信号使该结合/叉型绘图管线组件清空与该结合/叉型绘图管线组件有关的一缓冲器的内容,直到接收到另一输入符记为止。
26.如权利要求22所述的数据同步方法,其中该一个或多个输入符记为一事件符记,使该结合/叉型绘图管线组件引发另一处理模式。
27.如权利要求22所述的数据同步方法,其中该一笔或多笔输入信号使该结合/叉型绘图管线组件引发另一处理模式。
28.如权利要求22所述的数据同步方法,进一步包含步骤:
当该结合/叉型绘图管线组件接收到一指定符记时,从该多个输入端的一输入端切换至另一输入端,以从其接收信息。
29.如权利要求28所述的数据同步方法,其中该指定符记的配置使得该结合/叉型绘图管线组件处理该另一输入端的数据,该数据与该一输入端先前处理的数据有关。
30.如权利要求22所述的数据同步方法,其中该结合/叉型绘图管线组件通过每一个数据输出端输出不同数据项的数据,其由该结合/叉型绘图管线组件所插入的区隔符记分开不同数据项。
31.如权利要求22所述的数据同步方法,其中当该多个数据输入端接收不同数据项供该结合/叉型绘图管线组件处理时,该结合/叉型绘图管线组件通过每一个该数据输出端输出对应该数据项的数据,该每一个输出端对应至每一个不同数据项的一指定路径。
32.如权利要求22所述的数据同步方法,其中当接收一选择输入符记或一选择输入信号时,执行另一处理模式,持续直到完成为止,以使该结合/叉型绘图管线组件发出一个或多个选择同步符记或选择同步信号至一个或多个其它绘图管线组件。
33.一种绘图管线系统,其包含:
一处理组件具有一数据输入端、一数据输出端、一接线信号输入路径及一接线信号输出路径,该处理组件用以从该数据输入端接收至少一事件起始符记及一事件结束符记,以及通过该数据输出端输出该事件起始符记及该事件结束符记,该处理组件同时用以从该接线信号输入路径接收一事件起始信号及一事件结束信号中的至少一信号,以及通过该接线信号输出路径输出该至少一信号;
该处理组件具有一同步背压输入端,用以与该绘图管线中的次一处理组件信号连接;以及
该处理组件具有一同步背压输出端,用以与该绘图管线中的前一处理组件信号连接。
34.如权利要求33所述的绘图管线系统,其中该处理组件进一步包含:
一个或多个其它数据输出端,该处理组件通过该数据输出端及该其它数据输出端中的至少一输出端输出至少该事件起始符记及该事件结束符记。
35.如权利要求33所述的绘图管线系统,其中该处理组件进一步包含:
一个或多个其它数据输入端,该处理组件从该数据输入端及该其它数据输入端中的至少一输入端接收至少该事件起始符记及该事件结束符记,并从该数据输出端输出数据。
36.如权利要求33所述的绘图管线系统,其中该处理组件进一步包含:
一个或多个其它数据输入端,该处理组件从该数据输入端及该其它数据输入端中的至少一输入端接收至少该事件起始符记及该事件结束符记;以及
一个或多个其它数据输出端,该处理组件通过该数据输出端及该其它数据输出端中的至少一输出端输出至少该事件起始符记及该事件结束符记。
37.如权利要求33所述的绘图管线系统,其中对应于从该数据输入端、该一个或多个其它数据输入端、及该接线信号输入路径中的至少一输入端所接收的该事件起始符记,或对应于该处理组件中一预定内部事件的发生,该处理组件通过该多个数据输出端中的一数据输出端传送该事件起始符记及该事件结束符记。
CN 200610137496 2005-10-26 2006-10-26 图形处理单元管线同步及控制系统和方法 Active CN101034469B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US73044405P 2005-10-26 2005-10-26
US60/730,444 2005-10-26
US11/468,435 2006-08-30
US11/468,435 US8817029B2 (en) 2005-10-26 2006-08-30 GPU pipeline synchronization and control system and method

Publications (2)

Publication Number Publication Date
CN101034469A true CN101034469A (zh) 2007-09-12
CN101034469B CN101034469B (zh) 2010-05-12

Family

ID=38165842

Family Applications (4)

Application Number Title Priority Date Filing Date
CN 200610137496 Active CN101034469B (zh) 2005-10-26 2006-10-26 图形处理单元管线同步及控制系统和方法
CN 200610137499 Active CN100590655C (zh) 2005-10-26 2006-10-26 指令解析器以及图形处理单元及其方法
CN 200610137498 Active CN1991905B (zh) 2005-10-26 2006-10-26 图形处理单元的同步方法以及围篱/等待同步组件
CN 200610136593 Active CN100538737C (zh) 2005-10-26 2006-10-26 图形处理单元管线多阶同步控制处理器及其方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN 200610137499 Active CN100590655C (zh) 2005-10-26 2006-10-26 指令解析器以及图形处理单元及其方法
CN 200610137498 Active CN1991905B (zh) 2005-10-26 2006-10-26 图形处理单元的同步方法以及围篱/等待同步组件
CN 200610136593 Active CN100538737C (zh) 2005-10-26 2006-10-26 图形处理单元管线多阶同步控制处理器及其方法

Country Status (3)

Country Link
US (4) US8817029B2 (zh)
CN (4) CN101034469B (zh)
TW (4) TWI366152B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423161B (zh) * 2008-11-06 2014-01-11 Via Tech Inc 繪圖處理單元、元命令處理系統以及元命令執行方法

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7304996B1 (en) 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
US7822032B1 (en) * 2004-03-30 2010-10-26 Extreme Networks, Inc. Data structures for supporting packet data modification operations
US8941669B1 (en) * 2005-10-18 2015-01-27 Nvidia Corporation Split push buffer rendering for scalability
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US7891012B1 (en) 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7818306B2 (en) * 2006-03-24 2010-10-19 International Business Machines Corporation Read-copy-update (RCU) operations with reduced memory barrier usage
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US9317290B2 (en) * 2007-05-04 2016-04-19 Nvidia Corporation Expressing parallel execution relationships in a sequential programming language
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US20090160867A1 (en) * 2007-12-19 2009-06-25 Advance Micro Devices, Inc. Autonomous Context Scheduler For Graphics Processing Units
US8509569B2 (en) * 2008-02-11 2013-08-13 Apple Inc. Optimization of image processing using multiple processing units
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US8390631B2 (en) * 2008-06-11 2013-03-05 Microsoft Corporation Synchronizing queued data access between multiple GPU rendering contexts
US20100024030A1 (en) * 2008-07-23 2010-01-28 Microsoft Corporation Restartable transformation automaton
US8139583B1 (en) 2008-09-30 2012-03-20 Extreme Networks, Inc. Command selection in a packet forwarding device
US20100110089A1 (en) * 2008-11-06 2010-05-06 Via Technologies, Inc. Multiple GPU Context Synchronization Using Barrier Type Primitives
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US8484647B2 (en) * 2009-07-24 2013-07-09 Apple Inc. Selectively adjusting CPU wait mode based on estimation of remaining work before task completion on GPU
US8743131B2 (en) * 2009-09-10 2014-06-03 Advanced Micro Devices, Inc. Course grain command buffer
US9589310B2 (en) * 2009-10-07 2017-03-07 Nvidia Corporation Methods to facilitate primitive batching
US20110285736A1 (en) 2010-05-21 2011-11-24 Kilgard Mark J Decomposing cubic bèzier segments for tessellation-free stencil filling
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US8856760B2 (en) * 2010-10-26 2014-10-07 Advanced Micro Devices, Inc. Streaming programming generator
US20120194525A1 (en) * 2010-12-13 2012-08-02 Advanced Micro Devices, Inc. Managed Task Scheduling on a Graphics Processing Device (APD)
US9176795B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics processing dispatch from user mode
US20120188259A1 (en) * 2010-12-13 2012-07-26 Advanced Micro Devices, Inc. Mechanisms for Enabling Task Scheduling
US20120229481A1 (en) * 2010-12-13 2012-09-13 Ati Technologies Ulc Accessibility of graphics processing compute resources
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US20120194526A1 (en) * 2010-12-15 2012-08-02 Benjamin Thomas Sander Task Scheduling
US8732496B2 (en) * 2011-03-24 2014-05-20 Nvidia Corporation Method and apparatus to support a self-refreshing display device coupled to a graphics controller
CN103748566A (zh) * 2011-06-07 2014-04-23 爱立信(中国)通信有限公司 用于寄存器组的创新结构
US10013731B2 (en) 2011-06-30 2018-07-03 Intel Corporation Maximizing parallel processing in graphics processors
WO2013030939A1 (ja) * 2011-08-29 2013-03-07 富士通株式会社 情報処理装置、メモリダンプ採取方法、及びプログラム
US9652282B2 (en) * 2011-11-08 2017-05-16 Nvidia Corporation Software-assisted instruction level execution preemption
US8976185B2 (en) * 2011-11-11 2015-03-10 Nvidia Corporation Method for handling state transitions in a network of virtual processing nodes
US9147224B2 (en) * 2011-11-11 2015-09-29 Nvidia Corporation Method for handling state transitions in a network of virtual processing nodes
DE102011119004A1 (de) * 2011-11-19 2013-05-23 Diehl Aerospace Gmbh Grafikverarbeitungsvorrichtung, Anzeigevorrichtung für ein Flugzeugcockpit sowie Verfahren zur Anzeige von Grafikdaten
US9691117B2 (en) 2011-11-30 2017-06-27 Intel Corporation External validation of graphics pipelines
US9122522B2 (en) * 2011-12-14 2015-09-01 Advanced Micro Devices, Inc. Software mechanisms for managing task scheduling on an accelerated processing device (APD)
US8941670B2 (en) * 2012-01-17 2015-01-27 Microsoft Corporation Para-virtualized high-performance computing and GDI acceleration
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9063974B2 (en) * 2012-10-02 2015-06-23 Oracle International Corporation Hardware for table scan acceleration
CN103812800A (zh) * 2012-11-09 2014-05-21 辉达公司 一种无线基站设备和包括该无线基站设备的通信系统
US20140176577A1 (en) * 2012-12-20 2014-06-26 Nvidia Corporation Method and mechanism for preempting control of a graphics pipeline
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9830224B2 (en) * 2013-03-15 2017-11-28 Nvidia Corporation Selective fault stalling for a GPU memory pipeline in a unified virtual memory system
US9471456B2 (en) * 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
US8854385B1 (en) 2013-10-03 2014-10-07 Google Inc. Merging rendering operations for graphics processing unit (GPU) performance
US9292903B2 (en) 2013-10-03 2016-03-22 Google Inc. Overlap aware reordering of rendering operations for efficiency
CN105637556B (zh) * 2013-10-14 2019-06-28 马维尔国际贸易有限公司 用于图形处理单元功率管理的系统和方法
US10042659B1 (en) * 2013-10-30 2018-08-07 Xilinx, Inc. Caching virtual contexts for sharing of physical instances of a hardware resource
CN105469354A (zh) * 2014-08-25 2016-04-06 超威半导体公司 图形处理方法、系统和设备
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US20160292812A1 (en) * 2015-03-31 2016-10-06 Qualcomm Incorporated Hybrid 2d/3d graphics rendering
US10003811B2 (en) * 2015-09-01 2018-06-19 Microsoft Technology Licensing, Llc Parallel processing of a video frame
US9652235B1 (en) 2015-11-24 2017-05-16 International Business Machines Corporation Method of synchronizing independent functional unit
CN105446939B (zh) 2015-12-04 2019-02-26 上海兆芯集成电路有限公司 由装置端推核心入队列的装置
US10176548B2 (en) * 2015-12-18 2019-01-08 Ati Technologies Ulc Graphics context scheduling based on flip queue management
US10192281B2 (en) 2016-07-07 2019-01-29 Intel Corporation Graphics command parsing mechanism
US10198784B2 (en) 2016-07-29 2019-02-05 Microsoft Technology Licensing, Llc Capturing commands in a multi-engine graphics processing unit
US10600141B2 (en) 2016-09-23 2020-03-24 Nvidia Corporation Monitoring execution in a graphics processing unit
EP3500930A1 (en) * 2016-11-15 2019-06-26 Google LLC Systems and methods for reducing download requirements
CN106708601A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种面向GPU实现的虚拟IOringbuffer的方法
CN106651745A (zh) * 2016-12-12 2017-05-10 中国航空工业集团公司西安航空计算技术研究所 一种分离式图形处理器指令处理系统
US10275378B2 (en) * 2017-03-07 2019-04-30 Western Digital Technologies, Inc. Data buffer pointer fetching for direct memory access
US10204394B2 (en) 2017-04-10 2019-02-12 Intel Corporation Multi-frame renderer
US10872394B2 (en) * 2017-04-27 2020-12-22 Daegu Gyeongbuk Institute Of Science And Technology Frequent pattern mining method and apparatus
US10503546B2 (en) 2017-06-02 2019-12-10 Apple Inc. GPU resource priorities based on hardware utilization
US11544121B2 (en) 2017-11-16 2023-01-03 Advanced Micro Devices, Inc. GPU networking using an integrated command processor
US10467724B1 (en) * 2018-02-14 2019-11-05 Apple Inc. Fast determination of workgroup batches from multi-dimensional kernels
GB2573316B (en) * 2018-05-02 2021-01-27 Advanced Risc Mach Ltd Data processing systems
US10795730B2 (en) 2018-09-28 2020-10-06 Apple Inc. Graphics hardware driven pause for quality of service adjustment
US10796399B2 (en) * 2018-12-03 2020-10-06 Advanced Micro Devices, Inc. Pixel wait synchronization
US10832465B2 (en) * 2018-12-13 2020-11-10 Advanced Micro Devices, Inc. Use of workgroups in pixel shader
US11461137B2 (en) * 2019-12-19 2022-10-04 Advanced Micro Devices, Inc. Distributed user mode processing
US11127109B1 (en) * 2020-03-23 2021-09-21 Samsung Electronics Co., Ltd. Methods and apparatus for avoiding lockup in a graphics pipeline
CN117707625A (zh) * 2024-02-05 2024-03-15 上海登临科技有限公司 支持指令多发的计算单元、方法及相应图形处理器

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916301A (en) 1987-02-12 1990-04-10 International Business Machines Corporation Graphics function controller for a high performance video display system
US5097411A (en) 1987-08-13 1992-03-17 Digital Equipment Corporation Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
US4855936A (en) 1987-09-25 1989-08-08 International Business Machines Corp. Full-screen input/output application program interface
US4862155A (en) 1987-10-26 1989-08-29 Tektronix, Inc. Graphic display system with secondary pixel image storage
US5293587A (en) 1990-06-01 1994-03-08 Chips And Technologies, Inc. Terminal control circuitry with display list processor that fetches instructions from a program memory, character codes from a display memory, and character segment bitmaps from a font memory
US5230039A (en) 1991-02-19 1993-07-20 Silicon Graphics, Inc. Texture range controls for improved texture mapping
US5315696A (en) 1991-08-21 1994-05-24 Digital Equipment Corporation Graphics command processing method in a computer graphics system
US5299309A (en) 1992-01-02 1994-03-29 Industrial Technology Research Institute Fast graphics control system capable of simultaneously storing and executing graphics commands
US5706478A (en) 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
US6161154A (en) * 1997-11-26 2000-12-12 National Instruments Corporation System and method for extracting and restoring a video buffer from/to a video acquisition cycle
US6252610B1 (en) 1998-05-29 2001-06-26 Silicon Graphics, Inc. Method and apparatus for efficiently switching state in a graphics pipeline
US6208361B1 (en) 1998-06-15 2001-03-27 Silicon Graphics, Inc. Method and system for efficient context switching in a computer graphics system
EP1121631B1 (en) * 1998-07-22 2007-04-25 California Institute Of Technology Reshuffled communications processes in pipelined asynchronous circuits
US6329996B1 (en) 1999-01-08 2001-12-11 Silicon Graphics, Inc. Method and apparatus for synchronizing graphics pipelines
US6363438B1 (en) * 1999-02-03 2002-03-26 Sun Microsystems, Inc. Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers
US6476808B1 (en) 1999-10-14 2002-11-05 S3 Graphics Co., Ltd. Token-based buffer system and method for a geometry pipeline in three-dimensional graphics
US6708269B1 (en) 1999-12-30 2004-03-16 Intel Corporation Method and apparatus for multi-mode fencing in a microprocessor system
US7178162B2 (en) 2000-02-10 2007-02-13 Chyron Corporation Incorporating graphics and interactive triggers in a video stream
US6483505B1 (en) 2000-03-17 2002-11-19 Ati International Srl Method and apparatus for multipass pixel processing
US6782432B1 (en) 2000-06-30 2004-08-24 Intel Corporation Automatic state savings in a graphics pipeline
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6806880B1 (en) 2000-10-17 2004-10-19 Microsoft Corporation System and method for efficiently controlling a graphics rendering pipeline
US6697074B2 (en) 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US6947049B2 (en) 2001-06-01 2005-09-20 Nvidia Corporation Method and system for synchronizing updates of vertex data with a graphics processor that is fetching vertex data
WO2003005196A2 (en) * 2001-06-29 2003-01-16 Koninklijke Philips Electronics N.V. Data processing apparatus
US6833831B2 (en) 2002-02-26 2004-12-21 Sun Microsystems, Inc. Synchronizing data streams in a graphics processor
US6864892B2 (en) * 2002-03-08 2005-03-08 Sun Microsystems, Inc. Graphics data synchronization with multiple data paths in a graphics accelerator
US6952214B2 (en) 2002-07-12 2005-10-04 Sun Microsystems, Inc. Method for context switching a graphics accelerator comprising multiple rendering pipelines
US6954204B2 (en) 2002-07-18 2005-10-11 Nvidia Corporation Programmable graphics system and method using flexible, high-precision data formats
US7263585B2 (en) * 2002-09-19 2007-08-28 Ip-First, Llc Store-induced instruction coherency mechanism
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US6985150B2 (en) 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts
JP4283809B2 (ja) 2003-08-07 2009-06-24 株式会社ルネサステクノロジ 画像処理用半導体プロセッサ
US7057620B2 (en) 2003-08-25 2006-06-06 Ati Technologies Inc. Method and apparatus for graphics rendering on a mobile device
US7353369B1 (en) * 2005-07-13 2008-04-01 Nvidia Corporation System and method for managing divergent threads in a SIMD architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423161B (zh) * 2008-11-06 2014-01-11 Via Tech Inc 繪圖處理單元、元命令處理系統以及元命令執行方法

Also Published As

Publication number Publication date
US20070091100A1 (en) 2007-04-26
CN100538737C (zh) 2009-09-09
US20070091102A1 (en) 2007-04-26
TWI326852B (en) 2010-07-01
US20070091101A1 (en) 2007-04-26
CN1991905A (zh) 2007-07-04
CN101034470A (zh) 2007-09-12
TW200731160A (en) 2007-08-16
TW200737036A (en) 2007-10-01
TW200717311A (en) 2007-05-01
US8004533B2 (en) 2011-08-23
US7737983B2 (en) 2010-06-15
US20070115292A1 (en) 2007-05-24
CN1983326A (zh) 2007-06-20
TWI366153B (en) 2012-06-11
US8817029B2 (en) 2014-08-26
CN100590655C (zh) 2010-02-17
TWI331299B (en) 2010-10-01
TWI366152B (en) 2012-06-11
CN101034469B (zh) 2010-05-12
TW200739449A (en) 2007-10-16
CN1991905B (zh) 2010-05-12
US7755632B2 (en) 2010-07-13

Similar Documents

Publication Publication Date Title
CN101034469A (zh) 图形处理单元管线同步及控制系统和方法
US10061592B2 (en) Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (SIMD/T) devices
CN101667284B (zh) 用于中央处理单元和图形处理单元之间通信的设备和方法
CN1916961B (zh) 可中断图形处理单元及其控制方法
CN1088214C (zh) 用多指令集处理数据的器件和方法
TWI585680B (zh) 用於執行緒佇列安排之方法、裝置與系統(二)
CN101957744B (zh) 一种用于微处理器的硬件多线程控制方法及其装置
US9064437B2 (en) Memory based semaphores
US10861125B2 (en) Preparing and executing command streams in data processing systems
CN101080698A (zh) 使用可编程硬件进行的实时显示后处理
US9086916B2 (en) Architecture for efficient computation of heterogeneous workloads
CN1100822A (zh) 系统总线外围总线间最佳数据传送用多总线系统总线桥
CN1758213A (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CN103366338A (zh) 图像处理装置和图像处理方法
CN103279379A (zh) 用于在没有指令解码的情况下调度指令的方法和装置
CN101980147B (zh) 多线程处理器及其指令执行与同步方法
CN110188067B (zh) 协处理器及其数据处理加速方法
JP2011154682A (ja) 信号処理装置、遊技機
CN1716182A (zh) 地址创建器和算术电路
CN1629802A (zh) 产生管线式微处理器的早期状态标志的装置及方法
WO2015155894A1 (ja) プロセッサーおよび方法
US8024550B2 (en) SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group
WO2007043130A9 (ja) 描画装置、半導体集積回路装置及び描画方法
JP2006285724A (ja) 情報処理装置および情報処理方法
CN1196061C (zh) 数据管理和数据显示的设备和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant