“焦點訪談”——雙核實時係統的架構方法解析
發布時間:2015-03-18 責任編輯:echolady
【導讀】嵌入式的不斷發展和成熟,使得越來越多的工業設備控(kong)製(zhi)係(xi)統(tong)采(cai)用(yong)嵌(qian)入(ru)式(shi)係(xi)統(tong)設(she)計(ji)。而(er)業(ye)界(jie)內(nei)對(dui)於(yu)工(gong)業(ye)設(she)備(bei)控(kong)製(zhi)的(de)最(zui)大(da)要(yao)求(qiu)和(he)特(te)點(dian)就(jiu)是(shi)對(dui)係(xi)統(tong)實(shi)時(shi)性(xing)要(yao)求(qiu)較(jiao)高(gao)。因(yin)此(ci),要(yao)想(xiang)有(you)效(xiao)的(de)滿(man)足(zu)並(bing)提(ti)高(gao)係(xi)統(tong)實(shi)時(shi)性(xing)也(ye)成(cheng)為(wei)研(yan)究(jiu)的(de)熱(re)點(dian)話(hua)題(ti)。
1.引言
傳(chuan)統(tong)的(de)控(kong)製(zhi)係(xi)統(tong)單(dan)核(he)處(chu)理(li)器(qi)架(jia)構(gou)是(shi)主(zhu)流(liu),除(chu)了(le)通(tong)過(guo)提(ti)升(sheng)處(chu)理(li)器(qi)主(zhu)頻(pin)來(lai)提(ti)高(gao)係(xi)統(tong)的(de)響(xiang)應(ying)速(su)度(du),還(hai)通(tong)過(guo)使(shi)用(yong)搶(qiang)占(zhan)式(shi)實(shi)時(shi)操(cao)作(zuo)係(xi)統(tong),引(yin)入(ru)多(duo)線(xian)程(cheng),改(gai)進(jin)係(xi)統(tong)任(ren)務(wu)調(tiao)度(du)策(ce)略(lve)等(deng)軟(ruan)件(jian)方(fang)法(fa)來(lai)進(jin)一(yi)步(bu)提(ti)高(gao)係(xi)統(tong)性(xing)能(neng)。但(dan)隨(sui)著(zhe)應(ying)用(yong)不(bu)斷(duan)複(fu)雜(za),控(kong)製(zhi)精(jing)度(du)要(yao)求(qiu)不(bu)斷(duan)提(ti)高(gao),有(you)限(xian)的(de)係(xi)統(tong)資(zi)源(yuan)成(cheng)為(wei)控(kong)製(zhi)係(xi)統(tong)性(xing)能(neng)提(ti)升(sheng)的(de)最(zui)大(da)瓶(ping)頸(jing)。
針對單CPU架(jia)構(gou)的(de)局(ju)限(xian)性(xing),多(duo)處(chu)理(li)器(qi)係(xi)統(tong)的(de)研(yan)究(jiu)應(ying)用(yong)逐(zhu)漸(jian)增(zeng)多(duo)。隨(sui)著(zhe)雙(shuang)核(he)架(jia)構(gou)應(ying)用(yong)的(de)不(bu)斷(duan)推(tui)廣(guang),同(tong)時(shi)雙(shuang)核(he)微(wei)處(chu)理(li)器(qi)技(ji)術(shu)逐(zhu)漸(jian)成(cheng)熟(shu),如(ru)何(he)設(she)計(ji)穩(wen)定(ding)高(gao)效(xiao)的(de)係(xi)統(tong)軟(ruan)件(jian)架(jia)構(gou)成(cheng)為(wei)當(dang)前(qian)研(yan)究(jiu)的(de)重(zhong)點(dian)。本(ben)文(wen)以(yi)F28M35雙核係統為例,介紹了一種以IPC通信機製為核心,基於共享內存的雙核軟件架構方法。
2.雙核間通信的係統結構
完成雙核間的數據通信,除了數據傳輸介質——共gong享xiang內nei存cun外wai,還hai需xu要yao係xi統tong提ti供gong一yi套tao雙shuang核he間jian交jiao互hu的de信xin號hao機ji製zhi。通tong常chang該gai信xin號hao機ji製zhi中zhong同tong時shi包bao括kuo中zhong斷duan信xin號hao和he非fei中zhong斷duan信xin號hao。利li用yong該gai信xin號hao機ji製zhi,結jie合he共gong享xiang內nei存cun,可ke設she計ji出chu各ge種zhong靈ling活huo的de通tong信xin方fang式shi。
從cong通tong信xin信xin號hao的de角jiao度du,通tong信xin方fang式shi可ke分fen為wei輪lun詢xun方fang式shi和he中zhong斷duan方fang式shi。由you於yu輪lun詢xun方fang式shi使shi內nei核he處chu於yu忙mang等deng的de狀zhuang態tai,因yin此ci應ying盡jin量liang避bi免mian使shi用yong,該gai方fang式shi多duo用yong於yu雙shuang核he之zhi間jian事shi件jian需xu嚴yan格ge按an照zhao一yi定ding的de順shun序xu執zhi行xing的de情qing況kuang,例li如ru係xi統tong啟qi動dong時shi雙shuang核he之zhi間jian的de初chu始shi化hua交jiao互hu。
從攜帶數據量的角度講,雙核之間可僅僅利用信號機製完成通信,雙方協定默認的操作;另ling外wai,也ye是shi大da部bu分fen時shi候hou的de通tong信xin方fang式shi,雙shuang方fang通tong過guo共gong享xiang內nei存cun交jiao換huan數shu據ju,該gai方fang式shi在zai設she計ji時shi,將jiang共gong享xiang內nei存cun劃hua分fen為wei兩liang種zhong屬shu性xing的de內nei存cun區qu,分fen別bie用yong於yu兩liang個ge方fang向xiang的de數shu據ju傳chuan遞di。一yi種zhong內nei存cun允yun許xu一yi個ge內nei核he進jin行xing讀du寫xie操cao作zuo,而er允yun許xu另ling外wai一yi個ge內nei核he進jin行xing隻zhi讀du操cao作zuo,另ling一yi種zhong則ze方fang向xiang相xiang反fan。例li如ru,A內核欲向B內核發送數據時,先將數據寫入A核空間內的共享內存區,然後向B核發送信號,B核收到信號後從該方向的共享內存區將數據取出,並回複A核,完成一次數據通信。
tongxinxieyihetongxinjiekoufengzhuangshishuanghetongxinyinggaizhongdiankaolvdehuanjie。jiandandeshujutongxin,shuangfangkeyizhijiefasongshuju,morenshuangfangyijingzhidaoshujudehanyiyijishujuyinggaifangzhideneicundizhi。danshisuizhexitongzhujianfuza,daimaliangzhujianzengjia,wuxieyideshujutongxingeibianchenghelijiedoudailaihendawenti,jiangdixitongdekekuozhanxingneng。zaishejizhongshuanghetongxinkeyicaiyonghexitongwaishexiangtongdetongxinxieyi,liruchuankoutongxinshiyongdeModbusxieyi,zheyangkeyizhongfuliyongxieyijiexihanshu,tongshiyeketigaokeyizhixing。lingwaikegenjushijixuyaozixingdingyishiyongdetongxinxieyi,huozhejiangtongyongdetongxinxieyizuoshidangdexiugaiyigengshiyinggongxiangneicundashujuliangdeshujutongxin。guanyutongxinjiekouderuanjianfengzhuangtongchangdingyishujufasonghanshu、數據接收函數、協議解析函數等,原則是接口應盡量精簡,最大程度降低雙核間的耦合度。
3.雙核間的數據共享機製
雙(shuang)核(he)間(jian)實(shi)現(xian)數(shu)據(ju)共(gong)享(xiang)主(zhu)要(yao)有(you)兩(liang)種(zhong)策(ce)略(lve),一(yi)種(zhong)是(shi)將(jiang)共(gong)享(xiang)數(shu)據(ju)直(zhi)接(jie)存(cun)儲(chu)於(yu)共(gong)享(xiang)內(nei)存(cun)中(zhong),雙(shuang)核(he)均(jun)可(ke)對(dui)其(qi)進(jin)行(xing)操(cao)作(zuo)。該(gai)方(fang)法(fa)關(guan)鍵(jian)要(yao)解(jie)決(jue)對(dui)共(gong)享(xiang)內(nei)存(cun)互(hu)斥(chi)訪(fang)問(wen)的(de)問(wen)題(ti)。關(guan)於(yu)雙(shuang)口(kou)RAM互斥訪問的方法大致有兩種:
1)硬件判優,係統通過存儲器衝突仲裁單元向兩個內核提供共享內存訪問衝突標誌,當雙核同時對相同地址的RAM進行存取時,仲裁單元促發相應忙信號,設計中可利用該信號插入等待時間,避免訪問衝突。
2)xinhaoliangjizhi,xitongtigongduliyushuanghedexinhaoliangguanlidanyuan。gaifangshiyoujiaolingpaipanyoufangshi,meigelingpaikeduiyingzhidingdizhi,zhidingchangdudegongxiangneicunduan。shuangheanzhaoxiedingdeguizejiaotihuodelingpai,jinercaozuoxiangyingdegongxiangneicunduan。dangshuanghetongshishenqingtongyigelingpaishi,xinhaoliangguanlidanyuancaidingshuixianzhanyong。shejizhongketongguozaifangwenneicunqianxianshenqingduiyingdelingpaishixianshuangheduigongxiangneicunqudehuchifangwen。
另(ling)一(yi)種(zhong)實(shi)現(xian)數(shu)據(ju)共(gong)享(xiang)的(de)策(ce)略(lve)是(shi)在(zai)雙(shuang)核(he)各(ge)自(zi)本(ben)地(di)定(ding)義(yi)相(xiang)同(tong)的(de)數(shu)據(ju)作(zuo)為(wei)共(gong)享(xiang)數(shu)據(ju),按(an)照(zhao)寫(xie)後(hou)及(ji)時(shi)更(geng)新(xin)的(de)原(yuan)則(ze),利(li)用(yong)中(zhong)斷(duan)方(fang)式(shi)通(tong)過(guo)雙(shuang)核(he)間(jian)的(de)數(shu)據(ju)通(tong)信(xin)實(shi)現(xian)數(shu)據(ju)同(tong)步(bu)。這(zhe)種(zhong)方(fang)法(fa)適(shi)用(yong)於(yu)共(gong)享(xiang)數(shu)據(ju)滿(man)足(zu)一(yi)定(ding)條(tiao)件(jian)時(shi),即(ji)該(gai)共(gong)享(xiang)數(shu)據(ju)對(dui)於(yu)其(qi)中(zhong)一(yi)個(ge)內(nei)核(he)是(shi)隻(zhi)讀(du)的(de),否(fou)則(ze),由(you)於(yu)雙(shuang)核(he)獨(du)立(li)運(yun)行(xing),運(yun)行(xing)進(jin)度(du)幾(ji)乎(hu)沒(mei)有(you)製(zhi)約(yue),若(ruo)出(chu)現(xian)雙(shuang)核(he)均(jun)改(gai)寫(xie)共(gong)享(xiang)數(shu)據(ju)的(de)話(hua),無(wu)法(fa)保(bao)證(zheng)數(shu)據(ju)的(de)有(you)效(xiao)性(xing)。
4. 雙核任務分配
任務分配的原則在於充分利用雙核資源,最大限度縮小係統響應時間。例如在運動控製領域利用ARM+DSP雙核處理器構架控製係統,在ARM核中實現係統邏輯控製,在DSP核中實現運動控製輸出,ARM核控製運動過程,通過命令的形式驅動DSP核實現具體的運動動作。另外在注塑機控製實例中,利用ARM核實現注塑過程控製,而在DSP端完成注塑機位置和溫度的智能控製算法,實現係統優化處理。
5. F28M35雙核處理器的軟件架構設計
5.1 F28M35雙核存儲結構
TI的全新Concerto-F28M35微控製器采用了一種雙子係統架構,其中包含一個TI C28x內核與一個ARM Cortex-M3內核。這種混合架構將業內用於控製和主機通信功能的最佳技術融入到單個控製器中,而該控製器可提供維持實時控製環路所需的性能、效率及可靠性,並具備低延遲通信所需的快速響應能力。
[page]
如圖1所示,在F28M35中包含兩類共享內存,一類是MTOC-message RAM(MTOCMSGRAM)和CTOM-message RAM(CTOMMSGRAM),大小都為2K,其特點是一個內核對其有讀寫的權限,而另外一個內核僅有隻讀權限。例如,M3內核可以讀寫MTOCMSGRAM內存,而C28內核隻能對MTOCMSGRAM進行讀操作。另外一類共享內存包含8個內存塊(S0-S7),大小均為8K。該類內存可以被劃分到任意內核,係統通過控製寄存器MSxMSEL設置該類內存的屬性,每塊內存對應該寄存器中的一位,通過設置相應位來設置相應內存塊的歸屬權。例如,若S0被設置為歸屬M3內核,則M3內核可讀寫該內存,而C28內核隻能對其進行讀操作。同時需要注意的是,控製寄存器MSxMSEL隻能在M3內核中進行設置。

圖1.F28M35x係統結構
5.2 IPC機製
在雙核技術中,雙方之間的通信是核心。在F28M35x體係結構中,基於IPC信號和IPC中斷實現IPC通信(Inter ProcessorCommunications)機製。其工作原理如圖2所示。

圖2.IPC機製原理
該處理器在每個方向(MTOC/CTOM)上定義了32個IPC信號,前4個信號促發時可以附加中斷功能。處理器通過一套寄存器組實現IPC信號的操作。如圖所示,每個內核通過自己存儲空間內的一套寄存器實現IPC功能,每個寄存器32位,每一位分別代表一個IPC信號,第0-3位同時可設置為IPC中斷。以C28內核為例,寄存器組分別包括:
1)CTOMIPCSET,用於向M3核發送IPC信號或者IPC中斷。該寄存器置位時,同時將CTOMIPCFLG和CTOMIPCSTS寄存器相應位置為1。
2)CTOMIPCCLR,用於清除C28到M3方向上的IPC信號或IPC中斷標誌。該寄存器置位時,同時將CTOMIPCFLG和CTOMIPCSTS寄存器相應位清零。
3)CTOMIPCFLG,該寄存器為隻讀寄存器,用於顯示C28核到M3核方向上當前IPC信號的狀態。該寄存器和M3存儲空間中的CTOMIPCSTS寄存器在物理上是同一個寄存器。
4)MTOCIPCSTS,作用和CTOMIPCFLG類似,同樣是隻讀的,隻是表征方向相反,用於顯示M3核到C28核當前IPC信號的狀態。同樣,它和M3存儲空間中的MTOCIPCFLG寄存器在物理上是同一個寄存器。
5)MTOCIPCACK,該寄存器置位時,同時將MTOCIPCFLG和MTOCIPCSTS寄存器相應位清零。當C28內核收到M3發送來的IPC信號或者IPC中斷時,利用該寄存器發送確認信息,完成二者的握手。
形象的說,雙核之間維護了兩條相互獨立的全雙工通道,每條通道包含了一個方向的信號發送(SET)和反向的信號確認(ACK)。同時雙方可以隨時讀取兩個方向下的當前IPC狀態(FLG/STS)。最終實現雙核間的IPC交互機製。
此外,F28M35還提供了一套IPC消息寄存器,分別是MTOC Message Registers和CTOM Message Registers,分別在每個內核空間對應4個寄存器。結合IPC信號和IPC中斷實現雙核之間的便捷通信。以M3內核空間為例說明,如表1所示,該寄存器組包括命令寄存器,地址寄存器,寫數據寄存器,讀數據寄存器。

5.3 雙核芯片的軟件係統
以係統控製塊數據結構為核心的雙核係統的架構方法。即設計了一種數據結構,稱作係統控製塊(System Control Block,SCB)。將係統所有相關控製對象均映射到係統控製塊中,每個任務對係統的操作均可轉化為對SCB的讀寫操作,這樣係統可以很方便的實現模塊化,定義SCB操作管理模塊即可實現多任務對係統操作的統一管理。關於SCB與實際控製對象的物理關聯可以通過對應的驅動模塊實現。

圖3.基於SCB的係統架構
圖3中描述了以SCB為核心的係統簡易邏輯架構,SCB不僅體現控製器與外部控製對象之間關係,例如,映射人機界麵操作、PC機監控過程以及各種輸入輸出信號等;同時,SCB還包含了雙核之間實現係統控製的內部數據映射。SCB的基本結構如圖4所示,主要包括A核外設映射區、B核外設映射區、係統參數區、係統狀態區等。

圖4.SCB結構示意圖
SCB是整個係統的體現,從處理器內部分析,雙核通過維護同一個SCB實現對係統的協調控製。利用雙核之間的通信,當其中一個內核的SCB被寫操作時,立即向另一內核發送更新命令,實時完成雙核間的數據同步。以A內核IO資源映射為例說明SCB的同步,過程如圖5所示。

圖5.SCB同步示例
利用上小結中介紹的IPC信號機製,以及多種形式的存儲空間,可以靈活設計出多種雙核通信方式。如下所述:
1)僅利用IPC信號或者IPC中斷方式,多用於完成拓撲序事件執行,或者係統啟動時初始化握手交互。
2)IPC信號/中斷+IPC消(xiao)息(xi)寄(ji)存(cun)器(qi)組(zu)方(fang)式(shi),用(yong)於(yu)小(xiao)數(shu)據(ju)量(liang)的(de)通(tong)信(xin)。命(ming)令(ling)寄(ji)存(cun)器(qi)中(zhong)的(de)命(ming)令(ling)完(wan)全(quan)由(you)軟(ruan)件(jian)定(ding)義(yi),用(yong)戶(hu)可(ke)設(she)計(ji)不(bu)同(tong)的(de)命(ming)令(ling)來(lai)完(wan)成(cheng)不(bu)同(tong)的(de)數(shu)據(ju)操(cao)作(zuo)。多(duo)用(yong)於(yu)對(dui)字(zi)節(jie)型(xing)內(nei)存(cun)的(de)讀(du)寫(xie)操(cao)作(zuo)。
3)IPC信號/中斷+MSGRAM/S0-S7方式,S0-S7可ke分fen別bie分fen配pei給gei任ren意yi內nei核he,該gai方fang式shi可ke以yi實shi現xian大da數shu據ju量liang的de核he間jian通tong信xin,同tong時shi利li用yong通tong用yong或huo者zhe自zi定ding義yi的de通tong信xin協xie議yi,可ke提ti高gao係xi統tong的de擴kuo展zhan能neng力li及ji可ke移yi植zhi性xing。
如圖6所示,是基於F28M35雙核處理器設計實現的注塑機主控製器,采用本文介紹的方法實現了主從式軟件架構,ARM核作為主核完成與上位機的通信任務和係統邏輯過程的控製任務,利用DSP高速的計算能力作為從核完成注塑機位置控製和溫度控製智能算法的執行任務,雙核通過SCB的映射實現相互的協調。新的控製器替代了原有的以600MHZ主頻處理器為核心的控製係統,較好了完成了注塑機的控製任務。

圖6.雙核係統在注塑機中的應用
zaiyihoudegongzuozhong,conghezhinengkongzhisuanfarengyouyouhuadekongjian,xitongxingnengrengkejinyibugaishan。lingwai,chulezhucongmoshi,jiangyanjiushuangzhumoshi,shixiangenglinghuoyouxiaodexitongjiagou,bingwanchengshuangduandulidezaixianjiankonghechengxuxiazaidenggongneng,jinyibujiangdiruanjiankaifanandu。
相關閱讀:
技術前線報道:提高遙測信號處理器測試性的方案
首曝三星14nm旗艦處理器,疑為蘋果A9
5.2寸屏+64位處理器,三星Galaxy A7如何?
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光




