<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 什么是異構多處理系統,為什么需要異構多處理系統?

什么是異構多處理系統,為什么需要異構多處理系統?

作者: 時(shí)間:2016-06-20 來(lái)源:網(wǎng)絡(luò ) 收藏

  早期嵌入式處理系統通常由一個(gè)微控制器和一系列外設構成。這些系統通常用來(lái)完成獲取少量數據、處理數據、做出決策、基于決策結果輸出信息等工作。在某些情況下會(huì )實(shí)現簡(jiǎn)單的人機交互接口如讀取鍵盤(pán)并顯示結果。處理需求、同時(shí)產(chǎn)生需求,以現在的標準來(lái)看似乎微不足道?,F代嵌入式系統通常需要處理和分析十億字節級的海量數據,而且常常在確定性和低延時(shí)運算上還有一些額外要求。許多應用還要求系統在滿(mǎn)足相關(guān)行業(yè)標準的同時(shí)可靠符合可靠性和安全性要求。

本文引用地址:http://dyxdggzs.com/article/201606/292846.htm

  目前,似乎還不可能在單一處理器上同時(shí)滿(mǎn)足處理高帶寬數據、執行系統應用程序、響應實(shí)時(shí)請求并滿(mǎn)足行業(yè)安全標準。然而,多核異構芯片卻可以實(shí)現這些功能。這樣的設備具有多個(gè)處理單元,每一個(gè)單元都有能力負責處理一個(gè)或多個(gè)前述需求,我們稱(chēng)這樣的設備為異構處理系統。

  1 什么是呢?

  一個(gè)系統由不同類(lèi)型的多個(gè)單核心或多核心處理器構成,異構多核處理系統最簡(jiǎn)單的形式是由一個(gè)多核處理器和GPU組成。然而,現代科技讓一顆芯片上的系統包含以下模塊:

 ?、俣嗪藨锰幚砥?Multicore Applications Processors);

 ?、诙嗪藞D形處理器(Multicore Graphics Processors;

 ?、鄱嗪藢?shí)時(shí)處理器(Multicore Real-Time Processors);

 ?、芷脚_管理單元(Platform Management Unit);

 ?、菖渲煤桶踩到y(Configuration and Security Unit);

 ?、拊?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/FPGA">FPGA可編程邏輯上實(shí)現特定多核處理器。

  本文所引用的異構多核處理系統包括上述的多個(gè)分類(lèi)。使用邏輯實(shí)現多核處理器的優(yōu)勢是:它可以創(chuàng )建自定義特殊應用處理器,通過(guò)并行Pipes和多Pipeline stages來(lái)實(shí)現二維并行數據處理,使得在一個(gè)時(shí)鐘周期里可以完成大量的計算。

  多核處理器可以設計用來(lái)執行通用計算或者是專(zhuān)用計算。和通用處理器執行相同功能相比較,專(zhuān)用計算在減小硅片封裝、提高單時(shí)鐘周期吞吐率、低功耗的同時(shí)能實(shí)現數據優(yōu)化處理。

  2 含可編程邏輯的異構處理系統演變

  Xilinx在2002年推出了第一款帶PowerPC405應用處理器的,在接下來(lái)的FPGA里,Xilinx在單片內集成了更高性能的PowerPC單核或雙核處理器。不像現今產(chǎn)品代的器件處理系統是一個(gè)集成的ASSP(包含處理器、互聯(lián)、存儲控制器和外設),早期產(chǎn)品需要大量的FPGA資源將各部分資源連接在一起形成一個(gè)ASSP-like的解決方案。

  2011年,Xilinx推出了Zynq-7000系列高集成度的器件,它集成了ARM Cortex-A9 MPCore處理器、互聯(lián)單元、內存控制器、外設以及基于Xilinx 7系列FPGA的可編程邏輯。有人肯能會(huì )認為Zynq-7000系列是第一代“異構多處理”系統,因為片上的可編程邏輯使得創(chuàng )建和使用專(zhuān)用處理單元成為現實(shí)。

  3 含可編程邏輯的最新一代異構處理系統

  2015年,Xilinx發(fā)布并且開(kāi)始供貨新一代異構多處理器件Zynq UltraScale+ MPSoC。之前的器件集成了可編程邏輯和一個(gè)或多個(gè)應用處理器,Zynq UltraScale+ MPSoC器件集成了:

 ?、俣嗪藨锰幚砥鳎核暮薃RM Cortex-A53應用處理器;

 ?、诙嗪藞D形處理器:雙核ARM Mali-400圖形處理器;

 ?、鄱嗪藢?shí)時(shí)處理器:雙核ARM Cortex-R5實(shí)時(shí)處理器,可同步運行安全性要求苛刻的應用;

 ?、芷脚_管理單元:一致性三冗余處理器用于power、錯誤管理和功能安全管理;

 ?、菖渲煤桶踩珕卧阂恢滦匀哂嗵幚砥饔糜谙到y配置和安全管理;

 ?、轋PGA可編程邏輯:用戶(hù)可編程邏輯用于定制處理器、處理單元和外設。

  

 

  多核應用處理器是傳統的用于通用計算的重負載處理器。這些處理器一般工作在SMP模式,運行一個(gè)Linux或Andriod操作系統,當然也支持虛擬管理運行多操作系統。

  圖形處理單元是繼浮點(diǎn)運算單元之后最流行的協(xié)處理器。GPU從應用處理器分擔圖形處理負載,實(shí)現復雜的用戶(hù)界面和復雜的圖形渲染。對Andriod或Windows CE之類(lèi)的操作系統而言,這些都是必須的基本功能。通用目的GPU(GPGPU)除了圖形處理,還可以勝任數據陣列通用計算。

  實(shí)時(shí)處理器可以低延時(shí)響應事件,和應用處理器比較通常也更具確定性。在大多數情況下會(huì )運行支持低延時(shí)中斷處理和確定性應答的實(shí)時(shí)操作系統。在功能安全性應用中,實(shí)時(shí)處理器通常會(huì )運行在雙核鎖步模式下,這樣可以檢測雙處理器中一個(gè)處理器出現的錯誤。

  平臺管理單元負責管理關(guān)鍵的系統功能和服務(wù)。這些功能包括系統錯誤處理、功耗管理和功能安全任務(wù)等。作為系統的心臟,該單元不容失敗。因此,這里使用了包含表決邏輯的三冗余處理器,這使得即使有一個(gè)處理器核發(fā)生錯誤事件,子系統也可以繼續運行。

  配置和安全單元負責系統配置,包括加載處理器第一級Bootloader、可編程邏輯的配置bit stream,程序代碼和bit文件均有可選的加密認證和解密功能。配置和安全單元還可提供持續的安全監控,比如過(guò)壓或欠壓、低溫或高溫、試圖提取系統信息訪(fǎng)問(wèn)等。

  片上可編程邏輯為異構處理帶來(lái)了充分的靈活性??梢酝ㄟ^(guò)添加額外的現成的軟核來(lái)處理特殊應用的計算任務(wù),也可以在不同層級添加多pipeline和多pipeline stage自定義軟核實(shí)現數據流的大規模并行處理。

  4 異構多處理系統實(shí)例

  機器人拾取和放置裝配線(xiàn)是一個(gè)很常見(jiàn)的機器視覺(jué)和控制應用實(shí)例,這個(gè)應用通常有以下基本功能:

 ?、俑叻直媛氏鄼C視頻采集系統;

 ?、诎炼葘Ρ榷日{節、失真校正和消除死點(diǎn)等功能的視頻圖像處理;

 ?、勰繕藱z測和識別;

 ?、軜擞浗M件在裝配中正確位置的算法決策;

 ?、輽C器手臂運動(dòng)路徑選擇;

 ?、揠姍C驅動(dòng)控制;

 ?、甙踩录z測和關(guān)機;

 ?、嘤糜跔顟B(tài)顯示和系統控制的圖形用戶(hù)界面;

 ?、崤渲煤桶踩芾?。

  上述的每一個(gè)功能都可能需要特定的處理能力,比如,讓通用處理器來(lái)處理實(shí)時(shí)HD圖像,處理器很容易就會(huì )負載過(guò)重無(wú)法在特定時(shí)間完成處理。

  那么,就讓我們考慮使用這種異構多處理系統實(shí)現可能的解決方案。為了有助于更加形象的理解,Xilinx將會(huì )以Zynq UltraScale+ MPSoC控制機器人系統在平板電腦上玩紙牌游戲的例子來(lái)詮釋。系統的部分功能已經(jīng)實(shí)現并在“Embedded World 2016”展會(huì )上展示。

  4.1 視頻獲取和處理

  1080P60視頻流要求3Gbps(373MB/s)的數據率,視頻流路徑上需要做的處理可能包括:亮度、對比度調節,白平衡,失真校正,死點(diǎn)剔除等。這些bit級處理用可編程邏輯完成非常高效,無(wú)需處理器太多參與。

  4.2 目標檢測和識別

  初始對象檢測通常需要掃描整幅圖像尋找類(lèi)似細節目標輪廓之類(lèi)的關(guān)鍵特征,這項功能一般由可編程邏輯實(shí)現。一旦目標被判定為疑似目標,那么就可能需要執行更為復雜的算法對目標進(jìn)行更進(jìn)一步的決策判定。應用處理器通常負責目標識別的下一級數據量變小但算法更加復雜的處理。

  在這個(gè)機器人紙牌游戲案例中,所有的圖像都是通過(guò)可編程邏輯掃描,識別紙牌邊界和定位游戲紙牌,以及紙牌的排列和花色。隨著(zhù)數據量明顯降低,紙牌排列和邊界圖像被遞交給應用處理器通過(guò)圖像識別算法來(lái)識別排列和花色。

  4.3 算法決策

  算法決策一般是很復雜的處理,通常通用應用處理器可以很好的完成。在我們的例子里, 新牌打出的時(shí)候觸發(fā)應用處理器計算新的關(guān)于牌的角色和運動(dòng)可能的決策集。

  4.4 運動(dòng)路徑選擇

  兩點(diǎn)之間,直線(xiàn)最短,這樣的路徑會(huì )導致目標在兩個(gè)端點(diǎn)之間發(fā)生沖突。運動(dòng)路徑通常被分為多段,并且需要從傳統的笛卡爾坐標系中翻譯到機器人運行系統坐標系。在我們的多核異構系統中,這既可以通過(guò)應用處理器完成也可以通過(guò)實(shí)時(shí)處理器完成。

  機器人紙牌游戲相對而言會(huì )比較簡(jiǎn)單,因為在平板電腦上運動(dòng)路徑?jīng)]有潛在的障礙物。我們在應用實(shí)例里選擇了Delt機器人,Delt機器人結構通常是三個(gè)并聯(lián)手臂連接到一個(gè)和受動(dòng)器相關(guān)的通用關(guān)節執行器上。因此,受動(dòng)器在3D笛卡爾坐標系中的運動(dòng)必須翻譯成三個(gè)獨立馬達的運動(dòng)矢量,在這個(gè)應用中所需的x,y,z坐標參數傳給實(shí)時(shí)處理器來(lái)計算三個(gè)機械手臂各自的運動(dòng)路徑。

  4.5 電機驅動(dòng)控制

  電機控制算法用于控制加速、正常運行和減速,對機械約束允許的最小運動(dòng)時(shí)間進(jìn)行優(yōu)化,確保在加減速的過(guò)程中不會(huì )對部件造成損害,減小能量消耗等等。上述計算和運動(dòng)驅動(dòng)一起,通常都是通過(guò)實(shí)時(shí)處理器來(lái)實(shí)現,實(shí)時(shí)處理器在這些方面體現出卓越的性能,在我們的例子里也是如此。實(shí)時(shí)處理器工作在鎖步模式下來(lái)增加可靠性。

  4.6 安全事件檢測和關(guān)機

  安全事件可以是人進(jìn)入機器人視野,而機器人可能會(huì )對人類(lèi)造成傷害,能夠識別這一事件并且在一定程度上快速響應保護人類(lèi)對系統而言至關(guān)重要。我們機器人紙牌運動(dòng)員在其周?chē)鷺嫿艘粋€(gè)紅外線(xiàn)墻,當某一光束中斷,機器人的電源會(huì )馬上關(guān)閉,然后系統會(huì )立馬停止。在這個(gè)例子里,可以使用三冗余平臺管理單元,這個(gè)高度可靠的處理單元可以接收來(lái)自紅外線(xiàn)墻的輸入,在事件檢測時(shí)關(guān)閉機器人。

  4.7 圖形用戶(hù)接口

  圖形用戶(hù)接口(GUIs)通常運行在Linux操作系統上層,Linux支持從基本的窗口管理器擴展到完整桌面環(huán)境。

  這個(gè)紙牌機器人系統需要顯示紙牌桌界面,實(shí)時(shí)預覽HD相機圖像,紙牌排列和花色檢測窗口顯示以及游戲狀態(tài)窗口等等。Ubuntu桌面環(huán)境提供了一個(gè)很好的平臺,在這上面前述內容都可以實(shí)現很好的顯示,并且可以通過(guò)這些用戶(hù)界面控制游戲。多核應用處理器是運行Linux和Ubuntu桌面的完美選擇,集成的多核GPU用于融合顯示2D、3D和視頻數據。

  4.8 配置和安全

  處理系統需要啟動(dòng)操作系統和應用程序,可編程邏輯也需要配置。開(kāi)發(fā)者越來(lái)越希望保護他們的代碼和知識產(chǎn)權核不被競爭對手和黑客獲取,因此代碼和配置數據的加密和驗證對確保代碼正確加載至關(guān)重要。一旦運行,系統就需要保護免受外界影響。

  在這個(gè)例子里面,配置和安全單元在紙牌游戲運行之前執行驗證和解密代碼及配置數據。燒錄的E-Fuses可以保護配置和數據不能通過(guò)JTAG之類(lèi)的接口回讀。

  系統攻擊可能會(huì )導致信息泄露或者不正常的運行。這些攻擊可能包括過(guò)壓/欠壓或者是超高溫/超低溫等,這些攻擊可以被檢測到并按需鎖定系統。

  5 總結

  早期的嵌入式系統通常包含一個(gè)或幾個(gè)微處理器來(lái)處理包括用戶(hù)接口、數據采集、數據處理、外部控制和應用處理等各種各樣的功能。接下來(lái)的各代產(chǎn)品帶來(lái)更高性能的處理器、多核處理器、專(zhuān)用處理器和實(shí)時(shí)處理器。FPGA最初以膠合邏輯角色出現,隨著(zhù)他們邏輯量變大,已經(jīng)用于實(shí)現額外的外設、狀態(tài)機和大規模并行數據處理。最新一代Xilinx Zynq UltraScale+ MPSoC是一個(gè)單片異構多處理系統,它由多核應用處理器、多核圖形處理器、多核實(shí)時(shí)處理器 、一個(gè)平臺管理單元、一個(gè)配置和安全管理單元以及可實(shí)現多處理組件的編程邏輯組成。這樣的器件使得軟件和硬件都可以根據特定應用完全定制來(lái)充分滿(mǎn)足目標嵌入式應用的要求。



關(guān)鍵詞: 異構多處理 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>