新聞中心

EEPW首頁 > EDA/PCB > 學(xué)習(xí)方法與實踐 > 具有硬件互斥的控制電路設(shè)計方法

具有硬件互斥的控制電路設(shè)計方法

作者:胡勇堅 趙國毅 時間:2008-01-31 來源:《電子技術(shù)》 收藏

  在控制系統(tǒng)設(shè)計時,硬件互斥現(xiàn)象是很常見的,互斥電路功能可用硬件實現(xiàn),也可以用系統(tǒng)加軟件實現(xiàn)。用硬件電路來實現(xiàn)指定的控制功能比用軟件來實現(xiàn)穩(wěn)定性好,處理速度更快得多。隨著大規(guī)模集成電路技術(shù)發(fā)展,用硬件來處理特定的功能的發(fā)展趨勢日趨明顯,隨著SOPC技術(shù)的發(fā)展,軟體的硬化已日益成為人們研究的熱點,專用功能的ASIC芯片越來越多。在進(jìn)行計算機操作系統(tǒng)設(shè)計時,互斥理論用來處理并發(fā)過程對臨界資源的共享;在進(jìn)行控制系統(tǒng)設(shè)計時,電路的不同邏輯狀態(tài)也常有互斥現(xiàn)象。如多個輸入信號共享一個處理電路而輸入信號同時作用于電路或多個信號同時互斥作用執(zhí)行機構(gòu)。同樣控制系統(tǒng)內(nèi)的互斥同步也可以用硬件來實現(xiàn),研究其互斥同步的硬件實現(xiàn)的理論和方法,則有追求高穩(wěn)定性、高處理速度的重要意義。硬件實現(xiàn)互斥同步速度快,穩(wěn)定性高,不必浪費CPU的指令周期,但另一方面硬件實現(xiàn)功能固定,升級不方便,功能的軟體化與軟體的硬化是互相矛盾的兩個相對的方向。采用何種方法取決于被控對象和控制功能,控制功能專一,變化不頻繁,控制對象要求穩(wěn)定性高則用硬件實現(xiàn);控制功能易變,被控對象復(fù)雜,則用軟件實現(xiàn)。自1962年T.Dekker提出多處理器互斥問題以來,經(jīng)Edsger Dijkslra,Donald Knuth,Leslie Lamport,Gray Peterson等人的研究,已形成系統(tǒng)的理論,而互斥同步的硬件實現(xiàn)雖然業(yè)界早已有自覺或不自覺的實踐,但尚為形成理論化的成果。硬件互斥理論及其設(shè)計方法是數(shù)學(xué)理論,控制理論,算法的綜合,它的發(fā)展依賴于業(yè)界及學(xué)界大量的實踐及研究。

本文引用地址:http://m.butianyuan.cn/article/78416.htm

  互斥理論基礎(chǔ)

  互斥理論用來研究解決計算機操作系統(tǒng)進(jìn)程的并發(fā)與資源的共享的矛盾。并發(fā)性、共享性、不確定性是操作系統(tǒng)的主要特性,因此并發(fā)進(jìn)程之間必須相互制約。一次僅允許一個進(jìn)程使用的資源稱為臨界資源,在每個進(jìn)程中訪問臨界資源的那段程序代碼稱為臨界區(qū)。若能保證諸進(jìn)程互斥地進(jìn)入自已的臨界區(qū),便可實現(xiàn)它們對臨界資源的互斥訪問。進(jìn)程互斥就是兩個進(jìn)程不能同時訪問同一臨界資源的臨界區(qū)的現(xiàn)象。這種制約關(guān)系又可分為直接相互制約和間接相互制約。直接相互制約源于多個進(jìn)程相互合作完成某一項任務(wù),一組在異步環(huán)境下的并發(fā)進(jìn)程,各自的執(zhí)行結(jié)果互為對方的執(zhí)行條件,從而限制各進(jìn)程的執(zhí)行速度的過程稱為并發(fā)進(jìn)程的直接制約。直接制約的并發(fā)進(jìn)程相互合作的制約關(guān)系稱為同步關(guān)系。間接相互制約源于資源共享,由于共享某一公有資源而引起的在臨界區(qū)內(nèi)不允許并發(fā)進(jìn)程交叉執(zhí)行的現(xiàn)象,稱為由共享公有資源而造成的對并發(fā)進(jìn)程執(zhí)行速度的間接制約。這種制約關(guān)系稱為互斥(MutualExclusion)。

  為了實現(xiàn)進(jìn)程互斥的同步,操作系統(tǒng)的進(jìn)程同步機制必須遵循如下準(zhǔn)則:空閑讓進(jìn),忙則等待,有限等待,讓權(quán)等待?;コ馔降谋举|(zhì)就是合理地為互斥進(jìn)程分配臨界資源。在軟件領(lǐng)域內(nèi),實現(xiàn)互斥編程的算法有銀行家算法,生產(chǎn)者-消費者算法等,而在硬件設(shè)計中,軟件的方法可以借鑒和參考。需要對硬件互斥象進(jìn)行分析和轉(zhuǎn)換,進(jìn)行一些抽象化和具體化的過程。

  邏輯電路互斥分析

  邏輯電路的互斥分為兩種情況。其一:電路的多個輸入信號同時作用于則會引起輸出的混亂或誤動作,另一方面,一個產(chǎn)品具有多種功能,而這些功能不能在同一時刻在該產(chǎn)品實現(xiàn),這種互斥現(xiàn)象本文定義為輸入互斥(Input-Mutual-Exclusion),亦即多個輸入信號對其臨界處理電路的互斥共享。如鍵盤編碼、多線組合邏編碼器、CPU的數(shù)據(jù)總線、內(nèi)存讀寫控制線路。前兩者屬于組合邏輯電路的互斥,后兩者屬于時序邏輯電路的互斥。其二:電路的多個輸出部件作用于同一資源會引起系統(tǒng)的誤動作或燒毀系統(tǒng)設(shè)備。這種互斥現(xiàn)象本文定義為輸出互斥(Output-Mutual- ExcIusion),亦即多個輸出信號對其臨界的執(zhí)行機構(gòu)的互斥共享。如多個控制電路作用于同一執(zhí)行機構(gòu)的控制系統(tǒng),又如前述的CPU的數(shù)據(jù)總線控制電路、內(nèi)存讀寫控制線路從控制電路的輸出端看亦可歸入此類。輸人互斥和輸出互斥本質(zhì)上是無區(qū)別的,只是針對不同的電路部分而言,對于接收輸入信號的控制部分被共享則是輸入互斥,控制部分輸出多個信號共享系統(tǒng)外的臨界資源則是輸出互斥,這種劃分是基于系統(tǒng)的控制部分而言的。硬件系統(tǒng)互斥抽象地是信號(調(diào)用信號、請求信號)與臨界資源(信號處理電路、執(zhí)行機構(gòu)等)的互斥共享。因此,將共享訪問或使用臨界資源的互斥信號定義為硬件互斥系統(tǒng)的顧客;一個被共享使用且具有一定功能的臨界資源體為服務(wù)者(executive-waiter);將信號與臨界資源的各種組合名為狀態(tài)(state)。

  互斥電路同步的設(shè)計方法

  對于互斥電路同步的設(shè)計,需要對硬件互斥象進(jìn)行分析和轉(zhuǎn)換,進(jìn)行一些抽象化和具體化的過程。抽象化和具體化是邏輯思維的兩個相反過程,是人類進(jìn)行理性思維與科學(xué)研究的一般模式。抽象化是通過分析和綜合,建立起普遍適合于被研究對象的一般模型,并建立模型的普遍算法;具體化是從已建立的抽象模型出發(fā),用之指導(dǎo)研究具體的對象,完成具體的認(rèn)識和進(jìn)行具體實踐。在硬件系統(tǒng)的互斥同步設(shè)計的同時,從具體到抽象的過程為:分析所要設(shè)計的系統(tǒng)的功能,指出哪些信號為顧客,那些資源為服務(wù)者,確定互斥體為何物,何為信號量,并劃分互斥過程為先后相繼的序列狀態(tài);用已有的軟件互斥理論的模型來分析硬件互斥問題,并設(shè)計出其互斥進(jìn)程同步程序的偽代碼,如此建立起其軟件互斥的模型和算法,即完成了從具體到抽象的思維過程。設(shè)計的具體化過程則如此:將互斥狀態(tài)轉(zhuǎn)為邏輯狀態(tài),將互斥進(jìn)程的請求轉(zhuǎn)化為互斥的邏輯信號,將互斥體具體化為某個元件或某個電路部分電路的信號(Mutex),在Mutex作用下,各個互斥信號可實現(xiàn)互斥同步,若互斥過程有時間的分配,則Mutex與延時電路合一。信號量由傳感器產(chǎn)生或由延時電路產(chǎn)生,它控制Mutex的翻轉(zhuǎn),將互斥進(jìn)程同步過程具體化為系統(tǒng)硬件的邏輯動作,這一過程既要進(jìn)行邏輯思維,也要進(jìn)行創(chuàng)造性的想象。不同的互斥現(xiàn)象的硬件實現(xiàn)的設(shè)計有所差別。對于輸入互斥電路,在同步的實現(xiàn)方法上,分析其互斥關(guān)系,組合關(guān)系的互斥無時序限制,其狀態(tài)的轉(zhuǎn)換以輸入為條件,可以用組合邏輯電路實現(xiàn),通過規(guī)定輸入信號的優(yōu)先級別和邏輯功能的真值表,按優(yōu)先級別分配臨界資源,然后用卡諾圖來設(shè)計其實現(xiàn)電路。如優(yōu)先編碼器,對輸出同為0的兩種輸入狀態(tài)選用其中一個由各輸入信號組合輸出信號作為輸出使能信號實現(xiàn)互斥同步。然而,多數(shù)互斥具有時序關(guān)系,其狀態(tài)的轉(zhuǎn)換與時間有關(guān),必須通過時序電路來實現(xiàn),通過增加時鐘信號、使能信號、片選信號或其他指令信號作為輸入信號,實現(xiàn)臨界資源的加鎖-解鎖,使之協(xié)調(diào)各級與門或三態(tài)門的動作,實現(xiàn)互斥同步:對于CPU的內(nèi)部數(shù)據(jù)總線通過軟件的指令來完成,對于內(nèi)存單元,互斥通過讀與控制線和地址總線來實現(xiàn)。

  輸出互斥類似于操作系統(tǒng)進(jìn)程的間接互斥,發(fā)生在控制部件之外,輸出信號之間具有互為條件的邏輯關(guān)系,如機床的聯(lián)動控制,即一個狀態(tài)是另一個狀態(tài)使用臨界資源的條件,有時條件還有優(yōu)先次序。對于輸出互斥可設(shè)立一個控制部件,產(chǎn)生符合邏輯功能的具有互斥狀態(tài)的互斥信號或互斥函數(shù),類似于操作系統(tǒng)的互斥變量 (Mutex),用以控制輸入信號的作用狀態(tài)或作用時間。這一互斥變量可以是一個延時部件的控制信號,也可以是一個組合邏輯部件的控制信號如觸發(fā)器組件或具有CPU的智能部件的輸出信號。

  對于具有復(fù)雜的狀態(tài)轉(zhuǎn)換關(guān)系的互斥系統(tǒng)的設(shè)計,可以使用Petri Net和有限狀態(tài)機FSM來分析。兩者都是軟件工程里的圖形工具方法,也可以用來為解決互斥狀態(tài)建模。有限狀態(tài)機已為人所熟知,而Petri Net對于硬件工程帥也許比較陌生。PetriNet圖包含四個元素:Place,Transition,Arc和Token。Place是一種狀態(tài),中文意譯為"所",一般用圓圈表示。Transition是一個狀態(tài)向另一狀態(tài)轉(zhuǎn)移的過程,用矩形框表示,中文意譯為"遷移"。Arc豐要是連接Place 及Transition的一個有方向的線段,可以從Place指向Transition或從Transition指向Place,但Place與 Place或Transition與Transition之間不能有Arc相連,因為它的狀態(tài)不能直接變成另一個狀態(tài),中間一定要經(jīng)過一個過程,而過程與過程之間也會存在著一種狀態(tài)。Token指的就是一個物件或條件,可以代表任何東西,中文意譯為"令牌",用實心圓點表示。每個Place或 Transition中可以有零個或多個Token,當(dāng)Token足夠時才能由一個狀態(tài)變成另一個狀態(tài)。除了以上四個元素之外,在進(jìn)階的Petri Net中,還會給每個Token不同的顏色及屬性,還會再加上時間及階層架構(gòu)。PetriNet用來分析復(fù)雜的,動態(tài)的硬件互斥是非常有效的工具。有限狀態(tài)機適則合于用來分析靜態(tài)的硬件互斥。

  輸出互斥同步的實現(xiàn)實例

  以通信機房電源自動交替方案來說明。功能要求:當(dāng)主電源(市電)有電時,備用電源不得接通,當(dāng)主電源無電時,備用電源自動接通,主電源停電后來電時先斷開備用電源,再接通主電源。這個問題是輸出互斥問題,可以用有限狀態(tài)機FSM分析。

  當(dāng)主電源(main power)有電時,記為MP(1),無電時,記為MP(0),當(dāng)備用電源(backuppower)有電時,記為BP(1),無電時,記為BP(0),則其邏輯功能如表1所列。

  從上表可知,主電源是否有電的狀態(tài)MP可作為互斥變量,可用一個中間繼電器JZ,其線胞接在豐電源上,用它來控制J1和J2的開合,從而控制主電源與備用電源的自動交替,J1接常閉觸點,MP1時斷開,MP0時閉合,J2、J3接常開觸點,在性能上J1的動作速度要比J2快。其實現(xiàn)方案如圖1所示。在此MP是互斥變量,MP控制著JZ的動作,JZ是瓦斥同步的執(zhí)行機構(gòu)。



  輸入互斥同步的實現(xiàn)實例

  要設(shè)計一個能進(jìn)行加法運算和減法運算的電路,就需要對輸入信號:返算輸人變量實現(xiàn)互斥,可設(shè)立一個互斥變最用來控制電路的運算功能。根據(jù)異或邏輯的規(guī)律: L=X1⊕X2,當(dāng)X1=0時,L=X2的原碼,當(dāng)X1=1時,L=X2的反碼,因此欲用一個電路求加法和減法D=A±B,可設(shè)互斥變量Mutex與操作數(shù)B異或,Mutex=1,B為反碼,進(jìn)行減法運算,Mutex=0,B為原碼,進(jìn)行加法運算。A-B=A+B補-2n=A+B反+1-2n=D補。進(jìn)行減法運算求得的是結(jié)果的補碼,D補再求一次補碼就的原碼,D補=D反+1,當(dāng)借位信號V=1時,運算結(jié)果求補得原碼輸出,借位信號V=0與Mutex=0 時,運算結(jié)果輸出為原碼。實現(xiàn)電路如圖2所示,Mutex信號、各級異或門及連接的與門實現(xiàn)各輸入變量及其中間結(jié)果的互斥同步。在此,互斥變量是人為設(shè)立的,互斥機構(gòu)實現(xiàn)加法、減法對同一運算電路的共享。

  數(shù)字控制電路及其他控制電路除了進(jìn)行組合邏輯設(shè)計及時序邏輯設(shè)計之外,有時還要考慮互斥的設(shè)計實現(xiàn),單個臨界資源的硬件互斥設(shè)計可以設(shè)立互斥機構(gòu)來產(chǎn)生互斥變量或互斥函數(shù)米實現(xiàn)瓦斥同步,對于多個臨界資源的交叉互斥的互斥同步的硬件實現(xiàn)可通過一定算法進(jìn)行邏輯設(shè)計,互斥的實現(xiàn)算法可以利用邏輯代數(shù)算法、軟件的互斥算法,數(shù)字信號處理的相關(guān)算法,神經(jīng)網(wǎng)絡(luò)的算法,算法的采用視控制功能的復(fù)雜程度而定。對于復(fù)雜的智能控制系統(tǒng)可綜合利用軟件和硬件的方法。對單一臨界資源的共享或多信號對多個臨界資源共享都存在以下規(guī)律:

  互斥電路一定存在或可設(shè)立一個互斥變量,它通過互斥函數(shù)控制著互斥同步的執(zhí)行機構(gòu)的動作。互斥函數(shù)的輸出狀態(tài)對應(yīng)著信號對臨界資源的共享狀態(tài),共享狀態(tài)的個數(shù)等于互斥變量的數(shù)目乘以臨界資源的數(shù)目?;コ夂瘮?shù)的算法確定,其實現(xiàn)電路也因之而確定。



關(guān)鍵詞: 控制電路

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉