总线概述
总线是连接多个部件的信息传输线,是各部件共享的传输介质。多个部件与总线相连时,如果出现两个或者两个以上部件同时向总线发送消息,将会导致信号冲突,传输无效。因此:某个时刻,只允许一个部件向总线发送消息,多个部件可以同时接收相同的信息。总线由许多传输线或者通道组成,每条线可以传输一位二进制代码;形象类比于:Java中的可重入读写锁ReentrantReadWriteLock,只能有一个线程在某个时刻拥有写锁,其他线程无法同时写权限,读锁多个线程可以同时从资源处获得读权限。以下为总线在计算机体系中所处位置:
从上图可以看到,总线主要为CUP外连接存储器,IO和CUP的系统总线--连接CUP和存储器的成为存储总线(M总线),连接CUP和各IO设备成为IO总线;以及CUP内部互连AUL,CU和寄存器的片内总线。
单总线结构:
其中CUP,主存,IO设备都挂到一组总线上
面向CPU的双总线结构:
其中与单总线最大的特点是:单总线结构中IO设备与主存交换信息时,原则上不影响CPU工作。
以存储器为中心的双总线结构:
它在单总线基础上开辟了CPU和主存之间的总线,成为存储总线,这组总线速度高,只供主存和CPU之间传输信息。既提高了传输速率,又减轻了系统总线负担,还保留了IO和存储器交换信息不经过CPU的特点。
总线分类(按连接部件的不同)
片内总线
主要为芯片内部的总线,如CPU芯片内部,寄存器和寄存器之间,寄存器和AUL之间都由片内总线连接。
系统总线(CPU,主存,IO互连)
- 数据总线:传输各功能部件之间的数据信息,为双向传输总线,位数与机器字长和存储字长有关;如果数据总线宽度为8,指令字长为16位,那么CPU取指阶段必须两次访问主存。
- 地址总线:用来指出数据总线上源数据或者目的数据在主存单位地址或者IO设备地址;如:从存储器中读数据,CPU将此数据所在存储单元地址送至地址线中,又:欲将某数据经IO输出,则CPU除了需要将数据送到数据总线上,还需要将IO地址送到IO地址总线上;因此地址线的代码用来指明CPU将访问的存储单元或IO端口地址,由CUP输出,单向传输,与存储单元个数有关;
- 控制总线:主要用于控制各部件在不同时刻的占有总线使用权,就是用来发出各种控制信号的传输线。常见的控制信号:
- 时钟:用来同步各种操作;
- 复位:初始化所有部件;
- 总线请求:表示某部件需要获得总线控制权;
- 总线允许:表示需要总线使用权的部件已经获得控制权;
- 中断请求:某部件提出中断请求;
- 中断响应:中断请求已接收;
- 存储写:数据总线数据写入指定存储单元;
- 存储读:指定存储单元数据读至数据总线上;
- IO读:从指定IO端口将数据读到数据总线;
- IO写:数据总线数据输出到指定IO端口内;
- 传输响应:表示数据已被接收,或送至数据总线上;
总线特性和指标
总线特性
- 机械特性:指总线在机械连接方式的特性,如:插头和插座标准,几何尺寸,引脚个数和排列顺序,接头处可靠连接;
- 电气特性:总线每根传输线信号的传递方向和有效电平范围,通常规定,CPU发出的信号为输出信号,送入CPU的信号为输入信号;有的定义为高电平有效,也有定义为低电平有效;
- 功能特性:总线中每根线功能,如地址总线用来指出地址码,数据总线传输数据,控制总线发出控制信号;
- 时间特性:指总线中任一根线在什么时间内有效,每条总线上各信号互相存在一种有效时序的关系;
总线指标
- 总线宽度:指数据总线根数,用位表示;
- 总线带宽:可理解为总线的传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输的字节数衡量,单位MBps;
- 时钟同步异步:总线上数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线;
- 总线复用:一条信号线分时传输两种信号;
总线结构
此文主要介绍多总线结构:双总线结构和三总线结构
双总线结构:
其特点是:将速度较低的IO设备从单总线中分离,形成主存总线和IO总线分开的结构,其中通道为特殊功能的处理器,CPU将一部分功能下放到通道,使其对IO设备具有统一的管理能力。
三总线结构:
此结构主要CPU和主存之间传输,IO总线CPU和各IO设备信息交换,DMA总线用于高速IO和主存之间交换信息,此结构中,任一时刻只能使用一种总线;主存总线和DMA无法同时对主存操作,IO总线只有CPU执行IO指令时用到;