目录
一.总线的物理实现
由于每个总线由很多根信号线组成,所以总线可以并行传输很多位bit的信息。
如下图所示,4根信号线组成“一根”总线,所有硬件部件都可以通过这根总线传递数据。可并行发送4bit数据。同一时刻只能有一个部件发送数据(若有两个部件传送数据会导致信号冲突),但是可有多个部件接受数据。
二.总线概述
总线是一组能为多个部件分时共享的公共信息传送线路。
共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享。
分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则它们只能分时地向总线发送信息。
为什么要用总线?
早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备。
随着计算机的发展,外部设备的数量变得越来越多,因此每增加一个外部设备都需要增加一个专门线路来连接的话,那么这种分散连接方式是不易实现随时增减外部设备。
为了更好地解决I/O设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接。若要增加一个外部设备,只要使其连接总线即可,若要移除一个外部设备,只要将其从总线上移除即可。
三.总线的特性
1.机械特性:尺寸、形状、管脚数、排列顺序
2.电气特性:传输方向和有效的电平范围
3.功能特性:每根传输线的功能(地址、数据、控制)
4.时间特性:信号的时序关系
四.总线的分类
总类的分类如下:
(1)按数据传输格式分类
•串行总线
对于串行总线,设备A只能一位一位地给设备B发送数据,设备B接收数据也能一位一位地接收。例如USB。
优点:只需要一条传输线,成本低廉,抗干扰能力强,可以广泛应用于长距离传输;应用于计算机内部时,可以节省布线空间。
缺点:在数据发送和接收的时候要进行拆卸稻装配,要考虑串行--并行转换的问题。
例如用USB向主机传送数据时,是一位一位传送的,但是CPU接收数据是并行接收的,所以需要将串行的数据转换为并行的数据。
•并行总线
设备A可以并行地给设备B发送多位数据。例如CPU与主存中的数据总线就是并行总线。
优点:总线的逻辑时序比较简单,电路实现起来比较容易。
缺点:信号线数量多,占用更多的布线空间;远距离传输成本高昂。
由于工作频率较高时,并行的信号线之间会产生严重干扰,对每条线等长的要求也越高,所以无法持续提升工作频率。也就是发送频率有上限。
(2)按总线功能分类
•片内总线
片内总线是芯片内部的总线。
它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
•系统总线
系统总线是计算机系统内各功能部件(CPU,主存,I/O接口)之间相互连接的总线。
按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线。
数据总线(data bus ,DB)
1.传输各功能部件之间的数据信息,包括指令和操作数;
2.位数(根数)与机器字长、存储字长有关。若数据总线的宽度与机器字长一致,那么CPU就可以通过一次数据的读入,就可以得到CPU一次可以处理的数据。若数据总线的宽度与存储字长一致,那么每一次主存的读/写操作,只需要数据总线传一次数据即可。
3.数据总线信息传递方向是双向的。
地址总线(Address bus,AB)
1.传输地址信息,包括主存单元或I/O端口的地址;CPU可以通过地址总线传输地址信号,告诉主存单元或I/O设备,自己想要访问的地址是什么。
2.位数(根数)与主存地址空间大小及设备数量有关。地址总线位数与主存地址空间需要保持一致,若主存与I/O设备采用统一编址的方式,那么还需考虑设备数量。
3.地址总线是单向的。并且是由CPU指向主存或I/O设备。
控制总线(control bus,CB)
1.一根总线包含多根控制线,一根控制线传输一个控制信号;
2.有的控制线用于:CPU送出的控制命令;有的控制线用于:主存(或外设)返回CPU的反馈信号。所以对于控制总线而言,一般是双向的。
为什么是“一般”,因为在某种情况下控制总线是单向的,百度百科这样说的:
控制总线CB(ControlBus)特点是:在单向、双向、双态等种形态,是总线中最复杂、最灵活、功能最强的,其数量、种类、定义随机型不同而不同。
注:数据通路与数据总线
数据通路:表示的是数据流经的路径,是一种逻辑上的描述
数据总线:承载数据流动的物理上的媒介,除了数据总线外,地址总线也可以用来传输数据,也可以作为数据流动的物理媒介。
系统总线的结构
1.单总线结构
只在计算机内部设置一组系统总线(这组系统总线包含了数据总线,地址总线和控制总线),CPU、主存、I/O设备(通过IO接口)都连接在一组总线上,允许I/O设备之间、I/O设备和CPU之间或I/O设备与主存之间直接交换信息。
注:单总线并不是指只有一根信号线,系统总线按传送信息的不同可以细分为地址总线、数据总线和控制总线。
优点:结构简单,成本低,易于接入新的设备。
缺点:带宽低、负载重,多个部件只能争用唯一的总线,即各个部件对系统总线的使用是互斥的,同一时刻只有一个功能部件能获得总线的控制权,且不支持并发传送操作(不支持多组部件同时通过系统总线传送数据)。
CPU与主存数据读写速度较快,外设对数据的传输速度较慢,因此系统总线虽然支持很快的数据传输,若其让慢速的外设传输数据时,则不能完全发挥系统总线的作用,即浪费了系统总线的性能。
2.双总线结构
双总线结构有两条总线,一条是主存总线,用于CPU、主存和通道(专门用于管理各种I/O设备,通道程序放在主存中,I/O设备会通过通道间接与CPU交互,缓解CPU与I/O设备之间的速度矛盾。由于通道对信息处理速度较快,所以把通道与CPU直接通过快速的主存总线相连)之间进行数据传送;另一条是I/O总线,用于多个外部设备与通道之间进行数据传送。
经过这样设计,主存总线的性能可以设计的快一些,由于I/O设备处理数据速度较慢,I/O总线的性能可以设计的慢一些。
注:主存总线支持突发(猝发)传送:送出一个地址,收到多个地址连续的数据。CPU指明一个地址,从主存读出多个地址连续的数据。
3.三总线结构
三总线结构是在计算机系统各部件之间采用3条各自独立的总线来构成信息通路,这3条总线分别为主存总线、I/O总线和直接内存访问DMA总线。
如下图所示,CPU不需要通过慢速的I/O总线,与高速的磁盘机进行数据交换,而是可以通过独立的快速的DMA总线,与高速的磁盘机进行数据交换。而CPU则能通过I/O总线,与慢速的设备进行交互。
优点:提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量。因为满速的设备与CPU是直接连接的,相比于双总线结构,I/O设备能够更快响应CPU发出的命令。
缺点:系统工作效率较低。因为三种总线中同一时刻只能有一种总线传输数据。
4.四总线结构(了解)
四总线结构中有CPU总线,系统总线,高速总线与扩展总线,CPU总线用于连接CPU和Cache,系统总线用于连接主存,高速总线用于连接显卡等快速设备,扩充总线用于外部设备的扩充,例如连接USB等。不同总线传输数据速度不同(越靠近CPU的总线速度越快)。
由于不同总线传输速度存在差异,所以设置了"桥接器",就是图中的"桥":
用于连接不同的总线,具有数据缓冲、转换和控制功能(将总线的使用权分配给哪个设备)。
这种系统总线结构是现代计算机最常使用的系统总线结构。
•通信总线
通信总线是用于计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,通信总线也称为外部总线。
(3)按时序控制方式分类
•同步总线
同步总线指的是互连的部件或设备均通过统一的时钟进行同步,即所有的互联的部件或设备都必须使用同一个时钟(同步时钟),在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息交换。
•异步总线
异步总线指的是没有统一的时钟而依靠各部件或设备内部定时操作,所有部件或设备是以信号握手的方式进行,即发送设备和接受设备互用请求(request)和确认(acknowledgement)信号来协调动作,总线操作时序不是固定的。因此,异步总线能兼容多种不同的设备,而且不必担心时钟变形或同步问题,使得总线长度不受限制。
五.总线的性能指标
1.总线的传输周期(总线周期)
一次总线操作所需的时间(包括申请阶段(决定将总线分配给哪个设备使用)、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。若一组数据总线的宽度是32bit,那么经过一个总线周期,就能传输32bit数据。
2.总线时钟周期
机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
大多数情况下,一个总线周期包含多个总线时钟周期
有的时候,一个总线周期就是一个总线时钟周期
有的时候,一个总线时钟周期可包含多个总线周期(若分别在上升沿和一个下降沿都进行一次总线传输,那么一个总线时钟周期就包含了两个总线周期)
现在的计算机中,总线时钟周期也有可能由桥接器提供。
CPU发出时钟信号的频率很快,那么CPU总线的总线时钟周期就会很快。对于其他传输速度更慢的总线,桥接器会通过控制总线发出控制信号,使其总线时钟周期相比于CPU总线更慢些。
3.总线的工作频率
总线上各种操作的频率,为总线周期的倒数。
若总线周期=N个时钟周期,则总线的工作频率=时钟频率/N。
实际上指一秒内传送几次数据。
4.总线的时钟频率
即机器的时钟频率,为时钟周期的倒数。若时钟周期为T,则时钟频率为1/T。实际上指一秒内有多少个时钟周期。
5.总线宽度
又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
6.总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。
总线工作频率反映了总线每秒钟能够传送几次数据,总线宽度反映了每一次传送能并行地传输多少数据。所以将这两个值相乘就能得到每秒总线上可传输数据的位数。
注:
总线带宽是指总线本身所能达到的最高传输速率。然而在总线传输的信息中,不是所有的信息位都是有效信息,例如校验位,标志位。
所以在计算实际的有效数据传输率时,要用实际传输的数据量除以耗时。
例,某向步总线采用数据线和地址线复用方式,其中地址/数据线有32根,总线时钟频率为66MHz,每个时钟周期传送两次数据(上升沿和下降沿各传送一次数据)。即一个时钟周期包含两个总线周期。
1)该总线的最大数据传输率(总线带宽)是多少?
2)若该总线支持突发(猝发)传输方式,传输一个地址占用一个时钟周期,则一次“主存写”总线事务传输128位数据所需要的时间至少是多少?
(1)
每个时钟周期传送两次数据--->总线工作频率是时钟频率的两倍
总线工作频率=2x66MHz=132MHz
总线宽度=32bit=4B
总线带宽=总线工作频率*总线宽度=132 x 4 MB/s = 528 MB/s
(2)
解读:
突发传输方式:一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或写入多个数据。
由于采用了数据/地址线复用的方式,所以32根数据线先传输地址的信息,再传输数据信息,发送首地址占用1个时钟周期,128位数据需要传输4次,一个时钟周期传送两次数据,所以数据传输占用2个时钟周期。总共3个时钟周期(地址占1个,数据占2个)
一个时钟周期=1/66MHz=15ns
总耗时=(1*2)*15ns=45ns
由于总线带宽=总线工作频率*总线宽度(bit/s)
对于并行总线而言,由于工作频率较高时,并行的信号线之间会产生严重干扰,所以并行总线的工作频率比串行总线工作频率低。
1.工作频率相同时,串行总线传输速度比并行总线慢。
2.并行总线的工作频率无法持续提高,而串行总线可以通过不断提高工作频率来提高传输速度,最终超过并行总线。
所以串行总线的工作频率是能超过并行总线的
7.总线复用
总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本。例如,用同一组线分时传输地址信息与数据信息。
用总线复用的方式,若CPU想往主存中读数据,则CPU需要通过地址&数据总线发出地址信息,指明当前想要在主存什么位置读数据。当主存接收到这一信息后,同样会通过这一条总线,将这一数据传递给CPU。
所以使用这种方式传递数据时,至少需要两个总线周期,虽然节约了成本,但是数据传输速度也会下降。
8.信号线数
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。
六.总线的仲裁(了解)
1.总线仲裁的基本概念
由于总线是共享的资源,同一时刻只能提供给一组设备进行传输,即各组设备对总线的使用是互斥进行的。若多组设备都想要争用总线时,就必须提供某种机制来决定让哪一组设备使用总线。
对于单总线结构,若某个设备想要使用总线时,会通过控制总线的某些线路对总线控制器发出请求,请求总线的使用权,当总线的使用权被分配给这一设备时,这一设备就能通过数据总线和地址总线传输数据。向哪个设备传输数据是由获得使用权的设备决定的。
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
主设备:获得总线控制权的设备。
从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。
2.总线仲裁分类
(1)集中仲裁方式
工作流程:
1.主设备发出请求信号;
2.若多个主设备同时要使用总线,则由总线控制器(被集成在CPU或桥接器中)的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线;
3.获得总线使用权的主设备开始传送数据。
•链式查询方式
如下图所示,数据线与地址线里面会有多根信号线,BG,BR,BS只是一根信号线,每一根线只能传送一个信号,这三根线都是控制总线。
如何进行仲裁:
若设备1与设备n都想使用总线,即获得总线的控制权,那么都会向BR(总线请求)信号线上发送有效信号,例如高电平信号。
总线控制部件检测到高电平信号后,就会知道,某一个或几个设备请求使用总线,那么就会通过BG(总线允许)发送高电平信号,这个信号线通过设备0后,发现设备0不想使用总线,就会继续向后发送高电平信号。
当信号到达设备1时,发现设备1想要使用总线,那么就会将总线控制权交给设备1,设备1会发送有效信号到BS(总线忙),用来表示总线使用权已经被自己占有。
当总线控制部件接收到了BS传来的有效信号,就知道这一总线已经被分配给某一设备了,就会撤销BG。而设备1就能通过数据线与地址线与其他设备进行数据交互了。
直到设备1使用完总线,撤销总线忙信号,总线控制部件扔检测到有设备想要使用总线,就会再次向BG发送高信号,直到设备n截断这个信号,并向BS发送有效信号,表示自己占用了总线。
总线控制部件收到BS的有效信息后,就会撤销BG上的信号。
经过上述步骤可以总结:
“总线忙”信号的建立者是获得总线控制权的设备
优先级:离总线控制器越近的部件,其优先级越高;离总线控制器越远的部件,其优先级越低。
优点:链式查询方式优先级固定。只需很少几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易。
缺点:对硬件电路的故障敏感,并且优先级不能改变,若优先级高的部件出现故障,那么BG信号就会被截停在这一故障设备,那么后面的设备就永远申请不到总线控制权。当优先级高的部件频繁请求使用总线时,会使优先级较低的部件长期不能使用总线。
•计数器定时查询方式
在这一方式中,用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG;它仍共用一根总线请求线。
如何进行仲裁:
假设设备1和设备n都想使用总线,那么就会向BR(总线请求)发送有效信号,例如高电平信号。
总线控制部件中有一个计数器,当总线控制器收到总线请求信号,判断总线空闲时,计数器开始计数,计数值通过设备地址线发向各个部件。计数值为0,表示"设备地址"传来的地址信息为0(多个0),地址信息为0就意味着总线控制部件在询问0号设备是否想使用总线,由于0号设备不想使用,所以计数器会记为1。
计数器记为1,表示总线控制部件询问设备1想不想使用总线,设备1是想使用总线的,当地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权。并且该设备会向BS(总线忙)发送有效信号。当总线控制部件接收到来自BS的有效信号时,就会中止计数器的计数及查询。
接下来设备1就能使用数据线与地址线与其他设备进行数据交换了。当设备1使用完总线后,就会撤销BS上面的有效信号。
当总线控制部件发现BS已经不忙碌了,并且发现BR上有有效信号,即仍然有设备请求总线使用权,那么总线控制部件又可以开启计数器,询问下一个设备需不需要使用总线。
优点:
1.计数初始值可以改变优先次序
计数每次从“0”开始,设备的优先级就按顺序排列,固定不变;
计数从上一次的终点开始,此时设备使用总线的优先级相等;
计数器的初值还可以由程序设置;
2.对电路的故障没有链式敏感,也就是1号设备损坏,不会导致n号设备无法得到总线使用权。
缺点:
1.增加了控制线数,若设备有n个,则需[log2n]+2(BR+BS)条控制线
2.控制相对比链式查询相对复杂,加入了计数器,并且每个设备接口都必须能够识别计数器发来的设备地址。
•独立请求方式
每一个设备均有一对总线请求线和总线允许线
。
如何进行仲裁:
若设备1与设备n都需要申请总线的使用权,那么设备1和设备n会通过自己的BR向总线控制部件发送有效信号。
在总线控制部件中有一个排队器,当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求信号,在总线控制器中排队,排队器会决定优先将总线的控制权分配给哪一个设备。
当总线控制器按一定的优先次序决定批准某个部件的请求时则给该部件发送总线响应信号。
所有设备都与BS(总线忙)相连接,设备n收到了总线允许的信号后,会向BS发送一个有效信号,表示自己已经占用了总线使用权。
当总线控制部件接收到来自BS的有效信号后,就会撤销BG上的有效信号,此次仲裁结束。
当设备n使用完总线后,会撤销BS上的有效信号,当总线控制部件检测BS空闲时,会继续检查还有哪些设备想使用总线,就会继续下一次的仲裁。
优点:
1.响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或者查询。
2.对优先次序的控制相当灵活。
缺点:
1.控制线数量多,若设备有n个,只则需要2n+1条控制线,其中+1为BS线,用于设备向总线控制部件反馈已经是否正在使用总线。
2.总线的控制逻辑更加复杂
总结:三种集中仲裁方式
(2)分布仲裁方式
分布仲裁方式不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;
每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;
最后,获胜者的仲裁号保留在仲裁总线上。
七.操作和定时
如何让占用总线的一对设备进行数据传输?
(1)总线传输的四个阶段
•申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定将下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段。
•寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令(读/写),启动参与本次传输的从模块。
•传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
•结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
(2)总线定时
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则。
1.同步通信(同步定时方式)
总线控制器采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。
假设:CPU作为主设备,某个输入设备作为从设备。并且一个总线传输周期包含4个总线时钟周期
• CPU在T1时刻的上升沿给出地址信息
• 在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。• CPU在T3时钟周期内,将数据线上的信息传送到其内部寄存器中。
• CPU在T4的上升沿撤销读命令,输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动。
在此例中的作为从设备的输入设备,没有按照主设备的时钟信号来工作,就会出现数据传输错误。例如没有在T3的上升沿来之前将CPU所需的数据送到数据总线上。
总结:
1.若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。这些时钟信号是统一由总线控制器发出的。信息的发方与接收方必须按照统一的时钟信号工作。
2.在一个总线周期中,发送方和接收方可进行一次数据传送。
3.因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。
优点:传送速度快;具有较高的传输速率;总线控制逻辑简单。
缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差。
同步通信适用于总线长度较短(总线长度越短,信息传送越稳定)及总线所接部件的存取时间比较接近(若从设备是慢速的设备,跟不上时钟节拍,那么就会导致数据传输错误或者主从设备能在一个总线周期完成数据传输,并且其中一个设备存取速度非常快,另一个存取速度较慢,那么就会导致存取速度较快的设备性能被浪费)的系统。
2.异步通信(异步定时方式)
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的“请求”信号(包含地址和读/写信号),经接口传送到从设备;从设备接到主设备的请求后,通过接口间主设备发出“回答”信号。
根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型:
(1)不互锁方式主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间,便撤销“请求”信号。
而从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号(不会理会主设备有没有收到这个回答)。双方不存在互锁关系。
速度最快,可靠性最差
(2)半互锁方式主设备发出“请求”信号后,必须待接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。
(3)全互锁方式
主设备发出“请求”信号后,必须待从设备“回答”后,才撤销“请求”信号;
从设备发出“回答”信号,必须待获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
速度最慢,可靠性最好
优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。
缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。因为发送方需要等待接收方的回应,而对于同步定时方式而言,每个设备只需要在给定的节拍内完成相应的操作即可。
3.半同步通信
是同步通信与异步通信的结合,在统一时钟的基础上,增加一个“等待”响应信号。
对于同步通信而言,在T2的上升沿给出读命令(低电平有效),与地址信息相符合的输入设备按命令进行一系列的内部操作,且必须在T3的上升沿来之前将CPU所需的数据送到数据总线上。
但有的从设备跟不上时钟节拍,所以设置了"等待"响应时间。当从设备跟不上时钟节拍时,就会通过控制总线给总线控制器进行反馈,让总线控制器等待几个节拍,经过几个节拍后,从设备准备好数据,就会进入T3时钟周期,将数据传送给主设备。
在半同步通信中,给了总线控制器一定的自由度,总线控制器可以根据反馈的"等待"信号,动态调节总线传输周期内的时钟周期数。
所以半同步通信也可以支持两个工作速度相差很大的部件或设备之间可靠地进行信息交换。
4.分离式通信
上述三种通信的共同点:
一个总线传输周期(以主设备向从设备读出一个数据为例)
•主模块发地址和读命令,需要使用总线
•从模块准备数据,不需要使用总线,但是这一对主从设备依然会占用总线的使用权•从模块向主模块发数据,需要使用总线
所以分离式通信的思想就是将一个总线传输周期分为两个独立的子周期:
子周期1:
主模块发出请求,申请占用总线,使用完后立即放弃总线的使用权。
子周期2:从模块准备好设备,申请占用总线,将各种信息送至总线上。
之前讲到主模块(主设备)可以主动申请总线的控制权,但是在分离式通信中,从模块也需要能够主动申请总线的控制权。
特点:
1.各模块均有权申请占用总线
2.采用同步方式通信,不等对方回答
3.各模块准备数据时,不占用总线
4.总线利用率提高
八.总线标准(了解)
在实际工业生产中,需要制定一些总线标准,来规定总线的特性,硬件厂商按照一起制定的标准,各自研发硬件设备(类比软件里的“接口”)
1.总线标准的基本概念
总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。按总线标准设计的接口可视为通用接口,在接口的两端,任何一方只需根据总线标准的要求完成自身方面的功能要求,而无须了解对方接口的要求。
根据总线在计算机系统中的位置,可分为:
系统总线:通常与CPU直接相连,用于连接CPU与北桥芯片、或CPU与主存等。
局部总线:没有直接与CPU连接,通常是连接高速的北桥芯片与很多重要的硬件部件(如显卡、声卡等)设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部I/O设备。
注:南桥芯片的速度比北桥芯片慢。
2.系统总线标准
最早的PC总线是IBM公司1981年在PC/XT电脑采用的系统总线,它基于8bit的8088处理器,被称为PC总线或者PC/XT总线。
1984年,IBM推出基于16-bit Intel80286处理器的PC/AT电脑,系统总线也相应地扩展为16bit,并被称呼为PC/AT总线。而为了开发与IBMPC兼容的外围设备,行业内便逐渐确立了以IBMPC总线规范为基础的ISA(工业标准架构:Industry Standard Architecture)总线。
ISA总线最大传输速率仅为8MB/s,数据传送需要CPU或DMA接口来管理,传输速率过低、CPU占用率高、占用硬件中断资源等,很快使ISA总线在飞速发展的计算机技术中成为瓶颈。不支持总线仲裁。
因此在1988年,康柏、惠普等9个厂商协同把ISA扩展到32-bit,这就是著名的EISA(Extended ISA,扩展ISA)总线。EISA总线的工作频率仍旧仅有8MHz,并且与8/16bit的ISA总线完全兼容,带宽提高了一倍,达到了32MB/s。从CPU中分离出了总线控制权,支持多个总线主控器和突发传送。可惜的是,EISA仍旧由于速度有限,并且成本过高,在还没成为标准总线之前,在20世纪90年代初的时候,就给PCI总线给取代了。
3.局部总线标准
(1)VESA
CPU的主频提高,数据宽度增大及处理能力的增强使得系统的性能迅速提高。虽然系统总线在不断发展,仍然跟不上软件和CPU的发展速度,仍然不能充分利用CPU的强大处理能力。大部分时间内,CPU都处于等待状态,特别是在日益强大的CPU处理能力和存储器容量的支持和激励下,操作系统和应用程度变得越来越复杂,而显示卡和硬盘控制器因位于8位或16位系统I/O总线上,相对极高的CPU的速度而言,传输数据的速度低的多,从而影响了系统的整体工作效率。
因此,为提高系统的整体性能,解决总线传输问题的一个办法是将外设直接挂在CPU局部总线上并以CPU速度运行,将外设挂到CPU局部总线能够极大地提高外设的运行速度,而成本只有轻微的上浮,这个性能/价格比为局部总线创造了一个巨大的市场潜力。
1991年,视频电子标准协会针对视频显示的高数据传输率要求而推出了VESA总线,又叫做视频局部总线(VESA local bus),简称VL-BUS总线,由CPU总线演化而来,是针对多媒体PC要求高速传送活动图像的大量数据应运而生的。
(2)PCI
由于ISA/EISA总线速度缓慢,造成硬盘、显示卡还有其它的外围设备只能通过慢速并且狭窄的瓶颈来发送和接受数据,使得整机的性能受到严重的影响。为了解决这个问题,1992年Intel在发布486处理器的时候,也同时提出了32-bit的PCI(周边组件互连)总线。
最早提出的PCI总线工作在33MHz频率之下,传输带宽达到了133MB/s(33MHz X 32bit / 8),比ISA 总线有了极大的改善,基本上满足了当时处理器的发展需要。目前计算机上广泛采用的是这种32-bit、33MHz的PCI总线,可扩展到64bit。
特点:
1.高性能:不依附于某个具体的处理器,支持突发传送。
2.良好的兼容性。
3.支持即插即用。
4.支持多主设备。
5.具有与处理器和存储器子系统完全并行操作的能力。
6.提供数据和地址奇偶校验的能力。
7.可扩充性好,可采用多层结构提高驱动能力。8.采用多路复用技术,减少了总线引脚个数。
(3)AGP
PCI总线是独立于CPU的局部总线,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU总线上,打破了瓶颈,使得CPU的性能得到充分的发挥。可惜的是,由于PCI总线只有133MB/s的带宽,对付声卡、网卡、视频卡等绝大多数输入/输出设备也许显得绰绰有余,但对于胃口越来越大的3D显卡却力不从心,并成为了制约显示子系统和整机性能的瓶颈。因此,PC总线的补充-----AGP总线就应运而生了。
Intel于1996年7月正式推出AGP(加速图形接口,Accelerated Graphics Port)接口,这是显示卡专用的局部总线,是基于PCI 2.1版规范并进行扩充修改而成,工作频率为66MHz,1X模式下带宽为266MB/s,是PCI总线的两倍。后来依次又推出了AGP 2X、AGP 4X,现在则是AGP 8X,传输速度达到了2.1GB/s。
(4)PCI-E
Intel在2001年春季的IDF上,正式公布了旨在取代PCI总线的三代I/O 技术,最后却被正式命名为PCI-Express,Express 意思是高速、特别快的意思。
PCI Express总线是一种完全不同于过去PCI总线的一种全新总线规范,与PCI总线共享并行架构相比,PCI Express总线是一种点对点串行连接的设备连接方式,点对点意味着每一个PCI Express设备都拥有自己独立的数据连接,各个设备之间并发的数据传输互不影响,而对于过去PCI那种共享总线方式,PCI总线上只能有一个设备进行通信,一旦PCI总线上挂接的设备增多,每个设备的实际传输速率就会下降,性能得不到保证。
在传输速率方面,PCI Express总线利用串行的连接特点将能轻松将数据传输速度提到一个很高的频率,达到远超出PCI总线的传输速率。与此同时,PCI Express总线支持双向传输模式,还可以运行全双工模式。支持热拔插。
4.设备总线标准
(1)RS-232C
RS-232C是应用于串行二进制交换的数据终端设备(DTE)和数据通信设备(DCE)之间的标准接口。
RS-232C是美国电子工业协会EIA(ElectronicIndustry Association)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。
(2)SCSI
SCSI(小型计算机系统接口)是一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准。
1. IDE的工作方式需要CPU的全程参与,CPU读写数据的时候不能再进行其他操作,这种情况在Windows 95/NT的多任务操作系统中,自然就会导致系统反应的大大减慢。而SCSI接口,则完全通过独立的高速的SCSI卡来控制数据的读写操作,CPU就不必浪费时间进行等待,显然可以提高系统的整体性能。不过,IDE接口为改善这个问题也做了很大改进,已经可以使用DMA模式而非PIO模式来读写,数据的交换由DMA通道负责,对CPU的占用可大大减小。尽管如此,比较SCSI和IDE在CPU的占用率,还是可以发现SCSI仍具有相当的优势。
2.SCSI的扩充性比IDE大,一般每个IDE系统可有2个IDE通道,总共连4个IDE设备,而SCSI接口可连接7~15个设备,比IDE要多很多,而且连接的电缆也远长于IDE。
3.虽然SCSI设备价格高些,与IDE相比,SCSI的性能更稳定、耐用,可靠性也更好。
(3)PCMCIA
由于可移动计算机(笔记本)用户对PC卡的需求变了,要求强度高,能耗低,尺寸小,而且对这几条性能的要求都很高。所以PC卡的标准也相应地变了。1991年,PCMCIA定义了原本用于内存卡的68个脚的I/O连接线路标准。同时增加了插槽使用说明。生产商意识到软件需要提高兼容性,因而这项标准也就得到了相应的应用。
PCMCIA总线分为两类,一类为16位的PCMCIA,另一类为32位的CardBus。
CardBus是一种用于笔记本计算机的新的高性能PC卡总线接口标准,就像广泛地应用在台式计算机中的PCI总线一样。该总线标准与原来的PC卡标准相比,具有以下的优势:
第一是32位数据传输和33MHz操作。CardBus快速以太网PC卡的最大吞吐量接近90Mbps,而16位快速以太网PC卡仅能达到20~30 Mbps。
第二,总线自主。使PC卡可以独立于主CPU,与计算机内存间直接交换数据,这样CPU就可以处理其它的任务。
第三,3.3V供电,低功耗。提高了电池的寿命,降低了计算机内部的热扩散,增强了系统的可靠性。
第四,后向兼容16位的PC卡。老式以太网和Modem设备的PC卡仍然可以插在CardBus插槽上使用。
PCMCIA支持即插即用。
(4)USB
USB是在1994年底由英特尔等多家公司联合在1996年推出后,已成功替代串口和并口,已成为当今电脑与大量智能设备的必配接口。USB属于设备总线,是设备和设备控制器之间的接口。
USB所有新版本都向下兼容,可以连接鼠标、键盘、打印机、扫描仪、摄像头、充电器、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等几乎所有的外部设备。
1.可以热插拔、即插即用。
2.具有很强的连接能力和很好的可扩充性。采用菊花链形式将众多外设连接起来,可使用USB集线器链式连接127个外设。
3.标准统一。以前大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。
4.高速传输。
5.连接电缆轻巧,可为低压(5V)外设供电。
如下图所示1,4端用于供电,不会用于数据传输,2,3端会配合地传输1bit数据,这是依靠差模信号实现的。
差模信号:根据2、3的压差来确定1bit数据,差模信号的抗干扰能力很强,因此工作频率可以很高注意:USB每次只能传输1bit数据
(5)IDE
Integrated Drive Electronics(电子集成驱动器)本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。
用于IDE硬盘的接口最初被称为IDE接口,后来扩展为CD-ROM、磁带机、可移动磁盘、LS-120磁盘等设备的接口。
硬盘和光驱通过IDE接口与主板连接。
(6)SATA
Serial ATA即串行高级技术附件,它是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而知名。是由APT Technologies、DELL、IBM、Intel、Maxtor、Quantum,Seagate等公司合作开发用于取代并行ATA接口技术。
与并行ATA相比,SATA具有比较大的优势。
首先,Serial ATA以连续串行的方式传送数据,可以在较少的位宽下使用较高的工作频率来提高数据传输的带宽Serial ATA一次只会传送1位数据,这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。同时还能降低系统能耗,减小系统复杂性。
其次,Serial ATA的起点更高、发展潜力更大,Serial ATA1.0定义的数据传输率可达150MB/sec,这比目前最块的并行ATA(即ATA/133)所能达到133MB/sec的最高数据传输率还高,而在已经发布的Serial ATA2.0的数据传输率将达到300MB/sec,最终Serial ATA3.0将实现600MB/sec的最高数据传输率。
速度对比:
只要能分辨各个英文缩写属于哪一个总线标准即可。
总线标准的发展过程:
为何串行总线取代并行总线?
并行总线:用m根线每次传送m个比特,用高/低电平表示1/0,通常采用同步定时方式,由于线间信号干扰,因此总线工作频率不能太高。另外,各条线不能有长度差,长距离并行传输时工艺难度大。
串行总线:用两根线每次传送一个比特,采用“差模信号”表示1/0,通常采用异步定时方式,总线工作频率可以很高。现在的串行总线通常基于包传输,如80bit为一个数据包,包与包之间有先后关系,因此可以用多个数据通路分别串行传输多个数据包。因此某种程度上现在的串行总线也有“并行”的特点。