chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式虛擬化支持多核實時應(yīng)用程序的可擴展性

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Kim Hartman ? 2022-06-21 10:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式虛擬化對 OEM 有幾個積極的影響。例如,一旦有一種方法可以拆分應(yīng)用程序以在多個內(nèi)核上運行同時保持確定性,該解決方案隨后可以使實時應(yīng)用程序能夠向上或向下擴展它們使用的內(nèi)核數(shù)量。借助可擴展性,OEM 可以為其產(chǎn)品提供一系列性價比選項,而無需更改軟件。

虛擬化在計算機科學(xué)中并不是一個新概念,但隨著多核處理器的出現(xiàn),它引起了新的興趣。盡管虛擬化被認(rèn)為是保持多個處理器內(nèi)核忙碌的一種方式,但需要注意的是,大多數(shù)類型的服務(wù)器或客戶端虛擬化并非旨在滿足時間關(guān)鍵型嵌入式處理的需求。這些虛擬化方法通常以相同的方式對待多核芯片上的所有處理器。在這些系統(tǒng)中,單個操作系統(tǒng) (OS) 在處理器可用時將任務(wù)分配給處理器,以試圖使所有處理器盡可能地負(fù)載處理任務(wù)。

服務(wù)器和客戶端虛擬化通常會虛擬化所有硬件,包括 I/O 接口。當(dāng) I/O 接口需要服務(wù)時,虛擬機監(jiān)視器 (VMM) 會處理請求并將結(jié)果傳遞給它所支持的操作系統(tǒng)客戶端。沒有辦法確保在屬于該客戶端的 I/O 需要服務(wù)時加載特定的 OS 客戶端,也沒有一種全局方法可以將特定 I/O 與客戶端 OS 和在其上運行的應(yīng)用程序相關(guān)聯(lián)。因此,無法準(zhǔn)確保證處理 I/O 事件需要多少時間。因此,這種方法不適用于處理嵌入式系統(tǒng)中的實時處理。

嵌入式系統(tǒng)設(shè)計人員希望直接控制系統(tǒng)以獲得確定性和一致的性能。雖然需要平衡整體處理器利用率并保持多核處理器盡可能繁忙,但這并不是首要任務(wù)。首先,嵌入式設(shè)計人員正在尋找能夠幫助他們在增加功能和/或降低 OEM 產(chǎn)品成本的同時保持確定性的軟件技術(shù)。

嵌入式設(shè)計人員正在尋找一種軟件平臺,使他們能夠組合不同類型的操作系統(tǒng),以便針對手頭的任務(wù)優(yōu)化處理——例如,處理關(guān)鍵 I/O 時序要求的實時操作系統(tǒng)和通用操作系統(tǒng)( GPOS) 來利用 COTS 圖形豐富的應(yīng)用程序,這些應(yīng)用程序運行人為導(dǎo)向的功能。他們還在尋找擴展應(yīng)用程序的解決方案,以便他們可以使用相同的應(yīng)用程序代碼庫提供不同的產(chǎn)品。這降低了工程開發(fā)成本,縮短了上市時間,更重要的是,使新產(chǎn)品能夠基于經(jīng)過驗證的軟件,這些軟件可以在性能和可靠性方面不斷升級。

嵌入式虛擬化保留了確定性

為了使嵌入式應(yīng)用程序具有確定性,它必須從開發(fā)項目的一開始就進行設(shè)計。確定性不是可以在最后添加的東西。必須特別考慮以確保應(yīng)用程序線程可以直接控制它們所依賴的 I/O 接口。

圖 1 顯示了一個拾放裝配系統(tǒng),其中 TenAsys 的 Windows 實時操作系統(tǒng) (RTOS) 托管在四核處理器的三個內(nèi)核上,而人機界面 (HMI) 托管在第四個內(nèi)核上。運行 Microsoft Windows 的核心。運行在不同 CPU 上的實時任務(wù)在需要時通過全局對象網(wǎng)絡(luò)進行通信。該自動化裝配系統(tǒng)包括三個實時子系統(tǒng):引導(dǎo)裝配機器人的視覺系統(tǒng)、多軸機器人以及將組件索引到裝配位置然后運出裝配單元的材料運輸系統(tǒng)。開發(fā)和調(diào)試此類應(yīng)用程序以確保每個組件按要求可靠運行的理想方法是將應(yīng)用程序拆分為單獨的組件。

圖 1:嵌入式系統(tǒng)可以節(jié)省成本并保持實時響應(yīng)能力,同時通過在多核處理器上托管多個操作系統(tǒng)來添加功能。

pYYBAGKxLUSAPzFwAAcaGvDUllA842.png

例如,HMI 將是一個單獨的應(yīng)用程序模塊,可以在 Windows 等非實時環(huán)境中運行。這需要一個可以劃分平臺資源的操作系統(tǒng)環(huán)境——I/O、內(nèi)存、中斷和 CPU 內(nèi)核(在多核處理器平臺的情況下)——以允許應(yīng)用程序模塊完全獨立地運行。嵌入式虛擬化環(huán)境支持這一點,允許不同的實時任務(wù)在特定的處理器內(nèi)核上運行。操作軟件對物理 I/O 接口進行分區(qū),以便來自設(shè)備之一的中斷僅中斷處理該設(shè)備的處理器。這確保了處理實時事件的可預(yù)測響應(yīng)時間。

多核芯片上的多個操作系統(tǒng)環(huán)境的托管由稱為嵌入式虛擬化管理器的軟件或包含在 RTOS 中的特殊嵌入式虛擬化功能進行管理。

嵌入式虛擬化可以以不同的方式實現(xiàn),具體取決于處理器提供的硬件虛擬化支持量。半虛擬化解決方案使用軟件技術(shù)來修改客戶操作系統(tǒng),允許它們并肩工作,而不會相互影響或損害系統(tǒng)的實時響應(yīng)能力。實現(xiàn)提供了不同程度的平臺分區(qū),并且通常僅限于在一個平臺上一次運行兩個操作系統(tǒng)——一個 RTOS 和一個 GPOS。一些實現(xiàn)已經(jīng)發(fā)展到 GPOS 不需要任何修改并且很容易支持最新版本的 GPOS 的地步。當(dāng)將 GPOS 耦合到 RTOS 的目的是按原樣使用傳統(tǒng) RTOS 應(yīng)用軟件時,這是一個真正的優(yōu)勢,無需任何修改,

多年來,其中一些實現(xiàn)已經(jīng)過優(yōu)化,可為特定的操作系統(tǒng)組合提供最佳性能。這樣做的缺點是每個實現(xiàn)都特定于特定的操作系統(tǒng)組合,提供通用虛擬化解決方案以支持多種操作系統(tǒng)組合是一種不切實際的方法。

最近推出的 VT(由 Intel 處理器支持)等硬件輔助虛擬化功能通過提供內(nèi)置于處理器中的硬件輔助,消除了半虛擬化的一些軟件復(fù)雜性。通過使用硬件虛擬化支持,可以構(gòu)建 VMM 以在不了解客戶操作系統(tǒng)的情況下運行。因此,VMM 可以支持針對該平臺的任何操作系統(tǒng)。

英特爾處理器特性,如 VT-x(VT 特性的一個子集)確??蛻舨僮飨到y(tǒng)發(fā)出的任何內(nèi)存地址都自動映射到物理內(nèi)存中的適當(dāng)?shù)刂肺恢?。同樣,稱為 VT-d 的硬件輔助虛擬化功能自動映射總線主控 DMA 設(shè)備的 I/O 內(nèi)存訪問,使作為來賓 RTOS 應(yīng)用程序一部分的本機 I/O 驅(qū)動程序無需修改即可在虛擬化環(huán)境中使用。這些硬件輔助功能大大降低了 VMM 的復(fù)雜性,并使嵌入式虛擬化成為更可行的解決方案。

使可伸縮性在實時應(yīng)用程序中發(fā)揮作用

雖然嵌入式虛擬化為將實時應(yīng)用程序拆分為單獨的獨立操作組件提供了理想的環(huán)境,但拆分應(yīng)用程序需要一種機制來支持進程間通信 (IPC)。

過去,設(shè)計人員經(jīng)常在應(yīng)用子系統(tǒng)之間建立以太網(wǎng)鏈路,并使用 TCP/IP 堆棧在子系統(tǒng)之間進行通信,但這種方法繁瑣、速度慢,有時不可靠,并且給系統(tǒng)的行為增加了不確定性,影響了確定性。

更好的 IPC 方法是使用稱為全局對象網(wǎng)絡(luò)的概念。 全局對象網(wǎng)絡(luò)提供了一個具有內(nèi)置啟動和發(fā)現(xiàn)服務(wù)的托管通信環(huán)境,使應(yīng)用程序能夠在加載時動態(tài)分布在一個或多個 CPU 上。自動找到需要其他進程服務(wù)的進程,并且本地管理器記錄它們的位置以跟蹤已建立的 IPC 鏈接。如果通信鏈路或目標(biāo)進程發(fā)生故障,管理器會通知啟動進程。此外,當(dāng)啟動過程不再需要 IPC 鏈接時,本地管理器通過清除所有記錄來保持系統(tǒng)清潔。由于全局對象網(wǎng)絡(luò)與操作系統(tǒng)集成,其開銷很低,并且不需要應(yīng)用程序開發(fā)人員創(chuàng)建任何自定義軟件。

操作系統(tǒng)管理全局對象的位置和存在,進程通過這些對象傳遞信息以確保系統(tǒng)的完整性。例如,一個進程在多個處理器上使用的對象是“保持活動狀態(tài)”的,只有在所有進程都終止時才會被刪除。這需要底層管理基礎(chǔ)架構(gòu)來確保不會過早刪除對象,或者不會因為未使用資源清理不當(dāng)而導(dǎo)致內(nèi)存泄漏。同樣,如果一個處理節(jié)點在其進程終止之前發(fā)生故障,管理器需要通知所有其他處理節(jié)點上的全局對象管理器它們應(yīng)該清除對故障節(jié)點上對象的任何本地引用。

GOBSnet 通信示例

圖 2 顯示了圖 1 所示系統(tǒng)的軟件架構(gòu)的高度簡化視圖。除了 RTOS 和實時過程軟件,Cores 0-2 還運行 INtime GOBS manager 軟件,其功能是管理全局對象通信。(GOBSnet 是 TenAsys 的全球?qū)ο缶W(wǎng)絡(luò),由公司的 INtime Distributed RTOS 和 INtime for Windows RTOS 支持。)

圖 2: GOBSnet 促進了在不同處理器內(nèi)核上運行的實時進程之間的通信。

poYBAGKxLU2AMl8BAAX9vtS0lPw407.png

使用 GOBSnet,一個內(nèi)核上的進程可以使用全局內(nèi)存對象與另一個內(nèi)核上的另一個進程通信。啟動進程,圖 2 中的“進程 1”,創(chuàng)建內(nèi)存對象并將其編入該內(nèi)核的根進程中。完成此操作后,運行在其他處理節(jié)點上的進程可以找到內(nèi)存對象,從而為所有進程提供高效的共享內(nèi)存接口。這同樣適用于 IPC 使用的所有對象范圍(包括信號量和郵箱)。

第二步是讓其他進程定位內(nèi)存對象并獲取其內(nèi)存位置。這是通過指定處理器名稱來開始搜索來完成的。當(dāng)進程找到對象時,它將其位置、類型和參數(shù)存儲在處理器節(jié)點的 GOBS 管理器中的引用對象中,并保留該引用對象的句柄。從那時起,當(dāng)遠(yuǎn)程進程(本例中的進程 2 或進程 3)想要寫入或讀取內(nèi)存對象時,它會使用引用對象的句柄來檢索適當(dāng)?shù)膬?nèi)存對象信息以訪問它。

當(dāng)進程 2 或進程 3 終止其節(jié)點的 GOBS 管理器時,該管理器會清除有關(guān)遠(yuǎn)程內(nèi)存對象的所有引用對象信息。當(dāng)進程 1 終止時,它會刪除它創(chuàng)建的所有對象,包括內(nèi)存對象。如果這不是最佳操作,則可以選擇使用計數(shù)器創(chuàng)建內(nèi)存對象。每當(dāng)另一個進程連接到內(nèi)存對象時,計數(shù)器就會增加,而每當(dāng)這些關(guān)聯(lián)的進程之一終止時,計數(shù)器就會減少。結(jié)果是內(nèi)存對象僅在與其連接的所有進程都終止時才被刪除。這允許遠(yuǎn)程進程進程 2 和進程 3 可以繼續(xù)通過內(nèi)存對象傳遞信息的情況,即使啟動進程進程 1 已經(jīng)終止。

無論實時應(yīng)用程序分布在同一多核芯片上的 CPU 之間,還是網(wǎng)絡(luò)在一起的不同微處理器組件上的不同 CPU 內(nèi)核之間,都可以使用 GOBSnet 通信。通過圍繞這種靈活的系統(tǒng)軟件架構(gòu)設(shè)計系統(tǒng),嵌入式系統(tǒng)開發(fā)人員有足夠的空間來提高其產(chǎn)品的處理能力或相應(yīng)地縮小其處理能力,以應(yīng)對未來的挑戰(zhàn)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20332

    瀏覽量

    254984
  • 嵌入式
    +關(guān)注

    關(guān)注

    5209

    文章

    20657

    瀏覽量

    337043
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11327

    瀏覽量

    225891
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    通過高性能MCU與集成外設(shè),破解現(xiàn)代嵌入式設(shè)計難題

    簡介 隨著嵌入式系統(tǒng)不斷發(fā)展,應(yīng)用領(lǐng)域從工業(yè)自動、車聯(lián)網(wǎng)到先進的物聯(lián)網(wǎng)設(shè)備日益豐富和復(fù)雜,設(shè)計人員在性能、靈活性與可靠性之間的平衡面臨越來越多的挑戰(zhàn)。具備設(shè)計擴展性和多樣化外設(shè)集成
    的頭像 發(fā)表于 04-01 10:01 ?997次閱讀
    通過高性能MCU與集成外設(shè),破解現(xiàn)代<b class='flag-5'>嵌入式</b>設(shè)計難題

    arm嵌入式主板優(yōu)缺點

    。   二、強大的擴展功能和網(wǎng)絡(luò)傳輸功能:隨著更多的行業(yè)開始使用到嵌入式主板,導(dǎo)致市場對主板功能的要求的差異化越來越大。嵌入式主板ARM的出現(xiàn),恰恰滿足了這個個性的需求。從
    發(fā)表于 01-08 07:08

    什么是嵌入式操作系統(tǒng)?

    RT-Thread)還集成了設(shè)備驅(qū)動框架,支持 SPI、I2C、UART 等外設(shè)的標(biāo)準(zhǔn)調(diào)用,和 HAL 庫配合更高效。 四、嵌入式 OS 的典型特征(判斷一個 OS 是否適合嵌入式
    發(fā)表于 12-09 10:33

    嵌入式軟件分層架構(gòu)設(shè)計原則

    嵌入式軟件分層架構(gòu)的設(shè)計原則如下: 模塊擴展性:每一層應(yīng)當(dāng)保持松耦合,這樣當(dāng)硬件變化或某些功能擴展時,只需要修改對應(yīng)的層次,而不影響整
    發(fā)表于 11-28 07:05

    嵌入式實時操作系統(tǒng)的特點

    操作系統(tǒng)具備高效的中斷處理機制,能夠快速響應(yīng)和處理系統(tǒng)的中斷事件。 資源管理:實時嵌入式操作系統(tǒng)提供有效的資源管理機制,包括內(nèi)存管理、設(shè)備驅(qū)動程序、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議等,以支持
    發(fā)表于 11-13 06:30

    如何評估電能質(zhì)量在線監(jiān)測裝置的擴展性?

    評估電能質(zhì)量在線監(jiān)測裝置的擴展性,需圍繞 “ 硬件擴展、軟件升級、協(xié)議兼容、場景適配 ”
    的頭像 發(fā)表于 10-22 16:35 ?729次閱讀

    NetApp助力對象存儲現(xiàn)代,提升速度、擴展性和安全性

    智能數(shù)據(jù)基礎(chǔ)設(shè)施公司NetApp? (NASDAQ: NTAP) 今天宣布推出NetApp StorageGRID? 12.0,這是一款擴展的軟件定義對象存儲解決方案,專為非結(jié)構(gòu)數(shù)據(jù)而設(shè)
    的頭像 發(fā)表于 09-11 10:41 ?673次閱讀

    嵌入式工程師為什么要學(xué)QT?

    Qt對嵌入式工程師來說,真的很重要嗎? Qt是一個跨平臺的C++應(yīng)用程序開發(fā)框架,非常適合嵌入式系統(tǒng)的開發(fā),Qt在嵌入式開發(fā)中具有很重要的作用。 在項目實踐中可以看出,Qt在工業(yè)自動
    發(fā)表于 08-14 15:15

    RISC-V 虛擬堆棧和硬件的最新進展

    RISC-V 虛擬是其突破現(xiàn)有應(yīng)用邊界、進入更廣泛場景(尤其是高性能計算、云計算、服務(wù)器及復(fù)雜嵌入式領(lǐng)域)的關(guān)鍵能力。比如,在嵌入式實時
    發(fā)表于 07-18 16:00 ?4049次閱讀

    一文讀懂:嵌入式Linux實時性進階

    在工業(yè)控制、機器人、汽車電子等關(guān)鍵領(lǐng)域,嵌入式系統(tǒng)對實時性要求極高。 Linux作為強大的通用操作系統(tǒng),其原生實時性能難以滿足最嚴(yán)苛的硬實時需求。為突破這一限制,PREEMPT_R
    發(fā)表于 07-10 15:26

    嵌入式軟件開發(fā)常用的軟件有哪些?

    源代碼編輯器。這個軟件支持語法高亮,代碼自動補全,代碼重構(gòu),查看定義功能,并且內(nèi)置了命令行工具和Git版本控制系統(tǒng)。用戶可以更改主題和鍵盤快捷方式實現(xiàn)個性設(shè)置。也可以通過內(nèi)置的擴展程序
    發(fā)表于 07-03 17:06

    Linux嵌入式和單片機嵌入式的區(qū)別?

    較高,需要較大的內(nèi)存和存儲空間來運行Linux系統(tǒng)和應(yīng)用程序。 5. 擴展性 : 單片機嵌入式擴展性有限,通常只能通過增加外設(shè)來
    發(fā)表于 06-20 09:46

    瑞薩電子RA系列微控制器的擴展性強的配置軟件包 (FSP)安裝下載與使用指南

    瑞薩電子RA系列微控制器的擴展性強的配置軟件包 (FSP)安裝下載與使用指南
    的頭像 發(fā)表于 06-11 17:21 ?2239次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-Regmap的優(yōu)勢

    的讀寫操作,沒有提供寄存器緩存功能。 四、擴展性:Regmap 提供了一個模塊的框架,可以輕松擴展支持更多的通信接口和寄存器映射類型。這
    發(fā)表于 05-22 10:39

    瑞芯微RK3288解決方案:高性能、高擴展性嵌入式系統(tǒng)設(shè)計理念與應(yīng)用分析

    。本文將深入剖析基于RK3288的處理方案,重點闡述其在硬件架構(gòu)、軟件平臺、擴展性設(shè)計以及應(yīng)用場景等方面的優(yōu)勢,并探討其所蘊含的嵌入式系統(tǒng)設(shè)計理念。一、RK328
    的頭像 發(fā)表于 05-08 15:39 ?1269次閱讀
    瑞芯微RK3288解決方案:高性能、高<b class='flag-5'>擴展性</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)設(shè)計理念與應(yīng)用分析