采用DMA实现定时发包的方法及装置制造方法及图纸

技术编号:23672085 阅读:17 留言:0更新日期:2020-04-04 17:37
本发明专利技术提供一种采用DMA实现定时发包的方法和装置,所述方法包括:配置描述符,并在系统内存中为每一描述符分配对应的Data Memory,所述Data Memory用于存储待发送报文;使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。本发明专利技术利用DMA实现定时发包,可有效节省芯片的内存资源,由于不再受限于芯片资源,故可以支持更多的Session;除此之外,由于每个描述符对应的Data Memory的大小可以不同,故该方式能够实现可变长的报文发送,更加灵活;并且在具体实现过程中,DMA控制器可以做到自己归还描述符,无需CPU归还描述符。

The method and device of timing contract by DMA

【技术实现步骤摘要】
采用DMA实现定时发包的方法及装置
本专利技术属于通信设计领域,主要涉及一种采用DMA实现定时发包的方法和装置。
技术介绍
交换机的发展技术日趋成熟,在交换机应用过程中,用户需要发送协议报文到相应的场景。现有技术中,使用芯片内部定时器和指向芯片表项的指针,在定时器单位时间到达时,取出指针当前指向的表项内容,该内容就是待发送的报文;完成当前报文发送任务后,将指针指向芯片下一个表项并等待下一次定时器单位时间到达,重复上述操作。然而,现有的定时发包方法需要占用大量宝贵的芯片内存资源,同时,能支持的报文session(会话)较少,这里的session表示一次性发送报文的个数,且将报文存储于芯片时,芯片的每一存储位置设置为大小相同,如此,导致发送的报文长度固定,无法满足多种长度报文的发送需求。
技术实现思路
为解决上述技术问题,本专利技术的目的在于提供一种采用DMA实现定时发包的方法和装置。为了实现上述专利技术目的之一,本专利技术一实施方式提供一种采用DMA实现定时发包的方法,所述方法包括:配置描述符,并在系统内存中为每一描述符分配对应的DataMemory,所述DataMemory用于存储待发送报文;使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。作为本专利技术一实施方式的进一步改进,所述方法还包括:根据待发送报文的大小配置每一描述符对应的DataMemory的大小。作为本专利技术一实施方式的进一步改进,所述方法还包括:配置DMA内部定时器,使能DMA后,通过DMA内部定时器周期性触发DMA操作,以按DMA指针指向读取对应描述符中的待发送报文并发往SwitchCore。作为本专利技术一实施方式的进一步改进,DMA操作被触发后,所述方法具体包括:获取描述符对应的DataMemory地址,将DMA指针调整至DataMemory地址的指向位置,根据获得的DataMemory地址读取DataMemory中对应的待发送报文并发往SwitchCore。作为本专利技术一实施方式的进一步改进,所述方法还包括:配置描述符,并记录描述符的排列顺序;确认DMA指针指向对应的待发送报文已经进入SwitchCore后,判断当前描述符是否为最后一个描述符,若是,使DMA指针指向第一个描述符,若否,使DMA指针按描述符的排列顺序指向下一描述符。为了实现上述专利技术目的之一,本专利技术一实施方式提供一种采用DMA实现定时发包的装置,所述装置包括:配置模块,用于配置描述符,并在系统内存中为每一描述符分配对应的DataMemory,所述DataMemory用于存储待发送报文;读取模块,用于使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;处理模块,用于在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。作为本专利技术一实施方式的进一步改进,配置模块还用于:根据待发送报文的大小配置每一描述符对应的DataMemory的大小。作为本专利技术一实施方式的进一步改进,配置模块还用于:配置DMA内部定时器;读取模块还用于:使能DMA后,通过DMA内部定时器周期性触发DMA操作,以按DMA指针指向读取对应描述符中的待发送报文并发往SwitchCore。作为本专利技术一实施方式的进一步改进,读取模块DMA操作被触发后具体用于:获取描述符对应的DataMemory地址,将DMA指针调整至DataMemory地址的指向位置,根据获得的DataMemory地址读取DataMemory中对应的待发送报文并发往SwitchCore。作为本专利技术一实施方式的进一步改进,配置模块还用于:配置描述符,并记录描述符的排列顺序;处理模块还用于:确认DMA指针指向对应的待发送报文已经进入SwitchCore后,判断当前描述符是否为最后一个描述符,若是,使DMA指针指向第一个描述符,若否,使DMA指针按描述符的排列顺序指向下一描述符。与现有技术相比,本专利技术的有益效果是:本专利技术的采用DMA实现定时发包的方法和装置,利用DMA实现定时发包,可有效节省芯片的内存资源,由于不再受限于芯片资源,故可以支持更多的Session;除此之外,由于每个描述符对应的DataMemory的大小可以不同,故该方式能够实现可变长的报文发送,更加灵活;并且在具体实现过程中,DMA控制器可以做到自己归还描述符,无需CPU归还描述符。附图说明图1是本专利技术一实施方式提供的采用DMA实现定时发包的方法的流程示意图;图2是本专利技术应用图1所示方法进行定时发包的具体示例的结构示意图;图3是本专利技术一实施方式提供的采用DMA实现定时发包的装置的模块示意图。具体实施方式以下将结合附图所示的具体实施方式对本专利技术进行详细描述。但这些实施方式并不限制本专利技术,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本专利技术的保护范围内。如图1所示,本专利技术一实施方式提供的采用DMA实现定时发包的方法,所述方法包括:S1、配置描述符,并在系统内存中为每一描述符分配对应的DataMemory,所述DataMemory用于存储待发送报文;S2、使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;S3、在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。本专利技术具体实施方式中,对于步骤S1,根据用户需求为DMARing分配描述符,且根据待发送报文的大小配置每一描述符对应的DataMemory的大小。例如:如果需要支持2KSession,则为DMARing分配2K个描述符。需要说明的是,各个描述符调用过程中,循环并顺序调用每一描述符,因此,所有描述符可形成DMARing,结合图2所示,为desc表示描述符,n个描述符依次排序,并按照排列次序循环处理,以下内容中还会详细描述。另外,在本专利技术具体实施方式中,由于DataMemory为系统内存,因此,每个描述符对应的DataMemory可以由用户具体制定,即,可以依据传递报文的长度,具体配置每一描述符对应的DataMemory的大小。以上,无论是描述符本身所占用的内存还是描述符对应的DataMemory所占用的内存都是系统内存,无需占用芯片内存,因此,该方法节省了宝贵的芯片内存,并且可以支持更多的Session。对于步骤S2的DMA的配置,需要配置DMA内部定时器,以使其周期性触发DMA操作。本专利技术具体实施方式中,所述方法还包括:配置DMA本文档来自技高网...

【技术保护点】
1.一种采用DMA实现定时发包的方法,其特征在于,所述方法包括:/n配置描述符,并在系统内存中为每一描述符分配对应的Data Memory,所述DataMemory用于存储待发送报文;/n使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;/n在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。/n

【技术特征摘要】
1.一种采用DMA实现定时发包的方法,其特征在于,所述方法包括:
配置描述符,并在系统内存中为每一描述符分配对应的DataMemory,所述DataMemory用于存储待发送报文;
使能DMA,每到达预设计时时刻,按DMA指针指向读取对应描述符的待发送报文并发往SwitchCore;
在确认DMA指针指向对应的待发送报文已经进入SwitchCore后,使DMA指针按描述符的排列顺序循环指向下一描述符。


2.根据权利要求1所述的采用DMA实现定时发包的方法,其特征在于,所述方法还包括:根据待发送报文的大小配置每一描述符对应的DataMemory的大小。


3.根据权利要求1所述的采用DMA实现定时发包的方法,其特征在于,所述方法还包括:配置DMA内部定时器,使能DMA后,通过DMA内部定时器周期性触发DMA操作,以按DMA指针指向读取对应描述符中的待发送报文并发往SwitchCore。


4.根据权利要求3所述的采用DMA实现定时发包的方法,其特征在于,DMA操作被触发后,所述方法具体包括:
获取描述符对应的DataMemory地址,将DMA指针调整至DataMemory地址的指向位置,根据获得的DataMemory地址读取DataMemory中对应的待发送报文并发往SwitchCore。


5.根据权利要求1所述的采用DMA实现定时发包的方法,其特征在于,所述方法还包括:
配置描述符,并记录描述符的排列顺序;
确认DMA指针指向对应的待发送报文已经进入SwitchCore后,判断当前描述符是否为最后一个描述符,若是,使DMA指针指向第一个描述符,若否,使DMA指针按描述符的排列顺序指向下一描述符。


6.一种采用DMA实现定时发包的装置...

【专利技术属性】
技术研发人员:王义东李磊
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1