一种DMA传输控制方法及装置制造方法及图纸

技术编号:37816117 阅读:9 留言:0更新日期:2023-06-09 09:46
本发明专利技术公开了一种DMA传输控制方法及装置,方法包括:当接收到报文信息时,获取报文信息的优先级;在缓冲块队列中查找空闲缓冲块,将报文信息存储至查找到的空闲缓冲块中并记录报文信息对应的缓冲块索引号;基于报文信息的优先级,确定报文信息在优先级寄存器的指示队列的目标位置,并在块索引寄存器中对应的指示位中填入报文信息的缓冲块索引号,以使得优先级寄存器、块索引寄存器以及缓冲块形成映射关系;当DMA上传报文信息时,控制DMA按照优先级指示队列的顺序,结合优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机。本发明专利技术能够迅速将优先级高的数据优先传输,有利于缓解延时对数据传输的影响。输的影响。输的影响。

【技术实现步骤摘要】
一种DMA传输控制方法及装置


[0001]本专利技术涉及网络通信领域,尤其涉及一种DMA传输控制方法及装置。

技术介绍

[0002]基于TSN(TimeSensitiveNetwork,时间敏感网络)的应用越来越多,高端工业流水线、高铁控制系统、飞机控制系统、汽车控制系统、5G前端传输等很多领域都需要时间敏感传输,同时时间敏感网络的标准经过多年研究,目前业界大多倾向于使用标准以太网,将时间敏感传输与传统标准网络传输统一在一套网络基础设施上运行。
[0003]DMA(DirectMemoryAccess,直接内存访问)传输是一种非常成熟的存储访问控制技术,而DMA传输在以太网中的应用非常普遍,通过独立的DMA控制器进行数据传输,可以大大减小主控开销。
[0004]目前的DMA传输在设备端大多是顺序传输,主要通过两种方式:(1)通过主控设置地址与长度,DMA控制器进行实际传输。设备将接收到的数据依次顺序存放在内部缓冲,然后通过中断通知主控,主控读取对应的寄存器获知长度,最后设置DMA控制器进行实际数据的传输;(2)主控将存储器缓冲分成多个区块,并将对应的描述信息汇总成多个描述符,每次DMA控制器需要传输时,自主获取描述符,将设备数据传输到描述符指定的存储缓冲。从设备端看,这种方法依然是在顺序使用设备内部的缓冲。
[0005]设备内部顺序使用缓冲,在普通应用中没有问题,但是在时间敏感类应用中会对延时造成影响。优先级高、对延时有明确要求的报文夹杂在普通报文中,无法进行优先传输,从而造成延时的不确定。这种不确定主要受限于设备自身的缓冲,缓冲越大则延时不确定性越大。由于现在的网络传输带宽越来越大,因此,为了适配大带宽,尽量不丢数据,设备缓冲也做的比较大,则相应延时的影响也会比较大。

技术实现思路

[0006]为了解决上述技术问题,本专利技术提供一种DMA传输控制方法及装置。
[0007]具体的,本专利技术的技术方案如下:
[0008]一方面,本专利技术提供一种DMA传输控制方法,包括:
[0009]当接收到报文信息时,获取所述报文信息的优先级;
[0010]在缓冲块队列中查找空闲缓冲块,将所述报文信息存储至查找到的所述空闲缓冲块中;并记录所述报文信息对应的缓冲块索引号;
[0011]基于所述报文信息的优先级,确定所述报文信息在优先级寄存器的指示队列的目标位置,并在块索引寄存器中对应的指示位处填入所述报文信息的缓冲块索引号,以使得所述优先级寄存器、所述块索引寄存器以及缓冲块形成映射关系;
[0012]当DMA上传报文信息时,控制所述DMA按照所述优先级指示队列的顺序,结合所述优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机。
[0013]在一些实施方式中,所述的在缓冲块队列中查找空闲缓冲块,将所述报文信息存储至查找到的所述空闲缓冲块中;包括:
[0014]获取所述报文信息的长度信息,并将所述长度信息写入长度指示寄存器中的对应指示位;
[0015]根据各缓冲块的空闲指示位信息,查找目标空闲缓冲块;
[0016]获取并记录所述目标空闲缓冲块的索引号;以便在块索引寄存器中对应的指示位存储所述目标空闲缓冲块的索引号;
[0017]将所述报文信息存储至所述目标空闲缓冲块,并在存储完成后在存储完成指示寄存器中的对应指示位更新存储状态;所述优先级寄存器、长度指示寄存器、存储完成指示寄存器、块索引寄存器是一一对应的映射关系。
[0018]在一些实施方式中,所述的当DMA上传报文信息时,控制所述DMA按照所述优先级指示队列的顺序,结合所述优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机,包括:
[0019]按照所述优先级寄存器中的优先级队列顺序,结合所述优先级寄存器与存储完成指示寄存器的对应关系,判断优先级队列中第一指示位对应的报文是否存储完成;
[0020]当判定所述优先级队列中第一指示位对应的报文存储完成时,将所述优先级队列中的第一指示位作为目标指示位;
[0021]当判定所述优先级队列中第一指示位对应的报文存储未完成时,则继续判断所述优先级队列中的下一指示位的报文存储是否完成,直至找到存储完成的指示位作为目标指示位;
[0022]根据所述优先级寄存器与块索引寄存器的对应关系,获取所述优先级队列中目标指示位对应的目标缓冲块地址;
[0023]根据所述目标缓冲块地址,控制所述DMA将所述目标缓冲块中存储的报文信息传输给上层主机;
[0024]在传输完成后,将对应的存储完成指示寄存器、长度寄存器、优先级寄存器和块索引寄存器全部前移一个位置,并将完成传输的缓冲块的空闲指示位信息设置为空闲信息。
[0025]在一些实施方式中,所述的获取所述报文信息的优先级,包括:识别所述报文信息中的端口信息;在预先构建的优先级列表中查询所述端口信息,获取与所述端口信息相匹配的所述报文信息的优先级。
[0026]在一些实施方式中,还包括:实时接收局域网内优先级服务器下发的优先级信息,所述优先级信息包括端口信息以及各端口信息所对应的优先级;根据所述优先级信息生成优先级列表。
[0027]另一方面,本专利技术提供一种DMA传输控制装置,包括:
[0028]获取模块,用于当接收到报文信息时,获取所述报文信息的优先级;
[0029]存储模块,用于在缓冲块队列中查找空闲缓冲块,将所述报文信息存储至查找到的所述空闲缓冲块中;并记录所述报文信息对应的缓冲块索引号;
[0030]索引模块,用于基于所述报文信息的优先级,确定所述报文信息在优先级寄存器的指示队列的目标位置,并在块索引寄存器中对应的指示位处填入所述报文信息的缓冲块索引号,以使得所述优先级寄存器、所述块索引寄存器以及缓冲块形成映射关系;
[0031]传输模块,用于当DMA上传报文信息时,控制所述DMA按照所述优先级指示队列的顺序,结合所述优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机。
[0032]在一些实施方式中,所述存储模块,包括:
[0033]第一获取单元,用于获取所述报文信息的长度信息,并将所述长度信息写入长度指示寄存器中的对应指示位;
[0034]第一查找单元,用于根据各缓冲块的空闲指示位信息,查找目标空闲缓冲块;
[0035]第二获取单元,用于获取并记录所述目标空闲缓冲块的索引号;以便在块索引寄存器中对应的指示位存储所述目标空闲缓冲块的索引号;
[0036]存储单元,用于将所述报文信息存储至所述目标空闲缓冲块,并在存储完成后在存储完成指示寄存器中的对应指示位更新存储状态;所述优先级寄存器、长度指示寄存器、存储完成指示寄存器、块索引寄存器是一一对应的映射关系。
[0037]在一些实施方式中,所述索引模块,包括:
[0038]判断单元,用于按照所述优先级寄存器中的优先级队列顺序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DMA传输控制方法,其特征在于,应用于终端层,所述DMA传输控制方法包括:当接收到报文信息时,获取所述报文信息的优先级;在缓冲块队列中查找空闲缓冲块,将所述报文信息存储至查找到的所述空闲缓冲块中;并记录所述报文信息对应的缓冲块索引号;基于所述报文信息的优先级,确定所述报文信息在优先级寄存器的指示队列的目标位置,并在块索引寄存器中对应的指示位处填入所述报文信息的缓冲块索引号,以使得所述优先级寄存器、所述块索引寄存器以及缓冲块形成映射关系;当DMA上传报文信息时,控制所述DMA按照所述优先级指示队列的顺序,结合所述优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机。2.根据权利要求1所述的一种DMA传输控制方法,其特征在于,所述的在缓冲块队列中查找空闲缓冲块,将所述报文信息存储至查找到的所述空闲缓冲块中,包括:获取所述报文信息的长度信息,并将所述长度信息写入长度指示寄存器中的对应指示位;根据各缓冲块的空闲指示位信息,查找目标空闲缓冲块;获取并记录所述目标空闲缓冲块的索引号;以便在块索引寄存器中对应的指示位存储所述目标空闲缓冲块的索引号;将所述报文信息存储至所述目标空闲缓冲块,并在存储完成后在存储完成指示寄存器中的对应指示位更新存储状态;所述优先级寄存器、长度指示寄存器、存储完成指示寄存器、块索引寄存器是一一对应的映射关系。3.根据权利要求2所述的一种报文传输方法,其特征在于,所述的当DMA上传报文信息时,控制所述DMA按照所述优先级指示队列的顺序,结合所述优先级指示队列与各缓冲块索引号的映射关系,将对应的缓冲块中的报文信息传输给上层主机,包括:按照所述优先级寄存器中的优先级队列顺序,结合所述优先级寄存器与存储完成指示寄存器的对应关系,判断优先级队列中第一指示位对应的报文是否存储完成;当判定所述优先级队列中第一指示位对应的报文存储完成时,将所述优先级队列中的第一指示位作为目标指示位;当判定所述优先级队列中第一指示位对应的报文存储未完成时,则继续判断所述优先级队列中的下一指示位的报文存储是否完成,直至找到存储完成的指示位作为目标指示位;根据所述优先级寄存器与块索引寄存器的对应关系,获取所述优先级队列中目标指示位对应的目标缓冲块地址;根据所述目标缓冲块地址,控制所述DMA将所述目标缓冲块中存储的报文信息传输给上层主机;在传输完成后,将对应的存储完成指示寄存器、长度寄存器、优先级寄存器和块索引寄存器全部前移一个位置,并将完成传输的缓冲块的空闲指示位信息设置为空闲信息。4.根据权利要求1所述的一种报文传输方法,其特征在于,所述的获取所述报文信息的优先级,包括:识别所述报文信息中的端口信息;
在预先构建的优先级列表中查询所述端口信息,获取与所述端口信息相匹配的所述报文信息的优先级。5.根据权利要求1

4任一所述的一种报文传输方法,其特征在于,还包括:实时接收局域网内优先级服务器下发的优先级信息,所述优先级信息包括端口信息以及各端口信息所对应的优先级;根据所述优先级信息生成优先级列表。6....

【专利技术属性】
技术研发人员:王圣
申请(专利权)人:上海耀芯电子科技有限公司
类型:发明
国别省市:

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

1