重排序缓冲区验证方法及相关设备与流程

    技术2026-09-03  10


    本技术实施例涉及集成电路设计与制造,具体涉及重排序缓冲区验证方法及相关设备。


    背景技术:

    1、重排序缓冲区是cpu(中央处理器)内部保存并管理指令的执行结果的组件,用于在指令的乱序执行环境中将指令处理结果按照原本的指令顺序提交。随着多发射,重命名等技术的发展,高性能处理器内部的复杂度成几何比例上升,指令之间的依赖关系和交互也更为繁杂,相应的,乱序执行环境下的重排序缓冲区需要更为复杂的结构以承担乱序执行的指令的排序任务。

    2、然而,重排序缓冲区的结构越复杂,所面临的出错概率越高。因此,有必要在芯片设计阶段对重排序缓冲区进行精细验证,以降低重排序缓冲区的出错概率。


    技术实现思路

    1、有鉴于此,本技术实施例提供一种重排序缓冲区验证方法及相关设备,实现了对重排序缓冲区的精细验证,降低了重排序缓冲区的出错概率。

    2、本技术实施例提供了一种重排序缓冲区验证方法,包括:

    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.一种重排序缓冲区验证方法,其特征在于,包括:

    2.根据权利要求1所述的方法,其特征在于,所述待测指令为多个,且多个待测指令构成待测指令组,所述待测指令组中的待测指令用于并行且乱序执行,所述获取用于验证重排序缓冲区的待测指令的指令信息和重排序缓冲区处理所述待测指令时的处理信息,包括:

    3.根据权利要求2所述的方法,其特征在于,所述处理信息包括多个不同的信息类型,不同信息类型的信息对应配置有不同的信息队列;所述实时获取所述待测指令组中,各待测指令在重排序缓冲区的处理信息,包括:

    4.根据权利要求1所述的方法,其特征在于,所述指令信息包括待测指令的指令标识,所述指令标识用于指示待测指令在待测指令组中顺序,所述基于所述指令信息和处理信息,预测所述重排序缓冲区对所述待测指令的处理结果,以所预测的处理结果为预测结果,包括:

    5.根据权利要求4所述的方法,其特征在于,所述待测指令中包括多个操作类型中的至少一个操作类型的操作任务,所述指令项包括与各操作类型对应的进度标识;

    6.根据权利要求4所述的方法,其特征在于,所述基于所述待测指令对应的指令项的顺序,将指令完成进度指示已处理完成的待测指令的处理结果依次提交,并以提交的待测指令的处理结果作为所述预测结果,具体为:

    7.根据权利要求4所述的方法,其特征在于,所述基于所述指令信息和处理信息,预测所述重排序缓冲区对所述待测指令的处理结果,以所预测的处理结果为预测结果,还包括:

    8.根据权利要求1所述的方法,其特征在于,所述基于所述实际处理结果和所述预测结果,确定所述重排序缓冲区的验证结果,包括:

    9.根据权利要求1所述的方法,其特征在于,所述获取用于验证重排序缓冲区的待测指令的指令信息和重排序缓冲区处理所述待测指令时的处理信息的步骤之后,所述基于所述指令信息和处理信息,预测所述重排序缓冲区对所述待测指令的处理结果的步骤之前,还包括:

    10.根据权利要求1所述的方法,其特征在于,在所述预测结果或所述实际处理结果中,若待测指令的提交状态为异常,所述提取所述待测指令的处理信息的同时,还提取提交状态为异常的待测指令的处理信息。

    11.一种重排序缓冲区验证平台,其特征在于,包括:

    12.根据权利要求11所述的重排序缓冲区验证平台,其特征在于,所述指令信息包括待测指令的指令标识,所述指令标识用于指示待测指令在待测指令组中顺序,所述预测器中配置有重排序缓冲区模型;所述重排序缓冲区模型用于:

    13.根据权利要求11所述的重排序缓冲区验证平台,其特征在于,所述待测指令为多个,且多个待测指令构成待测指令组,所述待测指令组中的待测指令用于并行且乱序执行,所述监测器获取用于验证重排序缓冲区的待测指令的指令信息和重排序缓冲区处理所述待测指令时的处理信息,包括:

    14.根据权利要求11所述的重排序缓冲区验证平台,其特征在于,还包括指令产生及译码模块,调度器,整点模块,以及,访存模块和浮点模块;其中,

    15.根据权利要求11所述的重排序缓冲区验证平台,其特征在于,所述监测器配置有多个不同信息队列,不同信息队列用于收集并发送不同类型的处理信息;

    16.根据权利要求11所述的重排序缓冲区验证平台,其特征在于,所述预测器中配置待提交队列,所述待提交队列中配置有发射指针和提交指针,发射指针用于指向存入待提交队列中的下一待测指令所存储的位置,提交指针用于指向待提交队列中的下一待读取的待测指令所存储的位置;其中,发射指针基于待测指令的指令发射信息更新,提交指针基于待测指令的提交操作更新,若提交指针指向的待测指令已处理完成,则提交该待测指令。

    17.一种电子设备,其特征在于,所述电子设备用于配置作为如权利要求11至权利要求16任一项所述的重排序缓冲区验证平台。

    18.一种存储介质,其特征在于,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如权利要求1~10任一项所述的重排序缓冲区验证方法。


    技术总结
    本申请实施例提供一种重排序缓冲区验证方法及相关设备,包括:获取用于验证重排序缓冲区的待测指令的指令信息和重排序缓冲区处理所述待测指令时的处理信息,其中,所述重排序缓冲区处理所述待测指令时的处理信息为实时获取;基于所述指令信息和处理信息,预测所述重排序缓冲区对所述待测指令的处理结果,以所预测的处理结果为预测结果;在所获取的处理信息中包括待测指令在重排序缓冲区的实际处理结果时,基于实际处理结果和预测结果,确定所述重排序缓冲区的验证结果,其中,在验证结果为待测指令出错时,提取所述待测指令的处理信息。所述重排序缓冲区验证方案实现了对重排序缓冲区的精细验证,降低了重排序缓冲区的出错概率。

    技术研发人员:沈冰
    受保护的技术使用者:海光信息技术(成都)有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-48032.html

    最新回复(0)