如何簡(jiǎn)化向多核的遷移的基本指導
簡(jiǎn)介
本文引用地址:http://dyxdggzs.com/article/148037.htm全球對計算功率和性能日益增長(cháng)的需求已經(jīng)將嵌入式計算推向多核系統發(fā)展路徑。該遷移帶來(lái)一系列復雜的問(wèn)題:我該如何遷移傳統軟件,使其與多核硬件一起使用?我是否需要通過(guò)虛擬化實(shí)現更高性能?我如何能夠在一個(gè)對我來(lái)說(shuō)可以承擔的功率范圍中獲得所需的性能?通過(guò)結合高性能硬件;強大的、用戶(hù)友好型軟件和工具;以及廣泛的開(kāi)放式生態(tài)系統,飛思卡爾可以幫助您解決這些問(wèn)題和更多其他問(wèn)題。
雖然向多核的遷移開(kāi)始于網(wǎng)絡(luò )和無(wú)線(xiàn)基礎設施等高端應用,多核也開(kāi)始用于過(guò)去應用較少的領(lǐng)域,例如汽車(chē)、工業(yè)控制應用的安全關(guān)鍵領(lǐng)域、以及打印機和影像應用-可以使用更高速度和功率的任意應用。向全球網(wǎng)絡(luò )連接性的遷移給網(wǎng)絡(luò )帶來(lái)巨大壓力,并增加了對更高處理功率的需求。如果沒(méi)有呈幾何級增長(cháng)的功率,單線(xiàn)程性能無(wú)法繼續提高,這種方法會(huì )影響系統成本和可靠性。為了將功率保持在可以管理的等級,應用必須遷移至多核,而不是不斷增加頻率。
實(shí)現多核性能等級不像向系統中添加更多內核那樣簡(jiǎn)單。當從單核遷移至多核硬件時(shí),出現許多與傳統軟件的遷移有關(guān)的復雜問(wèn)題??傮w來(lái)看,在這種遷移和多線(xiàn)程編程領(lǐng)域軟件工程師缺乏培訓。虛擬化對于最大限度發(fā)揮多核硬件投資的價(jià)值至關(guān)重要,是一種截然不同的思考操作系統和資源分區的方式。當您在解決方案中添加更多處理功率時(shí),多核系統當然無(wú)法避免發(fā)生問(wèn)題:功耗。
飛思卡爾是世界領(lǐng)先的嵌入式處理技術(shù)提供商,至今已向世界各地發(fā)送了3億多個(gè)通信處理器。我們的多核QorIQ通信處理器、面向片上基站無(wú)線(xiàn)系統的QorIQ Qonverge平臺和VortiQa軟件解決方案--在全球有眾多經(jīng)驗豐富的現場(chǎng)支持工程師和強大、開(kāi)放的合作伙伴生態(tài)系統-將我們的嵌入式處理技術(shù)帶入新網(wǎng)絡(luò )紀元。

軟件問(wèn)題
向多核遷移路徑中兩個(gè)巨大的障礙都涉及軟件。 第一個(gè)問(wèn)題是其中的一項遷移。 用于單處理器順序執行程序的數百萬(wàn)行傳統代碼必須遷移以便保護投資。 在映射和遷移變得更加簡(jiǎn)單和更加高效之前,從單核遷移至多核系統在某種程度上將非常困難。 第二個(gè)問(wèn)題是缺乏關(guān)于多核系統編程的基本知識。 從硬件來(lái)看,安裝多個(gè)內核非常簡(jiǎn)單,但是與以前的單核編程相比,多核編程需要不同的思路和不同的培訓。
飛思卡爾在培訓和工具上進(jìn)行了大量投資,使向多核遷移變得更加簡(jiǎn)單。QorIQ多核軟件開(kāi)發(fā)套件(SDK)和CodeWarrior開(kāi)發(fā)工具等開(kāi)發(fā)工具有助于移植流程。飛思卡爾和我們的合作伙伴還提供用于仿真和建模分析的工具,包括處理器分區的“假設”分析。 開(kāi)發(fā)人員的培訓始終是需要關(guān)注的重點(diǎn)。提供了在多核處理器上重新映射序列應用的流程的真實(shí)案例,飛思卡爾還根據這些研究為開(kāi)發(fā)人員開(kāi)發(fā)了應用說(shuō)明、演示文檔和文章。
飛思卡爾預計約有60%至70%的多核研發(fā)預算都用在軟件而不是硬件上。飛思卡爾始終關(guān)注這一點(diǎn),使多核產(chǎn)品對軟件的適應性非常強。 飛思卡爾在QorIQ平臺架構中設計了許多功能,提高了軟件工程師在遷移舊代碼和編寫(xiě)新代碼方面的工作效率。之前已經(jīng)提到,軟件研發(fā)時(shí)間占到60%至70%,根據預計有超過(guò)50%的時(shí)間用在調試軟件和優(yōu)化性能。飛思卡爾的產(chǎn)品幫助縮短這一時(shí)間,并使軟件工程師更加高效。
例如,飛思卡爾的用戶(hù)空間數據路徑加速架構(USDPAA)軟件比傳統的通過(guò)內核訪(fǎng)問(wèn)驅動(dòng)器的方式在性能上有很大的提高。該軟件包含通過(guò)多個(gè)CPU內核支持簡(jiǎn)化共享網(wǎng)絡(luò )接口和加速器的硬件組件。隊列管理器和緩沖器管理器組件提供了基礎架構,用于與內核、硬件加速器和接口之間往復傳遞數據包。軟件通過(guò)稱(chēng)為門(mén)戶(hù)的硬件組件訪(fǎng)問(wèn)數據路徑加速架構。USDPAA是一款使Linux用戶(hù)空間應用能夠通過(guò)高性能的方式直接訪(fǎng)問(wèn)門(mén)戶(hù)的軟件框架。USDPAA幫助傳統Pthread/用戶(hù)空間應用的開(kāi)發(fā)和移植變得非常簡(jiǎn)單。
虛擬化和可視性
多核開(kāi)發(fā)與單核開(kāi)發(fā)不同的另一個(gè)方面是如何集成軟件和硬件。第一代多核處理器具有相同內核的多個(gè)實(shí)例。從另一方面來(lái)說(shuō),飛思卡爾QorIQ Qonverge平臺在一個(gè)芯片上混合了處理元件:Power Architecture內核、StarCore DSP和多個(gè)加速引擎。未來(lái)的產(chǎn)品將在一個(gè)芯片上提供更多內核,并且在一個(gè)芯片上混合不同的內核類(lèi)型。最大的區別是所有內核都將被虛擬化。在一個(gè)虛擬化的系統中,應用的每個(gè)任務(wù)都需要映射至相應的處理模塊。目前,該流程需要很多人力來(lái)完成。必須提供以更緊密的方式集成的分區工具、映射工具和分解工具,使軟件工程師能夠快速可視化分區,根據性能、功率、存儲器等執行“假如”分析,然后選擇目標實(shí)施并執行。
下一個(gè)步驟是調試應用。該步驟的關(guān)鍵是能夠觀(guān)察這些復雜芯片的所有等級。大多數芯片在處理器內核等級都將具有可視性,但是您最終需要完整的內部可視性,包括I/O、存儲器控制器和加速引擎。當您具有可視性以后,您還需要可控制性。

您是否能夠以非常精細的方式控制這些具有許多內核和不同內核類(lèi)型的高度復雜的芯片? 您是否能夠控制數據的移動(dòng)方式?為了找到答案,您可以針對數據如何移動(dòng)執行快速的“假如”分析。這使您可以獲得系統可視性。然后,您擁有了一個(gè)“旋鈕”,您可以從來(lái)自“假如”分析的目標方案中獲得更高性能。這涉及軟件和硬件。 芯片中如果沒(méi)有正確的調試hook,它將不具有可視性。如果調試hook存在,但是API未將其暴露給工具和調試器,將沒(méi)有可視性。如果沒(méi)有芯片hook也將沒(méi)有可控制性,并且hook應與工具套件集成。
飛思卡爾QorIQ多核SDK和CodeWarrior開(kāi)發(fā)工具嵌入了廣泛的可視性,可接入至我們的處理器中,因此開(kāi)發(fā)人員可以完全利用內核和資源,并調試復雜的片上交互。
飛思卡爾的嵌入式管理程序對于虛擬化非常重要,它是嵌入式通信處理領(lǐng)域第一款具有最高性能的處理器。管理程序是系統級軟件,允許多個(gè)操作系統訪(fǎng)問(wèn)常用外設和存儲器資源,并且在多個(gè)內核之間提供通信機制。 在一個(gè)多核系統中,任務(wù)不應以物理的方式映射至處理資源。
評論