计算机组成原理知识点汇总(四)输入输出系统
一、概述
发展分为四个阶段:
- 早期阶段:CPU与外设分散连接,每一个外部设备都直接与CPU进行连接,没有统一的标准接口。
- 接口与DMA阶段:系统采用总线结构,将CPU、内存和各种外设连接在一起。
- 通道阶段:通道具有自己的指令系统和程序,可以根据CPU的要求,独立地执行输入输出操作。
- 处围处理机阶段:外围处理机具有自己的内存、指令系统和操作系统,可以独立地完成输入输出设备的控制、数据处理和通信等任务。
题外话:什么是DMA?
想象你开了一家小超市,你既是老板,又是收银员,还是搬运工。有顾客来买东西付款,你得停下手里搬货的活,去收银台给顾客结账(处理数据),结完账又接着去搬货。CPU就像你这个“身兼数职”的老板,当外部设备(比如键盘、鼠标、硬盘等)要和内存交换数据时,CPU就得停下正在进行的计算任务,亲自来处理数据传输的事。这不仅让CPU忙得不可开交,还会导致计算任务的处理速度变慢。
后来,你觉得这样太累了,于是雇了一个专门的收银员。当有顾客来结账时,这个收银员就负责收钱找零,你就可以继续安心搬货。在计算机里,DMA就相当于这个专门的“收银员”。它是一种硬件机制,有自己独立的控制电路。当外部设备需要和内存交换数据时,DMA控制器会接管数据传输的工作,不需要CPU一直盯着。
二、I/O设备与主机联系方式
(1)编址方式
统一编址:
统一编址也称为存储器映射方式,它是将I/O端口和主存单元统一编址,即把I/O端口当作主存单元对待,从整个地址空间中划出一部分地址给I/O端口,对I/O端口的访问就如同对主存单元的访问一样。
- 优点
- 由于对I/O端口的访问和对主存单元的访问使用相同的指令,因此可以使用所有的内存访问指令来操作I/O端口,这使得对I/O设备的操作更加灵活和方便。例如,在进行数据传输时,可以直接使用MOV指令将数据从I/O端口传输到寄存器或主存中,也可以将数据从主存或寄存器传输到I/O端口。
- 程序员无需专门的I/O指令,减少了对指令系统的依赖,降低了编程的难度。同时,也便于对I/O设备进行管理和控制。
- 缺点
- I/O端口占用了一部分主存地址空间,这会减少主存的可用地址范围,限制了主存的容量扩展。
- 因为访问I/O端口和访问主存使用相同的指令,而主存的访问通常需要经过地址译码、数据读写等多个步骤,所以对I/O端口的访问速度可能会受到影响。
独立编址:
独立编址也称为I/O映射方式,它是将I/O端口和主存单元分开编址,即I/O端口有自己独立的地址空间,主存也有自己独立的地址空间。对I/O端口的访问需要使用专门的I/O指令。
- 优点
- I/O端口有独立的地址空间,不会影响主存的地址范围和容量扩展,主存可以使用全部的地址空间。
- 专门的I/O指令通常比访问主存的指令执行速度快,因为I/O指令的操作对象是I/O端口,不需要进行复杂的主存地址译码等操作。
- 缺点
- I/O指令的种类相对较少,功能不如内存访问指令丰富,这在一定程度上限制了对I/O设备的操作灵活性。
- 程序员需要专门学习和使用I/O指令,增加了编程的难度和复杂性。
(2)传送方式
并行和串行
(3)联络方式
异步和同步
(4)连接式
辐射式和总线式
三、I/O设备与主机信息传送控制方式
(1)程序查询方式
CPU不断地查询外部设备的状态,只有当外部设备准备好进行数据传输时,CPU才会进行数据的读写操作。
效率低。因为CPU需要不断地查询设备状态,在设备未准备好的时间里,CPU处于等待状态,不能进行其他有效的工作。而且,每次数据传输都需要CPU的干预,对于大量数据的传输,CPU的负担会很重,导致系统的整体效率低下。
(2)程序中断方式
外部设备在准备好进行数据传输时,会向CPU发出中断请求信号。CPU在接收到中断请求后,会暂停当前的程序,转去执行中断服务程序,完成数据的传输。
与程序查询方式相比,程序中断方式提高了CPU的利用率。因为CPU不需要不断地查询设备状态,在设备准备数据的过程中,CPU可以继续执行其他程序,只有在设备准备好时才会响应中断进行数据传输。但是,每次中断处理都需要进行现场保护和恢复等操作,会消耗一定的CPU时间,对于频繁的小数据量传输比较合适,对于大量数据的连续传输,效率仍然不够高。
(3)DMA方式
DMA方式是一种在外部设备和内存之间直接进行数据传输的方式,不需要CPU的干预。DMA控制器负责控制数据的传输,在数据传输过程中,CPU可以继续执行其他程序。
效率最高。它可以实现高速的数据传输,尤其是对于大量数据的传输,如硬盘和内存之间的数据交换。因为DMA控制器可以直接控制数据在内存和外部设备之间的传输,减少了CPU的干预,大大提高了数据传输的速度和系统的整体效率。
四、I/O接口
(1)采用原因
1. 数据缓冲功能
外部设备的数据传输速度和计算机主机的速度往往存在很大差异。例如,硬盘的读写速度相对CPU的处理速度要慢很多。I/O接口可以提供数据缓冲区,暂存数据。当主机要向外部设备输出数据时,先将数据送到接口的缓冲区,然后由外部设备慢慢读取;当外部设备向主机输入数据时,先将数据存入缓冲区,主机再根据需要从缓冲区读取,这样可以解决速度不匹配的问题,提高系统的效率。
2. 设备选择功能
在计算机系统中,通常会连接多个外部设备。I/O接口可以通过地址译码等方式,根据主机发出的设备地址信号,选择与之对应的外部设备进行数据传输,使得主机能够准确地与指定的外部设备进行通信。
3. 数据格式转换功能
不同的外部设备可能采用不同的数据格式。例如,有些设备采用串行数据传输方式,而计算机主机内部通常采用并行数据传输方式。I/O接口可以进行数据格式的转换,将串行数据转换为并行数据,或者将并行数据转换为串行数据,以实现主机和外部设备之间的数据传输。
4. 中断管理功能
在某些情况下,外部设备需要及时向主机报告一些事件,如设备完成数据传输、设备出现故障等。I/O接口可以产生中断请求信号,通知主机进行相应的处理。主机在接收到中断请求后,会暂停当前的工作,转去处理外部设备的请求,处理完成后再返回原来的工作继续执行。
五、DMA
(1)DMA与主存交换数据的方式
停止CPU访问主存
解释:
在这种方式下,当DMA控制器访问主存时,CPU会被暂停,它不会再直接访问主存。DMA控制器在此期间负责完成数据的传输,直到它完成任务后,CPU再恢复对主存的访问。
类比:
可以把它比作一个办公室中的电话会议。假设CPU就像是一个老板,它正在忙着处理一些事务,而DMA控制器就像秘书,它暂时接管了数据传输任务,直到它完成,CPU才会恢复继续工作。
周期挪用
解释:
周期挪用是指DMA控制器在CPU的一些空闲周期中插入数据传输操作。也就是说,CPU仍然可以访问主存,但在它空闲时,DMA控制器会“偷走”一个或多个周期来完成数据传输。
类比:
可以把它比作是一个忙碌的办公室员工(CPU),在等待回电的时候,临时把自己的桌面上的一部分工作交给另一个同事(DMA),但工作是间歇进行的。
DMA与CPU交替访问
解释:
在这种方式下,DMA和CPU交替访问主存。两者轮流操作主存,DMA控制器在一段时间内负责数据传输,然后CPU获得访问权,继续执行其任务。这种方式允许DMA和CPU同时进行任务,虽然它们共享资源,但通过适当的调度避免冲突。
类比:
可以把它比作两个司机轮流开车,每个人都按照轮班制度进行工作,确保车子一直在运行,但不会发生冲突。
(2)DMA接口的功能与工作流程
(1)功能
- 数据传输:DMA控制器可以在主存和外部设备之间直接传输数据,减少了CPU的负担。它可以把数据从一个设备或存储区域直接传输到另一个,而不需要经过CPU的处理。
- CPU负担减轻:DMA使得CPU可以在数据传输的过程中做其他计算任务,从而提高了系统的整体效率。DMA完成数据传输后,CPU只需处理少量的控制信息。
- 支持多种传输模式
- 中断控制:DMA传输完成后,会生成一个中断信号,通知CPU数据传输已完成,CPU可以接着处理后续任务。
- 传输优先级:如果有多个DMA请求,DMA控制器可能会通过优先级控制来决定哪个设备先进行数据传输。
(2)工作流程
- 外设请求DMA传输:当外设需要传输数据时,它通过请求线向DMA控制器发出请求。
- DMA控制器分配资源:DMA控制器根据请求选择合适的源和目标地址,设置传输模式,并确保数据传输时不会发生冲突。
- 数据传输:DMA控制器将数据从外设读取并写入主存,或从主存写入外设。
- 中断通知:数据传输完成后,DMA控制器向CPU发送中断信号,告知数据已经成功传输。
(3)DMA传送过程
预处理:
CPU负责向DMA控制器发送传输命令,告知其需要进行的数据传输操作
数据传送:
当外设准备好数据传输时,它向DMA控制器发出传输请求。一旦DMA控制器收到请求,它将占用总线(主存和外设之间的通信通道),从而绕过CPU,直接将数据从外设读取到内存,或将数据从内存写入外设。
后处理:
传输完成后,DMA控制器通知CPU,通过中断信号告知数据传输已经结束,释放资源