TWI496081B - 運用回叫之指令集架構(isa)橋接技術 - Google Patents
運用回叫之指令集架構(isa)橋接技術 Download PDFInfo
- Publication number
- TWI496081B TWI496081B TW102100701A TW102100701A TWI496081B TW I496081 B TWI496081 B TW I496081B TW 102100701 A TW102100701 A TW 102100701A TW 102100701 A TW102100701 A TW 102100701A TW I496081 B TWI496081 B TW I496081B
- Authority
- TW
- Taiwan
- Prior art keywords
- library
- instruction set
- set architecture
- emulator
- callback
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本發明係有關於運用回叫之指令集架構(ISA)橋接技術。
在此提供的背景描述是為了概括呈現本揭露的背景。除非本文中另外指出,本段中敘述的材料並非本申請案的申請專利範圍的習知技術且將之包含在本段中並非承認其為習知技術。
一計算裝置可由它的指令集架構(ISA)被賦與特徵。典型地,一計算裝置可能包括作業系統(OS)服務,且OS服務可包括執行期程式館服務(LIB),執行期程式館服務是為計算裝置的ISA而開發以便於應用程式開發者開發在計算裝置上操作的應用程式。舉例而言,各種不同的智慧型手機可能具有使用ARM及其ISA的特徵。這些智慧型手機可包括一OS,例如iOS或Android,支援對各自的智慧型手機開發的各種不同應用程式。某些計算裝置提供ISA-獨立執行環境,諸如JavaTM
或Android應用程式框架。然而,大量的應用程式包括叫用ISA-相依執行期程式館之服務的ISA相依部分。此外,這些ISA相依部分時常包括需要來自
ISA-相依執行期程式館之回叫的回叫函式,且此種回叫往往直到執行期才被發現,使得傳統方法諸如二進制譯碼不足以解決需求。
依據本發明之一實施例,係特地提出一種至少一包含指令的電腦可讀儲存媒體,指令配置成使一具有目標令集的目標裝置能響應於指令之執行提供指令集架構橋接層給目標裝置以便於目標裝置之一程式館的程式館服務回叫一在該目標裝置上操作的應用程式的回叫函式;其中該程式館服務是對目標指令集架構實施;且該應用程式是至少部分對一來源指令集架構實施;以及其中該指令集架構橋接層包括一來源指令集架構仿真器與一配置為合作以使該應用程式能呼叫程式館服務的程式館仿真器,且該程式館服務穿越來源及目標指令集架構回叫該回叫函式。
102‧‧‧計算裝置
104‧‧‧處理器和記憶體安排
106‧‧‧圖形處理單元
108‧‧‧顯示單元
110‧‧‧網路介面
120‧‧‧應用程式
121‧‧‧中間軟體
122‧‧‧作業系統
123‧‧‧ISA橋接層
124‧‧‧程式館服務
125‧‧‧回叫函式
134‧‧‧網路
202‧‧‧ISA橋接載入器
204‧‧‧來源ISA仿真器
206‧‧‧目標ISA程式館仿真器
212‧‧‧來源ISA脈絡
215‧‧‧二進制翻譯引擎
222‧‧‧目標ISA程式館(LIB)脈絡
224‧‧‧閘道
226‧‧‧包裝函式
300‧‧‧方法
300a,300b‧‧‧部分
302,304,306,308,310,312‧‧‧區塊
404,406,408,410,412,414‧‧‧區塊
502‧‧‧非暫時電腦可讀儲存媒體
504‧‧‧程式設計指令
本發明的實施例將經由繪示在附圖中的示範實施例來描述,但不是限制,其中相似指涉指相似的元件,且其中:圖1繪示一與運用回叫之ISA橋接技術結合的例示計算裝置;圖2更詳細地繪示圖1中的ISA橋接層;圖3和4繪示橋接來源ISA的應用程式與目標ISA的程式館服務之間的呼叫與回叫的方法;以及圖5繪示一示範的非暫時電腦可讀儲存媒體,其具有配
置為實施圖3和4之方法的全部或選擇方面,所有皆依據本揭露的實施例安排。
與運用回叫之ISA橋接技術有關的方法、裝置及儲存媒體被揭露。在各種不同的實施例中,至少一電腦可讀儲存媒體可包括配置成使一具有目標ISA的目標裝置能響應於於指令執行向目標裝置提供一ISA橋接層,以便於程式館服務回叫應用程式的一回叫函式。程式館服務可對目標ISA實施,且應用程式可至少部分地對一與目標ISA不同的來源ISA實施。ISA橋接層可包括一來源ISA仿真器和一配置為合作以使應用程式能呼叫程式館服務的程式館仿真器,且程式館服務穿越二指令集架構回叫該回叫函式。
說明性質之實施例的各不同層面將用熟習此技藝者向其他熟習此技藝人士表達其工作內容通常使用的措詞來描述。然而,熟習此技藝者將顯而易見的是替代的實施例可僅實施所描述諸層面中的一些層面。為了說明的目的,闡述特性數目,材料與配置以提供對說明性實例的充分理解。然而,熟習此技藝者將顯而易見的是替代的實施例可在毋需特定細節之下被實施。在其他的例證中,眾所週知的特徵被省略或者簡化,俾不致於模糊了說明性的實施例。
各種不同的操作將以多個分離操作,因而為以一最有助於瞭解說明性實施例的方式被描述;然而,描述的
順序不應被解釋成暗示這些操作必然地是依賴順序的。尤其,這些操作不需要以提出的順序被執行。此外,以單獨操作描述操作不應被解釋成要求操作必需獨立地執行及/或以單獨實體執行。以單獨模組描述實體及/或模組同樣不應解釋成要求模組是單獨的及/或執行單獨的操作。在各種不同的實施例中,所繪示及/或描述之操作、實體、資料及/或模組可能被合併、被拆分成進一步的子部、及/或省略。
用語「在一實施例中」或「在實施例中」反覆被使用。該用語通常並指同一實施例但可以是指同一實施例。措詞「包含」、「具有」、以及「包括」是同義的,除非脈絡另有指定。用語「A/B」意指「A或B」、片語「A及/或B」意指「(A),(B),或(A和B)、片語「A、B和C之至少一者」意指「(A),(B),(C),(A和B),(A和C),(B和C)或(A、B和C)」。
圖1繪示依據本揭露之各種不同實施例的一個與運用回叫之ISA橋接技術結合的示範計算裝置。如同所示,對於例示的實施例,計算裝置102可包括處理器和記憶體安排104,配置成使作業系統(OS)122、ISA橋接層123和在其中操作之應用程式120、圖形處理單元(GPU)106、顯示單元108,以及網路介面110,如圖所示地彼此耦合。OS 122可包括一服務124的程式館。另外地,計算裝置102也可在應用程式120和作業系統122之間包含一選擇性的中間軟體121。將在下文中更詳細地描述,ISA橋接層123可被配置有各種不同的執行期特徵以及服務(包括,但並不限於,例
如,動態連結)使應用程式120能全部或部分地被實施在一來源ISA中(例如,當一ISA-獨立中間軟體121也被使用時),同時OS 122(包括程式館服務124)可被實施在一與來源ISA不同的目標ISA中。此外,應用程式120可能是包含在各種不同情況下,需要不同的一些程式館服務124回叫應用程式120的各種不同回叫函式125之使用特性的一種應用程式(尤其,使用來源ISA實施的部分)。ISA橋接層123也可被稱為一程序虛擬機(PVM)。
計算裝置102可能是伺服器、桌上型電腦、筆記型電腦、平板電腦、智慧型手機、個人數位助理、遊戲機,網際網路器具或同類的其他計算裝置。計算裝置102的實例可包括,但不受限於,加州Palo Alto之惠普公司出品的伺服器,德州Austin之戴爾電腦出品的桌上型電腦或筆記型電腦,加州Cupertino之蘋果電腦出品的智慧型手機與平板型電腦,日本東京的任天堂公司出品的遊戲機,等等。
處理器和記憶體安排104用來代表廣泛範圍的處理器和記憶體安排,包括,但並不限於具有各種不同執行速度和電力消耗,以及具有一或多個快取階層的各種不同架構且屬於各種不同類型,諸如動態隨機存取、FLASH等等之記憶體,的單一或多核心處理器,在各種不同的實施例中,GPU 106可配置成提供對OS 122影像解碼以及/或圖形處理功能,同時顯示單元108可配置成使多媒體內容,例如,高畫質影像能在其上被渲染。同樣地,GPU 106和顯示單元108用來代表廣泛範圍的本領域中習知之圖形處理器
與顯示元件。同樣地,(多數個)網路134用來代表廣泛範圍的本領域中習知的網路。(多數個)網路134的實例可能包括有線或無線、區域或廣域、私人或公用網路,包括網際網路。
OS 122(包括程式館服務124),除了定義引動程式館服務124的應用程式設計介面(API)以外,是用來代表廣泛範圍的本領域中習知的作業系統元件。OS 122可包括傳統的組件,諸如配置成管理記憶體資源、排程任務執行,等等之核心,以及配置為管理各種不同裝置資源之裝置驅動程式。在實施例中,OS 122可包括一支援中間軟體121(如果使用)的虛擬機,例如,支援Android應用程式架構的Android虛擬機。對於實施例,除了定義程式館服務124的引動外,為了便於引動應用程式120的回叫函式125,程式館服務124的API也可包括應用程式120之回叫函式125的對應存根和簽章。OS 122的實例可包括,但不限於華盛頓州Redmond之微軟公司出品的Windows®作業系統,北卡羅來納州Raleigh之Red Hat®出品的Linux,開放手機聯盟開發的AndroidTM
,或加州Cupertino之蘋果電腦出品的iOS。
同樣地,中間軟體121是用來代表包括廣泛範圍的本領域中習知的中間軟體元件,包括但不限於,ISA-獨立中間軟體。中間軟體121的實例可包括,但不限於,Android應用程式架構,JavaTM
,或者其他的應用程式架構或ISA-獨立執行環境。
同樣地,應用程式120(包括回叫函式125)是用來
代表廣泛範圍的本領域中習知的應用程式。應用程式120的實例可包括,但不限於,個人助理、生產力或社會網路應用程式,諸如,日曆、文字處理、試算表、Twitter、Facebook,等等,或一般性的應用程式代理者,諸如瀏覽器。瀏覽器的實例可包括,但不限於,華盛頓州Redmond的微軟公司出品的網際網路探險家,加州Mountain View的Mozilla公司出品的Firefox。
現在參照圖2,其中繪示的是依據本揭露之各種不同實施例的一示範性橋接層123。如同所示,就實施例而言,ISA橋接層123可包括ISA橋接載入器202,來源ISA仿真器204和目標ISA程式館仿真器206(下文中簡稱LIB仿真器),配置成提供各種不同的執行期特徵以及服務,包括但不限於,動態連結。來源ISA仿真器204可包括來源ISA脈絡212、和二進制翻譯引擎215。來源ISA仿真器204可保持在來源ISA脈絡212,來源ISA架構的執行上下包括,但不限於,例如,當前執行指令指標(IP)。二進制翻譯引擎215可配置成將來源ISA指令翻譯成目標ISA指令。LIB仿真器206可包括目標ISA程式館(LIB)脈絡222,閘道224和包裝函式226。LIB仿真器206可保持在目標ISA程式館(LIB)脈絡222,目標ISA程式館的執行脈絡中。在各種不同的實施例中,每個程式館服務124也可能有對應的成對閘道224和包裝函式226,配置成便於由應用程式120穿越來源及目標ISA架構呼叫程式館服務124。同樣地,每個回叫函式125可能有對應的成對閘道224閘道和包裝函式226,配置成便於藉
由程式館服務124穿越目標和來源ISA架構的回叫函式125之回叫。
ISA橋接載入器202可配置成載入應用程式120。在載入應用程式120中,ISA橋接載入器202可配置成解析應用程式120的任何與程式館服務124之對應閘道位址的呼叫程式館服務相關的未解析符號名稱。在實施例中,ISA橋接載入器202可配置成解析與程式館服務124對應之閘道位址的呼叫之程式館服務124相關之應用程式120的未解析符號名稱。另外,ISA橋接載入器202可配置成將回叫函式125的符號名稱或參考符號修改成內部名字,且使回叫函式125的符號名稱或指涉關聯至對應的包裝函式226。
ISA橋接載入器202可用一些已知方式中的任一方式獲得OS 122(或中間軟體121,如果使用的話)之載入器的載入控制。此種習知方式的實例包括當OS 122或中間軟體支援時使用基於二進制格式控制傳送或載入/預載變數。在其他的實施例中,OS 122(或中間軟體121,如果使用的話)的載入器可代之以修改成便於將控制傳送到ISA橋接載入器202。
如前所述,來源ISA仿真器204可配置成保持來源ISA執行脈絡212。來源ISA仿真器204可配置成在應用程式120的執行期間追蹤來源ISA IP(指令指標)。當應用程式120嘗試叫用一程式館服務124時,來源ISA仿真器204監視來源ISA執行可改為叫用並傳送控制移轉到LIB仿真器206。在各種不同的實施例中,來源ISA仿真器204可叫用且傳送執行
控制到程式館服務124的對應閘道224。
LIB仿真器206可同樣地配置成保持目標ISA程式館(LIB)執行脈絡222。
對應於程式館服務124的閘道224可配置成分別將程式館服務124的呼叫重新導向至對應的包裝函式226處理與建立呼叫。然而對應於回叫函式125的閘道224可配置成分別將回叫的執行控制從對應的包裝函式226傳送到來源ISA仿真器204。在各種不同的實施例中,每個閘道224可包括一指令,配置成完成向對應之包裝函式226或來源ISA仿真器204的重新導向。在各種不同的實施例中,每個閘道224的指令可能是一來源ISA指令,配置成與二進制翻譯引擎215合作以完成執行控制重新導向。在各種不同的實施例中,每個閘道224可進一步包括識別對應的包裝函式226的一指示器。
在各種不同的實施例中,為了處理和建立對於一對應的程式館服務124的呼叫,每一對應於該程式館服務124的包裝函式226可配置成從來源ISA脈絡212檢索呼叫相關聯的參數值,將呼叫從來源ISA應用程式二進制介面(ABI)格式轉換成目標ISA ABI格式,且將已轉換的呼叫與LIB脈絡222中的參數值一起保存。
關於對一回叫函式125的回叫,執行控制可被傳送到回叫函式125的對應包裝函式226。在各種不同的實施例中,為了處理和建立對應用程式120之一回叫函式的回叫,每個對應於一回叫函式125包裝函式226可配置為將回
叫從目標ISA ABI格式轉換成來源ISA ABI格式,附加回叫的相關參數值,且已轉換的回叫與來源ISA脈絡212中的參數值一起保存。
對應於一回叫函式125的閘道224可配置成叫用來源ISA脈絡由對應於函式125的包裝函式226所預備的來源ISA仿真器204來仿真以來源ISA格式存在於目標ISA上的回叫函式。
現在參照圖3-4,其中繪示的是依據本揭露之各種不同實施例的一示例之運用回叫的ISA橋接方法。如同所示,方法300可包括二部分,用於將來自(來源ISA之)應用程式120的呼叫橋接到(目標ISA之)程式館服務124的部分300a,以及用於將來自(目標ISA之)程式館服務124的回叫橋接到.(來源ISA之)應用程式120的一回叫函式。
部分300a可從區塊302開始。在區塊302,ISA橋接載入器202可載入應用程式120。在載入應用程式120中,ISA橋接載入器202可解析可向程式館服務124解析應用程式120的符號名稱或者參考符號,且修改回叫函式125的符號名稱或參考符號,如前所述。由區塊302,部分300a可繼續進行到區塊304。在區塊304,在執行期間,應用程式120可呼叫之程式館服務124中的一個。在各種不同的實施例中,應用程式120可能需要由被呼叫的程式館服務124向應用程式120的一個回叫函式125回叫。在實施例中,應用程式120在對被呼叫的程式館服務124中可包含對被回叫之回叫函式125的一指標。程式館服務124的包裝函式226可傳遞
回叫函式125的對應包裝函式226,而不是將指標傳遞到回叫函式125。
由區塊304,部分300a可繼續進行到區塊306。在區塊306,來源ISA仿真器204,在例如經由監視來源ISA IP偵測到呼叫且確定IP是關聯目標程式之位址範圍內的一位址時,可重新導向呼叫且將執行控制傳送到LIB仿真器206中的程式館服務124之對應閘道224。在區塊308,閘道224可進一步重新導向呼叫且將執行控制傳送到被呼叫之程式館服務124的對應包裝函式226。由區塊308,部分300a可繼續進行到區塊310。在區塊310,被呼叫之程式館服務124的包裝函式226可處理呼叫,且在LIB脈絡222中建立呼叫由被呼叫之程式館服務124執行,如前所述。由區塊310,部分300a可繼續進行到區塊312。在區塊312,被呼叫之程式館服務124的閘道224可從LIB脈絡222收集呼叫的(多數個)傳回值,更新來源ISA脈絡212,且將執行控制傳送至來源ISA仿真器202以使程式館服務呼叫的傳回值傳回至應用程式125。
現在參照圖4,部分300b可從區塊404開始。在區塊404,在進行或完成被呼叫之程式館服務124時,程式館服務124例如可藉由呼叫應用程式120傳遞的回叫指標回叫應用程式120的一回叫函式125。由區塊404,部分300b可繼續進行到區塊406,由於回叫指標是對應於回叫函式125的包裝函式226。在區塊406,依據經修改的指涉,執行控制可被傳送到回叫函式125的對應包裝函式226。由區塊406,
部分300b可繼續進行到區塊408。在區塊408,包裝函式226可處理回叫,在來源ISA脈絡212中建立回叫藉由應用程式120的回叫函式125執行,如前所述,且之後將執行控制傳送到回叫函式125的對應閘道224。由區塊408,部分300b可繼續進行到區塊410。在區塊410,對應於回叫函式12的閘道224可重新導向回叫且將執行控制傳送到以包裝函式226預備來源ISA脈絡的來源ISA仿真器。
此外,在區塊412,例如,經由監視來源ISA IP偵測到呼叫且確定IP是關聯閘道224之位址範圍內對應於回叫函式125的一位址時,來源ISA仿真器204可將來源ISAIP重新導向到回叫函式以繼續該仿真。由區塊412,部分300b可繼續進行到區塊414。在區塊414,回叫函式125的閘道224可收集來自來源ISA脈絡212的(多數個)傳回值,更新LIB脈絡222,以及將執行控制傳送到LIB仿真器204以使回叫函式125的傳回值傳回至程式館服務124。
圖5繪示一示例非暫時電腦可讀儲存媒體,其具有配置為實施依據本揭露之各種不同實施例的圖3和4之方法的所有或選擇層面的指令。如圖所示,非暫時電腦可讀儲存媒體502可包括一些程式設計指令504。程式設計指令504可配置成使一計算裝置,例如計算裝置102能響應於程式設計指令之執行來執行前面參照圖3和圖4描述之方法300的ISA橋接操作的所有或選擇層面。在選擇替代的實施例中,程式設計指令504可安排在多個非暫時電腦可讀儲存媒體502上。
再參照圖1,對於一實施例,處理器和記憶體安排104中的至少一個處理器可與配置為實施圖3和圖4之方法300的操作(或其一子集)的ISA橋接層123的計算邏輯(或其一子集)封裝在一起。對於一實施例,處理器和記憶體安排104中的至少一個處理器可與配置為實施圖3和圖4之方法300的操作(或其一子集)的ISA橋接層123的計算邏輯(或其一子集)封裝在一起以形成一系統級封裝(SiP)。對於一實施例,處理器和記憶體安排104中的至少一個處理器可與配置為實施圖3和圖4之方法300的操作(或其一子集)的ISA橋接層123的計算邏輯(或其一子集)整合在同一晶片上。對於一實施例,處理器和記憶體安排104中的至少一個處理器可與配置為實施圖3和圖4之方法300的操作(或其一子集)的ISA橋接層123的計算邏輯(或其一子集)整合在同一晶片上以形成一系統單晶片(SoC)。對於至少一實施例,SoC可被利用在桌上型電腦、筆記型電腦、智慧型手機、平板電腦、網際網路器具、個人數位助理(PDA),、可攜式競賽裝置、伺服器或其他的計算裝置中。
仍參照圖1,雖然為了易於瞭解,本揭露已就一ISA橋接層123橋接一來源ISA到一目標ISA來描述,但本揭露並不因此受到限制。在實施例中,多個不同的ISA橋接層123可被提供用以橋接多個不同的來源ISA至目標ISA。在一些實施例中,一調度器可另外被提供以偵測所需要的橋接,且實體化適當的ISA橋接層或多層123以提供所需的ISA橋接。
此外,在各種不同的實施例中,本揭露能以(目標ISA中)替代之二進制實施(來源ISA中)部分的應用程式120以減少需要的橋接量。在其他的實施例中,一些用於橋接的資源,例如一些包裝函式,可位於ISA橋接層123可存取的遠端伺服器之上。
更進一步地,雖然為了易於瞭解,ISA橋接層123已就被配置為橋接來源ISA與目標ISA被描述。然而,本揭露並不因此受限。可以設想到的是,對於各種不同的應用,ISA橋接層123可被應用來橋接相同的來源ISA與目標ISA。在如此的應用中,一或多個描述的元件,例如,二進制翻譯引擎215,可能不被需要。如此的應用的一個實例可能是提供計算裝置102的增強操作安全性。其他的應用同樣地可因此種橋接而獲益。
因此,雖然特定的實施例已經在此被繪示及描述,具有本技藝中普通技能的人士應理解的是各式各樣的替代選擇及/或相等的實施可取代所繪示與描述的特定實施例。
因此,可以理解本揭露可以是對一種具有ISA支援應用程式之計算裝置的技術問題解決方案,該ISA支援應用程式被開發用於另一ISA,具有有時需要被呼叫之程式館服務的回叫的使用特徵。本揭露之優點可包括、但不限於避免完整翻譯或在計算裝置之ISA中重新實施該應用程式的需求。
也將可理解本揭露可以是對一計算裝置提供增
強之安全性的技術問題解決方。本揭露的優點案可包括、但不限於提供隔離之強健性。
102‧‧‧計算裝置
104‧‧‧處理器和記憶體安排
106‧‧‧圖形處理單元
108‧‧‧顯示單元
110‧‧‧網路介面
120‧‧‧應用程式
121‧‧‧中間軟體
122‧‧‧作業系統
123‧‧‧ISA橋接層
124‧‧‧程式館服務
125‧‧‧回叫函式
134‧‧‧網路
Claims (30)
- 至少一電腦可讀儲存媒體,其包含有指令,該等指令被配置成使具有一目標指令集架構的一目標裝置能夠響應於對該等指令之執行而對該目標裝置提供一指令集架構橋接層以使該目標裝置之一程式館的一程式館服務便於回叫操作於該目標裝置上的一應用程式的一回叫函式;其中該程式館服務是針對該目標指令集架構而實施,而且該應用程式是至少部分針對一來源指令集架構而實施;並且其中該指令集架構橋接層包括一來源指令集架構(ISA)仿真器與一程式館仿真器,該來源指令集架構仿真器與該程式館仿真器被配置為可合作以使該應用程式能夠呼叫該程式館服務,且該程式館服務會穿越該等來源和目標指令集架構而回叫該回叫函式。
- 如申請專利範圍第1項的至少一電腦可讀儲存媒體,其中該來源指令集架構仿真器被配置成可維持該來源指令集架構的一執行脈絡,並且該程式館仿真器被配置成可維持一程式館執行脈絡。
- 如申請專利範圍第2項的至少一電腦可讀儲存媒體,其中該程式館仿真器進一步包括對應於該程式館服務的一閘道,配置成可將該呼叫重新導向至對應於該程式館服務的一包裝函式。
- 如申請專利範圍第2項的至少一電腦可讀儲存媒體,該程式館仿真器進一步包括對應於該程式館服務的一包 裝函式;其中該包裝函式被配置成可處理該呼叫,並在該程式館執行脈絡中建立該呼叫。
- 如申請專利範圍第2項的至少一電腦可讀儲存媒體,其中該程式館仿真器進一步包括對應於該回叫函式的一閘道,配置成可將該回叫重新導向至該來源ISA仿真器。
- 如申請專利範圍第2項的至少一電腦可讀儲存媒體,其中該程式館仿真器進一步包括對應於該回叫函式的一包裝函式,配置成可處理該回叫、在該來源指令集架構之該執行脈絡中建立該回叫、並將該回叫重新導向至對應於該回叫函式的該程式館仿真器之一閘道。
- 如申請專利範圍第1項的至少一電腦可讀儲存媒體,其中該指令集架構橋接層進一步包括一載入器;其中該載入器被配置成可載入該應用程式,並藉由使該程式館仿真器能在啟用該呼叫當中加以干預的一方式來修改指涉該程式館服務的一符號名稱。
- 如申請專利範圍第7項的至少一電腦可讀儲存媒體,其中該載入器進一步被配置成可藉由使該來源指令集架構仿真器能在啟用該回叫當中加以干預的一方式來修改指涉該應用程式之一回叫函式的一符號名稱。
- 如申請專利範圍第1、2、3、4、5、6、7或8項的至少一電腦可讀儲存媒體,其中該來源指令集架構與該目標指令集架構是相同的指令集架構。
- 一種用於以回叫將來源指令集架構橋接至目標指令集架構的方法,其包含下列步驟: 藉由一計算裝置的一來源指令集架構仿真器,維持一來源ISA執行脈絡,其中該計算裝置包含實施在該計算裝置之一目標指令集架構中的一程式館服務;藉由該計算裝置的一程式館仿真器,維持一程式館執行脈絡;在該來源指令集架構仿真器與該程式館仿真器之間合作以使至少部分實施在該來源指令集架構中的一應用程式便於呼叫該程式館服務,並且該程式館服務會穿越該等來源和目標指令集架構而回叫該應用程式的一回叫函式。
- 如申請專利範圍第10項的方法,其中,合作之步驟包含:將該呼叫重新導向至對應於該程式館服務的該程式館仿真器之一閘道。
- 如申請專利範圍第10項的方法,其中,合作之步驟進一步包含:將該呼叫重新導向至對應於該程式館服務的一包裝函式,以處理該呼叫,並針對該程式館服務而在該程式館執行脈絡中建立該呼叫。
- 如申請專利範圍第10項的方法,其進一步包含下列步驟:將該回叫重新導向至對應於該回叫函式的該程式館仿真器之一包裝函式,以處理該回叫,並在該來源ISA執行脈絡中建立該回叫。
- 如申請專利範圍第10項的方法,其進一步包含下列步驟:藉由對應於該回叫函式的該程式館仿真器之一閘道,將該回叫重新導向至該來源ISA仿真器。
- 如申請專利範圍第10項的方法,其進一步包含下列步驟:藉由與該指令集架構仿真器和該程式館仿真器相關聯的一載入器來載入該應用程式,包括:藉由使該程式館仿真器能在啟用該呼叫當中加以干預的一方式來修改指涉該程式館服務的一符號名稱。
- 如申請專利範圍第15項的方法,其進一步包含下列步驟:藉由該載入器,藉由使該來源指令集架構仿真器能在啟用該回叫當中加以干預的一方式來修改指涉該應用程式之一回叫函式的一符號名稱。
- 如申請專利範圍第10、11、12、13、14、15或16項的方法,其中該來源指令集架構和該目標指令集架構是相同的指令集架構。
- 一種用於執行至少部分實施於來源指令集架構中的應用程式的裝置,該裝置包含:具有一目標指令集架構的一處理器與記憶體安排;以及一指令集架構橋接層,其包括一來源指令集架構仿真器和一程式館仿真器,配置成可由該處理器和記憶體操作以合作來使一呼叫應用程式能呼叫一程式館服務,並且該程式館服務會穿越該等來源和目標指令集架構而回叫該應用程式之一回叫函式。
- 如申請專利範圍第18項的裝置,其中該來源指令集架構仿真器被配置成可維持該來源指令集架構的一執行脈絡,並且該程式館仿真器被配置成可維持一程式館執行 脈絡。
- 如申請專利範圍第19項的裝置,其中該程式館仿真器進一步包括對應於該程式館服務的一閘道,配置成可將該呼叫重新導向至對應於該程式館服務的一包裝函式。
- 如申請專利範圍第19項的裝置,該程式館仿真器進一步包括對應於該程式館服務的一包裝函式;其中該包裝函式被配置成可處理該呼叫,並在該程式館執行脈絡中建立該呼叫。
- 如申請專利範圍第19項的裝置,其中該程式館仿真器進一步包括對應於該回叫函式的一閘道,配置成可將該回叫重新導向至該來源ISA仿真器。
- 如申請專利範圍第19項的裝置,其中該程式館仿真器進一步包括對應於該回叫函式的一包裝函式,配置成可處理該回叫、在該來源指令集架構之該執行脈絡中建立該回叫,並將該回叫重新導向至對應於該回叫函式的該程式館仿真器之一閘道。
- 如申請專利範圍第18項的裝置,其中該指令集架構橋接層進一步包括一載入器;其中該載入器被配置成可載入該應用程式,並藉由使該程式館仿真器能在啟用該呼叫當中加以干預的一方式來修改指涉該程式館服務的一符號名稱。
- 如申請專利範圍第24項的裝置,其中該載入器進一步被配置成可藉由使該來源指令集架構仿真器能在啟用該回叫當中加以干預的一方式來修改指涉該應用程式之 一回叫函式的一符號名稱。
- 如申請專利範圍第18、19、20、21、22、23、24或25項的裝置,其中該來源指令集架構和該目標指令集架構是相同的指令集架構。
- 如申請專利範圍第26項的裝置,其中該裝置是擇自於伺服器、桌上型電腦、筆記型電腦、平板電腦、智慧型手機、個人數位助理、遊戲機、或一網際網路器具的一者。
- 如申請專利範圍第26項的裝置,其中該處理器是一多核心處理器。
- 如申請專利範圍第26項的裝置,其進一步包含:包含該服務程式館的一作業系統。
- 如申請專利範圍第26項的裝置,其進一步包含:一獨立於指令集架構之應用程式執行環境;其中該應用程式進一步使用該獨立於指令集架構之應用程式執行環境的至少一個其他服務。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/070163 WO2013104107A1 (en) | 2012-01-10 | 2012-01-10 | Isa bridging with callback |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201351275A TW201351275A (zh) | 2013-12-16 |
TWI496081B true TWI496081B (zh) | 2015-08-11 |
Family
ID=48781021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102100701A TWI496081B (zh) | 2012-01-10 | 2013-01-09 | 運用回叫之指令集架構(isa)橋接技術 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9513977B2 (zh) |
EP (1) | EP2802983B1 (zh) |
JP (1) | JP2015507269A (zh) |
KR (1) | KR101691063B1 (zh) |
CN (1) | CN104025046B (zh) |
TW (1) | TWI496081B (zh) |
WO (1) | WO2013104107A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2012373895B2 (en) | 2012-03-22 | 2016-01-21 | Intel Corporation | Nested emulation and dynamic linking environment |
US9262156B2 (en) * | 2014-02-12 | 2016-02-16 | International Business Machines Corporation | Methods for transparent management of context and state in an asynchronous callback flow |
US10120663B2 (en) * | 2014-03-28 | 2018-11-06 | Intel Corporation | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture |
US9483283B1 (en) * | 2014-11-20 | 2016-11-01 | Apptimize, Inc. | Enhanced code callback |
US10452409B2 (en) * | 2015-10-23 | 2019-10-22 | Oracle International Corporation | Universal adapter for native calling |
US10684984B2 (en) | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US10713213B2 (en) * | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216701A1 (en) * | 2002-06-28 | 2005-09-29 | Taylor Richard M | Automatic configuration of a microprocessor |
US20080172657A1 (en) * | 2007-10-01 | 2008-07-17 | The Board Of Trustees Of The Leland Stanford Junior University | Binary translation using peephole translation rules |
CN102110011A (zh) * | 2009-12-23 | 2011-06-29 | 英特尔公司 | 局部仿真环境中从源指令集架构代码向转换后代码的转换 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748964A (en) | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US7516453B1 (en) | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
US6986128B2 (en) | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
GB2393274B (en) | 2002-09-20 | 2006-03-15 | Advanced Risc Mach Ltd | Data processing system having an external instruction set and an internal instruction set |
US7249355B2 (en) * | 2002-12-18 | 2007-07-24 | Microsoft Corporation | Unified network thread management |
US7380235B1 (en) * | 2003-06-27 | 2008-05-27 | Microsoft Corporation | Application program interface call replay tool |
US7971255B1 (en) * | 2004-07-15 | 2011-06-28 | The Trustees Of Columbia University In The City Of New York | Detecting and preventing malcode execution |
KR20070067207A (ko) | 2004-10-12 | 2007-06-27 | 픽셀 (리서치) 리미티드 | 런타임 동적 링킹 |
US7587722B2 (en) * | 2004-12-03 | 2009-09-08 | Microsoft Corporation | Extending operating system subsystems |
US7415701B2 (en) * | 2005-02-17 | 2008-08-19 | Intel Corporation | Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine |
US7634768B2 (en) * | 2005-02-17 | 2009-12-15 | Intel Corporation | Methods and apparatus to support mixed-mode execution within a single instruction set architecture process of a virtual machine |
GB2426840A (en) | 2005-06-04 | 2006-12-06 | Transitive Ltd | Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion. |
US7757221B2 (en) | 2005-09-30 | 2010-07-13 | Intel Corporation | Apparatus and method for dynamic binary translator to support precise exceptions with minimal optimization constraints |
US8028295B2 (en) * | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US7870387B1 (en) * | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US8381202B2 (en) * | 2006-06-20 | 2013-02-19 | Google Inc. | Runtime system for executing an application in a parallel-processing computer system |
US7941641B1 (en) | 2007-10-01 | 2011-05-10 | Yong-Kyu Jung | Retargetable instruction decoder for a computer processor |
US7958232B1 (en) * | 2007-12-05 | 2011-06-07 | Appcelerator, Inc. | Dashboard for on-the-fly AJAX monitoring |
US8156479B2 (en) * | 2007-12-07 | 2012-04-10 | International Business Machines Corporation | System and method of monitoring dynamic scopes in synchronous and asynchronous calls |
US20090271172A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Emulating A Computer Run Time Environment |
US9038018B2 (en) | 2010-10-08 | 2015-05-19 | Microsoft Technology Licensing, Llc | Integrating software components |
EP2482184A1 (en) | 2011-02-01 | 2012-08-01 | Irdeto B.V. | Adaptive obfuscated virtual machine |
-
2012
- 2012-01-10 US US13/995,935 patent/US9513977B2/en active Active
- 2012-01-10 EP EP12865442.3A patent/EP2802983B1/en active Active
- 2012-01-10 KR KR1020147018786A patent/KR101691063B1/ko active IP Right Grant
- 2012-01-10 JP JP2014550609A patent/JP2015507269A/ja active Pending
- 2012-01-10 CN CN201280066708.6A patent/CN104025046B/zh active Active
- 2012-01-10 WO PCT/CN2012/070163 patent/WO2013104107A1/en active Application Filing
-
2013
- 2013-01-09 TW TW102100701A patent/TWI496081B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216701A1 (en) * | 2002-06-28 | 2005-09-29 | Taylor Richard M | Automatic configuration of a microprocessor |
US20080172657A1 (en) * | 2007-10-01 | 2008-07-17 | The Board Of Trustees Of The Leland Stanford Junior University | Binary translation using peephole translation rules |
CN102110011A (zh) * | 2009-12-23 | 2011-06-29 | 英特尔公司 | 局部仿真环境中从源指令集架构代码向转换后代码的转换 |
Also Published As
Publication number | Publication date |
---|---|
KR20140101412A (ko) | 2014-08-19 |
WO2013104107A1 (en) | 2013-07-18 |
EP2802983B1 (en) | 2016-12-14 |
US9513977B2 (en) | 2016-12-06 |
EP2802983A4 (en) | 2015-09-02 |
CN104025046A (zh) | 2014-09-03 |
US20140040921A1 (en) | 2014-02-06 |
KR101691063B1 (ko) | 2016-12-29 |
CN104025046B (zh) | 2017-06-20 |
TW201351275A (zh) | 2013-12-16 |
JP2015507269A (ja) | 2015-03-05 |
EP2802983A1 (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI496081B (zh) | 運用回叫之指令集架構(isa)橋接技術 | |
JP5976930B2 (ja) | バーチャルファンクションを無効にするコールのためのサポートを含むisaブリッジング | |
US10761867B2 (en) | Nested emulation and dynamic linking environment | |
CN106445508B (zh) | 一种游戏引擎 | |
Rego et al. | Performing computation offloading on multiple platforms | |
CN109213613B (zh) | 图像信息的传输方法、装置、存储介质及电子设备 | |
JP5886450B2 (ja) | ハイブリッドのエミュレーション及びカーネル関数処理のシステム及び方法 | |
Zbierski et al. | Bring the cloud to your mobile: Transparent offloading of html5 web workers | |
Debab et al. | Containers runtimes war: a comparative study | |
TW201407377A (zh) | 用於提供存取虛擬命名空間中資源的虛擬整合呼叫 | |
US9830307B1 (en) | Ahead of time compilation of content pages | |
KR20100087860A (ko) | 모바일 웹 어플리케이션 프레임웍, 모바일 단말 및 저장매체 | |
JP6352486B2 (ja) | コールバックによるisaブリッジング | |
Chai et al. | TEEI-A Mobile Security Infrastructure for TEE Integration | |
KR101197207B1 (ko) | 검증 플랫폼을 이용한 콘텐츠 검증방법 | |
CN114546434A (zh) | 一种应用更新方法、装置、电子设备及存储介质 | |
CN117573177A (zh) | 一种游戏客户端的热更新方法、装置、设备及存储介质 | |
Heidari | Android Elastic Service Execution and Evaluation |