CPU与外设传输数据的方式
目录
程序控制方式:
中断方式:
DMA方式:
CPU与外设传输数据共有三种方式:
1.程序控制方式
2.中断方式
3.DMA方式
程序控制方式:
程序控制方式可细分为无条件传送和查询式传送
(1)无条件传送:
无条件传送是一种最简单的程序控制传送方式。该种方式是由用户进程直接控制内存或CPU和外围设备之间的信息传送。这种方式控制者都是用户进程。当程序执行到输入输出指令时,CPU不需要了解端口的状态,直接进行数据的传送。该种方式的输入输出口电路很简单,如让数码管显示输出代码。
(2)查询传送方式
与无条件传送方式的不同点在于查询传送方式在执行输入输出操作之前,需要通过测试程序来对外部设备的状态进行检测,只有当选定的外设已经“准备就绪”后,才能够开始进行输入输出操作。
中断方式:
当外设准备好与CPU进行数据传输时,外设首先会通过中断引脚向CPU发出中断请求,CPU接收到中断请求后在一定的条件下暂停原来的程序执行中断服务处理程序,执行完毕之后再返回原来的程序继续执行。
中断引脚如下图芯片的INT引脚:
DMA方式:
DMA:direct memory access,直接存储器访问。
DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。
DMA方式最明显的一个特点是,它不是使用软件而是采用一个专门的控制器来管理内存与外设之间的数据交流,无需CPU直接来进行数据的操作,大大提高了CPU的工作效率。
CPU与外设传输数据的方式相关推荐
- CPU与外设间数据传输方式
主要有程序传送方式.中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下. 1. 程序传送方式 程序传送方式是指直接在程序控制下进行数据的输入/输出操作.程序查询方式分为无 ...
- 计算机寄存器端口,CPU和外设之间的数据传送方式有哪几种
数据传输(data transmission),指的是依照适当的规程,经过一条或多条链路,在数据源和数据宿之间传送数据的过程.也表示借助信道上的信号将数据从一处送往另一处的操作. CPU与外设之间的数 ...
- cpu与外设工作原理
总结来说,就是插上外设后,cpu就可以检测和连接到外设上的寄存器,把它当成内存来使用,然后就是对这些寄存器进行读写,写控制寄存器来控制外设,读状态寄存器来检测外设状态(外设会把当前状态信息放到指定寄存 ...
- 操作系统-CPU与外设交互方式
操作系统-CPU与外设交互方式 文章目录 操作系统-CPU与外设交互方式 1. 查询方式 2. 无条件传输方式 3. 中断方式 4. 通道方式 5. DMA方式 1. 查询方式 查询方式是一种异步 ...
- cpu与外设接口,cpu时序控制、电源时序控制(电源IC控制)
目录 1.cpu与外设和存储器数据交换分别通过两种接口连接:I/O接口和存储器接口 2.89C51单片机时钟电路和时序控制 3.CPU-指令周期,时序产生器和控制方式(重要) 3.1.时序控制方式 4 ...
- 汇编语言--CPU对外设的控制
CPU对外设都不能直接控制,如显示器.音箱.打印机等. 直接控制这些设备进行工作的是插在扩展插槽上的接口卡. 扩展插槽通过总线和CPU相连,所以接口卡也通过总线同CPU相连.CPU可以直接控制这些接口 ...
- ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)
ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...
- 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
有不少人问到: flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位.为什么要偏1位? 从软件和CPU的角度而言,一 ...
- ARM中断分析之一:中断控制器和CPU、外设的关系
"中断控制器"也是CPU众多外设中的一个,不同的是,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU.下图是一张中断控制器外设的框图,s3c2410的框图. ...
最新文章
- 在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库
- maven配置阿里云仓库镜像
- PL/pgSQL的anyelement例子
- Java 8 Stream API详解--转
- flink 4-输出
- Tomcat的安装和运行
- 神级代码编辑器 Sublime Text 全程指南
- 热释电传感器三个引脚_Adafruit的树莓派教程:热释电传感器感知运动
- 文本框宽度自动适应文本宽度
- java建一个conversion_Scala中的JavaConverters和JavaConversions之间有什么区别?
- flutter在2019年会有怎样的表现?
- 解决cv2.error: OpenCV(4.0.0)的方法
- oracle 提示存在lob,Oracle数据库出现ORA-19566 LOB坏块的处理记录
- consul java_springcloud使用consul作为配置中心
- ExtJS 5.1 TabReorderer plugin
- Python: Shuffle()的作用
- 计算机使用交接记录表,交接文档_计算机软件及应用_IT计算机_专业资料
- MATLAB的非线性变换
- 【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了
- python 网页自动化实现
热门文章
- 13.纯CSS实现新拟物炫酷时钟
- 《星球大战:义军崛起》
- 象棋ai算法(极小-极大值搜索、负极大值函数、Alpha-Beta剪枝算法、渴望算法)
- 链表逆序的三大方法(Python实现)
- 浙里办APP接入H5应用的坑
- 小白玩Ubuntu——一脸懵逼到爱不释手
- python execjs 网站_Python ExecJS JavaScript引擎使用Python类
- MATLAB的Curve Fitting Tool 生成代码并被调用
- 计算机四级手机破解,计算机四级题库
- 如何制作优质的电商网站帮助中心,为企业客服人员节省60%的咨询工作量