[发明专利]用于生成指令精简方案集的方法、用于根据所生成的集来精简程序的方法,以及能够执行由此精简的程序的可编程处理器有效
申请号: | 201080050130.6 | 申请日: | 2010-09-03 |
公开(公告)号: | CN102741817A | 公开(公告)日: | 2012-10-17 |
发明(设计)人: | H·T·J·茨瓦尔坚科特;A·奥古斯特伊恩;郭园青;J·冯厄特尔;J·A·J·莱特恩;E·Y·M·勒特恩阿夫 | 申请(专利权)人: | 英特尔贝内卢克斯公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F17/50;G06F9/318 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 刘瑜;王英 |
地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 生成 指令 精简 方案 方法 根据 程序 以及 能够 执行 由此 可编程 处理器 | ||
技术领域
本发明涉及用于生成指令精简方案集的方法。
本发明还涉及用于根据所生成的指令精简方案集来精简程序的方法。
本发明还涉及被适当编程以实现这些方法的装置。
本发明还涉及包括用于促使装置实现这些方法中的一种或多种方法的程序的记录载体。
本发明还涉及能够执行被如上精简的程序的可编程处理器。
背景技术
US2002042909描述了一种用于生成在处理架构中使用的程序指令序列的编译方法,所述处理架构具有用于执行来自相应指令集的指令的架构资源。
公知的编译方法输入包括多个源代码指令语句的源文件,所述源代码指令语句包含至少第一种类的指令语句和第二种类的指令语句。
该方法选择至少第一指令集和第二指令集。第二指令集是被设计成仅支持由第一指令集所支持的架构资源的子集的精简指令集。通过使用具有不同大小的这至少两个指令集,编译器能够降低被处理的平均代码长度,因为精简码中需要更少的比特来对操作和寄存器进行编码。
在该公知的方法中,编译器检测源代码的类型是时间关键代码还是管理代码。被分类为管理代码的代码由第一精简指令集表示,而时间关键代码由第二指令集表示。通过使用具有不同大小的这至少两个指令集,编译器能够降低被处理的平均代码长度,因为精简码中需要更少的比特来对操作和寄存器进行编码。
该公知编译器的缺点在于第一和第二指令集的分配仅在时间关键代码和管理代码能够被辨别的情况下才是可能的。
本发明的目的是提供一种能够也在更通用的环境中生成一个或多个指令集的方法。
发明内容
根据本发明的第一方面,提供一种用于生成针对要由可编程处理器处理的指令的子集的各个指令精简方案的方法,其包括以下步骤:
a)接收代表要在可编程处理器上执行的软件的至少一个输入代码样本,所述输入代码包括用于定义第一指令集的多个指令,
b)将被移除指令集初始化为空,
c)确定第一指令集的最精简表示,
d)将最精简表示的大小与阈值进行比较,
e)如果所述大小大于阈值则执行步骤e1至e3,
e1)确定第一指令集的哪个指令具有最高的编码成本,
e2)从第一指令集中移除具有最高编码成本的指令,以及
e3)将所述指令添加到被移除指令集中,
f)重复步骤b-f,其中第一指令集由被移除指令集形成。
与公知方法相反的是,根据所述第一方面的该方法是通常可应用的。该方法有效地将具有大的互对应性的指令分组到公共群中。选择具有高编码成本的偏离指令(deviating instruction)来形成分离的群。该过程可以重复。
对于一些指令,最精简表示可能是原始(未精简)表示。这里使用的原始表示也将被称为“全视图”。
指令精简方案的数量以及针对每个指令精简方案的需求压缩可以是固定的。可替换地,可以通过计算考虑多个指令中不同指令的数量以及用于指示最小需求压缩因子的阈值来自动地确定指令精简方案的数量和每个指令精简方案的压缩。在一个实施例中,请求用户指定指令精简方案的数量以及每个指令精简方案的压缩,以便用户能够控制精简过程并试验哪个规范提供最好的结果。
在所述方法的实施例中,所述指令包括被单独精简的多个指令字段。通过精简单独的指令字段,与将指令作为整体进行精简的情况相比能够获得更高的压缩。如果两个指令在特定的指令字段中具有相同的值但以其他方式不同,则那个指令字段的值可以由公共代码精简,但是将指令作为整体的精简将需要不同的代码。关于指令字段的知识优选从处理器描述文件中获得。精简方案可以对应于可编程处理器的某个视图。处理器视图被定义为硅蜂窝(silicon hive)编译器的目标,在该编译器中仅处理器资源的子集才是可用的。关于处理器资源的知识从处理器描述文件中获得。
在所述实施例的变形中,被单独精简的指令字段至少包括操作码、用于指示写端口索引的字段以及用于指示读端口索引的字段。精简这些字段产生高的代码大小降低。另外,下面的字段也可以被单独精简:用于指示结果端口(总线)的字段、用于指示写端口选择的字段以及包括立即值的字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔贝内卢克斯公司,未经英特尔贝内卢克斯公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080050130.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种热合机液压站输油管卸荷阀装置
- 下一篇:可紧急闭门的液压启闭机