用于指令集的操作码编码方法、装置和计算机可读介质制造方法及图纸

技术编号:36301252 阅读:63 留言:0更新日期:2023-01-13 10:17
本公开提供了用于指令集的操作码编码方法、装置和计算机可读介质。所述方法包括:获取包括多条指令的指令集;确定所述多条指令中每条指令的使用频率;基于每条指令的使用频率,将所述多条指令划分为N个分组;计算所述N个分组中每个分组的操作码编码长度;基于所计算的每个分组的操作码编码长度对所述分组中的每条指令进行操作码编码。利用本方法,通过在指令集编码时将各个指令的使用频率考虑在内,实现可变长的操作码编码,进而进一步压缩指令的操作码域段,从而改进编码资源的利用效率。从而改进编码资源的利用效率。从而改进编码资源的利用效率。

【技术实现步骤摘要】
用于指令集的操作码编码方法、装置和计算机可读介质


[0001]本公开涉及计算机处理技术,更具体地涉及用于指令集的操作码编码方法、装置和计算机可读介质。

技术介绍

[0002]指令集是诸如中央处理单元(CPU)、图形处理单元(GPU)、微控制单元(MCU)等处理装置中用来控制计算机系统的一套指令的集合,并且每一种处理装置规定了与其它硬件电路相配合的一系列指令系统。指令集编码方式的先进与否直接影响到处理装置的性能发挥,因此它也是处理装置性能的重要指标。目前现有技术的指令集编码对于不同使用频率的指令采用无差别的操作码编码方式,因而指令集编码空间利用效率不高,致使大量的编码资源被浪费。

技术实现思路

[0003]鉴于此,本公开提供了用于指令集的操作码编码方法、装置以及计算机存储介质,期望克服上面提到的部分或全部缺陷以及其它可能的缺陷。
[0004]根据本公开的一个方面,提供了一种用于指令集的操作码编码方法,其包括:获取包括多条指令的指令集;确定所述多条指令中每条指令的使用频率;基于每条指令的使用频率,将所述多条指令划分为N个分组,其中从第一分组至第N分组,各分组中指令的使用频率依次递减,其中第一分组中具有使用频率最高的一条或多条指令,并且第N分组中具有使用频率最低的一条或多条指令;计算所述N个分组中每个分组的操作码编码长度;以及基于所计算的每个分组的操作码编码长度对所述分组中的每条指令进行操作码编码。
[0005]根据本公开的一些示例性实施例,从第一分组至第N分组,各分组中的指令条数是依次非递减的。
[0006]根据本公开的一些示例性实施例,从第一分组至第N分组,各分组的操作码编码长度是依次递增的。
[0007]根据本公开的一些示例性实施例,所述N个分组中每个分组的操作码编码长度包括任意编码字段的长度和固定编码字段的长度,所述计算所述N个分组中每个分组的操作码编码长度包括:基于所述分组中的指令条数确定所述任意编码字段的长度;基于所述分组的上一分组的操作码编码长度确定所述固定编码字段的长度。
[0008]根据本公开的一些示例性实施例,基于所述任意编码字段的长度对所述分组中的每条指令进行非重复编码。
[0009]根据本公开的一些示例性实施例,基于所述分组中的指令条数确定所述任意编码字段的长度包括:将所述分组的任意编码字段的长度计算为log2(n
i
+k)向上取整的值,其中n
i
是第i分组中的指令条数,k为偏移量,并且当i=N时,k≥0;当1≤i<N时,k>0。
[0010]根据本公开的一些示例性实施例,分别针对第一分组至第N

1分组中的每个分组,设置与所述分组相关联的出口编码,其中与每个分组相关联的出口编码具有与所述分组的
操作码编码相同的长度,并且与所述分组中的每条指令的操作码编码都不同。
[0011]根据本公开的一些示例性实施例,对于第一分组,将其中每条指令的操作码的固定编码字段设置为空;并且对于第二至第N分组中的每个分组,将所述分组中每条指令的操作码的固定编码字段设置为与上一分组相关联的出口编码。
[0012]根据本公开的一些示例性实施例,所述分组中每条指令的操作码的固定编码字段位于任意编码字段之前或者之后。
[0013]根据本公开的另一个方面,提供了一种用于指令集的操作码编码装置,其包括:指令获取模块,其被配置成获取包括多条指令的指令集;频率确定模块,其被配置成确定所述多条指令中每条指令的使用频率;指令分组模块,其被配置成基于每条指令的使用频率,将所述多条指令划分为N个分组,其中从第一分组至第N分组,各分组中指令的使用频率依次递减,其中第一分组中具有使用频率最高的一条或多条指令,并且第N分组中具有使用频率最低的一条或多条指令;长度计算模块,其被配置成计算所述N个分组中每个分组的操作码编码长度;以及指令编码模块,其被配置成基于所计算的每个分组的操作码编码长度对所述分组中的每条指令进行操作码编码。
[0014]根据本公开的又一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行根据前述示例性实施例中任一个所述的方法。
[0015]通过本公开,可以按照指令的使用频率对其操作码进行有针对性的编码,进而实现指令的使用频率越高,其操作码越短的编码效果,这将大幅改进操作码的编码效率,节省存储空间,减少常用指令的译码、分析时间。同时可以利用指令操作码节省出的位资源进行其它操作,从而提升指令集、甚至处理装置的总体性能。
附图说明
[0016]现在将参照附图描述本公开的具体示例性实施例。然而,本公开可以以很多不同的形式实施,并且不应该被解读为限于本文所阐述的实施例;相反,这些实施例被提供以便使该公开全面而完整,并且将向本领域技术人员完全表达本公开的范围。在对附图所示特定示例性实施例的详细描述中所使用的术语不意图对本公开是限制性的。在附图中,类似的数字指代类似的部件。图1是根据本公开一个实施例示出的用于指令集的操作码编码方法的流程图;图2是根据本公开一个实施例示出的用于指令集的操作码分段式编码方法的流程图;图3a是根据本公开一个实施例示出的操作码编码结果的示意图;图3b是根据本公开另一个实施例示出的操作码编码结果的示意图;图4是根据本公开一个实施例示出的用于指令集的操作码编码装置的框图;图5是示出根据本公开一个实施例的计算设备的框图。
具体实施方式
[0017]为使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本公开技术方案作进一步说明。应该进一步理解,使用在该说明书中,术语“包括”意指存在
所陈述的特征、步骤、操作、部件和/或组件,但是并不排除存在或添加一个或更多个其它特征、步骤、操作、部件、组件和/或其组成的组。
[0018]在相关技术中,指令集可以按照长度分为定长指令集和变长指令集。定长指令集的所有指令编码长度一致,通常是32比特、64比特或者128比特,例如MIPS32指令集。变长指令集会根据指令内容需要编排出不同长度的指令,例如由美国加州的Intel公司开发的X86处理器架构。
[0019]无论是定长还是变长指令集,每条指令都可以看作是由若干个小的域段拼接组成的,例如MIPS32指令集的编排如下:R型:31~26:OP,25~21:RS,20~16:RT,15~11:RD,10~6:SA,5~0:FUNC;I型:31~26:OP,25~21:RS,20~16:RT,15~0:IMMJ型:31~26:OP,25~0:ADDRMIPS32指令集体现了现有大部分指令集编码的两个特点,一是域段连续,二是域段长度固定。
[0020]X86指令集是最具有代表性的变长指令集,其编码方式如下:
[0021]可以看出,X86的编码方案打破了域段长度固定的局限,采取了按需变长的策略。例如可以将某条指令的操作码压缩至1个字节,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于指令集的操作码编码方法,其特征在于,包括:获取包括多条指令的指令集;确定所述多条指令中每条指令的使用频率;基于每条指令的使用频率,将所述多条指令划分为N个分组,其中从第一分组至第N分组,各分组中指令的使用频率依次递减,其中第一分组中具有使用频率最高的一条或多条指令,并且第N分组中具有使用频率最低的一条或多条指令;计算所述N个分组中每个分组的操作码编码长度;基于所计算的每个分组的操作码编码长度对所述分组中的每条指令进行操作码编码。2.根据权利要求1所述的方法,其特征在于,从第一分组至第N分组,各分组中的指令条数是依次非递减的。3.根据权利要求1所述的方法,其特征在于,从第一分组至第N分组,各分组的操作码编码长度是依次递增的。4.根据权利要求1所述的方法,其特征在于,所述N个分组中每个分组的操作码编码长度包括任意编码字段的长度和固定编码字段的长度,所述计算所述N个分组中每个分组的操作码编码长度包括:基于所述分组中的指令条数确定所述任意编码字段的长度;基于所述分组的上一分组的操作码编码长度确定所述固定编码字段的长度。5.根据权利要求4所述的方法,其特征在于,基于所述任意编码字段的长度对所述分组中的每条指令进行非重复编码。6.根据权利要求4所述的方法,其特征在于,所述基于所述分组中的指令条数确定所述任意编码字段的长度包括:将所述分组的任意编码字段的长度计算为log2(n
i
+k)向上取整的值,其中n
i
是第i分组中的指令条数,k为偏移量,并且当i=N时,k≥0;当1≤i<N时,k>0。7.根据权利要求4所述的方法,其特征在于,分别针对第一分组至第N

1分组中的每个分组,设置与所述分组相关联的出口编码,其中与每个分组相关联的出口编码具有与所述分组的操作码编码相同的长度,并且与所述分组中的每条指令的操作码编码都不同。8.根据权利要求7所述的方法,其特征在于,对于第一分组,将其中每条指令的操作码的固定编码字段设置为空;并且对于第二至第N分组中的每个分组,将所述分组中每条指令的操作码的固定编码字段设置为与上一分组相关联的出口编码。9.根据权利要求4所述的方法,其特征在于,所述分组中每条指令的操作码的固定编码字段位于任意编码字段之前或者之后。10.一种用于指令集的操作码编码装置,其特征在于,包括:指令获取模块,其被配置成获取包括多条指令的指令集;频率确定模块,其被配置成确定所述多条指令中每条指令的使用频率;指令分组模块,其被配置成基于每条指令的使用频率,将所...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1