一种多核CPU的调度系统和方法技术方案

技术编号:23314895 阅读:38 留言:0更新日期:2020-02-11 17:43
本发明专利技术实施例公开了一种多核CPU的调度系统和方法,当目标FC口接收到数据包时,与目标FC口对应的目标主CPU处理目标FC口的驱动任务。目标辅CPU查询目标FC口是否存在未被处理的协议任务;若否,则等待第一预设时间后再次查询目标FC口是否存在未被处理的协议任务;若是,则执行目标FC口的协议任务。目标主CPU等待第二预设时间后查询目标FC口是否存在未被处理的协议任务;若否,则等待第二预设时间后再次查询目标FC口是否存在未被处理的协议任务;若是,则执行目标FC口的协议任务。通过对每个FC口设置主CPU和辅CPU,提升了多核CPU的利用率。增加查询机制,有效的避免了同一个协议任务被不同的CPU处理,造成处理结果混乱的情况发生。

A scheduling system and method of multi-core CPU

【技术实现步骤摘要】
一种多核CPU的调度系统和方法
本专利技术涉及存储设备
,特别是涉及一种多核CPU的调度系统和方法。
技术介绍
存储控制器的功能是接收服务器的数据包,然后存储到与存储控制器相连接的硬盘上,整个过程如图1所示,服务器下发数据包到存储控制器,存储控制器通过光纤卡(FibreChannel,FC)的光纤口与服务器连接,接收和发送服务器传输的数据包。存储控制器接收到数据包后,对数据包做相应的处理,最后把数据包落到与存储控制器相连接的硬盘上。在这个过程中,对存储控制器的性能有很大的要求。存储控制器的性能很大程度都在于存储控制器的CPU使用情况。存储设备中的CPU承担的工作是解包、读盘、写盘等操作,由于单位时间内处理的IO数量巨大,所以CPU要面临巨大的处理量。Intel这些年的发展中,CPU在不断的升级换代,其中一个重要的方向,就是CPU的核数越来越多。当前存储通常把多个CPU划分成多个线程,为了性能考虑,每个线程绑定一个CPU,每个线程绑定一个FC口,以做到CPU之间尽量少的干扰。但是随着CPU核数越来越多,比如Intel6230的核数是20核,国内飞腾也推出了64核的CPU,而设备的FC口数量常见的依然是4口或者8口。原有的CPU跟线程、以及FC口一对一的模式已经不适用,基于原有的模式会造成多核CPU中部分CPU无法被充分调用,导致多核CPU的利用率较低。可见,如何提升多核CPU的利用率,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种多核CPU的调度系统和方法,可以提升多核CPU的利用率。为解决上述技术问题,本专利技术实施例提供一种多核CPU的调度系统,包括与多个FC口相对应的多个CPU组,每个CPU组包括有一个主CPU以及至少一个辅CPU;当目标FC口接收到数据包时,与所述目标FC口对应的目标主CPU处理所述目标FC口的驱动任务;所述目标辅CPU查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第一预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务;所述目标主CPU等待第二预设时间后查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第二预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务。可选地,还包括:当所述目标FC口对应的目标辅CPU个数大于1时,则对每个目标辅CPU设置其对应的查询时间,以便于每个目标辅CPU按照其对应的查询时间执行所述查询所述目标FC口是否存在未被处理的协议任务的步骤。可选地,在目标FC口接收到数据包之后还包括:判断各数据包是否具有串行关系;若是,则将具有串行关系的各目标数据包设置同一个协议任务;若否,则对每个数据包设置其对应的协议任务。可选地,在目标FC口接收到数据包之后还包括:判断所述数据包的数据量是否超过预设值;若是,则从其它FC口对应的辅CPU中选取预设个数的辅CPU调整为所述目标FC口的目标辅CPU。可选地,在所述从其它FC口对应的辅CPU中选取预设个数的辅CPU调整为所述目标FC口的目标辅CPU之后还包括:判断在第三预设时间内所述目标FC口接收到的数据包的数据量是否小于预设下限值;若是,则释放从其它FC口对应的辅CPU中选取的辅CPU。可选地,在所述从其它FC口对应的辅CPU中选取预设个数的辅CPU调整为所述目标FC口的目标辅CPU之后还包括:当执行完所述目标FC口当前的协议任务之后,则释放从其它FC口对应的辅CPU中选取的辅CPU。可选地,在所述目标FC口接收到数据包之后还包括:判断所述目标主CPU在第四预设时间内是否完成所述目标FC口的驱动任务;若否,则对所述目标主CPU设置故障标识,并调用一个目标辅CPU作为所述目标FC口新的目标主CPU执行所述目标FC口的驱动任务。可选地,还包括:当所述目标主CPU在第四预设时间内未完成所述目标FC口的驱动任务时,则进行告警提示。本专利技术实施例还提供了一种多核CPU的调度方法,适用于主CPU,所述方法包括:接收到FC口传输的数据包时,处理所述FC口的驱动任务;等待预设时间后查询所述FC口是否存在未被处理的协议任务;当所述FC口不存在未被处理的协议任务时,则等待预设时间后再次查询FC口是否存在未被处理的协议任务;当所述FC口存在未被处理的协议任务时,则执行所述FC口的协议任务。本专利技术实施例还提供了一种多核CPU的调度方法,适用于辅CPU,所述方法包括:查询FC口是否存在未被处理的协议任务;若否,则等待预设时间后再次查询所述FC口是否存在未被处理的协议任务;若是,则执行所述FC口的协议任务。由上述技术方案可以看出,多核CPU的调度系统包括与多个FC口相对应的多个CPU组,每个CPU组包括有一个主CPU以及至少一个辅CPU;每个FC口所对应的CPU组执行的处理流程类似,以任意一个FC口即目标FC口为例,可以将该目标FC口对应的主CPU称作目标主CPU,该目标FC口对应的辅CPU称作目标辅CPU。当目标FC口接收到数据包时,与目标FC口对应的目标主CPU处理目标FC口的驱动任务。数据包有其对应的协议任务,目标辅CPU查询目标FC口是否存在未被处理的协议任务;若否,则等待第一预设时间后再次查询目标FC口是否存在未被处理的协议任务;若是,则执行目标FC口的协议任务。目标主CPU等待第二预设时间后查询目标FC口是否存在未被处理的协议任务;若否,则等待第二预设时间后再次查询目标FC口是否存在未被处理的协议任务;若是,则执行目标FC口的协议任务。当CPU的核数大于FC口个数时,通过对每个FC口设置相应的CPU组,保证了各CPU均有其对应的协议任务,提升了多核CPU的利用率。并且通过区分主CPU和辅CPU,保证了驱动任务的顺利执行。在主CPU和辅CPU执行协议任务之前增加查询机制,有效的避免了同一个协议任务被不同的CPU处理,造成处理结果混乱的情况发生。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术提供的一种数据存储的流转示意图;图2为本专利技术实施例提供的一种多核CPU的调度系统的结构示意图;图3为本专利技术实施例提供的一种适用于主CPU的多核CPU的调度方法的流程图;图4为本专利技术实施例提供的一种适用于辅CPU的多核CPU的调度方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本文档来自技高网...

【技术保护点】
1.一种多核CPU的调度系统,其特征在于,包括与多个FC口相对应的多个CPU组,每个CPU组包括有一个主CPU以及至少一个辅CPU;/n当目标FC口接收到数据包时,与所述目标FC口对应的目标主CPU处理所述目标FC口的驱动任务;/n所述目标辅CPU查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第一预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务;/n所述目标主CPU等待第二预设时间后查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第二预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务。/n

【技术特征摘要】
1.一种多核CPU的调度系统,其特征在于,包括与多个FC口相对应的多个CPU组,每个CPU组包括有一个主CPU以及至少一个辅CPU;
当目标FC口接收到数据包时,与所述目标FC口对应的目标主CPU处理所述目标FC口的驱动任务;
所述目标辅CPU查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第一预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务;
所述目标主CPU等待第二预设时间后查询所述目标FC口是否存在未被处理的协议任务;若否,则等待第二预设时间后再次查询所述目标FC口是否存在未被处理的协议任务;若是,则执行所述目标FC口的协议任务。


2.根据权利要求1所述的系统,其特征在于,还包括:
当所述目标FC口对应的目标辅CPU个数大于1时,则对每个目标辅CPU设置其对应的查询时间,以便于每个目标辅CPU按照其对应的查询时间执行所述查询所述目标FC口是否存在未被处理的协议任务的步骤。


3.根据权利要求1所述的系统,其特征在于,在目标FC口接收到数据包之后还包括:
判断各数据包是否具有串行关系;
若是,则将具有串行关系的各目标数据包设置同一个协议任务;
若否,则对每个数据包设置其对应的协议任务。


4.根据权利要求1所述的系统,其特征在于,在目标FC口接收到数据包之后还包括:
判断所述数据包的数据量是否超过预设值;
若是,则从其它FC口对应的辅CPU中选取预设个数的辅CPU调整为所述目标FC口的目标辅CPU。


5.根据权利要求4所述的系统,其特征在于,在所述从其它FC口对应的辅CPU中选取预设个数的辅CPU调整为所述目标FC口的目标辅CPU之后还包括:

【专利技术属性】
技术研发人员:孙昊
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1