一种用于存算融合式处理器的取指流水线制造技术

技术编号:33557675 阅读:19 留言:0更新日期:2022-05-26 22:54
本发明专利技术公开了一种用于存算融合式处理器的取指流水线,为了最大限度地提高存算融合式处理器的运算性能,宜采用较大的指令存储器iMEM和高速缓存iCache替代传统取指模块中的iCache及其相关的多级缓存,减少Cache缺失率,提高取指性能;然而,更大的存储意味着更大的延迟,为此本发明专利技术设计了六级流水式取指逻辑,取代原有四级流水式取指逻辑,缩短了关键路径的时长,而系统时钟频率由关键路径时长决定,因此提升了系统时钟频率,进而大幅度提高了系统执行效率;虽然取指流水级数增多,但由于分支预测器和指令缓冲FIFO的存在,使得取指流水线的性能并未降低。线的性能并未降低。线的性能并未降低。

【技术实现步骤摘要】
一种用于存算融合式处理器的取指流水线


[0001]本专利技术涉及流水线取指
,尤其是一种用于存算融合式处理器的取指流水线。

技术介绍

[0002]随着处理器与存储器的工艺提升差的增大,冯诺依曼体系结构下存储墙剪刀叉也不断增大,访存功耗墙的问题也日益突出,工业界和学术界的专注点开始从聚焦计算转移到聚焦存储。与此同时,高访存、高并行、低精度的人工智能和类脑计算等应用的快速发展也驱动了计算型存储/存算一体/存内计算的快速发展,计算型存储/存算一体/存内计算的快速发展势必也带来更大的数据吞吐率需求。
[0003]取指令(InstructionFetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。为了最大限度地发挥计算型存储/存算一体/存内计算的优势,需要设计与其吞吐率相配套的取指逻辑。目前,传统的取指模块采用iCache对指令机器码进行缓存,但是iCache的容量通常较小,发生Cache缺失的几率较大,而Cache缺失的代价通常较大。为了最大限度地提高存算融合式处理器的运算性能,宜采用较大的指令存储器iMEM(SRAM)和高速缓存iCache(SRAM)替代传统取指模块中的iCache及其相关的多级缓存,减少Cache缺失率,提高取指性能,但是更大的存储会带来更大的延迟,降低系统执行效率。

技术实现思路

[0004]针对现有取指流水线应用于采用较大指令存储器和高速缓存的存算融合式处理器存在的延迟问题,本专利技术提供了一种用于存算融合式处理器的取指流水线,有效提高程序执行效率。
[0005]一种用于存算融合式处理器的取指流水线,包含F1

F6六级流水式取指逻辑,分别为:
[0006]F1级流水单元,根据应用程序的执行特征,产生正确的取指地址;
[0007]F2级流水单元,发送iCache/iMEM的读地址及相关控制信号,相关控制信号包括但不限于读使能信号;
[0008]F3级流水单元,当流水发生停顿时,寄存iCache/iMEM返回的读数据;当流水停顿况解除时,将寄存的读数据发送至F4级流水单元;
[0009]F4级流水单元,判断iCache/iMEM是否命中,当iCache缺失时,产生F1、F2、F3的流水停顿信号,启动AXIMaster读取外部存储器的数据并更新iCache,根据命中的判断结果选择iCache、iMEM或AXIMaster读数据存储器返回的指令包,对返回的指令包做分支预测,并将预测结果发送至F5级流水单元,分支预测结果在F5级流水生效;
[0010]F5级流水单元,通过指令缓冲FIFO进行指令包的缓冲,同时将分支预测目标地址送往F1级流水单元;
[0011]F6级流水单元,根据指令缓冲FIFO中的内容以及指令行结束标志,将指令包转换
为执行包,并将执行包送至到执行流水线。
[0012]进一步的,F1级流水单元包含取指地址产生电路,取指地址产生电路主要由多路选择器和寄存器构成,多路选择器的取指来源包括但不限于复位信号、中断控制器输出、分支跳转、分支预测、顺序执行,其中,中断控制器输出包括因中断、中断返回或中断撤销产生的输出。
[0013]进一步的,F4级流水单元包含分支预测器,该分支预测器采用局部两位预测方案;上电复位后,分支预测寄存器中的所有寄存器单元全部设置成2'b10,分支预判时,利用条件分支指令所处指令行PC[9:0]访问该分支预测器prediction,若prediction[PC[9:0]][1]=1'b1,则表示分支需要跳转,否则不跳;若分支预测结果为跳转,则在F5级流水单元产生F1、F2、F3、F4的流水刷新信号;
[0014]分支预测寄存器中的内容根据条件分支的最终计算结果更新,该分支预测器对指令包的8个slot均进行预测,指令包中分支指令行出现跨行情况时,即分支指令行中有一部分指令位于F3级的指令包中,当F3级中残余的指令包到达F4级时不能做分支预测,同时当分支预测结果到达F5级时,不清除F4级的流水线。
[0015]进一步的,F5级流水单元包含指令缓冲FIFO,FIFO有一个6bit的读指针fifo_rd和一个3bit的写指针fifo_wr,fifo_rd[4:3]用作FIFO行读指针,fifo_rd[2:0]用作FIFO行内偏移指针,fifo_wr[1:0]用作FIFO行写指针;
[0016]FIFO的空状态和满状态由fifo_rd与fifo_wr预判,当fifo_wr=fifo_rd,FIFO预判为空;当fifo_wr={~fifo_rd[5],fifo_rd[4:3]},且F4级指令包有效时,FIFO预判为满;当FIFO预判为满时,产生F1、F2、F3、F4的流水停顿信号;
[0017]当指令包为全零时,FIFO将全零指令包发送出去,同时FIFO读指针加8。
[0018]本专利技术设计的六级流水式取指逻辑,取代原有四级流水式取指逻辑,缩短了关键路径的时长,而系统时钟频率由关键路径时长决定,因此提升了系统时钟频率,进而大幅度提高了系统执行效率;虽然取指流水级数增多,但由于分支预测器和指令缓冲FIFO的存在,使得取指流水线的性能并未降低。
附图说明
[0019]图1是存算融合式处理器架构取指流水线;
[0020]图2是取指地址产生电路;
[0021]图3是两位分支预测方案状态图;
[0022]图4是指令缓冲FIFO结构。
具体实施方式
[0023]下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。
[0024]实施例1
[0025]一种用于存算融合式处理器的取指流水线,如图1所示,包含F1

F6六级流水式取指逻辑,下面对这六级流水单元进行展开介绍。
[0026]1、F1级流水单元
[0027]F1级流水单元包含取指地址产生电路,用于根据应用程序的执行特征,产生正确的取指地址。指令来源有三个,分别为iCache、iMem和BIU,BIU为内核与外部设备的通讯接口,通过BIU读取外部存储器的数据。
[0028]取指地址产生电路主要由多路选择器和寄存器构成,如图2所示,多路选择器的取指来源包括但不限于复位信号、中断控制器输出、分支跳转、分支预测、顺序执行,其中,中断控制器输出包括因中断、中断返回或中断撤销产生的输出。
[0029]2、F2级流水单元
[0030]发送iCache/iMEM的读地址及相关控制信号,相关控制信号包括但不限于读使能信号。
[0031]3、F3级流水单元
[0032]当流水发生停顿时,寄存iCache/本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于存算融合式处理器的取指流水线,其特征在于,包含F1

F6六级流水式取指逻辑,分别为:F1级流水单元,根据应用程序的执行特征,产生正确的取指地址;F2级流水单元,发送iCache/iMEM的读地址及相关控制信号,相关控制信号包括但不限于读使能信号;F3级流水单元,当流水发生停顿时,寄存iCache/iMEM返回的读数据;当流水停顿解除时,将寄存的读数据发送至F4级流水单元;F4级流水单元,判断iCache/iMEM是否命中,当iCache缺失时,产生F1、F2、F3的流水停顿信号,启动AXI Master读取外部存储器的数据并更新iCache;根据命中的判断结果选择接收iCache、iMEM或AXI Master读数据存储器返回的指令包,对返回的指令包做分支预测,并将预测结果发送至F5级流水单元;F5级流水单元,通过指令缓冲FIFO进行指令包的缓冲,同时将分支预测目标地址送往F1级流水单元;F6级流水单元,根据指令缓冲FIFO中的内容以及指令行结束标志,将指令包转换为执行包,并将执行包送至到执行流水线。2.根据权利要求1所述的用于存算融合式处理器的取指流水线,其特征在于,F1级流水单元包含取指地址产生电路,取指地址产生电路主要由多路选择器和寄存器构成,多路选择器的取指来源包括但不限于复位信号、中断控制器输出、分支跳转、分支预测、顺序执行,其中,中断控制器输出包括因中断、中断返回或中断撤销产生的输出。3.根据权利要求1所述的用于存算融合式处理器的取指流水线,其特征在于,F4级流水单元包含分支预测器...

【专利技术属性】
技术研发人员:王媛胡孔阳李泉泉刘玉
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:

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

1