计算机总线
复习
- CPU 要从存储器取得指令与数据
- 读取或写入需要地址、数据和控制信号
- 机器还要继续连接输入输出设备
TL;DR
- 总线是一组由多个部件共享的通信线
- 地址线说找谁,数据线传内容,控制线说要做什么
- 同一时刻只能有获准的设备驱动共享线路
正文
CPU 要连主存,接下来还要连键盘、屏幕和其他设备。若每两个部件之间都拉一套专线,设备越多,线路会以惊人的速度增长。
更省事的办法是修一条公共道路,让大家按规则轮流使用。这组共享线路叫作总线。
一次读取怎样上路
CPU 从存储器读取地址 20 时:
- 把 20 放到地址线上
- 在控制线上发出读信号
- 存储器识别出自己被选中,把地址 20 的内容放到数据线上
- CPU 在约定的时刻收下数据
三类信号分工很清楚:
- 地址线:找哪个位置或设备
- 数据线:实际搬运的比特
- 控制线:读、写、完成等动作
公路不能同时逆行
数据线通常由多个设备共享。如果两个设备同时向线上输出不同的值,就会发生冲突。因此总线需要仲裁:谁获得本次使用权,谁才能驱动线路,其他设备暂时等待。
总线越宽,一次能搬的位越多;时钟越快,一秒能搬的次数越多。但设备等待、协议开销和线路传播都会影响真实速度,不能只把两个数字相乘就当作一定达到的性能。
给外界留一个座位
有了总线,新设备只需遵守同一套通信规则,就能与 CPU 和存储器交换数据。可键盘与内存性格完全不同,不能把键盘按键直接当成存储器信号。
下一章,我们在总线和设备之间加一个翻译者。
思考题
为什么共享数据线上不能由两个设备同时输出?“同时读取”与“同时输出”有什么区别?
小结
知识点
- 总线减少部件之间的专用连线
- 地址、数据和控制信号各有职责
- 仲裁决定谁能在当前时刻使用总线
思考题答案(仅供参考)
两个设备同时输出可能一个拉高、一个拉低,造成错误甚至电气冲突。多个设备观察同一条稳定的数据线通常没有问题;冲突发生在多个来源同时试图决定线路取值。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪