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

文档序号:6584067阅读:219来源:国知局
专利名称:高速外围部件互连交换控制器及其实现方法
技术领域
本发明涉及通信领域,具体而言,涉及一种高速外围部件互连(Peripheral Component Interconnect Express,简称为PCI Express)交换控制器及其实现方法。
背景技术
目前,基于PCI E邓ress的存储/服务器硬件一般采用双控架构,图1是根据相 关技术的双控架构示意图,如图1所示,整个系统由两个相对独立的主机控制器组成,每个 主机控制器的主要架构由数据输入输出接口 (Input/Output Interface)、数据输入输出通 道(Input/Output Ch靈el)、中央处理器(Central Processing Unit,简称为CPU)、内存 (Cache)组成,其中,数据输入输出接口、输入输出通道和内存的数量不进行限定,均可以有 若干组。 数据的处理分为两种,分别为数据输入和数据输出。 第一,数据输入待处理的数据通过某个数据输入输出通道进入系统,经过数据输 入输出接口解码为处理器能够识别的数据,交给处理器处理。 第二,数据输出经处理器处理过的数据,经数据输入输出接口编码为相应接收设 备能够识别的数据,经数据输入输出通道发出。 两个主机控制器通过支持非透明桥(Non-Transparent Bridge)功能的PCI E邓ress接口实现互联。其中,非透明桥功能是PCIE邓ress的一个附加功能,主要用于对 PCI E邓ress两边的设备实现一种相互隔离的作用,以防止两边的设备出现相互争夺系统 资源的问题。由于PCI E邓ress是一种点对点的互联技术,因此双控架构下两个主机控制 器可以通过PCI E邓ress直连,以实现两者之间的冗余互备、协同工作,内存共享和同步等 功能。 但是,随着目前对服务器/存储设备的性能要求越来越高,特别是一些大数据量 高传输速率的应用场合,双控架构的存储设备有时已经很难达到应用要求,因此高端的多 控架构越来越受到关注。由于PCI Express规范中规定PCI Express是一种点对点互联技 术,并不支持菊花链、星型等拓扑结构,这就使得基于PCI E邓ress的多主机控制器架构不 能通过直接套用已经成熟的双控架构的直连模式实现。

发明内容
针对相关技术中无法实现基于PCI E邓ress的多主机控制器架构的问题而提出本 发明,为此,本发明的主要目的在于提供一种PCIE邓ress交换控制器及其实现方法,以解 决上述问题。 为了实现上述目的,根据本发明的一个方面,提供了一种高速外围部件互连PCI E邓ress交换控制器,用于实现通过PCI E邓ress协议连接的多个主机控制器之间的通信,
根据本发明的高速外围部件互连PCI E邓ress交换控制器包括配置处理器,用 于向多个主机控制器提供PCI E邓ress交换控制器的地址范围,并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;交换单元,用于实现配置处理器与多个主 机控制器、以及多个主机控制器之间的通信。 优选地,交换单元包括上行端口和多个下行端口,其中,多个下行端口中的每个 下行端口连接至多个主机控制器中的一个主机控制器,交换单元还用于通过上行端口与配 置处理器进行通信,通过多个下行端口与多个主机控制器进行通信。 优选地,配置处理器还用于配置交换单元建立的多个下行端口的地址空间和与多 个下行端口对应的地址映射。 优选地,配置处理器还用于根据来自多个主机控制器中的一个主机控制器的地址 信息,将该主机控制器的地址映射到地址信息对应的主机控制器。 优选地,配置处理器还用于判断是否存在有对工作异常的主机控制器的访问,并
在判断结果为是的情况下,取消对工作异常的主机控制器的访问,向请求访问的主机控制
器返回访问失败的信息,将工作异常的主机控制器对应的地址空间标识为不可用。 优选地,配置处理器还用于将对工作异常的主机控制器的访问切换到其它主机控制器。 为了实现上述目的,根据本发明的另 一个方面,提供了 一种PCIE邓ress交换控制 器的实现方法。 根据本发明的PCI E邓ress交换控制器的实现方法包括向多个主机控制器提供 PCI E邓ress交换控制器的地址范围;接收来自多个主机控制器中请求访问的主机控制器 的地址信息,并将该请求访问的主机控制器的地址映射到地址信息对应的主机控制器。
优选地,在向多个主机控制器提供PCI E邓ress交换控制器的地址范围之前,上述 方法还包括预先建立与多个主机控制器连接的多个下行端口的地址空间和与多个下行端 口对应的地址映射。 优选地,在将该请求访问的主机控制器的地址映射到地址信息对应的主机控制器 之后,上述方法还包括判断是否存在有对工作异常的主机控制器的访问;如果判断结果 为是,则取消对工作异常的主机控制器的访问,并向请求访问的主机控制器返回访问失败 的信息。 优选地,如果判断结果为是,则将对工作异常的主机控制器的访问切换到其它主 机控制器。 通过本发明,采用配置处理器向多个主机控制器提供PCIE邓ress交换控制器的 地址范围并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;以及 采用交换单元实现配置处理器与多个主机控制器之间的通信,解决了相关技术中无法实现 基于PCI E邓ress的多主机控制器架构的问题,保证了系统工作的高可靠性,实现了连续的 不间断工作。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1是根据相关技术的双控架构示意图; 图2是根据本发明实施例的PCI E邓ress交换控制器的结构框4
图3是根据本发明实施例的单交换控制器、四主机控制器架构示意图; 图4是根据本发明实施例的单交换控制器、六主机控制器架构示意图; 图5是根据本发明实施例的双交换控制器、六主机控制器架构示意图; 图6是根据本发明实施例的PCIe非透明桥的示意图; 图7是根据本发明实施例的非透明桥配置空间的示意图; 图8是根据本发明实施例的PCI E邓ress交换控制器的实现方法的流程图; 图9是根据本发明实施例的PCI E邓ress交换控制器的实现方法的详细流程图。
具体实施例方式
考虑到相关技术中无法实现基于PCI E邓ress的多主机控制器架构的问题,本 发明提供了一种PCI E邓ress交换控制器及其实现方法,用于实现通过PCI E邓ress协 议连接的多个主机控制器之间的通信,通过采用配置处理器向多个主机控制器提供PCI E邓ress交换控制器的地址范围并根据来自多个主机控制器的地址信息,实现多个主机控 制器之间的访问;以及采用交换单元实现配置处理器与多个主机控制器之间的通信,以保 证系统工作的高可靠性并实现连续的不间断工作。 根据本发明的实施例,提供了一种PCI E邓ress交换控制器,用于实现通过PCI E邓ress协议连接的多个主机控制器之间的通信。图2是根据本发明实施例的PCI E邓ress 交换控制器的结构框图,如图2所示,包括PCI E邓ress配置处理器(以下简称为配置处理 器21)和PCI E邓ress交换单元(以下简称为交换单元22),下面对其进行详细描述。
配置处理器21,用于预先配置交换单元22建立的多个下行端口的地址空间和与 多个下行端口对应的地址映射,向多个主机控制器提供PCI E邓ress交换控制器的地址范 围,然后,主机控制器通过其非透明桥端口获取PCI E邓ress交换控制器的地址范围,配置 处理器21根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问。
交换单元22,通过PCI E邓ress接口连接至配置处理器21,用于实现配置处理器 21与多个主机控制器、以及多个主机控制器之间的通信。 其中,交换单元22的PCI Express端口包括上行端口 (UpstreamPort)和多个下 行端口 (Downstream Port),其中,多个下行端口中的每个下行端口连接至多个主机控制器 中的一个主机控制器的非透明桥端口 ,交换单元22还用于通过上行端口与配置处理器进 行通信,通过多个下行端口与多个主机控制器进行通信。 具体地,在主机控制器发起一个对应其它主机控制器的地址访问之后,上述配置
处理器21还用于根据来自该主机控制器的地址信息,将该主机控制器的地址映射到地址
信息对应的主机控制器的PCI E邓ress端口 ,实现对主机控制器的访问。 此外,上述配置处理器21还用于判断是否存在有对工作异常的主机控制器的访
问,并在判断结果为是的情况下,取消对工作异常的主机控制器的访问,向请求访问的主机
控制器返回访问失败的信息(即,返回相应的访问出错信号),将工作异常的主机控制器对
应的地址空间标识为不可用。 并且,上述配置处理器21还用于在交换控制器工作异常时产生出错信号,并将对 工作异常的主机控制器的访问切换到其它主机控制器。 另外,上述配置处理器用于负责PCI E邓ress协议的处理、热插拔的管理、交换通道的管理以及PCI E邓ress交换单元的寄存器的管理。这种架构下,可以实现各个主机控制 器地位完全对等,并且依靠上行端口上的配置处理器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 E邓ress链接进行了扩展。连接到PCI-PCI透明桥上的节点称为内部节点, 连接到外部PCI Express链接上的节点称为外部节点。PCI Express事务经过内部节点和 外部节点,允许事务穿越两个不同的内存地址域。 图7是根据本发明实施例的非透明桥配置空间的示意图,如图7所示NTB配置空 间,两个NTB节点的配置空间被映射到Bar4,允许访问在每一侧的任何一个PCI Express Master。 在上述实施例的实际应用过程中,可以通过PCI E邓ress总线实现主机控制器之 间的同步,且同步最大带宽可在设计时调节。使用PCI E邓ress非透明桥功能,可以实现各 个主机或控制器之间相对隔离,并且不影响各个主机或控制器之间的高速通讯。具体地, 利用主机控制器上自带的DMA功能,使系统能通过PCI E邓ress总线来实现各个主机或控 制器的内存之间实现数据直接同步,而很少占用主机控制器上的CPU资源。通过多个主机 控制器上的多个PCIE邓ress非透明桥端口,可以实现多个交换环路的冗余控制。根据PCIExpress Switch的原理和特性,将一个带PCI Express功能的价格便宜的小处理器上连接
至Switch的上行端口,将多个主机或控制器连至Switch的下行端口,可以保证各个主机
或控制器地位完全对等,并且依靠上行端口上的小处理器与各个主机或控制器之间消息传
递,可以实现Switch以及系统中所有监控信息被所有主机或控制器共享。 根据本发明的实施例,还提出了一种PCI E邓ress交换控制器的实现方法,图8是
根据本发明实施例的PCI E邓ress交换控制器的实现方法的流程图,如图8所示,包括如下
的步骤S802至步骤S804。 步骤S802,向多个主机控制器提供PCI E邓ress交换控制器的地址范围。 在上述步骤S802之前,该方法还包括预先建立与多个主机控制器连接的多个下
行端口的地址空间和与多个下行端口对应的地址映射。 步骤S804,接收来自多个主机控制器中请求访问的主机控制器的地址信息,并将 该请求访问的主机控制器的地址映射到地址信息对应的主机控制器。 进一步地,上述方法还包括PCI E邓ress交换控制器可以判断是否存在有对工作 异常的主机控制器的访问;如果判断结果为是,则取消对工作异常的主机控制器的访问,并 向请求访问的主机控制器返回访问失败的信息,还可以将对工作异常的主机控制器的访问 切换到其它主机控制器。 下面结合图9对上述PCI E邓ress交换控制器及其实现方法进行详细描述。
图9是根据本发明实施例的PCI E邓ress交换控制器的实现方法的详细流程图, 如图9所示,该实施例基于图3的单交换控制器、四主机控制器架构,具体包括如下的步骤 S902至步骤S928 : 步骤S902 :交换控制器启动以后,交换配置处理器会配置和初始化交换单元(PCI Express)的上行和下行端口 。 步骤S904 :主机控制器启动以后,主机初始化其相应的PCIE邓ress NT端口。
步骤S906 :交换控制器根据其下行端口对应的各主机控制器的在位情况,申请地 址空间并配置各个PCI E邓ress端口相应的地址映射。 步骤S908 :主机控制器通过PCI E邓ress NT端口获取交换控制器的地址范围 (即,NT Port对应的地址范围)。 步骤S910 :任意主机控制器对其他主机控制器内存的访问被交换控制器转化为 相应地址的访问。举例说明,假设主机控制器B需要通过交换控制器A访问主机控制器A 的内存中的数据,由于主机控制器B有交换控制器的地址范围,这个地址范围对应所有4个 主机控制器的内存地址,因此主机控制器只需要发起一个对应主机控制器A的内存地址的 访问即可,交换控制器A根据这个地址可以对应到相应的PCI E邓ress Port 1端口 ,然后通 过这个端口地址被翻译成主机控制器A内存的实际地址,最终完成对主机控制器A内存的 数据访问。 步骤S912 :系统处于正常工作状态。 步骤S914 :系统出现某个主机控制器工作异常或被拔出,同时产生相应的出错信 号。 步骤S916和步骤S918 :交换控制器判断是否有出错主机控制器的访问,如果判断 结果为是,则取消访问操作并返回访问出错信号,没有则继续;如果判断结果为否,则继续进行步骤S920。 步骤S920 :交换控制器将出错的主机控制器对应的地址空间标记为不可用,然后继续进行步骤S912。 步骤S922 :交换控制器A出错,并产生出错信号。
步骤S924 :由交换控制器A切换到交换控制器B。 步骤S926和步骤S928 :各个主机控制器判断是否有通过交换控制器A的访问,如果判断结果为是,则通过交换控制器B重新发起访问,如果判断结果为否,则继续进行步骤S812。 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。 综上所述,根据本发明的上述实施例,提供了一种PCI E邓ress交换控制器及其实现方法,通过采用配置处理器向多个主机控制器提供PCI E邓ress交换控制器的地址范围并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;以及采用交换单元实现配置处理器与多个主机控制器之间的通信,实现了在高端存储/服务器中的多主机控制器架构。并且,主机和控制器之间实现高带宽冗余备份控制,每个主机控制器在系统中的相互隔离,地位完全对等,当单个主机控制器出现故障时,故障主机控制器能够被效隔离,其它主机控制器能够迅速接管故障主机控制器的相应处理任务,且在热插拔更换故障主机控制器后,能恢复原来的系统状态,保证系统工作的高可靠性,实现了连续的不间断工作。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种高速外围部件互连PCI Express交换控制器,用于实现通过PCI Express协议连接的多个主机控制器之间的通信,其特征在于,所述PCI Express交换控制器包括配置处理器,用于向所述多个主机控制器提供PCIExpress交换控制器的地址范围,并根据来自所述多个主机控制器的地址信息,实现所述多个主机控制器之间的访问;交换单元,用于实现所述配置处理器与所述多个主机控制器、以及所述多个主机控制器之间的通信。
2. 根据权利要求1所述的PCI E邓ress交换控制器,其特征在于,所述交换单元包括 上行端口和多个下行端口 ,其中,所述多个下行端口中的每个下行端口连接至所述多个主 机控制器中的一个主机控制器,所述交换单元还用于通过所述上行端口与所述配置处理器 进行通信,通过所述多个下行端口与所述多个主机控制器进行通信。
3. 根据权利要求2所述的PCI E邓ress交换控制器,其特征在于,所述配置处理器还用 于配置所述交换单元建立的所述多个下行端口的地址空间和与所述多个下行端口对应的 地址映射。
4. 根据权利要求3所述的PCI E邓ress交换控制器,其特征在于,所述配置处理器还用 于根据来自所述多个主机控制器中的一个主机控制器的地址信息,将该主机控制器的地址 映射到所述地址信息对应的主机控制器。
5. 根据权利要求1所述的PCI E邓ress交换控制器,其特征在于,所述配置处理器还用 于判断是否存在有对工作异常的主机控制器的访问,并在判断结果为是的情况下,取消对 工作异常的主机控制器的访问,向请求访问的主机控制器返回访问失败的信息,将所述工 作异常的主机控制器对应的地址空间标识为不可用。
6. 根据权利要求5所述的PCI E邓ress交换控制器,其特征在于,所述配置处理器还用于将对工作异常的主机控制器的访问切换到其它主机控制器。
7. —种PCI E邓ress交换控制器的实现方法,其特征在于,包括 向多个主机控制器提供PCI E邓ress交换控制器的地址范围;接收来自所述多个主机控制器中请求访问的主机控制器的地址信息,并将该请求访问 的主机控制器的地址映射到所述地址信息对应的主机控制器。
8. 根据权利要求7所述的方法,其特征在于,在向多个主机控制器提供PCI E邓ress交 换控制器的地址范围之前,所述方法还包括预先建立与所述多个主机控制器连接的多个下行端口的地址空间和与所述多个下行 端口对应的地址映射。
9. 根据权利要求7所述的方法,其特征在于,在将该请求访问的主机控制器的地址映 射到所述地址信息对应的主机控制器之后,所述方法还包括判断是否存在有对工作异常的主机控制器的访问;如果判断结果为是,则取消对工作异常的主机控制器的访问,并向请求访问的主机控 制器返回访问失败的信息。
10. 根据权利要求9所述的方法,其特征在于,如果判断结果为是,则将对工作异常的 主机控制器的访问切换到其它主机控制器。
全文摘要
本发明公开了一种高速外围部件互连交换控制器,用于实现通过PCI Express协议连接的多个主机控制器之间的通信,包括配置处理器,用于向多个主机控制器提供PCI Express交换控制器的地址范围,并根据来自多个主机控制器的地址信息,实现多个主机控制器之间的访问;交换单元,用于实现配置处理器与多个主机控制器、以及多个主机控制器之间的通信。本发明保证了系统工作的高可靠性,实现了连续的不间断工作。
文档编号G06F13/42GK101710314SQ20091022600
公开日2010年5月19日 申请日期2009年11月17日 优先权日2009年11月17日
发明者吴成百, 张一鸣 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1