DMA传输和Cache一致性分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DMA传输和Cache一致性分析

DMA传输和Cache一致性分析   摘 要 介绍了Cache技术的基本原理,分析了DMA传输过程中存在Cache一致性问题,并介绍了几种解决Cache一致性问题方法,同时在实际应用中实现了安全的DMA传输设计。   关键词 DMA;Cache;数据一致性   中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2014)08-0039-02   1 概述   在设计用于存储嵌入式系统的程序和数据的存储器时,常面临一个很难的选择,既希望有便宜而快速的存储器,但编译的存储器速度一般较慢,而快速的存储器一般不便宜。高速缓冲存储器Cache最早由Wilkes于1951年构想出来,为了弥合处理器与存储器之间速度差距而提出的。在计算机系统中,CPU执行所需的指令和数据都是保存在内存中的,但是CPU执行指令的速度要明显高于访问内存的速度。为了弥补主存速度的不足,在CPU和主存之间设置一个高速、小容量的缓冲存贮器(Cache),构成Cache―主存存贮层次。使之从CPU来看,速度接近于Cache的,容量却是主存的,CPU尽量不直接访问主存,只与高速Cache交换信息。   由于CPU访存具有相对的局部性,即CPU从主存取指令或取数据,在一定时间内,只是对主存局部地址区域的访问,因此将部分内存块预先暂存在Cache中,等到CPU需要访问时,大多时候直接访问Cache即可取得指令和数据,这样就可以很好的解决CPU执行速度和访存速度的冲突。   2 Cache工作原理   Cache的基本结构如图1所示,主要由Cache存储体、地址映射变换机构、替换机构几大模块组成。   图1 Cache的基本结构   2.1 Cache存储体   Cache存储体以块(或行)为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高。Cache存储体中的数据实际上是主存的一个副本。   2.2 地址映射变换机构   它将CPU送来的主存地址转换为Cache地址。由于主存和Cache的块大小相同,块内地址都是相对于块的起始地址的偏移量,因此地址变换主要是主存的块号。地址映射方法有很多,典型的方式有:全相联映射、直接映射、组相联映射和段相联映射等。   如果转换后的Cache块已与CPU欲访问的主存块建立了对应关系,即已命中,则CPU可直接访问Cache存储体。如果转换后的Cache块与CPU欲访问的主存块未建立对应关系,即不命中。此刻CPU在访问主存时,不仅将该字从主存取出,同时将它所在的主存块一并调入Cache,供CPU使用。将主存块调入Cache存储体时,如果Cache已被装满,就得采用替换策略。   2.3 替换机构   当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache。常用的替换算法有RAND、FIFO、LFU、LRU和OPT等。   2.4 Cache的读写操作   Cache读操作过程比较简单,流程如图2所示。   图2 Cache读操作过程   Cache写操作比较复杂,因为对Cache块内写入的信息,必须与被映射的主存块内的信息完全一致。当程序运行过程中需对某个单元进行写操作时,会出现Cache一致性问题,即可能存在Cache中的数据和内存中的数据不一致的现象。一般的解决方法有两种:写直达法和写回法。   写直达法,每次向Cache写入时,同时也向主存写入。这样会增加访存次数,但作为CPU的读写操作,Cache和内存数据是一致的。   写回法,数据每次只是暂时写入Cache中,并用标志标明,直到该块被替换出Cache时,才写入主存,优势是速度快。   2.5 Cache的改进   Cache刚出现时,典型系统只有一个缓存,但为了进一步提高CPU读写效率,提出了分立Cache和多级Cache。   多级Cache,指CPU和内存之间设置不止一级的Cache。Cache的目的是,为了给出逼近最快存储器的速度,同时以较便宜的半导体存储器的价格提供一个大的存储器容量。多级Cache也就进一步加速了存储器访问速度。   分立Cache,指将指令和数据分开,分别存在指令Cache和数据Cache中。主要基于两点考虑:一是指令和数据的特性不一样,指令一般只需读取,不需对其进行写操作,而数据要进行读和写操作;二是为了指令执行的控制,将指令和数据分开更易于实现超前控制或指令流水线控制。   3 DMA传输Cache一致性问题   DMA传输方式是一种高效的数据传送方式,它采用专门的硬件(DMA控制器)来控制数据传送,数据在外部设备(包

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档