一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于握手协议的多核间缓存刷新方法与流程

2022-03-22 20:15:48 来源:中国专利 TAG:

1.本发明涉及一种基于握手协议的多核间缓存刷新方法,属于高性能计算技术领域。


背景技术:

2.高性能操作系统作为一款支持smp架构的操作系统,其在运行时,有清空所有处理器的缓存的需求,即需要完成以下动作:发起核向其他核发送缓存刷新请求后,只能在所有接受到请求的其他核完成缓存刷新任务后,所有核才能继续完成其他工作。
3.高性能操作系统内提供一种基于核间中断的多核间缓存刷新方法,基于核间中断实现,它允许某核向其他核发送缓存刷新请求,然而期间并不能限制其他核接收中断或完成其他任务,因此无法保证缓存是完全干净的,无法完成系统的后续改变硬件配置的操作。将死等轮询方法加入这种方法也无法解决上述需求,因为其他核在处理缓存刷新请求时的“死等”行为是十分危险的,它存在一种可能性:一个核发起消息请求后,另一个核拿到某竞争资源并进入处理消息请求后开始死等轮询,而其他核仍在竞争已经被占用的资源从而无法响应第一个处理器核发送来的消息请求,从而造成死锁。
4.综上所述,在高性能操作系统上实现的多核间同步缓存刷新方法,在保证同步的同时,更需要保证多核间的资源竞争问题,避免死锁的发生;而目前高性能计算操作系统中的多核间缓存刷新不具备同步功能,无法保证缓存的干净状态。


技术实现要素:

5.本发明的目的是提供一种基于握手协议的多核间缓存刷新方法,以解决现有方法存在的问题,避免死锁的发生。
6.为达到上述目的,本发明采用的技术方案是:提供一种基于握手协议的多核间缓存刷新方法,对于发起核,包括以下步骤:s1、发起核通过核间中断向其他核发起缓存刷新请求;s2、发起核死等轮询其他核是否完成缓存刷新操作并计时;s3、如果未在规定时间内判到所有的其他核的缓存刷新完成状态,则执行以下步骤:s31、发起核向其他核发送任务结束消息,并等待来自所有的其他核的任务结束答复;s32、发起核在收到所有的其他核的任务结束答复后,记录失败次数,如果失败次数小于设定阀值,则重复步s1中操作;如果失败次数大于设定阀值,则直接报错并退出;s4、如果在规定时间内判到所有的其他核的缓存刷新完成状态,则执行以下步骤:s41、发起核自身刷新缓存;s42、在包括发起核以及所有的其他核在内的所有核缓存干净状态下,完成需要进行的操作;
s43、发起核再向所有的其他核发送结束任务运行命令,并等待所有的其他核的任务结束答复;s44、发起核在收到所有的其他核的任务结束答复后,整个任务结束;对于其他核,包括以下步骤:s1、其他核接受到来自发起核的缓存刷新请求后,中断进入缓存刷新函数入口,完成缓存刷新;s2、其他核向发起核告知缓存刷新任务完成,并死等轮询发起核的下一步命令;s3、其他核收到发起核的任务退出命令,向发起核发送任务结束答复,并结束此次刷新任务。
7.上述技术方案中进一步改进的方案如下:1. 上述s42中所述的需要进行的操作包括设置硬件存控寄存器、进程内存状态收集。
8.由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明提出一种基于握手协议的多核间缓存刷新方法,用于实现多核间缓存刷新,保证操作系统完成该方法后的某个时间段内,所有处理器多核缓存的状态是干净的,以便进行后续进行设置硬件存控寄存器、进程内存状态收集等操作,避免多核间的由于资源竞争导致死锁问题。
具体实施方式
9.实施例:本发明提供一种基于握手协议的多核间缓存刷新方法,对于发起核,包括以下步骤:s1、发起核通过核间中断向其他核发起缓存刷新请求;s2、发起核死等轮询其他核是否完成缓存刷新操作并计时;s3、如果未在规定时间内判到所有的其他核的缓存刷新完成状态,则执行以下步骤:s31、发起核可以判定系统中存在资源竞争的死锁,并向其他核发送任务结束消息,并等待来自所有的其他核的任务结束答复;s32、发起核在收到所有的其他核的任务结束答复后,记录失败次数,如果失败次数小于设定阀值,则重复步s1中操作;如果失败次数大于设定阀值,则证明系统不适合继续该操作,直接报错并退出;s4、如果在规定时间内判到所有的其他核的缓存刷新完成状态,则执行以下步骤:s41、发起核自身刷新缓存,此时所有核组的缓存处于干净状态;s42、在包括发起核以及所有的其他核在内的所有核缓存干净状态下,完成需要进行的操作;s43、发起核再向所有的其他核发送结束任务运行命令,并等待所有的其他核的任务结束答复;s44、发起核在收到所有的其他核的任务结束答复后,整个任务结束;对于其他核,包括以下步骤:s1、其他核接受到来自发起核的缓存刷新请求后,中断进入缓存刷新函数入口,完
成缓存刷新;s2、其他核向发起核告知缓存刷新任务完成,并死等轮询发起核的下一步命令;s3、其他核收到发起核的任务退出命令,向发起核发送任务结束答复,并结束此次刷新任务。
10.上述s42中的需要进行的操作包括设置硬件存控寄存器、进程内存状态收集。
11.对上述实施例的进一步解释如下:本发明为高性能操作系统提供了一种开机后仍可以清空缓存并在一段时间内保持缓存干净状态的方法;它采用握手协议建立了完备的同步响应机制,保证了核间同步的一致性;再利用多核间同步缓存刷新流程的理论运行时间制定了方法超时阀值,依此设计了超时处理办法,保证该方案不会导致系统内死锁,给通用smp架构芯片提供了一种快速的、健壮的、通用的多核间同步缓存刷新并保持缓存干净状态的方法。
12.本发明的缓存刷新方法是基于核间中断来实现多核间任务请求的。为了保证操作系统完成该方法后的某个时间段内,所有缓存的状态是干净的,多核间的缓存刷新请求和完成采用握手协议进行同步,任务完成前保证所有核组不会去做其他任务;核间同步缓存刷新过程理论上时间不会过长,若超过一段时间发起核未收到所有其他核回复的消息,则发起核可以根据其他核缓存刷新完成状态判断是否有死锁发生,并通过超时重试方案配合握手协议解决资源竞争导致的死锁问题,具体流程如下:对于发起核:1、发起核通过核间中断向其他核发起同步缓存刷新请求;2、发起核死等轮询其他核是否完成缓存刷新操作并计时;3、如果未在规定时间内判到其他所有核的缓存刷新完成状态:3-1、发起核可以判定系统中存在资源竞争的死锁,并向其他核发送任务结束消息,并等待其他所有核任务结束答复;3-2、收到其他所有核的答复后,记录失败次数,如果失败次数小于设定阀值,则重复步骤1中操作;如果失败次数大于设定阀值,则证明系统不适合继续该操作,直接报错并退出。
13.4、如果在规定时间内判到其他所有核的缓存刷新完成状态:4-1、则自身刷新缓存,此时所有核组的缓存处于干净状态;4-2、在所有核缓存干净状态下,完成需要进行的操作;4-3、发起核再向其他核发送结束任务运行命令,并等待其他所有核任务结束答复;4-4、收到其他核任务结束答复后,整个任务结束。
14.对于其他核:1、其他核接受到缓存刷新请求后,中断进入缓存刷新函数入口,完成缓存刷新;2、其他核向发起核告知刷新任务完成,并死等轮询发起核的下一步命令;3、其他核收到发起核的任务退出命令,向发起核发送任务结束答复,并结束此次刷新任务。
15.按照上述流程,即可实现安全的、稳定的完成全核缓存的刷新功能,并可以保证在
一段时间内,保证全核缓存的状态是干净的。
16.采用上述一种基于握手协议的多核间缓存刷新方法时,其用于实现多核间缓存刷新,保证操作系统完成该方法后的某个时间段内,所有处理器多核缓存的状态是干净的,以便进行后续改变硬件配置操作,避免多核间的由于资源竞争导致死锁问题。
17.为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:高性能计算操作系统:一款支持高性能计算的、可抢占的通用操作系统,支持多核smp架构。
18.缓存刷新:将cpu缓存中所有暂存内容清空。
19.死锁:指两个或者两个以上进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象。
20.核间中断:是一种特殊类型的中断,在多核处理器中,如果处理器需要来自其他处理器的动作,一个处理器向另外一个处理器发送的中断行为。
21.死等轮询:关闭中断并死循环等待直到条件满足后退出。
22.上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献