CN108259380A - 数据帧处理的方法、系统及以太网控制器 - Google Patents
数据帧处理的方法、系统及以太网控制器 Download PDFInfo
- Publication number
- CN108259380A CN108259380A CN201711392942.9A CN201711392942A CN108259380A CN 108259380 A CN108259380 A CN 108259380A CN 201711392942 A CN201711392942 A CN 201711392942A CN 108259380 A CN108259380 A CN 108259380A
- Authority
- CN
- China
- Prior art keywords
- size
- data frame
- descriptor
- buffering area
- free space
- 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.)
- Pending
Links
Classifications
-
- 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/9005—Buffering arrangements using dynamic buffer space allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明适用于计算机技术领域,公开了一种数据帧处理的方法、系统及以太网控制器,所述方法包括:当接收到数据帧时,根据数据帧生成预设大小的接收描述符;若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小以及空闲空间首地址。本发明能够根据数据帧的大小动态使用内存,减少内存占用,能够更好地适应内存紧张的嵌入式产品的应用场景。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种数据帧处理的方法、系统及以太网控制器。
背景技术
以太网控制器也称为以太网适配器,就是我们通常称的“网卡”。以太网控制器接收数据帧并将数据帧转交给网络层处理。
现有的以太网控制器处理数据帧时,预先分配指定数量的接收描述符并为每个接收描述符分配固定大小的数据帧接收缓冲区,数据帧接收缓冲区的大小按照最大数据帧的大小分配。这种方式导致内存占用过大,影响系统的整体性能。
发明内容
有鉴于此,本发明实施例提供了一种数据帧处理的方法、系统及以太网控制器,以解决现有技术中内存占用过大,影响系统整体性能的问题。
本发明实施例的第一方面提供了一种数据帧处理的方法,应用于以太网控制器,所述方法包括:
当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域;
若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;
根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小;
根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间首地址。
本发明实施例的第二方面提供了一种数据帧处理的系统,应用于以太网控制器,所述系统包括:
生成模块,用于当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域;
数据帧保存模块,用于若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;
第一更新模块,用于根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小;
第二更新模块,用于根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间首地址。
本发明实施例的第三方面提供了一种以太网控制器,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述数据帧处理的方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述数据帧处理的方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例提供的数据帧处理的方法、系统及以太网控制器,通过当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域;若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小以及空闲空间首地址,从而可以有效解决内存占用过大,影响系统整体性能的问题,能够根据数据帧的大小动态使用内存,减少内存占用,提高系统整体性能,能够更好地适应内存紧张的嵌入式产品的应用场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据帧处理的方法的实现流程图;
图2是本发明实施例二提供的数据帧处理的方法的实现流程图;
图3是本发明实施例三提供的数据帧处理的系统的实现流程图;
图4是本发明实施例四提供的数据帧处理的系统的实现流程图;
图5是本发明实施例五提供的以太网控制器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
参照图1,图1示出了本发明实施例一提供的数据帧处理的方法的实现流程,本实施例的流程执行主体可以是以太网控制器,其过程详述如下:
S101:当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域。
以太网控制器实时监测是否接收到数据帧,当接收到数据帧时,根据数据帧生成预设大小的接收描述符,在刚生成时,接收描述符中所有信息默认为空。
接收描述符包括接收有效标志位和接收大小信息域。其中,接收有效标志位用于标记数据帧是否有效,可选地,若接收有效标志位为1,则数据帧有效;若接收有效标志位为0,则数据帧无效。接收大小信息域用于保存本次处理数据帧所占用的缓冲区空间大小,即接收描述符的大小和数据帧的大小之和。
S102:若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位。
预先分配一块连续内存空间作为缓冲区,缓冲区用于保存数据帧和接收描述符,优选地,缓冲区包括环形缓冲区。
若缓冲区空闲空间充足,即接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的当前空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域。
将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位。通过检测数据帧的大小和帧校验序列等检测数据帧是否有效,若数据帧有效,则置位接收有效标志位,可选地,若数据帧有效,则将接收有效标志位置1。
S103:根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小。
可选地,以太网控制器包括第二寄存器,第二寄存器用于保存本次处理数据帧所占用的缓冲区空间大小,即接收描述符的大小和数据帧的大小之和。以太网控制器还包括空闲空间寄存器、空闲首地址寄存器和空闲空间计算模块。空闲空间寄存器用于保存缓冲区的当前空闲空间大小;空闲首地址寄存器用于保存缓冲区的当前空闲空间首地址;空闲空间计算模块用于实时计算和更新缓冲区的空闲空间大小,当检测到第二寄存器更新时,根据第二寄存器中的信息更新缓冲区的空闲空间大小,并将更新后的空闲空间大小保存到空闲空间寄存器。
根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小,包括:
删除第二寄存器中的信息,将接收描述符的大小和数据帧的大小之和保存到第二寄存器;
当检测到第二寄存器更新时,将缓冲区的空闲空间大小减去第二寄存器中的信息得到缓冲区的更新后的空闲空间大小。
具体地,当检测到第二寄存器更新时,空闲空间计算模块用空闲空间寄存器中的信息减去第二寄存器中的信息得到缓冲区的更新后的空闲空间大小,并将缓冲区的更新后的空闲空间大小保存到空闲空间寄存器中。
S104:根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间首地址。
具体地,将空闲首地址寄存器中的信息加上接收描述符的大小和数据帧的大小之和得到第一中间计算结果,若第一中间计算结果小于缓冲区的尾地址,则更新后的空闲空间首地址即为第一中间计算结果;若第一中间计算结果等于缓冲区的尾地址,则更新后的空闲空间首地址即为缓冲区的首地址;若第一中间计算结果大于缓冲区的尾地址,则将第一中间计算结果减去缓冲区的尾地址再加上缓冲区的首地址得到更新后的空闲空间首地址。将更新后的空闲空间首地址保存到空闲首地址寄存器中。
以一个具体的应用场景为例,假设接收描述符的大小和数据帧的大小之和为80,缓冲区的大小为500,缓冲区的首地址为1000,则缓冲区的尾地址为1500,若此时空闲首地址寄存器中的信息为1400,则更新后的空闲空间首地址为:1400+80=1480;若此时空闲首地址寄存器中的信息为1420,则更新后的空闲空间首地址为缓冲区首地址1000;若此时空闲首地址寄存器中的信息为1450,则更新后的空闲空间首地址为:1450+80-1500+1000=1030。
在本实施例中,通过当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域;若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小以及空闲空间首地址,从而可以有效解决内存占用过大,影响系统整体性能的问题,能够根据数据帧的大小动态使用内存,减少内存占用,提高系统整体性能,能够更好地适应内存紧张的嵌入式产品的应用场景。
实施例二
参照图2,图2示出了本发明实施例二提供的数据帧处理的方法的实现流程。在上述实施例的基础上,本发明实施例详述如下:
步骤S201至S204与上述S101至S104一致,具体内容请参考S101至S104的相关描述,这里不再赘述。
S205:当读指针指向接收描述符时,若接收有效标志位置位,则根据接收描述符的大小计算得到数据帧的首地址,根据数据帧的首地址获取数据帧,并将数据帧转交给网络层处理。
缓冲区包括读指针,读指针用于指向待处理的数据帧对应的接收描述符。
当读指针指向接收描述符时,若接收有效标志位置位,即数据帧有效,则根据读指针指向的地址和接收描述符的大小计算得到数据帧的首地址,根据数据帧的首地址获取数据帧,并将数据帧转交给网络层处理。
根据读指针指向的地址和接收描述符的大小计算得到数据帧的首地址,具体包括:将读指针指向的地址加上接收描述符的大小得到第二中间计算结果,若第二中间计算结果小于缓冲区的尾地址,则数据帧的首地址即为第二中间计算结果;若第二中间计算结果等于缓冲区的尾地址,则数据帧的首地址即为缓冲区的首地址;若第二中间计算结果大于缓冲区的尾地址,则将第二中间计算结果减去缓冲区的尾地址再加上缓冲区的首地址得到数据帧的首地址。
S206:若接收到网络层发送的数据处理完成信号,则将接收有效标志位复位,清空接收描述符和数据帧占用的缓冲区的内存空间。
当网络层将数据帧处理完成后,会向以太网控制器发送一个数据处理完成信号。若以太网控制器接收到网络层发送的数据处理完成信号,则将接收有效标志位复位,即将接收有效标志位清零,并清空接收描述符和数据帧占用的缓冲区的内存空间。
S207:根据接收大小信息域更新缓冲区的空闲空间大小。
可选地,以太网控制器包括第一寄存器,第一寄存器用于保存当数据帧处理完成后,需要释放的缓冲区空间大小。当数据帧处理完成后,将接收大小信息域中的信息写入第一寄存器。
根据接收大小信息域更新缓冲区的空闲空间大小,包括:
删除第一寄存器中的信息,将接收大小信息域中的信息保存到第一寄存器;
当检测到第一寄存器更新时,将缓冲区的空闲空间大小加上第一寄存器中的信息得到缓冲区的更新后的空闲空间大小。
具体地,当检测到第一寄存器更新时,空闲空间计算模块用空闲空间寄存器中的信息加上第一寄存器中的信息得到缓冲区的更新后的空闲空间大小,并将缓冲区的更新后的空闲空间大小保存到空闲空间寄存器中。
S208:根据接收大小信息域更新读指针,使读指针指向下一个待处理的数据帧对应的接收描述符。
具体地,将当前读指针指向的地址加上接收大小信息域中的信息得到第三中间计算结果,若第三中间计算结果小于缓冲区的尾地址,则更新后的读指针指向的地址即为第三中间计算结果;若第三中间计算结果等于缓冲区的尾地址,则更新后的读指针指向的地址即为缓冲区的首地址;若第三中间计算结果大于缓冲区的尾地址,则将第三中间计算结果减去缓冲区的尾地址再加上缓冲区的首地址得到更新后的读指针指向的地址。更新后的读指针指向的地址即下一个待处理的数据帧对应的接收描述符的首地址。
在本实施例中,通过当读指针指向接收描述符时,若接收有效标志位置位,则根据接收描述符的大小计算得到数据帧的首地址,根据数据帧的首地址获取数据帧,并将数据帧转交给网络层处理;若接收到网络层发送的数据处理完成信号,则将接收有效标志位复位,清空接收描述符和数据帧占用的缓冲区的内存空间;根据接收大小信息域更新缓冲区的空闲空间大小;根据接收大小信息域更新读指针,使读指针指向下一个待处理的数据帧对应的接收描述符,能够在数据帧处理完成后,及时释放占用的内存空间,进一步减少内存占用,提高系统整体性能。
实施例三
参照图3,图3示出了本发明实施例三提供的数据帧处理的系统300的结构示意图。本实施例中的数据帧处理的系统300包括:生成模块310、数据帧保存模块320、第一更新模块330和第二更新模块340。
生成模块310,用于当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域。
数据帧保存模块320,用于若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位。
其中,缓冲区包括环形缓冲区。
第一更新模块330,用于根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小。
其中,以太网控制器包括第二寄存器。
第一更新模块330包括:第一保存单元和第一更新单元。
第一保存单元,用于删除第二寄存器中的信息,将接收描述符的大小和数据帧的大小之和保存到第二寄存器。
第一更新单元,用于当检测到第二寄存器更新时,将缓冲区的空闲空间大小减去第二寄存器中的信息得到缓冲区的更新后的空闲空间大小。
第二更新模块340,用于根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间首地址。
在本实施例中,通过生成模块,当接收到数据帧时,根据数据帧生成预设大小的接收描述符,接收描述符包括接收有效标志位和接收大小信息域;通过数据帧保存模块,若接收描述符的大小和数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将接收描述符和数据帧保存到缓冲区的空闲空间首地址指向的区域,将接收描述符的大小和数据帧的大小之和保存到接收大小信息域中,并在数据帧有效时,置位接收有效标志位;通过第一更新模块,根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间大小;通过第二更新模块,根据接收描述符的大小和数据帧的大小之和更新缓冲区的空闲空间首地址,从而可以有效解决内存占用过大,影响系统整体性能的问题,能够根据数据帧的大小动态使用内存,减少内存占用,提高系统整体性能,能够更好地适应内存紧张的嵌入式产品的应用场景。
实施例四
参照图4,图4示出了本发明实施例四提供的数据帧处理的系统300的结构示意图。在上述实施例的基础上,本实施例中的数据帧处理的系统300还包括:数据帧转交模块350、内存清空模块360、第三更新模块370和读指针处理模块380。
数据帧转交模块350,用于当读指针指向接收描述符时,若接收有效标志位置位,则根据接收描述符的大小计算得到数据帧的首地址,根据数据帧的首地址获取数据帧,并将数据帧转交给网络层处理。
内存清空模块360,用于若接收到网络层发送的数据处理完成信号,则将接收有效标志位复位,清空接收描述符和数据帧占用的缓冲区的内存空间。
第三更新模块370,用于根据接收大小信息域更新缓冲区的空闲空间大小。
其中,以太网控制器包括第一寄存器。
第三更新模块370包括:第二保存单元和第二更新单元。
第二保存单元,用于删除第一寄存器中的信息,将接收大小信息域中的信息保存到第一寄存器。
第二更新单元,用于当检测到第一寄存器更新时,将缓冲区的空闲空间大小加上第一寄存器中的信息得到缓冲区的更新后的空闲空间大小。
读指针处理模块380,用于根据接收大小信息域更新读指针,使读指针指向下一个待处理的数据帧对应的接收描述符。
在本实施例中,通过数据帧转交模块,当读指针指向接收描述符时,若接收有效标志位置位,则根据接收描述符的大小计算得到数据帧的首地址,根据数据帧的首地址获取数据帧,并将数据帧转交给网络层处理;通过内存清空模块,若接收到网络层发送的数据处理完成信号,则将接收有效标志位复位,清空接收描述符和数据帧占用的缓冲区的内存空间;通过第三更新模块,根据接收大小信息域更新缓冲区的空闲空间大小;通过读指针处理模块,根据接收大小信息域更新读指针,使读指针指向下一个待处理的数据帧对应的接收描述符,能够在数据帧处理完成后,及时释放占用的内存空间,进一步减少内存占用,提高系统整体性能。
实施例五
参照图5,本发明实施例还提供了一种以太网控制器5,包括存储器51、处理器50以及存储在存储器中并可在处理器上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现如上述实施例中所述的各方法实施例中的步骤,例如图1所示的步骤S101至步骤S104。或者,所述处理器50执行所述计算机程序52时实现如上述实施例中所述的各系统实施例中的各模块的功能,例如图3所示的模块310至340的功能。
所述以太网控制器可包括,但不仅限于,处理器50、存储器51。例如所述以太网控制器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述以太网控制器的内部存储单元,例如以太网控制器的硬盘或内存。所述存储器51也可以是所述以太网控制器的外部存储设备,例如所述以太网控制器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括以太网控制器的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序52以及所述以太网控制器所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
实施例六
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述实施例中所述的各方法实施例中的步骤,例如图1所示的步骤S101至步骤S104。或者,所述计算机程序被处理器执行时实现如上述实施例中所述的各系统实施例中的各模块的功能,例如图3所示的模块310至340的功能。
所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例系统中的模块或单元可以根据实际需要进行合并、划分和删减。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据帧处理的方法,其特征在于,应用于以太网控制器,所述方法包括:
当接收到数据帧时,根据所述数据帧生成预设大小的接收描述符,所述接收描述符包括接收有效标志位和接收大小信息域;
若所述接收描述符的大小和所述数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将所述接收描述符和所述数据帧保存到所述缓冲区的空闲空间首地址指向的区域,将所述接收描述符的大小和所述数据帧的大小之和保存到所述接收大小信息域中,并在所述数据帧有效时,置位所述接收有效标志位;
根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间大小;
根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间首地址。
2.根据权利要求1所述的数据帧处理的方法,其特征在于,所述缓冲区包括读指针;
在根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间首地址之后,还包括:
当所述读指针指向所述接收描述符时,若所述接收有效标志位置位,则根据所述接收描述符的大小计算得到所述数据帧的首地址,根据所述数据帧的首地址获取所述数据帧,并将所述数据帧转交给网络层处理;
若接收到所述网络层发送的数据处理完成信号,则将所述接收有效标志位复位,清空所述接收描述符和所述数据帧占用的所述缓冲区的内存空间;
根据所述接收大小信息域更新所述缓冲区的空闲空间大小;
根据所述接收大小信息域更新所述读指针,使所述读指针指向下一个待处理的数据帧对应的接收描述符。
3.根据权利要求2所述的数据帧处理的方法,其特征在于,所述以太网控制器包括第一寄存器;
所述根据所述接收大小信息域更新所述缓冲区的空闲空间大小,包括:
删除所述第一寄存器中的信息,将所述接收大小信息域中的信息保存到所述第一寄存器;
当检测到所述第一寄存器更新时,将所述缓冲区的空闲空间大小加上所述第一寄存器中的信息得到所述缓冲区的更新后的空闲空间大小。
4.根据权利要求1所述的数据帧处理的方法,其特征在于,所述以太网控制器包括第二寄存器;
所述根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间大小,包括:
删除所述第二寄存器中的信息,将所述接收描述符的大小和所述数据帧的大小之和保存到所述第二寄存器;
当检测到所述第二寄存器更新时,将所述缓冲区的空闲空间大小减去所述第二寄存器中的信息得到所述缓冲区的更新后的空闲空间大小。
5.根据权利要求1至4任一项所述的数据帧处理的方法,其特征在于,所述缓冲区包括环形缓冲区。
6.一种数据帧处理的系统,其特征在于,应用于以太网控制器,所述系统包括:
生成模块,用于当接收到数据帧时,根据所述数据帧生成预设大小的接收描述符,所述接收描述符包括接收有效标志位和接收大小信息域;
数据帧保存模块,用于若所述接收描述符的大小和所述数据帧的大小之和小于或者等于缓冲区的空闲空间大小,则将所述接收描述符和所述数据帧保存到所述缓冲区的空闲空间首地址指向的区域,将所述接收描述符的大小和所述数据帧的大小之和保存到所述接收大小信息域中,并在所述数据帧有效时,置位所述接收有效标志位;
第一更新模块,用于根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间大小;
第二更新模块,用于根据所述接收描述符的大小和所述数据帧的大小之和更新所述缓冲区的空闲空间首地址。
7.根据权利要求6所述的数据帧处理的系统,其特征在于,所述缓冲区包括读指针,所述系统还包括:
数据帧转交模块,用于当所述读指针指向所述接收描述符时,若所述接收有效标志位置位,则根据所述接收描述符的大小计算得到所述数据帧的首地址,根据所述数据帧的首地址获取所述数据帧,并将所述数据帧转交给网络层处理;
内存清空模块,用于若接收到所述网络层发送的数据处理完成信号,则将所述接收有效标志位复位,清空所述接收描述符和所述数据帧占用的所述缓冲区的内存空间;
第三更新模块,用于根据所述接收大小信息域更新所述缓冲区的空闲空间大小;
读指针处理模块,用于根据所述接收大小信息域更新所述读指针,使所述读指针指向下一个待处理的数据帧对应的接收描述符。
8.根据权利要求7所述的数据帧处理的系统,其特征在于,所述以太网控制器包括第一寄存器,所述第三更新模块包括:
第二保存单元,用于删除所述第一寄存器中的信息,将所述接收大小信息域中的信息保存到所述第一寄存器;
第二更新单元,用于当检测到所述第一寄存器更新时,将所述缓冲区的空闲空间大小加上所述第一寄存器中的信息得到所述缓冲区的更新后的空闲空间大小。
9.一种以太网控制器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述数据帧处理的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据帧处理的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711392942.9A CN108259380A (zh) | 2017-12-21 | 2017-12-21 | 数据帧处理的方法、系统及以太网控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711392942.9A CN108259380A (zh) | 2017-12-21 | 2017-12-21 | 数据帧处理的方法、系统及以太网控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108259380A true CN108259380A (zh) | 2018-07-06 |
Family
ID=62723450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711392942.9A Pending CN108259380A (zh) | 2017-12-21 | 2017-12-21 | 数据帧处理的方法、系统及以太网控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259380A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948134A (zh) * | 2019-12-10 | 2021-06-11 | 天津光电通信技术有限公司 | 通信数据追溯采集方法、装置、服务器及存储介质 |
CN113835891A (zh) * | 2021-09-24 | 2021-12-24 | 哲库科技(北京)有限公司 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805816A (en) * | 1992-05-12 | 1998-09-08 | Compaq Computer Corp. | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5948079A (en) * | 1997-12-19 | 1999-09-07 | Advanced Micro Devices, Inc. | System for non-sequential transfer of data packet portions with respective portion descriptions from a computer network peripheral device to host memory |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
CN101110779A (zh) * | 2007-07-13 | 2008-01-23 | 中兴通讯股份有限公司 | 一种经快速输入输出端口到以太网端口数据传输的方法 |
CN102065569A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种适用于wlan的以太网mac子层控制器 |
CN102255818A (zh) * | 2011-08-26 | 2011-11-23 | 迈普通信技术股份有限公司 | 一种驱动接收报文的方法及装置 |
CN103095607A (zh) * | 2013-02-21 | 2013-05-08 | 南京磐能电力科技股份有限公司 | 一种实时优先级以太网控制器实现方法 |
-
2017
- 2017-12-21 CN CN201711392942.9A patent/CN108259380A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805816A (en) * | 1992-05-12 | 1998-09-08 | Compaq Computer Corp. | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5948079A (en) * | 1997-12-19 | 1999-09-07 | Advanced Micro Devices, Inc. | System for non-sequential transfer of data packet portions with respective portion descriptions from a computer network peripheral device to host memory |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
CN101110779A (zh) * | 2007-07-13 | 2008-01-23 | 中兴通讯股份有限公司 | 一种经快速输入输出端口到以太网端口数据传输的方法 |
CN102065569A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种适用于wlan的以太网mac子层控制器 |
CN102255818A (zh) * | 2011-08-26 | 2011-11-23 | 迈普通信技术股份有限公司 | 一种驱动接收报文的方法及装置 |
CN103095607A (zh) * | 2013-02-21 | 2013-05-08 | 南京磐能电力科技股份有限公司 | 一种实时优先级以太网控制器实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948134A (zh) * | 2019-12-10 | 2021-06-11 | 天津光电通信技术有限公司 | 通信数据追溯采集方法、装置、服务器及存储介质 |
CN113835891A (zh) * | 2021-09-24 | 2021-12-24 | 哲库科技(北京)有限公司 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275841A (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN109559226A (zh) | 区块链交易执行方法、系统及电子设备和存储介质 | |
CN109614377A (zh) | 分布式文件系统的文件删除方法、装置、设备及存储介质 | |
CN106997577A (zh) | 一种订单策略动态调整方法及装置 | |
CN110489405B (zh) | 数据处理的方法、装置和服务器 | |
CN112395247A (zh) | 数据的处理方法、存算一体芯片 | |
CN107742336A (zh) | 一种用于共享单车智能锁的数据传输方法及终端设备 | |
CN108052396A (zh) | 一种资源分配方法及系统 | |
CN110675183B (zh) | 一种营销对象的确定方法、营销推广方法及相关装置 | |
CN108052279A (zh) | 一种提升闪存性能的方法、装置、设备及存储介质 | |
US11615607B2 (en) | Convolution calculation method, convolution calculation apparatus, and terminal device | |
CN108259380A (zh) | 数据帧处理的方法、系统及以太网控制器 | |
CN110209493A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN111860927B (zh) | 模型的训练方法、服务请求处理方法、装置、设备及介质 | |
CN106372008A (zh) | 一种数据缓存方法及装置 | |
CN115827506A (zh) | 数据写入方法、数据读取方法、装置、处理核和处理器 | |
CN107704268A (zh) | Md5哈希函数计算方法、系统及计算机可读存储介质 | |
CN106445472A (zh) | 一种字符操作加速方法、装置、芯片、处理器 | |
CN116166583B (zh) | 一种数据精度的转换方法、装置、dma控制器及介质 | |
CN109508782A (zh) | 基于神经网络深度学习的加速电路和方法 | |
CN108763517A (zh) | 一种删除元数据的方法以及相关设备 | |
CN115904259B (zh) | 非易失性存储器标准NVMe指令的处理方法及相关装置 | |
CN110399219A (zh) | 内存访问方法、dmc及存储介质 | |
CN111858665B (zh) | 一种提升软拷贝读性能的方法、系统、终端及存储介质 | |
CN108733489A (zh) | 数据处理方法、装置、电子设备和存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180706 |