发明名称 嵌入式同构对称双核RISC微处理器的设计方法
摘要 嵌入式同构对称双核RISC处理器的设计方法,根据取指单元、译码单元、控制单元以及数据通路内部逻辑模块的相对独立性,通过模块划分构成内核各单元。以32位RISC微结构的内部各模块为IP,并根据需要进行功能扩展,设计32位双核RISC的微结构。采用公共PC寄存器方案,实现了双核取指上的同步性,避免两个核心重复取指或者取指的遗漏;双核采用按序发射的策略,即按照双核的取指顺序来执行,简化了设计;针对两个核心间的数据交换,设计出共享寄存器堆方案,使双核实现了资源的共享以及提高了数据交换的灵活性,避免需要扩展指令集来实现数据的共享,缩短了设计周期;采用流水线控制合并的策略,使得两条流水线统一管理,实现了两条流水线的工作协同性。
申请公布号 CN101593097B 申请公布日期 2011.07.27
申请号 CN200910022657.7 申请日期 2009.05.22
申请人 西安交通大学 发明人 邵志标;邹刚;左坤;谈杰
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 张震国
主权项 一种嵌入式同构对称双核RISC处理器的设计方法,其特征在于:1)采用公共PC寄存器实现双核取指的同步性,避免两个核心即双核重复取指或取指遗漏,所说的公共PC寄存器实现双核取指的同步性是核1、核2共用一个PC寄存器,地址端口比单核增加了一个地址增值器,核1的地址是多路选择器输出的结果,核2的地址是核1的地址经过第一个地址增值器增值后的结果,而输入到共享PC寄存器的地址是经过两次增值的结果,也就是在核2的地址上再加1增值作为PC的输入地址,使核1、核2的输出地址始终相差1,消除存在的重复取指或着遗漏某条指令,保持良好的同步性;2)采用共享寄存器堆实现双核资源共享以及数据交换的灵活性,避免需要扩展指令集来实现数据的共享,所说的共享寄存器堆采用合并寄存器堆的策略,在单核中,寄存器堆共有32个寄存器,其中包括29个通用寄存器,一个计数寄存器,一个程序状态寄存器以及一个常数零寄存器,通过寄存器堆的合并,形成了共享寄存器堆模型,使得两个核心共用这32个寄存器,共享以后,对寄存器的控制进行扩展,由单核的两个读控制和一个写控制扩展到双核的四个读控制和两个写控制,体现了两个核心的相对独立性;3)采用寄存器相关性消除策略及流水线控制合并策略,使两条流水线统一管理,实现了两条流水线的工作协同,所说的寄存器相关性消除策略:相关性的检测双核的每个时钟周期里,两个核心的流水线从ID级各发射一条指令到EXE级执行,其检测方法是在译码级完成,当在取指阶段取完指令后就放入指令寄存器中,通过比较指令寄存器中的相应的源操作数、目的操作数的编码段完成RAW相关性的检测; 首先指令编码在REG1、REG2类型里,第21位到25位是第一源寄存器scr1的编码,第16位到20位是目的寄存器dst的编码,第0位到4位是第二源寄存器scr2的编码,对应到指令寄存器ir里,ir25~21对应源操作数第一源寄存器scr1,ir20~16对应目的操作数目的寄存器dst,ir4~0对应源操作数第二源寄存器scr2;REG3、CTRL、MEM类指令里只有一个源操作数第一源寄存器scr1,除了CTRL类型以及存数类指令没有目的操作数外,其他类型的指令格式都有目的操作数;先写后读相关RAW检测的具体方案如下:首先令,dst(1)=~(bar(1)|bsr(1)|STORE(1))&ir(1)20~16+(bal(1)|bsr(1))&ir(1) 25~21;scr1(2)=ir(2)25~21,scr2(2)=ir(2)4~0&~(REG3(2)|CTRL(2)|MEM(2));如果dst(1)==scr1(2)|scr2(2),则存在RAW相关性;其中,ir(1)代表核1的指令寄存器,dst(1)代表核1的目的操作数,bar(1)、bsr(1)、STORE(1)为核1译完码后无条件转移和存储类控制信号,ir(2)代表核2的指令寄存器,scr1(2)和scr2(2)代表核2的两个源操作数,REG3(2)、CTRL(2)、MEM(2)分别代表核2译码后的寄存器类、控制类、存储器类的控制信号;相关性的处理WAW的解决策略双核微处理器是按序发射指令,因此指令的执行是按照程序中的顺序执行,如果相邻两条指令要对同一寄存器写数据,只要把后一条指令的结果写入寄存器中就可以消除先读后写相关WAW;具体的处理如下:C1、C2分别代表核1、核2的写总线,WC1(i)、WC2(i)代表核1、核2 的写控制信号,i的值是0~28,代表0~28号通用寄存器,只有写控制信号发生时,才把总线C1、C2上的内容写到寄存器中;得出,REG(i)=(WC2(i)&C2)|(~WC2(i)&WC1(i)&C1),REG(i)代表第i号寄存器,如果两个核都对同一寄存器写入数据,只把核2的数据写入相应的寄存器当中,通过对寄存器的写操作的修正,解决先读后写相关WAW相关性问题;先写后读相关RAW数据竞争的解决:①在ID级读源操作数时,此时正确的值在流水线内部还没有产生,产生先写后读相关RAW请求,然后由流水线控制部件处理;②在ID级读源操作数时,此时正确的值已在流水线内部产生,只会发生在核内部由于流水线重叠产生,而双核之间的并行是完全同步的,即取指、译码、执行完全是同步的,读操作是在译码级进行,这时两个核都还没有执行操作,在两个核间不会产生这种相关性,因此,只对于情况①进行相关性处理。
地址 710049 陕西省西安市咸宁路28号