EdwardJ

Stay Hungry Stay Foolish

0%

计算机原理-计算机的总线与IO设备

本系列文章仅作为我个人学习笔记的概要,所有资源来自慕课网,请勿用作商业用途,如需转载请注明出处。

往期文章链接。

计算机原理-计算机发展史简述

计算机组成概览

本文主要概述计算机组成中的计算机的总线与IO设备

计算机的总线

总线的概述

总线是什么,有什么用?

最常见的一种总线,USB,全称是Universal Serial Bus通用串行总线,作用如下:

  • 提供了对外连接的接口
  • 不同设备可以同过USB接口进行连接
  • 连接的标准,促使外围设备接口的统一
    USB

还有以下的常见总线,如PCI总线
PCI总线

在没有IO总线的情况下,各种设备与计算机连接是分散的,如下图:
分散连接

有了IO总线,输入设备与输出设备的连接如下图,使得各种设备的连接更加清晰。
总线连接

在计算机系统中,各个部件之间传送信息的公共通路叫总线

总线的分类

总线的分类

片内总线

片内总线,主要是芯片内部的总线,用来连接芯片内部的元器件,进行信息传输,并简化架构
片内总线

系统总线

系统总线,用来连接计算机外部的各个设备。
系统总线

系统总线又分为以下三种总线

  • 数据总线
  • 地址总线
  • 控制总线
数据总线

对于数据总线,总线的位数一般与CPU位数(32位,64位)相同。

  • 双向传输各个部件的数据信息
  • 数据总线的位数(总线宽度)是数据总线的重要参数
地址总线

地址总线,用来传输数据的地址,寻址而使用的总线。如果地址总线的位数为n,那寻址范围为0~$2^n$

  • 指定元数据或目的数据再内存中的地址
  • 地址总线的位数与存储单元位数有关
控制总线
  • 控制总线使用来发出各种控制信号的传输线
  • 控制信号经由控制总线从一个组件发给另一个组件
  • 控制总线可以监视不同组件之间的状态(就绪/未就绪)

总线的仲裁

为什么需要总线的仲裁?为解决总线使用权的冲突问题,解决各种设备使用总线的优先顺序问题。

总线仲裁的方法

链式查询

链式查询

如果设备123,发出总线使用请求的顺序是321,通过仲裁控制器后,返回的控制顺序,会先到达设备1,再到达设备2,最后到达设备3。

优点 缺点
电路复杂度低,仲裁方式简单。 优先级低的设备难以获得总线使用权。
对电路敏感。

计时器定时查询

  • 仲裁控制器对设备编号并使用计数器累计计数
  • 接收到仲裁信号后,往所有设备发出计数值
  • 计数值与设备编号一致则获得总线使用权

计时器定时查询
仲裁控制器收到设备的信号,会将自己的计数加一,并返回当前计数值的信号给所有设备,计数值与设备编号相同,就可以使用总线。比如这时候,设备3发出信号,仲裁控制器的计数值加一后返回3给所有设备(这里暂时不管计数器为何会变成3,只讨论原理),则1和2不能使用总线,设备3可以使用。

独立请求

  • 每个设备均有总线独立连接仲裁器
  • 设备可单独向仲裁器发送请求和接收请求
  • 当同时受到多个请求信号,仲裁器有权按优先级分配使用权

独立请求

优点 缺点
相应速度快,优先顺序可动态改变。 设备连线多,总线控制相对前两者比较复杂。

计算机的输入输出设备

常见的输入输出设备

常见的输入设备,主要有,字符输入设备图像输入设备

字符输入设备 图像输入设备 图像输出设备
薄膜键盘
机械键盘
电容键盘
鼠标
数位板
扫描仪
显示器
打印机
投影仪

输入输出接口的通用设计

通用输入输出接口的需求有哪些?

  • 是否能读取数据
  • 是否能向设备发送数据
  • 设备有没有被占用
  • 设备是否已经启动
  • 设备是否已经连接

输入输出接口的主要组成

名称 作用
数据线 是IO设备与主机之间进行数据交换的传送线
分为单向传输数据线和双向传输数据线
状态线 是IO设备状态向主机报告的信号线
可以查询设备是否已经正常连接并就绪
可以查询设备是否已经被占用
命令线 是CPU向设备发送命令的信号线,比如发送读写信号,发送启动停止信号
设备选择线 主机选择IO设备进行操作的信号线,可以对连接在总线上的设备进行选择

CPU与IO设备的通信

前提,CPU与IO设备的速度是不一致的。为解决不一致问题,并提高效率,有程序中断DMA直接存储器访问的方法。

程序中断

  • 当外围IO设备就绪时,向CPU发送中断信号。
  • CPU有专门的电路响应中断信号

打印机程序中断

程序中断的方法

  • 提供低速设备通知CPU的一种异步的方式
  • CPU可以高速运转同事兼顾低速设备的响应

DMA(直接存储器访问)

DMA直接连接主存与IO设备,DMA工作时不需要CPU的参与,这样可以不用打断CPU,从而提高效率。

DMA

如果内容对你有用,赏我一杯咖啡未尝不可^_^