嵌入式系統的多樣化格式論文

才智咖 人氣:1.84W

引 言:全系統模擬是指在宿主機的作業系統上執行一個模擬硬體的程式來模擬目標硬體,在其上可以執行真實的軟體棧(包括作業系統和應用程式)。現有的模擬工具大多是基於單機架構的,在使用上,它們往往存在著配置複雜、對機器CPU、記憶體等配置要求較高,軟/硬體邏輯改動無法同步等不足。為此,我們考慮到了嵌人式系統軟/硬體開發人員位於分散式環境的特點,設計了一種基於B/s架構的分散式模擬平臺。分散式的架構解決了上述單機架構的不足,此外它通過開發人員對子模組軟硬體邏輯的區域性更新,實現對系統全域性模擬模型自動和增量式的更新。我們基於開源嵌入式全系統模擬工具SimSoCCaa實現了該模擬平臺。

嵌入式系統的多樣化格式論文

同時,我們的工程經驗也闡釋了將單機架構的模擬工具改成了分散式架構的一般規律。本文首先討論了嵌入式模擬工具從單機架構改成分散式帶來的優點,然後給出了一種基於B/S架構的'模擬平臺的設計與實現。最後通過兩個典型的場景說明了該平臺的應用。

1 從單機架構到分散式在這一部分,我們將比較分散式的模擬平臺和基於單機的模擬平臺,討論分散式架構可能帶來的優點。

考慮這樣一種基於B/S架構的分散式模擬平臺:軟硬體開發人員位於分散式的環境中,即在不同的地方,使用不同的機器進行開發工作。開發者通過模擬平臺的Browser端提交軟硬體邏輯、提交模擬任務。模擬平臺的Server端負責構建模擬模型,進行模擬計算。如圖1所示。這樣的一種分散式架構,相比基於單機的模擬工具,會帶來一些顯而易見的好處:①無需在本地搭建模擬環境,通過瀏覽器即可使用;② 將非常消耗計算資源的模擬計算從本地機器轉移到了Server端;③開發者對軟硬體邏輯的改動通過提交到Server可以及時反映給其他開發者;④對通常是命令列介面、較難上手的模擬工具進行了封裝,只將有用的功能通過Browser端的GUI暴露給使用者。

此外,相較於單機架構,分散式架構提供了更方便的構建模擬模型的方法。在使用基於單機架構的模擬工具時,最重要、也是工作量最大的任務是構建模擬模型。模擬模型的構建依賴於對於目標系統(尤其是軟硬體邏輯及其介面)有全面和深刻的理解。在一些規模較大、邏輯較為複雜的嵌入式開發專案中,單人很難做到理解整個系統。因此,在實際專案開發中,往往有專職的模擬人員。這些模擬人員獨立於軟硬體開發人員,他們需要在整個開發週期裡同開發人員溝通,瞭解開發人員的開發進度,跟進並理解最新的軟硬體程式碼,搭建/更新模擬模型,將模擬結果反饋給開發人員。模擬人員的存在毫無疑問會增加人力成本和溝通成本。

而在分散式的環境中,在待模擬系統完成了軟硬體功能劃分後,首先通過Browser端描述系統的架構。此後,在整個系統開發週期中,不同分工的軟/硬體開發者只需通過Browser端提交子模組相應的程式碼邏輯,進行區域性模擬模型的構建與更新,與此同時,整個系統的模擬模型會進行自動地、增量式的更新。在嵌入式系統開發中,不同開發者的分工不同。除了軟硬體開發者之間的分工差異之外,不同的硬體開發人員可能分別負責FPGA硬體邏輯中不同的子模組。在分散式的架構中,不要求有專人對整個系統有全域性性的理解以構建模擬模型,每個人可以專注於他所負責的子模組。

2 分散式模擬平臺設計與實現這個模擬平臺的重點是分散式框架,而非工具本身。因此在實現上,我們希望儘可能地整合現有的模擬工具,而非重新開發一個模擬工具。

我們選擇將開源全系統模擬工具SimSoC變成從單機架構變成分散式。本節將討論模擬平臺實現的技術細節。

2.1 B/S架構在實現上,我們決定使用FlexE來開發Browser端。

Flex是Adobe公司釋出的基於Flash平臺開發富網際網路應用(rich internet applications,RIA)的技術。Browser端允許使用者通過GUI介面完成以下操作:編輯系統架構;提交/更新軟硬體邏輯;提交模擬任務,檢視模擬結果。

Server端則起到了資訊和控制中樞的作用。它負責:維護模擬資源庫;執行使用者提交的模擬任務;管理提交的軟硬體邏輯。

我們使用Java Servletlg 作為Browser端與Server端的中間層。Servlet由Tomcat伺服器進行載入,執行在Server端,它可以將來自於Browser端的Http請求翻譯成對Sim—Soc的呼叫命令。Java Servlet的存在,使得Browser端同Server端的模擬工具解耦,當使用非SimSoC的其它模擬工具時,只需要在Java Servlet重新定義Http請求到模擬工具呼叫命令的對映即可。

2.2 配置系統架構使用者在使用Browser端配置系統架構時,並不需要從零開始搭建,而是可以複用一些預定義的模擬資源模組。

由於我們使用SimSoC作為Server端的模擬工具,因此這些模擬模組會分別對應SimSoC裡一些已經實現的SystemC類。這些預定義的模擬模組包括各種體系架構的嵌入式處理器,記憶體、匯流排、各種外設等。當Browser端初始化時,會從Server獲得一個描述模擬資源庫的XML檔案。在該檔案裡,定義了各個模組的描述、埠、屬性等資訊。