CN117215650A - 寄存器的更新方法、装置、电子设备及可读存储介质 - Google Patents
寄存器的更新方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117215650A CN117215650A CN202311174057.9A CN202311174057A CN117215650A CN 117215650 A CN117215650 A CN 117215650A CN 202311174057 A CN202311174057 A CN 202311174057A CN 117215650 A CN117215650 A CN 117215650A
- Authority
- CN
- China
- Prior art keywords
- target
- instruction
- mask
- register
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 239000013598 vector Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
Abstract
本申请实施例提供了一种寄存器的更新方法、装置、电子设备及可读存储介质,涉及寄存器技术领域。方法包括:获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
Description
技术领域
本申请涉及寄存器技术领域,具体而言,本申请涉及一种寄存器的更新方法、装置、电子设备及可读存储介质
背景技术
寄存器(Register)是中央处理机、主存储器和其他数字设备中某些特定用途的存储单元,能够存储二进制数据。
从物理角度或硬件角度来讲,寄存器的更新通常是整个寄存器被更新,即寄存器的更新是以寄存器中存储的全部二进制数据为单位进行更新,但在实际需求中有的寄存器需要部分更新,例如向量寄存器,然而现有方案依然是通过更新整个寄存器的方式间接实现部分更新整个向量寄存器,该过程需要读取向量寄存器中全部的二进制数据,且需要对全部的二进制数据进行更新。
向量寄存器属于硬件设备,指令在读取硬件设备原有的全部二进制数据,重写入全部的二进制数据等操作较为耗时,且会占用较大的资源开销。
发明内容
本申请实施例提供了一种寄存器的更新方法、装置、电子设备、计算机可读存储介质及计算机程序产品,用于解决背景技术中的技术问题。
根据本申请实施例的第一方面,提供了一种寄存器的更新方法,该方法包括:
接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。
根据本申请实施例的第二方面,提供了一种寄存器的更新装置,该装置包括:
指令接收模块,用于接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
初始掩码生成模块,用于获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
目标掩码获得模块,用于根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
写入模块,用于将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。
根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种寄存器的更新方法流程示意图;
图2为本申请实施例提供的2对寄存器中每对寄存器之间的关系示意图;
图3为本申请实施例提供的当第一预设指令为归零断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图;
图4为本申请实施例提供的当第一预设指令为合并断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图;
图5为本申请实施例提供生成目标掩码以及每个写端口的专用掩码的流程示意图;
图6为本申请实施例提供的将执行结果和目标掩码转发至第二预设指令的读取流水线的示意图;
图7为本申请实施例提供的一种寄存器的更新装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种寄存器的更新方法,如图1所示,该方法包括:
步骤S101,接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素。
本申请实施例所提供的一种寄存器的更新方法可应用于ARM(Advanced RISCMachine)可伸缩向量扩展(Scalable Vector Extension,SVE)架构,ARM架构中的寄存器属于架构寄存器(architecture register),构寄存器包括断言寄存器(predicateregister)、向量寄存器(vector register)以及单精度寄存器(single-precisionregister)等,当然,还包括其他寄存器,本申请实施例在此不再一一举例。任意一种寄存器中存储的数据均为二进制数据集。
本申请实施例第一预设指令属于CPU指令,该第一预设指令可以为断言指令(predicated instruction),也可以为非断言指令,其中,断言指令是指支持断言的指令,用于确定断言指令的活动元素的断言操作数为断言元素,断言元素存在于断言寄存器。不支持断言的指令,或者没有控制断言操作数并且隐式地将所有其他向量和断言元素视为活动元素称为非断言指令。
本申请实施例第一寄存器为断言寄存器,ARM SVE架构中包括16个断言寄存器,第一预设指令包括待读取的第一寄存器的寄存器标识,可基于第一寄存器的寄存器标识,从16个断言寄存器中确定待读取的第一寄存器。
断言寄存器中的元素称为断言元素(predicate element),每个断言元素所占比特位可以为1bit、2bit、4bit、8bit等中的任意一种,每个断言寄存器可以包括若干个元素,每个元素的元素大小(element size)是确定的,元素大小即元素所占比特位的数量。
本申请实施例执行第一预设指令后得到的执行结果待写入于第二寄存器,第一预设指令中还包括第二寄存器的寄存器标识,可基于第二寄存器的寄存器标识确定第二寄存器。第二寄存器可以为向量寄存器,也可以为单精度寄存器,后续以向量寄存器为例进行说明。
本申请实施例断言寄存器中的断言元素和第二寄存器中的一个第一元素是对应的,一个断言元素所占的比特位最小是1bit,最大是8bit,一个第一元素(例如向量元素)所占的比特位最小是8bit,最大是64bit,第一元素和断言元素所占比特位的大小比为8:1。第一元素(例如向量元素)和断言元素所占的比特位是可变的,当第一元素所占的比特位改变时,断言元素所占的比特位也会随之改变,二者之间所占比特位的大小始终保持8:1。
无论断言元素所占的比特位是多少,使用每个断言元素的最低有效位作为使能位,每个断言元素的最低有效位为该断言元素的最小比特位,断言元素的最低有效位用于指示和该断言元素对应的第一元素为活跃元素(active element)还是非活跃元素(inactive element),活跃元素是在操作期间需要进行计算的元素,与之相反,非活跃元素是操作期间不需要进行计算的元素。
若断言元素的最低有效位为1,则表明该断言元素对应的第一元素是活跃元素;若断言元素的最低有效位为0,则表明该断言元素对应的第一元素是非活跃元素。
如图2所示,其示例性示出了本申请实施例所提供的2对寄存器中每对寄存器之间的关系示意图,一对寄存器包括一个第一寄存器和一个第二寄存器,其中,第一寄存器为断言寄存器,第二寄存器为向量寄存器。每对寄存器中的向量寄存器都是256bit,断言寄存器都是32bit。
第1对寄存器中的向量寄存器的一个向量元素是64bit,断言寄存器中一个断言元素是8bit,即包括4个断言元素,从低比特位至高比特位的顺序(即从右至左的顺序)看,该断言寄存器的第一个断言元素(0bit~7bit)、第二个断言元素(8bit~15bit)、第三个断言元素(16bit~23bit)以及第四个断言元素(24bit~32bit)的最低有效位是1,说明该第一个断言元素、第二个断言元素、第三个断言元素以及第四个断言元素对应的向量元素都是活跃元素;
第2对寄存器中的向量寄存器的一个向量元素是32bit,断言寄存器中一个断言元素是4bit,即包括8个断言元素,从低比特位至高比特位的顺序(即从右至左的顺序)看,该断言寄存器的第一个断言元素(0bit~3bit)、第三个断言元素(8bit~11bit)、第五个断言元素(16bit~19bit)以及第七个断言元素(24bit~27bit)的最低有效位是1,说明该第一个断言元素、第三个断言元素、第五个断言元素以及第七个断言元素对应的向量元素都是活跃元素;第二个断言元素(4bit~7bit)、第四个断言元素(12bit~15bit)、第六个断言元素(20bit~23bit)以及第八个断言元素(28bit~31bit)的最低有效位是0,说明该第二个断言元素、第四个断言元素、第六个断言元素以及第八个断言元素对应的向量元素都是非活跃元素。
断言寄存器中除了包括各个断言元素外,还包括断言元素的元素大小,元素大小即每个断言元素所占的比特位,元素大小作为一个操作数倍编码至断言寄存器。
步骤S102,获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同。
前述实施例已经说明,断言元素的最低有效位用于指示该断言元素对应的第一元素的是否为活跃元素,断言元素的元素大小表征断言元素所占比特位的数量,在获得断言元素的元素大小后,可基于该断言元素的元素大小确定并读取各个断言元素,确定各个断言元素的最低有效位,并基于各断言元素的最低有效位生成初始掩码,该初始掩码所占比特位长度和所有断言元素所占比特位长度相同。具体的,在读取所有断言元素后,将各断言元素的各比特位的值更新为该断言元素的最低有效位的值,得到初始掩码。
步骤S103,根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
本申请实施例在获得初始掩码后,基于指令类型和初始掩码中的至少一种生成目标掩码,目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素,基于该目标掩码可确定第二寄存器中需要更新的目标第一元素和无需更新的元素。
具体的,可将该目标掩码和所有第一元素的总的初始使能位进行掩码处理,得到所有第一元素的总的目标使能位,可以从总的目标使能位中确定各个第一元素的目标使能位,将目标使能位为预设值1的第一元素作为目标第一元素。
步骤S104,将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。
本申请实施例在确定第二寄存器中待根据执行结果更新的目标第一元素后,将执行结果中每个目标第一元素所需的子执行结果写入各个目标第一元素,执行结果中有些子执行结果和第二寄存器中已有的一部分第一元素相同,这一部分第一元素是除目标第一元素之外的其他第一元素,无需更新这一部分其他第一元素,只需向每个目标第一元素写入该目标第一元素对应的子执行结果。
本申请实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
本申请实施例中提供了一种可能的实现方式,基于各断言元素的最低有效位生成初始掩码,包括:
将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码。
具体而言,在一实施例中,一个断言元素的元素大小为4,断言寄存器中的所有断言元素为:16'b0010,1000,1100,0001,很明显,第一个断言元素0010、第二个断言元素1000以及第三个断言元素1100的最低有效位均为0,第四个断言元素0001的最低有效位为1,那么生成的初始掩码为16'b0000,0000,0000,1111。
本申请实施例中提供了一种可能的实现方式,指令类型包括归零断言指令(Zeroing predication);
根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码。
本申请实施例指令类型包括断言指令,其中断言指令还包括归零断言指令,其中,归零断言指令用于将第二寄存器中属于非活跃元素的第一元素的各比特位的值更新为0,但这并不意味着活跃元素不需要被更新,活跃元素也需要更新,活动元素按照执行结果中对应的子执行结果被更新,这种情况下,可以确定所有的第一元素都需要更新,可以确定目标掩码的所有比特位均为1,即将初始掩码中所有比特位的值更新为1,获得目标掩码。
如图3所示,其示例性示出了当第一预设指令为归零断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图,如图3所示,第一寄存器是断言寄存器p0,第二寄存器是向量寄存器z0,z1是其他向量寄存器,断言寄存器p0中存储的数据是1010,分别对应四个断言元素,即第一个断言元素、第二个断言元素、第三个断言元素以及第四个断言元素分别是0、1、0、1,每个断言元素只有一个比特位,该一个比特位也是每个元素的最低有效位,可以看出第一个断言元素和第三个断言元素是非活跃元素,当第一预设指令为归零断言指令时,基于该断言寄存器可生成的目标掩码是1111,基于该目标掩码,向量寄存器中的第一个元素和第三个元素都被更新为0。
本申请实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令(Merging predication)和非断言指令;
根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码。
本申请实施例在断言指令还包括合并断言指令,合并断言指令用于修改第二寄存器中的活动元素,非活动元素的不变,保留其原来的值。
在第一寄存器中,若断言元素的最低有效位为1,那么说明该断言元素对应的第一元素为活动元素,活跃元素是需要被更新的元素,最低有效位为0的断言元素对应的第一元素为非活跃元素,非活跃元素不需要被更新,这种情况下,可直接将初始掩码作为目标掩码,这是因为初始掩码对应的各个断言元素的各个比特位的值均为最低有效位,这样可以实现第二寄存器中非活动元素保持不变,活动元素被更新。
具体而言,假设初始掩码为16'b0000000000001111,第一寄存器中的每个元素是4bit,只有第一个断言元素(从右往左数4个bit)的最低有效位为1,在断言指令为合并断言指令时,基于该初始掩码生成的目标掩码为16'b0000000000001111。
如图4所示,其示例性示出了当第一预设指令为合并断言指令时,基于第一寄存器对第二寄存器中的第一元素进行更新的电路示意图,如图4所示,第一寄存器是断言寄存器p0,第二寄存器是向量寄存器z0,z1是其他向量寄存器,断言寄存器p0中存储的数据是1010(左侧是高比特位,右侧是低比特位),分别对应四个断言元素,即第一个断言元素、第二个断言元素、第三个断言元素以及第四个断言元素分别是0、1、0、1,每个断言元素只有一个比特位,该一个比特位也是每个元素的最低有效位,当第一预设指令为合并断言指令时,基于该断言寄存器可生成的目标掩码是1010(左侧是高比特位,右侧是低比特位),基于该目标掩码,向量寄存器中的第一个元素和第三个元素都被保持其原值,不会被更新,第二个元素和第四个元素会被更新。
本申请实施例指令类型还包括非断言指令,前述实施例已经说明,非断言指令是不支持断言的指令,这种情况下,默认第二寄存器中的所有元素都是活动元素,即所有元素都是需要被更新的,这种情况下,初始化掩码的各个比特位的值都为1,可直接将初始掩码作为目标掩码,所有比特位的值为1的目标掩码可实现所有第一元素的更新。
本申请实施例中提供了一种可能的实现方式,指令类型还包括部分更新指令;
根据指令类型以及初始掩码中的至少一种生成目标掩码,包括:
确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系,获取与部分更新指令存在关联关系的预设掩码;
将预设掩码作为目标掩码。
指令类型还包括部分更新指令,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可忽略)。
本申请实施例中提供了一种可能的实现方式,第二寄存器包括至少一个写端口;每个写端口对应至少一个第一元素;
将执行结果写入目标第一元素,之前还包括:对于每个断言元素,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码;
将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素,包括:
对于每个写端口,获取写端口对应的每个第一元素的初始使能位;
对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果;
对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,则确定该第一元素为目标第一元素,通过写端口将执行结果中目标第一元素对应的子执行结果写入目标第一元素的所有比特位。
本申请实施例目标掩码也用于生成第二寄存器每个写端口的专用掩码,事实上,第二寄存器中的每个第二元素都有各自对应的元素掩码,对于每个断言元素,可在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码,比如某目标掩码为16’1111111100000000,假设第一元素占4个比特位,即每个断言元素对应的比特位组为4个比特位,那么可以确定第二寄存器中第一个第一元素的元素掩码为0000,第二个第一元素的元素掩码为0000,第三个第一元素的元素掩码为1111,第四个第一元素的元素掩码为1111。假设某第二寄存器有两个写端口,第一个写端口对应第一个第一元素和第二个第一元素,那么可以确定该写端口的专用掩码为00000000,第二个写端口对应第三个第一元素和第四个第一元素,那么可以确定该写端口的专用掩码为11111111。
对于每个写端口,可获取该写端口对应的每个第一元素的初始使能位;对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果,该第一掩码结果也即该第一元素的目标使能位,对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,即目标使能位符合预设条件,则可以确定该第一元素为目标第一元素,可通过该写接口将执行结果中的子执行结果写入该目标第一元素。
如图5所示,其示例性示出了生成目标掩码以及每个写端口的专用掩码的流程示意图,基于断言元素的元素大小读取断言寄存器中的所有断言元素,确定各断言元素的最低有效位,将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码;根据指令类型以及初始掩码中的至少一种生成目标掩码,具体的,若确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码;若确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码;若确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系,获取与部分更新指令存在关联关系的预设掩码,将预设掩码作为目标掩码。
假设有N个写端口,对于每个写端口,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码,将该写端口对应的至少一个第一元素的元素掩码进行拼接,将拼接后的元素掩码作为该写端口的专用掩码,即得到写端口1专用掩码、写端口2专用掩码......写端口N专用掩码。
本申请实施例中提供了一种可能的实现方式,确定执行第一预设指令后获得的执行结果,之后还包括:
接收第二预设指令,第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令;第一预设指令和第二预设指令均存在多个流水线;多个流水线包括读取流水线、执行结果获得流水线以及写入流水线;
确定第一预设指令的执行结果获得流水线、写入流水线和第二预设指令的读取流水线;
在第一预设指令的执行结果获得流水线或第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一者,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果。
本申请实施例第一预设指令为CPU指令,该第一预设指令的指令流水线即为CPU指令的指令流水线(pipeline),CPU指令的指令流水线是指一个CPU指令从至少一个寄存器读取数据至向至少一个寄存器写入数据的过程,CPU指令的指令流水线包括读取流水线、执行结果获得流水线、写入流水线等,其中,在本申请实施例中,读取流水线为从寄存器中读取元素的流水线,执行结果获得流水线为获得执行结果的流水线,写入流水线为向寄存器写入执行结果的流水线。
由于目标掩码在指令传输通道随着该目标指令传输而传输,可以存在于读取流水线和写入流水线之间的任意一个流水线,而执行结果可以在执行结果获得流水线获得。
本申请实施例还包括第二预设指令,该第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令,现有方案中第二预设指令是在执行结果写入第二寄存器后,确定寄存器写入前后发生改变的部分,发生改变的部分即为写入目标第一元素的子执行结果,现有方案是在第二寄存器写入执行结果后,确定各个目的第一元素的子执行结果,从第二寄存器中读取各个目的第一元素的子执行结果,也就是说现有方案中第二预设指令获取各个目的第一元素的子执行结果的前提是第一预设指令的执行结果被写入第二寄存器,这会导致第二预设指令较晚获得写入各个目的第一元素的子执行结果。
本申请实施例为使得第二预设指令尽早获得各个目的第一元素的子执行结果,在执行结果写入第二寄存器之前,将执行结果以及目标掩码转发至第二预设指令的读取流水线。
具体的,目标掩码可以通过指令传输管道一直传递至每条指令的最后阶段,最后阶段即为向第二寄存器写入该指令的阶段,可在第一预设指令的执行结果获得流水线将执行结果以及目标掩码转发至第二预设指令的读取流水线,也可以在第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一个流水线,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果,在转发场景中,目标掩码也可以用于指示执行结果中需要转发的子执行结果,需要转发的子执行结果为待写入目标第一元素的子执行结果。
本申请实施例将执行结果和目标掩码转发至第二预设指令的读取流水线,间接实现在将执行结果写入第二寄存器之前,对执行结果进行部分转发,转发的是各个目标第一元素的子执行结果,避免第二预设指令在执行结果写入第二寄存器之后才可以获得各个目标第一元素的子执行结果,使得第二预设指令可以提前获得各个目标第一元素的子执行结果。
如图6所示,其示例性示出了在执行结果获得流水线或执行结果获得流水线和写入流水线之间的任意一个流水线,将执行结果和目标掩码转发至第二预设指令的读取流水线的示意图,如图6所示,假设第一预设指令和第二预设指令指令流水线包括V1、V2、V3、V4以及V5,一共5个流水线,其中,V1为读取流水线,在实际应用中,V2、V3和V4中的任意一个流水线可以为执行结果获得流水线,不同的指令运算所需要的流水线级数是不一样的,有的指令在V2流水线就可以获得执行结果,有的指令可能在V3或V4才获得执行结果,V5为写入流水线,假设第一预设指令的执行结果获得流水线为V2流水线,目标掩码在V1阶段可以获得,可以随着指令的传输管道被传递至最后一个流水线V5,那么可以在V2-V5的任意一个阶段将该第一预设指令的执行结果和目标掩码转发至第二预设指令的读取流水线。
本申请实施例中提供了一种可能的实现方式,将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素,之前还包括:
获取所有第一元素的总的初始使能位;
将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;
从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值。
本申请实施例目标掩码是为了指示第二寄存器中待根据执行结果更新的目标第一元素,可通过以下方式确定各目标第一元素,具体的,获取所有第一元素的总的初始使能位(所有第一元素的初始使能位拼接获得的一个二进制数据);将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值1,前述实施例已经对此进行介绍,本申请实施例在此不再进行过多赘述。
本申请实施例提供了一种寄存器的更新装置,如图7所示,该寄存器的更新装置70可以包括:
指令接收模块710,用于接收第一预设指令,确定执行第一预设指令后获得的执行结果;第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入执行结果的第二寄存器的寄存器标识;第一寄存器存储第一预设数量的断言元素;每个断言元素对应第二寄存器中的一个第一元素;
初始掩码生成模块720,用于获取断言元素的元素大小,基于断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;
目标掩码获得模块730,用于根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;
写入模块740,用于将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。
本申请实施例中提供了一种可能的实现方式,初始掩码生成模块具体用于将各断言元素的各个比特位的值更新为断言元素的最低有效位的值,得到初始掩码。
本申请实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令;
目标掩码生成模块具体用于确定第一预设指令的指令类型为归零断言指令,将初始掩码中所有比特位的值更新为1,获得目标掩码。
本申请实施例中提供了一种可能的实现方式,指令类型还包括合并断言指令和非断言指令;
目标掩码生成模块具体还用于确定第一预设指令的指令类型为合并断言指令或非断言指令,将初始掩码作为目标掩码。
本申请实施例中提供了一种可能的实现方式,指令类型还包括部分更新指令;
目标掩码生成模块具体还用于确定第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系;
获取与部分更新指令存在关联关系的预设掩码,将预设掩码作为目标掩码。
本申请实施例中提供了一种可能的实现方式,第二寄存器包括至少一个写端口;每个写端口对应至少一个第一元素;
该装置还包括:
元素掩码确定模块,用于对于每个断言元素,在目标掩码中确定断言元素对应的比特位组,将比特位组的值作为断言元素对应的第一元素的元素掩码;
写入模块包括:
初始使能位获取子模块,用于对于每个写端口,获取写端口对应的每个第一元素的初始使能位;
第一掩码结果获得子模块,用于对于写端口对应的每个第一元素,根据第一元素的元素对第一元素的初始使能位进行掩码处理,得到第一掩码结果;
写入子模块,用于对于写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,则确定该第一元素为目标第一元素,通过写端口将执行结果中目标第一元素对应的子执行结果写入目标第一元素的所有比特位。
本申请实施例中提供了一种可能的实现方式,指令接收模块还用于接收第二预设指令,第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令;第一预设指令和第二预设指令均存在多个流水线;多个流水线包括读取流水线、执行结果获得流水线以及写入流水线。
该装置还包括还包括:
转发模块,用于确定第一预设指令的执行结果获得流水线、写入流水线和第二预设指令的读取流水线;在第一预设指令的执行结果获得流水线或第一预设指令的执行结果获得流水线和第一预设指令的写入流水线之间的任意一个流水线,将执行结果以及目标掩码转发至第二预设指令的读取流水线,以使得第二预设指令在相应的读取流水线基于目标掩码从执行结果中获得写入各目标第一元素的子执行结果。
本申请实施例中提供了一种可能的实现方式,该装置还包括:
目标第一元素确定模块,用于获取所有第一元素的总的初始使能位;将目标掩码和总的初始使能位进行掩码处理,得到第二掩码结果,将第二掩码结果作为所有第一元素的总的目标使能位;掩码处理为逻辑与处理;从总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;目标第一元素的目标使能位为预设值。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现寄存器的更新方法的步骤,与相关技术相比可实现:本申请实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备8000包括:处理器8001和存储器8003。其中,处理器8001和存储器8003相连,如通过总线8002相连。可选地,电子设备8000还可以包括收发器8004,收发器8004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器8004不限于一个,该电子设备8000的结构并不构成对本申请实施例的限定。
处理器8001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器8001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线8002可包括一通路,在上述组件之间传送信息。总线8002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线8002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器8003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器8003用于存储执行本申请实施例的计算机程序,并由处理器8001来控制执行。处理器8001用于执行存储器8003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例在接收第一预设指令后,获取断言元素的元素大小,基于断言元素的大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,初始掩码所占比特位长度和所有断言元素所占比特位长度相同;根据指令类型以及初始掩码中的至少一种生成目标掩码;目标掩码用于指示第二寄存器中待根据执行结果更新的目标第一元素;将执行结果中每个目标第一元素所需的子执行结果写入目标第一元素。本申请实施例实现了第一预设指令无需更新第二寄存器中除了目标第一元素之外的其他元素,减少了执行指令所消耗的时间,提升指令执行效率,降低了产品的设计成本和生产成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (11)
1.一种寄存器的更新方法,其特征在于,包括:
接收第一预设指令,确定执行所述第一预设指令后获得的执行结果;所述第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入所述执行结果的第二寄存器的寄存器标识;所述第一寄存器存储第一预设数量的断言元素;每个断言元素对应所述第二寄存器中的一个第一元素;
获取所述断言元素的元素大小,基于所述断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,所述初始掩码所占比特位长度和所述所有断言元素所占比特位长度相同;
根据所述指令类型以及所述初始掩码中的至少一种生成目标掩码;所述目标掩码用于指示所述第二寄存器中待根据所述执行结果更新的目标第一元素;
将所述执行结果中每个目标第一元素所需的子执行结果写入所述目标第一元素。
2.根据权利要求1所述的方法,其特征在于,所述基于各断言元素的最低有效位生成初始掩码,包括:
将各断言元素的各个比特位的值更新为所述断言元素的最低有效位的值,得到所述初始掩码。
3.根据权利要求1或2所述的方法,其特征在于,所述指令类型包括归零断言指令;
所述根据所述指令类型以及所述初始掩码中的至少一种生成目标掩码,包括:
确定所述第一预设指令的指令类型为所述归零断言指令,将所述初始掩码中所有比特位的值更新为1,获得所述目标掩码。
4.根据权利要求1或2所述的方法,其特征在于,所述指令类型还包括合并断言指令和非断言指令;
所述根据所述指令类型以及所述初始掩码中的至少一种生成目标掩码,包括:
确定所述第一预设指令的指令类型为所述合并断言指令或所述非断言指令,将所述初始掩码作为所述目标掩码。
5.根据权利要求1或2所述的方法,其特征在于,所述指令类型还包括部分更新指令;
所述根据所述指令类型以及所述初始掩码中的至少一种生成目标掩码,包括:
确定所述第一预设指令的指令类型为部分更新指令,基于预先建立的部分更新指令和预设掩码之间的关联关系,获取与所述部分更新指令存在关联关系的预设掩码;
将所述预设掩码作为目标掩码。
6.根据权利要求1所述的方法,其特征在于,所述第二寄存器包括至少一个写端口;每个写端口对应至少一个第一元素;
所述将所述执行结果中每个目标第一元素所需的子执行结果写入所述目标第一元素,之前还包括:对于每个断言元素,在所述目标掩码中确定所述断言元素对应的比特位组,将所述比特位组的值作为所述断言元素对应的第一元素的元素掩码;
所述将所述执行结果中每个目标第一元素所需的子执行结果写入所述目标第一元素,包括:
对于每个写端口,获取所述写端口对应的每个第一元素的初始使能位;
对于所述写端口对应的每个第一元素,根据所述第一元素的元素对所述第一元素的初始使能位进行掩码处理,得到第一掩码结果;
对于所述写端口对应的每个第一元素,若确定第一元素的第一掩码结果符合预设条件,则确定该第一元素为目标第一元素,通过所述写端口将所述执行结果中所述目标第一元素对应的子执行结果写入所述目标第一元素的所有比特位。
7.根据权利要求1所述的方法,其特征在于,所述确定执行所述第一预设指令后获得的执行结果,之后还包括:
接收第二预设指令,所述第二预设指令为基于写入各目标第一元素的子执行结果进行数据处理的指令;所述第一预设指令和所述第二预设指令均存在多个流水线;所述多个流水线包括读取流水线、执行结果获得流水线以及写入流水线;
确定所述第一预设指令的执行结果获得流水线、写入流水线和所述第二预设指令的读取流水线;
在所述第一预设指令的执行结果获得流水线或所述第一预设指令的执行结果获得流水线和所述第一预设指令的写入流水线之间的任意一个流水线,将所述执行结果以及所述目标掩码转发至所述第二预设指令的读取流水线,以使得所述第二预设指令在相应的读取流水线基于所述目标掩码从所述执行结果中获得写入各目标第一元素的子执行结果。
8.根据权利要求1所述的方法,其特征在于,所述将所述执行结果中每个目标第一元素所需的子执行结果写入所述目标第一元素,之前还包括:
获取所有第一元素的总的初始使能位;
将所述目标掩码和所述总的初始使能位进行掩码处理,得到第二掩码结果,将所述第二掩码结果作为所述所有第一元素的总的目标使能位;所述掩码处理为逻辑与处理;
从所述总的目标使能位中确定各个第一元素的目标使能位,基于各个第一元素的目标使能位从各第一元素中确定目标第一元素;所述目标第一元素的目标使能位为预设值。
9.一种寄存器的更新装置,其特征在于,包括:
指令接收模块,用于接收第一预设指令,确定执行所述第一预设指令后获得的执行结果;所述第一预设指令包括指令类型、待读取的第一寄存器的寄存器标识和待写入所述执行结果的第二寄存器的寄存器标识;所述第一寄存器存储第一预设数量的断言元素;每个断言元素对应所述第二寄存器中的一个第一元素;
初始掩码生成模块,用于获取所述断言元素的元素大小,基于所述断言元素的元素大小读取所有断言元素,确定各断言元素的最低有效位,基于各断言元素的最低有效位生成初始掩码,所述初始掩码所占比特位长度和所述所有断言元素所占比特位长度相同;
目标掩码获得模块,用于根据所述指令类型以及所述初始掩码中的至少一种生成目标掩码;所述目标掩码用于指示所述第二寄存器中待根据所述执行结果更新的目标第一元素;
写入模块,用于将所述执行结果中每个目标第一元素所需的子执行结果写入所述目标第一元素。
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174057.9A CN117215650A (zh) | 2023-09-11 | 2023-09-11 | 寄存器的更新方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174057.9A CN117215650A (zh) | 2023-09-11 | 2023-09-11 | 寄存器的更新方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215650A true CN117215650A (zh) | 2023-12-12 |
Family
ID=89050536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311174057.9A Pending CN117215650A (zh) | 2023-09-11 | 2023-09-11 | 寄存器的更新方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215650A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746A (zh) * | 2024-03-28 | 2024-05-03 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
-
2023
- 2023-09-11 CN CN202311174057.9A patent/CN117215650A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746A (zh) * | 2024-03-28 | 2024-05-03 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8880815B2 (en) | Low access time indirect memory accesses | |
US10120663B2 (en) | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture | |
CN107918546B (zh) | 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统 | |
US20110320765A1 (en) | Variable width vector instruction processor | |
US9632781B2 (en) | Vector register addressing and functions based on a scalar register data value | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
CN117215650A (zh) | 寄存器的更新方法、装置、电子设备及可读存储介质 | |
CN107315717B (zh) | 一种用于执行向量四则运算的装置和方法 | |
US9311153B2 (en) | Core affinity bitmask translation | |
EP2273381B1 (en) | Simd parallel computer system, simd parallel computing method, and control program | |
US20210109711A1 (en) | Processor and method for processing mask data | |
CN111158756A (zh) | 用于处理信息的方法和装置 | |
US9606802B2 (en) | Processor system with predicate register, computer system, method for managing predicates and computer program product | |
CN113553292B (zh) | 一种向量处理器及相关数据访存方法 | |
KR102471553B1 (ko) | 컴퓨팅 기기에 의해 수행되는 방법, 장치, 기기 및 컴퓨터 판독가능 저장 매체 | |
US11210091B2 (en) | Method and apparatus for processing data splicing instruction | |
EP3779706A1 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
CN103077069B (zh) | 指令解析的方法及装置 | |
US8572147B2 (en) | Method for implementing a bit-reversed increment in a data processing system | |
US20190026247A1 (en) | Information processing apparatus and information processing method | |
US20090228612A1 (en) | Flexible Bus Interface and Method for Operating the Same | |
US11669489B2 (en) | Sparse systolic array design | |
CN113031914B (zh) | 浮点舍入模式的控制方法、装置、设备及存储介质 | |
CN113162728B (zh) | 极化Polar编码方法、装置、电子设备和存储介质 | |
CN117234597A (zh) | 指令处理方法、流水线处理器装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |