CN101876963B - PCI.Express通信系统及其通信方法 - Google Patents

PCI.Express通信系统及其通信方法 Download PDF

Info

Publication number
CN101876963B
CN101876963B CN201010158624.8A CN201010158624A CN101876963B CN 101876963 B CN101876963 B CN 101876963B CN 201010158624 A CN201010158624 A CN 201010158624A CN 101876963 B CN101876963 B CN 101876963B
Authority
CN
China
Prior art keywords
mentioned
data
tlp
mistake
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010158624.8A
Other languages
English (en)
Other versions
CN101876963A (zh
Inventor
村上真之
竹原润
荒牧成彦
川村敏和
高柳洋一
冈部基彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN101876963A publication Critical patent/CN101876963A/zh
Application granted granted Critical
Publication of CN101876963B publication Critical patent/CN101876963B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Abstract

本发明提供PCI.Express通信系统及其通信方法,该方法由以下步骤构成:在TLP摘要中,事务层的电路检测错误,对于发送数据设定错误信息,接收到根联合体(1)发送的存储器读取请求的终端(3a)在对应于被请求的TLP的第1数据的发送中检测出错误的情况下,将错误信息设置到TLP摘要中而返回带数据的完结信号的步骤;根联合体(1)将基于错误信息的存储器读取请求发送给终端的步骤;终端返回被请求的第2数据的步骤;以及根联合体在保持的第1数据的错误位置上覆盖第2数据而完成该应答的步骤。

Description

PCI.Express通信系统及其通信方法
相关申请的交叉引用
本申请基于2009年3月31日提交的日本专利申请第JP2009-87994号,要求享受其优先权,并在这里引用其全部内容。
技术领域
本发明涉及PCI.Express通信系统及其通信方法,特别涉及发生错误时的事务层数据包(TLP:Transaction Layer Packet)的传送协议的改良。
背景技术
PCI.Express(注册商标)总线是为了传送计算机系统及其他电子设备的数据而近年来开发的基于点对点连接的高速串行接口,与以往的并行传送相比总线的基板占用面积较少而能够实现进一步的小型化,在许多领域中研究了其用途。
其规格的详细情况由作为PCI规格的制定基础的PCI-SIG(PeripheralComponent Interconnect-Special Interest Group:互连外围设备专业组)规格化为PCI.Express Base Specification。此外,还出版了该规格的说明书。例如有日本的技术书籍《PCIe入门讲座》(荒井信隆,里美尚志,田中显裕共著,(株)电波新闻社,2007年4月1日发行,第1~第5章)(以下称作非专利文献1)。
首先,参照图1至图3,说明该PCI.Express通信系统(有时也称作PCIe通信系统)的概况。PCI.Express通信系统结构例如如图1所示,由根联合体(Root Complex)1、开关2及终端3(3a、3b、3c、3d)的设备构成。
此外,根联合体1、开关2具有多个端口,将它们与终端3的相互间连接的PCI.Express总线7a~7e具备如图2所示的3层的层构造。
各个层包括:事务层101,对由最上位的驱动程序及应用软件构成的上位软件层,用以往的PCI互换服务和端对端来保证数据的可靠的通信;数据链路层102,保障相邻的组件间的可靠的数据通信;以及物理层103,在物理介质上收发通信数据包,并且上述各个层将收发的数据以数据包的形式传送。
进而,根联合体1位于PCI.Express通信系统的树构造的最上位,经由系统总线(未图示标号)与CPU5连接,并经由存储器总线(未图示标号)与存储器6连接。
在该结构中,在根联合体1与终端3a的通信中,开关2为TLP的中继设备,在终端3a与终端3d的通信中,开关2和根联合体1为中继设备。
这样构成的PCI.Express通信系统的设备间的传送路径的连接为点对点连接,使用两个单向的差动放大器的双重单工方式,链路速度具有2.5Gbps的带宽,双向具备5Gbps的频带。
进而,通过将该双向的传送路径(称作通道(lane))从两组增加到32组,能够将总线的频带宽度可扩展地构成,通过在该传送路径上收发数据包来执行数据的传送。
各层的数据包如图1所示,在事务层及数据链路层中生成,分别称作事务层数据包(TLP,Transaction Layer Packet)、数据链路层数据包(DLLP,Data Link Layer Packet)。
此外,在物理层中也为了链路控制而生成物理层数据包(PLP,PhysicalLayer Packet)。
此外,各层的数据包在由链路连接的对方的相同层之间交换,如图3所示,在下位的协议层中在前后附加了信息,最终发送给传送路径。接收到的数据包在各协议层中删除前后的信息,传递给上位的协议层。
详细地讲,进行端对端通信的TLP在事务层中构成TLP标头、数据有效载荷、以及可选的TLP摘要(称作ECRC,End-to-end CRC,端对端循环冗余校验),在数据链路层中,在发送时附加顺序号码和LCRC(链路循环冗余校验码),在接收时检查后删除。
DLLP是TLP的送达应答(肯定应答Ack和否定应答Nak)等在链路的双方间交换信息的短数据包。
进而,在各TLP中,对数据包的两端附加用来在物理层的接收侧检测TLP开始和结束的控制字符(STP和END)。此外,在各DLLP中,对数据包的两端附加用来检测DLLP开始和结束的控制字符(SDP和END)。
接着,对于这样构成的PCI.Express通信系统的发生错误时的事务层中的错误处理的问题,参照图4A~图4D及图5进行说明。
图4A~图4D是说明在由根联合体1、开关2及终端3a~3c构成的PCI.Express通信系统中,在从终端3a发送发送数据中发生了错误的情况下的问题的图,此外,图5是说明发生错误时的容错功能的问题的图。
例如,PCIe设备的结构如图5所示的终端3,包括:PCI.Express通信部3a1;局部控制器3a2,从PCI.Express通信部3a1接收发送数据的请求,控制向对通信的发送数据进行存储的数据缓冲器(存储器)3a3发送的数据的写入;以及数据缓冲器3a3。
由于从PCI.Express设备发送的发送数据是健全的,所以通常需要对于从数据缓冲器3a3读出到PCI.Express通信部3a1中的数据、在PCI.Express通信部3a1侧检测错误。在该错误检测中,检测局部控制器3a2、数据缓冲器3a3、以及PCI.Express通信部3a1与局部控制器3a2及数据缓冲器3a3之间的接口等的PCI.Express通信部3a1的上位电路的硬件故障、还有起因于数据缓冲器3a3的软件错误等的发送数据的错误。
首先,对事务层的数据传送进行叙述。在TLP的标头中准备了EP位。对于TLP的发送数据,例如用作为如上述的PCI.Express通信部3a1的事务层的电路的一部分设置的错误检测电路来检测错误,在该错误是不能修复的情况下,事务层的错误检测电路在EP位中设置1而发送TLP,则接收侧通过参照EP位,了解在接收数据中包含有错误,所以能够保障端对端的数据完全性。
但是,发送侧的事务层的错误检测电路为了在标头的EP位中设置1,需要先将发送数据全部储存到数据缓冲器中,使PCI.Express通信系统的吞吐量下降。
如果上述PCI.Express的上位电路的总线的频带比PCI.Express的频带高,则优选地,事务层的电路将从上位电路传送来的发送数据不先储存到数据缓冲器中而从PCI.Express的传送路径依次传送。将该传送方式称作直通(cut through)。
接着,参照图4A~图4D,说明采用了该直通传送方式的设备中的错误处理的延迟成为问题的情况。图4A是图示了在从终端3a对根联合体1发送带数据的完结信号(completion)TLP1过程中、终端3b对根联合体1开始发送1024双字(以后记作DW)的TLP2、在终端3a内检测出了在TLP1的未发送的数据中有不能修复的错误的情况下的状态的图。
在此情况下,终端3a如图4B所示,在TLP的末尾的控制字符中不是附加“END”而是附加“EDB”(EnD Bad)使TLP1无效化,接着要对根联合体1发送表示该错误是致命性的的错误消息的TLP3。
从终端3b发送的TLP2在TLP1的发送结束为止在开关2内的缓冲器内处于待机状态,所以如图4C所示,如果TLP1的发送结束,则开关2对根联合体1发送TLP2。由于TLP2是发送中,所以错误消息的TLP3在开关2的缓冲器内待机。
接着,如图4D所示,如果TLP2的发送完毕,则开始对根联合体1发送TLP3。
在上述那样的情况中,错误消息的TLP3在2.5Gbps、通道数1的情况下,有发生最大约16μsec(1024DW×16ns/DW)的延迟的问题。当为开关2将许多终端连接的系统的情况下,该延迟有可能变得更大。
此外,在终端3c构成为终端3a的待机类设备的情况下,在将该错误消息的TLP3触发而执行设备的切换的情况中,切换时间的延迟作为系统的故障时间而成为问题。
接着,参照图5,对发生错误时的系统的容错功能的下降成为问题的情况进行说明。
图5是说明在根联合体1对具备局部控制器3a2的终端3a发送1024DW的存储器读取请求的TLP31、且终端3a发送对该请求的完结信号的TLP32的过程中、在数据缓冲器3a3内的未发送数据中检测出错误的情况下的终端3a的错误修复动作的结构图。
在PCI.Express设备中,在事务层的数据传送中使用直通的情况下,通常为下述这样的修复动作。
(1)终端3a的PCI.Express通信部3a1接收存储器读取请求的TLP31,对局部控制器3a2请求1024DW的数据(s41)。
(2)局部控制器3a2将数据传递给数据缓冲器3a3(s43),并对PCI.Express通信部3a1通知数据准备完毕(s42)。
(3)PCI.Express通信部3a1一边从数据缓冲器3a3进行突发读取(burstread)(s44),一边发送完结信号TLP32。
此时,在数据缓冲器地址CF4h的数据中检测出错误,附加完结信号的TLP32的末尾字符“EDB”,使发送中的TLP32无效化。
(4)并且,为了进行数据缓冲器3a3的错误修复,PCI.Express通信部3a1对局部控制器3a2再次请求数据。
这里,对于终端3a的数据缓冲器3a3的错误的修复动作,分为错误处理对应为以一时性的软件错误为前提设计的系统的情况、和以不能修复的永久故障为前提设计的系统的情况说明其问题。
在前者的情况下,通常,PCI.Express通信部3a1同样对局部控制器3a2请求1024DW的数据。在此情况下,在缓冲器地址CF4h是永久故障的情况下,由于相同的数据被写入到数据缓冲器3a3的的相同区域中,所以有地址CF4h的数据的错误不能被修复的问题。
此外,由于没有将正常的读取数据返回给根联合体1,所以PCI.Express通信部3a1将不能恢复的错误(Fatal Error:致命错误)的错误消息发送给根联合体1。
并且,根联合体1通过接收该错误消息,将系统停止或复位。
在后者的情况下,有PCI.Express通信部3a1对局部控制器3a2以较小的数据尺寸请求数据的发送的方法,将完结信号TLP分多次发送给根联合体1。这有事务的完成需要较长时间的问题。
在除此以外的方法中,还有将数据缓冲器3a3双路化而交替地使用的方法,但耗费存储器的成本。
关于该PCI.Express的TLP,公开了将数据的错误检测委托给数据链路层的功能的LCRC、不使用事务层的功能的ECRC而独自利用TLP摘要的字段的技术。例如,美国专利申请公开第2009/0006932号说明书(以下称作专利文献1)。
在PCI.Express规格中,作为用来保证端对端的数据完全性的可选规格,将ECRC保存到TLP摘要中。
但是,如在专利文献1中所记载,如果充分确保中继设备的可靠性,再在事务层中设置数据错误检测功能,例如对收发的数据缓冲器设置奇偶校验(parity),则能够通过LCRC补充端对端的数据完全性的保证,可以判断为不需要ECRC。
专利文献1的作为用来独自利用TLP摘要的实施例,用TLP的标头部的TD位表示TLP摘要的存在的有无,利用标头的保留位表示TLP摘要是保存着独自的信息、还是保存着ECRC。
但是,在以这样的目的利用保留位而构建PCI.Express通信系统的情况下,在将来PCI.Express被修订、对其保留位分配了新的定义的时候,有可能不能取得与将来的PCI.Express规格的互换性。
因而,在独自使用TLP摘要的情况下,需要能够不使用标头的保留位、而在系统内的PCIe设备中共享TLP摘要是独自规格的情况。
如以上说明,关于基于以往的PCI.Express规格的TLP事务,在错误发生时的故障恢复时间、以及容错性(fault tolerance)方面存在问题。
发明内容
本发明是为了解决上述问题而做出的,目的是提供一种是PCI.Express通信系统中的发生错误时的TLP传送协议的改良、对于PCI.Express通信系统的中继设备或终端设备内的数据缓冲器内的特定(规定)区域的不能恢复的故障、一时性的软件错误、能够实现PCI.Express通信系统的容错性的提高、并且能够缩短故障恢复时间的PCI.Express通信系统及其通信方法。
为了达到上述目的,本发明的PCI.Express通信系统的通信方法由以下的结构构成。即,
其是PCI.Express通信系统的发生错误时的传送协议的改良,其特征在于,包括:
不对事务层数据包(TLP)的TLP摘要附加ECRC,对于发送数据,通过事务层的电路检测错误,并设定预定格式的错误信息的步骤;
发送设备(请求方)发送存储器读取请求的TLP;
接收到上述TLP的接收设备(完结方)在与被请求的上述TLP对应的第1数据的发送中检测出错误的情况下,不使返回的完结信号TLP无效化,而在上述TLP摘要中,作为上述错误信息而设定错误有无、地址级别单一错误或块级别单一错误、以及错误位置的各位并返回的步骤;
上述发送设备根据接收到的上述错误信息,对于发生了错误的地址,对上述地址级别单一错误或上述块级别单一错误,设定预定的各个错误判断级别的最小数据长度,并向上述接收设备请求存储器读取请求的步骤;
上述接收设备对上述存储器读取请求返回被请求的第2数据的步骤;以及
上述发送设备接收所请求的上述数据,在所保持的上述第1数据的错误位置上覆盖第2数据,完成该事务,
通过上述错误信息,能够实现发生错误时的容错性的提高和故障恢复时间缩短。
进而,为了达到上述目的,本发明的PCI.Express通信系统由以下的结构构成。即,
是将PCI.Express通信系统的发生错误时的传送协议改良的系统,其特征在于,
构成上述PCI.Express通信系统的收发TLP数据包的设备不对事务层数据包(TLP)的TLP摘要附加ECRC,而通过事务层的电路检测错误,并设定预定的发送数据的错误信息;
发送设备(请求方)发送存储器读取请求的TLP;
接收到上述TLP的接收设备(完结方)在与被请求的上述TLP对应的第1数据的发送中检测出错误的情况下,不使返回的完结信号的TLP无效化,而在上述TLP摘要中,作为上述错误信息而设定错误有无、地址级别单一错误或块级别单一错误、以及错误位置的各位并返回;
上述发送设备根据接收到的上述错误信息,对于发生了错误的地址,对上述地址级别单一错误或上述块级别单一错误,设定预定的各个错误判断级别的最小数据长度,并对上述接收设备请求存储器读取请求;
上述接收设备对上述存储器读取请求返回被请求的第2数据;
上述发送设备接收所请求的数据,在保持的上述第1数据的错误位置上覆盖第2数据,完成该事务;
通过上述错误信息,能够实现发生错误时的容错性的提高和故障恢复时间缩短。
根据本发明,能够提供一种对于PCI.Express通信系统的中继设备或终端设备内的数据缓冲器内的特定区域的不能恢复的故障及一时性的软件错误、能够实现PCI.Express通信系统的容错性的提高、并且能够缩短故障恢复时间的PCI.Express通信系统及其通信方法。
附图说明
图1是以往的PCI.Express通信系统的结构图。
图2是说明以往的PCI.Express的构造的图。
图3是说明以往的TLP格式的图。
图4A~图4D是说明以往的PCI.Express通信系统的问题的图。
图5是说明以往的PCI.Express通信系统的问题的图。
图6是本发明的PCI.Express通信系统的TLP的格式的结构图。
图7是说明本发明的PCI.Express通信系统的图。
图8是说明本发明的基于TLP摘要的通信动作的流程图。
图9是说明本发明的基于TLP摘要的通信动作的流程图。
图10是本发明的使用TLP摘要的PCI.Express通信系统的实施例。
具体实施方式
以下,参照附图对本发明的实施例进行说明。
[实施例1]
在图6中表示本发明的TLP摘要的格式的例子,并且,在图7中表示使用该TLP摘要的PCI.Express通信系统的动作例的结构图。
对该实施例1的各部,将与图1~图5所示的以往的实施例的PCI.Express通信系统相同的部分用相同的符号表示,并省略其说明。
图6的本发明的实施例与在图5中说明的以往的PCI.Express通信系统的实施例的不同点是,在采用直通传送方式的以往的PCI.Express通信系统中,在终端3a发送TLP数据包的过程中在未发送的数据中检测出了错误的情况下,一般的方法是使ECRC(端对端循环冗余校验)反转、将TLP的末尾的控制字符设为“EDB”而不是“END”、使数据包无效化(NullifiedTLP),但在本发明中,将预先设定的错误信息保存到TLP摘要中,对于在作为PCI.Express通信部3a1的上位电路的局部控制器3a2、数据缓冲器3a3,以及这些电路与PCI.Express通信部3a1的接口中发生的一时性的错误、在事务层的数据缓冲器3a3中发生的软件错误、以及特定位置的不能恢复的故障,实现PCI.Express通信系统的容错性的提高,并且缩短故障恢复时间。
首先,参照图6,说明本申请的事务层数据包的构造和对数据包末尾附加的32位的TLP摘要的格式的设定例。
设定在位16~31的高位16位的错误检测冗余码D1是设置用来保证端对端的数据完全性的冗余码的区域。在端对端的中继设备的可靠性不详、或不充分的情况下,为了保证端对端的数据完全性而设置该区域。它相当于PCI.Express的ECRC的作用,除了16位的CRC以外,也可以设定16位SUM等。
对位15设定的奇偶校验(parity)D2是用来保证后述的位0~14的数据的奇偶校验位。虽然能够通过LCRC(链路循环冗余校验码)检测数据的错误,但TLP摘要的字段是用来进一步提高数据的可靠性的。
对位14设定的错误有无D3是表示在发送的TLP的数据中是否包含有错误(1:有错误,0:无错误)的位。
此外,对位13设定的错误修复要否D3在接收到带数据的完结信号(completion)的情况下,指示在请求侧是否需要错误数据的修复处理。
(例如,1:请求方(发送设备)仅对包含错误数据的地址、或其周边地址区域发出最小的数据长度的存储器读取请求、或者发出与上次相同的地址和数据长度的存储器读取请求。
0:请求方不论错误的有无都将读取的数据进行通常处理,结束事务。)
在接收到存储器写入请求或消息的情况下,是对完结方(接收设备)侧指示错误数据的处理的位。
(例如,1:完结方将错误数据丢弃。
其中,由系统决定是将所有的数据丢弃,还是仅将错误数据丢弃而保持剩余的数据。
0:完结方将该写入数据进行通常处理。)
接着,对位12设定的错误修复可否D5是表示在发送侧发生的错误是否能够修复的位。
(例如,1:通过发送侧的功能能够再生成正确的数据,能够修复。
0:通过发送侧的功能不能再现数据,不能修复。)
此外,对位11设定的地址级别(address level)单一错误D6是表示在TLP的数据中是否包含有只有1DW的数据错误的位。
(例如,1:单一错误,0:多个错误)
同样,对位10设定的块级别(block level)单一错误D7是表示在TLP的数据中是否仅在由预先在系统设计时设定的地址边界划分的一个块中包含有数据错误的位。
(例如,1:单一错误,0:多个错误)
进而,对位0~9设定的错误位置D8是设置最初检测出错误的位置的区域,是表示关于TLP的数据有效载荷、从开头起第几个DW的错误的位。
这里,将关于在图6所示的TLP摘要的格式中说明的错误的设定信息在这里统称作错误信息。
接着,参照图7说明基于这样的TLP摘要的格式设定的PCIe通信系统的事务动作,。
图7是根据图5、根联合体1对具备局部控制器3a2的终端3a发出1024DW的存储器读取请求(TLP)、在终端3a发送带数据的完结信号的过程中、在数据缓冲器3a3内的未发送数据中检测出错误的情况下的终端3a的错误修复的情况下的动作的结构图。
在本发明中,为以下这样的错误修复动作。首先,与图5同样,
(1)终端3a的PCI.Express通信部3a1接收存储器读取请求的TLP31,对局部控制器3a2请求1024DW的数据。
(2)局部控制器3a2将数据传递给数据缓冲器3a3,对PCI.Express通信部3a1通知数据准备完毕。
(3)PCI.Express通信部3a1一边从数据缓冲器3a3进行突发读取(s44),一边发送带数据的完结信号的TLP32。
此时,在数据缓冲器地址CF4h的数据中检测出错误,在完结信号TLP的末尾不附加“EDB”,不使发送中的TLP无效化。
接着,在终端3a的数据缓冲器3a3的错误的修复动作中,
(4)将从发送中的数据检测出的错误信息以图6中说明的TLP摘要的格式设定,设定的错误信息例如是单一错误,将记述有其错误位置的地址的TLP(带数据的完结信号的TLP32)从终端发送。
(5)由图7,根联合体1在保持着接收到的数据的状态下仅对发生了错误的位置的地址发出存储器读取请求。由于此时的TLP的数据长是单一错误,所以在TLP标头的数据长字段中设定1(TLP21)。
(6)终端3a的PCI.Express通信部3a1对于局部控制器3a2,对请求的地址,请求1DW的数据(s31)。
(7)根联合体1在数据缓冲器3a3的开头准备1DW的数据(s33),对PCI.Express通信部3a1通知数据准备完毕(s32)。
(8)并且,PCI.Express通信部3a1读取数据缓冲器3a3的开头地址的数据(s34),将该数据的TLP(TLP22)发送给根联合体1。
(9)于是,根联合体1接收该TLP,将该数据覆盖在所保持的数据的错误位置上,结束该事务。
在该错误处理的情况下,如果写入被请求的1DW的数据的数据缓冲器3a3的开头地址故障,则不能发送正确的数据,而在此情况下,通过对根联合体1指定以使写入到预先设定的别的区域中而能够避免。
在基于设定在该TLP摘要中的错误信息进行的错误处理的情况下,不仅是对于一时性的软件错误,对于特定(规定)区域的永久故障也能够实现容错。
进而,由于仅对错误位置的特定区域发出存储器读取请求而进行错误修复,所以能够迅速地结束事务。
因而,即使是在数据缓冲器3a3内发生了单一错误的情况、或在数据缓冲器与局部控制器之间发生了一时性的错误的情况,也有可能能够将错误的修复迅速地修复,所以能够确保PCI.Express通信系统对于PCI.Express的上位电路的错误的实时性。
接着,参照图8及图9,说明本申请的基于设定了错误信息的TLP摘要的TLP接收处理动作的详细情况。
参照奇偶校验D2及错误检测用冗余码D1,判断在接收到的TLP中是否没有错误(s1~s3)。
在任一个中有错误的情况下,将该数据包丢弃(s4),在该TLP的种类是请求的情况下,通过预先设定的系统的恢复方法进行处理(s5、s6)。
否则,即为完结信号的情况下,再发出前次的请求,或者将发送侧设备或系统复位(s7)。
在接收到的TLP中没有错误、其种类是带数据的完结信号以外的情况下(s11),在其种类是存储器写入请求或消息的情况下(s12),再参照该TLP的有错误D3、要错误修复D4,执行预先设定的错误修复处理(s15),否则(没有错误D3,不要错误修复D4),结束该应答。
在该TLP的种类不是带数据的完结信号、存储器写入请求、消息请求的任一种的情况下,在该TLP是无数据完结信号的情况下,结束该应答(s16),否则,即如果是存储器写入请求及消息请求以外的请求,则执行完结(completion)(s17)。
接着,参照图9说明在该TLP是带数据的完结信号的情况下,接收到它的设备中的处理动作。
在被请求的数据中没有错误D3(s21)、错误修复要否D4(s22)是不需要的情况下,结束读取事务(s23)。
在数据中有错误D3(s21)、需要错误修复D4(s22)的情况下,再判断错误修复可否D5(s24)。在错误修复可否D5是不能的情况下,参照地址级别单一错误D6,在其结果是单一错误(s25)的情况下,向错误位置D8的地址发送数据长1DW的存储器读取请求(s26)。
如果正常地返回了对于该请求的完结信号,则结束该读取事务(s27、s23)。
参照地址级别单一错误D6,在其结果是块级别单一错误的情况下(s28),对基于该错误位置D8的nDW(DW的n倍)地址边界的开头地址,发送数据长nDW的存储器读取请求(s29)。如果正常地返回了对于该请求的完结信号,则结束该读取事务(s27、s23)。
在错误修复可否D5是否的情况下,或者在既不是地址级别单一错误也不是块级别单一错误的情况下(s28:否),再发出与上次相同的请求,或者将发送侧PCI.Express设备或系统整体复位。
[实施例2]
接着,说明将独自使用如实施例1中说明的TLP摘要的PCI.Express设备(以下称作专用设备)和以往的PCI.Express设备(以下称作通用设备)混合的PCI.Express通信系统的通信方法。
如果独自地设计PCI.Express通信系统内的所有的PCI.Express设备,则各设备只要设计为使其能够对TLP摘要进行如实施例1中说明的错误信息的设定、检测就可以。
但是,即使是要求可靠性的面向产业的PCI.Express通信系统,也可以想到所采用的PCI.Express通信系统的结构中混合有通用设备和如实施例1所示的独自设计的专用设备的情况。
例如,如图10所示,根联合体1x是用于CPU5及存储器6的接口的高可靠化、或CPU5的双路化控制等的专用设备,终端3cx、3dx例如是实时以太网(注册商标)等的专用设备,事务层能够独自地设计。
另一方面,终端3a、3b例如是通用以太网(注册商标)、或通用USB,由于它们是COTS(商用品,Commercial off-the-shelf),所以不能对事务层的电路加以改动。
该专用设备的终端3cx、3dx例如在需要实时以太网(注册商标)等的控制通信的情况下,可以独自地设计事务层,但在通用以太网(注册商标)3b或通用USB3a端口的情况下,如果将该设备做成专用设备则变得昂贵,所以对于这些通用设备的PCI.Express通信部不加以改动。
在上述那样的将通用和专用的设备混合的情况下,根联合体1x需要容易地识别哪个PCI.Express设备支持如实施例1所示的独自的TLP摘要。
在专利文献1中,利用TLP标头的保留位,对所发送的每一个TLP判别TLP摘要的类型是ECRC还是独自,但在本实施例2中,当完结(completion)时一起进行专用设备的判断这一点不同。
以下,参照图10,对混合通用、专用设备的系统结构中的设备的识别方法进行说明。
图10的根联合体1x在系统的初始化时将销售商(vendor)独自消息以广播发送。销售商独自消息由PCI.Express规格设定,消息码是0111 1111(Vendor_defined Type 1)。消息的头的第4DW是销售商记述字段,预先设定并保存表示独自使用TLP摘要的代码。
专用设备的终端3cx和3dx如果接受到该消息,则对根联合体1x返回上述销售商独自消息。
通用设备的终端3a和3b由于不能解释销售商独自消息的内容,所以将该消息丢弃。
根联合体1x将有应答的终端的ID(总线号码、设备号码、功能号码)全部存储,在初始化结束后,对于与这些ID一致的请求及完结信号,独自处理TLP摘要,如果不与该ID一致,则不使用TLP摘要,或者以ECRC进行处理。
对于广播型的消息请求,专用设备将TLP摘要以ECRC进行处理、或将该消息的头部的TD位设为0,使TLP摘要无效。
通过以上说明的方法,能够容易地识别在系统的初始化时构成的设备是通用还是专用的。
本发明并不限于如上述实施例的任何限定,对TLP摘要设置的错误信息也可以根据缓冲器存储器的结构或数据结构等而变更请求再发送的区域,在不脱离本发明的主旨的范围内能够进行各种变形来实施。

Claims (4)

1.一种PCI.Express通信方法,其涉及PCI.Express通信系统的发生错误时的传送协议的改良,其特征在于,包括如下步骤:
不对事务层数据包TLP的TLP摘要附加ECRC,对于发送数据,通过事务层的电路检测错误,并设定预定格式的错误信息;
发送设备发送存储器读取请求的TLP;
接收到上述发送设备发送的存储器读取请求的TLP的接收设备在与上述发送设备发送的存储器读取请求的TLP对应的第1数据的发送中检测出错误的情况下,不使返回的完结信号的TLP无效化,而在上述TLP摘要中,作为上述错误信息而设定错误有无、地址级别单一错误或块级别单一错误、以及错误位置的各位并返回;
上述发送设备根据接收到的上述错误信息,对于发生了错误的地址,对上述地址级别单一错误或上述块级别单一错误,设定预定的各个错误判断级别的最小数据长度,并向上述接收设备请求存储器读取请求;
上述接收设备对上述发送设备向该接收设备请求的存储器读取请求返回被请求的第2数据;以及
上述发送设备接收所请求的上述第2数据,在所保持的上述第1数据的错误位置上覆盖第2数据,完成该事务,
通过上述错误信息,能够实现发生错误时的容错性的提高和故障恢复时间缩短。
2.如权利要求1所述的PCI.Express通信方法,其特征在于,
设定在上述TLP摘要中的上述错误信息包括:
错误检测用冗余码位,上述TLP摘要检测本设备的内部电路的故障,设定该TLP的数据完全性;
错误有无位,设定在上述TLP的数据中是否包含有错误;
错误修复要否位,在上述接收设备发送带数据的完结信号的情况下,对上述发送设备指示是否需要进行该数据的修复,在上述发送设备发送存储器写入请求或消息的情况下,对上述接收设备指示是否要进行错误数据的处理;
错误修复可否位,表示检测出的错误在上述接收设备侧是否能够修复;
地址级别单一错误位,表示上述TLP的数据的错误是否只是数据长度1DW;
块级别单一错误位,表示在上述TLP的数据中,是否仅在由预定的地址边界划分的一个块中有数据错误;
错误位置位,表示上述TLP的数据的错误的发生位置;以及
奇偶校验位,表示除了上述错误检测用冗余码位以外的上述TLP摘要的多个位的奇偶校验。
3.一种PCI.Express通信系统,其涉及PCI.Express通信系统的发生错误时的传送协议的改良,其特征在于,包括:
不对事务层数据包TLP的TLP摘要附加ECRC,而通过事务层的电路检测错误,并设定预定的发送数据的错误信息的装置;
发送设备,发送存储器读取请求的TLP;
接收设备,接收上述发送设备发送的存储器读取请求的TLP,在与上述发送设备发送的存储器读取请求的TLP对应的第1数据的发送中检测出错误的情况下,不使返回的完结信号的TLP无效化,而在上述TLP摘要中,作为上述错误信息而设定错误有无、地址级别单一错误或块级别单一错误、以及错误位置的各位并返回;
上述发送设备还包括根据接收到的上述错误信息,对于发生了错误的地址,对上述地址级别单一错误或上述块级别单一错误,设定预定的各个错误判断级别的最小数据长度,并对上述接收设备请求存储器读取请求的装置;
上述接收设备还包括对上述发送设备向该接收设备请求的存储器读取请求返回被请求的第2数据的装置;
上述发送设备还包括接收所请求的上述第2数据,在所保持的上述第1数据的错误位置上覆盖第2数据,完成该事务的装置;
通过上述错误信息,能够实现发生错误时的容错性的提高和故障恢复时间缩短。
4.如权利要求3所述的PCI.Express通信系统,其特征在于,
设定在上述TLP摘要中的上述错误信息包括:
错误检测用冗余码位,上述TLP摘要检测本设备的内部电路的故障,设定该TLP的数据完全性;
错误有无位,设定在上述TLP的数据中是否包含有错误;
错误修复要否位,在上述接收设备发送带数据的完结信号的情况下,对上述发送设备指示是否需要进行该数据的修复,在上述发送设备发送存储器写入请求或消息的情况下,对上述接收设备指示是否要进行错误数据的处理;
错误修复可否位,表示检测出的错误在上述接收设备侧是否能够修复;
地址级别单一错误位,表示上述TLP的数据的错误是否只是数据长度1DW;
块级别单一错误位,表示在上述TLP的数据中,是否仅在由预定的地址边界划分的一个块中有数据错误;
错误位置位,表示上述TLP的数据的错误的发生位置;以及
奇偶校验位,表示除了上述错误检测用冗余码位以外的上述TLP摘要的多个位的奇偶校验。
CN201010158624.8A 2009-03-31 2010-03-31 PCI.Express通信系统及其通信方法 Expired - Fee Related CN101876963B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009087994A JP2010238150A (ja) 2009-03-31 2009-03-31 PCIExpress通信システム、及びその通信方法
JP087994/2009 2009-03-31

Publications (2)

Publication Number Publication Date
CN101876963A CN101876963A (zh) 2010-11-03
CN101876963B true CN101876963B (zh) 2013-10-16

Family

ID=42173546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010158624.8A Expired - Fee Related CN101876963B (zh) 2009-03-31 2010-03-31 PCI.Express通信系统及其通信方法

Country Status (6)

Country Link
US (1) US8281203B2 (zh)
EP (1) EP2237162B1 (zh)
JP (1) JP2010238150A (zh)
KR (1) KR101099471B1 (zh)
CN (1) CN101876963B (zh)
AT (1) ATE516553T1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5800565B2 (ja) * 2011-05-11 2015-10-28 キヤノン株式会社 データ転送装置及びデータ転送方法
US8880956B2 (en) 2011-06-01 2014-11-04 International Business Machines Corporation Facilitating processing in a communications environment using stop signaling
US8495265B2 (en) 2011-06-01 2013-07-23 International Business Machines Corporation Avoiding non-posted request deadlocks in devices by holding the sending of requests
US8560736B2 (en) 2011-06-01 2013-10-15 International Business Machines Corporation Facilitating processing of out-of-order data transfers
US8787155B2 (en) 2011-06-01 2014-07-22 International Business Machines Corporation Sideband error signaling
US8903966B2 (en) 2011-06-01 2014-12-02 International Business Machines Corporation Re-programming programmable hardware devices without system downtime
GB2495313B (en) * 2011-10-05 2013-12-04 Micron Technology Inc Connection method
JP5542787B2 (ja) * 2011-12-08 2014-07-09 シャープ株式会社 画像形成装置
US9489008B2 (en) * 2011-12-22 2016-11-08 Intel Corporation Method and apparatus for clock frequency ratio independent error logging
US20130173834A1 (en) * 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag
US9032102B2 (en) * 2012-03-02 2015-05-12 International Business Machines Corporation Decode data for fast PCI express multi-function device address decode
US9201719B2 (en) * 2012-03-16 2015-12-01 Infineon Technologies Ag Method and system for timeout monitoring
US9990244B2 (en) 2013-01-30 2018-06-05 Hewlett Packard Enterprise Development Lp Controlling error propagation due to fault in computing node of a distributed computing system
US9319349B2 (en) 2013-06-20 2016-04-19 Micron Technology, Inc. Encapsulation enabled PCIE virtualisation
JP6228793B2 (ja) 2013-09-24 2017-11-08 株式会社日立製作所 計算機システム、計算機システムの制御方法及び接続モジュール
US9749448B2 (en) * 2014-11-25 2017-08-29 Intel Corporation Header parity error handling
JP7016725B2 (ja) * 2018-02-28 2022-02-07 キヤノン株式会社 情報処理装置、制御方法及びプログラム
US10817361B2 (en) 2018-05-07 2020-10-27 Hewlett Packard Enterprise Development Lp Controlling error propagation due to fault in computing node of a distributed computing system
JP7103162B2 (ja) * 2018-10-30 2022-07-20 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR20200065929A (ko) * 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11070527B2 (en) 2018-12-07 2021-07-20 Intel Corporation Securing platform link with encryption
US11743240B2 (en) 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
KR20220162345A (ko) 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777083A (zh) * 2005-11-30 2006-05-24 威盛电子股份有限公司 包错误检测方法及装置
CN101218571A (zh) * 2005-06-27 2008-07-09 达西系统股份有限公司 主动到主动磁盘阵列控制器间经验证的存储器到存储器数据转送

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US20050034045A1 (en) 2003-08-08 2005-02-10 Lueck Andrew W. System for optimizing PCI-Express communications
JP4747896B2 (ja) * 2006-03-17 2011-08-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20080072113A1 (en) * 2006-08-30 2008-03-20 Siukwin Tsang Method of locating packet for resend from retry buffer
US7809870B2 (en) * 2006-10-17 2010-10-05 Broadcom Corporation Method and system for interlocking data integrity for network adapters
US20080163005A1 (en) 2006-12-28 2008-07-03 Sonksen Bradley S Error injection in pci-express devices
US7734859B2 (en) * 2007-04-20 2010-06-08 Nuon, Inc Virtualization of a host computer's native I/O system architecture via the internet and LANs
US8139575B2 (en) 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
US8010860B2 (en) * 2007-10-22 2011-08-30 International Business Machines Corporation Method and architecture to prevent corrupt data propagation from a PCI express retry buffer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101218571A (zh) * 2005-06-27 2008-07-09 达西系统股份有限公司 主动到主动磁盘阵列控制器间经验证的存储器到存储器数据转送
CN1777083A (zh) * 2005-11-30 2006-05-24 威盛电子股份有限公司 包错误检测方法及装置

Also Published As

Publication number Publication date
US8281203B2 (en) 2012-10-02
KR101099471B1 (ko) 2011-12-28
US20100251055A1 (en) 2010-09-30
KR20100109446A (ko) 2010-10-08
EP2237162A1 (en) 2010-10-06
EP2237162B1 (en) 2011-07-13
ATE516553T1 (de) 2011-07-15
JP2010238150A (ja) 2010-10-21
CN101876963A (zh) 2010-11-03

Similar Documents

Publication Publication Date Title
CN101876963B (zh) PCI.Express通信系统及其通信方法
US7024591B2 (en) Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
US8576707B2 (en) Method and apparatus for bus coupling of safety-relevant processes
CN105589762A (zh) 存储器装置、存储器模块和用于纠错的方法
CN102349059A (zh) PCI Express的TLP处理电路及具备该处理电路的中继设备
CN101645766A (zh) 实现数据包重发的方法、装置及系统
JP4451837B2 (ja) データ転送装置およびデータ転送方法
CN103685578A (zh) 主从设备的数据传输方法
US20050144339A1 (en) Speculative processing of transaction layer packets
KR100717572B1 (ko) 에러 검출 정정 장치의 제어 방법, 에러 검출 정정 장치,정보 처리 시스템, 에러 검출 정정 장치의 제어 프로그램,데이터 처리 장치
JP3757204B2 (ja) エラー検出/訂正方式及び該方式を用いた制御装置
US20070019677A1 (en) Data processing method and system based on a serial transmission interface
CN100468375C (zh) 一种提高存储卡数据写入速度的方法
JP2012133456A (ja) ストレージ装置及びストレージ装置の制御方法
JP5544099B2 (ja) コントローラ通信方法およびコントローラ通信装置
CN114047728A (zh) 基于安全总线的数据同步方法
CN115878534A (zh) 串行外设接口spi通信方法
JP2013140541A (ja) 半導体記憶装置
US20090210610A1 (en) Computer system, data relay device and control method for computer system
JPS59160354A (ja) 伝送制御装置
JP2012182718A (ja) データ転送装置
JPS605099B2 (ja) ロ−カルステ−シヨンの送信先アドレス制御方式
JPH04179331A (ja) 同報伝送方式
JPS6256545B2 (zh)
JPS60254936A (ja) エラ−・リカバリイ装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131016

Termination date: 20170331

CF01 Termination of patent right due to non-payment of annual fee