编码和解码可变长度指令制造技术

技术编号:39591699 阅读:11 留言:0更新日期:2023-12-03 19:46
本公开涉及编码和解码可变长度指令

【技术实现步骤摘要】
编码和解码可变长度指令
[0001]本申请是申请日为
2017

11

17
日,申请号为
201711143525.0
,专利技术名称为“编码和解码可变长度指令”的申请的分案申请

[0002]背景
[0003]由处理器执行的指令的集合被称为指令集,并且这些指令通常被映射到指令字,作为向软件呈现硬件控制的一种方式

将指令映射到指令字和返回的处理可以分别称为编码和解码

代码密度可以用于比较不同的编码方案,其中代码密度与存储用于执行特定任务
(
例如,特定程序中的所有编码指令
)
的所有编码指令
(
即,指令字
)
所需的存储器成反比

为了增加代码密度,可以使用短指令字,并且这例如可以通过限制指令集的功能来实现

可选地,可以使用可变长度指令字,其中较短的指令字用于更常用的指令,并且较长的指令字用于较不常用的指令

[0004]下面所述的实施方式仅作为例子被提供且不是解决编码和解码指令集中的指令的已知方法的任何或所有缺点的实现的限制

[0005]概述
[0006]本概述被提供来以简化的形式介绍概念的选择,这些概念在下面在详细描述中被进一步描述

本概述并非旨在确定要求保护的主题的关键特征或必要特征,亦非旨在用于限定要求保护的主题的范围

[0007]描述了编码和解码的方法,其使用可变数量的指令字来编码指令集中的指令,使得可以使用不同数量的指令字对指令集内的不同指令进行编码

为了对指令进行编码,使用经验或仿真数据确定的它们的差异
(variance)
,将指令内的位重新排序并形成指令字

指令字中的位与相应的预测值进行比较,并从编码指令中省略与预测值相匹配的部分或全部的指令字

[0008]第一方面提供了一种对指令集中的指令进行编码的方法,该方法包括:接收指令集中的指令;根据编码类型将接收到的指令中的位重新排序和分组成多个指令字,以生成指令字的有序序列;将有序序列中的指令字的一个或更多个中的位值与其对应的预测值进行比较,并且基于该比较通过省略有序序列中的指令字的一个或更多个来生成指令的压缩版本,其中预测值使用经验和
/
或仿真数据生成;以及输出该指令的压缩版本

[0009]第二方面提供了一种用于对指令集中的指令进行编码的设备,该设备包括:处理器;以及存储器,其被布置为存储设备可执行指令,该设备可执行指令在被处理器执行时被配置为使处理器响应于接收到指令集中的指令而根据编码类型将所接收的指令中的位重新排序并分组为多个指令字以生成指令字的有序序列;将有序序列中的指令字的一个或更多个中的位值与其对应的预测值进行比较,其中预测值使用经验和
/
或仿真数据生成;基于有序序列中的指令字的一个或更多个中的位值与其对应的预测值之间的比较,通过省略有序序列中的指令字的一个或更多个来生成指令的压缩版本;以及输出指令的压缩版本

[0010]第三方面提供了一种解码指令的方法,包括:在处理器的解码级中接收一个或更多个提取的指令字;根据提取的指令字中的一个或更多个提取的指令字确定编码类型;通过为指令字的有序序列中的指令字中的每一个选择取出的指令字或预测指令字来生成该
指令字的有序序列,其中预测指令字使用经验和
/
或仿真数据生成;连接有序序列中的指令字以形成编码指令,并根据编码类型重新排序编码指令中的位以生成解码指令;以及输出解码指令

[0011]第四方面提供了一种解码硬件,包括:输入端,其被布置为接收一个或更多个提取的指令字;硬件逻辑,其被配置为根据提取的指令字中的一个或更多个指令字来确定编码类型;字选择逻辑,其被配置为通过为指令字的有序序列中的指令字中的每个选择取出的指令字或预测指令字来生成该指令字的有序序列,其中预测指令字使用经验和
/
或仿真数据生成,并且连接有序序列中的指令字以形成编码指令;重新排序硬件逻辑,其被配置为根据编码类型重新排序编码指令中的位以生成解码指令;以及输出端,其被布置成输出解码指令

[0012]第五方面提供一种用于解码指令集中的指令的设备,该设备包括:处理器;以及存储器,其被布置为存储设备可执行指令,该设备可执行指令被配置为当由处理器执行时响应于接收到一个或更多个提取的指令字而使处理器执行以下操作:根据提取的指令中的一个或更多个确定编码类型;通过为指令字的有序序列中的指令字中的每个选择提取的指令字或预测指令字来生成该指令字的有序序列,其中预测指令字使用经验和
/
或仿真数据生成;连接有序序列中的指令字以形成编码指令,并根据编码类型重新排序编码指令中的位以生成解码指令;以及输出解码指令

[0013]第六方面提供了一种方法,包括:在输入端处接收对于指令集的映射数据和描述指令集中的范式
(in canonical form)
指令的指令数据;使用语法库解析映射数据和指令数据;在代码和数据生成引擎中,基于解析的映射数据和指令数据生成编码软件和解码器的硬件描述;以及输出编码软件和解码器的硬件描述

[0014]第七方面提供了一种设备,包括:处理器;以及存储器,其被布置为存储设备可执行指令,该设备可执行指令被配置为在由处理器执行时使处理器响应于接收到对于指令集的映射数据和描述指令集中的范式指令的指令数据而执行以下操作:使用语法库解析映射数据和指令数据;基于解析的映射数据和指令数据生成编码软件和解码器的硬件描述;以及输出编码软件和解码器的硬件描述

[0015]可以在集成电路上的硬件中体现本文描述的解码和
/
或编码装置

可提供在集成电路制造系统处制造解码和
/
或编码装置的方法

可提供集成电路定义数据集,其在集成电路制造系统中进行处理时将该系统配置为制造解码和
/
或编码装置

可提供非暂时性计算机可读存储介质,其具有存储在其上的集成电路的计算机可读描述,该计算机可读描述当被处理时使布局处理系统生成在集成电路制造系统中使用的电路布局描述,以制造编码和
/
或解码装置

[0016]可提供一种集成电路制造系统,包括:非暂时性计算机可读存储介质,其上存储有描述解码和
/
或编码装置的计算机可读集成电路描述;布局处理系统,其被配置为处理集成电路描述,以便生成体现解码和
/
或编码装置的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据电路布局描述来制造解码和
/
或编码装置
...

【技术保护点】

【技术特征摘要】
1.
一种方法,包括:在输入端处,接收用于指令集的映射数据和描述指令集中的范式的指令的指令数据;使用语法库解析所述映射数据和指令数据;在代码和数据生成引擎中,基于所解析的映射数据和指令数据生成编码软件和解码工具,其中,所述解码工具包括解码器和
/
或解码软件的硬件描述;以及输出所述编码软件和所述解码工具
。2.
根据权利要求1所述的方法,还包括:在所述代码和数据生成引擎中并基于所解析的映射数据和指令数据生成调试数据和人类可读形式的文档;以及输出所述调试数据和人类可读形式的文档
。3.
根据权利要求1或2所述的方法,其中,所述解码工具包括解码器的所述硬件描述
。4.
根据权利要求1所述的方法,其中,以机器可读的形式接收所述指令数据
。5.
根据权利要求1所述的方法,还包括:接收与使用所述编码软件生成的指令相关的使用数据;分析所述使用数据;以及基于对所述使用数据的所述分析更新所述映射数据
。6.
根据权利要求5所述的方法,其中,分析所述使用数据包括:生成关于指令中的每个位被切换的频率和
/
或与预测值不同的频率的统计信息
。7.
根据权利要求1所述的方法,其中,所述编码软件使用可变长度指令编码
。8.
根据权利要求1所述的方法,其中,所述编码软件使用不同数目的指令字对指令集内的不同指令进行编码
。9.
根据权利要求
1、6
和8中任一项所述的方法,其中,所述编码软件使用一种方法,所述方法包括:重新布置范式的指令内的位;根据编码类型使经重新布置的位形成多个指令字,所述多个指令字包含指令字的有序序列;以及从所述序列去除仅包括具有与预测值相匹配的值的位的一个或更多个指令字
。10.
根据权利要求9所述的方法,其中,从所述序列去除仅包括具有与预测值相匹配的值的位的一个或更多个指令字包括:将所述有序序列中的指令字的一个或更多个指令字中的位值与其相应的预测值进行比较,并且通过基于所述比较
(208)
省略所述有序序列中的指令字的一个或更多个指令字来生成指令的压缩版本
。11.
根据权利要求
10
所述的方法,其中,所述映射和
/
或预测值使用经验和
/
或仿真数据生成
。12.
根据权利要求9所述的方法,其中,输出所述编码软件和所述解码工具包括:输出所述预测值
。13.
计算机可读代码,其被配置为当所述代码运行时使根...

【专利技术属性】
技术研发人员:西蒙
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1