寄存器的更新方法与流程-尊龙凯时官方app下载

文档序号:36400011发布日期:2023-12-16 02:20阅读:4来源:国知局

寄存器的更新方法、装置、电子设备及可读存储介质
技术领域
1.本技术涉及寄存器技术领域,具体而言,本技术涉及一种寄存器的更新方法

装置

电子设备及可读存储介质


背景技术:

2.寄存器
(register)
是中央处理机

主存储器和其他数字设备中某些特定用途的存储单元,能够存储二进制数据

3.从物理角度或硬件角度来讲,寄存器的更新通常是整个寄存器被更新,即寄存器的更新是以寄存器中存储的全部二进制数据为单位进行更新,但在实际需求中有的寄存器需要部分更新,例如向量寄存器,然而现有方案依然是通过更新整个寄存器的方式间接实现部分更新整个向量寄存器,该过程需要读取向量寄存器中全部的二进制数据,且需要对全部的二进制数据进行更新

4.向量寄存器属于硬件设备,指令在读取硬件设备原有的全部二进制数据,重写入全部的二进制数据等操作较为耗时,且会占用较大的资源开销



技术实现要素:

5.本技术实施例提供了一种寄存器的更新方法

装置

电子设备

计算机可读存储介质及计算机程序产品,用于解决背景技术中的技术问题

6.根据本技术实施例的第一方面,提供了一种寄存器的更新方法,该方法包括:
7.接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型

待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
8.获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
9.根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
10.将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

11.根据本技术实施例的第二方面,提供了一种寄存器的更新装置,该装置包括:
12.指令接收模块,用于接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型

待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
13.初始掩码生成模块,用于获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始
掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
14.目标掩码获得模块,用于根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
15.写入模块,用于将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

16.根据本技术实施例的第三方面,提供了一种电子设备,该电子设备包括存储器

处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤

17.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤

18.根据本技术实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤

19.本技术实施例提供的技术方案带来的有益效果是:
20.本技术实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

本技术实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本

附图说明
21.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍

22.图1为本技术实施例提供的一种寄存器的更新方法流程示意图;
23.图2为本技术实施例提供的2对寄存器中每对寄存器之间的关系示意图;
24.图3为本技术实施例提供的当第一预设指令为归零断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图;
25.图4为本技术实施例提供的当第一预设指令为合并断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图;
26.图5为本技术实施例提供生成目标掩码以及每个写端口的专用掩码的流程示意图;
27.图6为本技术实施例提供的将执行结果和目标掩码转发至第二预设指令的读取流水线的示意图;
28.图7为本技术实施例提供的一种寄存器的更新装置的结构示意图;
29.图8为本技术实施例提供的一种电子设备的结构示意图

具体实施方式
30.下面结合本技术中的附图描述本技术的实施例

应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制

31.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式

应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征

信息

数据

步骤

操作

元件和
/
或组件,但不排除实现为本技术领域所支持其他特征

信息

数据

步骤

操作

元件

组件和
/
或它们的组合等

应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系

此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接

这里使用的术语“和
/
或”指示该术语所限定的项目中的至少一个,例如“a

/

b”可以实现为“a”,或者实现为“b”,或者实现为“a

b”。
32.为使本技术的目的

技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述

33.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明

需要指出的是,下述实施方式之间可以相互参考

借鉴或结合,对于不同实施方式中相同的术语

相似的特征以及相似的实施步骤等,不再重复描述

34.本技术实施例中提供了一种寄存器的更新方法,如图1所示,该方法包括:
35.步骤
s101
,接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型

待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素

36.本技术实施例所提供的一种寄存器的更新方法可应用于
arm(advanced risc machine)
可伸缩向量扩展
(scalable vector extension

sve)
架构,
arm
架构中的寄存器属于架构寄存器
(architecture register)
,构寄存器包括断言寄存器
(predicate register)、
向量寄存器
(vector register)
以及单精度寄存器
(single-precision register)
等,当然,还包括其他寄存器,本技术实施例在此不再一一举例

任意一种寄存器中存储的数据均为二进制数据集

37.本技术实施例第一预设指令属于
cpu
指令,该第一预设指令可以为断言指令
(predicated instruction)
,也可以为非断言指令,其中,断言指令是指支持断言的指令,用于确定断言指令的活动元素的断言操作数为断言元素,断言元素存在于断言寄存器

不支持断言的指令,或者没有控制断言操作数并且隐式地将所有其他向量和断言元素视为活动元素称为非断言指令

38.本技术实施例第一寄存器为断言寄存器,
arm sve
架构中包括
16
个断言寄存器,第一预设指令包括待读取的第一寄存器的寄存器标识,可基于第一寄存器的寄存器标识,从
16
个断言寄存器中确定待读取的第一寄存器

39.断言寄存器中的元素称为断言元素
(predicate element)
,每个断言元素所占比
特位可以为
1bit、2bit、4bit、8bit
等中的任意一种,每个断言寄存器可以包括若干个元素,每个元素的元素大小
(element size)
是确定的,元素大小即元素所占比特位的数量

40.本技术实施例执行第一预设指令后得到的执行结果待写入于第二寄存器,第一预设指令中还包括第二寄存器的寄存器标识,可基于第二寄存器的寄存器标识确定第二寄存器

第二寄存器可以为向量寄存器,也可以为单精度寄存器,后续以向量寄存器为例进行说明

41.本技术实施例断言寄存器中的断言元素和第二寄存器中的一个第一元素是对应的,一个断言元素所占的比特位最小是
1bit
,最大是
8bit
,一个第一元素
(
例如向量元素
)
所占的比特位最小是
8bit
,最大是
64bit
,第一元素和断言元素所占比特位的大小比为
8:1。
第一元素
(
例如向量元素
)
和断言元素所占的比特位是可变的,当第一元素所占的比特位改变时,断言元素所占的比特位也会随之改变,二者之间所占比特位的大小始终保持
8:1。
42.无论断言元素所占的比特位是多少,使用每个断言元素的最低有效位作为使能位,每个断言元素的最低有效位为该断言元素的最小比特位,断言元素的最低有效位用于指示和该断言元素对应的第一元素为活跃元素
(active element)
还是非活跃元素
(inactive element)
,活跃元素是在操作期间需要进行计算的元素,与之相反,非活跃元素是操作期间不需要进行计算的元素

43.若断言元素的最低有效位为1,则表明该断言元素对应的第一元素是活跃元素;若断言元素的最低有效位为0,则表明该断言元素对应的第一元素是非活跃元素

44.如图2所示,其示例性示出了本技术实施例所提供的2对寄存器中每对寄存器之间的关系示意图,一对寄存器包括一个第一寄存器和一个第二寄存器,其中,第一寄存器为断言寄存器,第二寄存器为向量寄存器

每对寄存器中的向量寄存器都是
256bit
,断言寄存器都是
32bit。
45.第1对寄存器中的向量寄存器的一个向量元素是
64bit
,断言寄存器中一个断言元素是
8bit
,即包括4个断言元素,从低比特位至高比特位的顺序
(
即从右至左的顺序
)
看,该断言寄存器的第一个断言元素
(0bit

7bit)、
第二个断言元素
(8bit

15bit)、
第三个断言元素
(16bit

23bit)
以及第四个断言元素
(24bit

32bit)
的最低有效位是1,说明该第一个断言元素

第二个断言元素

第三个断言元素以及第四个断言元素对应的向量元素都是活跃元素;
46.第2对寄存器中的向量寄存器的一个向量元素是
32bit
,断言寄存器中一个断言元素是
4bit
,即包括8个断言元素,从低比特位至高比特位的顺序
(
即从右至左的顺序
)
看,该断言寄存器的第一个断言元素
(0bit

3bit)、
第三个断言元素
(8bit

11bit)、
第五个断言元素
(16bit

19bit)
以及第七个断言元素
(24bit

27bit)
的最低有效位是1,说明该第一个断言元素

第三个断言元素

第五个断言元素以及第七个断言元素对应的向量元素都是活跃元素;第二个断言元素
(4bit

7bit)、
第四个断言元素
(12bit

15bit)、
第六个断言元素
(20bit

23bit)
以及第八个断言元素
(28bit

31bit)
的最低有效位是0,说明该第二个断言元素

第四个断言元素

第六个断言元素以及第八个断言元素对应的向量元素都是非活跃元素

47.断言寄存器中除了包括各个断言元素外,还包括断言元素的元素大小,元素大小即每个断言元素所占的比特位,元素大小作为一个操作数倍编码至断言寄存器

48.步骤
s102
,获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同

49.前述实施例已经说明,断言元素的最低有效位用于指示该断言元素对应的第一元素的是否为活跃元素,断言元素的元素大小表征断言元素所占比特位的数量,在获得断言元素的元素大小后,可基于该断言元素的元素大小确定并读取各个断言元素,确定各个断言元素的最低有效位,并基于各断言元素的最低有效位生成初始掩码,该初始掩码所占比特位长度和所有断言元素所占比特位长度相同

具体的,在读取所有断言元素后,将各断言元素的各比特位的值更新为该断言元素的最低有效位的值,得到初始掩码

50.步骤
s103
,根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
51.本技术实施例在获得初始掩码后,基于指令类型和初始掩码中的至少一种生成目标掩码,目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素,基于该目标掩码可确定第二寄存器中需要更新的目标第一元素和无需更新的元素

52.具体的,可将该目标掩码和所有第一元素的总的初始使能位进行掩码处理,得到所有第一元素的总的目标使能位,可以从总的目标使能位中确定各个第一元素的目标使能位,将目标使能位为预设值1的第一元素作为目标第一元素

53.步骤
s104
,将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

54.本技术实施例在确定第二寄存器中待根据执行结果更新的目标第一元素后,将执行结果中每个目标第一元素所需的子执行结果写入各个目标第一元素,执行结果中有些子执行结果和第二寄存器中已有的一部分第一元素相同,这一部分第一元素是除目标第一元素之外的其他第一元素,无需更新这一部分其他第一元素,只需向每个目标第一元素写入该目标第一元素对应的子执行结果

55.本技术实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

本技术实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本

56.本技术实施例中提供了一种可能的实现方式,基于各断言元素的最低有效位生成初始掩码,包括:
57.将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码

58.具体而言,在一实施例中,一个断言元素的元素大小为4,断言寄存器中的所有断言元素为:
16'b0010,1000,1100,0001
,很明显,第一个断言元素
0010、
第二个断言元素
1000
以及第三个断言元素
1100
的最低有效位均为0,第四个断言元素
0001
的最低有效位为1,那
么生成的初始掩码为
16'b0000,0000,0000,1111。
59.本技术实施例中提供了一种可能的实现方式,指令类型包括归零断言指令
(zeroing predication)

60.根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
61.确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码

62.本技术实施例指令类型包括断言指令,其中断言指令还包括归零断言指令,其中,归零断言指令用于将第二寄存器中属于非活跃元素的第一元素的各比特位的值更新为0,但这并不意味着活跃元素不需要被更新,活跃元素也需要更新,活动元素按照执行结果中对应的子执行结果被更新,这种情况下,可以确定所有的第一元素都需要更新,可以确定目标掩码的所有比特位均为1,即将初始掩码中所有比特位的值更新为1,获得目标掩码

63.如图3所示,其示例性示出了当第一预设指令为归零断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图,如图3所示,第一寄存器是断言寄存器
p0
,第二寄存器是向量寄存器
z0

z1
是其他向量寄存器,断言寄存器
p0
中存储的数据是
1010
,分别对应四个断言元素,即第一个断言元素

第二个断言元素

第三个断言元素以及第四个断言元素分别是
0、1、0、1
,每个断言元素只有一个比特位,该一个比特位也是每个元素的最低有效位,可以看出第一个断言元素和第三个断言元素是非活跃元素,当第一预设指令为归零断言指令时,基于该断言寄存器可生成的目标掩码是
1111
,基于该目标掩码,向量寄存器中的第一个元素和第三个元素都被更新为
0。
64.本技术实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令
(merging predication)
和非断言指令;
65.根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
66.确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码

67.本技术实施例在断言指令还包括合并断言指令,合并断言指令用于修改第二寄存器中的活动元素,非活动元素的不变,保留其原来的值

68.在第一寄存器中,若断言元素的最低有效位为1,那么说明该断言元素对应的第一元素为活动元素,活跃元素是需要被更新的元素,最低有效位为0的断言元素对应的第一元素为非活跃元素,非活跃元素不需要被更新,这种情况下,可直接将初始掩码作为目标掩码,这是因为初始掩码对应的各个断言元素的各个比特位的值均为最低有效位,这样可以实现第二寄存器中非活动元素保持不变,活动元素被更新

69.具体而言,假设初始掩码为
16'b0000000000001111
,第一寄存器中的每个元素是
4bit
,只有第一个断言元素
(
从右往左数4个
bit)
的最低有效位为1,在断言指令为合并断言指令时,基于该初始掩码生成的目标掩码为
16'b0000000000001111。
70.如图4所示,其示例性示出了当第一预设指令为合并断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图,如图4所示,第一寄存器是断言寄存器
p0
,第二寄存器是向量寄存器
z0

z1
是其他向量寄存器,断言寄存器
p0
中存储的数据是
1010(
左侧是高比特位,右侧是低比特位
)
,分别对应四个断言元素,即第一个断言元素

第二个断言元素

第三个断言元素以及第四个断言元素分别是
0、1、0、1
,每个断言元素只有一个比
特位,该一个比特位也是每个元素的最低有效位,当第一预设指令为合并断言指令时,基于该断言寄存器可生成的目标掩码是
1010(
左侧是高比特位,右侧是低比特位
)
,基于该目标掩码,向量寄存器中的第一个元素和第三个元素都被保持其原值,不会被更新,第二个元素和第四个元素会被更新

71.本技术实施例指令类型还包括非断言指令,前述实施例已经说明,非断言指令是不支持断言的指令,这种情况下,默认第二寄存器中的所有元素都是活动元素,即所有元素都是需要被更新的,这种情况下,初始化掩码的各个比特位的值都为1,可直接将初始掩码作为目标掩码,所有比特位的值为1的目标掩码可实现所有第一元素的更新

72.本技术实施例中提供了一种可能的实现方式,指令类型还包括部分更新指令;
73.根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
74.确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系,获取与部分更新指令存在关联关系的预设掩码;
75.将预设掩码作为目标掩码

76.指令类型还包括部分更新指令,
aarch32
中有一些指令,如
vcvtt
指令和
vcvtb
指令,
vcvtt
指令将执行结果写入目的单精度寄存器
(
第二寄存器的一种
)
的上半部分,保留目的单精度寄存器的下半部分,即目的寄存器的下半部分不会被更新,在这种情况下,可以确定该
vcvtt
指令的目标掩码是一个预设掩码,该预设值的上半部分的各个比特位的值都是1,下半部分的各个比特位的值都是0,比如单精度寄存器通常是
32bit
,单精度寄存器中一个第一元素的元素大小为
8bit
,即该单精度寄存器中包括4个第一元素,这种情况下该
vcvtt
对应的预设掩码可以为
1100
,也可以为
16'b1111111111111100(
关注低位的4个
bit“1100”,高位的
12

bit
可忽略
)

vcvtb
指令将执行结果写入目的单精度寄存器的下半部分,保留目的单精度寄存器的上半部分,这种情况下,该
vcvtb
指令的目标掩码也是一个预设掩码,该预设值的上半部分的各个比特位的值都是0,下半部分的各个比特位的值都是1,
vcvtb
指令对应的预设掩码可以为
0011
,也可以是
16'b1111111111110011(
同样关注低位的4个
bit“0011”,高位的
12

bit
可忽略
)。
77.本技术实施例中提供了一种可能的实现方式,第二寄存器包括至少一个写端口;每个写端口对应至少一个第一元素;
78.将执行结果写入目标第一元素,之前还包括:对于每个断言元素,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码;
79.将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素,包括:
80.对于每个写端口,获取写端口对应的每个第一元素的初始使能位;
81.对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果;
82.对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,则确定该第一元素为目标第一元素,通过写端口将执行结果中目标第一元素对应的子执行结果写入目标第一元素的所有比特位

83.本技术实施例目标掩码也用于生成第二寄存器每个写端口的专用掩码,事实上,第二寄存器中的每个第二元素都有各自对应的元素掩码,对于每个断言元素,可在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素
掩码,比如某目标掩码为
16’1111111100000000
,假设第一元素占4个比特位,即每个断言元素对应的比特位组为4个比特位,那么可以确定第二寄存器中第一个第一元素的元素掩码为
0000
,第二个第一元素的元素掩码为
0000
,第三个第一元素的元素掩码为
1111
,第四个第一元素的元素掩码为
1111。
假设某第二寄存器有两个写端口,第一个写端口对应第一个第一元素和第二个第一元素,那么可以确定该写端口的专用掩码为
00000000
,第二个写端口对应第三个第一元素和第四个第一元素,那么可以确定该写端口的专用掩码为
11111111。
84.对于每个写端口,可获取该写端口对应的每个第一元素的初始使能位;对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果,该第一掩码结果也即该第一元素的目标使能位,对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,即目标使能位符合预设条件,则可以确定该第一元素为目标第一元素,可通过该写接口将执行结果中的子执行结果写入该目标第一元素

85.如图5所示,其示例性示出了生成目标掩码以及每个写端口的专用掩码的流程示意图,基于断言元素的元素大小读取断言寄存器中的所有断言元素,确定各断言元素的最低有效位,将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码;根据指令类型以及初始掩码中的至少一种生成目标掩码,具体的,若确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码;若确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码;若确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系,获取与部分更新指令存在关联关系的预设掩码,将预设掩码作为目标掩码

86.假设有n个写端口,对于每个写端口,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码,将该写端口对应的至少一个第一元素的元素掩码进行拼接,将拼接后的元素掩码作为该写端口的专用掩码,即得到写端口1专用掩码

写端口2专用掩码
......
写端口n专用掩码

87.本技术实施例中提供了一种可能的实现方式,确定执行第一预设指令后获得的执行结果,之后还包括:
88.接收第二预设指令,第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令;第一预设指令和第二预设指令均存在多个流水线;多个流水线包括读取流水线

执行结果获得流水线以及写入流水线;
89.确定第一预设指令的执行结果获得流水线

写入流水线和第二预设指令的读取流水线;
90.在第一预设指令的执行结果获得流水线或第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一者,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果

91.本技术实施例第一预设指令为
cpu
指令,该第一预设指令的指令流水线即为
cpu
指令的指令流水线
(pipeline)

cpu
指令的指令流水线是指一个
cpu
指令从至少一个寄存器读取数据至向至少一个寄存器写入数据的过程,
cpu
指令的指令流水线包括读取流水线

执行
结果获得流水线

写入流水线等,其中,在本技术实施例中,读取流水线为从寄存器中读取元素的流水线,执行结果获得流水线为获得执行结果的流水线,写入流水线为向寄存器写入执行结果的流水线

92.由于目标掩码在指令传输通道随着该目标指令传输而传输,可以存在于读取流水线和写入流水线之间的任意一个流水线,而执行结果可以在执行结果获得流水线获得

93.本技术实施例还包括第二预设指令,该第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令,现有方案中第二预设指令是在执行结果写入第二寄存器后,确定寄存器写入前后发生改变的部分,发生改变的部分即为写入目标第一元素的子执行结果,现有方案是在第二寄存器写入执行结果后,确定各个目的第一元素的子执行结果,从第二寄存器中读取各个目的第一元素的子执行结果,也就是说现有方案中第二预设指令获取各个目的第一元素的子执行结果的前提是第一预设指令的执行结果被写入第二寄存器,这会导致第二预设指令较晚获得写入各个目的第一元素的子执行结果

94.本技术实施例为使得第二预设指令尽早获得各个目的第一元素的子执行结果,在执行结果写入第二寄存器之前,将执行结果以及目标掩码转发至第二预设指令的读取流水线

95.具体的,目标掩码可以通过指令传输管道一直传递至每条指令的最后阶段,最后阶段即为向第二寄存器写入该指令的阶段,可在第一预设指令的执行结果获得流水线将执行结果以及目标掩码转发至第二预设指令的读取流水线,也可以在第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一个流水线,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果,在转发场景中,目标掩码也可以用于指示执行结果中需要转发的子执行结果,需要转发的子执行结果为待写入目标第一元素的子执行结果

96.本技术实施例将执行结果和目标掩码转发至第二预设指令的读取流水线,间接实现在将执行结果写入第二寄存器之前,对执行结果进行部分转发,转发的是各个目标第一元素的子执行结果,避免第二预设指令在执行结果写入第二寄存器之后才可以获得各个目标第一元素的子执行结果,使得第二预设指令可以提前获得各个目标第一元素的子执行结果

97.如图6所示,其示例性示出了在执行结果获得流水线或执行结果获得流水线和写入流水线之间的任意一个流水线,将执行结果和目标掩码转发至第二预设指令的读取流水线的示意图,如图6所示,假设第一预设指令和第二预设指令指令流水线包括
v1、v2、v3、v4
以及
v5
,一共5个流水线,其中,
v1
为读取流水线,在实际应用中,
v2、v3

v4
中的任意一个流水线可以为执行结果获得流水线,不同的指令运算所需要的流水线级数是不一样的,有的指令在
v2
流水线就可以获得执行结果,有的指令可能在
v3

v4
才获得执行结果,
v5
为写入流水线,假设第一预设指令的执行结果获得流水线为
v2
流水线,目标掩码在
v1
阶段可以获得,可以随着指令的传输管道被传递至最后一个流水线
v5
,那么可以在
v2-v5
的任意一个阶段将该第一预设指令的执行结果和目标掩码转发至第二预设指令的读取流水线

98.本技术实施例中提供了一种可能的实现方式,将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素,之前还包括:
99.获取所有第一元素的总的初始使能位;
100.将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;
101.从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值

102.本技术实施例目标掩码是为了指示第二寄存器中待根据执行结果更新的目标第一元素,可通过以下方式确定各目标第一元素,具体的,获取所有第一元素的总的初始使能位
(
所有第一元素的初始使能位拼接获得的一个二进制数据
)
;将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值1,前述实施例已经对此进行介绍,本技术实施例在此不再进行过多赘述

103.本技术实施例提供了一种寄存器的更新装置,如图7所示,该寄存器的更新装置
70
可以包括:
104.指令接收模块
710
,用于接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型

待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
105.初始掩码生成模块
720
,用于获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
106.目标掩码获得模块
730
,用于根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
107.写入模块
740
,用于将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

108.本技术实施例中提供了一种可能的实现方式,初始掩码生成模块具体用于将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码

109.本技术实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令;
110.目标掩码生成模块具体用于确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码

111.本技术实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令和非断言指令;
112.目标掩码生成模块具体还用于确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码

113.本技术实施例中提供了一种可能的实现方式,指令类型还包括部分更新指令;
114.目标掩码生成模块具体还用于确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系;
115.获取与部分更新指令存在关联关系的预设掩码,将预设掩码作为目标掩码

116.本技术实施例中提供了一种可能的实现方式,第二寄存器包括至少一个写端口;
每个写端口对应至少一个第一元素;
117.该装置还包括:
118.元素掩码确定模块,用于对于每个断言元素,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码;
119.写入模块包括:
120.初始使能位获取子模块,用于对于每个写端口,获取写端口对应的每个第一元素的初始使能位;
121.第一掩码结果获得子模块,用于对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果;
122.写入子模块,用于对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,则确定该第一元素为目标第一元素,通过写端口将执行结果中目标第一元素对应的子执行结果写入目标第一元素的所有比特位

123.本技术实施例中提供了一种可能的实现方式,指令接收模块还用于接收第二预设指令,第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令;第一预设指令和第二预设指令均存在多个流水线;多个流水线包括读取流水线

执行结果获得流水线以及写入流水线

124.该装置还包括还包括:
125.转发模块,用于确定第一预设指令的执行结果获得流水线

写入流水线和第二预设指令的读取流水线;在第一预设指令的执行结果获得流水线或第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一个流水线,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果

126.本技术实施例中提供了一种可能的实现方式,该装置还包括:
127.目标第一元素确定模块,用于获取所有第一元素的总的初始使能位;将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值

128.本技术实施例的装置可执行本技术实施例所提供的方法,其实现原理相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述

129.本技术实施例中提供了一种电子设备,包括存储器

处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现寄存器的更新方法的步骤,与相关技术相比可实现:本技术实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目
标第一元素

本技术实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本

130.在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备
8000
包括:处理器
8001
和存储器
8003。
其中,处理器
8001
和存储器
8003
相连,如通过总线
8002
相连

可选地,电子设备
8000
还可以包括收发器
8004
,收发器
8004
可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和
/
或数据的接收等

需要说明的是,实际应用中收发器
8004
不限于一个,该电子设备
8000
的结构并不构成对本技术实施例的限定

131.处理器
8001
可以是
cpu(central processing unit
,中央处理器
)
,通用处理器,
dsp(digital signal processor
,数据信号处理器
)

asic(application specific integrated circuit
,专用集成电路
)

fpga(field programmable gate array
,现场可编程门阵列
)
或者其他可编程逻辑器件

晶体管逻辑器件

硬件部件或者其任意组合

其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路

处理器
8001
也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,
dsp
和微处理器的组合等

132.总线
8002
可包括一通路,在上述组件之间传送信息

总线
8002
可以是
pci(peripheral component interconnect
,外设部件互连标准
)
总线或
eisa(extended industry standard architecture
,扩展工业标准结构
)
总线等

总线
8002
可以分为地址总线

数据总线

控制总线等

为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线

133.存储器
8003
可以是
rom(read only memory
,只读存储器
)
或可存储静态信息和指令的其他类型的静态存储设备,
ram(random access memory
,随机存取存储器
)
或者可存储信息和指令的其他类型的动态存储设备,也可以是
eeprom(electrically erasable programmable read only memory
,电可擦可编程只读存储器
)、cd-rom(compact disc read only memory
,只读光盘
)
或其他光盘存储

光碟存储
(
包括压缩光碟

激光碟

光碟

数字通用光碟

蓝光光碟等
)、
磁盘存储介质

其他磁存储设备

或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定

134.存储器
8003
用于存储执行本技术实施例的计算机程序,并由处理器
8001
来控制执行

处理器
8001
用于执行存储器
8003
中存储的计算机程序,以实现前述方法实施例所示的步骤

135.其中,电子设备包可以包括但不限于诸如移动电话

笔记本电脑

数字广播接收器
、pda(
个人数字助理
)、pad(
平板电脑
)、pmp(
便携式多媒体播放器
)、
车载终端
(
例如车载导航终端
)
等等的移动终端以及诸如数字
tv、
台式计算机等等的固定终端

图8所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制

136.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容

与现有技术相比可实现:本技术实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

本技术实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本

137.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合

计算机可读存储介质例如可以是
——
但不限于
——






电磁

红外线

或半导体的系统

装置或器件,或者任意以上的组合

计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接

便携式计算机磁盘

硬盘

随机访问存储器
(ram)、
只读存储器
(rom)、
可擦式可编程只读存储器
(eprom
或闪存
)、
光纤

便携式紧凑磁盘只读存储器
(cd-rom)、
光存储器件

磁存储器件

或者上述的任意合适的组合

在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统

装置或者器件使用或者与其结合使用

而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码

这种传播的数据信号可以采用多种形式,包括但不限于电磁信号

光信号或上述的任意合适的组合

计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送

传播或者传输用于由指令执行系统

装置或者器件使用或者与其结合使用的程序

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线

光缆
、rf(
射频
)
等等,或者上述的任意合适的组合

138.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容

与现有技术相比可实现:本技术实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素

本技术实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本

139.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等
(
如果存在
)
是用于区别类似的对象,而不必用于描述特定的顺序或先后次序

应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除图示或文字描述以外的顺序实施

140.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序

除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行

此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段

这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行

在执行时刻不同的场景下,这
些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制

141.以上仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴

当前第1页1  
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图