计算机组成原理-8、总线与输入输出系统

2023-11-17

前言:最近备研学习计算机组成原理的一些笔记,记得比较仓促,仅供个人参考,等明年会仔细结合自己的一些看法加以改进。如有不足之处,还请多多指教。

总线与输入输出系统

总线与输入输出系统概述

  • 组成计算机的三类模块:CPU、存储器、I/O设备
  • 互连结构(互连网络):连接这三类模块通路的集合。
  • 专用通路:仅在两个部件之间传递信息的通路。
  • 共享(公用)总线:在不同时刻(分时)传递不同部件之间信息的通路。
    总线:计算机系统中多个部件或设备共用的传递信息的电子通道。

输入输出系统的组成:

  1. 输入输出设备
  2. 输入输出接口
  3. 输入输出控制器
  4. 输入输出控制管理软件

输入输出系统的功能:

  • 将各种输入输出设备有效地接入到计算机系统中;
  • 将计算机外部的输入设备的信息输入到计算机内部,以便能够得到加工处理,该功能简称为输入操作;
  • 将计算机内部存储或加工处理的信息输出到计算机之外,以提供给计算机外部的输出设备使用,该功能简称为输出操作。
  • 数据在外存中进行存、取的操作。

外设的分类:

  • 字符设备(Character device)
  • 块设备(Block device)

基本输入输出技术:

  • 程序查询方式
  • 中断控制方式
  • DMA(直接存储器存取)方式
  • 通道控制方式

控制地址数据总线

总线

总线类型与结构

总线设备:

  • 主设备(Master)
  • 从属设备(Slave)

按连接层次分类:

  • 片内总线
  • 系统总线
  • 通信总线

按数据位数分类:

  • 并行总线
  • 串行总线

按用法分类:

  • 专用总线:只连接一对功能部件
  • 公用(共享)总线

总线的特性:

  • 机械特性
  • 电气特性
  • 功能特性
  • 时间特性

总线的性能指标:

  • 总线带宽
  • 总线宽度
  • 总线负载

单总线结构
多总线结构

总线的信息传输方式

计算机系统功能的实现:两类操作相互配合。

  • 数据在功能部件内部进行加工处理
  • 数据在功能部件之间进行有效传输
总线数据传输方式

总线上进行一次传输的过程:

  1. 传输请求
  2. 总线仲裁
  3. 部件/设备寻址
  4. 数据传输
  5. 总线释放

数据传输的基本方式:

  1. 并行传送方式
    • 传输速率高,需要较多的数据线
  2. 串行传送方式
    • 只用一条数据线,传送距离远
  3. 分时传送方式
  4. 消息传送方式
总线通信方式

同步通信方式

  • 优点:速度快,接口逻辑简单。

  • 缺点:

    • 总线上的每个设备必须以相同的时钟频率运行,且时钟速率依慢速设备而定;
    • 时钟偏移问题:总线时钟频率↑总线长度↓
  • 异步通信方式

    • 无时钟信号线
    • 使用握手协议
      • 非互锁、半互锁、全互锁
      • 串行异步通信:不用握手信号、无时钟信号

总线仲裁

主方启动一个总线周期
从方响应主方的请求

多处理器系统,各CPU模块的总线请求:公平I/O模块的总线请求:优先级

总线仲裁(Bus Arbitration):用来决定哪个主设备可以使用总线的选择机制

按照总线仲裁电路位置不同,仲裁方式可分为:

  1. 集中式仲裁
    1. 链式查询方式(菊花链)
    2. 计数器定时查询方式(轮询)
    3. 独立请求方式
  2. 分布式仲裁(如:SCSI总线)
集中式仲裁:链式查询(菊花链)
1、链式查询方式(菊花链仲裁方式)

特点:使用总线的优先次序完全由“总线可用”线所接部件的物理位置来决定离总线控制器越近的部件其优先级越高

优点

  • 优先级选择算法简单
  • 用于分配总线所需的线数少,只需要3根,且不取决于部件的数量→可扩充性好。
  • 价格便宜。
  • 易于通过多重设置“总线可用”线来提高其系统的可靠性。

缺点

  • 可靠性差:“总线可用”线失效,会导致系统瘫痪
  • 灵活性差:优先级顺序固定
  • 总线使用的分配速度低
集中式仲裁:计数器定时查询(轮询)
2、计数器定时查询(轮询仲裁方式)

优点

  • 灵活性好:总线使用的优先级可由程序控制改变。
  • 可靠性高:某个部件失效不会使系统瘫痪。

缺点

  • 所增加的控制总线较多,需要 2+[log2n] 根。
  • 可扩充性较差,受限于查询控制线的根数
  • 控制器较复杂,价格较高。
  • 总线的分配速度不高
集中式仲裁:集中式仲裁:独立请求
3、独立请求仲裁方式

优点

  • 总线分配速度高,无需检测是哪个设备要求使用总线。
  • 灵活性好:总线使用的优先级可由程序控制改变。
  • 可靠性高:某个部件失效不会使系统瘫痪。

缺点

  • 所增加的辅助控制总线线数多,需要2N+1根
  • 可扩充性差
  • 控制器复杂,价格高。
分布式仲裁(了解即可)

以太网总线:冲突检测分布式仲裁方案
Futurebus+总线:并行竞争分布式仲裁方案

典型的总线(看书的详细介绍,注意常见总线特点)

典型的系统总线(内总线)

  • ISA总线
  • PCI总线、PCI-E总线
    • 特征:
      • 不依赖处理器
      • 每条总线支持256个功能设备
      • 支持多达256条PCI总线
      • 低功耗
      • 支持猝发式事务处理(数据传输)
      • 33/66MHz最高时钟频率
      • 32/64位数据总线宽度
      • 访问时间:2时钟周期写,3时钟周期读
      • 并发的总线操作
      • 支持总线主设备
      • 隐藏的总线仲裁:集中式的独立请求仲裁方式,PCI规范未规定仲裁算法

典型的通信总线(外总线)

  • RS-232C
  • USB
  • IEEE-1394
  • SCSI
  • SAS
  • ATA
  • SATA

输入输出接口(了解)

输入输出系统的构成:

  • CPU或I/O处理器
  • 总线
  • I/O接口
  • I/O设备
  • I/O管理控制软件
4、IO设备与总线连接的一般模型

I/O接口作用及模型

I/O接口的作用:I/O设备 <–>总线

  • 传递数据
  • 设备选择
  • 设备控制
  • 信号形式转换
  • 速度匹配
  • 数据缓存
  • 错误检测
  • 负载匹配
  • 支持中断
  • ……

程序员看到的I/O接口:接口内部可读写的寄存器或缓冲器。
典型的I/O接口模型:

5、IO接口模型

I/O地址编址方式

I/O地址的两种编码方式:

  1. 存储器映射方式(统一编址方式)
    1. 将主存与I/O设备放置在同一个地址空间中。
    2. I/O设备与主存使用相同的指令和控制信号。
    3. 不需要专门的I/O指令,可以简化控制
    4. 在地址空间确定的情况下,两者的地址扩充相互制约
    5. Motorola 680X0系列采用此方式。
  2. I/O映射方式(独立编址方式)
    1. 主存与I/O设备使用各自独立的地址空间
    2. 要求系统提供专门的I/O指令
    3. 对主存与I/O设备采用不同的读/写控制信号
    4. 便于系统调试维护便于主存与I/O地址空间的扩展
    5. I/O设备的操作不够灵活
    6. Intel微处理器采用此方式。

I/O接口设计

简单的I/O设备:接口芯片,地址译码

  • 三态缓冲器
  • 锁存器
  • 可编程并行接口芯片
  • 可编程串行接口芯片

复杂的I/O设备:I/O控制器

  • 单片机
  • 微控制器(MCU)
  • 嵌入式处理器

输入输出技术

输入输出技术:

  1. 程序查询方式:Programmed I/O
  2. 中断方式:Interrupt-driven I/O
  3. 直接存储器存取(DMA)方式Direct Memory Access,DMA
  4. I/O通道方式:I/O channel
  5. 操作系统的支持

程序查询

I/O接口中要有状态寄存器,记录I/O设备的工作状态
查询设备状态由CPU执行指令实现。
数据传输操作由CPU执行指令实现。

6、程序查询IO流程

程序查询方式的限制:

  • I/O数据传输速率低
  • CPU工作效率较低。(需要一直监视着)
  • 不能保证及时响应I/O设备的I/O服务请求。

中断(重点!!!)

中断:

  • 实现主机与多台外设的并行工作。
  • 实现故障诊断与处理。
  • 随机事件在规定时间内做出实时响应与处理

中断:中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。
被中断的程序重新运行时必须处于和被中断前完全相同的状态

中断源:引起中断发生的源头。

  • CPU内部:计算机系统工作异常、运算溢出、功能调用、…
  • CPU外部:系统电源掉电、设备或线路故障、定时器时间到、启动或停止I/O设备、I/O设备输入输出操作、…
    • 非屏蔽中断源
    • 可屏蔽中断源
      内中断/软件中断:由内部中断源引发的中断。不可屏蔽
      外中断/硬件中断:由外部中断源引发的中断。可屏蔽、非屏蔽。
中断过程(重点)
  1. 中断源向CPU发中断请求信号;
  2. CPU结束当前指令的执行检测中断请求信号(中断要在中断周期产生,而中断周期处于最后一个指令周期);
  3. CPU(允许中断且该中断未被屏蔽)向提出请求的中断源发出中断响应信号INT-ACK ,转向4、,否则,CPU继续执行下一条指令,转向2、;
  4. CPU进行断点保护,PSW、断点(PC)地址保存在堆栈中;被响应的中断源撤消中断请求信号,并为CPU提供中断处理程序入口地址的相关信息;
  5. CPU识别中断源,获得中断处理程序入口地址(首地址),并将其装入PC,转向执行中断处理程序;
  6. CPU执行中断处理程序(跳转到B程序了);
  7. CPU执行中断返回指令IRET恢复被保存在堆栈中的断点信息,回到断点处继续执行原程序。
7、中断实现过程

中断实现过程注意:中断要在中断周期产生,而中断周期处于最后一个指令周期,所以指令n执行完毕后,才会进入中断。中断返回时才从指令n+1开始。
而异常可以在任何一个阶段产生

中断响应时间:从发中断请求,到进入中断服务程序所需的时间。

中断源的选择与识别

基本原则

  • 中断判优:当多个中断源同时提出中断请求时,只有优先级最高的中断源的请求被选择,并被CPU处理。
    • 中断优先级:Interrupt priority levels,IPL
    • 优先级高的中断源:
      • 重要的、需及时响应的中断源
      • 内部中断(或异常)
    • 优先级低的中断源:
      • 重要性低、慢速的中断源
      • 外部中断,非屏蔽中断优先级 > 可屏蔽中断
  • 中断嵌套:Interrupt nesting
    • 高优先级中断正被CPU服务时,所有低优先级中断被禁止高优先级中断请求可以打断低优先级中断服务

中断优先级控制:

  • 软件
    • 方案简单,可以灵活地修改中断源的优先级别;
    • 查询、判优靠程序实现,占用CPU时间,判优速度慢。
  • 硬件
    • 判优速度快,节省CPU时间;
    • 但是成本较高;
    • 一旦设计完成,将难以改变其优先级别。

【例】

【解】

中断方式的实现
8、中断方式的实现

硬件设计

  • 中断控制逻辑
  • 中断请求与优先级仲裁逻辑
  • I/O接口

软件设计

  • 初始化程序
  • 中断处理程序

中断的用途

  • CPU与I/O设备并行工作
  • 硬件故障自动处理与自动恢复
  • 灵活的人机通信
  • 随机事件的实时处理
  • 多任务切换
  • 用户程序与系统程序的通信
  • 多处理机通信

中断的开销

  • 执行中断处理程序
  • 响应时间,中断源识别时间(非向量中断)
  • 信息保护
  • 恢复时间

【例】某中断系统响应中断需要50ns,执行中断处理程序至少需要150ns,其中有60ns用于软件额外开销。那么,该系统的中断频率最大是多少?中断额外开销时间占中断时间的比例是多少?有一个字节设备,数据传输率为10MB/s,如果以中断方式且每次中断传送一个数据,那么该系统能实现这个传输要求吗?

【解】
∵ 最短的中断间隔时间=最短的中断时间=50+150=200(ns)
∴ 最大的中断频率=1/200ns=5×106(次/s)
中断额外开销时间=中断系统响应时间+软件额外开销
=50+60=110(ns)
中断额外开销时间占中断时间的比例=110/200=55%
∵ 设备数据传输率为10MB/s,
即传输数据的间隔时间=0.1μs<最短的中断间隔时间,
∴ 该系统不能实现这个传输要求。

DMA(直接存储器存取)(重点!!!)

DMA就是要使得一个硬件子系统来直接访问系统内存,并且不占用CPU的运算能力把CPU解放出来。

9、DMAC内部逻辑及与系统连接

DMA传输过程:

  1. CPU执行初始化DMAC的程序。
  2. I/O设备向DMAC发出DMA请求信号DREQ(此时也是中断),DMAC向CPU提出DMA请求DMA-REQ。
  3. CPU在DMA断点处响应DMA请求放弃总线的控制,使DMA-ACK有效。
  4. DMAC使DACK有效,通知提出请求的I/O设备做好数据传输的准备,同时,DMAC接管总线,开始控制I/O设备与主存之间直接的数据传输。
  5. DMA传输期间,每传送一个数据,DMAAR加1,DC减1
  6. (DC)=0时,DMAC使DMA传输正常结束;当(DC) ≠ 0时,重复执行步骤3、。
  7. DMA传输结束,DMAC通知CPU,并放弃对系统总线的控制
DMA过程

DMA中断可以在任何一个执行周期相应(普通中断需要等到执行到中断周期才能被响应)

10、中断和DMA响应时刻

DMA与中断的比较

11、DMA与中断的比较

记住DMA不占用CPU
可看出,使用DMA时CPU使用效率更高。

DMA工作机制
  1. DMAC与CPU的总线控制权交换方式

    1. 周期挪用(窃取)方式
      两种情况:
    • 隐藏周期DMA:窃取总线
    • 暂停CPU方式:抢总线
      特点:
    • 当主存工作速度高出外设较多时,可提高主存的利用率,且对CPU的影响较小。
    • 高速主机系统常采用这种方法。
    1. 存储器分时方式
      原来的一个存取周期分成两个时间片,一片分给CPU,一片分给DMAC。
    • 无需申请和归还总线。
    • 需要主存的工作速度提高一倍。
    1. 停止CPU方式
    • DMAC:申请总线→独占总线→释放总线
    • 控制简单;主存利用率不高。
    1. 扩展时钟周期方式
  2. DMAC的数据传输模式

    1. 字节传输模式
    2. 数据块传输模式
    3. 请求传输模式

【例】
一般要求DMA连接的I/O设备应是快速的,如视频接收器和硬盘。已知视频接收器在0.02s接收512×512B,硬盘的位密度50kb/英寸、转速7200转/分、磁道半径(内道)0.9英寸,试计算视频接收器和硬盘的数据传输率。

【解】
视频接收器的传输率 = (512 × 512B) / (2 × 10(−2)s) ≈ 13.1MBps
硬盘的传输率 = (50

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机组成原理-8、总线与输入输出系统 的相关文章

  • 动态库装载及 dlsym的RTLD_NEXT参数详解

    在看公司spp框架代码的时候发现了如下一段宏定义 其中的dlsym函数及其RTLD NEXT参数的含义不是很明白 于是网上搜了下这里做个记录 define mt hook syscall name do if g mt syscall ta

随机推荐

  • 扔掉工具类!MyBatis 一个简单配置搞定加密、解密,好用!

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 3 5 分钟 来自 https juejin cn post 6963811586184052767 目录 一 背景 二 解决方案 三 需求 四 实现思路 五 实现代
  • spring cloud alibaba 学习(二十五)nacos 服务地址动态更新

    目录 前言 服务地址动态更新 前言 通过配置endpoint来实现服务地址的动态更新 服务地址动态更新 1 在 NacosConfigBootstrapConfiguration 创建 NacosConfigManager 的过程中 会创建
  • Unity PlayerPrefs、JsonUtility

    Unity中有两个常用的数据存储方式 PlayerPrefs和JsonUtility PlayerPrefs PlayerPrefs是Unity内置的一种轻量级数据存储方式 可用于存储少量的游戏数据 如分数 解锁状态等 使用PlayerPr
  • LPDDR4协议规范之 (六)刷新

    LPDDR4协议规范之 六 刷新 刷新命令 刷新计数器 刷新时序 刷新前时序 刷新后时序 全存储体刷新时序 tRFCab tRFCpb 自刷新 自刷新期间进入掉电模式 自刷新中止 刷新命令 REFRESH命令在时钟的第一个上升沿以CS HI
  • GDI+ 中 Pen 使用总结

    背景 图形类 Graphics 是 GDI 的核心 它提供绘制图形 图像和文本的各种方法 Graphics 中使用 DrawString 方法在指定位置绘制文本或者在一个指定矩形内绘制文本 所有的 Graphics 类的绘制方法都得配合 P
  • MXNet简介

    MXNet是一个十分优秀的深度学习框架 目前包含了许多语言接口 如Python C Scala R等 目前 MXNet版本已经更新到1 3 0 本系列文章主要使用Python接口 在MXNet官网 1 上 官方建议新手使用Python接口
  • 网站代理是什么?有什么需要注意的?

    如今 网站代理已经成为一种不可或缺的经营方式 无论是企业还是个人 都需要通过代理来获得更多的流量和市场份额 一 网站代理的优势 网站代理的优势在于能够为您提供更加专业 周到的服务 这些优势包括 1 丰富的内容资源 能够满足客户对不同领域信息
  • Java-按照指定小时分割时间段

    按照指定小时分割时间段 param dateType 类型 M D H N gt 每月 每天 每小时 每分钟 param dBegin开始时间 param dEnd结束时间 param time 指定小时 如 1 2 3 4 return
  • 变分推断学习

    https zhuanlan zhihu com p 401456634 变分推断 1 变分推断的背景 在机器学习中 有很多求后验概率的问题 求后验概率的过程被称为推断 Inference 推断分为精确推断和近似推断 精确推断一般主要是根据
  • H5播放之Rtsp转Websocket点播录像抓拍

    H5播放之Rtsp转Websocket点播录像抓拍 HLS的延时 websocket播放 实现思路 广大网友们 很久没上CSDN了 暨上次RTSP转HLS文章发布以来 一直还有一个问题没有解决 如何避免HLS切片带来的不可避免的高延时 HL
  • 浅谈PCA 人脸识别

    前几天讨论班我讲了基于PCA的人脸识别 当时我自己其实也只是知道这个算法流程 然后基于该算法利用c 实现了 效果还不错 后来跟师兄一起讨论的时候 才发现这个PCA还是有相当深刻的意义 PCA的算法 矩阵C AAT A的每一列是一张人脸注 将
  • Java的基础语法

    1 关键字介绍 1 Java 中一些赋以特定的含义 用做专门用途的字符串称为关键字 keyword 2 所有Java关键字都是小写英文字符串 2 Java变量 1 Java变量是程序中最基本的存储单元 其要素包括变量名 变量类型和作用域 2
  • c语言用指针找最大数,C语言,用指针。求输入20个数,依次输出这几个数,求最大值,最小值。...

    满意答案 yuab0p0dpi3 2013 11 22 采纳率 53 等级 13 已帮助 13064人 include include define LENGTH 20 void main int pBuff int malloc size
  • FTTR(Fiber To The Room)组网详解

    FTTR Fiber To The Room 是一种新型的光纤宽带接入技术 主要用于宽带网络覆盖范围有限 带宽瓶颈较严重的酒店 公寓 医院等场所 FTTR技术可以将光纤信号传输到用户房间内 实现高速 稳定的网络接入 提高用户体验 下面我们详
  • Python的最大递归深度

    import sys old sys getrecursionlimit print old 1000 可能是个估计值 我不清楚我没查 报错范围总是比限制要小2 我的电脑上 我不知道为什么 感兴趣可以查一查 sys setrecursion
  • Anaconda的使用

    1 anaconda介绍 Python虽然是一门优秀的程序语言 但其拥有出色的数据处理能力 尤其是在数据量巨大的时候 因而也吸引了不少数据分析人员的关注和使用 Python的数据处理能力主要依赖于NumPy SciPy Matplotlib
  • 在Maven中前端构建实践

    NodeJS为前端技术的发展带来了一次革新 层出不穷的前端库 框架以及打包工具让大家应接不暇 然而这使得前端技术越来越依赖于NodeJS 基于NodeJS编写的前后台项目可以使用同一编译或者打包工具进行管理从而做到无缝的前后端版本控制以及联
  • JSON和xml的区别

    首先 json和xml都是在远程调用或者和某公司合作时的数据交换格式 json和xml的区别 有什么优缺点 ajax 的 和json优缺点 相同点 json与xml是一种远程数据传输交换格式 json是轻量级的 xml标记电子文件具有结构性
  • Fsm serial

    In many older serial communications protocols each data byte is sent along with a start bit and a stop bit to help the r
  • 计算机组成原理-8、总线与输入输出系统

    前言 最近备研学习计算机组成原理的一些笔记 记得比较仓促 仅供个人参考 等明年会仔细结合自己的一些看法加以改进 如有不足之处 还请多多指教 文章目录 总线与输入输出系统 总线与输入输出系统概述 总线 总线类型与结构 总线的信息传输方式 总线