一、总线的特性及其应用
总线是计算机体系结构的重要组成部分,通过它可以将计算机系统中各个功能部件连接起来,构成一个完整的系统。总线的作用有以下6点:
①、是各功能部件间传递各类信息的通道;
②、是系统中各部件间的物理接口,能够减少各部件通信的复杂程度;
③、提供信息交换时所需的数据、地址、时序和控制信息;
④、提供一个共同遵循的协议或标准;
⑤、方便计算机系统的集成、扩展和进化,同时不应成为整个计算机性能的瓶颈;
总线分类的方式有很多,如果按照用途可以分为3类:
①、存储总线:短距离高速总线,与存储器的特性相匹配,尽最大可能提高处理器与存储器之间的数据带宽,针对Cache块数据传输进行性能优化;
②、系统总线:又称内部总线或板级总线,是计算机系统中最重要的总线,也是连接存储总线和I/O总线的中间总线;
③、I/O总线:通常连接距离较远、速度相对较慢,用于连接多种外部设备同时与系统总线或存储总线连接;
如果按照位置的不同,也可以分为3类:
①、外部总线:USB、火线(IEEE-1394)等;
②、内部总线:PCI、AGP等;
③、片内总线:AMBA;
1.1、总线的组成

二、总线的性能和总线事务
2.1、总线的性能参数
①、总线频率(f):类比高速公路的车速,通常单位是MHz;
②、总线宽度(w):类比高速公路的车道数量,单位是bit(位),是微型计算机的一个重要指标,通常与处理器的字长相一致,32bit的cpu,总线宽度就是32;
③、总线传输速率(BW):类比高速公路单位时间内的车流量,单位是MB/S,总线传输速率=(总线宽度÷8位)x总线频率,用字母表示:BW=(w÷8)×f;
2.2、总线的其他参数指标

2.3、总线事务
从请求总线到完成总线使用的操作序列称为总线事务(Bus Transaction),它是在一个总线周期中发生的一系列活动。典型的总线事务包括:请求操作、裁决操作、地址传输、数据传输和总线释放。
2.4、总线在主设备和从设备的传输过程

主设备一般包括CPU、DMA控制器等,从设备一般包括主存、硬盘等,总线完成一次传输一般会经过以下4个阶段:
①、申请与仲裁阶段;
②、寻址阶段;
③、传输阶段;
④、结束阶段;
2.5、总线常见的操作
①、读操作(Read)
②、写操作(Write )
③、读修改写操作(Read-modify-Write)
④、写后读操作(Read-after-Write)
⑤、块操作(Block)等
三、总线连接方式
总线连接方式分为单级总线结构、双级总线结构、多级总线结构
3.1、单级总线结构(没有单独的I/O指令)
通过一条总线将cpu、存储器以及输入输出设备连接起来,这样的总线结构称为单级总线结构,如下:

单级总线结构有以下4个特点:
①、访问存储器和访问外设指令相同,由地址来区分;
②、总线简单,使用灵活,易于扩展;
③、任意两设备之间理论上都可以直接交换信息;
④、所有设备分时工作(单个时间周期内,只有一个主设备能获得总线控制权),仅适用于慢速的计算机系统中。
3.1.1、单级总线结构示例

AHB总线或ASB总线就是系统总线,AHB总线或ASB总线通过总线桥连接到APB总线,APB总线就是连接IO设备的总线
3.2、双级总线结构(有单独的I/O指令)
在单级总线的结构基础上,在cpu和内存之间再增加一条总线(存储器总线或内存总线,标题一种并没有内存总线的分类,此处需要继续考证),专门用于cpu和内存进行数据交换,如下:

双级总线结构有以下3个特点:
①、由于外设和内存分处于不同的总线,需要增加I/O指令;
②、存储总线的增加减轻了系统总线的负担,提高了并行性;
③、仍然保持了单总线结构的系统简单、易于扩充的优点;
双级总线又可以分为2种:
①、内存即连接系统总线又连接cpu的双级总线结构,该结构成本较高;
②、内存不连接IO总线(此处不再使用系统总线),只连接cpu的双极总线结构,该结构成本较低;
3.3、多级总线结构(有单独的I/O指令)
cpu和存储器通过内存总线连接,系统总线不再连接输入和输出设备,而是通过总线桥将它连接到另外一个I/O总线,然后在I/O总线连接输入输出设备,如下:

多级总线结构有以下2个特点:
①、在双级总线结构的基础上增加I/O总线构成;
②、并行性进一步提高,并可以通过增加通道或I/O处理机来分担部分CPU的I/O功能,但是总线结构得越来越复杂。
3.3.1、总线桥

3.3.2、多级总线结构示例

北桥将第一级总线(微处理器总线)转换为第二级总线(PCI总线,也叫系统总线),南桥将第二级总线转换到第三级总线(IO总线),从而连接输入输出设备。
3.4、总线结构对计算机系统性能的影响

四、总线的仲裁和数据传输方式
由于同一时刻只能有一个设备占用总线,当计算机系统中只有一个主设备的时候,不存在仲裁问题,当计算机系统中有2个或2个以上主设备的时候,需要进行仲裁。
4.1、菊花链式串行总线仲裁

当总线总有2个主设备时,通过3条线与cpu进行连接,其中一条线称为总线请求线(当主设备需要获得总线控制权时,通过总线请求线向cpu提出申请),另外一条线表名总线是否处于忙碌状态(总线被其它设备占用时,总线忙信号会有效,只有总线忙信号无效时,主设备才能够提出总线请求),最后一条线是应答信号线,应答信号首先将应答信号给到第1个主设备,如果第1个主设备收到应答信号后,这个主设备提出了总线请求,就可以获得总线控制权,同时将总线忙信号设为有效,从而获得总线的控制,完成数据传输;只有当第1个主设备没有提出了总线请求时,才会将应答信号传递给下一个主设备。
4.2、集中并行总线仲裁

每个主备都有总线请求,总线应答,总线忙信号,这些信号连接到一个统一的总线仲裁逻辑控制电路。实现方式比较复杂
4.2.1、集中并行总线仲裁的仲裁策略
①、固定优先级总线仲裁:类似于串行总线仲裁方式,即前面的总线连接电路构成一个优先级电路,决定了主设备提出总线仲裁以后能够获得总线控制权的一个优先级,这个优先级是固定的;
②、轮叫式总线仲裁(Round Robin ):一旦一个总线获得过一次总线控制权以后,这个总线的优先级就会降低为最低,以此类推,保证每个设备都可以获得总线的控制机会;
③、LRG总线仲裁(Least Recently Granted):最近获得总线控制权的设备,优先级最高,最近获得总线控制权越少的设备,优先级最低;
④、混合式总线仲裁:混合①、②、③、,不同设备采用不同的仲裁方式;
4.3、总线时序
4.3.1、同步定时

比如上图中,第一个时钟周期T1会在主设备上送出地址信息,在第二个时钟周期T2如果需要写数据的话,会在该时钟周期给出写的控制信号以及写数据,在第三个时钟周期T3如果需要读数据的话,会在该时钟周期给出读的控制信号以及读数据,在每个时钟周期内,都会准备好对应的地址。优缺点如下:

4.3.2、异步定时

比如上图中,第一个阶段把地址送出去,第二个阶段可以是读数据或者是写数据,送数据或者读数据通过握手信号实现,对于读操作,首先读的控制信号有效,此时,从设备会把读的信号送上总线,同时标明,现在有数据送出来了,主设备收到读的数据后,会撤销这个有效信号,同时,从设备撤销读的控制信号,经过以上2次交换以后,数据读操作数据传输完毕。写操作相同。优缺点如下:

4.3.3、半同步定时
综合同步定时和异步定时

如上图所示,第一个时钟周期内送出地址,按照同步定时,第二个时钟周期内,就应该写出数据,或者在第三个时钟周期内得到读的数据,但是由于从设备比较慢,或者没有准备好,等待了2个时钟周期后,才写出数据或者读数据,这个等待的时钟周期只要时公共时钟周期的整数倍即可,不一定为2个时钟周期,此处仅仅为举例。
4.4、数据传输方式
数据传输方式有3中:①、并行传送;②、串行传送;③、串并传送;
4.4.1、并行传送

4.4.2、串行传送

4.4.3、串行传送

