CN111651377B - 一种用于片内报文处理的弹性共享缓存器 - Google Patents

一种用于片内报文处理的弹性共享缓存器 Download PDF

Info

Publication number
CN111651377B
CN111651377B CN202010594621.2A CN202010594621A CN111651377B CN 111651377 B CN111651377 B CN 111651377B CN 202010594621 A CN202010594621 A CN 202010594621A CN 111651377 B CN111651377 B CN 111651377B
Authority
CN
China
Prior art keywords
message
descriptor
management
processing
cpu
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.)
Active
Application number
CN202010594621.2A
Other languages
English (en)
Other versions
CN111651377A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010594621.2A priority Critical patent/CN111651377B/zh
Publication of CN111651377A publication Critical patent/CN111651377A/zh
Application granted granted Critical
Publication of CN111651377B publication Critical patent/CN111651377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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
    • 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/1041Resource optimization
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及一种用于片内报文处理的弹性共享缓存架构,解决现有高性能网络处理器存储技术存在的网络带宽的大幅浪费、报文处理延时等问题。架构,包括三部分,分别是报文缓存区管理、描述符管理、中断管理,分别用于实现报文缓存区管理、描述符管理、中断管理功能。该架构支持不等长报文的弹性存储,支持网络接口收发报文快速处理路径和片上多核CPU的直接访问,同时支持基于轮询的报文传输处理和有中断的报文传输处理,使报文的存储及发送尽可能的减少对CPU的打扰,实现高效的软硬件交互,以满足高性能网络处理器芯片的设计需求。

Description

一种用于片内报文处理的弹性共享缓存器
技术领域
本发明主要涉及到高性能网络处理器芯片设计领域,具体涉及一种用于芯片内高效报文处理的弹性共享缓存架构。
背景技术
随着深亚微米工艺的迅速发展,高性能多处理器片上系统(Multi-ProcessorSystem-on-Chip,简称MPSoC)已广泛用于各种应用领域,例如信号处理系统、流媒体处理、网络处理等。异构MPSoC在单芯片上集成多个处理器核,并通过高速的片上互连网络将外部接口、存储器和硬件加速部件等资源,相互连接构成了多核并行处理体系结构。随着工艺节点的推进,在14nm及更先进工艺中,晶体管及片上存储单元面积显著减小,功耗显著降低,不再是芯片设计中的瓶颈,某种程度上甚至进入“相对过剩”状态。
网络处理器已从面向中低端交换路由的第一代,采用统一外部接口标准的第二代,向采用片上多核/众核、高速存储集成的第三代网络处理器演进。随着网络处理器硬件资源的不断丰富,如何合理高效地实现片上存储架构等硬件资源,成为制约网络处理器进行高性能业务处理的主要瓶颈。“存储墙”是高性能计算面临的永恒挑战,网络处理器的存储墙问题同样非常严重。片内存储结构直接决定了报文的吞吐性能和容量。由于网络报文处理的流式访存特性,网络处理器的存储访问特性在时间、空间局部性方面与传统处理器存在显著差异,为此需要探索面向报文流式访存特性,探索高效适配网络报文处理流程的片上高效率缓存系统,优化报文访存通道,为网络处理器提供具有延迟低、确定性好的存储访问,是保证网络报文得到线速处理的基本前提。
实际网络流量处理中,报文长度是可变的、不定长的,传统的链式存储报文会带来设计的复杂度和链地址存储代价的大幅提升。而将片上缓存划分成定长的存储区域块,又会造成存储空间的大幅浪费,例如将缓存区按照2K的空间进行等长划分和地址管理,当报文大小为64B时,存储空间利用率大幅下降。另一方面,网络接口收到报文后存储到专用片上缓存区域,CPU在对报文深度处理时,需要将报文从报文缓存区域通过高速片上网络搬移到CPU可访问的地址空间去,这就造成了片上网络带宽的大幅浪费,增大了报文的处理延时。
发明内容
本发明针对现有高性能网络处理器存储技术存在的网络带宽的大幅浪费、报文处理延时等问题,本发明特提出一种弹性共享缓存架构,该架构支持不等长报文的弹性存储,支持网络接口收发报文快速处理路径和片上多核CPU的直接访问,同时支持基于轮询的报文传输处理和有中断的报文传输处理,使报文的存储及发送尽可能的减少对CPU的打扰,实现高效的软硬件交互,以满足高性能网络处理器芯片的设计需求。
本发明采用以下技术方案:
一种用于片内报文处理的弹性共享缓存架构,包括三部分,分别是报文缓存区管理(BM,Buffer Management)、描述符管理(DM,Description Management)、中断管理(IM,Interrupt Management),分别用于实现报文缓存区管理、描述符管理、中断管理功能。
报文缓存区管理BM,在片上缓存总容量恒定的前提下,通过配置块容量计数器,实现动态调整对应不同报文长度的各存储单元的数量。在逻辑上,将不同报文长度的存储区域组织成块数目相同但块大小不同的形式,以满足可配空间的需求。通过CPU可配计数寄存器组记录每块块容量的大小,当软件重置该值,即可实现可变存储空间的划分。在存储空间回收机制上,通过与不同报文长度存储空间数量相对应的同样数量的地址队列实现存储空间的分配与回收,当报文发送时,将地址释放计数器的值依次递加,直到地址释放计数器值达到软件设置的阈值,进行当前块的地址回收,将基地址写入对应该报文长度存储空间的地址回收队列中去。多个存储空间独立实现回收逻辑与回收队列。存储空间的分配,则是当数据由网络接口送达,写入存储空间时,地址分配逻辑根据当前进入的报文长度类型,判断从对应的该报文长度存储空间的地址队列中获取基地址,结合根据分配计数器,计算报文对应存储的位置。从而实现弹性缓存的存储与回收。
描述符管理DM,为了降低协同处理的交互代价,片上报文处理的弹性共享缓存区,需要支持网络接口和片上CPU的直接访问,为了支持这一特性,描述符队列包含2类描述符的管理,分别是网络接口接收/发送描述符队列和CPU构造报文接收/发送描述符队列,两种队列均采用环形链表组织方式;为了区分网络接口接收和发送报文的优先级,因此将第一类描述符队列又区分了高低优先级,因此DM实现了共计3个接收/发送队列描述符管理,分别为高优先级描述符环、低优先级描述符环、CPU构造报文描述符环。从而支持网络接口收发报文快速处理路径和片上多核CPU的同时访问。
中断管理IM,设置软件可配的中断阈值寄存器及中断有效位,在尽可能减少对CPU的打扰下,支持两种模式的报文传输与处理。第一种为基于轮询的报文传输处理与发送,将中断使能关断,一旦DM检测到缓存区内有报文待传输、处理或待发送,则自动完成处理和发送过程,不需产生中断;第二种为有中断的传输处理与发送,兼容传统的有中断的报文处理流程,当IM检测到计数器达到阈值寄存器设置的值,产生中断信号送往片上中断控制器,做相应处理。
与现有技术相比,本发明硬件代价低、报文处理延迟低、弹性存储空间可选可配,为高性能网络处理器芯片提供高效的缓存架构,满足网络处理器芯片的设计需求,并有自己独有的优点:
(1)弹性缓存,可根据网络流量和特征,动态调整缓存空间以支持对不同长度报文的弹性存储;
(2)共享缓存,支持网络接口收发报文快速处理路径和片上多核CPU的同时访问,从而在架构上大大降低报文的处理路径长度,结合了报文流式访存特性,高效适配网络报文处理流程的。
(3)同时支持报文传输、处理和发送的无中断轮询处理和有中断处理,提高片上CPU和互联网络效率。
附图说明
图1是用于片内报文处理的弹性共享缓存架构图,
图2是弹性共享缓存架构实现结构图,
图3是网络接口上送弹性共享缓存报文处理流程,
图4是CPU下发报文处理流程。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,为构建具有本发明适用于片内报文处理的弹性共享缓存架构图。
报文缓冲区Packet RAM可以设置成不同大小的缓存单元,例如2KB,1KB,512B,256B,128B和64B,且允许用户动态调整各存储单元的数量,但总容量恒定(例如4MB)。六块存储组织成块数目相同,但块大小不同的形式,以满足可配空间的需求,以六种存储空间均划分为16个块为例,假设64B存储块的每个块大小设置为6,用CPU可配计数寄存器组记录每块块大小,128B的存储块每个块大小设置为2,以此类推,当软件重置块大小值,即可实现可变存储空间的划分。
适用于片内报文处理的弹性共享缓存架构主要包含三个模块,分别是报文缓存区管理(BM,Buffer Management)、描述符管理(DM,Description Management)、中断管理(IM,Interrupt Management)。
其中,BM功能包括从网络接口收/发报文,读/写片上报文缓冲区(packet RAM),管理报文缓冲区的bufferID。DM功能包括根据接收的报文写描述符接收队列,读描述符发送队列以发送报文,提供读写接口供CPU访问描述符队列。IM功能包括,对应片内每个CPU一个中断计数器,每收到一个报文则更新中断计数器,提供接口供CPU配置DM中寄存器,例如配置中断计数器的阈值,接收的报文超过阈值会产生中断,根据中断信号格式产生中断,上送片内中断控制器。
还以六种报文长度分别对应六块存储空间为例,BM将六种不同报文长度的存储设置为固定的块,以实现基于FIFO的地址空间分配和回收。六种报文存储空间,通过六个FIFO队列实现存储空间的分配与回收,地址释放计数器的值依次递加,直到计数器值达到软件设置的阈值,进行当前块的地址回收,将基地址写入FIFO队列中去。六种存储空间独立实现回收逻辑与回收队列。当数据由网络接口送达,写入存储空间时,地址分配逻辑根据当前进入的报文长度类型,判断从对应的FIFO中获取基地址,结合根据分配计数器,计算报文对应存储的位置。
DM中,描述符队列包含2类,分别是网络接口接收/发送队列,图中标记hw,按照优先级,分为高优先级队列和低优先级队列;CPU构造报文接收/发送队列,图中标记sw,队列均采用环形链表组织方式;因此DM实现了共计3类接收/发送队列描述符管理,分别为高优先级描述符环、低优先级描述符环、CPU构造报文描述符环。其中高/低优先级描述符环的管理基于三个指针,分别为数据上行(网络接口到Packet RAM)时的写描述符指针rx,用于指示上报报文头部的位置,数据下行(Packet RAM到网络接口)时的读描述符指针tx,软件处理指针p,用于指示CPU已处理报文头部的位置,若rx≠p,表示有报文需要送CPU处理,若p≠tx,表示有报文需要由网络接口发出。CPU构造报文描述符环的管理基于两个指针,分别为数据下行(Packet RAM到网络接口)时的读描述符指针tx,用于指示HW已发送报文头部的位置,软件处理指针p,其中p→tx的区间为空闲报文缓存区。新接收的报文,计数超过阈值寄存器后,会产生中断送往片上CPU。
图2是弹性共享缓存架构实现结构图。
其中BM由四个子功能模块构成,分别为报文接收模块RECV_PKT、报文发送模块SEND_PKT、弹性共享缓存地址管理模块BID_MG、弹性共享缓存读写模块BUF_IF。其中,RECV_PKT接收来报文,提取metadata中的cpuID信息,向BID_MG索要空闲缓冲区地址BID,根据BID向BUF_IF发送写报文请求(携带BID),将BID填写到metadata中,送给DM。报文发送模块SEND_PKT接收来自于DM的metadata信息,提取metadata并向BUF_IF发送读取报文请求(携带BID),将读取的报文和metadata一同发送出去,待报文发送后,将BID发给BID_MG模块,以回收BID;若为CPU下发的报文,则给DM模块发送一个软件报文发送标记信息(携带cpuID)。弹性共享缓存地址管理模块BID_MG,负责初始化报文缓冲区中空闲地址对应的BID,写入空闲地址队列中,支持软件配置buffer的空间大小。为RECV_PKT提供空闲BID并回收已经发送报文的BID。弹性共享缓存读写模块BUF_IF根据BID写缓存区(剥离报文头标识、无效字节标识),根据BID读缓存区(增加报文头标识、无效字节标识),根据配置确定起始地址位置(软、硬件存储空间)。
DM由四个子功能模块构成,分别为硬件写描述符模块HW_WRITE_DES、硬件读描述符模块HW_READ_DES、描述符环管理模块DES_MG、CPU读写描述符环SW_DES_IF。其中HW_WRITE_DES接收来自于BM的metadata,并提取CPUID信息,根据CPUID更新DES_MG中的描述符环,HW_READ_DES轮询DES_MG中的描述符环,若有报文可以发送,则读取描述符环中的metadata将读取的metadata输出给BM,并更新硬件描述符队列,若接收到CPU发送报文的消息,则更新软件描述符队列。DES_MG模块为每个队列维护三种类型的描述队列(采用环形的组织方式)。为每个CPU核维护3个描述符队列(形成描述符环),分别是高优先级硬件上报报文,低优先级硬件上报报文,软件产生报文。SW_DES_IF模块为CPU提供读写描述符的功能。
IM由三个子功能模块构成,分别为计数器更新模块UPDATE_CNT、CPU配置模块CONF_CNT_IF、中断请求接收发送模块GEN_INT。UPDATE_CNT接收来自DM更新报文计数器的请求,若计数器超过阈值,则向GEN_INT发送产生中断的请求。CONF_CNT_IF接收来自CPU的配置请求,配置相应模块。GEN_INT接收UPDATE_CNT产生中断的请求,根据中断消息的格式产生中断。
如图3所示,为网络接口上送弹性共享缓存报文处理流程。
1)RECV_PKT模块从网络接口接收报文(携带metadata)。
2)读取空闲bufferID(BID),然后根据BID将报文通过高速数据总线(128b)写入RAM中。
3)将BID填写在Metadata中,送给HW_WRITE_DES模块。
4)HW_WRITE_DES模块将描述符写入描述符队列中。
5)更新对应CPU核的报文计数器,若超过阈值,则产生中断。
如图4所示,CPU下发报文处理流程。
1)CPU处理完报文(或者生成报文)后,更新描述符队列。
2)HW_READ_DES轮询描述队列,发现有报文需要发送,则读取描述符信息。
3)HW_READ_DES读取描述后,并发送给SEND_PKT模块。
4)SEND_PKT根据metadata中的BID从RAM中读取报文,并回收BID(值得注意的是网络接口上送报文和CPU主动生成报文单独划分存储空间,BID_MG模块仅维护网络接口上送弹性共享缓存的缓存区地址)。
5)SEND_PKT将读取的报文连同metadata下发给网络接口。
综上所述,本发明的用于片内报文处理的弹性共享缓存架构,适配网络报文流量特性和处理流程,实现报文的弹性共享缓存架构,支持不等长报文的弹性存储,支持网络接口收发报文快速处理路径和片上多核CPU的同时访问,同时支持基于轮询的报文传输处理和有中断的报文传输处理,使报文的存储及发送尽可能的减少对CPU的打扰,实现高效的软硬件交互,以满足高性能网络处理器芯片的设计需求。

Claims (8)

1.一种用于片内报文处理的弹性共享缓存器,其特征在于,包括三部分,分别是报文缓存区管理、描述符管理、中断管理,分别用于实现报文缓存区管理、描述符管理、中断管理功能;
所述报文缓存区管理,通过配置块容量计数器,实现动态调整对应不同报文长度的各存储单元的数量,
在逻辑上,将不同报文长度的存储区域组织成块数目相同但块大小不同的形式,
通过CPU可配计数寄存器组记录每块块容量的大小,当软件重置该CPU可配计数寄存器组的值,即实现可变存储空间的划分,
在存储空间回收机制上,当报文发送时,将地址释放计数器的值依次递加,直到地址释放计数器值达到软件设置的阈值,进行当前块的地址回收,将基地址写入对应该报文长度存储空间的地址回收队列中去;
所述描述符管理,描述符队列包含2类描述符的管理,分别是网络接口接收/发送描述符队列和CPU构造报文接收/发送描述符队列;
所述中断管理,支持两种模式的报文传输与处理,第一种为基于轮询的报文传输处理与发送,将中断使能关断,一旦描述符管理检测到缓存区内有报文待传输、处理或待发送,则自动完成处理和发送过程,不需产生中断;第二种为有中断的传输处理与发送,兼容传统的有中断的报文处理流程,即当中断管理检测到计数器达到阈值寄存器设置的值,产生中断信号送往片上中断控制器,做相应处理。
2.根据权利要求1所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,
所述报文缓存区管理的存储空间的分配,是当数据由网络接口送达,写入存储空间时,地址分配逻辑根据当前进入的报文长度类型,判断从对应的该报文长度存储空间的地址队列中获取基地址,结合根据分配计数器,计算报文对应存储的位置,从而实现弹性缓存的存储与回收,多个存储空间独立实现回收逻辑与回收队列。
3.根据权利要求1所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,
所述描述符管理,两种队列均采用环形链表组织方式;为了区分网络接口接收和发送报文的优先级,将第一类描述符队列又区分了高低优先级,高低优先级描述符管理实现3个接收/发送队列描述符管理,分别为高优先级描述符环、低优先级描述符环、CPU构造报文描述符环。
4.根据权利要求3所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,
所述高优先级描述符环及低优先级描述符环的管理基于三个指针,分别为数据上行时的写描述符指针rx,用于指示上报报文头部的位置,数据下行时的读描述符指针tx,软件处理指针p,用于指示CPU已处理报文头部的位置,若rx≠p,表示有报文需要送CPU处理,若p≠tx,表示有报文需要由网络接口发出。
5.根据权利要求3所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,所述CPU构造报文描述符环的管理基于两个指针,分别为数据下行时的读描述符指针tx,用于指示网络接口接收/发送队列已发送报文头部的位置,软件处理指针p,其中p→tx的区间为空闲报文缓存区, 新接收的报文,计数超过阈值寄存器后,会产生中断送往片上CPU。
6.根据权利要求4或5所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,所述数据上行是指:网络接口到读/写片上报文缓冲区,
所述数据下行是指:读/写片上报文缓冲区到网络接口。
7.根据权利要求1所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,网络接口上送弹性共享缓存报文处理流程如下:
1)报文接收模块从网络接口接收报文,携带报文描述符;
2)读取空闲缓存地址,然后根据缓存地址将报文通过数据总线写入RAM中;
3)将缓存地址填写在报文描述符中,送给硬件写描述符模块;
4)硬件写描述符模块将描述符写入描述符队列中;
5)更新对应CPU核的报文计数器,若超过阈值,则产生中断。
8.根据权利要求1所述的一种用于片内报文处理的弹性共享缓存器,其特征在于,CPU下发报文处理流程如下:
1)CPU处理完报文或者生成报文后,更新描述符队列;
2)硬件读描述符模块轮询描述队列,发现有报文需要发送,则读取报文描述符信息;
3)硬件读描述符模块读取描述后,并发送给报文发送模块;
4)报文发送模块根据报文描述符中的缓存地址从RAM中读取报文,并回收缓存地址;
5)报文发送模块将读取的报文连同报文描述符下发给网络接口。
CN202010594621.2A 2020-06-28 2020-06-28 一种用于片内报文处理的弹性共享缓存器 Active CN111651377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010594621.2A CN111651377B (zh) 2020-06-28 2020-06-28 一种用于片内报文处理的弹性共享缓存器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010594621.2A CN111651377B (zh) 2020-06-28 2020-06-28 一种用于片内报文处理的弹性共享缓存器

Publications (2)

Publication Number Publication Date
CN111651377A CN111651377A (zh) 2020-09-11
CN111651377B true CN111651377B (zh) 2022-05-20

Family

ID=72345204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010594621.2A Active CN111651377B (zh) 2020-06-28 2020-06-28 一种用于片内报文处理的弹性共享缓存器

Country Status (1)

Country Link
CN (1) CN111651377B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297112B (zh) * 2021-04-15 2022-05-17 上海安路信息科技股份有限公司 PCIe总线的数据传输方法、系统及电子设备
CN113254081B (zh) * 2021-06-16 2021-10-08 中国人民解放军国防科技大学 一种交换芯片内控制通路镜像读写系统及方法
CN113991839B (zh) * 2021-10-15 2023-11-14 许继集团有限公司 一种提升遥控开出可靠性的装置及方法
CN113904997B (zh) * 2021-10-21 2024-02-23 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置
CN114285693B (zh) * 2021-12-23 2023-04-21 延锋伟世通电子科技(上海)有限公司 Autosar网络flexray硬件buffer复用的实现方法及系统
CN115145864B (zh) * 2022-09-05 2022-11-04 深圳比特微电子科技有限公司 数据处理方法、系统、电子设备和存储介质
CN115361451B (zh) * 2022-10-24 2023-03-24 中国人民解放军国防科技大学 一种网络通信并行处理方法及系统
CN115529275B (zh) * 2022-11-28 2023-04-07 中国人民解放军国防科技大学 一种报文处理系统及方法
CN115658569B (zh) * 2022-12-08 2023-04-14 井芯微电子技术(天津)有限公司 Amp多核处理器间中断与共享存储方法、系统及设备
CN117411842B (zh) * 2023-12-13 2024-02-27 苏州元脑智能科技有限公司 事件抑制方法、装置、设备、异构平台及存储介质
CN118672807A (zh) * 2024-08-21 2024-09-20 格创通信(浙江)有限公司 一种报文分类缓存调度方法、装置、芯片及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333269A (en) * 1988-10-28 1994-07-26 International Business Machines Corporation Mechanism for transferring messages between source and destination users through a shared memory
CN101621469A (zh) * 2009-08-13 2010-01-06 杭州华三通信技术有限公司 数据报文存取控制装置和方法
CN104572498A (zh) * 2014-12-26 2015-04-29 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置
CN105471861A (zh) * 2015-11-19 2016-04-06 上海应用技术学院 报文动态封装方法及动态隧道构建方法
CN107220187A (zh) * 2017-05-22 2017-09-29 北京星网锐捷网络技术有限公司 一种缓存管理方法、装置及现场可编程门阵列
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908440B2 (en) * 2007-08-09 2011-03-15 Intel Corporation Simultaneous personal sensing and data storage
CN102750229B (zh) * 2012-05-30 2015-08-19 福建星网锐捷网络有限公司 缓存空间配置方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333269A (en) * 1988-10-28 1994-07-26 International Business Machines Corporation Mechanism for transferring messages between source and destination users through a shared memory
CN101621469A (zh) * 2009-08-13 2010-01-06 杭州华三通信技术有限公司 数据报文存取控制装置和方法
CN104572498A (zh) * 2014-12-26 2015-04-29 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置
CN105471861A (zh) * 2015-11-19 2016-04-06 上海应用技术学院 报文动态封装方法及动态隧道构建方法
CN107220187A (zh) * 2017-05-22 2017-09-29 北京星网锐捷网络技术有限公司 一种缓存管理方法、装置及现场可编程门阵列
CN107257329A (zh) * 2017-05-31 2017-10-17 中国人民解放军国防科学技术大学 一种数据分段卸载发送方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
命名数据网络中分组报文缓存优化方法;智江等;《计算机应用研究》;20180524;全文 *

Also Published As

Publication number Publication date
CN111651377A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN111651377B (zh) 一种用于片内报文处理的弹性共享缓存器
US6667920B2 (en) Scratchpad memory
EP1896965B1 (en) Dma descriptor queue read and cache write pointer arrangement
US7788422B2 (en) Interface and interrupt circuitry coupling data to host DMA circuitry
US7307998B1 (en) Computer system and network interface supporting dynamically optimized receive buffer queues
KR100619720B1 (ko) 다중 프로세서간 통신 장치 및 방법
CN112835829B (zh) 多通道dma传输测控信号的方法
JPH08265270A (ja) 転送路割り当てシステム
JP2002204253A (ja) 非同期転送モードにおけるホスト・プロセッサおよびディジタル信号プロセッサ間転送用インターフェース・ユニット、およびこれを用いたデータ処理システム
US5793994A (en) Synchronous event posting by a high throughput bus
EP1508100B1 (en) Inter-chip processor control plane
CN114531488A (zh) 一种面向以太网交换器的高效缓存管理系统
CN116471242A (zh) 基于rdma的发送端、接收端、数据传输系统及方法
US6529945B1 (en) Data buffer management between two different systems
WO2013177854A1 (zh) 一种多核处理器的核间通信装置及方法
CN112882986B (zh) 一种带有超节点以及超节点控制器的众核处理器的应用方法
CN118158088A (zh) 用于rdma网卡的控制层数据内核旁路系统
US8103788B1 (en) Method and apparatus for dynamically reallocating buffers for use in a packet transmission
CN110765044B (zh) 数据包传输装置及系统
CN113806245B (zh) 一种根据出口类型自动分配缓存地址的装置
CN115529275B (zh) 一种报文处理系统及方法
JP2012205142A (ja) データ転送装置、データ転送方法および情報処理装置
CN117312202B (zh) 片上系统和用于片上系统的数据传输方法
WO2023125430A1 (zh) 流量管理装置、报文缓存方法、芯片及网络设备
CN115622958B (zh) 一种zynq系统及虚拟mac实现方法

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