新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 具有硬件互斥的控制电路设计方法

具有硬件互斥的控制电路设计方法

——
作者:胡勇坚 赵国毅时间:2007-07-19来源:电子技术收藏

  在控制系统设计时,硬件互斥现象是很常见的,互斥电路功能可用硬件实现,也可以用系统加软件实现。用硬件电路来实现指定的控制功能比用软件来实现稳定性好,处理速度更快得多。随着大规模集成电路技术发展,用硬件来处理特定的功能的发展趋势日趋明显,随着SOPC技术的发展,软体的硬化已日益成为人们研究的热点,专用功能的ASIC芯片越来越多。在进行计算机操作系统设计时,互斥理论用来处理并发过程对临界资源的共享;在进行控制系统设计时,电路的不同逻辑状态也常有互斥现象。如多个输入信号共享一个处理电路而输入信号同时作用于电路或多个信号同时互斥作用执行机构。同样控制系统内的互斥同步也可以用硬件来实现,研究其互斥同步的硬件实现的理论和方法,则有追求高稳定性、高处理速度的重要意义。硬件实现互斥同步速度快,稳定性高,不必浪费CPU的指令周期,但另一方面硬件实现功能固定,升级不方便,功能的软体化与软体的硬化是互相矛盾的两个相对的方向。采用何种方法取决于被控对象和控制功能,控制功能专一,变化不频繁,控制对象要求稳定性高则用硬件实现;控制功能易变,被控对象复杂,则用软件实现。自1962年T.Dekker提出多处理器互斥问题以来,经Edsger Dijkslra,Donald Knuth,Leslie Lamport,Gray Peterson等人的研究,已形成系统的理论,而互斥同步的硬件实现虽然业界早已有自觉或不自觉的实践,但尚为形成理论化的成果。硬件互斥理论及其设计方法是数学理论,控制理论,算法的综合,它的发展依赖于业界及学界大量的实践及研究。

互斥理论基础

  互斥理论用来研究解决计算机操作系统进程的并发与资源的共享的矛盾。并发性、共享性、不确定性是操作系统的主要特性,因此并发进程之间必须相互制约。一次仅允许一个进程使用的资源称为临界资源,在每个进程中访问临界资源的那段程序代码称为临界区。若能保证诸进程互斥地进入自已的临界区,便可实现它们对临界资源的互斥访问。进程互斥就是两个进程不能同时访问同一临界资源的临界区的现象。这种制约关系又可分为直接相互制约和间接相互制约。直接相互制约源于多个进程相互合作完成某一项任务,一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程的执行速度的过程称为并发进程的直接制约。直接制约的并发进程相互合作的制约关系称为同步关系。间接相互制约源于资源共享,由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约。这种制约关系称为互斥(MutualExclusion)。

  为了实现进程互斥的同步,操作系统的进程同步机制必须遵循如下准则:空闲让进,忙则等待,有限等待,让权等待。互斥同步的本质就是合理地为互斥进程分配临界资源。在软件领域内,实现互斥编程的算法有银行家算法,生产者-消费者算法等,而在硬件设计中,软件的方法可以借鉴和参考。需要对硬件互斥象进行分析和转换,进行一些抽象化和具体化的过程。

逻辑电路互斥分析

  逻辑电路的互斥分为两种情况。其一:电路的多个输入信号同时作用于则会引起输出的混乱或误动作,另一方面,一个产品具有多种功能,而这些功能不能在同一时刻在该产品实现,这种互斥现象本文定义为输入互斥(Input-Mutual-Exclusion),亦即多个输入信号对其临界处理电路的互斥共享。如键盘编码、多线组合逻编码器、CPU的数据总线、内存读写控制线路。前两者属于组合逻辑电路的互斥,后两者属于时序逻辑电路的互斥。其二:电路的多个输出部件作用于同一资源会引起系统的误动作或烧毁系统设备。这种互斥现象本文定义为输出互斥(Output-Mutual-ExcIusion),亦即多个输出信号对其临界的执行机构的互斥共享。如多个控制电路作用于同一执行机构的控制系统,又如前述的CPU的数据总线控制电路、内存读写控制线路从控制电路的输出端看亦可归入此类。输人互斥和输出互斥本质上是无区别的,只是针对不同的电路部分而言,对于接收输入信号的控制部分被共享则是输入互斥,控制部分输出多个信号共享系统外的临界资源则是输出互斥,这种划分是基于系统的控制部分而言的。硬件系统互斥抽象地是信号(调用信号、请求信号)与临界资源(信号处理电路、执行机构等)的互斥共享。因此,将共享访问或使用临界资源的互斥信号定义为硬件互斥系统的顾客;一个被共享使用且具有一定功能的临界资源体为服务者(executive-waiter);将信号与临界资源的各种组合名为状态(state)。

互斥电路同步的设计方法

  对于互斥电路同步的设计,需要对硬件互斥象进行分析和转换,进行一些抽象化和具体化的过程。抽象化和具体化是逻辑思维的两个相反过程,是人类进行理性思维与科学研究的一般模式。抽象化是通过分析和综合,建立起普遍适合于被研究对象的一般模型,并建立模型的普遍算法;具体化是从已建立的抽象模型出发,用之指导研究具体的对象,完成具体的认识和进行具体实践。在硬件系统的互斥同步设计的同时,从具体到抽象的过程为:分析所要设计的系统的功能,指出哪些信号为顾客,那些资源为服务者,确定互斥体为何物,何为信号量,并划分互斥过程为先后相继的序列状态;用已有的软件互斥理论的模型来分析硬件互斥问题,并设计出其互斥进程同步程序的伪代码,如此建立起其软件互斥的模型和算法,即完成了从具体到抽象的思维过程。设计的具体化过程则如此:将互斥状态转为逻辑状态,将互斥进程的请求转化为互斥的逻辑信号,将互斥体具体化为某个元件或某个电路部分电路的信号(Mutex),在Mutex作用下,各个互斥信号可实现互斥同步,若互斥过程有时间的分配,则Mutex与延时电路合一。信号量由传感器产生或由延时电路产生,它控制Mutex的翻转,将互斥进程同步过程具体化为系统硬件的逻辑动作,这一过程既要进行逻辑思维,也要进行创造性的想象。不同的互斥现象的硬件实现的设计有所差别。 对于输入互斥电路,在同步的实现方法上,分析其互斥关系,组合关系的互斥无时序限制,其状态的转换以输入为条件,可以用组合逻辑电路实现,通过规定输入信号的优先级别和逻辑功能的真值表,按优先级别分配临界资源,然后用卡诺图来设计其实现电路。如优先编码器,对输出同为0的两种输入状态选用其中一个由各输入信号组合输出信号作为输出使能信号实现互斥同步。然而,多数互斥具有时序关系,其状态的转换与时间有关,必须通过时序电路来实现,通过增加时钟信号、使能信号、片选信号或其他指令信号作为输入信号,实现临界资源的加锁-解锁,使之协调各级与门或三态门的动作,实现互斥同步:对于CPU的内部数据总线通过软件的指令来完成,对于内存单元,互斥通过读与控制线和地址总线来实现。

  输出互斥类似于操作系统进程的间接互斥,发生在控制部件之外,输出信号之间具有互为条件的逻辑关系,如机床的联动控制,即一个状态是另一个状态使用临界资源的条件,有时条件还有优先次序。对于输出互斥可设立一个控制部件,产生符合逻辑功能的具有互斥状态的互斥信号或互斥函数,类似于操作系统的互斥变量(Mutex),用以控制输入信号的作用状态或作用时间。这一互斥变量可以是一个延时部件的控制信号,也可以是一个组合逻辑部件的控制信号如触发器组件或具有CPU的智能部件的输出信号。

  对于具有复杂的状态转换关系的互斥系统的设计,可以使用Petri Net和有限状态机FSM来分析。两者都是软件工程里的图形工具方法,也可以用来为解决互斥状态建模。有限状态机已为人所熟知,而Petri Net对于硬件工程帅也许比较陌生。PetriNet图包含四个元素:Place,Transition,Arc和Token。Place是一种状态,中文意译为"所",一般用圆圈表示。Transition是一个状态向另一状态转移的过程,用矩形框表示,中文意译为"迁移"。Arc丰要是连接Place及Transition的一个有方向的线段,可以从Place指向Transition或从Transition指向Place,但Place与Place或Transition与Transition之间不能有Arc相连,因为它的状态不能直接变成另一个状态,中间一定要经过一个过程,而过程与过程之间也会存在着一种状态。Token指的就是一个物件或条件,可以代表任何东西,中文意译为"令牌",用实心圆点表示。每个Place或Transition中可以有零个或多个Token,当Token足够時才能由一个状态变成另一个状态。除了以上四个元素之外,在进阶的Petri Net中,还会给每个Token不同的颜色及属性,还会再加上时间及阶层架构。PetriNet用来分析复杂的,动态的硬件互斥是非常有效的工具。有限状态机适则合于用来分析静态的硬件互斥。

输出互斥同步的实现实例

  以通信机房电源自动交替方案来说明。功能要求:当主电源(市电)有电时,备用电源不得接通,当主电源无电时,备用电源自动接通,主电源停电后来电时先断开备用电源,再接通主电源。这个问题是输出互斥问题,可以用有限状态机FSM分析。

  当主电源(main power)有电时,记为MP(1),无电时,记为MP(0),当备用电源(backuppower)有电时,记为BP(1),无电时,记为BP(0),则其逻辑功能如表1所列。

  从上表可知,主电源是否有电的状态MP可作为互斥变量,可用一个中间继电器JZ,其线胞接在丰电源上,用它来控制J1和J2的开合,从而控制主电源与备用电源的自动交替,J1接常闭触点,MP1时断开,MP0时闭合,J2、J3接常开触点,在性能上J1的动作速度要比J2快。其实现方案如图1所示。在此MP是互斥变量,MP控制着JZ的动作,JZ是瓦斥同步的执行机构。

 

 

 

输入互斥同步的实现实例

  要设计一个能进行加法运算和减法运算的电路,就需要对输入信号:返算输人变量实现互斥,可设立一个互斥变最用来控制电路的运算功能。根据异或逻辑的规律:L=X1⊕X2,当X1=0时,L=X2的原码,当X1=1时,L=X2的反码,因此欲用一个电路求加法和减法D=A

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭