四、总线的定时
【例3】某CPU采用集中式仲裁方式,使用独立请求与菊花链查询相结合的二维总线控制结构。每一对请求线BRi和授权线BGi组成一对菊花链查询电路。每一根请求线可以被若干个传输速率接近的设备共享。当这些设备要求传送时通过BRi线向仲裁器发出请求,对应的BGi线则串行查询每个设备,从而确定哪个设备享有总线控制权。请分析说明图6.14所示的总线仲裁时序图。
1.总线数据传送模式
读、写操作:读操作是由从方到主方的数据传送;写操作是由主方到从方的数据传送。一般,主方先以一个总线周期发出命令和从方地址,经过一定的延时再开始数据传送总线周期。为了提高总线利用率,减少延时损失,主方完成寻址总线周期后可让出总线控制权,以使其他主方完成更紧迫的操作。然后再重新竞争总线,完成数据传送总线周期。
块传送操作:只需给出块的起始地址,然后对固定块长度的数据一个接一个地读出或写入。对于CPU(主方)存储器(从方)而言的块传送,常称为猝发式传送,其块长一般固定为数据线宽度(存储器字长)的4倍。例如一个64位数据线的总线,一次猝发式传送可达256位。这在超标量流水中十分有用。
写后读、读修改写操作:这是两种组合操作。只给出地址一次(表示同一地址),或进行先写后读操作,或进行先读后写操作。前者用于校验目的,后者用于多道程序系统中对共享存储资源的保护。这两种操作和猝发式操作一样,主方掌管总线直到整个操作完成。
广播、广集操作:一般而言,数据传送只在一个主方和一个从方之间进行。但有的总线允许一个主方对多个从方进行写操作,这种操作称为广播。与广播相反的操作称为广集,它将选定的多个从方数据在总线上完成AND或OR操作,用以检测多个中断源。
五、PCI总线和PCle总线
1.多总线结构
HOST总线:该总线有CPU总线、系统总线、主存总线、前端总线等多种名称,各自反映了总线功能的一个方面。这里称“宿主”总线,也许更全面,因为HOST总线不仅连接主存,还可以连接多个CPU。
HOST总线:连接“北桥”芯片与CPU之间的信息通路,它是一个64位数据线和32位地址线的同步总线。32位的地址线可支持处理器4GB的存储寻址空间。总线上还接有L2级cache,主存与cache控制器芯片。后者用来管理CPU对主存和cache的存取操作。CPU拥有HOST总线的控制权,但在必要情况下可放弃总线控制权。
PCI总线:连接各种高速的PCI设备。PCI是一个与处理器无关的高速外围总线,又是至关重要的层间总线。它采用同步时序协议和集中式仲裁策略,并具有自动配置能力。PCI设备可以是主设备,也可以是从设备,或兼而有之。在PCI设备中不存在DMA(直接存储器传送)的概念,这是因为PCI总线支持无限的猝发式传送。这样,传统总线上用DMA方式工作的设备移植到PCI总线上时,采用主设备工作方式即可。系统中允许有多条PCI总线,它们可以使用HOST桥与HOST总线相连,也可使用PCI/PCI桥与已和HOST总线相连的PCI总线相连,从而得以扩充PCI总线负载能力。
LAGACY总线:可以是ISA,EISA,MCA等这类性能较低的传统总线,以便充分利用市场上丰富的适配器卡,支持中、低速I/O设备。
在PCI总线体系结构中有三种桥。其中HOST桥又是PCI总线控制器,含有中央仲裁器。桥起着重要的作用,它连接两条总线,使彼此间相互通信。桥又是一个总线转换部件,可以把一条总线的地址空间映射到另一条总线的地址空间上,从而使系统中任意一个总线主设备都能看到同样的一份地址表。
桥本身的结构可以十分简单,如只有信号缓冲能力和信号电平转换逻辑,也可以相当复杂,如有规程转换、数据快存、装拆数据等。
2.PCI总线信号
PCI总线的基本传输机制是猝发式传送,利用桥可以实现总线间的猝发式传送。写操作时,桥把上层总线的写周期先缓存起来,以后的时间再在下层总线上生成写周期,即延迟写。读操作时,桥可早于上层总线,直接在下层总线上进行预读。无论延迟写和预读,桥的作用可使所有的存取都按CPU的需要出现在总线上。
3.PCI总线周期操作
PCI总线周期的操作过程有如下特点:
1)采用同步时序协议。总线时钟周期以上跳沿开始,半个周期高电平,半个周期低电平。总线上所有事件,即信号电平转换出现在时钟信号的下跳沿时刻,而对信号的采样出现在时钟信号的上跳沿时刻。
2)总线周期由被授权的主方启动,以帧FRAME#信号变为有效来指示一个总线周期的开始。
3)一个总线周期由一个地址期和一个或多个数据期组成。在地址期内除给出目标地址外,还在C/BE#线上给出总线命令以指明总线周期类型。
4)地址期为一个总线时钟周期,一个数据期在没有等待状态下也是一个时钟周期。一次数据传送是在挂钩信号IRDY#和TRDY#都有效情况下完成,在一信号无效(在时钟上跳沿被对方采样到),都将加入等待状态。
5)总线周期长度由主方确定。在总线周期期间FRAME#持续有效,但在最后一个数据期开始前撤除。即以FRAME#无效后,IRDY#也变为无效的时刻表明一个总线周期结束。由此可见,PCI的数据传送以猝发式传送为基本机制,单一数据传送反而成为猝发式传送的一个特例。并且PCI具有无限制的猝发能力,猝发长度由主方确定,没有对猝发长度加以固定限制。
6)主方启动一个总线周期时要求目标方确认。即在FRAME#变为有效和目标地址送上AD线后,目标方在延迟一个时钟周期后必须以DEVSEL#信号有效予以响应。否则,主设备中止总线周期。
7)主方结束一个总线周期时不要求目标方确认。目标方采样到FRAME#信号已变为无效时,即知道下一数据传送是最后一个数据期。目标方传输速度跟不上主方速度,可用TRDY#无效通知主方加入等待状态时钟周期。当目标方出现故障不能进行传输时,以STOP#信号有效通知主方中止总线周期。
4.PCI总线仲裁
PCI总线采用集中式仲裁方式,每个PCI主设备都有独立的REQ#(总线请求)和GNT#(总线授权)两条信号线与中央仲裁器相连。由中央仲裁器根据一定的算法对各主设备的申请进行仲裁,决定把总线使用权授予谁。但PCI标准并没有规定仲裁算法。
5.PCle总线
PCle总线全称为PCI-Express,是基于PCI总线技术发展起来的总线标准。
对PCI总线有良好的继承性,在软件应用上兼容PCI总线。
PCle总线的主要改进有如下几点:
1、高速差分传输
2、串行传输
3、全双工端到端连接
4、基于多通道的数据传输方式
5、基于数据包的传输