单芯片服务器中的讯流钉扎的制作方法

文档序号:14422041阅读:136来源:国知局
本揭露关于单芯片服务器(aserveronachip)中的讯流钉扎(flowpinning)。
背景技术
::在运算网络中,以太网络接口(ethernetinterface)可自许多不同以太网络连接或讯流接收封包。在一些系统中,这些封包的讯流因为是通过专用处理器来接收,而遭受串行式处理。在其它传统系统中,这些封包的讯流是通过使该等封包及/或讯流进入特定队列(queue)的外围网络接口卡(networkinterfacecard)来处理,该等特定队列与多核心处理器中的给定cpu(中央处理单元)相关联。然而,网络接口卡就成本、电力及潜时而言都很昂贵,而且还在系统中占用大量空间。上述说明仅就单芯片系统(asystemonachip)中进行讯流钉扎提供目前技术的内容相关概述,并非穷举。技术实现要素:在一例示具体实施例中,单芯片服务器包含第一数据结构,其通过处理器来执行,经组配用于自封包撷取元数据字符串(metadatastring)。该单芯片服务器包括第二数据结构,其通过该处理器来执行,经组配用于基于该元数据字符串使该封包与结果数据库相关联。该单芯片服务器包括以太网络直接存储器存取引擎,其经组配用于基于该结果数据库将该封包指定予队列,其中,该队列与多处理器的相应核心相关联。在另一例示具体实施例中,用于将封包串流(packetstream)讯流钉扎至多处理器的核心的计算机实施方法包含通过执行第一数据结构的处理器,自封包撷取元数据字符串。本方法包含通过执行第二数据结构的该处理器,基于该元数据字符串而使该封包与相应结果数据库相关联。本方法包括通过以太网络直接存储器存取引擎,基于该结果数据库将该封包指定予队列,其中,该队列与该多处理器的相应核心相关联。在另一例示具体实施例中,单芯片服务器包含用于自封包撷取元数据字符串的手段、以及用于基于该元数据字符串而使该封包与多处理器的相应核心相关联的手段。该单芯片服务器可包括用于将该封包指定予与该处理器相关联的队列的手段。附图说明图1为方块图,其绘示进行讯流钉扎的系统的一具体实施例。图2为方块图,其绘示进行讯流钉扎的系统的一具体实施例。图3为方块图,其绘示自封包标头进行元数据撷取的系统的一具体实施例。图4为方块图,其绘示进行封包进入队列的系统的一具体实施例。图5为方块图,其绘示进行讯流钉扎的系统的一具体实施例。图6绘示用于讯流钉扎的方法的一具体实施例的流程图。图7绘示用于自封包数据撷取元数据字符串的手段的一具体实施例的流程图。图8绘示用于基于元数据字符串而使封包与处理器相关联的手段的一具体实施例的流程图。图9绘示用于将封包指定予与处理器相关联的队列的手段的一具体实施例的流程图。图10绘示电子运算环境的方块图。图11绘示数据通讯网络的方块图。具体实施方式各项具体实施例系就一种进行讯流钉扎的单芯片系统或单芯片服务器而提供,于此,使封包或封包串流进入特定队列,其中各队列与多处理器/多核心系统或单芯片服务器中的相应核心相关联。凭借指定予特定处理器的各封包串流、或讯流,该单芯片服务器可从来自相同单一以太网络接口的多条串流平行处理及摄取出自多个队列的封包。该等队列各可对其指定的处理器发布中断,容许该等处理器各者同时自其相应队列接收封包。因此,封包处理速度通过就不同串流平行接收及处理封包而提升。按照这种使各队列与相应核心相关联的方式进行讯流钉扎,容许提升具有多条串流的内送讯务的流通量。高速缓存(cache)与cpu使用率亦得以提升,因为各核心都有用到,而且各核心可存取其自有高速缓存存储器。这容许降低硬件成本,同时有效率地提升系统流通量。图1根据本文所述的具体实施例,绘示进行讯流钉扎的系统100。系统100包括内含以太网络接口104的单芯片系统及/或单芯片服务器(soc)102。以太网络接口104透过网络接收内送封包。该等封包可形成与该网络上一或多个其它运算装置相关联的一或多条数据的串流或讯流。在一些具体实施例中,可自单一的运算装置接收多条封包的讯流,而在其它具体实施例中,可自对应的运算装置接收多条封包的讯流。运算装置包括但不限于自路由器(router)、交换器(switch)、直接来自其它soc接收封包,并且该等封包可经由局部网络、内部网络或因特网来接收。在一些具体实施例中,soc102可包括多个以太网络接口。以太网络接口104可将封包串流及/或讯流传递至讯流钉扎组件106。基于与该等封包相关联的第3层及/或第4层标头数据及/或元数据信息,讯流钉扎组件106可使封包的讯流与系统cpu110的一或多个核心相关联。可将各讯流指定予系统cpu110的相应核心,或替代地,系统cpu110的各核心可指定有一个或一组在以太网络接口104处收到的封包串流。一旦将封包串流/讯流指定予系统cpu110的相应核心,讯流钉扎组件106便可将封包或封包标头信息传递至队列管理器118,其使该封包及/或封包标头信息进入各与系统cpu110的诸核心中的一个相应者相关联的队列112、114、116及118。在一具体实施例中,封包储存于存储器中(图4及图5中更加详细展示),而与封包相关联的描述符讯息(descriptormessage)则进入队列112、114、116及118。该等描述符讯息在系统cpu110自队列管理器108接收其中断时,提供与存储器中所储存封包的存储器地址有关的信息。尽管图1中所示的具体实施例在cpu110中绘示4个核心,在其它具体实施例中,其它核心数目是有可能的,而且队列数目可对应于核心数目。图2绘示进行讯流钉扎的系统200的一具体实施例的方块图。系统200包括可经组配用于基于与封包相关联的元数据而使封包及/或封包串流与相应核心相关联的讯流钉扎组件202(例如讯流钉扎组件106)。讯流钉扎组件202可包括第一数据结构206,其在一具体实施例中可以是patricia树。patricia树206可以是空间优化的树状数据结构,其中仅具有一个子代(child)的各节点与其子代合并。patricia树大体上可用于建构具有索引键(key)的相联阵列(array),可将该等索引键表示为字符串(string)。在本揭露的一具体实施例中,patricia树206可经组配用于自封包或封包标头撷取元数据字符串。patricia树206所撷取的元数据字符串可以是包括来源因特网协议地址、目的地因特网协议地址、来源端口及目的端口的4元组(tuple)字符串。patricia树206可用其需撷取的封包数据来预编程,并且在其它具体实施例中,可用其它值来撷取元数据字符串。在一具体实施例中,该元数据字符串可以是12字节(byte)数据字符串,但其它元数据字符串的大小是有可能的,其中该等元数据字符串的大小可取决于所撷取的信息。在一具体实施例中,avl搜索树204可用目前及其它所有支持会话(supportingsession)来预编程。在一具体实施例中,patricia树206及讯流钉扎组件202独自接收封包标头,并且在avl搜索树204判定要将封包复制到哪些缓冲池的前先保持该等封包。在其它具体实施例中,讯流钉扎组件202接收封包,并且在板载(onboard)以太网络直接存储器存取引擎上,基于avl搜索树204判定的结果,将该等封包复制到存储器。图3绘示自封包标头进行元数据撷取的系统300的一具体实施例。系统300就参照图2所述的元数据字符串撷取提供补充细节。patricia树304接收封包标头302。封包标头可含有与封包的起源处、置放标头处、及传送模式有关的信息。基于要撷取的数据类型的预编程判定,patricia树304可接着撷取、及形成由4个值(在封包标头306中表示成[w,x,y,z])构成的元数据字符串。该等值[w,x,y,z]可对应于来源ip地址、目的ip地址、来源端口、及目的端口。在其它具体实施例中,该等值可对应于与该等封包有关的其它信息。另外,在其它具体实施例中,该元数据字符串可包括少于4个值、或大于4个值。图4绘示进行封包进入队列的系统400的一具体实施例。系统400包括经由soc402的以太网络接口接收封包404的soc402。封包404包括具有元数据字符串[w,x,y,z]的封包标头406,patricia树(例如patricia树206与304)己撷取该元数据字符串。avl搜索树410使用该patricia树来撷取该元数据字符串,以就封包标头406与封包404判定相关联的结果数据库414。该等相关联的结果数据库包括诸如以下信息:要将封包复制到存储器416中的哪个自由缓冲池(418、420、422及/或422)、以及用以向cpu告知新封包的讯息要进入哪个队列。avl搜索树410因而用结果数据库414使来源地址及目的地地址与来源端口及目的端口产生相关性,以便判定封包404应该与cpu的哪个核心相关联及/或应该将该封包指定予哪个核心。在一具体实施例中,avl搜索树410可用目前及其它所有支持会话来预编程。一旦avl搜索树410判定封包404及封包标头406是与哪个结果数据库414相关联,便可将以太网络dma引擎412组配成用来将封包404指定予及/或复制到与封包404相关联的缓冲池418、410、422或424。各缓冲池418、410、422及424可与系统cpu的一或多个相应核心相关联。亦可将以太网络dma引擎412组配成用来基于结果数据库而将封包指定予队列,其中该队列与cpu的相应核心相关联。一旦指定,以太网络dma引擎412便使描述符讯息进入所指定的队列。图5绘示进行讯流钉扎的系统500的一具体实施例。系统500包括经由soc402的以太网络接口接收封包的soc502。该封包可包括具有元数据字符串[w,x,y,z]的封包标头,讯流钉扎组件506(例如patricia树206或304及avl搜索树204或410)可撷取该元数据字符串,并且将该元数据字符串用于使该封包与存储器504中的结果数据库及缓冲池相关联。soc502上的以太网络dma引擎(图未示)可接着将该封包复制到存储器504中该相关联的缓冲池,同时还将描述符讯息发送至队列管理器508。可使该描述符讯息进入队列512、514、516或518其中一者,该等队列对应于系统cpu510的核心,已将该封包指定予该核心。队列512、514、516及518各可组配成用来对系统cpu510的其相应核心发布唯一中断。一旦中断,该描述符讯息便提供与该封包的存在性、及其位于存储器504中何处有关的细节。soc502及其组件能够平行接收多个封包。当同时收到不同讯流时,使诸描述符讯息平行进入队列512、514、516及518,从而系统cpu510的各核心平行接收其相关联的封包串流。这导致不需要使用全局锁定(globallocking)也能防止多个核心因为有多个队列而读取单一队列,各队列专用于系统cpu510的各处理器。图6至图9绘示涉及前述系统的程序。图6至图9中的程序举例而言,可分别通过图1至图5中所示的系统100、200、300、400及500来实施。尽管是为了简单阐释的目的而以一连串程序块展示并说明方法,仍要了解的是,本案的专利目标不受限于程序块的顺序,因为有一些程序块可按照不同顺序出现、及/或与其它在本文中所绘示并说明的程序块并行出现。此外,并非需要所有绘示的程序块才可实施下文中所述的方法。图6绘示一种计算机实施方法的一具体实施例的流程图,其用于对多处理器的核心进行封包串流的讯流钉扎。方法600可始于602,于此,可通过执行第一数据结构的第一处理器进行自封包撷取元数据字符串。第一数据结构可以是patricia树(例如patricia树206或304)。patricia树可以是空间优化的树数据结构,其中仅具有一个子代的各节点与其子代合并。patricia树大体上可用于建构具有索引键的相联阵列,可将该等索引键表示为字符串。在一具体实施例中,patricia树可经组配用于自封包或封包标头撷取元数据字符串。patricia树所撷取的元数据字符串可以是包括来源因特网协议地址、目的地因特网协议地址、来源端口及目的端口的4元组字符串。patricia树可用其需撷取的封包数据来预编程,并且在其它具体实施例中,可用其它值来撷取元数据字符串。于604,可通过执行第二数据结构的处理器使封包与相应结果数据库相关联,其中该相关联是基于元数据字符串。第二数据结构可以是avl搜索树(例如avl搜索树204或410)。avl搜索树为第二数据结构,其接着使用该patricia树来撷取该元数据字符串,以就各封包与/封包标头判定相关联的结果数据库。该等相关联的结果数据库包括诸如以下信息:要将封包复制到存储器中的哪个自由缓冲池、以及用以向cpu告知新封包的讯息要进入哪个队列。avl搜索树因而用结果数据库使来源地址及目的地地址与来源端口及目的端口产生相关性,以便判定封包应该与哪个cpu相关联及/或应该将该封包指定予哪个cpu。在一具体实施例中,avl搜索树基于以元数据字符串标引(indexing)查询表(lookuptable)而使封包与相关联的结果数据库相关联。于606,可基于结果数据库,通过以太网络dma引擎(例如以太网络dma引擎412)将封包指定予队列,其中该队列与多处理器的相应核心相关联。以太网络dma引擎可将封包复制到通过结果数据库所判定的自由缓冲池,并且就cpu使描述符讯息进入队列。该描述符讯息提供与该封包的存在性、及其位于存储器中何处有关的细节。图7绘示用于自封包数据撷取元数据字符串的手段的一具体实施例的流程图。于702,自以太网络接口(例如以太网络接口104)的mac模块接收封包。以太网络接口具有一或多个与其附接的以太网络线,并且在一具体实施例中,亦可耦接至无线(例如wifi802.11a/b/g/n/ac)配接器。以太网络接口可透过网络接收内送封包。该等封包可形成与该网络上一或多个其它运算装置相关联的一或多条数据的串流或讯流。在一些具体实施例中,可自单一的运算装置接收多条封包的讯流,而在其它具体实施例中,可自对应的运算装置接收多条封包的讯流。运算装置可包括自路由器、交换器、直接来自其它soc其中的一或多者接收封包,并且该等封包可经由局部网络、内部网络或因特网来接收。于704,可将该封包的标头馈送到patricia树内。于706,基于该patricia树的预定编程而自该封包的该标头撷取元数据字符串。patricia树所撷取的元数据字符串可以是包括来源因特网协议地址、目的地因特网协议地址、来源端口及目的端口的4元组字符串。图8绘示用于基于元数据字符串而使封包与相应处理器相关联的手段的一具体实施例的流程图。于802,接收载明来源ip、目的ip、来源端口、及目的端口的元数据字符串。此信息可用于判定封包源自于何处、属意的接受者、以及与封包内容本质有关的某些内容(基于端口)。于804,基于该元数据字符串而查询相关联结果数据库。该查询可通过avl搜索树数据结构来进行。在一具体实施例中,avl搜索树查询每个讯流的一个单项目内容,并且可用所有支持会话来编程。于806,可基于该相关联结果表来判定相关联处理器。avl搜索树可基于以元数据字符串标引查询表而使封包与该者相关联。图9绘示用于将封包指定予与处理器相关联的队列的手段的一具体实施例的流程图。于902,基于该元数据字符串而判定相关联结果数据库。avl搜索树可基于以元数据字符串标引查询表而使封包与该者相关联。于904,可基于该元数据字符串而判定描述符队列,其中该描述符队列与处理器相关联。通过使该元数据字符串与该相关联结果数据库产生相关性,可判定封包所属、或应该接受指定的处理器。由于各队列与相应处理器相关联,可将封包递送至合适的描述符队列。于906,将讯息发送至指出封包已抵达的该描述符队列。该讯息可通过以太网络dma引擎来发送,并且可指出封包的位置、以及已将该封包储存于哪个缓冲池。有帮助的是,本文所述的技术可应用于希望有助于执行讯流钉扎的任何装置。因此,所有种类的手持式、可携式及其它运算装置及运算物件都是为了搭配各项非限制性具体实施例使用而列入考虑范围内。图9中下文所述的通用远程计算机从而只是一项实施例,并且所揭示的专利目标可利用具有网络/总线可交互运作性及互动的任何客户端(client)来实施。因此,所揭示的专利目标可在网络链接托管服务(networkedhostedservice)环境中实施,该环境中牵连非常少量或极少客户端资源,例如,在网络链接环境中,客户端装置仅作用为连至网络/总线的接口,诸如置放于电器中的物件。图10绘示运算系统环境1000的一实施例,可于其中实施所揭示专利目标的态样,但运算系统环境1000只是装置用运算环境的一项实施例,而且并非任何属意的限制。此外,不应该将运算环境1000诠释为具有与例示性操作环境1000中所示诸组件的任一者或组合有关的任何相依性或要求。图10绘示用于实施所揭示专利目标的一例示性装置,其包括形式为计算机1010的通用运算装置。计算机1010的组件可包括处理单元1020、系统存储器1030、以及将包括该系统存储器在内的各种系统组件耦接至处理单元1020的系统总线1021中的任一者。计算机1010一般包括可用于储存所欲信息、及可通过计算机1010来存取的各种计算机可读媒体。计算机1010可使用连至诸如远程计算机1070等一或多个其它远程计算机的逻辑连接而在网络链接或分布式环境中操作,该远程计算机可进而具有与装置1010不同的媒体功能。远程计算机1070可以是个人计算机、服务器、路由器、网络pc、对等装置(peerdevice)、个人数字助理(pda)、移动电话、手持式运算装置、投影显示设备、观视(viewing)装置、或其它常见网络节点、或任何其它远程媒体消耗或传输装置,并且可包括相对于计算机1010的上述组件的任一者或全部。图10中所示的逻辑连接包括网络1071,诸如局域网络(lan)或广域网(wan),但亦可包括其它有线或无线的网络/总线。此类网络链接环境为居家、办公室、企业计算机网络、内部网络及因特网中的常见的物。图11提供例示性网络链接或分布式计算环境的示意图。各运算物件1110、1112等、及运算物件或装置1120、1122、1124、1126、1128等可直接或间接地通过通讯网络1142与一或多个其它运算物件1110、1112等、及运算物件或装置1120、1122、1124、1126、1128等进行通讯。举另一实施例来说,架构可包括下列的配置:电子硬件(例如:并联或串联晶体管)、处理指令及处理器,该处理器以适用于电子硬件配置的方式实施处理指令。可使用一般制造、编程或工程技术将所揭示的专利目标实施为方法、设备、或制品,用以产生硬件、固件、软件、或以上的任何适当组合以控制用以实施所揭示专利目标的电子装置。另外,媒体可包括非暂存媒体、或传送媒体。在一项实施例中,非暂存媒体可包括计算机可读硬件媒体。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1