CN1983326A - 图形处理单元管线多阶同步控制处理器及其方法 - Google Patents

图形处理单元管线多阶同步控制处理器及其方法 Download PDF

Info

Publication number
CN1983326A
CN1983326A CN 200610136593 CN200610136593A CN1983326A CN 1983326 A CN1983326 A CN 1983326A CN 200610136593 CN200610136593 CN 200610136593 CN 200610136593 A CN200610136593 A CN 200610136593A CN 1983326 A CN1983326 A CN 1983326A
Authority
CN
China
Prior art keywords
processing unit
instruction
graphics processing
specific components
command
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 200610136593
Other languages
English (en)
Other versions
CN100538737C (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 CN1983326A publication Critical patent/CN1983326A/zh
Application granted granted Critical
Publication of CN100538737C publication Critical patent/CN100538737C/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 or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

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)缓冲器的可程序化(programmable)和固定功能单元,其结构也就变得愈来愈复杂,执行每一个图形处理单元命令可能要花上数百至数千周期,相较于中央处理单元,用于今日绘图处理应用程序中的图形处理单元更加仰赖管线技术,因此,大部份图形处理单元设计成在任何时候均能处理大量数据,这使得尝试分配图形处理单元处理的工作更加复杂,因为图形处理单元不具有适当的机构以于储存或恢复操作中处理大量数据。
为处理大量数据而发展的现代图形处理单元架构具有复杂的形式,涉及新的机制以同步数据串流处理中的管线单元,除主要的固定功能绘图管线单元外,另外应用的可程序化平行处理单元涉及维持图形处理单元管线于不同阶段中接收及更新的像素数据的顺序。再者,于图形处理单元的绘图管线中同时保持具有可中断性的多重环境亦涉及这些中断环境的再同步化,务期效能损失能减到最低,并能平顺地于中断和恢复绘图环境间切换。然而,目前的图形处理单元架构无法妥善地处理环境的同步化,反而造成管线的完全清空(flush),因而使得操作效率低下及降低绘图能力。
再者,当图形处理单元描绘的表面将成为下一流程的来源表面时,这样的多流程描绘(multi-pass rendering)亦牵涉到同步操作,以避免当第二流程开始存取共享表面时所产生的写后读(read after write,RAW)数据问题,再者,当图形处理单元根据中央处理单元执行绪(thread)内的事件及目前图形处理单元环境开始和/或恢复某一环境执行时,中央处理单元工作执行的同步化亦为目前图形处理单元处理实务的一重要议题,然而,目前的中央处理单元却无法适时地传递及响应此种变化,其发展尚无法跟上绘图应用程序的需求。
因此,迄今仍有需要克服以上所述的这种缺陷和缺点。
发明内容
一种使用于应用程序及绘图管线间的高阶同步方法包含一步骤:一指定组件接收从中央处理单元送出的一输入流内的应用程序指令,此指定组件可为一命令流处理器(command stream processor,CSP),命令流处理器的第一部分耦接至绘图管线内的次一组件,第二部分则耦接至绘图管线的多个组件,第一部分会将与应用程序指令相关的命令传送到绘图管线中的次一组件或是其它与其相耦接的组件,待稍后执行此接收的命令后,将通过反馈路径输出一应答信号给命令流处理器的第二部分,于一非限定实施例中,可由命令流处理器接收及执行的该应用程序指令包含检查表面错误(check surfacefault)指令、陷阱中断(trap)指令、等候(wait)指令、信号指令、内部暂停(internalstall)指令、浏览(flip)指令、触发(trigger)指令等等。
如果应用程序指令是检查表面错误指令,从命令流处理器送出一命令给一接受组件,使其检查虚拟存储器,并确认绘图管线内将执行的特定环境所需的所有表面是否可用,如果虚拟存储器缺乏执行特定环境的所需表面,则命令流处理器会中断该特定环境,并切换执行一个新环境。
产生一中断指令,从其它储存位置取回没有储存在虚拟存储器内的所有表面,当虚拟存储器取回所有表面并可供存取,命令流处理器可以恢复执行先前中断的环境。
如果应用程序指令为一陷阱中断指令,命令流处理器会从第一部分(已知可为前端部分)传送一陷阱中断符记(trap token)给绘图管线中的次一组件,之后,陷阱中断符记会通过绘图管线传送到绘图管线最后阶段组件,于一非限定实施例中,绘图管线最后阶段组件可为一写回(write back)单元。
然后绘图管线最后阶段单元会将陷阱中断符记传回命令流处理器中用来接收此类信号的第二部分(已知可为后端部分),接着,当命令流处理器的第二部分接收到此陷阱中断符纪,便会产生一中断讯息给中央处理单元,中央处理单元在接收到此中断讯息后,会识别与绘图管线中指定命令或数据(如给定环境)的处理结束有关的中断讯息,同样地,命令流处理器会将有关陷阱中断符记的识别信息存入存储器中。
如果应用程序指令为一等候指令,当命令流处理器辨识到中央处理单元送出的输入流内有等候指令,便会检查一计数器,以判断计数器的值是否大于或等于一临限值,临限值可以是零值或其它的预定值,如果计数值大于该临限值,命令流处理器会减少计数值,继续执行与目前绘图环境相关的指令;如果计数值等于临限值,则命令流处理器(或部分的命令流处理器)会将目前的绘图环境切换至另一绘图环境,此环境可能是环境列表中的一组指令,每一个环境会针对有关对象而对应不同组的指令,在切换到另一绘图环境时,命令流处理器会重置(reset)指令指针,以执行新的绘图环境。
于一非限定实施例中,计数器可以是图形处理单元的内部触发计数器,也可以是位于耦接的视讯存储器内的外部计数器。于一非限定实施例中,计数器(不管是在存储器内部或外部)可以是一64位计数器,不过,本领域的技术人员应当了解可使用其它逻辑位数的计数器。
如果应用程序指令为一信号指令,命令流处理器辨识到从中央处理单元送出的输入流内含有此种指令,则将计数值增加一单位,此计数值可以位于信号命令所含地址内,之后,如果一预定位位于一预定逻辑状态,同时计数值从第一特定值变成第二特定值,则命令流处理器中断中央处理单元,于一非限定实施例中,第一特定值可为0,而第二特定值可为1。
如果应用程序指令为一浏览指令,命令流处理器可从第一部分送出一浏览符记给绘图管线中的次一组件,如三角形设定单元(triangle setup unit),浏览符记会移往绘图管线的最后阶段组件,如写回单元,然后绘图管线的最后阶段组件会将浏览符记传送给用来接收此信号的命令流处理器的第二部分(或后端部分)。
当命令流处理器接收到浏览符记,便会进入等候模式等待从显示接口单元发出的信号,显示接口单元可以是一种在绘图管线中与命令流处理器耦接的单元或组件,命令流处理器也可以利用与浏览符记相关的数据来规划显示接口单元的预定缓存器。
为了避免暂停绘图管线内的最后阶段组件,命令流处理器可以耦接至用于从最后阶段组件接收浏览符记的缓冲器,这种缓冲器可以是先进先出装置,可依据从绘图管线最后阶段组件接收到的浏览符记知顺序,将浏览符记传送给命令流处理器。
如果命令流处理器可执行的应用程序指令为一屏蔽指令,屏蔽指令使命令流处理器检查指定计数器,判断计数器的值是否等于一预定值,于一非限定实施例中,此预定值可为0,如果等于此预定值,则命令流处理器检查是否从预定单元(如显示接口单元)接收到预定信号,命令流处理器会暂停不处理接下来的操作,一直等到从预定单元接收到信号为止。如果命令流处理器检查到计数值大于此预定值(如前述为0),则命令流处理器将计数值减一。
命令流处理器也可用于接收输入流中的触发指令,而对应一预定的响应,于一非限定实施例中,命令流处理器可输出一操作码给目标组件,于一非限定实施例中,目标组件可以是图形处理单元内的任何单元,当目标组件接收到操作码,操作码会指示目标组件进行预定的操作,于一非限定实施例中,预定操作可以是预载(preload)操作、清空(flush)操作、排出(drain)操作等等。
根据触发指令的种类,命令流处理器可能暂停或不暂停操作,直到完成触发指令所指定的操作为止,这种操作可能由绘图管线内命令流处理器以外的一个或多个组件来执行,所以命令流处理器可以等候并持续检查等候屏蔽(计数器)的状态,判断其是否消失,如果消失,则命令流处理器恢复输入流内的处理操作。
上述特征非用于限制本发明,而仅为非限定的范例,后面将计划附图更详细的说明。
附图说明
图1:为具有一计算机的一计算机系统的示意图。
图2:示出了图1中处理单元所执行的中央处理单元应用程序及图形处理单元所执行的图形处理单元环境间的关系。
图3:为图形处理单元绘图管线的示意图,其可存在于图1所示的图形处理单元中,并且可包含固定功能与可程序化单元,这种单元通过传递不同数据结构的多重先进先出装置而彼此连接。
图4:为图3图形处理单元绘图管线的非限定实施方式示意图。
图5:为图4中命令流处理器的部分示意图,说明检查表面错误命令或指令的功能操作。
图6:图6:为图4中命令流处理器的部分示意图,说明陷阱中断命令或指令的功能操作。
图7:为图4中命令流处理器的部分示意图,说明等候命令或指令的功能操作。
图8:为图4中命令流处理器的部分示意图,说明信号命令或指令的功能操作。
图9:为图4中命令流处理器的部分示意图,说明浏览命令或指令的功能操作。
图10:为图4中命令流处理器的部分示意图,说明内部等候(或暂停)命令或指令的功能操作。
图11:为图4中命令流处理器的部分示意图,利用等候屏蔽执行内部等候。
图12:为图4中命令流处理器的部分示意图,说明其用于命令流处理器导向触发命令的操作,该触发命令将被一辅助区块ID重新导向至管线中的另一区块。
图13:为图1中图形处理单元84内的绘图管线的部分示意图。
附图符号说明
计算机系统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
图形接口82                  图形处理单元84
远程应用程序85              视讯存储器86
视讯接口90                  显示器91
输出外围接口95              打印机96
扬声器97                    中央处理单元应用程序101
图形处理器单元环境102       分界命令103、107a
登录表104                   存储器表面105
等候命令106、107b
图形处理器单元绘图管线108、110
存储器存取单元109           先进先出装置11 1、112、113
命令流处理器114             命令流处理器前端部分114a
命令流处理器后端部分114b    阴影产生器117
属性设定单元118             写回单元119
图形处理单元管线的最后阶段121
保留缓冲器137               触发命令152、154、157、167
管线区块169
具体实施方式
图1为一例示非限定的计算机系统10的示意图,其包含一计算机12,于此非限制定实施例中,计算机12的组件可包含一处理单元16、一系统存储器18以及一系统总线21,该系统总线21系将诸如系统存储器18等不同的系统组件连接于处理单元16,系统总线21可为本领域的技术人员所知晓的任一种总线结构,如存储器总线或存储器控制器、外围装置总线以及局部总线,就一非限定实施例而言,这种架构可包含外围组件互连(peripheralcomponent interconnect,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执行的两个图形处理单元环境之间,因此,如前所述,二个环境间的同步化的产生点可恰为其中一个环境中断的场合,以恢复或引发另一环境,另一种情况为第二环境想要使用同一个图形处理单元内的第一环境所产生的存储器表面(memory surface)数据,不过必须等到第一环境完成有关此存储器表面的所有写入操作,第二环境才能开始读取。于第三阶同步中,图形处理单元84中的管线设计成可以同步内部的各单元或组件,又称为较低阶的内部同步。利用此三阶同步方法,处理单元16可与图形处理单元84前后的执行同步,进而控制复杂及循环的处理操作。
图2为说明图1中处理单元16所执行的中央处理单元应用程序101及图形处理单元84所执行的图形处理单元环境102的关系图,于此非限定实施例中,将说明中央处理单元应用程序101及图形处理单元环境102间的高阶数据存取同步方法。
当图形处理单元84接收到由中央处理单元应用程序101写入存储器的图形处理单元命令及数据流缓冲器中的分界(fence)A命令103,执行图形处理单元环境102的图形处理单元84会将分界命令及数据写入系统或图1的视讯存储器86的登录表(registry)104,登录表104包含具有连续地址的成对存储位置,以存放分界及等候登录值,将分界命令写入后,如果有关的分界值和写入值符合预定要求,则可同步中央处理单元应用程序101及图形处理单元环境102关于像素(primitive)和/或存储器表面105的读写操作。
中央处理单元应用程序101会尝试读取登录表104的数据值,以比对分界值及等候值,经过比较可以让中央处理单元应用程序101知道图形处理单元环境102是否已完成特定操作或指定任务,可让中央处理单元应用程序101利用某些数据进行额外的处理操作。
接着,图形处理单元环境102可以从图形处理单元命令及数据流接收等候A命令106,然后图形处理单元环境102会根据位于登录表104中所接收到的等候A命令,进行读取、比较、更新等操作,之后,中央处理单元应用程序101会再次读取并比较登录表104的数据值,中央处理单元应用程序101会识别因图形处理单元环境102接收到等候A命令106而写入的更新值,中央处理单元应用程序101识别这个更新值并进行其它可能需要或影响存储器表面105或像素的处理程序,利用这种方式,可以同步中央处理单元应用程序101和图形处理单元84所执行的图形处理单元环境102,所述即为高阶数据同步的非限定实施例。
图3为图形处理单元绘图管线108的示意图,其可存在于图1的图形处理单元中,并且经由支持不同数据结构的多重先进先出装置去连接数个固定功能单元及/或可程序化单元,因为多类型区块具有不只一个输入或输出,故图形处理单元绘图管线108的同步就很重要,因此,为了尝试使图3的图形处理单元绘图管线108同步,应认可不同类型的数据流,以维持像素描绘的顺序,以及同步现代图形处理单元中的二维、三维、视讯及其它信道间的时序。
于一非限定实施例中,当个别图形处理单元环境通过图形处理单元绘图管线108,假设欲同步图3中的环境1与环境2,则要利用多个图形处理单元环境中阶同步,将环境1中的分界A同步命令107a写入特定逻辑位置,如存储存取单元(memory access unit,MXU)109,后面跟着环境2的等候A同步命令107b,环境2会在环境1之后通过图形处理单元绘图管线108。
为了要将相关的分界命令107a及等候命令107b写入存储器存取单元109中,图形处理单元绘图管线组件要等到与环境1相关的数据处理到一指定点,再来有关环境2的数据可于图形处理单元绘图管线108的较高逻辑点(logical point)进行处理,藉由此方式,图形处理单元绘图管线108可以于两个不同的图形处理单元环境间进行中阶数据同步,关于更多有关内部分界及等候的同步命令,请参考有关的美国专利申请。
图4为一图形处理单元绘图管线110的示意图,为图3中绘图管线108的另一详细表现方式,图形处理单元绘图管线110包含多个先进先出装置,如标号111、112及113所指,可以于管线中传送同步命令,以可改变图形处理单元环境,例如从图3的环境1切换到环境2,此时,于管线中传送符记(token)或其它类似的命令,让管线110的组件清空与某一环境相关的数据,好处理与另一环境相关的数据,欲知更多有关图形处理单元绘图管线110的低阶同步方式,请参考2005年11月10日申请的美国专利申请号11/270,169的美国专利申请案,其名称为「处理多重环境和运行列表的可中断图形处理单元以及方法」。
命令流处理器114可以是位于图形处理单元绘图管线110最前方的组件,以控制整个图形处理单元绘图管线110,命令流处理器114执行前述的高阶及中阶同步程序,也可以产生数个内部符记以进行图形处理单元绘图管线内部的低阶同步成序,因此,命令流处理器114可配合与前述各阶同步程序有关的指令。
于一非限定实施例中,可于命令流处理器114中设定一些指令,以执行前述各阶同步程序,各指令列示如下:
命令名称 功能 同步程序
SKIP忽略 如果欲执行当前环境而不切换,可置于环境位置内做为位置标示
Draw Primitive绘制图元 绘制图元命令 未知
Draw IndexedPrimitive绘制索引像素 绘制索引像素命令 未知
2D Repeat二维重复 二维聚合线支持命令 未知
2D/MIT Operation二维/主影像转换操作 二维数据/主影像转换命令 未知
2D Host Data二维主机数据 从主机输出的二维数据区块的标头命令 未知
Internal WAIT(stall)内部等候(暂停) 利用显示扫描及等候屏蔽更新同步输入流的处理 中阶同步-暂停输入解析,直到选择的显示同步信号或等候屏蔽(计数器)设定
CheckSurfaceFault检查表面错误 高阶同步虚拟存储器机制支持命令 高阶同步-如果表面未加载,切换至另一环境
Command DMA命令直接存储器存取 串流缓冲指标命令 未知
Set Register设定缓存器 于特定区块命令中设定图形处理单元缓存器,或是恢复全部 可能要求与前一储存步骤同步
Save States储存状态 于存储器内储存图形处理单元状态缓存器 高阶
Run List Update运行列表更新 更新主动图形处理单元环境列表(非串流命令) 高阶
Enable ContextSwitch致能环境切换 致能图形处理单元的排除/中断 高阶
1BPP Operation1BPP操作 1-BPP引擎命令 未知
Internal Sync内部同步 中阶同步命令 中阶同步-暂停特定区块存取存储器,以避免写后读问题
Trap陷阱中断 高阶同步命令 高阶同步-中断中央处理单元并提供陷阱中断ID
Reset/Disable/Enable Counter Registers重置/关闭/致能计数缓存器 计数器控制命令 未知
Dump StatusRegisters转储状态缓存器 计数器转储命令 未知
Dx10-QueryDx10-搜寻 高阶同步搜寻命令 高阶同步-根据搜寻缓存器的值的输入流分析控制
Trigger触发 快取缓冲器控制命令 中阶及低阶同步
Flip浏览 显示同步命令 高阶同步-于画面描绘结束时切换显示控制器
Longhorn Wait长角系统等候 高阶同步命令 高阶同步-等候存储器内之外部计数器
Longhorn Signal长角信号 高阶同步命令 高阶同步-增加存储器内之外部同步计数值
Position位置 追踪直接存储器存取缓冲解析的内部图形处理单元命令 未知
End of(Sync)Command结束(同步)命令 低阶图形处理单元管线同步命令(符记) 低阶同步-用于低阶同步的多用途内部产生符记
后面将会针对这些由命令流处理器114执行的命令做进一步的说明,下列为命令流处理器114的同步命令格式:
命令 DW 0[31:0] DW 1[63:31] DW 2[95:64] DW 3[127:96] 同步程序
检查错误 操作码 基础地址1 基础地址2 基础地址3 高阶
陷阱中断 操作码 陷阱中断ID 高阶
搜寻 操作码 地址 高阶
内部同步 操作码 地址 数据低准位 数据高准位 中阶
LH信号 操作码 地址 高阶
LH等候 操作码 地址 高阶
浏览 操作码 高阶
内部等候 操作码 中阶
触发 操作码 基础地址 地址屏蔽 中低阶
1F-同步 操作码 低阶
如前所述,检查表面错误(或检查错误)命令提供高阶同步的方式,来检查虚拟存储器(virtual memory,VM)中所有表面的可用度,以供执行特定的图形处理单元环境,这个命令通常用在图形处理单元绘图管线110所执行的环境的开头处,如果跟此环境相关的某些表面不能使用,则检查表面错误命令会使得虚拟存储器加载这些表面,于此实施例中,当虚拟存储器加载表面的同时,会中断目前的环境,并切换执行另一环境,命令流处理器114会配合存储器存取单元109,其中存储器存取单元109可支持虚拟存储器机制,使处理单元16(或其它中央处理单元)中断,以配合虚拟存储器机制。
图5为图4中图形处理单元绘图管线110的部分示意图,命令流处理器114可以接收图形处理单元命令流,为了判断与图形处理单元命令流所指定的特定图形处理单元环境相关的表面的可用性,命令流处理器114会检查存储器存取单元109的页面项登录表内的表面地址。
如前所述,如果与环境相关的表面还不能使用,则检查表面错误命令会使存储器存取单元109加载视讯存储器或其它存储器所储存的表面,于此同时,存储器存取单元109中断中央处理单元(图1的处理单元16)以获得这些还不能使可用的表面,同时,存储器存取单元109会将命令传回命令流处理器114(如图5所示),以中断缺乏部分表面的环境,使命令流处理器114暂时切换到另一环境,藉此,检查表面错误命令使得命令流处理器114切换至另一准备好的环境,如此可增加图形处理单元绘图管线110的整体效率以及速度。
另说明陷阱中断指令,当陷阱中断指令通过图形处理单元绘图管线110的某个组件(如写回单元组件,位于图4中图形处理单元绘图管线110的末端组件),便会产生中央处理单元中断信号,尤其是陷阱中断命令可用于通知中央处理单元应用程序,当陷阱中断命令到达图形处理单元管线的最后阶段,便可让中央处理单元应用程序知道图形处理单元84内的命令或数据组处理已经结束。
图6为图4中命令流处理器的部分示意图,说明陷阱中断命令的功能操作,于此非限定实施例中,命令流处理器114具有前端部分(第一部分)114a和后端部分(第二部分)114b,如图6所示,命令流处理器前端部分114a可接收图形处理单元命令流。
如图6所示,当数据及命令从命令流处理器前端部分114a被推入图形处理单元绘图管线110后,命令流处理器前端部分114a可以插入一陷阱中断符记(或类似的命令或识别码),表示数据及/或命令结束,如前所述,当图形处理单元绘图管线110中的某个处理区块或最后处理区块针对命令或数据组的处理结束,则该区块(或组件,如图形处理单元绘图管线的最后阶段121)会将陷阱中断符记传回命令流处理器114之后端部分114b。
命令流处理器后端部分114b便会通知中央处理单元(图1的处理单元16),如图6所示,命令流处理器后端部分114b也会将对应陷阱中断符记的一陷阱中断ID写入存储器86的事件历史缓冲器,供后续程序参考。
等候指令是一种能插入直接存储器存取流的指令,通知命令流处理器114要检查一特定计数器的值,于此非限定实施例中,计数器可为64位计数器,图7为图6中命令流处理器前端部分114a的示意图,其为图4中命令流处理器114的一部分。
于一非限定实施例中,如果计数值为一非零值,则命令流处理器114要减少计数值并且继续执行目前的图形处理单元环境;于一非限定实施例中,如果计数值是零,命令流处理器114会在等候指令前重置目前图形处理单元环境的指令指针,然后切换到运行列表(runlist)中的下一个环境,运行列表包含图形处理单元84所要执行的数个环境,当图形处理单元环境因应一等候指令而必须停止并于稍后再重新安排,在可能没有满足等候条件的情况下,命令流处理器114会再次执行等候指令。
于图7中,如果计数值(如图中的内部触发计数器(flip counter,FC)的值)等于1或其它非零的临限值,则命令流处理器前端部分114a会根据图形处理单元84内部的触发计数器而不是外部存储器的部分(如存储器86)执行指令,于一实施例中,减少触发计数值并继续执行目前的环境;当接收到一等候指令,计数值等于零,命令流处理器前端部分114a切换到运行列表中的另一环境,并重置(reset)新环境的指令指针,指令指针可指出目前要执行的指令。
除了检查内部触发计数器,等候指令也可以使命令流处理器前端部分114a检查存储器86内的计数器,于一非限定实施例中,检查存储器86内的计数器的值是否不等于零,其方式与前述类似,不同处在于执行外部等候命令是外部存储器的存取操作,而内部触发计数器则保留在图形处理单元84内,使得其操作较为快速。
等候指令的命令可为下列形式:
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  保留
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  0   1   1   0   0   1   DWF   保留   FC
第16位FC-触发计数器
0=操作外部64位计数器的命令
1=操作内部计数器的命令
第25-24位DWF-DWORD数目,为00或01
地址[31:0]
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  最低有效位地址   保留   TD
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  最高有效位地址
第0位TD-关闭虚拟-实体地址转换
0=存储器存取单元将转换此地址
1=存储器存取单元不会转换此地址
除了等候指令,命令流处理器114可用于信号操作,图8为图4中命令流处理器114的部分示意图,可用于执行信号指令。
数据流中可插入一信号指令以通知图形处理单元84必须要更新特定地址上的64位计数器的值,如图8所示,命令流处理器前端部分114a可以接收图形处理单元命令流中的信号指令,当接收到指令,命令流处理器前端部分114a会将64位计数器的值加1(或是其它预定的增量),其中,计数器也可以位于图1的存储器86内。
于此非限定实施例中,命令流处里器前端部分114a会忽略在加法运算中的潜在溢位(overflow),如果于指令中有一中断位(或其它预定位),命令流处理器前端部分114a也会发出一中央处理单元中断指令给处理单元16(相当于图8中的中央处理单元),于一非限定实施例中,当新(增量)计数值为1,即数值恰好从0转变成1(或从第一特定值转变成第二特定值)时,会送出中央处理单元中断指令,命令流处理器前端部分114a所接收到的这个信号指令有一参数,可以是必须更新的计数值的虚拟地址,本范例中所使用的计数器为64位。
信号指令的命令可为下列形式:
15  14  13  12  11 10  9  8  7  6 5 4  3  2  1  0
INT  保留
31  30  29  28  27  26  25  24  23  22  21  20  19  18  17  16
 0  1  1  0  0  1  DWF 保留
第15位INT 0→1转变时中断;于此信号指令的执行方式中,当计数值从0变成1时,发出中断要求
第25-24位DWF为DWORD数目,其值为1
地址[31:0]
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  最低有效位地址   保留   TD
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  最高有效位地址
第0位TD-关闭转换
0=存储器存取单元109将转换此地址
1=存储器存取单元109不会转换此地址
第31-3位排列的地址
图4的命令流处理器114还可以执行浏览指令,图9为图4中命令流处理器的部分示意图,可执行浏览命令或指令,当命令流处理器114接收到一预定同步信号,浏览指令可设定一显示接口单元(display interface unit,DIU)缓存器,浏览指令(或命令)会通过图形处理单元绘图管线110,然后回传到命令流处理器后端部分114b,命令流处理器114会等候从显示接口单元送出的特定同步信号到达,然后命令流处理器114可以利用命令中的数据规划特定的显示接口单元缓存器。
浏览指令可为下列形式:
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  INT   FE   浏览ID   HS2   PS1   PS2   HS1   SS1   SS2   SHOW
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  0   1   1   0   0   1   DWF   ADDR
第0位SHOW-显示供后端浏览操作的画面
第1位SS2-垂直同步
第2位SS1-垂直同步
第3位HS1-水平同步
第4位PS2-垂直同步
第5位PS1-垂直同步
第6位HS2-水平同步
第13-7位浏览ID-供前端浏览操作的用,当解析事件历史缓冲器时,驱动器可使用浏览ID
第14位FE-前端,识别前端及后端浏览命令
第15位INT-供前端浏览操作的用,命令流处理器在浏览执行时,向中央处理单元发出一中断要求
第23-16位ADDR-欲规划的第一显示接口单元缓存器的起始地址
第25-24位DWF-欲规划的缓存器数目(最大为3,前端浏览时值为1)
为了避免暂停图形处理单元绘图管线的最后阶段单元121,如图9所示,命令流处理器后端部分114b可以具有一保留缓冲器(可为一先进先出装置)137以储存特定数量的浏览+分界指令对,其中,分界命令或指令可用于区分环境、指令、数据等。
保留缓冲器137中可储存一等候指令,供同步浏览命令(或指令)利用,如果浏览指令后面紧接分界或其它预定命令,分界命令会和浏览命令在保留缓冲器137中堆栈在一起,所有接下来的浏览+分界指令对也会堆栈在保留缓冲器137中。
如果保留缓冲器137中储存有具有相同ADDR值的浏览指令,如同于前述非限定实施例的地址格式,则命令流处理器114会使其中较早的浏览指令无效,为了避免命令流处理器114使较早的浏览指令无效,可于命令中加入一SHOW位,具有SHOW位(第0位)的浏览指令不会被命令流处理器114丢弃。
当执行一浏览命令或指令,触发计数值会增加,如前所述,也可以利用一补码等候命令或指令使触发计数值减少。
命令流处理器114亦能执行内部等候(或暂停)指令,当等候从显示接口单元送出的显示回扫信号(display retrace signal)以及预先检查触发计数器,或是清除触发指令预先设定的等候屏蔽,内部暂停指令可以先暂停命令流处理器114,当命令流处理器114接收到这些信号,可以继续图形处理单元命令流。
图10为命令流处理器114的示意图,利用等候屏蔽或计数器执行内部暂停指令,当等候从显示接口单元送出的显示回扫信号,内部暂停指令可以先暂停命令流处理器114,当图形处理单元命令流进入命令流处理器前端部分114a,命令流处理器前端部分114a会检查触发计数器,确定触发计数值是否为0或其它的预定值,触发计数器可以是命令流处理器114的内部触发计数器,或是在图形处理单元84的其它位置,为一64位计数器。
如图10所示,如果触发计数值不等于0,则命令流处理器前端部分114a会减少计数值,并且执行图形处理单元命令流中的下一指令,换句话说,于此非限定实施例中,没有启动任何内部暂停。
如果触发计数值等于0,则命令流处理器前端部分114a会等候从显示接口单元(或其它预定单元)送出的显示回扫信号(或其它信号),如图10所示,命令流处理器前端部分114a会检查是否接收到从显示接口单元送出的显示回扫信号,如果命令流处理器前端部分114a没有从显示接口单元接收到显示回扫信号,则命令流处理器前端部分114a会暂停,持续到从显示接口单元接收到显示回扫信号为止;当接收到显示回扫信号,命令流处理器前端部分114a会继续操作,执行图形处理单元命令流的下一个指令。
命令流处理器前端部分114a所接收到的内部暂停指令可以具有如下格式:
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  保留   PG   AES   SPP   2D   PS1   PS2   HS1   SS1   SS2   HS2
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  P   0   0   1   1   0   DWF   保留   WM   保留   FC
第0位HS2-水平同步
第1位SS2-垂直同步
第2位SS1-垂直同步
第3位HS1-水平同步
第4位PS2-垂直同步
第5位PS1-垂直同步
第6位2D-二维前端闲置
第7位SPP-SPP闲置
第8位AES-AES闲置
第9位PG-PG闲置
触发计数器状态暂停:
第16位FC-触发计数器
0=不受最佳触发计数器状态的影响
1=如果触发计数值为0,暂停命令流处理器,接着
等候直到状态改变;否则减少计数值并继续程序
等候标志(屏蔽)暂停或完成管线清空命令
第18位WM-等候屏蔽
0=不必等待等候屏蔽值变成0
1=等待等候屏蔽值变成0
第25-24位DWF=00
于此非限定实施例中,命令流处理器等后屏蔽系以第18位表示,可使软件驱动器同步命令流处理器114以接收图形处理单元绘图管线110的信息,可以藉由通过图形处理单元绘图管线110并回传至命令流处理器114的一触发命令设定及清除等候屏蔽。
图11为使用命令流处理器等候屏蔽的示意图,其中命令流处理器114会等待存储器存取单元109将所有的缓存器传回命令流处理器储存缓冲器,如前所述,于一非限定实施例中,可利用命令流处理器触发「设定等候」命令来设定命令流处理器等候屏蔽位(如第18位)或计数器,因此存储器存取单元触发「转储暂存」命令(此为一非限定的名称)将被传送至存储器存取单元109,之后命令流处理器「后端」触发「清除等候」命令将通过存储器存取单元109,以清除指定位(或减少计数器值),于此非限定实施例中,指定位为第18位。
然后,可发出一命令流处理器内部等候(或暂停)命令,以等待清除命令流处理器114等候屏蔽(或计数器),这个命令顺序会使命令流处理器114暂停解析输入命令流,直到接收到所有的存储器存取单元109的缓存器而且命令流处理器触发符记通过存储器存取单元109为止,然而,熟悉此技艺者可知,所举存储器存取单元109为非限定实施例,吾等亦可使用图形处理单元绘图管线110中的一个或多个其它区块或组件。
图11显示用于执行一内部等候屏蔽的一非限定程序流程,可应用于图4的图形处理单元绘图管线中,先定义一个欲与命令流处理器前端部分114a同步的管线区块,可使得定义的管线区块在命令流处理器前端部分114a继续命令解析前完成一些操作,如图11所示,可将触发命令152送至命令流处理器前端部分114a,于此非限定实施例中,触发命令152可设定等候屏蔽位(如前述第18位)或计数器为一预定状态,于此非限定实施例中,可将一存储器存取单元触发「转储暂存」命令154传送至存储器存取单元109以触发某些操作,命令流处理器前端部分114a根据接收与存储器存取单元109有关的命令154,可以送出一组命令定义特定区块的操作。
命令流处理器前端部分114a可接收下一个触发命令157,并将其传送给存储器存取单元109,再传给命令流处理器后端部分114b,如图11所示,这个命令157可包含一清除等候屏蔽(或减少计数值)选项,存储器存取单元109在接收到与清除等候屏蔽位(其系的前由命令152所设定)有关的触发命令后,会将其传送给命令流处理器后端部分114b,命令流处理器114于接收到触发命令152时进行等候操作,直到接收到等候清除命令157为止,而存储器存取单元109要等到完成触发「转储暂存」命令154,才会传送等候清除命令157。
如此,存储器存取单元109最后传送等候清除指令157给命令流处理器后端部分114b的等候屏蔽缓存器,这种候屏蔽缓存器与命令流处理器前端部分114a的对应缓存器相关,藉此,在接收到所有的存储器存取单元109缓存器,同时命令流处理器触发符记(于此实施例中为等候清除命令157)通过存储器存取单元109之后,命令流处理器114可以有效地暂停解析输入命令流。
如前面有关等候(或暂停)指令的说明,命令流处理器114可以执行触发功能或指令,触发指令可让命令流处理器114开始一预载、无效、清空、排出、清除、自动清除操作或其它针对图4中图形处理单元绘图管线110内的不同区块或单元的操作,所列的位格式为一非限定实施例,目的在显示命令流处理器114如何于图形处理单元绘图管线110内的一个或多个组件中触发事件(即预载、无效、清空等等)。
  15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0
  r   区块ID   保留   触发位
  31   30   29   28   27   26   25   24   23   22   21   20   19   18   17   16
  P   1   0   1   0   1   DWF   保留   POS   BE   辅助区块ID
第7-0位触发位;指定要执行的操作。
第14-10位区块ID;指定位于图形处理单元绘图管线110中的特定区块,接收触发命令后进行预定操作。
第20-16位辅助区块ID;这些位指定图形处理单元绘图管线110内的其它区块,这个信息和区块ID有关,当第21位的BE设定成1,可传送命 令给此区块,如果BE设定成0,则忽略此辅助区块ID位。
第21位BE(后端);这个位对应命令流处理器「后端」触发,可以和辅助区块ID(第20-16位)一起通过图形处理单元绘图管线110,然后回传到命令流处理器,以达成同步目的。
第22位POS(位置);这个位和命令流处理器114是否要输出通过图形处理单元绘图管线110的一位置命令有关,以配合对应的触发命令。
第25-24位DWF(双字符域(double word field)),指定这个命令之后有多少的双字符,其值根据接收这个触发命令的区块而定,有些区块需要较多或较少的双字符。
这个触发命令可做为多功能内部缓冲器管理及同步命令,而被传送至图形处理单元绘图管线110中的多个单元(或区块),如前所述,此触发命令的操作可于触发位屏蔽(第7-0位)定义,另外,每一潜在接收区块的操作可能因特定管线区块的功能性而不同,可应用至命令流处理器114、存储器存取单元109、阴影产生器(shade generator,SG)117、属性设定单元(attributesetup unit,ASU)118、写回单元(write back unit,WBU)119及其它图4中所示区块(及其它图4未绘出,但熟悉此技艺人士可知位于图形处理单元84的区块),因此,接收触发命令的每一区块可能因其功能性而进行不同的操作。
如前所述,于一非限定实施例中,触发命令可以送至命令流处理器114,如前面有关命令流处理器导向的触发命令的说明,可同时配合使用控制位POS(第22位)及后端位BE(第21位)可与辅助区块ID位(第20-16位)。
于一非限定实施例中,下表说明几个命令流处理器114导向的触发命令选项:
触发屏蔽位 操作名称 说明及其它相关命令
第1位 清除修改 送出命令流处理器触发「清除修改」命令会使得命令流处理器114标示所有的阴影暂存缓冲器内容为「未写入」,如此会让命令流处理器114不要在下一个命令清空「修改」的内容,这个命令可用于除错/验证阶段,在一开始恢复所有命令后,可
帮助缩小转储的尺寸
第2位 清除等候 清除等候屏蔽
第3位 设定等候 设定等候屏蔽
第4位 清空Q$ 命令流处理器触发「清空Q$」命令用于清空命令流处理器咨询高速缓存中所有未储存的内容,并储存咨询标志存储器的内容到指定位置,这个命令只在命令流处理器前端执行,命令中通常都有储存预测ID数据的位置的地址。
第6位 载入Qid 命令流处理器触发「加载Qid 」命令可以使得咨询预测缓冲器的先前储存内容再载回命令流处理器的缓冲器,这个命令需要DW[1]做为储存预测结果的512位定位缓冲器的地址。
藉由辅助区块ID域(于一非限定实施例中为第20-16位)所定义的特定管线区块,命令流处理器114可以重新导向触发命令到命令流处理器后端部分114b,图12为图4中命令流处理器114的示意图165,可执行由命令流处理器114重新导向的命令流处理器导向触发命令。
如图12所示,命令流处理器前端部分114a可以传送触发命令167给图4中图形处理单元绘图管线110内的寻址接收管线区块J 169,于此非限定实施例中,命令流处理器114会利用触发命令167内对应辅助区块ID的第20-16位的识别信息,来识别管线区块J。
如图12所示,命令流处理器前端部分114a可以传送触发命令167给图4中图形处理单元绘图管线110内的寻址接收管线区块J 169,于此非限定实施例中,命令流处理器114会利用触发命令167内对应辅助区块ID的第20-16位的识别信息,来识别管线区块J。
图13为绘图管线的例示图,包含图1所示图形处理单元84的一部分,其中说明了命令流处理器前端部分114a如何将触发命令传送给绘图管线的各组件,可看出与各特定组件配合的各特定命令。
应强调的是,以上所述的具体例及非限定实施例仅为可能的施行范例,仅用以清楚说明本披露的原理,即便对上述具体例及非限定实施例施以变化和修饰,然皆不脱此中所述的精神和范围。所有这种修饰及变化应涵括于本发明的范围内,受如附申请专利范围保护。

Claims (28)

1.一种同步一应用程序与一绘图管线的方法,包含下列步骤:
一绘图管线中的一特定组件接收一输入流内的一图形处理单元指令,该图形处理单元指令是由该应用程序所产生,并根据一中央处理单元所执行的该应用程序而被插入该输入流,该特定组件的第一部分耦接至该绘图管线的次一组件,该特定组件的第二部分藉由多个反馈路径耦接至该绘图管线内的多个组件;
从该第一部分传送与该图形处理单元指令有关的一图形处理单元命令到该次一组件以及与该特定组件耦接的另一组件中的至少一组件;以及
该至少一组件接收与该图形处理单元指令有关的该图形处理单元命令,并执行与该图形处理单元命令相关的数个特定操作。
2.如权利要求1所述的方法,其中该图形处理单元指令包含:
一操作码部分;以及
至少一双字符部分,其包含一识别信息、地址信息及数据中的至少一项信息。
3.如权利要求1所述的方法,其中该操作码部分及该至少一双字符部分均为32位。
4.如权利要求1所述的方法,其中该图形处理单元指令为一检查表面错误指令,该检查表面错误指令包含下列步骤:
从该特定组件传送一图形处理单元命令给一接收组件,以检查一虚拟存储器及决定将于该绘图管线中执行的一特定环境的所有表面是否可用;
当该虚拟存储器没有该特定环境所需的所有表面,中断该特定组件的该特定环境,并切换至一新环境;以及
产生一中断讯息,以取回不在该虚拟存储器内的所有表面。
5.如权利要求4所述的方法,还包含下列步骤:
当该虚拟存储器取回所有表面,恢复中断的该特定环境。
6.如权利要求4所述的方法,其中该中断讯息被传送至该中央处理单元。
7.如权利要求4所述的方法,其中该接收组件为一存储器存取单元组件。
8.如权利要求4所述的方法,还包含下列步骤:
如果该虚拟存储器包含该特定环境所需的所有表面,因应从该特定组件传送给该接收组件的该命令,继续执行该特定环境。
9.如权利要求1所述的方法,其中该图形处理单元指令为一陷阱中断指令,该陷阱中断指令还包含下列步骤:
从该特定组件的该第一部分传送一陷阱中断符记给该绘图管线中的该次一组件,其中该陷阱中断符记是经由该绘图管线传送至该绘图管线的一最后阶段组件;
藉由一反馈路径从该最后阶段组件传送该陷阱中断符记给该特定组件的该第二部分;以及
当该特定组件的该第二部分接收到该陷阱中断符记,产生一中断讯息给该中央处理单元。
10.如权利要求9所述的方法,其中该中央处理单元接收到该中断讯息后,识别与该绘图管线内指定命令或数据的处理结束有关的中断讯息。
11.如权利要求9所述的方法,还包含下列步骤:
从该特定组件的该第二部分传送与该陷阱中断符记有关的一识别讯息给一存储器储存。
12.如权利要求1所述的方法,其中该应用程序产生图形处理单元指令为一等候指令,所述候指令还包含下列步骤:
该特定组件的该第一部分识别该输入流内的所述候指令;
检查一计数器,判断一计数值是否大于或等于一临限值;
当该计数值大于该临限值,减少该计数值,并继续执行与目前绘图环境有关的指令;以及
当该计数值等于该临限值,将该特定组件的该第一部分从该目前绘图环境切换至另一绘图环境;其中该计数器为一触发计数器,位于包含该图形管线的一图形处理单元内。
13.如权利要求12所述的方法,其中该计数器位于视讯存储器内,该视讯存储器位于包含该绘图管线的该图形处理单元之外。
14.如权利要求12所述的方法,其中该计数器为一64位计数器。
15.如权利要求12所述的方法,还包含下列步骤:
当该特定组件的该第一部分从该目前绘图环境切换至另一绘图环境,重置一指令指针到一预定逻辑点。
16.如权利要求1所述的方法,其中该图形处理单元指令为一浏览指令,该方法还包含下列步骤:
从该特定组件的该第一部分传送一浏览符记给该绘图管线内的该次一组件,其中该浏览符记通过该绘图管线而移往该绘图管线内的该最后阶段组件;
藉由该反馈路径从该绘图管线内的该最后阶段组件传送该浏览符记给该特定组件的该第二部分;
该特定组件等候从一显示接口单元接收一信号;以及
利用与该浏览符记相关的数据规划该显示接口单元的一缓存器。
17.如权利要求16所述的方法,还包含下列步骤:
缓冲从该反馈路径接收到的数个浏览符记,其中根据接收到的一命令,一缓冲器的一输出将从该反馈路径接收到的该浏览符记传送给该特定组件的该第二部分。
18.如权利要求1所述的方法,其中该图形处理单元指令为一内部暂停指令,该方法还包含下列步骤:
该特定组件的该第一部分接收该暂停指令;
检查一触发计数器,判断一计数值是否等于一预定值;
当该计数值等于该预定值,检查是否从一预定单元接收到一预定信号;以及
暂停该特定组件进行操作,直到接收到该预定信号为止。
19.如权利要求18所述的方法,还包含下列步骤:
反复检查一等候屏蔽计数器;以及
当所述候屏蔽计数器的值不等于一预定值,暂停该特定组件进行操作。
20.如权利要求18所述的方法,其中该预定单元为一图形处理单元内的一显示接口单元。
21.如权利要求18所述的方法,其中还包含下列步骤:
当该计数值大于该预定值,减量少计数值。
22.如权利要求18所述的方法,其中该预定值为0。
23.如权利要求1所述的方法,其中该图形处理单元指令为一触发指令,该方法还包含下列步骤:
该特定组件的该第一部分接收该触发指令;
输出一操作码指令给该绘图管线中的一目标组件,该目标组件耦接于该特定组件的该第一部分;
使该目标组件执行对应该操作码指令的一编码部分的一指示操作;
当执行该指示操作,经由该反馈路径从该目标组件传送一应答信号给该特定组件的该第二部分;以及
当从该反馈路径上接收到该应答信号,执行一应答操作。
24.如权利要求23所述的方法,其中该指示操作为一预载操作、一清空操作、一排出操作、一快取无效操作或一等候(暂停)屏蔽更新操作。
25.如权利要求23所述的方法,其中该触发指令包含该操作码指令。
26.如权利要求23所述的方法,其中该应答操作为清除先前于接受到该触发指令时所设定的一等候屏蔽。
27.如权利要求1所述的方法,其中该图形处理单元指令为一等候屏蔽指令,该方法还包含下列步骤:
该特定组件的该第一部分从一输入流中接收一等候指令,所述候指令具有一等候屏蔽设定部分;
该特定组件的该第一部分接收一目标操作命令,将其传送至该绘图管线内的一辅助区块,其中该辅助区块执行与该目标操作命令内的数据有关的一预定操作;
该特定组件的该第一部分接收一等候清除触发指令,将其传送至该绘图管线内的一辅助区块,接着从该绘图管线的该辅助区块传送给该特定组件的该第二部分;以及
该特定组件的该第一部分接收一内部等候命令及一等候屏蔽状态检查指令,并判断该特定组件的该第二部分是否有接收到所述候清除触发指令,以清除所述候屏蔽设定部份。
28.如权利要求27所述的方法,其中该特定组件接收到该内部等候命令及所述候屏蔽状态检查指令后,停止处理指令,直到判断该特定组件的该第二部分接收到所述候清除指令为止。
CN 200610136593 2005-10-26 2006-10-26 图形处理单元管线多阶同步控制处理器及其方法 Active CN100538737C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73044405P 2005-10-26 2005-10-26
US60/730,444 2005-10-26

Publications (2)

Publication Number Publication Date
CN1983326A true CN1983326A (zh) 2007-06-20
CN100538737C CN100538737C (zh) 2009-09-09

Family

ID=38165842

Family Applications (4)

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 图形处理单元管线多阶同步控制处理器及其方法
CN 200610137496 Active CN101034469B (zh) 2005-10-26 2006-10-26 图形处理单元管线同步及控制系统和方法

Family Applications Before (2)

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 图形处理单元的同步方法以及围篱/等待同步组件

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN 200610137496 Active CN101034469B (zh) 2005-10-26 2006-10-26 图形处理单元管线同步及控制系统和方法

Country Status (3)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719262B (zh) * 2008-11-06 2013-07-24 威盛电子股份有限公司 绘图处理单元以及元命令处理系统
CN106651745A (zh) * 2016-12-12 2017-05-10 中国航空工业集团公司西安航空计算技术研究所 一种分离式图形处理器指令处理系统
CN108140363A (zh) * 2015-12-18 2018-06-08 Ati科技无限责任公司 基于翻转队列管理的图形上下文调度
CN110443742A (zh) * 2018-05-02 2019-11-12 Arm有限公司 数据处理系统
CN117707625A (zh) * 2024-02-05 2024-03-15 上海登临科技有限公司 支持指令多发的计算单元、方法及相应图形处理器

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822032B1 (en) * 2004-03-30 2010-10-26 Extreme Networks, Inc. Data structures for supporting packet data modification operations
US7304996B1 (en) 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
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
US8452981B1 (en) 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US7818306B2 (en) * 2006-03-24 2010-10-19 International Business Machines Corporation Read-copy-update (RCU) operations with reduced memory barrier usage
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
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
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
US9176795B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics processing dispatch from user mode
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US20120194525A1 (en) * 2010-12-13 2012-08-02 Advanced Micro Devices, Inc. Managed Task Scheduling on a Graphics Processing Device (APD)
US20120229481A1 (en) * 2010-12-13 2012-09-13 Ati Technologies Ulc Accessibility of graphics processing compute resources
US20120188259A1 (en) * 2010-12-13 2012-07-26 Advanced Micro Devices, Inc. Mechanisms for Enabling Task 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
WO2012167396A1 (en) * 2011-06-07 2012-12-13 Telefonaktiebolaget L M Ericsson (Publ) An innovative structure for the register group
US10013731B2 (en) 2011-06-30 2018-07-03 Intel Corporation Maximizing parallel processing in graphics processors
JP5772962B2 (ja) * 2011-08-29 2015-09-02 富士通株式会社 情報処理装置、メモリダンプ採取方法、及びプログラム
US9652282B2 (en) * 2011-11-08 2017-05-16 Nvidia Corporation Software-assisted instruction level execution preemption
US9147224B2 (en) * 2011-11-11 2015-09-29 Nvidia Corporation Method for handling state transitions in a network of virtual processing nodes
US8976185B2 (en) * 2011-11-11 2015-03-10 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
WO2013081593A1 (en) * 2011-11-30 2013-06-06 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
US9292569B2 (en) 2012-10-02 2016-03-22 Oracle International Corporation Semi-join 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 上海兆芯集成电路有限公司 由装置端推核心入队列的装置
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
WO2018093354A1 (en) * 2016-11-15 2018-05-24 Google Llc Systems and methods for reducing download requirements
CN106708601A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种面向GPU实现的虚拟IOringbuffer的方法
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
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

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
AU2001238146A1 (en) 2000-02-10 2001-08-20 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
EP1405184A2 (en) * 2001-06-29 2004-04-07 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
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719262B (zh) * 2008-11-06 2013-07-24 威盛电子股份有限公司 绘图处理单元以及元命令处理系统
CN108140363A (zh) * 2015-12-18 2018-06-08 Ati科技无限责任公司 基于翻转队列管理的图形上下文调度
CN106651745A (zh) * 2016-12-12 2017-05-10 中国航空工业集团公司西安航空计算技术研究所 一种分离式图形处理器指令处理系统
CN110443742A (zh) * 2018-05-02 2019-11-12 Arm有限公司 数据处理系统
CN117707625A (zh) * 2024-02-05 2024-03-15 上海登临科技有限公司 支持指令多发的计算单元、方法及相应图形处理器
CN117707625B (zh) * 2024-02-05 2024-05-10 上海登临科技有限公司 支持指令多发的计算单元、方法及相应图形处理器

Also Published As

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

Similar Documents

Publication Publication Date Title
CN100538737C (zh) 图形处理单元管线多阶同步控制处理器及其方法
CN100538736C (zh) 存储和回存状态上下文在图形处理单元的方法和装置
CN100435172C (zh) 可中断图形处理单元处理多个程序的方法和图形处理单元
CN1916961B (zh) 可中断图形处理单元及其控制方法
CN102103483B (zh) 汇聚和散布多个数据元素
KR100436675B1 (ko) 멀티쓰레드 프로세서에서 공유 파이프라인 및 다른파이프라인 스테이지의 선택적인 플러쉬
CN1095115C (zh) 在超标量处理器中检测和执行俘获的装置
CN101730881B (zh) 包括多个处理器的系统以及操作该系统的方法及设备
CN101241428A (zh) 用于将命令发布到总线上的方法、装置和系统
CN102105871A (zh) 虚拟处理设备的中断控制
CN103197919A (zh) 还原寄存器重命名映射
CN102770841A (zh) 用于产生最小引导映像的方法和装置
JPH0766329B2 (ja) 情報処理装置
CN103348323A (zh) 动态二进制优化
JPH08505965A (ja) コンテキスト切り換え装置及び方法
CN101110017A (zh) 一种组合指令的技术
JP2007529833A (ja) アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
CN102750130A (zh) 分配计数器以追踪寄存器映射的方法和系统
CN104461970B (zh) Dma控制器、移动终端以及数据搬运方法
GB2348306A (en) Batch processing of tasks in data processing systems
CN103559087A (zh) 一种虚拟处理器之间的中断的实现方法、相关装置和系统
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
CN100538648C (zh) 基于专用处理单元的使用动态修改系统参数
CN101918982B (zh) 图形流水线的有效状态管理
US8600727B2 (en) Streamlined execution of emulated code using block-based translation mode

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