周伟 | 文
在这个系列开篇的时候大家提到了希望了解一下串行信号和并行信号的优缺点,其实基本的概念大家应该都知道一点,但真正要把它写出来,我觉得又不是很好下笔,这也是为什么隔了这么久才推出这篇文章,我们也是为了对大家负责的态度,不能误导了各位忠实的读者,有什么说得不对或者没有说得很清楚的希望大家一起来探讨。
突然有个问题,我们通常说的PCIE,既可以是PCIE信号,也可以是PCIE接口、PCIE总线,还可以是PCIE协议。之所以难写,其实中间就是涉及到了太多的概念和认知的差异,因为串行和并行的概念太广了。只要百度一下串行和并行,就会出来很多类似“串行通信与并行通信”、“串行接口与并行接口”、“串行总线与并行总线”、“串行协议与并行协议”以及“串行传输与并行传输”等概念介绍,而我们现在要说的串行信号应该包括了上面所有的这些概念,既有传输(通信)方式,又有接口类型,同时还有数据本身的协议特点,信号、协议、总线和接口,有时候看起来是一样的,但细细思量却还是有差别的,总之不是一两句话就能说清楚的(如PCIE信号、PCIE协议、PCIE接口以及PCIE总线之间的相互瓜葛就是剪不断理还乱啊)。举个简单的例子,PCI总线说的是一组传输通道,而PCI接口是一种连接标准,两者之间的关系就是PCI接口的设备都要通过PCI总线来进行通信,而PCI总线上走的设备并不全是PCI接口的,像集成声卡,走的就是PCI总线。在这里PCI总线提供了一种通道,这个通道上可以有不同的符合这种通道要求的接口设备或信号(PCI信号或Audio信号)。打个更进一步的比方:两者关系就像马车(接口设备)和马路(总线)一样,马车必须在马路上走,而马路上不一定走马车(牛车等)。如下图所示。
车(接口、信号)有车(接口、信号)的标准(协议),如马车、汽车、火车、货车、自行车等(PCIE、SATA、SAS、USB等信号标准);路(通道、总线)有路的标准,如马路、人行道、高速公路等(PCIE、SATA、SAS、USB等通道标准),所以协议里面又包含通道(总线)协议和信号(接口)协议。是不是感觉越讲越复杂,不明觉历。实际上现在的高速信号定义确实是这么复杂,要搞懂也不是一朝一夕的事情。
用下图来简单介绍下这几个概念之间的关系。
协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系,即要实现信号的传输,所有这些组成成员必须通力合作,各自满足协议要求的各种必要条件。
而信号(拿PCIE来说)也是一个比较模糊的概念,在这里可以是接口,也可以是总线,所以“不管黑猫白猫,能抓到老鼠的就是好猫”,暂且不去理会这些接口、总线、协议及信号等纠缠不清的概念,反正我们讲的这些应该都要包括进来。后续我们在介绍协议的时候再一一来讲解。