以浏览器打开网页为例分析计算机内部一系列操作动作

来源:互联网 发布:伟星ppr水管颜色 知乎 编辑:程序博客网 时间:2024/06/04 18:23

“中断控制器”也是CPU众多外设中的一个,不同的是,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU。



作者:王晓远
链接:https://www.zhihu.com/question/31259327/answer/147547667
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

先问是不是
有些不基于块访问的设备, 比如键盘, 打印机等, 还是得通过CPU.

我猜题主想问的可能是DMA(Direct Memory Access), 直接存储器访问为什么不经过CPU.

I/O发展是经过一下一步步发展的
1. CPU直接控制外围设备(硬盘磁带等), 在简单微处理器中常用
2. 增加I/O模块, 将CPU与外围设备解耦, CPU只与I/O模块
打交道. 只需定义好接口, CPU厂商和外围设备厂商就可以相互根据接口开发, 互不影响
3. 增加中断方式, 还是经过I/O模块, 只不过I/O模块完成之后, 只需通知CPU即可, CPU在等待阶段完全可以去做其他事情, 提高CPU利用率.
4. I/O模块增加DMA控制器. 之前的阶段是每次只传输一个字, 就通知CPU, 就发起一次中断, CPU放到寄存器中, 再放到内存中. 这样CPU就会被连续的中断打断, 不断切换进程, 上下文, 效率很低.
DMA控制器类似于一个小的CPU, 有自己的寄存器(记录主存地址和取到的字的count等).
CPU可以发起一个DMA请求, 传入读写操作类型, 相关I/O设备地址, 内存的起始地址, 要操作的字数.
然后DMA就可以获取总线的控制权, 将一大块内存和外部I/O读入或写出.
等操作完成后, 再通知CPU. 释放总线控制权.

缺点是:
系统总线也是一种资源, DMA操作期间, 当处理器需要访问总线时, 执行速度会变慢.
但是总得来说, DMA是一种高效传输方式.




IO设备的输入输出有好几种方式,键盘、鼠标这类的低速设备是通过中断请求的方式进行IO操作的。即当键盘上按下一个按键的时候,键盘会发出一个中断信号,中断信号经过中断控制器传到CPU,然后CPU根据不同的中断号执行不同的中断响应程序,然后进行相应的IO操作,把按下的按键编码读到寄存器(或者鼠标的操作),最后放入内存中。


作者:余天升
链接:https://www.zhihu.com/question/20824491/answer/16306375
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

阅读全文
0 0
原创粉丝点击