简述无条件传送方式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述无条件传送方式?相关的知识,希望对你有一定的参考价值。
参考技术A
Ⅰ CPU和外设之间的数据传送方式有哪几种
CPU与外设之间的数据传输方式有以下几种:
1、查询控制方法:
CPU通过程序主动读取状态寄存器,了解接口情况,完成相应的数据操作。查询操作需要以较少的时钟周期间隔重复,因此CPU效率较低。
2、中断控制模式:
在程序的例行操作中,如果外部有更高优先级的事件,则中断请求会通知CPU,然后CPU读取状态寄存器以确定事件的类型,从而执行不同的分支处理。该方法具有较高的cpu效率和良好的实时性。
3、DMA(直接内存访问)控制模式:
顾名思义,直接存储器访问是指存储器和IO之间的硬件(DMA控制器)直接完成特定的数据传输过程。CPU只在数据传输开始时临时控制DMA,直到数据传输结束。这样,传输速度比cpu快,尤其是在批量传输时。
4、通道控制模式:
基本方法与上述dma控制方式相同,但dma由dma控制器完成,信道控制方式由专用信道总线完成通信和传输。比DMA更有效率。
(1)简述无条件传送方式扩展阅读:
CPU与外设之间的数据交换必须通过接口完成。通常,I/O设备接口具有以下功能:
1、设置数据存储和缓冲逻辑,以适应CPU与外设的速度差。接口通常由一些寄存器或ram芯片组成。如果芯片足够大,还可以实现批量数据的传输。
2、能够转换信息格式,如串行和并行转换;
3、能够协调CPU与外设之间的信息类型和电平差,如电平转换驱动器、数模或数模转换器等。
4、协调时差;
5、地址译码和设备选择功能;
6、设置中断和DMA控制逻辑,确保在允许中断和DMA时产生中断和DMA请求信号,并在接收到中断和DMA响应后完成中断处理和DMA传输。
Ⅱ 微机中,cpu与外设之间有哪几种传送的方式,他们的工作原理是什么啊!!
1、无条件传送抄(CPU与外设同步工作):
外部控制过程各种动作时间是固定的,而且是已知的。
2、查询方式(CPU与外设不同步工作):
传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。
3、中断方式:
外设与CPU处于并行工作,一旦外设准备好,外设向CPU发中断申请,条件具备,CPU暂停原程序执行,响应中断,外设与CPU串行工作。
4、DMA方式(高速I/O及成组交换数据):
CPU不干予,由硬件实现存储器与外设之间交换数据,称直接存取存储器。
Ⅲ 急急急!!微机原理,请你回答
第一题是单选吗?我感觉像多选。
首先我解释一下什么是同步串行通信,什么是异步串行通信,我尽量简短一点,免得你越发糊涂了,你要详细的话我可以补充。
异步通信一次传送一个字符,字符长度和格式是固定的,最前面是0,表示数据的起始,称为起始位,起始位之后是数据位,数据的位长度是固定的,有5位,6位,7位,8位四种。数据位之后是奇偶校验位。奇偶校验位之后是一个1,代表停止,称为停止位。一个字符完了,又是下一个字符的起始位。
也就是说每次发送一个字符,你实际传送的有用的数据位只有7位(或者5位,6位,8位,)。一个字符传完了再传下一个。
同步串行通信下,发送方先发送1到2个特殊字符,称为同步字符,让双方时钟达到同步。双发同步后就可以一次把所有要发送的数据发完。
同步有什么好处呢?
你想在异步情况下,我一次给你一个字符,如果中间的数据位是7位编码方式,那么这个字符至少有10位,最前面是起始位,数据后面有奇偶校验位和停止位,每10位中有7位是有意义的,另外3位是格式所迫,如果我传送一万位,那么有7千位是有意义的,三千位是浪费了。
在同步情况下就不同了,我先发两个字符告诉你,我要给你发数据了,你把时钟调整到和我同步,然后我就开始发数据了,一直把数据发完,如果我发给你一万位,那么有九千九百多位都是有意义的,效率显然更高。
至于选项,我觉得ABC都对,根据上面的解释异步串行通信当然不必同步了,A对
B,每个字符的发送是独立的。一个字符发完了才发下一个,两个字符独立,也对
C字符的长度是固定的,传送时间当然也一样了。C也对
D就不对了,波特率是一个技术指标,是指每秒钟所传送的位数。对于同步串行通信这个指标同样适用,而且说一个技术指标决定一个事物本身,这个说法也不合理。
这道题有待斟酌吧
第二题。I/O传送方式有四种。无条件传送,程序查询式传送,中断方式传送以及DMA方式。
无条件传送适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况。
开关就是最典型的例子,你看无论什么时候开关肯定处于准备好的情况吧,不像打印机这种设备可能需要准备时间。还有发光二极管啊,继电器啊,步进电机啊,你看他们都不需要准备时间吧
程序查询式传送适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。
中断方式传送是指CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务
DMA方式是指外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者;
所以第二题选A,这题确凿无疑
第三题
IF是中断标志位。IF=1,允许CPU响应可屏蔽中断(INTR),IF=0,CPU不响应可屏蔽中断
所以第三题选B,确定
第四题串口1的范围是3F8到3FF,串口2的范围是2F0到2FF。
所以第四题选B,确定
第五题
OUT DX AL
DX中存放的是设备寄存器的地址,比如打印机寄存器地址,这条指令的意思是把AL的内容送到打印机数据寄存器中
所以数据总线上出现的是AL
第五题选A
第六题
矢量中断优先级的设置采用中断优先级控制器,中断优先级管理电路判别出最高优先级中断请求,将其转换为3位码,送到中断类型寄存器的低3位以及当前中断服务寄存器中。无中断向量号无关
选B
第七题
中断屏蔽寄存器IMR,它是一个8位寄存器,用来存放各级中断请求的平屏蔽信息,当IMR中某一位位0是,允许IRR中相应位的中断请求进入中断优先判别器,若某位为1则该中断响应被屏蔽
选A
第八题选D,感觉没什么好说的
第九题 选D
无条件传送应该硬件按最简单
在这种方式下,CPU不用查询外设的工作状态,与外设速度的匹配通过在软件上延时完成,不需要专门硬件,在程序中直接用I/O指令,完成与外设的数据传送
,所以在软硬件上都很简单
而DMA方式虽然不经过CPU但是需要一块专门的电路来控制总线,控制信号,显然它的硬件反而应该是最多的
另外另个应该啊介于这两个中间,毕竟它们比无条件传送多出了几个步骤,如查询外设工作状态,等待,速度匹配等,这些都要硬件来实现
第十题
优先级从高到低是内中断,不可屏蔽中断NMI,可屏蔽中断INTR,单步中断
指令中断是内中断的一种
所以选D,肯定
第十一题
说实话这题我在数字电路里学过,在微机里倒是没学
A/D转换电路主要有两种,一种是逐次逼近型,一种是双积分型。逐次比进行就是拿数字量不停的和你读入模拟量(也就是你要转换的量)比较,一次一次靠近,比如你要把10.4转换为数字信号,我先拿8跟它比,小了,再拿16跟它比,大了,再拿10跟它比,小了,再拿11跟他比,大了,再拿10.5跟它比···因为你每次读入的数字量都在逼近10.4,所以肯定会变嘛
所以选C,肯定
第十二题
波特率是每秒传送的位数,所以波特率越高传送越快
选B,肯定
第十三题
中断向量存放的是中断服务程序的入口地址。系统识别一个中断请求后获得它的中断类型号N,然后到中断向量表中寻找4N到(4N+3)的字节,这四个字节存放的就是中断服务程序的入口地址,找到这个入口地址后就可以找到中断服务程序
所以选B,确定
第十四题
全嵌套方式是IR0到IR7优先级逐步降低
选A
第十五题
程序查询方式传送软件实现起来很简单
速度最快的是DMA,可以应对突发事件的是中断,CPU不介入的也是DMA
第十六题
查询方式下CPU会不断的查询外设的状态从而实现与外设的速度匹配,所以它占用CPU的时间是最长的,CPU效率也是最低的
所以选A
第十七题
应该是ISR,ISR是中断服务寄存器,某位为1表示对应的IR中断正在被服务
所以选B
第十八题
可屏蔽中断,这个没什么好说的
第十九题
收到RESET信号后,系统会置flags寄存器中的值全部为00H,所以IF=0,所以可屏蔽中断被屏蔽
第二十题
第二十题和第六题是一样的
优先级与中断号无关
选C
补充题
第一题
ZF,本次运算结果为0则ZF=1,否则为0,所以应该为1 啊
第二题
8253的初值为8位或16位数,如果用2进制,2的16次方就是65536
选A
唉,终于写完了,写了好久啊,都快一点了。因该说除了第一题,我想基本应该是对的吧,如果有什么不对的地方或者是有异议,跟我联系,我也看看。这几天一直比较忙,天天在实验室,我昨天晚上12点过了才看到你的信息,不好意思
Ⅳ 哪种传送方式可以提高系统的工作效率( )A,无条件
ACDA.分 *** 并接收技术是十分有效的抗多径衰落的方法B.LAPD即LinkAccessProcereD-channel是ISDN的第二层协议中定义的D信道链路访版问规权程,典型应用于ISDN帧中继网C.跳频FrequencyHopping,可以使发射载频以突发脉冲序列为基础进行跳变,将部分频率的干扰平均化,提供了频率分集作用,明显地降低同频干扰和频率选择性衰落效应。D.语音激活检测VAD、不连续发送DTX,是指DTX采用话音激活检测VAD技术,在不传送话音信号时停止发射,限制无用信息的发送,减少发射的有效时间F.GSM系统中的交织编码是在话音编码和信道编码后对比特流进行的一种改善信道传输的纠错编码,提高语音质量,可以为分集、跳频等技术提供保证,但本身并不能直接提高频率利用率
Ⅳ I/O数据有几种传送方式各有什么特点
程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。
无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式) 的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。
中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权, CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度), CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。
存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA 控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。
Ⅵ 从硬件的角度而言,采用硬件最少的数据传送方式是 ( ) A DMA控制 B 中断传送C 查询传送 D 无条件传送
d 无条件传送
Ⅶ 在单片机I/O传送数据方式用三种,分别为无条件方式,查询方式和中断方式,哪一种方式效率最高
肯定是中断方式,这样在没有传送数据时单片机可以做的别的事情。查询方式需要等待,无条件方式可靠性很低。
Java NIO-09-零拷贝之 DMA
DMA 的好处
在介绍DMA之前我想问大家:我们为什么要引入DMA,DMA对我们有什么好处那?
计算机系统中各种常用的数据输入/输出方法有查询方式(包括无条件及条件传送方式)和中断方式,这些方式适用于CPU与慢速及中速外设之间的数据交换。
但当高速外设要与系统内存或者要在系统内存的不同区域之间进行大量数据的快速传送时,就在一定程度上限制了数据传送的速率。
直接存储器存取(DMA)就是为解决这个问题提出的,采用DMA方式,在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送。
同时很重要的一点是当DMA传输数据时,并不占用CPU资源,在这个时候CPU可以空出手来做其他的事情。
这样我们既可以做大量数据的高速传输又可以让CPU有时间和资源去做其他的事情。
DMA 芯片的实现
上面介绍了什么是DMA,也介绍了DMA的重要性。那么我们就要看看我们芯片中的DMA了。
在S3C2440A中,我们集成了DMA模块,可以用来传递高速传输数据。既然是数据传输那么我又要问了,我们知道数据传输三要素:源,目的,长度。这是我们数据传输时要知道的。那么在S3C2440A中,源,目的,长度是怎么表示的那?
ps: 硬件知识,暂时不做研究。
DMA映射
基本原理
DMA映射主要为在设备与主存之间建立DMA数据传输通道时,在主存中为该DMA通道分配内存空间的行为,该内存空间也称为DMA缓冲区。
这个任务原本可以很简单,但是由于现代处理器cache的存在,使得事情变得复杂。
RAM与cache内容的一致性问题
出现问题原因
现代处理器为了提升系统性能,在CPU与RAM之间加入了高速缓存cache,所以当在RAM中为一个DMA通道建立一段缓冲区时,必须仔细考虑RAM与cache内容的一致性问题。
具体分析
如果RAM与Device之间的一次数据交换改变了RAM中DMA缓冲区的内容,而cache中缓存了DMA缓冲区对应的RAM中一段内存块。
如果没有机制保护cache中的内容被新的DMA缓冲区数据更新(或者无效),那么cache和他对应的RAM中的一段内存块在内容上出现了不一致,此时如果CPU去读取device传到RAM的DMA缓冲区中的数据,它将直接从cache获得数据,这些数据显然不是它所期望的,因为cache对应的RAM中的数据已经更新了。
解决问题
就cache一致性问题,不同的体系架构有不同的策略,有些是在硬件层面予以保证(x86平台)有些没有硬件支持而需要软件的参与(ARM品台)。
Linux内核中的通用DMA尽力为设备驱动程序提供统一的接口来处理cache缓存一致性的问题,
而将大量品台相关的代码对设备驱动程序隐藏起来。
DMA 的映射方式
1. 一致性DMA映射
linux内核DMA层为一致性DMA映射提供的接口函数为dma_alloc_coherent()
一致性所获得的DMA缓冲区的大小都是页面的整数倍,如果驱动程序需要更小的DMA一致性的DMA缓冲区,则应该使用内核提供的DMA池(pool)机制
对于一致性DMA映射,在分配DMA缓冲区时各平台相关代码已经从根本上解决了cache一致性问题.
但是,一致性映射也会遇到无法克服的困难,主要是指驱动程序中使用的DMA缓冲区并非由驱动程序分配,
而 大专栏 Java NIO-09-零拷贝之 DMA是来自其他模块(如网络设备驱动程序中用于数据包传输的skb->data所指向的缓冲区),此时需要流式DMA映射。
2. 流式DMA映射
流式DMA映射的特点是DMA传输通道使用的缓冲区不是由当前驱动程序自身分配的,而且往往对每次DMA传输都会重新建立一个流式映射的缓冲区,所以使用流式DMA映射时, 设备驱动程序必须小心负责处理可能出现的cache一致性。
linux内核DMA层为设备驱动提供的建立流式DMA映射的函数—dma_map_single
3. 分散/聚集DMA映射
分散/聚集DMA映射通过将虚拟地址上分散的DMA缓冲区通过一个struct scatterlist的数组或链表组织起来,然后通过一次的DMA传输操作在主存RAM与设备之间传输数据。
分散/聚集DMA映射本质上是通过一次DMA操作把内存中分散的数据块在主存与设备之间进行传输,对于其中的每个数据块内核都会建立对应的一个流式DMA映射。
需要设备的支持。
回弹缓冲区
如果CPU侧虚拟地址对应的物理地址不适合设备的DMA操作,那么需要建立回弹缓冲区,相当于一个 中转站,把数据往设备传输时,驱动程序需要把CPU给的数据拷贝到回弹缓冲区,然后再启动DMA操作。
DMA池
由于DMA映射所建立的缓冲区是单个页面的整数倍,如果驱动程序需要更小的一致性映射的DMA缓冲区,可以使用内核提供的DMA池机制(非常类似于Linux内存管理中的slab机制).
个人收获
参考资料
嵌入式Linux——DMA:在内核中简单使用DMA实现内存中数据传递
https://www.xuebuyuan.com/3235513.html
https://www.cnblogs.com/lihuidashen/p/4470678.html
以上是关于简述无条件传送方式?的主要内容,如果未能解决你的问题,请参考以下文章