PCI-Express通信系统及其通信方法技术方案

技术编号:2849457 阅读:196 留言:0更新日期:2012-04-11 18:40
PCI-Express通信系统。为了使得在使用PCI-Express转换器的PCI-Express通信系统中,即使在从一节点向另一节点发出请求之后,在所述另一节点对初始请求源节点进行响应之前在PCI-Express转换器中更换了总线ID/设备ID,也能够向作为该初始请求源节点的目标发送响应数据包。为此,为节点设置用于表示各个节点的唯一节点ID,为用于数据传送的各个信道设置信道ID,并且在用于数据传送的数据包的地址字段中设置传送目的地模块的节点ID、用于数据传送的信道的信道ID,以及表示该数据包是请求还是响应的数据包类型。仅使用通过地址路由进行了路由的存储器写请求数据包来进行数据传送。

【技术实现步骤摘要】

本专利技术涉及一种通信系统及其通信方法,其中在接口中使用PCI-Express并且多个节点通过PCI-Express连接。
技术介绍
外围组件互连(PCI)是用于计算机内部的各个部件之间的计算机总线连接的标准,并且目前适用于大多数计算机;但是,最新开发出了作为更快传输接口标准的PCI-Express规范。例如,如专利文献1中所述,在PCI-Express中,为了防止在并行总线中出现的信号线之间的时滞(skew)而采用串行链路,并且通过串行链路对数据包进行异步传输。另外,PCI-Express使得能够以层为单位进行升级,因此其功能被分层。通过向以数字形式(in number)生成的传输数据中添加处理层中的头部并且向处理数据包的头部和尾部添加CRC,来生成数据链路数据包。最后,在物理层中,将其转换成物理信号并通过传输介质进行传输。同时,在PCI-Express中,节点之间可以通过转换器(PCI-Express转换器)进行连接。图1表示传统的PCI-Express通信系统,其中各个节点(这里还称为模块)通过基于PCI-Express规范在模块A至n之间进行通信的PCI-Express转换器进行连接。在以下描述中,将进一步说明与本专利技术相关的一部分PCI-Express。根据PCI-Express规范,需要位于上层上的被称为根联合体(rootcomplex)的模块,例如图1中的模块A(1)。另外,如图1所示,在PCI-Express转换器(6)的各个端口中,为各个模块分配了总线编号(BusNum.)和设备编号(DeviceNum.)。图1示出了以下示例为模块A(1)分配了总线编号0和设备编号1,为模块B(2)分配了总线编号1和设备编号2,为模块C(3)分配了总线编号1和设备编号3,而为模块D(4)分配了总线编号1和设备编号4。接下来,说明在模块之间通过PCI-Express转换器(6)进行的数据包通信。在PCI-Express转换器(6)上有两种类型的数据包路由用于根据包含在数据包头部中的地址进行路由的地址路由;以及用于根据包含在数据包头部中的由设备编号和动作编号构成的请求者ID进行路由的ID路由。在PCI-Express规范中,分别使用这两种类型的路由,从而对于请求数据包使用地址路由,而对于响应数据包使用ID路由。因此,对于用于存储器写请求命令和存储器读请求命令的请求数据包使用地址路由。注意,在该PCI-Express规范中,响应数据包的响应不是对存储器写请求命令进行的。如图1所示,(1)当从模块D(4)和模块C(3)发出存储器读请求命令时,(2)PCI-Express转换器(6)根据PCI-Express规范的地址路由将存储器读请求数据包传送给模块C(3),(3)模块C(3)将所读数据作为响应数据包进行应答。(4)PCI-Express转换器(6)根据PCI-Express规范的ID路由将响应数据包传送给模块D(4)。图2是说明从另一端读出数据的GET传送序列的流程图。发送端的固件通过在存储器中生成描述符来启动发送端的硬件,该描述符用于指定待读出的数据。如图2所示,发送端或发送源发出存储器读请求数据包作为GET传送序列,并在PCI-Express转换器(6)中根据PCI-Express规范的地址路由将GET传送请求发送至接收端。在接收端,接收端的硬件通过接收从发送端发送的接收触发信号而从空闲状态启动。并且在从存储器读出数据之后,返回对GET请求的响应作为响应数据包。根据PCI-Express转换器(6)的PCI-Express规范的ID路由将响应数据包发送回发送端。发送端的硬件从响应数据包中接收所读数据,通过将数据写入到存储器中来中断发送端固件,从而发送端固件执行终止处理。图3是说明在另一端写入数据的PUT传送序列的流程图。与GET传送的情况相同,根据PCI-Express规范的地址路由来执行从发送端发出的存储器写请求数据包的路由。并且根据PCI-Express规范,接收端不进行响应(在非邮递性存储器写入中并不产生响应)。因此,请求端不能确定是否正常执行了写入处理。例如,假定如图1所示在PCI-Express转换器(6)的各个端口中均设定了总线编号和设备编号,并且根据PCI-Express规范的地址路由来执行存储器读请求数据包作为GET传输。模块C传送所读数据作为响应数据包,并且根据PCI-Express规范的ID路由来执行响应传送控制。图4表示在上述序列中使用的数据包的处理层中的头部的一部分。PCI-Express转换器(6)在例如请求响应数据包的ID路由时使用图4中的请求者ID来执行PCI-Express规范的ID路由,并且使用图4中的地址来执行PCI-Express规范的地址路由。图4中的请求者ID是用于识别请求端的模块的信息,并且图4中的地址包含有到传输目的地的路由信息。如图5所示,对于这种系统,当作为根联合体的模块A(1)由于异常(例如,异常电压、芯片缺陷、软件问题、或维护等)而断开时,因为缺少根联合体,所以根据PCI-Express规范,需要其他模块B至N中的任何一个成为新的根联合体,并且需要改变PCI-Express转换器(6)所具有的各个端口的组件信息(总线编号/设备编号)。在图5所示的示例中,在模块A(1)断开之后,模块B(2)成为新的根联合体,其总线编号为0且设备编号为1。在图5中,假设(1)从模块D(4)向模块C(3)发出存储器读请求,(2)PCI-Express转换器(6)根据PCI-Express规范的地址路由向模块C(3)传送存储器读请求数据包,以及(3)此时,作为根联合体的模块A(1)由于异常而断开。然后,(4)改变PCI-Express转换器(6)中的各个端口的配置信息,更换总线编号和设备编号(以下可将其称为ID更换),并且模块B(2)变成新的根联合体。(5)模块C(3)通过来自模块D(4)的存储器读请求命令而应答所读数据,并且此时的请求者ID包括更换之前的模块D的总线编号和设备编号。(6)因为从模块C(3)发送的数据包是响应数据包,所以PCI-Express转换器(6)根据PCI-Express规范的ID路由来进行路由。(7)然而,因为由于更换而将所述总线编号和设备编号分配给了其他模块,所以可能会错误地将响应数据包发送给错误的模块或者可能会丢失。日本专利申请公报No.2004-326151
技术实现思路
本专利技术要解决的问题是在使用PCI-Express转换器在节点之间进行通信的PCI-Express通信系统中,即使在从一节点向另一节点发出请求之后,在所述另一节点对初始请求源节点进行响应之前在PCI-Express转换器中更换了总线编号/设备编号,也能够向作为该初始请求源节点的目标发送响应数据包。为了解决本专利技术的问题,对通过PCI-Express连接的各个模块设定唯一的节点ID。对将数据写入另一端的模块中(PUT传送)以及从另一端的模块中读出数据(GET传送)中的每一个提供专用信道,并且为每一个信道设置信道ID。根据PCI-Express,节点ID和信道ID设置在所传送的处理层数据包的头部的地址中,同时设置用于识别该数据包是请求还是响应的数据包类型。对于数据传送,仅本文档来自技高网
...

【技术保护点】
一种PCI-Express通信系统,其使用通过连接多个模块来进行数据包传送的PCI-Express转换器,该PCI-Express通信系统包括:为所述多个模块中的每一个设置唯一的节点ID以表示每一个模块,以及为用于数据传送的各个信道 设置信道ID;在用于数据传送的数据包的地址字段中设置传送目的地模块的节点ID、用于数据传送的信道的信道ID,以及表示所述数据包是请求型数据包还是响应型数据包的数据包类型;以及使用要根据PCI-Express转换器地址路由进行 路由的存储器写请求数据包来进行数据传送。

【技术特征摘要】
JP 2005-3-24 JP2005-085307;JP 2005-11-30 JP2005-341.一种PCI-Express通信系统,其使用通过连接多个模块来进行数据包传送的PCI-Express转换器,该PCI-Express通信系统包括为所述多个模块中的每一个设置唯一的节点ID以表示每一个模块,以及为用于数据传送的各个信道设置信道ID;在用于数据传送的数据包的地址字段中设置传送目的地模块的节点ID、用于数据传送的信道的信道ID,以及表示所述数据包是请求型数据包还是响应型数据包的数据包类型;以及使用要根据PCI-Express转换器地址路由进行路由的存储器写请求数据包来进行数据传送。2.根据权利要求1所述的PCI-Express通信系统,包括下述的信道作为用于数据传送的信道用于将数据写入另一端的模块中的PUT传送专用信道;以及用于从另一端的模块读取数据的GET传送专用信道。3.根据权利要求2所述的PCI-Express通信系统,其中,当从一个模块向另一模块发出存储器读取时,所述一个模块在所述存储器写请求数据包的地址字段中设置所述另一模块的节点ID、由所述另一模块使用的GET传送专用信道的信道ID,以及表示请求的数据包类型。4.根据权利要求3所述的PCI-Express通信系统,其中,所述一个模块设置由所述一个模块使用的GET传送专用信道的信道ID,而所述另一模块在一存储器写数据包的头部的地址字段中设置该信道ID、所述一个模块的节点ID,以及表示响应的数据包类型,并将该存储器写请求数据包发送回所述一个模块。5.根据权利要求2所述的PCI-Express通信系统,其中,当从一个模块向另一模块发出存储器写请求时,所述一个模块在所述存储器写请求数据包的地址字段中设置所述另一模块的节点ID、由所述另一模块使用的PUT传送专用信道的信道ID,以及表示请求的数据包类型。6.根据权利要求5所述的PCI-Express通信系统,其中,所述一个模块在所述存储器写请求数据包的头部中设置由所述一个模块使用的PUT传送专用信道的信道ID,而所述另一模块在一存储器写请求数据包的头部的地址字段中设置该信道ID、所述一个模块的节点ID,以及表示响应的数据包类型,并将该存储器写请求数据包发送回所述一个模块。7.根据权利要求2所述的PCI-Express通信系统,其中,所述PUT专用信道和GET专用信道中的每一个都包括接收信道和发送信道。8.根据权利要求7所述的PCI-Express通信系统,其中,当从一个模块向另一模块发出存储器读请求时,所述一个模块在所述存储器写请求数据包的地址字段中设置所述另一模块的节点ID、所述另一模块的GET传送专用接收信道的信道ID,以及表示请求的数据包类型,并在该存储器写请求数据包的头部中设置由所述一个模块使用的GET传送专用发送信道的信道ID,而所述另一模块在一存储器写请求数据包的头部的地址字段中设置所述发送信道的信道ID、所述一个模块的节点ID,以及表示响应的数据包类型,并且使用该存储器写请求数据包对所述一个模块进行答复。9.根据权利要求7所述的PCI-Express通信系统,其中,当从一个模块向另一模块发出存储器写请求时,所述一个模块在所述存储器写请求数据包的地址字段中设置所述另一模块的节点ID、所述另一模块的PUT传送专用接收信道的信道ID,以及表示请求的数据包类型,并在该存储器写请求数据包的头部中设置由所述一个模块使用的PUT传送专用发送信道的信道ID,而所述另一模块在一存储器写请求数据包的头部的地址字段中设置所述发送信道的信道ID、所述一个模块的节点ID,以及表示响应的数据包类型,并使用该存储器写请求数据包对所述一个模块进行答复。10.一种PCI-Express通信方法,其使用通过连接多个模...

【专利技术属性】
技术研发人员:石泽浩羽根田光正小川裕一
申请(专利权)人:富士通株式会社
类型:发明
国别省市:JP[日本]

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

1