【技术实现步骤摘要】
构建和调度用于并行处理的任务
[0001]本专利技术涉及构建和调度用于并行处理的任务。
技术介绍
[0002]处理器是用于执行机器代码指令的装置。给定处理器被配置成识别指令类型的特定预定义集合,称为处理器的指令集。每个指令类型由相应的操作码和零或更多操作数字段定义。处理器被配置成从存储器获取指令以用于执行。处理器可以包括许多不同种类的子单元,以用于根据正在执行的指令的类型,执行不同类别的操作。例如,处理器可以包括用于响应于算术指令类型而执行整数算术运算的整数算术逻辑单元,用于响应于浮点指令类型而执行浮点运算的浮点算术逻辑单元,以及用于响应于加载和存储指令类型而执行存储器访问操作的加载存储单元。
[0003]例如,在精简指令集计算机(RISC)中,加载指令需要至少两个操作数:源存储器地址和在处理器的寄存器文件中指定目的地寄存器的标识符。执行时,加载指令会作用于加载存储单元,以将来自源地址的值加载到目的地寄存器中。取决于指令的类型,逻辑指令可以获取不同数目的操作数。例如,诸如加或乘指令等的逻辑指令可以采用三个操作数:两个在寄存器文件中指定两个相应的源寄存器,一个在寄存器文件中指定目的地寄存器。当执行时,逻辑指令作用于相关逻辑单元,例如整数或浮点算术逻辑单元,以便对指定源寄存器中的值执行相关逻辑操作,并将结果置于指定目的地寄存器中。要执行的操作以及触发哪个逻辑单元以执行此操作将取决于相关指令的操作码。将逻辑操作的结果存储回存储器涉及存储指令。存储指令需要至少两个操作数:一个指定寄存器文件中的源寄存器,一个指定存储器 ...
【技术保护点】
【技术特征摘要】
1.一种逻辑,包括:任务构建器,所述任务构建器用于构建多个任务,每个任务包括待由相应程序处理的相应组的数据项;任务调度器,所述任务调度器用于调度待由在并行处理子系统上运行的所述相应程序处理的任务中的每一个,由此对于每个任务,并行处理所述相应组的数据项中的至少一些;数据储存库,所述数据储存库被布置成至少暂时保存映射到相应项目ID的所述数据项中的每一个的相应数据内容;以及链表RAM,所述链表RAM包括每个项目ID的相应条目;其中所述任务构建器被配置成通过以下方式构建所述任务:当新数据项接收到所述数据储存库中时,确定是否存在针对所述新数据项的现有任务,并且a)如果不存在,通过在包括所述新数据项的链表RAM中启动新的相应链表来创建新任务,但是b)如果存在,将所述新数据项添加到所述链表RAM中的现有相应链表,其中在每个链表中,在列表中的从头部数据项到尾部数据项之前的至少最后数据项的每个数据项的条目都记录指向所述链表中的下一项目ID的指针;其中所述任务构建器还被配置成指示所述任务中的任一个何时准备好进行调度;并且其中所述任务调度器被布置成基于来自所述任务构建器的指示,识别准备好进行调度的任务,并且作为响应,遵循相应链表中的指针,以便调度相应任务的数据项以供所述并行处理子系统处理。2.根据权利要求1所述的逻辑,其中所述任务构建器被配置成通过在所述链表RAM中断言相应标志以标记所述任务中的任一个何时准备好进行调度来执行所述指示;并且其中所述任务调度器被布置成通过监测所述链表RAM以发现断言标志来执行所述识别,并且在所述相应标志被断言时检测所述任务中的一个准备就绪。3.根据权利要求1或2所述的逻辑,其中所述任务构建器包括被布置成存储正在构建的任务的一个或多个指示的临时存储装置,并且所述任务构建器被配置成基于一个或多个预定标准从所述临时存储装置移除所选任务的指示,并且指示所述所选任务准备好进行调度。4.根据权利要求3所述的逻辑,其中所述临时存储装置包括高速缓存,所述高速缓存包括多个区格,每个区格可操作以通过临时记录所述任务的指示来高速缓存所述任务中的一个,其中当创建新任务时,所述新任务被高速缓存在所述区格中的一个中,其中所述一个或多个预定标准包括驱逐策略,并且所述高速缓存被配置成根据所述驱逐策略从所述区格中驱逐任务,并且其中所述任务构建器被配置成在所述所选任务从所述高速缓存中驱逐时,指示所述所选任务准备好进行调度。5.根据权利要求4所述的逻辑,其中所述驱逐策略包括:当创建新任务并且适合高速缓存所述新任务的一组区格已满时,从所述组的一个区格驱逐现有任务以容纳所述新任务。6.根据权利要求5所述的逻辑,其中:所述高速缓存被布置成组和路,每个组包括所述路中的一个或多个,并且所述路是所述区格,其中每个组被映射到所述任务的子集,并且所述高速缓存被配置成使得当创建新任务时,所述新任务被添加到映射到所述新任务的组的路中的一个;并且
其中所述驱逐策略包括:当创建新任务并且映射到所述新任务的组的所有路已满时,从此组的路中的一个驱逐现有任务以容纳所述新任务。7.根据权利要求5所述的逻辑,其中以下各项中的一者:每个任务都具有在所述高速缓存中记录的关联优先级,所述关联优先级指示用于调度相应任务的优先级,并且其中选择以供驱逐的现有任务是所述组中的具有最高调度优先级的任务;或选择以供驱逐的现有任务是相应链表中的具有最大数目的数据项的任务;或每个任务都具有在所述高速缓存中记录的关联年龄,所述关联年龄指示自所述任务创建以来的时间,并且选择以供驱逐的现有任务是具有最老年龄的任务。8.根据权利要求4所述的逻辑,其中以下各项中的一者或多者:每个任务都具有在所述高速缓存中记录的关联年龄,所述关联年龄指示自所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。