[發明專利]一種指令安裝方法、裝置、電子設備及存儲介質有效
| 申請號: | 201910234150.1 | 申請日: | 2019-03-26 |
| 公開(公告)號: | CN109918132B | 公開(公告)日: | 2021-04-16 |
| 發明(設計)人: | 傅杰;敖琪;高翔 | 申請(專利權)人: | 龍芯中科技術股份有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/455;G06F8/41 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100095 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 指令 安裝 方法 裝置 電子設備 存儲 介質 | ||
本發明實施例提供了一種指令安裝方法和裝置,所述方法包括:根據處理器的固定區域最大值和虛擬機中存放本地指令序列的緩沖區大小的比較結果,從內存地址空間中分配至少一個固定區域作為緩沖區,將虛擬機指令序列中的目標跳轉指令編譯為本地指令序列中的區域跳轉指令,將本地指令序列安裝到所述緩沖區的目標固定區域中,實現了以固定區域為單位對緩沖區的分配進行控制,進而可以控制本地指令序列的編譯與安裝,確保區域跳轉指令的跳轉指令地址和跳轉目標地址位于同一個固定區域內,避免了生成區域跳轉指令帶來的安全性風險,實現自動編譯生成區域跳轉指令,繼而提高了編譯生成跳轉指令的質量,優化了虛擬機上跳轉指令的執行性能。
技術領域
本發明涉及計算機技術領域,特別是涉及一種指令安裝方法、一種指令安裝裝置、一種電子設備以及一種可讀存儲介質。
背景技術
虛擬機(VM,Virtual Machine)主要通過軟件(或者輔以少量硬件支持)的方法來虛擬出一臺計算機,并且這臺虛擬的計算機通常還支持一套對應的指令集,稱為虛擬機指令集。虛擬機依托于本地的物理機(Host Machine),通過其執行引擎對給定的虛擬機指令序列(目標程序)在本地機器上模擬執行。
虛擬機的執行引擎可以由解釋器來實現。由于解釋器具有可移植性高、實現代價低和內存占用少等特點,大多數虛擬機的執行引擎都包含解釋器。解釋器以一條虛擬機指令為單位進行取指令、指令分派、取操作數和執行。但單純的解釋執行性能低下,因此虛擬機中引入動態編譯系統來提高其性能。
編譯器是動態編譯系統的核心。編譯器以一組連續的虛擬機指令序列(基本塊、函數或方法)為單位整體編譯成本地CPU指令序列,稱為本地方法,然后由硬件直接執行編譯后的本地方法。編譯器由于消除了重復的取指令和指令分派等過程,同時又在編譯時進行大量卓有成效的優化,因此其性能往往是解釋器的10倍以上。由于編譯器是在程序運行期間進行動態編譯的,故又被稱為即時編譯器(JIT,Just-in-time Compiler)。動態編譯是決定虛擬機性能的關鍵。
和傳統C/C++等靜態編譯不同,動態編譯行為發生在程序運行期間,會引入額外的編譯開銷。研究表明,程序運行的時間分布具有明顯的局部性特征,即程序執行的大部分時間集中在小部分代碼上。為了盡可能降低由動態編譯產生的額外開銷,現代虛擬機的動態編譯系統通常依據“選擇性編譯”(selective compilation)理論進行設計和實現。其核心思想是:僅編譯程序中頻繁執行的部分(稱為熱點),未被編譯部分則解釋執行。
方法編譯后將生成對應的本地方法。隨后,本地方法將被拷貝到代碼緩沖區中等待被執行。代碼緩沖區是虛擬機中用于存放本地方法的專用存儲區域。本地方法拷貝到代碼緩沖區的過程又稱為本地方法的安裝。
經申請人研究發現,動態編譯過程中,跳轉指令的生成是影響虛擬機性能的重要因素。充分利用硬件支持的跳轉指令是編譯生成高效跳轉指令的前提。通常,硬件直接支持的跳轉指令可分為如下三類:
第一,PC相對跳轉(PC-relative branch),該類指令的一般模式為:branch-opcode condition offset,其典型代表為MIPS(Microprocessor without interlockedpiped stages,無內部互鎖流水級的微處理器)架構的beq/bne指令,以及x86的jcc類指令。這類指令的特點是當且僅當條件滿足時才進行跳轉,并且跳轉的目標地址是相對于當前跳轉指令(或當前跳轉指令的下一條指令)的偏移。例如,在MIPS機器上,beq s0,s1,32表示當且僅當寄存器s0和寄存器s1的值相等時才進行跳轉,跳轉的目標地址為該條指令的下一條指令地址加上偏移量32。不同架構PC相對跳轉的偏移量offset的編碼范圍差異較大。例如,x86機器支持8位、16位和32位三種長度的offset編碼,而MIPS僅支持16位的offset編碼長度。Offset的編碼長度越短,PC相對跳轉的范圍也越窄,該指令的可用范圍也越小。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于龍芯中科技術股份有限公司,未經龍芯中科技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910234150.1/2.html,轉載請聲明來源鉆瓜專利網。





