【技术实现步骤摘要】
乱序处理器中乱序执行队列多指令的分配执行方法和装置
[0001]本专利技术涉及微处理器
,特别涉及一种乱序处理器中乱序执行队列多指令的分配执行方法和装置。
技术介绍
[0002]乱序处理器中的乱序队列用来缓存一定数量的指令(指令可以是程序的指令,也可以是处理器内部译码成的内部操作,一条指令可能翻译成一个操作也可能翻译成多个操作)和数据,负责为进入队列的指令和数据分配空项,将符合一定条件的指令和数据从队列中选择出来执行。乱序处理器的指令到了乱序队列中,就不会按照程序中指定的顺序在处理器中流动,只要满足执行的条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。
[0003]对于进入队列的指令,当有多个空项时,需要分配可以进入的空项。对于选择队列中的指令执行,当队列中有多项准备好,一般选择最先进入队列的指令执行,即oldest
‑
first策略。这是因为考虑到越是旧的指令,和它存在相关性的指令也就越多,因此优先执行最旧的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指令还占据着处理器中的硬件资源,包括其他的乱序队列、重排序缓存、Store Buffer等部件,越早地执行这些旧的指令,就可以越早地释放这些硬件资源,供后面的指令使用。要识别出乱序队列中哪些指令是最旧的,就需要知道指令进入流水线的先后顺序。现有技术采用计数器、重排序缓存或者用指针维护乱序队列的顺序的方法识别最旧指令,这些方法会造成乱序处理器延迟大、功耗高、占用面积大等缺点。
[0004]现有技术的处理器 ...
【技术保护点】
【技术特征摘要】
1.一种乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,包括以下步骤:构建与乱序执行队列相对应的顺序维护队列,为进入所述乱序执行队列的指令和数据分配空项,其中,所述乱序执行队列包括可执行功能部件func域,所述顺序维护队列包括标识id域和尾指针tail;将多项的所述乱序执行队列各项依次编号,并通过所述顺序维护队列的id域记录所述乱序执行队列的id号;将多指令分别进入顺序维护队列的尾指针tail所指的项及其向下的项对应的id号所指的乱序执行队列项;按照所述顺序维护队列给出的id号信息,从所述乱序执行队列选取准备好的项做执行指令;统计出所有的功能部件FU的可执行指令名称和指令项数;根据所述指令的可执行功能部件func域的值和所述统计出的指令名称和指令项数,按照预设的指令分配规则将多条所述的执行指令分别分配到所述的功能部件FU内执行。2.根据权利要求1所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,所述顺序维护队列的项数大于等于所述乱序维护队列的项数。3.根据权利要求1所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,所述乱序执行队列包括有效valid域和准备好rdy域,其中,所述valid域用于记录所述乱序执行队列的项是否有效,所述rdy域用于记录所述乱序执行队列的项的指令和数据是否已经准备好,所述顺序维护队列包括tail项,tail项是顺序维护队列尾指针tail所指的项。4.根据权利要求3所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,当处理器为初始化的情况时,还包括:将所述顺序维护队列的id域从上到下依次编号,tail置为0,并将所述乱序执行队列中各项的valid域置为0,其中,所述valid域为0表示记录的项无效。5.根据权利要求1所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,当处理器中乱序执行队列为仅多指令进入的情况时,还包括:k条指令进入的情况,k条指令进入顺序维护队列的tail所指的项及其向下的项对应的id号所指的乱序执行队列项,并将所述顺序维护队列的tail向下移动k项,其中,下一拍tail=当前拍tail+k。6.根据权利要求3所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,当处理器中乱序执行队列为仅多指令执行的情况时,还包括:q条指令执行的情况,按照所述顺序维护队列从上往下到tail的顺序,选取id号对应的乱序执行队列中q条valid域为1且rdy域为1的可执行项;该项执行后为空项,所述tail项即顺序维护队列尾指针tail所指的项之前可移动的项的内容向上移动,下一拍tail=当前拍tail
‑
q,并将所述空项对应的id号存到所述顺序维护队列的下一拍tail所指的项及其向下的项对应的id域,其中,所述valid域为1表示记录的项有效,所述rdy域为1表示记录的项的指令和数据准备好。7.根据权利要求6所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征
在于,当所述队列满时,还包括:在准备好的q条可执行指令执行后,将所述尾指针tail所指的项之前可移动的项的内容向上移动,下一拍尾指针tail指向顺序维护队列的tail
‑
q项,下一拍tail=当前拍tail
‑
q,并将所述乱序执行队列中指令执行后的空项的id号存到下一拍tail所指的项及其向下的项对应的id域。8.根据权利要求3所述的乱序处理器中乱序执行队列多指令的分配执行方法,其特征在于,当处理器中乱序执行队列为同时多指令进入和执行的情况时,还包括:k条新指令进入且q条指令执行的情况,按照所述顺序维护队列从上往下到tail的顺序,选取id号对应的乱序执行队列中q条valid域为1且rdy域为1的可执行项执行,...
【专利技术属性】
技术研发人员:李祖松,郇丹丹,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。