?

?
圖 2 – Mentor 多核框架支持的 AMP 配置
用例與應(yīng)用
Mentor 嵌入式多核框架非常適合無監(jiān)督和有監(jiān)督的 AMP 架構(gòu)。
無監(jiān)督的 AMP (uAMP) 架構(gòu)適用于不需要對參與的操作系統(tǒng)環(huán)境進(jìn)行嚴(yán)格分離的應(yīng)用。在該架構(gòu)中,參與的操作系統(tǒng)在系統(tǒng)中的處理器上本地運(yùn)行。如圖 3a 所示,Mentor 嵌入式多核框架提供一種簡單有效的基礎(chǔ)架構(gòu),其中,主(引導(dǎo))處理器上的主軟件環(huán)境可以管理生命周期,并將計(jì)算任務(wù)分配給 SoC 中的其它計(jì)算資源。
有監(jiān)督的非對稱多處理 (sAMP) 架構(gòu)最適合需要對軟件環(huán)境和系統(tǒng)資源虛擬化進(jìn)行隔離的應(yīng)用。在 sAMP 中,參與的客戶操作系統(tǒng)運(yùn)行在客戶虛擬機(jī)中,而客戶虛擬機(jī)由管理程序(也稱為虛擬機(jī)監(jiān)視程序)進(jìn)行管理和調(diào)度。管理程序?yàn)樘摂M機(jī)提供隔離和虛擬化服務(wù)。Mentor 嵌入式多核框架使 sAMP 架構(gòu)能夠管理 SoC 中異構(gòu)計(jì)算資源的計(jì)算任務(wù)。
如圖 3b 所示,該框架有兩種應(yīng)用方式:在客戶操作系統(tǒng)環(huán)境下,進(jìn)行無監(jiān)督的異構(gòu)計(jì)算資源管理;在管理程序中,進(jìn)行有監(jiān)督的異構(gòu)計(jì)算資源管理,使管理程序能夠監(jiān)督客戶操作系統(tǒng)與遠(yuǎn)程環(huán)境之間的交互。

?
圖 3 – Mentor 嵌入式多核框架用例,包括 uAMP (a) 和 sAMP (b) 架構(gòu)
總之,Mentor 嵌入式多核框架最適合需要將計(jì)算功能按照需求分配給多處理芯片中專用內(nèi)核的應(yīng)用。對于功率受限的器件,該框架能夠根據(jù)需要開啟和關(guān)閉計(jì)算資源,實(shí)現(xiàn)最佳功率利用率。
該框架還便于將傳統(tǒng)的單核嵌入式系統(tǒng)整合到功能更強(qiáng)大的多處理 SoC 上。此外,該框架能夠輕松地移植針對單核芯片而開發(fā)的傳統(tǒng)軟件,以便與更新、更強(qiáng)大的多處理芯片上的增強(qiáng)系統(tǒng)功能進(jìn)行互操作。
最后,該框架還有助于實(shí)現(xiàn)容錯型系統(tǒng)架構(gòu)。例如,該框架能支持處理關(guān)鍵系統(tǒng)功能的 RTOS 環(huán)境(主機(jī))來管理負(fù)責(zé)非關(guān)鍵系統(tǒng)功能的 Linux 環(huán)境。當(dāng) Linux 子系統(tǒng)出故障時,RTOS 可重啟故障子系統(tǒng),而且不會對關(guān)鍵系統(tǒng)功能產(chǎn)生任何不利影響。
系統(tǒng)級考慮因素
Mentor 嵌入式多核框架 API 提供所需的軟件基礎(chǔ)架構(gòu),以管理 AMP 系統(tǒng)中的計(jì)算。然而在使用上述 API 開發(fā)應(yīng)用軟件之前,設(shè)計(jì) AMP 系統(tǒng)必須考慮特定的系統(tǒng)級考慮因素。
在初始設(shè)計(jì)階段,您需要確定 AMP 拓?fù)浣Y(jié)構(gòu)。該框架可在星形拓?fù)洌▎蝹€主機(jī)管理多個遠(yuǎn)程機(jī))或鏈?zhǔn)酵負(fù)洌ㄖ鳈C(jī)和遠(yuǎn)程節(jié)點(diǎn)鏈接在一起)中使用。當(dāng)您選擇合適的拓?fù)浣Y(jié)構(gòu)后,下一步是確定存儲器布局。應(yīng)為每個參與的操作系統(tǒng)運(yùn)行時間分配存儲區(qū)域,并為操作系統(tǒng)實(shí)例之間的 IPC 分配共享存儲區(qū)域。在存儲器布局最終確定后,您需要更新框架提供的、用于反映所選存儲器架構(gòu)的特定平臺配置數(shù)據(jù)。
現(xiàn)成的操作系統(tǒng)通常假定其擁有整個 SoC,因此無法直接在無監(jiān)督的 AMP 環(huán)境中運(yùn)行,因?yàn)樵摥h(huán)境要求合作使用共享資源,并且互斥地使用非共享資源。AMP 系統(tǒng)中每個參與的操作系統(tǒng)都要進(jìn)行修改,以便通過合作方式使用共享資源。例如,遠(yuǎn)程操作系統(tǒng)不應(yīng)復(fù)位和重新初始化已經(jīng)在主機(jī)環(huán)境中使用的共享全局中斷控制器;也不能修改共享時鐘樹或外設(shè),以免導(dǎo)致沖突。這些變更通常包括對參與的操作系統(tǒng)內(nèi)核或 BSP 源文件(或二者皆有)進(jìn)行修改。
下一步是執(zhí)行系統(tǒng)分區(qū)。必須在參與的操作系統(tǒng)之間對系統(tǒng)資源(例如存儲器和非共享 I/O 器件)進(jìn)行分區(qū),這樣,每個操作系統(tǒng)都只能顯示和訪問所分配的資源。為實(shí)現(xiàn)上述任務(wù),您可以對提供給操作系統(tǒng)的平臺數(shù)據(jù)(器件和存儲器定義) 進(jìn)行修改。例如,修改 Linux OS 的 Linux器件樹源文件 (DTS) 中的存儲器和器件定義;Nucleus RTOS 的平臺定義文件中的存儲器和器件定義;裸機(jī)環(huán)境中平臺專用報頭文件的存儲器和器件定義。
該框架提供相應(yīng)的工作流程,用來封裝 Linux、RTOS 或裸機(jī)軟件映像以及所需的引導(dǎo)程序固件,從而生成 ELF 格式的遠(yuǎn)程固件映像。
使用 REMOTEPROC 進(jìn)行生命周期管理
在完成系統(tǒng)級設(shè)計(jì)決策以及針對參與操作系統(tǒng)的修改后,就可使用應(yīng)用軟件的 Mentor 嵌入式多核框架。該框架提供相應(yīng)的工作流程,用來封裝 Linux、RTOS 或裸機(jī)軟件映像以及所需的引導(dǎo)程序固件,從而生成 ELF 格式的遠(yuǎn)程固件映像。
電子發(fā)燒友App

















評論