- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DMA技术简介
* 地址寄存器:包括源地址和目的地址寄存器。在进行DMA操作之前,在CPU控制下将源地址和目的地址分别装入DMAC的源地址和目的地址寄存器;在进入DMA操作后,由这些地址寄存器提供出源地址和目的地址,并在传送数据的同时,由硬件以加1或减1来修改地址寄存器的值。 字节计数器:用于控制传送数据块的长度。在进入DMA操作之前,CPU将数据块长度(字节数)装入字节计数器中。进入DMA操作后,每传送一个字节数据,由硬件自动修改计数器的值(减);当计数器溢出时,便使DMA方式的数据传送结束。 控制/状态寄存器:控制寄存器用于选择DMAC的操作类型、工作方式、传送方向和有关参数。这种选择是通过CPU在DMA操作之前向控制寄存器写入相应的控制字来实现的。状态寄存器用于寄存DMA传送前后的状态。DMA传送结束后,CPU通过对该寄存器执行输入指令即可读入状态字,了解所需的状态和结果。 总线接口和总线控制逻辑:这部分电路主要用于在DMA传送之前接受来自CPU的控制字和根据外部/内部DMA请求向CPU转发总线请求;DMA操作期间进行定时和发出读写控制信号;DMA操作结束后向CPU发出中断申请和状态信息。 当然了,这只是通用DMA的一般性结构 ,对于更加智能化的DMA,在这些基本功能的基础上还增加了一些新的、更强的功能。如能在DMA传送结束时产生中断请求信号;能在传送有一个常数后输出一个脉冲信号,用于记录已传送的字节数和为外部提供周期性的脉冲序列;在一个数据块传送完后能自动装入新的起始地址和字节数,以便重复传送一个数据块或几个数据块链接起来传送;能产生两个存储器地址,从而实现存储器与存储器之间的传送以及能够对I/O设备寻址,实现I/O设备与I/O设备之间的传送以及能够在传送过程中检索某一特定字节或者进行数据校验等等。 * 从上面的图例,我们可以知道对于DMA,其整个工作流程包括两个方面:CPU工作部分;DMA硬件工作部分; 如果更加详细的去划分各自的工作范围,我们可以按着一个任务体从开始到结束的顺序来划分,划分结果如下: 1、CPU配置I/O设备,使其向CPU申请DMA功能,也就是申请一个DMA通道; 2、根据任务需求,配置申请的DMA通道和建立一个任务实体; 3、提交任务实体,从硬件的角度来说,就是通过底层硬件写相关寄存器的值,比如源、目的地址register、传输数据量等,从软件的角度来说,就是将任务实体加入到DMA任务队列中; 4、CPU将总线控制权移交给DMAC,而后发起DMA传输; 5、传输完毕或是在传输过程中遇到错误,DMA分别产生一个完成中断或错误中断,提示CPU进行相关的数据处理; 6、CPU有选择性的响应5中所提到的中断,此时挂起DMA去处理相关任务;处理完毕如果还有任务体没有被执行则重新启动DMA,转到3; 7、任务结束,结果输出; 当然了,对于一些更加智能化的DMA,除了在硬件方面丰富其功能外,还在软件方面添加了一些资源回收、错误恢复、状态检测、动态的添加任务实体等功能。 * * 网络应用类型的不断创新,也在快速提升对于网络效能的需求。 如果用户使用最先进的CPU依然要处理那些未经优化的TCP/IP协议,由此产生巨大的系统开销并不奇怪。比如,TCP/IP协议的传输过程中需要封装、解包,这些动作对于处理器而言并不是一个复杂的过程,但是却是会占用处理器周期,而且网络带宽越高,这个问题越严重。当然了系统开销的增大不仅仅表现在占用较多的处理器周期,还会导致处理网络相关数据导致时的内存访问效率降低的问题。这又会进一步的降低CPU效能和网络效率。 * 1:客户机以TCP/IP数据包的形式发出一项请求,服务器通过其网络接口接收该请求。该数据包包含针对数据包识别和路由的标头信息,以及客户机请求相关的实际数据有效负载。 2:服务器对TCP/IP数据包进行处理,并将此数据包有效负载路由至指定应用。此处理过程包括涉及TCP/IP堆栈的协议计算、针对数据包描述符的多服务器内存访问与有效负载传输、以及其它各种系统操作活动等(如中断处理与缓冲区管理等)。 3:应用程序对客户机请求进行分析,并认识到它需要存储器数据来响应该请求。 4:应用访问存储器来获得必要数据,以满足客户机请求。 5:将所请求的数据返回给应用。 6:应用使用从存储器获得的额外数据完成对客户机请求的处理。 7:服务器通过网络连接将响应路由返回,以作为TCP/IP数据包发送至客户机。 由上面图形可知道 : 即应用响应延迟是一个多方面的系统级问题: 1、为了向应用提供有效负载,必须对数据包进行接收、识别和处理; 2、在应对客户机请求时,应用通常必须从存储器获取必要数据,并将响应信息返回到服务器; 3、服务器必须将响应信息转换为TCP/IP数据包,并将其路由回客户机; *
您可能关注的文档
最近下载
- 保险行业转型培训课程打造创新保险产品与服务模式.pptx
- 人工智能技术在金融业风险管理中的应用与前景展望培训.pptx
- 理解与表达修订版完整版全套PPT电子课件教案.pptx
- 一种平坦地形光伏支架风荷载优化应用.docx
- 班级管理(第3版)教学课件汇总全套电子教案(完整版).pptx
- ai人工智能指令集2.docx
- 2023铁路货物运输合同.docx
- 征信简版PDF个人信用报告-优征信版本-2025年2月去锁可编辑.pdf
- 市教育体育局党组书记深入学习贯彻中央八项规定精神学习研讨发言材料+在中心组学习贯彻中央八项规定精神研讨发言交流材料.docx VIP
- 2025年江西省教师招聘考试真题试卷及答案(高中物理) .pdf VIP
文档评论(0)