本發(fā)明涉及動態(tài)電壓頻率調(diào)整技術(shù)領(lǐng)域,特別涉及一種動態(tài)電壓頻率調(diào)整(dynamicvoltageandfrequencyscaling,dvfs)方法及裝置。
背景技術(shù):
目前,由于電子設(shè)備的cpu對于供電電池的壽命和功耗有嚴格的要求,因此需要通過動態(tài)電壓頻率調(diào)整(dynamicvoltagefrequencyscaling,dvfs)技術(shù),根據(jù)cpu的實時負載需求,動態(tài)調(diào)整cpu的工作頻率和工作電壓,從而達到有效降低cpu的功耗的目的。
在現(xiàn)有技術(shù)中,在進行dvfs動態(tài)調(diào)整時,根據(jù)固定的dvfs表格中記錄的工作電壓、工作頻率和cpu負載的上下閾值的對應(yīng)關(guān)系,確定cpu的目標工作電壓和目標工作頻率,從而進行調(diào)整。當電子設(shè)備的cpu負載超過上閾值時,則增大cpu的目標工作電壓和目標工作頻率,當電子設(shè)備的cpu小于下閾值時,則減小cpu的目標工作電壓和目標工作頻率。
當電子設(shè)備進行視頻編碼時,電子設(shè)備的cpu負載一般比固定的dvfs表格中記錄的cpu負載下閾值稍微大些,此時,若cpu采用與當前工作電壓和當前工作頻率對應(yīng)的固定的dvfs表格中的組相鄰的組中的,較當前工作電壓和當前工作頻率小的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,也可以滿足該cpu的正常進行視頻編碼工作的需求。但是僅通過對現(xiàn)有的固定的dvfs表格的一刀切的上下閾值調(diào)節(jié)方法,則不能將cpu的目標工作電壓和目標工作頻率向更小的數(shù)值調(diào)整,所以上述的調(diào)整方法,針對視頻編碼的場合,不能使cpu的功耗達到更低的狀態(tài)。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種dvfs方法及裝置,用以解決現(xiàn)有技術(shù)中針對電子設(shè)備進行視頻編碼的場合,cpu的功耗不能達到更低的問題。
為達到上述目的,本發(fā)明實施例公開了一種動態(tài)電壓頻率調(diào)整dvfs方法,所述方法包括:
當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值;
如果是,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率;
如果否,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大;
根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。
進一步地,在所述獲取視頻緩沖利用率和cpu負載之前,所述方法還包括:
接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和雙倍率同步動態(tài)隨機存儲器ddr的工作時鐘的最高頻率;
將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,和將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
進一步地,所述根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率包括:
將所述cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較;
如果所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率;
如果所述cpu負載未位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率。
進一步地,所述根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率包括:
當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大;
當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
進一步地,所述當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率之前,所述方法還包括:
判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則進行接下來的步驟;
當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率之前,所述方法還包括:
判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則進行接下來的步驟。
本發(fā)明實施例公開了一種動態(tài)電壓頻率調(diào)整dvfs裝置,所述裝置包括:
獲取判斷模塊,用于當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值;
第一確定模塊,用于當獲取判斷模塊的判斷結(jié)果為是時,根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率;
第二確定模塊,用于當獲取判斷模塊的判斷結(jié)果為否時,根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大;
工作模塊,用于根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。
進一步地,所述裝置還包括:
接收模塊,用于接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和雙倍率同步動態(tài)隨機存儲器ddr的工作時鐘的最高頻率;
設(shè)置模塊,用于將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,和將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
進一步地,所述第二確定模塊,具體用于將所述cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較;如果所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果所述cpu負載未位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率。
進一步地,所述第二確定模塊,具體用于當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大;當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
進一步地,所述裝置還包括:
判斷模塊,用于判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率;
所述第二確定模塊,還用于當判斷模塊的判斷結(jié)果為是時,將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;
所述判斷模塊,還用于判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率;
所述第二確定模塊,還用于當判斷模塊的判斷結(jié)果為是時,將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率。
本發(fā)明實施例公開了一種dvfs方法及裝置,所述方法包括:當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值;如果是,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率;如果否,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大;根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。由于在本發(fā)明實施例中,當獲取的視頻緩沖利用率大于設(shè)定閾值時,獲取的cpu的負載也會較大,則可以通過預(yù)先確定的第一dvfs表格確定cpu的目標工作電壓和目標工作頻率。當獲取的視頻緩沖利用率不大于設(shè)定閾值時,獲取的cpu的負載也會較小,一般會處于第一dvfs表格的下閾值和第二dvfs表格的下閾值范圍之間,此時可以通過預(yù)先確定的第二dvfs表格確定cpu的目標工作電壓和目標工作頻率,這種方式確定的cpu的目標工作電壓和目標工作頻率較僅通過第一dvfs表格確定的cpu的目標工作電壓和目標工作頻率更小,從而達到降低功耗的目的。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例1提供的一種dvfs過程示意圖;
圖2a為本發(fā)明實施例提供的一種視頻編碼示意圖;
圖2b為本發(fā)明實施例提供的一種電子設(shè)備的內(nèi)部架構(gòu)圖;
圖2c為本發(fā)明實施例提供的一種第二dvfs表格示意圖;
圖3為本發(fā)明實施例提供的一種dvfs過程示意圖;
圖4為本發(fā)明實施例1提供的一種dvfs裝置結(jié)構(gòu)圖;
圖5為本發(fā)明實施例提供的一種dvfs裝置結(jié)構(gòu)圖。
具體實施方式
為了使電子設(shè)備在進行視頻編碼時,cpu的功耗達到更低,本發(fā)明實施例提供了一種dvfs方法及裝置。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例1:
圖1為本發(fā)明實施例提供的一種dvfs過程示意圖,該過程包括以下步驟:
s101:當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載。
s102:判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值,如果是,則執(zhí)行s103,如果否,則執(zhí)行s104。
本發(fā)明實施例提供的dvfs方法可以應(yīng)用于可以進行視頻編碼的電子設(shè)備。所述電子設(shè)備可以是手持設(shè)備,也可以是非手持設(shè)備。如果所述電子設(shè)備為手持設(shè)備,降低cpu的功耗就會更為重要,因為手持設(shè)備是通過電池供電工作的,手持設(shè)備的cpu對于供電電池的壽命和功耗有嚴格的要求。無論所述電子設(shè)備是否為手持設(shè)備,對本發(fā)明實施例均無影響。
電子設(shè)備中保存有閾值,當該電子設(shè)備處于視頻編碼場景時,可以獲取視頻緩沖利用率和cpu負載,視頻緩沖利用率越大,對應(yīng)的cpu負載一般會越大,視頻緩沖利用率越小,對應(yīng)的cpu負載一般會越小。電子設(shè)備判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,根據(jù)判斷結(jié)果確定cpu的目標工作電壓和目標工作頻率。
電子設(shè)備在獲取視頻緩沖利用率和cpu負載時,可以是實時獲取的,也可以是按照設(shè)定的時間間隔獲取的,獲取視頻緩沖利用率和獲取cpu負載可以是同時進行的,也可以是按照預(yù)設(shè)的時間間隔以及預(yù)設(shè)的獲取順序依次獲取的,例如預(yù)設(shè)的時間間隔為1s,獲取順序為先獲取視頻緩沖利用率,再獲取cpu負載,則先獲取視頻緩沖利用率,1s后再獲取cpu負載。所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值。視頻緩沖利用率可以反映出視頻編碼的整體性能。
s103:根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率。
電子設(shè)備中保存有第一dvfs表格,當判斷出所述視頻緩沖利用率大于設(shè)定的閾值時,可以根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率。其中,所述第一dvfs表格為現(xiàn)有的dvfs表格,所述根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率的過程屬于現(xiàn)有技術(shù),在本發(fā)明實施例中對該過程不進行贅述。
s104:根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大。
電子設(shè)備中保存有第二dvfs表格,所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大。當判斷出所述視頻緩沖利用率不大于設(shè)定的閾值時,可以根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率。
s105:根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。
當確定出cpu的目標工作電壓和目標工作頻率后,電子設(shè)備就可以根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作了。
在上述s101之前,即處于視頻編碼場景之前,還需進行dvfs模塊初始化。針對上述s101和s102提及的視頻緩沖利用率,可以根據(jù)圖2a的視頻編碼示意圖進行說明。在視頻編碼的過程中,視頻環(huán)形緩沖區(qū)域用于存儲編碼數(shù)據(jù)流,同時寫指針p_write和讀指針p_read管理整個視頻編碼過程,圖中的區(qū)域1、區(qū)域2和區(qū)域3構(gòu)成視頻環(huán)形緩沖區(qū)域,已經(jīng)編碼的視頻占用的空間稱為區(qū)域2,該視頻環(huán)形緩沖區(qū)域中除已經(jīng)編碼的視頻占用的空間外的空間為區(qū)域2和區(qū)域3,區(qū)域1占用的存儲容量、區(qū)域2占用的存儲容量和區(qū)域3占用的存儲容量構(gòu)成視頻環(huán)形緩沖區(qū)域的總的存儲容量。區(qū)域2占用的存儲容量為已經(jīng)編碼的視頻占用的存儲容量,則視頻緩沖利用率為區(qū)域2占用的存儲容量與總的存儲容量的比值。
隨著視頻編碼的進行,寫指針在寫入視頻數(shù)據(jù),則該區(qū)域2占用的存儲容量將會增加,相應(yīng)的區(qū)域3的存儲容量就會變小,讀指針可以將寫入的視頻數(shù)據(jù)進行讀取,則區(qū)域1占用的存儲容量將會增加,相應(yīng)的區(qū)域2占用的存儲容量將會減小。區(qū)域2會動態(tài)變化,可能變小,也可能變大。每個區(qū)域占用的存儲容量亦會變大或變小,但是區(qū)域1、區(qū)域2和區(qū)域3構(gòu)成視頻環(huán)形緩沖區(qū)域不會變化即視頻環(huán)形緩沖區(qū)域的總的存儲容量不會發(fā)生變化。當區(qū)域2占用的存儲容量發(fā)生變化時,區(qū)域2占用的存儲容量與總的存儲容量的比值也會動態(tài)變化。
由于在本發(fā)明實施例中,當獲取的視頻緩沖利用率大于設(shè)定閾值時,獲取的cpu的負載也會較大,則可以通過預(yù)先確定的第一dvfs表格確定cpu的目標工作電壓和目標工作頻率。當獲取的視頻緩沖利用率不大于設(shè)定閾值時,獲取的cpu的負載也會較小,一般會處于第一dvfs表格的下閾值和第二dvfs表格的下閾值范圍之間,此時可以通過預(yù)先確定的第二dvfs表格確定cpu的目標工作電壓和目標工作頻率,這種方式確定的cpu的目標工作電壓和目標工作頻率較僅通過第一dvfs表格確定的cpu的目標工作電壓和目標工作頻率更小,從而達到降低功耗的目的。
實施例2:
為了減少對視頻編碼場景的干擾,進一步確保電子設(shè)備的cpu的功耗降到最低,在上述實施例的基礎(chǔ)上,在本發(fā)明實施例中,在所述獲取視頻緩沖利用率和cpu負載之前,所述方法還包括:
接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和雙倍率同步動態(tài)隨機存儲器ddr的工作時鐘的最高頻率;
將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,和將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
在本發(fā)明實施例中,對于視頻編碼的性能來說,主要影響因素有視頻編碼器的工作時鐘的頻率、ddr的工作時鐘的頻率和cpu主頻,其中所述cpu主頻對視頻編碼的性能影響較小,可以忽略不計。當編碼器的工作時鐘的頻率和ddr的工作時鐘的頻率位于各自的最高頻率時,對于視頻視頻編碼的性能影響最小。
電子設(shè)備接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和ddr的工作時鐘的最高頻率。將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,并將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
如圖2b所示的進行視頻編碼的電子設(shè)備的內(nèi)部架構(gòu)圖,包括總線、cpu、視頻編碼器以及ddr,可以通過總線設(shè)置視頻編碼器的工作時鐘的頻率和ddr的工作時鐘的頻率,以及獲取cpu負載。
實施例3:
在上述各實施例的基礎(chǔ)上,在本發(fā)明實施例中,所述根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率包括:
將所述cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較;
如果所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率;
如果所述cpu負載未位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率。
在本發(fā)明實施例中,在根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率時,具體的,可以是將獲取的所述cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較,如果比較結(jié)果為所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則說明此時的工作電壓和工作頻率為該電子設(shè)備較優(yōu)的工作電壓和工作頻率,則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率。
如果所述cpu負載未位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),可以根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率。
所述根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率時,可以是:
當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,則將在所述第二dvfs表格中記錄的比當前工作電壓和當前工作頻率大的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率。確定的所述cpu的目標工作電壓和目標工作頻率對應(yīng)的第二dvfs表格中的組與當前工作電壓和當前工作頻率對應(yīng)的第二dvfs表格中的組可以是相鄰的,也可以是不相鄰的。
當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,則將在所述第二dvfs表格中記錄的比當前工作電壓和當前工作頻率小的工作電壓和工作頻率確定為目標工作電壓和目標工作頻率。確定的所述cpu的目標工作電壓和目標工作頻率對應(yīng)的第二dvfs表格中的組與當前工作電壓和當前工作頻率對應(yīng)的第二dvfs表格中的組可以是相鄰的,也可以是不相鄰的。
實施例4:
為了確保確定的cpu的目標工作電壓和目標工作頻率為該電子設(shè)備的最優(yōu)功耗,在上述各實施例的基礎(chǔ)上,在本發(fā)明實施例中,所述根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率包括:
當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大;
當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
在本發(fā)明實施例中,所述當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率之前,所述方法還包括:
判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則進行接下來的步驟。
在本發(fā)明實施例中,第二dvfs表格中包含至少一組工作電壓和工作頻率,當cpu的當前工作電壓和當前工作頻率是所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率時,則說明該電子設(shè)備的當前工作電壓和當前工作頻率已經(jīng)調(diào)整到最大值,則不能再把cpu的目標工作電壓和目標工作頻率調(diào)整到更大,所以將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率。如果cpu的當前工作電壓和當前工作頻率不是所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率,則可以根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大。
在本發(fā)明實施例中,當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率之前,所述方法還包括:
判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則進行接下來的步驟。
在本發(fā)明實施例中,第二dvfs表格中包含至少一組工作電壓和工作頻率,當cpu的當前工作電壓和當前工作頻率是所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率時,則說明該電子設(shè)備的當前工作電壓和當前工作頻率已經(jīng)調(diào)整到最小值,則不能再把cpu的目標工作電壓和目標工作頻率調(diào)整到更小,所以將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率。如果cpu的當前工作電壓和當前工作頻率不是所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率,則可以根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
如圖2c所示的第二dvfs表格示意圖,cpu上閾值為80%,cpu下閾值為45%,所述第二dvfs表格中記錄著每組工作電壓和工作頻率,例如,工作頻率為1300000hz與工作電壓為1.25v為一組,工作頻率為1200000hz與工作電壓為1.23v為一組,工作頻率為1100000hz與工作電壓為1.20v為一組,,工作頻率為1000000hz與工作電壓為1.15v為一組,工作頻率為800000hz與工作電壓為1.10v為一組。在根據(jù)所述第二dvfs表格確定cpu的目標工作電壓和目標工作頻率時,首先確定cpu的當前工作電壓和當前工作頻率,將獲取的cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較。
如果,所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率,例如所述當前工作電壓為1.20v,當前工作頻率為1100000hz,所述cpu負載為50%,則即cpu的目標工作電壓為1.20v,目標工作頻率為1100000hz。
如果,所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值,判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。例如,所述cpu負載為40%,所述cpu的當前工作電壓為1.20v,當前工作頻率為1100000hz,所述當前工作電壓和當前工作頻率不是所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率,則確定所述當前工作電壓為1.20v,當前工作頻率為1100000hz對應(yīng)的組,將與所述組相鄰的且工作電壓和工作頻率較當前工作電壓和當前工作頻率小組的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,則所述目標工作電壓為1.15v,目標工作頻率為1000000hz。例如,所述cpu負載為40%,所述cpu的當前工作電壓為1.10v,當前工作頻率為800000hz,所述當前工作電壓和當前工作頻率是所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率,則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率,則所述目標工作電壓為1.15v,目標工作頻率為1000000hz。
如果,所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值,判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率;如果是,則將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果否,則根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大。例如,所述cpu負載為90%,所述cpu的當前工作電壓為1.20v,當前工作頻率為1100000hz,所述當前工作電壓和當前工作頻率不是所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率,則確定所述當前工作電壓為1.20v,當前工作頻率為1100000hz對應(yīng)的組,將與所述組相鄰的且工作電壓和工作頻率較當前工作電壓和當前工作頻率大組的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,則所述目標工作電壓為1.20v,目標工作頻率為1100000hz。例如,所述cpu負載為90%,所述cpu的當前工作電壓為1.25v,當前工作頻率為1300000hz,所述當前工作電壓和當前工作頻率是所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率,則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率,則所述目標工作電壓為1.25v,目標工作頻率為1300000hz。
圖3為本發(fā)明實施例提供的一種dvfs過程示意圖,該過程包括以下步驟:
s301:接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和ddr的工作時鐘的最高頻率,將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,和將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
s302:當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值,如果是,則執(zhí)行s303,如果否,則執(zhí)行s304。
s303:根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率。
s304:比較所述cpu負載與第二dvfs表格中的cpu負載上閾值和cpu負載下閾值的大小,如果所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則執(zhí)行s305,如果所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值,則執(zhí)行s306,所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值,則執(zhí)行s307。
s305:將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率。
s306:判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率,如果是,則執(zhí)行s305,如果否,則執(zhí)行s308。
s307:判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率,如果是,則執(zhí)行s305,如果否,則執(zhí)行s309。
s308:根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大。
s309:根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
s310:根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。
圖4為本發(fā)明實施例1提供的一種dvfs裝置結(jié)構(gòu)圖,所述裝置包括:
獲取判斷模塊41,用于當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值;
第一確定模塊42,用于當獲取判斷模塊的判斷結(jié)果為是時,根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率;
第二確定模塊43,用于當獲取判斷模塊的判斷結(jié)果為否時,根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大;
工作模塊44,用于根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。
圖5為本發(fā)明實施例提供的一種dvfs裝置結(jié)構(gòu)圖,在圖4的基礎(chǔ)上,所述裝置還包括:
接收模塊51,用于接收工作時鐘設(shè)置信息,其中所述工作時鐘設(shè)置信息中包含視頻編碼器的工作時鐘的最高頻率和雙倍率同步動態(tài)隨機存儲器ddr的工作時鐘的最高頻率;
設(shè)置模塊52,用于將所述視頻編碼器的工作時鐘設(shè)置在對應(yīng)的最高頻率上,和將所述ddr的工作時鐘設(shè)置在對應(yīng)的最高頻率上。
所述第二確定模塊43,具體用于將所述cpu負載與所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值進行比較;如果所述cpu負載位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),則將cpu的當前工作電壓和當前工作頻率確定為cpu的目標工作電壓和目標工作頻率;如果所述cpu負載未位于所述第二dvfs表格中的cpu負載上閾值和cpu負載下閾值范圍內(nèi),根據(jù)比較結(jié)果、第二dvfs表格中記錄的每組工作電壓和工作頻率及cpu的當前工作電壓和當前工作頻率確定cpu的目標工作電壓和目標工作頻率。
所述第二確定模塊43,具體用于當比較結(jié)果為所述cpu負載大于所述第二dvfs表格中的cpu負載上閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率大;當比較結(jié)果為所述cpu負載小于所述第二dvfs表格中的cpu負載下閾值時,根據(jù)cpu的當前工作電壓和cpu的當前工作頻率對應(yīng)的第二dvfs表格中的組,將與所述組相鄰的組中的工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率,其中,所述相鄰的組中的工作電壓和工作頻率較當前工作電壓和當前工作頻率小。
所述裝置還包括:
判斷模塊53,用于判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最大工作電壓和最大工作頻率;
所述第二確定模塊43,還用于當判斷模塊的判斷結(jié)果為是時,將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率;
所述判斷模塊53,還用于判斷cpu的當前工作電壓和當前工作頻率是否為所述第二dvfs表格中的記錄的最小工作電壓和最小工作頻率;
所述第二確定模塊43,還用于當判斷模塊的判斷結(jié)果為是時,將當前工作電壓和工作頻率確定為cpu的目標工作電壓和目標工作頻率。
本發(fā)明實施例公開了一種dvfs方法及裝置,所述方法包括:當處于視頻編碼場景時,獲取視頻緩沖利用率和cpu負載,判斷所述視頻緩沖利用率是否大于設(shè)定的閾值,其中,所述視頻緩沖利用率為已經(jīng)編碼的視頻占用的存儲容量與可供編碼的視頻環(huán)形緩沖區(qū)域的總的存儲容量的比值;如果是,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第一dvfs表格,確定cpu的目標工作電壓和目標工作頻率;如果否,則根據(jù)獲取的所述cpu負載以及預(yù)先確定的第二dvfs表格,確定cpu的目標工作電壓和目標工作頻率,其中所述第二dvfs表格中的cpu負載下閾值比第一dvfs表格中的cpu負載下閾值大;根據(jù)確定的cpu的目標工作電壓和目標工作頻率進行工作。由于在本發(fā)明實施例中,當獲取的視頻緩沖利用率大于設(shè)定閾值時,獲取的cpu的負載也會較大,則可以通過預(yù)先確定的第一dvfs表格確定cpu的目標工作電壓和目標工作頻率。當獲取的視頻緩沖利用率不大于設(shè)定閾值時,獲取的cpu的負載也會較小,一般會處于第一dvfs表格的下閾值和第二dvfs表格的下閾值范圍之間,此時可以通過預(yù)先確定的第二dvfs表格確定cpu的目標工作電壓和目標工作頻率,這種方式確定的cpu的目標工作電壓和目標工作頻率較僅通過第一dvfs表格確定的cpu的目標工作電壓和目標工作頻率更小,從而達到降低功耗的目的。
對于系統(tǒng)/裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者一個操作與另一個實體或者另一個操作區(qū)分開來,而不一定要求或者暗示這些實體或者操作之間存在任何這種實際的關(guān)系或者順序。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全應(yīng)用實施例、或結(jié)合應(yīng)用和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。