99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將舊版應(yīng)用程序遷移到多核并沒(méi)有那么可怕

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:BILL GRAHAM ? 2022-11-07 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多核處理器嵌入式系統(tǒng)帶來(lái)了顯著的性能和功耗優(yōu)勢(shì),但它們也增加了傳統(tǒng)遷移工作負(fù)載的多處理復(fù)雜性。盡管如此,開(kāi)發(fā)團(tuán)隊(duì)可以通過(guò)遵循一些簡(jiǎn)單的技術(shù)來(lái)成功管理向多核的過(guò)渡。

移植到便攜式標(biāo)準(zhǔn)

通常,遷移到多核不僅僅涉及遷移到新處理器。在許多情況下,開(kāi)發(fā)人員必須首先將舊代碼移植到新的編程語(yǔ)言、編譯器或操作系統(tǒng)。 強(qiáng)烈建議使用 POSIX 等開(kāi)放標(biāo)準(zhǔn),因?yàn)樗С衷S多通用和實(shí)時(shí)操作系統(tǒng)。這樣做將有助于確保應(yīng)用程序的大部分內(nèi)容(包括其與操作系統(tǒng)的接口)是可移植的。同樣重要的是,POSIX標(biāo)準(zhǔn)在多處理系統(tǒng)中有著悠久的歷史,而多核處理器只是多處理片上系統(tǒng)(SoC)。

分而治之

支持對(duì)稱多處理 (SMP) 的操作系統(tǒng)是同構(gòu)多核處理器的最佳選擇。SMP 將分配 CPU 資源的復(fù)雜細(xì)節(jié)留給操作系統(tǒng),而不是應(yīng)用程序。從應(yīng)用程序的角度來(lái)看,與操作系統(tǒng)的接口保持不變,無(wú)論內(nèi)核數(shù)量如何,從 1 到 N。因此,隨著更多內(nèi)核的添加,應(yīng)用程序可以輕松擴(kuò)展。

在 SMP 模式下運(yùn)行的多核系統(tǒng)提供了真正的并行性,但一些傳統(tǒng)應(yīng)用程序從未設(shè)計(jì)為并行執(zhí)行。通常,大部分代碼不使用線程,這將允許應(yīng)用程序的不同部分并行運(yùn)行,或者僅使用線程來(lái)隔離阻塞系統(tǒng)調(diào)用,例如文件或網(wǎng)絡(luò) I/O。

另一個(gè)典型的陷阱發(fā)生在代碼使用優(yōu)先級(jí)方案來(lái)控制對(duì)共享內(nèi)存的訪問(wèn)時(shí)。例如,在單處理器嵌入式系統(tǒng)中,軟件開(kāi)發(fā)人員通??梢约僭O(shè)高優(yōu)先級(jí)線程和低優(yōu)先級(jí)線程不會(huì)同時(shí)訪問(wèn)內(nèi)存,因?yàn)楦邇?yōu)先級(jí)線程將始終搶占低優(yōu)先級(jí)線程。因此,許多程序無(wú)法使用互斥鎖(互斥鎖)來(lái)正確同步對(duì)內(nèi)存的訪問(wèn)。但是,在 SMP 多核系統(tǒng)中,這兩個(gè)線程可以并行運(yùn)行,因此會(huì)同時(shí)訪問(wèn)內(nèi)存,從而產(chǎn)生不可預(yù)測(cè)的結(jié)果。由于同步錯(cuò)誤,可能存在其他隱蔽問(wèn)題,這些錯(cuò)誤在單處理器系統(tǒng)上完美運(yùn)行,但僅在多處理器執(zhí)行中出現(xiàn)。

為了解決這樣的問(wèn)題,開(kāi)發(fā)人員可以分而治之:將問(wèn)題代碼隔離在多核芯片的單個(gè)內(nèi)核上,直到代碼可以修復(fù)。為此,開(kāi)發(fā)人員可以使用綁定多處理 (BMP),這是 SMP 的擴(kuò)展,允許選定的進(jìn)程僅在指定的內(nèi)核或 CPU 上運(yùn)行。實(shí)際上,BMP 為遺留代碼提供了一個(gè)單核、非并行執(zhí)行環(huán)境,同時(shí)允許其他代碼利用 SMP 的完全并行性。開(kāi)發(fā)團(tuán)隊(duì)在修改舊代碼以在其新的并行環(huán)境中正常運(yùn)行后,可以隨后刪除 CPU 綁定。

利用這些工具

開(kāi)發(fā)團(tuán)隊(duì)還必須使用正確的工具。特別是,他們需要可視化工具來(lái)幫助他們查明并行環(huán)境中代碼行為異常的區(qū)域。大多數(shù)情況下,這項(xiàng)工作涉及檢測(cè)和糾正前面提到的同步錯(cuò)誤。

一旦應(yīng)用程序正常運(yùn)行,它仍然可能無(wú)法利用多核芯片的所有 CPU 容量。可視化工具在這方面也可以提供幫助,它允許開(kāi)發(fā)人員減少對(duì)共享資源(熱點(diǎn))的爭(zhēng)用,消除過(guò)多的線程遷移或內(nèi)核之間的通信,并找到并行化代碼的機(jī)會(huì)。隨著多核平臺(tái)內(nèi)核數(shù)量的增加,可視化工具將是成功利用多核提供的性能優(yōu)勢(shì)的關(guān)鍵。

為了提供這樣的分析,多核可視化工具必須超越傳統(tǒng)調(diào)試工具的范圍。例如,它們必須在線程從一個(gè)內(nèi)核遷移到另一個(gè)內(nèi)核時(shí)跟蹤線程,并診斷在內(nèi)核之間流動(dòng)的消息。他們還必須靈活控制記錄哪些事件以及何時(shí)記錄,以便開(kāi)發(fā)人員可以專注于關(guān)注的領(lǐng)域。

進(jìn)行過(guò)渡

“多核”不需要是一個(gè)壞詞,也不需要為傳統(tǒng)遷移添加另一個(gè)障礙。采用POSIX等可移植編程標(biāo)準(zhǔn),使用專為多核平臺(tái)設(shè)計(jì)的操作系統(tǒng),隔離遺留代碼以在單個(gè)內(nèi)核上運(yùn)行,以及使用可視化工具,所有這些都使過(guò)渡變得不那么令人生畏。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235365
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19676

    瀏覽量

    317720
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    客戶改了一個(gè)電阻就炸機(jī)?原因并沒(méi)有那么簡(jiǎn)單

    客戶改了一個(gè)電阻就炸機(jī)?原因并沒(méi)有那么簡(jiǎn)單【樣機(jī)芯片介紹】本次調(diào)試的樣機(jī)主控IC為思睿達(dá)主推的成都啟臣微的CR6853B,該IC為副邊控制IC,該IC是一款高集成度,低功耗的電流模PWM控制芯片,該
    的頭像 發(fā)表于 05-08 09:59 ?270次閱讀
    客戶改了一個(gè)電阻就炸機(jī)?原因<b class='flag-5'>并沒(méi)有</b><b class='flag-5'>那么</b>簡(jiǎn)單

    從Keil MDK到IAR EWARM:通過(guò)工程遷移實(shí)現(xiàn)項(xiàng)目資產(chǎn)的更好管理

    對(duì)于需要統(tǒng)一開(kāi)發(fā)環(huán)境或涉及多核架構(gòu)(如Cortex-A/R)的項(xiàng)目,越來(lái)越多的用戶選擇從Keil MDK遷移到IAR EWARM。這就會(huì)面臨著需要將之前的Keil MDK工程遷移到IAR EWARM的問(wèn)題。本文
    的頭像 發(fā)表于 05-08 09:03 ?537次閱讀
    從Keil MDK到IAR EWARM:通過(guò)工程<b class='flag-5'>遷移</b>實(shí)現(xiàn)項(xiàng)目資產(chǎn)的更好管理

    如何項(xiàng)目從IAR遷移到Embedded Studio

    本文描述如何IAR EWARM項(xiàng)目遷移到SEGGER Embedded Studio(簡(jiǎn)稱SES)中。
    的頭像 發(fā)表于 02-25 17:11 ?600次閱讀
    如何<b class='flag-5'>將</b>項(xiàng)目從IAR<b class='flag-5'>遷移到</b>Embedded Studio

    在TIDA-00570提供的參考設(shè)計(jì)中,并沒(méi)有100歐姆的端接電阻,請(qǐng)問(wèn)怎么處理?

    請(qǐng)問(wèn),APP-FPGA和DLPC910之間的A、B、C、D四組LVDS信號(hào),DLPC910手冊(cè)上寫(xiě)明需要外接100歐姆端接電阻,但是在TIDA-00570提供的參考設(shè)計(jì)中,并沒(méi)有100歐姆的端接電阻,請(qǐng)問(wèn)怎么處理?
    發(fā)表于 02-24 06:34

    從INA219遷移到INA232

    電子發(fā)燒友網(wǎng)站提供《從INA219遷移到INA232.pdf》資料免費(fèi)下載
    發(fā)表于 11-14 14:17 ?1次下載
    從INA219<b class='flag-5'>遷移到</b>INA232

    從USCI模塊遷移到eUSCI模塊

    電子發(fā)燒友網(wǎng)站提供《從USCI模塊遷移到eUSCI模塊.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:39 ?0次下載
    從USCI模塊<b class='flag-5'>遷移到</b>eUSCI模塊

    從OMAP3530遷移到AM37x

    電子發(fā)燒友網(wǎng)站提供《從OMAP3530遷移到AM37x.pdf》資料免費(fèi)下載
    發(fā)表于 10-14 11:39 ?0次下載
    從OMAP3530<b class='flag-5'>遷移到</b>AM37x

    從TMS320DM644x v.2.1 ROM引導(dǎo)加載程序遷移到2.3版本

    電子發(fā)燒友網(wǎng)站提供《從TMS320DM644x v.2.1 ROM引導(dǎo)加載程序遷移到2.3版本.pdf》資料免費(fèi)下載
    發(fā)表于 10-14 10:50 ?0次下載
    從TMS320DM644x v.2.1 ROM引導(dǎo)加載<b class='flag-5'>程序</b><b class='flag-5'>遷移到</b>2.3版本

    從OMAP3530遷移到AM35x

    電子發(fā)燒友網(wǎng)站提供《從OMAP3530遷移到AM35x.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 09:26 ?0次下載
    從OMAP3530<b class='flag-5'>遷移到</b>AM35x

    DSP/BIOS 5應(yīng)用程序遷移到SYS/BIOS 6

    電子發(fā)燒友網(wǎng)站提供《DSP/BIOS 5應(yīng)用程序遷移到SYS/BIOS 6.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 10:54 ?0次下載
    <b class='flag-5'>將</b>DSP/BIOS 5<b class='flag-5'>應(yīng)用程序</b><b class='flag-5'>遷移到</b>SYS/BIOS 6

    硬件遷移到CC2652R7和CC2652P7

    電子發(fā)燒友網(wǎng)站提供《硬件遷移到CC2652R7和CC2652P7.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 11:07 ?0次下載
    <b class='flag-5'>將</b>硬件<b class='flag-5'>遷移到</b>CC2652R7和CC2652P7

    IT資源遷移到云服務(wù)器的關(guān)鍵因素

    隨著云計(jì)算技術(shù)的不斷成熟和普及,越來(lái)越多的企業(yè)選擇將他們的IT資源遷移到云服務(wù)器上。這種轉(zhuǎn)變不僅可以降低成本、提高靈活性,還可以提升安全性和效率。本文深入探討IT資源遷移到云服務(wù)器
    的頭像 發(fā)表于 09-18 11:21 ?594次閱讀

    遷移到基于Arm STM32的MSPMO指南

    電子發(fā)燒友網(wǎng)站提供《從遷移到基于Arm STM32的MSPMO指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 11:17 ?0次下載
    從<b class='flag-5'>遷移到</b>基于Arm STM32的MSPMO指南

    為什么INA188的GBW并沒(méi)有1Mhz?

    請(qǐng)問(wèn)下,為什么INA188的GBW并沒(méi)有1Mhz, 但是在官方推薦的應(yīng)用(TIDA-01063)中卻可以適用于20Mhz的傳感器的檢測(cè)?
    發(fā)表于 08-02 10:39

    單獨(dú)使用AFE031芯片并沒(méi)有任何輸出怎么解決?

    你好,在使用AFE031芯片與非C2000系列芯片連接時(shí),按照C2000Ware中boostxl_afe031_f28379d_dacmode示例中初始化完成后,使用SPI任意向AFE031芯片發(fā)送一個(gè)數(shù)據(jù),示波器中并沒(méi)有數(shù)據(jù)變化,請(qǐng)問(wèn)這種情況怎么解決呢?
    發(fā)表于 07-30 06:48