首页> 中国专利> 一种基于高层建模的混合发射队列设计实现方法及系统

一种基于高层建模的混合发射队列设计实现方法及系统

摘要

本发明公开了一种基于高层建模的混合发射队列设计实现方法及系统,本发明方法包括确定被设计的混合发射队列所需支持的指令类型和操作数类型;建立指令从进入到流出发射队列的生命周期模型;建立适应于多种指令类型和操作数类型的混合发射队列模型;针对所述混合发射队列模型使用高层次语言进行建模和实现,并生成寄存器传输级设计模型;使用后端物理设计工具对寄存器传输级设计模型进行评估;判断评估结果是否符合预期,若符合预期,则结束并退出,否则根据评估结果给出优化建议,返回以进行持续优化。本发明能够有效支持混合发射队列设计的需要,通过对混合发射队列进行高层次建模和描述,有效降低了混合发射队列设计的复杂度和设计实现代价。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-20

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及微处理器设计技术,具体涉及一种基于高层建模的混合发射队列设计实现方法及系统,用于微处理器处理器核心中指令发射队列的设计。

背景技术

微处理器设计技术对于提升微处理器的性能、可靠性、可用性等具有重要的作用。微处理器设计技术包括前端逻辑设计,后端物理设计等步骤,前者决定微处理器的功能、性能、面积、功耗等,后者在前者的基础之上进行物理版图设计、器件选择、时序、面积、功耗等进行优化和物理实现。发射队列是当前乱序超标量微处理器中用于实现指令乱序发射的重要组成部件,主流的发射队列主要包括集中式和分布式发射队列,集中式发射队列是指只维护一个统一的发射队列,支持所有类型的指令的发射,分布式发射队列则是指为每种类型的指令设定一个独立的发射队列。混合发射队列介于集中式和分布式发射队列之间,兼具集中式和分布式发射队列优点。为了实现精确的调优,当前发射队列的设计主要是基于寄存器传输级的方式进行实现,但是设计和实现难度大,验证调试周期长,难以满足快速更新的市场需求。混合发射队列方式按照混合方式和粒度不同,变化多样,采用传统的设计方式难以满足需求。为了满足多种类型的混合发射队列设计需要,亟需新的设计方法学突破。

发明内容

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于高层建模的混合发射队列设计实现方法及系统,本发明能够有效支持混合发射队列设计的需要,通过对混合发射队列进行高层次建模和描述,有效降低了混合发射队列设计的复杂度和设计实现代价。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于高层建模的混合发射队列设计实现方法,其特征在于,包括:

1)确定被设计的混合发射队列所需支持的指令类型和操作数类型;建立指令从进入到流出发射队列的生命周期模型;建立适应于多种指令类型和操作数类型的混合发射队列模型;

2)针对所述混合发射队列模型使用高层次语言进行建模和实现,并生成寄存器传输级设计模型;

3)使用后端物理设计工具对寄存器传输级设计模型进行评估;判断评估结果是否符合预期,若符合预期,则结束并退出,否则根据评估结果给出优化建议,返回执行步骤2)以进行持续优化。

可选地,步骤1)中确定被设计的混合发射队列所需支持的指令类型和操作数类型时,所述混合发射队列所需支持的指令类型为根据微处理器支持的指令集进行指令集划分,然后从指令集划分结果中选择适合混合发射队列发射的指令作为被设计的混合发射队列所需支持的指令类型。

可选地,步骤1)中确定被设计的混合发射队列所需支持的指令类型和操作数类型时,混合发射队列所需支持的操作数类型包括定点、浮点、标志位、标量、向量中的部分或全部类型。

可选地,步骤1)中建立指令从进入到流出发射队列的生命周期模型包括进入发射队列、存储在发射队列项中、流出发射队列、释放发射队列项在内的各个过程模型;所述进入发射队列的过程模型包括确定进入准入条件、每个时钟周期最多进入几条指令;所述存储在发射队列项的过程模型选择一个空闲的发射队列项维护指令的状态信息;所述流出发射队列的过程模型确定每个时钟周期最多每次流出几条指令;所述释放发射队列项的过程模型确定何时释放掉何种类型的指令对应的发射队列项。

可选地,步骤1)中建立适应于多种指令类型和操作数类型的混合发射队列模型时,所述混合发射队列模型由多个发射队列项构成,其主要功能是接收分派过来的待执行指令,分配相应的发射队列项进行保存,发射队列维护所有待执行指令的状态信息,对于满足发射执行条件的指令,选择发射出去进行执行,发射完成后释放相应的发射队列项;所述混合发射队列模型的多个发射队列项用于存储多种类型的执行指令;所述发射队列项按照是否能够接受来自分派的指令分为入口项、普通项,入口项专门用于接收分派的指令,并在下一拍将指令送往普通项;发射队列项按照是否被分配使用分为繁忙项和空闲项,繁忙项表示该项中保存有有效的指令及其信息,空闲项表示该项中没有保存有效的指令及其信息;所述发射队列项用于承载待发射的指令,维护指令的状态包括未准备好、准备好、正在发射、已发射、发射取消、释放队列项状态,所有这些状态都要进行实时维护和更新;所述准备好,是指对应的指令执行需要的所有操作数、控制信号等信息都已具备,或者在未来某个确定的时刻可以获得;所述未准备好,是指对应的指令执行需要的信息至少有一个不具备,或者曾经具备,但是后面又变为不具备;所述正在发射,是指对应的指令准备好并且在发射队列同等指令类型中是最老的,开始流出发射队列进行执行;所述已发射,是指对应的指令已经流出发射队列开始执行;所述发射取消,是指由于某些原因造成对应的指令需要的信息不正确,或者任由其执行会造成结果错误或者丢失等,需要停止继续发射或者执行;所述释放队列项,是指对应的指令正常发射后执行完成或者确定不会取消,或者检测到强制释放信号后,需要释放出当前指令对应队列项的操作;对于所有发射队列项,维护它们之间的相对新老关系,用于发射时选择准备好的最老的指令;所有发射队列项定义一个年龄向量,用于记录哪些项比自己老,哪些项比自己年轻,这个年龄向量在每个时钟周期都要进行维护更新。

可选地,步骤2)包括:2.1)对所述混合发射队列模型进行高层次建模和实现,采用高层次描述语言或者面向对象建模的方法对所述混合发射队列模型的所有组成元素进行高层次建模和实现;2.2)利用高级综合工具对高层次建模的模型进行处理,生成寄存器传输级混合发射队列的设计描述作为寄存器传输级设计模型输出。

可选地,步骤3)中使用后端物理设计工具对寄存器传输级设计模型进行评估时,对寄存器传输级设计模型进行评估的指标包括性能、功耗以及面积三者中的部分或全部。

可选地,步骤3)中根据评估结果给出优化建议包括:分析寄存器传输级模型的时序信息,关注时序不满足或者时序偏紧的路径,并给出时序优化或者调整建议;分析寄存器传输级模型的面积信息,关注寄存器数量,给出面积优化和调整建议;分析寄存器传输级模型的功耗信息,关注静态和动态功耗,如果功耗超出预算,则给出功耗和调整建议。

此外,本发明还提供一种基于高层建模的混合发射队列设计实现系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于高层建模的混合发射队列设计实现方法的步骤。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被计算机设备编程或配置以执行所述基于高层建模的混合发射队列设计实现方法的步骤。

和现有技术相比,本发明具有下述优点:本发明方法包括确定被设计的混合发射队列所需支持的指令类型和操作数类型;建立指令从进入到流出发射队列的生命周期模型;建立适应于多种指令类型和操作数类型的混合发射队列模型;针对所述混合发射队列模型使用高层次语言进行建模和实现,并生成寄存器传输级设计模型;使用后端物理设计工具对寄存器传输级设计模型进行评估;判断评估结果是否符合预期,若符合预期,则结束并退出,否则根据评估结果给出优化建议,返回以进行持续优化。本发明能够有效支持混合发射队列设计的需要,通过对混合发射队列进行高层次建模和描述,有效降低了混合发射队列设计的复杂度和设计实现代价,能有效适应混合发射队列多样化设计需求,具有灵活、通用、高效的特点。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例中指令从进入到流出发射队列的生命周期示意图。

图3为本发明实施例中发射入口项和普通项示意图。

图4为本发明实施例中发射队列项状态变化示意图。

具体实施方式

如图1所示,本实施例基于高层建模的混合发射队列设计实现方法包括:

1)确定被设计的混合发射队列所需支持的指令类型和操作数类型;建立指令从进入到流出发射队列的生命周期模型;建立适应于多种指令类型和操作数类型的混合发射队列模型;

2)针对前述混合发射队列模型使用高层次语言进行建模和实现,并生成寄存器传输级设计模型;

3)使用后端物理设计工具对寄存器传输级设计模型进行评估;判断评估结果是否符合预期,若符合预期,则结束并退出,否则根据评估结果给出优化建议,返回执行步骤2)以进行持续优化。

本实施例中,步骤1)中确定被设计的混合发射队列所需支持的指令类型和操作数类型时,前述混合发射队列所需支持的指令类型为根据微处理器支持的指令集进行指令集划分,然后从指令集划分结果中选择适合混合发射队列发射的指令作为被设计的混合发射队列所需支持的指令类型。其中,选择适合混合发射队列发射的指令作为被设计的混合发射队列所需支持的指令类型时,需要进行论证和分析。

本实施例中,步骤1)中确定被设计的混合发射队列所需支持的指令类型和操作数类型时,混合发射队列所需支持的操作数类型包括定点、浮点、标志位、标量、向量中的部分或全部类型。

图2为本实施例中指令从进入到流出发射队列的生命周期示意图,如图2所示,本实施例步骤1)中建立指令从进入到流出发射队列的生命周期模型包括进入发射队列、存储在发射队列项中、流出发射队列、释放发射队列项在内的各个过程模型;前述进入发射队列的过程模型包括确定进入准入条件、每个时钟周期最多进入几条指令;前述存储在发射队列项的过程模型选择一个空闲的发射队列项维护指令的状态信息;前述流出发射队列的过程模型确定每个时钟周期最多每次流出几条指令;前述释放发射队列项的过程模型确定何时释放掉何种类型的指令对应的发射队列项。

本实施例中,步骤1)中建立适应于多种指令类型和操作数类型的混合发射队列模型时,前述混合发射队列模型由多个发射队列项构成,其主要功能是接收分派过来的待执行指令,分配相应的发射队列项进行保存,发射队列维护所有待执行指令的状态信息,对于满足发射执行条件的指令,选择发射出去进行执行,发射完成后释放相应的发射队列项;前述混合发射队列模型的多个发射队列项用于存储多种类型的执行指令;前述发射队列项按照是否能够接受来自分派的指令分为入口项、普通项,图3为本实施例中发射入口项和普通项示意图,入口项专门用于接收分派的指令,并在下一拍将指令送往普通项;发射队列项按照是否被分配使用分为繁忙项和空闲项,繁忙项表示该项中保存有有效的指令及其信息,空闲项表示该项中没有保存有效的指令及其信息;前述发射队列项用于承载待发射的指令,维护指令的状态包括未准备好、准备好、正在发射、已发射、发射取消、释放队列项状态,如图4所示,所有这些状态都要进行实时维护和更新;

准备好,是指对应的指令执行需要的所有操作数、控制信号等信息都已具备,或者在未来某个确定的时刻可以获得;

未准备好,是指对应的指令执行需要的信息至少有一个不具备,或者曾经具备,但是后面又变为不具备;

正在发射,是指对应的指令准备好并且在发射队列同等指令类型中是最老的,开始流出发射队列进行执行;

已发射,是指对应的指令已经流出发射队列开始执行;

发射取消,是指由于某些原因造成对应的指令需要的信息不正确,或者任由其执行会造成结果错误或者丢失等,需要停止继续发射或者执行;

释放队列项,是指对应的指令正常发射后执行完成或者确定不会取消,或者检测到强制释放信号后,需要释放出当前指令对应队列项的操作;

对于所有发射队列项,维护它们之间的相对新老关系,用于发射时选择准备好的最老的指令;所有发射队列项定义一个年龄向量,用于记录哪些项比自己老,哪些项比自己年轻,这个年龄向量在每个时钟周期都要进行维护更新。

本实施例中,步骤2)包括:2.1)对前述混合发射队列模型进行高层次建模和实现,采用高层次描述语言或者面向对象建模的方法对前述混合发射队列模型的所有组成元素进行高层次建模和实现;2.2)利用高级综合工具对高层次建模的模型进行处理,生成寄存器传输级混合发射队列的设计描述作为寄存器传输级设计模型输出。其中,高层次描述语言建模是指区别于传统基于硬件描述语言的寄存器传输级建模方式,采用类似于高级计算机编程语言如C、C++、SystemC、python等语言对电路功进行高层次的建模;前述面向对象建模,是指区别于面向过程的建模方法,将电路各个原件和模块作为一个对象看待,可以进行参数化配置和行为建模,如采用硬件构建语言Chisel进行电路建模;对于高层次建模,可采用商用或者开源的高级综合工具,将高层次描述转换为寄存器传输级描述;对于面向对象建模,可采用开源的编译器或者代码转换工具生成寄存器传输级描述;处理过程可经过一级或者多级的中间表示转换,譬如对采用Chisel语言描述的电路,可以采用开源编译工具先转换为一种称为FIRRTL中间表示,然后再转换为寄存器传输级描述。

本实施例中,步骤3)中使用后端物理设计工具对寄存器传输级设计模型进行评估时,对寄存器传输级设计模型进行评估的指标包括性能、功耗以及面积(Performance,Power,Area,简称PPA)三者中的部分或全部。本实施例中,具体采用性能、功耗以及面积三者全部,对性能、面积、功耗评估结果进行分析,如果分析结果符合预期,那么结束,否则将评估结果反馈给高层次建模,返回步骤2)进行持续优化。使用后端物理设计工具对寄存器传输级模型进行全方位的评估,性能方面主要关注设计的时序信息,面积方面主要关注寄存器数量,功耗方面主要关注动态和静态功耗等。毫无疑问,评估的指标不限于上述列出的性能、功耗以及面积三种指标,还可以采用其他有利于持续优化寄存器传输级设计模型的指标。

本实施例中,步骤3)中根据评估结果给出优化建议包括:分析寄存器传输级模型的时序信息,关注时序不满足或者时序偏紧的路径,并给出时序优化或者调整建议;分析寄存器传输级模型的面积信息,关注寄存器数量,给出面积优化和调整建议;分析寄存器传输级模型的功耗信息,关注静态和动态功耗,如果功耗超出预算,则给出功耗和调整建议。例如,假设时序要求是400ps以内,对应工作频率为2.5GHz,那么对于时序不满足400ps的路径,综合工具会给出路径的起始终止寄存器信号名以及中间关键部分延迟细节信息,告诉设计者哪些路径不满足时序,由设计者决策是否进行优化。例如,综合工具列出了各个模块使用的寄存器数量,以及每个寄存器的位宽等,如果该模块设计有最小寄存器数量和最大寄存器数量要求,那么可以根据寄存器数量是否满足目标要求,反馈给设计者进行优化或者调整。例如,功耗评估工具会给出各个模块的静态和动态功耗参考值,并进行对比分析,如果发现功耗超出设计预期,或者与其它类似模块相比功耗偏高,那么需要反馈给设计师进行分析和优化。对于不符合预期的方面,需要将优化和调整建议反馈到高层次建模进行改进,直到满足预期为止;例如,对于不符合时序、功耗、面积预期模块,给出对应的高层次建模模块名称和可能需要调整的设计行号,让设计者能够仅修改高层次建模方式就能实现到底层寄存器传输级模型的性能、功耗、面积的优化。

综上所述,本实施例方法包括确定混合发射队列支持的指令类型和操作数类型;建立指令从进入到流出发射队列的生命周期模型;建立适应于多种类型指令操作数类型的混合发射队列模型;对混合发射队列进行高层次建模和实现,并生成寄存器传输级设计描述;使用后端物理设计工具对寄存器传输级模型进行性能、功耗、面积(Performance,Power,Area,简称PPA)评估,并将评估结果反馈给高层次建模,提供持续优化能力,直到生成满足设计目标的寄存器传输级设计描述为止。本实施例方法能够有效支持混合发射队列设计的需要,通过对混合发射队列进行高层次建模和描述,有效降低了混合发射队列设计的复杂度和设计实现代价,能有效适应混合发射队列多样化设计需求,具有灵活、通用、高效的特点。

此外,本实施例还提供一种基于高层建模的混合发射队列设计实现系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于高层建模的混合发射队列设计实现方法的步骤。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被计算机设备编程或配置以执行前述基于高层建模的混合发射队列设计实现方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号