总线相关问题介绍

在计算机系统中,总线的作用就好比是人体中的神经系统,它承担的是所有数据传输的职责,而各个子系统间都必须籍由总线才能通讯,例如,CPU 和北桥间有前端总线、北桥与显卡间为AGP 总线、芯片组间有南北桥总线,各类扩展设备通过PCIPCI-X 总线与系统连接;主机与外部设备的连接也是通过总线进行,如目前流行的USB 2.0IEEE1394 总线等等,一句话,在一部计算机系统内,所有数据交换的需求都必须通过总线来实现!

按照工作模式不同,总线可分为两种类型,一种是并行总线,它在同一时刻可以传输多位数据,好比是一条允许多辆车并排开的宽敞道路,而且它还有双向单向之分;另一种为串行总线,它在同一时刻只能传输一个数据,好比只容许一辆车行走的狭窄道路,数据必须一个接一个传输、看起来仿佛一个长长的数据串,故称为“串行”。

关于总线的一些相关问题总结:

1、 总线分类中并行总线的主要缺点——传输速度慢。

原因:并行总线具有定时要求,由于并行总线有多根数据线,这些数据线传输速率无法做到完全同步。这种情况下,需要给总线设定一个脉冲时钟(clock),确定一次传输的时间,如果脉冲时钟太短,则在一个周期内数据没有传完,上一次未传完的数据又归入了下一周期的数据,这样会造成误码的产生。脉冲时钟决定了并行总线的传输速率,使它的速率不能太高。

相比之下串行总线具有自定时的功能,所发送的数据都有特定标记位,告之何时开始和结束,不需要脉冲时钟的存在,可以达到很高的传输速率。

2、 PCI总线多主控器的特点。

主控器(Master)可以自己管理总线,具有Bus Master功能的PCI设备其硬件可以通过向总线仲裁器请求主控权来配置空间。一般不支持DMA的,都不是BUS Master。

Bus Arbiter(总线仲裁器):当有多个总线主设备都发出申请总线的请求时,能决定哪一个申请者能取得总线的使用权的专用部件称为总线仲裁器。

DMA(Direct Memory Access):直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s

3、 PCI总线即插即用(Plug and Play)功能。

百度百科:PNPPlug-and-Play(即插即用)的缩写。它的作用是自动配置(低层)计算机中的板卡和其他设备,然后告诉对应的设备都做了什么。PnP的任务是把物理设备和软件(设备驱动程序)相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道。换种说法,PnP分配下列资源给设备和硬件:I/O地址、IRQDMA通道和内存段。

PCI具有即插即用功能的前提是:PCI设备的所有资源都可以通过软件配置(Programmable),这样需要PCI设备有两个能力:

1) 能够告之系统软件需要哪些资源;

2) 系统分配资源后,必须有可写寄存器来接受资源。

其中对设备讲,资源是指:IO寄存器的基地址、内存映射(memory map)基地址、中断号等。

每个PCI设备都具有632位可读写寄存器,可以进行I/O基地址分配。系统开机以后,BIOS首先要先确定基地址的长度,首先给PCI设备写入16位全1PCI设备将不关心的位保持不变,关心的位置成0。得到长度以后,将其写入寄存器,只响应相应长度的位。

4、 PCI桥接芯片。

每个PCI设备都具 有一个桥接芯片连接到本地(local)电路。PCI总线挂在南桥下面,PCIe总线挂载北桥下面。

5、 PCI总线的最大设备数。

 PCI设备最多可容纳256条总线

一个总线段是32个槽,也可以认为一个总线段最多有32个设备。当系统设备超出了32个,需要使用PCI-to-PCI BridgePCI总线进行扩展。

访问PCI的配置空间时使用32位地址:前8位是总线号(总线数28次方=256条),接下来5slot号(即可以有25次方=32个插槽),后面3位是逻辑功能号,最后8位是偏移量。

6、 PCI引脚中的C/BE

由于PCI总线是地址数据复用的,在AD[31:0]上传输地址的时候,C/BEC[3:0])上传输的是总线命令(包括I/O读写,内存读写,配置读写),共16中命令;AD[31:0]上传输数据的时候,C/BEBE[3:0]用作字节允许,表示哪些通道上的数据是有效的(表示32位地址中哪几个byte的数据是有效的),BE0对应最低字节。

引脚图常识:带#号表示低电平有效,不带#号表示高电平有效(高电平要求必须有上拉电阻,容易产生干扰)

7、 PCI插槽上的缺口。

普通PCI卡里面,用金手指的缺口位置表示PCI卡是5V还是3.3V标准,5V卡的缺口远离挡板,3.3V卡的缺口靠近挡板,所以两者不会插进对方的插槽,导致烧毁。还有一种PCI卡是两个缺口的,对应的插槽是没有分隔的(整个通的槽)这就是5V3.3V双电压卡,可以兼容两种电压。

8、 总线中的带宽

并行总线和串行总线的描述参数存在一定差别。对并行总线来说,描述的性能参数有以下三个:总线宽度、时钟频率、数据传输频率。其中,总线宽度就是该总线可同时传输数据的位数,好比是车道容许并排行走的车辆的数量;例如,16 位总线在同一时刻传输的数据为16 位,也就是2 个字节;而32 位总线可同时传输4 个字节,64 位总线可以同时传输8个字节......显然,总线的宽度越大,它在同一时刻就能够传输更多的数据。不过总线的位宽无法无限制增加。

总线的带宽指的是这条总线在单位时间内可以传输的数据总量,它等于总线位宽与工作频率的乘积。例如,对于64 位、800MHz 的前端总线,它的数据传输率就等于

64bit×800MHz÷8(Byte)=6.4GB/s32 位、33MHz PCI 总线的数据传输率就是 32bit×33MHz÷8=133MB/s,等等,这项法则可以用于所有并行总线上面——我们所说的总线带宽指的就是它的数据传输率,其实“总线带宽”的概念同“电路带宽”的原始概念已经风马牛不相及。

对串行总线来说,带宽和工作频率的概念与并行总线完全相同,只是它改变了传统意义上的总线位宽的概念。在频率相同的情况下,并行总线比串行总线快得多,那么,为什么现在各类并行总线反而要被串行总线接替呢?原因在于并行总线虽然一次可以传输多位数据,但它存在并行传输信号间的干扰现象,频率越高、位宽越大,干扰就越严重,因此要大幅提高现有并行总线的带宽是非常困难的;而串行总线不存在这个问题,总线频率可以大幅向上提升,这样串行总线就可以凭借高频率的优势获得高带宽。而为了弥补一次只能传送一位数据的不足,串行总线常常采用多条管线(或通道)的做法实现更高的速度——管线之间各自独立,多条管线组成一条总线系统,从表面看来它和并行总线很类似,但在内部它是以串行原理运作的。对这类总线,带宽的计算公式就等于“总线频率×管线数”,这方面的例子有PCI Express HyperTransport,前者有×1、×2、×4、×8、×16 和×32 多个版本,在第一代PCI Express 技术当中,单通道的单向信号频率可达2.5GHz,我们以×16 举例,这里的16 就代表16 对双向总线,一共64 条线路,每4 条线路组成一个通道,二条接收,二条发送。这样我们可以换算出其总线的带宽为2.5GHz×16/10=4GB/s(单向)。除10 是因为每字节采用10 位编码。

对总线和内存来说,带宽高低对系统性能有着举足轻重的影响——倘若总线、内存的带宽不够高的话,处理器的工作频率再高也无济于事,因此带宽可谓是与频率并立的两大性能决定要素。

 

shelley

你可能感兴趣的:(工作,express,Access,扩展,byte,64bit)