国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向農(nóng)業(yè)物聯(lián)網(wǎng)的網(wǎng)關(guān)功率自適應(yīng)技術(shù)研究

2021-04-04 06:49:06馮國(guó)富李張紅尤偉偉舒玉娟
制造業(yè)自動(dòng)化 2021年3期
關(guān)鍵詞:線程輸出功率處理器

馮國(guó)富 ,李張紅 ,尤偉偉 ,舒玉娟,陳 明

(1.上海海洋大學(xué) 信息學(xué)院,上海 201306;2.農(nóng)業(yè)部漁業(yè)信息重點(diǎn)實(shí)驗(yàn)室,上海 201306)

0 引言

農(nóng)業(yè)IoT是指通過應(yīng)用與農(nóng)業(yè)信息相關(guān)的感知設(shè)備,按照約定的協(xié)議,把農(nóng)業(yè)生產(chǎn)系統(tǒng)中動(dòng)植物生命體、環(huán)境要素、生產(chǎn)工具等物理部件和各種虛擬“物件”與互聯(lián)網(wǎng)連接起來,進(jìn)行信息交換和通訊,以實(shí)現(xiàn)對(duì)農(nóng)業(yè)對(duì)象和過程智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)[1]。近年來,現(xiàn)代農(nóng)業(yè)IoT技術(shù)得到突飛猛進(jìn)的發(fā)展,高能效、低功耗已成為農(nóng)業(yè)IoT設(shè)備的重要發(fā)展趨勢(shì)[2]。隨著用戶對(duì)大面積監(jiān)控范圍內(nèi)實(shí)時(shí)數(shù)據(jù)需求的不斷提升,戶外節(jié)點(diǎn)尤其是網(wǎng)關(guān)節(jié)點(diǎn)作為農(nóng)業(yè)物聯(lián)網(wǎng)數(shù)據(jù)通信與處理樞紐,其長(zhǎng)期、高效與穩(wěn)定運(yùn)行顯得尤為重要。

針對(duì)農(nóng)業(yè)信息化領(lǐng)域戶外生產(chǎn)環(huán)境特殊,多數(shù)區(qū)域不適宜電源鋪設(shè)且存在電池容量受限、電力維護(hù)費(fèi)用高等問題[3~5],農(nóng)業(yè)生產(chǎn)現(xiàn)場(chǎng)大量采用能量收集技術(shù)將周圍物理環(huán)境資源(例如陽光、風(fēng)、振動(dòng)和潮汐等)轉(zhuǎn)化為電能并用于信息設(shè)備。例如,將壓電片收集的振動(dòng)能量用于監(jiān)測(cè)農(nóng)作物生長(zhǎng)情況[3];利用光伏板收集太陽能為水產(chǎn)養(yǎng)殖水質(zhì)浮標(biāo)供電[4];高原或偏遠(yuǎn)山區(qū)利用風(fēng)力資源發(fā)電等[5]。在這些應(yīng)用中,以振動(dòng)、光能、風(fēng)力發(fā)電為代表的新能源具有間歇性、隨機(jī)性及不確定性等特點(diǎn)[6],造成能量收集單元輸出功率不穩(wěn)定,易產(chǎn)生因輸出功率不足導(dǎo)致節(jié)點(diǎn)失效、以及因輸出功率過剩間接導(dǎo)致系統(tǒng)資源浪費(fèi),造成系統(tǒng)能效較低等問題。

目前,在能耗管理硬件層面出現(xiàn)不少功率調(diào)節(jié)技術(shù),如動(dòng)態(tài)電壓頻率調(diào)整(dynamic voltage and frequency,DVFS)[7,8]可通過調(diào)節(jié)電壓和時(shí)鐘頻率降低系統(tǒng)功耗;CPU熱插拔(CPU Hotplug)技術(shù)通過在線增加或減少處理器核數(shù)調(diào)整系統(tǒng)處理器功耗[9];異構(gòu)非對(duì)稱多核技術(shù),如ARM big.LITTLE[10]架構(gòu),采用高性能core與低功耗core組合的方式進(jìn)行配置,最新由4個(gè)高性能Cortex-A75和4個(gè)低功耗Cortex-A55構(gòu)成的big.LITTLE處理器,在中等性能的情況下可以節(jié)省75%的CPU能耗。

在能耗管理方面中,軟件技術(shù)的研究滯后于硬件層面的研究。軟件方面的功耗管理技術(shù)包括代碼編譯的寄存器、內(nèi)存分配、指令調(diào)度等特種處理器體系結(jié)構(gòu)的編譯優(yōu)化技術(shù)[11~14];操作系統(tǒng)中處理器、設(shè)備、內(nèi)存和文件系統(tǒng)等的功耗控制和優(yōu)化[15];網(wǎng)絡(luò)通訊協(xié)議相關(guān)的功耗優(yōu)化[16];指令級(jí)、操作系統(tǒng)級(jí)和系統(tǒng)級(jí)的功耗測(cè)量、估算和驗(yàn)證技術(shù)[17,18]等等。

現(xiàn)有基于能量收集系統(tǒng)的技術(shù)研究,主要集中利用功率調(diào)節(jié)技術(shù)在能量約束下最大化系統(tǒng)性能,或者是在能量收集單元輸出功率約束下最小化系統(tǒng)能耗。

本文基于big.LITTLE架構(gòu),通過分析處理器功率與處理器核資源的關(guān)系,提出一種面向能量收集的異構(gòu)多核農(nóng)業(yè)IoT功率自適應(yīng)技術(shù)。該技術(shù)能根據(jù)能量收集單元輸出功率變動(dòng)情況,利用支持進(jìn)程遷移的CPU熱插拔調(diào)節(jié)處理器工作功率,并根據(jù)當(dāng)前處理器核資源來管理工作者線程。實(shí)驗(yàn)結(jié)果表明,所提方案不僅能夠適應(yīng)能量收集單元輸出功率波動(dòng),還可提升系統(tǒng)能效,為戶外農(nóng)業(yè)IoT監(jiān)測(cè)提供更加穩(wěn)定高效的服務(wù)。

1 功率自適應(yīng)技術(shù)

本文以“小龍蝦生態(tài)化智能化設(shè)施養(yǎng)殖”水質(zhì)監(jiān)測(cè)網(wǎng)關(guān)為背景,圖1為典型戶外農(nóng)業(yè)IoT網(wǎng)關(guān)部署示意圖。分布在監(jiān)控區(qū)域的傳感器節(jié)點(diǎn)負(fù)責(zé)采集數(shù)據(jù),并通過無線方式將采集到的數(shù)據(jù)傳送至網(wǎng)關(guān)節(jié)點(diǎn)[19];傳感器節(jié)點(diǎn)配置pH傳感器、溫度傳感器、溶解氧等傳感器以及電源與無線通信模塊[20]。目前多數(shù)戶外農(nóng)業(yè)IoT通過在網(wǎng)關(guān)配置諸如衛(wèi)星、3G、GPRS、WLAN等實(shí)現(xiàn)與互聯(lián)網(wǎng)的遠(yuǎn)程連接[21]?,F(xiàn)場(chǎng)監(jiān)控中心則通過廣域網(wǎng)與戶外網(wǎng)關(guān)節(jié)點(diǎn)訪問IoT節(jié)點(diǎn),完成對(duì)系統(tǒng)的管理、優(yōu)化和調(diào)節(jié)。網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)響應(yīng)用戶要求、接收和處理現(xiàn)場(chǎng)網(wǎng)絡(luò)中所有節(jié)點(diǎn)信息,并完成特定的數(shù)據(jù)融合任務(wù)[22,23]。如:網(wǎng)關(guān)根據(jù)用戶請(qǐng)求實(shí)時(shí)計(jì)算水體pH、溫度均值,計(jì)算水體溶解氧最低濃度以及統(tǒng)計(jì)異常溫度、溶解氧節(jié)點(diǎn)等等。通常網(wǎng)關(guān)由性能和功耗相對(duì)平衡的計(jì)算節(jié)點(diǎn)構(gòu)成,在偏遠(yuǎn)的農(nóng)業(yè)戶外現(xiàn)場(chǎng),多采用能量收集技術(shù)實(shí)現(xiàn)自主供電。

圖1 戶外農(nóng)業(yè)IoT示意圖

針對(duì)受外界物理環(huán)境(例如風(fēng)力、天氣、溫度)的影響,能量收集單元輸出功率不穩(wěn)定,易產(chǎn)生因輸出功率不足導(dǎo)致節(jié)點(diǎn)失效,以及因輸出功率過剩間接導(dǎo)致系統(tǒng)資源浪費(fèi)造成系統(tǒng)能效較低等問題,提出一種功率自適應(yīng)技術(shù)。如圖2所示,方案主要由任務(wù)分解、功率自適應(yīng)調(diào)核和多線程管理三個(gè)部分組成。

1.1 基于MapReduce的應(yīng)用并行任務(wù)分解

為提高用戶在多核環(huán)境下的并行編程效率,保證網(wǎng)關(guān)數(shù)據(jù)處理任務(wù)可靈活并行調(diào)度,本文利用MapReduce編程模型作為用戶編程接口。在MapReduce中,map函數(shù)負(fù)責(zé)數(shù)據(jù)獲取與數(shù)據(jù)處理,reduce函數(shù)負(fù)責(zé)數(shù)據(jù)聚合[24],由MapReduce運(yùn)行時(shí)支持庫(kù)完成任務(wù)的分解與調(diào)度。

圖2 功率自適應(yīng)技術(shù)框架圖

下面以水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測(cè)網(wǎng)關(guān)統(tǒng)計(jì)異常溶解氧節(jié)點(diǎn)為例,詳細(xì)描述基于MapReduce模型應(yīng)用任務(wù)分解的過程。

在應(yīng)用MapReduce模型進(jìn)行任務(wù)分解中,map函數(shù)負(fù)責(zé)收集農(nóng)業(yè)野外生產(chǎn)現(xiàn)場(chǎng)中數(shù)據(jù)監(jiān)測(cè)節(jié)點(diǎn)的溶解氧,自定義函數(shù)get_temp()來讀取節(jié)點(diǎn)溶解氧,并由judge_abnormal_node()函數(shù)判斷是否為異常溶解氧節(jié)點(diǎn),若是異常溶解氧節(jié)點(diǎn)則使index=1;否則,index=0。然后使用emitIntermediate()函數(shù)將index與“1”結(jié)合成一組中間鍵值,這里的“1”代表異常溶解氧節(jié)點(diǎn)的數(shù)目。reduce函數(shù)負(fù)責(zé)獲取異常溶解氧節(jié)點(diǎn)的數(shù)量總和,并與index結(jié)合成新的鍵值對(duì)。最后將所有reduce函數(shù)處理結(jié)果匯總,統(tǒng)計(jì)最終異常溶解氧節(jié)點(diǎn)個(gè)數(shù)。

1.2 功率自適應(yīng)調(diào)核

1.2.1 異構(gòu)非對(duì)稱多核處理器工作功率分析

為分析處理器工作功率與當(dāng)前處理器核工作狀態(tài)組合的關(guān)系,利用CPU熱插拔調(diào)整當(dāng)前系統(tǒng)在線處理器核工作狀態(tài)組合,并分別測(cè)試不同情況下系統(tǒng)的實(shí)時(shí)功率。由于主核(編號(hào)為0的處理器核,cpu0)是系統(tǒng)初始化時(shí)首先啟動(dòng)的處理器核,也是執(zhí)行CPU熱插拔的管理核。除非關(guān)機(jī),主核永遠(yuǎn)處于在線狀態(tài),只有輔核(編號(hào)非0的核,非cpu0)才能進(jìn)行CPU熱插拔。

以采用四小核雙大核結(jié)構(gòu)的RK3399為例,其cpu0、cpu1、cpu2、cpu3為小核Cortex-A53,cpu4、cpu5為大核Cortex-A72。設(shè)主核處理器工作功率P0,每增加一個(gè)小核功率增加值為Plittle,每增加一個(gè)大核功率增加值為Pbig,當(dāng)前系統(tǒng)啟動(dòng)的小核的數(shù)量為Nlittle,啟動(dòng)的大核的數(shù)量為Nbig,那么系統(tǒng)處理器工作功率Pneed滿足:

表1以處理200MB數(shù)據(jù)集為例,列出不同處理器核工作狀態(tài)組合下,系統(tǒng)執(zhí)行的時(shí)間、功率和能耗。表1中,Ncurrent表示目前系統(tǒng)處理器的核數(shù),Tn、Pn和En分別表示在第n組處理器的組合情況下系統(tǒng)的總執(zhí)行時(shí)間、功率與能耗。由于RK3399采用四小核Cortex-A53+雙大核Cortex-A72相結(jié)合,故系統(tǒng)處理器核共有12種處于工作狀態(tài)的組合方式。

通過對(duì)表1的數(shù)據(jù)進(jìn)行分析,可得P0≈3.63w,Plittle≈0.28w,Pbig≈1.26w。從能源效率的角度來看,系統(tǒng)功率應(yīng)當(dāng)與執(zhí)行時(shí)間成反比。顯然,處理器核工作狀態(tài)組合“Ncurrent=Nlittle+Nbing”為“2=1+1”及“3=1+2”、“4=2+2”時(shí),不滿足這個(gè)特點(diǎn),故這三種組合情況對(duì)本文研究并沒有意義。為了描述方便,對(duì)表1中有效處理器核工作狀態(tài)組合進(jìn)行了編號(hào),共得到九種有效組合。

當(dāng)能量收集單元輸出功率發(fā)生波動(dòng)時(shí),功率自適應(yīng)調(diào)核模塊根據(jù)功率監(jiān)測(cè)單元感知到的輸出功率按照表1中的有效處理器核工作狀態(tài)組合對(duì)系統(tǒng)當(dāng)前處理器核類型以及數(shù)量作出調(diào)整。

表1 不同處理器組合情況下系統(tǒng)測(cè)試結(jié)果表

1.2.2 基于CPU插拔的自動(dòng)調(diào)核策略

自動(dòng)調(diào)核策略是按照最優(yōu)匹配算法選擇與能量收集單元輸出功率最匹配的處理器核工作狀態(tài)組合,然后基于OS提供的CPU熱插拔技術(shù)(CPU Hotplug)實(shí)現(xiàn)。

在系統(tǒng)運(yùn)行過程中,結(jié)合信號(hào)量機(jī)制與多線程技術(shù)完成功率自適應(yīng)自動(dòng)調(diào)核模塊與多線程任務(wù)調(diào)度策略的通信,具體的實(shí)現(xiàn)如下:

創(chuàng)建線程receive_power_thread用于獲取功率的變化,線程的入口地址為receive_power_func函數(shù),即pthread_create(&receive_power_thread,NULL,eceive_power_func,NULL),主線程通過不斷地循環(huán)使用start信號(hào)量來開啟此線程,即sem_post(&start)。其中,receive_power_func函數(shù)用來感知能量收集單元輸出功率Psupply,并根據(jù)當(dāng)前功率對(duì)處理器核類型及數(shù)量作出調(diào)整,然后根據(jù)處理器變動(dòng)情況管理工作者線程。

為避免由于功率波動(dòng)造成頻繁執(zhí)行熱插拔操作的問題,采用以下方法:當(dāng)Psupply增加時(shí),只有當(dāng)Psupply滿足式(2)時(shí),才發(fā)出處理器調(diào)整請(qǐng)求,并且只有當(dāng)連續(xù)的3個(gè)采樣周期均發(fā)出處理器核調(diào)整請(qǐng)求時(shí),才能調(diào)整系統(tǒng)目前處理器核工作狀態(tài)的組合,否則保持當(dāng)前處理器核工作狀態(tài)組合不變;反之,當(dāng)Psupply減少時(shí),那么只要當(dāng)Psupply滿足式(3)時(shí),就對(duì)系統(tǒng)當(dāng)前處理器核工作狀態(tài)組合進(jìn)行調(diào)整。

式(2)、式(3)中,Pcurrent表示當(dāng)前處理器核工作狀態(tài)組合下處理器工作功率,Pcurrent+1表示下一處理器核工作狀態(tài)組合下處理器工作功率需求,Pcurrent-1表示上一處理器核工作狀態(tài)組合下處理器工作功率需求。

在Linux中執(zhí)行CPU熱移除時(shí),系統(tǒng)通過調(diào)用cpu_down()函數(shù)使當(dāng)前系統(tǒng)處理器核來執(zhí)行idle進(jìn)程,并設(shè)置該idle進(jìn)程的優(yōu)先級(jí)為最高級(jí);然后把該處理器核上的所有進(jìn)程與定向至該處理器核上的所有中斷、定時(shí)器、中斷bottom half、tasklet均遷移到其他空閑處理器,而OS的工作是遷移CPU熱移除中殘留的任務(wù);接下來通過調(diào)用cpu_disable()函數(shù)來完成與體系結(jié)構(gòu)相關(guān)的工作的清理;最后調(diào)用cpu_dead()函數(shù),從而保證該處理器核不再運(yùn)行任何進(jìn)程[25]。

對(duì)編號(hào)為i的CPU核進(jìn)行熱移除操作的具體實(shí)現(xiàn)方法為fputs(“0”,“/sys/devices/system/cpu/cpui/online”)。

CPU熱插入比熱移除較為簡(jiǎn)單,由于系統(tǒng)之前并沒有與此處理器核相關(guān)的任務(wù)與數(shù)據(jù),所以添加處理器核數(shù)并不會(huì)破壞當(dāng)前系統(tǒng)的運(yùn)行,系統(tǒng)無需額外配置即可識(shí)別到新插入的處理器核,并將一部分進(jìn)程運(yùn)行在該處理器核上。

對(duì)編號(hào)為j的CPU核進(jìn)行熱插入操作的具體實(shí)現(xiàn)方法是fputs(“1”,“/sys/devices/system/cpu/cpuj/online”)。

1.3 面向自動(dòng)調(diào)核的多線程管理

為了適應(yīng)動(dòng)態(tài)核資源的變動(dòng)情況,并提高系統(tǒng)性能,利用Phoenix[26,27]多線程任務(wù)調(diào)度機(jī)制充分發(fā)揮異構(gòu)多核處理器系統(tǒng)的并行處理能力,并結(jié)合操作系統(tǒng)進(jìn)程遷移與線程親和性管理處理器工作負(fù)荷。

面向能量收集的異構(gòu)多核農(nóng)業(yè)IoT網(wǎng)關(guān)功率自適應(yīng)技術(shù)實(shí)現(xiàn)的多線程管理具體如下:

1)創(chuàng)建工作者線程。

主線程創(chuàng)建若干工作者線程,工作者線程的數(shù)量由系統(tǒng)物理核心數(shù)Nmax決定。為便于設(shè)置線程親和性,工作者線程與處理器核是一一對(duì)應(yīng)關(guān)系。通過pthread_create(&tpool->threads[i],&attr,thread_ loop,&tpool->thread_args[i])函數(shù)實(shí)現(xiàn)工作者線程的創(chuàng)建,其中thread_loop函數(shù)作為工作者線程的入口地址,工作者線程在此處執(zhí)行線程等待,直到主線程啟動(dòng)該工作者線程。Phoenix2.0在src/tpool.c文件中實(shí)現(xiàn)該功能。

2)啟動(dòng)工作者線程。

主線程利用信號(hào)量啟動(dòng)所有工作者線程,并通過syscall(SYS_gettid)函數(shù)獲取當(dāng)前工作者線程的pid。通過sem_post(&(tpool->thread_args[i].sem_run))函數(shù)實(shí)現(xiàn)線程的啟動(dòng),Phoenix2.0在src/tpool.c文件中的tpool_begin函數(shù)實(shí)現(xiàn)工作者線程啟動(dòng)。

3)管理工作者線程

首先,根據(jù)處理器核的初始狀態(tài),為處于在線狀態(tài)的處理器核相對(duì)應(yīng)的工作者線程設(shè)置線程親和性,將其綁定在相應(yīng)處理器核上,并且該類工作者線程保持運(yùn)行狀態(tài),依次獲取并執(zhí)行任務(wù)隊(duì)列中的任務(wù);此外,不為處于離線狀態(tài)的處理器核相對(duì)應(yīng)的工作者線程設(shè)置線程親和性,并且休眠該類工作者線程。

其次,系統(tǒng)運(yùn)行過程中,根據(jù)當(dāng)前處理器核的變動(dòng)情況,基于以下規(guī)則進(jìn)行管理工作者線程:某處理器核被CPU熱移除時(shí),OS把執(zhí)行在處理器核上的工作者線程遷移到其他空閑處理器核上運(yùn)行,從而保證該工作者線程上沒有處于執(zhí)行狀態(tài)的任務(wù),然后使該工作者線程處于休眠狀態(tài)(如圖3所示)。

某處理器核被CPU熱插入時(shí),喚醒相應(yīng)的工作者線程,并將該工作者線程通過sched_setaffinity(pid,sizeof(cpu_set),&cpu_set)設(shè)置線程親和性綁定至相應(yīng)的處理器核上(如圖4所示),該工作者線程重新從任務(wù)隊(duì)列中獲取任務(wù)并執(zhí)行。Phoenix2.0在src/map_reduce.c文件中的tq_dequeue函數(shù)中實(shí)現(xiàn)工作者線程任務(wù)獲取并執(zhí)行。

圖3 CPU熱移除

圖4 CPU熱插入

設(shè)置親和性的原因在于:在多核處理器上,每個(gè)處理器核有各自的緩存用來存放進(jìn)程使用的進(jìn)程使用的信息,而進(jìn)程可能會(huì)被OS調(diào)度到其他處理器核上。工作者線程設(shè)置親和性綁定在某一個(gè)指定處理器核上運(yùn)行,除非相應(yīng)的處理器核CPU被熱移除,否則該工作者線程將一直在指定處理器核上執(zhí)行,減少工作者線程在不同處理器核之間進(jìn)行頻繁的遷移,從而提高CPU cache的命中率和系統(tǒng)性能。

2 實(shí)驗(yàn)驗(yàn)證與分析

在上海海洋大學(xué)濱海基地水產(chǎn)養(yǎng)殖現(xiàn)場(chǎng)驗(yàn)證本文的功率自適應(yīng)技術(shù)的有效性及其能效。水產(chǎn)養(yǎng)殖區(qū)域水質(zhì)浮標(biāo)分別對(duì)水溫、溶解氧濃度以及PH值等參數(shù)進(jìn)行長(zhǎng)期的實(shí)時(shí)監(jiān)測(cè),設(shè)定每個(gè)傳感器節(jié)點(diǎn)每隔10min采集1次數(shù)據(jù);以太陽能電池作為能量收集裝置為水質(zhì)監(jiān)測(cè)網(wǎng)關(guān)供電。

本文以低成本嵌入式開發(fā)板RK3399作為實(shí)驗(yàn)平臺(tái),操作系統(tǒng)采用Ubuntu 16.04-arm64bit,內(nèi)核版本為L(zhǎng)inux 4.4.52,并以提取異常溶解氧節(jié)點(diǎn)作為測(cè)試實(shí)例。

2.1 有效性驗(yàn)證

以提取異常溶解氧節(jié)點(diǎn)為測(cè)試實(shí)例,并在不同運(yùn)行環(huán)境下進(jìn)行測(cè)試。表2給出了分別使用本文方法與傳統(tǒng)不提供功率自適應(yīng)調(diào)核功能的Phoenix調(diào)度策略的實(shí)驗(yàn)結(jié)果表。其中,Psupply表示能量收集單元輸出功率,P0表示支持主核正常運(yùn)行的處理器工作功率需求,Pcurrent表示當(dāng)前處理器核工作狀態(tài)組合下處理器工作功率。

從表2中可知,在單核環(huán)境中,當(dāng)Psupply≥Pcurrent≥P0時(shí),本文方法與Phoenix調(diào)度策略都有效。在多核環(huán)境中,當(dāng)Psupply≥Pcurrent>P0時(shí),本文方法與Phoenix調(diào)度策略都有效;但是,當(dāng)Pcurrent≥Psupply>P0時(shí),本文方法可用于此種情況,而傳統(tǒng)不提供自動(dòng)調(diào)核功能的Phoenix調(diào)度策略由于能量收集單元輸出功率不足導(dǎo)致節(jié)點(diǎn)失效。

2.2 能效對(duì)比

由上文有效性驗(yàn)證結(jié)果可知,能量收集單元輸出功率必須能夠支持系統(tǒng)主核正常運(yùn)行,才能確保本文所提出功率自適應(yīng)技術(shù)的有效性,并且若能夠保證能量收集單元最小輸出功率不小于當(dāng)前處理器工作功率需求,傳統(tǒng)Phoenix調(diào)度策略能夠正常運(yùn)行?;谶@個(gè)前提,在多核環(huán)境中,模擬3種能量收集單元輸出功率波動(dòng)情況:

A:設(shè)功率初始值P1,隔1s增加0.3w,持續(xù)13s;之后隔1s減少0.3w,持續(xù)13s,功率依此循環(huán)變化。

B:設(shè)功率初始值P7,隔2s減少0.5w,持續(xù)8s;之后隔2s增加0.5w,持續(xù)8s,功率依此循環(huán)變化。

C:設(shè)功率初始值P9,每隔1s減少0.5w,持續(xù)4s;之后隔3s增加1w,持續(xù)6s,功率依此循環(huán)變化。

其中,P1、P7、P9的具體值如表1所示。為了將本文方法與傳統(tǒng)不提供不提供功率自適應(yīng)調(diào)核功能的Phoenix調(diào)度策略進(jìn)行對(duì)比,在這3種能量收集單元輸出功率波動(dòng)情況下,分別按照兩種方式初始化處理器核。

1)根據(jù)能量收集單元最小輸出功率能夠支持Phoenix調(diào)度策略正常運(yùn)行的處理器核工作狀態(tài)組合初始化處理器核,即在這3種能量收集單元輸出功率波動(dòng)情況下,分別按照處理器核工作狀態(tài)組合序號(hào)1、2、4初始化處理器核工作狀態(tài)組合;

2)由于能量收集單元輸出功率的波動(dòng)性,通常情況下,無法預(yù)測(cè)最小輸出功率,方式1)并不適用,為支持Phoenix調(diào)度策略正常運(yùn)行,直接按照處理器核工作狀態(tài)組合序號(hào)1初始化處理器核工作狀態(tài)組合,即只有主核處于在線狀態(tài)。

表3中列出數(shù)據(jù)集大小分別為10MB、50MB、100MB及200MB時(shí)系統(tǒng)的執(zhí)行時(shí)間與系統(tǒng)能耗。其中,Phoenix1、Phoenix2分別表示按照方式1)、方式2)初始化處理器下Phoenix調(diào)度策略的實(shí)驗(yàn)結(jié)果。

表2 本文方法與Phoenix調(diào)度策略在不同運(yùn)行環(huán)境下的實(shí)驗(yàn)結(jié)果

表3 不同調(diào)核方式在不同運(yùn)行環(huán)境下執(zhí)行時(shí)間與能耗對(duì)比

實(shí)驗(yàn)結(jié)果表明,在能量收集單元輸出功率波動(dòng)情況下,本文方法明顯優(yōu)于Phoenix調(diào)度策略,并且隨著數(shù)據(jù)量的增大,其能效優(yōu)勢(shì)逐步體現(xiàn)。原因在于若手動(dòng)根據(jù)能量收集單元最小輸出功率初始化處理器核工作狀態(tài)組合,或是只有主核處于在線狀態(tài),當(dāng)能量收集單元輸出功率波較大時(shí),傳統(tǒng)Phoenix調(diào)度策略由于不提供功率自適應(yīng)調(diào)核功能不能夠自適應(yīng)控制處理器工作功率,導(dǎo)致資源沒有充分得到應(yīng)用,極大地降低了系統(tǒng)能效。而本文方法利用并優(yōu)化了Phoenix調(diào)度策略,根據(jù)能量收集單元輸出功率變化情況自適應(yīng)地調(diào)整處理器核工作狀態(tài)組合,從而充分利用系統(tǒng)資源,提高了系統(tǒng)能效,執(zhí)行時(shí)間與能耗分別平均優(yōu)化了將近45.54%以及37.93%。

3 結(jié)語

為解決戶外農(nóng)業(yè)IoT網(wǎng)關(guān)數(shù)據(jù)處理過程中,由于沒有考慮處理器工作功率需求和能量收集單元輸出功率的不確定性造成的網(wǎng)關(guān)節(jié)點(diǎn)失效以及能效較低等問題,本文提出一種基于嵌入式big.LITTLE異構(gòu)多核架構(gòu)的自動(dòng)調(diào)核功率自適應(yīng)技術(shù),將cpu熱插拔、信號(hào)機(jī)制以及多線程調(diào)度等軟硬件技術(shù)相結(jié)合,實(shí)現(xiàn)功率自適應(yīng)。實(shí)驗(yàn)結(jié)果表明本文方法的有效性,并與傳統(tǒng)不支持功率自適應(yīng)調(diào)核的Phoenix調(diào)度策略進(jìn)行比較,本文方法不僅能夠適應(yīng)能量收集單元輸出功率波動(dòng)的場(chǎng)合,而且在執(zhí)行時(shí)間以及能耗方面明顯優(yōu)于Phoenix調(diào)度策略。

該功率自適應(yīng)技術(shù)并不局限于農(nóng)業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)自主供電的應(yīng)用,對(duì)于其他供電功率波動(dòng)的情況,可對(duì)本文方法稍作修改并使用,能夠廣泛應(yīng)用于農(nóng)田、溫室、苗圃、養(yǎng)殖池等區(qū)域。

猜你喜歡
線程輸出功率處理器
淺談linux多線程協(xié)作
適用于智能電網(wǎng)的任意波形輸出功率源
基于雙層BP神經(jīng)網(wǎng)絡(luò)的光伏電站輸出功率預(yù)測(cè)
Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
汽車零部件(2014年1期)2014-09-21 11:41:11
呼嚕處理器
分布式發(fā)電系統(tǒng)并網(wǎng)逆變器輸出功率的自適應(yīng)控制
第九代雅閣
Linux線程實(shí)現(xiàn)技術(shù)研究
么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
金塔县| 嘉定区| 阳曲县| 廊坊市| 长子县| 遂溪县| 南汇区| 连云港市| 淳安县| 新化县| 泰顺县| 大庆市| 嵩明县| 积石山| 周口市| 焦作市| 富源县| 敦煌市| 仪征市| 安仁县| 万山特区| 萨迦县| 黔江区| 三江| 罗城| 杭锦旗| 平安县| 南丰县| 尼木县| 汾西县| 巴林右旗| 尚志市| 保德县| 贡觉县| 望城县| 宜丰县| 吉木萨尔县| 东辽县| 伊春市| 建宁县| 云霄县|