CN112311696A - 网络封包接收装置及方法 - Google Patents
网络封包接收装置及方法 Download PDFInfo
- Publication number
- CN112311696A CN112311696A CN201910681766.3A CN201910681766A CN112311696A CN 112311696 A CN112311696 A CN 112311696A CN 201910681766 A CN201910681766 A CN 201910681766A CN 112311696 A CN112311696 A CN 112311696A
- Authority
- CN
- China
- Prior art keywords
- queue
- packet
- credit
- field
- public
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种网络封包接收装置及方法。一种网络封包接收装置,包含:封包队列、额度配置电路及额度处理电路。封包队列分别对应于封包传送通道,并接收封包。额度配置电路计算各封包队列中的封包数目,将各封包队列的可请求描述元额度控制于额度范围内。额度处理电路使公用链接列表的公用字段,分别指向单一描述元缓冲器中的描述元其中之一。额度处理电路还接收对应封包队列的额度请求指令,在封包队列的可请求描述元额度位于额度范围内的情形下通过公用字段将描述元分配给封包队列,进一步使直接存储器访问电路根据封包队列所分配到的描述元对封包执行直接存储器访问操作。
Description
技术领域
本发明涉及一种网络封包接收技术,且特别是涉及一种网络封包接收装置及方法。
背景技术
电子装置之间的通信,可通过设置于其中的网络卡交换彼此的封包达成。在例如大型服务器的应用中,经常会执行多个操作系统,以通过不同的信道完成网络封包的传输。在这样的情形下,网络卡必须对应不同的信道设置多组相应的硬件来处理封包,造成资源重复设置的浪费。
因此,如何设计一个新的网络封包接收装置及方法,以解决上述的缺失,乃为此一业界亟待解决的问题。
发明内容
发明内容旨在提供本揭示内容的简化摘要,以使阅读者对本揭示内容具备基本的理解。此发明内容并非本揭示内容的完整概述,且其用意并非在指出本发明实施例的重要/关键组件或界定本发明的范围。
为达上述目的,本发明内容的一技术方案涉及一种网络封包接收装置,包含:多个封包队列、额度配置电路以及额度处理电路。多个封包队列分别对应于封包传送信道,并配置以接收多个封包。额度配置电路配置以计算各封包队列中的封包数目,并判断封包数目是否超过各封包队列的数目范围,进一步依判断结果将各封包队列的可请求描述元额度控制于额度范围内。额度处理电路配置以使公用链接列表(link-list)的多个公用字段,分别指向单一描述元(descriptor)缓冲器所包含的多个缓冲器字段中所储存的多个描述元其中之一。额度处理电路更配置以接收对应封包队列的额度请求指令,以使封包队列共享单一描述元缓冲器,在封包队列的可请求描述元额度位于额度范围内的情形下通过公用字段将描述元分配给封包队列,进一步使直接存储器访问电路根据封包队列所分配到的描述元对封包执行直接存储器访问操作。
本发明内容的另一技术方案涉及一种网络封包接收方法,应用于网络封包接收装置中,包含:使分别对应于一个封包传送通道的多个封包队列接收多个封包;使额度配置电路计算各封包队列中的一封包数目,并判断封包数目是否超过各封包队列的数目范围,进一步依判断结果将各封包队列的可请求描述元额度控制于额度范围内;使额度处理电路使公用链接列表的多个公用字段,分别指向单一描述元缓冲器所包含的多个缓冲器字段中所储存的多个描述元其中之一;接收对应封包队列的额度请求指令;使额度处理电路使封包队列共享单一描述元缓冲器,在封包队列的可请求描述元额度位于额度范围内的情形下通过公用字段将描述元分配给封包队列;以及使直接存储器访问电路根据封包队列所分配到的描述元对封包执行直接存储器访问操作。
本发明的网络封包接收装置及方法可使多个对应不同信道的封包队列共享单一描述元缓冲器中的描述元,而不需要针对不同的封包队列设置多个描述元缓冲器,造成过多硬件资源的浪费。
附图说明
为让本发明的上述和其他目的、特征、优点与实施例能更明显易懂,所附图式的说明如下:
图1为本发明一实施例中,一种计算机系统的方框图;
图2为本发明一实施例中,图1的网络封包接收装置更详细的方框图;
图3为本发明一实施例中,图2的额度配置电路更详细的方框图;
图4A至图4D分别为本发明一实施例中,公用链接列表与单一描述元缓冲器在不同运作阶段的示意图;
图5A至图5D分别为本发明一实施例中,封包队列在不同运作阶段的示意图;以及
图6为本发明一实施例中,一种网络封包接收方法的流程图。
具体实施方式
请参照图1。图1为本发明一实施例中,一种计算机系统的方框图。计算机系统包含:处理器100、存储器110、直接存储器访问电路120以及网络封包接收装置130。
于一实施例中,处理器100电性耦接于存储器110、直接存储器访问电路120以及网络封包接收装置130,并配置以处理来自计算机系统中不同电路模块或装置的数据。存储器110可为例如,但不限于动态随机存取存储器(dynamic random access memory;DRAM),配置以储存数据,并可由处理器100进行存取。
于一实施例中,网络封包接收装置130为例如,但不限于网络卡,配置以接收封包PA。当计算机系统并未设置直接存储器访问电路120时,网络封包接收装置130需要发出中断通知处理器100,以使处理器100接收封包PA后传送到存储器110进行储存,再从存储器110存取封包PA进行处理。这样的封包处理方式,在图1中是以虚线路径示出。
然而,大量的封包PA将造成网络封包接收装置130持续发出中断,使处理器100无法处理其他的程序。因此,通过直接存储器访问电路120的设置,将可在不发出中断以及不通过处理器100处理的情形下,将网络封包接收装置130所接收到的封包PA传送至存储器110进行储存。这样的封包处理方式,在图1中是以实线路径示出。
请参照图2。图2为本发明一实施例中,图1的网络封包接收装置130更详细的方框图。网络封包接收装置130包含:多个封包队列200、额度配置电路220以及额度处理电路230。
封包队列200分别对应于一个封包传送通道,在图2中,是示出n个封包队列200,并分别以Q0、Q1、Q2、…至Qn标示。于一实施例中,封包队列200分别为先进先出(first infirst out;FIFO)的队列。
在一实施例中,图1所示的处理器100可同时执行多个操作系统,因此网络封包接收装置130针对不同的操作系统各配置一个媒体访问控制地址(media access controladdress;MAC address),并设置对应这些媒体访问控制地址的封包队列200作为对应的封包储存及传送的通道。因此,封包队列200将分别配置以根据特定信道来接收对应的封包PA。
额度配置电路220配置以计算各封包队列200中的封包数目,并判断封包数目是否超过各封包队列200的数目范围,进一步依判断结果将各封包队列200的可请求描述元额度CRN控制于额度范围内。
另一方面,额度处理电路230配置以在封包队列200对应的可请求描述元额度CRN内,依据各个封包队列200的额度请求指令CRR,分配描述元DE给封包队列200,进一步使图1中的直接存储器访问电路120根据封包队列200所分配到的描述元DE,对封包PA执行直接存储器访问操作。更详细地说,于一实施例中,直接存储器访问电路120可根据描述元DE,存取封包队列200中储存的封包PA,并进一步储存到存储器110中。
以下将分别针对额度配置电路220以及额度处理电路230的结构与运作,进行更详细的说明。
请参照图3。图3为本发明一实施例中,图2的额度配置电路220更详细的方框图。于一实施例中,额度配置电路220包含:封包过滤电路300、封包编号队列310以及配置电路320。
封包过滤电路300配置以根据封包PA所属的封包队列200,来判断队列编号。其中,队列编号分别对应于封包队列200其中之一。以图2所示出的封包队列200为例,标示为Q0的封包队列200对应为队列编号0,标示为Q1的封包队列200对应为队列编号1,标示为Q2的封包队列200对应为队列编号2,以此类推。
封包编号队列310配置以储存具有一默认数目的封包PA的队列编号。如图3所示,封包编号队列310可储存16笔封包PA的队列编号。于一实施例中,封包编号队列310为先进先出的队列。
配置电路320配置以根据各队列编号的数目计算对应于各封包队列200的封包个数。举例而言,当封包编号队列310每收到一笔队列编号为0的封包,就将标示为Q0的封包队列200的封包个数加1。当封包编号队列310在其可储存的封包数目已满且收到新的封包,而将队列中最先收到的封包,例如队列编号为1的封包移除时,就将标示为Q1的封包队列200的封包个数减1。
接着,配置电路320配置以判断各个封包队列200的封包个数是否大于第一门坎值或小于第二门坎值,其中第一门坎值大于第二门坎值。当封包个数大于第一门坎值时,配置电路320使对应的封包队列200的可请求描述元额度不大于一最大额度值。封包个数小于第二门坎值时,配置电路320使可请求描述元额度CRN不小于最小额度值。
举例而言,当封包个数大于32时,配置电路320使对应的封包队列200的可请求描述元额度CRN不大于32。而当封包个数小于2时,配置电路320使对应的封包队列200的可请求描述元额度CRN不小于2。通过这样的设计,可避免部分封包队列200占用过多的额度,提高描述元DE的使用效率,亦可避免部分封包队列200在突然接收到封包PA时,不至于没有额度可使用的状况。
需注意的是,上述的数值范例中,是以第一门坎值相同于最大额度值以及第二门坎值相同于最小额度值为例。然而于其他实施例中,第一门坎值可不同于最大额度值,且第二门坎值可不同于最小额度值。
于一实施例中,额度处理电路230配置以通过公用链接列表(link-list)PLL管理描述元DE。更详细地说,额度处理电路230配置以使公用链接列表PLL的公用字段,分别指向单一描述元(descriptor)缓冲器240所包含的多个缓冲器字段中所储存的描述元DE其中之一。在图2中,公用链接列表PLL的公用字段依序表示为PLL0、PLL1、…、PLLm。而单一描述元缓冲器240的各缓冲器字段储存的描述元DE,则分别以DE0、DE1、…、DEm表示。
于一实施例中,单一描述元缓冲器240实际上是位于图1所示的存储器110中。公用链接列表PLL则可储存于网络封包接收装置130内部的存储器单元(未示出)中,并由额度处理电路230存取。
并且,于一实施例中,各个封包队列200亦通过各自的队列链接列表QLL管理所请求到的描述元DE,其中队列链接列表QLL包含多个队列字段。在图2中,队列链接列表QLL的队列字段依序表示为QLL0、QLL1、…、QLLm。
请同时参照图4A至图4D以及图5A至图5D。图4A至图4D分别为本发明一实施例中,公用链接列表PLL与单一描述元缓冲器240在不同运作阶段的示意图。图5A至图5D分别为本发明一实施例中,分别对应Q0及Q1的封包队列200在不同运作阶段的示意图。
如图4A所示,额度处理电路230在初始状态中,是使公用链接列表PLL的公用字段PLL0、PLL1、…、PLLm依序对应指向描述元DE0、DE1、…、DEm,且所有的公用字段均为可分配公用字段。进一步地,额度处理电路230设置首端指针HEAD以及尾端指针TAIL,均指向公用字段的第一个,亦即公用字段PLL0。
如图5A所示,在对应Q0及Q1的封包队列200均未发出额度请求指令CRR的情形下,其队列链接列表QLL的队列字段均未存有描述元,因此所有的队列字段均为待写入队列字段。进一步地,封包队列200设置写入指针WPTR以及读取指针RPTR,均指向队列字段的第一个,亦即队列字段QLL0。
在一使用情境中,对应Q0的封包队列200先发出额度请求指令CRR,并在可请求描述元额度位于额度范围内的情形下,由额度处理电路230将公用字段PLL0对应的描述元DE0分配给对应Q0的封包队列200,并写入至队列链接列表QLL的队列字段QLL0。
此时,额度处理电路230将把首端指针HEAD指向下一个可分配公用字段PLL1,对应Q0的封包队列200则把写入指针WPTR指向下个的待写入队列字段QLL1。
接着,对应Q1的封包队列200发出额度请求指令CRR,并在可请求描述元额度位于额度范围内的情形下,由额度处理电路230将公用字段PLL1对应的描述元DE1分配给对应Q1的封包队列200,并写入至队列链接列表QLL的队列字段QLL0。
此时,额度处理电路230将把首端指针HEAD指向下一个可分配公用字段PLL2,对应Q1的封包队列200则把写入指针WPTR指向下个的待写入队列字段QLL1。
对应Q0的封包队列200再次发出额度请求指令CRR,并在可请求描述元额度位于额度范围内的情形下,由额度处理电路230将公用字段PLL2对应的描述元DE2分配给对应Q0的封包队列200,并写入至队列链接列表QLL的队列字段QLL1。
此时,额度处理电路230将把首端指针HEAD指向下一个可分配公用字段PLL3,对应Q0的封包队列200则把写入指针WPTR指向下个的待写入队列字段QLL2。
最后,对应Q1的封包队列200再次发出额度请求指令CRR,并在可请求描述元额度位于额度范围内的情形下,由额度处理电路230将公用字段PLL3对应的描述元DE3分配给对应Q1的封包队列200,并写入至队列链接列表QLL的队列字段QLL1。
此时,额度处理电路230将把首端指针HEAD指向下一个可分配公用字段PLL4,对应Q1的封包队列200则把写入指针WPTR指向下个的待写入队列字段QLL2。
因此,如图4B所示,在完成上述的操作后,额度处理电路230将把首端指针HEAD指向公用字段PLL4,而尾端指针TAIL则依旧指向公用字段PLL0。此时,公用字段PLL0至PLL3为可归还公用字段。如图5B所示,在完成上述的操作后,对应Q0及Q1的封包队列200分别把写入指针WPTR指向队列字段QLL2,而读取指针RPTR则依旧指向队列字段QLL0。
在一使用情境中,于图4B及图5B的状态下,对应Q1的封包队列200先由直接存储器访问电路120根据所分配到的描述元DE1,对其所暂存的封包PA执行直接存储器访问操作,以读取至存储器110。
在直接存储器访问操作结束后,对应Q1的封包队列200将描述元DE1自队列字段QLL0移出,且使对应的队列链接列表QLL的读取指针RPTR指向队列字段QLL1。并且,对应Q1的封包队列200传送额度归还指令CBR至额度处理电路230。额度处理电路230在接收到额度归还指令CBR后,将公用链接列表PLL之尾端指针TAIL指向的公用字段PLL0指向所归还的描述元DE1,并将尾端指针TAIL改为指向公用字段PLL1。
接着,对应Q1的封包队列200由直接存储器访问电路120根据所分配到的描述元DE3,对其所暂存的封包PA执行直接存储器访问操作,以读取至存储器110。
在直接存储器访问操作结束后,对应Q1的封包队列200将描述元DE3自队列字段QLL1移出,且使对应的队列链接列表QLL的读取指针RPTR指向队列字段QLL2。并且,对应Q1的封包队列200传送额度归还指令CBR至额度处理电路230。额度处理电路230在接收到额度归还指令CBR后,将公用链接列表PLL之尾端指针TAIL指向的公用字段PLL1指向所归还的描述元DE3,并将尾端指针TAIL改为指向公用字段PLL2。
随后,对应Q0的封包队列200由直接存储器访问电路120根据所分配到的描述元DE0,对其所暂存的封包PA执行直接存储器访问操作,以读取至存储器110。
在直接存储器访问操作结束后,对应Q0的封包队列200将描述元DE0自队列字段QLL0移出,且使对应的队列链接列表QLL的读取指针RPTR指向队列字段QLL1。并且,对应Q0的封包队列200传送额度归还指令CBR至额度处理电路230。额度处理电路230在接收到额度归还指令CBR后,将公用链接列表PLL之尾端指针TAIL指向的公用字段PLL2指向所归还的描述元DE0,并将尾端指针TAIL改为指向公用字段PLL3。
因此,如图4C所示,在完成上述的操作后,额度处理电路230依旧把首端指针HEAD指向公用字段PLL4,而尾端指针TAIL则指向公用字段PLL3。此时,仅有公用字段PLL3为可归还公用字段。如图5C所示,在完成上述的操作后,对应Q0及Q1的封包队列200依然将写入指针WPTR指向队列字段QLL2,而对应Q0的封包队列200将读取指针RPTR指向队列字段QLL1,对应Q1的封包队列200则将读取指针RPTR指向队列字段QLL2。
在一使用情境中,于图4D及图5D的状态下,如果对应Q0的封包队列200发现所请求的描述元数目超过例如为1的最大额度值时,将需要归还多申请的一个描述元。因此,对应Q0的封包队列200将描述元DE2自队列字段QLL0移出,且不使读取指针RPTR改变。对应Q0的封包队列200进一步传送额度归还指令CBR至额度处理电路230。额度处理电路230在接收到额度归还指令CBR后,将公用链接列表PLL之尾端指针TAIL指向的公用字段PLL0指向所归还的描述元DE2,并将尾端指针TAIL改为指向公用字段PLL1。
因此,本发明的网络封包接收装置130可使多个对应不同信道的封包队列200共享单一描述元缓冲器240中的描述元DE,而不需要针对不同的封包队列200设置多个描述元缓冲器,造成过多硬件资源的浪费。
请参照图。图6为本发明一实施例中,一种网络封包接收方法600的流程图。网络封包接收方法600可应用于图1所示的网络封包接收装置130中。
网络封包接收方法600包含下列步骤(应了解到,在本实施方式中所提及的步骤,除特别叙明其顺序者外,均可依实际需要调整其前后顺序,甚至可同时或部分同时执行)。
于步骤601,使分别对应于一个封包传送信道的封包队列200接收封包PA。
于步骤602,使额度配置电路220计算各封包队列200中的封包数目,并判断封包数目是否超过各封包队列200的数目范围,进一步依判断结果将各封包队列200的可请求描述元额度控制于额度范围内。
于步骤603,使额度处理电路230使公用链接列表PLL的公用字段,分别指向单一描述元缓冲器240所包含的缓冲器字段中所储存的描述元DE其中之一。
于步骤604,接收对应封包队列的额度请求指令CRR。
于步骤605,使额度处理电路230使封包队列200共享单一描述元缓冲器240,在封包队列200的可请求描述元额度位于额度范围内的情形下通过公用字段将描述元DE分配给封包队列200。
于步骤606,使直接存储器访问电路120根据封包队列200所分配到的描述元DE对封包PA执行直接存储器访问操作。
虽然上文实施方式中揭露了本发明的具体实施例,然而其并非用以限定本发明,本发明所属技术领域中具有通常知识者,在不背离本发明的原理与精神的情形下,当可对其进行各种更动与修饰,因此本发明的保护范围当以所附权利要求范围所界定者为准。
【符号说明】
110:存储器
130:网络封包接收装置
220:额度配置电路
240:单一描述元缓冲器
310:封包编号队列
600:网络封包接收方法
CBR:额度归还指令
CRR:额度请求指令
HEAD:首端指针
PLL:公用链接列表
Q0至Qn:封包队列
QLL0至QLLm:队列字段
TAIL:尾端指针100:处理器
120:直接存储器访问电路
200:封包队列
230:额度处理电路
300:封包过滤电路
320:配置电路
601至606:步骤
CRN:可请求描述元额度
DE、DE0至DEm:描述元
PA:封包
PLL0至PLLm:公用字段
QLL:队列链接列表
RPTR:读取指针
WPTR:写入指针。
Claims (10)
1.一种网络封包接收装置,包含:
多个封包队列,分别对应于一个封包传送信道,并配置以接收多个封包;
一额度配置电路,配置以计算各该封包队列中的一封包数目,并判断该封包数目是否超过各该封包队列的一数目范围,进一步依判断结果将各该封包队列的一可请求描述元额度控制于一额度范围内;以及
一额度处理电路,配置以使一公用链接列表的多个公用字段,分别指向一单一描述元缓冲器所包含的多个缓冲器字段中所储存的多个描述元其中之一;
该额度处理电路更配置以接收对应该封包队列的一额度请求指令,以使该封包队列共享该单一描述元缓冲器,在该封包队列的该可请求描述元额度位于该额度范围内的情形下通过该公用字段将该描述元分配给该封包队列,进一步使一直接存储器访问电路根据该封包队列所分配到的该描述元对该封包执行一直接存储器访问操作。
2.根据权利要求1所述的网络封包接收装置,其中,该额度处理电路配置以在接收到该封包队列其中之一请求封包队列的该额度请求指令,且该公用链接列表的一首端指针指向该公用字段其中之一可分配公用字段时,是将该可分配公用字段指向的一可分配描述元分配给该请求封包队列,并将该首端指针指向该可分配公用字段后的下一该公用字段;以及
该额度处理电路配置以在接收到该封包队列其中之一归还封包队列的一额度归还指令,且该公用链接列表的一尾端指针指向该公用字段其中之一可归还公用字段时,是将该可归还公用字段指向该归还封包队列归还的一归还描述元,并将该尾端指针指向该可归还公用字段后的下一该公用字段。
3.根据权利要求2所述的网络封包接收装置,其中,该封包队列分别包含对应的一队列链接列表,该队列链接列表包含多个队列字段;
当该请求封包队列被分配到该可分配描述元,且该请求封包队列对应的该队列链接列表的一写入指针指向该队列字段的一待写入队列字段时,是将该可分配描述元分配至该待写入队列字段,并将该写入指针指向该待写入队列字段后的下一该队列字段;以及
当该归还封包队列归还该归还描述元,且该归还封包队列对应的该队列链接列表的一读取指针指向该队列字段的一待读取队列字段时,是将该归还描述元自该待读取队列字段移出,并将该读取指针指向该待读取队列字段后的下一该队列字段。
4.根据权利要求2所述的网络封包接收装置,其中,该额度处理电路在一初始状态使该公用链接列表的该公用字段依序对应该描述元,并使该首端指针以及该尾端指针均指向该公用字段的第一个。
5.根据权利要求1所述的网络封包接收装置,其中,该额度配置电路还包含:
一封包过滤电路,配置以根据该封包所属的该封包队列,判断多个队列编号,该队列编号分别对应于该封包队列其中之一;
一封包编号队列,配置以储存一默认数目的该封包的该队列编号;以及
一配置电路,配置以根据各该队列编号的数目计算对应于各该封包队列的一封包个数,以判断该封包个数是否大于一第一门坎值或小于一第二门坎值;
其中当该封包个数大于该第一门坎值时,该配置电路使对应的其中之一该封包队列的该可请求描述元额度不大于一最大额度值,当该封包个数小于该第二门坎值时,该配置电路使该可请求描述元额度不小于一最小额度值。
6.一种网络封包接收方法,应用于一网络封包接收装置中,包含:
使分别对应于一个封包传送信道的多个封包队列接收多个封包;
使一额度配置电路计算各该封包队列中的一封包数目,并判断该封包数目是否超过各该封包队列的一数目范围,进一步依判断结果将各该封包队列的一可请求描述元额度控制于一额度范围内;
使一额度处理电路使一公用链接列表的多个公用字段,分别指向一单一描述元缓冲器所包含的多个缓冲器字段中所储存的多个描述元其中之一;
使该额度处理电路接收对应该封包队列的一额度请求指令;
使该额度处理电路使该封包队列共享该单一描述元缓冲器,在该封包队列的该可请求描述元额度位于该额度范围内的情形下通过该公用字段分配该描述元给该封包队列;以及
使一直接存储器访问电路根据该封包队列所分配到的该描述元对该封包执行一直接存储器访问操作。
7.根据权利要求6所述的网络封包接收方法,还包含:
使该额度处理电路在接收到该封包队列其中之一请求封包队列的该额度请求指令,且该公用链接列表之一首端指针指向该公用字段其中之一可分配公用字段时,将该可分配公用字段指向的一可分配描述元分配给该请求封包队列,并将该首端指针指向该可分配公用字段后的下一该公用字段;以及
使该额度处理电路在接收到该封包队列其中之一归还封包队列的一额度归还指令,且该公用链接列表的一尾端指针指向该公用字段其中之一可归还公用字段时,将该可归还公用字段指向该归还封包队列归还的一归还描述元,并将该尾端指针指向该可归还公用字段后的下一该公用字段。
8.根据权利要求7所述的网络封包接收方法,其中,该封包队列分别包含对应的一队列链接列表,该队列链接列表包含多个队列字段,该网络封包接收方法还包含:
当该请求封包队列被分配到该可分配描述元,且该请求封包队列对应的该队列链接列表的一写入指针指向该队列字段的一待写入队列字段时,将该可分配描述元分配至该待写入队列字段,并将该写入指针指向该待写入队列字段后的下一该队列字段;以及
当该归还封包队列归还该归还描述元,且该归还封包队列对应的该队列链接列表的一读取指针指向该队列字段的一待读取队列字段时,将该归还描述元自该待读取队列字段移出,并将该读取指针指向该待读取队列字段后的下一该队列字段。
9.根据权利要求7所述的网络封包接收方法,还包含:
使该额度处理电路在一初始状态时使该公用链接列表的该公用字段依序对应该描述元,并使该首端指针以及该尾端指针均指向该公用字段的第一个。
10.根据权利要求6所述的网络封包接收方法,其中,使该额度配置电路将额度控制于该额度范围内的步骤还包含:
使一封包过滤电路根据该封包所属的该封包队列,判断多个队列编号,该队列编号分别对应于该封包队列其中之一;
使一封包编号队列储存一默认数目的该封包的该队列编号;
使一配置电路根据各该队列编号的数目计算对应于各该封包队列的一封包个数,以判断该封包个数是否大于一第一门坎值或小于一第二门坎值;
其中当该封包个数大于该第一门坎值时,由该配置电路使对应的其中之一该封包队列的该可请求描述元额度不大于一最大额度值,当该封包个数小于该第二门坎值时,由该配置电路使该可请求描述元额度不小于一最小额度值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910681766.3A CN112311696B (zh) | 2019-07-26 | 2019-07-26 | 网络封包接收装置及方法 |
TW108139325A TWI730481B (zh) | 2019-07-26 | 2019-10-30 | 網路封包接收裝置及方法 |
US16/936,818 US11153233B2 (en) | 2019-07-26 | 2020-07-23 | Network packet receiving apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910681766.3A CN112311696B (zh) | 2019-07-26 | 2019-07-26 | 网络封包接收装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311696A true CN112311696A (zh) | 2021-02-02 |
CN112311696B CN112311696B (zh) | 2022-06-10 |
Family
ID=74187451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910681766.3A Active CN112311696B (zh) | 2019-07-26 | 2019-07-26 | 网络封包接收装置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11153233B2 (zh) |
CN (1) | CN112311696B (zh) |
TW (1) | TWI730481B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580044B2 (en) | 2020-08-31 | 2023-02-14 | Micron Technology, Inc. | Network credit return mechanisms |
US11362939B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Flow control for a multiple flow control unit interface |
US11588745B2 (en) * | 2020-08-31 | 2023-02-21 | Micron Technology, Inc. | Early credit return for credit-based flow control |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870627A (en) * | 1995-12-20 | 1999-02-09 | Cirrus Logic, Inc. | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue |
US6594701B1 (en) * | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
CN1611035A (zh) * | 2001-04-13 | 2005-04-27 | 飞思卡尔半导体公司 | 数据流处理器中的数据流管理 |
US20080005296A1 (en) * | 2006-05-08 | 2008-01-03 | Cisco Technology, Inc. | Method and apparatus for synchronizing use of buffer descriptor entries |
CN101356777A (zh) * | 2005-12-21 | 2009-01-28 | 英特尔公司 | 在交换结构网络中管理芯片上队列 |
US20110219208A1 (en) * | 2010-01-08 | 2011-09-08 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
CN102375790A (zh) * | 2010-08-12 | 2012-03-14 | 杭州华三通信技术有限公司 | 共享总线传输系统及方法 |
CN106209679A (zh) * | 2015-03-31 | 2016-12-07 | 凯为公司 | 用于使用多个链接的存储器列表的方法及装置 |
CN106537858A (zh) * | 2014-08-07 | 2017-03-22 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN107835135A (zh) * | 2017-10-23 | 2018-03-23 | 深圳市楠菲微电子有限公司 | 共享缓冲区准入控制方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5548587A (en) * | 1994-09-12 | 1996-08-20 | Efficient Networks, Inc. | Asynchronous transfer mode adapter for desktop applications |
US8194690B1 (en) * | 2006-05-24 | 2012-06-05 | Tilera Corporation | Packet processing in a parallel processing environment |
US9071499B2 (en) * | 2011-03-28 | 2015-06-30 | Citrix Systems, Inc. | Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system |
US9191452B2 (en) * | 2012-12-20 | 2015-11-17 | Oracle International Corporation | Method and system for an on-chip completion cache for optimized completion building |
US9703739B2 (en) * | 2014-08-20 | 2017-07-11 | Netronome Systems, Inc. | Return available PPI credits command |
US9755983B1 (en) * | 2014-10-22 | 2017-09-05 | Netronome Systems, Inc. | Minipacket flow control |
CN106899516B (zh) * | 2017-02-28 | 2020-07-28 | 华为技术有限公司 | 一种队列清空方法以及相关设备 |
US11616723B2 (en) * | 2018-12-05 | 2023-03-28 | Intel Corporation | Techniques to reduce network congestion |
-
2019
- 2019-07-26 CN CN201910681766.3A patent/CN112311696B/zh active Active
- 2019-10-30 TW TW108139325A patent/TWI730481B/zh active
-
2020
- 2020-07-23 US US16/936,818 patent/US11153233B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870627A (en) * | 1995-12-20 | 1999-02-09 | Cirrus Logic, Inc. | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue |
US6594701B1 (en) * | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
CN1611035A (zh) * | 2001-04-13 | 2005-04-27 | 飞思卡尔半导体公司 | 数据流处理器中的数据流管理 |
CN101356777A (zh) * | 2005-12-21 | 2009-01-28 | 英特尔公司 | 在交换结构网络中管理芯片上队列 |
US20080005296A1 (en) * | 2006-05-08 | 2008-01-03 | Cisco Technology, Inc. | Method and apparatus for synchronizing use of buffer descriptor entries |
US20110219208A1 (en) * | 2010-01-08 | 2011-09-08 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
CN102375790A (zh) * | 2010-08-12 | 2012-03-14 | 杭州华三通信技术有限公司 | 共享总线传输系统及方法 |
CN106537858A (zh) * | 2014-08-07 | 2017-03-22 | 华为技术有限公司 | 一种队列管理的方法和装置 |
CN106209679A (zh) * | 2015-03-31 | 2016-12-07 | 凯为公司 | 用于使用多个链接的存储器列表的方法及装置 |
CN107835135A (zh) * | 2017-10-23 | 2018-03-23 | 深圳市楠菲微电子有限公司 | 共享缓冲区准入控制方法及装置 |
Non-Patent Citations (2)
Title |
---|
P. SIRIPONGWUTIKORN 等: ""Adaptive bandwidth control for efficient aggregate QoS provisioning"", 《GLOBAL TELECOMMUNICATIONS CONFERENCE, 2002. GLOBECOM "02. IEEE》 * |
杨惠 等: ""面向多核网络分组处理系统的线程亲和缓冲区管理机制"", 《国防科技大学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
US20210029062A1 (en) | 2021-01-28 |
TWI730481B (zh) | 2021-06-11 |
TW202105966A (zh) | 2021-02-01 |
CN112311696B (zh) | 2022-06-10 |
US11153233B2 (en) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311696B (zh) | 网络封包接收装置及方法 | |
EP2312807B1 (en) | Method and system for enabling zero-copy transmission of streaming media data | |
US9769081B2 (en) | Buffer manager and methods for managing memory | |
US8392565B2 (en) | Network memory pools for packet destinations and virtual machines | |
CN108366111B (zh) | 一种用于交换设备的数据包低时延缓存装置与方法 | |
CN101499956B (zh) | 分级缓冲区管理系统及方法 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
US20200076742A1 (en) | Sending data using a plurality of credit pools at the receivers | |
CN115080455A (zh) | 一种计算机芯片、计算机板卡、存储空间分配方法及装置 | |
KR20180030985A (ko) | Usb 2.0 대역폭 예약을 위한 방법 및 시스템 | |
CN111258932A (zh) | 加速ufs协议处理的方法与存储控制器 | |
US6425067B1 (en) | Systems and methods for implementing pointer management | |
CN113126911A (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN111970213A (zh) | 排队系统 | |
CN111582739B (zh) | 一种多租户固态盘性能隔离条件下实现高带宽的方法 | |
CN112328519B (zh) | 一种pcie设备、基于sr-iov的数据包有序传输方法和系统 | |
CN110765044B (zh) | 数据包传输装置及系统 | |
CN116800684B (zh) | Rdma网卡发送队列的性能隔离方法和rdma网卡 | |
CN113467930B (zh) | 一种硬件管理共享内存的处理方法及装置 | |
WO2010082604A1 (ja) | データ処理装置、メモリ管理方法およびメモリ管理プログラム | |
WO2024001414A1 (zh) | 报文的缓存方法、装置、电子设备及存储介质 | |
CN116893993A (zh) | 一种采用AXI总线访问host的方法、系统、芯片及存储介质 | |
US9965211B2 (en) | Dynamic packet buffers with consolidation of low utilized memory banks | |
CN116366573A (zh) | 队列管理和调用方法、网卡设备以及存储介质 | |
CN116800684A (zh) | Rdma网卡发送队列的性能隔离方法和rdma网卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |