当前位置: 首页 > web >正文

计算机组成原理:I/O

计算机组成:I/O

  • I/O概述
    • I/O系统构成
    • I/O接口
    • I/O端口
      • 两种编址区分
  • I/O数据传送控制方式
    • 程序查询方式
      • 独占查询
    • 中断控制方式
      • 硬件判优法(向量中断法)
      • 多重中断嵌套
    • DMA控制方式
      • 三种DMA方式
      • DMA操作步骤
  • 内部异常和中断
    • 异常和中断的关系

I/O概述

在这里插入图片描述

I/O系统构成

在这里插入图片描述
一个最基础I/O系统的构成:CPU、I/O接口、硬件(鼠标)。

最主要学习:一个硬件、两个模型,硬件就是指I/O接口,两个模型,一个是中断模型:外设与CPU;另一个是DMA模型:外设与内存(磁盘与主存)。

上面的图里,一个I/O接口对应了不同的外设,这种结构也是可能有的,外设是同样的外设,例如:好多个打印机。但是408考的应该是一个外设对应一个I/O接口。

I/O接口

在这里插入图片描述例如打印机和I/O接口,打印机肯定有自己的时钟,并不是受到CPU控制的,所以为异步方式。

  1. I/O接口组成
    在这里插入图片描述
    例子:计算机与打印机相连,计算机发送一个“开始打印”的命令给打印机,这条指令实际上是由一串二进制代码构成的,通过数据线传入到状态/控制寄存器中。随即I/O接口进行译码,将译码以后的控制信号发送给外设控制逻辑。
    地址译码和I/O控制: 用于对要访问的I/O寄存器号进行译码,对于控制字译码生成控制信号。
    控制线: 传输读/写的命令;并且CPU和外设是异步方式,控制线上还会传输握手信号、寄存器清0等。

问题:控制线是可以双向传输的么?答案:是的,CPU给它发命令,它给CPU发中断信号。

  1. 举个栗子
    在这里插入图片描述
  • 问题1:地址线上传送的是打印机的编址?
    非也,408内基本上是一个外设对应一个I/O接口,那么CPU选择外设是通过传送不同的I/O接口中的端口地址来“间接选择”的。
  • 命令字就是控制指令,不是指我们IR中的指令吧?
    不是捏,但是有点儿像思密达。

详解“状态字”: 类似PSW内的状态信息,包含的内容有:是否已经开机啊,是否有纸张啊,是否有墨水啊。

I/O端口

I/O接口又名“设备控制器”,I/O端口就是I/O接口中的寄存器,例如:数据缓冲寄存器、控制/状态寄存器。CPU编址是对I/O接口中的寄存器进行编址。
在这里插入图片描述

  1. 统一编址
    在这里插入图片描述
    在这里插入图片描述
  2. 独立编址
    在这里插入图片描述
    独立编址下,就不能用load/store指令进行访问外设,而必须用专门的输入/输出指令访问I/O端
http://www.xdnf.cn/news/6256.html

相关文章:

  • 死信队列-常见的业务场景
  • gd32e230c8t6 keil6工程模板
  • 关于嵌入式系统的知识课堂(一)
  • 2天长沙旅游规划
  • 几种运放典型应用电路
  • Vue:显示数据
  • HTML 颜色全解析:从命名规则到 RGBA/HSL 值,附透明度设置与场景应用指南
  • Flutter - UIKit开发相关指南 - 线程和异步
  • Seed1.5-VL:高效通用的视觉-语言基础模型
  • leetcode - 滑动窗口问题集
  • Qt 自定义槽 + 自定义信号(9)
  • 《数据库原理》部分习题解析1
  • 使用Haproxy搭建高效Web群集的完整指南
  • MATLAB中heatmap函数
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的低集中度市场运营策略研究
  • RHCE认证通过率
  • LeetCode Hot100 (1/100)
  • 家庭宽带的内网穿透实践
  • 数学实验(Matlab符号运算)
  • 面试篇: Redis(持续更新)
  • vue3基础学习 [简单标签] (vscode)
  • More Effective C++:改善编程与设计(上)
  • Redis内存淘汰策略和过期键删除策略有哪些?
  • Flutter在键盘的上方加一个完成按钮
  • JAVA异常体系
  • Linux proc文件系统 内存影射
  • YOLO11解决方案之热力图探索
  • 二分查找的边界问题
  • KUKA机器人中断编程3—暂停功能的编程
  • Selenium-Java版(环境安装)