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

IO接口基本结构与内容

第一章:I/O系统基本概念

1.1 为什么需要I/O系统?
  • 速度不匹配:CPU速度极快,而I/O设备(如键盘、硬盘、打印机)速度极慢。

  • 时序不匹配:各I/O设备有自己独立的时序控制电路,与CPU时钟不同步。

  • 数据格式不匹配:CPU处理的是并行数据(如32位、64位),而设备可能是串行数据(如鼠标、网络)或不同字长。

1.2 I/O系统的组成

一个完整的I/O系统通常包括:

  1. I/O设备本身:如显示器、硬盘等。

  2. 设备控制器:也叫适配器,是插在主板插槽上或集成在设备上的电路板。它负责控制具体的设备,是CPU与设备之间的“翻译官”。

  3. I/O接口:位于CPU(或系统总线)与设备控制器之间的一组电路。它负责协调CPU与设备控制器之间的通信。(本章核心)

  4. I/O软件:包括驱动程序、用户软件等。

注意:在很多教材和考试中,“设备控制器”和“I/O接口”的概念有时会混用或合并讨论,但严格来说,接口更偏向于总线的标准化,而控制器更偏向于设备的特异性控制。

第二章:I/O接口的功能与结构

2.1 I/O接口的核心功能
  1. 地址译码与设备选择:识别CPU发送来的地址,判断是否是给自己的命令。

  2. 数据缓冲与锁存

    • 缓冲:解决速度不匹配,如设置数据缓冲寄存器。

    • 锁存:在异步通信中,保持数据的稳定,以便CPU或设备读取。

  3. 数据格式转换:如串行-并行转换。

  4. 电平转换:将CPU的信号电平与设备所需的电平进行匹配。

  5. 控制与状态逻辑

    • 接收CPU的命令(如读、写)。

    • 向CPU报告设备的状态(如忙、就绪、错误)。

  6. 时序控制:提供所需的定时与控制信号,以满足CPU和设备双方的时序要求。

  7. 中断管理:对于中断方式的I/O,接口需要具备发送中断请求和接收中断响应的能力。

  8. 错误检测:如奇偶校验。

2.2 I/O接口的基本结构

一个典型的I/O接口内部包含以下寄存器,这些寄存器也被称为 “I/O端口”

  • 数据寄存器:存放要在CPU与设备间传输的数据。

  • 状态寄存器:存放设备当前的状态信息(如READY, BUSY)。

  • 控制寄存器:存放CPU发来的控制命令(如启动、停止)。

  • 地址译码逻辑:用于选择接口内的各个寄存器。

CPU通过不同的端口地址来访问这些寄存器。


第三章:I/O端口及其编址方式

CPU如何找到并访问这些I/O端口?有两种主流方式:

3.1 存储器映射式I/O
  • 思想:将I/O端口地址和主存单元地址统一编址。将一部分内存地址空间分配给I/O设备。

  • 特点

    • 优点

      1. 无需专门的I/O指令,所有访问内存的指令(如LOAD, STORE)都可用来访问I/O端口。

      2. 无需单独的I/O地址译码和控制电路。

      3. I/O程序设计灵活。

    • 缺点

      1. 占用了部分内存地址空间。

      2. 通过地址来区分是访问内存还是I/O,对编程人员可能不够直观。

3.2 独立编址式I/O
  • 思想:为I/O端口建立独立的地址空间,与内存地址空间完全分开。

  • 特点

    • 优点

      1. I/O端口地址不占用内存空间。

      2. 有专门的I/O指令(如x86架构的IN, OUT),程序清晰,易于区分。

      3. 地址译码简单(因为地址空间小)。

    • 缺点

      1. 需要专门的I/O指令和控制信号(如IOR#, IOW#)。

      2. 控制电路相对复杂。

408考点:必须清楚区分这两种方式,并能分析其优缺点。


第四章:I/O控制方式(核心与难点)

这是I/O部分最重要的内容,描述了数据在内存和I/O设备之间传输的具体管理方式。

4.1 程序查询方式
  • 过程

    1. CPU向I/O接口发出命令,启动设备。

    2. CPU反复轮询检查接口状态寄存器的“就绪”位。

    3. 当设备就绪,CPU执行一次数据传输(一个字节或字)。

    4. 重复2-3步,直到所有数据传输完成。

  • 特点

    • 优点:接口简单,硬件成本低。

    • 缺点:CPU绝大部分时间都在等待和查询,CPU利用率极低

  • 流程图

    CPU启动I/O
    ↓
    [读取状态寄存器]
    ↓
    {检查是否就绪?}
    --否--> [等待] --> [读取状态寄存器]
    |
    是
    ↓
    [传输一个数据]
    ↓
    {传输完成?}
    --否--> [读取状态寄存器]
    |
    是
    ↓
    结束
4.2 程序中断方式
  • 过程

    1. CPU启动设备后,不再等待,继续执行原有程序。

    2. 当I/O设备准备就绪时,主动向CPU发出中断请求信号。

    3. CPU在当前指令执行结束后,检查中断请求。

    4. 若允许响应,CPU则暂停当前程序,转去执行一个特定的中断服务程序

    5. 在中断服务程序中,完成数据的传输。

    6. 执行完毕后,CPU返回原程序断点处继续执行。

  • 特点

    • 优点:解决了程序查询方式的“忙等”问题,提高了CPU利用率

    • 缺点

      • 传输每个数据都要进行中断响应、保护现场、恢复现场等操作,这些额外开销很大

      • 对于高速设备,频繁的中断会导致CPU效率依然低下。

  • 相关概念

    • 中断源:引起中断的事件。

    • 中断向量:中断服务程序的入口地址。

    • 中断屏蔽:允许或禁止某些中断源发出请求。

    • 中断优先级:多个中断同时发生时,CPU响应的顺序。

    • 单级中断与多级中断:是否允许中断嵌套。

4.3 DMA方式
  • 思想:在外设与内存之间开辟一条直接数据通路,数据传输不再经过CPU,而由一个专门的硬件控制器——DMA控制器来管理。

  • 过程

    1. CPU对DMA控制器进行初始化(告诉它数据在内存的起始地址、要传送的字节数、方向等)。

    2. CPU启动设备,然后去执行其他任务。

    3. 设备准备就绪后,向DMA控制器发出DMA请求。

    4. DMA控制器向CPU申请总线使用权。

    5. CPU完成当前总线周期后,释放总线控制权,并响应DMA请求。

    6. DMA控制器接管总线,直接在设备和内存之间完成一个或多个数据的传输。

    7. 传输完成后,DMA控制器释放总线,并向CPU发出中断信号,通知它传输已完成。

  • DMA控制器的组成

    • 内存地址寄存器(MAR)

    • 外设地址寄存器(DAR)

    • 字计数器(WC)

    • 控制/状态寄存器

    • 数据缓冲寄存器

  • DMA的传送方式

    1. 停止CPU访问内存:最简单,但CPU基本处于不工作状态,效率低。

    2. 周期挪用:DMA窃取CPU不使用总线的周期来传送数据。这是最常用的方式。

    3. DMA与CPU交替访存:将CPU周期分成两部分,一部分专供DMA使用。这种方式不需要总线申请、建立和释放过程,但硬件逻辑复杂。

  • 特点

    • 优点:数据传输速率高,CPU开销最小(仅在初始化和结束时参与)。

    • 缺点:硬件复杂,成本高。

三种方式对比总结表
控制方式CPU介入程度数据单位中断时机适用场景优点缺点
程序查询全程参与字节/字低速、简单设备接口简单CPU效率极低
程序中断每次传输字节/字每次传输后中低速设备提高CPU利用率频繁中断开销大
DMA初始化和结束数据块整个数据块传输后高速设备(如磁盘)高速、低CPU开销硬件复杂

第五章:常见标准接口(了解即可)

这部分在408中通常不作为大题考点,但选择题可能涉及概念。

  1. 串行接口:数据一位一位顺序传送。

    • RS-232C:老式标准,用于Modem、鼠标等。

  2. 并行接口:数据多位同时传送。

    • Centronics:用于老式打印机。

  3. USB:通用串行总线。特点:支持热插拔、即插即用、高带宽、可连接多个设备。

  4. SATA:串行ATA,用于连接硬盘、光驱。

  5. PCI/PCI-E:用于连接高速外设的扩展总线。


知识脉络与408考点梳理

  1. 核心逻辑:理解I/O系统存在的根本原因是速度鸿沟,所有技术演进(查询->中断->DMA)都是为了减少CPU在I/O过程中的等待和开销,从而提高系统整体效率。

  2. 必考重点

    • 三种I/O控制方式的原理、过程、优缺点比较。这是大题和选择题的高频考点,必须能画出流程图并详细阐述。

    • 存储器映射I/O vs. 独立编址I/O 的对比。

    • 中断机制(中断响应过程、中断向量、屏蔽字等)。

    • DMA机制(DMA控制器的工作过程、三种传送方式)。

  3. 计算题可能

    • 给定CPU时钟、I/O设备速率,计算程序查询方式下CPU时间的利用率。

    • 计算中断方式下,处理一次中断所需的CPU周期数。

    • 计算DMA方式下,传输一个数据块所需的总时间,以及CPU时间的占用比例。

  4. 综合题:I/O部分常与指令系统(I/O指令)、总线(DMA占用总线)、中断系统等结合出题。

http://www.dtcms.com/a/590113.html

相关文章:

  • 亲爱的redis你好
  • php搭建一个简单的网站做网站服装app
  • C++基于websocket的多用户网页五子棋 --- 认识依赖库
  • YOLOv5,YOLOv8替换激活函数
  • STM32外设学习--ADC模数转换器--笔记
  • 深圳网站开发建设服务公司网站推广软件排名
  • ArkTS多维度状态管理机制
  • 广西建设工程质量监督网站南京seo关键词优化资讯
  • 深圳建站公司有推荐的公司吗济南平台公司
  • 夏普比率和最大回撤公式推导及代码实现
  • win32k!xxxKeyEvent函数里面的win32k!xxxDoHotKeyStuff如何确定是CAD键的到来的
  • 网站建设课我要表白网站在线制作
  • 烟台网站建设 烟台网亿网络公司python培训学校
  • 计算机网络自顶向下方法41——网络层 自治系统内部的路由选择:开放最短路优先(OSPF)设置OSPF链路权值
  • HDFS分布式存储“入门教程“:从“文件上传“到“副本管理“,3步理解核心原理
  • 做网站的人是什么职位个人备案网站建设方案书
  • 网站后台补丁如何做珠海做网站公司有哪些
  • 黑龙江省农业网站建设情况win7怎么建设网站
  • 海南网站开发公司汝阳建设局网站
  • 人工智能备考2.2.1-2.2.5总结
  • 网络安全形势下怎么建设学校网站wordpress diy主题
  • 已经有域名如何做网站万网域名注册步骤
  • 有域名怎么建立网站建设网站需要什么技术
  • Altium Designer 6.0 初学教程(一)
  • 碳化硅为啥能成“功率芯片新贵”?
  • 蒙古网站群建设海口百度seo公司
  • 深圳网络做网站基于oa系统的网站建设
  • iis做的网站提示500学校的网站管理系统
  • 13.POSIX信号量
  • 网站开发实习深圳外贸公司名单