计算机总线
总线是为了解决不同设备的通信问题而存在的,比如鼠标键盘通过USB解决了输入设备和计算机通信的问题
没有总线的计算机设备线路
如果没有总线会导致每一个设备均需要连接一条线非常麻烦,如果新增一个输入设备,那么新增的设备又需要新增线路连接存储器、运算器、控制器
**IO总线**
如果增加了一个IO总线,那么线路沟通就如下,由IO总线来负责对存储器、运算器、控制器的交互,输入设备只需要跟IO总线沟通即可,如下图
常见总线
通用串行总线USB
1、总线提供了计算机对外连接的接口
2、不同设备可以通过USB接口进行连接
3、USB定义了连接的标准,促使外围设备接口的统一
PCI总线
外侧显卡
ISA总线
Thunderbolt总线
苹果电脑总线
总线分类
总线分为片内总线和系统总线
片内总线
片内总线是芯片内部的信息传输线
例子:
比如寄存器和寄存器之间使用片内总线连接
寄存器与控制器、运算器之间使用片内总线连接
系统总线
系统总线主要用于外部设备和计算机的连接,如下图
系统总线主要分为以下三类:
1、数据总线
2、地址总线
3、控制总线
数据总线
数据总线用于双向传输各个部件的数据信息
数据的总线一般和CPU的位数是相同的,比如说32位或者64位
32位数据总线表示一次可以传输32位的4字节数据,64位则一次可以传输64位8个字节的数据
地址总线
用于传输数据的地址而是用于传输数据地址而使用的(用于数据寻址)
控制总线
1、用来发出各种控制信号的传输线
2、控制信号通过控制总线从一个组件发送给另外一个组件,比如从CPU发送到键盘,CPU发送到储存等等操作
3、控制总线可以监控不同组件之间的状态(比如监控键盘是否准备就绪了,就绪了就可以启用它作为输入设备)
计算机仲裁
仲裁器是为了解决不同设备使用总线优先顺序的设备(总线仲裁是为了解决总线使用权的冲突问题)
假设主存要和硬盘以及IO设备交换数据,那总线在同一时刻只有一个设备能使用,此时就需要仲裁器来决定是优先硬盘使用还是优先IO设备使用
总线仲裁方法
链式查询
好处:电路复杂度低,仲裁方式简单
坏处:优先级低的设备难以获得总线的使用权、对电路故障敏感
计时器定时查询
仲裁器对设备编号,并使用计数器累计计数
例:
1、设备2要使用总线时,通过仲裁控制线往设备2发出请求
2、仲裁控制器收到请求,把当前计数器的值(假设是1)发送给所有设备,而此时1号设备不需要,那么这是一个无效的请求
3、仲裁控制器中计数器加1,此时再次发送数字为2的信号给所有设备,此时2号设备匹配到了,那么2号设备就获取总线的使用权限
独立请求
每个设备均独立连接仲裁器,设备可单独向仲裁器发送请求和接收请求。当仲裁器同时接收多个请求信号,仲裁器有权按优先级分配使用权
好处:响应速度快,优先顺序可动态改变
坏处:设备连线相对之前的方式来说会多一些,总线控制会复杂些