数据传输控制方式
输入输出控制方式
- 程序控制(查询)方式:cpu一直持续不断在查询I/O是否准备好了,准备好就会调用I/O;I/O没有准备好,CPU会持续等待I/O;(软件实现)
- 程序中断方式:CPU无需等待I/O,适用于某些急需处理、特殊处理、异常处理的情况,打断中断正在进行的进程;
- 在程序的执行过程当中,它会接收到中断请求,程序的执行会出现断点,断点时,程序的一切状态会被记录保存到栈当中,这个记录的过程就是保存现场/保护现场;出现断点之后,会有软硬件来处理响应断点优先级判断,通过查看中断向量表来中断服务程序的入口地址,I/O处理完会后返回断点,这个过程就是恢复现场;
- 中断的过程主要有:接收中断请求,中断判优,中断响应,中断处理,中断返回;CPU无需等待,I/O传输和CPU事务可以并行;(软件实现)
- DMA:(直接内存存取),DMAC(DMA控制器),CPU无需参与;传输前需要CPU进行预处理,传输后需要中断方式来进行后面的处理;
- 通道方式、I/O方式:纯硬件,I/O方式更专业;
- 从软件方式实现渐渐的到硬件方式来实现,效率越来越高;
总线
- 总线是一组公共信息线路;
- 共享:允许多个部件同时从总线上接收相同的信息;
- 分时:同一时刻仅允许一个部件向总线发送信息;如果同时多个部件发送消息到同一条总线会产生信号冲突;
- 只能分时向总线发送数据,但可同时从总线中接收数据;
- 总线根据当中的数据线的多少,又可分为串行总线和并行总线;
- 并行总线里包含了多条双向数据线,一次可并行传输多个bit位(数据位),效率高,但各个数据线传输的数据存在不同的延迟,所以到达接收端时,可能会有延迟不一致导致错误,所以不适合远距离(计算机内部采用);
- 串行总线里只包含了一条双向传输的数据线,或两条单向传输的数据线;传输过程中,数据会按照各自的bit位以及一定的顺序速度来进行串行的进行发送,适合长距离,(通讯设备采用);
- 串行总线传输的波特率是总线初始化时预定的,使用中可改变;
- 串行总线是按位(bit)传输数据的,其数据的正确性依赖于校验码纠正;
- 串行总线的数据发送和接收是以软件查询方式(程序控制查询方式)或者程序中断方式工作;
- 串行总线里可以有单工,半双工,全双工总线;
- 单工:串行总线里,只能实现发送或者接收单一的功能,只有单向传输的功能;
- 全双工:串行总线里,既能发送又能接收,有成对的发送和接收端,实现双向传输功能;
- 半双工:串行总线里,轮流实现发送和接收的功能,需要切换发送和接收功能;
- 单工总线只能在一个方向上传输信息,半双工总线可在两个方向上轮流传输信息,全双工总线可在两个方向上同时传输信息;
- 单工,半双工,全双工由具体的硬件决定;
- 总线宽度:总线里的线数,由线的数据决定,会影响到数据总线或者地址总线;
- 总线带宽:总线宽度 * 总线频率;
CISC和RISC
- CISC: 如 X86系列计算机
- RISC: 如 ARM系列芯片