基于pcie交换总线的通信方法及一种pcie交换系统的制作方法

文档序号:7767252阅读:323来源:国知局
专利名称:基于pcie交换总线的通信方法及一种pcie交换系统的制作方法
技术领域
本发明涉及网络通信技术,尤其涉及网络通信领域的分布式系统中的板间通信技术,特别涉及基于PCIE交换总线的通信方法及一种PCIE交换系统。
背景技术
目前,单CPU集中式架构的通信设备的处理能力已经不能满足日益增长的通信业务处理要求。由多张板卡组成的分布式架构的通信设备由于能够并行处理业务,能够成倍的提高业务处理量,在通信产品的设计中越来越普及。典型的分布式架构系统,一般由主控板、交换板和各种线卡板组成。其中,主控板用于管理整个系统,接收用户的管理命令,修改整个系统的工作方式,例如,关闭其中一张线卡板的所有功能,或者收集每张线卡板的工作状态;交换板用于传递各个线卡板间的报文,有些报文是需要多张线卡板配合处理的,报文处理的中间结果就需要通过交换板卡传递给下一个需要处理的线卡板,由于任意两个线卡板间都可能通信,因此就需要一张交换板卡来统一处理板卡的报文交换;各种线卡板通过交换总线连接到交换板上,线卡板主要处理报文,报文可能来自于主控卡,也可能来自于线卡板上的网络通信接口,能够本卡处理完的报文,就在本卡完成所有报文的处理,如果不能完成所有的处理,需要交下一张板卡继续处理,就将报文交给交换板卡,由交换板卡转发给下一张线卡板继续处理。在运行过程中,当业务报文需要进行跨板卡通信时,由交换板通过交换总线实现线卡板间的报文交换。由于所有的线卡板都需要通过交换总线实现报文交换,因此交换板卡的吞吐能力和交换效率成为整个分布式系统性能的关键点。常用的交换总线标准为高速外设组件互连标准(PCIE,PeripheralComponent Interconnect-Express) 随着PCIE2. O标准的发布,PCIE中的一路(lane)的速率已经提高到5G,可以将4个Lane甚至8个Lane组成的20G或40G的PCIE总线。而遵循PCIE2. O 规范的交换芯片也能够实现全线速交换。PCIE总线的通信方式为直接的共享内存读写。以下将连接到PCIE交换总线上的设备称为PCIE终端,多个相互连接的PCIE终端构成一个PCIE交换系统。在PCIE交换系统中,需要预先设置空间映射关系,即每个PCIE终端都将自己的一段内存映射到PCIE地址空间;同时,也需要将PCIE地址空间映射到自己的内存空间中。设置好空间映射关系后,第一 PCIE终端向内存空间中写入报文,该报文就能被发送到PCIE交换系统的第二 PCIE终端的内存空间中。为了要在PCIE交换系统中完成高效、连续的报文传输,需要遵循如下规则作为发送方的PCIE终端要能够知道报文要写入的地址,要能够在报文发送完成之后通知接收端有新的报文到达,并且已经发送完成;作为接收方的PCIE终端要能够知道报文已经写入,并且要持续通告发送端新的可以写入报文的缓存(buffer)地址。有了共同遵循的规贝U,通信两端才能最大限度的减小通信过程中的延迟和等待,最大限度的做到连续通信。同时,由于PCIE规范的设计原因,PCIE写操作的效率要远远大于读操作的效率,因此,如何减少软件操作中的读操作也是提高PCIE效率的关键。

发明内容
本发明提供了一种基于PCIE交换总线的通信方法及一种PCIE交换系统,可以提高PCIE交换总线的工作效率。本发明实施例提出一种基于高速外设组件互连标准PCIE交换总线的通信方法, 该方法应用于由N个PCIE终端组成的PCIE交换系统,所述N个PCIE终端通过PCIE交换总线实现相互连接,所述每个PCIE终端创建三块内存区域,分别作为接收缓存区、接收状态队列和发送空闲队列;每个PCIE终端的这三块内存区域都映射到PCIE交换系统的地址空间,且不同PCIE终端映射的地址空间彼此不发生重叠;该方法包括如下步骤 A、所述PCIE交换系统中的每一个PCIE终端从本地接收缓存区中申请一定数目的缓存单元,将记录每个缓存单元对应的PCIE地址和缓存大小的空闲缓存描述符分别写入其他N-I个PCIE终端中和自己对应的发送空闲队列;B、PCIE交换系统中的第一 PCIE终端从本地与第二 PCIE终端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则从与第二 PCIE终端对应的发送空闲队列中提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间中;C、第一 PCIE终端向第二 PCIE终端的接收状态队列中写入一个报文状态描述符;D、第二 PCIE终端检测到本地与第一 PCIE终端对应的接收状态队列中有新增的有效报文状态描述符,先在本地接收缓存区中申请一个新的空闲缓存单元,并向第一 PCIE终端中对应的发送空闲队列写入一个新的空闲缓存描述符,然后根据收到的报文状态描述符从缓存单元中取出报文并上交。较佳地,所述第一 PCIE终端本地与第二 PCIE终端对应的发送空闲队列的长度与第二 PCIE终端本地与第一 PCIE终端对应的接收状态队列的长度相等。较佳地,步骤C所述第一 PCIE终端向第二 PCIE终端的接收状态队列中写入一个报文状态描述符之后,进一步包括若当前接收状态队列的位置不等于接收状态队列的长度,将当前接收状态队列的位置加1 ;若当前接收状态队列的位置等于接收状态队列的长度,将当前接收状态队列的位置返回初始值。较佳地,步骤D所述向第一 PCIE终端的发送空闲队列写入一个新的空闲缓存描述符之后进一步包括若当前发送空闲队列的位置不等于发送空闲队列的长度,将当前发送空闲队列的位置加1 ;若当前发送空闲队列的位置等于发送空闲队列的长度,将当前接收状态队列的位置返回初始值。较佳地,步骤D中,如果第二 PCIE终端在本地接收缓存区中申请一个新的空闲缓存单元不成功,则进一步包括所述第二 PCIE终端从接收状态队列中取出报文状态描述符中的缓存单元地址和缓存大小,将其作为一个新的空闲缓存单元写入到发送端的发送空闲队列中。较佳地,所述PCIE终端为线卡板。
本发明实施例提出一种高速外设组件互连标准PCIE交换系统,所述系统包括N个 PCIE终端,所述N个PCIE终端通过PCIE交换总线实现相互连接,任一个所述PCIE终端包括内存管理模块、发送处理模块和接收处理模块;所述内存管理模块,用于创建三块内存区域,分别作为接收缓存区、接收状态队列和发送空闲队列;并将这三块内存区域映射到PCIE交换系统的地址空间,且与其他PCIE终端映射的地址空间彼此不发生重叠;所述发送处理模块,用于从本地接收缓存区中申请一定数目的缓存单元,将记录每个缓存单元对应的PCIE地址和缓存大小的空闲缓存描述符写入其他N-I个PCIE终端的发送空闲队列当中;当本PCIE终端作为发送端时,用于从本地与作为接收端的第二PCIE终端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则从与所述第二 PCIE终端对应的发送空闲队列中提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间中,并向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符;所述接收处理模块,用于当本PCIE终端作为接收端时,检测到本地与作为发送端的第三PCIE终端对应的接收状态队列中有新的有效报文状态描述符时,接收端从本地接收缓存区中申请一个空闲的缓存单元,将记录所述空闲的缓存单元对应的PCIE地址和缓存大小的空闲状态描述符,写入所述第三PCIE终端中和其对应的发送空闲队列当中;然后将所述新的有效报文状态描述符对应的缓存单元地址中取出该报文并上交。较佳地,所述发送空闲队列的长度与接收状态队列的长度相等。较佳地,所述发送处理模块进一步包括当前接收状态队列位置记录单元,用于当本PCIE终端作为发送端时,记录当前作为接收端的第二 PCIE终端中对应的接收状态队列的位置;在所述本PCIE终端的发送处理模块向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符之后,用于判断当前接收状态队列的位置是否等于接收状态队列的长度,若是,将所记录的当前接收状态队列的位置返回初始值,否则,将所记录的当前接收状态队列的位置加1。较佳地,所述接收处理模块进一步包括当前发送空闲队列位置记录单元,用于当本PCIE终端作为接收端时,记录当前作为发送端的第三PCIE终端对应的发送空闲队列的位置;在所述本PCIE终端的接收处理模块向第三PCIE终端的发送空闲队列写入一个新的空闲缓存描述符之后,用于判断当前发送空闲队列的位置是否等于发送空闲队列的长度,若是,将当前接收状态队列的位置返回初始值,否则将当前发送空闲队列的位置加1。较佳地,所述PCIE终端为线卡板。从以上技术方案可以看出,发送空闲队列在发送端创建,该队列的读操作在发送端本地完成,不需要经过PCIE,而写操作由各个PCIE对端设备通过PCIE交换网络写入。接收状态队列的读操作由接收端在本地完成,不需要经过PCIE,而写操作由各个对端设备通过PCIE交换网络写入;而报文的发送都是写操作。这样,整个PCIE交换总线就完全杜绝了 PCIE读操作,最大限度的提高了 PCIE的操作效率。


图1为典型的PCIE交换系统示意图2为本发明实施例提出的基于PCIE交换总线的通信方法的处理流程图;图3为本发明实施例中各个PCIE终端映射的地址空间的示意图。
具体实施例方式图1所示为典型的PCIE交换系统示意图。该PCIE交换系统包括N个PCIE终端以及PCIE交换总线,这N个PCIE终端分别连接到PCIE交换总线上。每个PCIE终端创建三块内存区域,分别是接收缓存区,接收状态队列和发送空闲队列。接收状态队列和发送空闲队列的长度按照约定的长度创建。为了避免对队列是否溢出进行判断,可以使发送空闲队列长度等于接收状态队列长度。初始化时,每个PCIE终端的接收状态队列为空。该PCIE交换系统采用报文传输的方式,定义如下描述符空闲缓存描述符,用于描述接收端接收报文的空闲缓存的PCIE地址和该空闲缓存的大小;报文状态描述符,用于描述接收端接收到报文的长度和存放报文的PCIE地址以及报文有效性标志。在发送报文的PCIE终端(以下简称为发送端)的内存中创建发送空闲队列。为支持报文发送,一个发送端要创建N-I个发送空闲队列,每个发送空闲队列对应该PCIE交换结构中的一个接收报文的PCIE终端(以下简称为接收端)。在初始化完成后,每个发送空闲队列中保存空闲缓存描述符。当需要发送报文时,从接收端对应的发送空闲队列中取出一个空闲缓存描述符,从该空闲缓存描述符中获得空闲缓存的PCIE地址,向该PCIE地址写入报文即可实现报文发送。只要发送空闲队列中有空闲缓存描述符,发送端就可以连续不断的向对端发送报文,直到接收端由于无法及时处理报文,导致没有新的空闲缓存描述符加入到发送端中对应的发送空闲队列。在完成报文发送之后,发送端向接收端的接收状态队列中写入本次报文发送的报文状态描述符。在接收端创建接收状态队列,所述接收状态队列用于接收发送端写过来的报文状态描述符。每个PCIE终端在本地对应于每一个其他PCIE终端创建一个接收状态队列,因此共需创建N-I个接收状态队列。接收端需要检查报文状态描述符的有效性标志,以确定是否有新的报文到达,在检查到报文状态描述符有效时,表明新的报文已经到达,将报文从报文状态描述符携带的的PCIE地址对应的本地缓存单元中取出,并向发送端的发送空闲队列写入一个新的空闲缓存描述符。接收端可以采用一定的调度策略来接收各个发送端发送来的报文,例如,采用公平调度的方式来检查每个接收状态队列,从而实现公平接收各个发送端的报文。发送空闲队列在发送端创建,该队列的读操作在发送端完成,不需要经过PCIE交换总线,而写操作由接收端通过PCIE交换总线写入。接收状态队列的读操作由接收端在本地完成,不需要经过PCIE交换总线,而写操作由各个对端设备通过PCIE交换网络写入;而报文的发送都是写操作。这样,整个软件实现中就完全杜绝了 PCIE读操作,最大限度的提高了 PCIE的操作效率。本发明实施例提出的基于PCIE交换总线的通信方法的处理流程如图2所示,包括如下步骤
7
步骤201 每个PCIE终端创建三块内存区域,分别是接收缓存区,接收状态队列和发送空闲队列。其中,接收状态队列和发送空闲队列的长度按照约定的长度创建。较佳地,每个作为发送端的PCIE终端本地创建的和其它每个PCIE终端分别对应的发送空闲队列的长度, 与其作为接收端时本地创建的与其它每个PCIE终端对应的接收状态队列的长度相等。更为简单的情况,所有PCIE终端的发送空闲队列长度和接收状态队列长度均相等。初始化时,接收状态队列和发送空闲队列都为空。步骤202 将每个PCIE终端的这三块内存区域都映射到PCIE交换系统的地址空间,且不同PCIE终端映射的地址空间彼此不发生重叠。图3为各个PCIE终端映射的地址空间的示意图。一种可能的实施方式为每个PCIE终端按照自身在PCIE交换系统中的槽位号计算得到该PCIE终端的地址空间,以保证不同PCIE终端映射的地址空间彼此不发生重叠。步骤203 所述PCIE交换系统中的每一个PCIE终端从本地接收缓存区中申请一定数目的缓存单元,然后将这些缓存单元对应的PCIE地址和缓存大小按照空闲缓存描述符的格式写入其他N-I个PCIE终端的发送空闲队列当中。每个PCIE终端将自己的接收缓存区切分为多个缓存单元,并采用缓存池的方式管理这些缓存单元,可以通过软件接口向缓存池申请和释放缓存单元。步骤204:发送端要向一个接收端发送报文时,发送端从本地与该接收端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间,即缓存单元中。步骤205 在完成报文写入后,发送端向接收端的接收状态队列中按照写入一个报文状态描述符,并记录当前接收状态队列的位置。所述报文状态描述符记录了报文的大小和存放报文的PCIE地址。为了在接收端的接收状态队列的正确位置写入报文状态描述符,发送端需要记录和其对应的当前接收状态队列的位置(rcv_stat_head),初始状态下,rcv_stat_head = 0,表示从接收状态队列的起始位置开始写入报文状态描述符,每写入一个报文状态描述符,若当前接收状态队列的位置不等于接收状态队列的长度,当前接收状态队列的位置加1,即rcV_Stat_head = rcv_ stat_head+l。若当前接收状态队列的位置等于接收状态队列的长度,将当前接收状态队列的位置返回初始值,即rcV_Stat_head = 0。步骤206 接收端通过轮询本地内存中分别与每个PCIE终端对应的接收状态队列的方式来检测是否有新的报文到达,当检测到某个接收状态队列中有新报文到达的有效标志时,首先要从本地接收缓冲区中申请一个新的缓存单元,向发送端的对应发送空闲队列中添加记录该缓存单元对应的PCIE地址和缓存大小的新的空闲缓存描述符,然后接收端从接收状态队列中取出的存放报文的PCIE地址,将这个地址转为为其本地缓存单元地址后上交给后续的软件处理,后续的软件模块就可以通过这个地址访问到自己需要处理的保存在缓存单元中的报文。然后返回步骤204进行新的报文的发送与接收。注意,本步骤中,如果接收端申请缓存单元不成功,说明所有分配用来接收报文的缓存单元都在被占用,仍然需要处理接收状态队列,从接收状态队列中取出缓存单元的地址,但是这个地址不再上交,而是要作为一个空闲缓存单元加入到发送端的发送空闲队列中,因为每处理一个接收状态队列表项,就需要向对端的发送空闲队列中补充一个新的空闲缓存描述符,保证发送端有新的空闲缓存描述符可用,而这个空闲缓存描述符必须指向一个没有软件模块使用的缓存单元,因此在申请不到新的缓存单元的情况下,只能将刚刚完成报文接收的缓存单元再次利用起来,即丢弃刚刚收到的报文。另外,接收端为了在发送端的发送空闲队列的正确位置写入空闲缓存描述符,接收端需要记录当前发送空闲队列的位置(snd_buff_head),初始状态下,snd_buff_head = 0,表示从队列的起始位置开始写入报文状态描述符。每写入一个空闲缓存描述符,若当前发送空闲队列的位置不等于发送空闲队列的长度,将当前发送空闲队列的位置加1,即 snd_buff_head = snd_buff_head+l0若当前发送空闲队列的位置等于发送空闲队列的长度时,将当前接收状态队列的位置返回初始值,即Snd_bUff_head = 0。本发明实施例还提出一种高速外设组件互连标准PCIE交换系统,所述系统包括N 个PCIE终端,所述N个PCIE终端通过PCIE交换总线实现相互连接,任一个所述PCIE终端包括内存管理模块、发送处理模块和接收处理模块;所述内存管理模块,用于创建三块内存区域,分别作为接收缓存区、接收状态队列和发送空闲队列;并将这三块内存区域映射到PCIE交换系统的地址空间,且与其他PCIE终端映射的地址空间彼此不发生重叠;所述发送处理模块,用于从本地接收缓存区中申请一定数目的缓存单元,将记录每个缓存单元对应的PCIE地址和缓存大小的空闲缓存描述符写入其他N-I个PCIE终端的发送空闲队列当中;当本PCIE终端作为发送端时,用于从本地与作为接收端的第二PCIE终端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则从与所述第二 PCIE终端对应的发送空闲队列中提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间中,并向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符;所述接收处理模块,用于当本PCIE终端作为接收端时,检测到本地与作为发送端的第三PCIE终端对应的接收状态队列中有新的有效报文状态描述符时,接收端从本地接收缓存区中申请一个空闲的缓存单元,将包括所述空闲的缓存单元对应的PCIE地址和缓存大小的空闲状态描述符,写入所述第三PCIE终端中和其对应的发送空闲队列当中;然后将所述新的有效报文状态描述符对应的缓存单元地址中取出该报文并上交。较佳地,所述发送空闲队列的长度与接收状态队列的长度相等。较佳地,所述内存管理模块进一步包括地址计算单元,用于按照本PCIE终端在PCIE交换系统中的槽位号计算得到三块内存区域的地址空间。较佳地,所述发送处理模块进一步包括当前接收状态队列位置记录单元,用于当本PCIE终端作为发送端时,记录当前作为接收端的第二 PCIE终端中对应的接收状态队列的位置;在所述本PCIE终端的发送处理模块向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符之后,用于判断当前接收状态队列的位置是否等于接收状态队列的长度,若是,将所记录的当前接收状态队列的位置返回初始值,否则,将所记录的当前接收状态队列的位置加1。较佳地,所述接收处理模块进一步包括当前发送空闲队列位置记录单元,用于当本PCIE终端作为接收端时,记录当前作为发送端的第三PCIE终端对应的发送空闲队列的位置;在所述本PCIE终端的接收处理模块向第三PCIE终端的发送空闲队列写入一个新的空闲缓存描述符之后,用于判断当前发送空闲队列的位置是否等于发送空闲队列的长度,若是,将当前接收状态队列的位置返回初始值,否则将当前发送空闲队列的位置加1。较佳地,所述PCIE终端为线卡板。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种基于高速外设组件互连标准PCIE交换总线的通信方法,该方法应用于由N个 PCIE终端组成的PCIE交换系统,所述N个PCIE终端通过PCIE交换总线实现相互连接,其特征在于,所述每个PCIE终端创建三块内存区域,分别作为接收缓存区、接收状态队列和发送空闲队列;每个PCIE终端的这三块内存区域都映射到PCIE交换系统的地址空间,且不同PCIE终端映射的地址空间彼此不发生重叠;该方法包括如下步骤A、所述PCIE交换系统中的每一个PCIE终端从本地接收缓存区中申请一定数目的缓存单元,将记录每个缓存单元对应的PCIE地址和缓存大小的空闲缓存描述符分别写入其他 N-I个PCIE终端中和自己对应的发送空闲队列;B、PCIE交换系统中的第一PCIE终端从本地与第二 PCIE终端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则从与第二 PCIE终端对应的发送空闲队列中提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间中;C、第一PCIE终端向第二 PCIE终端的接收状态队列中写入一个报文状态描述符;D、第二PCIE终端检测到本地与第一 PCIE终端对应的接收状态队列中有新增的有效报文状态描述符,先在本地接收缓存区中申请一个新的空闲缓存单元,并向第一 PCIE终端中对应的发送空闲队列写入一个新的空闲缓存描述符,然后根据收到的报文状态描述符从缓存单元中取出报文并上交。
2.根据权利要求1所述的基于PCIE交换总线的通信方法,其特征在于,所述第一PCIE 终端本地与第二 PCIE终端对应的发送空闲队列的长度与第二 PCIE终端本地与第一 PCIE 终端对应的接收状态队列的长度相等。
3.根据权利要求1所述的基于PCIE交换总线的通信方法,其特征在于,步骤C所述第一PCIE终端向第二 PCIE终端的接收状态队列中写入一个报文状态描述符之后,进一步包括若当前接收状态队列的位置不等于接收状态队列的长度,将当前接收状态队列的位置加1 ;若当前接收状态队列的位置等于接收状态队列的长度,将当前接收状态队列的位置返回初始值。
4.根据权利要求1所述的基于PCIE交换总线的通信方法,其特征在于,步骤D所述向第一 PCIE终端的发送空闲队列写入一个新的空闲缓存描述符之后进一步包括若当前发送空闲队列的位置不等于发送空闲队列的长度,将当前发送空闲队列的位置加1 ;若当前发送空闲队列的位置等于发送空闲队列的长度,将当前接收状态队列的位置返回初始值。
5.根据权利要求1所述的基于PCIE交换总线的通信方法,其特征在于,步骤D中,如果第二 PCIE终端在本地接收缓存区中申请新的空闲缓存单元不成功,则进一步包括所述第二PCIE终端从接收状态队列中取出报文状态描述符中的缓存单元地址和缓存大小,将其作为一个新的空闲缓存单元写入发送端的对应的发送空闲队列中。
6.根据权利要求1-5任一项所述的基于PCIE交换总线的通信方法,其特征在于,所述 PCIE终端为线卡板。
7.一种高速外设组件互连标准PCIE交换系统,所述系统包括N个PCIE终端,所述N个 PCIE终端通过PCIE交换总线实现相互连接,其特征在于,任一个所述PCIE终端包括内存管理模块、发送处理模块和接收处理模块;所述内存管理模块,用于创建三块内存区域,分别作为接收缓存区、接收状态队列和发送空闲队列;并将这三块内存区域映射到PCIE交换系统的地址空间,且与其他PCIE终端映射的地址空间彼此不发生重叠;所述发送处理模块,用于从本地接收缓存区中申请一定数目的缓存单元,将记录每个缓存单元对应的PCIE地址和缓存大小的空闲缓存描述符写入其他N-I个PCIE终端的发送空闲队列当中;当本PCIE终端作为发送端时,用于从本地与作为接收端的第二PCIE终端对应的发送空闲队列中查找是否有空闲缓存描述符,如果有,则从与所述第二 PCIE终端对应的发送空闲队列中提取一个空闲缓存描述符,将要发送的报文写入该空闲缓存描述符指定的地址空间中,并向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符;所述接收处理模块,用于当本PCIE终端作为接收端时,检测到本地与作为发送端的第三PCIE终端对应的接收状态队列中有新的有效报文状态描述符时,接收端从本地接收缓存区中申请一个空闲的缓存单元,将记录所述空闲缓存单元的对应的PCIE地址和缓存大小的空闲状态描述符,写入所述第三PCIE终端中和其对应的发送空闲队列当中;然后将所述新的有效报文状态描述符对应的缓存单元中取出该报文并上交。
8.根据权利要求7所述的PCIE交换系统,其特征在于,所述发送空闲队列的长度与接收状态队列的长度相等。
9.根据权利要求7所述的PCIE交换系统,其特征在于,所述发送处理模块进一步包括当前接收状态队列位置记录单元,用于当本PCIE终端作为发送端时,记录当前作为接收端的第二 PCIE终端中对应的接收状态队列的位置;在所述本PCIE终端的发送处理模块向所述第二 PCIE终端的接收状态队列中写入一个报文状态描述符之后,用于判断当前接收状态队列的位置是否等于接收状态队列的长度,若是,将所记录的当前接收状态队列的位置返回初始值,否则,将所记录的当前接收状态队列的位置加1。
10.根据权利要求7所述的PCIE交换系统,其特征在于,所述接收处理模块进一步包括当前发送空闲队列位置记录单元,用于当本PCIE终端作为接收端时,记录当前作为发送端的第三PCIE终端对应的发送空闲队列的位置;在所述本PCIE终端的接收处理模块向第三PCIE终端的发送空闲队列写入一个新的空闲缓存描述符之后,用于判断当前发送空闲队列的位置是否等于发送空闲队列的长度,若是,将当前接收状态队列的位置返回初始值,否则将当前发送空闲队列的位置加1。
11.根据权利要求7-10任一项所述的PCIE交换系统,其特征在于,所述PCIE终端为线卡板。
全文摘要
本发明提供了一种基于高速外设组件互连标准(PCIE)交换总线的通信方法,该方法应用于由N个PCIE终端组成的PCIE交换系统,所述N个PCIE终端通过PCIE交换总线实现相互连接。该通信方法中,在发送端创建发送空闲队列,该队列的读操作在发送端本地完成,而写操作由各个PCIE对端设备通过PCIE交换网络写入;接收端创建接收状态队列,该队列的读操作在接收端本地完成,而写操作由各个对端设备通过PCIE交换网络写入,而报文的发送都是写操作。这样,整个PCIE交换总线就完全杜绝了PCIE读操作,最大限度的提高了PCIE的操作效率。本发明还提供了一种PCIE交换系统。
文档编号H04L12/56GK102480426SQ201010569328
公开日2012年5月30日 申请日期2010年11月25日 优先权日2010年11月25日
发明者曾健 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1