【技术实现步骤摘要】
指令执行方法、装置、设备及存储介质
[0001]本申请涉及微架构
,具体而言,本申请涉及一种指令执行方法
、
装置
、
设备及存储介质
。
技术介绍
[0002]由
Intel Corporation of Santa Clara
,
California
开发出来的
x86
处理器架构以及由
ARM Ltd.of Cambridge
,
UK
开发出来的高级精简指令集机器
(advanced risc machines
,
ARM)
架构是计算机领域中两种广为人知的处理器架构
。
许多使用
ARM
或
x86
处理器的计算机系统已经出现,并且,基于这两种架构也扩展出更多架构,如基于
ARM
架构延伸出
AArch64、AArch32
等架构
。
这些架构被广泛应用于手机
、
电脑
、
网络路由器与集线器
、
机顶盒等电子设备上,而且,为了适应需求和环境,部分电子设备还会设计为支持多种架构
。
[0003]但是,这些架构使用的寄存器往往存在区别,如
AArch64
架构支持
SVE(Scalable Vector Extension)
寄存器,而
AArch32r/>不支持,这导致支持多个架构的对象需要针对每个架构的寄存器使用相应的读写方式以及数据冒险检测逻辑
、
数据前递逻辑,这提高了产品的设计成本和生产成本
。
技术实现思路
[0004]本申请实施例提供了一种指令执行方法
、
装置
、
设备及存储介质,可以解决需要针对每个寄存器使用不同的读写方式以及数据冒险检测逻辑
、
数据前递逻辑,提升设计成本和生产成本的问题
。
为了实现该目的,本申请实施例提供了如下几个方案
。
[0005]根据本申请实施例的一个方面,提供了一种指令执行方法,该方法包括:
[0006]接收到指令,获取所述指令对应的架构寄存器地址;
[0007]获取所述架构寄存器地址对应的物理寄存器地址;
[0008]根据所述物理寄存器地址
、
所述指令执行操作,所述操作包括寄存器的读写
、
数据冒险检测逻辑
、
数据前递逻辑中的至少一种
。
[0009]在一个可能的实现方式中,所述方法还包括:
[0010]构建物理寄存器库,并获取不同架构下的架构寄存器地址,所述物理寄存器库中的每个物理寄存器地址对应一个寄存器;
[0011]生成物理寄存器库中每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,以基于架构寄存器地址访问物理寄存器地址下的寄存器
。
[0012]在一个可能的实现方式中,所述获取不同架构下的架构寄存器地址,包括:
[0013]获取每个架构下的寄存器的信息,所述信息包括架构寄存器地址以及所述架构寄存器地址对应的位宽;
[0014]根据所述位宽确定所述架构寄存器地址与所述寄存器所存储数据的映射关系
。
[0015]在一个可能的实现方式中,所述生成物理寄存器库中每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,包括:
[0016]获取所述物理寄存器的位宽以及数量;
[0017]根据所述位宽
、
所述数量以及所述架构寄存器地址对应的位宽,确定每个物理寄存器地址与不同架构下架构寄存器地址的对应关系
。
[0018]在一个可能的实现方式中,所述根据所述位宽
、
所述数量以及所述架构寄存器对应的位宽,确定每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,包括:
[0019]针对每个物理寄存器地址,根据当前架构
、
所述架构寄存器地址对应的位宽
、
该物理寄存器地址对应的位宽,确定与该物理寄存器地址对应的所述架构寄存器地址的个数,并根据该个数以及该物理寄存器地址的数量确定该物理寄存器地址与不同架构下的架构寄存器地址的对应关系
。
[0020]在一个可能的实现方式中,所述获取所述架构寄存器地址对应的物理寄存器地址,包括:
[0021]获取所述架构寄存器地址对应的当前架构;
[0022]获取所述架构寄存器地址对应的当前架构;
[0023]根据所述对应关系,解码所述指令,根据解码结果获取当前架构下架构寄存器地址对应的物理寄存器地址
。
[0024]在一个可能的实现方式中,所述根据所述物理寄存器地址
、
所述指令执行操作,包括以下至少一项:
[0025]确定所述物理寄存器地址对应的用于读取数据的寄存器和用于写入数据的寄存器,根据解码后的指令以及所述用于读取数据的寄存器和用于写入数据的寄存器执行寄存器的读写操作;
[0026]确定所述指令对应的用于读取数据的寄存器的物理寄存器地址,将所述物理寄存器地址与第一指令对应的用于写入数据的寄存器的物理寄存器地址进行对比,根据对比结果检测数据冒险,所述第一指令在流水线中比所述指令年老;
[0027]根据所述物理寄存器地址获取与所述指令存在数据依赖关系且当前未将运算结果写入寄存器的第一指令,根据所述第一指令执行数据前递逻辑
。
[0028]本申请提供一种指令执行装置,所述装置,包括:
[0029]架构寄存器地址获取模块,用于接收指令,获取所述指令对应的架构寄存器地址;
[0030]物理寄存器地址获取模块,用于获取所述架构寄存器地址对应的物理寄存器地址;
[0031]操作执行模块,用于根据所述物理寄存器地址
、
所述指令执行操作,所述操作包括寄存器的读写
、
数据冒险检测逻辑
、
数据前递逻辑中的至少一种
。
[0032]本申请提供一种电子设备,包括存储器
、
处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如上所述方法的步骤
。
[0033]根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤
。
[0034]本申请实施例提供的技术方案带来的有益效果是:
[0035]本申请提供的指令执行方法接收到指令后,获取该指令对应的架构寄存器地址,得到架构寄存器地址对应的物理寄存器地址,根据该物理寄存器地址
、
指令访问寄存器
。
本申请实施例本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种指令执行方法,其特征在于,包括:接收到指令,获取所述指令对应的架构寄存器地址;获取所述架构寄存器地址对应的物理寄存器地址;根据所述物理寄存器地址
、
所述指令执行操作,所述操作包括寄存器的读写
、
数据冒险检测逻辑
、
数据前递逻辑中的至少一种
。2.
根据权利要求1所述的方法,其特征在于,所述方法还包括:构建物理寄存器库,并获取不同架构下的架构寄存器地址,所述物理寄存器库中的每个物理寄存器地址对应一个寄存器;生成物理寄存器库中每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,以基于架构寄存器地址访问物理寄存器地址下的寄存器
。3.
根据权利要求2所述的方法,其特征在于,所述获取不同架构下的架构寄存器地址,包括:获取每个架构下的寄存器的信息,所述信息包括架构寄存器地址以及所述架构寄存器地址对应的位宽;根据所述位宽确定所述架构寄存器地址与所述寄存器所存储数据的映射关系
。4.
根据权利要求3所述的方法,其特征在于,所述生成物理寄存器库中每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,包括:获取所述物理寄存器的位宽以及数量;根据所述位宽
、
所述数量以及所述架构寄存器地址对应的位宽,确定每个物理寄存器地址与不同架构下架构寄存器地址的对应关系
。5.
根据权利要求4所述的方法,其特征在于,所述根据所述位宽
、
所述数量以及所述架构寄存器对应的位宽,确定每个物理寄存器地址与不同架构下架构寄存器地址的对应关系,包括:针对每个物理寄存器地址,根据当前架构
、
所述架构寄存器地址对应的位宽
、
该物理寄存器地址对应的位宽,确定与该物理寄存器地址对应的所述架构寄存器地址的个数,并根据该个数以及该物理寄存器地址的数量确定该物理寄存器地址与不同架构下的架构寄存器地...
【专利技术属性】
技术研发人员:包恒,
申请(专利权)人:安谋科技中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。