一种离散式外设dma传输方法和系统的制作方法

文档序号:6604559阅读:551来源:国知局
专利名称:一种离散式外设dma传输方法和系统的制作方法
技术领域
本发明涉及一种离散式DMA传输方法和系统,更具体的是,涉及采用一种使用离散式的外设DMA进行数据传输方法和系统。
背景技术
在应用处理器的设计结构中,除包含了中央处理器外,还包含有各种功能模块和外设模块,以及整个系统使用的存储器,系统处理器与不同的外设模块以及存储器通过数据总线相互连接,系统运行时用户数据在系统处理器的控制下在功能模块、外设和存储器之间传输,而数据总线的传输效率直接影响了整个系统的运行效率,数据传输效率较低的外设模块往往成为制约系统性能的瓶颈,DMA (Direct Memory Access),存储器直接访问,是一种高速的数据传输操作。其原理是通过使用一个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的传输方式,有一定的缺点和局限性。传统的DMA通常结构复杂,资源需求也比较大,同时,在实施数据传输时,数据源模块与数据目标模块的传输分别需要占用一次系统数据总线,使系统总线的利用率较低,从而降低系统的整体性能。

发明内容
本发明的首个目的在于克服上述现有技术存在的问题,提供了一种离散式外设 DMA的传输方法。本发明的外设DMA传输方法是采用了离散的分布方式,灵活的结合每个独立的外设和DMA控制器,通过外设DMA分别连接系统总线,实现系统内部外设与存储器之间数据的高效率传输。实现本发明方法目的的具体技术方案如下一种离散式外设DMA的传输方法,其特征在于包括以下步骤第一步骤,系统处理器通过控制通道配置启动DMA控制器。第二步骤,DMA控制器根据接收到的配置信息,对数据传输信息进行重组。第三步骤,传输控制模块将重组后传输配置信息配置到数据控制模块。第四步骤,数据控制模块根据所配置的传输信息在系统存储器与外设之间进行数据传输。第五步骤,在数据传输结束后,DMA控制器通过状态寄存器指示以及中断信号来通知系统处理器数据传输完成状态。本发明的另一个目的是提供一个用以实现上述DMA传输方法的DMA控制器系统。实现本发明方法和系统目的的具体技术方案如下一个DMA数据传输控制器系统,其特征在于包括以下模块系统总线接口单元模块,用于接收由系统处理器配置的DMA数据传输的控制信肩、ο与上述总线接口单元连接的传输控制模块,用于解析系统处理器配置的控制信肩、ο与上述总线接口单元和传输控制单元连接的数据控制模块,用于进行外设与系统存储器的数据交互传输。此外,所述与DMA控制器连接的外设模块,其功能具备与外部设备进行数据传输操作,该外部系统可以是数据存储设备以及外部总线接口。本发明的有益效果本发明所述方法是采用离散分布的外设DMA方式,作为外设专用的DMA,相比传统型的系统DMA,本发明所述方法使用了更少的数据通道,更少的传输模式支持,更少的握手与交互信号,其实现的复杂度以及对资源的消耗都远小于传统的DMA实现方式。本发明所述方法是采用的外设DMA直接与外设的数据缓冲区连接,不占用系统总线带宽,相比传统的DMA实现方式,在进行数据传输时,本发明所述方法可以节省一半的系统带宽资源。从而提高整体系统的工作效率。本发明所述方法是采用的外设DMA直接与外设的数据缓冲区连接,使外设模块的数据接口的设计更为简单高效,相比传统外设总线型接口,与外设DMA的数据缓冲区接口可以带来外设数据传输的更高效率。为进一步说明本发明的上述目的、结构特点和效果,以下将结合附图对本
发明进行详细说明。


图1为传统的处理器内部DMA数据传输的结构图;图2为本发明所述的处理器内部离散式外设DMA结构图;图3为本发明所述的离散式外设DMA控制器内部的结构图;图4为本发明所述的离散式外设DMA工作时内部的状态流程具体实施例方式以下借助附图对本发明作进一步的描述。参见图2,图2为本发明所述的处理器内部离散式外设DMA结构图,根据本发明所述的处理器内部离散式外设DMA结构可以看出,在系统结构内部,外设的数据传输不同于传统的模式使用系统的公共DMA,而是在每个外设上独立集成了一个离散式的外设DMA,每个外设的数据传输分别由各自的外设DMA控制,在每次的外设与系统存储器进行数据交互时,外设DMA通过系统总线与系统存储器进行交互,同时外设DMA直接从外设数据缓冲区取得或是传送数据,因此在一次完整的外设DMA数据传输的过程中,只占用了一次系统总线, 同时系统处理器在配置完成外设DMA后,在数据传输的过程中不需要干预外设DMA的工作, 而完全被释放去执行其他的系统任务,极大提高了系统整体的工作效率。参见图3,图3为本发明所述的离散式外设DMA控制器内部的结构图,如图3所示, 该图示为本发明通过的离散式外设DMA控制器,主要包含了三个结构单元系统总线接口 31,功能传输控制单元32和数据控制单元33。系统总线接口 31,是外设DMA与系统总线进行数据和控制交互的单元模块。其功能作用应包括两种功能,一是通过系统总线接口,系统处理器34可以访问和配置外设DMA 的控制寄存器及可配置资源等,对外设DMA进行操作和控制。另一是通过系统总线接口 31, 外设DMA控制器可以访问系统的存储器35以及其他的资源。系统总线接口的实现形式可根据具体的系统资源决定,如采用AHB总线协议等。与上述系统总线接口模块31连接的传输控制单元32,是外设DMA控制器的主控单元,主要功能是实现接收系统处理器34的配置信息,根据配置信息来控制DMA的工作状态, 包括控制总线接口单元31以及数据控制单元33,传输控制单元32包含了一系列的配置寄存器,包括外设DMA数据传输的数据源地址,数据目标地址,数据长度,数据位宽,边界信息等,传输控制单元32根据上述控制信息控制数据的交互和传输,同时在数据传输完成后, 传输控制单元还将会通过中断或查询的方式反馈系统处理器;34传输完成状态以继续执行操作。与上述系统总线接口模块31以及传输控制模块32连接的数据控制单元33,是外设DMA的数据流操作单元,主要面向系统总线接口 31和外设模块的数据缓冲接口 36进行数据操作。面向总线接口的操作主要是通过总线与系统存储器35进行数据交互,数据交互操作包括传输模式组合,数据位宽对齐,数据读写缓冲等。面向外设模块的接口操作主要是数据控制器通过外设的数据缓冲区36与外设模块进行数据交互。外设的操作与配置也由系统处理器34控制完成,包括连接建立,数据交换等,数据缓冲区用以缓存传输过程的中间数据,以利于数据控制单元进行批量数据传输从而提高数据传输效率。外设的控制逻辑以及外部接口根据不同的外设模块而定,与数据控制单元33的数据缓冲接口也可根据实际使用采用不同的接口模式。参见图4,图4为本发明所述的离散式外设DMA工作状态流程图,包括以下步骤S41、S42,外设DMA数据传输开始,由系统处理器发起操作,配置外设DMA的工作控制与状态信息,信息包括数据传输在系统存储器侧的地址,数据传输在外设侧的地址,数据传输的方向,数据传输的长度,是否采用地址自动加载的模式,数据传输完成后是否采用中断或查询的方式报告系统处理器以及最后配置的启动外设DMA传输的控制位。S43,按上述S42步骤中所配置的信息,传输控制器将进行传输数据的配置重组, 根据配置的传输数据的地址长度信息,换算出分次传输的长度,次数,同时进行传输数据的位宽转换,地址跨边界对齐的传输控制操作,然后配置数据控制器开始数据传输。S44,按上述S43步骤中数据重组的结果,判断数据的传输方向,数据传输的方向有两个,一是数据从系统存储器传输到外设模块,一是从外设模块传输到系统存储器里。数据传输控制首要判断数据的传输方向,根据数据传输方向选择不同的控制分支。当数据方向从系统存储器到外设模块时,流程走向S45,当数据方向从外设模块到系统存储器时,流程走向S49。S45,按上述S44步骤中判断的数据传输方向,当数据传输方向为从系统存储器到外设模块时,数据传输控制器通过总线接口模块,按配置的数据地址,从系统存储器中读取数据,根据配置和换算好的传输类型、长度等信息进行数据传输。S46,按上述S45步骤中获取了系统存储器的数据后,根据传输数据长度在数据传输控制器内暂存后,写往外设模块的数据缓冲区。外设数据缓冲区是通过缓存数据以平滑系统总线的传输速率与外设模块传输速率的不对等,同时也进行系统总线与外设模块的数据位宽匹配操作。存放在外设数据缓冲区的数据将由外设内部的功能逻辑处理并传送出去。S47、S48,按上述S46步骤中配置的数据长度传输完成后,传输控制器将产生传输完成的状态信息,系统处理器可以通过查询外设DMA工作状态来获得数据完成信息。同时, 根据系统处理器对外设DMA的配置,传输控制器也可以向系统处理器产生中断信号通知系统处理器传输完成。S49,按上述S44步骤中判断的数据传输方向,当数据传输方向为从外设模块到系统存储器时,数据控制器首先从外设的数据缓冲区获得数据,根据系统应用,系统处理器应已先行配置外设模块工作以获得需要传输的数据并存放在外设数据缓冲区内。S410,按上述S49步骤中获得外设的数据后,根据总线的传输规律,将数据整理后通过系统总线接口传输到系统存储器。S411、S412,在数据传输完成后,传输控制器将产生传输完成信息,完成信息包括可查询的状态信息位以及产生的中断状态信号。系统处理器在获得传输完成状态信息后, 完成外设数据传输,继续其他的系统操作。以上介绍是基于本发明的一个具体实施例,其中的离散式外设DMA传输方式,可以根据不同的处理器系统,存储器系统及外设模块采用不同的接口及操作模式,并不限定于具体的处理器结构和外设模块。采用同种方式应用于不同的处理器系统当中实现外设数据传输功能不超出本发明的提供以及保护范围。
权利要求
1.一种离散式外设DMA传输方法,其特征在于包括以下步骤 第一步骤,系统处理器通过控制通道配置启动DMA控制器。第二步骤,DMA控制器根据接收到的配置信息,对数据传输信息进行重组。 第三步骤,传输控制模块将重组后传输配置信息配置到数据控制模块。 第四步骤,数据控制模块根据所配置的传输信息在系统存储器与外设之间进行数据传输。第五步骤,在数据传输结束后,DMA控制器通知系统处理器数据传输完成状态。
2.如权利要求1所述的一种离散式外设DMA传输方法,其特征在于所述第一步骤中,系统处理器进行配置的信息包括数据传输的源地址,目标地址,传输方向,数据长度,传输完成的报告方式等配置信息。
3.如权利要求1所述的一种离散式外设DMA传输方法,其特征在于所述第二、三步骤中,数据传输信息重组包括根据配置的传输数据的地址长度信息,换算出分次传输的长度,次数,还包括进行传输数据的位宽转换,地址跨边界对齐的传输控制等操作。
4.如权利要求1所述的一种离散式外设DMA传输方法,其特征在于所述第四步骤中,系统存储器与外设之间的数据传输包括外设到系统存储器方向和系统存储器到外设的方向,同时与系统存储器传输数据是通过系统总线接口模块。与外设的数据传输是通过外设的数据缓冲区模块。
5.如权利要求1所述的一种离散式外设DMA传输方法,其特征在于所述第五步骤中,DMA控制器通知系统处理器传输完成状态的方式可以包括状态寄存器查询方式以及系统中断的方式。
6.如权利要求4所述的一种离散式外设DMA传输方法,其特征在于所述系统总线接口是指通用的总线接口,而不具体限定于某个特定的总线接口。
7.如权利要求4所述的一种离散式外设DMA传输方法,其特征在于所述外设及外设数据缓冲区是指看进行数据操作的通用的外围设备,而不具体限定于某个特定的外围设备。
8.—个DMA数据传输控制器系统,其特征在于包括以下模块系统总线接口单元模块,用于接收由系统处理器配置的DMA数据传输的控制信息。 与上述总线接口单元连接的传输控制模块,用于解析系统处理器配置的控制信息。 与上述总线接口单元和传输控制单元连接的数据控制模块,用于进行外设与系统存储器的数据交互传输。
全文摘要
本发明公开了一种离散式外设DMA传输方法和系统。离散式外设DMA系统采用了离散的DMA分布方式,将DMA控制器集成到每个外设系统,在进行外设数据传输时,直接调用独自的外设DMA传输控制器,每个外设DMA传输操作都包括了单个传输,突发传输和描述符方式的传输等多种传输模式。外设DMA背端与外设控制器数据缓冲区直接连接,减少数据缓冲交互时间,针对不同的数据长度及数据类型采用不同的传输模式以提高效率。相对采用传统的独立式DMA控制器传输方式,采用离散的外设DMA进行外设数据传输时,可以有效节约一半的系统带宽,同时对于外设的数据交互传输更灵活也带来了更高的效率,同时本发明离散DMA可应用于不同的外设和系统,具有广泛的普遍的应用性。
文档编号G06F13/28GK102169467SQ201010206788
公开日2011年8月31日 申请日期2010年6月22日 优先权日2010年6月22日
发明者刘春晖, 李兴仁, 林锦麟, 金荣伟 申请人:上海盈方微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1