一种基于SAS的管理调度装置、系统及方法制造方法及图纸

技术编号:15791504 阅读:62 留言:0更新日期:2017-07-09 21:17
本申请涉及通信技术领域,尤其涉及一种基于SAS的管理调度装置、系统及方法。该装置基于上层协议请求与SAS域中的设备进行通信。链表管理模块通过链表的方式管理基于该上层协议请求而得到的待处理输入输出信息、设备信息。该调度器在有空闲的SAS通路后,通过索引链表的方式获取该链表中的待处理输入输出信息、设备信息。该SAS通路中的DMAC基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。本申请通过链表管理待处理任务,并实现了统一调度,降低内部资源开销。

【技术实现步骤摘要】
一种基于SAS的管理调度装置、系统及方法
本专利技术涉及通信
,尤其涉及SAS(SerialAttachedSCSI,串行小型计算机系统接口)技术。
技术介绍
随着SAS(SerialAttachedSCSI,串行小型计算机系统接口)在服务器以及阵列中的广泛应用,通过SASdomain(SAS域)组网的设备越来越多。在SASHOST/Target(SAS主机/目标)应用中,HOST/Target(主机/目标)需要通过SASExpander(SAS扩展设备)与远端的Target/HOST(目标/主机)进行互联通信。也就是说,无论HOST(主机)与Target(目标)通信,还是Target与HOST通信,都不在是简单的点对点直连模式,往往需要通过expander(扩展设备)进行扩展。SAS控制器内部会包含多个port(端口),有些port(端口)直连远端设备,有些port(端口)通过expander(扩展设备)与远端设备互联。例如,一种自研HOST侧的SAS控制器支持2Kdevice(设备)和4KIO(输入输出)并发,Target侧SAS控制器支持64个主机和256个IO并发。因此,SAS控制器内部如何高效管理多port(端口)、多device(设备),以及各device(设备)多IO并发,是必须解决的一个技术问题。按照SAS标准协议分层,各port相互独立,由portlayer(接口层)的PL_OC状态机来管理待发送请求,该机制存有一个严重的问题:一个SAS控制器所支持的device数以及IO并发数与port没有严格的映射关系,如果各port下device和IO分开管理,则每个port必须按照所支持的最大规格对device和IO进行管理,这样所需资源开销与控制器内部port个数成正比,数目庞大,不易管理。现有技术方案通常是通过软件层面进行待发送任务管理,由软件调度选择一个发送请求来知会hardware(硬件)进行帧处理。此种方案存在以下问题:(1)软件与逻辑之间每个IO存在多次交互,包括:任务下发配置逻辑寄存器、逻辑完成中断上报、软件查询完成状态等,因此处理时延大;(2)软件内部需要维护任务队列,其访问队列缓存空间开销大;(3)各Port独立管理资源开销巨大。
技术实现思路
本文描述了一种基于SAS的管理调度装置、系统及方法,以实现对多端口、多设备、多IO的统一管理和调度。在一方面,本申请实施例提供一种基于SAS的管理调度装置。该装置基于上层协议请求与相应SAS域进行通信。该装置包括链表管理模块、调度器、SAS通路中的DMAC(DirectMemoryAccessController,直接内存访问控制器)直接内存访问控制器。该链表管理模块通过链表的方式管理基于上层协议请求而得到的待处理IO信息、设备信息。该调度器在有空闲的SAS通路后,通过索引该链表的方式获取该链表中的待处理IO信息、设备信息。该SAS中的DMAC,基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。另一方面,本申请实施例提供了一种基于SAS控制器,该控制器包括上述方面的装置。另一方面,本申请实施例提供了一种基于SAS的管理调度系统,该系统包括上述方面的装置及相应SAS域,且该SAS域中包括多个设备。又一方面,本申请实施例提供了一种基于SAS的管理调度方法。SAS控制器基于上层协议请求与相应SAS域中的设备进行通信。该方法包括,SAS控制器查看相应SAS通路状态,并在所述SAS通路空闲时,通过索引链表的方式获取待处理输入输出信息、设备信息。其中,该待处理输入输出信息、设备信息是通过解析上层协议请求而获得,并通过链表方式对该输入输出信息、设备信息进行管理。该SAS控制器基于该待处理输入输出信息、设备信息,将与SAS域中的相应设备进行帧交互。本申请实施例通过硬件方式(如SAS控制器)实现对链表的管理及调度,并通过链表对多IO并发进行统一管理。本申请实施例能够高效管理并调度多端口、多设备、多IO并发,降低了内部资源开销。此外,本申请实施例通过SAS控制器感知SAS通路状态以及查看链表管理模块中是否有待处理任务,降低处理时延。在一个可能设计中,待处理IO信息为待处理IOid(标识),目标设备信息为目标设备id(标识)。在一个可能设计中,在上述链表中还包括与设备进行帧交互的端口信息,且该端口信息为端口下是否有待处理设备信息。调度器在查看到该端口信息为端口下有待处理设备信息时,获取该端口下的设备信息,根据得到的该设备信息获取待处理IO信息。在一个可能设计中,待处理IO信息、设备信息、端口信息以数据结构形式存储于上述链表中。IO结点数据结构包括以下字段中的一个或多个:用于指示当前IO的前驱IO标识、用于指示当前IO的后继IO标识。设备结点数据结构包括以下字段中的一个或多个:用于指示当前设备下是否存在待处理命令IO、用于指示当前设备下待处理命令IO链表尾结点对应IO标识、用于指示当前设备下待处理命令IO链表头结点对应IO标识、用于指示当前设备下是否存在待处理数据IO、用于指示当前设备下待处理数据IO链表尾结点对应IO标识、用于指示当前设备下待处理数据IO链表头结点对应IO标识、用于指示当前结点的前驱结点设备标识、用于指示当前结点的后继结点设备标识。端口结点数据结构包括以下字段中的一个或多个:用于指示当前端口下是否有待处理设备、用于指示当前端口下待处理设备链表表头结点标识、用于指示当前端口下待处理设备链表表尾结点标识。由于端口、设备、IO数据结构分开,由端口结点数据结构、设备链表结点数据结构、IO链表结点数据结构共同组成链表。因此,当出现异常时,方便了SAS控制器将设备下的所有待处理IO取消,或者将端口下的所有待处理IO取消。而在设备链表结点数据结构中,由于命令和数据分开,即以不同字段形式表示出来,因此,可实现命令调度优先、数据调度优先或RR等调度优先策略。在一个可能设计中,SAS域中的设备为主机或盘片。本专利技术通过SAS控制器感知SAS通路状态,并通过检索SAS控制器中链表,将待处理任务通过空闲SAS通路发送出去,实现了SAS域中设备的尽可能轮转,同时防止了高负荷及饿死现象的产生。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为本专利技术实施例提供的主机通过SAS控制器组网的示意图;图2为本专利技术实施例提供的盘片通过SAS控制器组网的示意图;图3为本专利技术实施例提供的基于SAS的管理调度系统示意图;图4是本专利技术实施例提供的调度器实现调度的示意图;图5是本专利技术实施例提供的LM模块统一管理链表的示意图;图6是本专利技术实施例提供的基于SAS的管理调度方法流程图。具体实施方式下面结合附图,对本专利技术的实施例进行描述。图1是SAS主机通过SAS控制器组网示意图。图1中,SAS主机(SASHOST)通过该主机中的SAS控制器组网。此时,在SAS域(SASdomain)中包含多个盘片和扩展设备(Expander)。该扩展设备用于连接SAS控制器与盘片,和/或连接SAS控制器与另一扩展设备,和/或连接盘片与盘片等,目的是使在SAS域中能够连接更多的盘本文档来自技高网
...
一种基于SAS的管理调度装置、系统及方法

【技术保护点】
一种基于串行小型计算机系统接口的管理调度装置,其中,所述装置基于上层协议请求与相应串行小型计算机系统接口域中的设备进行通信,其特征在于,包括:链表管理模块,通过链表的方式管理基于所述上层协议请求而得到的待处理输入输出信息、设备信息;调度器,在有空闲的串行小型计算机系统通路后,通过索引所述链表的方式获取所述链表中的待处理输入输出信息、设备信息;所述串行小型计算机系统通路中的直接内存访问控制器,基于所述待处理输入输出信息、设备信息,将与所述串行小型计算机系统域中的相应设备进行帧交互。

【技术特征摘要】
1.一种基于串行小型计算机系统接口的管理调度装置,其中,所述装置基于上层协议请求与相应串行小型计算机系统接口域中的设备进行通信,其特征在于,包括:链表管理模块,通过链表的方式管理基于所述上层协议请求而得到的待处理输入输出信息、设备信息;调度器,在有空闲的串行小型计算机系统通路后,通过索引所述链表的方式获取所述链表中的待处理输入输出信息、设备信息;所述串行小型计算机系统通路中的直接内存访问控制器,基于所述待处理输入输出信息、设备信息,将与所述串行小型计算机系统域中的相应设备进行帧交互。2.如权利要求1所述的一种装置,其特征在于,所述待处理输入输出信息为待处理输入输出标识,所述设备信息为设备标识。3.如权利要求1或2所述的一种装置,其特征在于,在所述链表中还包括与所述设备进行帧交互的端口信息,且所述端口信息为所述端口下是否有待处理设备信息。4.如权利要求3所述的一种装置,其特征在于,所述索引方式为,所述调度器在查看到所述端口信息为所述端口下有待处理设备信息时,获取所述端口下的设备信息,根据得到的所述设备信息获取待处理输入输出信息。5.如权利要求3或4所述的一种装置,其特征在于,所述端口信息是以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前端口下是否有待处理设备、用于指示当前端口下待处理设备链表表头结点标识、用于指示当前端口下待处理设备链表表尾结点标识。6.如权利要求1至5任意一项所述装置,其特征在于,所述装置通过解析来自所述上层协议的请求而得到所述待处理输入输出信息、所述设备信息,并将得到的所述待处理输入输出信息存储至所述链表中。7.如权利要求1至6任意一项所述装置,其特征在于,所述待处理输入输出信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前输入输出标识的前驱输入输出标识、用于指示当前输入输出标识的后继输入输出标识。8.如权利要求1至5任意一项所述装置,其特征在于,所述装置通过解析来自所述上层协议的请求而得到包含所述待处理输入输出信息的相应输入输出上下文内容。9.如权利要求8所述的一种装置,其特征在于,所述输入输出上下文内容以数据结构形式存储于第一表项中,且所述数据结构包括以下字段中的一个或多个:输入输出标识是否有效、输入输出标识、输入输出标识对应帧在存储空间的地址、输入输出标识对应帧长度。10.如权利要求9所述的一种装置,其特征在于,所述调度器或所述直接内存访问控制器,根据所述特处理输入输出信息通过索引所述第一表项的方式,获取相应输入输出上下文内容,以便所述直接内存访问控制器根据所述输入输出上下文内容得到与所述输入输出标识相对应帧数据,以实现对所述帧数据的交互。11.如权利要求1至10任意一项所述装置,其特征在于,所述设备信息以数据结构形式存储于所述链表中,且所述数据结构包括以下字段中的一个或多个:用于指示当前设备下是否存在待处理命令输入输出标识、用于指示当前设备下待处理命令输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理命令输入输出链表头结点对应输入输出标识、用于指示当前设备下是否存在待处理数据输入输出标识、用于指示当前设备下待处理数据输入输出链表尾结点对应输入输出标识、用于指示当前设备下待处理数据输入输出链表头结点对应输入输出标识、用于指示当前结点的前驱结点设备标识、用于指示当前结点的后继结点设备标识。12.如权利要求1至11任意一项所述装置,其特征在于,所述装置还包括CPU,所述CPU用于扫描所述串行小型计算机系统接口域中的设备,以得到包含所述设备信息在内的所述串行小型计算机系统接口域中所有设备相关内容。13.如权利要求12所述的一种装置,其特征在于,所述设备相关内容以数据结构形式存储于第二表项中,且所述数据结构包括以下字段中的一个或多个:设备类型字段、设备下命令IO和数据IO的调度优先级字段、与设备交互的端口标识字段、设备在SAS域中的地址。14.如权利要求13所述的一种装置,其特征在于,所述设备信息为设备标识,且所述调度器或所述直接内存访问控制器根据所述设备标识,通过索引所述第二表项的方式,获取与所述设备标识相对应的设备相关内容,以便所述直接内存访问控制器根据所述设备相关内容实现与所述设备的帧交互。15.一种基于串行小型计算机系统接口控制器,其特征在于,包括如权利要求1至14中任意一项所述的装置。16.一种基于串行小型计算机系统接口的管理调度系统,其特征在于,包括如权利要求1至15中任意一项所述的装置以及所述串行小型计算机系统接口域,且所述串行小型计算机系统接口域包括多个设备。...

【专利技术属性】
技术研发人员:宁佐林刘荣国
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1