本技术公开了一种压缩与非压缩指令集的并行处理模块、方法及异步电路,首先将混合指令存入缓冲区Buffer1模块中,然后通过mixedInstrDivsion模块分离出压缩指令与非压缩指令,将分离出的非压缩指令直接存入缓冲区Buffer2模块中,分离出的压缩指令通过mixInstrProcess模块进行扩展,一轮并行完成对4条压缩指令的扩展,最后将扩展后的非压缩指令存入缓冲区Buffer2模块中,供译码模块使用。通过采用并行化处理方法使得在同等时间段内划分和扩展出更多指令,提升超标量处理器中压缩处理阶段的指令处理速度,整体阶段实现多条指令并行执行,提高处理器的性能。本发明的并行处理模块采用BBD型异步电路实现,不仅避免了时钟问题,而且能够大幅度地降低功耗。
背景技术
RISC-V指令集中,通过采用16位压缩指令代替32位的普通指令,达到缩短代码长度,从而使一系列的程序得到良好的代码压缩效果。16位压缩指令的指令类型在RISC-V中称为C型压缩指令(简称RVC),RVC指令可以代替50%-60%的RISC-V指令,使代码大小减少25%-30%。超标量架构的处理器中,通过并行执行指令提高整体的性能,但由于RVC指令的加入,使处理器内存中的指令类型既包含压缩指令又包含非压缩指令,因此对混合指令的并行处理是一个关键的问题。混合指令的处理过程是在译码阶段之前完成的,核心操作主要包含两个方面:一是压缩指令与非压缩指令的划分,二是压缩指令的扩展。由于压缩指令集与非压缩指令集位宽的差异,导致混合指令处理中下条指令的起始地址是不确定的,并且下条指令的起始地址是依赖于当前指令,指令之间存在依赖关系,因此,上述核心操作的两方面是必要的而且是串行的。
超标量处理器中对于混合指令的处理,现有技术通常是采用状态机的方式对压缩指令处理,该方式是串行的处理方式,一次只能得到一条指令,无法实现多条指令并行处理;而将压缩指令在译码阶段直接译出的方式,增加译码电路复杂度的同时还增加了译码的时间,从而影响整体的性能。此外,现有电路均是采用同步电路的实现方式,在开发过程中,会出现时钟抖动与时钟偏斜等时钟原因引起的一系列问题。
实现思路