首页> 中国专利> 高速外围部件互连交换控制器及其实现方法

高速外围部件互连交换控制器及其实现方法

摘要

本发明公开了一种高速外围部件互连交换控制器,用于实现通过PCI Express协议连接的多个主机控制器之间的通信,包括:配置处理器,用于向多个主机控制器提供PCI Express交换控制器的地址范围,并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;交换单元,用于实现配置处理器与多个主机控制器、以及多个主机控制器之间的通信。本发明保证了系统工作的高可靠性,实现了连续的不间断工作。

著录项

  • 公开/公告号CN101710314A

    专利类型发明专利

  • 公开/公告日2010-05-19

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200910226002.1

  • 发明设计人 张一鸣;吴成百;

    申请日2009-11-17

  • 分类号G06F13/42(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚;吴孟秋

  • 地址 518057 广东省深圳市南山区科技南路55号

  • 入库时间 2023-12-17 23:52:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-02-27

    授权

    授权

  • 2010-09-08

    实质审查的生效 IPC(主分类):G06F13/42 申请日:20091117

    实质审查的生效

  • 2010-05-19

    公开

    公开

说明书

技术领域

本发明涉及通信领域,具体而言,涉及一种高速外围部件互连(Peripheral Component Interconnect Express,简称为PCI Express)交换控制器及其实现方法。

背景技术

目前,基于PCI Express的存储/服务器硬件一般采用双控架构,图1是根据相关技术的双控架构示意图,如图1所示,整个系统由两个相对独立的主机控制器组成,每个主机控制器的主要架构由数据输入输出接口(Input/Output Interface)、数据输入输出通道(Input/Output Channel)、中央处理器(Central Processing Unit,简称为CPU)、内存(Cache)组成,其中,数据输入输出接口、输入输出通道和内存的数量不进行限定,均可以有若干组。

数据的处理分为两种,分别为数据输入和数据输出。

第一,数据输入:待处理的数据通过某个数据输入输出通道进入系统,经过数据输入输出接口解码为处理器能够识别的数据,交给处理器处理。

第二,数据输出:经处理器处理过的数据,经数据输入输出接口编码为相应接收设备能够识别的数据,经数据输入输出通道发出。

两个主机控制器通过支持非透明桥(Non-Transparent Bridge)功能的PCI Express接口实现互联。其中,非透明桥功能是PCIExpress的一个附加功能,主要用于对PCI Express两边的设备实现一种相互隔离的作用,以防止两边的设备出现相互争夺系统资源的问题。由于PCI Express是一种点对点的互联技术,因此双控架构下两个主机控制器可以通过PCI Express直连,以实现两者之间的冗余互备、协同工作,内存共享和同步等功能。

但是,随着目前对服务器/存储设备的性能要求越来越高,特别是一些大数据量高传输速率的应用场合,双控架构的存储设备有时已经很难达到应用要求,因此高端的多控架构越来越受到关注。由于PCI Express规范中规定PCI Express是一种点对点互联技术,并不支持菊花链、星型等拓扑结构,这就使得基于PCI Express的多主机控制器架构不能通过直接套用已经成熟的双控架构的直连模式实现。

发明内容

针对相关技术中无法实现基于PCI Express的多主机控制器架构的问题而提出本发明,为此,本发明的主要目的在于提供一种PCIExpress交换控制器及其实现方法,以解决上述问题。

为了实现上述目的,根据本发明的一个方面,提供了一种高速外围部件互连PCI Express交换控制器,用于实现通过PCI Express协议连接的多个主机控制器之间的通信,

根据本发明的高速外围部件互连PCI Express交换控制器包括:配置处理器,用于向多个主机控制器提供PCI Express交换控制器的地址范围,并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;交换单元,用于实现配置处理器与多个主机控制器、以及多个主机控制器之间的通信。

优选地,交换单元包括:上行端口和多个下行端口,其中,多个下行端口中的每个下行端口连接至多个主机控制器中的一个主机控制器,交换单元还用于通过上行端口与配置处理器进行通信,通过多个下行端口与多个主机控制器进行通信。

优选地,配置处理器还用于配置交换单元建立的多个下行端口的地址空间和与多个下行端口对应的地址映射。

优选地,配置处理器还用于根据来自多个主机控制器中的一个主机控制器的地址信息,将该主机控制器的地址映射到地址信息对应的主机控制器。

优选地,配置处理器还用于判断是否存在有对工作异常的主机控制器的访问,并在判断结果为是的情况下,取消对工作异常的主机控制器的访问,向请求访问的主机控制器返回访问失败的信息,将工作异常的主机控制器对应的地址空间标识为不可用。

优选地,配置处理器还用于将对工作异常的主机控制器的访问切换到其它主机控制器。

为了实现上述目的,根据本发明的另一个方面,提供了一种PCIExpress交换控制器的实现方法。

根据本发明的PCI Express交换控制器的实现方法包括:向多个主机控制器提供PCI Express交换控制器的地址范围;接收来自多个主机控制器中请求访问的主机控制器的地址信息,并将该请求访问的主机控制器的地址映射到地址信息对应的主机控制器。

优选地,在向多个主机控制器提供PCI Express交换控制器的地址范围之前,上述方法还包括:预先建立与多个主机控制器连接的多个下行端口的地址空间和与多个下行端口对应的地址映射。

优选地,在将该请求访问的主机控制器的地址映射到地址信息对应的主机控制器之后,上述方法还包括:判断是否存在有对工作异常的主机控制器的访问;如果判断结果为是,则取消对工作异常的主机控制器的访问,并向请求访问的主机控制器返回访问失败的信息。

优选地,如果判断结果为是,则将对工作异常的主机控制器的访问切换到其它主机控制器。

通过本发明,采用配置处理器向多个主机控制器提供PCIExpress交换控制器的地址范围并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;以及采用交换单元实现配置处理器与多个主机控制器之间的通信,解决了相关技术中无法实现基于PCI Express的多主机控制器架构的问题,保证了系统工作的高可靠性,实现了连续的不间断工作。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据相关技术的双控架构示意图;

图2是根据本发明实施例的PCI Express交换控制器的结构框图;

图3是根据本发明实施例的单交换控制器、四主机控制器架构示意图;

图4是根据本发明实施例的单交换控制器、六主机控制器架构示意图;

图5是根据本发明实施例的双交换控制器、六主机控制器架构示意图;

图6是根据本发明实施例的PCIe非透明桥的示意图;

图7是根据本发明实施例的非透明桥配置空间的示意图;

图8是根据本发明实施例的PCI Express交换控制器的实现方法的流程图;

图9是根据本发明实施例的PCI Express交换控制器的实现方法的详细流程图。

具体实施方式

考虑到相关技术中无法实现基于PCI Express的多主机控制器架构的问题,本发明提供了一种PCI Express交换控制器及其实现方法,用于实现通过PCI Express协议连接的多个主机控制器之间的通信,通过采用配置处理器向多个主机控制器提供PCI Express交换控制器的地址范围并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;以及采用交换单元实现配置处理器与多个主机控制器之间的通信,以保证系统工作的高可靠性并实现连续的不间断工作。

根据本发明的实施例,提供了一种PCI Express交换控制器,用于实现通过PCI Express协议连接的多个主机控制器之间的通信。图2是根据本发明实施例的PCI Express交换控制器的结构框图,如图2所示,包括PCI Express配置处理器(以下简称为配置处理器21)和PCI Express交换单元(以下简称为交换单元22),下面对其进行详细描述。

配置处理器21,用于预先配置交换单元22建立的多个下行端口的地址空间和与多个下行端口对应的地址映射,向多个主机控制器提供PCI Express交换控制器的地址范围,然后,主机控制器通过其非透明桥端口获取PCI Express交换控制器的地址范围,配置处理器21根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问。

交换单元22,通过PCI Express接口连接至配置处理器21,用于实现配置处理器21与多个主机控制器、以及多个主机控制器之间的通信。

其中,交换单元22的PCI Express端口包括:上行端口(UpstreamPort)和多个下行端口(Downstream Port),其中,多个下行端口中的每个下行端口连接至多个主机控制器中的一个主机控制器的非透明桥端口,交换单元22还用于通过上行端口与配置处理器进行通信,通过多个下行端口与多个主机控制器进行通信。

具体地,在主机控制器发起一个对应其它主机控制器的地址访问之后,上述配置处理器21还用于根据来自该主机控制器的地址信息,将该主机控制器的地址映射到地址信息对应的主机控制器的PCI Express端口,实现对主机控制器的访问。

此外,上述配置处理器21还用于判断是否存在有对工作异常的主机控制器的访问,并在判断结果为是的情况下,取消对工作异常的主机控制器的访问,向请求访问的主机控制器返回访问失败的信息(即,返回相应的访问出错信号),将工作异常的主机控制器对应的地址空间标识为不可用。

并且,上述配置处理器21还用于在交换控制器工作异常时产生出错信号,并将对工作异常的主机控制器的访问切换到其它主机控制器。

另外,上述配置处理器用于负责PCI Express协议的处理、热插拔的管理、交换通道的管理以及PCI Express交换单元的寄存器的管理。这种架构下,可以实现各个主机控制器地位完全对等,并且依靠上行端口上的配置处理器21与各个主机控制器之间消息传递,可以实现系统中所有监控信息被所有主机控制器共享。

需要说明的是,根据本发明的实施例,主机控制器部分不需要任何改动,主机控制器由数据输入输出通道、数据输入输出控制器、处理器和内存组成,主机控制器部分的PCI Express端口需要支持的非透明桥(Non-Transparent Bridge,简称为NTB)功能。

根据本发明的实施例,交换控制器的数量和交换单元的下行端口的数量是不受限制的,因此本发明具有相当的灵活性,在不需要对主机控制器作任何更改的情况下,只需通过更改高速背板/交换板,即只需更改交换控制器,即可实现系统的扩展增强。下面分为两个方面具体描述上述系统扩展增强实现过程。

第一,通过选择具有相应数目下行口的交换单元实现相应数量的主机控制器的互联。

图3是根据本发明实施例的单交换控制器、四主机控制器架构示意图,图4是根据本发明实施例的单交换控制器、六主机控制器架构示意图,如图3、图4所示,选择4个下行端口的交换单元,即可实现4个主机控制器架构,具体架构可参考图3;选择6个下行端口的交换单元,即可实现6个主机控制器架构,具体架构可参考图4。

第二,通过增加交换控制器,实现多交换控制器架构,使系统数据具备更多的交换路径,实现更快速的数据传输,同时多交换控制器还可以实现相互间的冗余互备,增强系统的强壮度。

图5是根据本发明实施例的双交换控制器、六主机控制器架构示意图,如图5所示,选择两个交换控制器,每个交换控制器包括具有6个下行端口的交换单元,可以用于实现多交换控制器架构。

另外,由于交换控制器可以单独做在背板或交换单板上,因此本发明实施例不受主机控制器硬件的影响,只需改变交换单元的规格,即只需改动背板即可实现主机控制器的相应扩展,从而实现存储系统的硬件性能的线性增加和可靠性的增强。

图6是根据本发明实施例的PCIe非透明桥的示意图,如图6所示,Port C能够被配置成非透明桥NTB端口。在NTB模式下,Port C在通过NTB端口相连的背靠背节点,使用了虚拟PCI Express链接进行了扩展。连接到PCI-PCI透明桥上的节点称为内部节点,连接到外部PCI Express链接上的节点称为外部节点。PCI Express事务经过内部节点和外部节点,允许事务穿越两个不同的内存地址域。

图7是根据本发明实施例的非透明桥配置空间的示意图,如图7所示NTB配置空间,两个NTB节点的配置空间被映射到Bar4,允许访问在每一侧的任何一个PCI Express Master。

在上述实施例的实际应用过程中,可以通过PCI Express总线实现主机控制器之间的同步,且同步最大带宽可在设计时调节。使用PCI Express非透明桥功能,可以实现各个主机或控制器之间相对隔离,并且不影响各个主机或控制器之间的高速通讯。具体地,利用主机控制器上自带的DMA功能,使系统能通过PCI Express总线来实现各个主机或控制器的内存之间实现数据直接同步,而很少占用主机控制器上的CPU资源。通过多个主机控制器上的多个PCIExpress非透明桥端口,可以实现多个交换环路的冗余控制。根据PCI Express Switch的原理和特性,将一个带PCI Express功能的价格便宜的小处理器上连接至Switch的上行端口,将多个主机或控制器连至Switch的下行端口,可以保证各个主机或控制器地位完全对等,并且依靠上行端口上的小处理器与各个主机或控制器之间消息传递,可以实现Switch以及系统中所有监控信息被所有主机或控制器共享。

根据本发明的实施例,还提出了一种PCI Express交换控制器的实现方法,图8是根据本发明实施例的PCI Express交换控制器的实现方法的流程图,如图8所示,包括如下的步骤S802至步骤S804。

步骤S802,向多个主机控制器提供PCI Express交换控制器的地址范围。

在上述步骤S802之前,该方法还包括:预先建立与多个主机控制器连接的多个下行端口的地址空间和与多个下行端口对应的地址映射。

步骤S804,接收来自多个主机控制器中请求访问的主机控制器的地址信息,并将该请求访问的主机控制器的地址映射到地址信息对应的主机控制器。

进一步地,上述方法还包括:PCI Express交换控制器可以判断是否存在有对工作异常的主机控制器的访问;如果判断结果为是,则取消对工作异常的主机控制器的访问,并向请求访问的主机控制器返回访问失败的信息,还可以将对工作异常的主机控制器的访问切换到其它主机控制器。

下面结合图9对上述PCI Express交换控制器及其实现方法进行详细描述。

图9是根据本发明实施例的PCI Express交换控制器的实现方法的详细流程图,如图9所示,该实施例基于图3的单交换控制器、四主机控制器架构,具体包括如下的步骤S902至步骤S928:

步骤S902:交换控制器启动以后,交换配置处理器会配置和初始化交换单元(PCI Express)的上行和下行端口。

步骤S904:主机控制器启动以后,主机初始化其相应的PCIExpress NT端口。

步骤S906:交换控制器根据其下行端口对应的各主机控制器的在位情况,申请地址空间并配置各个PCI Express端口相应的地址映射。

步骤S908:主机控制器通过PCI Express NT端口获取交换控制器的地址范围(即,NT Port对应的地址范围)。

步骤S910:任意主机控制器对其他主机控制器内存的访问被交换控制器转化为相应地址的访问。举例说明,假设主机控制器B需要通过交换控制器A访问主机控制器A的内存中的数据,由于主机控制器B有交换控制器的地址范围,这个地址范围对应所有4个主机控制器的内存地址,因此主机控制器只需要发起一个对应主机控制器A的内存地址的访问即可,交换控制器A根据这个地址可以对应到相应的PCI Express Port1端口,然后通过这个端口地址被翻译成主机控制器A内存的实际地址,最终完成对主机控制器A内存的数据访问。

步骤S912:系统处于正常工作状态。

步骤S914:系统出现某个主机控制器工作异常或被拔出,同时产生相应的出错信号。

步骤S916和步骤S918:交换控制器判断是否有出错主机控制器的访问,如果判断结果为是,则取消访问操作并返回访问出错信号,没有则继续;如果判断结果为否,则继续进行步骤S920。

步骤S920:交换控制器将出错的主机控制器对应的地址空间标记为不可用,然后继续进行步骤S912。

步骤S922:交换控制器A出错,并产生出错信号。

步骤S924:由交换控制器A切换到交换控制器B。

步骤S926和步骤S928:各个主机控制器判断是否有通过交换控制器A的访问,如果判断结果为是,则通过交换控制器B重新发起访问,如果判断结果为否,则继续进行步骤S812。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

综上所述,根据本发明的上述实施例,提供了一种PCI Express交换控制器及其实现方法,通过采用配置处理器向多个主机控制器提供PCI Express交换控制器的地址范围并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;以及采用交换单元实现配置处理器与多个主机控制器之间的通信,实现了在高端存储/服务器中的多主机控制器架构。并且,主机和控制器之间实现高带宽冗余备份控制,每个主机控制器在系统中的相互隔离,地位完全对等,当单个主机控制器出现故障时,故障主机控制器能够被效隔离,其它主机控制器能够迅速接管故障主机控制器的相应处理任务,且在热插拔更换故障主机控制器后,能恢复原来的系统状态,保证系统工作的高可靠性,实现了连续的不间断工作。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号