组成原理——输入输出技术

来源:互联网 发布:机器人设计软件 编辑:程序博客网 时间:2024/05/21 10:54

 上篇博客中介绍了CPU 对存储系统的一些简单知识。那么CPU除去要读取存储器的数据,还需要读取外设数据。
说到这,你估计要问,那外设的读取速度就更低了吧?确实时。读取外设数据要比读取存储器的速度慢好多。
那么首先,我们先来看一下CPU 和外设是如何交互的?
无疑,外设要接受CPU 的指令后,才可以进入输入。大家知道CPU 的效率决定计算机的性能,外设和CPU是如何协调这个矛盾的呢?

一、CPU 与外设的交互技术

1、直接程序控制
 无条件传送
  外设总是准备好的,无条件的接受CPU 发送过来的输出数据,同时无条件的想CPU 输入数据。
  
 程序查询方式
  CPU通过查询外设的状态,来判断是否可以发出指令。
  缺点:CPU 总是在不断的进行查询,CPU 这么重大的头号效率及,用这种方式,好比进行一项没有技术含量的工作,浪费资源,且运行效率低;同时,外部有突发事件,CPU 无法做出立即回应。
 
 缺点:程序控制中,不管是无条件传输还是查询,当外设在输入的时候,CPU 都需要进行等待,这样整个系统的效率就下降了。
 
2、中断方式
 当I/O系统和外设进行数据交换的时,CPU 无须等待,也不必是查询I/O状态,CPU 可以处理其他任务。当外设输入输出完成,发出中断信号,通知CPU,CPU 接到信号,首先保证现在的处理任务,接着转到中断服务程序执行。这样保证了CPU 的运行时间,从而提高了CPU 的运行效率。
 
 缺点:在程序发出中断信号后,还是打扰了CPU ,加入一个程序的输入输出非常频繁,那么CPU 还是无法完全正常运行,大部分时间还是耗费在处理中断信号上。
 
 在这里还有一点是:中断的分类:非屏蔽中断和屏蔽中断。故名思议,屏蔽就是可以被忽略的信号。说明这个I/O信息不是那么的重要。
  最典型的非屏蔽中断就是“停电”,屏蔽中断有很多了,例如打印机有时就是其中的一种。
 
3、直接存储器存取方式——DMA
  鉴于中断方式的弊端,我们可以把数据信息进行成块处理,把独立的信息进行打包,就是说在于外设交互中,不需要频繁发出中断,只需要在“信息块”开始是请求一次,完成后,请求一次,期间,CPU可以进行自己的工作。整合信息的工具就是“DMA”。
  
  缺点:存在大量外设时,恐怕DMA 也是吃不消的。
  
4、输入输出处理机——IOP

 IOP 是一个专用处理机,原理貌似和DMA 类似。应该是在DAM 的基础上,增加了处理多个外设的环节或者技术。使得多个外设的输入输出有集合成一个“块”。
 
二、外设用到的缓冲技术
 
 缓冲技术不用多说是为了匹配两个硬件之间速度不一致的问题。I/O不同于CPU和主存,一味的是CPU 从主存获取东西,I/O则是双向的。有向内CPU缓冲,和向外的外围设备的缓冲。
 
 1、CPU读取缓冲
  其实就是上面提到的“DMA”技术和“IOP”技术。
  
 2、向外的外围设备缓冲
  通用的缓冲技术和Spooling技术。
  通用的缓冲技术:目的是尽可能的是外设处于忙碌状态。采用硬件缓冲和软件缓冲来实现。硬件缓冲是通过硬件寄存器来实现,软件是通过操作系统来实现。
  同时这也是一个向内数据读取的缓冲技术。
  
 3、Spooling技术
   通过使用存储器特别是辅存来模拟真实存在的外部设备达到速度匹配的技术。
   例子:只有一台打印机,好多程序要用,我们就可以把这些要打印的数据暂存在“存储器的某个位置”,然后排进让打印机来打印。
   
 这些就是在复习软考中,遇到的有关I/O的一些简单总结。当然还有很多,不知道如何融洽的联想到一起。我也造个句子:且学且总结。
   
 


1 0