实现SPI4设备与PCIExpress设备互连的系统及方法

文档序号:7958721阅读:201来源:国知局
专利名称:实现SPI4设备与PCI Express设备互连的系统及方法
技术领域
本发明涉及网络技术,尤其涉及第4级系统包级接口(SPI4)与周边元件扩展接口(PCI Express)互连的实现技术。
背景技术
随着网络技术的发展,高速信号的传输在网络设计中的应用越来越普遍,当前所使用的高速信号的传输接口之一就是SPI4。
SPI4是物理层器件与链路层器件之间的数据包或信元传送接口,其可支持高达16Gb/s的数据传输速率。
而PCI Express同样也是一种芯片互连技术。它作为一种点到点的串行架构的互连总线,极大的提高了总线互连的性能,减少了系统的成本。
然而,上述两种互连技术也存在着很大的差异,其中,作为物理层与数据链路层互连的SPI4接口,其协议本身并不需要涉及到更高层应用中需要的地址概念,只是负责提供一条高速可靠的连接通路。而一般被划分为处理层、数据链路层和物理层的PCI Express协议,则要比SPI4接口协议多了一个处理层的协议内容,这个处理层的协议内容就包含了对地址的相应解析和处理。因此,SPI4接口与PCI Express接口的应用场合通常也就各有不同。
但是在某些设计场合中,出于特定的考虑,我们也需要将SPI4设备与PCI Express设备进行互连,特别是需要实现两种设备间的高速数据收发,然而,由于SPI4接口只涉及物理层及数据链路层的内容,而PCI Express接口相对于SPI4接口多了一个处理层协议,所以,到目前为止,还没有一种技术方案能够解决SPI4接口与PCI Express接口互连的问题。

发明内容
本发明要解决的技术问题在于提供一种实现SPI4设备与PCIExpress设备互连的系统,该系统能够解决SPI4接口与PCI Express接口互连的问题。
本发明提供了一种实现SPI4设备与PCI Express设备互连的系统,其包括SPI4设备及PCI Express设备;以及连接在SPI4设备及PCIExpress设备之间的转换单元,用于将接收到的数据进行解析,并将所述数据转换为SPI4报文或PCI Express处理层协议内容,发送给所述SPI4设备或所述PCI Express设备。
所述系统还可包括与所述转换单元相连的中断单元,用于接收和处理中断请求或错误消息,并将处理结果上报给内置或外接于所述SPI4设备的中央处理器CPU。
所述系统还可包括分别与所述转换单元、所述中断单元及所述中央处理器CPU相连的中央处理器CPU接口单元,用于接收或转发所述中央处理器CPU与所述转换单元、所述中断单元之间传输的数据,并且解析由所述中央处理器CPU发出的配置信息。
此外,所述转换单元与所述SPI4设备之间具有数据通道和控制通道,所述数据通道用于数据报文的传输,所述控制通道用于控制报文的传输。
本发明还提供了一种利用权利要求1所述的系统实现SPI4设备与PCI Express设备互连的方法,包括SPI4设备或PCI Express设备向转换单元发送数据;所述转换单元将所述数据转换为PCI Express处理层协议内容或SPI4报文,发送给所述PCI Express设备或所述SPI4设备。
其中,所述转换单元在接收到所有的数据后,判断所述数据的内容类型,当所述内容类型为配置内容类型时,所述转换单元将所述中央处理器CPU通过所述中央处理器CPU接口单元或所述SPI4设备发送的所述配置内容封装成PCI Express的处理层协议包,发送给所述PCI Express设备。
当所述内容类型为中断和消息内容类型时,所述转换单元将所述中断和消息内容发送给所述中断单元处理。
所述中断单元接收到所述中断和消息内容后进行如下处理将所有非错误消息内部终结;将中断消息和错误消息解析后,通过消息信令中断MSI或直接上报给所述中央处理器CPU。
当所述内容类型为数据内容类型时,所述转换单元将所述数据内容转换为SPI4报文发送给所述SPI4设备,或者所述转换单元将所述数据内容封装成PCI Express的处理层协议包发送给所述PCI Express设备。
当所述SPI4设备对于接收的数据采用分块存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分分为两个SPI4报文,并将所述两个SPI4报文连续发送给所述SPI4设备。
当所述SPI4设备对于接收的数据采用链表管理的存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分组成一个SPI4报文,并将所述SPI4报文发送给所述SPI4设备。
由于本发明提供的系统设置有转换单元,所述转换单元可以对SPI4设备发送的数据或PCI Express设备发送的数据进行解析,并进行格式的转换,以使转换后的数据格式符合PCI Express处理层协议包或SPI4报文的格式,有效的解决了SPI4设备与PCI Express设备互连的问题。
本发明提供的系统还设置了中断单元和CPU接口单元,中断用于接收和处理中断请求和错误消息,并将处理结果上报给CPU,CPU接口单元是连接CPU与中断单元、转换单元之间的桥梁,利用这个桥梁可以使CPU对PCI Express设备的配置信息通过转换单元发送到PCIExpress设备,所以,本发明还能有效的解决中断请求的处理和对PCIExpress设备进行配置的问题。
由于本发明的转换单元可对接收到的数据进行分类,进而发送到不同的处理单元进行处理,可以说,是对完整的PCI Express协议内容进行了可定制的裁减,这种方法极大的降低了设计难度和成本。
本发明的转换单元配合SPI4设备的分块缓存和缓存链表管理两种方式,分别进行了不同的报文转换,最大限度的保证了数据互连、处理的效率。
此外,本发明的转换单元与SPI4设备分别用数据通道和控制通道这两个独立的通道传输数据报文和控制报文,避免了两种报文共用一个通道而互相干扰,有效的提高了传输效率。


图1为本发明系统的第一实施例的系统结构示意图。
图2为本发明系统的第一优选实施例的系统结构示意图。
图3为PCI Express报文分拆模式的示意图。
图4为SPI4设备的缓存采用分块存储方式的示意图。
图5为PCI Express报文的TLP头与载荷部分组成一个SPI4报文的示意图。
图6为SPI4设备的缓存采用链表管理存储方式的示意图。
图7为本发明系统的第二优选实施例的系统结构示意图。
图8为本发明方法的实施例的流程图。
具体实施例方式
下面我们将结合附图,对本发明的最佳实施方案进行详细描述。首先要指出的是,本发明中用到的术语、字词及权利要求的含义不能仅仅限于其字面和普通的含义去理解,还包括进而与本发明的技术相符的含义和概念,这是因为我们作为发明者,要适当地给出术语的定义,以便对我们的发明进行最恰当的描述。因此,本说明和附图中给出的配置,只是本发明的首选实施方案,而不是要列举本发明的所有技术特性。我们要认识到,还有各种各样的可以取代我们方案的同等方案或修改方案。
首先,结合图1,对本发明的第一实施例进行介绍。
如图1所示,本发明提供的互连系统包括SPI4设备101及PCIExpress设备102,以及连接在SPI4设备101及PCI Express设备102之间的转换单元103,这个转换单元103可以从SPI4设备101及PCIExpress设备102接收数据并将数据的格式进行转换。如果SPI4设备101向PCI Express设备102发送数据,则这个数据从SPI4设备101发出时是SPI4报文,转换单元103接收到SPI4报文时,首先进行解析,例如解析这个报文的目的地址等,之后将这个SPI4报文封装成PCI Express处理层协议包,再发送给PCI Express设备102。相反,如果PCI Express设备102向SPI4设备101发送数据,则这个数据从PCI Express设备102发出时是PCI Express处理层协议包,转换单元103接收到PCI Express处理层协议包时,也要先进行解析,例如解析这个PCI Express处理层协议包的目的地址等,之后将这个PCI Express处理层协议包转换为SPI4报文,再发送给SPI4设备101。
图1所示的系统所包含的各个设备或单元是实现本发明所必要的部分。但是,为了增强系统的功能,维护系统的稳定,本发明还提供了一个最佳实施例。
图2为本发明第一优选实施例的系统示意图。如图2所示,此系统包括SPI4设备201及PCI Express设备202,连接在SPI4设备201及PCI Express设备202之间的转换单元203,与转换单元203相连的中断单元204,分别与转换单元203及中断单元204相连的CPU接口单元205,与SPI4设备201、中断单元204及CPU接口单元205相连的CPU206。
在图2中,中断单元204用于接收和处理中断请求或错误消息,并将处理结果上报给CPU206。中断单元204在接收到中断和消息后,可以进行如下处理对于所有非错误消息都要内部终结,内部终结可以理解为对此类消息不处理;对于所有错误消息和中断消息,都要上报给CPU206,上报的方式可以很灵活,例如,可以通过CPU接口单元205或SPI4设备201上报,也可以通过硬件直接上报给CPU206。
在图2中,CPU接口单元205用于接收或转发CPU206与转换单元203、中断单元204之间传输的数据,可以说,CPU接口单元205就是转换单元203或中断单元204与CPU206连接的桥梁,CPU206与转换单元203或中断单元204之间的数据传输可以通过CPU接口单元205完成,而不是一定通过SPI4设备201完成。在本发明中,CPU接口单元205能够实现的功能可以归纳为如下几点实现CPU206对控制或状态寄存器的访问,本发明的控制或状态寄存器主要集中在转换单元203中;实现CPU206对中断寄存器的访问,这里主要是指中断单元204中的中断寄存器;实现CPU206对PCI Express设备202的配置;在调试过程中,实现例如收发包的调试功能。
无论是图1或者图2的转换单元都可以对接收到的数据进行解析并分类。以图2的系统结构为例,转换单元203可以对从任何来源接收到的任何数据进行解析并分类,一般都将数据分为三类,即配置内容、中断和消息内容及数据内容。
这里的配置内容主要是指CPU206向PCI Express设备202发送的配置信息。CPU206可以通过CPU接口单元205或者SPI4设备201向转换单元203发送配置信息,至于选择通过CPU接口单元205还是SPI4设备201发送要根据实际情况而定,例如,如果SPI4设备201与PCI Express设备202之间的数据传输量非常大时,为了减轻SPI4设备201的负担,可以选择通过CPU接口单元205来发送配置信息,转换单元203在对配置信息解析后,发现这个信息是配置内容,就将配置信息封装成PCI Express处理层协议内容,发送给PCI Express设备202处理,PCI Express设备202可以按照配置信息的内容进行软件升级或者参数修改等操作。
需要说明的是,配置信息不仅可以由转换单元203解析,也可以由CPU接口单元205先进行解析,之后发送给转换单元203,转换单元203可以不再对配置信息解析,而只将配置信息转换为PCI Express处理层协议内容,并发送给PCI Express设备202。
中断和消息内容可以包括PCI Express设备202发出的中断请求及系统内部产生的各种消息,其中消息还可以分为非错误消息和错误消息,对于中断和消息内容的处理主要是由中断单元204完成的。以PCI Express设备202向CPU206发送中断请求为例,PCI Express设备202首先向转换单元203发送中断请求消息,转换单元203对中断请求消息进行解析,如果中断单元204可以识别PCI Express处理层协议内容,则可直接将中断请求消息发送到PCI Express设备202,如果中断单元204不能识别PCI Express处理层协议内容,则转换单元203要将PCI Express处理层协议格式的中断请求消息转换为中断单元204能够识别的中断请求消息,之后发送到中断单元204进行处理,中断单元204可以通过两个途径将处理结果上报给CPU206,一种是通过CPU接口单元205上报,另一种是通过硬件直接上报给CPU206,具体选择哪一种方式要根据实际情况决定。
作为数据内容的数据是SPI4设备201与PCI Express设备202之间传输量最大的数据。以存储器读写操作指令Memory读写的报文内容为例,在转换单元203与SPI4设备201之间可用数据和控制两个独立的通道传输数据,对于例如Memory读请求、设备寄存器读写的请求与回应以及MSI报文等小流量、小长度的报文可以在控制通道内传输,而涉及到存储器读写的大流量大长度的报文,例如Memory写请求、Memory读回应等内容则可在数据通道内进行。采用数据和控制两个独立的通道传输数据的方式,可以避免数据报文与控制报文共用一个通道而造成的相互干扰,有效的提高了传输效率。
以PCI Express设备202从SPI4设备201读数据为例,对数据内容的传输过程进行说明。CPU206在缓存或寄存器中准备操作信息队列等待PCI Express设备202读取,操作信息队列完成后,CPU206向PCI Express设备202发送要求读数据请求,PCI Express设备202以读操作的形式读取操作信息队列的内容,以获得有关操作的内容,例如操作类型、地址、长度等。PCI Express设备202根据地址和长度,连续发起读指令,主动从SPI4设备201读数据。当PCI Express设备202读完需要的数据后,向CPU206发起MSI中断以通知CPU206操作已完成。PCI Express设备202向SPI4设备201写数据的过程与上述过程类似,只是CPU206向PCI Express设备202发送的是要求写数据请求,PCI Express设备202主动向SPI4设备201写入数据。其中,要求读数据请求和读取操作信息队列内容的报文可以通过SPI4设备201与转换单元203之间的控制通道传输,大流量的数据传输用数据通道传输,无论是要求读数据请求、读取操作信息队列内容的报文还是大流量的数据,CPU206都是先以SPI4报文方式发送到转换单元203,经过格式转换后,以PCI Express处理层协议内容发送到PCIExpress设备202。
为了尽可能的降低CPU的工作负荷,提高数据处理的效率,保证较高的带宽性能,转换单元203对于数据报文的处理,需要与SPI4设备201的工作方式相匹配。
当SPI4设备201对于接收的SPI4报文数据全部采用分块存储的方式存储,或者说,SPI4设备201接收的SPI4报文由SPI4设备201的接口单元(图中未绘示)存放在CPU206指定的SPI4设备201的缓存(图中未绘示)的某个连续块中,则转换单元203在解析PCI Express报文之后,可以提取报文头中的有用信息,例如TLP(PCI Express中的处理层包协议)中的读写地址和某些用户自定义的字段,并与后续载荷分开为两个SPI4报文连续发送给SPI4设备201,SPI4设备201在处理SPI4报文时,可以借助前次接收的地址(控制)信息,来指定后续数据报文内容的存放地址,从而避免了大量数据的内存拷贝与搬移,特别要强调的是,在采用这种方式时,由于CPU206改变SPI4设备201的接口单元的搬移指针与接口单元硬件进行报文数据的动作是同时进行的,所以,转换单元203在发送数据和地址报文时,需要将地址报文提前一轮发送,以保证接口单元当前配置的地址指针确实是当前接收数据报文的对应指针,与这种发送方式对应的是,在报文发送的初始和结束,也就存在着一轮的非报文内容数据和一轮非报文内容地址。如图3所示,TLP报文可以分为地址和数据两个部分,在发送顺序上,首先发送的是当前地址,接着发送的是前一个地址对应的数据,再发送的是下一个地址,之后发送的是当前地址对应的数据,以此类推,例如,地址1与数据1之间相隔数据0和地址2两个报文,相应的,在报文发送的初始和结束,就存在着非报文内容数据和非报文内容地址,这两个报文的内容可以为空。这种方式对于PCI Express报文中地址相邻的数据内容,是在SPI4设备201的缓存中确切指定相邻地址来存放的,最终的结果是各个携带的PCI Express地址相邻的SPI4报文载荷被存放在一个连续的地址块中,如图4所示,数据0与数据1在SPI4设备201的缓存中被存放在连续的地址中。
正是因为当前地址与当前数据之间相隔两个其他报文,CPU206就可以有相对充足的时间完成对当前地址的解析,并有宽裕的时间通知硬件将指针指向当前地址,在完成这些动作之后,恰好接收到当前数据,并将当前数据即时存储在指针指向的当前地址,所以,这种处理方式相对于现有技术中SPI4设备201将接收到的报文先全部接收、之后再将数据重新存放在对应的地址中的方式,避免了内存拷贝和搬移数据,明显可以提高SPI4设备201的存储效率。
当SPI设备201采用链表的方式管理数据的存放时,转换单元203在解析TLP头之后,不需要拆包,而是把需要发送的自定义头信息,例如包括了地址和用户定义信息,与载荷数据组成一个SPI4报文直接发送给SPI4设备201,如图5所示,地址0与数据0组成一个SPI4报文,SPI4设备201的接口单元在解析SPI4报文后,将SPI4报文存放到缓存中,需要说明的是,数据对应的地址可以是任意的,或者说,数据存放的位置不需要是连续的,可以由CPU来管理存放链表的指针偏移实现实际上的报文连续存放的效果。如图6所示,CPU206具有一个链表,链表中具有多个指针,例如指针1、指针2等,各个指针对应各个数据,例如指针1对应数据1,采用这种方式时,CPU206仍然是需要对各个数据对应的地址进行解析,但由于指针已经对应到SPI4设备201的缓存中,所以SPI4设备201在接收到报文后,无需进行任何存储处理,只需交由CPU206即时解析即时存储即可。
在本发明的图2中,SPI4设备201外接了一个CPU206,需要说明的是,SPI4设备还可以将CPU内置。如图7所示,SPI4设备701内置有CPU706,CPU706分别与CPU接口单元705及中断和消息终结处理单元704相连,其他连接方式及工作方式均与图2相同。
此外,为了整个系统能够获得较高的集成度,转换单元、中断单元及CPU接口单元可以集成为一个桥接设备,如此一来,这个桥接设备就具有数据解析、格式转换、中断请求和消息处理及与CPU直接通信的多重功能。
本发明不但提供了一种实现SPI4设备与PCI Express设备互连的系统,还提供了一种实现SPI4设备与PCI Express设备互连的方法。
现在结合图8,对本发明方法的实施例进行说明。如图8所示,在步骤S801中,SPI4设备或PCI Express设备向转换单元发送数据,由SPI4设备发出的数据应该为SPI4报文,而由PCI Express设备发出的数据应该为PCI Express处理层协议内容。进入步骤S802,所述转换单元将所述数据转换为PCI Express处理层协议内容或SPI4报文,发送给所述PCI Express设备或所述SPI4设备,如果转换单元接收的是由SPI4设备发出的SPI4报文,则需要将SPI4报文转换为PCIExpress处理层协议内容,再发送到PCI Express设备,相反的,如果转换单元接收的是由PCI Express设备发出的PCI Express处理层协议内容,则需要将PCI Express处理层协议内容转换为SPI4报文,再发送到SPI4设备。
所述转换单元在接收到所有的数据后,可以识别数据的内容类型,以进行相应的操作。
当确定所述数据的内容类型为配置内容类型时,所述转换单元将内置或外接于所述SPI4设备的中央处理器CPU通过中央处理器CPU接口单元或所述SPI4设备发送的所述配置内容封装成PCI Express的处理层协议包,发送给所述PCI Express设备。
当所述数据的内容类型为中断和消息内容类型时,所述转换单元将所述中断和消息内容发送给所述中断单元处理。所述中断单元接收到所述中断和消息内容后进行如下处理将所有非错误消息内部终结;将中断消息和错误消息解析后,通过消息信令中断MSI或直接上报给所述中央处理器CPU。
当所述数据的内容类型为数据内容类型时,所述转换单元将所述数据内容转换为SPI4报文发送给所述SPI4设备,或者所述转换单元将所述数据内容封装成PCI Express的处理层协议包发送给所述PCIExpress设备。
当所述SPI4设备对于接收的数据采用分块存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分分为两个SPI4报文,并将所述两个SPI4报文连续发送给所述SPI4设备。
当所述SPI4设备对于接收的数据采用链表管理的存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分组成一个SPI4报文,并将所述SPI4报文发送给所述SPI4设备。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种实现SPI4设备与PCI Express设备互连的系统,其特征在于包括SPI4设备及PCI Express设备;以及连接在SPI4设备及PCI Express设备之间的转换单元,用于将接收到的数据进行解析,并将所述数据转换为SPI4报文或PCI Express处理层协议内容,发送给所述SPI4设备或所述PCI Express设备。
2.如权利要求1所述的实现SPI4设备与PCI Express设备互连的系统,其特征在于还包括与所述转换单元相连的中断单元,用于接收和处理中断请求或错误消息,并将处理结果上报给内置或外接于所述SPI4设备的中央处理器CPU。
3.如权利要求2所述的实现SPI4设备与PCI Express设备互连的系统,其特征在于还包括分别与所述转换单元、所述中断单元及所述中央处理器CPU相连的中央处理器CPU接口单元,用于接收或转发所述中央处理器CPU与所述转换单元、所述中断单元之间传输的数据,并且解析由所述中央处理器CPU发出的配置信息。
4.如权利要求1所述的实现SPI4设备与PCI Express设备互连的系统,其特征在于所述转换单元与所述SPI4设备之间具有数据通道和控制通道,所述数据通道用于数据报文的传输,所述控制通道用于控制报文的传输。
5.一种利用权利要求1所述的系统实现SPI4设备与PCI Express设备互连的方法,其特征在于包括SPI4设备或PCI Express设备向转换单元发送数据;所述转换单元将所述数据转换为PCI Express处理层协议内容或SPI4报文,发送给所述PCI Express设备或所述SPI4设备。
6.如权利要求5所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于还包括所述转换单元在接收到所有的数据后,确定所述数据的内容类型为配置内容类型时,所述转换单元将内置或外接于所述SPI4设备的中央处理器CPU通过中央处理器CPU接口单元或所述SPI4设备发送的所述配置内容封装成PCI Express的处理层协议包,发送给所述PCI Express设备。
7.如权利要求5所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于还包括所述转换单元在接收到所有的数据后,确定所述数据的内容类型为中断和消息内容类型时,所述转换单元将所述中断和消息内容发送给所述中断单元处理。
8.如权利要求7所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于所述中断单元接收到所述中断和消息内容后进行如下处理将所有非错误消息内部终结;将中断消息和错误消息解析后,通过消息信令中断MSI或直接上报给所述中央处理器CPU。
9.如权利要求5所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于所述转换单元在接收到所有的数据后,确定所述数据的内容类型为数据内容类型时,所述转换单元将所述数据内容转换为SPI4报文发送给所述SPI4设备,或者所述转换单元将所述数据内容封装成PCI Express的处理层协议包发送给所述PCI Express设备。
10.如权利要求9所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于当所述SPI4设备对于接收的数据采用分块存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分分为两个SPI4报文,并将所述两个SPI4报文连续发送给所述SPI4设备。
11.如权利要求9所述的实现SPI4设备与PCI Express设备互连的方法,其特征在于当所述SPI4设备对于接收的数据采用链表管理的存储方式时,所述转换单元将所述数据内容的报文头与所述数据内容的载荷部分组成一个SPI4报文,并将所述SPI4报文发送给所述SPI4设备。
全文摘要
本发明公开了一种实现SPI4设备与PCI Express设备互连的系统,所述系统包括SPI4设备及PCI Express设备;以及连接在SPI4设备及PCI Express设备之间的转换单元,用于将接收到的数据进行解析,并将所述数据转换为SPI4报文或PCI Express处理层协议内容,发送给SPI4设备或PCI Express设备。所述系统还可包括中断单元及中央处理器CPU接口单元。转换单元可以对SPI4设备发送的数据或PCIExpress设备发送的数据进行解析,并进行格式的转换,以使转换后的数据格式符合PCI Express处理层协议包或SPI4报文的格式,有效的解决了SPI4设备与PCI Express设备互连的问题。本发明还提供了一种实现SPI4设备与PCI Express设备互连的方法。
文档编号H04L29/06GK1832488SQ20061006662
公开日2006年9月13日 申请日期2006年4月13日 优先权日2006年4月13日
发明者肖亮, 陈科, 瞿凯, 朱根俊, 郭峰, 解叶军, 王书剑 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1