具有硬件互斥的控制電路設計方法
在控制系統設計時,硬件互斥現象是很常見的,互斥電路功能可用硬件實現,也可以用系統加軟件實現。用硬件電路來實現指定的控制功能比用軟件來實現穩定性好,處理速度更快得多。隨著大規模集成電路技術發展,用硬件來處理特定的功能的發展趨勢日趨明顯,隨著SOPC技術的發展,軟體的硬化已日益成為人們研究的熱點,專用功能的ASIC芯片越來越多。在進行計算機操作系統設計時,互斥理論用來處理并發過程對臨界資源的共享;在進行控制系統設計時,電路的不同邏輯狀態也常有互斥現象。如多個輸入信號共享一個處理電路而輸入信號同時作用于電路或多個信號同時互斥作用執行機構。同樣控制系統內的互斥同步也可以用硬件來實現,研究其互斥同步的硬件實現的理論和方法,則有追求高穩定性、高處理速度的重要意義。硬件實現互斥同步速度快,穩定性高,不必浪費CPU的指令周期,但另一方面硬件實現功能固定,升級不方便,功能的軟體化與軟體的硬化是互相矛盾的兩個相對的方向。采用何種方法取決于被控對象和控制功能,控制功能專一,變化不頻繁,控制對象要求穩定性高則用硬件實現;控制功能易變,被控對象復雜,則用軟件實現。自1962年T.Dekker提出多處理器互斥問題以來,經Edsger Dijkslra,Donald Knuth,Leslie Lamport,Gray Peterson等人的研究,已形成系統的理論,而互斥同步的硬件實現雖然業界早已有自覺或不自覺的實踐,但尚為形成理論化的成果。硬件互斥理論及其設計方法是數學理論,控制理論,算法的綜合,它的發展依賴于業界及學界大量的實踐及研究。
本文引用地址:http://www.j9360.com/article/78416.htm互斥理論基礎
互斥理論用來研究解決計算機操作系統進程的并發與資源的共享的矛盾。并發性、共享性、不確定性是操作系統的主要特性,因此并發進程之間必須相互制約。一次僅允許一個進程使用的資源稱為臨界資源,在每個進程中訪問臨界資源的那段程序代碼稱為臨界區。若能保證諸進程互斥地進入自已的臨界區,便可實現它們對臨界資源的互斥訪問。進程互斥就是兩個進程不能同時訪問同一臨界資源的臨界區的現象。這種制約關系又可分為直接相互制約和間接相互制約。直接相互制約源于多個進程相互合作完成某一項任務,一組在異步環境下的并發進程,各自的執行結果互為對方的執行條件,從而限制各進程的執行速度的過程稱為并發進程的直接制約。直接制約的并發進程相互合作的制約關系稱為同步關系。間接相互制約源于資源共享,由于共享某一公有資源而引起的在臨界區內不允許并發進程交叉執行的現象,稱為由共享公有資源而造成的對并發進程執行速度的間接制約。這種制約關系稱為互斥(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±B,可設互斥變量Mutex與操作數B異或,Mutex=1,B為反碼,進行減法運算,Mutex=0,B為原碼,進行加法運算。A-B=A+B補-2n=A+B反+1-2n=D補。進行減法運算求得的是結果的補碼,D補再求一次補碼就的原碼,D補=D反+1,當借位信號V=1時,運算結果求補得原碼輸出,借位信號V=0與Mutex=0 時,運算結果輸出為原碼。實現電路如圖2所示,Mutex信號、各級異或門及連接的與門實現各輸入變量及其中間結果的互斥同步。在此,互斥變量是人為設立的,互斥機構實現加法、減法對同一運算電路的共享。
數字控制電路及其他控制電路除了進行組合邏輯設計及時序邏輯設計之外,有時還要考慮互斥的設計實現,單個臨界資源的硬件互斥設計可以設立互斥機構來產生互斥變量或互斥函數米實現瓦斥同步,對于多個臨界資源的交叉互斥的互斥同步的硬件實現可通過一定算法進行邏輯設計,互斥的實現算法可以利用邏輯代數算法、軟件的互斥算法,數字信號處理的相關算法,神經網絡的算法,算法的采用視控制功能的復雜程度而定。對于復雜的智能控制系統可綜合利用軟件和硬件的方法。對單一臨界資源的共享或多信號對多個臨界資源共享都存在以下規律:
互斥電路一定存在或可設立一個互斥變量,它通過互斥函數控制著互斥同步的執行機構的動作。互斥函數的輸出狀態對應著信號對臨界資源的共享狀態,共享狀態的個數等于互斥變量的數目乘以臨界資源的數目。互斥函數的算法確定,其實現電路也因之而確定。
評論