我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD新聞

實時操作系統——因為新技術而不同

時間:2011-02-26 19:31:00 來源:

幾年前,為實時應用構建一個數字控制系統還是比較容易的。你可以先選定一款自己最熟悉的實時操作系統(RTOS)和一款微控制器。這款微控制器必須支持你采用的RTOS,此外在價格、性能、輸入/輸出特性和儲存能力方面也能夠滿足應用要求。然后,你就可以編寫應用軟件了。軟件要能夠利用到RTOS的特性,從而保證你的控制器可以在指定的時刻完成指定的工作。  

    實時操作系統的基本使命是處理中斷。當一個中斷出現,RTOS必須先把當前程序的相關數據保存好,
然后切換到一個獨立的中斷服務流程來處理這個中斷事件。處理完中斷事件之后,RTOS
先恢復先前儲存的數據,再繼續運行先前的程序。

  如今,構建這樣一個數字控制系統已經不那么容易了。從某種意義上說,多核微控制器和軟件虛擬化技術的問世,使得嵌入式系統設計師與運動控制工程師的工作更加復雜了。然而在許多方面,這些技術又為他們的工作帶來了便利。要弄明白這個看似矛盾的說法,你需要掌握一些RTOS、多核和軟件虛擬化技術的基礎知識。下面,讓我們從RTOS基本技

 
術談起。
 

  讓實時性深入每一刻

  維基百科中寫道: “實時操作系統(RTOS;通常被讀作‘阿-陶思’)是一種專為實時應用而設計的多任務操作系統。RTOS為實時系統設計提供了便利,但它并不能夠保證最終的結果是實時的;要做到這一點還需要正確開發相應的軟件。RTOS的價值并不體現在數據處理能力方面,而是主要在于對特定事件的響應速度與預見性方面。因此最小中斷響應延遲和最小線程切換延遲是衡量一款RTOS的重要參數。”

  RTOS具備了在多任務環境下對任務關鍵性進行編排的能力。在單任務系統中,由于不會出現多個任務同時競爭計算資源的情況,每個任務都是實時運行的。這種情況下,當任何一個事件發生并對CPU發出請求時,CPU就會立刻對它作出響應。這是因為CPU在同一時刻不會執行其他操作,也不會被其他事件所阻礙。

  在多任務環境下,CPU需要在多個任務之間進行切換,這時,實時性的價值才能得到體現。當一個事件出現并對CPU發出請求時,CPU很可能正忙于處理其他事件,因而不能立即對該請求做出響應。它必須以某種方式把正在處理的任務擱置起來,便于CPU在處理完中斷事件之后重新回到之前的任務上,然后,CPU才會響應中斷事件。最后,它必須在處理完中斷事件后重新回到之前的任務線程上。

  一款工業級實時操作系統的使命就是處理中斷標志事件。中斷是由外部電路發出的信號。外部電路把CPU的中斷管腳拉到高電平(對絕大多數CPU是這樣的)并長期保持該信號,直到CPU識別出該中斷信號。CPU一般會在一段確定的時間內對中斷信號做出響應,這是強制規定的。

  虛擬世界

  操作系統(OS)作為一種軟件,最根本的任務是對位組合進行操作。對于軟件而言,硬件只是一連串代表它們在地址空間內位置的位組合以及臨時與這些位置有關的數據字。

  虛擬化技術正是依賴于這樣一個事實:軟件不知道也不必去關心這些位組合的來龍去脈,它只需要在位組合出現時對其進行處理。

  假設你擁有一臺運行速度飛快的計算機,但是你需要的卻是兩臺對速度要求不高的計算機。也許你想在其中一臺上運行Microsift的Vista操作系統(當然你缺少這臺電腦),而在另一臺上運行WindRiver的VxWorks RTOS。Vista 可以提供人機界面(HMI)并且能夠通過因特網自動把數據上傳到位于巴基斯坦的服務器里,與此同時VxWorks會對流程進行實時控制。
  
  管理程序的地位介于硬件與操作系統實例之間。它對操作系統進行劃分,
以虛擬形式把不同硬件分別呈現給不同的操作系統。

  你可以應用軟件虛擬化技術“克隆”你所擁有的這個高速處理器,并把它分身為兩個相同的虛擬處理器。當然,這兩個虛擬處理器的運行速度會減慢。其中一個處理器可以運行Vista,另一個運行VxWorks。

  用來實現上述技術的虛擬化軟件被稱為“管理程序”。管理程序在計算機結構中的位置介于硬件與各個操作系統實例之間。從硬件層面看,管理程序永遠只是一個普通的操作系統。從操作系統層面看,管理程序就像是一種硬件。

  管理程序有三大功能:

  ■  它為各種OS提供了訪問硬件的途徑。這些硬件包括處理器、內存以及輸入/輸出接口。它能確保相互不兼容的操作系統在一起融洽地工作。管理程序在設計上滿足實時操作性要求。也就是說,為了維持RTOS的決策,管理軟件會對所有硬件資源進行分配。

  ■  它提供了不同OS之間的隔離機制,包括數據和系統

安全。這樣的話,如果一名黑客入侵了位于巴基斯坦的服務器,那么他應該可以通過因特網看到你Vista系統上運行的人機界面。但是他不可能接觸到你運行在RTOS上的控制系統,即便兩個操作系統共用同一個處理器也不可能。

 

  ■  它提供了OS之間安全的數據共享機制。

  想要真正理解虛擬化,那么你必須記住下面這個關鍵詞——“實例”,同一款OS可能擁有多個實例。例如,你可以建立多個RTOS實例,每個實例服務于一條獨立的控制回路。你還可以擁有兩個(非實時)桌面操作系統實例,一個連接到因特網,另一個用來在安全機制下運行辦公軟件。如果有黑客入侵到連接因特網的那個實例,那么只有與該實例直接相關的數據文件才可能受到牽連。

  管理軟件通過防火墻來保護共享文件。用戶只需要簡單地刪除受到病毒感染的實例就可以清除OS實例內的惡意軟件,與另一個實例共享的數據則安然無恙。如果用戶要想重新連接到互聯網,只需要啟用一個新的連接互聯網的實例即可。

  最后,管理程序實現了實時OS和非實時OS的共存。這種情況之下,管理程序為了維持RTOS的決策,可能會降低非

 
實時OS的部分性能。如果某位控制工程師要設計一套多個任務同時運行、而且需要作大量判斷的控制系統,那么這項功能可能會為他帶來極大的幫助。

  多核硬件

  多核微控制器是一種多處理架構的整合形式。多處理器硬件由多個共享同一片儲存空
間的CPU構成。多年來,該技術已經在板級多核互連以及I/O通道、內存資源共享方面得到了廣泛應用。  

  非對稱多處理器系統包含了多個不同的CPU內核。

  非對稱多處理器系統包含了多個不同的CPU內核。

  在過去幾年里,半導體制造商開發的產品在復雜度上有了極大的提高,以至于能夠把多個CPU內核做在一片晶元上。這項技術大大提高了電路集成度以及數據傳輸速度。這類高密度集成硬件被稱作“多核”。

  多處理器構架分為兩類:對稱多處理器(SMP)和非對稱多處理器(AMP) 。SMP由多個相同的(或對稱的)CPU構成,而構成AMP的CPU則不盡相同。

  大多數商業化的多核設備都使用對稱多處理器架構。非對稱多處理架構主要針對一些特殊的應用,所以它很難實現批量生產,單片價格居高不下。

  如今,在一片IC上整合了兩枚相同CPU內核的雙核對稱多處理器雖然還沒有完全普及,但是已經能購買到了。整合了四枚相同CPU內核的四核對稱多處理器也已經在幾年前面世。最近,飛思卡爾半導體公司推出了一款面向通信領域的8核微處理器。其他一些半導體公司也紛紛宣布他們的處理器產品將采用更多(甚至是超多)的CPU內核。

  也許,集成多核技術帶來的最明顯好處是大幅降低了能耗。如果一片晶元上集成了N個CPU,那么在不增加時鐘頻率的情況下,芯片的整體處理速度就會呈現成倍的增長(大約增長0.8N倍)。

  德州儀器的系統架構高級開發經理Ray Simar為我們介紹了一款三核處理器。該處理器每個內核的時鐘頻率都是1GHz,而運算性能等同于一個時鐘頻率為3GHz的單核處理器。他還指出,另一塊包含六個內核,每個內核時鐘頻率為500MHz的芯片也能夠提供同樣的運算性能,但功耗只是單核處理器的一小部分。

  有了多核技術,我們可以把計算任務拆分為多個部分。這種方案在一些控制系統特殊應用中有用武之地。 例如,多核處理器的一個內核可以專門用來對某個回路作實時控制,其余內核則可以解放出來,共同完成一些實時性要求不高,但計算量非常繁重的任務。要是我們沒有專門分配一個內核作回路控制,那么回路控制程序就不得不與其他任務競爭CPU資源了。

  全面整合

  2008年6月飛思卡爾公司推出了QorIQ P4080多核處理器。這款8核對稱架構處理器為我們展示了多種將RTOS、虛擬化技術和多核技術結合的方案,為控制工程師設計系統架構提供了新的選擇。該產品一經推出,幾乎在同一時期,多家嵌入式系統軟件公司都做出了響應。

  Green Hills軟件公司展示了他們的Multi集成開發環境(IDE)是如何在Virtutech Simics系統仿真器中對Freescale 8核處理器進行調試的。該公司還同時展示了他們的Green Hills Integrity RTOS。該系統包含了Padded Cell主機管理程序和客戶端操作系統。

  Virtutech公司宣布,他們的產品具備了混合仿真功能,能夠在Simics仿真環境下支持多層次抽象模型的仿真。

  風河系統公司發布了他們為VxWorks和Linux 操作系統在多核設備上的運行提供前期支持的軟件開發方案。此外,該公司還展示了他們基于Eclipse架構的Workbench開發套件。這套開發工具可以在Virtutech Simics仿真器中運行。

 

  在這種趨勢下,控制工程師不必再因為硬件或軟件的限制,對應用程序作裁減。如今,他們能夠隨意創造出滿足性能、特點要求的虛擬系統。

  然而自由總是與責任并存的。你擁有更多的選擇也就意味著你必須做出更多的選擇。控制工程師只有掌握了新的技術和知識,才能夠做出正確的選擇。