文/羅韶杰 張立臣
信息物理系統是這樣一類系統:其通過集成先進的感知、計算、通信和控制等信息技術以及自動化控制技術,構建了物理世界與信息世界中人、機、物、環境和信息等因素通過高效協同適時交互以達到相互映射的復雜系統,其實現了系統里面資源自動配置和運行的三個需求:按需響應、快速迭代和動態優化。信息物理融合系統具有實時的特性和需求,所以其調度需要以任務的WCET作為輸入之一,因此WCET分析是CPS任務調度的基礎之一。
一個任務的最壞執行時間指的是此任務在特定的硬件平臺上去執行所需要的時間長度的最大值。最壞執行時間的分析是具有實時性要求的系統的調度分析中最重要的事情之一。實時計算的主要特征是在給定時間內或在給定期限內完成計算的要求。計算或執行時間通常在某種程度上取決于輸入數據和其他可變條件。然后重要的是找到最壞情況下的執行時間(WCET)并驗證它足夠短以滿足所有情況下的截止期限。
WCET 分析可以分成靜態分析、動態測量和混合方法共3 類方法。動態測量方法指的是直接在目標環境中運行程序,通過盡可能多的測試用例來得出程序的WCET。因此其測量工具有模擬器、邏輯分析儀和示波器等,主要應用在工業上。靜態分析方法則通過抓取和分析程序代碼,綜合程序所有可能的輸入,系統運行狀態和軟硬件間平臺及交互的前提下,對軟硬件進行建模分析以確定其最壞執行時間,而無需真實地運行程序。靜態分析首先進行代碼的高層分析和結合硬件的低層分析,然后通過3種方法之一求解WCET,分別是基于路徑的、基于隱藏路徑的和基于語法樹的分析方法。混合方法指的是結合靜態分析和動態測量兩種方法,綜合考慮并求解WCET的方法。
現有的一些工具使用的是程序的純靜態分析;而其他的另一些工具將靜態分析與程序部分執行時間的動態測量相結合,即使用的是混合方法。下面列舉幾種常用的工具,除此之外還有OTAWA、MTime、TuBound等工具。
AbsInt的aiT是一個時間驗證工具。采用靜態WCET分析用于計算任務實際WCET的安全上限。它的目標處理器范圍較為廣,從簡單的體系結構到較為復雜的體系結構都有。aiT的主要輸入是二進制可執行文件,從中重構控制流程圖。在這個圖上,進行了幾個靜態分析來計算每個指令的執行時間。然后使用全局路徑分析來計算任務的整體WCET界限。然后將分析結果可視化給用戶。
Bound-T是芬蘭航天中心為歐洲航天協會開發的一個WCET分析工具,其由Tidorum Ltd.公司進行商業分銷和支持,基于可執行代碼進行靜態WCET 分析,因為Bound-T是通過從可執行文件中提取和解碼二進制指令來構造控制流和調用圖,所以其分析過程是獨立于程序的源代碼的,因此可以對不同的語言開發的程序進行WCET 分析。Bound-T專注于具有可預測時序的微控制器。不考慮高速緩存和其他具有非常動態性的硬件組件。
WCET的動態測量方法由于其用例范圍可能是無限的,無法完全覆蓋到,因此使用這種方法得出來的分析值可能會低于真實的WCET值,若使用這種小于真實WCET的值來分配時間給實時任務,可能會造成任務無法按時完成從而導致不可預料的后果。
在靜態分析WCET方面,與大多數程序分析應用程序不同,WCET工具必須分析機器代碼,而不僅僅是源代碼。這意味著分析依賴于目標處理器,因此WCET工具通常會有幾個不同的版本,每個版本分別對應著每個支持的目標處理器甚至每個具有特定緩存和內存接口的目標系統。機器代碼分析的某些部分也可能依賴于生成機器代碼的編譯器。例如,switch case語句中的控制流分析可能對編譯器通過地址表使用跳轉的慣用方法很敏感。然而現在處理器和編譯器的種類繁多,內部的技術也不盡相同,導致現有的WCET分析工具無法全部或廣泛顧及到。
通常,WCET工具使用簡化近似值,從而確定WCET的上限,而非真正的WCET。真正的WCET和所求得的上限之間的差異,在某些情況下可能比較大,即估算的WCET精確度在某些情況下可能較低,導致分配給任務的時間和臨界資源可能會過多,而造成較大的時空資源的浪費。對于大多數真實的、非平凡的程序來說,完全自動的WCET分析是不可能的,這意味著仍然需要手動注釋或斷言來定義諸如循環迭代邊界之類的基本信息。對此類注釋的需求以及注釋的編寫形式取決于WCET工具和要分析的目標程序。
自21世紀以來,世界上的信息化水平越來越高,越來越普及,并滲透進了物理世界。物理世界和信息世界早已不是互相獨立的個體了,信息物理融合系統就是一個印證,信息物理融合系統廣泛應用于智能電網、車聯網和自動駕駛等和我們生活息息相關的諸多領域,WCET分析作為CPS的重要基礎技術之一,其發展牽動著CPS。
WCET分析領域發展了二三十年,取得了一些成果,但也存在著很多不足,面臨著很多挑戰,因此需要更多的相關領域人員參與其研究,結合高速發展的現代科學技術,推進WCET的進一步發展,使其更好地造福CPS和更多的領域。