一种提高store指令执行效率的流水线结构及方法技术

技术编号:10325488 阅读:118 留言:0更新日期:2014-08-14 12:09
本发明专利技术公开了一种提高store指令执行效率的流水线结构及方法,该流水线结构由译码模块、执行模块、访存模块、提交模块及四端口寄存器文件组成,其中各模块通过流水级间寄存器依次相连接,所有的流水级间寄存器有统一的使能信号,使能信号控制流水线的阻塞和推进,其中译码模块可以在单周期内同时请求store指令执行所需的三个操作数,提高了store指令读取操作数的并行性,最终使双周期store指令作为单周期指令执行,将store指令的执行效率提高了一倍。该流水线结构控制简单可靠、适用于标量和超标量处理器的设计,可以显著提高处理器性能。

【技术实现步骤摘要】

本专利技术属于微处理器流水线结构
,涉及一种提高store类指令执行效率的流水线结构及方法。
技术介绍
store指令是指对数据执行写操作的一类指令。基于RISC架构的处理器仅能通过store指令将数据输出到存储器,即通过store指令将指令指定的数据写入到指令指定的存储器单元,其执行主要分为两个阶段:一、计算存储器单元地址;二、取出执行写操作的操作数,并将其写入到第一步计算得出的存储器单元中。ARM、PowerPC, SPARC等典型的RISC架构均支持store指令的寄存器寻址,即计算存储器地址的两个操作数和被写的操作数均保存在寄存器文件内。据文献“UT699Micro-Processor Functional Manual ”、“Rad_Hard32bit SPARCVSPr0cess0r: AT697E”及“龙芯2号处理器设计和性能分析”可知,在标量和超标量处理器中仅为访存操作(load/store)流水线分配两读一写三个寄存器文件端口,这种机制导致store类指令执行所需的三个操作数无法在一个时钟周期内完成,因此,store (写单字)指令都被作为双周期指令处理,即store指令的执行时间开销相当于两条单周期指令。具体如图1所示,流水级的上标表示第几条指令,下标表示该流水级的第几个周期,无下标的则代表单周期指令,图1的时空图给出了 store单字指令在一个七级流水线处理器中的执行情况,一条双周期的store指令被当作两条单周期指令来处理,其中e级的00周期用于计算访存地址,01周期用于取出待存储的字。上述文献中store类指令的多周期实现方式使store类指令的执行兼容其它的单周期指令,保证其它流水线结构的完整复用性;但其控制复杂,需要设计状态机严格控制其执行状态,并且会处理器的指令并行度,严重影响处理器性能。
技术实现思路
本专利技术解决的问题在于提供,通过对指令译码逻辑和寄存器文件的优化,提高store指令读取操作数的并行性,将store指令作为单周期指令执行,使其执行效率提高了 一倍。本专利技术是通过以下技术方案来实现:—种提高store指令执行效率的流水线结构,包括通过流水级间寄存器依次相连接的译码模块、执行模块、访存模块和提交模块,提交模块、译码模块还分别与四端口寄存器文件相连接,提交模块向四端口寄存器文件写入操作数,译码模块向四端口寄存器文件同时请求store指令所需的三个操作数;所述的译码模块与四端口寄存器文件之间设有三套请求/返回操作数的数据线,每套请求/返回操作数的数据线进行一个操作数的传输;译码模块中还设有三套相同的相关判断逻辑,分别对三个操作数进行相关性判断;所述的四端口寄存器文件包括一个与提交模块相连接的写端口和与译码模块相连接的三个读端口,写端口中的写地址、写使能分别与写地址译码模块相连接,写端口中的写数据与寄存器阵列相连接;寄存器阵列与数据选择模块相连接,数据选择模块还通过读地址译码模块分别与三个读端口相连接,数据选择模块根据读端口发出的读控制信号读取寄存器阵列中的操作数。所有的流水级间寄存器设有统一的使能信号,使能信号控制流水线的阻塞和推进;st0re类指令在进入该流水线结构后经过四级执行完毕。所述的译码模块分别接收来自提交模块、访存模块和执行模块的执行信息,执行信息包括各模块中的指令执行状态及执行结果;译码模块收到执行信息后利用相关判断逻辑进行计算地址所需的两个操作数与待写操作数是否相关的判断;若相关则通过旁路进行执行结果的传输,若不相关则同时向四端口寄存器文件请求数据,四端口寄存器文件将所请求的操作数通过寄存器文件读数据总线单向传递给译码模块。所述的四端口寄存器文件中,当提交模块发出的写控制信号中的写使能有效时,写地址译码模块产生与写地址对应的寄存器的写使能,写地址译码模块将产生的写实能连接至寄存器阵列中对应的寄存器,进行写操作,将写控制信号中的32位写数据写入寄存器阵列;当译码模块发出的读控制信号的读使能有效时,读地址译码模块产生与读地址对应的寄存器的读使能,连接至数据选择模块,数据选择模块选择对应的数据驱动32位读数据总线,将操作数发送给译码模块。一种提高store指令执行效率的流水线控制方法,包括以下操作:Stepl:将来自指令分发单元或取指模块的指令送入译码模块进行译码;Step2:译码模块对指令类型进行甄别,如果当前指令为store类指令,译码模块根据其接收来自提交模块、访存模块和执行模块的执行信息,利用相关判断逻辑进行计算地址所需的两个操作数与待写操作数是否相关的判断;若相关则通过旁路进行执行结果的传输,若不相关则根据store类指令的编码格式,同时向四端口寄存器文件请求三个操作数,其中两个操作数用于计算写地址,一个操作数为待写的数据;四端口寄存器文件则将提交模块写入的与store类指令相对应的操作数通过寄存器文件读数据总线返回给译码模块,译码模块将获取的操作数通过流水级间寄存器传递给执行模块;如果当前指令为非store类指令,则保持原有译码逻辑不变;Step3:执行模块根据用于计算写地址的操作数计算访存操作的地址,并将访存操作的地址和待写的数据继续通过流水级间寄存器向访存模块传递;Step4:访存模块首先检查访存操作的地址是否对齐,如果地址对齐,则发起写存储器的操作;如果地址不对齐则放弃访存,置异常标志位有效并通过流水级间寄存器向提交模块传递;St印5:提交模块检查异常标志位,若收到异常标志位有效,则进行异常处理;或者提交模块将异常信息提交到重排序单元进行相关的异常处理;否则不进行任何操作。所述若store指令所需要的三个操作数的读地址与所接收的执行信息所包含的写地址一致时,则为相关,通过旁路将所标注的执行结果分别传递给信号rsl、rs2和rd ;否则为不相关,则通过寄存器文件读控制信号向四端口寄存器文件请求数据,四端口寄存器文件的输出通过寄存器文件读数据总线单向传递给译码模块。所述当提交模块发出的写控制信号中的写使能有效时,写地址译码模块产生与写地址对应的寄存器的写使能,写地址译码模块将产生的写实能连接至寄存器阵列中对应的寄存器,进行写操作,将写控制信号中的32位写数据写入寄存器阵列;当读控制信号的读使能有效时,读地址译码模块产生与读地址对应的寄存器的读使能,连接至数据选择模块,数据选择模块选择对应的数据驱动32位读数据总线,将操作数发送给译码模块。与现有技术相比,本专利技术具有以下有益的技术效果:(I)本专利技术提出的一种提高store指令执行效率的流水线结构,可单周期完成公知的双周期store指令,提高了处理器的性能;适用于标量和超标量的store指令的执行优化。(2)本专利技术提出的流水线结构适用于单发射和超标量处理器的访存流水线设计,为自主可控高性能处理器的开发提供了一种设计参考;(3)本专利技术采用寄存器阵列构建三读一写的四端口寄存器文件,方法简单,易于实现,并且支持EDA工具自动插入门控时钟,可降低功耗;(4)译码模块中额外使用的相关判断电路,可以复用原有的相关判断电路,无设计风险,即通过极小的代价即可换取处理器性能的提升。本专利技术提出的store流水线结构,保持load指令原有的执行逻辑不变,优化了store指令的执行过程。本文档来自技高网
...

【技术保护点】
一种提高store指令执行效率的流水线结构,其特征在于,包括通过流水级间寄存器依次相连接的译码模块、执行模块、访存模块和提交模块,提交模块、译码模块还分别与四端口寄存器文件相连接,提交模块向四端口寄存器文件写入操作数,译码模块向四端口寄存器文件同时请求store指令所需的三个操作数;所述的译码模块与四端口寄存器文件之间设有三套请求/返回操作数的数据线,每套请求/返回操作数的数据线进行一个操作数的传输;译码模块中还设有三套相同的相关判断逻辑,分别对三个操作数进行相关性判断;所述的四端口寄存器文件包括一个与提交模块相连接的写端口和与译码模块相连接的三个读端口,写端口中的写地址、写使能分别与写地址译码模块相连接,写端口中的写数据与寄存器阵列相连接;寄存器阵列与数据选择模块相连接,数据选择模块还通过读地址译码模块分别与三个读端口相连接,数据选择模块根据读端口发出的读控制信号读取寄存器阵列中的操作数。

【技术特征摘要】
1.一种提高Store指令执行效率的流水线结构,其特征在于,包括通过流水级间寄存器依次相连接的译码模块、执行模块、访存模块和提交模块,提交模块、译码模块还分别与四端口寄存器文件相连接,提交模块向四端口寄存器文件写入操作数,译码模块向四端口寄存器文件同时请求store指令所需的三个操作数; 所述的译码模块与四端口寄存器文件之间设有三套请求/返回操作数的数据线,每套请求/返回操作数的数据线进行一个操作数的传输;译码模块中还设有三套相同的相关判断逻辑,分别对三个操作数进行相关性判断; 所述的四端口寄存器文件包括一个与提交模块相连接的写端口和与译码模块相连接的三个读端口,写端口中的写地址、写使能分别与写地址译码模块相连接,写端口中的写数据与寄存器阵列相连接;寄存器阵列与数据选择模块相连接,数据选择模块还通过读地址译码模块分别与三个读端口相连接,数据选择模块根据读端口发出的读控制信号读取寄存器阵列中的操作数。2.如权利要求1所述的提高store指令执行效率的流水线结构,其特征在于,所有的流水级间寄存器设有统一的使能信号,使能信号控制流水线的阻塞和推进;st0re类指令在进入该流水线结构后经过四级执行完毕。3.如权利要求1所述的提高store指令执行效率的流水线结构,其特征在于,所述的译码模块分别接收来自提交模块、访存模块和执行模块的执行信息,执行信息包括各模块中的指令执行状态及执行结果;译码模块收到执行信息后利用相关判断逻辑进行计算地址所需的两个操作数与待写操作数是否相关的判断;若相关则通过旁路进行执行结果的传输,若不相关则同时向四端口寄存器文件请求所需的三个操作数,四端口寄存器文件将所请求的操作数通过寄存器文件读数据总线单向传递给译码模块。4.如权利要求1所述的提高store指令执行效率的流水线结构,其特征在于,所述的四端口寄存器文件中,当提交模块发出的写控制信号中的写使能有效时,写地址译码模块产生与写地址对应的寄存器的写使能,写地址译码模块将产生的写实能连接至寄存器阵列中对应的寄存器,进行写操作,将写控制信号中的32位写数据写入寄存器阵列; 当译码模块发出的读控制信号的读使能有效时,读地址译码模块产生与读地址对应的寄存器的读使能,连接至数据选择模块,数据选择模块选择对应的数据驱动32位读数据总线,将操作数发送给译码模块。5.一种提高store指令执行效率的流水线控...

【专利技术属性】
技术研发人员:陈庆宇吴龙胜
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:发明
国别省市:陕西;61

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

1