一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

仲裁系统、方法、电子设备、存储介质及芯片与流程

2022-05-18 03:41:06 来源:中国专利 TAG:


1.本公开涉及集成电路技术领域,具体而言,涉及一种仲裁系统、方法、电子设备、存储介质及芯片。


背景技术:

2.随着人工智能和高性能计算的不断发展,芯片中的计算单元所需要处理的数据量日趋庞大。在计算过程中,大量数据需要在内部寄存器和外部存储器间搬运。一旦数据搬运过程中出现访存停顿,例如长时间不能返回装载load数据,会导致计算单元长时间等待,进而造成芯片的处理效率严重下降。随着多线程并行处理器的算力不断提升,使得提高计算单元的访存效率逐渐成为芯片设计的瓶颈之一。因此在人工智能等高性能计算系统的电路设计中,高效的多线程组读写访存的仲裁设计尤为重要。


技术实现要素:

3.有鉴于此,本公开至少提供一种仲裁系统、方法、电子设备、存储介质及芯片。
4.第一方面,本公开提供了一种仲裁系统,包括:线程块控制模块和访存模块;
5.所述线程块控制模块,用于基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;以及将各个线程块中线程组对应的时效信息发送给所述访存模块;
6.所述访存模块,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;以及基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
7.这里,通过利用线程块控制模块确定已启动的至少一个线程块的时效信息,并将得到的至少一个线程组的时效信息发送给访存模块,该时效信息可以包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息。访存模块根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,能够较准确的确定多个访问指令之间的相对优先级信息;比如,年龄信息越大,优先级越高。进而基于接收到的相对优先级信息,较为精准的从多个访问指令中确定执行访存操作的至少一个目标访问指令。
8.一种可选的实施方式中,所述访存模块包括优先级检测单元和仲裁单元;
9.所述优先级检测单元,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;
10.所述仲裁单元,用于接收多个访问指令,并将所述访问指令对应的线程组标识发送给所述优先级检测单元;以及基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
11.一种可能的实施方式中,所述时效信息包括用于表征不同线程块之间的相对存活
时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息。
12.一种可能的实施方式中,所述线程块控制模块包括:线程块年龄生成单元;
13.所述线程块年龄生成单元,用于基于接收到的第一启动指令,确定所述第一启动指令对应的、新启动的线程块的年龄信息为预设值,以及将已启动的线程块中,除新启动的线程块之外的、其他线程块的当前年龄信息增加第一目标值,得到所述其他线程块对应的更新后年龄信息;
14.并将所述新启动的线程块和所述其他线程块中包括的线程组对应的更新后年龄信息发送给所述优先级检测单元;其中,所述第一启动指令用于启动新的线程块。
15.本公开实施方式中,线程块年龄生成单元用于根据第一启动指令,确定已启动的各个线程块的年龄信息。比如,每启动一个新的线程块,已启动的其他线程块的年龄信息可以加一,得到多个线程块的更新后年龄信息。该年龄信息可以表征不同线程块之间的相对存活时长,年龄信息越大,存活时长越长。再将新启动的线程块和其他线程块中包括的线程组对应的更新后年龄信息发送给优先级检测单元,为优先级检测单元确定相对优先级信息提供数据支持,以便优先级检测单元能够根据至少一个线程组的年龄信息,较为准确的确定多个访问指令之间的相对优先级信息。
16.一种可能的实施方式中,所述优先级检测单元包括线程块优先级检测单元;所述线程块优先级检测单元分别与所述线程块年龄生成单元和所述仲裁单元相连;
17.所述线程块优先级检测单元,用于接收所述线程块年龄生成单元发送的各个线程组对应的更新后年龄信息;以及基于接收到的所述各个线程组对应的更新后年龄信息、和所述仲裁单元发送的访问指令对应的线程组标识,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;其中,年龄信息与优先级之间正相关。
18.为了均衡各个线程块之间的执行任务时长,可以对存活时长较大的线程块中至少一个线程组的访问指令进行优先相应,以降低线程块的运行时间,提高包括多个线程块的芯片的性能。基于此,线程块优先级检测单元可以基于接收到的各个线程组对应的更新后年龄信息、和仲裁单元发送的访问指令对应的线程组标识,根据年龄信息与优先级之间正相关的原则,较准确的确定多个访问指令之间的相对优先级信息。
19.一种可能的实施方式中,所述线程块控制模块包括:线程块时间戳生成单元;
20.所述线程块时间戳生成单元,用于基于接收到的第二启动指令,将执行所述第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到所述第一线程块的更新后时间戳信息;并将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给所述优先级检测单元;
21.其中,所述第二启动指令用于启动已存在的线程块执行新任务;所述至少一个线程组对应的实时时间戳信息包括:所述第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除所述第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息。
22.本公开实施方式中,线程块时间戳生成单元用于根据第二启动指令,将执行第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到第一线程块的更新后时间戳信息。比如,每启动一次第一线程块,则该第一线程块的时间戳信息可以加一,得到更新
后时间戳信息;通过该时间戳信息能够较准确的反应第一线程块的执行次数。再将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给优先级检测单元,为优先级检测单元确定相对优先级信息提供数据支持,以便优先级检测单元能够根据线程组的实时时间戳信息和访问指令对应的随路时间戳信息,较为准确的确定多个访问指令之间的相对优先级信息。
23.一种可能的实施方式中,所述优先级检测单元包括残留线程组检测单元;所述残留线程组检测单元分别与所述线程块时间戳生成单元和所述仲裁单元相连;
24.所述残留线程组检测单元,用于接收所述线程块时间戳生成单元发送的所述至少一个线程组对应的实时时间戳信息,和所述仲裁单元发送的所述访问指令对应的线程组标识、所述访问指令中包括的随路时间戳信息;以及
25.基于所述线程组对应的所述实时时间戳信息、所述访问指令对应的线程组标识、和所述访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;
26.其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
27.线程块在执行当前任务时,若当前任务中的运算部分执行完成后,可以控制该线程块执行新的任务,但是,该线程块执行新的任务时,前一任务的访存任务可能还未执行完成,为了能够对该情况下的线程块进行优先相应,以尽快释放该线程块,提高线程块的利用率,可以设置残留线程组检测单元,该线程组残留检测单元基于线程组对应的实时时间戳信息、访问指令对应的线程组标识和访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息,比如可以将实时时间戳信息与随路时间戳信息不一致的线程组对应的访问指令的优先级设置的最高;其中实时时间戳信息与随路时间戳信息不一致的线程组即为上述情况的线程块包括的线程组。
28.一种可能的实施方式中,所述访存模块还包括:至少一个线程组指令传输单元;所述线程组指令传输单元与所述仲裁单元相连;其中,每个线程组对应至少一个线程组指令传输单元;
29.所述线程组指令传输单元,用于接收与该线程组指令传输单元匹配的线程组发送的访问指令,并将所述访问指令发送至所述仲裁单元。
30.上述实施方式中,可以将访问指令通过与该访问指令对应的线程组匹配的线程组指令传输单元发送给仲裁单元,提高发送的效率和精准度。
31.以下方法、芯片、电子设备等的效果描述参见上述系统的说明,这里不再赘述。
32.第二方面,本公开提供了一种芯片,包括:第一方面或任一实施方式所述的仲裁系统和存储单元;
33.所述仲裁系统,用于从多个访问指令中确定执行访存操作的至少一个目标访问指令,并将所述目标访问指令发送给所述存储单元,以便基于所述目标访问指令对所述存储单元进行访存操作。
34.由于本芯片中包括由第一方面或任一实施方式所述的仲裁系统,该仲裁系统能够降低线程块的运行时间,提升线程块的利用率,使得该芯片的性能较佳。
35.第三方面,本公开提供了一种仲裁方法,包括:
36.基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息;
37.根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;
38.基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
39.一种可能的实施方式中,所述时效信息包括年龄信息,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息,包括:
40.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的年龄信息;
41.基于与所述线程组标识匹配的所述线程组的年龄信息,确定多个所述访问指令之间的相对优先级信息;其中,年龄信息与优先级之间正相关。
42.一种可能的实施方式中,所述时效信息包括时间戳信息,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息,包括:
43.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的实时时间戳信息;
44.基于所述实时时间戳信息、和所述访问指令中包括的随路时间戳信息的一致性信息,确定多个所述访问指令之间的相对优先级信息;其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
45.第四方面,本公开提供了一种仲裁装置,包括:
46.第一确定模块,用于基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息;
47.第二确定模块,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;
48.第三确定模块,用于基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
49.一种可能的实施方式中,所述时效信息包括年龄信息,所述第二确定模块,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
50.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹
配的线程组的年龄信息;
51.基于与所述线程组标识匹配的所述线程组的年龄信息,确定多个所述访问指令之间的相对优先级信息;其中,年龄信息与优先级之间正相关。
52.一种可能的实施方式中,所述时效信息包括时间戳信息,所述第二确定模块,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
53.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的实时时间戳信息;
54.基于所述实时时间戳信息、和所述访问指令中包括的随路时间戳信息的一致性信息,确定多个所述访问指令之间的相对优先级信息;其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
55.第五方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第三方面或任一实施方式所述的仲裁方法的步骤;或者如第二方面所述的芯片。
56.第六方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第三方面或任一实施方式所述的仲裁方法的步骤。
57.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
58.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
59.图1示出了本公开实施例所提供的一种仲裁系统的架构示意图;
60.图2示出了本公开实施例所提供的另一种仲裁系统的架构示意图;
61.图3示出了本公开实施例所提供的另一种仲裁系统的架构示意图;
62.图4示出了本公开实施例所提供的另一种仲裁系统的架构示意图;
63.图5示出了本公开实施例所提供的一种芯片的架构示意图;
64.图6示出了本公开实施例所提供的一种仲裁方法的流程示意图;
65.图7示出了本公开实施例所提供的一种仲裁装置的架构示意图;
66.图8示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
67.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
68.随着人工智能和高性能计算的不断发展,芯片中的计算单元所需要处理的数据量日趋庞大。在计算过程中,大量数据需要在内部寄存器和外部存储器间搬运。一旦数据搬运过程中出现访存停顿,例如长时间不能返回装载load数据,会导致计算单元长时间等待,进而造成芯片的处理效率严重下降。随着多线程并行处理器的算力不断提升,使得提高计算单元的访存效率逐渐成为芯片设计的瓶颈之一。因此在人工智能等高性能计算系统的电路设计中,高效的多线程组读写访存的仲裁设计尤为重要。
69.一般的,可以使用轮询的仲裁方式,对多个线程组间的访问请求进行仲裁。比如,在任一线程组有访存请求时,可以将该访存请求信号置高,仲裁单元将寄存器记录的上次选择的请求端口id作为起始点,找到下一个有效的请求端口,并将下一个有效的请求端口id更新到寄存器中。
70.但是上述轮询的仲裁方式,无法对已经运行较长时间的线程块的访问请求进行优先相应,也无法对线程块内残留的线程组进行优先相应,导致芯片的整体性能下降。其中,线程块内残留的线程组是指已执行完成运算任务、但未完成访存任务的线程组。
71.为了缓解上述问题,本公开实施例提供了仲裁系统、方法、装置、电子设备、存储介质及芯片。
72.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
73.为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种仲裁系统进行详细介绍。
74.参见图1所示,为本公开实施例所提供的仲裁系统的架构示意图,包括:线程块控制模块11和访存模块12;具体的:
75.所述线程块控制模块11,用于基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;以及将各个线程块中线程组对应的时效信息发送给所述访存模块。
76.所述访存模块,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;以及基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
77.实施时,线程块控制模块能够基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息。该线程块中包括至少一个线程组,则该线程块中包括的每个线程组的时效信息,为该线程块对应的时效信息。在得到线程块的时效信息之后,线程块控制模块将各个线程块中线程组对应的时效信息发送给访存模块。
78.访存模块根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;比如访问指令一的优先级高于访问指令二、访问指令二的优先级高于访问指令三等。并基于接收到的相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令,即可以按照优先级高低顺序,确定目标访问指令,比如,可以将访问指令一确定为目标访问指令。
79.一种可选的实施方式中,所述访存模块包括优先级检测单元121和仲裁单元122。
80.所述仲裁单元122,用于接收多个访问指令,并将所述访问指令对应的线程组标识发送给所述优先级检测单元;
81.所述优先级检测单元121,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元。
82.所述仲裁单元122,还用于基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
83.其中,所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息。
84.线程块控制模块、访存模块对应的硬件电路可以实现为:根据模块所具有的功能,将与门、非门、或门等基本门电路,寄存器、触发器、编码器等时序逻辑部件进行连接得到的逻辑电路。这里对硬件电路的实现方式不再赘述。
85.实施时,芯片在工作过程中,芯片中的其他模块(比如对各个线程块进行控制的控制模块)生成启动指令后,可以将启动指令发送给线程块控制模块11。其中,该启动指令为用于启动线程块的指令。该启动指令可以包括用于启动新的线程块的第一启动指令;和/或,用于启动已存在的线程块执行新任务的第二启动指令。
86.线程块控制模块11用于根据启动指令,确定已启动的至少一个线程块的时效信息。其中每个线程块中包括至少一个线程组。线程块中包括的每个线程组的时效信息是一致的,即线程块对应的时效信息为线程块中每个线程组的时效信息。该时效信息可以包括年龄信息和/或时间戳信息。年龄信息用于表征不同线程块之间的相对存活时长。比如,若线程块1的年龄信息为1、线程块2的年龄信息为2,则表示线程块2的存活时长大于线程块1的存活时长。时间戳信息用于表征线程块执行任务次数,比如,线程块1的时间戳信息为4时,则该线程块1的执行次数为n
×
c 4,其中,c为运行周期的数量,n为每个运行周期包括的执行次数,在c为1、n为14时,则线程块执行的任务次数为1
×
14 4=18次。
87.线程块控制模块11在确定了各个线程块的时效信息之后,可以基于线程组的维度,将各个线程块中包括的线程组对应的时效信息发送给优先级检测单元121。比如,线程组1的时效信息1、线程组2的时效信息2等。
88.线程组在需要对存储单元进行访存时生成访问指令,每个访问指令中包括有线程组标识。线程组将生成的访问指令发送给仲裁单元。
89.仲裁单元在接收到访问指令时,可以将该访问指令对应的线程组标识发送给优先级检测单元。
90.优先级检测单元121根据接收到的访问指令对应的线程组标识、和各个线程组对应的时效信息,确定多个访问指令之间的相对优先级信息。比如,在时效信息包括年龄信息
时,线程组的年龄信息越大,则该线程组的优先级越高。若多个线程组的年龄信息一致,则该多个线程组的优先级一致。再可以将确定的相对优先级信息发送给仲裁单元122。
91.该仲裁单元122根据接收到的相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。该目标访问指令的数量可以为一个或多个。实施时,可以按照优先级从高到低的顺序,从多个访问指令中确定目标访问指令。在多个访问指令的优先级一致时,可以根据轮询的方式从多个优先级一致的访问指令中选取目标访问指令。
92.这里,通过利用线程块控制模块确定已启动的至少一个线程块的时效信息,并将得到的至少一个线程组的时效信息发送给访存模块,该时效信息可以包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息。访存模块根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,能够较准确的确定多个访问指令之间的相对优先级信息;比如,年龄信息越大,优先级越高。进而基于接收到的相对优先级信息,较为精准的从多个访问指令中确定执行访存操作的至少一个目标访问指令。
93.一种可选实施方式中,参见图2所示,所述线程块控制模块11可以包括:线程块年龄生成单元111;
94.所述线程块年龄生成单元111,用于基于接收到的第一启动指令,确定所述第一启动指令对应的、新启动的线程块的年龄信息为预设值,以及将已启动的线程块中,除新启动的线程块之外的、其他线程块的当前年龄信息增加第一目标值,得到所述其他线程块对应的更新后年龄信息;并将所述新启动的线程块和所述其他线程块中包括的线程组对应的更新后年龄信息发送给所述优先级检测单元;其中,所述第一启动指令用于启动新的线程块。
95.第一启动指令用于启动新的线程块。实施时,线程块年龄生成单元根据接收到的第一启动指令,确定已启动的各个线程块的年龄信息。该已启动的线程块包括新启动的线程块和第一启动指令之前已存在的线程块。
96.线程块年龄生成单元111根据第一启动指令,确定第一启动指令对应的、新启动的线程块的年龄信息为预设值(得到新启动的线程块的更新后年龄信息);以及将已启动的线程块中,除新启动的线程块之外的、其他线程块的当前年龄信息增加第一目标值,得到其他线程块的更新后年龄信息。其中,预设值和第一目标值可以根据需要进行设置。比如,若预设值为0,第一目标值为1,已启动的线程块包括:新启动的线程块1、其他线程块2(当前年龄信息为2)、其他线程块3(当前年龄信息为3)时,则确定第一启动指令对应的新启动的线程块1的更新后年龄信息为0、其他线程块1对应的更新后年龄信息为3、其他线程块3对应的更新后年龄信息为4。
97.线程块年龄生成单元111再将新启动的线程块和其他线程块中包括的线程组对应的更新后年龄信息发送给优先级检测单元。
98.本公开实施方式中,线程块年龄生成单元用于根据第一启动指令,确定已启动的各个线程块的年龄信息。比如,每启动一个新的线程块,已启动的其他线程块的年龄信息可以加一,得到多个线程块的更新后年龄信息。该年龄信息可以表征不同线程块之间的相对存活时长,年龄信息越大,存活时长越长。再将新启动的线程块和其他线程块中包括的线程组对应的更新后年龄信息发送给优先级检测单元,为优先级检测单元确定相对优先级信息提供数据支持,以便优先级检测单元能够根据至少一个线程组的年龄信息,较为准确的确
定多个访问指令之间的相对优先级信息。
99.一种可选实施方式中,所述优先级检测单元121包括线程块优先级检测单元1211;所述线程块优先级检测单元1211分别与所述线程块年龄生成单元111和所述仲裁单元122相连;
100.所述线程块优先级检测单元1211,用于接收所述线程块年龄生成单元发送的各个线程组对应的更新后年龄信息;以及基于接收到的所述各个线程组对应的更新后年龄信息、和所述仲裁单元发送的访问指令对应的线程组标识,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;其中,年龄信息与优先级之间正相关。
101.实施时,线程块年龄生成单元111可以将新启动的线程块和其他线程块中包括的线程组对应的更新后年龄信息发送给线程块优先级检测单元1211中。以及仲裁单元122在接收到访问指令之后,可以将访问指令对应的线程组标识发送给优先级检测单元1211。
102.线程块优先级检测单元1211根据仲裁单元122发送的访问指令对应的线程组标识,从接收到的各个线程组的更新后年龄信息中,确定多个访问指令对应的线程组的年龄信息。再根据多个访问指令对应的线程组的年龄信息,确定多个访问指令的相对优先级信息。比如,相对优先级信息可以为:线程组1对应的访问指令1的优先级最高、线程组2对应的访问指令2的优先级次高等。或者,线程组1对应的访问指令1的优先级第一、线程组2对应的访问指令2的优先级第二等。
103.一般的,线程组的年龄信息越大,则该线程组的运行时长较大,为了对运行时长较大的线程组能够被优先响应,以使得各个线程组之间的运行时长均衡,故可以设置年龄信息与优先级之间正相关。其中,线程组的年龄信息与线程组对应的访问指令的优先级之间正相关。即线程组的年龄信息越大,则该线程组对应的访问指令的优先级越高;若多个线程组的年龄信息一致,则该多个线程组对应的访问指令的优先级一致。
104.线程块优先级检测单元1211再将确定相对优先级信息发送给仲裁单元122。
105.为了均衡各个线程块之间的执行任务时长,可以对存活时长较大的线程块中至少一个线程组的访问指令进行优先响应,以降低线程块的运行时间,提高包括多个线程块的芯片的性能。基于此,线程块优先级检测单元可以基于接收到的各个线程组对应的更新后年龄信息、和仲裁单元发送的访问指令对应的线程组标识,根据年龄信息与优先级之间正相关的原则,较准确的确定多个访问指令之间的相对优先级信息。
106.一种可选实施方式中,参见图3所示,所述线程块控制模块11可以包括:线程块时间戳生成单元112;
107.所述线程块时间戳生成单元112,用于基于接收到的第二启动指令,将执行所述第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到所述第一线程块的更新后时间戳信息;并将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给所述优先级检测单元;
108.其中,所述第二启动指令用于启动已存在的线程块执行新任务;所述至少一个线程组对应的实时时间戳信息包括:所述第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除所述第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息。
109.第二启动指令用于启动已存在的线程块执行新任务。一般的,线程块在当前任务的运算部分执行完成时,芯片中的控制模块可以生成第二启动指令,启动该线程块执行下一个新的任务。在线程块的当前任务的运算部分执行完成并启动下一任务时,当前任务的访存部分可能未执行完成,此时该线程块的优先级需要设置的最高,以便能够较为快速的执行该线程块的访存部分的过程,提高线程块的利用率。实施时,可以根据线程块的时间戳信息确定该线程块是否为前一任务的访存部分未执行、但已开启新的任务的线程块。
110.实施时,线程块时间戳生成单元112根据第二启动指令,将执行第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到第一线程块的更新后时间戳信息。其中,第二目标值可以根据需要进行设置。比如,若第二目标值为1、第一线程块的当前时间戳信息为3,则该第一线程块的更新后时间戳信息为4。
111.进而,已启动的线程块中的第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息,构成了至少一个线程组对应的实时时间戳信息。其中,第一线程组为第一线程块中的每个线程组;第二线程组为第二线程块中的每个线程组。
112.实施时,线程块时间戳生成单元112可以将第一线程块包括的第一线程组对应的更新后时间戳信息、和已启动的线程块中除第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息,发送给优先级检测单元。即可以将第一线程组对应的更新后时间戳信息作为该第一线程组对应的实时时间戳信息、以及将第二线程组对应的当前时间戳信息作为第二线程组对应的实时时间戳信息。将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给优先级检测单元。
113.或者,线程块时间戳生成单元112可以将第一线程块包括的第一线程组对应的更新后时间戳信息,发送给优先级检测单元,以便对优先级检测单元中存储的第一线程组的当前时间戳信息进行替换,并将替换后的时间戳信息作为第一线程组的实时时间戳信息。以及第二线程块中的每个线程组的当前时间戳信息为该线程组对应的实时时间戳信息。
114.本公开实施方式中,线程块时间戳生成单元用于根据第二启动指令,将执行第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到第一线程块的更新后时间戳信息。比如,每启动一次第一线程块,则该第一线程块的时间戳信息可以加一,得到更新后时间戳信息;通过该时间戳信息能够较准确的反应第一线程块的执行次数。再将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给优先级检测单元,为优先级检测单元确定相对优先级信息提供数据支持,以便优先级检测单元能够根据线程组的实时时间戳信息和访问指令对应的随路时间戳信息,较为准确的确定多个访问指令之间的相对优先级信息。
115.其中,在线程块控制模块包括线程块年龄生成单元111和线程块时间戳生成单元112的情况下,若已启动的线程块包括线程块1、线程块2、线程块3,在响应于第一启动指令启动新的线程块(即线程块4)之后,线程块年龄生成单元111确定线程块4的年龄信息为预设值(比如为0),并将线程块1、线程块2、线程块3的当前年龄信息增加第一目标值(比如增加1),得到线程块1、线程块2、线程块3、线程块4分别对应的更新后年龄信息。即可知,在响应于第一启动指令启动新的线程块之后,确定新启动的线程块的年龄为预设值,并将已启动的各个线程块的年龄增加第一目标值。
116.在响应于第二启动指令控制已启动的线程块执行新的任务之后,比如响应于第二启动指令控制线程块2执行新的任务之后,线程块时间戳生成单元112,可以根据第二启动指令,确定将线程块2的当前时间戳信息增加第二目标值(比如增加1),得到线程块2对应的更新后时间戳信息,且已启动的其他线程块比如线程块1、线程块3、线程块4的当前时间戳信息不发生改变。即可知,在响应于第二启动指令启动已启动线程块执行新的任务之后,将执行新的任务的线程块的年龄信息进行更新,其他线程块的年龄信息不发生改变。
117.一种可选实施方式中,所述优先级检测单元121包括残留线程组检测单元1212;所述残留线程组检测单元1212分别与所述线程块时间戳生成单元112和所述仲裁单元122相连;
118.所述残留线程组检测单元1212,用于接收所述线程块时间戳生成单元发送的所述至少一个线程组对应的实时时间戳信息,和所述仲裁单元发送的所述访问指令对应的线程组标识、所述访问指令中包括的随路时间戳信息;以及基于所述线程组对应的所述实时时间戳信息、所述访问指令对应的线程组标识、和所述访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元。
119.其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
120.线程块时间戳生成单元112可以将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给残留线程组检测单元1212。以及仲裁单元122可以将访问指令对应的线程组标识和访问指令中包括的随路时间戳信息发送给残留线程组检测单元1212。
121.残留线程组检测单元1212,在接收到线程块时间戳生成单元发送的至少一个线程组对应的实时时间戳信息,和仲裁单元发送的访问指令对应的线程组标识、访问指令中包括的随路时间戳信息之后,从至少一个线程组对应的实时时间戳信息中,确定线程组标识对应的线程组的实时时间戳信息。再针对每个线程组标识对应的线程组,确定该线程组的实时时间戳信息、与该线程组对应的访问指令的随路时间戳信息是否一致,若不一致,则该线程组对应的访问指令的优先级最高;若一致,则该线程组对应的访问指令的优先级次高。即实时时间戳信息与随路时间戳信息不一致的线程组对应的访问指令的优先级、高于实时时间戳信息与随路时间戳信息一致的线程组对应的访问指令。该随路时间戳信息为生成访问指令时线程组对应的时间戳。
122.进而,得到了多个访问指令之间的相对优先级信息。残留线程组检测单元1212可以将确定的相对优先级信息发送给仲裁单元。
123.可知,在线程块的当前任务的运算部分执行完成并启动下一任务,且当前任务的访存部分未执行完成时,由于该线程块启动了下一任务,使得该线程块中的线程组的实时时间戳信息会发生改变(即会增加第二目标值),但是该线程组对应的访问指令是在该线程块启动下一任务之前生成的,且该线程组对应的访问指令中的随路时间戳不会发生改变,进而会造成线程组的实时时间戳信息与该线程组对应的访问指令中的随路时间戳不一致。因此,可以将实时时间戳与随路时间戳不一致的访问指令的优先级设置的最高。
124.线程块在执行当前任务时,若当前任务中的运算部分执行完成后,可以控制该线
程块执行新的任务,但是,该线程块执行新的任务时,前一任务的访存任务可能还未执行完成,为了能够对该情况下的线程块进行优先相应,以尽快释放该线程块,提高线程块的利用率,可以设置残留线程组检测单元,该线程组残留检测单元基于线程组对应的实时时间戳信息、访问指令对应的线程组标识和访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息,比如可以将实时时间戳信息与随路时间戳信息不一致的线程组对应的访问指令的优先级设置的最高;其中实时时间戳信息与随路时间戳信息不一致的线程组即为上述情况的线程块包括的线程组。
125.一个可选实施方式中,参见图4所示,所述访存模块12还包括:至少一个线程组指令传输单元123;所述线程组指令传输单元123与所述仲裁单元122相连;其中,每个线程组对应至少一个线程组指令传输单元123;其中,所述线程组指令传输单元123,用于接收与该线程组指令传输单元匹配的线程组发送的访问指令,并将所述访问指令发送至所述仲裁单元122。
126.实施时,可以将每个线程组对应一个线程组指令传输单元,或者,每个线程组对应多个线程组指令传输单元,再或者,将多个线程组对应一个线程组指令传输单元。其中,线程组指令传输单元的数量、以及线程组指令传输单元与线程组之间的映射关系可以根据需要进行设置。
127.每个线程组指令传输单元,在接收到对应的线程组发送的访问指令之后,将接收到的访问指令发送至仲裁单元122。上述实施方式中,可以将访问指令通过与该访问指令对应的线程组匹配的线程组指令传输单元发送给仲裁单元,提高发送的效率和精准度。
128.结合图4,对该仲裁系统的执行过程进行示例性说明。
129.第一、线程块年龄生成单元根据接收到的第一启动指令,确定已启动的各个线程块的年龄信息,并将线程块中每个线程组的年龄信息发送给线程块优先级检测单元。
130.第二、线程块时间戳生成单元根据接收到的第二启动指令,确定第二启动指令对应的第一线程块的更新后时间戳信息。并将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给优先级检测单元。
131.其中,至少一个线程组对应的实时时间戳信息包括:第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息。
132.第三、线程组在生成访问指令之后,可以将访问指令通过与该线程组匹配的线程组指令传输单元发送给仲裁单元。
133.第四、仲裁单元将访问指令对应的线程组标识发送给线程块优先级检测单元;以及仲裁单元可以将访问指令对应的线程组标识和访问指令对应的随路时间戳发送给残留线程组检测单元。
134.第五、线程块优先级检测单元可以根据各个线程组对应的年龄信息和访问指令对应的线程组标识,确定多个访问指令之间的第一相对优先级信息;并将多个访问指令之间的第一相对优先级信息发送给仲裁单元。
135.第六、残留线程组检测单元可以根据各个线程组对应的实时时间戳信息、访问指令对应的线程组标识、和访问指令对应的随路时间戳,确定多个访问指令之间的第二相对优先级信息;并将多个访问指令之间的第二相对优先级信息发送给仲裁单元。
136.第七、仲裁单元根据接收到的第一相对优先级信息和第二相对优先级信息,从多个访问指令中确定至少一个目标访问指令。
137.比如,仲裁单元可以确定第二相对优先级信息中是否存在随路时间戳和实时时间戳不一致的访问指令,若存在,则将该访问指令确定为目标访问指令。若不存在,或者,确定的目标访问指令的数量不够时,可以根据第一相对优先级信息,确定目标访问指令。若多个访问指令之间的优先级一致时,可以根据轮询的方式确定目标访问指令。
138.本领域技术人员可以理解,在具体实施方式的上述系统中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
139.基于相同的构思,本公开实施例还提供了一种芯片,参见图5所示,为本公开实施例提供的芯片的架构示意图,包括:上述实施方式的仲裁系统501和存储单元502,具体的:
140.所述仲裁系统501,用于从多个访问指令中确定执行访存操作的至少一个目标访问指令,并将所述目标访问指令发送给所述存储单元502,以便基于所述目标访问指令对所述存储单元502进行访存操作。
141.由于本芯片中包括由第一方面或任一实施方式所述的仲裁系统,该仲裁系统能够降低线程块的运行时间,提升线程块的利用率,使得该芯片的性能较佳。
142.基于相同的构思,本公开实施例还提供了一种仲裁方法,参见图6所示,为本公开实施例提供的仲裁方法的流程示意图,包括s601-s603,具体的:
143.s601,基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息;
144.s602,根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;
145.s603,基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
146.一种可选实施方式中,所述时效信息包括年龄信息,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息,包括:
147.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的年龄信息;
148.基于与所述线程组标识匹配的所述线程组的年龄信息,确定多个所述访问指令之间的相对优先级信息;其中,年龄信息与优先级之间正相关。
149.实施时,可以从至少一个线程组对应的时效信息中,确定与访问指令对应的线程组标识匹配的线程组的年龄信息。再可以基于与线程组标识匹配的线程组的年龄信息,确定多个访问指令之间的相对优先级信息。比如可以按照年龄信息从大到小的顺序,确定相对优先级信息,比如,年龄信息越大,优先级越高。
150.一种可选实施方式中,所述时效信息包括时间戳信息,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的
相对优先级信息,包括:
151.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的实时时间戳信息;
152.基于所述实时时间戳信息、和所述访问指令中包括的随路时间戳信息的一致性信息,确定多个所述访问指令之间的相对优先级信息;其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
153.实施时,可以确定访问指令对应的线程组的实时时间戳信息、和访问指令中包括的随路时间戳信息是否一致,若一致,则确定一致性信息为一致;若不一致,则确定一致性信息为不一致。再可以根据确定的一致性信息,确定多个访问指令之间的相对优先级信息。比如,访问指令对应的线程组的实时时间戳信息与访问指令包括的随路时间戳信息的一致性信息指示为不一致时,确定该访问指令的优先级最高。
154.一种可能的实施方式中,所述基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息,包括:
155.基于接收到的第一启动指令,确定所述第一启动指令对应的、新启动的线程块的年龄信息为预设值,以及将已启动的线程块中,除新启动的线程块之外的、其他线程块的当前年龄信息增加第一目标值,得到所述其他线程块对应的更新后年龄信息;并将所述新启动的线程块和所述其他线程块中包括的线程组对应的更新后年龄信息发送给所述优先级检测单元;其中,所述第一启动指令用于启动新的线程块。
156.一种可能的实施方式中,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息,包括:
157.基于接收到的所述各个线程组对应的更新后年龄信息、和所述仲裁单元发送的访问指令对应的线程组标识,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;其中,年龄信息与优先级之间正相关。
158.一种可能的实施方式中,所述基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息,包括:
159.基于接收到的第二启动指令,将执行所述第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到所述第一线程块的更新后时间戳信息;并将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给所述优先级检测单元;
160.其中,所述第二启动指令用于启动已存在的线程块执行新任务;所述至少一个线程组对应的实时时间戳信息包括:所述第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除所述第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息。
161.一种可能的实施方式中,所述根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息,包括:
162.接收所述线程块时间戳生成单元发送的所述至少一个线程组对应的实时时间戳信息,和所述仲裁单元发送的所述访问指令对应的线程组标识、所述访问指令中包括的随路时间戳信息;
163.基于所述线程组对应的所述实时时间戳信息、所述访问指令对应的线程组标识、和所述访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;
164.其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
165.一种可能的实施方式中,所述方法还包括:
166.接收与该线程组指令传输单元匹配的线程组发送的访问指令,并将所述访问指令发送至所述仲裁单元。
167.基于相同的构思,本公开实施例还提供了一种仲裁装置,参见图7所示,为本公开实施例提供的仲裁装置的架构示意图,包括第一确定模块701、第二确定模块702、第三确定模块703,具体的:
168.第一确定模块701,用于基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息;
169.第二确定模块702,用于根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;
170.第三确定模块703,用于基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
171.一种可能的实施方式中,所述时效信息包括年龄信息,所述第二确定模块702,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
172.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的年龄信息;
173.基于与所述线程组标识匹配的所述线程组的年龄信息,确定多个所述访问指令之间的相对优先级信息;其中,年龄信息与优先级之间正相关。
174.一种可能的实施方式中,所述时效信息包括时间戳信息,所述第二确定模块702,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
175.从至少一个线程组对应的时效信息中,确定与所述访问指令对应的线程组标识匹配的线程组的实时时间戳信息;
176.基于所述实时时间戳信息、和所述访问指令中包括的随路时间戳信息的一致性信息,确定多个所述访问指令之间的相对优先级信息;其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
177.一种可能的实施方式中,所述第一确定模块701,在基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息时,用于:
178.基于接收到的第一启动指令,确定所述第一启动指令对应的、新启动的线程块的年龄信息为预设值,以及将已启动的线程块中,除新启动的线程块之外的、其他线程块的当前年龄信息增加第一目标值,得到所述其他线程块对应的更新后年龄信息;并将所述新启动的线程块和所述其他线程块中包括的线程组对应的更新后年龄信息发送给所述优先级检测单元;其中,所述第一启动指令用于启动新的线程块。
179.一种可能的实施方式中,所述第二确定模块702,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
180.基于接收到的所述各个线程组对应的更新后年龄信息、和所述仲裁单元发送的访问指令对应的线程组标识,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;其中,年龄信息与优先级之间正相关。
181.一种可能的实施方式中,所述第一确定模块701,在基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息时,用于:
182.基于接收到的第二启动指令,将执行所述第二启动指令的第一线程块的当前时间戳信息增加第二目标值,得到所述第一线程块的更新后时间戳信息;并将已启动的线程块包括的至少一个线程组对应的实时时间戳信息发送给所述优先级检测单元;
183.其中,所述第二启动指令用于启动已存在的线程块执行新任务;所述至少一个线程组对应的实时时间戳信息包括:所述第一线程块包括的第一线程组对应的更新后时间戳信息,和已启动的线程块中除所述第一线程块之外的第二线程块包括的第二线程组对应的当前时间戳信息。
184.一种可能的实施方式中,所述第二确定模块702,在根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息时,用于:
185.接收所述线程块时间戳生成单元发送的所述至少一个线程组对应的实时时间戳信息,和所述仲裁单元发送的所述访问指令对应的线程组标识、所述访问指令中包括的随路时间戳信息;
186.基于所述线程组对应的所述实时时间戳信息、所述访问指令对应的线程组标识、和所述访问指令中包括的随路时间戳信息,确定多个访问指令之间的相对优先级信息;并将确定的所述相对优先级信息发送给所述仲裁单元;
187.其中,所述随路时间戳信息为生成所述访问指令时所述线程组对应的时间戳;所述实时时间戳信息与所述随路时间戳信息不一致的线程组对应的访问指令的优先级、高于所述实时时间戳信息与所述随路时间戳信息一致的线程组对应的访问指令。
188.一种可能的实施方式中,所述装置还包括:接收模块,用于接收与该线程组指令传输单元匹配的线程组发送的访问指令,并将所述访问指令发送至所述仲裁单元。
189.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
190.基于同一技术构思,本公开实施例还提供了一种电子设备。参照图8所示,为本公开实施例提供的电子设备的结构示意图,包括处理器801、存储器802、和总线803。其中,存
储器802用于存储执行指令,包括内存8021和外部存储器8022;这里的内存8021也称内存储器,用于暂时存放处理器801中的运算数据,以及与硬盘等外部存储器8022交换的数据,处理器801通过内存8021与外部存储器8022进行数据交换,当电子设备800运行时,处理器801与存储器802之间通过总线803通信,使得处理器801在执行以下指令:
191.基于接收到的、用于指示启动线程块的启动指令,确定已启动的至少一个线程块的时效信息;其中,每个线程块中包括至少一个线程组;所述时效信息包括用于表征不同线程块之间的相对存活时长的年龄信息,和/或,用于表征线程块执行任务次数的时间戳信息;
192.根据接收到的访问指令对应的线程组标识、和至少一个线程组对应的时效信息,确定多个所述访问指令之间的相对优先级信息;
193.基于接收到的所述相对优先级信息,从多个访问指令中确定执行访存操作的至少一个目标访问指令。
194.其中,处理器801的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
195.此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的仲裁方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
196.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的仲裁方法的步骤,具体可参见上述方法实施例,在此不再赘述。
197.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
198.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
199.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
200.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
201.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以
存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
202.以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献