网络分组接收管理方法与具有网络分组接收管理功能的网络控制电路的制作方法

文档序号:7708637阅读:107来源:国知局
专利名称:网络分组接收管理方法与具有网络分组接收管理功能的网络控制电路的制作方法
技术领域
本发明是关于一种网络分组接收管理方法以及其相关装置,尤指一种基于数据阵 列结构的网络分组接收管理方法以及其相关装置。
背景技术
网络控制芯片(Network Interface Controller, NIC)是用于在一个电子装置 与一网络连接时,提供一个可识别的地址并担任两者之间的沟通接口,在该电子装置成功 由该网络接收一网络分组后,该网络控制芯片会将该网络分组上传至该电子装置的一处理 单元并接收由该处理单元回传的一网络分组。现今网络控制芯片所采用的数据结构,一般 而言以串行(Iinked-Iist)数据结构或是阵列(array)数据结构居多,串行数据结构是在 接收到的一网络分组上注明该网络分组前一个、后一个或是前后一个网络分组的地址,如 此一来,当该处理单元回传的顺序与该网络控制芯片上传的顺序不同时,仍可以轻易找出 数据的排列顺序,然而,串行数据结构缺点在于需要较多的系统资源来处理并储存用来注 明前后网络分组的地址,而阵列数据结构则使用了较单纯的结构,仅需要少许的储存空间 以及系统资源,但其缺点在于当该处理单元回传的顺序与该网络控制芯片上传的顺序不同 时,会面临失序(out of order)的问题而造成接口使用效率的下降。该参照图1,图1为先前技术中基于阵列数据结构的网络分组接收管理方法的操 作示意图。一阵列Al具有四个数据区块DBl DB4,分别由四个阵列分组描述符Dal Da4 所标示,当该网络控制芯片经一网络成功接收网络分组后,会将网络分组依序一个一个地 存入阵列Al,当最后一个阵列分组描述符Da4所标示的数据区块DB4也存入网络分组,则从 头再开始使用阵列分组描述符Dal所标示的数据区块DBl来储存网络分组。当阵列Al存 满网络分组Pal Pa4且依序上传给至少一处理器105之后,处理完毕的网络分组Pal ’ Pa4’可能不会依序回传。举例来说,处理完毕的网络分组以?31’133’、?34’、?32,的顺序 回传给该网络控制芯片,网络分组Pal’会顺利存放在阵列分组描述符Dal所标示的数据区 块DB1,但由于阵列分组描述符Da2所标示的数据区块DB2是用来储存网络分组Pa2’,即使 处理完毕的网络分组Pa3’和Pa4’已储存于一缓冲空间110,仍需要等处理完毕的网络分组 Pa2'成功接收储存后,才能使用阵列分组描述符Da3与Da4所分别标示的数据区块DB3与 DB4来储存网络分组Pa3’与Pa4’。在这个例子中,未依序回传的网络分组Pa2’会导致阵 列分组描述符Da2在接收机制中形成一个泡泡(bubble),因而降低整体的接收效率。

发明内容
本发明的目的之一是提供一种基于阵列数据结构的网络分组接收管理方法以及 其相关的网络控制电路,用以克服分组失序的问题并简化硬件接口,如此一来,便可提高系 统效率并减少硬件成本。依据本发明的一方面,其提供了一种网络分组接收管理方法。该网络分组接收管理方法包含有以下步骤提供一缓冲单元,其至少包含有具有一第一分组个数的多个数据 区块与具有一第二分组个数的多个数据区块,其中具有该第一分组个数的该多个数据区块 是用来依据一第一阵列数据结构(Array Data Structure)而分别储存多个第一网络分组, 该第一阵列数据结构包含有对应该第一分组个数的多个第一分组描述符(descriptor),具 有该第一分组个数的该多个数据区块是分别对应至该多个第一分组描述符,以及具有该第 二分组个数的该多个数据区块并未对应至任何分组描述符;以及当该缓冲单元内有对应至 一第一分组描述符的一第一数据区块成功接收一第一网络分组时,将对应该第一数据区块 的该第一分组描述符改为指定至该缓冲单元内未对应至任何分组描述符的一第二数据区 块。依据本发明的另一方面,其提供了一种具有网络分组接收管理功能的网络控制电 路。该网络控制电路包含有一缓冲单元以及一处理单元。该缓冲单元至少包含有具有一第 一分组个数的多个数据区块与具有一第二分组个数的多个数据区块,其中具有该第一分组 个数的该多个数据区块是用来依据一第一阵列数据结构(Array Data Structure)而分别 储存多个第一网络分组,该第一阵列数据结构包含有对应该第一分组个数的多个第一分组 描述符(descriptor),具有该第一分组个数的该多个数据区块是分别对应至该多个第一分 组描述符,以及具有该第二分组个数的该多个数据区块并未对应至任何分组描述符。该处 理单元耦接于该缓冲单元,用以于该缓冲单元内有对应至一第一分组描述符的一第一数据 区块成功接收一第一网络分组时,将对应该第一数据区块的该第一分组描述符改为指定至 该缓冲单元内未对应至任何分组描述符的一第二数据区块。


图1为先前技术中基于阵列数据结构的网络分组接收管理方法的操作示意图。图2为本发明网络控制电路的一实施例的示意图。图3为网络控制电路中的处理单元会将阵列分组描述符由一数据区块改为标示 一空闲数据区块的操作示意图。图4为本发明网络控制电路的另一实施例的示意图。
具体实施例方式请参照图2,图2为本发明网络控制电路的一实施例的示意图。于本实施例中,网 络控制电路200与一网络230以及一终端单元(例如一处理器)250连接,网络控制电路 200包含有(但不限于)一缓冲单元210以及一处理单元220。缓冲单元210以及处理单元 220的功能与运作可简要地概述如下。缓冲单元210至少包含有具有一第一分组个数的多 个数据区块与具有一第二分组个数的多个数据区块,其中具有该第一分组个数的该多个数 据区块是用来依据一第一阵列数据结构而分别储存多个第一网络分组,该第一阵列数据结 构包含有对应该第一分组个数的多个第一分组描述符,具有该第一分组个数的该多个数据 区块是分别对应至该多个第一分组描述符,以及具有该第二分组个数的该多个数据区块并 未对应至任何分组描述符。此外,处理单元220耦接于缓冲单元210,用以于缓冲单元210 内有对应至一第一分组描述符的一第一数据区块成功接收一第一网络分组时,将对应该第 一数据区块的该第一分组描述符改为指定至缓冲单元210内未对应至任何分组描述符的一第二数据区块。为了进一步说明本发明的网络分组接收管理方法,请配合以下说明继续参照图2。 缓冲单元210内具有一第一阵列Bl以阵列数据结构接收储存数据,在本实施例中,第一阵 列Bl具有四个数据区块DB1_1 DB1_4,分别由四个阵列分组描述符Dbl Db4所标示,当 网络控制电路200(例如一网络控制芯片)通过网络230成功接收网络分组后,会将网络 分组依序一个一个地存入第一阵列Bl内的数据区块DB1_1 DB1_4(亦即上述的具有第一 分组个数的多个数据区块),当最后一个阵列分组描述符Db4所标示的数据区块也存入网 络分组后,则从头再开始使用阵列分组描述符Dbl所标示的数据区块来储存网络分组,如 图所示,数据区块DB1_1 DB1_4此时分别储存有网络分组Pbl Pb4。缓冲单元210在除 了阵列分组描述符Dbl Db4所标示的数据区块DB1_1 DB1_4外,另分配四个未对应任 何阵列分组描述符的空闲数据区块DB2_1 DB2_4(亦即上述的具有第二分组个数的多个 数据区块)。当第一阵列Bl存满网络分组Pbl Pb4且依序上传给终端单元250前,处理单元 220会将阵列分组描述符Dbl Db4依序标示到四个未对应任何阵列分组描述符的空闲数 据区块DB2_1 DB2_4。举例来说,当网络分组Pbl开始被网络控制电路200上传前,网络 控制电路200中的处理单元220会将阵列分组描述符Dbl改为标示空闲数据区块DB2_1 DB2_4的其中之一,而在网络分组Pbl成功上传后,原先由阵列分组描述符Dbl标示且存有 网络分组Pbl的数据区块亦成为一个空闲数据区块,上述操作请参阅图3,原本的阵列数据 结构是由数据区块DB1_1 DB1_4所构成,而当网络分组Pbl开始被上传前,阵列分组描述 符Dbl由标示数据区块DB1_1改为标示数据区块DB2_1,因此,原本空闲的数据区块DB2_1 便具有阵列分组描述符Dbl而成为第一阵列Bl的一部份,而数据区块DB1_1仅储存待上传 的网络分组Pbl,而当数据区块DB1_1中的网络分组Pbl成功上传之后,数据区块DB1_1便 成为一个空闲的数据区块,明显地,空闲数据区块的个数最后仍维持为4,以及对应阵列数 据结构(阵列分组描述符Dbl Db4)的数据区块个数最后仍维持为4,换言的,于本实施例 中,缓冲单元210随时存在四个对应阵列分组描述符Dbl Db4的数据区块以及四个未对 应任何阵列分组描述符的空闲数据区块。相较于先前技术,本发明所引入的空闲数据区块 会在一网络分组上传前预先置换该网络分组所在的数据区块,使阵列分组描述符不会因等 待处理后的网络分组依序回传而在阵列中形成一个泡泡,阵列失序的问题亦可得到改善。请注意,上述具体实施例仅为说明之用,并非用来限制本发明的范畴。举例来说, 第一阵列Bl可容纳的数据区块可依据不同的需求而改变,并非局限在四个,而空闲数据区 块的个数也可随需求增减,不一定需要和第一阵列Bl所可容纳的数据区块个数相同。此 外,当已成功接收储存并等待上传的网络分组总数超过一预定数目时,处理单元220可动 态增加空闲数据区块的个数;而当已成功接收储存并等待上传的网络分组总数少于一预定 数目时,处理单元220亦可动态减少空闲数据区块的个数以释出多余的储存空间,如此一 来,网络控制电路200可视终端单元250的负载高低来动态调整接收网络分组的效率。请参照图4,图4为依据本发明网络控制电路的另一实施例的示意图。本实施 例中,网络控制电路300与一网络3 30与多个终端单元(例如多核心系统中多个处理 器)350、370连接,且网络控制电路300包含有一缓冲单元310以及处理单元320。相较于 图2中的网络控制电路200,图3中的网络控制电路300是与多个终端单元连接,而各元件功能与图2中的网络控制电路200的各元件大致相同,故不再赘述。此外,不同于图2所示 的缓冲单元210,本实施例中的缓冲单元310具有一第一阵列Cl与一第二阵列Dl以阵列 数据结构分别接收储存给终端单元350与370的数据(网络分组)。第一阵列Cl与一第 二阵列Dl分别各有四个数据区块DB3_1 DB3_4、DB4_1 DB4_4,各由四个阵列分组描述 符Dcl Dc4及Ddl Dd4所标示。缓冲单元310在除了阵列分组描述符Dcl Dc4以及 Ddl Dd4所标示的数据区块DB3_1 DB3_4、DB4_1 DB4_4之外,另分配四个未对应任 何阵列分组描述符的空闲数据区块DB5_1 DB5_4。当第一阵列Cl存满网络分组Pcl Pc4且依序上传给终端单元350前,处理单元320会将阵列分组描述符Dcl Dc4依序标 示到未对应任何阵列分组描述符的空闲数据区块;而在此同时,第二阵列Dl存满网络分组 Pdl Pd4且依序上传给终端单元370前,处理单元320亦会将阵列分组描述符Ddl Dd4 依序标示到未对应任何阵列分组描述符的空闲数据区块。举例来说,当网络分组Pcl开始被上传前,处理单元320会将阵列分组描述符Dcl 改为标示空闲数据区块DB5_1 DB5_4的其中之一,而在网络分组Pcl成功上传后,原先由 阵列分组描述符Dcl标示且存有网络分组Pcl的数据区块DB3_1亦成为一个空闲数据区 块,由于相关运作原理可由图3所示的范例来轻易得知,故进一步的说明于此不另赘述。同 样地,于本实施例中,缓冲单元310随时存在四个对应阵列分组描述符Dcl Dc4的数据区 块、四个对应阵列分组描述符Ddl Dd4的数据区块以及四个未对应任何阵列分组描述符 的空闲数据区块。请注意,上述具体实施例仅为说明之用,并非用来限制本发明的范畴。举例来说, 第一阵列Cl与第二阵列Dl可容纳的数据区块均可依据不同的需求而改变,并非均局限在 四个,而空闲数据区块的个数也可随需求增减,不一定需要和第一、第二阵列Cl、Dl所可容 纳的数据区块个数相同。此外,当已成功接收储存并等待上传的网络分组总数超过一预定 数目时,处理单元220可动态增加空闲数据区块的个数;而当已成功接收储存并等待上传 的网络分组总数少于一预定数目时,处理单元320可动态减少空闲数据区块的个数以释出 多余的储存空间。除此之外,当空闲数据区块的个数固定时,第一、第二阵列Cl、Dl的阵列分组描述 符的处理是共享固定数量的空闲数据区块,其分配原则是各终端单元依各自的需求取用不 同个数的空闲数据区块,意即,各终端单元会依本身负载的考量来使用空闲数据区块的资 源而达到负载平衡。请注意,上述仅为本发明的一种较佳实作方式,于其它的设计变化中,处理单元 320亦可使用一预设的分配比例来把缓冲单元310中空闲的数据区块分配给第一、第二阵 列Cl、D1,此亦隶属本发明的范畴。综上所述,本发明提供了一种网络分组接收管理方法以及相关装置,由于本发明 采用阵列数据结构,在实现上仅需要一个加法器,在硬件大为减少而能有效降低成本,且不 需要额外读取分组描述符索引使接口负载大幅降低,而本发明引入的空闲数据区块应用可 有效避免阵列失序的问题并提高分组接收率,另外,动态新增空闲数据区块的功能亦可以 弥补阵列数据结构无法动态改变大小的缺陷。此外,本发明另提供了在多个分组描述符组 态下的负载平衡,应用在现今成为主流的多核心系统中,能得到极佳的效能。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
一种网络分组接收管理方法,包含有提供一缓冲单元,其至少包含有具有一第一分组个数的多个数据区块与具有一第二分组个数的多个数据区块,其中具有该第一分组个数的该多个数据区块是用来依据一第一阵列数据结构而分别储存多个第一网络分组,该第一阵列数据结构包含有对应该第一分组个数的多个第一分组描述符,具有该第一分组个数的该多个数据区块是分别对应至该多个第一分组描述符,以及具有该第二分组个数的该多个数据区块并未对应至任何分组描述符;以及当该缓冲单元内有对应至一第一分组描述符的一第一数据区块成功接收一第一网络分组时,将对应该第一数据区块的该第一分组描述符改为指定至该缓冲单元内未对应至任何分组描述符的一第二数据区块。
2.根据权利要求1所述的网络分组接收管理方法,其特征在于另包含有于该第一分组描述符改为指定至该第二数据区块之后,输出该第一数据区块内的该第 一网络分组。
3.根据权利要求1所述的网络分组接收管理方法,其特征在于另包含有依据等待上传所储存的网络分组的数据区块的总数,动态调整该缓冲单元内未对应至 任何分组描述符的数据区块的个数。
4.根据权利要求1所述的网络分组接收管理方法,其特征在于该缓冲单元另包含有具 有一第三分组个数的多个数据区块,具有该第三分组个数的该多个数据区块是用来依据一 第二阵列数据结构而分别储存多个第二网络分组,该第二阵列数据结构包含有对应该第三 分组个数的多个第二分组描述符,具有该第三分组个数的该多个数据区块是分别对应至该 多个第二分组描述符;以及该网络分组接收管理方法另包含有当该缓冲单元内有对应至一第二分组描述符的一第三数据区块成功接收一第二网络 分组时,将对应该第三数据区块的该第二分组描述符改为指定至该缓冲单元内未对应至任 何分组描述符的一第二数据区块。
5.根据权利要求4所述的网络分组接收管理方法,其特征在于另包含有依据等待上传所储存的网络分组的数据区块的总数,动态调整该缓冲单元内未对应至 任何分组描述符的数据区块的个数。
6.一种具有网络分组接收管理功能的网络控制电路,包含有一缓冲单元,其至少包含有具有一第一分组个数的多个数据区块与具有一第二分组个 数的多个数据区块,其中具有该第一分组个数的该多个数据区块是用来依据一第一阵列数 据结构而分别储存多个第一网络分组,该第一阵列数据结构包含有对应该第一分组个数的 多个第一分组描述符,具有该第一分组个数的该多个数据区块是分别对应至该多个第一分 组描述符,以及具有该第二分组个数的该多个数据区块并未对应至任何分组描述符;以及一处理单元,耦接于该缓冲单元,用以于该缓冲单元内有对应至一第一分组描述符的 一第一数据区块成功接收一第一网络分组时,将对应该第一数据区块的该第一分组描述符 改为指定至该缓冲单元内未对应至任何分组描述符的一第二数据区块。
7.根据权利要求6所述的网络控制电路,其特征在于该处理单元另于该第一分组描述 符改为指定至该第二数据区块之后,输出该第一数据区块内的该第一网络分组。
8.根据权利要求6所述的网络控制电路,其特征在于该处理单元另依据等待上传所储存的网络分组的数据区块的总数,动态调整该缓冲单元内未对应至任何分组描述符的数据 区块的个数。
9.根据权利要求6所述的网络控制电路,其特征在于该缓冲单元另包含有具有一第三 分组个数的多个数据区块,具有该第三分组个数的该多个数据区块是用来依据一第二阵列 数据结构而分别储存多个第二网络分组,该第二阵列数据结构包含有对应该第三分组个数 的多个第二分组描述符,具有该第三分组个数的该多个数据区块是分别对应至该多个第二 分组描述符;以及该处理单元另于该缓冲单元内有对应至一第二分组描述符的一第三数据 区块成功接收一第二网络分组时,将对应该第三数据区块的该第二分组描述符改为指定至 该缓冲单元内未对应至任何分组描述符的一第二数据区块。
10.根据权利要求9所述的网络控制电路,其特征在于该处理单元另依据等待上传所 储存的网络分组的数据区块的总数,动态调整该缓冲单元内未对应至任何分组描述符的数 据区块的个数。
全文摘要
本发明是一种网络分组接收管理方法与具有网络分组接收管理功能的网络控制电路,该网络分组接收管理方法包含有提供包含第一分组个数的多个数据区块与第二分组个数的多个数据区块的缓冲单元,其中具有该第一分组个数的该多个数据区块是用来依据一第一阵列数据结构而分别储存多个第一网络分组,该第一阵列数据结构包含有对应该第一分组个数的多个第一分组描述符,以及具有该第二分组个数的该多个数据区块并未对应至任何分组描述符;以及当对应至第一分组描述符描述符的第一数据区块成功接收第一网络分组时,将对应该第一数据区块的该第一分组描述符改为指定至未对应至任何分组描述符的第二数据区块。
文档编号H04L12/56GK101895460SQ200910145420
公开日2010年11月24日 申请日期2009年5月20日 优先权日2009年5月20日
发明者邱永丰, 陈泊辰 申请人:智微科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1