4.1.2 总线的类型与结构
1.总线的类型
总线是现代计算机技术中很基本的一个概念,贯穿在计算机系统平台各个层次中,出现在计算机中的很多地方。在硬件上按照总线连接部件的不同,可以把总线分为片内总线、部件内总线、系统总线和外总线几种。
片内总线是指芯片内部的总线。例如,CPU内部寄存器和寄存器之间、寄存器和ALU之间的总线。
部件内总线是指插件板内各芯片之间传送信息所使用的总线,如显示适配卡中使用的总线。
系统总线是指计算机系统内各功能部件,如CPU、主存、I/O等之间的信息传输线。前面所说的数据总线、地址总线以及控制总线就是系统总线。它位于主板上,因此又称板级总线。
外总线是指计算机系统之间以及计算机系统与其他系统之间的通信总线。
2.总线的结构
计算机总线的内部结构如图4-2所示,它实际上是处理器芯片引脚的延伸,是处理器与I/O设备适配器的通道。这种简单的总线一般由50~100根信号线组成,按照这些信号线的功能特性可分为三类:数据总线、地址总线和控制总线。
(1)数据总线
数据总线(Data Bus,DB)是在计算机系统各个部件之间传输数据信息的信号线。数据总线是双向的。通常,数据总线由8根、16根、32根或64根数据线组成,数据线的根数称为数据总线的宽度。由于每根数据线每次传送1位二进制数,所以数据线的根数决定了每次能同时传送的二进制的位数,由此可见,数据总线的宽度是决定系统总体性能的关键因素之一。例如,如果数据总线的宽度为8位,而每条指令的长度为16位,那么在每个指令周期中需要两次访问存储器才能取回完整的16位指令。
图4-2 总线的内部结构
(2)地址总线
地址总线(Address Bus,AB)是在计算机系统各个部件之间传输地址信息的信号线,用来规定数据总线上的数据来自何处或将被送往何处。地址总线是单向的。如果CPU要从存储器中读取一个信息,那么,首先必须将要读取信息的存储器地址放到地址总线上,然后才可以从给定的存储器地址中取出所需要的信息。地址总线的宽度决定了计算机系统能够使用的最大的存储器容量。在对输入/输出端口进行寻址时也要使用地址总线传送地址信息。实际操作时,总是用地址总线的高几位选择总线上指定的存储器段,而用地址线的低几位去选择存储器段内具体的存储器单元或输入/输出端口地址。由此可见,地址总线的宽度决定了一次能够访问的存储空间范围的大小。
(3)控制总线
控制总线(Control Bus,CB)是在计算机系统各个部件之间传输控制信息的信号线,其作用是对数据总线、地址总线的访问及使用情况实施控制。控制线中每根线都是单向的,用来指明数据传送的方向、中断请求和定时控制等。由于计算机中的所有部件都要使用数据总线和地址总线,所以用控制总线对它们实施控制既是必要的,也是必需的。控制总线上传输的控制信息,其作用就是在计算机系统各个部件之间发送操作命令和定时信息,命令信息规定了要执行的具体操作,而定时信息则规定了数据信息和地址信息的时效性。
这种简单的总线结构被早期的计算机广泛采用。随着计算机技术的发展,这种简单的总线结构逐渐暴露出一些不足:第一,CPU是总线上的唯一主控者,即使后来增加了具有简单仲裁逻辑的DMA(Direct Memory Access)控制器以支持DMA传送,但是仍不能满足多CPU环境的要求;第二,总线信号是CPU引脚信号的延伸,所以总线结构与CPU紧密相关,通用性较差。