指令编码方法和处理器技术

技术编号:2819717 阅读:170 留言:0更新日期:2012-04-11 18:40
提供了一种用于可发射并行指令的处理器的指令编码方法和处理器,将每条指令编码为多个编码域,编码域中可选择性地包含表征是否后续指令与当前指令属于同一个指令包的连接域,连接域的设置与否由处理器的计算单元的数量和装载/存储单元的数量决定。

【技术实现步骤摘要】

本专利技术涉及指令编码方法和处理器,尤其涉及一种并行指令的指令编码方 法和处理器。
技术介绍
为了加快处理器的处理速度,许多处理器都具有每个时钟周期可以发射多 条指令的能力。目前具有这种能够每个时钟周期发射多条指令的能力的处理器 主要有两种。 一种是超标量处理器,超标量处理器在单个时钟周期内可以发射 执行多条指令。为了使这多条指令可以并行执行,超标量处理器一般具有多个 处理单元,如多个定点运算单元、浮点运算单元和装载/存储单元等。超标量处 理器主要通过硬件从应用的程序代码中寻找指令级并行性,如果没有找到较多 的指令级并行,就可能出现空置的指令槽。对于较低指令级并行性的 一 些应用, 超标量处理器并不能体现出它在性能方面的优势。此外,超标量处理器由于过 多的利用硬件进行指令动态调度,使得硬件开销过大。另一种是超长指令字(VLIW)处理器。超长指令字处理器也可以在单个时钟周期内发射多条指令, 它主要是通过编译器来寻找指令级并行性,然后编码成一条由可同时发射的多 条微指令组合而成的超长指令。相比于超标量处理器,超长指令字处理器在处 理器硬件开销方面具有 一 定的优势。超长指令字处理器采用了并行指令技术,在同一时间可以同时对多条指令 进行处理。通常可以把同时进行处理的并行指令称为一个指令包或指令字。一 个指令包的大小往往受限于总线宽度。 一般来说,现今普遍使用的总线宽度为 32位或64位。例如,对于64位总线宽度的处理器,其指令包的长度最大为 64位。超长指令字处理器的指令包都非常长,往往会相当程度地增加指令代码的 存放空间。而处理器需要利用各种特定的指令组合来完成要求的应用程序。存储指令代码除了占用内存,还需占用緩存,这些对芯片面积都将造成影响。特 别对于单芯片系统,芯片面积是直接决定成本的最重要因素之一,指令集代码 的编码效率是设计中面临的非常重要的一个问题。而且,对指令代码进行存取 操作需要功耗,指令的长短也直接影响着取指令代码所需的功耗大小。处理器中有的指令需要执行比较复杂的功能或者带有长立即数等特性,需 要相对较长的长度,而有的指令执行的功能较为简单,只需要相对较短的指令 长度。如果所有的指令采用同样的长度,则通常需要满足具有最长指令长度的 指令的要求,这样,即使执行较简单功能的指令也采用了更长的指令长度,这 在一定程度上浪费了指令存储空间。因此,有的处理器采用变长指令来减少指 令占用的存储空间。对于采用并行指令技术的超长指令字处理器来说,如果同 时使用变长指令, 一个指令包中的每条指令的长度是不确定的,无法判断一个 指令包是否已译码完成。因此,指令译码的时候,必须在指令编码中显示每个 指令包的边界,使得处理器的流水线能够辨认哪几条指令构成了 一个指令包。 在一些现有的处理器中,在每条指令编码时加入一个连接域,用一位或多位代 码来表示指令包中的该条指令之后有无下一条指令,藉此可以判断一个指令包 中的全部指令是否已完成译码。由于处理器的指令空间压缩有时可能幅度非常 大,可能造成指令空间编码十分紧张。为了有效的节省指令编码空间,本专利技术 试图从指令包的角度来考虑改进指令编码方法,以节省指令编码空间。
技术实现思路
为克服现有技术中存在的缺陷,本专利技术提出了一种用于可发射并行指令的 处理器的指令编码方法,可以减少并行指令的指令长度,节省指令存储空间和 取指令功耗。本专利技术并提供了 一种可以节省指令存储空间和取指令功耗的处理器。 根据本专利技术的一个方面, 一种用于可发射并行指令的处理器的指令编码方 法,该方法将每条指令编码为多个编码域,其特征在于,编码域中可选择性地 包含表征是否后续指令与当前指令属于同一个指令包的连接域。根据本专利技术的 一 个方面,连接域的设置与否由处理器的计算单元的数量和 装载/存储单元的数量决定。在对指令并行发射的指令包中,最多包含一条未设置连接域的指令,并且, 当指令包中包含一 条未设置连接域的指令时,未设置连接域的指令编码在指令 包的最后一条指令。在一些实施例中,处理器中设置了一个计算单元,多个装载/存储单元,指 令编码中,对于装载/存储指令设置连接域,对于计算指令不设置连接域。在另一些实施例中,处理器中设置了一个装载/存储单元,多个计算单元, 指令编码中,对于计算指令设置连接域,对于装载/存储指令不设置连接域。根据本专利技术的另 一个方面, 一种可发射并行指令的处理器设置了至少一个 装载/存储单元和至少一个计算单元,存储器中存放有多条指令,指令的编码域 中可选择性地包含表征是否后续指令与当前指令属于同 一 个指令包的连接域, 连接域的设置与否由处理器的计算单元的数量和装载/存储单元的数量决定。在本专利技术的一个实施例中,处理器设置了至少一个装载/存储单元, 一个计 算单元,存储器中存放有多条指令,指令中的装载/存储指令在编码域中设置表 征是否后续指令与当前指令属于同一个指令包的连接域,指令中的计算指令在 编码域中不设置连接域。在本专利技术的另一个实施例中,处理器设置了至少一个计算单元, 一个装载 /存储单元,存储器中存放有多条指令,指令中的计算指令在编码域中设置表征 是否后续指令与当前指令属于同一个指令包的连接域,指令中的装载/存储指令 在编码域中不设置连接域。附图说明以下附图为对本专利技术示例性实施例的辅助说明,结合以下附图对本专利技术实 施例的阐述,是为进一步揭示本专利技术的特征所在,但并不限制本专利技术,图中相 同符号代表实施例中相应元件或步骤,其中图1为根据本专利技术一实施例的处理器的结构示意图。图2为根据本专利技术一实施例的一种指令编码示意图。图3为根据本专利技术 一 实施例的一个指令包的编码结构示意图。图4为根据本专利技术另 一实施例的处理器的结构示意图。图5为根据本专利技术另 一实施例的一种指令编码示意图。图6为根据本专利技术另 一实施例的一个指令包的编码结构示意图。 图7为根据本专利技术一实施例的一示例性指令包的编码结构示意图。 图8为根据本专利技术另 一实施例的一示例指令包的编码结构示意图。具体实施例方式参见图1,根据本专利技术的一个示例性的实施例,处理器10设置了两个装栽 /存储单元11、 13和一个计算单元12。装载/存储单元用于存放指令和数据,在 执行并行指令时,总线可同时对两个装载/存储单元进行存取操作。控制单元 15从装载/存储单元中取出指令并对指令进行译码,再由计算单元根据译码后 的指令从装载/存储单元中取出数据执行运算。处理器的每个流水线周期可以执 行一个指令包, 一个指令包的最大长度为例如64位,在本示例性实施例中最 多由一条计算指令和两条存取指令共三条指令构成。由于在VLIW体系中,一 个指令包中的所有指令都是在同 一 个流水线周期并发执行的指令,所以同 一 指 令包中的指令的排列顺序无关紧要,任何排列顺序执行的结果都是一样的,这 样使得传统基于每一条指令编码中都含有连接域(LinkBit)的方法本质上有冗 余,这样的冗余不仅带来编码空间的浪费,也降低了指令编码的效率,增加了 存储指令的存储器的大小和取指令所用的功耗。 由于指令包内部指令排列的无关性,为了压缩编码空间,本专利技术提出了一 种用于可发射并行指令的处理器的指令编码方法,有效解决了并行指令的连接 域的冗余问题。该方法将每条指令编码为多个编码域,但并非每本文档来自技高网
...

【技术保护点】
一种用于可发射并行指令的处理器的指令编码方法,将每条指令编码为多个编码域,其中,编码域中可选择性地包含表征是否后续指令与当前指令属于同一个指令包的连接域。

【技术特征摘要】

【专利技术属性】
技术研发人员:周振亚张亚林
申请(专利权)人:上海奇码数字信息有限公司
类型:发明
国别省市:31[中国|上海]

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

1