CN103218313A - 用于实现缓存描述符交互的方法和电子设备 - Google Patents

用于实现缓存描述符交互的方法和电子设备 Download PDF

Info

Publication number
CN103218313A
CN103218313A CN2013101138936A CN201310113893A CN103218313A CN 103218313 A CN103218313 A CN 103218313A CN 2013101138936 A CN2013101138936 A CN 2013101138936A CN 201310113893 A CN201310113893 A CN 201310113893A CN 103218313 A CN103218313 A CN 103218313A
Authority
CN
China
Prior art keywords
terminal part
formation
process nuclear
proxy module
write
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.)
Granted
Application number
CN2013101138936A
Other languages
English (en)
Other versions
CN103218313B (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.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201310113893.6A priority Critical patent/CN103218313B/zh
Publication of CN103218313A publication Critical patent/CN103218313A/zh
Application granted granted Critical
Publication of CN103218313B publication Critical patent/CN103218313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种用于实现缓存描述符交互的方法和电子设备。本发明在终端器件中增设了代理模块,利用代理模块为各处理核提供BD发送队列和BD接收队列的入口、并利用代理模块对BD发送队列和BD接收队列执行指针操作,因而既能够保证各处理核通过代理模块实现对BD发送队列的写操作和对BD接收队列的读操作,还在能够避免各处理核对指针操作的多对一竞争。而且,本发明不需要在多核CPU中设置自旋锁和轮询核,因而能够避免多核CPU的整体效率降低。

Description

用于实现缓存描述符交互的方法和电子设备
技术领域
本发明涉及数据转发技术,特别涉及一种用于实现缓存描述符(Buffer Description,BD)交互的方法和电子设备。
背景技术
随着技术的发展,电子设备(例如路由器)中越来越多地采用多核CPU。并且,为了丰富电子设备的扩展功能,通常还为多核CPU配备有集成了不同功能模块的逻辑芯片(例如FPGA或ASIC芯片)、并通过数据总线将多核CPU与逻辑芯片相连。其中,PCIE(PedpherdComponent Interconnect Express,周边元件互连高速)总线以其高速、可扩展性好的特点能够很好地满足多核CPU与逻辑芯片的互连。当数据总线选用PCIE总线时,逻辑芯片可称为PCIE终端(Endpoint)器件。
图1中示出了现有技术中的一种包含多核CPU和PCIE终端器件的硬件架构,该硬件架构中还包括PCIE桥,用于承担多核CPU与逻辑芯片之间基于PCIE总线的互连。在如图1所示的该硬件架构中,多核CPU中的各处理核可以向每个PCIE终端器件发送报文、也可以从每个PCIE终端器件接收报文,并且,各处理核与PCIE终端器件之间的报文收发通常是基于BD交互来实现的。
请参见图2,PCIE终端器件中通常会维护由一个BD发送队列和一个BD接收队列:
当多核CPU中的某个处理核需要向一个PCIE终端器件发送报文时,处理核对该PCIE终端器件中的BD发送队列执行写操作、以将相应的BD写入该PCIE终端器件的BD发送队列中,而PCIE终端器件中的功能模块则对其BD发送队列执行读操作、以从BD发送队列中读出被处理核写入的BD;
当多核CPU中的某个处理核需要从一个PCIE终端器件接收报文时,该PCIE终端器件中的功能模块对其BD接收队列执行写操作、以将相应的BD写入其BD接收队列中,而处理核则对该PCIE终端器件中的BD接收队列执行读操作、以从BD发送队列中读出被该PCIE终端器件中的功能模块写入的BD。
另外,对于实现BD交互的处理核和PCIE终端器件中的功能模块来说,在实现上述对BD发送队列和BD接收队列的读写操作的同时,还需要同时对BD发送队列和BD接收队列执行相应的指针操作,以更新BD发送队列和BD接收队列的读写位置、并维护BD发送队列和BD接收队列的空满状态。
其中,指针操作存在互斥性要求,因此,若同时出现多个处理核需要向同一个PCIE终端器件发送报文、或从同一个PCIE终端器件接收报文,则势必会形成多个处理核与一个BD发送队列或BD接收队列之间的多对一竞争关系。
为了处理上述的多对一竞争关系,现有技术通常会为多个处理核设置一个自旋锁。但若选用自旋锁的方式,则极有可能会降低整体效率。
例如,假设多核CPU包含有32个处理核,则每当32个处理核同时向同一个PCIE终端器件发送报文、或从同一个PCIE终端器件接收报文时,这32个处理核会争抢自旋锁,且只会有一个处理核能争抢成功。这样,一种极端的情况是某个处理核连续多次争抢自旋锁失败,直到其他31个处理核都完成一次甚至是多次的BD读写操作。从而,该处理核的等待时间会远大于实际的BD队列操作时间,严重影响了多核CPU的处理效率。而且,多核CPU包含的处理核数量越多,可能出现的上述等待时间就越长。
另一种处理多对一竞争关系的方式是,将多核CPU中的一个处理核作为专用于调度其他处理核的轮询核。但若选用一个处理核作为轮询核的方式,同样也会降低多核CPU的整体效率。
例如,对于包含有60个处理核的多核CPU来说,若将其中的1个处理核用作轮询核,则会牺牲多核CPU的整体效率的1/60,并且,处理核与轮询核的比例为59:1,轮询核就可能成为多核CPU整体效率的瓶颈。
再例如,对于包含有4个处理核的多核CPU来说,若将其中的1个处理核用作轮询核,虽然多核与轮询和的比例降低至3:1、并能够避免轮询核成为多核CPU整体效率的瓶颈,但这样会牺牲多核CPU的整体效率的1/4,从而大大降低多核CPU的整体效率。
可见,现有技术采用自旋锁或将一个处理核专用于轮询的方式均影响多核CPU的整体效率。
发明内容
有鉴于此,本发明提供了一种用于实现BD交互的方法和电子设备。
本发明提供的一种用于实现BD交互的方法,该方法应用于电子设备中,该电子设备包含多核CPU、以及通过PCIE总线与多核CPU相连的终端器件,多核CPU中具有多个处理核,至少一个终端器件具有功能模块、BD发送队列和BD接收队列、以及代理模块,该方法包括由多个处理核、以及代理模块和功能模块执行的如下步骤:
可选地,所述的至少一个终端器件设置有对应的计数器,其中,当终端器件对应的计数器达到预定的阈值时,各处理核向该终端器件的代理模块写入BD的操作进入等待状态;并且,各处理核具有一个对应的发送完成队列;以及:
当任一个处理核在完成BD向终端器件的代理模块的写入后,对该终端器件对应的计数器加1;
当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;
当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减1。
可选地,所述的至少一个终端器件的BD接收队列具有头指针和尾指针,其中,当终端器件的BD接收队列的头指针经过循环移位而与尾指针重合时,该终端器件的功能模块向BD接收队列写入BD的操作进入等待状态;以及:
当终端器件的功能模块在向BD接收队列的头指针当前位置写入BD后,更新BD接收队列的头指针当前位置;
当任一处理核在从终端器件的代理模块接收到读取自BD接收队列的BD后,向该终端器件的代理模块回写空闲BD;
当终端器件的代理模块接收到处理器回写的空闲BD后,将空闲BD写入至BD接收队列中的尾指针当前位置、并更新尾指针当前位置。
可选地,各终端器件的代理模块配置有虚拟地址,处理核依据虚拟地址实现BD向代理模块的写入、以及向代理模块发出读取BD的请求。
可选地,虚拟地址为PCIE总线地址。
本发明提供的一种电子设备,该电子设备包含多核CPU、以及通过PCIE总线与多核CPU相连的终端器件,多核CPU中具有多个处理核,至少一个终端器件具有功能模块、BD发送队列和BD接收队列、以及代理模块,其中:
当任一处理核需要向终端器件的功能模块发送报文时,该处理核将报文的BD通过PCIE写请求写入该终端器件中的代理模块,该终端器件的代理模块将BD写入BD发送队列中的写指针当前位置、并更新BD发送队列的写指针当前位置;
当任一处理核需要从终端器件的功能模块接收报文时,该处理核通过PCIE读请求向该终端器件中的代理模块请求读取BD,该终端器件的代理模块从BD接收队列中的读指针当前位置读取BD返回给该处理核、并在读取的BD为非空闲的BD时更新BD接收队列中的读指针当前位置;
以及,终端器件的功能模块顺序读取BD发送队列中的BD、并针对需要向处理核返回的报文向BD接收队列顺序写入BD。
可选地,所述的至少一个终端器件设置有对应的计数器,其中,当终端器件对应的计数器达到预定的阈值时,各处理核向该终端器件的代理模块写入BD的操作进入等待状态;并且,各处理核具有一个对应的发送完成队列;以及:
当任一个处理核在完成BD向终端器件的代理模块的写入后,对该终端器件对应的计数器加1;
当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;
当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减1。
可选地,所述的至少一个终端器件的BD接收队列具有头指针和尾指针,其中,当终端器件的BD接收队列的头指针经过循环移位而与尾指针重合时,该终端器件的功能模块向BD接收队列写入BD的操作进入等待状态;以及:
当终端器件的功能模块在向BD接收队列的头指针当前位置写入BD后,更新BD接收队列的头指针当前位置;
当任一处理核在从终端器件的代理模块接收到读取自BD接收队列的BD后,向该终端器件的代理模块回写空闲BD;
当终端器件的代理模块接收到处理器回写的空闲BD后,将空闲BD写入至BD接收队列中的尾指针当前位置、并更新尾指针当前位置。
可选地,各终端器件的代理模块配置有虚拟地址,处理核依据虚拟地址实现BD向代理模块的写入、以及向代理模块发出读取BD的请求。
可选地,虚拟地址为PCIE总线地址。
由此可见,本发明在终端器件中增设了代理模块,利用代理模块为各处理核提供BD发送队列和BD接收队列的入口、并利用代理模块对BD发送队列和BD接收队列执行指针操作,因而既能够保证各处理核通过代理模块实现对BD发送队列的写操作和对BD接收队列的读操作,还在能够避免各处理核对指针操作的多对一竞争。而且,本发明不需要在多核CPU中设置自旋锁和轮询核,因而能够避免多核CPU的整体效率降低。
附图说明
图1为现有技术中的一种包含多核CPU和PCIE终端器件的电子设备的硬件架构示意图;
图2为在如图1所示的电子设备中实现BD交互的原理性示意图;
图3为本发明实施例中实现BD交互的原理性示意图;
图4a和图4b分别为本发明实施例中用于实现BD交互的方法的流程示意图;
图5a和图5b为本发明实施例中用于维护BD发送队列的原理性示意图;
图6a和图6b为本发明实施例中用于维护BD接收队列的原理性示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
对BD发送队列的写操作和对BD接收队列的读操作实际上均可以分为两部分,一部分是对BD发送队列和BD接收队列的寻址和BD收发操作、或成为进入(Entry)操作,另一部分则是对BD发送队列和BD接收队列的指针操作。其中,Entry操作不存在互斥性;而指针操作则存在较高的互斥性要求。
因此,本实施例在PCIE终端器件中增加了代理模块,并使BD发送队列和BD接收队列对各处理核不可见。这样,该代理模块来执行互斥性要求较高的指针操作,同时,各处理核可以将代理模块视为BD发送队列的入口和BD接收队列的出口、并对代理模块执行Entry操作。从而,既能够保证各处理核通过代理模块实现对BD发送队列的写操作和对BD接收队列的读操作,还在能够避免各处理核对指针操作的多对一竞争。而且,这样还能够避免在多核CPU中设置自旋锁和轮询核,因而能够避免多核CPU的整体效率降低。
请参见图3,本实施例中用于BD交互的方法应用于包含多核CPU和PCIE终端器件的电子设备中,多核CPU中具有多个处理核,至少一个PCIE终端器件中分别具有功能模块、BD发送队列和BD接收队列、以及代理模块。
其中,上述的至少一个PCIE终端器件中的BD发送队列用于存放处理核向该PCIE终端器件的功能模块发送的BD,上述的至少一个PCIE终端器件中的BD接收队列用于存放处理核从该PCIE终端器件的功能模块接收的BD,以及,上述的至少一个PCIE终端器件的代理模块用于向各处理核提供该PCIE终端器件的BD发送队列和BD接收队列的Entry操作、并用于执行对BD发送队列和BD接收队列的指针操作。
请在参见图3的同时再结合图4a,当任一处理核需要向一个PCIE终端器件的功能模块发送报文时,本实施例中用于BD交互的方法包括由多个处理核、以及各PCIE终端器件中的代理模块和功能模块执行的如下步骤:
步骤410,处理核准备待发送报文的发送BD;
步骤411,处理核将待发送报文的发送BD通过PCIE写请求写入PCIE终端器件中的代理模块;
步骤412,PCIE终端器件的代理模块将发送BD写入BD发送队列中的写指针当前位置、并更新BD发送队列的写指针当前位置(每写入一个发送BD将写指针偏移1位);
步骤413,PCIE终端器件的功能模块从BD发送队列中读取发送BD、并通知处理核。
至此,交互一次发送BD的过程结束。
请在参见图3的同时再结合图4b,当任一处理核需要从一个PCIE终端器件的功能模块接收报文时,本实施例中用于BD交互的方法包括由多个处理核、以及各PCIE终端器件中的代理模块和功能模块执行的如下步骤:
步骤420,PCIE终端器件的功能模块针对需要向处理核返回的接收报文向BD接收队列顺序写入接收BD;
步骤421,处理核通过PCIE读请求向PCIE终端器件中的代理模块请求读取接收BD;
步骤422,PCIE终端器件的代理模块从BD接收队列中的读指针当前位置读取BD返回给该处理核、并在读取的BD为非空闲的BD时更新BD接收队列中的读指针当前位置(每读取一个接收BD将读指针偏移1位);
步骤423,处理核向PCIE终端器件的代理模块回写空闲BD;
步骤424,PCIE终端器件的代理模块将处理核回写的空闲BD写入至BD接收队列。
至此,交互一次接收BD的过程结束。
如上可见,由于PCIE终端器件中的BD发送队列和BD接收队列对各处理核均不可见,因而处理核不可能参与BD发送队列和BD接收队列的指针操作,因而能够避免各处理核对指针操作的多对一竞争。实际应用中,各PCIE终端器件的代理模块可以配置有虚拟地址,处理核可依据虚拟地址实现BD向代理模块的写入BD、以及向代理模块发出读取BD的请求。其中,代理模块的虚拟地址优选为PCIE总线地址、而非内存地址。
但是,由于PCIE终端器件中的BD发送队列和BD接收队列对各处理核,会使得处理核无法参与维护BD发送队列和BD接收队列的空满状态,为此,本实施例提供了以下的解决方案。
请参见图5a和图5b,为了维护BD发送队列的空满状态,上述的至少一个PCIE终端器件中设置有对应的原子计数器;并且,为了实现PCIE终端器件的功能模块在读取发送BD之后能够通知相应的处理核,各处理核还分别具有一个对应的发送完成队列。
其中,原子计数器用于表示对应的PCIE终端器件中的BD发送队列的空满状态;每当BD发送队列中被写入一个发送BD,对应的原子计数器就会被当前写入该BD的处理核加1;每当BD发送队列中被读出一个发送BD,对应的原子计数器就会被曾经写入该BD的处理核减1;当PCIE终端器件对应的原子计数器达到表示BD发送队列已满的阈值时,各处理核向该PCIE终端器件的代理模块写入发送BD的操作进入等待状态。而发送完成队列则用于表示对应的处理核所写入的发送BD是否从BD发送队列中被读出。
具体说,当任一处理核需要向一个PCIE终端器件的功能模块发送报文时:
先参见图5a,首先,处理核在准备好待发送报文的发送BD后,会先判断PCIE终端器件对应的原子计数器是否达到阈值,若达到则向该PCIE终端器件的代理模块写入发送BD的操作进入等待,若未达到则向该PCIE终端器件的代理模块写入发送BD;然后,处理核在完成发送BD向该PCIE终端器件的代理模块的写入后,对该PCIE终端器件对应的原子计数器加1;此后,该PCIE终端器件的代理模块将发送BD写入BD发送队列中的写指针当前位置、并将BD发送队列的写指针偏移1位;最后,该PCIE终端器件的功能模块从BD发送队列中读取发送BD;
再参见图5b,在经过图5a所示过程之后,PCIE终端器件的功能模块在从BD发送队列读取一个发送BD后,会向写入该发送BD的处理核所对应的发送完成队列回写发送完成标志(或称为发送完成BD);然后,处理核在对应的发送完成队列被PCIE终端器件的功能模块回写的发送完成标志后,对该PCIE终端器件对应的原子计数器减1。
如此一来,在BD发送队列对处理核不可见的情况下,处理核也可以利用原子计数器来维护BD发送队列的空满状态,从而不需要处理核为此执行指针操作。
实际应用中,原子计数器的初始值可以为0;处理核向PCIE终端器件的代理模块所写入的发送BD中可以带有处理核标识,PCIE终端器件的功能模块依据BD发送队列中的发送BD所带有的处理核标识即可识别写入该发送BD的处理核。
请参见图6a和图6b,为了维护BD接收队列的空满状态,各PCIE终端器件的BD接收队列具有头指针和尾指针。其中,当PCIE终端器件的BD接收队列的读指针经过偏移而与头指针重合时,表示BD接收队列已空,此时代理模块依据读请求只能向处理核返回空闲BD、且无需更新读指针的位置,其中,空闲BD是指有效位被置为无效的BD,而发送BD、接收BD、发送完成BD等均属于有效位被置为有效的BD、或称为有效BD;当PCIE终端器件的BD接收队列的头指针当前位置经过循环移位而与尾指针重合时,表示BD接收队列已满,该PCIE终端器件的功能模块向BD接收队列写入接收BD的操作进入等待状态;其余情况下,代理模依据读请求能够向处理核返回空闲接收BD(BD接收队列为空时)或非空闲的接收BD(BD接收队列非空时)、并在返回接收BD后更新读指针的位置。
具体说,当任一处理核从一个PCIE终端器件的功能模块接收报文时:
先参见图6a,PCIE终端器件的功能模块将接收BD写入至BD接收队列中的头指针所在位置、并将头指针偏移1位;然后,处理核向PCIE终端器件中的代理模块请求读取BD;此后,假设BD接收队列非空,PCIE终端器件的代理模块从BD接收队列中的读指针当前位置读取到非空闲的接收BD并返回给该处理核,并将BD接收队列中的读指针偏移1位;
再参见图6b,在经过图6a所示过程之后,处理核会向PCIE终端器件的代理模块回写空闲BD;然后,PCIE终端器件的代理模块将处理核回写的空闲BD写入至BD接收队列中的尾指针所在位置、并将尾指针当前位置偏移1位。
如此一来,在BD接收队列对处理核不可见的情况下,可以由代理模块和功能模块协同对头指针和尾指针执行指针操作来维护BD接收队列的空满状态,从而不需要处理核为此执行指针操作。
实际应用中,在初始状态下,头指针、尾指针、以及读指针可以位置重合。
此外,本实施例为了确保Entry操作的原子性,进一步提供了以下的优化方式:
处理核以事务包(Transaction Layer Packet,TLP)的形式向PCIE终端器件的代理模块发送PCIE写请求、以实现发送BD的写入。这样,即便多个转发核同时写同一个代理模块的虚拟地址,在PCIE总线上也是多个TLP写请求报文顺序排列的,从而使得多个处理核对同一个代理模块的写入操作是串行的、而非并发。
由于多核CPU的一条指令能够实现64位的读写操作,因此,本实施例优选地设置BD的位宽为64位,以使得一个TLP能够写入一个BD。但如果BD的位宽小于64位、使一个TLP同时写入多个BD,或者,BD的位宽大于64位、使得多个TLP才能够写入一个BD,可以在各PCIE终端器件中设置BD列表;相应地,处理核可以将BD写入至PCIE器件中的BD列表、并按照代理模块的虚拟地址向代理模块写入BD在BD列表中的表项位置。
以上是对本实施例中用于实现BD交互的方法的详细说明。由于该方法能够以计算机程序来实现,因此,本实施例还提供了一种用于实现BD交互的装置,该装置包括上述的多个处理核、以及各PCIE终端器件中的代理模块和功能模块。另外,本实施例还提供了一种电子设备,该电子设备包含有多核处理器和PCIE终端设备、以及上述用于实现BD交互的装置。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种用于实现缓存描述符BD交互的方法,其特征在于,该方法应用于电子设备中,该电子设备包含多核CPU、以及通过PCIE总线与多核CPU相连的终端器件,多核CPU中具有多个处理核,至少一个终端器件具有功能模块、BD发送队列和BD接收队列、以及代理模块,该方法包括由多个处理核、以及代理模块和功能模块执行的如下步骤:
当任一处理核需要向终端器件的功能模块发送报文时,该处理核将报文的BD通过PCIE写请求写入该终端器件中的代理模块,该终端器件的代理模块将BD写入BD发送队列中的写指针当前位置、并更新BD发送队列的写指针当前位置;
当任一处理核需要从终端器件的功能模块接收报文时,该处理核通过PCIE读请求向该终端器件中的代理模块请求读取BD,该终端器件的代理模块从BD接收队列中的读指针当前位置读取BD返回给该处理核、并在读取的BD为非空闲的BD时更新BD接收队列中的读指针当前位置;
以及,终端器件的功能模块顺序读取BD发送队列中的BD、并针对需要向处理核返回的报文向BD接收队列顺序写入BD。
2.根据权利要求1所述的方法,其特征在于,所述的至少一个终端器件设置有对应的计数器,其中,当终端器件对应的计数器达到预定的阈值时,各处理核向该终端器件的代理模块写入BD的操作进入等待状态;并且,各处理核具有一个对应的发送完成队列;以及:
当任一个处理核在完成BD向终端器件的代理模块的写入后,对该终端器件对应的计数器加1;
当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;
当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减1。
3.根据权利要求1所述的方法,其特征在于,所述的至少一个终端器件的BD接收队列具有头指针和尾指针,其中,当终端器件的BD接收队列的头指针经过循环移位而与尾指针重合时,该终端器件的功能模块向BD接收队列写入BD的操作进入等待状态;以及:
当终端器件的功能模块在向BD接收队列的头指针当前位置写入BD后,更新BD接收队列的头指针当前位置;
当任一处理核在从终端器件的代理模块接收到读取自BD接收队列的BD后,向该终端器件的代理模块回写空闲BD;
当终端器件的代理模块接收到处理器回写的空闲BD后,将空闲BD写入至BD接收队列中的尾指针当前位置、并更新尾指针当前位置。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,各终端器件的代理模块配置有虚拟地址,处理核依据虚拟地址实现BD向代理模块的写入、以及向代理模块发出读取BD的请求。
5.根据权利要求4所述的方法,其特征在于,虚拟地址为PCIE总线地址。
6.一种电子设备,其特征在于,该电子设备包含多核CPU、以及通过PCIE总线与多核CPU相连的终端器件,多核CPU中具有多个处理核,至少一个终端器件具有功能模块、BD发送队列和BD接收队列、以及代理模块,其中:
当任一处理核需要向终端器件的功能模块发送报文时,该处理核将报文的BD通过PCIE写请求写入该终端器件中的代理模块,该终端器件的代理模块将BD写入BD发送队列中的写指针当前位置、并更新BD发送队列的写指针当前位置;
当任一处理核需要从终端器件的功能模块接收报文时,该处理核通过PCIE读请求向该终端器件中的代理模块请求读取BD,该终端器件的代理模块从BD接收队列中的读指针当前位置读取BD返回给该处理核、并在读取的BD为非空闲的BD时更新BD接收队列中的读指针当前位置;
以及,终端器件的功能模块顺序读取BD发送队列中的BD、并针对需要向处理核返回的报文向BD接收队列顺序写入BD。
7.根据权利要求6所述的电子设备,其特征在于,所述的至少一个终端器件设置有对应的计数器,其中,当终端器件对应的计数器达到预定的阈值时,各处理核向该终端器件的代理模块写入BD的操作进入等待状态;并且,各处理核具有一个对应的发送完成队列;以及:
当任一个处理核在完成BD向终端器件的代理模块的写入后,对该终端器件对应的计数器加1;
当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;
当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减1。
8.根据权利要求6所述的电子设备,其特征在于,所述的至少一个终端器件的BD接收队列具有头指针和尾指针,其中,当终端器件的BD接收队列的头指针经过循环移位而与尾指针重合时,该终端器件的功能模块向BD接收队列写入BD的操作进入等待状态;以及:
当终端器件的功能模块在向BD接收队列的头指针当前位置写入BD后,更新BD接收队列的头指针当前位置;
当任一处理核在从终端器件的代理模块接收到读取自BD接收队列的BD后,向该终端器件的代理模块回写空闲BD;
当终端器件的代理模块接收到处理器回写的空闲BD后,将空闲BD写入至BD接收队列中的尾指针当前位置、并更新尾指针当前位置。
9.根据权利要求6至8中任意一项所述的电子设备,其特征在于,各终端器件的代理模块配置有虚拟地址,处理核依据虚拟地址实现BD向代理模块的写入、以及向代理模块发出读取BD的请求。
10.根据权利要求9所述的电子设备,其特征在于,虚拟地址为PCIE总线地址。
CN201310113893.6A 2013-04-02 2013-04-02 用于实现缓存描述符交互的方法和电子设备 Active CN103218313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310113893.6A CN103218313B (zh) 2013-04-02 2013-04-02 用于实现缓存描述符交互的方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310113893.6A CN103218313B (zh) 2013-04-02 2013-04-02 用于实现缓存描述符交互的方法和电子设备

Publications (2)

Publication Number Publication Date
CN103218313A true CN103218313A (zh) 2013-07-24
CN103218313B CN103218313B (zh) 2015-12-23

Family

ID=48816127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310113893.6A Active CN103218313B (zh) 2013-04-02 2013-04-02 用于实现缓存描述符交互的方法和电子设备

Country Status (1)

Country Link
CN (1) CN103218313B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546394A (zh) * 2013-10-25 2014-01-29 杭州华三通信技术有限公司 一种通信装置
CN103685063A (zh) * 2013-12-06 2014-03-26 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN103685068A (zh) * 2013-12-06 2014-03-26 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN106997278A (zh) * 2017-03-07 2017-08-01 记忆科技(深圳)有限公司 一种提高固态硬盘中双核间通信效率的方法
CN107153527A (zh) * 2017-05-17 2017-09-12 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
CN111625376A (zh) * 2017-04-01 2020-09-04 北京忆芯科技有限公司 通过代理进行队列通信的方法与消息系统
CN112181887A (zh) * 2019-07-05 2021-01-05 迈普通信技术股份有限公司 数据传输方法及装置
CN112532539A (zh) * 2019-09-18 2021-03-19 无锡江南计算技术研究所 面向大规模并发通信的优化方法
CN112702275A (zh) * 2020-12-29 2021-04-23 迈普通信技术股份有限公司 基于每包转发的方法、装置、网络设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126707A1 (en) * 2006-11-29 2008-05-29 Krishnakanth Sistla Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture
CN101202707A (zh) * 2007-12-03 2008-06-18 杭州华三通信技术有限公司 高速单板传输报文的方法、现场可编程门阵列及高速单板
CN102480426A (zh) * 2010-11-25 2012-05-30 迈普通信技术股份有限公司 基于pcie交换总线的通信方法及一种pcie交换系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126707A1 (en) * 2006-11-29 2008-05-29 Krishnakanth Sistla Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture
CN101202707A (zh) * 2007-12-03 2008-06-18 杭州华三通信技术有限公司 高速单板传输报文的方法、现场可编程门阵列及高速单板
CN102480426A (zh) * 2010-11-25 2012-05-30 迈普通信技术股份有限公司 基于pcie交换总线的通信方法及一种pcie交换系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546394A (zh) * 2013-10-25 2014-01-29 杭州华三通信技术有限公司 一种通信装置
CN103546394B (zh) * 2013-10-25 2017-05-10 新华三技术有限公司 一种通信装置
CN103685063A (zh) * 2013-12-06 2014-03-26 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN103685068A (zh) * 2013-12-06 2014-03-26 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN103685068B (zh) * 2013-12-06 2016-08-17 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN103685063B (zh) * 2013-12-06 2016-08-17 杭州华三通信技术有限公司 接收缓存描述符队列维护方法及设备
CN106997278A (zh) * 2017-03-07 2017-08-01 记忆科技(深圳)有限公司 一种提高固态硬盘中双核间通信效率的方法
CN111625376A (zh) * 2017-04-01 2020-09-04 北京忆芯科技有限公司 通过代理进行队列通信的方法与消息系统
CN111625376B (zh) * 2017-04-01 2023-08-04 北京忆芯科技有限公司 通过代理进行队列通信的方法与消息系统
CN107153527A (zh) * 2017-05-17 2017-09-12 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
CN107153527B (zh) * 2017-05-17 2020-10-13 北京环境特性研究所 一种基于消息队列的并行雷达数据处理方法
CN112181887A (zh) * 2019-07-05 2021-01-05 迈普通信技术股份有限公司 数据传输方法及装置
CN112181887B (zh) * 2019-07-05 2023-05-26 迈普通信技术股份有限公司 数据传输方法及装置
CN112532539A (zh) * 2019-09-18 2021-03-19 无锡江南计算技术研究所 面向大规模并发通信的优化方法
CN112532539B (zh) * 2019-09-18 2023-03-28 无锡江南计算技术研究所 面向大规模并发通信的优化方法
CN112702275A (zh) * 2020-12-29 2021-04-23 迈普通信技术股份有限公司 基于每包转发的方法、装置、网络设备及计算机存储介质

Also Published As

Publication number Publication date
CN103218313B (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
CN103218313A (zh) 用于实现缓存描述符交互的方法和电子设备
CN102077181B (zh) 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
US10521393B2 (en) Remote direct memory access (RDMA) high performance producer-consumer message processing
JP6475625B2 (ja) コア間通信装置及び方法
EP4044042A2 (en) Techniques to support mulitple interconnect protocols for an interconnect
CN114020655A (zh) 一种内存扩展方法、装置、设备及存储介质
US8521930B1 (en) Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment
TWI454938B (zh) Pcie介面卡
CN105378694A (zh) 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统
US9596186B2 (en) Multiple processes sharing a single infiniband connection
US8990451B2 (en) Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller
JP2007079789A (ja) 計算機システム及びイベント処理方法
CN101727414A (zh) 用于在计算机系统中传递中断的技术
WO2017012096A1 (zh) 计算机设备和计算机设备数据读写的方法
CN115934625B (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
JP5904948B2 (ja) システムのいくつかの構成要素のメモリ間の直接データ転送を許可するそのシステム
US8719499B2 (en) Cache-line based notification
CN100587680C (zh) 管理分离总线上总线代理之间的数据流的方法和系统
CN110990116A (zh) 在智能网卡和虚拟机之间传输数据的方法、装置和系统
CN114024874B (zh) 基于rdma的数据传输方法、装置、设备及存储介质
US11281482B2 (en) I/O emulation with abortion in virtualized environments including transfer of portions of non-real time I/O emulation to work threads prior to switching contexts
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
CN114328350A (zh) 一种基于axi总线的通讯方法、装置以及介质
JP2018142084A (ja) 情報処理装置
CN116601616A (zh) 一种数据处理装置、方法及相关设备

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230620

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.