當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]多內(nèi)核處理器給編程人員帶來(lái)了新的挑戰(zhàn)。在多內(nèi)核項(xiàng)目中,半數(shù)以上的成本來(lái)自軟件開(kāi)發(fā)。多內(nèi)核編程的具體挑戰(zhàn)是非對(duì)稱多內(nèi)核處理器 (AMP),因?yàn)槠渲邢嗤钠骷旭v留著 RISC 與 DSP 內(nèi)核等.

引言

多內(nèi)核處理器給編程人員帶來(lái)了新的挑戰(zhàn)。在多內(nèi)核項(xiàng)目中,半數(shù)以上的成本來(lái)自軟件開(kāi)發(fā)。多內(nèi)核編程的具體挑戰(zhàn)是非對(duì)稱多內(nèi)核處理器 (AMP),因?yàn)槠渲邢嗤钠骷旭v留著 RISC 與 DSP 內(nèi)核等不同類型的處理單元。這主要是因?yàn)椴僮飨到y(tǒng) (OS) 對(duì)資源管理與負(fù)載均衡的支持非常薄弱甚至根本沒(méi)有,導(dǎo)致可擴(kuò)展性差與資源利用率低。德州儀器 (TI) 創(chuàng)新型 KeyStone II 多內(nèi)核架構(gòu)提供專用硬件幫助實(shí)現(xiàn)調(diào)度與負(fù)載均衡功能,可簡(jiǎn)化多內(nèi)核可編程性。KeyStone II通過(guò)這些措施實(shí)現(xiàn)了多內(nèi)核編程的性能突破。

AMP 編程挑戰(zhàn)

隨著多內(nèi)核技術(shù)的演進(jìn),越來(lái)越多的 SoC 提供對(duì)稱多內(nèi)核架構(gòu)實(shí)現(xiàn)低成本以及更高的性能。典型的 AMP 具有運(yùn)行在不同操作系統(tǒng)上的異構(gòu)內(nèi)核、硬件加速器以及非所有內(nèi)核共享的分布式存儲(chǔ)器。在對(duì)稱多內(nèi)核處理器 (SMP) 應(yīng)用中,內(nèi)核完全相同并運(yùn)行支持相同共享存儲(chǔ)器架構(gòu)的相同操作系統(tǒng),因此使用操作系統(tǒng)帶來(lái)的內(nèi)核間通信、調(diào)度以及負(fù)載均衡功能相對(duì)而言更為直接。AMP 器件的編程需要更高的并行編程技能,才能通過(guò)控制和協(xié)調(diào)不同的內(nèi)核及操作系統(tǒng)實(shí)現(xiàn)可滿足單內(nèi)核或 SMP 編程需求的高穩(wěn)定性及高性能。

傳統(tǒng)非對(duì)稱多內(nèi)核處理要求在編譯時(shí)對(duì)多內(nèi)核資源進(jìn)行靜態(tài)分區(qū)。這樣做難度往往較大,因?yàn)檫\(yùn)行時(shí)的軟件加載不能提前判別,尤其是 4G LTE、LTE Advanced 以及云計(jì)算等尖端技術(shù)。一般解決辦法是預(yù)留額外的空間,以確保系統(tǒng)在最惡劣應(yīng)用條件下也能正確運(yùn)行。資源過(guò)度分配的不利影響是資源利用不足,最終會(huì)導(dǎo)致產(chǎn)品成本上升。另一方面,首次使用時(shí)或者引入新功能、需要現(xiàn)場(chǎng)強(qiáng)化或需求改更時(shí),手動(dòng)重新分區(qū)及軟件優(yōu)化會(huì)帶來(lái)大量的軟件工作。

同步性及處理器間通信 (IPC) 的效率在多內(nèi)核編程過(guò)程中至關(guān)重要。缺乏對(duì)各種同步性與 IPC 機(jī)制的適當(dāng)硬件支持,會(huì)因過(guò)多的軟件開(kāi)銷而導(dǎo)致多內(nèi)核利用低下,降低系統(tǒng)性能。

這對(duì) AMP 多內(nèi)核系統(tǒng)而言尤為如此,因?yàn)殡y以實(shí)現(xiàn)軟件可擴(kuò)展性與靈活性。

多內(nèi)核導(dǎo)航器助力實(shí)現(xiàn)創(chuàng)新

多內(nèi)核導(dǎo)航器是一種基于數(shù)據(jù)包的創(chuàng)新基礎(chǔ)設(shè)施,支持?jǐn)?shù)據(jù)傳輸與多內(nèi)核控制。TI 異構(gòu) KeyStone 架構(gòu)完美整合了 DSP Core-Pac、ARM? CorePac、硬件 AccelerationPac 以及 I/O 外設(shè)。它們不但可通過(guò) TeraNet 進(jìn)行物理互連,而且可通過(guò)多內(nèi)核導(dǎo)航器進(jìn)行邏輯互連。在 TI KeyStone II 架構(gòu)中,多內(nèi)核導(dǎo)航器不但包含可容納 1.6 萬(wàn)個(gè)硬件隊(duì)列的隊(duì)列管理器,通常存放指向各種數(shù)據(jù)包(由描述符及數(shù)據(jù)有效負(fù)載組成)的指針,而且還包含 8 個(gè) 3,200 MIPS uRISC、用于傳輸數(shù)據(jù)的數(shù)據(jù)包 DMA 以及支持 100 萬(wàn)個(gè)描述符的硬件數(shù)據(jù)結(jié)構(gòu)。此外,還可在 AccelerationPac 與 I/O 子系統(tǒng)中構(gòu)建數(shù)據(jù)包 DMA,這樣多內(nèi)核導(dǎo)航器無(wú)需內(nèi)核干預(yù),便可將數(shù)據(jù)從任何單元傳輸至任何端點(diǎn)。

多內(nèi)核導(dǎo)航器為 CorePac、AccelerationPac 以及 I/O 提供統(tǒng)一接口,可將硬件隊(duì)列用于圖 1 所示的不同系統(tǒng)端點(diǎn)。這可為所有 IP 塊提供支持通用通信方式的 AMP 系統(tǒng)。多內(nèi)核導(dǎo)航器可充分利用內(nèi)建在隊(duì)列管理器中的 uRISC 內(nèi)核來(lái)管理流量路由、IPC、資源管理、調(diào)度以及負(fù)載均衡,從而可優(yōu)化和加速數(shù)據(jù)流。各種任務(wù)可由隊(duì)列管理器按需派送和分配給負(fù)載最輕的內(nèi)核或 IP 子系統(tǒng)。


圖 1:多內(nèi)核導(dǎo)航器子系統(tǒng)

多內(nèi)核導(dǎo)航器可提供高效率內(nèi)核間通信機(jī)制。硬件隊(duì)列與數(shù)據(jù)包 DMA 是 IPC 的基本構(gòu)建塊。某些隊(duì)列經(jīng)過(guò)精心設(shè)計(jì),可對(duì) IPC 內(nèi)核產(chǎn)生中斷。多內(nèi)核導(dǎo)航器內(nèi)部的 uRISC 內(nèi)核使用可編程中斷通知功能實(shí)現(xiàn)自動(dòng)隊(duì)列監(jiān)控與管理。多內(nèi)核導(dǎo)航器可充分限制軟件開(kāi)銷,降低同步時(shí)延,并可提高 IPC 吞吐量。此外,它還支持無(wú)鎖編程模型。圖 2 是使用多內(nèi)核導(dǎo)航器的 IPC 示意圖。

圖 2:使用多內(nèi)核導(dǎo)航器實(shí)現(xiàn)處理器間的通信

Navigator Runtime 幫助您最大限度提高多內(nèi)核效率

雖然采用 TI KeyStone II 硅芯片架構(gòu)已經(jīng)解決了多內(nèi)核挑戰(zhàn),但只有應(yīng)用軟件開(kāi)發(fā)人員充分發(fā)揮多內(nèi)核性能,才能真正實(shí)現(xiàn)這種硬件架構(gòu)的各種優(yōu)勢(shì)。在軟件方面,TI 正在投資標(biāo)準(zhǔn)編程方法,讓支持多內(nèi)核導(dǎo)航器的 KeyStone II 的各項(xiàng)優(yōu)勢(shì)充分體現(xiàn)在應(yīng)用中。行業(yè)中及學(xué)術(shù)界已經(jīng)涌現(xiàn)出大量有望成為標(biāo)準(zhǔn)的多內(nèi)核編程趨勢(shì)。所有這些方法的共同之處在于應(yīng)用軟件開(kāi)發(fā)人員先通過(guò)語(yǔ)言表達(dá),采用特定手段描述其應(yīng)用的并行性,然后再映射至底層運(yùn)行時(shí)。該運(yùn)行時(shí)可掌控將過(guò)程映射至底層硬件架構(gòu)。

Navigator Runtime 是一個(gè)可擴(kuò)展薄軟件層,可幫助多內(nèi)核導(dǎo)航器實(shí)現(xiàn)更高水平的并行編程性能,提高可擴(kuò)展性、移植性及效率。對(duì) AMP 編程挑戰(zhàn)而言,多內(nèi)核導(dǎo)航器和 Navigator Runtime 的完美結(jié)合是一款功能強(qiáng)大的獨(dú)特解決方案。

Navigator Runtime 的主要功能是將工作任務(wù)分配給多個(gè)內(nèi)核。先將工作任務(wù)放入待執(zhí)行的虛擬隊(duì)列,然后由嵌入在多內(nèi)核導(dǎo)航器硬件中的 uRISC 內(nèi)核執(zhí)行中央調(diào)度。調(diào)度器根據(jù)優(yōu)先級(jí)、原子性以及本地性選擇工作任務(wù),然后分配給軟件分配器。軟件分配器是駐留在每一個(gè)內(nèi)核中的 Navigator Runtime 的必備部件。分配器隨即將每項(xiàng)工作任務(wù)發(fā)送至處理元件執(zhí)行,處理元件可能是內(nèi)核、AccelerationPac 或 I/O 端點(diǎn)中的線程。

充分發(fā)揮多內(nèi)核導(dǎo)航器的作用,工作任務(wù)制定者及使用者的抽象可由 Navigator Runtime 完成。將嵌入式 uRISC 內(nèi)核用于集中調(diào)度工作(無(wú)需消耗主 DSP 或 ARM? 內(nèi)核的 MIPS),可實(shí)現(xiàn)低開(kāi)銷、低時(shí)延以及每個(gè)內(nèi)核 25 萬(wàn)個(gè)任務(wù)的高吞吐量,實(shí)現(xiàn)無(wú)與倫比的并行編程性能。

圖 3 主要展示 Navigator Runtime 概念及其與多內(nèi)核導(dǎo)航器的互動(dòng)。

圖 3:Navigator Runtime 與多內(nèi)核導(dǎo)航器的互動(dòng)

多內(nèi)核性能可使用加速性進(jìn)行測(cè)量,加速性的定義是用單內(nèi)核串行執(zhí)行時(shí)間除以多內(nèi)核執(zhí)行時(shí)間。在理想條件下,8 內(nèi)核系統(tǒng)的加速性等于 8。但在實(shí)際中,由于多內(nèi)核總線判優(yōu)、存儲(chǔ)器訪問(wèn)時(shí)延、高速緩存一致性管理、同步以及 IPC 等多內(nèi)核開(kāi)銷的影響,典型加速性與理想條件相距甚遠(yuǎn)。Navigator Runtime 消耗的開(kāi)銷極少,以盡量接近理想加速性,實(shí)現(xiàn)多內(nèi)核性能的最大化。

以 LTE 上行鏈路物理層處理為例,串行代碼可細(xì)分為 1,024 個(gè)工作任務(wù)用于實(shí)現(xiàn)天線數(shù)據(jù)處理、通道估算以及均衡等。平均每個(gè)工作任務(wù)有 4K 輸入數(shù)據(jù)及 2K 輸出數(shù)據(jù)駐留在共享存儲(chǔ)器中。Navigator Runtime 將用于調(diào)度這些工作任務(wù)并分配給 8 個(gè)不同的內(nèi)核,故加速性的計(jì)算如下:

8 內(nèi)核加速性 = 采用本地 L2 存儲(chǔ)器中的數(shù)據(jù)單內(nèi)核串行執(zhí)行代碼的時(shí)間 ÷ 采用共享 DDR3 存儲(chǔ)器中的數(shù)據(jù) 8 內(nèi)核并行執(zhí)行的時(shí)間

在并行 8 內(nèi)核執(zhí)行示例中,在處理前可分配多個(gè)導(dǎo)航器數(shù)據(jù)包 DMA 通道將 DDR3 中的數(shù)據(jù)預(yù)加載到本地 L2 存儲(chǔ)器中,并在處理后將數(shù)據(jù)從 L2 返回至 DDR3,就像為降低存儲(chǔ)器訪問(wèn)時(shí)延的 CPU 高速緩存運(yùn)行一樣。結(jié)果所測(cè)得的 KeyStone 器件的加速性為:在 3.2 萬(wàn)個(gè)周期的工作任務(wù)中,從 8 內(nèi)核 KeyStone 器件中測(cè)得的基準(zhǔn)數(shù)據(jù)可實(shí)現(xiàn) 7.8 的加速性,而在 1.6 萬(wàn)個(gè)周期的工作任務(wù)中,其則可實(shí)現(xiàn) 7.7 的加速性,非常接近理想的 8 加速性。與 KeyStone I 相比,KeyStone II 中的導(dǎo)航器已得到了明顯的改進(jìn):4倍uRISC 引擎數(shù)量可實(shí)現(xiàn)更多的調(diào)度資源,而數(shù)據(jù)包 DMA 通道、硬件隊(duì)列以及描述符數(shù)量翻番,則可提高執(zhí)行吞吐量。

圖 4 為 KeyStone Navigator Runtime 在各種工作任務(wù)量情況下,2 至 8 內(nèi)核的實(shí)際加速性與理想加速性的比較。


圖 4:采用 Navigator Runtime 實(shí)現(xiàn)的多內(nèi)核加速性


此外,TI KeyStone II 架構(gòu)還可為所有異構(gòu)內(nèi)核提供 6MB 的片上共享存儲(chǔ)器(MSMC 存儲(chǔ)器)容量。MSMC 的存儲(chǔ)器訪問(wèn)性能非常接近 L2 存儲(chǔ)器訪問(wèn)性能。當(dāng)數(shù)據(jù)存儲(chǔ)在 MSMC 中時(shí),無(wú)需使用導(dǎo)航器預(yù)加載和后存儲(chǔ)數(shù)據(jù),便可實(shí)現(xiàn)與上面情況類似的加速性。與其它可選解決方案相比,大型片上共享存儲(chǔ)器可利用低系統(tǒng)時(shí)延為多內(nèi)核性能帶來(lái)獨(dú)特的優(yōu)勢(shì)。

Navigator Runtime 不但可支持各種系統(tǒng)應(yīng)用,而且還能夠與 OpenMp 等高級(jí)多內(nèi)核編程范式集成。

OpenMP 是一款支持多平臺(tái)共享存儲(chǔ)器多處理編程的應(yīng)用編程接口 (API),由編輯器指令、運(yùn)行時(shí)庫(kù)程序以及環(huán)境變量構(gòu)成。在 OpenMP 中,用戶可使用語(yǔ)言指令(例如編譯器指令)來(lái)識(shí)別其軟件中的并行性,也可使用工具幫助識(shí)別。使用兼容 OpenMP 的編譯器可讀取編譯指令,其可將編譯指令所注釋的串行代碼轉(zhuǎn)換成并行代碼,并在 OpenMP 運(yùn)行時(shí)中插入調(diào)用。對(duì)在特定器件上運(yùn)行的應(yīng)用而言,多內(nèi)核編程方法的運(yùn)行時(shí)時(shí)延及開(kāi)銷性能將會(huì)限制可實(shí)現(xiàn)的并行性。更低的時(shí)延與開(kāi)銷可在應(yīng)用中實(shí)現(xiàn)并行化創(chuàng)造更好的條件,進(jìn)而實(shí)現(xiàn)更高的多內(nèi)核效率。

開(kāi)始已經(jīng)為共享存儲(chǔ)器架構(gòu)指定了 OpenMP。我們現(xiàn)在討論分布式存儲(chǔ)器及異構(gòu)處理器架構(gòu)支持。TI Navigator Runtime 可用作 OpenMP 的運(yùn)行時(shí)系統(tǒng)。多內(nèi)核同步與 IPC 可使用導(dǎo)航器中的數(shù)據(jù)包 DMA 引擎有效處理。前面的基準(zhǔn)顯示,將 Navigator Runtime 用作 OpenMP 運(yùn)行時(shí)不但可顯著降低編譯器指令的構(gòu)建開(kāi)銷,而且還可顯著提升多內(nèi)核系統(tǒng)內(nèi)的并行性,讓編程人員專注于識(shí)別并行任務(wù)。調(diào)度及負(fù)載均衡由 Navigator Runtime 自動(dòng)管理,不但可簡(jiǎn)化編程,而且還可最大限度地提高多內(nèi)核效率。

下頁(yè)圖 5 顯示的是使用 Navigator Runtime 與 OpenMP 的 KeyStone AMP 編程流程。隨同 Code Composer Studio? 集成開(kāi)發(fā)環(huán)境提供的 Code Gen Tool 7.4 版是一款立即可用于 OpenMP 的編譯器。該編程流程具有通用性,不但可用于各種多內(nèi)核應(yīng)用,而且還可通過(guò)擴(kuò)展支持各種不同內(nèi)核及系統(tǒng)規(guī)模。其目的是以單內(nèi)核編程的便捷性實(shí)現(xiàn)多內(nèi)核的高性能。



圖 5:使用 Navigator Runtime 的 KeyStone AMP 編程流程

結(jié)論

多內(nèi)核導(dǎo)航器是一款面向 KeyStone 器件的創(chuàng)新型智能芯片基礎(chǔ)設(shè)施,可推動(dòng)多內(nèi)核編程的發(fā)展。多內(nèi)核導(dǎo)航器與 Navigator Runtime 可為每個(gè)硬件組件帶來(lái)抽象性,通過(guò)資源管理、調(diào)度以及動(dòng)態(tài)負(fù)載均衡功能實(shí)現(xiàn)平臺(tái)虛擬化,從而可最大限度地提高多內(nèi)核效率,以更低的系統(tǒng)成本實(shí)現(xiàn)更高的硬件利用率。將 Navigator Runtime 與 OpenMP 等高級(jí)多內(nèi)核編程模式相結(jié)合,可簡(jiǎn)化 AMP 多內(nèi)核軟件設(shè)計(jì),提高多內(nèi)核程序的可擴(kuò)展性與靈活性,并能夠以更低的成本快速部署新技術(shù)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉