一种spinlock硬件电路及电子设备的制作方法

文档序号:17948755发布日期:2019-06-18 23:52阅读:313来源:国知局
一种spinlock硬件电路及电子设备的制作方法

本发明涉及硬件电路领域,尤其涉及一种spinlock硬件电路及电子设备。



背景技术:

随着多核处理器的快速发展,在多核处理器并发处理时的处理机制越来越重要。而spinlock就是一种重要而有效的避免多核并行处理时出错的机制。但是目前的spinlock处理还有比较明显的问题。首先,软件控制复杂,spinlock需要指定一片存储区域作为锁状态存放的区域,而存储器中用软件指定区域的方法软件控制复杂而且安全程度不够,很容易被黑客攻破。而且软件处理操作速度也相对较慢。



技术实现要素:

为此,需要提供一种spinlock硬件电路及电子设备,解决现有spinlock安全程度不足且软件控制复杂的问题。

为实现上述目的,发明人提供了一种spinlock硬件电路,包括安全保护单元、地址判断单元、写数据判断单元、写入判断单元、读控制单元、spinlock状态寄存器单元,其中:

安全保护单元用于监测总线发来的读写访问是否为cpu发出的安全访问,如果是安全访问则响应,否则拒绝总线的访问请求;

地址判断单元用于对总线写地址进行查询,将总线的写地址转换为要访问的spinlock寄存器单元对应的选择信息,并将转换结果发送给写数据判断单元和写入判断单元;

写数据判断单元用于判断是否需要对spinlock寄存器进行写入操作,并将判断结果发送到写入判断单元;

写入判断单元根据地址判断单元输入的寄存器单元选择信息和写数据判断单元送入的是否可以写入的判断结果和写入数据对spinlock寄存器进行写操作;

spinlock寄存器单元用于存储spinlock的锁状态信息,并将状态信息发送给写数据判断单元和读控制单元;

读控制单元用于根据总线的读命令进行读取操作。

进一步地,还包括地址表格存储单元,用于存储spinlock寄存器单元的地址,供地址判断单元进行查询。

进一步地,还包括地址随机分配单元用于随机分配spinlock寄存器单元的地址,

进一步地,写数据单元包括通路选择单元、第一全零判断单元、第二全零判断单元、逻辑或单元、通路开关单元,其中:

通路选择单元用于根据地址判断单元送来的地址判断信号选通spinlock寄存器单元的数据状态发送给全零判断单元;

第一全零判断单元用于判断该spinlock寄存器状态是否为全零,并把判断结果发送给逻辑或单元;

第二全零判断单元用于对总线写数据进行判断是否为全零,并把判断结果发送给逻辑或单元;

逻辑或单元用于对输入的两个全零判断结果做逻辑或运算处理,把处理结果发送给通路开关单元;

如果逻辑或单元的输结果为高,则表明可以写入数据,写入数据的通路开关打开,如果为低则表明不可以写入数据,写数据通路关闭。

进一步地,安全保护单元用于判断总线发过来的命令中的prot信号,该信号为高则表明该访问为安全访问。

进一步地,所述寄存器单元包括spinlock状态寄存器组和对应的起止地址。

本发明提供电子设备,包括spinlock硬件电路、总线、处理器,所述处理器通过总线与spinlock硬件电路连接,所述spinlock硬件电路为上述的spinlock硬件电路。

区别于现有技术,上述技术方案通过硬件实现spinlock控制算法,软件控制简单。通过硬件级别的安全访问控制实现更高级的安全保护。相对于软件控制,硬件控制的速度也更快。

附图说明

图1为具体实施方式所述的电路结构示意图;

图2为具体实施方式所述的写数据判断单元的结构示意图。

附图标记说明:

101、安全保护单元;102、地址判断单元;

103、写数据判断单元;104、写入判断单元;

105、读控制单元;106、spinlock状态寄存器单元;

107、地址表格存储单元;108、地址随机分配单元;

201、通路选择单元;202、第一全零判断单元;

203、第二全零判断单元;204、逻辑或单元;

205、通路开关单元。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1到2,本实施例提供一种spinlock硬件电路,包括安全保护单元101、地址判断单元102、写数据判断单元103、写入判断单元104、读控制单元105、spinlock状态寄存器单元106,其中:安全保护单元用于监测总线发来的读写访问是否为cpu发出的安全访问,如果是安全访问则响应,否则拒绝总线的访问请求;地址判断单元用于对总线写地址进行查询,将总线的写地址转换为要访问的spinlock寄存器单元对应的选择信息,并将转换结果发送给写数据判断单元和写入判断单元;写数据判断单元用于判断是否需要对spinlock寄存器进行写入操作,并将判断结果发送到写入判断单元;写入判断单元根据地址判断单元输入的寄存器单元选择信息和写数据判断单元送入的是否可以写入的判断结果和写入数据对spinlock寄存器进行写操作;spinlock寄存器单元用于存储spinlock的锁状态信息,并将状态信息发送给写数据判断单元和读控制单元;读控制单元用于根据总线的读命令进行读取操作。

本发明中,通过安全保护单元可以实现对总线命令的安全性判断,通过地址判断单元可以实现对相应的spinlock寄存器单元进行操作。通过写数据判断单元和写入判断单元可以实现spinlock中的是否写入控制。spinlock寄存器单元实现了spinlock的锁状态信息的存储。通过上述这些单元,通过硬件实现spinlock的功能,提高速度。软件上也无需进行控制,方便使用。以及安全保护单元用于监测读写访问是否为cpu发出的安全访问,只有在安全访问的时候才会做出响应。这样可以避免黑客攻破cpu后控制cpu对电路直接进行访问时数据被攻破的情况。只有当黑客把安全世界入口攻破,才可能发出安全访问,这样通过安全保护单元极大提高了安全防御能力。

关于安全世界和非安全世界的背景知识,可以参阅现有的公开资料:

https://blog.csdn.net/zhouhuacai/article/details/78177364。

本申请的spinlock寄存器单元的地址可以直接存在地址判断单元内,或者可以存在单独的存储单元内,则本发明还包括地址表格存储单元107,用于存储spinlock寄存器单元的地址,供地址判断单元进行查询。

在某些实施例中,spinlock寄存器单元的地址可以是固定的地址。或者在某些实施例中,为了提高安全性,地址是随机的。则本发明硬件电路还包括地址随机分配单元108,用于随机分配spinlock寄存器单元的地址。分配的时机可以是电路上电工作时,分配后的地址可以存储到对应的存储位置,如上述实施例中的地址表格存储单元。这样可以保证每次电路工作时相同地址对应的物理寄存器都是不一样的,保证了安全性。

本发明的写数据单元用于判断到spinlock寄存器状态为全零且总线写数据为全零时输出可以写入的信号结果给写入判断单元。具体的硬件电路可以通过如下实现:写数据单元包括通路选择单元201、第一全零判断单元202、第二全零判断单元203、逻辑或单元204、通路开关单元205,其中:通路选择单元用于根据地址判断单元送来的地址判断信号选通对应的spinlock寄存器单元的状态并将状态发送给全零判断单元;第一全零判断单元用于判断该spinlock寄存器状态是否为全零,并把判断结果发送给逻辑或单元;全零表明寄存器状态每一位都为零,全零时输出是的结果,不是全零时输出否的结果。第二全零判断单元用于对总线写数据进行判断是否为全零,并把判断结果发送给逻辑或单元;同样的,全零表明每一位都为零,全零时输出是的结果,不是全零时输出否的结果。逻辑或单元用于对输入的两个全零判断结果做逻辑或运算处理,把处理结果发送给通路开关单元;如果逻辑或单元的输结果为高,即有一个是全零的,则表明可以写入数据,写入数据的通路开关打开,如果为低则表明不可以写入数据,写数据通路关闭。这样实现了当spinlock寄存器状态为非全零时,表明已经有cpu使用了这个状态寄存器组,所以不能被新的数据写入。只有当spinlock寄存器状态为全零时,表明还没有cpu使用这个状态寄存器组,则该寄存器组可以被新的数据写入。然后当写数据为全零时,可以把任意寄存器组清零。

安全保护单元判断总线的访问是否为安全可以判断总线命令是否符合预设规则或者是否包含某一特殊信号,如果符合或者包含,则可以认为是安全的。或者可以判断prot信号,安全保护单元判断总线发过来的命令中的prot信号,该信号为高则表明该访问为安全访问,可以相应请求,否则不响应请求并可以返回错误标志。

为了实现spinlock信息的存储和相应功能,所述寄存器单元包括spinlock状态寄存器组和对应的起止地址。

本发明提供电子设备,包括spinlock硬件电路、总线、处理器,所述处理器通过总线与spinlock硬件电路连接,所述spinlock硬件电路为上述的spinlock硬件电路。本电子设备的spinlock硬件电路通过硬件实现spinlock控制算法,软件控制简单。通过硬件级别的安全访问控制实现更高级的安全保护。相对于软件控制,硬件控制的速度也更快。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

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