一种实现寄存器文件间的数据传输方法及装置的制作方法

文档序号:6357676阅读:235来源:国知局
专利名称:一种实现寄存器文件间的数据传输方法及装置的制作方法
技术领域
本发明涉及数据传输技术,尤指一种实现寄存器文件间的数据传输方法及装置。
背景技术
处理器多是采用流水线架构。在流水线中,每一阶都有一些固定的操作,比如,从某寄存器文件读取数据,进行运算,再将运算结果写回寄存器文件等。处理器中也会有多个寄存器文件。现有的集成电路(IC)设计中,寄存器文件之间的数据传递通常是通过数据总线来实现的。数据从源寄存器文件中读出,经过相关控制逻辑,通过数据总线被写入到目的寄存器文件中,例如,某个处理器需要把数据在流水线的第i阶从寄存器文件A读出,并经过
j阶的流水线延时,在流水线的第(i+j)阶写回寄存器文件B。在数据的传输过程中,通过数据总线的方式需要增加寄存器暂存数据和控制信号,这样增加了资源的消耗。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现寄存器文件间的数据传输方法及装置,能够减小逻辑延消耗,提高资源利用率。为达到上述目的,本发明的技术方案是这样实现的—种实现寄存器文件间的数据传输方法,包括在指令流水线的第i阶读取源寄存器文件中的数据;利用空闲的指令流水线将读取的数据传输至目的寄存器文件。所述在流水线的第i阶读取源寄存器文件中的数据包括 将所述读出的数据写入暂存寄存器X中,预先设置的屏蔽码写入暂存寄存器y中。所述利用空闲的指令流水线将读取的数据传输至目的寄存器文件包括在第(i+1)阶,将所述暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+1)阶;数据沿着空闲的指令流水线逐级流动传入下一阶,直至经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件。所述在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件包括所述{y,x}的X部分作为数据,扩展n份后写至暂存寄存器xj中,所述{y,x}的y部分作为屏蔽码;将至暂存寄存器Xj中对应屏蔽码有效的那一个单位数据写入所述目的寄存器文件。所述源寄存器文件为32特bit ;所述目的寄存器文件为1024bit ;所述n为32 ;所述空闲的指令流水线为64bit指令流水线。一种实现寄存器文件间的数据传输装置,包括源存储单元,目的存储单元,其中,
源存储单元,用于在指令流水线的第i阶读取其中的数据,利用空闲的指令流水线将读取的数据传输至目的存储单元;目的存储单元,用于经过j个时钟周期后,在第(i+j)阶从空闲的指令流水线上读取数据。所述源存储单元为源寄存器文件;所述目的存储单元为目的寄存器文件。所述源存储单元,具体用于在第(i + 1)阶,将所述暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+l)阶;数据沿着空闲的指令流水线逐级流动传入下一阶,直至经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件。所述目的存储单元,具体用于经过j个时钟周期后,将所述{y,x}的X部分作为 数据,扩展n份后写至暂存寄存器xj中,所述{y,x}的y部分作为屏蔽码;将至暂存寄存器Xj中对应屏蔽码有效的那一个单位数据写入所述目的寄存器文件。所述源寄存器文件为32特bit ;所述目的寄存器文件为1024bit ;所述n为32 ;所述空闲的指令流水线为64bit指令流水线。从上述本发明提供的技术方案可以看出,包括在流水线的第i阶读取源寄存器文件中的数据,利用空闲的指令流水线将读取的数据传输至目的寄存器文件。本发明方法利用空闲流水线来传输数据和屏蔽码信息,不增加多余的寄存器来暂存数据和控制信息,这样,减小了逻辑消耗,同时提高了现有功能单元的利用率。本发明方法应用于在处理器的设计中,限于处理器中有多条指令流水线,且数据在指令流水线的第i阶从源寄存器文件中读出后,需要经过j阶的时钟延迟,最后写入目的寄存器文件的情况。


图I为本发明实现寄存器文件间的数据传输方法的流程图;图2为本发明实现寄存器文件间的数据传输方法的实施例的传输示意图;图3为本发明实现寄存器文件间的数据传输装置的流程图。
具体实施例方式图I为本发明实现寄存器文件间的数据传输方法的流程图,如图I所示,包括以下步骤步骤100 :在指令流水线的第i阶读取源寄存器文件中的数据。本步骤具体包括将读出的数据写入暂存寄存器X中,预先设置的屏蔽码写入暂存寄存器y中。关于屏蔽码的使用属于本领域技术人员的惯用技术手段,比如在将16bit的数据写入64bit寄存器中时,可以把数据扩展4份构成64bit数据,然后再使用一个4bit的屏蔽码,即屏蔽码的哪一比特bit为高,则相应的那一段扩展后的数据写入寄存器中,这里不再详细描述。步骤101 :利用空闲的指令流水线将读取的数据传输至目的寄存器文件。本步骤中,在第(i+1)阶,暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+1)阶,然后数据沿着空闲的指令流水线逐级流动传入下一阶,本发明方法中,空闲的指令流水线充当数据总线的功能;经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据其中暂存的X部分作为数据,扩展n份写至暂存寄存器xj中,y部分作为屏蔽码,屏蔽码中哪一比特(bit)位被设置为有效如高电平1,对应于暂存寄存器的那一个单位数据写入指向的目的寄存器文件,相应地,屏蔽码无效bit位对应的数据保持不变。其中,n为目的寄存器文件的大小与源寄存器文件的大小的比值,即倍数,比如源寄存器文件为32bit,目的寄存器文件为1024bit,则n = 32。本发明方法利用空闲流水线来传输数据和屏蔽码信息,不增加多余的寄存器来暂 存数据和控制信息,这样,减小了逻辑消耗,同时提高了现有功能单元的利用率。下面结合实施例对本发明方法进行详细描述。本实施例中,假设有两个寄存器文件,寄存器文件A和寄存器文件B,其中,寄存器文件A中的寄存器对可以存储一个单元的数据,寄存器文件B中的寄存器对可以存储n个单元的数据,本实施例中,假设寄存器文件A为32bit,寄存器文件B为1024bit,则n = 32。系统中存在两条指令流水线,一条为32bit的指令流水线。一条为64bit指令流水线。本实施例中,要求将寄存器文件A中的数据传输到寄存器文件B中,即将寄存器文件A中的数据在流水线的第i阶读出来,再经过j阶的时钟延时,在第(i+j)阶写入寄存器文件B。图2为本发明实现寄存器文件间的数据传输方法的实施例的传输示意图,如图2所示,具体实现包括当数据传输指令有效时,在第i阶将从寄存器文件A中读出的源数据写入暂存寄存器X中,读出的屏蔽码写入暂存寄存器y中;在第i+1阶,暂存寄存器y、暂存寄存器X中的数据拼接成{y,x}后写入空闲的64bit指令流水线中,此时,64bit指令流水线充当数据总线的功能。经过j个时钟周期后,在第(i+j)阶,从64bit指令流水线上取下数据{y,x},其中的X域部分作为数据,扩展n(32倍)份写至暂存寄存器j中。从64bit指令流水线上取下数据{y,x}中的y域部分作为屏蔽码信号,本实施例中,假设暂存寄存器j中对应bit位为高的哪一个单位数据被写入指向的寄存器文件B的寄存器对。如图2所示,这样,实现了数据的屏蔽写入。图3是本发明实现寄存器文件间的数据传输装置的组成示意图,如图3所示,包括源存储单元,目的存储单元,其中,源存储单元,用于在指令流水线的第i阶读取其中的数据,利用空闲的指令流水线将读取的数据传输至目的存储单元。源存储单元为源寄存器文件。目的存储单元,用于经过j个时钟周期后,在第(i+j)阶从空闲的指令流水线上读取数据。目的存储单元为目的寄存器文件。其中,源存储单元具体用于在第(i+1)阶,将所述暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+1)阶;数据沿着空闲的指令流水线逐级流动传入下一阶,直至经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件。目的存储单元具体用于经过j个时钟周期后,将所述{y,x}的X部分作为数据,扩展n份后写至暂存寄存器xj中,所述{y,x}的y部分作为屏蔽码;将至暂存寄存器xj中对应屏蔽码有效的那一个单位数据写入所述目的寄存器文件。当源寄存器文件可以为32bit,目的寄存器文件为1024bit时,n取值为32,空闲的指令流水线为64bit指令流水线。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现寄存器文件间的数据传输方法,其特征在于,包括 在指令流水线的第i阶读取源寄存器文件中的数据; 利用空闲的指令流水线将读取的数据传输至目的寄存器文件。
2.根据权利要求I所述的数据传输方法,其特征在于,所述在流水线的第i阶读取源寄存器文件中的数据包括 将所述读出的数据写入暂存寄存器X中,预先设置的屏蔽码写入暂存寄存器y中。
3.根据权利要求2所述的数据传输方法,其特征在于,所述利用空闲的指令流水线将读取的数据传输至目的寄存器文件包括 在第(i+1)阶,将所述暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+1)阶; 数据沿着空闲的指令流水线逐级流动传入下一阶,直至经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件。
4.根据权利要求3所述的数据传输方法,其特征在于,所述在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件包括 所述{y,x}的X部分作为数据,扩展n份后写至暂存寄存器xj中,所述{y,x}的y部分作为屏蔽码; 将至暂存寄存器xj中对应屏蔽码有效的那一个单位数据写入所述目的寄存器文件。
5.根据权利要求I 4任一项所述的数据传输方法,其特征在于,所述源寄存器文件为32特bit ;所述目的寄存器文件为1024bit ;所述n为32 ; 所述空闲的指令流水线为64bit指令流水线。
6.一种实现寄存器文件间的数据传输装置,其特征在于,包括源存储单元,目的存储单元,其中, 源存储单元,用于在指令流水线的第i阶读取其中的数据,利用空闲的指令流水线将读取的数据传输至目的存储单元; 目的存储单元,用于经过j个时钟周期后,在第(i+j)阶从空闲的指令流水线上读取数据。
7.根据权利要求6所述的数据传输装置,其特征在于,所述源存储单元为源寄存器文件;所述目的存储单元为目的寄存器文件。
8.根据权利要求7所述的数据传输装置,其特征在于,所述源存储单元,具体用于在第(i+1)阶,将所述暂存寄存器y和暂存寄存器X中的数据拼接成{y,x}写入空闲的指令流水线的第(i+1)阶; 数据沿着空闲的指令流水线逐级流动传入下一阶,直至经过j个时钟周期后,在第(i+j)阶从空闲的流水线上取下数据至目的寄存器文件。
9.根据权利要求8所述的数据传输装置,其特征在于,所述目的存储单元,具体用于经过j个时钟周期后,将所述{y,x}的X部分作为数据,扩展n份后写至暂存寄存器xj中,所述{y,x}的y部分作为屏蔽码; 将至暂存寄存器xj中对应屏蔽码有效的那一个单位数据写入所述目的寄存器文件。
10.根据权利要求7 9任一项所述的数据传输方法,其特征在于,所述源寄存器文件为32特bit ;所述目的寄存器文件为1024bit ;所述n为32 ;所述空闲的指令流水线为64bit指令流水线 。
全文摘要
本发明公开了一种实现寄存器文件间的数据传输方法及装置,包括在流水线的第i阶读取源寄存器文件中的数据,利用空闲的指令流水线将读取的数据传输至目的寄存器文件。本发明方法利用空闲流水线来传输数据和屏蔽码信息,不增加多余的寄存器来暂存数据和控制信息,这样,减小了逻辑消耗,同时提高了现有功能单元的利用率。
文档编号G06F9/38GK102736895SQ20111008634
公开日2012年10月17日 申请日期2011年4月7日 优先权日2011年4月7日
发明者任晖, 田春雨, 黎立煌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1