午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

語言虛擬機中熱點中間代碼的識別方法以及裝置的制造方法_2

文檔序號:9750623閱讀:來源:國知局
器用于:比較所述指令地址寄存器中的所述指令計數(shù)器中的指令地址是否小于或等于所述終止地址寄存器中的所述待識別函數(shù)的本地指令空間的終止地址,其中,在所述指令計數(shù)器中的指令地址大于或等于所述待識別函數(shù)的本地指令空間的起始地址且小于或等于所述待識別函數(shù)的本地指令空間的終止地址時,則指示所述指令計數(shù)器中的指令地址在所述待識別函數(shù)的本地指令空間的地址范圍內(nèi)。
[0040]其中地址指的是邏輯地址或物理地址,地址連續(xù)指的是在所述待識別函數(shù)的本地指令空間中的地址的值中值最小的最小地址值到值最大的最大地址值對應的存儲空間,均為本地指令空間的存儲空間。
[0041]作為第一方面第十種實現(xiàn)方式的另一種實現(xiàn)方式,起始地址寄存器和終止地址寄存器可以作為一個寄存器,該寄存器可同時存儲所述待識別函數(shù)的本地指令空間的起始地址和所述待識別函數(shù)的本地指令空間的終止地址。
[0042]通過將第二比較器、第三比較器、指令地址寄存器、起始地址寄存器以及終止地址寄存器相連,通過電路實現(xiàn)判斷所述指令計數(shù)器中的指令地址對應的本地指令是否為所述待識別函數(shù)的本地指令的功能,從而減輕軟件實現(xiàn)的負擔,進一步使得執(zhí)行效率更高。
[0043]當所述裝置第十種實現(xiàn)方式與所述裝置第六種實現(xiàn)方式結(jié)合時,即將第二比較器以及第三比較器,直接或者間接的通過邏輯門與熱度值計數(shù)器連接,通過第二比較器與第三比較器輸出的用于指示所述指令計數(shù)器中的指令地址對應的本地指令為所述待識別函數(shù)的本地指令的電平,觸發(fā)熱度值計數(shù)器進行加I的計數(shù),可以完整的實現(xiàn)熱點中間代碼的識別,也就是說熱點中間代碼的識別完全由硬件電路獨立于語言虛擬機中代碼的執(zhí)行過程來完成,從而減輕軟件實現(xiàn)的負擔,進一步使得執(zhí)行效率更高。
[0044]根據(jù)第一方面的第十種實現(xiàn)方式,在所述裝置第十一種實現(xiàn)方式的一種可能的實現(xiàn)方式中,所述裝置包括處理器和存儲器;所述存儲器用于存儲代碼;所述處理器通過讀取所述存儲器中存儲的所述代碼,以用于:
[0045]在所述待識別函數(shù)被所述語言虛擬機調(diào)用時,加載所述待識別函數(shù)的本地指令空間的起始地址到所述起始地址寄存器,加載所述待識別函數(shù)的本地指令空間的終止地址到所述終止地址寄存器。
[0046]僅在所述待識別函數(shù)被所述語言虛擬機執(zhí)行期間,令起始地址寄存器中的值為所述待識別函數(shù)的本地指令空間的起始地址,令終止地址寄存器中的值為所述待識別函數(shù)的本地指令空間的終止地址,使得在所述待識別函數(shù)不被執(zhí)行期間,起始地址寄存器以及終止地址寄存器可以被用于其它功能,優(yōu)化了存儲資源的使用。并且,該實現(xiàn)方式可以適應不同的函數(shù)具有不同的起始地址或是終止地址的情況。
[0047]根據(jù)上述第一方面第十一種可能的實現(xiàn)方式,作為第一方面第十一種實現(xiàn)方式的另一種實現(xiàn)方式,所述處理器還可以用于在所述待識別函數(shù)被所述語言虛擬機返回時,保存所述起始地址寄存器中的所述待識別函數(shù)的本地指令空間的起始地址到所述存儲器,保存所述終止地址寄存器中的所述待識別函數(shù)的本地指令空間的終止地址到所述存儲器,以適應所述待識別函數(shù)的本地指令空間的起始地址和所述待識別函數(shù)的本地指令空間的終止地址,在待識別函數(shù)被執(zhí)行期間發(fā)生改變的情況,應理解,在待識別函數(shù)被所述語言虛擬機返回之后,起始地址寄存器以及終止地址寄存器可以用于除存儲待識別函數(shù)的起始地址以及中置地址之外的其它用途。
[0048]根據(jù)第一方面的第十一種實現(xiàn)方式,在所述裝置第十二種可能的實現(xiàn)方式中,所述處理器用于:
[0049]在所述待識別函數(shù)被所述語言虛擬機返回時,加載主調(diào)函數(shù)的本地指令空間的起始地址到所述起始地址寄存器,加載所述主調(diào)函數(shù)的本地指令空間的終止地址到所述終止地址寄存器,所述待識別函數(shù)為所述主調(diào)函數(shù)的子函數(shù)。以適應主調(diào)函數(shù)與待識別函數(shù)的起始地址與終止地址不同的情況。
[0050]應理解,所述處理器還可以用于在所述待識別函數(shù)被調(diào)用時,保存所述起始地址寄存器中的主調(diào)函數(shù)的本地指令空間的起始地址到所述存儲器,保存所述終止地址寄存器中的所述主調(diào)函數(shù)的本地指令空間的終止地址到所述存儲器。
[0051]根據(jù)第一方面,或以上第一方面的任意一種實現(xiàn)方式,在所述裝置第十三種可能的實現(xiàn)方式中,所述獲取電路用于:通過接收周期性的觸發(fā)電平,周期性地觸發(fā)所述獲取所述指令計數(shù)器中的指令地址的動作。周期性地獲取所述指令計數(shù)器中的指令地址可以通過軟件計時實現(xiàn),也可以通過周期性的時鐘信號觸發(fā)獲取動作,在獲取電路為指令地址寄存器時,指令地址寄存器的輸入分別來自指令計數(shù)器和周期性的觸發(fā)電平,該電平可以是周期性的時鐘信號,在時鐘信號的上升沿或是下降沿時,觸發(fā)指令地址寄存器進行與指令計數(shù)器的同步。
[0052]指令計數(shù)器通過周期性地獲取所述指令計數(shù)器中的指令地址,形成穩(wěn)定、大量的數(shù)據(jù)用于處理,降低了隨機因素帶來的影響,使得獲得的熱度值的可靠性更高。
[0053]根據(jù)第一方面,或以上第一方面的任意一種實現(xiàn)方式,在所述裝置第十四種可能的實現(xiàn)方式中,所述裝置包括處理器和存儲器;所述存儲器用于存儲代碼;所述處理器通過讀取所述存儲器中存儲的所述代碼,以用于:
[0054]在所述語言虛擬機返回所述待識別函數(shù)時,或在所述語言虛擬機返回所述待識別函數(shù)之后,觸發(fā)所述第二判斷電路進行所述判斷所述更新電路得到的所述待識別函數(shù)的更新后的熱度值是否大于或等于所述待識別函數(shù)的熱度閾值的動作。
[0055]對于待識別函數(shù)一旦被執(zhí)行就會執(zhí)行到待識別函數(shù)被返回的情況來說,在所述待識別函數(shù)執(zhí)行過程中就執(zhí)行上述判斷動作,與在返回所述待識別函數(shù)時,或在返回所述待識別函數(shù)之后,才執(zhí)行上述判斷的動作相比,兩者判斷結(jié)果獲得的時機并不會影響待識別函數(shù)的此次的執(zhí)行情況,然而在周期性地獲取所述指令計數(shù)器中的指令地址的情況下,前者不能準確判斷函數(shù)的下次執(zhí)行時,待識別函數(shù)的中間代碼是否是熱點中間代碼,因為即使在函數(shù)執(zhí)行過程中進行判斷的判斷結(jié)果為待識別函數(shù)的中間代碼不是熱點中間代碼,但是在判斷之后到函數(shù)返回的時段中,待識別函數(shù)的熱度值仍然可能會增加,前者不能準確判斷函數(shù)的下次執(zhí)行時,待識別函數(shù)的中間代碼是否是熱點中間代碼,但是后者可以。
[0056]根據(jù)第一方面,或以上第一方面的任意一種實現(xiàn)方式,在所述裝置第十五種實現(xiàn)方式的一種可能的實現(xiàn)方式中,所述裝置包括處理器和存儲器;所述存儲器用于存儲代碼;所述處理器通過讀取所述存儲器中存儲的所述代碼,以用于:
[0057]在所述第二判斷電路判斷所述待識別函數(shù)的更新后的熱度值大于或等于所述待識別函數(shù)的熱度閾值之后,將所述待識別函數(shù)的更新后的熱度值存儲在所述存儲器;
[0058]在所述待識別函數(shù)的在預設的時段之前的熱度值大于或等于所述待識別函數(shù)的熱度值閾值時,計算所述存儲器中所述待識別函數(shù)的更新后的熱度值減去所述待識別函數(shù)的在預設的時段之前的熱度值而獲得的差值,所述待識別函數(shù)的在預設的時段之前的熱度值存儲在所述存儲器中;
[0059]在所述差值小于預設的刪除閾值時,將所述待識別函數(shù)的本地代碼從所述存儲器中刪除。
[0060]熱點中間代碼識別的其中一個目的在于,由于本地代碼的執(zhí)行效率比中間代碼的執(zhí)行效率高,故現(xiàn)有技術(shù)會將熱點中間代碼通過及時編譯器編譯成本地代碼并存儲于用于存儲本地代碼的存儲空間以用于被調(diào)用,所述裝置可以及時清除近期執(zhí)行頻率不高的本地代碼,從而使得更多的存儲空間可以存儲新生成的本地代碼,提高了存儲空間的利用率,進一步提尚了代碼的執(zhí)彳丁效率。
[0061]根據(jù)第一方面,或以上第一方面的任意一種實現(xiàn)方式,在所述裝置第十六種可能的實現(xiàn)方式中,所述裝置還包括用于存儲所述待識別函數(shù)的函數(shù)信息的函數(shù)信息寄存器,所述函數(shù)信息用于指示所述待識別函數(shù),所述裝置包括處理器和存儲器;所述存儲器用于存儲代碼;所述處理器通過讀取所述存儲器中存儲的所述代碼,以用于:
[0062]加載所述待識別函數(shù)的函數(shù)信息到所述函數(shù)信息寄存器,以使得所述處理器根據(jù)所述函數(shù)信息寄存器中的所述待識別函數(shù)的函數(shù)信息,將所述待識別函數(shù)的中間代碼作為所述熱點中間代碼編譯為所述待識別函數(shù)的本地代碼。
[0063]第二方面,提供一種熱點中間代碼的識別方法,所述方法包括:在待識別函數(shù)被語言虛擬機執(zhí)行時,獲取指令計數(shù)器中的指令地址,判斷所述指令計數(shù)器中的指令地址對應的本地指令是否為所述待識別函數(shù)的本地指令;在所述指令計數(shù)器中的指令地址對應的本地指令為所述待識別函數(shù)的本地指令時,將所述待識別函數(shù)的當前的熱度值增加預設值,以更新所述待識別函數(shù)的熱度值;判斷所述待識別函數(shù)的更新后的熱度值是否大于或等于所述待識別函數(shù)的熱度閾值,在所述待識別函數(shù)的更新后的熱度值大于或等于所述待識別函數(shù)的熱度閾值時,將所述待識別函數(shù)的中間代碼作為熱點中間代碼。
[0064]該方法可以由軟件編程實現(xiàn),也可以由可以實現(xiàn)該方法的電路實現(xiàn),也可以將該方法中的一部分由軟件編程實現(xiàn),另一部分由電路實現(xiàn)。其中,本地指令指的是本地代碼中的指令,同理,中間代碼中的指令為中間指令。
[0065]該方法通過獲取指令計數(shù)器中的指令地址,判斷所述指令計數(shù)器中的指令地址對應的本地指令是否為所述待識別函數(shù)的本地指令,使得可以識別出熱點中間代碼。
[0066]根據(jù)第二方面,在所述方法的第一種可能的實現(xiàn)方式中,所述判斷所述指令計數(shù)器中的指令地址對應的本地指令是否為所述待識別函數(shù)的本地指令,包括:判斷所述指令計數(shù)器中的指令地址是否在所述待識別函數(shù)的本地指令空間的地址范圍內(nèi),所述待識別函數(shù)的本地指令空間中的本地指令包括所述待識別函數(shù)的本地指令,并且所述待識別函數(shù)的本地指令空間中的本地指令不包括用于實現(xiàn)所述語言虛擬機功能的本地指令。
[0067]根據(jù)第二方面的第一種實現(xiàn)方式,所述方法的第二種可能的實現(xiàn)方式可以參考第一方面第二種可能的實現(xiàn)方式得到,所述方法的第三種可能的實現(xiàn)方式可以參考第一方面第三種可能的實現(xiàn)方式得到。
[0068]根據(jù)第二方面的第一種至第三種的任意一種實現(xiàn)方式,在所述方法第四中可能的實現(xiàn)方式中,所述待識別函數(shù)的本地指令空間為地址連續(xù)的存儲空間,所述待識別函數(shù)的本地指令空間的地址范圍用所述待識別函數(shù)的本地指令空間的起始地址和所述待識別函數(shù)的本地指令空間的終止地址來表示,其中,所述待識別函數(shù)的本地指令空間的終止地址大于或等于所述待識別函數(shù)的本地指令空間的起始地址,所述判斷所述指令計數(shù)器中的指令地址是否在所述待識別函數(shù)的本地指令空間的地址范圍內(nèi)包括:
[0069]判斷所述指令計數(shù)器中的指令地址是否大于或等于所述待識別函數(shù)的本地指令空間的起始地址,并且所述指令計數(shù)器中的指令地址是否小于或等于所述待識別函數(shù)的本地指令空間的終止地址;
[0070]在所述指令計數(shù)器中的指令地址大于或等于所述待識別函數(shù)的本地指令空間的起始地址,并且小于或等于所述待識別函數(shù)的本地指令空間的終止地址時,則指示所述指令計數(shù)器中的指令地址在所述待識別函數(shù)的本地指令空間的地址范圍內(nèi)。
[0071]根據(jù)第二方面,或以上第二方面的任意一種實現(xiàn)方式,在所述方法第五種可能的實現(xiàn)方式中,所述獲取指令計數(shù)器中的指令地址包括:周期性地獲取所述指令計數(shù)器中的指令地址;
[0072]所述判斷所述待識別函數(shù)的更新后的熱度值是否大于或等于所述待識別函數(shù)的熱度閾值包括:
[0073]在所述語言虛擬機返回所述待識別函數(shù)時,或在所述語言虛擬機返回所述待識別函數(shù)之后,判斷所述待識別函數(shù)的更新后的熱度值是否大于或等于所述待識別函數(shù)的熱度閾值。
[0074]周期性地獲取所述指令計數(shù)器中的指令地址可以通過軟件計時實現(xiàn),也可以通過周期性的時鐘信號觸發(fā)獲取動作,例如通過周期性的時鐘信號觸發(fā)指定的寄存器周期性獲取指令計數(shù)器中的指令地址,通過周期性地獲取所述指令計數(shù)器中的指令地址,形成穩(wěn)定、大量的數(shù)據(jù)用于處理,降低了隨機因素帶來的影響,使得獲得的熱度值的可靠性更高。
[0075]根據(jù)第二方面,或以上第二方面的任意一種實現(xiàn)方式,在所述方法第六種可能的實現(xiàn)方式中,在判斷所述待識別函數(shù)的更新后的熱度值大于或等于所述待識別函數(shù)的熱度閾值之后,所述方法還包括:
[0076]在所述待識別函數(shù)的在預設的時段之前的熱度值大于或等于所述待識別函數(shù)的熱度值閾值時,計算所述待識別函數(shù)的更新后的熱度值減去所述待識別函數(shù)的在預設的時段之前的熱度值而獲得的差值;
[007
當前第2頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1