一种基于飞腾处理器内置DMAC的数据传输方法技术

技术编号:18972206 阅读:53 留言:0更新日期:2018-09-19 03:33
本发明专利技术提供一种基于飞腾处理器内置DMAC的数据传输方法,通过更改DMAC模式参数改变DMAC传输模式,包括直接模式,链接模式以及扩展链接模式进行DMAC传输;本发明专利技术的有益效果是可针对不同的工作需要进行DMAC传输,传输灵活,可适应不同的工作状况要求。

A data transmission method based on DMAC built by flying processor

The invention provides a data transmission method based on the built-in DMAC of the flying processor, which changes the DMAC transmission mode by changing the parameters of the DMAC mode, including direct mode, link mode and extended link mode for DMAC transmission. Adapt to different working conditions.

【技术实现步骤摘要】
一种基于飞腾处理器内置DMAC的数据传输方法
本专利技术属于处理器领域,尤其是涉及一种飞腾处理器内置DMAC的数据传输方法。
技术介绍
DMAC:直接内存存取控制器(DirectMemoryAccessController),它允许某些硬件子系统独立于CPU而访问主系统内存。DMAC模块的基本功能是作为主模块,从DMA源地址读取数据,缓存在本地FIFO中,再将数据写入DMA地址,从而减少数据移动过程中对内核资源的占用。在现有的技术中,DMAC技术广泛应用于处理器及片上系统Soc中。是一种传输过程不由CPU控制,直接从内存存取数据的数据交换模块,是解决内存和外部芯片之间数据交互的重要技术。DMAC可以作为飞腾处理器的一个外设模块而存在,可以接收飞腾处理器核的参数配置进行数据搬移。可(专门)用于大量数据的搬移,从DMA源地址读取数据,缓存在本地FIFO中,再将数据写入DMA目的地址,从而减少数据搬移过程中对内核资源的占用。公告号CN107678987A的中国专利公开了一种DMA传输的方法,包括根据接收的DMA传输请求确定传输数据,锁定所述传输数据对应的物理页面;遍历所述物理页面;判断连续物理页面的数目是否累计至预定数目;若是,填写空闲描述符;若否,则基于已获得的连续物理页面,填写空闲描述符;直到所述物理页面遍历完毕;将所述空闲描述符写入板卡端的描述符空间;将所述传输数据发送至所述板卡端。该方法增加了每次启动DMA传输的数据量,适合多线程DMA传输。但飞腾处理器平台上存在多种DMA传输环境需求,故需要针对不同应用场景来实现相应的DMA传输方法。
技术实现思路
本专利技术要解决的问题是提供一种飞腾处理器内置DMAC的数据传输方法,尤其适合要针对不同应用场景来实现飞腾处理器平台上相应的DMA传输。为解决上述技术问题,本专利技术采用的技术方案是:提供一种飞腾处理器内置DMAC的数据传输方法,步骤包括:A010.确认DMA通道空闲;A020.内核驱动配置DMA模式参数;A030.内核驱动配置DMA传输参数;A040.内核驱动触发DMA操作;A050.DMAC硬件进行DMA传输;A060.标识一次DMA传输完成。其中,可通过在A020中改变DMAC的传输模式实现不同应用场景下的DMAC传输。基本模式是DMAC复位后的默认模式,根据是否由软件直接配置DMAC内部寄存器还是由软件在内存中初始化描述符,由DMAC自动获取描述符进行DMA操作,基本模式又可进一步分为直接模式和链接模式。在直接模式下,不需要软件在内存中初始化DMA描述符,而是由软件直接写DMAC内部寄存器,配置相关DMA参数,然后触发DMA操作。软件直接配置DMA的源、目的地址及需要传输的字节数,DMAC自动从源地址读出对应的字节,并将其写入目的地址。在直接模式下通过DMAC进行数据传输的具体步骤包括:A111.内核驱动读通用状态寄存器,确认对应的DMA通道为idle状态;A121.内核驱动配置模式寄存器,标识DMA模式为直接模式;A131.内核驱动配置源参数寄存器、源地址寄存器、目的参数寄存器、目的地址寄存器以及字节计数寄存器;A141.内核驱动写模式寄存器的启动位[CS],置1;A151.DMA进行传输时,DMAC置状态寄存器的[CB]位,当DMA传输完成或传输被放弃和/或发生错误时,DMAC硬件清除状态寄存器的[CB]位;A161.DMAC硬件判断模式寄存器的[EOSIE]位是否被置位,若是,则在完成该segment的DMA操作后触发一次中断;A162.标识一次DMA传输完成。其中,执行步骤A121的具体操作为:内核驱动配置模式寄存器的[XFE]=0,[CTM]=1,[SRW]=0,[EMS_EN]=0。在链接模式下,内核驱动首先需要在内存中初始化一系列的描述符,这些描述符描述了每一个DMAsegment所需的相关参数,且这些描述符之间互相链接成链,这些描述符之间的链被称作link。内核驱动只需要些DMAC内部寄存器,指向第一个描述符,DMAC就会自动从内存中读取描述符进行DMA,直到处理完内存中所有的链接在一起的描述符,才表示DMA操作完成。在链接模式下通过DMAC进行数据传输的具体步骤包括:A201.内核驱动在内存中初始化一系列描述符,将所述描述符组织成link;A211.内核驱动读通用状态寄存器,确认对应的DMA通道为idle状态;A221.内核驱动配置模式寄存器,标识DMA模式为链接模式;A231.内核驱动写当前link描述符地址寄存器和当前link描述符扩展地址寄存器,指向内存中的第一个link描述符;A241.内核驱动写模式寄存器的启动位[CS],置1;A251.DMAC硬件置状态寄存器的[CB]位;A252.DMAC硬件按照A231中设置,从内存中读取当前的link描述符,根据link描述符的内容更新源参数寄存器、源地址寄存器、下一link描述符地址寄存器和下一link描述符扩展地址寄存器,并按更新后的参数值进行当前segment的DMA操作;A253.当前segment的DMA操作完成后,判断下一link描述符地址寄存器的[EOLND]位是否置1;若否,则根据下一link描述符地址寄存器和下一link描述符扩展地址寄存器更新当前link描述符地址寄存器和当前link描述符扩展地址寄存器,跳至A252;A254.DMAC硬件清除状态寄存器的[CB]位;A261.DMAC硬件判断模式寄存器的[EOLNIE]位是否被置位,若是,则在完成整个link的DMA操作后触发一次中断;A262.标识一次DMA传输完成;其中,当执行步骤A251,A252,A253时,若DMA传输被放弃或发生错误,则跳至A254。其中,执行步骤A221时,包括以下具体步骤:内核驱动配置模式寄存器的[XFE]=0,[CTM]=0,[CDSM]=0,[EMS_EN]=0。在扩展链接模式下,除了可以将多个描述符组织成link外,还可以将多个link组织成list,以更加灵活的进行DMA操作。在扩展链接模式下通过DMAC进行数据传输的具体步骤包括:A301.内核驱动在内存中初始化一系列描述符,将多个描述符组织成link,多条link组织成list;A311.内核驱动读通用状态寄存器,确认对应的DMA通道为idle状态;A321.内核驱动配置模式寄存器,标识DMA模式为扩展链接模式;A331.内核驱动写当前list描述符地址寄存器和当前list描述符扩展地址寄存器,指向内存中的第一个list描述符;A341.内核驱动写模式寄存器的启动位[CS],置1;A351.DMAC硬件置状态寄存器的[CB]位;A352.DMAC硬件按照当前list描述符地址寄存器和当前list描述符扩展地址寄存器的设置,从内存中读取当前list描述符,根据当前list描述符的内容更新当前link描述符地址寄存器、当前link描述符扩展地址寄存器、下一list描述符地址寄存器、下一list描述符扩展地址寄存器、源跨步寄存器、目的跨步寄存器;A353.DMAC硬件按照当前link描述符地址寄存器和当前link描述符扩展地址寄存器的设置,从内存中读取当前link描述符,根据当前link描述符的内容更新源参数寄存器、源地本文档来自技高网...

【技术保护点】
1.一种基于飞腾处理器内置DMAC的数据传输方法,其特征在于,包括以下步骤:S010.内核驱动配置DMA模式参数;S020.内核驱动配置DMA传输参数;S030.内核驱动触发DMA操作;S040.DMAC硬件进行DMA传输;S050.标识一次DMA传输完成。

【技术特征摘要】
1.一种基于飞腾处理器内置DMAC的数据传输方法,其特征在于,包括以下步骤:S010.内核驱动配置DMA模式参数;S020.内核驱动配置DMA传输参数;S030.内核驱动触发DMA操作;S040.DMAC硬件进行DMA传输;S050.标识一次DMA传输完成。2.根据权利要求1所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,执行步骤S010时,标识DMA模式为直接模式。3.根据权利要求2所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,步骤S010包括以下具体步骤:S111.内核驱动配置模式寄存器的[XFE]=0,[CTM]=1,[SRW]=0,[EMS_EN]=0。4.根据权利要求2或3所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,步骤S040包括以下具体步骤:S141.DMA进行传输时,DMAC置状态寄存器的[CB]位,当DMA传输完成或传输被放弃和/或发生错误时,DMAC硬件清除状态寄存器的[CB]位。5.根据权利要求1所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,在执行步骤S010之前,还包括S000:S000.内核驱动在内存中初始化一系列描述符,将所述描述符组织成link;执行步骤S010时,标识DMA模式为链接模式。6.根据权利要求5所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,步骤S010包括以下具体步骤:S211.内核驱动配置模式寄存器的[XFE]=0,[CTM]=0,[CDSM]=0,[EMS_EN]=0。7.根据权利要求5或6所述的基于飞腾处理器内置DMAC的数据传输方法,其特征在于,步骤S040包括以下具体步骤:S241.DMAC硬件置状态寄存器的[CB]位;S242.DMAC硬件按照S231中设置,从内存中读取当前的link描述符,根据link描述符的内容更新源参数寄存器、源地址寄存器、下一link描述符地址寄存器和下一link描述符扩展地址寄存器,并按更新后的参数值进行当前segment的DMA操作;S243.当前segment的DMA操作完成后,判断下一link描述符地址寄存器的[EOLND]位是否置1;若否,则根据下一link描述符地址寄存器和下一link描述符扩展地址寄存器更新当前link描述符地址寄存器和当前link描述符扩展地址寄存器,跳至S242;S244.DMAC硬件清除状态寄存器的[CB]位;当执行步骤S...

【专利技术属性】
技术研发人员:熊鑫王琦卢日文孙立明张铎孔金珠唐晓东魏立峰吴庆波
申请(专利权)人:天津麒麟信息技术有限公司
类型:发明
国别省市:天津,12

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

1