[发明专利]专用计算芯片、DMA数据传输系统及方法有效
申请号: | 202011316625.0 | 申请日: | 2020-11-20 |
公开(公告)号: | CN112416826B | 公开(公告)日: | 2023-09-22 |
发明(设计)人: | 武永红 | 申请(专利权)人: | 成都海光集成电路设计有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F9/50;G06F15/78 |
代理公司: | 北京兰亭信通知识产权代理有限公司 11667 | 代理人: | 孙峰芳 |
地址: | 610041 四川省成都市高新区天府大道*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 专用 计算 芯片 dma 数据传输 系统 方法 | ||
1.一种专用计算芯片,其特征在于,包括:
至少两个直接内存存取DMA引擎和负载均衡控制器,各所述DMA引擎用于执行DMA队列环形缓冲区中的命令包,实现系统内存和设备内存之间的数据拷贝,所述负载均衡控制器用于根据DMA队列环形缓冲区中命令包的个数和命令包传输的数据量大小,并根据特殊命令的特征来分配权重,计算各所述DMA引擎的负载值,所述负载值反映各所述DMA引擎的忙闲状态,所述特殊命令包括用于实现模块间的同步的命令、用于轮询系统寄存器总线管理器SRBM寄存器空间的命令和用于轮询内存空间的命令中的至少一个。
2.根据权利要求1所述的专用计算芯片,其特征在于,所述专用计算芯片还包括:
计算单元,用于对输入的数据进行计算,并得到输出数据。
3.根据权利要求1所述的专用计算芯片,其特征在于,所述专用计算芯片为图像处理器GPU芯片。
4.一种DMA数据传输系统,其特征在于,包括:如权利要求1至3任一项所述的专用计算芯片,以及通用CPU芯片,所述通用CPU芯片包括DMA传输控制装置,所述DMA传输控制装置进一步包括:
DMA引擎确定模块,用于读取所述负载均衡控制器计算得到的各DMA引擎的负载值,确定负载值最小的DMA引擎;
队列创建模块,用于在系统内存上分配环形缓冲区、分配存放读指针值的地址空间以及分配存放写指针值的地址空间,然后在DMA引擎上创建DMA队列,并将环形缓冲区的地址和大小、存放读指针值的地址以及存放写指针值的地址写入DMA引擎的DMA队列相关寄存器,其中所述DMA引擎为负载值最小的DMA引擎;
写模块,用于向DMA队列环形缓冲区写入命令包;
相对地,所述专用计算芯片上的所述负载值最小的DMA引擎用于执行DMA队列环形缓冲区中的命令包,实现系统内存与设备内存之间的数据拷贝。
5.根据权利要求4所述的DMA数据传输系统,其特征在于,所述写模块用于读所述DMA队列的读指针,判断所述DMA队列环形缓冲区是否不为满,若所述DMA队列环形缓冲区不满,则向所述DMA队列环形缓冲区中写入命令包,并更新所述DMA队列的写指针;若所述DMA队列环形缓冲区满,则通知负载值最小的DMA引擎去读DMA队列环形缓冲区中存放的命令包、执行命令包及更新所述DMA队列的读指针,并在所述负载值最小的DMA引擎执行命令包的过程中轮询DMA队列的读指针,当所述DMA队列环形缓冲区不满时,继续向所述DMA队列环形缓冲区写入命令包,并更新所述DMA队列的写指针;
相对地,所述专用计算芯片上的所述负载值最小的DMA引擎用于查询所述DMA队列的写指针,并比较读指针,判断所述DMA队列环形缓冲区是否为空,若所述DMA队列环形缓冲区不空,则从所述DMA队列环形缓冲区读取命令包,并执行命令包,实现系统内存与设备内存之间的数据拷贝;若所述DMA队列环形缓冲区空,则DMA引擎停止执行命令包,处于空闲状态。
6.根据权利要求4所述的DMA数据传输系统,其特征在于,还包括:
系统内存,用于存储所述通用CPU芯片使用的数据;
设备内存,用于存储所述专用计算芯片使用的数据。
7.一种DMA数据传输方法,其特征在于,采用如权利要求4所述的DMA数据传输系统来实现,所述方法包括:
DMA引擎确定模块读取所述负载均衡控制器计算得到的各DMA引擎的负载值,确定负载值最小的DMA引擎;
队列创建模块在系统内存上分配环形缓冲区、分配存放读指针值的地址空间以及分配存放写指针值的地址空间,然后在DMA引擎上创建DMA队列,并将环形缓冲区的地址和大小、存放读指针值的地址以及存放写指针值的地址写入DMA引擎的DMA队列相关寄存器,其中所述DMA引擎为负载值最小的DMA引擎;
写模块向所述DMA队列环形缓冲区写入命令包,以及所述专用计算芯片上的所述负载值最小的DMA引擎执行DMA队列环形缓冲区中的命令包,实现系统内存与设备内存之间的数据拷贝。
8.根据权利要求7所述的DMA数据传输方法,其特征在于,其中写模块向所述DMA队列环形缓冲区写入命令包,以及所述专用计算芯片上的所述负载值最小的DMA引擎执行DMA队列环形缓冲区中的命令包,实现系统内存与设备内存之间的数据拷贝包括:
所述写模块读所述DMA队列的读指针,判断所述DMA队列环形缓冲区是否不为满,若所述DMA队列环形缓冲区不满,则向所述DMA队列环形缓冲区中写入命令包,并更新所述DMA队列的写指针;若所述DMA队列环形缓冲区满,则通知负载值最小的DMA引擎去读DMA队列环形缓冲区中存放的命令包、执行命令包及更新所述DMA队列的读指针,并在所述负载值最小的DMA引擎执行命令包的过程中轮询DMA队列的读指针,当所述DMA队列环形缓冲区不满时,继续向所述DMA队列环形缓冲区写入命令包,并更新所述DMA队列的写指针;
相对地,所述专用计算芯片上的所述负载值最小的DMA引擎查询所述DMA队列的写指针,并比较读指针,判断所述DMA队列环形缓冲区是否为空,若所述DMA队列环形缓冲区不空,则从所述DMA队列环形缓冲区读取命令包,并执行命令包,实现系统内存与设备内存之间的数据拷贝;若所述DMA队列环形缓冲区空,则DMA引擎停止执行命令包,处于空闲状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都海光集成电路设计有限公司,未经成都海光集成电路设计有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011316625.0/1.html,转载请声明来源钻瓜专利网。