新聞中心

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

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

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

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

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

  互斥理論基礎(chǔ)

  互斥理論用來研究解決計(jì)算機(jī)操作系統(tǒng)進(jìn)程的并發(fā)與資源的共享的矛盾。并發(fā)性、共享性、不確定性是操作系統(tǒng)的主要特性,因此并發(fā)進(jìn)程之間必須相互制約。一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源,在每個(gè)進(jìn)程中訪問臨界資源的那段程序代碼稱為臨界區(qū)。若能保證諸進(jìn)程互斥地進(jìn)入自已的臨界區(qū),便可實(shí)現(xiàn)它們對臨界資源的互斥訪問。進(jìn)程互斥就是兩個(gè)進(jìn)程不能同時(shí)訪問同一臨界資源的臨界區(qū)的現(xiàn)象。這種制約關(guān)系又可分為直接相互制約和間接相互制約。直接相互制約源于多個(gè)進(jìn)程相互合作完成某一項(xiàng)任務(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)。

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

  邏輯電路互斥分析

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

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

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

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

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

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

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

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

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



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

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

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

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



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

評論


相關(guān)推薦

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

關(guān)閉