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

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

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

軟件如何利用內(nèi)核實現(xiàn)高效運行

要長高 ? 來源:epsnews ? 作者:Ann Steffora Mutschle ? 2023-11-23 14:50 ? 次閱讀

作者:Ann Steffora Mutschler

在編寫軟件時,設(shè)計工程師如何確定它將在特定目標(biāo)平臺上消耗多少功率?雖然這個問題看起來很簡單,但答案并非如此。

Synopsys低功耗解決方案集團技術(shù)營銷總監(jiān)Cary Chin表示,該行業(yè)才剛剛開始發(fā)展在該領(lǐng)域

獲取一些數(shù)據(jù)的能力。“當(dāng)我們能夠做到這一點時,我認(rèn)為你會發(fā)現(xiàn)移動應(yīng)用程序的編寫方式實際上與你在筆記本電腦上運行的應(yīng)用程序不同,因為它們將更好地優(yōu)化功能,并且可能會在緩存數(shù)據(jù)方面做不同的事情。

不過,要達(dá)到這一點并不容易。ARM操作系統(tǒng)架構(gòu)師Jason Parker表示,高能效軟件需要從一開始就成為設(shè)計的一部分。“設(shè)計師需要不斷問自己,‘這是解決這個問題最省電的方法嗎?’試圖將電源管理和效率改造到現(xiàn)有設(shè)計中是一項艱巨的工作,而且所有的銀彈在很久以前就用完了。多處理器設(shè)計為電源管理開辟了額外的技術(shù)和限制。

了解表面之下發(fā)生的事情是一個開始。線程和進(jìn)程是表示 CPU 執(zhí)行和可見內(nèi)存空間的軟件抽象。線程表示 CPU 的執(zhí)行狀態(tài),例如程序計數(shù)器、寄存器和標(biāo)志。他解釋說,進(jìn)程是受限的進(jìn)程內(nèi)存空間,供一個或多個線程在其中執(zhí)行,而MMU則用于提供此內(nèi)存。一個進(jìn)程中通??梢杂卸鄠€線程,并且它們都共享相同的數(shù)據(jù)。

在單核處理器中,CPU 由操作系統(tǒng)內(nèi)核調(diào)度程序在線程之間共享,執(zhí)行由線程調(diào)度管理,線程優(yōu)先級和時間切片和切換線程稱為上下文切換。相比之下,多處理器 (MP) 將多個高效 CPU 組合在一起,可以以比單個高性能 CPU 更低的總功耗提供更高的聚合性能,并提供更多的電源管理選項,Parker 指出。

MP系統(tǒng)分為對稱系統(tǒng)和非對稱系統(tǒng)?!胺菍ΨQ系統(tǒng)可以在不同的內(nèi)核上運行不同的操作系統(tǒng),協(xié)同工作以提供整個系統(tǒng)解決方案。例如,智能手機具有用于 Android 用戶界面的 ARM CortexA8 應(yīng)用處理器,以及在 RF 調(diào)制解調(diào)器中運行實時電話堆棧的不同 Cortex R4 處理器,以及用于圖形、視頻和低功耗音頻的附加內(nèi)核。這些系統(tǒng)的優(yōu)點是可以定制每個子系統(tǒng)的處理器和資源,以最小的功耗提供預(yù)期的性能。缺點是系統(tǒng)架構(gòu)通常是固定的,可能無法實現(xiàn)未來的要求,例如新的視頻格式。

同時,對稱系統(tǒng)在相同的內(nèi)核上運行單個操作系統(tǒng)內(nèi)核,并有一個連貫的內(nèi)存系統(tǒng)將它們連接在一起,Parker解釋說。“SMP 操作系統(tǒng)將同時運行多個線程,旨在通過集群內(nèi)的核心分擔(dān)工作負(fù)載。結(jié)構(gòu)良好的代碼和算法是可并行化的,能夠利用多核的性能?,F(xiàn)有的代碼和串行算法可能無法利用多個內(nèi)核。SMP 操作系統(tǒng)中的電源管理系統(tǒng)將通過使用 DVFS 擴展內(nèi)核的性能來控制功耗,并將關(guān)閉未使用/未充分利用的內(nèi)核。

當(dāng)今復(fù)雜的 SoC 包含 SMP 和 AMP 子系統(tǒng)的混合體,其功耗針對各自的任務(wù)進(jìn)行了優(yōu)化。例如,“多核Cortex A9系統(tǒng)為開放平臺操作系統(tǒng)提供了靈活性,其中未來的應(yīng)用需求是未知的,而LTE調(diào)制解調(diào)器的CPU要求在設(shè)計時是已知的,”他說。

實現(xiàn)最佳核心利用率

但是,僅僅了解系統(tǒng)的結(jié)構(gòu)是不夠的。為了實現(xiàn)軟件對內(nèi)核的最佳利用率,應(yīng)實施某些技術(shù),同時牢記內(nèi)核利用率是由子系統(tǒng)分區(qū)以及系統(tǒng)代碼和算法的進(jìn)一步并行化驅(qū)動的。Parker說:“操作系統(tǒng)調(diào)度器可以通過將線程及其數(shù)據(jù)保留在相同或本地CPU上來最大限度地提高執(zhí)行效率,而應(yīng)用程序軟件可以通過使用線程親和性來強制執(zhí)行。

最大限度地提高內(nèi)核利用率將推動最大性能。然而,對于每個硅工藝來說,它可能不是最節(jié)能的解決方案,特別是那些具有電源管理功能的解決方案,當(dāng)所需的總軟件負(fù)載只是總性能的一小部分時,可以優(yōu)化線程調(diào)度。例如,在一個 CPU 上總負(fù)載為 80% 的雙核系統(tǒng)中,要問的關(guān)鍵問題是:

1. 內(nèi)核是否以 100% 的性能運行一個 CPU,而關(guān)閉第二個 CPU?

2. 內(nèi)核是否以 50% 的性能運行兩個 CPU,頻率、電壓和總功耗較低?

Parker說,除了子系統(tǒng)分區(qū)之外,還有其他方法可以優(yōu)化軟件利用內(nèi)核的方式,但這取決于手頭的任務(wù),包括使用虛擬機管理程序?qū)⒍鄠€操作系統(tǒng)整合到單個CPU或集群上。此外,虛擬化操作系統(tǒng)的許多實例可以使用虛擬化分布在多個內(nèi)核上,例如在 Web 服務(wù)器的情況下。在天平的另一端,令人尷尬的并行問題可以移交給 GPU,例如在圖像處理中使用 Open CL。

“中間是事情有趣的地方,”他說?!艾F(xiàn)有系統(tǒng)如何跨多個內(nèi)核進(jìn)行擴展?這是一個 30 年來一直存在的性能問題,以及最近的電源成本問題。對于現(xiàn)有代碼和幾個內(nèi)核(少于 《》 個)來說,使用線程是一種可行的解決方案,但它們很難編程。測量和分析一如既往地是所需的工程技能。如果沒有對系統(tǒng)有很好的了解,就很難充分利用多核硬件。

何時使用多核

Synopsys 的 Chin 表示,如今一切都朝著多核的方向發(fā)展,“隨著處理器的頻率不斷提高,這推動了技術(shù)的發(fā)展,并使電源問題越來越嚴(yán)重。試圖通過在某些處理單元中將內(nèi)核復(fù)制到雙核、四核、六核或更多內(nèi)核來增加吞吐量或提高處理能力的想法一直是大多數(shù)處理器制造商所走的道路。在過去的 8 或 10 年里,人們一直在談?wù)撨@個問題。

“因此,我們看到了很多處理器——英特爾酷睿 i5、酷睿 i7 等四核和六核處理器在今天非常主流,非常有趣,盡管移動電子產(chǎn)品的架構(gòu)還沒有真正走上這條路。我想說,這更像是異構(gòu)內(nèi)核的想法,在這種內(nèi)核中,您將特定內(nèi)核用于更具體的任務(wù)。在移動應(yīng)用程序中,對優(yōu)化處理器功能以滿足手頭特定任務(wù)的需求更大,“他指出。

但是,某些應(yīng)用程序在多核環(huán)境中的表現(xiàn)比其他應(yīng)用程序更好?!霸诜?wù)器場和移動設(shè)備方面,你將看到的性能改進(jìn)之間的最大區(qū)別在于,在服務(wù)器場上,虛擬化、數(shù)據(jù)庫和谷歌搜索等應(yīng)用程序在算法上是并行化的,可以很容易地進(jìn)行線程化。當(dāng)你在云或服務(wù)器場環(huán)境中時,你也有擁有很多很多用戶的好處,這為整個場提供了另一個層次的并行化和功能,“Chin說。

在這些環(huán)境中,并行化并擁有盡可能多的內(nèi)核是有意義的,因為啟動服務(wù)器場的整個想法是提高利用率?!拔覀兊南敕ㄊ牵绻梢缘脑?,讓您的農(nóng)場以接近 100% 的利用率運行,24/7,無論是在線金融應(yīng)用程序還是季節(jié)性圣誕節(jié)訂購。你希望這與世界其他地區(qū)的使用相平衡,“他繼續(xù)說道?!皩τ谝苿討?yīng)用程序,您只能在操作系統(tǒng)和要運行的應(yīng)用程序中執(zhí)行一定數(shù)量的線程。在像智能手機這樣的東西上,這個想法不是讓它一直運行。事實上,這個想法恰恰相反。你希望它盡可能少地運行。

審核編輯:黃飛

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

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227230
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209371
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84548
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122743
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    501

    瀏覽量

    19580
收藏 人收藏

    評論

    相關(guān)推薦

    FreeRTOS實時內(nèi)核實用指南

    FreeRTOS實時內(nèi)核實用指南
    發(fā)表于 09-18 08:02

    如何多核實現(xiàn)算法?

    本人菜鳥,C6678學(xué)了一個多月,至今想不出LMS算法如何多核實現(xiàn)? 看多核實現(xiàn)的IMAGE PROCESSING的例程,這個處理比較復(fù)雜,數(shù)據(jù)量也大, 個人理解:這個圖像處理的例程是不是基于數(shù)據(jù)
    發(fā)表于 06-21 19:05

    《RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)—基于STM32》分享

    RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)—基于STM32 基于STM32的論文+實戰(zhàn) 主要是RT-Thread
    發(fā)表于 01-29 15:29

    嵌入式微內(nèi)核實時操作系統(tǒng)的Wolf測試怎么實現(xiàn)

    介紹嵌入式微內(nèi)核實時操作系統(tǒng)的體系結(jié)構(gòu);針對Wolf嵌入式操作系統(tǒng),設(shè)計一套微內(nèi)核嵌入式操作系統(tǒng)測試實現(xiàn)方案。在Wolf操作系統(tǒng)支持下,已產(chǎn)業(yè)化的閱讀不耗電電子書(eBook)驗證了Wolf操作系統(tǒng)的可靠性。
    發(fā)表于 09-05 06:03

    RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南

    RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南
    發(fā)表于 04-03 11:43

    FreeRTOS內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南

    本書是野火嵌入式教學(xué)叢書“RTOS 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南的”FreeRTOS 版本,其中機械工業(yè)出版社出版的《RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南—基于 STM32》是該書的姐妹篇
    發(fā)表于 09-28 08:05

    嵌入式微內(nèi)核實時操作系統(tǒng)分析與測試

    介紹嵌入式微內(nèi)核實時操作系統(tǒng)的體系結(jié)構(gòu);針對Wolf 嵌入式操作系統(tǒng),設(shè)計一套微內(nèi)核嵌入式操作系統(tǒng)測試實現(xiàn)方案。在Wolf 操作系統(tǒng)支持下, 已產(chǎn)業(yè)化的閱讀不耗電電子書(eBook)
    發(fā)表于 05-14 15:51 ?15次下載

    嵌入式Linux內(nèi)核實時性研究及改進(jìn)

    分析了嵌入式Linux 存在實時性缺陷的原因,從Linux 調(diào)度機制入手提出了可行的改進(jìn)方案,并詳細(xì)闡述了代碼實現(xiàn)。經(jīng)測試,改進(jìn)后的內(nèi)核實時性能得到很大提高。在嵌入式技術(shù)
    發(fā)表于 07-30 10:13 ?8次下載

    英特爾最小型內(nèi)核實現(xiàn)邊緣智能

    英特爾打造核心技術(shù)英特爾最小型內(nèi)核實現(xiàn)邊緣智能
    發(fā)表于 12-28 18:10 ?0次下載

    嵌入式內(nèi)核實

    嵌入式內(nèi)核實
    發(fā)表于 01-22 13:58 ?0次下載

    如何利用C/C++編寫應(yīng)用程序加速內(nèi)核運行

    SDAccel編譯器支持OpenCL C,C和C ++,用于定義FPGA執(zhí)行的內(nèi)核功能。 了解如何利用用C / C ++編寫的現(xiàn)有函數(shù)作為FPGA上運行的OpenCL應(yīng)用程序的加速內(nèi)核
    的頭像 發(fā)表于 11-20 06:40 ?2807次閱讀

    FreeRTOS 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南PDF電子書免費下載

    本書是野火嵌入式教學(xué)叢書“RTOS 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南的”FreeRTOS 版本,其中機械工業(yè)出版社出版的《RT-Thread 內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南—基于 STM32》是該書的姐妹篇
    發(fā)表于 11-18 08:00 ?1677次下載
    FreeRTOS <b class='flag-5'>內(nèi)核實現(xiàn)</b>與應(yīng)用開發(fā)實戰(zhàn)指南PDF電子書免費下載

    FreeRTOS內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南

    本書是首本系統(tǒng)講解 FreeRTOS 的中文書籍,共分為兩個部分,第一部分為“從 0 到 1教你寫 FreeRTOS 內(nèi)核”,即重點講解 FreeRTOS 的原理實現(xiàn),從 0 開始,不斷迭代,教你
    發(fā)表于 05-24 16:26 ?223次下載

    Linux內(nèi)核實現(xiàn)內(nèi)存管理的基本概念

    本文概述Linux內(nèi)核實現(xiàn)內(nèi)存管理的基本概念,在了解基本概念后,逐步展開介紹實現(xiàn)內(nèi)存管理的相關(guān)技術(shù),后面會分多篇進(jìn)行介紹。
    發(fā)表于 06-23 11:56 ?719次閱讀
    Linux<b class='flag-5'>內(nèi)核實現(xiàn)</b>內(nèi)存管理的基本概念

    內(nèi)核實時操作系統(tǒng)的介紹

    內(nèi)核實時操作系統(tǒng)(Microkernel Real-Time Operating System, μRTOS)是一種專為實時設(shè)計的操作系統(tǒng)。它采用微內(nèi)核架構(gòu),以提高系統(tǒng)的可靠性、安全性和可擴展性。以下是關(guān)于微內(nèi)核實時操作系統(tǒng)的
    的頭像 發(fā)表于 05-11 17:13 ?359次閱讀