因特网连接交换机和因特网连接系统.pdf

上传人:1*** 文档编号:1034168 上传时间:2018-03-27 格式:PDF 页数:42 大小:2.12MB
返回 下载 相关 举报
摘要
申请专利号:

CN200780029691.6

申请日:

2007.08.08

公开号:

CN101501660A

公开日:

2009.08.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F13/36

主分类号:

G06F13/36

申请人:

日本电气株式会社

发明人:

飞鹰洋一; 铃木顺; 樋口淳一; 吉川隆士

地址:

日本东京都

优先权:

2006.8.9 JP 216495/2006

专利代理机构:

北京东方亿思知识产权代理有限责任公司

代理人:

李晓冬;南 霆

PDF下载: PDF下载
内容摘要

交换机(304)具有多个桥(3041、3042、3043、3044、3045)和交换机转发机构(20)。这些桥分别向连接的设备发送并从连接的设备接收遵循PCI express标准的TLP帧。交换机转发机构具有这些桥分别连接到的多个端口(1、2、3、4、5),并且该机构选择与从这多个端口中的一个端口输入的TLP帧的目的地信息和输入了该TLP帧的端口的组合相对应的输出端口,并且从所选择的输出端口输出该TLP帧。

权利要求书

1.  一种交换机,包括:
多个桥,这多个桥在分别连接到这多个桥的设备之间发送和接收遵循PCI express的TLP帧;以及
交换机转发机构,该交换机转发机构包括所述多个桥分别连接到的多个端口,根据从所述多个端口中的一个端口输入的所述TLP帧中的目的地信息和输入了所述TLP帧的所述端口的组合来选择输出端口,并且从所选择的输出端口输出所述TLP帧。

2.
  如权利要求1所述的交换机,其中所述交换机转发机构包括:
群组ID管理表存储器,在所述群组ID管理表存储器中存储有关于连接到所述多个桥的设备中的要彼此连接的设备的信息,以及用于标识用于连接所述设备的端口的群组ID;
转发表,在所述转发表中存储有关于与TLP帧中的目的地信息相关联的输出端口的信息和所述群组ID管理表存储器中存储的所述群组ID;以及
传输控制单元,该传输控制单元从所述转发表选择用于从所述多个端口中的一个端口输入的所述TLP帧的所述输出端口,并且从所述输出端口输出所述TLP帧。

3.
  如权利要求2所述的交换机,其中所述传输控制单元包括:
输入头部重写单元,该输入头部重写单元从所述群组ID管理表存储器中读取与所述端口中输入了所述TLP帧的一个端口相对应的群组ID,并且将所读取的群组ID设置到所述TLP帧的头部中;
表搜索单元,该表搜索单元从所述转发表选择与所述TLP帧中的目的地信息相对应的所述输出端口和所述TLP帧的头部中设置的所述群组ID;以及
帧传输单元,该帧传输单元从所述表搜索单元所选的所述输出端口输出所述TLP帧。

4.
  如权利要求3所述的交换机,其中所述输入头部重写单元将所述群组ID设置到所述TLP帧的头部中的保留区域中。

5.
  如权利要求3或4所述的交换机,其中所述群组ID管理表存储器在其中存储属性信息,所述属性信息代表分别连接到所述群组ID被分配给的端口的设备中的每个设备的类型;并且
所述交换机转发机构包括输出头部重写单元,如果存储在所述群组ID管理表存储器中的、与由所述表搜索单元选择的所述输出端口相关的属性信息代表遵循PCI express的端点或路由复合体,则所述输出头部重写单元删除要从所述帧传输单元输出的所述TLP帧的头部中设置的群组ID。

6.
  如权利要求5所述的交换机,其中如果存储在所述群组ID管理表存储器中的、与输入了所述TLP帧的端口相关的属性信息代表其他交换机,则所述输入头部重写单元保持所述TLP帧的头部中设置的群组ID。

7.
  如权利要求5或6所述的交换机,其中所述转发表包括用于ID路由选择的转发表和用于地址路由选择的转发表,并且
所述表搜索单元从与所述TLP帧的路由形式相对应的一个转发表选择所述输出端口。

8.
  如权利要求7所述的交换机,其中所述用于地址路由选择的转发表包括偏移信息,该偏移信息指定所述设备中的每个设备的存储器地址的偏移量作为所述TLP帧的目的地,并且
所述输出头部重写单元根据所述偏移信息来重写要从所述TLP帧传输单元输出的TLP帧中的目的地信息。

9.
  如权利要求8所述的交换机,其中所述转发表包括多播表,该多播表指定所述用于ID路由选择的转发表中存储的目的地信息和多个输出端口之间的关系,并且
如果所述TLP帧的路由选择形式是ID路由选择并且所述TLP帧中设置了关于多播通信的指示的信息,则所述表搜索单元从所述多播表选择用于所述TLP帧的输出端口。

10.
  如权利要求5所述的交换机,其中所述群组ID管理表存储器在其中针对分别代表路由复合体的多条属性信息存储不同的群组ID。

11.
  如权利要求10所述的交换机,其中对于连接到由连接到一个特定路由复合体的CPU使用的端点的端口的群组ID,所述群组ID管理表存储器在其中存储与连接到所述特定路由复合体的端口的群组ID相同的群组ID。

12.
  如权利要求10所述的交换机,其中对于连接到由分别连接到多个路由复合体的多个CPU共享的一个端点的端口的群组ID,所述群组ID管理表存储器在其中存储专用于所述端点的群组ID。

13.
  如权利要求3所述的交换机,还包括:
外部控制接口,该外部控制接口用于从外部设备访问所述群组ID管理表存储器和所述转发表。

14.
  一种系统,包括:
如权利要求1到13任一个所述的交换机;以及
连接到所述交换机和不同设备的第一PCI express总线和第二PCIexpress总线。

说明书

因特网连接交换机和因特网连接系统
相关申请的交叉引用
本申请基于2006年8月9日提交的日本专利申请No.2006-216495并且要求该申请的优先权,该申请的公开通过引用整体结合于此。
技术领域
本发明涉及用于扩展计算机中使用的计算设备和联网设备的PCIexpress接口的互连交换机、以及使用该交换机的网络装置和系统。
背景技术
外围组件互连(PCI)已被广泛用作用于建立计算设备(例如,中央处理单元(CPU)、硬盘和图形控制器)之间、联网设备(例如,转发引擎和网络控制器)之间、或者计算设备和联网设备之间的连接的总线标准。作为PCI的下一代标准,使用串行总线来替代并行总线并且进行分组通信的PCI express已被标准化。非专利文献1描述了利用这种PCI express形成的PCI express系统的一个示例。
图19一般地示出了在非专利文献1中所描述的系统。图19中示出的PCI express系统被配置为包括:执行计算机的中央算术处理的CPU 101、安装在主桥中用于控制对CPU 101的I/O访问的PCI express路由复合体102、连接到主桥的存储器103、连接到路由复合体102和PCI express端点105、106和107的PCI express交换机104,其中PCI express端点105、106和107安装在连接到PCI express交换机104的计算设备中。
PCI express交换机104被用来增加连接端点的PCI express接口的连接的数目。非专利文献2描述了PCI express交换机104的内部电路配置的一个示例。
图20一般地示出了在非专利文献2中所描述的交换机。图20中示出的PCI express交换机104被配置为包括在路由复合体方向连接的上游PCI-PCI桥1041以及在端点方向连接的下游PCI-PCI桥1042、1043和1044。PCI express交换机内部总线1045将这些PCI-PCI桥彼此连接。
当分组(TLP:事务层分组)在图19中示出的PCI express系统中的内部总线1045上或者图20中示出的PCI express交换机104的内部总线1045上传输时,使用在CPU 101的地址空间中管理的PCI express帧。在本申请中,该帧被称作“TLP帧”。在PCI express中,定义了两类路由选择方法(即,地址路由选择和ID路由选择)作为用于根据TLP帧的头部中的符号来标识TLP帧的传输目的地的技术。地址路由选择是用于通过指定分配给端点等的I/O空间或存储器空间作为目的地来标识目的地的技术。非专利文献3中描述了用于地址路由选择的帧格式。ID路由选择是用于通过指定目的地被连接到的总线的总线号、分配来标识同一总线上的设备的设备号、以及分配给该设备中的功能的功能号,从而标识目的地的技术。非专利文献4中描述了用于ID路由选择的帧格式。在本申请中,用于标识目的地的I/O空间或存储器空间以及总线号、设备号和功能号将总地称作“目的地地址空间”。
图21示出了地址路由选择帧(地址路由选择TLP帧)的格式。在利用地址路由选择TLP帧的数据传输中,采用字节8的地址[31:2]处的数据区域作为目的地地址空间。如果该帧被输入到图20中示出的PCI express交换机104,则连接到PCI express交换机内部总线1045的所有PCI-PCI桥都接收到该帧。此外,在这些桥中,与在该帧中描述的地址[31:2]相对应的设备连接到的桥将该帧传输到该设备。一般来说,CPU 101设置与连接到这些桥的设备相对应的地址,使得它们彼此不重叠。因此,一个PCI-PCI桥传输该帧。
图22示出了ID路由选择帧(ID路由选择TLP帧)的格式。在利用ID路由选择TLP帧的数据传输中,采用字节8处的总线号、设备号和功能号作为目的地地址空间。如果该TLP帧被输入到图20中示出的PCIexpress交换机104,则连接到PCI express交换机内部总线1045的所有PCI-PCI桥都接收到该TLP帧。此外,连接到与该TLP帧的总线号、设备号和功能号相对应的设备的桥将该TLP帧传输到该设备。另外,CPU101设置在ID路由选择中使用的总线号、设备号和功能号,使得在多个设备中不彼此重叠。因此,一个PCI-PCI桥传输该TLP帧。
在图19示出的PCI express系统中,多个端点中的任意一个可以连接到CPU 101。但是,假设仅连接有一个CPU的PCI express交换机配置和帧传输方法被应用到该系统,从而不能连接多个CPU。因此,不能在多个CPU之间共享端点。
作为用于解决上述问题的技术,已知下述两种相关技术。
一种是用于在网络中分布和连接多个CPU和多个端点并且动态设置它们之间的连接的高级交换互连(ASI)。非专利文献5描述了ASI的一个示例。
图23一般地示出了非专利文献5中描述的技术。如图23所示,ASI网络1301包括以下组成元件。路由复合体侧PCI express-ASI桥1302和1303分别连接到相应的路由复合体102和109,并且桥1302和1303中的每一个发送或接收通过封装TLP帧获得的ASI分组。ASI交换机1304将该ASI分组传输到该ASI分组的目的地连接到的端口。端点侧PCIexpress-ASI桥1305至1307分别连接到端点105至107,并且桥1305至1307中的每一个发送或接收通过封装TLP帧获得的ASI分组。架构管理器1308对路由复合体侧PCI express-ASI桥1302和1303与端点侧PCIexpress-ASI桥1305至1307之间的连接进行管理。
另一种相关技术是使用可设置PCI express交换机的技术。专利文献1描述了该另一种相关技术的一个示例。
图24一般地示出了专利文献1中描述的系统。图25示出了该系统中使用的PCI express交换机的配置。参考图25,可设置PCI express交换机111包括以下组成元件。上游PCI-PCI桥111和112分别连接到路由复合体102和109。下游PCI-PCI桥113至115分别连接到端点105至107。PCI express交换机内部总线1116将上游PCI-PCI桥111连接到下游PCI-PCI桥1113至1115。PCI express交换机内部总线1117将上游PCI-PCI桥1112连接到下游PCI-PCI桥1113至1115。桥控制器逻辑1118对PCIexpress交换机内部总线1116和1117与下游PCI-PCI桥1113至1115之间的连接关系进行控制。
接下来将描述利用PCI express的网络系统。
图26示出了利用PCI express的常见网络系统的一个示例。在该网络系统中,分别连接到端点1至3的网络转发引擎402至404通过网络交换机401彼此相连。网络转发引擎402至404对分别从端口1至3输入的网络数据的目的地进行分析。网络交换机401执行两种操作:用于向一个特定端口传输数据的单播传输和用于向多个特定端口传输数据的多播传输。
此外,在图26示出的系统中,如果传输数据的目的地未知,则CPU101执行协议分析,然后执行路由选择传输。为此,PCI express交换机104将CPU 101的路由复合体102连接到网络转发引擎402至404。
[专利文献1]日本专利申请早期公开No.2005-317021
[非专利文献1]PCI express基本规范版本1.1,PCI-SIG,2005年3月28日,第30页
[非专利文献2]PCI express基本规范版本1.1,PCI-SIG,2005年3月28日,第34页
[非专利文献3]PCI express基本规范版本1.1,PCI-SIG,2005年3月28日,第52-53页
[非专利文献4]PCI express基本规范版本1.1,PCI-SIG,2005年3月28日,第54页
[非专利文献5]协议接口#8(IP-8)R1.0,ASI-SIG,2004年2月,第7-11页
发明内容
上述PCI express系统存在下述问题。
第一个问题是:在利用图25所示PCI express的系统中,连接到路由复合体的设备(例如CPU)不能保持设备之间的通信。原因如下。在可设置PCI express交换机111中,内部总线1116完全与内部总线1117分离。因此,不存在将连接到路由复合体102的上游PCI-PCI桥111连接到连接了路由复合体109的上游PCI-PCI桥1112的路径。
第二个问题是:在利用图25所示PCI express的系统中,连接到不同路由复合体的设备(例如CPU)不能向同一端点广播数据。原因在于:在可设置PCI express交换机111中,下游PCI-PCI桥1113至1115被交替连接到内部总线1116和1117。如果端点105连接到路由复合体102侧PCIexpress交换机内部总线1116,则CPU 108不能向端点105发送数据。
第三个问题是:图26中示出的PCI express交换机不包括针对多个特定设备的多播传输功能。因此,两类交换机,即,网络交换机401和PCIexpress交换机104是必需的。这种缺点使系统配置变得复杂,增加了成本并且使系统操作变得复杂。
如果使用了图23中示出的ASI网络1301,则可以建立连接到一个路由复合体的多个设备(例如CPU)之间的通信、以及从连接到不同路由复合体的设备(例如CPU)到同一端点的多播通信。但是,需要用于封装帧的处理,导致在数据传输期间难以减少延迟时间。此外,另一个问题是电路大小较大。
在上述情形中作出了本发明。本发明的一个目的是提供一种在不对遵循PCI express的TLP帧进行封装的情况下在多个设备之间发送和接收该TLP帧的交换机,以及利用该交换机的系统。
根据本发明的交换机包括:在分别连接到这多个桥的设备之间发送和接收遵循PCI express的TLP帧的多个桥;以及交换机转发机构,该交换机转发机构包括多个桥分别连接到的多个端口,根据从这多个端口中的一个端口输入的TLP帧中的目的地信息和输入了该TLP帧的端口的组合来选择输出端口,并且从所选择的输出端口输出该TLP帧。
根据本发明的系统包括:该交换机;连接到该交换机和不同设备的第一PCI express总线和第二PCI express总线。
根据本发明,在利用PCI express的系统中,可以在不执行帧封装处理的情况下保持例如CPU之类的设备之间的通信。这从而可以防止数据传输期间的延迟增大和LSI电路大小变大。
附图说明
图1是示出了利用根据本发明实施例的交换机的系统的配置的框图。
图2是示出了根据本发明实施例的PCI express扩展交换机的内部配置的框图。
图3是示出了本发明实施例中的PCI express分组交换机转发机构的内部配置的框图。
图4是根据本发明实施例的群组ID管理表存储器的说明图。
图5是根据本发明实施例的扩展地址路由选择TLP帧的说明图。
图6是根据本发明实施例的扩展ID路由选择TLP帧的说明图。
图7是根据本发明实施例的扩展TLP转发表的说明图。
图8是根据本发明实施例的扩展地址路由选择表存储器的说明图。
图9是根据本发明实施例的扩展ID路由选择表存储器的说明图。
图10是根据本发明实施例的多播表存储器的说明图。
图11是示出了根据本发明实施例由PCI express分组交换机转发机构执行的操作的流程图。
图12是根据本发明实施例的由CPU管理的地址空间的说明图。
图13是根据本发明实施例的用于CPU-CPU通信的扩展地址路由选择表存储器的说明图。
图14是根据本发明实施例的在多个CPU共享多个端点的情况下使用的群组ID管理表存储器的说明图。
图15是根据本发明实施例的在多个CPU共享多个端点的情况下的地址空间的说明图。
图16是根据本发明实施例的在多个CPU共享多个端点的情况下使用的扩展地址路由选择表存储器的说明图。
图17是示出了利用根据本发明另一个实施例的交换机的系统的配置的框图。
图18是示出了利用根据本发明另一个实施例的交换机的系统的配置的框图。
图19是示出了基于非专利文献1的系统的配置的框图。
图20是示出了基于非专利文献2的系统的配置的框图。
图21是遵循PCI express的地址路由选择帧的格式的说明图。
图22是遵循PCI express的ID路由选择帧的格式的说明图。
图23是示出了基于非专利文献5的ASI网络的配置的框图。
图24是示出了基于非专利文献1的系统的配置的框图。
图25是示出了基于专利文献1的系统中的交换机的内部配置的框图。
图26是示出了利用遵循PCI express的交换机的网络系统的配置的框图。
304:PCI express扩展交换机
20:PCI express分组交换机转发机构
3041、3042、3043、3044、3045:PCI-PCI桥
11、12、13、14、15:PCI express总线
102、109:路由复合体
105至107:端点
30:控制CPU
3040:外部控制接口
具体实施方式
下面参考附图详细描述用于实现本发明的方式。
图1示出了根据本发明实施例的系统的配置。PCI express系统10被配置为使得多个路由复合体102和109与多个端点105至107分别经由PCI express总线11至15连接到与根据本发明的交换机相对应的PCIexpress扩展交换机304。CPU 101和存储器103连接到路由复合体102,而CPU 108和存储器110连接到路由复合体109。
路由复合体102和109与端点105至107中的每一个是这样的设备,该设备遵循PCI express,并且包括利用图21中示出的地址路由选择TLP帧和图22中示出的ID路由选择TLP帧保持数据通信的功能。
图2示出了PCI express扩展交换机304的配置。PCI express扩展交换机304被配置为包括:通过PCI express总线11连接到路由复合体102的PCI-PCI桥3041、通过PCI express总线12连接到路由复合体109的PCI-PCI桥3042、通过PCI express总线13连接到端点105的PCI-PCI桥3043、通过PCI express总线14连接到端点106的PCI-PCI桥3044、通过PCI express总线15连接到端点107的PCI-PCI桥3045、以及连接到这些桥3041至3045的PCI express分组交换机转发机构20。
PCI express分组交换机转发机构20包括多个端口,分别用作PCIexpress 3041至3045可以连接到的输入/输出接口。PCI-PCI桥3041连接到端口1,PCI-PCI桥3042连接到端口2,PCI-PCI桥3043连接到端口3,PCI-PCI桥3044连接到端口4,并且PCI-PCI桥3045连接到端口5。
PCI-PCI桥3041、3042和3043至3045中的每一个都是包括与例如图20或者25中示出的根据本发明的相关技术的PCI express交换机中的上游PCI-PCI桥和下游PCI-PCI桥的功能等效的功能的设备,但是,在以下方面,PCI-PCI桥3041、3042和3043至3045不同于根据相关技术的上游和下游PCI-PCI桥。尽管根据相关技术的上游和下游PCI-PCI桥通过一条或多条PCI express交换机内部总线彼此连接,但是PCI-PCI桥3041至3045通过PCI express分组交换机转发机构20彼此连接。PCI-PCI桥3041至3045中的每一个向PCI express分组交换机转发机构20的连接的端口发送图21中示出的地址路由选择TLP帧或图22中示出的ID路由选择TLP帧,并且还从连接的端口接收格式与那些帧类似的TLP帧。
PCI express分组交换机转发机构20从PCI-PCI桥3041至3045分别连接到的端口1至5中的每一个接收上述地址路由选择TLP帧或者ID路由选择TLP帧。此外,PCI express分组交换机转发机构20通过利用信息表(后面将描述)检查帧的头部中设置的目的地地址空间和机构(20)中设置的系统设置信息,选择端口(1至5)之一用来输出该帧。如果帧是图21中示出的地址路由选择TLP帧,则帧的头部中设置的目的地地址空间在这里指地址信息。或者,如果帧是图22中示出的ID路由选择TLP帧,则帧的头部中设置的目的地地址空间指总线号、设备号和功能号。系统设置信息可以从经由外部控制接口3040连接到PCI express分组交换机转发机构20的控制CPU 30设置。作为控制CPU 30可以连接到的外部控制接口3040,可以采用SMBus、12C总线、PCI-PCI桥3041等所连接到的PCIexpress接口。
图3示出了PCI express分组交换机转发机构20的配置。群组ID管理表存储器2047和扩展TLP转发表204组成了用于保存经由外部控制接口3040输入的系统设置信息的存储装置。传输控制单元200基于帧头部中设置的目的地地址空间和系统设置信息选择端口(1至5)之一用于输出从端口1至5接收到的输入TLP帧21,并且从所选端口输出输出TLP帧22。传输控制单元200被配置为包括输入TLP头部重写单元205、表搜索单元203、帧传输单元207以及输出TLP头部重写单元2051。
群组ID管理表存储器2047是其中存储有诸如端口1至5和群组ID之间的对应关系之类的信息的存储器。图4示出了群组ID管理表存储器2047的内容的一个示例。如图4所示,群组ID管理表存储器2047包括与端口号一一对应的表条目。与每个端口号相对应的群组ID、端口属性和设备属性被记录在与该端口号相对应的每个表条目中。
群组ID的作用是将系统10的设备(例如CPU和端口)分组成每个共享相同存储器空间的设备群组。在常见的PCI express系统中,对存储器空间的分配和管理由路由复合体侧设备负责,使得多个路由复合体侧设备不共享一个存储器空间。因此,如图4中所示,不同的群组ID“1”和“2”分别被设置给端口号“1”和“2”。这样,不同的群组ID被设置给路由复合体侧设备分别连接到的多个端口,从而避免了地址冲突。另一方面,与一个特定CPU的ID相同的群组ID被设置给端点侧设备分别连接到的端口中的、与仅由该特定CPU使用的设备相对应的端口。在图4中,群组ID“1”被设置给端口号“3”,并且群组ID“2”被设置给端口号“4”和“5”。这种设置使得仅有CPU 101使用图1中示出的端点105,并且仅有CPU 108使用端点106和107。此外,尽管图4中未示出,但是,如果一个特定端点侧设备被多个CPU共享,则对该设备来说专用的群组ID被设置给该设备。
在本实施例中,每个群组ID由4比特组成。这是因为在本实施例中,4比特保留区域被用作用于设置群组ID的TLP头部区域。如果可以使用5比特或者更多比特的保留区域,则可以向每个群组ID分配5比特或者更多比特的区域。
群组ID管理表存储器2047中存储的每个端口属性和每个设备属性从不同视角指示连接到一个端口的设备的类型。即,端口属性指示两类设备(即,路由复合体或端点和交换机(PCI express扩展交换机))中的哪一类被连接到端口。具体而言,如果设备是路由复合体或端点,则值“0”被设置给该设备的端口属性。如果该设备是交换机(PCI express扩展交换机),则值“1”被设置给该设备的端口属性。另一方面,设备属性指示三类设备(即,路由复合体、端点和其他桥(例如交换机))中的哪一类被连接到端口。具体而言,如果设备是路由复合体,则值“0”被设置给该设备的设备属性。如果该设备是端点,则值“1”被设置给该设备的设备属性。如果该设备是桥,则值“2”被设置给该设备的设备属性。端口属性和设备属性的作用和利用方法将在后面描述。
输入TLP头部重写单元205是这样的单元,该单元通过查找群组ID管理表存储器2047,将与输入TLP帧21被输入到的端口相对应的群组ID写到输入TLP帧21的头部的保留区域中。在本申请中,该群组ID被设置到的地址路由选择TLP帧或者ID路由选择TLP帧将被称作“扩展地址路由选择TLP帧”和“扩展ID路由选择TLP帧”。
图5示出了扩展地址路由选择TLP帧的帧格式。图6示出了扩展ID路由选择TLP帧的帧格式。这些格式在基本配置上分别与图21和22中示出的那些类似。地址或总线号等分别被设置到扩展地址路由选择TLP帧或者扩展ID路由选择TLP帧的字节8,作为帧目的地信息。如图5和6所示,在根据本实施例的扩展地址路由选择TLP帧和扩展ID路由选择TLP帧中,上述群组ID 901和902分别被写入到各自被设置为字节0的地址[19:16]的4比特保留区域中。此外,如图6所示,多播指示信息903被设置到扩展ID路由选择TLP帧的字节8处的1比特地址[31](对应于1比特的总线号)。在本实施例中,设置有值为“1”的多播指示信息903的帧被作为多播传输帧处理。
扩展TLP转发表204保存路由选择信息,该路由选择信息用于判断头部被输入TLP头部重写单元205重新的帧(即,扩展地址路由选择TLP帧和扩展ID路由选择TLP帧)的传输目的地。图7示出了扩展TLP转发表204的配置。扩展地址路由选择表存储器2044保存用于判断扩展地址路由选择TLP帧的传输目的地的路由选择信息。扩展ID路由选择表存储器2045保存用于判断设置有值为“0”的多播指示信息903(非多播)的扩展ID路由选择TLP帧的传输目的地的路由选择信息。多播表存储器2046保存用于判断设置有值为“1”的多播指示信息903(多播)的扩展ID路由选择TLP帧的传输目的地的路由选择信息。
图8示出了扩展地址路由选择表存储器2044的内容配置的一个示例。扩展地址路由选择表存储器2044的信息由多个表条目组成。TLP目的地地址空间的下限和上限、群组ID、输出端口信息和地址交换偏移信息被记录在每个表条目中。TLP目的地地址空间的下限和上限是将被与TLP帧中设置为目的地信息的目的地地址的值相比较的项目。即,图8中示出的TLP目的地地址空间的下限和上限是将被与图5中示出的扩展地址路由选择TLP帧中的字节8的[31:2]处描述的地址相比较的项目。此外,图8中示出的群组ID是将与图5中示出的字节0处的群组ID 901相比较的项目。扩展地址路由选择表存储器2044中记录的输出端口信息是从其输出具有与表(2044)中记录的地址和群组ID一致的地址和群组ID的扩展地址路由选择TLP帧的端口的端口号。地址交换偏移信息指示要加到将被输出的TLP帧的地址的偏移值。地址交换偏移信息是当在CPU之间发送或接收TLP帧时(如果必要的话)设置的。
图9示出了扩展ID路由选择表存储器2045的内容配置。扩展ID路由选择表存储器2045由多个条目组成。总线号、设备号、功能号、群组ID和输出端口信息被记录在每个表条目中。在这些项目中,总线号、设备号、功能号和群组ID是将分别被与图6中示出的作为关于扩展ID路由选择TLP帧的目的地信息的总线号、设备号和功能号、以及扩展ID路由选择TLP帧的群组ID 902(字节0)相比较的项目。输出端口信息是从其输出具有与表(2045)中记录的上述项目一致的项目的扩展ID路由选择TLP帧的端口的端口号。
图10示出了多播表存储器2046的内容配置。如果由交换机接收到的扩展ID路由选择TLP帧中的多播指示信息903(图6)指示“多播”,则查找多播表存储器2046。多播表存储器2046由总共32768个表条目组成,这些表条目与存储器地址“0x0000”到“0x7FFF”一一对应。每个表条目中记录有作为与端口一一对应的一组比特的复数输出端口信息。如果要判断设置有值为“1”的多播指示信息903的扩展ID路由选择TLP帧的输出目的地,则扩展ID路由选择TLP帧中的由总线号(7比特)、设备号(5比特)和功能号(3比特)组成的15比特信息被与图10中示出的“存储器地址”相比较。此外,与该“存储器地址”一致的条目中记录的复数输出端口信息被选择,并且与值“1”的复数输出端口信息相对应的端口被判断作为输出端口。
表搜索单元203从输入TLP头部重写单元205接收扩展地址路由选择TLP帧或者扩展ID路由选择TLP帧,并且依赖于该TLP帧的类型根据扩展TLP转发表204判断该TLP帧的传输目的地。此外,表搜索单元203还判断是否有必要重写该将输出的TLP帧的头部,如果有必要,则输出TLP头部重写单元2051重写该TLP帧的头部。输出TLP帧22通过帧传输单元207被从所判断的输出端口输出。
输出TLP头部重写单元2051执行由表搜索单元203所指示的用于重写头部的处理。具体而言,输出TLP头部重写单元2051将偏移值加到地址,删除头部中的群组ID,并且执行其他任务。
帧传输单元207执行用于从由表搜索单元203所指示的端口输出输出TLP帧22的处理。如果输出TLP帧22是设置有值为“1”的多播指示信息903的扩展ID路由选择TLP帧,则帧传输单元207从基于图10中示出的多播表存储器2046判断出的多个端口并行输出TLP帧。
下面将描述根据本实施例的操作。
首先描述群组ID管理表存储器2047(图4)和扩展TLP转发表204(图7)的设置。在本实施例的情形中,控制CPU 30经由外部控制接口3040访问群组ID管理表存储器2047和扩展TLP转发表204,并且对群组ID管理表存储器2047和扩展TLP转发表204设置必要的信息。
如果群组ID管理表存储器2047被设置,则根据关于多个CPU(101和108)使用哪些端点(105至107)的操作形式,群组ID被设置到PCIexpress分组交换机转发机构20的各个端口。此外,依赖于连接到各个端口的设备的类型,端口属性和设备属性被设置。
在扩展TLP转发表204的扩展ID路由选择表存储器2045的设置中,分配给每个设备(例如端点105)的总线号、设备号和功能号根据该设备被设置到表(2045)的总线号、设备号和功能号的相应项目中。此外,每个设备连接到的端口的端口号被设置在输出端口信息的项目中,并且根据关于哪个CPU使用该设备的操作形式,群组ID被设置到群组ID项目中。例如,假设总线号“Bx”、设备号“Dx”和功能号“Fx”被分配给端点105的设备,并且仅CPU 101使用该设备。在该情形中,在扩展ID路由选择表存储器2045的一个表条目中,总线号“Bx”、设备号“Dx”和功能号“Fx”被设置在总线号、设备号和功能号的相应项目中,端口号“3”被设置在输出端口信息的项目中,并且与CPU 101连接到的端口1相对应的群组ID“1”被设置在群组ID的项目中。
在扩展地址路由选择表存储器2044的设置中,可以分配给每个设备(例如端点105)的地址空间的下限和上限被设置到表2044中的TLP目的地地址空间的下限和上限的相应项目中。此外,每个设备连接到的端口的端口号被设置到输出端口信息的项目中,并且根据关于哪个CPU使用该设备的操作形式,群组ID被设置到群组ID的项目中。例如,假设地址空间的下限“AL”和上限“AH”被分配给端点105的设备,并且仅CPU101使用该设备。在该情形中,在扩展地址路由选择表存储器2044的一个表条目中,地址空间的下限“AL”和上限“AH”被设置到TLP目的地地址空间的下限和上限的相应项目中,端口号“3”被设置到输出端口信息的项目中,并且与CPU 101连接到的端口1相对应的群组ID“1”被设置到群组ID的项目中。注意,如果如本示例所示目标设备是端点,则表(2044)中的地址交换偏移信息的项目总是被设置为“0”。
参考图2,将描述从路由复合体102和109以及端点105至107之一发送来的TLP帧被PCI express扩展交换机304交换、并且向路由复合体(102和109)以及端点(105至107)中的其他设备传输时执行的操作。
从任何一个设备(路由复合体或端点)输入到PCI express扩展交换机304的TLP帧经由PCI-PCI桥(3041至3045)中的任意一个被输入到PCIexpress分组交换机转发机构20的端口(1至5)中的任意一个。
PCI express分组交换机转发机构20执行用于从基于输入TLP帧的头部中的目的地地址空间和机构20中设置的系统设置信息判断出的端口输出该输入TLP帧的交换处理。
参考图11中示出的流程图,描述由PCI express分组交换机转发机构20执行的内部操作。如果从一个特定端口输入了输入TLP帧21(步骤S101),则输入TLP头部重写单元205利用输入了该输入TLP帧21的端口的端口号作为关键字来搜索群组ID管理表存储器2047(步骤S102)。通过执行该搜索,输入TLP头部重写单元205获得其中设置了与作为关键字的端口号相对应的群组ID的条目的内容。接下来,输入TLP头部重写单元205将所获得的群组ID写入到输入TLP帧21的头部中(步骤S103)。此刻,如果输入TLP帧21是ID路由选择TLP帧,则生成如图6所示的设置了群组ID 902的扩展ID路由选择TLP帧。如果输入TLP帧21是扩展地址路由选择TLP帧,则生成如图5所示的设置了群组ID 901的扩展地址路由选择TLP帧。由输入TLP头部重写单元205生成的TLP帧被发送到表搜索单元203。
在接收到该TLP帧时,表搜索单元203鉴别该TLP帧的类型(步骤S104)。如果所鉴别出的类型是扩展地址路由选择TLP帧,则表搜索单元203通过查找扩展TLP转发表204中的扩展地址路由选择表存储器2044,来判断要从其输出该TLP帧的端口(步骤S105)。具体而言,表搜索单元203选择这样一个表条目,在该表条目中,扩展地址路由选择TLP帧的字节8的地址[31:2]的值落入从接收到的TLP帧的TLP目的地地址空间的下限到上限的地址范围内,并且群组ID 901的值与该接收到的TLP帧的群组ID的值一致,表搜索单元203将设置给该表条目中的输出端口信息的端口判断为输出端口。此外,如果该表条目中的地址交换偏移信息被设置为除“0”之外的偏移信息,则输出TLP头部重写单元2051执行重写处理,以将该偏移信息中存储的偏移值加到扩展地址路由选择TLP帧的字节8的地址[31:2]的值(步骤S106)。帧传输单元207从判断出的输出端口输出该扩展地址路由选择TLP帧(步骤S110)。
如果关于TLP帧的类型的判断结果指示该TLP帧是扩展ID路由选择TLP帧,则表搜索单元203确定多播指示信息903的值是否是代表多播通信的“1”(步骤S107)。如果多播指示信息903的值不是“1”,则表搜索单元203通过查找扩展ID路由选择表存储器2045,来判断要从其输出该TLP帧的端口(步骤S108)。具体而言,表搜索单元203选择这样一个表条目,在该表条目中,扩展ID路由选择TLP帧的总线号、设备号和功能号的值分别与该表条目中的总线号、设备号和功能号一致,并且群组ID 902的值与该表条目中的群组ID的值一致。此外,表搜索单元203将被设置到该表条目中的输出端口信息的端口判断为输出端口。帧传输单元207从判断出的输出端口输出该扩展ID路由选择TLP帧(步骤S110)。
此外,如果关于多播指示信息903的判断结果(步骤107)指示值为“1”,则表搜索单元203通过查找多播表存储器2046,来判断要从其输出TLP帧的多个端口(步骤S109)。具体而言,表搜索单元203利用扩展ID路由选择TLP帧中的由总线号、设备号和功能号组成的15比特值作为关键字来搜索多播表存储器2046中的条目。此外,表搜索单元203将与组成命中条目中的复数输出端口信息的位图上的“1”比特分别对应的多个端口作为输出端口。帧传输单元207从判断出的端口并行输出该扩展ID路由选择TLP帧,从而保持多播通信(步骤S110)。
除了上述基本操作之外,PCI express分组交换机转发机构20还根据设置到群组ID管理表存储器2047的端口属性而执行额外的过程,例如稍后将描述的a)和b)。
a)PCI express分组交换机转发机构20查找群组ID管理表存储器2047,以寻找被判断为输出TLP帧的端口(或者多个端口中的每个端口)的端口属性。结果,如果目标端口属性的值为“0”,即,连接到输出端口的设备是路由复合体或者端点,则表搜索单元203利用输出TLP头部重写单元2051从要输出的TLP帧删除群组ID。这样,输出了设置到头部的字节0中的4比特保留区域被重写为空白状态的TLP帧。路由复合体或端点从而可以接收与经由传统PCI express交换机接收到的TLP帧类似的TLP帧。如果输出端口的端口属性的值是“1”,即,连接到该输出端口的设备是系统中的其他PCI express扩展交换机,则与上述情形不同,并不重写群组ID。
b)PCI express分组交换机转发机构20查找群组ID管理表存储器2047,以寻找TLP帧被输入到的端口的端口属性。结果,如果目标端口属性的值为“1”,即,连接到该输入端口的设备是系统中的其他PCIexpress扩展交换机,则输入TLP帧是保留区域中设置了群组ID的帧。在该情形中,PCI express分组交换机转发机构20识别出该TLP帧是扩展地址路由选择TLP帧或者扩展ID路由选择TLP帧,并且省略要在该交换机中执行的用于设置群组ID的处理(图11:步骤S103)。另一方面,如果输入端口的端口属性的值是“0”,即,连接到该输入端口的设备是路由复合体或者端点,则PCI express分组交换机转发机构20识别出该输入TLP帧是类似于传统技术、在保留区域中未设置群组ID的地址路由选择TLP帧或者ID路由选择TLP帧。
通过执行上述额外的过程a)和b),与根据传统技术的设备类似的设备可以被连接到PCI express扩展交换机304。此外,在系统中可以布置多个PCI express扩展交换机304,并且可以在这些交换机304之间传输扩展地址路由选择TLP帧和扩展ID路由选择TLP帧。
可见,在PCI express分组交换机转发机构20中,群组ID管理表存储器2047识别路由复合体、端点和桥中的哪一种被连接到每个端口。PCIexpress分组交换机转发机构20从而可以在传输TLP帧期间了解到用来输入和输出TLP帧的端口是路由复合体侧设备连接到的上游端口还是端点侧设备连接到的下游端口。
根据该实施例的PCI express扩展交换机304可以根据系统设置信息的内容来执行各种交换操作。将以以下两种通信作为示例来更具体地描述这些操作:1)CPU 101和108之间的通信;以及2)CPU 101或108与端点105之间的通信。
1)CPU 101和CPU 108之间的通信
图12示出了由CPU 101管理的地址空间(具有群组ID“1”的地址空间)和由CPU 108管理的地址空间(具有群组ID“2”的地址空间)的设置的示例。如果要在CPU 101和108之间保持通信,则CPU 101将由CPU 101管理的地址空间的一部分存储器映射到CPU 108。CPU 108类似地将由CPU 108管理的地址空间的一部分存储器映射到CPU 101。“存储器映射”在这里意味着向一个设备分配存储器区域。在图12中示出的示例中,作为群组ID“1”(CPU 101)和群组ID“2”(CPU 108)之间用于映射到相对方的地址空间,相同的地址“0x00-00-10-00”至“0x00-00-20-00”被设置给CPU 101和108。这种设置导致这两个CPU之间的地址冲突。这是因为CPU 101和108彼此独立地分配它们自己的地址空间。
如上所述,如果在CPU 101和108之间发生了用于向相对方存储器映射的地址空间的冲突,则难以利用通常的方法来保持这些CPU之间的正常通信。原因如下。例如CPU 101将数据写入被存储器映射给了CPU 108的地址“0x00-00-10-00”,则该数据被写入到CPU 108的地址空间“0x00-00-10-00”。如果CPU 108读取地址“0x00-00-10-00”来读取该数据,则由CPU 108管理的地址空间中的地址“0x00-00-10-00”被读取,因为该地址空间被存储器映射到CPU 101。
如上所述,如果在这些CPU之间发生了被存储器映射给相对方的地址空间的冲突,则该冲突是利用地址交换偏移信息解决的。具体而言,准备如图13中示出的扩展地址路由选择表存储器,并且进行如图13中示出的条目E1和E2中所示的设置。条目E1的设置意味着如果从“0x00-00-10-00”至“0x00-00-20-00”的区域中的TLP帧是从具有群组ID“1”的设备到达的,则应当从与CPU 108相对应的端口2输出该TLP帧,并且仅应当偏移地址“0x00-00-10-00”。条目E2的设置意味着如果从“0x00-00-10-00”至“0x00-00-20-00”的区域中的TLP帧是从具有群组ID“2”的设备到达的,则应当从与CPU 101相对应的端口1输出该TLP帧,并且仅应当偏移地址“0x00-00-10-00”。
注意,群组ID管理表存储器2047被如上所述并且如图4所示设置。
在进行了这种设置的状态中,如果TLP帧被从CPU 101发送到CPU108,则PCI express扩展交换机304执行以下操作。
例如,如果地址“0x00-00-10-00”处的TLP帧被从连接到CPU 101的路由复合体102发送,则该TLP帧经由PCI-PCI桥3041被输入到PCIexpress分组交换机转发机构20的端口1。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口1的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与该端口1相对应的群组ID“1”,并且将“1”作为群组ID写入到该输入TLP帧21的头部中。表搜索单元203利用地址“0x00-00-10-00”和群组ID“1”作为关键字来对图13中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E1,从而获得输出端口信息“2”和地址交换偏移信息“0x00-00-10-00”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID,并且执行用于将地址交换偏移信息“0x00-00-10-00”加到输入TLP帧21的地址的处理。表搜索单元203利用帧传输单元207从CPU108连接到的端口2输出地址被重写为“0x00-00-20-00”的输出TLP帧22。
连接到CPU 108的路由复合体109经由PCI-PCI桥3042从端口2接收到该TLP帧。如图12所示,PCI express扩展交换机304执行用于从群组ID“1”的地址空间“0x00-00-10-00”至“0x00-00-20-00”仅偏移“0x00-00-10-00”的处理,所得到的地址空间被映射到群组“2”的地址空间“0x00-00-20-00”至“0x00-00-30-00”。
相反,如果TLP帧被从CPU 108发送到CPU 101,则PCI express扩展交换机304执行以下操作。
例如,如果地址“0x00-00-10-00”处的TLP帧被从连接到CPU 108的路由复合体109发送,则该TLP帧经由PCI-PCI桥3042被输入到PCIexpress分组交换机转发机构20的端口2。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口2的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与端口2相对应的群组ID“2”,并且将“2”作为群组ID写入到输入TLP帧21的头部中。表搜索单元203利用地址“0x00-00-10-00”和群组ID“2”作为关键字来对图13中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E2,从而获得输出端口信息“1”和地址交换偏移信息“0x00-00-10-00”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID,并且执行用于将地址交换偏移信息“0x00-00-10-00”加到输入TLP帧21的地址的处理。表搜索单元203利用帧传输单元207从CPU101连接到的端口1输出地址被重写为“0x00-00-20-00”的输出TLP帧22。
连接到CPU101的路由复合体102经由PCI-PCI桥3041从端口1接收到该TLP帧。如图12所示,PCI express扩展交换机304执行用于从群组ID“2“的地址空间“0x00-00-10-00”至“0x00-00-20-00”仅偏移“0x00-00-10-00”的处理,所得到的地址空间被映射到群组“1”的地址空间“0x00-00-20-00”至“0x00-00-30-00”。
2)CPU 101或CPU 108与端点105之间的通信
图14示出了该情形中使用的群组ID管理表存储器的设置内容。如果多个CPU 101和108共享其间的端点105,则一个专用群组ID被设置给与端点105相对应的端口,如图14所示。在所示示例中,群组ID“1”被设置给CPU 101连接到的端口1,并且群组ID“2”被设置给CPU 108连接到的端口2。因此,“3”被设置给端点105连接到的端口3,作为端口3的专用群组ID。通过将专用群组ID“3”设置给端点105,可以在端点105中设置专用虚拟地址空间。
图15示出了该情形中的地址空间映射。图15示出了上述分配给端点105的虚拟地址空间(具有群组ID“3”的地址空间),以及由CPU 101管理的地址空间(具有群组ID“1”的地址空间)和由CPU 108管理的地址空间(具有群组ID“2”的地址空间)。如果要保持CPU 101和端点105之间的通信,则CPU 101将由CPU 101管理的具有群组ID“1”的地址空间的一部分(“0x00-00-10-00”至“0x00-00-20-00”)存储器映射到端点105。相反,端点105将由端点105管理的具有群组ID“3”的地址空间的一部分(“0x00-08-00-00”至“0x00-08-10-00”)存储器映射到CPU 101。类似地,如果要保持CPU 108和端点105之间的通信,则CPU108将由CPU 108管理的具有群组ID“2”的地址空间的一部分(“0x00-40-00-00”至“0x00-50-00-00”)存储器映射到端点105。相反,端点105将由端点105管理的具有群组ID“3”的地址空间的一部分(“0x00-08-30-00”至“0x00-09-00-00”)存储器映射到CPU 108。
此外,根据条目E11至E14中示出的存储器映射的设置内容而设置PCI express扩展交换机304的扩展地址路由选择表存储器,如图16所示。条目E11的设置意味着,如果具有群组ID“1”的区域“0x00-00-10-00”至“0x00-00-20-00”中的TLP帧到达,则应当从与端点105相对应的端口3输出该帧。条目E12的设置意味着,如果具有群组ID“2”的区域“0x00-40-00-00”至“0x00-50-00-00”中的TLP帧到达,则应当从与端点105相对应的端口3输出该帧。条目E13的设置意味着,如果具有群组ID“3”的区域“0x00-08-00-00”至“0x00-08-10-00”中的TLP帧到达,则应当从与CPU 101相对应的端口1输出该帧。条目E14的设置意味着,如果具有群组ID“3”的区域“0x00-08-30-00”至“0x00-09-00-00”中的TLP帧到达,则应当从与CPU 108相对应的端口2输出该帧。
在进行了这种设置的状态中,如果帧被从CPU 101发送到端点105,则PCI express扩展交换机304执行以下操作。
例如,如果地址“0x00-10-00-00”处的TLP帧被从连接到CPU 101的路由复合体102发送,则该TLP帧经由PCI-PCI桥3041被输入到PCIexpress分组交换机转发机构20的端口1。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口1的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与端口1相对应的群组ID“1”,并且将“1”作为群组ID写入到输入TLP帧21的头部中。表搜索单元203利用地址“0x00-10-00-00”和群组ID“1”作为关键字来对图16中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E11,从而获得输出端口信息“3”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID。帧传输单元207从端点105连接到的端口3输出地址“0x00-10-00-00”处的TLP帧,作为输出TLP帧22。端点105经由PCI-PCI桥3043接收到该输出TLP帧。
用于将帧从CPU 108发送到端点105的帧发送操作按如下方式执行。
例如,如果地址“0x00-40-00-00”处的TLP帧被从连接到CPU 108的路由复合体109发送,则该TLP帧经由PCI-PCI桥3042被输入到PCIexpress分组交换机转发机构20的端口2。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口2的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与端口2相对应的群组ID“2”,并且将“2”作为群组ID写入到输入TLP帧21的头部中。表搜索单元203利用地址“0x00-40-00-00”和群组ID“2”作为关键字来对图16中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E12,从而获得输出端口信息“3”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID。帧传输单元207从端点105连接到的端口3输出地址“0x00-40-00-00”处的TLP帧,作为输出TLP帧22。端点105经由PCI-PCI桥3043接收到该输出TLP帧。
与上述相反,如果帧被从端点105发送到CPU 101,则PCI express扩展交换机304执行以下操作。
例如,如果地址“0x00-08-00-00”处的TLP帧被从端点105发送,则该TLP帧经由PCI-PCI桥3043被输入到PCI express分组交换机转发机构20的端口3。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口3的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与端口3相对应的群组ID“3”,并且将“3”作为群组ID写入到输入TLP帧21的头部中。表搜索单元203利用地址“0x00-08-00-00”和群组ID“3”作为关键字来对图16中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E13,从而获得输出端口信息“1”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID。帧传输单元207从CPU 101连接到的端口1输出地址“0x00-08-00-00”处的TLP帧,作为输出TLP帧22。路由复合体102经由PCI-PCI桥3041接收到该输出TLP帧。
从端点105向CPU 108发送TLP帧的操作如下所述。
例如,如果地址“0x00-08-30-00”处的TLP帧被从端点105发送,则该TLP帧经由PCI-PCI桥3043被输入到PCI express分组交换机转发机构20的端口3。
PCI express分组交换机转发机构20的输入TLP头部重写单元205接收到作为来自端口3的输入TLP帧21的该TLP帧。此后,输入TLP头部重写单元205从群组ID管理表存储器2047获取与端口3相对应的群组ID“3”,并且将“3”作为群组ID写入到输入TLP帧21的头部中。表搜索单元203利用地址“0x00-08-30-00”和群组ID“3”作为关键字来对图16中示出的扩展地址路由选择表存储器进行搜索,以判断传输目的地。作为该搜索的结果,命中了条目E14,从而获得输出端口信息“2”。
表搜索单元203利用输出TLP头部重写单元2051从该TLP帧的头部删除群组ID。帧传输单元207从CPU 108连接到的端口2输出地址“0x00-08-30-00”处的TLP帧,作为输出TLP帧22。路由复合体109经由PCI-PCI桥3042接收到该输出TLP帧。
下面将描述本发明的实施例的优点。
PCI express分组交换机转发机构20可以在任意PCI express之间传输TLP帧。因此,可以在路由复合体102和109之间传输TLP帧,可以从多个路由复合体102和109向同一端点传输TLP帧。此外,PCI express分组交换机转发机构20执行用于向输入TLP帧的头部设置群组ID的头部重写处理,并且随后使用与该TLP帧相应的的转发表。从而可以避免由多个CPU(101和108)独立管理的地址空间之间可能发生的地址冲突。因此,根据本发明的实施例,可以在不执行导致增大了数据传输期间的延迟并且增大LSI电路大小的帧封装的情况下,保持连接到路由复合体侧的多个CPU之间的通信。还可以保持从连接到不同路由复合体的多个CPU到同一端点之间的通信。
此外,如果TLP帧是ID路由选择帧并且对该TLP帧设置了多播通信,则PCI express分组交换机转发机构20通过查找多播表存储器来选择传输目的地信息。从而可以向特定设备多播传输数据。因此,如果使用根据本发明的实施例的PCI express扩展交换机304,则可以构造仅利用一类交换机来向特定设备多播传输数据的网络系统。将参考图17来对该方面进行描述。
图17示出了利用根据本发明实施例的PCI express扩展交换机304来实现与图26中示出的系统的功能等效的功能的系统的配置。如上已述,PCI express扩展交换机304可以利用扩展ID路由选择TLP帧9021(图6)执行多播传输。在图17中示出的系统中,CPU 101和存储器103连接到的路由复合体102通过PCI express扩展交换机304连接到多个扩展网络转发引擎112至114。
在图17示出的系统中,如果要执行多播传输,则扩展网络转发引擎112至114中的每一个将“1”设置到扩展ID路由选择TLP帧9021的多播指示信息903(图6)。此后,扩展网络转发引擎112至114中的每一个将其中用于多播传输的群组号被设置到总线号、设备号和功能号的帧发送到PCI express扩展交换机304。在接收到该帧时,PCI express扩展交换机304使得表搜索单元203利用由该总线号、设备号和功能号组成的15比特信息作为要查找的存储器地址来对多播表存储器2046(图10)进行搜索。扩展网络转发引擎112至114中的每一个利用通过该搜索获得的输出端口来执行多播传输。参考图10,如果要查找的存储器地址例如是“0x7FFF”,则复数输出端口信息是“0000-0000-0001-1100”。在该情形中,端口3、4和5是用于多播传输的输出端口。
此外,在图17示出的系统中,如果要执行单播传输,则使用图21中示出的地址路由选择帧或者图22中示出的ID路由选择帧。此刻,PCIexpress扩展交换机304通过查找扩展地址路由选择表存储器2044或者扩展ID路由选择表存储器2045来判断用于单播的传输端口。
也可以将根据本发明实施例的包括多播传输功能的PCI express扩展交换机304应用到用于通过复用端点设备来提高可靠性的计算机系统。图18示出了应用到计算机系统的示例。
在图18示出的计算机系统中,CPU 101和存储器103连接到的路由复合体102经由PCI express扩展交换机304连接到活动端点105和端点105的备用端点105’。在正常操作模式中,PCI express扩展交换机304利用多播传输功能将从路由复合体102发送来的帧多播传输到端点105和备用端点105’分别连接到的端口。此外,PCI express扩展交换机304仅将从端点105接收到的帧发送给路由复合体102。从而在正常操作模式中端点105和备用端点105’可以保持在相同状态中。
如果端点105发生故障,则PCI express扩展交换机304将从备用端点105’接收到的帧发送给路由复合体102。因此,即使端点105的设备发生故障,备用端点105’的设备也可以接管端点105的操作,从而可以提高可靠性。
已描述了本发明的实施例。但是,本发明不限于上述示例,而是可以对本发明作出各种其他添加或改变。虽然基于有线连接计算机系统和网络系统描述了实施例,但是可以将本发明应用到遵循PCI express的各种系统环境,而不管系统是有线还是无线的。

因特网连接交换机和因特网连接系统.pdf_第1页
第1页 / 共42页
因特网连接交换机和因特网连接系统.pdf_第2页
第2页 / 共42页
因特网连接交换机和因特网连接系统.pdf_第3页
第3页 / 共42页
点击查看更多>>
资源描述

《因特网连接交换机和因特网连接系统.pdf》由会员分享,可在线阅读,更多相关《因特网连接交换机和因特网连接系统.pdf(42页珍藏版)》请在专利查询网上搜索。

交换机(304)具有多个桥(3041、3042、3043、3044、3045)和交换机转发机构(20)。这些桥分别向连接的设备发送并从连接的设备接收遵循PCI express标准的TLP帧。交换机转发机构具有这些桥分别连接到的多个端口(1、2、3、4、5),并且该机构选择与从这多个端口中的一个端口输入的TLP帧的目的地信息和输入了该TLP帧的端口的组合相对应的输出端口,并且从所选择的输出端口输出该。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1