- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接存储器存取一基本原理、结构与应用(上)
直接存储器存取(DMA)控制器是?种权系统rt部转移数据的独特外没,可以将其视为-?种能够通过-组 专用总线将内部和外部存储器与每个其有DMA能力的外设连接起來的控制器。它之所以诚于外设,是因为 它是在处理器的编程控制下来执行传输的。值得注意的是,通常只宥数据流呈较大(kBps或者更高)的外设 才需要支持DMA能力,这些应用方而典型的例子包拈视频、音频和网络接口。
?般而言,DMA控制器包括一条地址总线、一条数据总线和控制寄存器。K效率的DMA控制器将具宥 访问其所需耍的任意资源的能力,而无须处理器木身的介入,它必须能产生中断。最后,它必须能在控制
器内部计算出地址。
一个处理器可以包含多个DMA抟制器。每个抟制器宥多个DMA通道,以及多条H接与存储器站(memory bank)和外设连接的总线,如阁1所示。在很多高性能处理器屮集成了两种类型的DMA控制器。第一类通常 称力“系统DMA控制器”,可以实现对任何资源(外设和存储器)的访问,对于这种类型的控制器來说,信 号周期数是以系统时钟(SCLK)来计数的,以ADT的Blackfin处理器为例,频率最高可达133MH%第二类 称为内部存储器DMA控制器(TMDMA),专门用于内部存储器所处位置之间的相互存取操作。因为存取都发生 在内部(L1 一LI、L1-L2,或齐L2—L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度 可以超过600MHz。
每个DMA控制器冇一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作川。对丁?
MemDMA (Memory DMA)来说,传输的源端和目标端都有-?组FIFO存在。当资源紧张而不能完成数据传输的话, 则I4F0可以提供数据的暂存区,从而提髙性能。
W为你通常会在代码初始化过程中对DMA控制器进行配i,内核就只需要在数据传输完成后对中断做 出响应即可。你可以对DMA控制进行编程,让其与内核并行地移动数据,而同吋让内核执行其祕本的处理 任务一那些应该让它专注完成的工作,
阎h系统和存储器DMA架构。
广告插播信息
维库最新热卖芯片:TIA31AIDRPC829 TPS65010RGZRNDT452APCL450-P160 SAH-C164SL-6RM
MAX814LESA AM27S43DC IR21365S T062
在一个优化的应用中,内核永远不用参与任何数据的移动,而仅仅对L1存储器中的数据进行读写。于
是,内核不需耍等待数据的到來,因为DMA引擎会在内核准备读取数据之前将数据准备好。图2给ih 了处 理器和DMA控制器间的交互关系。由处理器完成的操作步骤包括:建立传输,肩用中断,生成中断吋执行 代码。返回到处理器的中断输入可以用來指示“数据己经准备好,可进行处理”。
图2: DMA控制器。
数据除了往来外设之外,还需要从一个存储器空间转移到另一个空间中。例如,视频源可以从一个视 频端口直接流入L3存储器,因力工作缓冲区规模太人,无法放入到存储器中。我们并不希望让处理器在每 次需要执行计算时都从外部存储读取像素信息,W此为了提高存取的效率,可以用一个存储器到存储器的 D.MA(MemDMA)来将像素转移到L1或者L2 丫/储器中。
到目前为之,我们还仪专注丁?数据的移动,但足DMA的传送能力并不总是用来移动数据、我们可以川 代码覆齑的办法来提髙性能,将DMA的控制器配置为在执行前把代码送入L1指令存储器。代码往往存储于 较大的外部存储器中,而根据需耍有选择性的送入L1。
DMA控制器的编程
让我们考察一下在定义DMA活动的过程中可以有哪些选项。我们将从最简单的模型开始,并在此褪础 上过渡到更为灵活的模型,这反过来增加了设置的复杂度。
对于任何类型的DMA传输,我们都需要规定数据的起始源和0标地址。对于外没DMA的情况来说,外 设的FTFO可以作为数据源或者M秘端。当外设作为源端吋,某个存储器的位置(内部或外部)则成为H鉍端 地址。当外设作为H标端,存储的位置(I々部或者外部)则成为源端地址。即DMA不能进行外设和外设的
传输!
在最简单的MemDMA情况巾,我们需耍吿诉DMA控制器源端地址、目标端地址和待传送的字的个数。采 用外没DMA的情况下,我们规定数据的源端或者目标端,具体则取决于传输的方向。每次传输的字的人小 可以是8、16或者32位。这种类型的事务代农了简单的1维(“1D”)统一 “跨度”(unity stride)的传输。 作为这一传输机制的一部分,DWA抟制器连续跟踪不断增加的源端和H标端地址。采用这种传输方式时,8 位的传输产生1字节的地址增S,而16位传输产生的增最为2字节,32位传输则产生4字节的增ft。上 面的参数是基本的ID DMA传输
文档评论(0)