999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

異構處理器多操作系統協同技術研究①

2019-01-07 02:40:56馮瑞青趙俊才
計算機系統應用 2018年12期
關鍵詞:設計

馮瑞青,張 激,趙俊才

(華東計算技術研究所,上海 201808)

隨著集成電路技術的快速發展,嵌入式處理器早已從單核過渡到多核時代[1].在移動通信、雷達信號處理、航天、工控、機器人等領域,不僅需要高性能、低功耗的處理器,而且要求單個芯片能夠處理各種場景的應用,如系統控制、信號處理、通信技術、圖形、圖像顯示等.同構多核處理器功能單一,如Cortex-A9[2],無法應對復雜多樣的場景,異構多核處理器(Heterogeneous Multi-core Processor,HMP)應運而生.典型的異構多核處理器有IBM公司的Cell Broad-Band Engine[3]、ARM 公司的 big.LITTLE[4]、TI公司的SitaraTMAM57x系列[5]、華為公司的麒麟970等.

國內外針對某種特定構架(如ARM、MIPS、X86)的嵌入式操作系統比較多,典型的有RT-Thread、ReWorks、DeltaOs、VxWorks、QNX、RT-Linux、SYS/BIOS等.目前,異構多處理器大多采用單一的嵌入式操作系統.為充分發揮異構處理器的性能,需要在不同的核上運行不同的操作系統,因此多操作系統的通信協同技術非常關鍵.目前,對異構多核處理器的操作系統、片上通信技術等方面的研究還并不是十分成熟.由于異構多核處理器的特殊性,實現不同核上任務調度以及不同核之間的實時通信和調度,利用不同類型處理器的各自性能特點,才能充分發揮異構多核處理器的性能優勢[6].

本文對異構多核處理器的發展以及異構多核的核間通信機制進行研究;著重研究分析了“ARM+DSP”片上基于共享總線的Mailbox異構多核間通信機制;以TI公司的SitaraTMAM571為例設計實現了ARM核上Linux與DSP核上ReWorks之間的多核通信組件、DSP核的動態加載程序、協同計算等功能.

1 相關工作

1.1 ARM+DSP異構多核處理器

“RISC+DSP”架構作為一種典型的異構多核架構在嵌入式領域應用非常廣泛.“RISC+DSP”架構將通用處理器與專用處理器融合,集合了通用處理器的通用性好、任務管理能力強和專用處理器的計算能力強的優點,在功耗有限的前提下極大提升了系統性能[7,8].其中,“ARM+DSP”架構是最常見的"RISC+DSP"架構之一,見圖1.

本文以TI公司的AM5718為實例完成了具體的設計與實現.TI公司在2015年推出的是一款為工業自動化應用包括人機交互(HMI),工業通信、自動化和控制,機器視覺以及其它通用應用設計的28 nm集成工藝的高性能處理器.ARM+DSP異構多核處理器構融合了可編程的視頻處理功能與高度集成的外設,旨在提供集高集成度、可拓展性和外設與一體的芯片[9],見圖2.

圖1 ARM+DSP 異構多核處理器結構圖

圖2 AM5718 框圖

1.2 嵌入式操作系統

目前異構多核處理器大多只有主核運行操作系統,其它核作為協處理器.這種架構的特點是主核功能較為復雜,負責全局任務、資源的管理和調度,從核功能單一接受主核的管理,負責執行由主核分配的任務.這種操作系統結構簡單便于設計實現.如ARM+DSP異構處理器在ARM核上運行Linux,由ARM核通過指令或共享存儲設備實現協處理器的運算.ARM負責事件管理和I/O接口等功能,DSP負責計算加速.這種多核協同加速處理的模式在大部分情況下可以同時滿足通用性和計算能力的要求[10].上述模式存在DSP核無法直接連接外設、DSP計算程序固定且修改程序的工作量大等缺陷.如何避免ARM核的多余過程并且實現動態加載DSP程序成為關鍵問題.在主核的操作系統上對從核進行程序動態加載,并在從核上部署操作系統,通過核間通信組件可以簡化上述模式流程,更好發揮從核的協同處理能力,靈活應對復雜應用場景.

本文在AM5718的ARM上運行TI官方提供的嵌入式Linux內核,在DSP核上運行銳華操作系統.嵌入式Linux操作系統是一款成熟穩定的開源操作系統,適用于不同的 CPU,支持如 X86,ARM,MIPS 等多種體系架構,具有內核小、穩定性高、資源豐富、可裁剪性強和結構靈活等特點.

在AM5718的DSP核上運行“銳華”ReWorks操作系統.“銳華”操作系統是中國電子科技集團公司第三十二研究所(華東計算技術研究所)自主研制的嵌入式實時操作系統,提供了面向主流DSP芯片的高性能國產基礎軟件解決方案.操作系統內核采用了“十二五”核高基成果--“銳華”ReWorks嵌入式實時操作系統.ReWorks內核可搶占,中斷可嵌套,具備高效的中斷管理機制和任務調度、上下文切換算法,具有強實時性;采用微內核的體系架構和面向對象的設計方法,具有良好的可裁剪性;支持C/C++編程語言,提供POSIX接口,具有較強的可移植性;提供故障檢測、隔離和恢復框架,具有高可靠性;提供核心擴展接口,具備良好的系統可維護性;此外作為自主可控操作系統具有可持續性等特點[11].

銳華DSP操作系統軟件組成,如圖3所示,主要包括三部分:底層CSP(芯片級支持包)/BSP(板級支持包)、操作系統核心和擴展功能組件.

圖3 “銳華”DSP 操作系統軟件組成

“銳華”DSP實時操作系統在系統裁剪、實時性、易用性、性能、標準化方面具備一定的優勢,與TI的DSP操作系統SYS/BIOS相比,ReWorks內核除了支持任務管理、信號量、消息隊列的功能外還擁有條件變量、任務讀寫鎖等SYS/BIOS不支持的功能點.經對比測試,“銳華”在相同的測試平臺上多項功能、實時性優于SYS/BIOS,滿足嵌入式實時操作系統的各項性能指標要求.在下一章中,本文將設計一系列核間通信組實現上述兩種嵌入式操作系統在不同核上的部署以及核間的協同處理.

2 方案設計與實現

2.1 總體方案

首先在ARM、DSP核上分別完成Linux和ReWorks的適配移植工作.設計一種核間通信組件基于MailboxMessage(郵箱消息)機制實現片上處理器之間通信.其中,Mailbox中包含ARM和DSP的共享數據寄存器組以及各自的控制/狀態寄存器.ARM和DSP通過訪問共享寄存器和共享內存來完成數據交互,通過訪問控制/狀態寄存器來完成狀態同步.多核通信組件使用隊列郵箱中斷機制允許兩個不同的處理器之間通過一系列的寄存器和關聯中斷信號發送和接收消息來建立通信通道,總體框架見圖4.

AM5718執行兩種郵箱類型:一種是IVA郵箱,數量為1個,用于圖像加速子系統與其它核之間的通信;另一種是系統級郵箱,共有13種,用來實現ARM與DSP、IPU等子系統之間的通信.每個郵箱模塊支持如下特性:可配置參數,包括:用戶數,郵箱消息、隊列數,每個消息隊列 (FIFO,先進先出)的消息數;32-bit的消息寬度;使用中斷完成消息接收通知和隊列未滿的通知;支持 16/32-bit尋址空間[12].

總體的設計思路:ARM核作為主核先啟動并且運行Linux操作系統,設計ImageLoader動態加載工具,在Linux運行ImageLoader將ReWorks鏡像文件動態加載到DSP核上.DSP上ReWorks操作系統等待任務消息;Linux將任務數據寫入共享內存,并發送任務消息給 ReWorks.收到消息后,ReWorks 從共享內存讀取任務數據,并執行相應的操作,發送MailboxMessage通知ARM任務完成.接下來的章節將詳細介紹具體實現方法.

2.2 Linux側組件設計

TI公司將AM5718的ARM核設計為主核,上電后ARM核最先啟動,首先對ARM核上Linux側的MailboxDriver模塊和ImageLoader動態加載工具進行設計.

設計Linux系統下MailboxDriver模塊,MailboxDriver模塊包括:DSP子時鐘系統初始化模塊、DSP子系統啟動模塊、郵箱設備初始化模塊、MPU/DSP消息管理模塊、郵箱中斷模塊、郵箱管理模塊、共享內存管理模塊等子模塊.MailboxDriver模塊初始化主要流程為:注冊郵箱字符設備創建dsp_mailbox,配置MPU和DSP寄存器,分別為 ARM和DSP創建一個共享內存區域查找表,初始化DSP子系統時鐘、喚醒DSP,初始化郵箱中斷,模塊初始化完成.

在MailboxDriver模塊加載完成后,通過創建的dsp_mailbox設備可將ReWorks鏡像文件動態加載到DSP核,設計ImageLoader動態加載工具將ReWorks鏡像加載到DSP核.

ImageLoader動態加載工具的關鍵技術在于elf(coff)格式文件分析與加載;根據elf文件格式解析鏡像文件信息,獲取代碼段、數據段等段的數據內容與相應地址、段長度等信息,將數據寫到相應的內存地址.程序計數器獲取入口地址,程序從入口開始執行.

創建dsp_mailbox設備句柄,將鏡像入口地址傳入dsp_mailbox設備并賦值給mailbox.ImageLoader的主要流程為先執行elf_load函數,得到入口地址entry;再執行start_dsp函數,鏡像文件加載完成.ImageLoader工具允許用戶自定義鏡像文件和目標核,此設計同樣適用于其他異構多核平臺.

Linux啟動后先安裝側完成MailboxDriver模塊安裝,創建mailbox字符設備并創建設備號等,運行ImageLoader工具加載鏡像創建一個計算任務并將任務數據寫入共享內存特定地址,檢查DSP郵箱狀態;當DSP郵箱可用時,向DSP發送消息;收到DSP發送來的消息后,讀取信息并從共享內存的指定地址讀取結果,完成計算任務并釋放郵箱,Linux側流程圖見圖5.

2.3 ReWorks側組件設計

設計在 DSP ReWorks添加郵箱中斷模塊,ReWorks嵌入式實時操作系統從c_int00開始執行,逐步完成操作系統運行環境初始化(例如處理器寄存器初始化、堆棧初始化等).然后跳轉到ReWorks內核的入口函數main中完成操作系統啟動.設計在ReWorks啟動過程的中斷模塊初始化(int_module_init)增加Mailbox中斷模塊,具體流程見圖6.

圖6 ReWorks郵箱中斷模塊初始化流程圖

DSP核ReWorks啟動后創建idle任務掛起.ReWorks收到消息后從共享內存特定地址讀取數據并處理,將計算結果寫入共享內存特定地址;檢測ARM郵箱狀態,ARM郵箱可用時,向ARM發送消息;使能中斷,釋放郵箱并退出中斷,繼續掛起.DSP 側流程圖見圖7.

圖7 ReWorks 側流程圖

2.4 Linux與ReWorks數據交互

Linux創建計算任務后需要將本地的任務數據寫入共享內存地址.由于共享內存區域在異構多核處理器的不同核上會映射到不同的地址空間,即同一塊共享內存區域在不同處理器的本地地址空間的邏輯位置不同,因此當ARM Linux創建計算任務后通過將查找共享內存地址表將本地內存地址映射到共享內存地址,根據本地指針及區域ID獲取當前共享區域指針,將任務數據寫入共享內存后,通過消息將共享內存地址發送給 DSP.ReWorks DSP 收到任務消息時,郵箱中斷觸發,進入中斷程序后讀取消息中的共享內存地址.ReWorks從共享內存讀取任務數據需要先完成相應的地址轉換,獲取本地地址后從共享內存中讀取任務數據并完成相應的計算;將結果寫入轉換后的共享內存地址,以消息形式發送給ARM核,ARM核得到計算結果后繼續向下執行,至此一次數據交互完成,交互流程見圖8.

圖8 Linux 與 ReWorks交互流程圖

3 測試與分析

在完成設計之后,我們在AM5718上進行了測試,ARM和DSP核分別使用RT-Linux和ReWorks-2.1實時DSP操作系統,依次進行下列操作:

(1)MailboxDriver模塊安裝,測試結果顯示郵箱配置成功,DSP子系統初始化完成.

(2)創建設備號,使用 ImageLoader工具加載鏡像,DSP程序的入口地址讀取正確,將各個段寫入相應地址成功.

(3)核間通信測試,由ARM向DSP發送消息,DSP收到消息后從共享內存讀取運算數據,完成后向ARM發送消息.

(4)ReWorks 任務切換測試,在 ReWorks 創建兩個任務進行任務切換.經測試,ReWorks任務切換符合實時性要求.

(5)協同計算:ReWorks接受 Linux 上發來的任務消息,成功調用FFT函數完成,并將結果以消息形式返回給Linux.

ImageLoader對ELF鏡像程序進行分析,解析符號表并分配相應的內存空間后寫入鏡像.測試加載一個2 MB的鏡像文件,使用ImageLoader的整個加載過程實際耗時6.8 s.而使用常用的J-TAG加載相同的鏡像耗時 8.7 s.因此,ImageLoader在加載效率上具有優勢.ImageLoader直接在 ARM 上運行,對 DSP進行動態加載不需要斷電重啟,相比J-TAG等工具加載的復位等過程加載完成后,在ReWorks操作系統可以實現DSP 核上的任務切換,任務切換時間為 0.25 us,符合實時性要求.繼續使用ImageLoader向指定地址繼續動態加載應用程序,這種逐層加載的方式具有靈活且簡易的優勢.

4 總結與展望

本文主要論述了國產DSP嵌入式實時操作系統ReWorks面向異構多核平臺的核間通信研究和設計,基于RISC+DSP共享總線的郵箱機制,著重對ARM Linux與 DSP ReWorks核間通信進行了研究分析,設計并實現了Mailbox郵箱驅動模塊、DSP鏡像動態加載程序和ReWorks郵箱中斷模塊一系列核間通信組件.通過硬件開發板和軟件程序對本文的設計進行了驗證和測試分析.

本設計能夠實現Linux端對DSP程序的動態加載并可以實現與ReWorks的核間通信,增強了DSP的協同處理能力,降低了DSP應用程序的開發難度,提高了開發效率.多核處理器的負載均衡等問題仍然是協同處理技術的難點,我們會在后續的研究工作中在ReWorks操作系統上繼續改進或提出新的方案.

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 亚洲三级成人| 国产成人精品日本亚洲| 亚洲男人的天堂久久香蕉网 | 99精品国产电影| 亚洲有码在线播放| 亚洲Va中文字幕久久一区| 久久精品人人做人人综合试看| 久久精品国产在热久久2019| 天堂网亚洲系列亚洲系列| 亚洲第一av网站| 女人爽到高潮免费视频大全| 国产精品视屏| 毛片免费高清免费| 国内精品视频区在线2021| 欧美另类精品一区二区三区| 亚洲第一视频区| 亚洲成人手机在线| 亚洲久悠悠色悠在线播放| 色婷婷成人| 亚洲免费人成影院| 91国内在线视频| 午夜小视频在线| 国产免费久久精品99re不卡| 国产视频a| 四虎AV麻豆| 国产美女丝袜高潮| 野花国产精品入口| 亚洲美女久久| 国产视频一区二区在线观看| 日韩一级二级三级| 欧美精品亚洲精品日韩专区va| 欧美国产菊爆免费观看| 成人字幕网视频在线观看| 少妇高潮惨叫久久久久久| 二级毛片免费观看全程| 中文字幕永久视频| 日韩在线播放欧美字幕| 亚洲AⅤ波多系列中文字幕| 91精品免费高清在线| 99re热精品视频中文字幕不卡| 亚洲欧美h| 99国产精品免费观看视频| 国产69精品久久| 狠狠色丁香婷婷综合| 久久综合色天堂av| 亚洲天堂.com| 欧美日韩理论| 视频一本大道香蕉久在线播放| 国产色图在线观看| 精品欧美一区二区三区久久久| 青青草原偷拍视频| 婷婷五月在线视频| 国产免费黄| 青草精品视频| 亚洲第一黄色网址| 亚洲人成亚洲精品| 日本福利视频网站| 久久九九热视频| 大乳丰满人妻中文字幕日本| 欧美不卡在线视频| 欧美精品成人| 国产凹凸视频在线观看| 蜜桃视频一区二区| 毛片网站在线播放| 日韩毛片免费| 亚洲大尺码专区影院| 欧美精品另类| 激情网址在线观看| 999国内精品视频免费| 色婷婷电影网| 国产精品微拍| 日韩精品成人在线| 一级香蕉人体视频| 91热爆在线| 国产一级二级在线观看| 国产黄在线观看| 亚洲一区二区三区在线视频| 天天躁日日躁狠狠躁中文字幕| 在线日本国产成人免费的| 99九九成人免费视频精品| 2021最新国产精品网站| 国产精品成人久久|