CN106055310A - 图形处理中管理活动线程依赖关系 - Google Patents
图形处理中管理活动线程依赖关系 Download PDFInfo
- Publication number
- CN106055310A CN106055310A CN201610298554.3A CN201610298554A CN106055310A CN 106055310 A CN106055310 A CN 106055310A CN 201610298554 A CN201610298554 A CN 201610298554A CN 106055310 A CN106055310 A CN 106055310A
- Authority
- CN
- China
- Prior art keywords
- thread
- dependence
- scoreboard
- macro block
- execution
- 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
Links
- 238000000034 method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 18
- 230000001419 dependent effect Effects 0.000 abstract 1
- 238000002372 labelling Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Television Systems (AREA)
Abstract
本申请涉及“图形处理中管理活动线程依赖关系”。本发明的名称为图形处理中管理活动线程依赖关系。视频处理器的记分牌可以仅跟踪尚未完成执行的已调度的线程。第一个线程可以自行监听必须在第一个线程的执行之前被执行的第二个线程的执行。可以对线程执行自由地重新排序,唯一要求的规则是,其执行依赖于第一个线程的执行的第二线程只能在第一个线程之后被执行。
Description
本分案申请的母案申请日为2009年6月30日、申请号为200910159422.2、发明名称为“图形处理中管理活动线程依赖关系”。
技术领域
本发明一般涉及图形处理,并且确切地来说涉及图形处理过程中信息的解码。
背景技术
为了减少往基于处理器的系统和从基于处理器的系统传送数据的带宽,可以采用压缩信息的方式来对信息编码。当该信息到达接收基于处理器的系统时,必须将其解码或解压。
通常,在具有许多执行单元的系统中,可以利用软件来跟踪线程依赖关系(dependency)–其中一个线程的执行依赖于另一个线程的执行。线程依赖关系是重要的,因为当有大量线程,并且一些线程必须在另一些线程之前执行时,必须考虑这些依赖关系。但是当线程的数量很大,且依赖关系的数量很大时,维护所有线程和所有依赖关系的状态往往很麻烦。
发明内容
本发明提供了一种方法,包括:在寄存器中,通过仅跟踪所述寄存器接收的尚未完成执行的线程,管理线程和线程依赖关系,以便由多个执行单元来执行线程。
本发明还提供了一种设备,包括:视频前端;以及耦合到所述视频前端的寄存器,耦合到线程调度器的线程响应器,以及所述寄存器仅跟踪所述寄存器接收的尚未完成执行的线程。
本发明还提供了一种系统,包括:
图形处理器,包括:
视频前端;
耦合到所述视频前端的线程派生器,所述线程派生器包括记分牌,所述记分牌仅维护所述记分牌接收的尚未完成执行的线程;
耦合到所述线程派生器的线程调度器;
耦合到所述线程调度器的多个执行单元;以及
耦合到所述处理器的硬盘驱动器。
附图说明
图1是根据本发明的一个实施例的系统说明;
图2是本发明的一个实施例的示意图说明;
图3是示出根据一个实施例的图1的线程派生器(spawner)的框图;
图4是两个不同帧中的宏块的说明;以及
图5是根据本发明的一个实施例的图2的记分牌寄存器22的说明。
图5是根据本发明的一个实施例的系统说明。
具体实施方式
图1所示的计算机系统130可以包括通过总线104耦合到芯片组核逻辑110的硬盘驱动器134和可移动媒体136。在一个实施例中,核逻辑可以耦合到图形处理器112(经由总线105)和主或宿主处理器100。还可以通过总线106将图形处理器112耦合到帧缓冲器114。可以通过总线107将帧缓冲器114耦合到显示屏118,然后显示屏118又通过总线108耦合到常规组件,例如键盘或鼠标120。
在软件实现的情况中,可以将相关代码存储在任何适合的半导体、磁或光存储器(包括主存储器132)中。因此,在一个实施例中,代码139可以存储在机器可读媒体(例如主存储器132)中,以便供处理器(例如处理器100或图形处理器112)执行。
参考图2,图形核逻辑110可以包括图形流水线。图形流水线可以包括命令流操作器(command streamer)10、视频前端12和耦合到线程调度器18的线程派生器14,此外还包括一些其他组件。
图形核逻辑110可以通过命令流操作器10从驱动程序或图形处理器112或主处理器100执行的其他软件来接收输入。通常,驱动程序提供必须由图形处理器112的多个执行单元16来执行的工作。由线程调度器18来调度必须执行的任务。线程派生器14创建任务,然后由执行单元16来执行线程。
在一个实施例中,命令流操作器10可以是用于提取控制始发于宿主或主处理器100的线程生成的命令的直接存储器访问引擎。视频前端12包含视频处理功能。线程派生器14负责生成并仲裁始发于可能包括处理单元16的宿主和图形处理器112的线程。线程调度器16仲裁线程生成请求。
参考图3,线程派生器14包括根线程请求队列20,线程派生器14从视频前端12接收这些根线程请求。根线程是可以创建后续子线程的线程。这些线程请求被存储在根线程请求队列20中。任何由执行单元16中运行的另一个线程创建的线程称为子线程。子线程可以创建附加线程,全部均在经由视频前端12路径请求的根的树之下。
线程派生器14存储获取已经就绪可供调度的根线程所需的信息,并随后跟踪被调度的线程直到它们引退(retirement)为止。线程派生器14还在根和子线程之间执行仲裁。线程请求队列20馈送(feed)记分牌(scoreboard)22,记分牌22管理线程间的依赖关系以及根线程的调度(dispatch)。派生线程请求队列32负责请求从根线程派生的线程。
来自记分牌22的输出去到缓冲器24,而来自派生线程请求队列32的输出去到缓冲器34。将这两个缓冲器24和34同步,如缓冲器24与34之间的箭头A所示。缓冲器24的输出是根线程,而缓冲器34的输出是子线程。由同步乘法器26将这些线程同步以便传输到线程调度器18。
记分牌22考虑线程之间的空间依赖关系。图4可以用于说明两个不同帧Z和Z+A内和之间的空间依赖关系的示例。在帧Z中,所关心的宏块可具有相对于帧内所有其他宏块的坐标(X,Y),其中X和Y给出行和列坐标。假定图像的原点(0,0)在左上角,宏块(X,Y)正上方的宏块是(X,Y-1),而紧靠宏块(X,Y)左边的是(X-1,Y),并以此类推。为了将给定宏块解码,可能需要从其邻居(例如邻居(X-1,Y)、(X-1,y-1)、(X,Y-1)和(X+1,Y-1))解码信息。
可以通过记分牌22来跟踪这些依赖关系。在由线程派生器调度到执行单元的过程中,记分牌22基本上相对于所关心的宏块(在此情况中为宏块(X,Y))来考虑这些依赖关系。因此,如果宏块(X,Y)依赖于宏块(X,Y+1),则宏块(X,Y)与Y方向上+1的宏块依赖关系之间存在德尔塔(delta)。可以通过三坐标系统来指定它,其中X是第一坐标、Y是第二坐标以及Z是第三坐标。因此,对于宏块(X,Y)而言,通过(0,1,0)的德尔塔来指定这种依赖关系。对于任何宏块来说可能有许多依赖关系,因此许多德尔塔被检查。
Z方向包含两个不同帧之间的依赖关系。例如,如果帧Z中的宏块(X,Y)依赖于帧Z+A中的宏块(X,Y),则在Z方向上存在依赖关系。此依赖关系还可以指定为(0,0,A)的德尔塔。
Z还可以用于表示相同帧上彼此不依赖的不同逻辑进程。如果那些进程是A和B,则对所有A操作可以将Z设为等于零,以及对所有B操作可以将Z设为等于1。这允许一个物理记分牌通过将所有Z德尔塔值保持为零来管理许多逻辑记分牌。因此,可以使用Z来管理(1)具有依赖关系的宏块,(2)没有依赖关系的宏块,(3)不同帧上的宏块,或(4)涉及相同帧的不同操作的宏块。
因此,参考图5,其中示出记分牌22的更详细操作,由框50处理来自视频前端12的线程请求,其获取当前线程的唯一线程标识符(TDID)并标记记分牌寄存器68。记分牌寄存器68包括对应于每个坐标X、Y和Z的列以及对应于每个编号的线程或每个线程标识符的行。每个活动线程接收线程标识符(具有标识符1至N)以构成记分牌寄存器68的行。
简单地标记记分牌意味着无论何时,只要调度线程,则必须通知记分牌寄存器68:一个线程在运行中。优先级编码器74通过查看寄存器66中有效位来确定下一个可用线程标识符是什么。寄存器66实际上告知记分牌寄存器68中哪些位是有效的。因此,将下一个有效位指定给下一个线程,然后在框50处将该线程视为“已标记”。作为被标记的结果,在记分牌寄存器68中建立对应于该线程标识符的项(entry),将该项置于适合的行中,其中这些行编号为从1至N。标记的线程提供其X、Y和Z坐标,而作为回报,为该线程提供也可以视为行号的线程标识符。当在执行单元16中通过完成执行将线程引退时,该线程交还(surrender)其线程标识符。
一般来说,虽然为所有线程提供线程标识符,但是对于没有依赖关系的独立线程在记分牌中需要的处理更少。那些线程可以从框50向上传递,并上至仲裁器56的上方端口。
在先进先出(FIFO)缓冲器52中收集依赖线程。依赖线程的执行依赖于另一个潜在活动(潜在未执行)的线程的执行。这允许移动通过框50的多个依赖线程离开(get themout of the way),使得确保在未决的依赖关系使依赖线程FIFO缓冲器52停滞时可以快速地处理独立线程并将其传送到仲裁器56。仲裁器56在依赖线程停滞时查看独立线程。
然后依次从先进先出缓冲器52处理依赖线程。在框72中标识它们的依赖关系,并在一些情况中可以利用那些依赖关系来标记线程依赖关系寄存器30。框54将依赖关系和那些依赖关系的X、Y和Z坐标提供到框72。在一个实施例中,如果两种类型的线程都已就绪可供调度,则可以对依赖线程赋予较高的优先级。如上所述,框72从线程的坐标以及其中存在依赖关系的宏块或帧的相对坐标来确定(develop)德尔塔。
在记分牌22的一个操作模式(称为“停滞模式”)中,记分牌22在生成下一个X、Y和Z坐标或德尔塔,或清除当前线程以用于调度之前等待匹配。因此,在停滞模式中,直到某线程依赖的所有线程都被引退(即被执行且不再处于活动,即引退)之后,才启动该线程。因此,当遇到停滞模式且缓冲器52变满时,线程FIFO缓冲器52还通知视频前端12,如框52下方箭头所指示的。
仲裁器56选择要由执行单元16执行的独立或依赖线程,以便通过线程有效负荷58传递它。已经由执行单元16执行的线程回到框60,这将从记分牌寄存器68以及任何匹配线程寄存器30中清除线程标识符。比较器62帮助发现匹配线程寄存器30。
因此,一旦执行了线程,则需要通知其执行依赖于该线程的执行的任何线程。尤其在停滞模式中,线程在它依赖的所有线程被执行之前无法被调度。比较器62可以用于重设线程依赖关系寄存器30以移除在检查线程依赖关系期间引退的任何线程的依赖关系。
然后,内容可寻址存储器或CAM 70确定寄存器68中是否有希望进行调度的线程依赖于之的任何线程。如果在记分牌寄存器68的任何行中均没有项,则可以推断当前在执行中没有此类依赖线程,并且可以将该线程作为就绪可调度来释放,并可以从框54将其传递到仲裁器56中。如果在停滞模式中有依赖关系,则可以强制该线程等待那些依赖关系清除。
根据记分牌22的另一个操作模式(称为广播模式),该模式比停滞模式更鲁棒(robust),确定要调度的给定线程的依赖关系,获取那些依赖关系的线程标识符,并将其置于线程依赖关系寄存器30中,然后即使那些依赖关系仍存在或未决(outstanding),仍调度该线程。
实际上,将该线程调度到执行单元16,并指令(call upon)该线程管理它自己的依赖关系。该线程通过监听广播到每个执行单元16和记分牌的引退线程TDID(框60)来执行此目的。一旦线程确定它所依赖的所有线程均已被清除,则在执行单元16中处于空闲状态的该线程可以接着在该执行单元16中执行。
在一个实施例中,每个线程使用8个位来指示最多8个依赖关系(各由德尔塔所指示)中哪个是重要的。这8个德尔塔按预定义的次序加载到连续的线程依赖关系寄存器30中。随后,该线程基于其8个位获知它必须检查哪个依赖关系寄存器来确定涉及的这些依赖关系是否已引退。
与停滞模式的差异在于,在广播模式中,线程基本由记分牌来启动,然后线程实际通过观察引退线程信息来自己控制它何时开始执行。在广播模式中,从仲裁器56调度当前线程,其具有未决依赖关系和线程依赖关系寄存器30的附加有效负荷,该附加有效负荷包含所有未决依赖线程的线程标识符。
当给定线程通过执行单元16执行而引退时,除了通知记分牌22外,它还将其线程标识符广播到所有执行单元16。一旦调度的线程接收到与它一起调度的所有线程依赖关系寄存器的线程标识符,则调度的线程开始执行。
在又一种操作模式(称为依序模式)中,记分牌22标记依赖于紧接当前线程之前调度的线程的线程标识符的每个线程。
根据本发明的一些实施例,记分牌22可以采用硬件来实现,这可以提高性能和速度。在一些实施例中,硬件记分牌22可以更有效率地以无序方式调度线程,从而允许对工作量重新排序以实现性能提高。在一些实施例中,记分牌22要求的唯一规则是,其执行依赖于线程B的执行的线程A必须在线程B到达记分牌22之后到达记分牌22。如果线程A在线程B之前到达,则记分牌将注意不到线程B而假定线程B已引退,因此不正确地清除线程A。但是,可执行任何其他重新排序,例如为了提高性能。一般,在一些实施例中,驱动程序确保该规则始终被遵守。
在一些实施例中,必须执行的线程的数量远超过记分牌22中的活动线程的数量。在一些实施例中,通过使记分牌22能够仅跟踪活动线程(即,尚未引退的线程),可以大大地提高记分牌的大小和效率。
图1、2、3和5中指示的框可以构成硬件和软件组件。在软件组件的情况中,附图可以指示可存储在计算机可读媒体(诸如半导体集成电路存储器、光存储装置或磁存储装置等)中的指令序列。在此类情况中,指令可由计算机或基于处理器的系统来执行,计算机或基于处理器的系统从存储装置中检索指令并执行它们。在一些情况中,指令可以是可存储在适合的存储媒体中的固件。
本文描述的图形处理技术可以在各种硬件体系结构中实现。例如,可以将图形功能性集成到芯片组内。或者,可以使用离散的图形处理器。作为又一个实施例,可以由通用处理器(包括多核处理器)来实现图形功能。
虽然本发明是参考有限数量的实施例来描述的,但是本领域技术人员将认识到许多修改和变化。所附权利要求意在涵盖落在本发明的真正精神和范围内的所有此类修改和变化。
Claims (9)
1.一种方法,包括:
在寄存器中,通过仅跟踪所述寄存器接收的尚未完成执行的线程,管理线程和线程依赖关系,以便由多个执行单元来执行线程。
2.如权利要求1所述的方法,包括使线程执行能够重新排序。
3.如权利要求1所述的方法,包括只要如下情况成立,则使线程执行的次序能够更改成任何次序:依赖于另一个线程的完成的一个线程必须在所述另一个线程到达所述寄存器之后到达以记分牌形式的所述寄存器。
4.如权利要求1所述的方法,包括在线程的所有依赖关系完成了执行之前启动所述线程来执行。
5.如权利要求4所述的方法,包括使线程能够管理它自己的依赖关系。
6.如权利要求5所述的方法,包括将一个执行单元中线程执行的完成向其他执行单元广播。
7.如权利要求1所述的方法,包括确定空间依赖关系,包括确定一个宏块的线程对相邻宏块的线程的执行的依赖关系,以及确定一个线程对不同帧中的线程的依赖关系。
8.如权利要求7所述的方法,包括使用坐标来指示相同帧上的空间依赖关系和不同逻辑进程。
9.如权利要求1所述的方法,包括通过指示相同帧内的宏块和不同帧中的宏块的坐标之间的德尔塔来指示两个线程之间的依赖关系。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215,850 US8933953B2 (en) | 2008-06-30 | 2008-06-30 | Managing active thread dependencies in graphics processing |
US12/215850 | 2008-06-30 | ||
CN200910159422A CN101620527A (zh) | 2008-06-30 | 2009-06-30 | 图形处理中管理活动线程依赖关系 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910159422A Division CN101620527A (zh) | 2008-06-30 | 2009-06-30 | 图形处理中管理活动线程依赖关系 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106055310A true CN106055310A (zh) | 2016-10-26 |
CN106055310B CN106055310B (zh) | 2020-04-28 |
Family
ID=41002930
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610298554.3A Expired - Fee Related CN106055310B (zh) | 2008-06-30 | 2009-06-30 | 图形处理中管理活动线程依赖关系 |
CN200910159422A Pending CN101620527A (zh) | 2008-06-30 | 2009-06-30 | 图形处理中管理活动线程依赖关系 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910159422A Pending CN101620527A (zh) | 2008-06-30 | 2009-06-30 | 图形处理中管理活动线程依赖关系 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8933953B2 (zh) |
EP (1) | EP2141586B1 (zh) |
KR (1) | KR101079001B1 (zh) |
CN (2) | CN106055310B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635621B2 (en) * | 2008-08-22 | 2014-01-21 | International Business Machines Corporation | Method and apparatus to implement software to hardware thread priority |
US8203984B2 (en) | 2008-12-19 | 2012-06-19 | Intel Corporation | Power management for wireless networks |
EP2534643A4 (en) * | 2010-02-11 | 2016-01-06 | Nokia Technologies Oy | METHOD AND APPARATUS FOR PROVIDING MULTIFIL VIDEO DECODING |
US10241799B2 (en) | 2010-07-16 | 2019-03-26 | Qualcomm Incorporated | Out-of-order command execution with sliding windows to maintain completion statuses |
US9633407B2 (en) | 2011-07-29 | 2017-04-25 | Intel Corporation | CPU/GPU synchronization mechanism |
US9984430B2 (en) * | 2013-04-15 | 2018-05-29 | Intel Corporation | Ordering threads as groups in a multi-threaded, multi-core graphics compute system |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
US9589311B2 (en) * | 2013-12-18 | 2017-03-07 | Intel Corporation | Independent thread saturation of graphics processing units |
US9996386B2 (en) | 2014-07-23 | 2018-06-12 | Intel Corporation | Mid-thread pre-emption with software assisted context switch |
US9519944B2 (en) | 2014-09-02 | 2016-12-13 | Apple Inc. | Pipeline dependency resolution |
US9952901B2 (en) * | 2014-12-09 | 2018-04-24 | Intel Corporation | Power efficient hybrid scoreboard method |
US9824414B2 (en) * | 2014-12-09 | 2017-11-21 | Intel Corporation | Thread dispatching for graphics processors |
GB2540971B (en) * | 2015-07-31 | 2018-03-14 | Advanced Risc Mach Ltd | Graphics processing systems |
US9916178B2 (en) * | 2015-09-25 | 2018-03-13 | Intel Corporation | Technologies for integrated thread scheduling |
US10339295B2 (en) | 2016-07-28 | 2019-07-02 | Microsoft Technology Licensing, Llc | Tracking work between system entities |
GB2567436B (en) * | 2017-10-10 | 2019-10-02 | Imagination Tech Ltd | Geometry to tiling arbiter for tile-based rendering system |
US11132233B2 (en) * | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
CN109308218A (zh) * | 2018-08-22 | 2019-02-05 | 安徽慧视金瞳科技有限公司 | 一种多点同时绘制的匹配算法 |
US11119820B2 (en) * | 2019-03-15 | 2021-09-14 | Intel Corporation | Local memory sharing between kernels |
CN110162387A (zh) * | 2019-04-09 | 2019-08-23 | 口口相传(北京)网络技术有限公司 | 线程调度方法、装置、计算机设备及计算机可读存储介质 |
US20220414816A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Dynamic dependency scoreboard for overlapping pixels of primitives |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182210B1 (en) | 1997-12-16 | 2001-01-30 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
JP3796124B2 (ja) * | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
US7752423B2 (en) * | 2001-06-28 | 2010-07-06 | Intel Corporation | Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor |
US9323571B2 (en) * | 2004-02-06 | 2016-04-26 | Intel Corporation | Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor |
US7613904B2 (en) * | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
US20060256854A1 (en) * | 2005-05-16 | 2006-11-16 | Hong Jiang | Parallel execution of media encoding using multi-threaded single instruction multiple data processing |
US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
US7434032B1 (en) * | 2005-12-13 | 2008-10-07 | Nvidia Corporation | Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators |
WO2008007038A1 (en) | 2006-07-11 | 2008-01-17 | Arm Limited | Data dependency scoreboarding |
US8291431B2 (en) | 2006-08-29 | 2012-10-16 | Qualcomm Incorporated | Dependent instruction thread scheduling |
-
2008
- 2008-06-30 US US12/215,850 patent/US8933953B2/en not_active Expired - Fee Related
-
2009
- 2009-06-29 EP EP09251675.6A patent/EP2141586B1/en not_active Not-in-force
- 2009-06-30 CN CN201610298554.3A patent/CN106055310B/zh not_active Expired - Fee Related
- 2009-06-30 KR KR1020090058786A patent/KR101079001B1/ko active IP Right Grant
- 2009-06-30 CN CN200910159422A patent/CN101620527A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR101079001B1 (ko) | 2011-11-01 |
US8933953B2 (en) | 2015-01-13 |
KR20100003238A (ko) | 2010-01-07 |
CN106055310B (zh) | 2020-04-28 |
EP2141586A1 (en) | 2010-01-06 |
CN101620527A (zh) | 2010-01-06 |
EP2141586B1 (en) | 2013-08-28 |
US20090327662A1 (en) | 2009-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055310A (zh) | 图形处理中管理活动线程依赖关系 | |
US10664283B2 (en) | Computing system and controller thereof | |
CN1294484C (zh) | 利用重新调度的重放队列中断处理器中的重放依赖关系循环 | |
US8930526B2 (en) | Processing network events | |
CN100504827C (zh) | 在次序混乱的dma命令队列中建立命令次序 | |
CN1991905B (zh) | 图形处理单元的同步方法以及围篱/等待同步组件 | |
CN100435172C (zh) | 可中断图形处理单元处理多个程序的方法和图形处理单元 | |
CN103262021B (zh) | 用于管理分组的网络处理器 | |
US10235181B2 (en) | Out-of-order processor and method for back to back instruction issue | |
CN104823155B (zh) | 基于存储器的旗语 | |
CN1680917A (zh) | 用于跟踪完成表中更大量未完成指令的方法和处理器 | |
CN101639789A (zh) | 线程排序技术 | |
CN113163009A (zh) | 数据传送方法、装置、电子设备及存储介质 | |
US8732142B2 (en) | Generation of suggestions to correct data race errors | |
Zhang et al. | Exploiting different levels of parallelism in the quantum control microarchitecture for superconducting qubits | |
CN114399035A (zh) | 搬运数据的方法、直接存储器访问装置以及计算机系统 | |
US20090165009A1 (en) | Optimal scheduling for cad architecture | |
US9542233B1 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
CN114116015B (zh) | 用于管理硬件命令队列的方法及系统 | |
CN115470926B (zh) | 量子计算任务的处理装置、方法及量子计算机 | |
US6351803B2 (en) | Mechanism for power efficient processing in a pipeline processor | |
CN107479945A (zh) | 一种虚拟机资源调度方法及装置 | |
CN101859429A (zh) | 一种用于机器视觉的嵌入式图像处理方法及装置 | |
CN109460254B (zh) | 一种指令处理方法、cpu交互系统及采用该系统的耗材芯片 | |
CN114399034B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200428 Termination date: 20210630 |