CN113254073A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN113254073A CN113254073A CN202110605701.8A CN202110605701A CN113254073A CN 113254073 A CN113254073 A CN 113254073A CN 202110605701 A CN202110605701 A CN 202110605701A CN 113254073 A CN113254073 A CN 113254073A
- Authority
- CN
- China
- Prior art keywords
- address
- bit
- register
- destination address
- data
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000015654 memory Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 108700012361 REG2 Proteins 0.000 description 4
- 101150108637 REG2 gene Proteins 0.000 description 4
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 4
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 4
- 101150055297 SET1 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101001096074 Homo sapiens Regenerating islet-derived protein 4 Proteins 0.000 description 1
- 108091058543 REG3 Proteins 0.000 description 1
- 102100027336 Regenerating islet-derived protein 3-alpha Human genes 0.000 description 1
- 102100037889 Regenerating islet-derived protein 4 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请实施例公开了一种数据处理方法及装置,该方法包括:获取数据操作指令,该数据操作指令包括目的地址、操作位和操作方式,该目的地址为目标寄存器的地址,该操作位为目标寄存器中进行操作的比特位;根据目的地址和操作方式确定操作地址、根据操作位生成目标数据;将目标数据写入操作地址。本申请通过将目标数据写入操作地址中来实现对目标寄存器中比特位的操作,可以通过一步操作,完成对寄存器值的改变,而不需要对寄存器进行读、改、写的三步操作,既保证了寄存器操作的原子性,又提高了寄存器操作的效率。
Description
技术领域
本申请涉及寄存器技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着半导体即操作系统技术的飞速发展,多个模块、多个子系统、多个线程甚至是多个操作系统访问同一寄存器的情况越来越多。一般情况下,修改一个寄存器需要经过读、改、写三个步骤才能完成,计算机系统很难保证对这类寄存器操作的原子性(原子性:指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行),因此这样的寄存器操作方式,会影响操作效率(三个步骤才能完成对寄存器值的修改),没法保证寄存器操作的原子性,同时若该操作被打断的话、可能给计算机系统造成一些不预期的影响。例如,当有两个主体(比如两个CPU、两个子系统、两个线程等)需要同时对同一个寄存器进行写操作时,若第二个主体的读步骤发生在第一个主体的写步骤完成之前及读步骤之后,那么第一个主体的执行结果会被第二个主体的执行结果覆盖,从而导致数据错乱等问题。因此,如何在对同一寄存器同时进行操作时实现寄存器操作的原子性正亟待解决。
发明内容
本申请实施例提供了一种数据处理方法及装置,既保证了寄存器操作的原子性,又提高了寄存器操作的效率。
第一方面,本申请实施例提供一种数据处理方法,所述方法包括:
获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位;
根据所述目的地址和所述操作方式确定操作地址;
根据所述操作位生成目标数据;
将所述目标数据写入所述操作地址。
第二方面,本申请实施例提供一种数据处理装置,所述装置包括:
获取单元,用于获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位;
确定单元,用于根据所述目的地址和所述操作方式确定操作地址;
生成单元,用于根据所述操作位生成目标数据;
写入单元,用于将所述目标数据写入所述操作地址。
第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述存储器包括寄存器,所述处理器执行一个或多个程序时将其对应的数据读入所述寄存器中进行运算,所述程序包括用于执行上述第一方面所述的方法中所描述的部分或全部步骤的指令。
第四方面,本申请实施例提供一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机程序;所述存储器包括寄存器,所述处理器计算机程序时将其对应的数据读入所述寄存器中进行运算,所述计算机程序被所述处理器执行时实现上式第一方面所述的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行上述第一方面所述的方法中所描述的部分或全部步骤。
第六方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请提供的技术方案,首先获取数据操作指令,该数据操作指令包括目的地址、操作位和操作方式,该目的地址为目标寄存器的地址,该操作位为目标寄存器中进行操作的比特位;然后根据目的地址和操作方式确定操作地址、根据操作位生成目标数据;最后将目标数据写入操作地址。本申请通过将目标数据写入操作地址中来实现对目标寄存器中比特位的操作,可以通过一步操作,完成对寄存器值的改变,而不需要对寄存器进行读、改、写的三步操作,既保证了寄存器操作的原子性,又提高了寄存器操作的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种寄存器读写示意图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3是本申请实施例提供的一种数据处理装置的功能单元组成框图;
图4是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
其中,寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存在参与运算的数据和运算结果。寄存器的特点是按位进行规划和使用,而寄存器的读写是整体一起进行的,因此当CPU需要改变寄存器中某些特定位时需要经过读、改、写三个步骤才能完成,即首先读取出寄存器整体原来的值,然后在原来值的基础上修改某些特定位的值,最后将修改后的值整体写入寄存器中。例如,对于一个32位的寄存器,当需要对bit 0-bit 2进行修改时,需要将该寄存器存储的32bit的值读取出来,然后修改这32bit中bit 0-bit 2的值,最后将修改后的32bit的值写入到该寄存器中,这样完成对bit 0-bit 2的修改。但是当两个子系统对同时对寄存器进行修改时,由于不同的子系统在不同的条件下执行速度、执行顺序存在差异,因此两个子系统在不同条件下的执行结果还可能存在差异。例如,如图1所示,子系统1对寄存器A的bit1执行置1操作、子系统2对寄存器A的bit0执行置1操作均,当子系统2中的读步骤发生在子系统1的写步骤之前时,子系统1的执行结果将被子系统2的执行结果覆盖,得到的最终结果是寄存器A的bit0执行了置1操作。这种情况下会造成数据错乱,严重的会导致系统崩溃、死机等。
为了解决上述问题,本申请提出了一种数据处理方法,引入了置1清零机制,将对寄存器的置1操作映射到置1地址进行操作、对寄存器的清零操作映射到清零地址进行操作,这样当多个操作需要同时修改同一寄存器时,只需要在对应的地址执行操作方式,可以通过一步操作,完成对寄存器值的改变,而不需要对寄存器进行读、改、写的三步操作,从而既保证了寄存器操作的原子性,又提高了寄存器操作的效率。
下面结合具体实施例,对本申请进行详细说明。
请参阅图2,图2为本申请实施例提供的一种数据处理方法流程示意图。如图2所示,该方法包括如下步骤。
S210、获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位。
具体实施中,程序由至少包含一个指令的指令集以及数据组成,其存储于存储器中。处理器在运行时可以从存储器中调用指令,然后按照指令的执行顺序对存储器的数据进行运算。其中寄存器可以用来暂时存放参与运算的数据和运算结果。其中,指令集中的指令可以是二进制指令或以高级语言编写的指令等等,此处不做具体限定。
其中,该数据操作指令可以是存储器中存储的任一条指令,用于对缓冲到寄存器中的数据进行处理。本实施例并不限定数据操作指令的具体生成方式,例如,可以由用户输入数据操作指令;或者可以由其他计算机设备发送的数据操作指令;或者可以由该计算机设备在程序运行时自主产生的数据操作指令。
进一步地,该目的地址为处理器执行操作的目标寄存器的地址。示例性地,该目的地址可以是具体的地址,例如,0x402a0000、0x40260000等;该目的地址也可以是寄存器名称,例如,REG2、REG3、REG4等,处理器根据寄存器名称可以得知该寄存器的地址,本申请实施例对比不做限定。该操作位为修改该目标寄存器中的特定位,操作位的取值范围取决于目标寄存器的有效比特数,对于8位的寄存器,操作位的取值为0~7或D0~D7;对于32位的寄存器,操作位的取值为0~31或D0~D31。例如,对于汇编语言的位清零指令BCF REG2,2;其目的地址为REG2寄存器的地址,操作位为REG2寄存器的D2位。
S220、根据所述目的地址和所述操作方式确定操作地址。
其中,操作地址用于表示执行操作方式的具体位置。处理器可以将对目的地址的不同操作映射到不同的操作地址进行处理,使得多个操作处理后的结果互不干扰,进而实现多个模块、多个子系统、多个线程或者多个操作系统同时修改同一寄存器。
示例性地,该操作地址可以是空闲寄存器中任意一个或多个空闲寄存器的地址,也可以是预设的地址,本申请实施例对此不做限定。
可选的,所述操作方式包括置1操作和清零操作。
其中,寄存器中的位操作包括置1(置1)、清除(清零)和取反。置1是将寄存器中的某些位设为1;清除是将寄存器中的某些位设为0;取反是将寄存器中的某些位设为与原设定值相反的值,即原设定值为1时,取反就是将其设置0,原设定值为0时,取反就是将其设置1。因此取反也可以通过置1或清零来实现。
可选的,所述根据所述目的地址和所述操作方式确定操作地址,包括:根据所述操作方式确定一个或多个偏移地址,根据所述一个或多个偏移地址和所述目的地址确定一个或多个所述操作地址。
其中,每一操作方式可以对应一个或多个偏移地址,因此每一操作方式的目的地址就可以映射到一个或多个操作地址上进行操作。在本申请中,处理器将对目标寄存器的置1操作和清零操作分别映射到特定的操作区。当要对目标寄存器的某些位进行置1或清零操作时,只需要将特定操作区中的对应位的值设置为1或0,这样不需要对目标寄存器进行读、改、写的三步操作,一个步骤即可完成原来三个步骤才能完成的操作,从而确保了寄存器操作的原子性。
可选的,所述每一操作方式对应的一个或多个操作地址的有效比特数之和等于所述目的地址的有效比特数。
示例性地,为了使多个操作互不干扰,每一种操作方式的目的地址可以映射到一个或多个操作地址上,该一个或多个操作地址的有效比特数之和等于所述目的地址的有效比特数。例如,假设目标寄存器的目的地址有效比特数为32bit,有两种操作方式:操作方式1和操作方式2,则操作方式1映射的操作地址可以为1个32bit的寄存器、操作方式2映射的操作地址可以为1个32bit的寄存器;或者操作方式1映射的操作地址可以为2个16bit寄存器、操作方式2映射的操作地址可以为2个16bit寄存器;或者操作方式1映射的操作地址可以为4个8bit的寄存器、操作方式2映射的操作地址可以为4个8bit的寄存器;或者操作方式1映射的操作地址可以为1个16bit的寄存器和2个8bit的寄存器、操作方式2映射的操作地址可以为1个16bit的寄存器和2个8bit的寄存器,等。
可选的,所述根据所述操作方式确定一个或多个偏移地址,包括:在所述操作方式包括所述置1操作时,将一个或多个第一预设地址确定为所述偏移地址;在所述操作方式包括所述清零操作时,将一个或多个第二预设地址确定为所述偏移地址。
其中,计算机设备可以预先存储置1操作所对应的一个或多个第一预设地址和清零操作对应的一个或多个第二预设地址,该第一预设地址和第二预设地址可以是当前空闲的寄存器,也可以是存储器中的剩余内存空间的地址,本申请实施例对此不做限定。示例性地,处理器也可以根据实际情况直接将当前空闲的寄存器分别作为第一预设地址和第二预设地址;或者直接将剩余内存空间中的内存空间分别作为第一预设地址和第二预设地址。
可选的,所述根据所述一个或多个偏移地址和所述目的地址确定一个或多个操作地址,包括:将所述目的地址分别加上所述一个或多个偏移地址,得到所述一个或多个操作地址。
具体地,当处理器识别出数据操作指令的操作方式为置1操作时,则确定偏移地址为一个或多个第一预设地址;当识别出数据操作指令的操作方式为清零操作时,则确定偏移地址为一个或多个第二预设地址。然后处理器将对目标寄存器的置1操作映射到一个或多个置1地址,当要对目标寄存器中的某些位进行置1操作时,直接将一个或多个操作地址中对应位的值写为1;将对目标寄存器中清零操作映射到一个或多个清零地址,当要对目标寄存器中的某些位进行清零操作时,直接将一个或多个操作地址中对应位的值写为1。
在本申请中,由于一个目的地址可以映射到一个操作方式对应的一个或多个操作地址上,因此,可以根据目的地址的有效比特数和每一操作方式对应的偏移地址的个数,将目的地址进行划分,使得目的地址中的每一位均可以映射到操作地址中,例如,对于32bit的目标寄存器,在置1的偏移地址有2个时,则可以将目的地址划分成两个16bit,即将目标地址的高16bit映射到一个操作地址中,目的地址的低16bit映射到另一操作地址中,从而使得目标寄存器中的每一个都可以得到映射。其中置1地址为置1操作对应的一个或多个操作地址,其等于目的地址分别与一个或多个第一预设地址中的某一个之和;清零地址为清零操作对应的一个或多个操作地址,其等于目的地址分别与一个或多个第二预设地址中的某一个之和。例如,假设第一预设地址为0x1000、第二预设地址为0x2000,子系统A要对32bit的目标寄存器0x402a0000中的操作位7进行置1操作,而同时子系统B要对32bit的目标寄存器0x402a0000中的操作位0进行清零操作,则子系统A的操作地址为0x402a1000,子系统B的操作地址为0x402a2000。再例如,假设第一预设地址为0x1000和0x1004,第二预设地址为0x2000和0x2004,子系统A要对32bit的目标寄存器0x402a0000中的操作位7和操作位16均进行置1操作,而同时子系统B要对32bit的目标寄存器0x402a0000中的操作位0和操作位18均进行清零操作,则子系统A的操作地址为0x402a1000(对应目标寄存器中的低16bit)和0x402a1004(对应目标寄存器中的高16bit),子系统B的操作地址为0x402a2000(对应目标寄存器中的低16bit)和0x402a2004(对应目标寄存器中的高16bit)。
在本申请中,每一操作方式对应的一个或多个操作地址的有效比特数长度之和等于目的地址的长度有效比特数,操作地址中每一个有效比特位分别对应目标寄存器中的每一个有效比特位。
在一种可能的示例中,所述操作地址的有效比特数与所述目的地址的有效比特数不相同,即一个或多个操作地址的有效比特数之和大于目的地址的有效比特数。例如,对于32bit寄存器,处理器可以将对该32bit寄存器的操作映射到64bit操作地址中,如将对32bit寄存器中的bit2清零,可通过对64bit操作地址中的bit2写入1来实现,其中该64bit操作地址中的低32bit有效。
S230、根据所述操作位生成目标数据。
在本申请中,对目标寄存器的某些位进行清零操作或置1操作,只需要将操作地址中对应位写1。其中为了保持操作地址中其他bit的值不变,处理器需要将操作位变换成目标数据,通过将目标数据与目标寄存器的原始数据的与操作,可以实现对操作位进行清零或置1而其他bit保持不变。
可选的,所述根据所述操作位生成目标数据,包括:根据所述目的地址与所述操作地址的映射关系,以及所述操作地址的有效比特数,将所述操作位转化成十六进制数,得到所述目标数据。
具体地,对目标寄存器的某些位进行清零操作或置1操作是将对应位写1。因此处理器根据目的地址与所述操作地址的映射关系,以及所述操作地址的有效比特数,生成十六进制的目标数据,目标数据中操作位所在位置的bit值为1。例如,子系统A要对目的地址为0x402a0000、操作位为7进行置1操作,而同时子系统B要对目的地址0x402a0000、操作位为0进行清零操作,则子系统A的目标数据为0x0080,子系统B的目标数据为0x0001。又例如,假设第一预设地址为0x1000和0x1004,第二预设地址为0x2000和0x2004,子系统A要对32bit的目标寄存器0x402a0000中的操作位1、操作位9、操作位18和操作位22均进行置1操作,而同时子系统B要对32bit的目标寄存器0x402a0000中的操作位3、操作位11、操作位20和操作位24均进行清零操作,则子系统A的操作地址为0x402a1000(对应目标寄存器中的低16bit)、写入的目标数据为0x0202和0x402a1004(对应目标寄存器中的高16bit)、写入的目标数据为0x4004,子系统B的操作地址为0x402a2000(对应目标寄存器中的低16bit)、写入的目标数据为0x0808和0x402a2004(对应目标寄存器中的高16bit)、写入的目标数据为0x0110。
S240、将所述目标数据写入所述操作地址。
具体实现中,处理器得到操作地址和目标数据后,可通过将目标数据写入操作地址中,就可以实现对操作位的置1操作或清零操作。例如,例如,假设第一预设地址为0x1000、第二预设地址为0x2000,子系统A要对目的地址为0x402a0000、操作位为7进行置1操作、操作位为3进行清零操作,而同时子系统B要对目的地址0x402a0000、操作位为0进行置1操作、操作位为16进行清零操作,则子系统A在0x402a1000中写入0x0080、在0x402a2000中写入0x0008,子系统B在0x402a1000中写入0x0001、在0x402a2000中写入0x10000。
本申请通过将操作方式地址映射到特定的操作地址来操作寄存器,使得无论是对某些bit做置1或者清0的操作,都只需要一个操作步骤(往特定的地址写入一个特定值)即可,因此可以有效的保证其操作的原子性,避免了读改写三步骤带来的竞争风险,不仅提高了寄存器操作的效率、也大大提高了系统的稳定性。
可以看出,本申请提出了一种数据处理方法,获取数据操作指令,该数据操作指令包括目的地址、操作位和操作方式,该目的地址为目标寄存器的地址,该操作位为目标寄存器中进行操作的比特位;然后根据目的地址和操作方式确定操作地址、根据操作位生成目标数据;最后将目标数据写入操作地址。本申请通过将目标数据写入操作地址中来实现对目标寄存器中比特位的操作,可以通过一步操作,完成对寄存器值的改变,而不需要对寄存器进行读、改、写的三步操作,既保证了寄存器操作的原子性,又提高了寄存器操作的效率。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
请参阅图3,图3是本申请实施例提供的一种数据处理装置300的功能单元组成框图,所述装置300包括:获取单元310、确定单元320、生成单元330和写入340,其中,
所述获取单元310,用于获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位;
所述确定单元320,用于根据所述目的地址和所述操作方式确定操作地址;
所述生成单元330,用于根据所述操作位生成目标数据;
所述写入单元340,用于将所述目标数据写入所述操作地址。
可选的,在根据所述目的地址和所述操作方式确定操作地址方面,所述确定单元320具体用于:
根据所述操作方式确定一个或多个偏移地址;根据所述一个或多个偏移地址和所述目的地址确定一个或多个所述操作地址。
可选的,所述操作方式包括置1操作和清零操作;
在根据所述操作方式确定一个或多个偏移地址方面,所述确定单元320具体用于:在所述操作方式包括所述置1操作时,将一个或多个第一预设地址确定为所述偏移地址;在所述操作方式包括所述清零操作时,将一个或多个第二预设地址确定为所述偏移地址。
可选的,根据所述一个或多个偏移地址和所述目的地址确定一个或多个操作地址方面,所述确定单元320具体用于:将所述目的地址分别加上所述一个或多个偏移地址,得到所述一个或多个操作地址。
可选的,在根据所述操作位生成目标数据方面,所述生成单元330具体用于:根据所述目的地址与所述操作地址的映射关系,以及所述操作地址的有效比特数,将所述操作位转化成十六进制数,得到所述目标数据。
可选的,所述每一操作方式对应的一个或多个操作地址的有效比特数之和等于所述目的地址的有效比特数。
应理解,这里的装置300以功能单元的形式体现。这里的术语“单元”可以指特殊应用集成电路、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置300可以具体为上述实施例中的计算机设备,装置300可以用于执行上述方法实施例中与计算机设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述各个方案的装置300具有实现上述方法中计算机设备执行的相应步骤的功能;所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块;例如确定单元320可以由处理器代替,分别执行各个方法实施例中的收发操作以及相关的处理操作。
在本申请的实施例,装置300也可以是芯片或者芯片系统,例如:片上系统(systemon chip,SoC)。对应的,计算单元可以是该芯片的计算电路,在此不做限定。
请参阅图4,图4是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备包括:一个或多个处理器、一个或多个存储器、一个或多个通信接口,以及一个或多个程序;所述一个或多个程序被存储在所述存储器中,并且被配置由所述一个或多个处理器执行。可选地,上述计算机设备还可以包括寄存器,该寄存器可以临近处理器设置。进一步可选地,寄存器可以与处理器集成为一体。当处理器需要执行存储器中程序时,计算机设备首先将存储器中的数据加载至寄存器,之后,处理器可以访问上述的寄存器,对寄存器中的数据进行运算。
其中,上述处理器,用于执行所述存储器上所存放的程序时,实现以下步骤:
获取数据操作指令,该数据操作指令包括目的地址、操作位和操作方式,该目的地址为目标寄存器的地址,该操作位为目标寄存器中进行操作的比特位;然后根据目的地址和操作方式确定操作地址、根据操作位生成目标数据;最后将目标数据写入操作地址。
进一步地,上述处理器可以是中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、图形处理器(Graphics Processing Unit,GPU)或图象处理器(Image Processing Unit),本申请对此不做限定。根据处理器的不同,本申请实施例提出的数据处理方法可以应用于图像识别、深度学习、计算机视觉、智能机器人、自然语言处理等人工智能应用领域,执行人工智能领域中的功能程序。示例性地,该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
应理解,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
应理解,本申请实施例中涉及的“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以及,除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一信息和第二信息,只是为了区分不同的信息,而并不是表示这两种信息的内容、优先级、发送顺序或者重要程度等的不同。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请实施例还提供一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机程序;所述存储器包括寄存器,所述处理器计算机程序时将其对应的数据读入所述寄存器中进行运算,所述计算机程序被所述处理器执行时实现如上述方法实施例中记载的任一方法的部分或全部步骤。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者TRP等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位;
根据所述目的地址和所述操作方式确定操作地址;
根据所述操作位生成目标数据;
将所述目标数据写入所述操作地址。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目的地址和所述操作方式确定操作地址,包括:
根据所述操作方式确定一个或多个偏移地址;
根据所述一个或多个偏移地址和所述目的地址确定一个或多个所述操作地址。
3.根据权利要求2所述的方法,其特征在于,所述操作方式包括置1操作和清零操作;
所述根据所述操作方式确定一个或多个偏移地址,包括:
在所述操作方式包括所述置1操作时,将一个或多个第一预设地址确定为所述偏移地址;
在所述操作方式包括所述清零操作时,将一个或多个第二预设地址确定为所述偏移地址。
4.根据权利要求所述的方法,其特征在于,所述根据所述一个或多个偏移地址和所述目的地址确定一个或多个操作地址,包括:
将所述目的地址分别加上所述一个或多个偏移地址,得到所述一个或多个操作地址。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述操作位生成目标数据,包括:
根据所述目的地址与所述操作地址的映射关系,以及所述操作地址的有效比特数,将所述操作位转化成十六进制数,得到所述目标数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述每一操作方式对应的一个或多个操作地址的有效比特数之和等于所述目的地址的有效比特数。
7.一种处理数据装置,其特征在于,所述装置包括:
获取单元,用于获取数据操作指令,所述数据操作指令包括目的地址、操作位和操作方式,所述目的地址为目标寄存器的地址,所述操作位为所述目标寄存器中进行操作的比特位;
确定单元,用于根据所述目的地址和所述操作方式确定操作地址;
生成单元,用于根据所述操作位生成目标数据;
写入单元,用于将所述目标数据写入所述操作地址。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中并且被配置由所述处理器执行,所述存储器包括寄存器,所述处理器执行一个或多个程序时将其对应的数据读入所述寄存器中进行运算,所述程序包括用于执行如权利要求1-6任一项所述的方法中的步骤的指令。
9.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机程序;所述存储器包括寄存器,所述处理器计算机程序时将其对应的数据读入所述寄存器中进行运算,所述计算机程序被所述处理器执行时实现如权利要求1-6任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-6任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110605701.8A CN113254073B (zh) | 2021-05-31 | 2021-05-31 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110605701.8A CN113254073B (zh) | 2021-05-31 | 2021-05-31 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254073A true CN113254073A (zh) | 2021-08-13 |
CN113254073B CN113254073B (zh) | 2022-08-26 |
Family
ID=77185555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110605701.8A Active CN113254073B (zh) | 2021-05-31 | 2021-05-31 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254073B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836069A (zh) * | 2021-09-30 | 2021-12-24 | 龙芯中科技术股份有限公司 | 芯片、引脚操作方法、可读存储介质和电子设备 |
CN114579189A (zh) * | 2022-05-05 | 2022-06-03 | 深圳云豹智能有限公司 | 单核以及多核访问寄存器数据的方法、处理器和系统 |
WO2024109689A1 (zh) * | 2022-11-22 | 2024-05-30 | 华为技术有限公司 | 一种块指令的寄存器参数传递方法和相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110136769A (zh) * | 2019-04-16 | 2019-08-16 | 珠海市杰理科技股份有限公司 | Otp寄存器数据修正方法、装置、计算机设备和存储介质 |
CN112269596A (zh) * | 2020-10-19 | 2021-01-26 | 童先娥 | 一种指令处理方法及处理器 |
CN112395093A (zh) * | 2020-12-04 | 2021-02-23 | 龙芯中科(合肥)技术有限公司 | 多线程数据处理方法、装置、电子设备及可读存储介质 |
CN112445729A (zh) * | 2020-11-30 | 2021-03-05 | 深圳开立生物医疗科技股份有限公司 | 操作地址确定方法、PCIe系统、电子设备及存储介质 |
-
2021
- 2021-05-31 CN CN202110605701.8A patent/CN113254073B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110136769A (zh) * | 2019-04-16 | 2019-08-16 | 珠海市杰理科技股份有限公司 | Otp寄存器数据修正方法、装置、计算机设备和存储介质 |
CN112269596A (zh) * | 2020-10-19 | 2021-01-26 | 童先娥 | 一种指令处理方法及处理器 |
CN112445729A (zh) * | 2020-11-30 | 2021-03-05 | 深圳开立生物医疗科技股份有限公司 | 操作地址确定方法、PCIe系统、电子设备及存储介质 |
CN112395093A (zh) * | 2020-12-04 | 2021-02-23 | 龙芯中科(合肥)技术有限公司 | 多线程数据处理方法、装置、电子设备及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836069A (zh) * | 2021-09-30 | 2021-12-24 | 龙芯中科技术股份有限公司 | 芯片、引脚操作方法、可读存储介质和电子设备 |
CN113836069B (zh) * | 2021-09-30 | 2023-04-14 | 龙芯中科技术股份有限公司 | 芯片、引脚操作方法、可读存储介质和电子设备 |
CN114579189A (zh) * | 2022-05-05 | 2022-06-03 | 深圳云豹智能有限公司 | 单核以及多核访问寄存器数据的方法、处理器和系统 |
WO2024109689A1 (zh) * | 2022-11-22 | 2024-05-30 | 华为技术有限公司 | 一种块指令的寄存器参数传递方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113254073B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254073B (zh) | 数据处理方法及装置 | |
CN111506534B (zh) | 具有非阻塞高性能事务信用系统的多核总线架构 | |
KR101050554B1 (ko) | 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 | |
TW201905714A (zh) | 以輔助處理器記憶體進行儲存裝置的直接輸入輸出操作的計算系統操作方法、計算系統、車輛及電腦可讀媒體 | |
US11138112B2 (en) | Remote atomic operations in multi-socket systems | |
EP2725497A1 (en) | Memory arbitration circuit and method | |
EP3657337B1 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
US8145804B2 (en) | Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor | |
KR970011207B1 (ko) | 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치 | |
US20140310484A1 (en) | System and method for globally addressable gpu memory | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
EP3407184A2 (en) | Near memory computing architecture | |
US20210019261A1 (en) | Memory cache-line bounce reduction for pointer ring structures | |
CN114942831A (zh) | 处理器、芯片、电子设备及数据处理方法 | |
EP3828698A1 (en) | Data processing method and apparatus, and related product | |
CN110825435A (zh) | 用于处理数据的方法和装置 | |
US6378050B1 (en) | Information processing apparatus and storage medium | |
US20220171717A1 (en) | Adaptive out of order arbitration for numerous virtual queues | |
RU2598594C2 (ru) | Нечувствительный к задержке буфер транзакции для связи с квитированием | |
CN113434439B (zh) | 一种基于模拟i2c接口的数据连续写入方法及系统 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN101751356A (zh) | 用于改进直接存储器存取传送效率的方法、系统和装置 | |
US8122205B2 (en) | Structured virtual registers for embedded controller devices | |
US11106587B2 (en) | Memory cache-line bounce reduction for shared I/O ring structures | |
TW202119215A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |