目录
1.总线的特性
1.1总线的概念
总线是计算机体系结构的重要组成部分,通过它可以将计算机系统中各个功能部件连接起来,构成一个完整的系统。
1.2总线的作用
【1】总线是个功能部件间传递各类信息的通道;
【2】总线是系统中各部件间的物理接口,能够减少各部件通信的复杂程度。
【3】总线能提供信息交换时所需的数据、地址、时序和控制信息,它同时提供一个共同遵循的协议或标准;
1.3总线的分类
1.3.1按用途分
(1)存储总线:是短距离(处理器与存储器之间)、高速总线。
(2)系统总线:又称内部总线或板级总线,是计算机系统中最重要的总线,也是连接存储总线和I/O总线的中间总线。
(3)I/O总线:通常连接多种外部设备(距离较远、速度较慢),同时与存储涌现或系统总线相连。
1.3.2按位置分
(1)外部总线:USB、火线等
(2)内部总线:PCI、AGP等
(3)片内总线:AMBA
1.4总线的组成
数据总线:用于传送数据信息,通常是双向三态形式的总线。
地址总线:专门用来传送地址,地址总线总是单向三态的。
控制总线:用来传送控制信号和时序信号。可以单向可以多向。
电源线和地线:为总线或者设备或者部件提供电源。
2.总线性能和总线事务
2.1总线性能
这里介绍一些总线性能参数用来评价总线性能。
总线频率:反映总线工作速率(f),通常单位为MHZ
总线宽度:是指数据总线的位数(w),单位是b(位)
总线传输速率:总线上可传输的数据总量(BW),单位是MB/s。总线传输速率 = (总线宽度 ÷ 8位)× 总线频率
2.2总线事务
定义: 从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列操作。
包括: 请求操作、裁决操作、地址传输、数据传输和总线释放。
下面介绍5个操作的执行:
主设备:能够提出申请并或得总线控制去权的设备。
从设备:只能被动接受总线控制传送数据的设备。
一次总线传输操作分四步进行:
(1)申请和仲裁阶段(请求操作和裁决操作)
(2)寻址阶段(地址传输)
(3)传输阶段(数据传输)
(4)结束阶段(总线释放)
常见的总线操作(四类):
读操作:主设备通过总线从从设备读取数据。
写操作:主设备通过总线将数据写入从设备。读修改写操作:先读取数据再将数据写入从设备。这样操作可以省掉一次总线的请求、地址的传输以及最后总线释放过程。
写后读操作:先写入数据再进行读取。只有一次总线请求、地址寻找以及总线释放过程。块操作:一次请求以后,传送一块数据。省去更多的总线请求、地址寻找以及总线释放过程。
广播:总线允许一个主设备对多个从设备进行写操作。
广集:它与广播相反的操作,它将选定的多个从设备数据再总线上完成AND或OR操作,用以检测多个中断源。
下面重点介绍一下总线仲裁方式
2.3总线仲裁方式
按总线仲裁电路的位置不同,可以分为集中式仲裁和分布式仲裁。
2.3.1 集中式仲裁
特点:总线仲裁逻辑集中于一个单元。存在中央仲裁器,而且每个功能模块有两条线连接中央仲裁器,一条是送往仲裁器的总线请求信号线BR,一条是仲裁器送出的总线授权信号线BG。BS=“1”,表示某外设正在使用总线。
集中式仲裁有三种请求方式,分别为链式查询方式、计数器定时查询方式、独立请求方式。
2.3.1.1链式查询方式
主要特点: 总线授权信号BG串行的一个一个I/O接口进行传送,直到到达的接口有总线请求,则BG信号停止查询,并且该I/O接口获得总线控制权。所以距离中央仲裁器越近的接口优先权越高。
优点: 因为是串行连接,线路简单,而且很容易扩充设备。
缺点: 同样因为是串行连接,当某一处线路出现故障时,后面的设备都不能进行查询。而且查询的优先级是固定的,当优先级较高的设备频繁进行请求,优先级较低的设备就会长期无法使用总线。
2.3.1.2计数器定时查询方式
特点: 总线上任意一设备要求使用总线时,通过BR线向仲裁器发出请求,中央仲裁器接到信号后,在BS线为“0”的情况下让计时器开始计数,计数值通过一组地址线发向各设备,当设备结构的设备地址判别电路发现地址线上的计数值与请求总线的设备地址一致时,该设备获得“1”BS线,获得总线使用权,中止计数查询。
优点: 计数可以从“0”开始也可以从中止点开始,从“0”开始与各设备优先次序与链式查询法相同。从中止点开始每个设备优先级相同。计数器的初值可以通过程序控制,灵活改变优先次序。
缺点: 线路变复杂,线数增多。
2.3.1.3独立请求方式
特点: 每个设备都有一对总线请求线BRi和总线授权线BGi。当设备需要使用总线时,发出请求信号,中央仲裁器的排队电路决定首先响应哪个设备的请求,给予授权信号BGi。
优点: 响应时间快,花费时间少,对优先次序控制灵活,可以通过屏蔽某个请求的方法,不响应来自无效设备的请求。当代总线标准普遍采用独立请求方式。
2.3.2 分布式仲裁
不需要使用中央仲裁器,每个功能模块都有自己的仲裁号和仲裁器。
当有请求时,将自己唯一的仲裁号发送到仲裁总线上,每个仲裁器将仲裁总线得到的号与自己的号进行比较,如果仲裁总线上的号大,那么它的总线请求不予响应,并撤销它的仲裁号,最后仲裁总线上留下唯一仲裁号。