|
The design of bus arbitrating logic on multiprocessor systems Abstract: The novel way of multiprocessor system architecture is presented in this paper. Message exchanging, bus arbitrating strategy and specific design procedure are discussed in detail among multiprocessor systems. Finally, a specific circuit of hardware and timing diagrams of message exchanging about the bus arbitrating logic are given. Practical application shows that the bus arbitration logic mentioned above is characteristic of low arbitration overhead, fine scalability and higher reliability. It is fit for various types of monitoring and controlling systems and sophisticated intellectual instrument especially. Key words: Multiprocessor system; Common bus; Common memory; Bus arbitration 摘 要:本文给出了一种多微处理器体系结构,重点讨论了多微处理器间信息交换和仲裁逻辑的实现机制及具体设计步骤,并给出了具体实现的硬件逻辑电路及交换的时序图。实际运行表明:该仲裁逻辑电路具有仲裁开销小、扩缩性好、可靠性高等特点;它完全能满足高性能的测控系统和各种高精度的智能仪器仪表的特殊要求。 关键词:多微处理器系统;公共总线;公共存储器;总线仲裁 1 引言 在目前高性能的测控系统和高精度的智能仪器仪表中,通常采用多个处理器通过共享总线访问公共存储器的体系结构。这种结构的好处是可以把复杂的任务分解为若干子任务后分配给多个微处理器去完成,而各子任务间的交互作用则是通过多微处理器间互连机构的彼此通信来实现,使得整个系统的吞吐率和实时性大为提高,克服了单处理器系统在信息处理能力和系统可靠性方面的严重不足。 多微处理器系统工作的关键是要解决好总线仲裁问题,即任一时刻当多个竞争者争用总线资源时,只能从中选择一个且只能有一个处理器来控制总线,访问共享存储器。总线仲裁逻辑一般可分为集中式仲裁和分布式仲裁两大类;由于分布式仲裁使系统具有很好的扩缩性且当其中一个仲裁部件发生故障时,不影响电路的其他部分,这使得整个系统的可靠性得到进一步的提高,所以在现行的多微处理器系统中,大都采用此种形式的仲裁电路结构。 2 系统硬件配置及总线体系结构 本系统为一综合自动化测控系统,要求测试和控制的数据量大、实时性高,系统不仅要高速采集各模拟量和开关量,还要与PC机通信,所以单微处理器系统已不能满足实时性的要求,因此本系统采用多微处理器系统,系统中微处理器采用MCS-96系列单片机,如图1所示。  本文针对模块级并行结构设计并实现了由六个主模块构成的多主系统:通信CPU模块、交/直流采样CPU模块、开入CPU模块、开出遥控CPU模块、非电量测量CPU模块、诊断/调试CPU模块。各模块与测控对象间既可以由现场I/O总线连接也可以通过扩展板连接,而各模块之间的信息交换是通过公共存储器来进行。 本系统采用美国Intel公司的MultibusⅡ多微机总线,根据MultibusⅡ的工作原理,本文设计了系统并行(System Bus)、系统串行和局部(Local Bus)三套总线;在电气特性及结构上,采用了MultibusⅠ的有关规定,使其符合IEEE796工业标准。系统并行总线(Sbus)数据位宽8/16位,寻址能力64K/1M;其中公共存储器(CRAM)采用统一编址的方法,它与每一获得系统总线控制权的处理器专用存储器形成完整的地址空间。 系统串行总线主要用于诊断、调试;可用作并行总线故障时的告警和备用。局部总线(Lbus)为各模块内部工作总线,可带本模块的扩展板、外设等。Lbus相当于单CPU微机总线,公共存储器(CRAM)挂在Sbus上,这样各模块通过Sbus共享CRAM。 3 系统总线仲裁逻辑设计 多微处理器系统通过公共总线共享存储器必然会引起对系统总线和共享资源的竞争。本系统采用分布式串行优先链仲裁逻辑,即每个微处理器模块上都有一个相同电路的仲裁部件,这样做的好处是当其中一个仲裁部件发生故障时,不影响其他部分,增加了系统的可靠性;下面会看到,由于仲裁电路仅有数个廉价的门电路来构成,因而并没有增加系统的额外开销。 在分布式仲裁结构中,根据各模块在整个系统中的重要性,事先规定好它们的优先级别;当有总线申请时,仲裁机构就把总线控制权交给当前申请者中优先级别最高的微处理器模块。 如图2所示,在本系统中,采用的是固定优先级串联总线优先权控制策略。在这种链式结构中,各微处理器模块上的总线仲裁机构连向一个公共的总线请求线 ,其中任意一个模块提出总线申请都能使 有效(低电平),这一信号也是链首模块(最高优先级)的总线优先权输入信号 ,其输出端 与下一优先级较低的总线仲裁器输入端相连。当链首模块有请求时,在把该模块选定为下一个总线控制者的同时,把其 置成高电平(无效),并向后沿此链传递此信号,使后面模块的总线优先权识别信号都变无效,从而在下一周期中只有一个模块(链首模块)可占用总线;若链首模块没有请求,则向后传递总线优先权识别有效信号,直到选定下一个周期的总线控制者为止。
 确定了各模块在系统中申请占用总线时的优先权次序后,一个模块的总线请求是否能最终赢得总线控制权还必须经各个模块上的总线仲裁逻辑来决定。模块级总线仲裁逻辑的设计应遵循以下三个原则: 1) 无任何模块占用总线,此时某一模块申请使用总线,即可获得使用权。 2) 任一模块正在占用总线,使用共享存储器CRAM,其他任何模块无论优先级多高,提出总线申请均无法获得使用权。 3) 同一时刻有多个模块申请占用总线,优先权高的模块最先获得使用权,优先权低的模块等待。 图3为满足上述要求的模块级总线仲裁逻辑。 在图3中,对链首模块,因优先级最高,其最高优先权输入信号( )不从外部引入,而是直接和公共请求线 相连(如图中虚线所示)。现作以下分析说明。 情形一:如图所示,在无任何模块申请占用总线的情况下, 为无效(高电平),其公共请求信号 无效,总线优先权输入信号 无效,同时总线优先权输出信号 也无效。此时,若某一模块申请占用总线即REQ=1(这通过把该模块CPU的某一口线置为高电平即可,该信号建立后被一直保持到共享存储器访问结束),则 有效;若优先权比其高的模块均无总线申请, 有效,则在总线时钟 的下一个时钟下降沿,取得总线控制权,同时置 无效, 为有效(忙)。
 情形二:若某一模块申请占用总线(REQ=1),而此时有优先权更高的模块在占用总线,则 无效, 有效,这时插入等待状态数,REQ保持有效。 情形三:若某一模块申请占用总线(REQ=1),而此时有一优先权比其低的模块正在占用总线,此时 有效(忙), 有效, 有效,则继续插入等待状态数, 一直保持有效。 对于无 功能引脚的微处理器单片机,不能在自己的时序中插入等待状态,可采用查询方式,即在提出总线申请以后(REQ=1),查询申请是否成功,若成功可访问共享存储器(CRAM),否则继续申请或转向其它过程。无论查询方式还是等待方式,访问完公共存储器后,应即刻撤消申请(置REQ=0),以便其他模块申请使用。 某一模块若通过上述仲裁逻辑取得对总线的控制权,则总线使能信号 有效,用该信号来打开由三态门组成的数据地址总线和读写及ALE信号的隔离驱动电路(总线接口电路),以完成该模块对共享存储器的独立分时操作,这其间该模块对共享存储器的访问和独占存储器的效果一样。该模块在完成对共享存储器的访问后即刻关闭(置REQ=0,无效)。其总线接口电路原理不再赘述。图4给出了系统总线交换的时序图。
 4 结论 本文所述多微处理器系统中总线仲裁逻辑的设计方法具有实现简单、扩缩性能好、仲裁开销小的特点;经实际运行证明性能稳定、效果良好,有一定的普遍性和实用性。采用分布式总线仲裁机制,提高了总线仲裁成功的可靠性,这样即使某个微处理器模块的仲裁器发生故障也不会影响其它模块的仲裁器工作,从而提高了整个系统的可靠性。
本文创新点:本文基于多微处理器系统设计了分布式仲裁逻辑电路,与现行的大多数集中式总线仲裁电路相比较,它的最大不同点在于采用了分布式串行优先链仲裁逻辑;其优点是当其中某一个仲裁部件发生故障时不会影响其他部分,从而使得整个系统的可靠性有了很大的提高。同时在具体实现过程中,仅采用少量的数个廉价门电路即可完成,因而并没有增加系统的额外开销。实际运行进一步表明,整个系统的设计达到了预期的目标。 参考文献: [1] 王勤民,杨少波,贺涛,邢朝华.多CF接口系统的总线设计与实现[J].微计算机信息(旬刊),2005,9(3):256-258. [2] 何云斌,万 静,王培东.基于CPLD的多单片机总线仲裁的设计与实现[J].哈尔滨商业大学学报(自然科学版),2004,20(3):290-293. [3] 刘 峰,葛霁光.共享总线多微处理器系统中分布式仲裁方案的研究及实现[J].浙江大学学报(工学版),2003,37(2):178-184. [4] 黄世亮,李秀琴. 单片机共享存储器的设计[J].山东教育学院学报,2001,84(2):54-55. [5] 刘鲁源,么 莉,王欣东.Intel 8096/8051 单片机的多机互连方案的研究[J].计算机研究与发展,1995,32(2):60-64. 作者简介: 蔡舒平,(1964- ),男(汉族),甘肃秦安人,高级工程师,硕士,长期从事计算机体系结构和分布式微机监控系统的研究和教学工作。 通信地址:江苏省镇江市,江苏大学电气信息工程学院,自动化系。邮编:212013 E-mail: spcai@ujs.edu.cn
|