用于优化pci-express通信的系统的制作方法

文档序号:7597640阅读:164来源:国知局
专利名称:用于优化pci-express通信的系统的制作方法
技术领域
本发明一般涉及计算机系统体系结构领域,并且,更具体地,涉及用于优化与PCI系统接口的PCI-EXPRESS系统的读/写性能的系统。
背景技术
现代计算机系统的速度和性能继续以惊人的速度提高。新的以及改良的硬件和软件技术继续被开发以提高计算机的处理性能。通常地,这种技术进步代表一些相对于现有技术的提高。然而,通常新技术被打算用于完全地代替旧技术—使它们不再使用。
这种快速的技术进步为计算机系统的设计者带来了许多挑战和问题。由各种制造商生产的系统的互操作性对于获得了商业上的成功至关重要。用于设备接口和操作协议的某些标准必须被制定并且用于新技术。而且,现有(或“传统”)计算机系统的广泛基础—利用从前的、不同的技术—必须被支持以便允许终端用户每几个月就在没有完全代替他们的系统的情况下移植到新技术。由于打破了在从新技术提取最佳性能、解决互操作性的要求、与满足传统系统支持的需要之间的平衡,因此计算机系统设计者不断地受到挑战。
经常地,通过行业性标准的制定和遵守而解决了该顾虑和考虑。不同的制造商和其他有兴趣方共同地为一个特定的技术或技术的功能确定某些需要的物理和性能参数。互操作性和传统支持的问题如最小和最大性能预期那样而被解决。具备了工作的标准,计算机系统设计者然后就可以开始优化一个特定硬件或软件功能的设计和操作的处理。
在设计和制造一些计算机系统部件和功能中广泛地依赖工业标准。一个特定的例子是计算机总线体系结构。一般而言,计算机总线体系结构关心的是处理、存储、和输入/输出系统部件之间的接口和通信。一个通用的总线接口是PCI。当它被开发的时候,PCI是一个非常先进的,高性能的并行总线标准。近年来,一个更新的总线标准被开发以更充分地利用新的通信技术(例如,基于分组的,点对点的)。这种标准被称作PCI-EXPRESS。
虽然PCI-EXPRESS打算最终代替PCI,但是它必须为现有的PCI系统和部件提供传统支持。一些PCI协议通信和操作必须被转换成适当的PCI-EXPRESS通信或操作,反之亦然。利用大量PCI和PCI-EXPRESS系统操作通信,两者之间的转换过程产生许多关心和考虑。
一种这样的考虑是错误检测和处理的过程,以及它对PCI EXPRESS通信效率的影响。在当前的PCI-EXPRESS标准下,在读或写处理事务中产生的PCI奇偶校验位错误使用PCI-EXPRESS分组报头中的EP位被传送到PCI-EXPRESS。这个EP位表示分组中的数据是无效的,但是不能辨别数据负载中错误的具体位置。因此,在PCI-EXPRESS读或写事务过程中设置EP位来使所有的数据净负荷无效,要求系统重传整个分组。即使在一个大的PCI数据净负荷中的一个双字(DW)中只有一个奇偶校验错误,该EP位使整个处理无效。结果增加了操作的等待时间,并且降低了整个系统的性能。
结果,需要用于优化PCI-EXPRESS通信,尤其是读或写事务的系统,所述系统在不用使其中产生奇偶校验位错误的整个数据净负荷无效的情况下处理PCI数据奇偶校验位错误—假设有采用一种容易的、经济合算的方式的稳定和有效的错误检测和纠正,而不用负面地影响系统的性能。

发明内容
本发明提供了一种以容易的、经济合算的方式优化PCI-EXPRESS通信,尤其是读或写事务的通用系统。本发明提供了用于在不用使其中产生奇偶校验位错误的整个数据净负荷无效的情况下处理PCI数据奇偶校验位错误的结构和方法。本发明的系统提供了PCI数据错误的稳定和有效的PCI-EXPRESS的检测和纠正,而没有负面地影响系统的性能。具体地,本发明提供了结构和方法,根据PCI奇偶校验位错误的检测,将传输中的数据净负荷分组分割为许多部分。产生错误的双字被识别。在无效双字之前的数据净负荷的任何部分恰好在无效双字之前被截断并作为有效的分组被传送。无效双字后面的数据净负荷的任何部分也从该双字被分离并作为有效的分组被传送。无效双字本身被传送,带有它包括无效数据的指示。因此,通过本发明,数据净负荷的重传被限定到产生错误的部分。因此本发明在PCI奇偶校验位错误的处理过程中优化PCI-EXPRESS通信的效率,克服了与传统方法论相关联的局限性。
更具体地,本发明提供了一种在PCI功能和PCI-EXPRESS功能之间进行通信的方法。该方法包括提供PCI-EXPRESS功能,和一个接口到PCI-EXPRESS功能的PCI功能。在PCI-EXPRESS功能中提供了一个分割结构。启动从PCI功能到PCI-EXPRESS功能的数据传输,并且通过该分割结构路由所述数据的传输。操作该分割结构以便于从数据传输中的正确数据中识别和分离数据传输中的错误数据。错误数据与正确数据分开传送。
本发明也提供了到PCI网桥设备的PCI-EXPRESS,包括网桥设备与PCI-EXPRESS设备之间的通信链路,以及网桥设备与PCI设备之间的通信链路。数据存储器结构被安置在网桥设备中。分割结构同样被安置在网桥设备中。该分割结构适于从PCI设备接收数据传输,从数据传输中的正确数据中识别并且分离数据传输中的错误数据,以及在数据存储器结构中存储该数据传输直到数据传输被转发到PCI-EXPRESS设备为止。
本发明进一步提供了用于优化PCI功能和PCI-EXPRESS功能之间的PCI-EXPRESS通信的系统。该系统包括一个在PCI功能和PCI-EXPRESS功能之间通信地互耦合的网桥设备。数据存储器结构安置在网桥设备中,并且适于存储被传送到PCI-EXPRESS功能的数据。该系统还包括一个安置在网桥设备中的分割结构。该分割结构适于从PCI功能接收数据传输,在数据存储器结构中存储该数据传输,从数据传输中的正确数据中识别并且分离数据传输中的错误数据,以及传送从正确数据中分离的错误数据。
结合附图参照以下的详细说明,本发明其他的特征和优点对于本领域普通技术人员将更加明显。


为了更好地理解本发明,并且通过例子显示如何实现本发明,现在结合附图参考本发明详细的说明,其中不同图中相应的标号表示相应的部件,并且其中图1是根据本发明PCI-EXPRESS系统的一个实施例的说明;图2是根据PCI-EXPRESS标准描述分组结构的一个实施例的说明;图3是根据本发明PCI-EXPRESS系统的另一个实施例的说明;以及图4是根据本发明PCI-EXPRESS系统的另一个实施例的说明。
具体实施例方式
尽管本发明不同实施例的制造和使用将在下面被详细地讨论,但是将被理解的是,本发明提供了许多适用的发明构思,其可以体现在各种具体环境中。现在将结合PCI-EXPRESS体系结构中的读或写事务描述本发明。然而,这里描述的具体的实施例,仅仅是制造和使用本发明的具体方式的说明却并不用于限定本发明的范围。
本发明提供了用于不用使其中产生奇偶校验位错误的整个数据净负荷无效而处理PCI数据奇偶校验位错误的结构和方法。更具体地,本发明提供的结构和方法,在检测到PCI奇偶校验位错误后,将传输中的数据净负荷分组分割成若干部分。产生PCI奇偶校验位错误的最小的可识别的净负荷部分被识别。在PCI-EXPRESS中(以下缩写为PCI-X),这个最小的部分是双字(DW)。在无效双字的数据净负荷的任何部分恰好在无效双字之前被截断。该部分作为一个有效的分组被传送。无效双字之后的数据净负荷的任何部分也与无效双字分离。那个部分也作为有效的分组被传送。无效双字本身被传送,带有一个它包含无效数据的指示。因此,本发明仅限定数据净负荷的重传到产生错误的部分(即,一个单一的双字)。
在这里参照PCI-EXPRESS基本技术规范中的术语和概念描述本发明的某些方面和实施例。该技术规范在此引入作为参考。
现在参照图1描述本发明。图1的系统100提供了在PCI-X环境104和PCI环境106之间的一个接口102的说明性的例子。为了解释和说明的目的,接口102可以被认为是适于按照的本发明的性能的任何可利用的环境104和106之间的物理的或功能的耦合或者连接(例如,插口,总线)。系统100包括一个基于PCI的功能108,安置在基于PCI-X的功能110的“下行”(即,PCI-X功能110在主机环境中,PCI功能108在外部设备环境中)。功能108和110可以包括任何物理的或操作的设备或结构(例如,硬件,软件),该设备或结构按照本发明操作。在最多的应用中,功能110作为一个网桥,提供一些或大部分PCI到PCI-X的转换功能这个特定的实施例尤其说明了将本发明应用到从PCI环境106写到PCI-X环境104的事务。以下描述的另一个实施例是从PCI环境向PCI-X环境读事务的说明。在系统100中,功能108启动用于PCI-X环境104中设备112的写事务。通过接口102在功能108和功能110之间设置通信链路114。在功能110和设备112之间设置另一个通信链路116,用于路由从功能108接收的数据业务。
现在参照图2,描述了根据PCI-EXPRESS标准的传输分组200。分组200由多个部分组成,包括成帧部分202和204。成帧部分202包括分组的开头(SOP),而成帧部分204包括分组的末尾(EOP)。分组200进一步包括序号部分206,报头部分208,数据净负荷部分210,ECRC部分212和LCRC部分214。位于报头208和数据210部分之后的ECRC部分212是端到端的循环冗余校验(ECRC)代码错误检测部分,而LCRC部分214是链路到链路的循环冗余校验(LCRC)代码错误检测部分。
PCI是一个突发模式传输协议。一般地说,这就意味着一旦PCI传输开始,数据字将继续被传送直到达到PCI的极限。结果,对于PCI事务,分组200中的数据净负荷210可以非常大。PCI错误检测通常包括一个在每个32-位字末尾的单一的奇偶校验位。
为了说明的目的,假定系统100按照传统的PCI-EXPRESS基本技术规范操作。功能110通过链路114从功能108开始接收PCI突发模式写事务。功能110在一个先入先出(FIFO)格式中存储接收到的数据净负荷,用于只在接收到整个的数据净负荷后传输到设备112。然而,这个方案会导致许多问题—特别是当PCI数据净负荷中的奇偶校验位错误(PERR)被信号通知的时候。
在传统的PCI-EXPRESS基本技术规范下,一旦在数据净负荷210中检测到奇偶校验位错误,就启动一个错误转发过程。通过将报头208中的一个域(即,EP域)设置为某一预定值(即,1b)来“抑制”整个的分组200—向分组的接收器指示数据净负荷210中某处存在错误数据。然而,PCI-EXPRESS基本技术规范不能定义任何机制,该机制用于确定受抑制分组的数据净负荷的某一部分或某些部分是实际上错误的以及哪些部分是正确的,如果有正确的话。因此,系统100必须开始整个分组200的重传。特别是在数据净负荷210包括大量PCI突发模式数据的情况下,这种全有或全无的方法显著地增加了系统的等待时间并且显著降低了系统的效率和性能。
相反,根据本发明,在奇偶校验位错误的情况下整个的分组200不被抑制。根据本发明,系统不确定受抑制分组的数据净负荷的某一部分或某些部分是实际上错误的以及那些部分是正确的,如果有正确的话。根据本发明,在错误字之前的数据净负荷的任何部分正好在错误字前面被截断并且作为一个独立的和完整的无错误分组被传输。本发明确定错误字之后的数据净负荷的哪些部分是无错误的,如果存在这样的部分的话,并且还作为一个独立的和完整的无错误分组传输该部分。数据净负荷的错误部分按照标准错误转发格式被处理—形成并且传送一个单独的受抑制分组。因此,根据本发明,只有PCI事务的错误部分需要被重传。如果数据净负荷包括大量的PCI突发模式数据,系统的等待时间和效率被优化。
现在参照图3更加详细地描述本发明。根据本发明,图3描述的系统300包括与系统100相同的组成部分。然而,关于系统300,功能110被详细地描述。功能110包括一个分割结构302。通过结构302路由事务数据。结构302从链路114接收写事务数据,处理该事务数据,并且将其装载到FIFO存储器结构304中—用于通过功能110不同的协议层306最终传输到目标设备112。由于结构302处理数据净负荷210,它利用适当的奇偶计算功能(没有示出)为净负荷的每一个字估计奇偶错误状态。在确定出具体的数据字产生了奇偶校验位错误后,结构300暂停处理该数据字。结构302启动已经作为一个完整的分组装载到存储器结构304中的数据的传输—产生需要的CRC和成帧部分来完成该分组。该正确的分组通过功能110的协议层306被传送到目标设备112。结构302产生需要的CRC和成帧部分以便从错误数据形成一个完整的分组。这包括将报头208中的EP域设置为需要的错误传输值。结构302开始将错误数据分组传送到目标设备112,并且然后开始重传该数据。结构302开始作为完整分组传输该正确数据,到任何正确分组跟着错误分组的程度—产生需要的CRC和成帧部分。该正确的分组通过功能110的协议层306被传送到目标设备112。
由于PCI-X环境104为处理提供重新排序,结构302中执行错误和正确分组传输的命令可能是不同的,这依赖于特定系统的具体要求。在一些实施例中,分离错误数据,作为受抑制分组而传送它,并且在处理错误数据之前和之后的正确数据之前开始重传该数据,这对于结构302是有利的。在另一个实施例中,在处理错误数据分组之前首先传送正确数据分组,这对于结构302是有利的。通过本发明,这些以及其他的结合和变化将被理解。
这里描述的功能和结构可以使用多种方法实现—利用或结合不同的硬件和软件结构。例如,结构302可以使用作为半导体设备的一部分的电路实现,或作为程序或算法在处理器上操作。在一些实施例中,结构302包括它自己单独的奇偶计算功能。在其他实施例中,结构302与存在于一些独立结构中的奇偶计算功能通信地连接并且利用该奇偶计算功能。在某些实施例中,结构302在网桥设备的PCI从属部分中被实施。通过本发明这些以及其他类似的结合和变化将被理解。
在另一个说明性的实施例中,本发明被用于处理从PCI环境到PCI-X环境的读操作。对于系统100在许多方面是类似的,现在参照图4描述该实施例。图4的系统400包括PCI环境404与PCI-X环境406之间的一个接口402。系统400包括一个基于PCI-X的功能408,被配置在基于PCI的功能410的“下行”(例如,PCI功能410在主机环境中,PCI-X功能408在外部设备环境中)。功能408和410可以包括任何适合本发明操作的物理的或操作的设备或结构(例如,硬件,软件)。在系统400中,功能408充当一个网桥,提供PCI到PCI-X转换的大部分功能。
在系统400中,PCI-X环境406中的一些设备412为功能410启动一个读处理。例如,功能410可以包括旧设备中的系统存储器,与较新的PCI-X外部设备412连接的PCI计算机。设备412通过链路414与功能408通信地连接。通过接口402在功能408和功能410之间设置一个通信链路416。功能408向功能410传达读请求,并且开始接收从功能410获取的数据。
功能408包括一个分割结构418。此外,通过结构418发送事务数据。结构418从链路416接收读事务数据,处理该事务数据,并且将它装载到FIFO存储器结构420中—用于通过功能408的不同协议层最终传输到设备412。当结构418处理数据净负荷时,它利用合适的奇偶计算功能(没有示出)为净负荷的每个字评价奇偶错误状态。根据具体的数据字产生的奇偶校验位错误的确定,结构418暂停处理该数据字。结构418作为一个完整的分组开始传输已经装载到存储器结构420中的数据—产生需要的CRC和成帧部分来完成该分组。结构418设置报头中的数据完成域以便指示设备412这是一个完整的分组。该正确的分组通过协议层被传送到目标设备412。结构418产生需要的CRC和成帧部分以便从错误数据形成一个完整的分组。这包括将报头中的EP域设置为必需的错误传输值。结构418开始将错误数据分组传输到目标设备412,并且开始重传该数据。从而所有的正确数据跟随错误数据,结构418启动作为一个完整分组的正确数据的传输。
此外,由于PCI-X环境406准备好重新排序数据分组,所以结构418中用于执行传输错误和正确分组的命令可能是不同的,这依赖于特定系统的具体要求。在一些实施例中,分离错误数据,作为被抑制分组传送它,并且在处理错误数据之前和之后的正确数据之前开始传输数据,这对于结构418可能是有利的。在其他实施例中,在处理错误数据分组之前首先传送正确数据对与结构418可能是有利的。通过本发明,这些以及其他结合和变化将被理解。
这里所描述的功能和结构可以使用多种方法实现一利用或结合不同的硬件和软件结构。例如,结构418可以作为半导体设备的一部分使用电路实现,或者作为一个程序或算法在处理器上操作。在一些实施例中,结构418包括它自己独立的奇偶计算功能。在其他实施例中,结构418与存在于一些独立结构中的奇偶计算功能通信地连接并且利用该奇偶计算功能。
这里阐述的实施例和例子被给出以最好地解释本发明以及它的实际应用并且从而使本领域技术人员能够制造和使用本发明。然而,本领域技术人员将认识到,前面的说明和例子仅仅是为说明和示例的目的给出的。阐述的说明并不打算将本发明穷举或限定到详细公开的形式。根据上述的教导在不脱离下述权利要求的精神和范围的前提下,许多修改和变化是可能的。
权利要求
1.一种在PCI功能和PCI-EXPRESS功能之间进行通信的方法,该方法包括步骤提供PCI-EXPRESS功能;提供接口到PCI-EXPRESS功能的PCI功能;在PCI-EXPRESS功能中提供分割结构;启动从PCI功能到PCI-EXPRESS功能的数据传输;通过该分割结构路由所述数据传输;操作该分割结构以便于数据传输中的错误数据从数据传输中的正确数据中被识别和分离;以及与正确数据分开地传送错误数据。
2.权利要求1的方法,其中启动数据传输的步骤进一步包括启动从PCI功能到PCI-EXPRESS功能的写事务。
3.权利要求1的方法,其中启动数据传输的步骤进一步包括启动从PCI-EXPRESS功能到PCI功能的读事务。
4.权利要求1的方法,其中提供PCI-EXPRESS功能的步骤进一步包括提供PCI到PCI-EXPRESS的网桥设备。
5.权利要求4的方法,其中提供分割结构的步骤进一步包括提供网桥设备的PCI从属部分中的分割结构。
6.权利要求1的方法,其中操作分割结构的步骤进一步包括提供由分割结构访问的奇偶校验功能,该功能检查数据传输的奇偶校验位错误。
7.权利要求6的方法,其中操作分割结构的步骤进一步包括从发现奇偶校验位错误的数据字中形成独立的数据分组。
8.权利要求6的方法,其中操作分割结构的步骤进一步包括在报头内的域中装载预定值,该报头位于与发现奇偶校验位错误的数据字形成的单独数据分组中。
9.权利要求6的方法,其中操作分割结构的步骤进一步包括从正好在发现奇偶校验位错误的数据字之前的数据传输部分形成单独的数据分组。
10.权利要求6的方法,其中操作分割结构的步骤进一步包括从正好在发现奇偶校验位错误的数据字之后的数据传输部分形成单独的数据分组。
11.权利要求1的方法,其中与正确数据分开地传送错误数据的步骤进一步包括在错误数据之前传送正确数据。
12.权利更求1的方法,其中与正确数据分开地传送错误数据的步骤进一步包括在错误数据之后传送正确数据。
13.权利要求1的方法,其中与正确数据分开地传送错误数据的步骤进一步包括传送正确数据的第一部分,然后传送错误数据,然后传送正确数据的第二部分。
14.一种PCI-EXPRESS到PCI的网桥设备,包括网桥设备与PCI-EXPRESS设备之间的通信链路;网桥设备与PCI设备之间的通信链路;安置在网桥设备中的数据存储器结构;以及分割结构,安置在网桥设备中并且适于从PCI设备接收数据传输,以便从数据传输中的正确数据中识别并且分离数据传输中的错误数据,以及在数据存储器结构中存储该数据传输,直到该数据传输被转发到PCI-EXPRESS设备为止。
15.权利要求14的设备,其中数据传输是从PCI设备到PCI-EXPRESS设备的写事务。
16.权利要求14的设备,其中数据传输是从PCI-EXPRESS设备到PCI设备的读事务。
17.权利要求14的设备,其中分割结构被安置在网桥设备的PCI从属部分中。
18.权利要求14的设备,其中分割结构还适于访问奇偶校验功能,该奇偶校验功能安置在网桥设备中,并检查数据传输的奇偶校验位错误。
19.权利要求18的设备,其中奇偶检测功能被安置在分割结构中。
20.权利要求18的设备,其中分割结构还适于从发现奇偶校验位错误的数据字中形成单独的数据分组。
21.权利要求18的设备,其中分割结构还适于将预定值装载到报头中的域中,该报头位于从发现奇偶校验位错误的数据字形成的单独的数据分组中。
22.权利要求18的设备,其中分割结构还适于从正好在发现奇偶校验位错误的数据字之前的数据传输部分中形成单独的数据分组。
23.权利要求18的设备,其中分割结构还适于从正好在发现奇偶校验位错误的数据字之后的数据传输部分中形成单独的数据分组。
24.一种用于优化PCI功能与PCI-EXPRESS功能之间的PCI-EXPRESS通信的系统,该系统包括在PCI功能与PCI-EXPRESS功能之间通信地互耦合的网桥设备;数据存储器结构,安置在网桥设备中,适于存储被传送到PCI-EXPRESS功能的数据;以及分割结构,安置在网桥设备中并且适于从PCI功能接收数据传输,在数据存储器结构中存储该数据传输,从数据传输中的正确数据中识别并且分离数据传输中的单独的错误数据,以及与正确数据分开地传送错误数据。
全文摘要
本发明提供了用于在PCI-EXPRESS系统(300)中进行通信的系统。该PCI-EXPRESS系统利用另一个协议与系统接口,尤其是PCI。本发明提供了PCI-EXPRESS系统中的分割结构(302)。从PCI系统到PCI-EXPRESS系统的数据事务被启动。通过该分割结构路由数据传输,该结构工作使得从数据传输中的正确数据中识别并且分离出数据传输中的错误数据。本发明与正确数据分开地传送错误数据。
文档编号H04L1/16GK1591380SQ20041007945
公开日2005年3月9日 申请日期2004年8月6日 优先权日2003年8月8日
发明者安德鲁·W·吕克, 凯文·K·梅恩 申请人:得州仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1