计算机系统总线基础
扫描二维码
随时随地手机看文章
一. 总线的概念
在计算机系统中,不同的子系统必须具有连接彼此的接口,比如,内存和处理器需要通信,处理器和I/O设备也需要通信。这些工作都是由总线来完成的。总线就是一条共享的通信链路,它用一套线路来连接多个子系统。下图是一个典型的计算机总线示意图:
总线结构的两个主要优点是功能多和成本低。通过定义一种连接方案,就能够方便的添加新设备,比如我们可以轻松的为自己的笔记本扩展内存条,或者外扩一块硬盘。外围设备也可以在使用同类总线的计算机系统之间移动。而且,因为同一套线路被多个路径共享,所以总线具有较好的成本效益。
总线的主要缺点在于它会产生通信瓶颈,这可能会限制I/O的最大吞吐量。当I/O数据传输必须通过单个总线的时候,这条总线的带宽就会限制I/O的最大吞吐量。如何设计总线系统,使之能够满足处理器的要求并能够接纳大量的I/O设备,使我们面临的一大挑战。
二. 控制线路和数据线路
总线通常包括一套控制线路和一套数据线路。控制线路用来传输请求和确认信号,并指出数据线上的信息类型。总线的数据线在源和目的之间传递信息。这种信息可能包括数据、复杂指令或者地址。比如,如果磁盘要把磁盘扇区中的数据写入内存,内存的地址和磁盘的实际数据都会通过数据线来传输。控制总线则指明了在传输过程中每一刻数据线包含的信息种类。一些总线使用两套信号线在一次总线传输中分别传送数据和地址。不管哪种情况下,控制总线都要遵循总线协议,并指出总线传输的内容。由于总线的共享的,所以我们还需要一个协议来决定谁下一个使用。
三. 处理器-内存总线和I/O总线
对于传统的PC机,总线可以分为处理器-内存总线和I/O总线。处理器内存总线长度短,速度通常很高,而且配合内存系统使内存-处理器的带宽达到最大。与之形成对比的I/O总线,它可以很长,可以连接很多类型的设备,并且经常要连接多种具有不同数据带宽的设备。I/O总线一般不和内存直接连接而是通过处理器-内存总线或者背板总线连接到内存上。
I/O总线被用作扩展机器和连接新外设的手段。主流的I/O总线标准有1394和USB等。他们可以把各种外设连接到台式机,从键盘、相机到磁盘。
下图为早期的I/O总线示意图:
四. 总线通信的两种方式:同步和异步
总线的通信的两种基本方式是同步和异步。如果总线是同步的,控制线上就有一个时钟以及一个与该时钟相关的固定的通信协议。比如,为了使处理器-内存总线执行一个从内存总线执行一个读操作。我们需要一个协议能够在第一个时钟周期传输地址和读操作命令,并使用控制线来指明请求的类型。内存可能被要求在第五个时钟周期做出响应,提供数据字。
同步总线主要有两个缺点。第一,总线上的每个设备必须运行在同一个时钟频率下。其次,由于时钟偏差问题,速度很快的同步总线,长度不能太大。处理器-内存总线通常是同步的,因为设备间通信的距离短,数量少,而且准备在快的时钟频率下工作。
异步总线不需要时钟。正因为不需要时钟,所以异步总线可以适应很多不同的设备,异步总线可以延长而不用担心时钟偏差或其他同步问题。1394和USB都是异步总线。为了协调发送者和接受者之间的数据传输,异步总线采用握手协议。握手协议由一系列步骤组成,只有当发送者和接收者达成一致时,才能进行下一步工作。这种协议通过一套附加的控制线路实现的。