linux设备驱动模型一上层容器之bus概述

声明:以下内容均是从网上摘录过来

这里先摘取下百科的介绍:

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。总线,英文叫作“BUS”,即我们中文的“公共车”,这是非常形象的比如,公共车走的路线是一定的,我们任何人都可以坐公共车去该条公共车路线的任意一个站点。如果把我们人比作是电子信号,这就是为什么英文叫它为“BUS”而不是“CAR”的真正用意。当然,从专业上来说,总线是一种描述电子信号传输线路的结构形式,是一类信号线的集合,是子系统间传输信息的公共通道[1]。通过总线能使整个系统内各部件之间的信息进行传输、交换、共享和逻辑控制等功能。如在计算机系统中,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过主机相连接,外部设备通过相应的接口电路再于总线相连接。

工作原理

当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。

总线的分类

总线按功能和规范可分为三大类型:

(1) 片总线(Chip Bus, C-Bus):

又称元件级总线,是把各种不同的芯片连接在一起构成特定功能模块(如CPU模块)的信息传输通路。

(2) 内总线(Internal Bus, I-Bus)

又称系统总线或板级总线,是微机系统中各插件(模块)之间的信息传输通路。例如CPU模块和存储器模块或I/O接口模块之间的传输通路。

(3) 外总线(External Bus, E-Bus)  又称通信总线,是微机系统之间或微机系统与其他系统(仪器、仪表、控制装置等)之间信息传输的通路,如EIA RS-232C、IEEE-488等。  其中的系统总线,即通常意义上所说的总线,一般又含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。  有的系统中,数据总线和地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些时刻表示地址;而有的系统是分开的。51系列单片机的地址总线和数据总线是复用的,而一般PC中的总线则是分开的。  “数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。  “地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机(x位处理器指一个时钟周期内微处理器能处理的位数(1 、0)多少,即字长大小)的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。  “控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,(信息)一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。  按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。

总线的操作

总线一个操作过程是完成两个模块之间传送信息,启动操作过程的是主模块,另外一个是从模块。某一时刻总线上只能有一个主模块占用总线。  总线的操作步骤:  主模块申请总线控制权,总线控制器进行裁决。  总线的操作步骤:  主模块得到总线控制权后寻址从模块,从模块确认后进行数据传送。  数据传送的错误检查。  总线定时协议:定时协议可保证数据传输的双方操作同步,传输正确。定时协议有三种类型:  同步总线定时:总线上的所有模块共用同一时钟脉冲进行操作过程的控制。各模块的所有动作的产生均在时钟周期的开始,多数动作在一个时钟周期中完成。  异步总线定时:操作的发生由源或目的模块的特定信号来确定。总线上一个事件发生取决前一事件的发生,双方相互提供联络信号。  总线定时协议  半同步总线定时:总线上各操作的时间间隔可以不同,但必须是时钟周期的整数倍,信号的出现,采样与结束仍以公共时钟为基准。ISA总线采用此定时方法。  数据传输类型:分单周方式和突发(burst)方式。  单周期方式:一个总线周期只传送一个数据。  数据传输类型:  突发方式:取得主线控制权后进行多个数据的传输。寻址时给出目的地首地址,访问第一个数据,数据2、3到数据n的地址在首地址基础上按一定规则自动寻址(如自动加1)。

再说一下前端总线:

前端总线(FSB,Front Side Bus)是指中央处理器数据总线的专门术语,此总线负责中央处理器和北桥芯片间的数据传递。某些带有L2和L3缓存(Cache)的计算机,通过后端总线(Back Side Bus)实现这些缓存和中央处理器的连接,而此总线的数据传输速率总是高于前端总线

用途

大多数现代总线(GTL+和EV6)是CPU和芯片组的连接主干。芯片组(通常由南桥和北桥组成)是和系统中其他总线的连接节点。PCI、AGP和内存总线均和芯片组相连,以使设备间数据能相互传送。这些第二级系统总线的运行速率取决于前端总线的速率。总之,高的前端总线速率意味着计算机的高处理性能。在PC发展初期,由于处理器速度不高,大部份元件的时脉均保持同步,直至80486时代,在处理器制程持续进步下,处理器速度也加速成长,当时由于其他外部元件受电气结构所限,而无法跟进成长,因此Intel首次于处理器时脉中加入倍频设计,首颗处理器为Intel 80486DX2,外部传输时脉是处理器的一半,及后处理器成长速度仍远超过外部元件,两者速度差距越来越大。直至Pentium III时代,处理器时脉已超越1GHz,但外部传输时脉仍仅有133MHz。正常来说,外频速度越高代表处理器在同一周期下可读写越多的数据,因此,外频速度很可能会变成系统效能上的瓶颈,为解决处理器带宽不足的问题,Intel于Pentium 4时代加入Quad Pumped Bus架构,使其在同一周期内可传送4笔数据,此举令外部传输时脉不变下,传输效率却可提升四倍。

超频和相关总线速率

中央处理器(CPU)中央处理器的时脉速度(简称内频)由系统总线速率(bus speed)乘上倍频系数决定。例如,一个时脉速度为 700MHz 的处理器,可能运行于 100MHz 的系统总线上。这说明处理器内的时钟倍频器的倍率设置为7,即中央处理器被设定为以7倍于系统总线的速率运行:100 MHz×7 = 700 MHz。通过改变倍频系数或系统总线速率,可以得到不同的时脉速度。以前经常套用的规则认为:时脉速度=外频(前端总线、FSB)*倍频系数。这句话严格来说并不正确。因为现在系统总线、前端总线(外频、FSB)速率不一样。就 Intel CPU 来说,前端总线=系统总线*4。所以,应该说时脉速度=系统总线*倍频系数。大多数主板允许用户通过跳线设置(BIOS)设定倍频或系统总线速率。现在许多处理器制造商预先锁定了处理器的倍频,但可以通过某些手段解锁。对所有的处理器,系统总线速率的适当提高可以增进其处理速率。

北桥芯片

北桥芯片(North Bridge)是主板芯片组中起主导作用的最重要的组成部分,也称为主桥(Host Bridge)

北桥芯片就是主板上离CPU最近的芯片,这主要是考虑到北桥芯片与处理器之间的通信最密切,为了提高通信性能而缩短传输距离。因为北桥芯片的数据处理量非常大,发热量也越来越大,所以现在的北桥芯片都覆盖着散热片用来加强北桥芯片的散热,有些主板的北桥芯片还会配合风扇进行散热。因为北桥芯片的主要功能是控制内存,而内存标准与处理器一样变化比较频繁,所以不同芯片组中北桥芯片是肯定不同的,当然这并不是说所采用的内存技术就完全不一样,而是不同的芯片组北桥芯片间肯定在一些地方有差别。

北桥芯片负责与CPU的联系并控制内存(仅限于Intel除i7系列以外的cpu,AMD系列cpu在K8系列以后就在cpu中集成了内存控制器,因此AMD平台的北桥芯片不控制内存)、AGP数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型(SDRAM,DDR SDRAM以及RDRAM等等)和最大容量、AGP插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心

南桥芯片

南桥芯片(South Bridge)是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI插槽的附近,这种布局是考虑到它所连接的I/O总线较多,离处理器远一点有利于布线。相对于北桥芯片来说,其数据处理量并不算大,所以南桥芯片一般都没有覆盖散热片。南桥芯片不与处理器直接相连,而是通过一定的方式(不同厂商各种芯片组有所不同,例如英特尔的英特尔Hub Architecture以及SIS的Multi-Threaded“妙渠”)与北桥芯片相连。

南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等,这些技术一般相对来说比较稳定,所以不同芯片组中可能南桥芯片是一样的,不同的只是北桥芯片。所以现在主板芯片组中北桥芯片的数 南桥芯片  量要远远多于南桥芯片。

夫妇一条心,泥土变黄金。

linux设备驱动模型一上层容器之bus概述

相关文章:

你感兴趣的文章:

标签云: