【技术实现步骤摘要】
实现多比特寄存器原子操作的方法及电路、芯片、电子设备
[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和 ...
【技术保护点】
【技术特征摘要】
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所述的电路,其特征在于,所述控制信号生成模块包括:第一或门、第一与门、以及第二与门;所述第一或门输入所述多比特寄存器的多路数据输入信号,输出判断信号;所述第一与门输入所述置位...
【专利技术属性】
技术研发人员:陈健,
申请(专利权)人:展讯通信上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。