计组4——总线Plus IO

(CPU外部的)总线

用于连接computer3大模块(M+C/GPU+IO)

CPU内部的片内总线判优由时序逻辑实现

composition& priority-judging

通信方式

  • CPU内部的片内总线用于取指、译码、执行、中断的数据通信;

IO

  • 总线分为控制线、数据线和地址线,对IO设备的控制也是如此,
  • 只是不同的IO数据传输速率差别较大,通过IO接口转接,
  • 此外,CPU准备好了,IO未必准备好,控制线由此分为命令线和状态线,
    在程序中断方式、程序查询中,制定(设备)地址线后,CPU发送信号到命令线,IO准备好后通过状态线响应,之后方可从数据线读取;
  • 若干个端口(存放数据、地址、控制信息的寄存器)+控制逻辑=接口;

IO设备的工作原理,IO接口的构成

IO接口的工作流程


从IO读入

  1. CPU由地址线确定要读入的地址,通过控制线发送读信号,
  2. IO控制逻辑发送控制信号到IO,状态控制寄存器标记为 待写入/读IO
  3. 外设准备好后,通过状态线发送准备状态到IO控制逻辑,寄存器=D=1,B=0,ID=0,CD=0
  4. IO控件接受IO发送的数据,并存储到数据缓冲寄存器,寄存器=D=1,B=0,ID=1,CD=0
  5. 将状态/控制寄存器标记为 已写入IO,CPU未读取/读IO,状态线通知CPU可以读取,
  6. CPU发送读信号,然后从缓冲区读取,之后状态/控制寄存器 标记为 已读取/读IO为,寄存器=D=1,B=0,ID=1,CD=1
  • 状态/控制寄存器------标记外设状态,控制IO的读写等操作

写入IO

  1. CPU由地址线确定要写入的地址,控制线发送写信号,状态/控制寄存器标为 未写入/写IO

  2. IO设备通过外设控制逻辑向设备发送写信号,

  3. IO数据缓冲寄存器接受CPU的写入数据,状态/控制寄存器标为 已写入控件,IO未读取/写IO

  4. IO准备好通过状态线通知IO控件,IO控件通过控制逻辑发送写信号

  5. 然后将数据缓冲寄存器的数据输出到外设,状态/控制寄存器标为 已读取/写IO

IO与CPU、主存的交互方式

  • 这3种IO与系统的交互并没有优劣之分,只是使用的场景不同
  • 程序中断可以取代程序查询吗?------需要编写响应的中断程序,可以将CPU从查询的等待中解放出来;
  • 程序查询用于CPU与IO交换数据,程序中断用于CPU与IO交换数据等中断服务处理
  • DMA用于主存与IO交换数据,程序中断需要中断请求、判优、响应、服务、返回,耗时
  • 程序查询的预处理在CPU发送IO前,程序中断的保护现场则包含在IO中断流程中
  • DMA控制逻辑相当于1个小CPU,负责IO与MM的传输控制
相关推荐
JERRY. LIU18 小时前
为什么焊接金丝时,烙铁头不能长时间接触金丝
硬件架构·射频工程·pcb工艺
Aaron15881 天前
基于VU13P在人工智能高速接口传输上的应用浅析
人工智能·算法·fpga开发·硬件架构·信息与通信·信号处理·基带工程
Bigbig.1 天前
驱动工程师面试题 - 操作系统1
linux·开发语言·面试·硬件架构
Aaron15882 天前
全频段SDR干扰源模块设计
人工智能·嵌入式硬件·算法·fpga开发·硬件架构·信息与通信·基带工程
夜月yeyue3 天前
Linux内存映射
linux·单片机·嵌入式硬件·硬件架构
YJlio3 天前
RAMMap 学习笔记(15.2):Processes / Priority / Summary——从“谁在用”和“谁更重要”看物理内存
开发语言·笔记·python·学习·django·pdf·硬件架构
fiveym4 天前
CPU睿频与核心核心问题全解析
运维·硬件架构
YJlio4 天前
Sysinternals 学习笔记(15.0):系统信息工具总览——RAMMap、RU、CoreInfo 等一网打尽
开发语言·笔记·python·学习·django·pdf·硬件架构
Aaron15884 天前
基于RFSOC+VU13P在5G波束成形中的技术应用分析报告
人工智能·算法·5g·fpga开发·硬件架构·信息与通信·基带工程
qq_672592755 天前
STM32超声测距离的测量精度评估
stm32·硬件架构·硬件工程