[发明专利]在NUMA系统中提升抢锁操作公平性的方法在审
| 申请号: | 202010634382.9 | 申请日: | 2020-07-02 |
| 公开(公告)号: | CN111782411A | 公开(公告)日: | 2020-10-16 |
| 发明(设计)人: | 杨思博;赵冠杰;于敦山;刘静 | 申请(专利权)人: | 江苏华创微系统有限公司;中国电子科技集团公司第十四研究所 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 深圳紫晴专利代理事务所(普通合伙) 44646 | 代理人: | 陈彩云 |
| 地址: | 210000 江苏省南京*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | numa 系统 提升 操作 公平性 方法 | ||
本发明公开了在NUMA系统中提升抢锁操作公平性的方法,在NUMA系统中设置芯片0和芯片1,芯片0和芯片1通过片间传输桥进行片间互连,芯片1为芯片0的远程芯片,芯片0为本地芯片,然后在芯片1和芯片0内均进行令牌分配、令牌裁决和形成令牌队列。通过对条件存储指令随机赋予代表不同优先级的令牌,并在发生冲突时根据令牌判断条件存储指令的执行结果来代替通过延迟确定执行结果的方法,从而避免了随机加入的长延迟对性能的影响,在令牌裁决中竞争失败的请求不需要从远程芯片返回响应,而是随着远程芯片的同地址请求到达本地芯片时从本地芯片返回失败的响应,省去了响应在片间互连传输的延迟,提升了性能。
技术领域
本发明涉及在NUMA系统中提升抢锁操作公平性技术领域,具体为在NUMA系统中提升抢锁操作公平性的方法。
背景技术
在多核计算机系统中,为了保证共享资源可以被多个处理器核正确地分时复用,需要通过对自旋锁的抢锁操作来决定哪个核获得对共享资源的使用权。
自旋锁是保存在内存中的一个变量,不同类型的自旋锁有不同的操作方式,最简单的方式是这个变量为0表示可以获得锁,为1表示已经上锁,必须等待别的核解锁后才可以使用。
一般抢锁的操作通过链接加载(load link)和条件存储(store conditional)操作完成:
处理器核通过链接加载指令读取锁变量的当前值,同时设置一个监视器(monitor)监控是否有别的核改写这一变量;
处理器核判断读取的值,如果是0,那么使用条件存储指令尝试写入1,如果是1,那么返回(1);
1、如果在监视器设置后到条件存储指令执行前没有其它核修改锁的变量,则条件存储指令执行成功,成功获得锁,否则返回(1)。
2、当多个核尝试同时获得锁时,会产生竞争,此时只有一个核的条件存储指令能够成功执行从而获得锁而其它核会抢锁失败,需要重新进行抢锁操作。
3、抢锁操作能否成功采用的是“先到先得”的原则,但是当系统中多个核争抢同一个锁时,有可能这几个核之间形成固定的模式导致其中某个核一直无法抢到锁,此时这个核就会陷入饥饿状态,即一直处于抢锁状态而无法执行后面的程序。
当多个核尝试同时获得锁时,会产生竞争,此时只有一个核的条件存储指令能够成功执行从而获得锁而其它核会抢锁失败,需要重新进行抢锁操作。
抢锁操作能否成功采用的是“先到先得”的原则,但是当系统中多个核争抢同一个锁时,有可能这几个核之间形成固定的模式导致其中某个核一直无法抢到锁,此时这个核就会陷入饥饿状态,即一直处于抢锁状态而无法执行后面的程序。
图1表示了饥饿的例子,图中三个核都要争抢同一个自旋锁,主要有以下几个过程:
(1)发出链接加载指令,取得数据并设置互斥监视器;
(2)如果得到的数据显示当前没有上锁,发出条件存储指令尝试获得锁;
(3)如果成功获得锁,对锁保护的关键区(critical section)进行操作,操作完成后会释放锁;
(4)在对关键区完成操作后,会执行程序中的其它操作,准备下一次对关键区的访问;
(5)在其它操作完成后,又会再次执行链接加载指令,尝试获得锁并访问关键区。
在图1中核2由于延迟的问题,每次执行条件存储指令时都被别的核抢先一步获得锁而导致执行失败,导致一直处于链接加载-条件存储的循环之中,始终不能执行下一步的程序,因此处于饥饿状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏华创微系统有限公司;中国电子科技集团公司第十四研究所,未经江苏华创微系统有限公司;中国电子科技集团公司第十四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010634382.9/2.html,转载请声明来源钻瓜专利网。





