实现多比特寄存器原子操作的方法及电路、芯片、电子设备技术

技术编号:36286756 阅读:57 留言:0更新日期:2023-01-13 09:58
一种实现多比特寄存器原子操作的方法及电路、芯片、电子设备,所述多比特寄存器包括写端口、置位操作接口、清零操作接口;所述方法包括:通过写端口向所述多比特寄存器写入数据;在需要对所述多比特寄存器中的数据进行修改时,直接通过所述置位操作接口或者所述清零操作接口一次完成数据修改操作。利用本发明专利技术方案,可以实现对多比特寄存器的原子访问,并避免影响系统的正常运行。免影响系统的正常运行。免影响系统的正常运行。

【技术实现步骤摘要】
实现多比特寄存器原子操作的方法及电路、芯片、电子设备


[0001]本专利技术涉及数字电路
,具体地涉及一种实现多比特寄存器原子操作的方法及电路、芯片、电子设备。

技术介绍

[0002]寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N比特(bit)寄存器。寄存器从功能上划分,通常有:通用寄存器、专用寄存器和控制寄存器。
[0003]通用寄存器位数等于机器字长的位数,有16bit的,也有32bit的。当前,SOC(System

On

a

Chip,片上系统)或集成电路中,寄存器大都是按照32bit拼成一组。现有技术中,为了避免多核系统中对寄存器的操作由于竞争访问导致前面的操作无效而引起错误,提出了set

clear寄存器,即实现了置位(set)、清零(clear)操作接口的寄存器,通过set操作接口实现对寄存器中比特的修改,通过clear操作接口实现对寄存器中比特的清除。
[0004]在现有技术中,通常只对单比特寄存器提供set和clear操作接口,而对多比特寄存器不提供相应操作接口,这种实现方式仍然不能避免多核竞争访问引入的错误。为此,也有产品针对多比特寄存器实现上述功能的,即针对多比特寄存器中的每比特寄存器,都采用与单比特寄存器相同的实现方案,但针对提供set和clear操作接口的多比特寄存器的修改操作,不仅使得修改寄存器的操作变得复杂,而且还会因多比特寄存器代表的不同含义,给系统引入或大或小的问题。

技术实现思路

[0005]本专利技术实施例提供一种实现多比特寄存器原子操作的方法及电路、芯片、电子设备,以实现对多比特寄存器的原子访问,并避免影响系统的正常运行。
[0006]为此,本专利技术实施例提供如下技术方案:
[0007]一方面,本专利技术实施例提供一种实现多比特寄存器原子操作的方法,所述多比特寄存器包括写端口、置位操作接口、清零操作接口;所述方法包括:
[0008]通过写端口向所述多比特寄存器写入数据;
[0009]在需要对所述多比特寄存器中的数据进行修改时,直接通过所述置位操作接口或者所述清零操作接口一次完成数据修改操作。
[0010]可选地,所述直接通过所述置位操作接口或者所述清零操作接口一次完成数据修改操作包括:
[0011]如果需要给所述多比特寄存器中赋非0值,则直接通过所述置位操作接口向所述多比特寄存器写入非0的目标值;
[0012]如果需要给所述多比特寄存器中赋0值,则直接通过所述清零操作接口写入一个
非0值。
[0013]可选地,所述方法还包括:
[0014]根据所述多比特寄存器的所有比特数据生成控制信号;
[0015]根据所述控制信号及当前操作信号生成多路选择信号,所述操作信号包括:用于控制所述写端口的写操作信号、用于控制所述置位操作接口的置位操作信号、用于控制所述清零操作接口的清零操作信号;
[0016]所述直接通过所述置位操作接口向所述多比特寄存器写入非0的目标值包括:
[0017]使能所述置位操作接口,并将所述非0的目标值传输到数据总线上;
[0018]通过所述多路选择信号控制所述数据总线上的所述非0的目标值写入所述多比特寄存器;
[0019]所述直接通过所述清零操作接口写入一个非0值包括:
[0020]使能所述清零操作接口,并将一非0数据传输到所述数据总线上;
[0021]通过所述多路选择信号控制向所述多比特寄存器输入全0数据值。
[0022]另一方面,本专利技术实施例还提供一种实现多比特寄存器原子操作的电路,所述电路包括:多比特寄存器,所述多比特寄存器包括写端口、置位操作接口、清零操作接口;
[0023]写操作模块,用于输出写操作信号,以控制所述写端口向所述多比特寄存器写入数据;
[0024]修改操作模块,用于在需要对所述多比特寄存器中的数据进行修改时,输出置位操作信号或者清零操作信号,以控制所述置位操作接口或者所述清零操作接口一次完成数据修改操作。
[0025]可选地,所述修改操作模块,具体用于在需要给所述多比特寄存器中赋非0值时,输出所述置位操作信号,以控制所述置位操作接口向所述多比特寄存器写入非0的目标值;在需要给所述多比特寄存器中赋0值时,输出所述置位操作信号,以控制所述清零操作接口向所述多比特寄存器写入一个非0值。
[0026]可选地,所述电路还包括:
[0027]控制信号生成模块,用于根据所述多比特寄存器的所有比特数据及当前操作信号生成选择控制信号,所述操作信号包括:用于控制所述写端口的写操作信号、用于控制所述置位操作接口的置位操作信号、用于控制所述清零操作接口的清零操作信号;
[0028]选择模块,用于根据所述选择控制信号输出各操作信号对应的数据总线上的数据。
[0029]可选地,所述控制信号生成模块包括:第一或门、第一与门、以及第二与门;
[0030]所述第一或门输入所述多比特寄存器的多路数据输入信号,输出判断信号;
[0031]所述第一与门输入所述置位操作信号和所述判断信号,输出置位选择信号;
[0032]所述第二与门输入所述清零操作信号和所述判断信号,输出清零选择信号;
[0033]所述选择模块输入所述写操作信号、所述置位选择信号和所述清零操作信号;在所述写操作信号有效时,通过所述写端口向所述多比特寄存器写入数据;在所述置位选择信号有效时,通过所述置位操作接口向所述多比特寄存器写入非0的目标值;在所述清零选择信号有效时,通过所述清零操作接口向所述多比特寄存器写入一个非0值。
[0034]可选地,所述选择模块包括:依次连接的第三选择器、第二选择器、以及第一选择
器;
[0035]所述第三选择器的控制端输入所述写操作信号,所述第三选择器的第一入端和第二输入端分别输入所述多比特寄存器的多路数据输入信号、以及所述多比特寄存器的多路数据输出信号,输出第一数据信号;
[0036]所述第二选择器的控制端输入所述清零选择信号,所述第二选择器的第一入端和第二输入端分别输入所述第一数据信号及所述清零操作所需写入的全0数据值,输出第二数据信号;
[0037]所述第一选择器的控制端输入所述置位选择信号,所述第一选择器的第一入端和第二输入端分别输入所述第二数据信号及所述多比特寄存器的多路数据输入信号,输出端连接所述多比特寄存器的数据输入端。
[0038]可选地,所述第二选择器包括:第一反相器和第三与门;
[0039]所述第一反相器输入所述清零选择信号;
[0040]所述第三与门的一个输入端连接所述第一反相器的输出端,所述第三与门的另一个输入端输入所述第一数据信号,所述第三与门的输本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现多比特寄存器原子操作的方法,所述多比特寄存器包括写端口、置位操作接口、清零操作接口;其特征在于,所述方法包括:通过写端口向所述多比特寄存器写入数据;在需要对所述多比特寄存器中的数据进行修改时,直接通过所述置位操作接口或者所述清零操作接口一次完成数据修改操作。2.根据权利要求1所述的方法,其特征在于,所述直接通过所述置位操作接口或者所述清零操作接口一次完成数据修改操作包括:如果需要给所述多比特寄存器中赋非0值,则直接通过所述置位操作接口向所述多比特寄存器写入非0的目标值;如果需要给所述多比特寄存器中赋0值,则直接通过所述清零操作接口写入一个非0值。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述多比特寄存器的所有比特数据生成控制信号;根据所述控制信号及当前操作信号生成多路选择信号,所述操作信号包括:用于控制所述写端口的写操作信号、用于控制所述置位操作接口的置位操作信号、用于控制所述清零操作接口的清零操作信号;所述直接通过所述置位操作接口向所述多比特寄存器写入非0的目标值包括:使能所述置位操作接口,并将所述非0的目标值传输到数据总线上;通过所述多路选择信号控制所述数据总线上的所述非0的目标值写入所述多比特寄存器;所述直接通过所述清零操作接口写入一个非0值包括:使能所述清零操作接口,并将一非0数据传输到所述数据总线上;通过所述多路选择信号控制向所述多比特寄存器输入全0数据值。4.一种实现多比特寄存器原子操作的电路,其特征在于,所述电路包括:多比特寄存器,所述多比特寄存器包括写端口、置位操作接口、清零操作接口;写操作模块,用于输出写操作信号,以控制所述写端口向所述多比特寄存器写入数据;修改操作模块,用于在需要对所述多比特寄存器中的数据进行修改时,输出置位操作信号或者清零操作信号,以控制所述置位操作接口或者所述清零操作接口一次完成数据修改操作。5.根据权利要求4所述的电路,其特征在于,所述修改操作模块,具体用于在需要给所述多比特寄存器中赋非0值时,输出所述置位操作信号,以控制所述置位操作接口向所述多比特寄存器写入非0的目标值;在需要给所述多比特寄存器中赋0值时,输出所述置位操作信号,以控制所述清零操作接口向所述多比特寄存器写入一个非0值。6.根据权利要求5所述的电路,其特征在于,所述电路还包括:控制信号生成模块,用于根据所述多比特寄存器的所有比特数据及当前操作信号生成选择控制信号,所述操作信号包括:用于控制所述写端口的写操作信号、用于控制所述置位操作接口的置位操作信号、用于控制所述清零操作接口的清零操作信号;选择模块,用于根据所述选择控制信号输出各操作信号对应的数据总线上的数据。
7.根据权利要求6所述的电路,其特征在于,所述控制信号生成模块包括:第一或门、第一与门、以及第二与门;所述第一或门输入所述多比特寄存器的多路数据输入信号,输出判断信号;所述第一与门输入所述置位...

【专利技术属性】
技术研发人员:陈健
申请(专利权)人:展讯通信上海有限公司
类型:发明
国别省市:

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

1