用于支持网络环境中高效的分组处理模型和用于分组处理的优化的缓冲区利用的系统和方法

文档序号:9925291阅读:369来源:国知局
用于支持网络环境中高效的分组处理模型和用于分组处理的优化的缓冲区利用的系统和方法
【专利说明】用于支持网络环境中高效的分组处理模型和用于分组处理的优化的缓冲区利用的系统和方法
[0001 ]版权声明:
[0002]本专利文档公开内容的一部分包含受版权保护的材料。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
[0003]本发明一般而言涉及计算机系统,并且具体而言,涉及用于中间件和应用执行的工程系统。
【背景技术】
[0004]随着引入更大的云计算体系架构,与传统的网络和存储相关联的性能和管理瓶颈已变成重要的问题。工程系统,诸如Oracle工程系统,可以提供卓越的处理速度、明显更快的部署、用于深入分析的即时视觉效果、以及可管理的大数据能力。这是本发明的实施例旨在解决的大致领域。

【发明内容】

[0005]本文所描述的是能够支持网络环境中高效的分组处理的系统和方法。该系统可以包括线程调度引擎,其操作来向多个软件线程中的每个软件线程分配线程密钥。此外,该系统可以包括可用来处理网络环境中的分组的直接存储器存取(DMA)资源池。此外,每个所述软件线程操作来通过呈现所分配的线程密钥请求对DMA资源池中的DMA资源的访问,并且单个软件线程被允许利用同一线程密钥访问多个DMA资源。
[0006]本文所描述的是能够支持网络环境中高效的分组处理的系统和方法。该系统可以包括直接存储器存取(DMA)资源池,其包括一个或多个DMA资源。此外,该系统可以使用存储器中的多个分组缓冲区,其中每个所述DMA资源可以指向存储器中的分组缓冲区链。这里,分组缓冲区链可以基于链表数据结构和/或线性数组数据结构中的任一种来实现。此外,每个所述DMA资源允许分组处理线程利用预先分配的线程密钥访问分组缓冲区链。
【附图说明】
[0007]图1示出了根据本发明的实施例的、支持网络环境中的高性能联网设备的示图。
[0008]图2示出了根据本发明的实施例的、支持联网设备中的高效分组处理模型的示图。
[0009]图3示出了根据本发明的实施例的、支持联网设备中的分组处理模型的示图。
[0010]图4图示了根据本发明的实施例的、用于支持网络环境中的高效分组处理的示例性流程图。
[0011]图5示出了根据本发明的实施例的、支持联网设备中分组处理的高效缓冲区利用的示图。
[0012]图6示出了根据本发明的实施例的、在联网设备中利用缓冲区链用于分组处理的示图。
[0013]图7示出了根据本发明的实施例的、在联网设备中利用一个或多个缓冲区链表用于分组处理的示图。
[0014]图8示出了根据本发明的实施例的、在联网设备中利用一个或多个线性数组用于支持分组处理的示图。
[0015]图9示出了根据本发明的实施例的、在联网设备中利用链表和线性数组的混合来支持灵活的分组处理的示图。
[0016]图10图示了根据本发明的实施例的、用于支持联网设备中分组处理的高效缓冲区利用的示例性流程图。
【具体实施方式】
[0017]本发明是作为例子而不是作为限制在附图中说明的,并且在附图中,相同的标号指示相似的元件。应当指出,在本公开内容中对“一个”或“一种”或“一些”实施例的引用不一定指同一实施例,并且这种引用意味着至少一个。
[0018]如以下本发明的描述使用无限带(InfiniBand)(IB)网络交换机作为用于高性能联网设备的例子。对本领域技术人员来说,将很显然,可以使用其它类型的高性能联网设备,而没有限制。
[0019]本文所描述的是能够支持网络环境中的多线程直接存储器存取(DMA)处理的系统和方法。根据本发明的实施例,该系统使得DMA处理是灵活的并且占用低的存储器空间。
[0020]尚性能联网设备
[0021]图1示出了根据本发明的实施例的、支持网络环境中的高性能联网设备的示图。如在图1中所示,高性能联网设备101,诸如网络交换机,可以在网络架构102中使用来引导网络环境100中的分组流。
[0022]根据本发明的实施例,可以在联网设备101中使用嵌入式处理器,例如DMA引擎110,用于处理分组,诸如分组121-124(例如,包括控制分组和数据分组两者)。这里,这些分组121-124的发送和接收可以在联网设备101的网络端口 111-112处发生。
[0023 ]如在图1中所示,联网设备1I可以支持虚拟化架构。系统允许虚拟化应用108在利用一个或多个主机计算机103-104支持的一个或多个虚拟机(VM) 105-107上运行。
[0024]此外,当联网设备101支持虚拟化架构时,用于处理控制分组121-124的吞吐量要求可根据不同虚拟化应用108的要求相应地变化。如在图1中所示,网络架构102可以使用联网设备101来引导来自各个主机103-104/VM 105-107的多个分组流。
[0025]为了支持虚拟化应用108,来自各个VM 105-107的这些不同的控制分组流可以被映射到联网设备101中的硬件资源用于分组处理。根据本发明的实施例,嵌入式处理器,诸如DMA引擎110,可以执行不同类型的分组处理,并且可以运行大量的软件线程(或工作队列)。
[0026]与在传统的网络接口卡(NIC)上运行的、可具有实质性CI3U能力和系统存储器的DMA引擎不同,嵌入式系统可能具有有限的CPU能力和系统存储器。因此,将软件线程映射到嵌入式系统中的硬件资源会引起显著的软件性能折扣。例如,这些性能折扣会以软件线程锁定开销、分组缓冲区管理、以及其它的形式出现,这会进一步减少可用的(PU能力。
[0027]根据本发明的实施例,系统可以提供用于支持网络环境100中的高效分组处理模型的框架。这个框架可以将大量的软件线程映射到一组有限的硬件DMA处理线程,而无需锁定和线程竞争。此外,该系统可以优化联网设备101中分组处理的缓冲区利用。
[0028]分组处理模型
[0029]图2示出了根据本发明的实施例的、支持联网设备中的高效分组处理的示图。如在图2中所示,硬件可以提供空闲DMA资源池210,其包含一个或多个DMA资源211 -213。
[0030]根据本发明的实施例,DMA资源211-213可以表示DMA描述符、缓冲区管理和用于数据移动的DMA引擎。例如,DMA资源211-213可以绑定到表示其上可以发生分组传输的物理介质的一个或多个DMA引擎220。
[0031]如在图2中所示,系统可以提供高效的分组处理模型200,其可以将大量的软件线程202映射到一组有限的硬件DMA处理线程201。根据需要,DMA资源211-213可以按需分配给各种软件线程221-229。此外,DMA资源211-213可以动态地被软件线程221-229放弃。
[0032]例如,DMA资源211-213可以根据每个DMA引擎可以维持的数据速率来分配。这里,DMA资源211-213的分配可以不依赖于在给定DMA引擎上工作的软件线程的数量。这是因为流量处理可以在多个软件线程当中分散,并且每个这些软件线程可以只在工作处理时间期间是活动的。
[0033]图3示出了根据本发明的实施例的、支持联网设备中的高效分组处理模型的示图。如在图3中所示,可以使用线程调度引擎,诸如线程调度器310,将不同的线程密钥(例如,keyO 311至key9 319)分配给联网设备300中的每个软件线程301-309。这里,线程调度器310可以基于标准的实时0/S或定制的0/S来构建。
[0034]根据本发明的实施例,当软件线程需要执行网络数据传输时,软件线程可以通过向DMA资源呈现分配的线程密钥来请求对DMA资源的访问。如在图3中所示,每个软件线程301-309可以向用来为不同的软件线程301-309分配DMA资源的资源管理器330呈现线程密钥。
[0035]例如,具有线程ID ThidO的软件线程301可以使用分配的线程密钥,keyO 311,来从DMA资源池320中分配DMA资源。此外,具有线程ID Thidl的软件线程302可以使用分配的线程密钥keyl 312,来从DMA资源池320中分配DMA资源。同样,具有线程ID Thid9的软件线程309可以使用分配的线程密钥,key9 319,来从DMA资源池320中分配DMA资源。
[0036]如果在DMA资源池320中的任何DMA资源是空闲的,则可用的DMA资源可以分配给做出请求的软件线程。例如,分配的DMA资源可以被映射到与做出请求的软件线程相关联的分配的线程密钥。另一方面,如果DMA资源已经被分配给另一个软件线程,则可以防止(或拒绝)做出请求的软件线程访问该DMA资源。此外,系统可以为做出请求的软件线程设置适当的状态。此外,如果所有的DMA资源都在使用,则做出请求的软件线程可能必须等待,直到DMA资源池320中的某个DMA资源空闲。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1