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

文档序号:6401442阅读:94来源:国知局
专利名称:用于实现缓存描述符交互的方法和电子设备的制作方法
技术领域
本发明涉及数据转发技术,特别涉及一种用于实现缓存描述符(BufferDescription, 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来说,若将其中的I个处理核用作轮询核,则会牺牲多核CPU的整体效率的1/60,并且,处理核与轮询核的比例为59:1,轮询核就可能成为多核CPU整体效率的瓶颈。再例如,对于包含有4个处理核的多核CPU来说,若将其中的I个处理核用作轮询核,虽然多核与轮询和的比例降低至3: 1、并能够避免轮询核成为多核CPU整体效率的瓶颈,但这样会牺牲多核CPU的整体效率的1/4,从而大大降低多核CPU的整体效率。可见,现有技术采用自旋锁或将一个处理核专用于轮询的方式均影响多核CPU的整体效率。

发明内容
有鉴于此,本发明提供了一种用于实现BD交互的方法和电子设备。本发明提供的一种用于实现BD交互的方法,该方法应用于电子设备中,该电子设备包含多核CPU、以及通过PCIE总线与多核CPU相连的终端器件,多核CPU中具有多个处理核,至少一个终端器件具有功能模块、BD发送队列和BD接收队列、以及代理模块,该方法包括由多个处理核、以及代理模块和功能模块执行的如下步骤:可选地,所述的至少一个终端器件设置有对应的计数器,其中,当终端器件对应的计数器达到预定的阈值时,各处理核向该终端器件的代理模块写入BD的操作进入等待状态;并且,各处理核具有一个对应的发送完成队列;以及:当任一个处理核在完成BD向终端器件的代理模块的写入后,对该终端器件对应的计数器加I ;当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减I。可选地,所述的至少一个终端器件的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向终端器件的代理模块的写入后,对该终端器件对应的计数器加I ;当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志;当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减I。可选地,所述的至少一个终端器件的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将写指针偏移I位);步骤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将读指针偏移I位);步骤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的处理核加I ;每当BD发送队列中被读出一个发送BD,对应的原子计数器就会被曾经写入该BD的处理核减I ;当PCIE终端器件对应的原子计数器达到表示BD发送队列已满的阈值时,各处理核向该PCIE终端器件的代理模块写入发送BD的操作进入等待状态。而发送完成队列则用于表示对应的处理核所写入的发送BD是否从BD发送队列中被读出。具体说,当任一处理核需要向一个PCIE终端器件的功能模块发送报文时:先参见图5a,首先,处理核在准备好待发送报文的发送BD后,会先判断PCIE终端器件对应的原子计数器是否达到阈值,若达到则向该PCIE终端器件的代理模块写入发送BD的操作进入等待,若未达到则向该PCIE终端器件的代理模块写入发送BD ;然后,处理核在完成发送BD向该PCIE终端器件的代理模块的写入后,对该PCIE终端器件对应的原子计数器加I ;此后,该PCIE终端器件的代理模块将发送BD写入BD发送队列中的写指针当前位置、并将BD发送队列的写指针偏移I位;最后,该PCIE终端器件的功能模块从BD发送队列中读取发送BD ;再参见图5b,在经过图5a所示过程之后,PCIE终端器件的功能模块在从BD发送队列读取一个发送BD后,会向写入该发送BD的处理核所对应的发送完成队列回写发送完成标志(或称为发送完成BD);然后,处理核在对应的发送完成队列被PCIE终端器件的功能模块回写的发送完成标志后,对该PCIE终端器件对应的原子计数器减I。如此一来,在BD发送队列对处理核不可见的情况下,处理核也可以利用原子计数器来维护BD发送队列的空满状态,从而不需要处理核为此执行指针操作。实际应用中,原子计数器的初始值可以为O ;处理核向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接收队列中的头指针所在位置、并将头指针偏移I位;然后,处理核向PCIE终端器件中的代理模块请求读取BD ;此后,假设BD接收队列非空,PCIE终端器件的代理模块从BD接收队列中的读指针当前位置读取到非空闲的接收BD并返回给该处理核,并将BD接收队列中的读指针偏移I位;再参见图6b,在经过图6a所示过程之后,处理核会向PCIE终端器件的代理模块回写空闲BD ;然后,PCIE终端器件的代理模块将处理核回写的空闲BD写入至BD接收队列中的尾指针所在位置、并将尾指针当前位置偏移I位。如此一来,在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交互的装置。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
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向终端器件的代理模块的写入后,对该终端器件对应的计数器加I ; 当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志; 当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减I。
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向终端器件的代理模块的写入后,对该终端器件对应的计数器加I ; 当终端器件的功能模块在从BD发送队列读取一个BD后,向发送该BD的处理核所对应的发送完成队列回写发送完成标志; 当任一个处理核在对应的发送完成队列被终端器件的功能模块回写的发送完成标志后,对该终端器件对应的计数器减I。
8.根据权利要求6所述的电子设备,其特征在于,所述的至少一个终端器件的BD接收队列具有头指针和尾指针,其中,当终端器件的BD接收队列的头指针经过循环移位而与尾指针重合时,该终端 器件的功能模块向BD接收队列写入BD的操作进入等待状态;以及: 当终端器件的功能模块在向BD接收队列的头指针当前位置写入BD后,更新BD接收队列的头指针当前位置; 当任一处理核在从终端器件的代理模块接收到读取自BD接收队列的BD后,向该终端器件的代理模块回写空闲BD; 当终端器件的代理模块接收到处理器回写的空闲BD后,将空闲BD写入至BD接收队列中的尾指针当前位置、并更新尾指针当前位置。
9.根据权利要求6至8中任意一项所述的电子设备,其特征在于,各终端器件的代理模块配置有虚拟地址,处理核依据虚拟地址实现BD向代理模块的写入、以及向代理模块发出读取BD的请求。
10.根据权利要求9所述的电子设备,其特征在于,虚拟地址为PCIE总线地址。
全文摘要
本发明公开了一种用于实现缓存描述符交互的方法和电子设备。本发明在终端器件中增设了代理模块,利用代理模块为各处理核提供BD发送队列和BD接收队列的入口、并利用代理模块对BD发送队列和BD接收队列执行指针操作,因而既能够保证各处理核通过代理模块实现对BD发送队列的写操作和对BD接收队列的读操作,还在能够避免各处理核对指针操作的多对一竞争。而且,本发明不需要在多核CPU中设置自旋锁和轮询核,因而能够避免多核CPU的整体效率降低。
文档编号G06F12/08GK103218313SQ20131011389
公开日2013年7月24日 申请日期2013年4月2日 优先权日2013年4月2日
发明者杨逸 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1