计组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的传输控制
相关推荐
luoganttcc2 天前
小鹏图灵芯片 硬件架构
硬件架构
猫头虎2 天前
2025最新超详细FreeRTOS入门教程:第一章 FreeRTOS移植到STM32
stm32·单片机·嵌入式硬件·机器人·硬件架构·freertos·嵌入式实时数据库
麦兜*2 天前
MongoDB 性能调优:十大实战经验总结 详细介绍
数据库·spring boot·mongodb·spring cloud·缓存·硬件架构
luoganttcc2 天前
黑芝麻芯片 架构分析
架构·硬件架构
智者知已应修善业3 天前
【multisim汽车尾灯设计】2022-12-1
驱动开发·经验分享·笔记·汽车·硬件架构·硬件工程
切糕师学AI3 天前
现代CPU设计哲学——加载/存储(Load-Store)架构
硬件架构·cpu·处理器
来生硬件工程师3 天前
【硬件笔记】负载是如何烧MOS的?
笔记·嵌入式硬件·硬件架构·硬件工程·硬件设计
陌夏微秋5 天前
FPGA硬件设计4 ZYNQ外围-以太网-PL/PS
stm32·单片机·嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信
切糕师学AI16 天前
32位内部数据通路是什么?
硬件架构
IoT小趴菜16 天前
IDE和AHCI硬盘模式有什么区别
硬件架构·智能硬件