如何簡(jiǎn)化向多核的遷移的基本指導(dǎo)
簡(jiǎn)介
本文引用地址:http://www.ex-cimer.com/article/148037.htm全球?qū)τ?jì)算功率和性能日益增長(zhǎng)的需求已經(jīng)將嵌入式計(jì)算推向多核系統(tǒng)發(fā)展路徑。該遷移帶來(lái)一系列復(fù)雜的問(wèn)題:我該如何遷移傳統(tǒng)軟件,使其與多核硬件一起使用?我是否需要通過(guò)虛擬化實(shí)現(xiàn)更高性能?我如何能夠在一個(gè)對(duì)我來(lái)說(shuō)可以承擔(dān)的功率范圍中獲得所需的性能?通過(guò)結(jié)合高性能硬件;強(qiáng)大的、用戶友好型軟件和工具;以及廣泛的開(kāi)放式生態(tài)系統(tǒng),飛思卡爾可以幫助您解決這些問(wèn)題和更多其他問(wèn)題。
雖然向多核的遷移開(kāi)始于網(wǎng)絡(luò)和無(wú)線基礎(chǔ)設(shè)施等高端應(yīng)用,多核也開(kāi)始用于過(guò)去應(yīng)用較少的領(lǐng)域,例如汽車、工業(yè)控制應(yīng)用的安全關(guān)鍵領(lǐng)域、以及打印機(jī)和影像應(yīng)用-可以使用更高速度和功率的任意應(yīng)用。向全球網(wǎng)絡(luò)連接性的遷移給網(wǎng)絡(luò)帶來(lái)巨大壓力,并增加了對(duì)更高處理功率的需求。如果沒(méi)有呈幾何級(jí)增長(zhǎng)的功率,單線程性能無(wú)法繼續(xù)提高,這種方法會(huì)影響系統(tǒng)成本和可靠性。為了將功率保持在可以管理的等級(jí),應(yīng)用必須遷移至多核,而不是不斷增加頻率。
實(shí)現(xiàn)多核性能等級(jí)不像向系統(tǒng)中添加更多內(nèi)核那樣簡(jiǎn)單。當(dāng)從單核遷移至多核硬件時(shí),出現(xiàn)許多與傳統(tǒng)軟件的遷移有關(guān)的復(fù)雜問(wèn)題??傮w來(lái)看,在這種遷移和多線程編程領(lǐng)域軟件工程師缺乏培訓(xùn)。虛擬化對(duì)于最大限度發(fā)揮多核硬件投資的價(jià)值至關(guān)重要,是一種截然不同的思考操作系統(tǒng)和資源分區(qū)的方式。當(dāng)您在解決方案中添加更多處理功率時(shí),多核系統(tǒng)當(dāng)然無(wú)法避免發(fā)生問(wèn)題:功耗。
飛思卡爾是世界領(lǐng)先的嵌入式處理技術(shù)提供商,至今已向世界各地發(fā)送了3億多個(gè)通信處理器。我們的多核QorIQ通信處理器、面向片上基站無(wú)線系統(tǒng)的QorIQ Qonverge平臺(tái)和VortiQa軟件解決方案--在全球有眾多經(jīng)驗(yàn)豐富的現(xiàn)場(chǎng)支持工程師和強(qiáng)大、開(kāi)放的合作伙伴生態(tài)系統(tǒng)-將我們的嵌入式處理技術(shù)帶入新網(wǎng)絡(luò)紀(jì)元。
軟件問(wèn)題
向多核遷移路徑中兩個(gè)巨大的障礙都涉及軟件。 第一個(gè)問(wèn)題是其中的一項(xiàng)遷移。 用于單處理器順序執(zhí)行程序的數(shù)百萬(wàn)行傳統(tǒng)代碼必須遷移以便保護(hù)投資。 在映射和遷移變得更加簡(jiǎn)單和更加高效之前,從單核遷移至多核系統(tǒng)在某種程度上將非常困難。 第二個(gè)問(wèn)題是缺乏關(guān)于多核系統(tǒng)編程的基本知識(shí)。 從硬件來(lái)看,安裝多個(gè)內(nèi)核非常簡(jiǎn)單,但是與以前的單核編程相比,多核編程需要不同的思路和不同的培訓(xùn)。
飛思卡爾在培訓(xùn)和工具上進(jìn)行了大量投資,使向多核遷移變得更加簡(jiǎn)單。QorIQ多核軟件開(kāi)發(fā)套件(SDK)和CodeWarrior開(kāi)發(fā)工具等開(kāi)發(fā)工具有助于移植流程。飛思卡爾和我們的合作伙伴還提供用于仿真和建模分析的工具,包括處理器分區(qū)的“假設(shè)”分析。 開(kāi)發(fā)人員的培訓(xùn)始終是需要關(guān)注的重點(diǎn)。提供了在多核處理器上重新映射序列應(yīng)用的流程的真實(shí)案例,飛思卡爾還根據(jù)這些研究為開(kāi)發(fā)人員開(kāi)發(fā)了應(yīng)用說(shuō)明、演示文檔和文章。
飛思卡爾預(yù)計(jì)約有60%至70%的多核研發(fā)預(yù)算都用在軟件而不是硬件上。飛思卡爾始終關(guān)注這一點(diǎn),使多核產(chǎn)品對(duì)軟件的適應(yīng)性非常強(qiáng)。 飛思卡爾在QorIQ平臺(tái)架構(gòu)中設(shè)計(jì)了許多功能,提高了軟件工程師在遷移舊代碼和編寫新代碼方面的工作效率。之前已經(jīng)提到,軟件研發(fā)時(shí)間占到60%至70%,根據(jù)預(yù)計(jì)有超過(guò)50%的時(shí)間用在調(diào)試軟件和優(yōu)化性能。飛思卡爾的產(chǎn)品幫助縮短這一時(shí)間,并使軟件工程師更加高效。
例如,飛思卡爾的用戶空間數(shù)據(jù)路徑加速架構(gòu)(USDPAA)軟件比傳統(tǒng)的通過(guò)內(nèi)核訪問(wèn)驅(qū)動(dòng)器的方式在性能上有很大的提高。該軟件包含通過(guò)多個(gè)CPU內(nèi)核支持簡(jiǎn)化共享網(wǎng)絡(luò)接口和加速器的硬件組件。隊(duì)列管理器和緩沖器管理器組件提供了基礎(chǔ)架構(gòu),用于與內(nèi)核、硬件加速器和接口之間往復(fù)傳遞數(shù)據(jù)包。軟件通過(guò)稱為門戶的硬件組件訪問(wèn)數(shù)據(jù)路徑加速架構(gòu)。USDPAA是一款使Linux用戶空間應(yīng)用能夠通過(guò)高性能的方式直接訪問(wèn)門戶的軟件框架。USDPAA幫助傳統(tǒng)Pthread/用戶空間應(yīng)用的開(kāi)發(fā)和移植變得非常簡(jiǎn)單。
虛擬化和可視性
多核開(kāi)發(fā)與單核開(kāi)發(fā)不同的另一個(gè)方面是如何集成軟件和硬件。第一代多核處理器具有相同內(nèi)核的多個(gè)實(shí)例。從另一方面來(lái)說(shuō),飛思卡爾QorIQ Qonverge平臺(tái)在一個(gè)芯片上混合了處理元件:Power Architecture內(nèi)核、StarCore DSP和多個(gè)加速引擎。未來(lái)的產(chǎn)品將在一個(gè)芯片上提供更多內(nèi)核,并且在一個(gè)芯片上混合不同的內(nèi)核類型。最大的區(qū)別是所有內(nèi)核都將被虛擬化。在一個(gè)虛擬化的系統(tǒng)中,應(yīng)用的每個(gè)任務(wù)都需要映射至相應(yīng)的處理模塊。目前,該流程需要很多人力來(lái)完成。必須提供以更緊密的方式集成的分區(qū)工具、映射工具和分解工具,使軟件工程師能夠快速可視化分區(qū),根據(jù)性能、功率、存儲(chǔ)器等執(zhí)行“假如”分析,然后選擇目標(biāo)實(shí)施并執(zhí)行。
下一個(gè)步驟是調(diào)試應(yīng)用。該步驟的關(guān)鍵是能夠觀察這些復(fù)雜芯片的所有等級(jí)。大多數(shù)芯片在處理器內(nèi)核等級(jí)都將具有可視性,但是您最終需要完整的內(nèi)部可視性,包括I/O、存儲(chǔ)器控制器和加速引擎。當(dāng)您具有可視性以后,您還需要可控制性。
您是否能夠以非常精細(xì)的方式控制這些具有許多內(nèi)核和不同內(nèi)核類型的高度復(fù)雜的芯片? 您是否能夠控制數(shù)據(jù)的移動(dòng)方式?為了找到答案,您可以針對(duì)數(shù)據(jù)如何移動(dòng)執(zhí)行快速的“假如”分析。這使您可以獲得系統(tǒng)可視性。然后,您擁有了一個(gè)“旋鈕”,您可以從來(lái)自“假如”分析的目標(biāo)方案中獲得更高性能。這涉及軟件和硬件。 芯片中如果沒(méi)有正確的調(diào)試hook,它將不具有可視性。如果調(diào)試hook存在,但是API未將其暴露給工具和調(diào)試器,將沒(méi)有可視性。如果沒(méi)有芯片hook也將沒(méi)有可控制性,并且hook應(yīng)與工具套件集成。
飛思卡爾QorIQ多核SDK和CodeWarrior開(kāi)發(fā)工具嵌入了廣泛的可視性,可接入至我們的處理器中,因此開(kāi)發(fā)人員可以完全利用內(nèi)核和資源,并調(diào)試復(fù)雜的片上交互。
飛思卡爾的嵌入式管理程序?qū)τ谔摂M化非常重要,它是嵌入式通信處理領(lǐng)域第一款具有最高性能的處理器。管理程序是系統(tǒng)級(jí)軟件,允許多個(gè)操作系統(tǒng)訪問(wèn)常用外設(shè)和存儲(chǔ)器資源,并且在多個(gè)內(nèi)核之間提供通信機(jī)制。 在一個(gè)多核系統(tǒng)中,任務(wù)不應(yīng)以物理的方式映射至處理資源。
評(píng)論