您的位置:首页 > 理论基础

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

2017-06-30 14:49 260 查看


“中断控制器”也是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

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: