一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质技术

技术编号:24352464 阅读:43 留言:0更新日期:2020-06-03 01:52
本申请公开了一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质,包括:首先获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;接着当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;然后根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。采用本申请实施例,可以降低处理器硬件设计的复杂度、提高寄存器的资源利用率。

A register access timing management method, processor, electronic equipment and computer readable storage medium

【技术实现步骤摘要】
一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质
本申请涉及寄存器资源管理领域,尤其涉及一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质。
技术介绍
目前,在基于流水线技术实现的处理器中,通常是将一条指令拆分为多个阶段来执行以便达到并行执行多条指令的目的,从而提高程序指令的执行效率、实现处理器的最高主频。然而,在并行执行多条指令的情况下,不可避免的将在不同指令之间发生寄存器访问时间的冲突,从而导致指令操作数的读取错误和运行结果错误。比如,指令2在第3个时钟周期需要从通用寄存器R1中读取指令1写回的数据,而指令1在第4个时钟周期才能将指令2所需的数据写回R1中,因此指令2在第3个时钟周期从R1中读取的数据并不是真正需要的数据。又如,指令1和指令2在同一个时钟周期向同一个寄存器写回数据,从而造成访问时间冲突。因此,处理器需要对不同指令对寄存器的访问时序进行管理,避免寄存器访问冲突。现有的基于硬件实现的寄存器访问时序的管理方法的设计难度大、实现成本高。而基于编译器的寄存器访问时序的管理,将导致编译器需要同时兼顾优化编译和消除寄存器访问冲突,从而增加编译器的设计难度、影响处理器的整体性能。
技术实现思路
本申请实施例提供一种寄存器访问时序的管理方法、装置、电子设备及计算机可读存储介质,可以降低处理器硬件设计的复杂度、提高寄存器的资源利用率。本申请实施例第一方面提供了一种寄存器访问时序的管理方法,包括:获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。相应地,本申请实施例第二方面提供了一种处理器,包括:获取模块,用于获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;译码模块,用于当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;;检测模块,用于根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。其中,所述第一访问信息包括在每个时钟周期内执行第一指令所访问的寄存器的第一标识信息;所述第二访问信息包括执行所述第二指令所访问的寄存器的第二标识信息、以及执行所述第二指令访问寄存器的时间信息;所述检测模块还用于:根据所述时间信息,确定所述多个时钟周期中的目标时钟周期,所述目标时钟周期为执行所述第二指令访问寄存器的时钟周期;确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同;当所述第一标识信息与所述第二标识信息相同时,确定所述时序关系为时间冲突。其中,所述第一访问信息还包括多个数据端口中的每个数据端口在所述每个时钟周期内的端口状态信息,所述每个数据端口用于对寄存器进行访问;所述检测模块还用于:根据所述端口状态信息,确定所述每个数据端口在所述目标时钟周期内的使用状态;当所述多个数据端口中的至少一个数据端口在目标时钟周期内处于空闲状态时,执行所述确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同的操作。其中,所述处理器还包括执行模块,用于:当所述时序关系不为所述时间冲突时,根据所述端口状态信息,选择处于所述空闲状态的数据端口对执行所述第二指令所访问的寄存器进行写入。其中,所述第一访问信息包括在所述每个时钟周期内的执行所述第一指令所访问的寄存器的第一标识信息;所述多个时钟周期包括当前时钟周期和所述当前时钟周期之后的至少一个时钟周期,所述当前时钟周期为译码所述第二指令所发生的时钟周期;所述检测模块还用于:根据所述第二访问信息,确定在所述当前时钟周期的下一个时钟周期执行所述第二指令所访问的寄存器的第二标识信息;确定在所述至少一个时钟周期中的每个时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同;当所述第一标识信息与所述第二标识信息相同时,确定所述时序关系为时间冲突。其中,所述第一访问信息还包括多个数据端口中的每个数据端口在所述每个时钟周期内的端口状态信息,所述每个数据端口用于对寄存器进行访问;所述检测模块还用于:根据所述端口状态信息,确定所述每个数据端口在所述至少一个时钟周期中的每个时钟周期内的使用状态;将所述至少一个时钟周期中所述多个数据端口中的至少一个数据端口处于占用状态的时钟周期作为目标时钟周期;确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同。其中,所述获取模块还用于:在所述每个时钟周期结束后,根据所述第二访问信息和所述时序关系更新所述第一访问信息。本申请实施例第三方面公开了一种电子设备,包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本申请实施例第一方面公开的一种寄存器访问时序的管理方法中的操作。相应地,本申请实施例提供了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本申请实施例第一方面公开的一种寄存器访问时序的管理方法。相应地,本申请实施例提供了一种应用程序,其中,所述应用程序用于在运行时执行本申请实施例第一方面公开的一种寄存器访问时序的管理方法。实施本申请实施例,获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。可以将每个时钟周期内执行指令访问寄存器的访问信息和寄存器访问端口的状态信息保存在一个硬件信息表中,从而可以通过简单地维护该硬件信息表来管理寄存器的访问时序,并在指令译码阶段基于该硬件信息表进行冲突检测,若存在冲突,则将指令卡住不发往RF阶段,达到了降低处理器硬件设计的复杂度的目的。此外,还可以通过该硬件信息表及时检测和利用空闲的寄存器资源,从而有效提高寄存器的资源利用率。附图说明为了更清楚地说本文档来自技高网...

【技术保护点】
1.一种寄存器访问时序的管理方法,其特征在于,所述方法包括:/n获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;/n当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;/n根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。/n

【技术特征摘要】
1.一种寄存器访问时序的管理方法,其特征在于,所述方法包括:
获取在多个时钟周期中的每个时钟周期内执行第一指令访问寄存器的第一访问信息,所述第一指令为已确定在所述每个时钟周期到来时开始生效的指令;
当接收到第二指令时,确定执行所述第二指令访问寄存器的第二访问信息;
根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系。


2.如权利要求1所述的方法,其特征在于,所述确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系之后,还包括:
当所述时序关系为时间冲突时,延迟执行所述第二指令。


3.如权利要求1所述的方法,其特征在于,所述第一访问信息包括在每个时钟周期内执行第一指令所访问的寄存器的第一标识信息;所述第二访问信息包括执行所述第二指令所访问的寄存器的第二标识信息、以及执行所述第二指令访问寄存器的时间信息;
所述根据所述第一访问信息和所述第二访问信息,确定执行所述第一指令访问寄存器与执行所述第二指令访问寄存器之间的时序关系包括:
根据所述时间信息,确定所述多个时钟周期中的目标时钟周期,所述目标时钟周期为执行所述第二指令访问寄存器的时钟周期;
确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同;
当所述第一标识信息与所述第二标识信息相同时,确定所述时序关系为时间冲突。


4.如权利要求3所述的方法,其特征在于,所述第一访问信息还包括多个数据端口中的每个数据端口在所述每个时钟周期内的端口状态信息,所述每个数据端口用于对寄存器进行访问;
所述确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同之前,还包括:
根据所述端口状态信息,确定所述每个数据端口在所述目标时钟周期内的使用状态;
当所述多个数据端口中的至少一个数据端口所述目标时钟周期内处于空闲状态时,执行所述确定在所述目标时钟周期内执行所述第一指令所访问的寄存器的第一标识信息与执行所述第二指令所访问的寄存器的第二标识信息是否相同的操作。


5.如权利要求4所述的方法,其特征在于,所述方法还包括:
当所述时序关系不为时间冲突时,根据所述端口状态信息,选择处于所述空闲状态的数据端口对执行所述第二指令所访问的寄存器进行写入。


6.如权利要求1所述的方法,其特征在于,所述第一访问信息包括在所述每个时钟周期内的执行所述第一指令所访问的寄存器的第...

【专利技术属性】
技术研发人员:曹庆新李炜
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东;44

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

1