《机箱间电缆总线VICbus.docx》由会员分享,可在线阅读,更多相关《机箱间电缆总线VICbus.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、机箱间电缆总线VICbusshixiang导语:本文介绍机箱间电缆总线VICbus的标准、应用和作者在开发VICbus接口模块所做的工作摘要:本文介绍机箱间电缆总线VICbus的标准、应用和作者在开发VICbus接口模块所做的工作。关键词:VICbus,VMEbus,紧耦合多处理机系统用于多处理机系统的高性能背板backplane总线VMEbus是计算机领域使用最广泛的总线之一。随着多处理机系统的扩大,要务实现多个VMEbus机箱的紧耦合连接。VICbus就是为知足这一要求而提出的总线标准。它是由欧洲核子中心CERN和瑞士CES计算机公司结合开展的并在1993年度形成国际标准ISOIEC261
2、1458。VICbus固然是为VMEbus机箱间连接提出的标准,但随着应用的扩大,它已成为连接各种背板型总线的接口总线。目前已实现VICbus接12的总线有:VMEbus,SbusSunSparc工作站,NuBusMacintosh微机,EISAbusIBMPCAT微机,FASTBUS及CAMAC智能机箱控制器。使用相应的VICbus接口模块即电路板即可实现上述各种总线的连接。图1是用VICbus连接不同总线机箱的一个例子。在VICbus系统中,一个机箱被称为一个设备,最高可连接31个设备,设备号为1-31,可由接口模块的面板开关来设定。VICbus系统中,各个设备之间最大工作间隔为100米,
3、因此使用VlCbus可以组成“分布式紧耦合系统。2VICbus总线协议VICbus是32位地址数据线复用的总线。它使用64对双绞线组成的扁平电缆。除了一对用作参考地之外,其余63对均为差分信号线。总线按功能划分,可分为数据传输总线DTB、仲裁总线、中断总线和应用UTILITY总线。21数据传输协议VICbus是32位地址数据复用总线,每次数据传输先后有地址信号周期和数据周期。有二种数据传输方式,即异步方式又称强迫方式和同步方式非强迫方式。异步方式的数据传输协议,使用WAIT信号作为从设备对主设备的应答信号,在地址选通时AS不作应答,仅在数据选通后DS才应答。一次地址选通后,在数据周期里可传输任
4、意数量、读写可以混合的数据,但地址固定不变。从设备可使用内部增址计数器来作块传输。同步方式的数据传输分为二种,一个是所谓NC1协议。主设备在地址信号周期之后就直接进入数据信号周期,无需来自从设备的任何响应。这种方式速度快,但可靠性欠佳,且只能用于由主设备向从设备的“写传输。另一种同步数据传输协议为NC2协议。它以流水线方式使用延迟的从设备WAIT信号来响应主设备。WAIT信号并不用作定时,仅只是供主设备确认传输成功而用。这个方式下,一次传输可以是读或写。数据传输所用到的信号线为:AD31AD00,用于地址数据线;ID4ID0,用来确定从设备号031;CL3CL0给出协议类型和数据字节对齐的有关
5、信息。22总线仲裁对于电缆型总线,无法使用分布式仲裁,因为那样做信号传播时间太长。VICbus采用传统的总线恳求BR总线允许BG机制和菊花链构造,系统中每一个主设备都具有仲裁器功能,以旋转仲裁方式工作。一个主设备获得了总线控制权,同时也就获得总线仲裁权。为了实现仲裁器旋转,菊花链中的上游设备必须能得到处在下游的当前仲裁器的BG信号,为此,使用一条BGLOOP信号线,把菊花链中最后一个设备的BGOUT端连接到第一个设备的BGIN端,形成BG信号的环路。当系统中同时有几个设备恳求总线时,当前仲裁器把总线控制权和仲裁权交给离它最近的一个发出BR总线恳求的设备。旋转仲裁方式的好处是,可以降低平均仲裁时
6、间并防止某一个主设备过分地占据总线,同时可以防止单一仲裁器失效导致系统崩溃。总线里有一个“仲裁锁住ALOCK信号,当有一个设备动态地参加或者退出系统连接时,可以用这个信号暂时制止总线仲裁。23中断VICbus使用二个125KHZ的时钟信号名为INTSEL0和INTSEL1,把32个中断恳求信号MINT31MINT0放在8条中断线上多路复用。也即,当INTSEL0和INTSEL1是00时,8条中断线上是MINT0MINT7信号,当为01时,是MINT8MINT15信号,为10时,是MINT16MINT23信号,为11时,是MINT24MINT31信号。每个设备只能向系统发一个中断恳求信号,对中断
7、的响应那么是通过专用的“IACK型DTB周期。系统中可以有许多设备都具有INTSEL发生器,但只有一个工作着,它称为系统控制器。假如当前系统控制器失效,其它设备立即测知,并产生一个ALOCK信号,在AIOCK信号完毕时,各个具有INTSEL发生器的设备就启动自已的计数器,假设一个设备计数到等于它的设备号的值时,总线上仍没有INTSEL信号出现、那么这个设备的INTSEL发生器开场工作,成为系统控制器。因此,系统中总是具有最低设备号的设备是系统控制器。使用多路复用的中断方式的目的,是为了节省总线信号线的数量。在VICbus中,发出中断恳求的功能模块称为中断器,接收并处理中断恳求的称为中断处理器。
8、当一个设备要中断另一个设备时,它的中断器向总线发出中断恳求信号,被指定监测这个中断恳求的中断处理器可以用各种方法来处理这个中断,例如使用标志flag来产生本地中断,或把VICbus传来的中断矢量转送到本机箱的背板总线上去。中断矢量可以是8位、16位或者32位,它是中断处理器在收到中断恳求后,按IACK型数据,从数据总线上获得的。3VICbus接口模块设计笔者在瑞士CES公司系统部工作期间,参加了用于VMEbus的VICbus接口模块VIC8251的根本软件的开发工作,以下局部对该模块的构造、工作原理、软件设计及存在的问题作一个综合介绍。31VIC8251模块的接口功能VIC8251模块在功能上
9、可以划分为许多子模块,其中与理解接口有关的子模块主要有以下几个:VME主模块,VME从模块、VIC主模块、VIC从模块,VIC内部存放器模块、MMU模块等。图2示意了VIC8251作为主设备机箱接口和作为从设备机箱接口的功能。在用作主设备接口时,VIC8251显一个VME从设备和一个VIC主设备;用作从设备接口时,它是一个VIC从设备和VME主设备。32VLC8251的资源图3为VIC8251存放器空间的地址映射图,其中只标出了我们所关心的几个局部:本模块的VIC主设备控制状态存放器,全系统31个设备的从设备存放器组的地址表和内存管理单元MMU模块所使用的页描绘字PD0PD1区。321本模块的
10、VIC主设备CSR存放器组共使用四个Zilog公司的Z-CIO8536芯片。0号和1号芯片被用作主控制状态存放器,用来设置与VIC主设备子模块有关的各种内容如仲裁、仲裁恳求,失效标志、清零等,并用来读邮箱标志,本地内存镜象内存j状态信息等。2号和3号ZC108536芯片被用作VIC中断控制器,把来自VICbus的中断恳求转换为本地机箱的VME中断恳求。322从设备存放器地址表系统中各个设备机箱的VICbus模块都有一组从设备存放器VICslaveCSR。其中CSR1存放器包含了该VIC接口模块的VIC从设备子模块的控制状态信息诸如联机online,仲裁方式和中断方式选择、播送方式和预取方式设置
11、,长短电缆方式设置选择等。还有联机状态存放器OLR和设备失效状态存放器DFR,它们给出各个设备联机失效状态。存放器RR的每一位用来对系统中一个设备复位。返组VIC从设备子模块CSR存放器。只能通过VICbus来存取,即便是本接口模块的这组存放器,也必须甩VIC主设备子模块经由VICbus来对它们设置或者读状态。在从设备CSR地址表中,映射了整个系统031号设备的从设备CSR存放嚣地址、见图4所示。其中0号设备是用于播送方式设置用。对于VICbus系统中所有设备均为VME机箱的情况,使用播送方式可以一次设置全系统的所有从设备的同一种VIC从设备CSR。323页描绘字PD0PD1存储器管理单元MM
12、U使用PD0PD1来把主设备机箱的VMEbusVSBbus地址源地址转换为从设备机箱的VMEbusVSBus地址目的地址。PD0区为2Kx32b超高速存储器,一个PD0描绘字包含有完成一次VIC周期所需的信息如存取方式、镜象内存位置本地、远端或者全局的等。PD1医为2K32b双口存储器区,一个PD1描绘字的内容包含目的机箱设备号,目的地址的A31A22位,AM码等。PD0PD1的内容是根据需要在初始化时设置好的。主设备机箱的VIC8251接口模块根据从VMEbus传来的源地址换算出页号,然后根据该页号的PD0PD1内容,找到目的从设备机号的设备号,并用目的地址高位A31一A22代替源地址高位,
13、把它和AM码等经由VICbus送到该从设备机箱的VMEbus去。324镜象内存VIC8251的4M字节的本地内存称为镜象内存。它是三口存储器,可以被VICbus,本地的VMEbus和VSBbus所存取。以4K字节为一页,每页均可写保护。镜象内存的概念是当有一个大的数据缓冲区必须被分布在假设干VME机箱中的许多处理机分享时提出的。一个CPU对本地镜象内存写数据,那么这个数据被透明地播送到VICbus系统的所有设备并且同时写入它们各自的镜象内存。一个CPU从镜象内存中读数据,那么只读本地镜象内存。也即,只有写周期是作用于整个系统的。这样就节省了总线带宽。尤其是假如采用同步写协议见21节。更可以进步
14、传输速率,对于100米间隔,可选到10Mbytess写和20Mbytess读的速率。33中断机制实现中断的方法之一是,远端机箱的VME中断恳求转换为与它的设备机箱号相应的VIC中断恳求之后,经VICbus到达本地机箱,本地VIC模块将它变为指定等级的VME中断恳求传到本地VME主设备,该VME主设备对本地VIC模块的VIACK存放器作一次读操作,引发一个中断响应信号经转换后最终成为远端VME的中断响应信号VMEIACK,远端VME再把中断矢量STATUSIC传到本地VME主设备,供它读取。另一个实现中断的方法是,预先在本地的VIC模块的中断控制器中设置好对131号VIC中断恳求的中断矢量值。本
15、地VIC在收到VIC中断恳求后,向本地VME主设备传递了这个中断恳求之后,就把相应矢量值放到本地VMEbus供读取,同时向远端VME传去一个中断响应信号。这种由本地提供中断矢量的方法,显著地缩短了中断响应等待时间。34初始化软件每一个参加到VICbus系统的设备,都必须对本机箱的VIC接口模块作复杂的初始化工作,主要是对前面介绍的存放器空间的各项资源作初始化设置。作初始化工作时,须对以下几个方面作全系统的安排,以防止冲突:设备号的设定。各设备对其它设备的地址映射关系也即对于PD0PD1的设置。各个设备的VIC从设备CSR的设置,既可以由一个设备通常用作系统控制器对全系统各个设备作一次性设置,可
16、以以由每个参加系统的设备自己设置本身的VIC从设备CSR,可以以是上述二种方法的结合。35应用软件设计的考前须知由于系统中存在二种总线仲裁机制因此出现仲裁死锁问题deadlock,见图5当本地机箱中获得VME总线控制权的VME主设备申请VIC总线控制权时VMEcycle,假如同时有其它设备经由VICbus申请对这个机箱VME总线控制权时VICcycle,就导致死锁。当出现死锁时,VIC8251的仲裁死锁电路便中止本地VME主设备的恳求,在VME总线上发出总线错BERR和重试RETRY信号。应用程序应能监测BERR信号和RETRY信号,处理这一死锁,使自己放弃VME总线控制极,让来自VICbus
17、的远端VME主设备控制本地VME总线。直至它使用完毕放弃该VME总线之后,才恢复本地VME主设备对VME总线的控制,进而恳求VICbus控制权。4完毕语作为一种新的总线标准VICbus仍在开展之中,目前限于总线驱动器件的程度,实际上能做到的程度是连接5个相距100米的设备和24个相距5米的设备。VICbus是根据VME机箱互连的需要而开发的,但事实上它是一种通用的机箱间电缆总线。另一方面,它用作其他背板型总线与VMEbus的接口总线,也有很好的前景,这方面的应用正在开拓之中。1VicbusDraftSpecificationVIlISOIEC26.11458.1989align=centerINTERCRATEBUS:VICBUSLiuSongqiang/alignUniversityofScienceandTechnologyofChina,Hgfei230027Abstract:AnIntroductionontheInterCrateBus,ieVICbusISOIEC2611485standard,applicationanddesignofthebusinterfacemoduleKeywords:VICbus,VMEbusTightlycoupledmultiprocessorsystem