CN109413122A - 一种数据处理方法、网络处理器及计算机存储介质 - Google Patents

一种数据处理方法、网络处理器及计算机存储介质 Download PDF

Info

Publication number
CN109413122A
CN109413122A CN201710703285.9A CN201710703285A CN109413122A CN 109413122 A CN109413122 A CN 109413122A CN 201710703285 A CN201710703285 A CN 201710703285A CN 109413122 A CN109413122 A CN 109413122A
Authority
CN
China
Prior art keywords
storage unit
data
statistical
network processing
move
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
Application number
CN201710703285.9A
Other languages
English (en)
Other versions
CN109413122B (zh
Inventor
刘振伟
包闯
王晓泾
陈西
闫振林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201710703285.9A priority Critical patent/CN109413122B/zh
Publication of CN109413122A publication Critical patent/CN109413122A/zh
Application granted granted Critical
Publication of CN109413122B publication Critical patent/CN109413122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据处理方法,所述方法应用于包括数据缓存单元的网络处理器,所述方法包括:对待统计数据队列中的数据进行统计,获取统计数据;当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元。本发明实施例同时还公开了一种网络处理器及计算机存储介质。

Description

一种数据处理方法、网络处理器及计算机存储介质
技术领域
本发明涉及网络通讯领域,尤其涉及一种数据处理方法、网络处理器及计算机存储介质。
背景技术
网络处理器(NP,Network Processor)是为网络应用领域设计的专用指令处理器(ASIP,Application Specific Instruction Process),ASIP具有自己的结构特征和专门的电路设计以适用于网络分组处理,同时ASIP又是一块软件可编程芯片,使得网络系统能够具备高性能和灵活性。
随着通信网络迅速发展,对网络处理器性能的要求也日益增加。由于业务复杂度的提升,使得网络处理器在队列统计计数时占用大量的存储资源。通常情况下,网络处理器计数受限于片内存储资源容量和片外存储速率。目前,片内统计适合统计队列较少,或者片内存储资源充裕的情况,而片外统计适合统计较大队列,对线速不敏感的情况,可以通过片外复制来提高线速。然而,由于受片内存储资源的限制,在片内存储的资源不充足,特别是当统计队列较多的情况下,会发生统计数据的溢出从而导致统计数据丢失的问题,影响统计结果。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据处理方法、网络处理器及计算机存储介质,旨在通过搬移统计提升统计计数性能,防止统计数据丢失。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理方法,所述方法应用于包括数据缓存单元的网络处理器,所述方法包括:
对待统计数据队列中的数据进行统计,获取统计数据;
当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;
将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元。
上述方案中,所述方法还包括:
当对所述待统计数据队列中的数据进行统计时,开始搬移计时。
上述方案中,所述将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,包括:
当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元进行检测;
当检测到所述数据缓存单元中有统计数据时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
上述方案中,所述将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,还包括:
对存入所述数据缓存单元中的统计数据量进行检测;
当检测到存入所述数据缓存单元中的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
上述方案中,所述方法还包括:
当所述统计数据未超出预设的统计阈值时,将所述统计数据存入片内存储单元;所述片内存储单元为设置在网络处理器内部的存储单元。
上述方案中,所述方法还包括:
当未检测到所述数据缓存单元中有统计数据时,将保存在所述片内存储单元中的统计数据搬移到与所述网络处理器外接的存储单元。
第二方面,本发明实施例提供了一种网络处理器,所述网络处理器包括:运算单元和数据缓存单元;所述运算单元进一步包括:一级运算单元和二级运算单元;其中,
所述一级运算单元,配置为对待统计数据队列中的数据进行统计,获取统计数据;当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;
所述二级运算单元,配置为将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元;
所述数据缓存单元,配置为存储所述一级运算单元所统计的数据。
上述方案中,所述二级运算单元还包括:定时搬移子单元;其中,
所述定时搬移子单元,配置为当所述一级运算单元对待统计的数据队列进行统计时,开始搬移计时。
上述方案中,所述网络处理器还包括:片内存储单元;其中,
所述片内存储单元,配置为存储所述一级运算单元所获取的统计数据;所述片内存储单元为设置在网络处理器内部的存储单元。
上述方案中,所述二级运算单元还包括:搬移仲裁子单元;其中,
所述搬移仲裁子单元,配置为将存储于所述数据缓存单元的统计数据写入所述与所述网络处理器外接的存储单元;或者,将存储于所述片内存储单元的统计数据写入所述与所述网络处理器外接的存储单元。
上述方案中,所述二级运算单元还包括:溢出搬移子单元;其中,
所述溢出搬移子单元,配置为当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元进行检测;
所述搬移仲裁子单元,配置为当所述溢出搬移子单元检测到所述数据缓存单元中有统计数据时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
上述方案中,所述数据缓存单元,配置为对存入的统计数据量进行检测;
所述二级运算单元,配置为当所述数据缓存单元检测到存入的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
上述方案中,所述一级运算单元,配置为当所述统计数据未超出预设的统计阈值时,将所述统计数据存入所述片内存储单元。
上述方案中,所述搬移仲裁子单元,配置为当所述溢出搬移子单元未检测到所述数据缓存单元中有统计数据时,将保存在所述片内存储单元中的统计数据搬移到所述与所述网络处理器外接的存储单元。
上述方案中,所述网络处理器还包括调度仲裁单元:
所述调度仲裁单元,配置为当所述一级运算单元与所述二级运算单元在同一个周期内均调用所述片内存储单元时,指示所述二级运算单元优先调用所述片内存储单元。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现上述数据处理方法的步骤。
本发明实施例提供了一种数据处理方法、网络处理器及计算机存储介质,通过对待统计数据队列中的数据进行统计,获取统计数据,然后在统计数据超出预设的统计阈值时,将统计数据存入数据缓存单元,最后将数据缓存单元中的统计数据按照预设的搬移策略搬移至与网络处理器外接的存储单元,通过上述搬移统计过程提升了统计计数性能,防止统计数据溢出造成的数据丢失。
附图说明
图1为本发明实施例提供的统计计数结构示意图;
图2为本发明实施例提供的片内和片外统计示意图;
图3为本发明实施例一提供的一种数据处理方法流程示意图一;
图4为本发明实施例提供的搬移统计实现原理示意图;
图5为本发明实施例一提供的一种数据处理方法流程示意图二;
图6为本发明实施例一提供的一种数据处理方法流程示意图三;
图7为本发明实施例一提供的片内存储单元与片外存储单元关系示意图;
图8为本发明实施例一提供的搬移统计计数器位宽扩展示意图;
图9为本发明实施例二提供的网络处理器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图1,图1示出了本发明实施例提供的网络处理器中的统计计数结构。模块101为统计参数配置模块,通过配置可以选择特定的队列区间进行统计;为每个计数器组选择要统计的计数类型,如包计数、字节计数;为每个计数器组配置存储位置,如片内统计、片外统计;是否开启搬移统计、搬移统计周期配置以及搬移统计计数类型选择。
模块102为统计请求解析模块,根据参数配置的队列区间,将统计请求中的队列,重新转化为由需要统计的队列区间组成的新的队列地址,用新的队列地址作为偏移地址与基地址相加,既可以得到统计地址。同时解析模块需要解析各种异常情况,并将非配置选择计数与异常情况丢弃。
统计运算单元包括片外统计运算单元103、搬移统计一级运算单元105、搬移统计二级运算单元106和片内统计运算单元107),需要根据统计请求解析模块解析得到的不同的统计请求完成统计任务,主要包括统计数据的运算,数据地址的冲突处理。其中,片内统计与片外统计只有一个对应的运算单元,搬移统计需要通过片内存储作为缓存,因此具有两级存储单元,分别对片内存储单元108与片外存储单元104。
参见图2,图2为现有技术中的片内和片外统计示意图。统计请求解析模块202接收统计请求模块201发送的统计请求,并对统计请求进行解析。具体地,片外统计过程为:片外统计请求调度模块203接收解析后的统计请求,由统计处理单元204进行片外统计,然后将片外统计结果保存至片外存储单元205;片内统计过程为:片内统计请求调度模块206接收解析后的统计请求,由统计处理单元207进行片内统计,然后将片内统计结果保存至片内存储单元208。
片内统计适合统计队列较少,或片内存储资源充裕的情况,或者与搬移统计同时使用,具有更灵活的计数器类型选择配置。片外统计适合统计较大队列,对线速不敏感的情况,可以通过片外复制来提高线速,或者作为搬移统计计数的补充,优点存储空间大,缺点速度较慢。
上述搬移统计为:固定独享少量的片内存储资源作为缓存,再通过一定时间搬移周期,将片内缓存以及FIFO中的数据,搬移到片外存储单元中,完成最终统计任务,搬移统计的优点为只需使用较少的片内存储资源作为缓存,在满足线速的同时,对较大的队列进行统计。
实施例一
参见图3,其示出了本发明实施例提供的一种数据处理方法,所述方法应用于包括数据缓存单元的网络处理器,所述方法包括:
S101、对待统计数据队列中的数据进行统计,获取统计数据。
需要说明的是,网络处理器中还包括运算单元,运算单元进一步包括一级运算单元和二级运算单元,对待统计的数据队列进行统计,获取统计数据是由一级运算单元完成的。一级运算单元接受统计请求,一级运算单元中的计数器对统计请求中携带的数据队列进行计数,获取统计数据。
S102、当统计数据超出预设的统计阈值时,将统计数据存入数据缓存单元。
需要说明的是,预设的统计阈值为一级运算单元中的计数器的计数上限值,当统计数据超出预设的统计阈值时,说明当前统计数据溢出。此时,需要将统计数据存入数据缓存单元,这里,数据缓存单元可以是FIFO。为了保证统计结果不因计数器溢出而产生数据丢失,在一级运算单元中,当计数器溢出时,将统计数据存入数据缓存单元。
具体地,将统计数据存入FIFO的方法可以为:将所获取的统计数据与待统计的数据队列号按照预设的组合方式进行组合并写入FIFO中。在将统计数据存入FIFO的过程中,每个路径的一级运算单元均有一个FIFO来缓存溢出的统计数据。参见图4,图4中搬移统计一级运算单元_0与溢出缓存FIFO0相连接对应一条路径,搬移统计一级运算单元_1与溢出缓存FIFO1相连接对应一条路径,搬移统计一级运算单元_2与溢出缓存FIFO2相连接对应一条路径,搬移统计一级运算单元_3与溢出缓存FIFO3相连接时对应每个路径对应的FIFO,上述每条路径中的FIFO分别对应缓存相应的统计数据。
S103、将数据缓存单元中的统计数据按照预设的搬移策略搬移至与网络处理器外接的存储单元。
需要说明的是,与网络处理器外接的存储单元即为片外存储单元,片外存储单元用于存储从数据缓存单元搬移的统计数据。由于数据缓存单元只用于暂时对统计数据进行保存,因此,需要将缓存在数据缓存单元中的数据进行搬移。检测存入数据缓存单元的所述统计数据是否需要进行搬移。若检测到存入数据缓存单元的统计数据需要搬移,则将存入数据缓存单元中的统计数据搬移到片外存储单元。这样便实现了将网络处理器片内的数据搬移到片外。
对于图3所示的技术方案,所述方法还包括:
当对待统计的数据队列中的数据进行统计时,开始搬移计时。
需要说明的是,在一级运算单元对待统计的数据队列进行统计时,二级运算单元中的定时搬移子单元开始进行搬移计时。
另外,上述步骤S103可以由两种方式实现,第一种方式为以搬移计时满足预设的搬移时间为触发条件,开始对数据缓存单元中的数据进行检测,从而确定是否需要将数据缓存单元中的数据进行搬移,具体的由下述步骤S103a1和S103a2实现。第二种方式为以数据缓存单元检测自身所存入的统计数据是否超过预设的数据缓存单元容量占比为条件,从而确定是否需要将数据缓存单元中的数据进行搬移,具体的由下述步骤S103b1和S103b2实现。下面对上述两种实现方式进行具体说明:
对于第一种方式,参见图5,S103包括S103a1和S103a2:
S103a1、当搬移计时满足预设的搬移时间时,开始对数据缓存单元进行检测。
需要说明的是,当定时搬移子单元所记录的搬移时间到达的预设的搬移时间时,二级运算单元中的溢出搬移子单元开始对数据缓存单元中是否有统计数据进行检测。这里,搬移计时满足预设的搬移时间是对数据缓存单元进行检测的一个触发条件。
S103a2、当检测到数据缓存单元中有统计数据时,将存入数据缓存单元的统计数据搬移至与网络处理器外接的存储单元。
需要说明的是,若数据缓存单元中有统计数据,说明需要对数据缓存单元中的统计数据进行搬移。由于在当前检测之前在片外存储单元中已经存储了由数据缓存单元搬移过去的统计数据,因此,当检测到数据缓存单元中有统计数据时,根据数据缓存单元中的统计数据地址信息读取对应的片外存储单元中的统计数据,然后再将片外存储单元中的统计数据与数据缓存单元中存储的统计数据相加,并一起写入片外存储单元中。
对于第二种方式,参见图6,S103还包括S103b1和S103b2:
S103b1、对存入数据缓存单元中的统计数据量进行检测。
S103b2、当检测到存入数据缓存单元中的统计数据量超过预设的数据缓存单元容量占比时,将存入数据缓存单元的统计数据搬移至与网络处理器外接的存储单元。
需要说明的是,数据缓存单元容量占比为存入数据缓存单元的统计数据与数据缓存单元的总容量之比。设置一个预设的数据缓存单元容量占比作为将数据缓存单元的统计数据搬移至网络处理器外接的存储单元的触发条件。当检测到存入数据缓存单元中的统计数据量超过预设的数据缓存单元容量占比时,说明需要将存入数据缓存单元的统计数据搬移至与网络处理器外接的存储单元,以防止数据溢出,造成数据丢失。
对于图3所示的技术方案,所述方法还包括:
当统计数据未超出预设的统计阈值时,将统计数据存入片内存储单元;所述片内存储单元为设置在网络处理器内部的存储单元。
需要说明的是,若统计数据未超出预设的统计阈值,则说明一级运算单元的计数器在对待统计的数据队列进行统计时并未溢出,此时,将统计数据存入片内存储单元即可。
具体地,由于数据队列的队列号为固定范围的数值,因此可以直接将数据队列的队列号作为片内存储单元的统计地址,分配固定的片内存储空间作为一级运算单元所统计到的数据的缓存空间。当统计数据未溢出时,将统计结果缓存到在片内存储单元所对应的缓存空间。
对于图3所示的技术方案,所述方法还包括:
当未检测到数据缓存单元中有统计数据时,将保存在片内存储单元中的统计数据搬移到片外存储单元。
需要说明的是,片外存储单元还用于存储从片内存储单元搬移的统计数据。当未检测到数据缓存单元中有统计数据时,说明一级运算单元的统计数据未存入数据缓存单元,而是存入了片内存储单元。因此,将将保存在片内存储单元中的统计数据搬移到片外存储单元。
具体地,搬移时按照队列号顺序搬移片内存储单元中所存储的统计结果。为提高片外存储单元的带宽利用率,定时搬移子单元会同时向一级运算单元0和一级运算单元1或者一级运算单元2和一级运算单元3的缓存统计结果同时发送请求,一次搬移两组计数结果。例如,一级运算单元0和一级运算单元1由二级运算单元0中的定时搬移子单元0控制,一级运算单元2和一级运算单元3由二级运算单元1的定时搬移子单元1控制,一级运算单元0、一级运算单元1、一级运算单元2、一级运算单元3的统计结果可以同时搬移至片外存储单元。
还需要说明的是,在利用上述方法设计网络处理器之前,为了提高统计速度,防止统计数据溢出,需要对片内统计包计数器和字节计数器的位宽进行计算,还需要对搬移过程中的溢出次数进行计算。
对片内统计包计数器和字节计数器的位宽进行计算的过程如下:
为提高统计速度,将包统计和字节统计绑定为一组统计计数,设一组统计计数片内缓存位宽为N bit,总位宽N由包位宽和字节位宽组成,其中,数据包统计的包位宽为x2、字节统计的字节位宽x1
以包计数和字节计数两种计数类型对数据队列进行统计。在X MHz系统时钟,YMpps包转发速率条件下,每个数据包的平均字节数由下述式(1)进行计算:
Z=Y/8/X (1)
其中,上述式(1)中,参数Y的单位为G,参数X的单位为M,分别表示吉和兆。
当Y=X时,包数加1,即1个周期增加1个数据包。这样字节溢出需个周期,包溢出需个周期,则得出下述式(2):
将式(2)整理得式(3):
x1=x2+log2Z (3)
又由于总位宽N由包位宽和字节位宽组成,因此得出下述式(4):
x1+x2=N (4)
根据式(3)和式(4)可以计算出字节位宽x1和包位宽为x2。由于统计计数器的位宽为整数,因此将计算结果取整后可以得到字节位宽x1和包位宽为x2。由于N为包和字节统计计数器总位宽,为片内存储分配更易实现,这里设置N为32bit。
参见图7,图7为片内存储单元与片外存储单元关系示意图。图7示出了片内存储单元的存储空间与片外存储单元存储空间之间对应的存储关系。具体地,参见图8,图8为搬移统计计数器位宽扩展示意图。如图8所示,片内存储单元的包和字节计数0总位宽与片内存储单元的包和字节计数1总位宽之和为64bit。片内存储单元的包和字节计数0总位宽为32bit,即图示中的包计数0和字节计数0总位宽为32bit。与片外存储单元对应时,将片内存储单元的包计数0位宽扩展为64bit,将字节计数0位宽也扩展为64bit。同样的,片内存储单元的包和字节计数1总位宽也为32bit,经过扩展后,与片外存储单元相对应的,将片内存储单元的包计数1位宽扩展为64bit,将字节计数1位宽也扩展为64bit。这样,保证了片外存储单元对片内存储单元的存储空间。
举例来说,设片内存储单元的包计数0位宽为12bit,字节计数0位宽为20bit,那么在片外存储单元中,将包计数0位宽12bit扩展为64bit,同样的,将字节计数0位宽20bit扩展为64bit。如此,将片内存储单元的包和字节计数0与包和字节计数1的位宽64bit扩展为了片外存储单元的256bit。
在根据统计需求,确定好片内统计包计数器与字节计数器的位宽之后,需要根据片外存储单元的存储性能,计算出搬移统计过程中一级运算单元的溢出次数。这里将数据缓存单元配置为FIFO存储器,搬移过程的溢出次数计算如下:
假设在总搬移周期内每个片内统计计数的最大溢出次数为H,则对应的FIFO深度也应为H。这里,FIFO的深度是指FIFO可以存储多少个N位的数据。举例来说,如一个8位的FIFO,若深度为8,它可以存储8个8位的数据;深度为12,就可以存储12个8位的数据。
设片外存储单元的读写性能为P,最多T=X/(P/2)个周期内发出一次查询片外存储单元的请求,因此每组FIFO所需的搬移时间为H×T个周期。这里,片外存储单元的读写性能P为片外存储单元的读写速度,X为系统时钟。
每组统计计数中的2个片内缓存同时进行搬移,所需时间为Z×T=T×Z个周期。这里,Z×T=T×Z是指2个片内缓存搬移周期相同。
根据上述过程可得总搬移周期为下述式(5):
T×Z+T×H+冗余周期 (5)
其中,式(5)中的冗余周期分配给CPU作查询。
因此,溢出次数可由下述式(6)进行计算:
经过整理得到式(7):
其中,上述式(5)、(6)、(7)中的Z表示系统的队列大小,单位为K。
通过上述计算过程可以计算出溢出FIFO的理论所需深度,同时考虑到片外存储性能的不稳定性,为提高系统工作效率减少溢出FIFO对前级请求反压,可以在溢出FIFO深度设置时留出合适的余量。整个搬移统计在芯片运行时,可以更好的工作。
本发明实施例提供了一种数据处理方法,通过对待统计数据队列中的数据进行统计,获取统计数据,然后在统计数据超出预设的统计阈值时,将统计数据存入数据缓存单元,最后将数据缓存单元中的统计数据按照预设的搬移策略搬移至与网络处理器外接的存储单元,提升了统计计数性能,防止统计数据溢出造成的数据丢失。
实施例二
参见图9,其示出了本发明实施例提供的一种网络处理器,所述网络处理器包括:运算单元11和数据缓存单元12;所述运算单元11进一步包括:一级运算单元111和二级运算单元112;其中,
所述一级运算单元111,配置为对待统计数据队列中的数据进行统计,获取统计数据;当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元12;
所述二级运算单元112,配置为将所述数据缓存单元12中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元;
所述数据缓存单元12,配置为存储所述一级运算单元111所统计的数据。
对于图9所示的技术方案,在一种可能的实现方式中,所述二级运算单元112还包括:定时搬移子单元1121;其中,
所述定时搬移子单元1121,配置为当所述一级运算单元111对待统计的数据队列进行统计时,开始搬移计时。
对于图9所示的技术方案,在一种可能的实现方式中,所述网络处理器还包括:片内存储单元13;其中,
所述片内存储单元13,配置为存储所述一级运算单元111所获取的统计数据;所述片内存储单元13为设置在网络处理器内部的存储单元。
对于图9所示的技术方案,在一种可能的实现方式中,所述二级运算单元112还包括:搬移仲裁子单元1122;其中,
所述搬移仲裁子单元1122,配置为将存储于所述数据缓存单元12的统计数据写入所述与所述网络处理器外接的存储单元;或者,将存储于所述片内存储单元13的统计数据写入所述与所述网络处理器外接的存储单元。
对于图9所示的技术方案,在一种可能的实现方式中,所述二级运算单元112还包括:溢出搬移子单元1123;其中,
所述溢出搬移子单元1123,配置为当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元12进行检测;
所述搬移仲裁子单元1122,配置为当所述溢出搬移子单元1123检测到所述数据缓存单元12中有统计数据时,将存入所述数据缓存单元12的统计数据搬移至与所述网络处理器外接的存储单元。
对于图9所示的技术方案,在一种可能的实现方式中,所述数据缓存单元12,配置为对存入的统计数据量进行检测;
所述二级运算单元112,配置为当所述数据缓存单元12检测到存入的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元12的统计数据搬移至与所述网络处理器外接的存储单元。
对于图9所示的技术方案,在一种可能的实现方式中,所述一级运算单元111,配置为当所述统计数据未超出预设的统计阈值时,将所述统计数据存入所述片内存储单元13。
对于图9所示的技术方案,在一种可能的实现方式中,所述搬移仲裁子单元1122,配置为当所述溢出搬移子单元1123未检测到所述数据缓存单元12中有统计数据时,将保存在所述片内存储单元13中的统计数据搬移到所述与所述网络处理器外接的存储单元。
对于图9所示的技术方案,在一种可能的实现方式中,所述网络处理器还包括调度仲裁单元14:
所述调度仲裁单元14,配置为当所述一级运算单元111与所述二级运算单元112在同一个周期内均调用所述片内存储单元13时,指示所述二级运算单元112优先调用所述片内存储单元13。
下面结合图4对上述网络处理器内部各模块的连接关系进行说明:
参见图4,图4为搬移统计实现原理示意图。图4中搬移统计一级运算单元_0、搬移统计一级运算单元_1、搬移统计一级运算单元_2、搬移统计一级运算单元_3分别与溢出缓存FIFO0、溢出缓存FIFO1、溢出缓存FIFO2、溢出缓存FIFO3以及调度仲裁单元相连接。此外,搬移统计一级运算单元_0、搬移统计一级运算单元_1、搬移统计一级运算单元_2、搬移统计一级运算单元_3均与统计请求模块相连接。
搬移统计二级运算单元0包括溢出搬移子单元0、定时搬移子单元0和搬移仲裁子单元0,搬移统计二级运算单元1包括溢出搬移子单元1、定时搬移子单元1和搬移仲裁子单元1。溢出缓存FIFO0和溢出缓存FIFO1分别与溢出搬移子单元0相连接,溢出缓存FIFO2和溢出缓存FIFO3分别与溢出搬移子单元1相连接。调度仲裁单元分别与定时搬移子单元0和定时搬移子单元1相连接,还与片内存储单元相连接。片外存储单元分别与搬移仲裁子单元0和搬移仲裁子单元1相连接。
本发明实施例提供了一种网络处理器,通过对待统计数据队列中的数据进行统计,获取统计数据,然后在统计数据超出预设的统计阈值时,将统计数据存入数据缓存单元,最后将数据缓存单元中的统计数据按照预设的搬移策略搬移至与网络处理器外接的存储单元,提升了统计计数性能,防止统计数据溢出造成的数据丢失。
实施例三
本发明实施例还提供一种计算机可读存储介质,本实施例中的一种数据处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种数据处理方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:
对待统计数据队列中的数据进行统计,获取统计数据;
当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;
将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元。
可选的,存储介质中存储的与步骤还包括:
当对所述待统计数据队列中的数据进行统计时,开始搬移计时。
可选的,存储介质中存储的与步骤:将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,包括:
当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元进行检测;
当检测到所述数据缓存单元中有统计数据时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
可选的,存储介质中存储的与步骤:将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,还包括:
对存入所述数据缓存单元中的统计数据量进行检测;
当检测到存入所述数据缓存单元中的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
可选的,存储介质中存储的与步骤还包括:
当所述统计数据未超出预设的统计阈值时,将所述统计数据存入片内存储单元;所述片内存储单元为设置在网络处理器内部的存储单元。
可选的,存储介质中存储的与步骤还包括:
当未检测到所述数据缓存单元中有统计数据时,将保存在所述片内存储单元中的统计数据搬移到与所述网络处理器外接的存储单元。
本发明实施例提供了一种计算机存储介质,通过对待统计数据队列中的数据进行统计,获取统计数据,然后在统计数据超出预设的统计阈值时,将统计数据存入数据缓存单元,最后将数据缓存单元中的统计数据按照预设的搬移策略搬移至与网络处理器外接的存储单元,提升了统计计数性能,防止统计数据溢出造成的数据丢失。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (16)

1.一种数据处理方法,其特征在于,所述方法应用于包括数据缓存单元的网络处理器,所述方法包括:
对待统计数据队列中的数据进行统计,获取统计数据;
当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;
将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述待统计数据队列中的数据进行统计时,开始搬移计时。
3.根据权利要求2所述的方法,其特征在于,所述将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,包括:
当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元进行检测;
当检测到所述数据缓存单元中有统计数据时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
4.根据权利要求1所述的方法,其特征在于,所述将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元,还包括:
对存入所述数据缓存单元中的统计数据量进行检测;
当检测到存入所述数据缓存单元中的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述统计数据未超出预设的统计阈值时,将所述统计数据存入片内存储单元;所述片内存储单元为设置在网络处理器内部的存储单元。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当未检测到所述数据缓存单元中有统计数据时,将保存在所述片内存储单元中的统计数据搬移到与所述网络处理器外接的存储单元。
7.一种网络处理器,其特征在于,所述网络处理器包括:运算单元和数据缓存单元;所述运算单元进一步包括:一级运算单元和二级运算单元;其中,
所述一级运算单元,配置为对待统计数据队列中的数据进行统计,获取统计数据;当所述统计数据超出预设的统计阈值时,将所述统计数据存入数据缓存单元;
所述二级运算单元,配置为将所述数据缓存单元中的统计数据按照预设的搬移策略搬移至与所述网络处理器外接的存储单元;
所述数据缓存单元,配置为存储所述一级运算单元所统计的数据。
8.根据权利要求7所述的网络处理器,其特征在于,所述二级运算单元还包括:定时搬移子单元;其中,
所述定时搬移子单元,配置为当所述一级运算单元对待统计的数据队列进行统计时,开始搬移计时。
9.根据权利要求7所述的网络处理器,其特征在于,所述网络处理器还包括:片内存储单元;其中,
所述片内存储单元,配置为存储所述一级运算单元所获取的统计数据;所述片内存储单元为设置在网络处理器内部的存储单元。
10.根据权利要求7所述的网络处理器,其特征在于,所述二级运算单元还包括:搬移仲裁子单元;其中,
所述搬移仲裁子单元,配置为将存储于所述数据缓存单元的统计数据写入所述与所述网络处理器外接的存储单元;或者,将存储于所述片内存储单元的统计数据写入所述与所述网络处理器外接的存储单元。
11.根据权利要求7所述的网络处理器,其特征在于,所述二级运算单元还包括:溢出搬移子单元;其中,
所述溢出搬移子单元,配置为当所述搬移计时满足预设的搬移时间时,开始对所述数据缓存单元进行检测;
所述搬移仲裁子单元,配置为当所述溢出搬移子单元检测到所述数据缓存单元中有统计数据时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
12.根据权利要求7所述的网络处理器,其特征在于,
所述数据缓存单元,配置为对存入的统计数据量进行检测;
所述二级运算单元,配置为当所述数据缓存单元检测到存入的统计数据量超过预设的数据缓存单元容量占比时,将存入所述数据缓存单元的统计数据搬移至与所述网络处理器外接的存储单元。
13.根据权利要求7所述的网络处理器,其特征在于,
所述一级运算单元,配置为当所述统计数据未超出预设的统计阈值时,将所述统计数据存入所述片内存储单元。
14.根据权利要求7所述的网络处理器,其特征在于,
所述搬移仲裁子单元,配置为当所述溢出搬移子单元未检测到所述数据缓存单元中有统计数据时,将保存在所述片内存储单元中的统计数据搬移到所述与所述网络处理器外接的存储单元。
15.根据权利要求7所述的网络处理器,其特征在于,所述网络处理器还包括调度仲裁单元:
所述调度仲裁单元,配置为当所述一级运算单元与所述二级运算单元在同一个周期内均调用所述片内存储单元时,指示所述二级运算单元优先调用所述片内存储单元。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如权利要求1至6中任一项所述的数据处理方法的步骤。
CN201710703285.9A 2017-08-16 2017-08-16 一种数据处理方法、网络处理器及计算机存储介质 Active CN109413122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710703285.9A CN109413122B (zh) 2017-08-16 2017-08-16 一种数据处理方法、网络处理器及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710703285.9A CN109413122B (zh) 2017-08-16 2017-08-16 一种数据处理方法、网络处理器及计算机存储介质

Publications (2)

Publication Number Publication Date
CN109413122A true CN109413122A (zh) 2019-03-01
CN109413122B CN109413122B (zh) 2022-05-13

Family

ID=65454587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710703285.9A Active CN109413122B (zh) 2017-08-16 2017-08-16 一种数据处理方法、网络处理器及计算机存储介质

Country Status (1)

Country Link
CN (1) CN109413122B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001016772A1 (en) * 1999-08-30 2001-03-08 Intel Corporation Input/output (i/o) address translation in a bridge proximate to a local i/o bus
CN1595910A (zh) * 2004-06-25 2005-03-16 中国科学院计算技术研究所 一种网络处理器的数据包接收接口部件及其存储管理方法
CN101515898A (zh) * 2009-03-25 2009-08-26 华为技术有限公司 芯片的统计数据的管理方法和装置
CN101800698A (zh) * 2010-01-29 2010-08-11 华南理工大学 一种基于网络处理器的流量限制系统及其方法
CN101848135A (zh) * 2009-03-24 2010-09-29 华为技术有限公司 芯片的统计数据的管理方法和装置
CN102469007A (zh) * 2010-11-08 2012-05-23 高通创锐讯通讯科技(上海)有限公司 Onu计算上行队列的上报长度的方法
CN103870206A (zh) * 2012-12-13 2014-06-18 华为技术有限公司 一种缓存数据接收和读取方法及装置、及路由器缓存装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001016772A1 (en) * 1999-08-30 2001-03-08 Intel Corporation Input/output (i/o) address translation in a bridge proximate to a local i/o bus
CN1595910A (zh) * 2004-06-25 2005-03-16 中国科学院计算技术研究所 一种网络处理器的数据包接收接口部件及其存储管理方法
CN101848135A (zh) * 2009-03-24 2010-09-29 华为技术有限公司 芯片的统计数据的管理方法和装置
CN101515898A (zh) * 2009-03-25 2009-08-26 华为技术有限公司 芯片的统计数据的管理方法和装置
CN101800698A (zh) * 2010-01-29 2010-08-11 华南理工大学 一种基于网络处理器的流量限制系统及其方法
CN102469007A (zh) * 2010-11-08 2012-05-23 高通创锐讯通讯科技(上海)有限公司 Onu计算上行队列的上报长度的方法
CN103870206A (zh) * 2012-12-13 2014-06-18 华为技术有限公司 一种缓存数据接收和读取方法及装置、及路由器缓存装置

Also Published As

Publication number Publication date
CN109413122B (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN104601696B (zh) 服务处理方法、服务调用系统、装置和系统
CN102752198B (zh) 多核报文转发方法、多核处理器及网络设备
US7644142B2 (en) Methods and apparatus to perform process placement for distributed applications
CN103370691B (zh) 管理缓冲器溢出状况
CN105511954A (zh) 一种报文处理方法及装置
CN105337896A (zh) 报文处理方法和装置
CN106406987A (zh) 一种集群中的任务执行方法及装置
KR20190020105A (ko) 스트리밍 데이터의 분배 처리 방법 및 디바이스
CN105808328A (zh) 任务调度的方法、装置和系统
CN106130960B (zh) 盗号行为的判断系统、负载调度方法和装置
CN104518987A (zh) 并行多线程报文处理的方法和装置
CN107704323A (zh) 一种网络爬虫任务调度方法及装置
US9336006B2 (en) High-performance parallel traffic management for multi-core platforms
CN109587072A (zh) 分布式系统全局限速系统及方法
CN104765701B (zh) 数据访问方法及设备
US20190253357A1 (en) Load balancing based on packet processing loads
US20150304227A1 (en) Queue Management Method and Apparatus
CN104572298B (zh) 视频云平台的资源调度方法及装置
CN113835823A (zh) 资源调度方法和装置、电子设备、计算机可读存储介质
CN109729013A (zh) 一种流量整形中添加令牌的方法、装置及计算机可读存储介质
CN111857992B (zh) 一种Radosgw模块中线程资源分配方法和装置
CN105939218B (zh) 网络流量的统计方法及装置
CN113472681A (zh) 流量限速方法及装置
CN104052831A (zh) 一种基于队列的数据传输方法、装置及通信系统
CN109413122A (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
GR01 Patent grant
GR01 Patent grant