
超长指令字变长指令实现方法及实现该方法的处理器的制作方法.docx
2页超长指令字变长指令实现方法及实现该方法的处理器的制作方法专利名称:超长指令字变长指令实现方法及实现该方法的处理器的制作方法技术领域:本发明属于指令编码架构领域,涉及对复杂计算操作指令编码的拆分,特别涉及一种超长指令字变长指令实现方法及实现该方法的处理器背景技术:对于采用固定长度或有限长度指令编码的处理器架构,一些复杂的计算操作由于指令编码长度的限制而无法用一条指令来实现,必须将这些复杂的计算操作拆分为互相有数据依赖关系的多条简单指令依据指令集架构来分类,处理器架构可分为复杂指令集计算(CISC,ComplexInstruction Set Computing)和精简指令集计算(RISC, Reduced Instruction Set Computing)两种在CISC架构的处理器中,往往采用可变长度的指令,很容易用单条指令来实现复杂的计算操作然而对于RISC架构的处理器来说,它的指令编码一般具有固定的长度,每条指令的功能也较为简単通常情况下,RISC处理器的每条指令的长度不超过32bit,这是由指令编码空间和可执行代码体积两个因素決定的,采用32bit或16bit的指令编码,能够在指令编码空间和代码体积之间取得较好的均衡。
如清华大学微电子所DSP实验室自主研发的第三代数字信号处理器Magnolia采用32bit固定长度的指令编码,而该实验室自主研发的第二代数字信号处理器Lily则采用16bit和32bit混合长度的指令编码方式类似RISC架构这种固定长度或有限长度的指令编码方式,为其带来ー个问题,就是ー些复杂的计算操作,由于指令编码长度的限制,无法用一条简单的指令来实现如对32/64bit位宽的立即数或地址的操作,复数运算、向量运算、加/解密、通信、多媒体等领域中包含多个操作数的复杂计算操作,对内存中的数据进行复杂操作等在传统的采用固定长度或有限长度指令编码的处理器设计中,为了实现这些复杂的计算操作,往往把这些操作拆分为互相有数据依赖关系的多条简单指令由于数据依赖关系的存在,这些指令必须按照选择顺序,在多个时钟周期内顺次执行,无法在单个时钟周期内完成如果不对这些复杂的计算操作进行拆分,而是像CISC处理器那样定义不规则长度的指令来实现,则不仅会破坏处理器指令集的一致性,还会对处理器的取指、译码、分发等硬件逻辑设计造成较大影响,甚至可能成为关键路径,降低处理器的性能当今的处理器架构设计中,为了提高处理器的计算能力,往往使用多发射(Multiple Issue)技术来实现指令级并行(ILP, Instruction Level Parallelism)。
多发射技术可通过在处理器中设计一系列独立的硬件执行单元来实现,多个硬件执行单元可以并行地执行不同的指令根据数据依赖关系判定和指令并行性判定方式的不同,又可以把采用了多发射技术的处理器架构分为超标量(Superscalar)、超长指令字(VLIW,VeryLong Instruction Word)、显式并行指令i十算(EPIC, Explicitly Parallel InstructionComputing)等如清华大学微电子所DSP实验室自主研发的第二代和第三代数字信号处理器都是采用了多发射技术的VLIW架构处理器,第二代的Lily处理器具有6个独立的硬件执行单元,第三代的Magnolia处理器具有8个独立的硬件执行单元,即能够实现最多6条或8条指令的并行执行发明内容为了克服上述现有技术的不足,本发明的目的在于提供一种超长指令字变长指令实现方法及实现该方法的处理器,解决了复杂的计算操作难以用单条指令实现的问题为了实现上述目的,本发明采用的技术方案是一种超长指令字变长指令实现方法,首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到采用多发射技术的处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成计算操作,所述的简单指令是指这些指令符合处理器的固定长度或有限长度的指令编码规则,该组在同一个时钟周期并行执行的有数据依赖 关系的多条简单指令视为一条超长指令。
所述多个硬件执行单元之间存在数据交互行为所述互相有数据依赖关系的多条简单指令是这些指令之间存在RAW (Read AfterWrite) >WAff (Write After Write) 5 WAR (Write After Read)类型的数据相关性一种实现所述超长指令字变长指令实现方法的处理器,采用多发射技术,并且在处理器的多个硬件执行单元之间增加了数据交互,所述的数据交互行为用于传递中间计算结果、寄存器值或控制信息与现有技术相比,本发明提供的优点是I)允许采用固定长度或有限长度指令编码的处理器以此种方式来突破指令编码长度限制,实现复杂的计算操作;2)采用本发明的解决方案,可以减少不规则指令编码对处理器的取指、译码、分发逻辑设计的不良影响;3)本发明能够使处理器处理复杂计算操作的周期数大幅缩短,从而增强了处理器的并行计算能力,提高了处理器的性能;图I为本发明的方法示意图图2为本发明实施例中传统方式向寄存器写入64bit立即数图3为本发明实施例中采用本发明方法的处理器在单周期执行64bit立即数指令具体实施例方式下面结合附图和实施例对本发明做进ー步详细说明以清华大学微电子所DSP实验室自主研发的第三代数字信号处理器Magnolia为例,它是ー款VLIW架构的处理器。
Magnolia处理器中共有8个执行单元,并采用了 32位定长指令编码,如图I所示对于VLIW架构的处理器来说,各条指令的数据依赖关系是由编译器来判定的,编译器能够在满足各种硬件资源限制的条件下,把没有数据依赖关系的指令安排到同一个时钟周期并行地执行在实际执行过程中,处理器对指令并行性的判定则采用了该处理器特有的“功能単元升序”的方式来判定由此可见,Magnolia处理器完全具有本发明实现的条件a、采用32bit固定长度的指令编码;b、有多个硬件执行单元,实现了多发射技木在此基础上,以ー个典型的64bit立即数指令为例,描述本发明的具体实施方式首先,对复杂的计算操作进行拆分64bit立即数指令要完成向寄存器中写入ー个64位数据的任务,然而一条指令只有有限的32bit,无法同时容纳功能単元、目的寄存器、指令操作码和这个64bit的立即数在不损害Magnolia处理器的编码方式和指令并行性判定原则的条件下,传统的拆分方式是将此操作拆分成4条独立的指令,每条指令都向同ー个目的寄存器写入64bit立即数的一部分由于这几条指令的目的寄存器是同一个,所以它们之间存在数据依赖关系,只能由同一个执行单元按先后顺序执行,如图2所示。
采用本发明的拆分方式为,仍将此操作拆分为4条独立指令,它们使用同一个目 的寄存器,因而仍存在数据依赖关系但是这4条独立指令被安排到不同的执行单元,这样才能够利用处理器的多发射技木,实现并行的分发和执行Magnolia处理器共有AAMMDDFF共8个执行单元,本实施例中的4条独立指令,分别被编码到A、M、M、D四个执行单元之中其次是实现硬件执行单元的数据交互传统意义的硬件执行单元之间没有耦合,不能够进行数据交互在本发明的方案中,多个硬件执行单元之间允许进行必要的数据交互行为如对于64bit立即数指令的示例来说,被编码到A、M、M、D四个执行単元的4条独立指令,将被并行地分发和执行,在执行过程中,A、M、M、D四个执行単元之间进行数据交互,将4条指令中的数据片断进行拼合,最终组合成一个完整的64bit数据,写入目的寄存器中处理器局部结构如图3所示通过图3的实现方式,使得处理器能够在单个时钟周期内处理64bit立即数的写入问题,与传统的执行方式相比,提高了执行效率由于复杂的计算操作被拆分成多条独立的指令后,虽然存在数据依赖关系,仍可以在同一时刻并行地执行,因此这样的多条连续指令可以视为ー个整体,即特殊的“长指令”,相对于处理器32bit定长指令编码而言,即实现了变长指令。
实现本发明所述超长指令字变长指令实现方法的多发射技术处理器,在其处理器硬件执行单元之间增加用于传递中间计算结果、寄存器值或控制信息等功能的数据交互行为,该数据交互行为的目的是为了解决存在数据依赖关系的多条指令的并行执行最简单的数据交互行为是使用直连的数据线路来传输參与计算的必要数据,包括中间计算结果、寄存器值或控制信息等例如在64bit立即数指令中使用直连的16bit位宽的数据线路将四部分16bit数据合并到一起,得到最終的64bit結果而为了实现更复杂的计算操作,可能需要更为复杂的数据交互行为,如更大位宽的数据线路或更多次的数据交换等形式权利要求1.一种超长指令字变长指令实现方法,首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,其特征在于,将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到采用多发射技术的处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成计算操作,所述的简单指令是指这些指令符合处理器的固定长度或有限长度的指令编码规则,该组在同一个时钟周期并行执行的有数据依赖关系的多条简单指令视为一条超长指令2.根据权利要求I所述超长指令字变长指令实现方法,其特征在于,所述多个硬件执行单元之间存在数据交互行为。
3.根据权利要求I所述超长指令字变长指令实现方法,其特征在于,所述互相有数据依赖关系的多条简单指令是指这些指令之间存在RAW (Read After Write)、WAW (WriteAfter Write)或 WAR (Write After Read)类型的数据相关性4.ー种实现权利要求I所述超长指令字变长指令实现方法的处理器,采用多发射技术,其特征在于,在其处理器多个独立的硬件执行单元之间存在数据交互行为5.根据权利要求4所述的处理器,其特征在于,所述的数据交互行为用于传递中间计算结果、寄存器值或控制信息全文摘要一种超长指令字变长指令实现方法及实现该方法的处理器,该方法是首先将难以用固定长度或有限长度指令编码实现的复杂计算操作拆分为多条简单指令,然后将互相有数据依赖关系的多条简单指令在单个时钟周期内分发到处理器的多个硬件执行单元中,通过多个硬件执行单元之间的数据交互与协作,并行地完成复杂的计算操作,该处理器是采用多发射技术,在其多个独立的硬件执行单元之间存在数据交互行为,本发明在多个执行单元之间增加数据交互的能力,使多条指令能够并行地被分发到多个执行单元中,从而提高了执行效率,通过本发明能够突破指令编码长度限制,用同一时钟周期并行执行的多条指令来实现复杂的计算操作,扩展了指令编码空间,增强了处理器的数据处理能力。












