本系列文章仅作为我个人学习笔记的概要,所有资源来自慕课网,请勿用作商业用途,如需转载请注明出处。
往期文章链接。
计算机原理-计算机发展史简述
本文主要概述计算机组成中的计算机的总线与IO设备。
计算机的总线
总线的概述
总线是什么,有什么用?
最常见的一种总线,USB,全称是Universal Serial Bus
通用串行总线,作用如下:
- 提供了对外连接的接口
- 不同设备可以同过USB接口进行连接
- 连接的标准,促使外围设备接口的统一
还有以下的常见总线,如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,从而提高效率。