早期嵌入式處理系統(tǒng)通常由一個(gè)微控制器和一系列外設(shè)構(gòu)成。這些系統(tǒng)通常用來完成獲取少量數(shù)據(jù)、處理數(shù)據(jù)、做出決策、基于決策結(jié)果輸出信息等工作。在某些情況下會(huì)實(shí)現(xiàn)簡(jiǎn)單的人機(jī)交互接口如讀取鍵盤并顯示結(jié)果。處理需求、同時(shí)產(chǎn)生需求,以現(xiàn)在的標(biāo)準(zhǔn)來看似乎微不足道。現(xiàn)代嵌入式系統(tǒng)通常需要處理和分析十億字節(jié)級(jí)的海量數(shù)據(jù),而且常常在確定性和低延時(shí)運(yùn)算上還有一些額外要求。許多應(yīng)用還要求系統(tǒng)在滿足相關(guān)行業(yè)標(biāo)準(zhǔn)的同時(shí)可靠符合可靠性和安全性要求。
目前,似乎還不可能在單一處理器上同時(shí)滿足處理高帶寬數(shù)據(jù)、執(zhí)行系統(tǒng)應(yīng)用程序、響應(yīng)實(shí)時(shí)請(qǐng)求并滿足行業(yè)安全標(biāo)準(zhǔn)。然而,多核異構(gòu)芯片卻可以實(shí)現(xiàn)這些功能。這樣的設(shè)備具有多個(gè)處理單元,每一個(gè)單元都有能力負(fù)責(zé)處理一個(gè)或多個(gè)前述需求,我們稱這樣的設(shè)備為異構(gòu)處理系統(tǒng)。
1 什么是異構(gòu)多處理呢?
一個(gè)異構(gòu)多處理系統(tǒng)由不同類型的多個(gè)單核心或多核心處理器構(gòu)成,異構(gòu)多核處理系統(tǒng)最簡(jiǎn)單的形式是由一個(gè)多核處理器和GPU組成。然而,現(xiàn)代科技讓一顆芯片上的異構(gòu)多處理系統(tǒng)包含以下模塊:
?、俣嗪藨?yīng)用處理器(Multicore Applications Processors);
?、诙嗪藞D形處理器(Multicore Graphics Processors;
?、鄱嗪藢?shí)時(shí)處理器(Multicore Real-Time Processors);
?、芷脚_(tái)管理單元(Platform Management Unit);
⑤配置和安全系統(tǒng)(Configuration and Security Unit);
⑥在FPGA可編程邏輯上實(shí)現(xiàn)特定多核處理器。
本文所引用的異構(gòu)多核處理系統(tǒng)包括上述的多個(gè)分類。使用FPGA邏輯實(shí)現(xiàn)多核處理器的優(yōu)勢(shì)是:它可以創(chuàng)建自定義特殊應(yīng)用處理器,通過并行Pipes和多Pipeline stages來實(shí)現(xiàn)二維并行數(shù)據(jù)處理,使得在一個(gè)時(shí)鐘周期里可以完成大量的計(jì)算。
多核處理器可以設(shè)計(jì)用來執(zhí)行通用計(jì)算或者是專用計(jì)算。和通用處理器執(zhí)行相同功能相比較,專用計(jì)算在減小硅片封裝、提高單時(shí)鐘周期吞吐率、低功耗的同時(shí)能實(shí)現(xiàn)數(shù)據(jù)優(yōu)化處理。
2 含可編程邏輯的異構(gòu)處理系統(tǒng)演變
Xilinx在2002年推出了第一款帶PowerPC405應(yīng)用處理器的FPGA,在接下來的FPGA里,Xilinx在單片內(nèi)集成了更高性能的PowerPC單核或雙核處理器。不像現(xiàn)今產(chǎn)品代的器件處理系統(tǒng)是一個(gè)集成的ASSP(包含處理器、互聯(lián)、存儲(chǔ)控制器和外設(shè)),早期產(chǎn)品需要大量的FPGA資源將各部分資源連接在一起形成一個(gè)ASSP-like的解決方案。
2011年,Xilinx推出了Zynq-7000系列高集成度的器件,它集成了ARM Cortex-A9 MPCore處理器、互聯(lián)單元、內(nèi)存控制器、外設(shè)以及基于Xilinx 7系列FPGA的可編程邏輯。有人肯能會(huì)認(rèn)為Zynq-7000系列是第一代“異構(gòu)多處理”系統(tǒng),因?yàn)槠系目删幊踢壿嬍沟脛?chuàng)建和使用專用處理單元成為現(xiàn)實(shí)。
3 含可編程邏輯的最新一代異構(gòu)處理系統(tǒng)
2015年,Xilinx發(fā)布并且開始供貨新一代異構(gòu)多處理器件Zynq UltraScale+ MPSoC。之前的器件集成了可編程邏輯和一個(gè)或多個(gè)應(yīng)用處理器,Zynq UltraScale+ MPSoC器件集成了:
?、俣嗪藨?yīng)用處理器:四核ARM Cortex-A53應(yīng)用處理器;
?、诙嗪藞D形處理器:雙核ARM Mali-400圖形處理器;
?、鄱嗪藢?shí)時(shí)處理器:雙核ARM Cortex-R5實(shí)時(shí)處理器,可同步運(yùn)行安全性要求苛刻的應(yīng)用;
?、芷脚_(tái)管理單元:一致性三冗余處理器用于power、錯(cuò)誤管理和功能安全管理;
?、菖渲煤桶踩珕卧阂恢滦匀哂嗵幚砥饔糜谙到y(tǒng)配置和安全管理;
⑥FPGA可編程邏輯:用戶可編程邏輯用于定制處理器、處理單元和外設(shè)。
Zynq UltraScale+ MPSoC Block Diagram
多核應(yīng)用處理器是傳統(tǒng)的用于通用計(jì)算的重負(fù)載處理器。這些處理器一般工作在SMP模式,運(yùn)行一個(gè)Linux或Andriod操作系統(tǒng),當(dāng)然也支持虛擬管理運(yùn)行多操作系統(tǒng)。
圖形處理單元是繼浮點(diǎn)運(yùn)算單元之后最流行的協(xié)處理器。GPU從應(yīng)用處理器分擔(dān)圖形處理負(fù)載,實(shí)現(xiàn)復(fù)雜的用戶界面和復(fù)雜的圖形渲染。對(duì)Andriod或Windows CE之類的操作系統(tǒng)而言,這些都是必須的基本功能。通用目的GPU(GPGPU)除了圖形處理,還可以勝任數(shù)據(jù)陣列通用計(jì)算。
實(shí)時(shí)處理器可以低延時(shí)響應(yīng)事件,和應(yīng)用處理器比較通常也更具確定性。在大多數(shù)情況下會(huì)運(yùn)行支持低延時(shí)中斷處理和確定性應(yīng)答的實(shí)時(shí)操作系統(tǒng)。在功能安全性應(yīng)用中,實(shí)時(shí)處理器通常會(huì)運(yùn)行在雙核鎖步模式下,這樣可以檢測(cè)雙處理器中一個(gè)處理器出現(xiàn)的錯(cuò)誤。
平臺(tái)管理單元負(fù)責(zé)管理關(guān)鍵的系統(tǒng)功能和服務(wù)。這些功能包括系統(tǒng)錯(cuò)誤處理、功耗管理和功能安全任務(wù)等。作為系統(tǒng)的心臟,該單元不容失敗。因此,這里使用了包含表決邏輯的三冗余處理器,這使得即使有一個(gè)處理器核發(fā)生錯(cuò)誤事件,子系統(tǒng)也可以繼續(xù)運(yùn)行。
配置和安全單元負(fù)責(zé)系統(tǒng)配置,包括加載處理器第一級(jí)Bootloader、可編程邏輯的配置bit stream,程序代碼和bit文件均有可選的加密認(rèn)證和解密功能。配置和安全單元還可提供持續(xù)的安全監(jiān)控,比如過壓或欠壓、低溫或高溫、試圖提取系統(tǒng)信息訪問等。
片上可編程邏輯為異構(gòu)處理帶來了充分的靈活性??梢酝ㄟ^添加額外的現(xiàn)成的軟核來處理特殊應(yīng)用的計(jì)算任務(wù),也可以在不同層級(jí)添加多pipeline和多pipeline stage自定義軟核實(shí)現(xiàn)數(shù)據(jù)流的大規(guī)模并行處理。
評(píng)論
查看更多