• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于系統(tǒng)管理核的龍芯睿頻方法①

      2022-08-04 09:58:28高佳佳張方舟楊嘉勛陳華才龔聲蓉1
      計算機系統(tǒng)應(yīng)用 2022年7期
      關(guān)鍵詞:龍芯調(diào)頻寄存器

      高佳佳,張方舟,楊嘉勛,陳華才,龔聲蓉1,

      1(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,大慶 163318)

      2(江蘇航天龍夢信息技術(shù)有限公司,蘇州 215500)

      3(常熟理工學(xué)院 計算機科學(xué)與工程學(xué)院,蘇州 215500)

      處理器設(shè)計的中心目標(biāo)一直是最大限度地利用可用資源以實現(xiàn)最大性能. 在多核處理器中,操作情況是不可預(yù)測的: 在有多個就緒的軟件線程情況下,可以通過并行執(zhí)行更多線程來提高系統(tǒng)性能; 在其他情況下,提高單線程性能是改善整個系統(tǒng)性能的唯一途徑[1].為了更好地發(fā)揮單線程應(yīng)用的性能,處理器制造商相繼提出睿頻技術(shù),其中Intel 的睿頻技術(shù)為turbo boost technology[2]、AMD 的睿頻技術(shù)為turbo core technology[3]. 睿頻技術(shù)在動態(tài)電壓頻率調(diào)節(jié)(dynamic voltage and frequency scaling,DVFS)基礎(chǔ)上,增加了允許CPU頻率超過默頻的特性. 與以前通過降低CPU 時鐘頻率和電壓來節(jié)省能源的DVFS[4–6]工作相反,當(dāng)多核處理器具有空閑資源時,睿頻技術(shù)降低空閑核心的功耗,提高活躍核心的CPU 時鐘頻率,側(cè)重于在熱設(shè)計功耗(thermal design power,TDP)范圍內(nèi)最大化處理器性能.

      傳統(tǒng)商用的睿頻技術(shù)通過頻率和電壓調(diào)節(jié),以不成比例的功率和能源消耗為代價,實現(xiàn)適度的性能增益[7]. 睿頻由嵌入式硬件控制器的固件控制,除了啟用/禁用睿頻功能之外,軟件幾乎無法控制睿頻. 然而僅依賴固件控制器打開睿頻功能,無法最大化睿頻的效果.針對上述問題,不少學(xué)者在傳統(tǒng)睿頻的基礎(chǔ)上進行研究與改進. Richins 等人[8]根據(jù)應(yīng)用程序特性來激活/停用睿頻來加速串行和并行代碼的執(zhí)行. Kondguli等人[1]提出自適應(yīng)睿頻技術(shù),設(shè)計前瞻線程了解代碼行為,將資源投入到具有最佳估計性能收益的核心中.Marques 等人[9]將睿頻技術(shù)與動態(tài)并發(fā)節(jié)流技術(shù)(dynamic concurrency throttling,DCT)結(jié)合來加速順序代碼、平衡線程的并行執(zhí)行. Zahedi 等人[10]提出了一種計算沖刺的架構(gòu),將頻率和電壓提升到超過TDP 水平,并運行幾秒,同時根據(jù)應(yīng)用程序階段和系統(tǒng)條件決定是否沖刺. Leva 等人[11]將沖刺應(yīng)用作為基于時間/事件的混合系統(tǒng)進行分析,來獲得穩(wěn)定性和性能.

      龍芯在處理器動態(tài)調(diào)頻方面也有相應(yīng)研究. 顧麗紅等人[12]根據(jù)龍芯2F 單核處理器支持軟件配置多種不同CPU 主頻的特性,編寫CPUFreq 的驅(qū)動代碼,實現(xiàn)龍芯軟件層的動態(tài)調(diào)頻的方法; 在龍芯3A1000 多核處理器中,因其各個核心頻率不能獨立調(diào)節(jié),陳華才等人[13]將動態(tài)調(diào)頻和自動調(diào)核結(jié)合,實現(xiàn)單獨為每個核設(shè)置不同的頻率. 龍芯現(xiàn)有的動態(tài)調(diào)頻均是在默頻范圍內(nèi)進行調(diào)節(jié),當(dāng)處理器需要運行在超過默頻的高頻時,處理器電壓需調(diào)節(jié)到高壓,否則處理器將無法穩(wěn)定運行在超過默頻的高頻,從而無法實現(xiàn)睿頻功能. 然而在龍芯動態(tài)調(diào)壓方面的研究較少. 現(xiàn)有的龍芯處理器多數(shù)運行在恒定電壓,而龍芯3A4000 處理器若利用處理器核來調(diào)節(jié)自身電壓則會有以下問題: (1)影響CPU負載的正常運行: 在調(diào)頻調(diào)壓過程中,處理器核需實時監(jiān)測自身的頻率和電壓的狀態(tài),即處理器核直到一次調(diào)頻調(diào)壓結(jié)束后才會去運行CPU 負載,而調(diào)頻調(diào)壓涉及到硬件操作,完成調(diào)頻調(diào)壓的時間無法確定,若系統(tǒng)運行進行多次的調(diào)頻調(diào)壓操作,那么處理器核將無法正常運行CPU 負載; (2)缺少對溫度的控制: 由于系統(tǒng)將溫度和頻率割裂管理,當(dāng)處理器運行在高壓高頻時,芯片的溫度會上升,若此時對溫度控制管理不及時,芯片將會面臨被燒壞的風(fēng)險. 同時,現(xiàn)有的Intel、AMD睿頻技術(shù)由于處理器指令集和微架構(gòu)的差異、代碼閉源等因素,無法將睿頻技術(shù)直接從Intel 或AMD 平臺移植到龍芯平臺. 針對上述問題,本文根據(jù)龍芯3A4000設(shè)計的特點和Intel、AMD 平臺的睿頻思想[14,15],提出龍芯平臺基于系統(tǒng)管理核(system mangement controller,SMC)的睿頻方法,利用SMC 實時監(jiān)測調(diào)節(jié)處理器核的頻率和電壓,同時,利用SMC 監(jiān)測并控制芯片的溫度,最終實現(xiàn)綜合考量頻率、電壓、溫度的龍芯睿頻技術(shù).

      1 基于SMC 的龍芯睿頻設(shè)計

      1.1 總體框架設(shè)計

      睿頻技術(shù)需要處理器硬件和軟件支持. 在硬件支持方面,龍芯3A4000 處理器在硬件上支持多種分級電源狀態(tài)[16],利用處理器核分頻設(shè)置寄存器可設(shè)置各個核的主頻,利用電源管理芯片(power management IC,PMIC)可管理處理器核的電壓; 在軟件支持方面,睿頻技術(shù)基于Linux 內(nèi)核的CPUFreq 子系統(tǒng)[17]實現(xiàn),提供龍芯3A4000 的CPUFreq 驅(qū)動就可以使用CPUFreq 提供的調(diào)頻策略,如Ondemand、Conservative、Performance等頻率調(diào)節(jié)策略.

      基于SMC 的龍芯睿頻的整體流程如下: 首先,龍芯3A4000 的每個處理器核根據(jù)用戶接口傳遞的參數(shù)或CPUFreq governor 中的調(diào)頻策略來確定其要調(diào)節(jié)的目標(biāo)頻率并通過CPUFreq core 模塊傳遞給CPUFreq driver 模塊; 接著,處理器核獲取到CPUFreq driver 模塊中的目標(biāo)頻率后向SMC 下達調(diào)頻命令; 最后,SMC根據(jù)命令去調(diào)節(jié)頻率、電壓等相關(guān)寄存器的值,并將執(zhí)行完成后的結(jié)果反饋給處理器核. 同時在SMC 中加入溫度控制功能,并實時監(jiān)控處理器核的頻率電壓溫度狀況. 龍芯3A4000 基于SMC 實現(xiàn)睿頻的整體框架圖如圖1 所示.

      圖1 基于SMC 的龍芯睿頻總體框架圖

      1.2 SMC 的功能設(shè)計

      由圖1 可知,龍芯3A4000 基于SMC 的睿頻方法主要分為處理器核部分(CPUFreq 子系統(tǒng))和SMC 兩部分. 其中SMC 部分需要包含動態(tài)調(diào)頻調(diào)壓功能、溫度控制功能、與處理器核交互功能.

      為了更好地在SMC 上開發(fā)功能、管理SMC 以及保證SMC 的實時性,本文基于RT-Thread 實時操作系統(tǒng)的線程調(diào)度功能模塊化地編寫SMC 的各個功能模塊,基于RT-Thread 系統(tǒng)的SMC 功能設(shè)計如圖2 所示.

      圖2 中主要有3 個線程: 采樣線程、決策線程和指令線程. 采樣線程主要運行溫度模塊來獲取處理器核的溫度; 決策線程主要有3 部分: 根據(jù)溫度調(diào)節(jié)風(fēng)扇轉(zhuǎn)速模塊、頻率調(diào)節(jié)模塊和電壓調(diào)節(jié)模塊; 指令線程主要運行指令模塊,接收并處理來自處理器核的命令,實現(xiàn)處理器核和SMC 的交互功能. SMC 的指令模塊收到處理器核的命令后,決策線程根據(jù)命令對相應(yīng)模塊做出相對應(yīng)的改變,實現(xiàn)頻率和電壓的調(diào)節(jié)功能. 同時,采樣線程會一直讀取芯片的溫度,溫度過高時會提高風(fēng)扇轉(zhuǎn)速并降低頻率和電壓,實現(xiàn)SMC 對處理器核溫度控制的功能. SMC 基于RT-Thread 實時操作系統(tǒng)循環(huán)調(diào)度這3 個線程,實現(xiàn)對處理器核電壓、頻率、溫度的實時監(jiān)測與調(diào)節(jié).

      圖2 基于RT-Thread 系統(tǒng)的SMC 功能設(shè)計圖

      2 基于SMC 的龍芯睿頻實現(xiàn)

      2.1 調(diào)頻調(diào)壓功能

      龍芯3A4000 利用處理器核軟件分頻設(shè)置寄存器對處理器核進行調(diào)頻設(shè)置,該寄存器每4 位為一個頻控域,每個頻控域控制一個處理器核,其中頻控域的低3 位為分頻系數(shù),提供多種分級頻率[18]. 當(dāng)龍芯3A4000 處理器通過睿頻將最高頻率從1 800 MHz 變?yōu)? 000 MHz時,處理器頻率被分為10 個等級,頻率表如表1 所示.根據(jù)電壓芯片能承受的最大電壓來確定處理器能穩(wěn)定運行的最高頻率.

      龍芯3A4000 通過鎖相環(huán)(phase locked loop,PLL)來調(diào)節(jié)處理器的頻率,每個時鐘配置有3 個參數(shù):DIV_REFC、DIV_LOOPC和DIV_OUT. 根據(jù)3 個參數(shù)經(jīng)式(1)可得出最終的時鐘頻率:

      其中,OSC_FREQ為外部參考時鐘頻率,設(shè)為100 MHz.

      為了減少對PLL 和電壓的修改,根據(jù)處理器運行的頻率將處理器分為3 個狀態(tài): 空閑(idle)狀態(tài)、普通(normal)狀態(tài)和睿頻(boost)狀態(tài),同時依次從低到高對應(yīng)著PLL 的3 個等級,如表1 的第3 列所示. 通過設(shè)定最高分頻系數(shù)和最低分頻系數(shù)對調(diào)頻調(diào)壓的范圍進行限制,其中空閑狀態(tài)下調(diào)節(jié)頻率的最高等級為4,即750 MHz; 普通狀態(tài)下調(diào)節(jié)頻率的最高等級為8,即1 500 MHz; 睿頻狀態(tài)下調(diào)節(jié)頻率的最高等級為10,即2 000 MHz. 當(dāng)PLL 狀態(tài)改變時,相對應(yīng)的時鐘參數(shù)DIV_REFC、DIV_LOOPC、DIV_OUT都需要重新設(shè)置. 同時,為了保持請求一致性,HyperTransport (HT)、片上網(wǎng)絡(luò)(network-on-chip,NoC)、共享緩存(share cache)、靜態(tài)隨機存儲器(static random-access memory,SRAM)也會進行相應(yīng)的分頻操作.

      由于現(xiàn)有一個PMIC 控制4 個處理器核的電壓,因此要根據(jù)4 個處理器核中的最高頻率來判斷PLL 的最終狀態(tài). 電壓會隨著PLL 狀態(tài)的改變而改變,空閑狀態(tài)時電壓為1 V,普通狀態(tài)時電壓為1.15 V,睿頻狀態(tài)時電壓為1.4 V. 當(dāng)PLL 狀態(tài)升級時,先升壓再升頻;當(dāng)PLL 狀態(tài)降級時,先降頻再降壓. SMC 通過I2C 控制PMIC 實現(xiàn)對處理器核電壓的控制. 電壓值以毫伏(mV)為單位,并經(jīng)過式(2)轉(zhuǎn)換得到最后的數(shù)據(jù),將最后得到的數(shù)據(jù)寫進uP9512s 電壓芯片,最終實現(xiàn)調(diào)節(jié)處理器核電壓的功能.

      SMC 調(diào)節(jié)處理器核的頻率和電壓的整體流程如圖3 所示.

      圖3 SMC 的循環(huán)調(diào)頻調(diào)壓流程圖

      由圖3 可知,SMC 先獲取處理器核溫度,然后根據(jù)溫度調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,接著根據(jù)4 個核中的最高頻率判斷PLL 等級等信息來得出最終的PLL 等級,最后根據(jù)PLL 等級調(diào)整處理器核頻率電壓以及系統(tǒng)其它組件的頻率. SMC 的主線程會一直循環(huán)運行這個流程,實現(xiàn)對處理器核頻率、電壓、溫度的實時監(jiān)測和統(tǒng)一管理.

      2.2 溫度控制功能

      溫度控制模塊是根據(jù)傳感器獲取的溫度改變脈沖寬度調(diào)制(pulse width modulation,PWM)的占空比來調(diào)節(jié)相對應(yīng)的風(fēng)扇轉(zhuǎn)速,以此實現(xiàn)芯片的降溫,達到保護芯片的目的.

      龍芯3A4000 內(nèi)部集成兩個溫度傳感器,可以通過采樣寄存器進行觀測,在調(diào)頻時對處理器核的溫度進行判斷,判斷是否超過設(shè)定的安全溫度,若超過則降頻.讀取的寄存器的值經(jīng)過式(3)的計算得出最后處理器核的溫度.

      其中,data為從溫度采樣寄存器讀取的值. 處理器工作時的溫度范圍應(yīng)為–40 ℃至125 ℃,即Temp的取值范圍在–40 ℃至125 ℃之間.

      SMC 根據(jù)獲取到的溫度進行風(fēng)扇轉(zhuǎn)速的調(diào)節(jié). 龍芯3A4000 處理器采用自研的7A1000 橋片,將橋片集成的PWM 接口和對處理器核的溫度監(jiān)測相結(jié)合,并應(yīng)用于散熱器風(fēng)扇的轉(zhuǎn)速控制上. PWM 調(diào)節(jié)風(fēng)扇轉(zhuǎn)速根據(jù)不同溫度會有不同的占空比從而風(fēng)扇會有不同的轉(zhuǎn)速,溫度越高,占空比越高,風(fēng)扇轉(zhuǎn)速就越快. 利用PWM 的低脈沖寬度寄存器用來配置PWM 輸出的周期信號的低電平,脈沖周期寬度寄存器用來配置總周期的長度,單位為PWM 模塊的時鐘周期. 設(shè)置總周期長度為255,通過改變低電平的長度來改變占空比,實現(xiàn)對風(fēng)扇轉(zhuǎn)速的控制. 本文將風(fēng)扇轉(zhuǎn)速劃分為5 個等級,如表2 所示.

      表2 風(fēng)扇轉(zhuǎn)速等級表

      風(fēng)扇有兩種模式,一種為人工(manual)模式,一種為自動(auto)模式,將風(fēng)扇設(shè)置為自動模式,在調(diào)頻調(diào)壓的過程中,SMC 會一直根據(jù)從傳感器獲取的溫度按照表2 來調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速.

      2.3 SMC 與處理器核的交互功能

      2.3.1 核間通信

      由于處理器核和SMC 是相互獨立的核,需建立核間通信才能完成命令的傳遞和結(jié)果的反饋. 選取處理器核和SMC 共享的、均能訪問到的32 位郵箱寄存器作為中間傳遞寄存器并進行核間通信. 處理器核將命令內(nèi)容放在郵箱寄存器中,SMC 的指令模塊輪詢讀取命令并根據(jù)命令進行相對應(yīng)的操作. SMC 處理完成后,將反饋給處理器核的結(jié)果放在郵箱寄存器,處理器核輪詢讀取結(jié)果. 圖4 為處理器核和SMC 利用郵箱寄存器進行核間通信的大致過程.

      圖4 SMC 和處理器核的核間通信過程

      為保證處理器核和SMC 之間的快速通信,在核間通信的基礎(chǔ)上,設(shè)計了一套“Service Request”的通訊協(xié)議. 在寄存器的內(nèi)部定義了一個smc_message 的結(jié)構(gòu)體,smc_message 由1 位命令是否完成的標(biāo)志位complete、7 位命令類型cmd 和24 位參數(shù)arg 組成,以此來建立各種命令. 處理器核按照“Service Request”協(xié)議向SMC下達的命令可分為特征使能、獲取頻率等級、獲取頻率信息、獲取特征和設(shè)置頻率等級. 其中,當(dāng)命令為調(diào)頻時,參數(shù)為頻率索引.

      2.3.2 處理器核的驅(qū)動支持

      正如第1.1 節(jié)所述,龍芯3A4000 處理器實現(xiàn)睿頻技術(shù)需添加相應(yīng)的CPUFreq 驅(qū)動支持. 在SMC 功能大致實現(xiàn)后,將龍芯3A4000 處理器的相關(guān)參數(shù)提交給CPUFreq 子系統(tǒng),往CPUFreq core 模塊注冊相應(yīng)的驅(qū)動. 在龍芯3A4000 的CPUFreq driver 模塊中定義cpufreq_driver 類型的loongson3_cpufreq_driver 變量,該變量中需實現(xiàn)的幾個具體的功能函數(shù)如下:

      (1)init(): 在注冊龍芯驅(qū)動時調(diào)用,具體的工作是初始化cpufreq_policy 等相關(guān)的數(shù)據(jù)結(jié)構(gòu); 提供10 級頻率表等.

      (2)verify(): 校驗CPUFreq governor 調(diào)頻策略提供的目標(biāo)頻率的有效性.

      (3)target_index(): 在切換頻率時調(diào)用. 根據(jù)要調(diào)節(jié)的目標(biāo)頻率在頻率表中找到對應(yīng)的頻率索引.

      (4)get(): 獲取當(dāng)前CPU 的頻率.

      (5)exit(): 在驅(qū)動退出時調(diào)用.

      當(dāng)處理器核根據(jù)調(diào)頻策略確定要調(diào)節(jié)的目標(biāo)頻率后,經(jīng)過CPUFreq driver 中的target_index()函數(shù)指針從表1 頻率表中得出相應(yīng)的目標(biāo)頻率索引. 處理器核將頻率索引作為調(diào)頻命令的參數(shù)通過核間通信發(fā)送給SMC. 龍芯基于SMC 的睿頻流程圖如圖5 所示.

      圖5 分成左右兩部分,分別對應(yīng)著處理器核和SMC.處理器核在向SMC 下達調(diào)頻命令后,剩下的調(diào)頻步驟全都在SMC 內(nèi)完成,處理器核只需要輪詢讀取郵箱寄存器的內(nèi)容,根據(jù)內(nèi)容判斷是否調(diào)頻成功. 此種睿頻方法可以使處理器核在不影響正常CPU 負載運行的情況下進行快速的調(diào)頻調(diào)壓. 同時,SMC 會一直循環(huán)圖3的調(diào)頻調(diào)壓的整個邏輯流程,實時監(jiān)測并調(diào)節(jié)處理器核的頻率、電壓和溫度狀態(tài). 最終在龍芯平臺上既實現(xiàn)了根據(jù)CPU 負載進行動態(tài)調(diào)頻調(diào)壓又實現(xiàn)了對頻率、電壓、溫度綜合考量的睿頻方法.

      圖5 龍芯3A4000 基于SMC 實現(xiàn)處理器核睿頻流程圖

      3 實驗測試與分析

      本節(jié)通過實驗從性能和功耗兩方面對本文提出的基于SMC 的睿頻方法進行綜合評估. 實驗平臺是龍芯3A4000 處理器,操作系統(tǒng)為Fedora 28,使用Linux內(nèi)核5.4.66,內(nèi)存為DDR4 2400 8 GB 內(nèi)存. 龍芯3A4000默認的標(biāo)準(zhǔn)頻率是1.8 GHz,此時處理器核的電壓為1.25 V,系統(tǒng)運行期間頻率和電壓都不會改變. 當(dāng)處理器核檢測到SMC 有調(diào)頻功能時,在/sys/devices/system/cpu/cpufreq 文件夾下會生成boost 文件,手動將boost 置1 后,處理器的最高頻率變?yōu)? 000 MHz,此時處理器核開啟睿頻功能,即基于SMC 的龍芯睿頻方法生效.用“l(fā)scpu”命令可查看當(dāng)前處理器的相關(guān)信息,圖6 為龍芯3A4000 處理器開啟睿頻后的處理器信息圖.

      由圖6 可知,此時,處理器支持的最高頻率為2 000 MHz,最低頻率為187 MHz,分別與表1 的第10 級和第1 級頻率相對應(yīng).

      圖6 龍芯3A4000 處理器開啟睿頻的處理器信息圖

      實驗將現(xiàn)有的沒有睿頻功能的情況(頻率為默頻1.8 GHz、電壓恒為1.25 V)和開啟睿頻功能的情況(即本文提出的基于SMC 的睿頻方法生效后的情況,最高頻率為2 GHz、電壓最高為1.4 V)進行對比. 為了更好地分析開啟睿頻功能后的性能和功耗情況,又將開啟睿頻功能的情況細分為采取Ondemand (按需)策略的睿頻情況和Performance (性能)策略的睿頻情況. 其中Ondemand (按需)策略會根據(jù)運行時的CPU負載動態(tài)調(diào)節(jié)頻率,Performance (性能)策略會讓處理器一直運行在最高頻.

      實驗分為兩個部分: 第1 部分使用Unixbench 基準(zhǔn)程序來獲得3 種情況的綜合性能數(shù)據(jù); 第2 部分獲得3 種情況在運行Unixbench 基準(zhǔn)程序時的功耗情況.

      3.1 性能測試

      本節(jié)采用性能測試工具Unixbench 測試3 種情況下的龍芯3A4000 處理器的綜合性能. Unixbench 從系統(tǒng)調(diào)用、IO 讀寫、進程、管道、運算等多方面進行性能測試,能較為全面地綜合評價系統(tǒng)各方面性能,其默認測試集由dhry、whets、execl、fstime、fsbuffer、fsdisk、pipe、context1、spawn、syscall、shell1 和shell8 這13 個基準(zhǔn)測試程序組成,具體描述如表3 最后一列所示.

      Unixbench 測試默認會運行單路和4 路并行測試.由于本實驗環(huán)境中,一個電壓芯片控制4 個處理器核的電壓,當(dāng)處理器開啟睿頻功能并處于滿負載時,處理器頻率會調(diào)節(jié)到最高頻,電壓會被調(diào)節(jié)到最高壓,此時4 個處理器核的頻率均可以調(diào)節(jié)到最高頻率. 為了更好地體現(xiàn)睿頻后性能提升的效果,取4 路并行測試結(jié)果進行分析,使用“./Run -c 4 index”命令對所包含的測試程序進行4 路測試. 龍芯3A4000 在3 種情況下運行Unixbench 性能測試的結(jié)果如表3 所示,第2–13 行分別對應(yīng)著Unixbench 中的各項性能測試的名稱、3 種情況各項性能測試分數(shù)以及對性能測試項的描述,最后一行是Unixbench 測試得出的3 種情況的綜合性能分數(shù).

      從表3 的最后一組(system benchmarks index score)綜合性能分數(shù)來看,睿頻后處理器無論是運行CPU 密集型任務(wù)(dhrystone、whetstone、pipe throughput、system call overhead)還是IO 密集型任務(wù)(文件系統(tǒng)相關(guān)任務(wù)file copy)還是進程創(chuàng)建、切換相關(guān)任務(wù)(excel throughput、pipe-based context switching、process creation、shell scripts)都可以看到睿頻帶來的性能提升,并且處理器無論是采用按需策略還是性能策略,綜合性能都有一定的提升,其中按需策略性能提升了約25.6%,性能策略性能提升了約34.2%. 因為采用性能策略時處理器一直運行在最高頻,按需策略在任務(wù)切換空隙時處理器負載降低,處理器核運行的頻率隨之降低,運行測試程序時為滿負載狀態(tài),處理器核的頻率又會回到最高頻,所以按需策略相較性能策略分數(shù)略低.

      表3 龍芯3A4000 處理器3 種情況下運行Unixbench 性能測試結(jié)果表

      3.2 功耗測試

      在功耗測試中,在3 種情況運行Unixbench 測試的同時,利用功率計66205 測量整機功耗,并計算得出平均功耗進行對比,功耗測量結(jié)果如表4 所示.

      由表4 可知,在空閑狀態(tài)下,處理器睿頻后采用按需策略時功耗最低,原因是空閑狀態(tài)下處理器一直處于最低頻率187 MHz,與處理器沒有睿頻功能時一直運行在1 800 MHz 時的功耗相比,功耗降低了33.4%.處理器采用性能策略時運行頻率一直在2 000 MHz,與其恒運行在1 800 MHz 頻率功耗相比,略有提升.

      表4 龍芯3A4000 處理器3 種情況下運行Unixbench 的功耗測量結(jié)果表

      在運行Unixbench 測試程序期間,處理器開啟睿頻功能采用按需策略與其采用性能策略相比,因按需策略不會一直運行在最高頻,所以功耗較低; 但由于Unixbench 測試大多數(shù)情況都是處理器滿負載的情況,所以處理器運行這兩個策略之間的功耗相差不大. 處理器采用按需和性能策略比其恒運行在1 800 MHz 時平均功耗分別提高了23.3%、25.5%. 除了頻率和電壓的升高,還有散熱的問題也會導(dǎo)致整體功耗的提高.

      綜合第3.1 節(jié)的性能測試和第3.2 節(jié)的功耗測試結(jié)果,龍芯3A4000 基于SMC 的睿頻方法與未進行睿頻的情況相比,按需策略滿負載時性能提升了25.6%、功耗提高了23.3%,空閑時功耗降低了33.4%; 性能策略滿負載時性能提升了34.2%、功耗提高了25.5%,空閑時功耗相差不大. 由此得出,龍芯3A4000 基于SMC 的睿頻方法雖增加了功耗,但性能提升的效果更明顯. 在實際情況中,處理器不會一直運行在滿負載的情況下,使用按需策略動態(tài)調(diào)節(jié)電壓和頻率,既可以在高負載的時候提高處理器的頻率和電壓來提高運算能力,也可以在低負載的時候降低處理器的頻率和電壓來降低能耗. 用戶可以根據(jù)自己的需求選擇是否開啟睿頻、選擇合適的調(diào)頻策略,以此來滿足更好的用戶體驗.

      4 結(jié)論與展望

      龍芯3A4000 之前的處理器無法動態(tài)調(diào)節(jié)自身電壓,這不僅阻礙了頻率提升到高頻,也阻礙了能耗的節(jié)約. 本文提出了基于SMC 的睿頻方法,讓龍芯3A4000處理器可以運行在超過默認頻率的高頻,在提高電壓來維持高頻穩(wěn)定運行的同時,對處理器芯片溫度進行監(jiān)測保護,提高了系統(tǒng)可靠性. 通過性能測試和功耗測試來驗證該方法的可行性,實驗結(jié)果表明,該方法有效且可靠.

      未來的研究工作在完善SMC 溫度散熱控制、電壓細粒度快速調(diào)節(jié)的同時,還要完善龍芯平臺下的調(diào)頻策略等,使龍芯處理器能提升到更高的主頻,達到能耗和性能之間更好的平衡點.

      猜你喜歡
      龍芯調(diào)頻寄存器
      基于國產(chǎn)化龍芯的動環(huán)數(shù)據(jù)采集系統(tǒng)
      考慮頻率二次跌落抑制的風(fēng)火聯(lián)合一次調(diào)頻控制
      能源工程(2021年5期)2021-11-20 05:50:42
      Lite寄存器模型的設(shè)計與實現(xiàn)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      “龍芯之父”胡偉武
      華人時刊(2016年13期)2016-04-05 05:50:06
      調(diào)頻發(fā)射機技術(shù)改造
      調(diào)頻激勵器干擾的排除方法
      龍芯發(fā)布新一代處理器產(chǎn)品
      調(diào)頻引信中噪聲調(diào)幅干擾的自適應(yīng)抑制
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      石河子市| 顺义区| 时尚| 巩义市| 华池县| 洪洞县| 囊谦县| 耿马| 陵水| 石嘴山市| 汉沽区| 辉南县| 横峰县| 密山市| 明水县| 巴彦淖尔市| 偃师市| 福贡县| 鄄城县| 大姚县| 衡山县| 雷波县| 永安市| 宿州市| 开原市| 马边| 老河口市| 康定县| 池州市| 葫芦岛市| 馆陶县| 小金县| 满洲里市| 昌都县| 肥城市| 芜湖县| 玉龙| 朝阳县| 兰西县| 永春县| 洱源县|