[发明专利]存储控制器DMA设计方法有效
申请号: | 202110762205.3 | 申请日: | 2021-07-06 |
公开(公告)号: | CN113342721B | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 宫晓渊;刁永翔;徐娟 | 申请(专利权)人: | 无锡众星微系统技术有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 北京动力号知识产权代理有限公司 11775 | 代理人: | 董钢;梁凡丽 |
地址: | 214000 江苏省无锡市新吴区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储 控制器 dma 设计 方法 | ||
本发明提供了一种存储控制器DMA设计方法,在内存中构建DMA控制块,用于描述所述存储控制器DMA的当前I/O数据传输信息;在内存中构建DMA操作描述符链表,用于描述等待DMA传输的数据块信息,将一个或多个表项与所述DMA控制块相关联;将所述DMA控制块的物理基地址通知给DMA硬件逻辑,以使所述DMA硬件逻辑根据所述DMA控制块和所述DMA操作描述符链表的描述信息来启动存储控制器DMA的数据传输任务。本发明的技术方案兼容传统DMA的链表控制模式,支持存储控制领域中I/O传输的断点续传,满足存储应用中的数据传输完整性、可靠性和稳定性需求,避免软件缺陷引发的数据搬移错误和系统异常。
技术领域
本发明属于存储控制领域,特别涉及一种存储控制器DMA设计方法。
背景技术
在SOC设计开发的过程中,对于数据流的高效处理是一个至关重要的问题。为了提升整个系统的性能,避免CPU在数据流的调度和搬移上占用过多时间,DMA被设计出来用于帮助CPU进行数据流的调度和搬移。在既定配置模式下,DMA可以独立高效完成系统存储和存储之间、系统存储和外设单元之间的数据搬移。DMA的出现和引入有效的降低了整个系统CPU的负载,提高数据搬移的效率。存储控制器对于数据的完整性、可靠性,以及系统的稳定性都有较高的要求。为了提高系统的性能和吞吐率,存储控制器在运行时刻并发控制多个目标设备,每个目标设备同时存在多I/O并发传输。不同目标设备的多个I/O交织进行,并分时复用存储控制器的物理链路。此外,单个I/O的数据通常需要分为多个阶段传输,因此需要DMA支持传输中断时刻的上下文保存和多次续传的功能。
典型DMA的控制方式采用链表结构(通常称为Scatter-Gather或者Linked ListDMA)。系统软件在内存中按照预定义的格式构造操作描述符链表,并将链表首地址赋予DMA硬件逻辑。DMA硬件逻辑获得描述符链表的首地址,依次解析链表中的操作描述符,并按照描述符信息将源地址内存区域或者外设单元的数据搬移至目标地址内存区域或者外设单元,直至整个链表所有描述符被解析和执行完毕。
如图1所示,典型DMA的控制链表的操作描述符通常包含数据的源物理地址(Source Physical Address)、目标物理地址(Destination Physical Address)、传输长度(Transfer Size)、扩展标志位(E)、结束标志位(L)、中断标志位(I)等信息。其中,源物理地址段指示DMA搬移数据在物理内存中的源地址或者后续描述符链表的首地址;目标物理地址段指示数据搬移至物理内存中的目的地址;传输长度定义该项描述符搬移的数据块长度;中断标志位指示DMA控制器在完成该描述符定义的数据搬移后是否上报中断至CPU;结束标志位指示当前描述符为链表中的最后一个描述符项,该描述符执行完毕后,结束整个DMA的搬移任务;扩展标志位指示当前描述符项为指针描述符,DW0的源物理地址段指示后续描述符链表在物理内存中的位置,该描述符项不执行实质的数据搬移任务。
DMA硬件逻辑按照软件配置的描述符链表首地址,在系统内存中按照顺序读取操作描述符,根据预定义格式解析描述符,并执行数据搬移任务,直至整个链表最后一个描述符执行完毕。然而在通常情况下,DMA硬件逻辑每读取一项描述符进行解析和执行时,每个描述符表项就需要DMA硬件触发单次总线读取操作。而且DMA在执行数据搬移的过程中并未检查描述符项的完整性和有效性。随着SOC系统软件的复杂性不断增大,软件缺陷发生的概率随之增大。在极端场景下,软件缺陷可能导致系统内存中的DMA描述符链表构造失败或者损坏,会引发链表中描述符的地址字段、数据传输大小字段或者标志位被篡改,进而导致数据搬移地址或内容错误,使数据存储业务出现异常甚至整个系统的崩溃。
发明内容
本发明的目的在于提供一种存储控制器DMA设计方法,以克服存储控制器的数据搬移可能引发的上述问题。所述存储控制器DMA设计方法包括:
在内存中构建DMA控制块,所述DMA控制块用于描述所述存储控制器DMA的当前I/O数据传输信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡众星微系统技术有限公司,未经无锡众星微系统技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110762205.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于标签约束的多模态主题挖掘方法
- 下一篇:一种可折叠式的混合现实眼镜