当前位置: 首页 > 专利查询>浙江大学专利>正文

一种加快芯片流水线处理的方法技术

技术编号:10409067 阅读:151 留言:1更新日期:2014-09-10 18:16
本发明专利技术公开了一种加快芯片流水线处理的方法,本发明专利技术通过重命名机制,指令从IF级发射之后,进入重命名模块,对寄存器进行重命名,重命名之后的指令进入发射级,从寄存器中取出对应的操作数或者操作数的Tag,解决了WAW和WAR的数据冲突问题,应用于流水线芯片设计中,极大地提高了芯片流水线处理效率。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,本专利技术通过重命名机制,指令从IF级发射之后,进入重命名模块,对寄存器进行重命名,重命名之后的指令进入发射级,从寄存器中取出对应的操作数或者操作数的Tag,解决了WAW和WAR的数据冲突问题,应用于流水线芯片设计中,极大地提高了芯片流水线处理效率。【专利说明】
本专利技术涉及芯片设计领域,尤其涉及。
技术介绍
指令间的依赖关系是阻碍指令调度发挥作用,进而影响指令级并行的主要障碍。指令调度是现代优化编译器后端很重要的一个阶段,它能在一个基本块(basic block, BB)里或者跨越基本块重排指令,使得程序关键路径上的指令执行时间尽可能短。有效的指令调度可以充分地利用处理器资源,提高指令级并行性(ILP)。指令之间的依赖关系是阻碍指令调度发挥作用的主要障碍。指令之间的依赖关系可分为3类:数据依赖、名字依赖和控制依赖。数据依赖又称流依赖,指令j数据依赖于指令i,指的是j直接或间接引用了指令i定义的结果。可知这是写后读(RAW)依赖。名字依赖指的是2个指令之间使用了相同的寄存器或主存单元,即是同一个名字,但是数据并没有沿着这个名字在2个指令间流动,名字依赖分为两种:反依赖和输出依赖。指令j反依赖于指令i是说j定义了一个名字,i引用了这个名字,即读后写(WAR)依赖。指令i和指令j输出依赖是说二者定义了同一个名字,即写后写(WAW)依赖。控制依赖揭示了一个一般指令和分支指令之间的关系,即分支指令是否发生控制转移影响了这个一般指令是否被执行到。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供。本专利技术的目的是通过以下技术方案来实现的,,包括以下步骤:(I)从IF级取指令时,先把源操作数寄存器对应的Tag标号从Map Table FIFO (队列)中相应的项中返回给指令,检查目的操作数寄存器Tag标号对应的Map Table FIFO中的项条目,将该项中的标号压入PTRQ队列;从Free List FIFO队列中压出一个标号覆盖上述Map Table FIFO中的项条目;把被更换的Map Table FIFO中项条目中的寄存器名返回给指令;(2)指令执行完后更新寄存器,重命名模块得到写回级中相关标志位已经置位后,标号从PTRQ FIFO中压出,进入Freelist FIFO,重新参与重命名循环使用。本专利技术的有益效果:本专利技术通过重命名机制,指令从IF级发射之后,进入重命名模块,对寄存器进行重命名,重命名之后的指令进入发射级,从寄存器中取出对应的操作数或者操作数的Tag,解决了 WAW和WAR的数据冲突问题,应用于流水线芯片设计中,极大地提高了芯片流水线处理效率。【专利附图】【附图说明】图1是寄存器重命名模块结构图;【具体实施方式】下面结合附图对本专利技术作进一步详细说明。如图1所示,整个单线程的重命名模块(Rename)由map table FIFO和两个循环队列组成,两个循环队列为 Free list FIFO 和 Pending target return queue FIFO(PTRQ 队列)。本专利技术,包括以下步骤:(I)从IF级取指令时,先把源操作数寄存器对应的Tag标号从Map Table FIFO中相应的项中返回给指令,检查目的操作数寄存器Tag标号对应的Map Table FIFO中的项条目,将该项中的标号压入PTRQ队列;从Free List FIFO队列中压出一个标号覆盖上述Map Table FIFO中的项条目;把被更换的Map Table FIFO中项条目中的寄存器名返回给指令;在这个过程之中,要注意Free List FIFO和PTRQ FIFO指针的控制。因为重命名是为了消除WAW,WAR的冲突,这就势必要保证相邻的写操作用的不是同一个寄存器,先读后写的操作,用的也不是同一个寄存器,这就需要读不改变寄存器的标号,而写则会改变寄存器的标号。但是真数据相关应保留,如RAW冲突,这就要求写后读的那个寄存器应当是之前写的那个。所以,每次只有指令的目的寄存器标号对应的Map Table FIFO项中的标号改变,且是应当先压入新的标号,然后再把新的标号返回给指令。(2)指令执行完后更新寄存器,重命名模块(Rename)得到写回级(WB)中相关标志位已经置位后,标号从PTRQ FIFO中压出,进入Freelist FIFO,重新参与重命名循环使用。Map table FIFO 有 16 个项,分别表不 16 个结构寄存器 ARF(ArchitecturalRegister File),每个项对应一个5bit数据,5bit数据用来表示24个寄存器(包括16个结构寄存器+8个重命名寄存器)。Free list FIFO包含空闲的寄存器标号,这些标号所指示的寄存器可以进行重命名;程序初始的时候,由于没有发生过重命名,map table FIFO中的16个项分别对应24个寄存器中的0-15号寄存器,而Free list FIFO中对应16-23号寄存器。Pending target return queue FIFO包含的是已经用作重命名但是又需要再次被重命名的寄存器,比如:Rl — R2+R3Rl — R4+R5该程序段中,I指令进入重命名模块的时候分配完Rl后,即使用另一个重命名寄存器R16,2指令进入重命名模块的时候再次分配R17作为重命名寄存器,则在pendingtarget return queue队列当中保存的就是R16,而在Rl对应的map table FIFO中保存的是R17,解决了 WAW的数据冲突问题,WAR的数据冲突也可以用本专利技术专利技术来解决,本专利技术应用于流水线芯片设计中,可以提高芯片流水线处理效率。【权利要求】1.,其特征在于,包括以下步骤: (1)从IF级取指令时,先把源操作数寄存器对应的Tag标号从MapTable FIFO中相应的项中返回给指令,检查目的操作数寄存器Tag标号对应的Map Table FIFO中的项条目,将该项中的标号压入PTRQ队列; 从Free ListFIFO队列中压出一个标号覆盖上述Map Table FIFO中的项条目; 把被更换的Map Table FIFO中项条目中的寄存器名返回给指令; (2)指令执行完后更新寄存器,重命名模块得到写回级中相关标志位已经置位后,标号从PTRQ FIFO中压出,进入Free list FIFO,重新参与重命名循环使用。【文档编号】G06F9/38GK104035749SQ201410226058【公开日】2014年9月10日 申请日期:2014年5月26日 优先权日:2014年5月26日 【专利技术者】沈海斌, 张伟林 申请人:浙江大学本文档来自技高网...

【技术保护点】
一种加快芯片流水线处理的方法,其特征在于,包括以下步骤:(1)从IF级取指令时,先把源操作数寄存器对应的Tag标号从Map Table FIFO中相应的项中返回给指令,检查目的操作数寄存器Tag标号对应的Map Table FIFO中的项条目,将该项中的标号压入PTRQ队列;从Free List FIFO队列中压出一个标号覆盖上述Map Table FIFO中的项条目;把被更换的Map Table FIFO中项条目中的寄存器名返回给指令;(2)指令执行完后更新寄存器,重命名模块得到写回级中相关标志位已经置位后,标号从PTRQ FIFO中压出,进入Free list FIFO,重新参与重命名循环使用。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈海斌张伟林
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

网友询问留言 已有1条评论
  • 来自[美国] 2014年12月09日 18:43
    流水线pipeline技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术流水线是Intel首次在486芯片中开始使用的流水线的工作方式就象工业生产上的装配流水线在CPU中由56个不同功能的电路单元组成一条指令处理流水线然后将一条X86指令分成56步后再由这些电路单元分别执行这样就能实现在一个CPU时钟周期完成一条指令因此提高CPU的运算速度经典奔腾每条整数流水线都分为四级流水即指令预取译码执行写回结果浮点流水又分为八级流水
    0
1