定长指令集程序的运行方法及中央处理器技术

技术编号:36183078 阅读:16 留言:0更新日期:2022-12-31 20:41
本披露公开了一种定长指令集程序的运行方法及中央处理器。该方法包括:响应于应用程序的启动指令,启动程序进程;确定程序进程调用的优化指令;对优化指令进行转换以得到优化指令对应的定长指令;其中,优化指令的编码长度与其对应的定长指令的频度负相关;执行定长指令直至运行应用程序所需调用的定长指令集执行完毕。本披露公开的技术方案能够令存储在程序进程中的指令集所占用的空间得以缩减,节省编译文件的空间占用率;并使得指令读取和传输速度提升,提高了程序进程的运行效率。提高了程序进程的运行效率。提高了程序进程的运行效率。

【技术实现步骤摘要】
定长指令集程序的运行方法及中央处理器


[0001]本披露一般涉及计算机领域。更具体地,本披露涉及一种定长指令集程序的运行方法及中央处理器。

技术介绍

[0002]指令集是中央处理器CPU对外封装的调度、管理、协同、执行接口的统成,是CPU封装对外指令的集合。目前指令集分为定长指令集以及变长指令集两种,其中,变长指令集中不同功能的指令长短不一致,能够将使用频率较高的语句设计得更简短,从而执行效率高,更加节省空间,并且支持指令扩展;而定长指令级的优点在于设计简单,不用考虑软件在编译、链接以及运行时的性能影响,在CPU设计和实现上相较于变长指令集更加简单,能够减短CPU设计流程周期成本。
[0003]但是基于定长指令集的CPU的缺点也显而易见,其在软件的编译效率、执行效率以及编译文件的空间占用率等指标上与变长指令集均存在显著差距。导致软件运行时,在编译阶段和执行阶段均会产生空间和时间上的冗余,影响软件运行效率。而设计变长指令集以及对应的编译器,对于技术人员的要求较高,花费的设计成本也随着增加。
[0004]有鉴于此,亟需提供一种定长指令集程序的运行方法能够对基于定长指令集CPU的指令编译和执行进行优化,以提高定长指令集程序的运行速度以及节省编译文件的空间占用率。

技术实现思路

[0005]为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了一种定长指令集程序的运行方法及中央处理器,能够提高定长指令集程序的运行速度以及节省编译文件的空间占用率。
[0006]在第一方面中,本披露提供一种定长指令集程序的运行方法,包括:响应于应用程序的启动指令,启动程序进程;确定所述程序进程调用的优化指令;对所述优化指令进行转换以得到所述优化指令对应的定长指令;其中,优化指令的编码长度与其对应的定长指令的频度负相关;执行所述定长指令直至运行应用程序所需调用的定长指令集执行完毕。
[0007]在一些实施例中,所述确定所述程序进程调用的优化指令之前,还包括:对应用程序的程序代码进行编译,以得到运行应用程序所需调用的定长指令集;对所述定长指令集进行转换,以得到所述程序进程所需调用的优化指令集。
[0008]在一些实施例中,所述对所述定长指令集进行转换,包括:对所述定长指令集进行统计,以得到每一定长指令的频度;根据每一定长指令的频度生成每一定长指令的哈夫曼编码;基于所述哈夫曼编码生成定长指令与优化指令之间的映射关系;根据所述映射关系对所述定长指令集进行转换。
[0009]在一些实施例中,所述根据每一定长指令的频度生成每一定长指令的哈夫曼编码,包括:将定长指令集的指令列表在内存中以索引形式展开,其中,索引排序依照频度正
序;依据索引排序在哈夫曼树中填充定长指令,以生成每一定长指令的哈夫曼编码。
[0010]在第二方面中,本披露提供一种中央处理器,包括:控制器和运算器;所述控制器对接所述运算器,并配置成:在所述运算器启动程序进程之后,确定所述程序进程调用的优化指令;对所述优化指令进行转换以得到所述优化指令对应的定长指令;其中,优化指令的编码长度与其对应的定长指令的频度负相关;所述运算器,配置成:响应于应用程序的启动指令,启动程序进程;并在所述控制器对所述优化指令进行转换以得到所述优化指令对应的定长指令之后,执行所述优化指令对应的定长指令直至运行应用程序所需调用的定长指令集执行完毕。
[0011]在一些实施例中,所述控制器,包括:编译器,用于编译程序代码,以得到运行应用程序所需调用的定长指令集;虚拟化支撑器,用于对定长指令和优化指令进行转换,以在编译阶段将所述定长指令集转换为优化指令集;程序进程,用于存储应用程序所需调用的优化指令集,以及调用所述优化指令集中的优化指令以运行所述应用程序;所述虚拟化支撑器还用于在执行阶段将调用的优化指令转换为定长指令以供所述运算器执行。
[0012]在一些实施例中,所述控制器,还包括:实时统计模块,用于统计所述定长指令集中每一定长指令的频度,并根据每一定长指令的频度对每一定长指令再编码,以得到对应的优化指令。
[0013]在一些实施例中,所述实时统计模块采用哈夫曼树的树形结构,并配置成:根据每一定长指令的频度将定长指令填充在哈夫曼树的叶子节点中,以得到每一定长指令的哈夫曼编码。
[0014]在一些实施例中,所述实时统计模块,还配置成:将所述定长指令按照频度进行正序排序;依序在哈夫曼树中填充定长指令;根据每一定长指令的填充位置确定每一定长指令的哈夫曼编码,以生成每一定长指令对应的优化指令。
[0015]在一些实施例中,所述控制器,还包括:编译适配模块,其内部储存有所述应用程序的程序代码;所述编译器对接编译适配模块和实时统计模块,并配置成:对所述编译适配模块内的程序代码进行编译,以得到定长指令集供所述实时统计模块进行频度统计。
[0016]通过如上所提供的定长指令集程序的运行方法,本披露的方案设计程序进程调用优化指令以运行应用程序,由于优化指令的编码长度与其对应的定长指令的频度负相关,即在运行应用程序时,调用频繁的定长指令所对应的优化指令的编码长度较短,因此,存储在程序进程堆栈区域中的指令集所占用的空间得以缩减,节省了编译文件的空间占用率。并且程序进程运行时,调用的是在编码长度上缩减后的优化指令,数据长度的缩减使得指令读取和传输速度提升,提高了程序进程的运行效率。而在执行阶段,通过指令转换能够将优化指令再转换为定长指令,以适配定长指令集程序执行格式匹配的定长指令,能够保障指令准确执行。
[0017]进一步,在本披露的一些实施例中,通过哈夫曼编码生成每一定长指令对应的优化指令,该编码过程以定长指令的频度作为权重,权重越大的叶子节点距离哈夫曼树的根部越近,因此,得到的哈夫曼编码的长度也就越短,从而使编码之后的优化指令的编码长度期望值稳定降低。
附图说明
[0018]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0019]图1示出了本披露实施例的定长指令集程序的运行方法的流程示意图;
[0020]图2示出了本披露的一些实施例的编译过程的流程示意图;
[0021]图3示出了本披露的一些实施例的定长指令与优化指令转换过程的流程示意图;
[0022]图4示出了本披露的一些实施例的哈夫曼树的结构示意图;
[0023]图5示出了本披露实施例的中央处理器的结构示意图;
[0024]图6示出了本披露的一些实施例的控制器的结构示意图。
具体实施方式
[0025]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种定长指令集程序的运行方法,其特征在于,包括:响应于应用程序的启动指令,启动程序进程;确定所述程序进程调用的优化指令;对所述优化指令进行转换以得到所述优化指令对应的定长指令;其中,优化指令的编码长度与其对应的定长指令的频度负相关;执行所述定长指令直至运行应用程序所需调用的定长指令集执行完毕。2.根据权利要求1所述的定长指令集程序的运行方法,其特征在于,所述确定所述程序进程调用的优化指令之前,还包括:对应用程序的程序代码进行编译,以得到运行应用程序所需调用的定长指令集;对所述定长指令集进行转换,以得到所述程序进程所需调用的优化指令集。3.根据权利要求2所述的定长指令集程序的运行方法,其特征在于,所述对所述定长指令集进行转换,包括:对所述定长指令集进行统计,以得到每一定长指令的频度;根据每一定长指令的频度生成每一定长指令的哈夫曼编码;基于所述哈夫曼编码生成定长指令与优化指令之间的映射关系;根据所述映射关系对所述定长指令集进行转换。4.根据权利要求3所述的定长指令集程序的运行方法,其特征在于,所述根据每一定长指令的频度生成每一定长指令的哈夫曼编码,包括:将定长指令集的指令列表在内存中以索引形式展开,其中,索引排序依照频度正序;依据索引排序在哈夫曼树中填充定长指令,以生成每一定长指令的哈夫曼编码。5.一种中央处理器,其特征在于,包括:控制器和运算器;所述控制器对接所述运算器,并配置成:在所述运算器启动程序进程之后,确定所述程序进程调用的优化指令;对所述优化指令进行转换以得到所述优化指令对应的定长指令;其中,优化指令的编码长度与其对应的定长指令的频度负相关;所述运算器,配置成:响应于应用程序的启动指令,启动程序进程;并在所述控制器...

【专利技术属性】
技术研发人员:马瑶瑶姚乾夏立宁宋鑫磊郭哲曹博远许盛晨张大健
申请(专利权)人:中金金融认证中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1