CN114679381B - 一种基于硬件dma的快速刷表方法 - Google Patents

一种基于硬件dma的快速刷表方法 Download PDF

Info

Publication number
CN114679381B
CN114679381B CN202210292779.3A CN202210292779A CN114679381B CN 114679381 B CN114679381 B CN 114679381B CN 202210292779 A CN202210292779 A CN 202210292779A CN 114679381 B CN114679381 B CN 114679381B
Authority
CN
China
Prior art keywords
descriptor
item
data
table item
message
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
CN202210292779.3A
Other languages
English (en)
Other versions
CN114679381A (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.)
Qingzhou Microelectronics Hangzhou Co ltd
Original Assignee
Xinhe Semiconductor Technology Wuxi 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 Xinhe Semiconductor Technology Wuxi Co Ltd filed Critical Xinhe Semiconductor Technology Wuxi Co Ltd
Priority to CN202210292779.3A priority Critical patent/CN114679381B/zh
Publication of CN114679381A publication Critical patent/CN114679381A/zh
Application granted granted Critical
Publication of CN114679381B publication Critical patent/CN114679381B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及网络交换相关技术领域,尤其涉及一种基于硬件DMA的快速刷表方法,首先在内存中构建描述符空间和数据空间,在描述符空间中填入描述符表项,在数据空间中以报文的方式填入数据表项,描述符表项中存储着数据表项的信息;然后将描述符表项的索引地址告知DMA,DAM通过索引地址发起读操作获取描述符表项,根据描述符表项中的信息提取对应的数据表项报文;最后解析数据表项报文,得到配置信息,将配置信息重组并通过配置接口写入相应的表项RAM中完成表项的配置。本发明可以减少CPU的负担,且可以通过设置灵活配置64bit~512bit任意位宽的表项,由于采用纯硬件的方式,大大节省了刷表时间。

Description

一种基于硬件DMA的快速刷表方法
技术领域
本发明涉及网络交换相关技术领域,尤其涉及一种基于硬件DMA的快速刷表方法,适合主机和交换机之间快速刷表的场景,加速网络设备的初始化以达到快速启动。
背景技术
随着网络的快速发展,承载网的重要性不言而喻,伴随5G通信技术的商用,承载网能否满足5G网络的要求至关重要,它将影响5G商用进程,承载网需要支持不同的场景,为用户提供快速、安全、低延迟的服务;以太网交换芯片旨在满足以太网报文传输接入/汇聚网络需求,需要支持多种场景和业务,大量场景业务的支持必然需要一个庞大的表项作为支撑,设备在上电后需要配置这些表项,如果通过CPU来配置,需要时间较长,而且由于每个业务对应表项的位宽不同,需要进行掩码操作,增加CPU的负担,导致配置时间更长。
由于以太网交换芯片需要处理承载网中的所有数据转发,支持多种业务报文,例如L2、L3、MPLS等等,客户机在进行通信过程中,报文在网络中传输由于业务类型多样且发往不同的目的地,需要在传输中不断匹配修改报文描述符等信息,这样需要庞大的表项支撑描述符的灵活匹配修改,每种业务含有不同的功能,每个功能都有相应的表项,所以表项在芯片中的分配并不是一整张大表,而是由分散在各个模块中的小表构成,而芯片的定位不同,这些支持的表项个数从几百到上千也不相同,如此多且分散的表项,如果上电用CPU进行初始化配置,会占用大量的CPU带宽且操作时间较久;而且通常表项RAM的配置方式有两种,直接寄存器方式和间接寄存器方式,两种都会用到,其中间接方式使用更多,采用间接配置各个RAM表项的方式存在时延大、操作寄存器次数多等缺点,对于大容量路由表的快速下发需求不能很好的支持,下表速度慢,导致路由收敛慢。
图4是传统实现的配表实例示意图。传统配表方式通过CPU直接寄存器或者间接寄存器访问的方式依次配置各个模块中的表项RAM,该方式CPU负载较重,操作复杂且耗时较长。
发明内容
本发明提供了一种基于硬件DMA的快速刷表方法,可以减少CPU的负担,且可以通过设置灵活配置64bit~512bit任意位宽的表项,由于采用纯硬件的方式,不需要CPU的干预,释放了CPU的资源,大大节省了刷表时间。
为了实现本发明的目的,所采用的技术方案是,一种基于硬件DMA的快速刷表方法,包括:
1)在内存中构建描述符空间和数据空间,在描述符空间中填入描述符表项,在数据空间中以报文的方式填入数据表项,描述符表项中存储着数据表项的信息;
2)将描述符表项的索引地址告知DMA,DAM通过索引地址发起读操作获取描述符表项,根据描述符表项中的信息提取对应的数据表项报文;
3)解析数据表项报文,得到配置信息,将配置信息重组并通过配置接口写入相应的表项RAM中完成表项的配置。
作为本发明的优化方案,描述符表项包括数据表项报文的地址、数据表项报文的长度和用以表示描述符是否使用的标记位。
作为本发明的优化方案,在步骤3)中,得到配置信息的同时更新标记位表示为该描述符表项已使用。
作为本发明的优化方案,数据表项还包括表征数据表项是离散表或连续表的标志位,离散表配置有相应的掩码标记,连续表包括连续的条目数。
作为本发明的优化方案,数据表项还包括表征数据表项是离散表或连续表的标志位,离散表配置有相应的掩码标记,连续表包括连续的条目数。
作为本发明的优化方案,基于硬件DMA的快速刷表方法支持需配置表项RAM的位宽为64bit~512bit灵活可配。
本发明具有积极的效果:1)本发明利用DMA的方式,灵活配置表项接口带宽,达到快速刷表的目的,解决了网络芯片上电初始化时间较长的缺点;
2)本发明能够解决以太网芯片初始化下表慢的问题,由于大量的寄存器间接访问会浪费CPU的带宽,影响CPU的性能,使用DMA的方式能卸载CPU的负载;
3)在表项条目数多时,使用DMA方式可以大大减少寄存器操作次数,从而降低配表时延,大大缩短了配表等待时间;
4)支持离散条目的配置,通过掩码的方式掩除不想配置的表项条目;
5)本发明下表方式灵活简单,适用于绝大部分配表场景。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的刷表实例示意图;
图2是描述符表项的数据结构图;
图3是数据表项的数据结构图;
图4是传统的配表实例示意图。
具体实施方式
如图1-3所示,本发明公开了一种基于硬件DMA的快速刷表方法,DMA刷表操作过程中需要两种表项,一种是数据表项,另一种是描述符表项,数据表项格式是由软硬件约定最终由软件维护,描述符表项由软硬件约定好且共同维护。
数据表项:
首先和软件约定好表项的内容格式,因为表项配置下发是以报文的形式下发下来的,所以需要有一定的帧头进行辅助报文的定界,可以使用4字节的同步头进行匹配同步,或者该头大小可以和软件沟通定义;
其次需要表项的相关信息,由于检测到了同步头,才认为该报文是用于表项配置的相关报文,这时就可以获取配置表项的相关信息,而哪些信息是配表需要的呢,例如需要知道配置的是那个模块的哪些表项RAM,以及其地址和表项写有效标记(这些内容仅是举例说明,不限于这些表项信息)。
然后需要知道配置的表项是离散表还是连续表,离散表项还要配置相应的掩码标记,而连续条目需要知道配置多少个连续条目,本发明根据需要暂定最大为512个,该值都可根据芯片规格自行定义修改。
最后就要配置表项的内容,每个表项RAM的位宽都不一样,所以这里支持64bit~512bit位宽灵活可调。不同表项的数据位宽不同,所以对应存储表项的ram位宽也不相同,因而配置接口需要适配各种表项位宽,这里做灵活可配加掩码的方式,这里只是举例按照64~512可配,但不局限于该位宽,具体需要根据当前芯片规格的最大最小表项来定。
如图3所示,Table_Info[47:40]:RAM_ID,即最大支持256个表项条目;Table_Info[39:32]:block_ID,即最大支持256个业务模块,即独立的表项(独立的表项指每个业务模块对应一个表项配置,其中都包含RAM_ID,RAM_addr,标记,长度,下发数量等信息,每个业务模块之间独立运行,通过芯片规格中支持的业务模块数量进行相应的设置可以增加配表的并行性和离散性,从而实现更快更精准的操作)。Table_Info[31:13]:RAM_addr,RAM的地址。Table_Info[12]:flag标记,表示读或写。Table_Info[11:9]:width,表项长度,单位64B,0:64B,1:128B,…7:512B。Table_Info[8:0]:num,即一次下发表项数量,最大支持512个。
描述符表项:
描述符表项包括数据表项报文的地址、数据表项报文的长度和用以表示描述符是否使用的标记位、数据表项报文的首尾标记,描述符表项是否有效等等。
基于硬件DMA的快速刷表方法,包括如下步骤:
1)按照约定好的格式,在内存(泛指CPU的内存空间,可以是DDR,IROM,IRAM等和CPU总线相连,CPU可以通过总线发出读写命令,可以看做是若干存储单元组成的逻辑存储器)中构建描述符空间和数据空间,在描述符空间中填入描述符表项,在数据空间中以报文的方式填入数据表项,描述符表项中存储着数据表项的信息;
2)将描述符表项的索引地址告知DMA,DAM通过索引地址发起读操作获取描述符表项,根据描述符表项中的信息(报文地址和报文长度)提取对应的数据表项报文,如图2所示,描述符表项包括数据表项报文的地址、数据表项报文的长度和用以表示描述符是否使用的标记位(可重复使用,规定0为未使用,1为使用);
3)按照约定好的表项报文格式,解析数据表项报文,得到配置信息,同时更新描述符表项中的标记位为1,表示该内容已经使用。将配置信息重组并通过配置接口写入相应的表项RAM中完成表项的配置。根据上面解析后的配置信息,可以得到需配置表项RAM的ID编号、位宽、条目数、连续或者离散、内容等,将解析后的内容重组并通过配置接口写入相应的表项RAM中完成表项配置,可变的位宽以及条目数能够适应不同规格的RAM表。
通过以上的三步操作,可以实现业务的快速刷表。
本发明是利用DAM的方式,可同时操作多个模块的多个表项配置,减轻了CPU的负载,降低了操作复杂度,且大大节省了配表时延。以前的表项配置是软件通过间接的方式(多次直接)进行操作,且需要至少三次直接操作(写地址,写数据,写命令)才能写入一个表项条目,如果表项数据位宽很大,需要更多次的直接操作,全程需要CPU的参与,表项的条目越多,需要的操作越复杂,CPU负载重且耗时长。而本发明刷表是通过DAM下发报文的方式,CPU只需要将配置报文放入内存中,DMA会读取报文解析重组可到配置信息,支持的位宽更宽,一次可配的条目更多,中间过程不需要CPU参与,完全的是硬件操作,降低了CPU的负载,且耗时很短。采用DMA方式,可以不需要操作单个寄存器,可以将表项的内容,表项地址,表ID号,写请求等内容组装成包格式,通过PCIE的DMA写方式下发到DMA缓存,并配入各个表项。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于硬件DMA的快速刷表方法,其特征在于:包括:
1)在内存中构建描述符空间和数据空间,在描述符空间中填入描述符表项,在数据空间中以报文的方式填入数据表项,描述符表项中存储着数据表项的信息;
2)将描述符表项的索引地址告知DMA,DMA通过索引地址发起读操作获取描述符表项,根据描述符表项中的信息提取对应的数据表项报文;
3)解析数据表项报文,得到配置信息,将配置信息重组并通过配置接口写入相应的表项RAM中完成表项的配置;
数据表项还包括表征数据表项是离散表或连续表的标志位,离散表配置有相应的掩码标记,连续表包括连续的条目数。
2.根据权利要求1所述的一种基于硬件DMA的快速刷表方法,其特征在于:描述符表项包括数据表项报文的地址、数据表项报文的长度和用以表示描述符是否使用的标记位。
3.根据权利要求1所述的一种基于硬件DMA的快速刷表方法,其特征在于:在步骤3)中,得到配置信息的同时更新标记位表示为该描述符表项已使用。
4.根据权利要求3所述的一种基于硬件DMA的快速刷表方法,其特征在于:数据表项包括用于表征数据表项的同步头、需配置的业务模块、需配置表项RAM的ID编号、需配置表项RAM的地址、需配置表项RAM的位宽和数据表项的内容。
5.根据权利要求4所述的一种基于硬件DMA的快速刷表方法,其特征在于:连续表支持1~512个条目。
6.根据权利要求5所述的一种基于硬件DMA的快速刷表方法,其特征在于:基于硬件DMA的快速刷表方法支持需配置表项RAM的位宽为64bit~512bit灵活可配。
CN202210292779.3A 2022-03-24 2022-03-24 一种基于硬件dma的快速刷表方法 Active CN114679381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210292779.3A CN114679381B (zh) 2022-03-24 2022-03-24 一种基于硬件dma的快速刷表方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210292779.3A CN114679381B (zh) 2022-03-24 2022-03-24 一种基于硬件dma的快速刷表方法

Publications (2)

Publication Number Publication Date
CN114679381A CN114679381A (zh) 2022-06-28
CN114679381B true CN114679381B (zh) 2023-11-24

Family

ID=82074318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210292779.3A Active CN114679381B (zh) 2022-03-24 2022-03-24 一种基于硬件dma的快速刷表方法

Country Status (1)

Country Link
CN (1) CN114679381B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797379A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据传送的方法
CN105141468A (zh) * 2015-10-08 2015-12-09 盛科网络(苏州)有限公司 高效实现网络芯片流量统计的方法及装置
CN105323184A (zh) * 2015-10-08 2016-02-10 盛科网络(苏州)有限公司 节约ram资源实现流量统计的方法及装置
CN106547709A (zh) * 2016-11-24 2017-03-29 盛科网络(苏州)有限公司 灵活配置多通道dma控制器的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797379A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据传送的方法
CN105141468A (zh) * 2015-10-08 2015-12-09 盛科网络(苏州)有限公司 高效实现网络芯片流量统计的方法及装置
CN105323184A (zh) * 2015-10-08 2016-02-10 盛科网络(苏州)有限公司 节约ram资源实现流量统计的方法及装置
CN106547709A (zh) * 2016-11-24 2017-03-29 盛科网络(苏州)有限公司 灵活配置多通道dma控制器的方法及装置

Also Published As

Publication number Publication date
CN114679381A (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
US20240143169A1 (en) Method for Improving Message Storage Efficiency of Network Chip, Device, and Storage medium
US9584332B2 (en) Message processing method and device
JP2021190125A (ja) メモリリソースを管理するためのシステム及び方法
CN106325758B (zh) 一种队列存储空间管理方法及装置
US20220283975A1 (en) Methods and apparatus for data descriptors for high speed data systems
CN109981431B (zh) 一种can总线控制器数据存储电路及数据存储方法
CN113900982B (zh) 一种分布式异构加速平台通信方法、系统、设备及介质
CN110297797B (zh) 异构协议转换装置和方法
US9274586B2 (en) Intelligent memory interface
WO2014169690A1 (zh) 一种地址映射处理的方法、装置
US9239796B2 (en) Methods, systems, and computer readable media for caching and using scatter list metadata to control direct memory access (DMA) receiving of network protocol data
CN114679381B (zh) 一种基于硬件dma的快速刷表方法
CN106254270A (zh) 一种队列管理方法及装置
US11604742B2 (en) Independent central processing unit (CPU) networking using an intermediate device
WO2022095439A1 (zh) 一种用于数据处理的硬件加速系统及芯片
CN111259014B (zh) 一种fpga的单向链表数据存储方法及系统
CN103560982B (zh) 用于Interlaken增强型调度的切包装置及方法
CN115277553B (zh) 一种流表存储方法、装置、设备和计算机可读存储介质
CN106776372A (zh) 基于fpga的仿真数据存取方法及装置
CN113691466A (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
CN114995770B (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
CN115756296A (zh) 缓存管理方法和装置、控制程序及控制器
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN110297785A (zh) 一种基于fpga的金融数据流控装置和流控方法
CN111694777B (zh) 基于PCIe接口的DMA传输方法

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240318

Address after: Room 37, Room 807, Building 2, No. 217 Wujiang Road, Shangcheng District, Hangzhou City, Zhejiang Province, 310000

Patentee after: Qingzhou Microelectronics (Hangzhou) Co.,Ltd.

Country or region after: China

Address before: 214135 room e1-301, China Sensor Network International Innovation Park, 200 Linghu Avenue, Xinwu District, Wuxi City, Jiangsu Province

Patentee before: Xinhe semiconductor technology (Wuxi) Co.,Ltd.

Country or region before: China