专栏讲到现在,如果我再问你,计算机五大组成部分是什么,应该没有人不知道了吧?我们这一节要讲的内
容,依然要围绕这五大部分,控制器、运算器、存储器、输入设备和输出设备。
CPU所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。那问题来了,CPU从我们的键盘、鼠标接收输入信号,向显示器输出信号,
这之间究竟是怎么通信的呢?换句话说,计算机是用什么样的方式来完成,CPU和内存、以及外部输入输出设备的通信呢?
这个问题就是我们今天要讲的主题,也就是 总线。之前很多同学留言问,我什么时候会讲一讲总线。那这一讲,你就要听仔细了。
一、降低复杂性
1、设备间的通信,都是互相之间单独进行的
2、怎么降低复杂度呢
3、总线
4、事件总线(Event Bus)的设计模式
二、三种线路多种架构
1、三种线路
2、前端总线
3、以上案例就利用了局部性原理
三、总结延伸
好了,你现在明白计算机里的总线、各种不同的总线到底是什么意思了吧?希望这一讲能够帮你厘清计算机总线的知识点。现在我们一起来总结梳理一下这节的内容。
这一讲,我为你讲解了计算机里各个不同的组件之间用来通信的渠道,也就是总线。总线的设计思路,核心是为了减少多个模块之间交互的复杂性和耦合度。
实际上,总线这个设计思路在我们的软件开发过程中也经常会被用到。事件总线就是我们常见的一个设计模式,通常事件总线也会和订阅者发布者模式结合起来,
成为大型系统的各个松耦合的模块之间交互的一种主要模式。
在实际的硬件层面,总线其实就是一组连接电路的线路。因为不同设备之间的速度有差异,所以一台计算机里面往往会有多个总线。
常见的就有在CPU内部和高速缓存通信的本地总线,以及和外部I/O设备以及内存通信的前端总线。
前端总线通常也被叫作系统总线。它可以通过一个I/O桥接器,拆分成两个总线,分别来和I/O设备以及内存通信。自然,这样拆开的两个总线,就叫作I/O总线和内存总线
。总线本身的电路功能,又可以拆分成用来传输数据的数据线、用来传输地址的地址线,以及用来传输控制信号的控制线。
总线是一个各个接入的设备公用的线路,所以自然会在各个设备之间争夺总线所有权的情况。于是,我们需要一个机制来决定让谁来使用总线,这个决策机制就是总线裁决。