CN117519799A - 指令调度方法及装置、和电子设备 - Google Patents
指令调度方法及装置、和电子设备 Download PDFInfo
- Publication number
- CN117519799A CN117519799A CN202311466452.4A CN202311466452A CN117519799A CN 117519799 A CN117519799 A CN 117519799A CN 202311466452 A CN202311466452 A CN 202311466452A CN 117519799 A CN117519799 A CN 117519799A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- flag
- scheduling
- dependency
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000001419 dependent effect Effects 0.000 claims description 91
- 230000004044 response Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000007689 inspection Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006386 memory function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/3824—Operand accessing
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
本公开提供了一种指令调度方法及装置、和电子设备,该指令调度方法应用于图形处理器中,该方法包括:取回第一指令;检查所述第一指令是否符合调度条件,所述调度条件包括:所述第一指令不依赖于其他未执行完成的指令;在所述第一指令符合所述调度条件的情况下,调度所述第一指令;执行所述第一指令,并广播所述第一指令的执行信息。
Description
技术领域
本公开涉及但不限于计算机技术领域,尤其涉及一种指令调度方法及装置、和电子设备。
背景技术
图形处理器(Graphics Processing Unit,简称为GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
相关技术中,在部分架构的GPU(例如,SIMD(Single Instruction MultipleData,单指令多数据流)、SIMT(Single Instruction Multiple Threads,单指令多线程)等)中,指令的调度过程包括指令调度、取指、译码、检查等一系列的串行操作,使得指令调度与译码、检查等完全耦合在一起,此时,若调度出来的指令处于缺失状态(miss状态)、或依赖关系未解除时,则无法正常被执行,那么就需要重新调度,既浪费了发射带宽,又降低了有效调度,从而降低了指令的执行效率。
发明内容
本公开实施例提供一种指令调度方法及装置、和电子设备。
本公开实施例的技术方案是这样实现的:
本公开实施例提供一种指令调度方法,应用于图形处理器中,所述方法包括:
取回第一指令;
检查所述第一指令是否符合调度条件,所述调度条件包括:所述第一指令不依赖于其他未执行完成的指令;
在所述第一指令符合所述调度条件的情况下,调度所述第一指令;
执行所述第一指令,并广播所述第一指令的执行信息。
本公开实施例提供一种指令调度装置,应用于图形处理器中,包括取指单元、检查单元、指令调度单元及执行单元,其中:
所述取指单元,用于取回第一指令;
所述检查单元,用于检查所述第一指令是否符合调度条件,得到检查结果,将所述检查结果传递至所述指令调度单元;其中,所述调度条件包括所述第一指令不依赖于其他未执行完成的指令;
所述指令调度单元,用于在所述检查结果表征所述第一指令符合所述调度条件的情况下,调度所述第一指令至所述执行单元;
所述执行单元,用于执行所述第一指令,并广播所述第一指令的执行信息。
本公开实施例提供一种电子设备,包括上述所述指令调度装置。
在本公开实施例中,通过取回第一指令;检查所述第一指令是否符合调度条件,所述调度条件包括:所述第一指令不依赖于其他未执行完成的指令;在所述第一指令符合所述调度条件的情况下,调度所述第一指令;执行所述第一指令,并广播所述第一指令的执行信息。这样,一方面,在指令调度之前,先检查第一指令是否符合调度条件,实现了指令调度与取指、及指令调度与检查之间的解耦;另一方面,在确定指令能够被调度的情况下才调度指令,以使得调度出的指令一定能被执行,既降低了指令发射带宽被浪费的可能性,又提高了指令调度的有效性,从而提升了指令的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1A为相关技术中的一种指令调度的交互示意图;
图1B为本公开实施例提供的一种指令调度方法的实现流程示意图;
图2A为本公开实施例提供的一种指令调度装置的组成结构示意图;
图2B为本公开实施例提供的一种指令调度装置的组成结构示意图;
图2C为本公开实施例提供的一种指令调度装置的组成结构示意图;
图3为本公开实施例提供的一种电子设备的硬件实体示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
在SIMD架构的GPU中,多个线程组成一个组,多个组之间进行调度执行来增加并行性,隐藏执行延迟。组内多个线程共享相同的指令程序地址,各个组之间的调度实际是指令间的调度。
图1A为相关技术中的一种指令的调度过程的示意图,如图1A所示,该调度过程包括:指令调度单元101、取指单元102、译码单元103、检查单元104、及执行单元105。在实施时:
指令调度单元101从多个线程组中选出一条要执行的线程组,该线程组携带程序地址进行取指;
取指单元102取指之前,先进行hit-miss(命中-缺失)测试,如果hit,则表征该指令已经存在于存储单元106中,则从存储106中取回指令送入译码单元103;如果miss,则将miss经译码单元103传递至检查单元104中,同时继续向下一级存储中进行取指;
译码单元103对指令进行译码生成译码信息,将译码信息送到检查单元104中;
检查单元104根据译码信息和指令状态进行判断,若指令是hit状态、且该指令与其它指令不存在依赖关系,则发射到执行单元105中进行处理;若指令是miss状态、或该指令与其它指令有依赖关系,则通知指令调度单元101进行记录,并等待指令存放至存储单元106、或依赖关系解除后再重新进行再次调度。
那么,由于指令调度、取指、译码、检查等是一系列的串行操作,使得指令调度与译码、检查等完全耦合在一起,若指令处于缺失状态、或依赖关系未解除时,导致指令无法正常发射到下游执行,而需要重新调度,既浪费了发射带宽,又降低了有效调度,从而降低了指令的执行效率。
本公开实施例提供一种指令调度方法,一方面,在指令调度之前,先检查第一指令是否符合调度条件,实现了指令调度与取指、及指令调度与检查之间的解耦;另一方面,在确定指令能够被调度的情况下才调度指令,以使得调度出的指令一定能被执行,既降低了指令发射带宽被浪费的可能性,又提高了指令调度的有效性,从而提升了指令的执行效率。本公开实施例提供的方法可以由电子设备执行,电子设备可以为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面,将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
图1B为本公开实施例提供的一种指令调度方法的实现流程示意图,应用于图形处理器中,如图1B所示,所述方法包括步骤S11至步骤S14,其中:
步骤S11、取回第一指令。
这里,图形处理器中至少包括取指单元和存储单元。该取指单元主要用于从存储单元中取指。第一指令可以是任意合适的能够被执行的指令。
该存储单元中至少存储了该第一指令。存储单元可以是可以任意合适的能够实现存储功能的单元。例如,高速缓冲存储器。在一些实施例中,该存储单元具有至少一个层级。例如,一级指令缓存L1、二级指令缓存L2等。其中,L1中存储了GPU经常访问的指令,L1中包括至少一个缓存单元,每一缓存单元具有相同的数据结构,该数据结构可以包括但不限于标志位、数据位、扩展位等。在一些实施例中,存储单元接收图形处理器的取指单元发送的指令的地址,根据该指令的地址进行指令的读取。在一些实施方式中,若第一指令在第一级指令缓存的状态为miss状态,表征该第一指令未位于该第一级指令缓存中,此时,继续向下游多级指令缓存中进行取指,直至取回第一指令为止;若该第一指令在第一级指令缓存中的状态为hit状态,表征该第一指令已在第一级指令缓存中,则可以从该第一级指令缓存中取回该第一指令。
在一些实施方式中,所述步骤S11包括步骤S111,其中:
步骤S111、基于所述第一指令的地址在第一级指令缓存中进行hit-miss命中-未命中检查,响应于所述地址hit,从所述第一级指令缓存中取回所述第一指令。
这里,该第一级指令缓存中存储了GPU经常访问的指令。在实施时,根据该第一指令的地址,在该第一级指令缓存进行hit-miss检查,若该第一级指令缓存中已存储该第一指令,那么,该hit-miss检查的结果则为hit,反之,若该第一级指令缓存中未存储该第一指令,那么,该hit-miss检查的结果则为miss。
在一些实施方式中,所述步骤S11还包括步骤S112,其中:
步骤S112、响应于所述地址miss,从下游多级指令缓存中取回所述第一指令。
这里,该下游多级指令缓存可以是存储单元中的至少一级指令缓存。由于在第一级指令缓存中的hit-miss检查的结果为miss,则需要向下一级指令缓存中进行继续取指,直至取回该第一指令。在实施时,在下一级指令缓存中的取指过程与在第一级指令缓存中的取指过程类似。这样,确保指令在被调度时该指令一定存在,降低了指定调度时指令缺失的可能性,提升了指令调度的有效性和指令的执行效率。
在一些实施方式中,该图形处理器还包括指令调度单元。其中,指令调度单元用于调度指令,将二进制机器代码翻译成硬件能识别的运算、控制或数据读写等操作。在实施时,该取指单元可以将取回的第一指令传递至指令调度单元中进行缓存。该第一指令的传递方式可以是任意合适的方式,例如,发送、广播等。在该取指单元与指令调度单元之间连接的情况下,可以将该第一指令发送至指令调度单元中。
在一些实施方式中,该图形处理器还包括译码单元。该译码单元主要用于对指令进行译码,得到该指令的依赖信息。指令的依赖信息可以包括但不限于依赖标志、被依赖标志等。其中,依赖标志表征该指令是否依赖其它未执行完成的指令,被依赖标志表征该指令是否被其它指令依赖。在一些实施方式中,指令调度单元中缓存第一指令,并将第一指令传递至译码单元中。指令调度单元与译码单元之间可以连接,也可以不连接。在指令调度单元与译码单元之间不连接的情况下,通过广播等方式将第一指令传递至译码单元中。
步骤S12、检查所述第一指令是否符合调度条件,所述调度条件包括:所述第一指令不依赖于其他未执行完成的指令。
这里,该图形处理器还包括检查单元,该检查单元主要用于检查该第一指令是否符合调度条件。在一些实施方式中,该检查单元根据该第一指令的依赖关系,确定该第一指令是否符合调度条件。在实施时,若该第一指令的依赖关系表征该第一指令不依赖于其它未执行完成的指令,那么,该第一指令符合调度条件;若该第一指令的依赖关系表征第一指令依赖于其它未执行完成的指令,那么,该第一指令不符合调度条件。
在一些实施方式中,该第一指令的依赖关系是基于第一指令的依赖信息确定的。在实施时,译码单元将该依赖信息传递至检查单元中。译码单元与检查单元之间可以连接,也可以不连接。在译码单元与检查单元之间不连接的情况下,通过广播等方式将第一指令的依赖信息传递至检查单元中。
每一指令均包含对应的依赖信息。该依赖信息中可以包括但不限于依赖标志、被依赖标志等。该依赖标志/被依赖标志可以为空、也可以不为空。在一些实施方式中,该依赖标志与该被依赖标志可以相同,也可以不同。在依赖标志和被依赖标志相同的情况下,则表明该指令不依赖于其它未执行完成的指令;在该依赖指令和被依赖指令不相同的情况下,若该依赖指令为空,那么,该指令不依赖其它未执行完成的指令,若该依赖指令不为空,那么,该指令依赖其它未执行完成的指令。在实施时,通过该第一指令的依赖标志可以确定该第一指令是否依赖其它指令,通过该第一指令的被依赖标志可以确定该第一指令是否被其它指令依赖。
例如,若指令B依赖指令A,此时,A作为生产者(producer),B作为消费者(consumer),那么,指令A的被依赖标志和指令B的依赖标识相同。又例如,若指令C不依赖其它未执行完成的指令,那么,指令C的依赖标志可以为空、或该指令C的依赖标志和被依赖标志相同。
步骤S13、在所述第一指令符合所述调度条件的情况下,调度所述第一指令。
这里,指令调度单元中可以包括缓存部分,利用该缓存部分来缓存多条指令,这样,当某一指令可以被调度时,从该缓存部分中取出该指令,发射到执行单元即可。在实施时,缓存部分可以是任意合适的能够实现存储功能的部分,例如,队列。这样,在指令调度单元中缓存指令,相较于从存储单元中获取指令而言,缩短了双方之间的物理距离,降低了指令读取的延迟时间。
步骤S14、执行所述第一指令,并广播所述第一指令的执行信息。
这里,该图形处理器还包括执行单元。该执行单元主要用于执行指令。在一些实施方式中,对于不同类别的指令,可以在GPU中相应地设置不同的执行单元。执行单元可以包括但不限于运算单元、内存执行单元、协处理器等。其中,运算单元用于根据操作数进行运算并输出运算结果,在一些实施方式中,该运算单元可以是任意合适的能够进行运算的单元,例如,算术逻辑单元、整型处理单元、矢量运算单元等。内存执行单元用于根据指令访问内存以读取内存中的数据或向内存写入指定的数据等。协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。这样,从指令调度单元中读取该指令,并调度至执行单元执行,确保了调度时该指令一定能够被命中,降低了指令处于缺失状态的可能性,提高了取指的便捷性和有效性,从而提高了调度的有效性。
在一些实施方式中,该执行单元的数量可以为至少一个。
第一指令的执行信息可以包括但不限于被依赖标志、依赖标志等。例如,指令B依赖指令A,那么,指令A在执行完成后,将包含该被依赖标志producer id(x)的执行信息广播至检查单元中。
在本公开实施例中,一方面,在指令调度之前,先检查第一指令是否符合调度条件,实现了指令调度与取指、及指令调度与检查之间的解耦;另一方面,在确定指令能够被调度的情况下才调度指令,以使得调度出的指令一定能被执行,既降低了指令发射带宽被浪费的可能性,又提高了指令调度的有效性,从而提升了指令的执行效率。
在一些实施方式中,所述方法还包括步骤S15至步骤S16,其中:
步骤S15、对所述第一指令进行译码,得到所述第一指令的依赖信息。
这里,该依赖信息包括依赖标志与被依赖标志。在实施时,该译码单元可以对该第一指令进行译码,以得到该依赖信息。通过该依赖标志可以确定该第一指令是否依赖其它指令,通过该被依赖标志可以确定该第一指令是否被其它指令所依赖。例如,该第一指令的依赖信息包括producer()和consumer(),即:该依赖标志和被依赖标志均为空,表明第一指令既不依赖其它指令,也不被其它指令依赖。又例如,该依赖信息包括producer(1)和consumer(),即:该依赖标志为“1”,表明该第一指令依赖其它指令,该指令的被依赖标志也为1,被依赖标志为空,表明该第一指令不被其它指令依赖。
步骤S16、基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系。
这里,该依赖关系表征该第一指令是否依赖其它未执行完成的指令。在实施时,若该依赖标志和被依赖标志相同时,则表明该第一指令不依赖其它未执行完成的指令;若该依赖标志和被依赖标志不相同时,该第一指令可能依赖其它未执行完成的指令。
在一些实施方式中,所述步骤S16包括步骤S161,其中:
步骤S161、在所述第一指令的依赖标志与被依赖标志相同的情况下,确定所述第一指令不依赖于其他未执行完成的指令。
这里,依赖标志和被依赖标志相同可以为空、或不为空。在实施时,若都空,则表明该第一指令既不依赖其它指令,也不被其它指令所依赖;若不为空,则表明该第一指令依赖本身。
在一些实施方式中,所述步骤S16包括步骤S162,其中:
步骤S162、在所述第一指令的依赖标志为空,且被依赖标志不为空的情况下,确定所述第一指令不依赖于其他未执行完成的指令。
这里,该依赖标志与被依赖标志不相同。该依赖标志为空表征该第一指令不依赖其它指令,该被依赖标志不为空表征该第一指令被其它指令依赖。
在一些实施方式中,所述步骤S16包括步骤S163,其中:
步骤S163、在所述第一指令的依赖标志不为空,且所述被依赖标志与所述依赖标志不同的情况下,确定所述第一指令的依赖关系为依赖其他指令。
这里,该依赖标志与被依赖标志不相同。该依赖标志不为空表征该第一指令依赖其它未执行完成的指令,该被依赖标志不为空表征该第一指令也被其它指令依赖。
在本公开实施方式中,通过该指令的依赖信息来快速确定该指令的依赖关系,提高了依赖关系的准确度,从而提高了第一指令的调度的准确度。
在一些实施方式中,所述方法还包括步骤S17,其中:
步骤S17、基于所述第一指令的依赖标志,确定所述第一指令依赖的目标指令。
这里,目标指令的被依赖标志与第一指令的依赖标志相同。由于该第一指令的依赖标志不为空、且该依赖标志和被依赖标志不同,因此,该第一指令依赖其它未执行完成的指令,在实施时,通过查找多条指令的被依赖标志,若某一条指令的被依赖标志与该第一指令的依赖标志相同,则将该条指令作为目标指令。在一些实施方式中,该目标指令的数量可以为至少一个。
在本公开实施方式中,通过该指令的依赖标志便可以快速确定被依赖指令,提高了被依赖指令的准确度。
在一些实施方式中,所述方法还包括步骤S18,其中:
步骤S18、响应于接收到所述目标指令的执行信息,解除所述第一指令与所述目标指令的依赖关系。
这里,该目标指令的执行信息可以包括目标指令的执行完成信息。还可以包括所述目标指令的被依赖标志、或被依赖标志和依赖标志等。由于第一指令依赖目标指令,那么,该第一指令的依赖标志和目标指令的被依赖标志相同。
在该目标指令执行完成后,该执行单元可以将至少包括该目标指令的被依赖标志的执行信息广播至该检查单元中。该检查单元查找与该目标指令的被依赖标志相同的依赖标志,并解除与该目标指令与其它指令的依赖关系。该其它指令的依赖标志和该目标指令的被依赖标志相同。在实施时,该其它指令至少包括第一指令。
在本公开实施方式中,通过该目标指令的执行信息及时解除该第一指令与目标指令的依赖关系,以便于第一指令能够正常被调度,提高了指令调度的完整性及有效性。
在一些实施方式中,所述方法还包括步骤S19,其中:
步骤S19、广播所述第一指令的依赖关系。
这里,检查单元可以通过广播的方式将该依赖关系广播至该指令调度单元中,以便于该指令调度单元及时调度该第一指令。
在本公开实施方式中,通过广播的方式传递该依赖关系,双方不需要建立通信连接,降低了通信资源的占用。
基于上述实施例,本公开实施例提供一种指令调度装置,图2A为本公开实施例提供的一种指令调度装置的组成结构示意图,应用于图形处理器中,如图2A所示,该指令调度装置20包括取指单元21、检查单元22、指令调度单元23及执行单元24,其中:
所述取指单元21,用于取回第一指令;
所述检查单元22,用于检查所述第一指令是否符合调度条件,得到检查结果,将所述检查结果传递至所述指令调度单元;其中,所述调度条件包括所述第一指令不依赖于其他未执行完成的指令;
所述指令调度单元23,用于在所述检查结果表征所述第一指令符合所述调度条件的情况下,调度所述第一指令至所述执行单元;
所述执行单元24,用于执行所述第一指令,并广播所述第一指令的执行信息。
这里,取指单元21用于取指。在实施时,当执行一条指令时,首先需要根据PC(Program Counter,程序计数器)中存放的指令地址,将指令从存储单元中取出,这个过程称为“取指令”。该存储单元可以位于图形处理器中。存储单元可以是可以任意合适的能够实现存储功能的单元。例如,存储单元为多级指令缓存。在一些实施方式中,存储单元接收取指单元21发送的指令地址,根据该指令地址进行指令的读取。若第一指令在第一级指令缓存的状态为miss状态,此时,继续向下一级指令缓存中进行取指,直至取回第一指令为止。
在一些实施方式中,所述取指单元,还用于基于所述第一指令的地址在第一级指令缓存中进行hit-miss命中-未命中检查,响应于所述地址hit,从所述第一级指令缓存中取回所述第一指令。
这里,该第一级指令缓存中可以缓存多条指令。在实施时,根据该第一指令的地址,在该第一级指令缓存中进行hit-miss检查,若该第一级指令缓存中已缓存该第一指令,那么,该hit-miss检查的结果为hit,反之,则为miss。
在一些实施方式中,所述取指单元,还用于响应于所述地址miss,从下游多级指令缓存中取回所述第一指令。
这里,下游多级指令缓存是指存储单元中的至少一级指令缓存。在第一级指令缓存中未缓存该第一指令时,需要向下游多级指令缓存中继续取指,直至取回第一指令。在实施时,在下一级指令缓存中的取指过程与在第一级指令缓存中的取指过程类似。
在一些实施方式中,所述装置还包括取指调度单元;所述取指调度单元,用于从至少一个线程组中确定目标线程组,所述目标线程组的取指请求中包括所述第一指令的地址。
这里,取指调度单元用于取指的调度。在实施时,该取指调度单元与取指单元之间连接,这样,将指令的地址发送至取指单元中,以便于取指单元从存储单元中取回该第一指令。
图形处理器中包括至少一个线程组。在实施时,先将多个线程划分为多个线程组,同一个线程组会被分配到同一个执行单元上执行,不同的线程组可以在同一个执行单元中执行,也可以在不同的执行单元中执行。
在一些实施方式中,每个线程组中都有一个程序计数器(PC,Program Counter)记录着该线程组中下一条将要被执行的指令的地址,即:取指地址,该程序计数器中的数值用来指示下一条指令在内存中的位置。当一条指令被取出后,该PC中的数值会自动递增,在指令执行完毕之后,接着从该PC中取得下一条指令的地址。
目标线程组的确定方式可以是任意合适的方式,例如,随机、指定顺序等。
在实施时,由于多个线程组可能会同时发起取指请求给取指调度单元,该取指调度单元中先会缓存多个线程组的取指请求。每一取指请求中包含对应的线程组请求取出的指令的地址。在时钟周期内,根据选取规则挑选出一个线程组来为其进行取指操作,即:将该线程组请求取出的指令的地址发送至取指单元,该取指单元根据该指令的地址,在第一级指令缓存中进行hit-miss检查,若该地址中已缓存该指令,那么,从该地址中取回该指令;若该地址中未缓存该指令,那么,从下游多级指令缓存中取回该指令。
检查结果表征该第一指令是否符合调度条件。在实施时,检查单元22与指令调度单元23之间可以连接,也可以不连接。在检查单元22与指令调度单元23之间不连接的情况下,检查单元22通过广播等方式,将检查结果传递至指令调度单元23中。
指令调度单元主要用于调度指令。在实施是,若某一指令符合调度条件,则调度该指令。
执行单元主要用于执行指令。在一些实施方式中,该执行单元的数量可以为至少一个,不同的执行单元可以执行不同类别的指令。
第一指令的执行信息可以包括但不限于被依赖标志、或被依赖标志和依赖标志等。这样,通过将第一指令的执行信息广播至检查单元,以便于该检查单元及时解除第二指令和第一指令之间的依赖关系。其中,该第二指令的依赖标志和第一指令的被依赖标志相同。
在一些实施方式中,该装置还包括译码单元;所述译码单元,用于对所述第一指令进行译码,得到所述第一指令的依赖信息;其中,所述第一指令的依赖信息包括依赖标志与被依赖标志;所述检查单元,用于基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系。
这里,依赖标志表征该第一指令是否依赖其它未执行完成的指令,被依赖标志表征该第一指令是否被其它指令依赖。在实施时,译码单元对第一指令进行译码后,将该第一指令的依赖信息传递至检查单元中。在一些实施方式中,该译码单元与检查单元之间可以连接,也可以不连接。在译码单元与检查单元之间不连接的情况下,译码单元通过广播等方式,将依赖信息传递至检查单元中。
该依赖关系表征该第一指令是否依赖其它未执行完成的指令。在实施时,若该依赖标志和被依赖标志相同时,则表明该第一指令不依赖其它未执行完成的指令;若该依赖标志和被依赖标志不相同时,该第一指令可能依赖其它未执行完成的指令。例如,若该依赖标志和被依赖标志均为空,则表明该第一指令既不依赖其它指令,也不被其它指令所依赖。又例如,若该依赖标志为空、被依赖标志不为空,则表明该第一指令不依赖其它指令、但被其它指令依赖。还例如,若该依赖标志不为空、被依赖标志不为空且不同于依赖标志,则表明该第一指令依赖其它指令、也被其它指令依赖。
在一些实施方式中,所述检查单元22,还用于广播所述第一指令的依赖关系。
在一些实施例中,可以通过广播的方式,将该依赖关系广播至指令调度单元。
在一些实施方式中,所述检查单元22,还用于响应于接收到目标指令的执行信息,解除所述第一指令与目标指令的依赖关系,并更新所述检查结果及广播更新后的检查结果;其中,所述目标指令的执行信息是所述执行单元广播至所述检查单元的,所述目标指令的被依赖标志与所述第一指令的依赖标志相同。
这里,该目标指令的执行信息可以包括但不限于被依赖标志、或被依赖标志和依赖标志等。由于目标指令被其它指令依赖,因此,该目标指令的执行信息中至少包括该被依赖标志。在实施时,该检查单元解除完第一指令和目标指令的依赖关系后,及时更新该第一指令的检查结果,该更新后的检查结果表征该第一指令不依赖其它未执行完成的指令,符合调度条件。在一些实施方式中,该检查单元将该更新后的检查结果广播至指令调度单元,以便于该指令调度单元及时调度第一指令。
图2B为本公开实施例提供的一种指令调度装置的组成结构示意图,如图2B所示,该指令调度装置20中包括取指单元21、检查单元22、指令调度单元23、执行单元24、译码单元25、及取指调度单元26,其中:
取指调度单元26,用于从至少一个线程组中确定目标线程组,从该目标线程组的取指请求中获取该第一指令的地址,并将该第一指令的地址发送至取指单元21中;
取指单元21,用于根据第一指令的地址,从图形处理器的存储单元27中取回第一指令,并将第一指令发送至指令调度单元23中;
指令调度单元23,用于缓存第一指令,并将第一指令发送至译码单元25中;
译码单元25,用于对第一指令进行译码,得到第一指令的依赖信息,并将第一指令的依赖信息发送至检查单元22中;
检查单元22,用于基于该第一指令的依赖信息,检查该第一指令是否符合调度条件,得到检查结果,并将检查结果广播至指令调度单元23中;
指令调度单元23,用于在该检查结果表征第一指令符合调度条件的情况下,调度该第一指令至执行单元24;
执行单元24,用于执行第一指令,并广播该第一指令的执行信息。
图2C为本公开实施例提供的一种指令调度单元的组成结构示意图,如图2C所示,该指令调度单元20中包括取指单元21、检查单元22、指令调度单元23、执行单元24、译码单元25、及取指调度单元26,其中:
取指调度单元26,用于从至少一个线程组中确定目标线程组,从该目标线程组的取指请求中获取该第一指令的地址,并将该第一指令的地址发送至取指单元21中;
取指单元21,用于根据该第一指令的地址,从图形处理器的存储单元27中取回第一指令,并将第一指令发送至指令调度单元23中;其中,若第一指令在存储单元27的L1的状态为hit状态,则取回第一指令,反之,则继续向L1的下一级缓存中进行取指,直至取回第一指令为止;
指令调度单元23,用于缓存第一指令,并将第一指令发送至译码单元25中;
译码单元25,用于对第一指令进行译码,得到第一指令的依赖信息,并将第一指令的依赖信息发送至检查单元22中;
检查单元22,用于基于该第一指令的依赖信息,检查该第一指令是否符合调度条件,得到检查结果,并将检查结果广播至指令调度单元23中;其中,若第一指令的依赖标志和被依赖标志相同,则表明该第一指令符合调度条件;若该第一指令的依赖标志为空、被依赖标志不为空,则表明该第一指令符合调度条件;若该第一指令的依赖标志不为空、且不同于被依赖标志,则表明该第一指令不符合调度套件;
指令调度单元23,用于在该检查结果表征第一指令符合调度条件的情况下,调度该第一指令至执行单元24;
执行单元24,用于执行该第一指令,并广播第一指令的执行信息。
这里,在第一指令执行完成后,将该第一指令的执行信息广播至检查单元中,这样,检查单元根据该执行信息,确定是否解除其它指令与第一指令之间的依赖关系。例如,若指令B依赖指令A,那么指令A执行完成后,将指令A的被依赖标志广播给检查单元,检查单元根据该被依赖标志,确定等待的指令B中的依赖标志能够与该被依赖标志匹配,表明指令B与指令A之间的依赖关系可以解除,并更新该指令B的检查结果,将更新后的检查结果广播到指令调度单元,然后指令调度单元便可以调度出指令B到执行单元去执行。
在本公开实施例中,首先,在指令调度之前,先利用取指单元从存储单元中取回第一指令后存储至指令调度单元中,确保了指令调度时该指令一定能够被命中,降低了指令处于缺失状态的可能性,提高了取指的便捷性和有效性;其次,在指令调度之前,利用检查单元基于译码单元得到的依赖信息来确定指令的检查结果,实现了指令调度单元与译码单元、及指令调度单元与检查单元之间的解耦;最后,在确定指令能够被调度的情况下才调度指令,以使得指令调度单元调度出的指令一定能被执行,既降低了指令发射带宽被浪费的可能性,又提高了指令调度的有效性,从而提升了指令的执行效率。
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件和软件结合。
本公开实施例提供一种电子设备,包括上述任一指令调度装置。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
需要说明的是,图3为本公开实施例提供的一种电子设备的硬件实体示意图,如图3所示,该电子设备300的硬件实体包括:处理器301、通信接口302和存储器303,其中:
处理器301通常控制电子设备300的总体操作。
通信接口302可以使电子设备通过网络与其他终端或服务器通信。
存储器303配置为存储由处理器301可执行的指令和应用,还可以缓存待处理器301以及电子设备300中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器301、通信接口302和存储器303之间可以通过总线304进行数据传输。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
Claims (18)
1.一种指令调度方法,其特征在于,应用于图形处理器中,所述方法包括:
取回第一指令;
检查所述第一指令是否符合调度条件,所述调度条件包括:所述第一指令不依赖于其他未执行完成的指令;
在所述第一指令符合所述调度条件的情况下,调度所述第一指令;
执行所述第一指令,并广播所述第一指令的执行信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一指令进行译码,得到所述第一指令的依赖信息,所述依赖信息包括依赖标志与被依赖标志;
基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
广播所述第一指令的依赖关系。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系,包括:
在所述第一指令的依赖标志与被依赖标志相同的情况下,确定所述第一指令不依赖于其他未执行完成的指令。
5.根据权利要求2所述的方法,其特征在于,所述基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系,包括:
在所述第一指令的依赖标志为空,且被依赖标志不为空的情况下,确定所述第一指令不依赖于其他未执行完成的指令。
6.根据权利要求2所述的方法,其特征在于,所述基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系,包括:
在所述第一指令的依赖标志不为空,且所述被依赖标志与所述依赖标志不同的情况下,确定所述第一指令的依赖关系为依赖其他指令。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于所述第一指令的依赖标志,确定所述第一指令依赖的目标指令,所述目标指令的被依赖标志与所述第一指令的依赖标志相同。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于接收到所述目标指令的执行信息,解除所述第一指令与所述目标指令的依赖关系。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述取回第一指令,包括:
基于所述第一指令的地址在第一级指令缓存中进行hit-miss命中-未命中检查,响应于所述地址hit,从所述第一级指令缓存中取回所述第一指令。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
响应于所述地址miss,从下游多级指令缓存中取回所述第一指令。
11.一种指令调度装置,其特征在于,应用于图形处理器中,包括取指单元、检查单元、指令调度单元及执行单元,其中:
所述取指单元,用于取回第一指令;
所述检查单元,用于检查所述第一指令是否符合调度条件,得到检查结果,将所述检查结果传递至所述指令调度单元;其中,所述调度条件包括所述第一指令不依赖于其他未执行完成的指令;
所述指令调度单元,用于在所述检查结果表征所述第一指令符合所述调度条件的情况下,调度所述第一指令至所述执行单元;
所述执行单元,用于执行所述第一指令,并广播所述第一指令的执行信息。
12.根据权利要求11所述的装置,其特征在于,
所述取指单元,还用于基于所述第一指令的地址在第一级指令缓存中进行hit-miss命中-未命中检查,响应于所述地址hit,从所述第一级指令缓存中取回所述第一指令。
13.根据权利要求12所述的装置,其特征在于,
所述取指单元,还用于响应于所述地址miss,从下游多级指令缓存中取回所述第一指令。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括取指调度单元,其中:
所述取指调度单元,用于从至少一个线程组中确定目标线程组,所述目标线程组的取指请求中包括所述第一指令的地址。
15.根据权利要求11至14任一项所述的装置,其特征在于,所述装置还包括译码单元;
所述译码单元,用于对所述第一指令进行译码,得到所述第一指令的依赖信息;其中,所述第一指令的依赖信息包括依赖标志与被依赖标志;
所述检查单元,用于基于所述第一指令的依赖标志与被依赖标志,确定所述第一指令的依赖关系。
16.根据权利要求15所述的装置,其特征在于,所述检查单元,还用于广播所述第一指令的依赖关系。
17.根据权利要求15所述的装置,其特征在于,
所述检查单元,还用于响应于接收到目标指令的执行信息,解除所述第一指令与目标指令的依赖关系,并更新所述检查结果及广播更新后的检查结果;其中,所述目标指令的执行信息是所述执行单元广播至所述检查单元的,所述目标指令的被依赖标志与所述第一指令的依赖标志相同。
18.一种电子设备,其特征在于,包括权利要求11至17中任一项所述的指令调度装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311466452.4A CN117519799A (zh) | 2023-11-06 | 2023-11-06 | 指令调度方法及装置、和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311466452.4A CN117519799A (zh) | 2023-11-06 | 2023-11-06 | 指令调度方法及装置、和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519799A true CN117519799A (zh) | 2024-02-06 |
Family
ID=89756004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311466452.4A Pending CN117519799A (zh) | 2023-11-06 | 2023-11-06 | 指令调度方法及装置、和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519799A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138714A1 (en) * | 2001-03-22 | 2002-09-26 | Sun Microsystems, Inc. | Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution |
CN110489213A (zh) * | 2018-05-15 | 2019-11-22 | 华为技术有限公司 | 一种任务处理方法及处理装置、计算机系统 |
CN111061485A (zh) * | 2019-12-03 | 2020-04-24 | 华控清交信息科技(北京)有限公司 | 任务处理方法、编译器、调度服务器和介质 |
CN111241599A (zh) * | 2019-09-19 | 2020-06-05 | 中国科学院信息工程研究所 | 一种处理器芯片安全依赖的动态识别及维护方法 |
CN113360157A (zh) * | 2020-03-05 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 一种程序编译方法、设备以及计算机可读介质 |
CN115237582A (zh) * | 2022-09-22 | 2022-10-25 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算系统 |
CN116721007A (zh) * | 2023-08-02 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 任务控制方法、系统及装置、电子设备和存储介质 |
-
2023
- 2023-11-06 CN CN202311466452.4A patent/CN117519799A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138714A1 (en) * | 2001-03-22 | 2002-09-26 | Sun Microsystems, Inc. | Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution |
CN110489213A (zh) * | 2018-05-15 | 2019-11-22 | 华为技术有限公司 | 一种任务处理方法及处理装置、计算机系统 |
CN111241599A (zh) * | 2019-09-19 | 2020-06-05 | 中国科学院信息工程研究所 | 一种处理器芯片安全依赖的动态识别及维护方法 |
CN111061485A (zh) * | 2019-12-03 | 2020-04-24 | 华控清交信息科技(北京)有限公司 | 任务处理方法、编译器、调度服务器和介质 |
CN113360157A (zh) * | 2020-03-05 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 一种程序编译方法、设备以及计算机可读介质 |
CN115237582A (zh) * | 2022-09-22 | 2022-10-25 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算系统 |
CN116721007A (zh) * | 2023-08-02 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 任务控制方法、系统及装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
刘炳涛;王达;叶笑春;范东睿;张志敏;唐志敏;: "基于数据流块的空间指令调度方法", 计算机研究与发展, no. 04, 15 April 2017 (2017-04-15), pages 73 - 86 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140115300A1 (en) | Data processing system with data characteristic based identification of corresponding instructions | |
US11210131B2 (en) | Method and apparatus for assigning computing task | |
US9529651B2 (en) | Apparatus and method for executing agent | |
CN111770002B (zh) | 测试数据转发控制方法、装置、可读存储介质和电子设备 | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
EP3872642B1 (en) | Caching device, cache, system, method and apparatus for processing data, and medium | |
CN116721007B (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN117519799A (zh) | 指令调度方法及装置、和电子设备 | |
CN116841623A (zh) | 访存指令的调度方法、装置、电子设备和存储介质 | |
US8719542B2 (en) | Data transfer apparatus, data transfer method and processor | |
CN116107774A (zh) | Io请求处理方法、装置、电子设备和存储介质 | |
US9137276B2 (en) | Managing message distribution in a networked environment | |
CN114244912A (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
CN116804915B (zh) | 基于存储器的数据交互方法、处理器、设备以及介质 | |
US20240193016A1 (en) | Multiple processes sharing gpu memory objects | |
US11681567B2 (en) | Method and processor system for executing a TELT instruction to access a data item during execution of an atomic primitive | |
CN111367627B (zh) | 一种读写磁盘任务的处理方法和装置 | |
US9092348B2 (en) | System and method for slice processing computer-related tasks | |
CN114791840A (zh) | 数据组装方法、装置、电子设备及介质 | |
US20210089308A1 (en) | Systems and methods for processing instructions having wide immediate operands | |
CN111176750A (zh) | 资源包发送方法、装置、电子设备和计算机可读介质 | |
CN115168019A (zh) | 负反馈内容确定方法、装置、电子设备以及存储介质 | |
CN115729882A (zh) | 信息处理方法及器件、装置、设备、存储介质 | |
CN113779078A (zh) | 一种缓存数据的获取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |