本申请涉及自旋锁解锁,具体而言,一种自旋锁解锁方法、自旋锁装置、电子设备以及存储介质。
背景技术:
1、自旋锁是一种用于保护共享资源的同步机制。在多线程编程中,当多个线程同时访问一个共享资源时,为了竞争冒险问题,需要使用同步机制来确保每次只有一个线程可以访问该资源。
2、自旋锁是一种忙等待类型的锁,即当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。通过硬件实现自旋锁,可以提高系统的性能,使得锁的操作变得更加高效。
3、目前常规技术领域中,以ti公司的tda4芯片中的自旋锁为例,该模块共实现了256把锁,每一把锁的操作仅用一条指令(一个寄存器的读或写)即可完成,避免了软件实现时的读-改-写操作,提高了效率。对于每一把锁,它一次只接收一条指令(读或者写),在完成命令后才能接受下一条。锁在复位后是未被占用的(not taken)。若对该锁进行读操作且返回0,意味着当前锁是被未占用的,并成功获得了该锁(taken);若对该锁进行读操作且返回1,意味着当前的锁已经被占用,获取锁失败。若要解锁,只需要对被占用的锁写0即可。针对汽车电子等高功能安全和高信息安全需求的场景,由于锁的状态转移仅需要读写0或者1即可完成,因此这种硬件锁容易因为主观或非主观因素导致其状态的非正常跳转。主观因素是指恶意代码主动锁定或解锁其他线程正在使用的自旋锁;非主观因素是指由于代码bug(系统性失效)或者硬件瞬态故障(随机性失效)导致对自旋锁相应寄存器的误操作。
4、因此,目前需要一种可以对非主观因素的抑制,通过使秘钥属性实现对主观因素的阻挡,可以实现高安全性的硬件锁。
技术实现思路
1、有鉴于此,本公开实施例提供一种自旋锁解锁方法、自旋锁装置、电子设备以及存储介质,至少部分解决现有技术中存在的问题,可以增加状态转移条件的冗余性实现对非主观因素的抑制,通过使状态转移条件的具有密钥属性实现对主观因素的阻挡。由此可以实现高安全性的硬件自旋锁。
2、在一方面,本实施例公开了自旋锁解锁方法,其特征在于,包括:获取目标解锁需求,所述目标解锁需求包括目标待使用锁的锁代码;获取所述目标待使用锁的解锁秘钥,并向所述锁代码对应的寄存器写入所述解锁秘钥,所述解锁秘钥包括秘钥属性和随机数秘钥;得到所述目标待使用锁的解锁结果,所述解锁结果包括解锁成功和解锁失败。
3、具体的,所述得到所述目标待使用锁的解锁结果包括:当所述目标待使用锁未锁定以及当所述解锁秘钥与所述目标待使用锁的锁定秘钥不一致时,所述解锁结果为解锁失败。
4、具体的,所述目标待使用锁的锁定秘钥清除,并使所述于目标待使用锁解锁,所述解锁结果为解锁成功。
5、具体的,所述解锁秘钥还包括万能秘钥,当所述当所述解锁秘钥与所述锁定秘钥不一致时,判断所述解锁秘钥是否为预设万能秘钥,若是,则使所述目标待使用锁解锁。
6、具体的,所述获取目标解锁需求之前还包括:获取目标锁定需求,所述目标锁定需求包括所述目标待使用锁的锁代码;基于所述目标待使用锁的锁代码,读取所述锁代码对应的寄存器;基于所述寄存器返回值判断所述目标待使用锁的使用状态,其中,当所述寄存器返回值为0时,则判断所述目标待使用锁已被锁定,当所述寄存器返回值为非零值时,则判断所述目标待使用锁未被锁定,且成功锁定当前所述目标待使用锁。
7、具体的,当所述寄存器返回值为非零值时,所述非零值则为所述目标待使用锁的解锁秘钥。
8、另一方面,本公开实施例提供了自旋锁装置,包括:控制器,一次性可编程存储器,随机数发生器,多个锁;所述控制器用于,接收外部处理器的控制命令,并基于所述控制命令进行锁定、查询或解锁操作;所述随机数发生器,用于产生随机数,当锁接收到锁定的命令时,会获取一个随机数;所述多个锁存在于多个通道中,用于执行锁定以及解锁等命令;所述一次性可编程存储器用于存储所述万能秘钥,并在上电时发送给所述控制器。
9、具体的,随机数发生器还包括基于lfsr的prng伪随机数发生器。
10、第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:至少一个处理器;以及,与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行权利要求1至7任意一项所述的。第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行第一方面所述的自旋锁解锁方法。
1.一种自旋锁解锁方法,其特征在于,包括:
2.如权利要求1所述的自旋锁解锁方法,其特征在于,所述得到所述目标待使用锁的解锁结果包括:
3.如权利要求2所述的自旋锁解锁方法,其特征在于,所述得到所述目标待使用锁的解锁结果还包括:
4.如权利要求2所述的自旋锁解锁方法,其特征在于,所述解锁秘钥还包括万能秘钥,当所述当所述解锁秘钥与所述锁定秘钥不一致时,判断所述解锁秘钥是否为预设万能秘钥,若是,则使所述目标待使用锁解锁。
5.如权利要求1所述的自旋锁解锁方法,其特征在于,所述获取目标解锁需求之前还包括:
6.如权利要求5所述的自旋锁解锁方法,其特征在于,当所述寄存器返回值为非零值时,所述非零值则为所述目标待使用锁的解锁秘钥。
7.一种自旋锁装置,其特征在于,应用于上述权利要求1-6中任一所述的自旋锁解锁方法,包括:控制器,一次性可编程存储器,随机数发生器,多个锁;
8.如权利要求7所述的自旋锁装置,其特征在于,所述随机数发生器还包括基于lfsr的prng伪随机数发生器。
9.一种电子设备,其特征在于,该电子设备包括:
10.一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行权利要求1至6任意一项所述的自旋锁解锁方法。