一种基于自旋锁的多核处理器共享数据访问设计方法技术

技术编号:37956890 阅读:20 留言:0更新日期:2023-06-30 09:29
本发明专利技术涉及基于自旋锁的多核处理器共享数据访问设计方法。本发明专利技术设计了两个4N位抗辐射加固原子锁寄存器,可以实现两个寄存器原子锁,每个寄存器可以分为高2N位和低2N位两个部分,其中低2N位保存正在申请该寄存器原子锁的处理器核的识别号COREn_ID,高2N位保存当前获取该寄存器原子锁的处理器核的识别号LOCKn_ID。本发明专利技术可以减少多核任务调度中访问共享数据的原子操作对软件算法的依赖性,进而减少由于针对原子操作软件算法的恶意攻击而造成的线程执行错误,是一种高安全、高可靠的多核调度原子锁实现方法。度原子锁实现方法。度原子锁实现方法。

【技术实现步骤摘要】
一种基于自旋锁的多核处理器共享数据访问设计方法


[0001]本专利技术属于线程同步领域,涉及到一种基于高安全高可靠自旋锁的多核处理器共享数据访问设计方法。

技术介绍

[0002]常见的通用多核处理器系统(比如桌面级、服务器级、移动端高性能多核处理器等)根据应用场景对高性能、高实时性调度的需求,在需要访问共享数据时采用查询获取原子锁的方式来对系统共享资源进行保护,通过处理器执行原子锁操作,能够在DDR等外部存储器中设置原子锁,对某些多核共享资源的访问进行加、解锁保护操作,避免其他核或其他线程同时对共享数据进行访问,造成访问冲突。
[0003]针对宇航领域应用场景研制的多核处理器,从高可靠设计考虑,存储在DDR等外部存储器中的原子锁数据可能会受到宇宙环境辐射影响;从高安全设计考虑,现有操作系统多核调度主要依赖于软件算法,可能受到针对原子操作的恶意攻击而造成线程执行出错,甚至导致多核系统崩溃。为了保证任务的可靠性,更安全的调度方法是根据应用程序需求实现相对固定的调度,减少对软件算法的依赖。

技术实现思路

[0004]本专利技术本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于自旋锁的多核处理器共享数据访问设计方法,其特征在于:通过向多核处理器提供寄存器原子锁的方式,实现线程对共享数据访问的调度;所述的寄存器原子锁由4N位的原子锁寄存器实现;N为处理器的核数;将原子锁寄存器分为高2N位和低2N位两个部分;设置原子锁寄存器的低2N位为COREn_ID区域,保存正在申请该寄存器原子锁的处理器核的识别号COREn_ID,其中COREn_ID区域中的低N位代表COREn_ID的值,高N位COREn_ID_WEN分别为低N位对应位的写使能;设置原子锁寄存器的高2N位为LOCKn_ID区域,保存当前尝试获取该寄存器原子锁的处理器核的识别号LOCKn_ID,其中LOCKn_ID区域中的低N位代表LOCKn_ID的值,高N位LOCKn_ID_WEN分别为低N位对应位的写使能;各个处理器核都有相同的机会获取到寄存器原子锁;在同一时刻,同一个寄存器原子锁最多只能被一个处理器核所获取。2.根据权利要求1所述的方法,其特征在于:原子锁寄存器的位数根据处理器的核数确定,每个原子锁寄存器实现一个寄存器原子锁,由单个4N位的原子锁寄存器实现的寄存器原子锁适用于最多N个处理器核对共享地址的访问调度。3.根据权利要求1所述的方法,其特征在于:所述原子锁寄存器中保存当前尝试获取该寄存器原子锁的处理器核识别号的LOCKn_ID区域,包括:该区域低N位LOCKn_ID只有在其对应使能位有效时才能够写入,对应使能位无效时LOCKn_ID只可读,LOCKn_ID的值为0时代表寄存器原子锁处于释放状态,LOCKn_ID的值不为0时,该值代表当前尝试获取该寄存器原子锁的处理器核的识别号;该区域高N位LOCKn_ID_WEN为LOCKn_ID的使能位,分别对应低N位的写使能,使能位为高时有效,使能位为低时无效,LOCKn_ID_WEN写入后会自动清零。4.根据权利要求1所述的方法,其特征在于:所述原子锁寄存器中保存正在申请该寄存器原子锁的处理器核的识别号COREn_ID区域,包括:该区域低N位COREn_ID只有在其对应使能位有效时才能够写入,对应使能位无效时COREn_ID只可读,COREn_ID保存当前正在申请该寄存器原子锁的各个处理器核的识别号;该区域高N位COREn_ID_WEN为COREn_ID的使能位,分别对应低N位的写使能,使能位为高时有效,使能位为低时无效,COREn_ID_WEN写入后会自动清零。5.根据权利要求1所述的方法,其特征在于:处理器核获取寄存器原子锁包括:处理器核请求寄存器原子锁,读取该寄存器原子锁对应的原子锁寄存器中LOCKn_ID的值,判断原子锁寄存器是否处于释放状态,若处于,向该原子锁寄存器中的COREn_ID区域写入本处理器核的识别号,否则退出请求;从原子锁寄存器中的COREn_ID区域读出当前正在请求该原子锁的处理器核识别号,并根据读出的值进行优先级判断,当本处理器核具有最高优先级时,向原子锁寄存器的LOCKn_ID中写入本处理器核的识别号,否则,清除COREn_ID区域中本处理器核的识别号;判断原子锁寄存器的LOCKn_ID中的处理器核是否唯一,若唯一,则本处理器核成功获取寄存器原子锁,否则清除清除原子锁寄存器中LOCKn_ID区域和COREn_ID区域中本处理器核的识别号,释放该寄存器原子锁。6.根据权利要求5所述的方法,其特征在于:各个处理器核请求寄存器原子锁的优先级
判断方式为轮询方式,在一次优先级判断中,优先授权给与上次拿到该原子锁的处理器核紧邻的下一个处理器核,如果优先级授予到的处理器核轮空则优先权顺延到下一个紧邻的处理器核。7.根据权利要求5或6所述的方法,其特征在于:通过设置原子锁...

【专利技术属性】
技术研发人员:陈雷王潇潇庄伟张世远侯国伟杨雪郭嘉郝帅李欣赵晋禹莹张麒
申请(专利权)人:北京微电子技术研究所
类型:发明
国别省市:

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

1