LaTeX 渲染有问题。将就着看吧。

能否将外设直接连接到系统总线上?不可以

为什么不能把外设直接连接到系统总线上

  • 外设种类繁多,操作方法多种多样

  • 外设的数据传送速度一般比存储器或处理器的慢得多

  • 某些外设的数据传送速度比存储器或处理器要快

  • 外设使用的数据格式和字长度通常与处理器不同

# I/O 模块

I/O 模块是计算机内部系统和外设之间的桥梁

# 功能

# 处理器通信

命令译码,状态报告,数据,地址识别

# 设备通信

通信内容包含命令、状态信息和数据

# 数据缓冲

# 控制和定时

# 检错

# 外部接口

  • 并行接口:多根线

  • 串行接口:一根线

# 操作技术

# 编程式 I/O

轮询?

I/O 不会中断处理器,因此处理器需要周期性地检查 I/O 模块的状态,直到发现该操作完成

CPU 全程 100% 投入

为了执行 I/O 操作,处理器发送一个指定具体 I/O 模块和外设的地址,并发送一条 I/O 命令

I/O 指令很容易映射为 I/O 命令,并且两者之间通常是简单的一一对应关系

编址方式

  • 存储器映射式 I/O:合并到指令系统里

  • 分离式 I/O:有独立的线

# 中断驱动式 I/O

中断处理器来进行 I/O 操作

152c3c6e93f27b59af4dc5a626ad1f34.png

# 响应优先级和处理优先级

  • 响应优先级:

    • 响应优先级决定了中断控制器在接收到多个中断信号时,应该优先响应哪一个中断请求。

    • 响应优先级仅涉及哪一个中断首先被响应,不直接决定中断的具体处理时间。

  • 处理优先级:

    • 处理优先级决定了 CPU 在响应中断后,如何分配资源来处理这些中断。

    • 处理中断时,可能出现嵌套中断的情况,此时需要根据处理优先级决定是否允许其他中断打断当前中断

    • 举例:如果当前正在处理一个低优先级的中断,但又有一个高优先级的中断到来,则高优先级中断可以中断低优先级中断的处理(称为嵌套中断)。

** 例子:** 假设中断系统中有 4 个中断源,其响应优先级为 L1>L2>L3>L4,处理优先级为 L1>L4>L3>L2。如果在主程序执行时同时发生 L1、L3 和 L4 中断,并且在处理 L3 中断的过程中发生 L2 中断,写出掩码字和所有中断服务程序的过程。

b264a7cd4b7e43fe4e4ce2293b48c6bb.png

** 掩码字:** 为 1 代表可打断,为 0 代表不可打断

# 直接存储器存取(DMA)

直接存储器存取:无需经过处理器即可直接访问内存的模块

DMA 模块将全部数据块,每次一个字,直接将数据传输到存储器或从存储器读出,而无需经过处理器

传输完成时,DMA 模块向处理器发送一个中断信号

内存访问时,DMA 优先于 CPU

# 内存访问

# CPU 停止法

e3fd9487d3368fcc89bfa31c1aeea396.png

直接打断 CPU?

优点:控制简单

缺点:影响 CPU,没有充分利用内存

适用:高速 I/O 设备的块传输

# 周期窃取

210c6722eefcd38c43f94182d41bac73.png

在 CPU 访问的间隔期使用 DMA?

适用:I/O 周期大于存储周期

# 交替分时访问

3b8b71c86f3097515555f02a285f9db8.png

优点:CPU 未停止或等待,DMA 不请求总线

缺点:CPU 周期大于存储周期

# 配置机制

# 单总线分离 DMA

所有模块共享相同的系统总线

DMA 直接连在总线上

# 单总线集合的 DMA-I/O

DMA 逻辑实际上可能是 I/O 模块的一部分,也可能是控制一个或多个 I/O 模 块的单独模块

# I/O 总线

使用 I/O 总线将 I/O 模块连接到 DMA 模块

多个 I/O 模块共享 DMA,且易于扩展

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

北沐清 微信支付

微信支付

北沐清 支付宝

支付宝