欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

混合模擬和內(nèi)核函數(shù)處理系統(tǒng)和方法

文檔序號(hào):6498306閱讀:121來源:國知局
混合模擬和內(nèi)核函數(shù)處理系統(tǒng)和方法
【專利摘要】一個(gè)實(shí)施例預(yù)先構(gòu)建內(nèi)核函數(shù)(KF)的解釋并將其加載到解釋池和對(duì)應(yīng)索引表中。由此將KF快速地加載,并且不一定要等待通過LIB模擬器來誘捕和模擬。這促成更快速地訪問KF。其他實(shí)施例提供混合模擬,其中一些應(yīng)用函數(shù)(例如,需要快速性能的那些應(yīng)用函數(shù))從源ISA庫解釋,而其他應(yīng)用函數(shù)通過對(duì)目標(biāo)ISA庫的模擬來處理。這樣提供對(duì)某些函數(shù)的快速訪問。本文描述了其他實(shí)施例。
【專利說明】混合模擬和內(nèi)核函數(shù)處理系統(tǒng)和方法

【背景技術(shù)】
[0001]計(jì)算設(shè)備可以由其指令集體系結(jié)構(gòu)(ISA)來表征。典型地,計(jì)算設(shè)備可以包括操作系統(tǒng)(OS)服務(wù),以及OS服務(wù)可以包括針對(duì)計(jì)算設(shè)備的ISA開發(fā)的運(yùn)行時(shí)庫服務(wù)(LIB),以便幫助應(yīng)用開發(fā)者開發(fā)要在該計(jì)算設(shè)備上運(yùn)行的應(yīng)用。如果應(yīng)用是針對(duì)該計(jì)算設(shè)備的ISA以外的ISA編寫的,則需要對(duì)該應(yīng)用模擬。確切的來說,模擬使(針對(duì)第一 ISA編寫的)應(yīng)用在計(jì)算設(shè)備的(使用第二 ISA的)體系結(jié)構(gòu)上執(zhí)行并訪問目標(biāo)平臺(tái)的運(yùn)行時(shí)LIB服務(wù)。再者,應(yīng)用的ISA從屬部分可以包括回調(diào)函數(shù)(例如,從ISA從屬運(yùn)行時(shí)LIB返回到被模擬應(yīng)用進(jìn)行調(diào)用的函數(shù)、返回到需要被模擬的源LIB服務(wù)的函數(shù))。
[0002]但是,模擬可能由于ISA之間沒有硬件能力而遇到難題。例如,源ISA可以實(shí)現(xiàn)底層目標(biāo)ISA未提供的某種功能性。此類功能性可以包括原子操作,原子操作是不可見且不可約的,以致于原子操作必須整體地執(zhí)行或完全不執(zhí)行(例如,此類操作可以包括處理器在同一個(gè)總線操作中同時(shí)讀取位置和向位置寫入)。
[0003]在其他情況中,可以采用如內(nèi)核函數(shù)(KF)的項(xiàng)目,其獨(dú)立于源或目標(biāo)ISA。KF不是ISA提供的功能性,而是與底層平臺(tái)的OS提供的功能性相關(guān)(例如,下文進(jìn)一步論述的LIB服務(wù)124)。KF的模擬可能不會(huì)由于如上文論述的沒有硬件能力而是由于源和目標(biāo)LIB服務(wù)之間的不同能力而遇到難題。KF可能包含訪問內(nèi)核數(shù)據(jù)并在內(nèi)核空間中運(yùn)行但是不需要源應(yīng)用與其主機(jī)模擬機(jī)之間的上下文切換的函數(shù)。由此,使用KF能夠快速地訪問內(nèi)核數(shù)據(jù),而且還免去訪客與主機(jī)模擬機(jī)或環(huán)境之間的上下文切換的開銷。然而,如果主機(jī)模擬機(jī)未正確地捕獲KF,則KF仍可能導(dǎo)致上下文切換的開銷。
[0004]模擬還可能由于要模擬的內(nèi)容的大小而遇到難題。例如,移動(dòng)平臺(tái)可能面對(duì)在僅選擇正真需要模擬的功能時(shí)模擬整個(gè)庫(可能非常大)的難題。

【專利附圖】

【附圖說明】
[0005]將通過附圖中圖示的示范實(shí)施例而非限制來描述本發(fā)明的實(shí)施例,在附圖中相似的引用表示相似的元件,以及其中:
圖1圖示本發(fā)明實(shí)施例中包括ISA橋接的計(jì)算設(shè)備;
圖2進(jìn)一步詳細(xì)地圖示圖1的ISA橋接層;
圖3和圖4圖示本發(fā)明實(shí)施例中用于橋接源ISA的應(yīng)用與目標(biāo)ISA的LIB服務(wù)之間的調(diào)用和回調(diào)的方法;
圖5包括用于高效KF處理的實(shí)施例;
圖6-7包括混合模擬的實(shí)施例。

【具體實(shí)施方式】
[0006]多種操作將描述為多個(gè)離散操作,進(jìn)而以最有助于理解這些說明性實(shí)施例的方式來描述這些多種操作;但是,描述的次序不應(yīng)視為暗示這些操作必定是按照次序的。具體來說,這些操作無需按出現(xiàn)的次序來執(zhí)行。再者,將多個(gè)操作描述為單獨(dú)的操作不應(yīng)視為要求這些操作必定要獨(dú)立地被執(zhí)行和/或由單獨(dú)的實(shí)體來執(zhí)行。將多個(gè)實(shí)體和/或模塊描述為單獨(dú)的模塊同樣地不應(yīng)視為要求這些模塊是單獨(dú)的和/或執(zhí)行單獨(dú)的操作。在多種實(shí)施例中,可以將圖示和/或描述的操作、實(shí)體、數(shù)據(jù)和/或模塊合并、將其進(jìn)一步拆分成從屬部件和/或?qū)⑵涫÷浴6陶Z“實(shí)施例”被反復(fù)地使用。該短語一般不是指同一個(gè)實(shí)施例;但是,它可以指同一個(gè)實(shí)施例。除上下文另行指示,否則術(shù)語“包括”、“具有”和“包含”是同義詞。短語“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)”。
[0007]一個(gè)實(shí)施例預(yù)先構(gòu)建KF的解釋并將其加載到解釋池和對(duì)應(yīng)索引表中。由此將KF快速地加載,并且不一定要等待通過LIB模擬器來誘捕和模擬。這促成更快速地訪問KF。其他實(shí)施例提供混合模擬,其中一些應(yīng)用函數(shù)(例如,需要快速性能的那些應(yīng)用函數(shù))從源ISA庫解釋,而其他應(yīng)用函數(shù)通過對(duì)目標(biāo)ISA庫的模擬來處理。這樣提供對(duì)某些函數(shù)的快速訪問。
[0008]圖1圖示實(shí)施例中包括ISA橋接(可選地具有回調(diào))的示例計(jì)算設(shè)備。計(jì)算設(shè)備102可以包括處理器和存儲(chǔ)器布置104,處理器和存儲(chǔ)器布置104包括或耦合到OS 122、ISA橋接層123、應(yīng)用120、圖形處理單元(GPU) 106、顯示單元108和聯(lián)網(wǎng)接口 110,它們?nèi)鐖D所示地彼此耦合(即,直接地或間接地耦合)。OS 122可以包括服務(wù)124的LIB。計(jì)算設(shè)備102還可以在應(yīng)用120與OS 122之間包括可選中間件121。正如下文將更詳細(xì)描述的,ISA橋接層123可以配置有多種運(yùn)行時(shí)特征和服務(wù)以使得應(yīng)用120能夠整體地或部分地(例如,當(dāng)還使用ISA無關(guān)的中間件121時(shí))中實(shí)現(xiàn),而OS 122 (包括LIB服務(wù)124)可以在與源ISA不同的目標(biāo)ISA中實(shí)現(xiàn)。再者,應(yīng)用120可以是包括多種情況下需要LIB服務(wù)124中的多種庫服務(wù)以“回調(diào)”應(yīng)用120的多種回調(diào)函數(shù)125的庫服務(wù)124的使用特點(diǎn)的應(yīng)用(具體來說,使用源ISA實(shí)現(xiàn)的部分)。ISA橋接層123也可以在本文中稱為進(jìn)程虛擬機(jī)(PVM)。
[0009]計(jì)算設(shè)備102可以是服務(wù)器、桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能電話、個(gè)人數(shù)字助理、游戲控制臺(tái)、因特網(wǎng)電器、移動(dòng)上網(wǎng)設(shè)備、蜂窩電話、移動(dòng)聯(lián)網(wǎng)設(shè)備、移動(dòng)計(jì)算節(jié)點(diǎn)或其他接設(shè)備。處理器和存儲(chǔ)器布置104表示寬范圍的處理器和存儲(chǔ)器布置,其包括具有多種執(zhí)行速度和功耗的單核或多核處理器和多種體系結(jié)構(gòu)(例如,具有一級(jí)或多級(jí)高速緩存)以及多種類型的存儲(chǔ)器的布置。在多種實(shí)施例中,GPU 106可以配置成為OS122提供視頻解碼和/或圖形處理功能,而顯示單元108可以配置成能夠在其上呈示多媒體內(nèi)容,(例如HD視頻)。相似地,GPU 106和顯示單元108旨在表示本領(lǐng)域中公知的寬范圍的圖形處理器和顯示元件。同樣地,網(wǎng)絡(luò)134旨在表示寬范圍的網(wǎng)絡(luò)。網(wǎng)絡(luò)134的示例可以包括有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)、局域網(wǎng)或廣域網(wǎng)、專用網(wǎng)絡(luò)或公用網(wǎng)絡(luò),包括因特網(wǎng)。OS 122(包括LIB服務(wù)124),定義LIB服務(wù)124的調(diào)用的應(yīng)用編程接口(API)除外,表示本領(lǐng)域中公知的寬范圍的OS元件。OS 122可以包括常規(guī)組件,如配置成管理存儲(chǔ)器資源、調(diào)度任務(wù)執(zhí)行等的內(nèi)核以及配置成管理多種設(shè)備資源的設(shè)備驅(qū)動(dòng)器。在多個(gè)實(shí)施例中,OS 122可以包括支持可選中間件121的虛擬機(jī)(例如安卓?應(yīng)用框架支持的安卓?虛擬機(jī))。除了定義LIB服務(wù)124的調(diào)用外,為了幫助調(diào)用應(yīng)用120的回調(diào)函數(shù)125,LIB服務(wù)124的API還可以包括應(yīng)用120的回調(diào)函數(shù)125的對(duì)應(yīng)存根(stub)和簽名。OS 122的示例可以包括Windows?操作系統(tǒng)、Linux?、安卓?*、10S?等。相似地,可選中間件121旨在表示寬范圍的中間件元件,包括但不限于ISA無關(guān)的中間件。中間件121的示例可以包括但不限于,安卓?應(yīng)用框架、Java?或其他應(yīng)用框架或ISA無關(guān)的執(zhí)行環(huán)境。同樣地,應(yīng)用120(包括回調(diào)功能125)旨在表示寬范圍的應(yīng)用,包括用于個(gè)人助理、生產(chǎn)力、社交網(wǎng)絡(luò)應(yīng)用、日程表、字處理、電子表格、Twitter?、Facebook?、瀏覽器等。
[0010]在圖2中,ISA橋接層123可以包括ISA橋接加載器202、源ISA模擬器204和目標(biāo)ISA LIB模擬器206 (其配置成提供多種運(yùn)行時(shí)特征和服務(wù),包括但不限于動(dòng)態(tài)綁定服務(wù))。源ISA模擬器204可以包括源ISA上下文212和二進(jìn)制解釋引擎215。源ISA模擬器204可以保持在源ISA上下文212中,源ISA體系結(jié)構(gòu)的執(zhí)行上下文包括但不限于例如,當(dāng)前執(zhí)行指令指針(IP)。二進(jìn)制解釋器引擎215可以配置成將源ISA指令解釋為目標(biāo)ISA指令。LIB模擬器206可以包括目標(biāo)ISA LIB上下文222、門224(例如,處理器用于控制對(duì)特權(quán)函數(shù)的訪問、更改數(shù)據(jù)段、切換表等的數(shù)據(jù)結(jié)構(gòu))以及封裝器函數(shù)226。LIB模擬器206可以保持在目標(biāo)ISA庫(LIB)上下文222、目標(biāo)ISA LIB 124的執(zhí)行上下文中。在多種實(shí)施例中,對(duì)于每個(gè)LIB服務(wù)124 (例如,函數(shù))可以有對(duì)應(yīng)的一對(duì)門224和封裝器函數(shù)226,其中該對(duì)配置成幫助應(yīng)用120跨源和目標(biāo)ISA體系結(jié)構(gòu)調(diào)用LIB服務(wù)124。相似地,每個(gè)回調(diào)函數(shù)125可以有對(duì)應(yīng)的一對(duì)門224和封裝器函數(shù)226,其配置成幫助LIB服務(wù)124跨源和目標(biāo)ISA體系結(jié)構(gòu)對(duì)回調(diào)函數(shù)125進(jìn)行回調(diào)。
[0011]ISA橋接加載器202可以是配置成將應(yīng)用120加載到存儲(chǔ)器中的實(shí)用工具。在加載應(yīng)用120時(shí),ISA橋接加載器202可以配置成將與源應(yīng)用120所對(duì)應(yīng)的LIB關(guān)聯(lián)的應(yīng)用120的任何未解析的符號(hào)126。符號(hào)可以是寄存器的標(biāo)識(shí)符(例如,文本字符串)、存儲(chǔ)器地址等。ISA橋接加載器202可以配置成將符號(hào)修改(到回調(diào)函數(shù)125),并將回調(diào)函數(shù)125的符號(hào)關(guān)聯(lián)到對(duì)應(yīng)封裝器函數(shù)226。ISA橋接加載器202可以米用多種公知方式的任何一種方式從OS 122 (或從中間件121 (如果采用的話))加載器獲得加載的控制,這些公知的方式包括在OS 122或中間件121支持時(shí),使用基于二進(jìn)制格式的控制轉(zhuǎn)移或加載/預(yù)加載變量。在其他實(shí)施例中,可以修改OS 122 (或中間件121 (如果采用的話))的加載器以幫助將控制轉(zhuǎn)移到ISA橋接加載器202。
[0012]源ISA模擬器204可以在目標(biāo)ISA 122的“頂層”上模擬源ISA 120〃以運(yùn)行源ISA應(yīng)用120。正如先前描述的,源ISA模擬器204可以配置成保持源ISA執(zhí)行上下文212。例如,源ISA模擬器204可以配置成在應(yīng)用120的執(zhí)行期間跟蹤源ISA IP。當(dāng)應(yīng)用120嘗試調(diào)用LIB服務(wù)124時(shí),源ISA模擬器204可以在監(jiān)視源ISA執(zhí)行,并且繼而可以調(diào)用并轉(zhuǎn)移執(zhí)行控制到LIB模擬器206。在多種實(shí)施例中,源ISA模擬器204可以調(diào)用并轉(zhuǎn)移執(zhí)行控制到LIB服務(wù)124的對(duì)應(yīng)門224 (下文予以進(jìn)一步論述)。
[0013]LIB模擬器206可以通過映射到目標(biāo)LIB 124來模擬源LIB(或任何其他LIB)。再有,LIB模擬器206可以配置成保持目標(biāo)ISA LIB (LIB)執(zhí)行上下文222。與LIB服務(wù)124對(duì)應(yīng)的門224可以配置成分別地將對(duì)LIB服務(wù)124的調(diào)用重定向到對(duì)應(yīng)封裝器函數(shù)226,這些對(duì)應(yīng)封裝器函數(shù)226處理和設(shè)置這些調(diào)用。而與回調(diào)函數(shù)125對(duì)應(yīng)的門224可以配置成分別地將回調(diào)的執(zhí)行控制從對(duì)應(yīng)封裝器函數(shù)226轉(zhuǎn)移到源ISA模擬器204。在多種實(shí)施例中,每個(gè)門224可以包括配置成實(shí)施向?qū)?yīng)封裝器函數(shù)226或源ISA模擬器204重定向的指令。在多種實(shí)施例中,每個(gè)門224的指令可以是配置成與二進(jìn)制解釋引擎215協(xié)作以實(shí)施執(zhí)行控制重定向的源ISA指令。在多種實(shí)施例中,每個(gè)門224還可以包括標(biāo)識(shí)對(duì)應(yīng)封裝器函數(shù)226的指示符。
[0014]在多種實(shí)施例中,為了處理和設(shè)置對(duì)對(duì)應(yīng)的LIB服務(wù)124的調(diào)用,與LIB服務(wù)124對(duì)應(yīng)的每個(gè)封裝器函數(shù)226可以配置成從源ISA上下文212檢索調(diào)用的關(guān)聯(lián)的參數(shù)值,將調(diào)用從源ISA應(yīng)用二進(jìn)制接口(ABI)格式轉(zhuǎn)換成目標(biāo)ISA ABI格式,并將轉(zhuǎn)換的調(diào)用附帶參數(shù)值保存在LIB上下文222中。在回調(diào)到回調(diào)函數(shù)125時(shí),可以將執(zhí)行控制轉(zhuǎn)移到回調(diào)函數(shù)125的對(duì)應(yīng)封裝器函數(shù)226。在多種實(shí)施例中,為了處理和設(shè)置對(duì)應(yīng)用120的回調(diào)函數(shù)125的回調(diào),與回調(diào)函數(shù)125對(duì)應(yīng)的每個(gè)封裝器函數(shù)226可以配置成將回調(diào)從目標(biāo)ISA ABI格式轉(zhuǎn)換成源ISA ABI格式,連接回調(diào)的關(guān)聯(lián)的參數(shù)值,并將轉(zhuǎn)換的回調(diào)附帶參數(shù)值保存在源ISA上下文212中。與回調(diào)函數(shù)125對(duì)應(yīng)的門224可以配置成利用(封裝器函數(shù)226準(zhǔn)備且與回調(diào)函數(shù)125對(duì)應(yīng)的)源ISA上下文212來調(diào)用源ISA模擬器204以便模擬源ISA格式在目標(biāo)ISA 104中呈示的回調(diào)函數(shù)。
[0015]圖3-4圖示根據(jù)本發(fā)明實(shí)施例的具有回調(diào)的示例ISA橋接方法。方法300可以包括兩個(gè)部分,用于將調(diào)用從(源ISA的)應(yīng)用120橋接到(目標(biāo)ISA的)LIB服務(wù)124的部分300a,以及用于將回調(diào)從(目標(biāo)ISA的)LIB服務(wù)124橋接到(源ISA的)應(yīng)用120的回調(diào)函數(shù)125的部分300b。部分300a和300b可以彼此獨(dú)立地來實(shí)現(xiàn)。再有,多種實(shí)施例無需關(guān)心封裝器函數(shù)和/或回調(diào)函數(shù),而是可以將重點(diǎn)放在本文描述的實(shí)施例的其他方面。
[0016]在圖3中,在框302處,ISA橋接加載器202可以加載源應(yīng)用120。在加載應(yīng)用120時(shí),ISA橋接加載器202可以解析至LIB服務(wù)124的符號(hào)名稱或引用,并修改回調(diào)函數(shù)125的符號(hào)名稱或引用,正如早前描述。在框304處,在執(zhí)行過程中,應(yīng)用120可以調(diào)用LIB服務(wù)124的其中之一。在多種實(shí)施例中,應(yīng)用120可能需要被調(diào)用的LIB服務(wù)124向其回調(diào)函數(shù)125的其中之一回調(diào)。在多個(gè)實(shí)施例中,應(yīng)用120可以作為對(duì)被調(diào)用的LIB服務(wù)124的調(diào)用的一部分包括至回調(diào)函數(shù)125的指針。并不將該指針傳遞到回調(diào)函數(shù)125,而是LIB服務(wù)124的封裝器函數(shù)226可以傳遞回調(diào)函數(shù)125的對(duì)應(yīng)封裝器函數(shù)226。在框306處,源ISA模擬器204在(例如通過監(jiān)視源ISA IP并確定IP正在引用目標(biāo)LIB的地址范圍內(nèi)的地址)檢測(cè)到調(diào)用時(shí),源ISA模擬器204可以將該調(diào)用重定向到LIB模擬器206中的LIB服務(wù)124的對(duì)應(yīng)門224并將執(zhí)行控制轉(zhuǎn)移到LIB模擬器206中的LIB服務(wù)124的對(duì)應(yīng)門224。在框308處,門224中適合的門還可以將該調(diào)用重定向到被調(diào)用的LIB服務(wù)124的對(duì)應(yīng)封裝器函數(shù)226,并將執(zhí)行控制轉(zhuǎn)移到被調(diào)用的LIB服務(wù)124的對(duì)應(yīng)封裝器函數(shù)226。在框310處,被調(diào)用的LIB服務(wù)124的封裝器函數(shù)226可以處理該調(diào)用,并在LIB上下文222中設(shè)置該調(diào)用以供被調(diào)用的LIB服務(wù)124執(zhí)行,正如早前描述的。在框312處,被調(diào)用的LIB服務(wù)124的門224可以從LIB上下文222收集該調(diào)用的返回值,更新源ISA上下文212,并將執(zhí)行控制轉(zhuǎn)移到源ISA模擬器202。
[0017]在圖4中框404處(部分300b),在被調(diào)用的LIB服務(wù)124的過程中或完成時(shí),LIB服務(wù)124可以(例如通過調(diào)用應(yīng)用120傳遞的回調(diào)指針來)回調(diào)應(yīng)用120的回調(diào)函數(shù)125。在框406處,可以根據(jù)修改的引用,將執(zhí)行控制轉(zhuǎn)移到回調(diào)函數(shù)125的對(duì)應(yīng)封裝器函數(shù)226。在框408處,封裝器函數(shù)226可以處理回調(diào),在源ISA上下文212中設(shè)置回調(diào)以供應(yīng)用120的回調(diào)函數(shù)125執(zhí)行,正如早前描述的,以及此后將執(zhí)行控制轉(zhuǎn)移到回調(diào)函數(shù)125的對(duì)應(yīng)門224。在框410處,與回調(diào)函數(shù)125對(duì)應(yīng)的門224可以將回調(diào)重定向到具有封裝器函數(shù)226準(zhǔn)備的源ISA上下文的ISA模擬器,并將執(zhí)行控制轉(zhuǎn)移到具有封裝器函數(shù)226準(zhǔn)備的源ISA上下文的ISA模擬器。在框412處,源ISA模擬器204可以根據(jù)源ISA上下文內(nèi)的IP來啟動(dòng)回調(diào)函數(shù)的模擬。在框414處,回調(diào)函數(shù)125的門224可以從源ISA上下文212收集回調(diào)的返回值,更新LIB上下文222,并將執(zhí)行控制轉(zhuǎn)移到LIB模擬器204以將回調(diào)函數(shù)125的返回值返回到LIB服務(wù)124。
[0018]本發(fā)明的實(shí)施例可以與KF結(jié)合來利用模擬環(huán)境,如圖1-4的實(shí)施例中任一個(gè)實(shí)施例,以便提供對(duì)內(nèi)核數(shù)據(jù)的高效訪問同時(shí)仍提供對(duì)其他函數(shù)的模擬。
[0019]圖5包括ISA模擬器504,模擬器504又包括解釋器530、解釋管理器535和執(zhí)行器545。解釋器530將源ISA指令120解釋成目標(biāo)ISA指令122。當(dāng)解釋器530解釋指令時(shí),解釋管理器535將這些解釋置于解釋池560中,其中在解釋索引表555中為這些解釋建立索引(例如,解釋池560中的每個(gè)解釋按其項(xiàng)地址建立索引)。操作中,執(zhí)行器545可以通過利用給定IP地址來檢索解釋,然后執(zhí)行所解釋的指令以遵循應(yīng)用120的執(zhí)行流程。正如上文圖1-4的多種實(shí)施例中描述的,可以通過LIB模擬器506來模擬OS服務(wù)。當(dāng)應(yīng)用545執(zhí)行調(diào)用源ISA 120中的LIB API的指令時(shí),執(zhí)行器545將控制轉(zhuǎn)移到LIB模擬器506,LIB模擬器506然后模擬OS服務(wù)。可以如上文結(jié)合OS使用那樣,結(jié)合KF使用類似的方法。但是,以此方式處理KF可能導(dǎo)致上下文切換,因?yàn)镵F嘗試訪問特權(quán)內(nèi)核區(qū)域。此上下文切換可以導(dǎo)致開銷。而且,因?yàn)橥ㄟ^其IP來識(shí)別KF,所以解釋器530可能需要跟蹤所有KF IP以便識(shí)別KF并執(zhí)行上下文切換。
[0020]但是,圖5在一個(gè)實(shí)施例中包括KF模擬器540,其提供對(duì)內(nèi)核數(shù)據(jù)的高效訪問同時(shí)仍提供用于其他函數(shù)的模擬。KF模擬器540包括一組預(yù)構(gòu)建的KF解釋541和初始化器542。預(yù)構(gòu)建的解釋器541可以利用內(nèi)核函數(shù)的語義來構(gòu)造。初始化器542與解釋管理器535 一起工作以確保預(yù)構(gòu)建的KF解釋541是可通過常規(guī)執(zhí)行器流程來檢索的。
[0021]例如,在運(yùn)行時(shí)(解釋器管理器535將解釋索引表555初始化并將解釋池560初始化之后),初始化器542將一個(gè)或多個(gè)預(yù)構(gòu)建的KF解釋器541 (例如,KF解釋A、B、C)插入到解釋池560 (稍后可以不一定是KF解釋的解釋E、F、G、H、I加載解釋池560),并相應(yīng)地更新解釋索引表555。然后,當(dāng)執(zhí)行器545利用內(nèi)核函數(shù)地址541 (例如,與任何KF解釋A、B、C對(duì)應(yīng)的地址)達(dá)到IP時(shí),執(zhí)行器545查詢解釋管理器535,并從表555和池560獲取對(duì)應(yīng)的預(yù)構(gòu)建的解釋。然后,執(zhí)行器545執(zhí)行解釋,其模擬內(nèi)核函數(shù)。
[0022]利用此實(shí)施例,不會(huì)產(chǎn)生解釋索弓丨表未命中(例如,因?yàn)槌跏蓟?42較早的動(dòng)作,那些KF解釋已經(jīng)存在于池560/表555中,不耗費(fèi)時(shí)間來查找未創(chuàng)建且因此不在池560/表555中的KF解釋)。再者,此類實(shí)施例不再需要解釋器530跟蹤KF的IP。還免去執(zhí)行器/解釋器上下文切換。例如,對(duì)于KF,由于直接調(diào)用表555和池560中的KF,所以避開LIB模擬器506。上文任何優(yōu)點(diǎn)都促成時(shí)間模板的KF的效率提高。
[0023]由此,多個(gè)實(shí)施例解決了若干缺點(diǎn)。例如,當(dāng)處理KF以外的代碼時(shí),解釋器可以從給定的指令指針開始,從該指令指針?biāo)赶虻拇鎯?chǔ)器讀取指令,將指令解碼,然后生成目標(biāo)ISA的指令。解釋器然后移到下一個(gè)指令指針,并重復(fù)該過程。當(dāng)模擬此類應(yīng)用(例如,使用結(jié)合圖2描述的模擬系統(tǒng))時(shí),將不從內(nèi)核地址讀取該應(yīng)用。相反,該應(yīng)用使用內(nèi)核API來訪問內(nèi)核功能性。但是,在一些平臺(tái)的情況中,內(nèi)核地址范圍中的一些KF不受保護(hù),并且直接暴露于應(yīng)用。在沒有模擬的情況中,平臺(tái)可以包含其目標(biāo)是內(nèi)核地址的調(diào)用指令。因?yàn)镵F允許訪問內(nèi)核地址,所以這不產(chǎn)生問題。但是,在具有模擬的情況中,可能產(chǎn)生使用相異的源和目標(biāo)ISA的問題。例如,目標(biāo)平臺(tái)可能不以源ISA預(yù)期的方式將KF暴露于應(yīng)用。如果模擬器(例如,PVM)內(nèi)的解釋器嘗試讀取指令指針(遵循內(nèi)核函數(shù)調(diào)用),則解釋器可能無法成功,因?yàn)槟繕?biāo)平臺(tái)并未與源ISA所認(rèn)為的相同來處理KF (例如,KF的存儲(chǔ)器地址位置被改變或KF另外以不同的方式實(shí)現(xiàn)的)。由此,KF是可以使用上文描述的實(shí)施例(例如KF函數(shù)模擬器540)適當(dāng)?shù)靥幚淼奶厥鈱?shí)例。在一個(gè)實(shí)施例中,解釋器識(shí)別KF地址并以不同于常規(guī)非KF函數(shù)的方式執(zhí)行對(duì)應(yīng)解釋。例如,對(duì)應(yīng)解釋可以使用預(yù)構(gòu)建的解釋,如上文描述的。
[0024]在實(shí)施例中,解釋管理器535可以“鏈接”或以其他方式將前一個(gè)解釋關(guān)聯(lián)到后續(xù)解釋,所以前一個(gè)解釋的執(zhí)行將被傳遞到后續(xù)解釋而無需查詢解釋索引表。此優(yōu)化能夠?qū)崿F(xiàn),因?yàn)閷?duì)預(yù)構(gòu)建的解釋541進(jìn)行了準(zhǔn)備。再者,在實(shí)施例中,將預(yù)構(gòu)建的解釋固定在解釋池560中,所以垃圾收集不會(huì)移除這些解釋。
[0025]返回到圖1和圖2以及上文論述的實(shí)施例,當(dāng)應(yīng)用120調(diào)用LIB(例如,源LIB)時(shí),(例如通過門224)將呼叫“映射到”目標(biāo)LIB 124,并如下在目標(biāo)ISA 122上運(yùn)行。加載器202加載應(yīng)用二進(jìn)制120,并解析應(yīng)用120中的未定義的符號(hào)。ISA模擬器204可以在目標(biāo)ISA 122的“頂層上”模擬源ISA 120以運(yùn)行應(yīng)用120。LIB模擬器206通過映射到目標(biāo)LIB124來模擬源LIB。
[0026]圖6包括混合模擬的實(shí)施例。一個(gè)實(shí)施例部分地解釋源LIB和部分地映射到目標(biāo)LIB。例如,加載器602從源LIB 630的源LIB 631加載一些應(yīng)用120函數(shù)以及通過解釋以及通過門224映射(例如,如上文結(jié)合圖1-4描述的)到目標(biāo)LIB 624來模擬來自源LIB 631的其他應(yīng)用120。
[0027]嘗試使用此類混合實(shí)施例對(duì)于如下情況可能有益,例如當(dāng)目標(biāo)LIB 635的一些功能性不可用于模擬目的或目標(biāo)LIB 635不包含與源LIB 630完全相同的語義(由此使模擬困難)。在此類情況中,避免通過目標(biāo)LIB6 635映射(而是直接解釋該功能性)可能是有益的。再者,混合模擬在調(diào)用(例如調(diào)用)源LIB 630函數(shù)且解釋函數(shù)所花的時(shí)間少于將相同的函數(shù)映射到目標(biāo)LIB 635并模擬該函數(shù)所引入的開銷的情況中可以提高應(yīng)用120性能。
[0028]但是,混合實(shí)施例的簡(jiǎn)單實(shí)現(xiàn)可能產(chǎn)生難題。例如,加載器602可能加載源LIB630中先前由此類加載的開發(fā)者指定的特定庫(即,用于直接解釋而非用于通過目標(biāo)LIB635映射的)。此類庫可能包含由于映射開銷而直接解釋所花時(shí)間少于模擬和通過目標(biāo)LIB635映射的一些函數(shù)(例如,由于門224的使用導(dǎo)致的傳輸上的延遲)。但是,當(dāng)加載源ISALIB 631 (以及可能地從LIB 631、671、672等中進(jìn)行選擇)時(shí),這樣做可能造成質(zhì)這樣的情形:同一個(gè)LIB有兩個(gè)實(shí)例(一個(gè)在源ISA中以及另一個(gè)在目標(biāo)ISA中)。源ISA LIB 631的加載還帶入全局的額外數(shù)據(jù)副本。(“全局”是其值能夠被程序中位于直接庫外的狀態(tài)或與該全局直接相關(guān)的例行程序訪問和修改的全局變量。)全局的這些額外副本可能導(dǎo)致源ISA 二進(jìn)制631的不正確的結(jié)果,因?yàn)槠鋽?shù)據(jù)值與目標(biāo)ISA 二進(jìn)制624中的最初數(shù)據(jù)不同步。例如,一個(gè)全局(G)被兩個(gè)函數(shù)(Fl和F2)訪問。如果Fl要被解釋,則Fl將使用位于源ISA庫631中的G副本。如果F2要被映射,則F2將使用位于目標(biāo)ISA庫624中的G副本。這樣,如果Fl向源ISA庫631中的G副本寫入,則此更改對(duì)于F2將是不可見的(F2使用位于目標(biāo)ISA庫624中的G副本)。如果F2對(duì)其相應(yīng)的G副本進(jìn)行更改,情況同樣如此(所以對(duì)G的更改將對(duì)于Fl是不可見的)。
[0029]為了解決此潛在問題,圖6提供用于同時(shí)包含源ISA LIB 631和目標(biāo)ISA LIB 624的混合環(huán)境(例如,一些調(diào)用從源庫直接解釋,而另一些調(diào)用從目標(biāo)庫模擬)的實(shí)施例。目標(biāo)LIB 624與源ISA LIB 631共享一些或所有全局(B卩,全局637)(參見箭頭641、642以及匿名全局634、638之間沒有對(duì)應(yīng)箭頭)。更確切地來說,全局有兩種類型:“命名”全局637和“匿名”全局634和638。(命名全局具有與其關(guān)聯(lián)的符號(hào),所以當(dāng)前庫外的程序模塊能夠引用它們。庫代碼總是指定對(duì)應(yīng)的符號(hào)來引用命名全局。)當(dāng)加載源ISA庫時(shí),加載器將命名全局的符號(hào)解析為目標(biāo)ISA庫的存儲(chǔ)器地址。但是,匿名全局634、638沒有關(guān)聯(lián)的符號(hào)(例如,匿名全局可能在C語言程序中包含靜態(tài)全局)。在將代碼編譯之后,利用具有當(dāng)前指令點(diǎn)的偏移量形式的地址直接訪問該全局。
[0030]圖6包括“NoTrans分析器”640,這是分析源ISA 二進(jìn)制120并標(biāo)識(shí)其中不要解釋的所有匿名全局638的離線邏輯工具。如果來自應(yīng)用120的函數(shù)使用匿名全局,則該函數(shù)被收集在稱為“NoTrans函數(shù)集”645的函數(shù)集中(即,不要解釋而是將通過例如門224來映射和模擬的一個(gè)函數(shù)集合)。如果函數(shù)調(diào)用NoTrans函數(shù)集645中的函數(shù),則該函數(shù)本身被收集在NoTrans函數(shù)集645中。NoTrans函數(shù)集645中的函數(shù)不允許被解釋(而是被映射)。
[0031]圖7包括有關(guān)圖6的加載器602的實(shí)施例。加載器702將應(yīng)用720與源ISA庫731 (用于函數(shù)的直接解釋)鏈接,并使用來自ISA門752的門(用于函數(shù)的映射和模擬)間接地映射到目標(biāo)ISA庫724。例如,加載器720對(duì)應(yīng)于調(diào)度表703,其確定如何鏈接每個(gè)未定義符號(hào)。調(diào)度表703可以由開發(fā)者準(zhǔn)備。例如,開發(fā)者可以確定需要解釋的某些符號(hào),如符號(hào)A、E、C是由此指定為用于從源ISA庫731解釋的那些符號(hào)。但是,開發(fā)者可以確定其他符號(hào),如符號(hào)B、D、F、G、H、I更適于映射,并且相應(yīng)地指定為用于至目標(biāo)ISA庫724的間接映射。在加載器702加載源ISA應(yīng)用于720之后,加載器702尋址未定義符號(hào),并嘗試通過將該符號(hào)與其他庫的定義符號(hào)關(guān)聯(lián)來解析它們。對(duì)于每個(gè)符號(hào),如果符號(hào)的對(duì)應(yīng)API要解釋(調(diào)度表703中指定為“要解釋”的那些,如符號(hào)A、E、C),則將該符號(hào)鏈接到源ISA庫731暴露的符號(hào)(參見箭頭797)。如果符號(hào)要映射(根據(jù)圖7的NoTrans函數(shù)集,調(diào)度表6中指定為“不要解釋”的那些),則將其鏈接到ISA門752 (參見箭頭798),ISA門752與目標(biāo)ISA庫724暴露的符號(hào)關(guān)聯(lián)。ISA門752可以與ISA模擬器和LIB模擬器一起工作(例如,如結(jié)合圖1-4解決的),并將源ISA應(yīng)用120中的函數(shù)調(diào)用映射到目標(biāo)LIB 724中的函數(shù)實(shí)現(xiàn)(參見箭頭799)。
[0032]為了容易地理解,結(jié)合一個(gè)ISA橋接層123將一個(gè)源ISA橋接到一個(gè)目標(biāo)ISA描述了多種實(shí)施例。但是,本公開并不局限于此。在多個(gè)實(shí)施例中,多個(gè)ISA橋接層123可以將多個(gè)源ISA橋接到一個(gè)或多個(gè)目標(biāo)ISA。在這些實(shí)施例的其中一些中,可以附加地提供調(diào)度器以檢測(cè)必需的橋接,并且將一個(gè)或多個(gè)適合的ISA橋接層123實(shí)例化以提供必需的ISA橋接。在其他實(shí)施例中,用于橋接的一些資源(例如封裝器函數(shù)的其中一些)可以位于ISA橋接層123可訪問的遠(yuǎn)程服務(wù)器上。再者,為了易于理解,將ISA橋接層123描述為配置成將源ISA橋接到目標(biāo)ISA。但是,對(duì)于多種應(yīng)用,可以采用ISA橋接層123來橋接本身同一個(gè)的源ISA和目標(biāo)ISA。在此類應(yīng)用中,可能無需所描述的元件的其中一個(gè)或多個(gè)(例如二進(jìn)制解釋引擎215)。此類應(yīng)用的示例可以為計(jì)算設(shè)備102提供增強(qiáng)型工作安全性。其他應(yīng)用同樣可以從此類橋接獲益。
[0033]實(shí)施例可以采用代碼來實(shí)現(xiàn),并且可以存儲(chǔ)在其上存儲(chǔ)有指令的存儲(chǔ)介質(zhì)上,這些指令能夠用于將系統(tǒng)編程來執(zhí)行這些指令。該存儲(chǔ)介質(zhì)可以包括但不限于任何類型的存儲(chǔ)盤,包括軟盤、光盤、光盤、固態(tài)硬盤(SSD)、壓縮光盤只讀存儲(chǔ)器(⑶-ROM)、可寫壓縮光盤(⑶-RW)和磁光盤;半導(dǎo)體裝置,如只讀存儲(chǔ)器(ROM)、如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)的隨機(jī)存取存儲(chǔ)器(RAM)、可擦寫可編程只讀存儲(chǔ)器(EPR0M)、閃存存儲(chǔ)器、電可擦寫可編程只讀存儲(chǔ)器(EEPR0M)、磁卡或光卡;或適于存儲(chǔ)電子指令的任何其他類型的介質(zhì)。本發(fā)明的實(shí)施例在本文中可參考如指令、函數(shù)、過程、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序、配置設(shè)置、代碼等來描述。當(dāng)該數(shù)據(jù)被機(jī)器訪問時(shí),該機(jī)器可以通過執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類型、建立低級(jí)硬件上下文和/或執(zhí)行其他操作來進(jìn)行響應(yīng),正如本文更詳細(xì)描述的??梢詫⒃摂?shù)據(jù)存儲(chǔ)在易失性和/或非易失性數(shù)據(jù)存儲(chǔ)裝置中。對(duì)本公開來說,術(shù)語“代碼”或“程序”涵蓋寬范圍的組件和構(gòu)造,包括應(yīng)用、驅(qū)動(dòng)程序、進(jìn)程、例行程序、方法、模塊和子程序。由此,術(shù)語“代碼”或“程序”可以用于指在被處理系統(tǒng)執(zhí)行以執(zhí)行一個(gè)或多個(gè)期望的操作的任何指令集合。此外,備選實(shí)施例可以包括使用比所披露的操作全部更少的過程、使用附加操作的過程、按不同順序使用相同操作的過程以及其中將本文披露的個(gè)體操作組合、拆分或以其他方式改變的過程。在一個(gè)實(shí)施例中,使用術(shù)語控制邏輯包括硬件,如晶體管、寄存器或其他硬件,如可編程邏輯裝置。但是,在另一個(gè)實(shí)施例中,邏輯還包括軟件或代碼??梢詫⒋祟愡壿嬇c硬件集成,如固件或微碼。處理器或控制器可以包括要表示本領(lǐng)域中公知的范圍廣的多種控制邏輯的任何一種的控制邏輯,并且因此,可以較好地作為微處理器、微控制器、場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)、可編程邏輯裝置(PLD)等。
[0034]參考圖1,對(duì)于一個(gè)實(shí)施例,可以將處理器和存儲(chǔ)器布置104的處理器中至少一個(gè)處理器與配置成實(shí)施圖3-7的方法和實(shí)施例的操作(或其子集)的ISA橋接層123的計(jì)算邏輯(或其子集)封裝在一起。對(duì)于一個(gè)實(shí)施例,可以將處理器和存儲(chǔ)器布置104的處理器中至少一個(gè)處理器與配置成實(shí)施圖3 -7的操作(或其子集)和實(shí)施例的ISA橋接層123的計(jì)算邏輯(或其子集)封裝在一起以形成封裝中系統(tǒng)(SiP)。對(duì)于一個(gè)實(shí)施例,可以將處理器和存儲(chǔ)器布置104的處理器中至少一個(gè)處理器與配置成實(shí)施圖3 -7的操作(或其子集)和實(shí)施例的ISA橋接層123的計(jì)算邏輯(或其子集)集成在同一個(gè)晶片上。對(duì)于一個(gè)實(shí)施例,可以將處理器和存儲(chǔ)器布置104的處理器的至少其中之一與ISA橋接層123的計(jì)算邏輯(或其子集)集成在同一個(gè)晶片上。對(duì)于至少一個(gè)實(shí)施例,該SoC可以被用于桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、智能電話、計(jì)算平板設(shè)備、因特網(wǎng)電器、個(gè)人數(shù)字助理(PDA)、便攜式游戲播放設(shè)備、服務(wù)器或其他計(jì)算設(shè)備。
[0035]一個(gè)實(shí)施例包括一種方法,該方法被至少一個(gè)處理器執(zhí)行,其包括:加載具有源指令集體系結(jié)構(gòu)(ISA)的應(yīng)用;將第一源指令的第一解釋存儲(chǔ)在至少一個(gè)存儲(chǔ)器,該第一解釋是從源ISA到目標(biāo)ISA ;在存儲(chǔ)第一解釋之后,(a)檢索存儲(chǔ)的第一解釋并執(zhí)行該解釋,以及(b)未成功嘗試找到第二源指令的第二解釋,以及此后,確定第二解釋并執(zhí)行第二解釋。第一源指令可以包括內(nèi)核函數(shù)(KF)。存儲(chǔ)第一解釋可以包括以具有用于至少一個(gè)存儲(chǔ)器中存儲(chǔ)的解釋的索引的格式來存儲(chǔ)第一解釋??梢詫⒋鎯?chǔ)的第一解釋固定以避免從至少一個(gè)存儲(chǔ)器移除第一解釋。第二解釋可以在應(yīng)用的運(yùn)行時(shí)期間來確定。在一個(gè)實(shí)施例中,從不模擬第一源指令以及為目標(biāo)ISA模擬第二源指令。響應(yīng)用戶選擇,一種方法可以包括指定用于解釋的第一未定義符號(hào)以及指定用于模擬的第二未定義符號(hào)。一個(gè)實(shí)施例包括解釋第一未定義符號(hào)而不模擬以及模擬第二未定義符號(hào)。第一和第二未定義符號(hào)分別地對(duì)應(yīng)于第一和第二匿名全局變量。一個(gè)實(shí)施例可以包括通過指向目標(biāo)ISA庫的門來模擬第二未定義符號(hào)。一個(gè)實(shí)施例可以包括與源ISA庫共享目標(biāo)ISA庫中存儲(chǔ)的命名全局。一個(gè)實(shí)施例可以包括通過解釋來解析第一未定義符號(hào)而不模擬,以及通過模擬解析來第二未定義符號(hào)。
[0036]一個(gè)實(shí)施例可以包括應(yīng)用,其具有存儲(chǔ)在至少一個(gè)存儲(chǔ)器中的源指令集體系結(jié)構(gòu)(ISA);至少一個(gè)處理器,其具有目標(biāo)ISA且耦合到至少一個(gè)存儲(chǔ)器,用于執(zhí)行包括如下的操作:加載應(yīng)用;將第一源指令的第一解釋存儲(chǔ)在至少一個(gè)存儲(chǔ)器,該第一解釋是從源ISA到目標(biāo)ISA ;在存儲(chǔ)第一解釋之后,(a)檢索存儲(chǔ)的第一解釋并執(zhí)行該解釋,以及(b)未成功嘗試找到第二源指令的第二解釋,以及此后,確定第二解釋并執(zhí)行第二解釋。第一源指令可以包括內(nèi)核函數(shù)(KF)。第二解釋可以在應(yīng)用的運(yùn)行時(shí)期間來確定。實(shí)施例可包括解釋第一未定義符號(hào)而不模擬以及模擬第二未定義符號(hào)。
[0037]還將認(rèn)識(shí)到,本公開可以是針對(duì)為計(jì)算設(shè)備提供增強(qiáng)型安全性的技術(shù)問題的解決方案。本公開的優(yōu)點(diǎn)可以包括但不限于所提供的隔離的魯棒性。
【權(quán)利要求】
1.一種至少一個(gè)處理器執(zhí)行的方法,其包括: 加載具有源指令集體系結(jié)構(gòu)(ISA)的應(yīng)用; 將第一源指令的第一解釋存儲(chǔ)在至少一個(gè)存儲(chǔ)器,所述第一解釋是從所述源ISA到目標(biāo) ISA ; 在存儲(chǔ)所述第一解釋之后,Ca)檢索存儲(chǔ)的第一解釋并執(zhí)行所述解釋,以及(b)未成功嘗試找到第二源指令的第二解釋,以及此后,確定所述第二解釋并執(zhí)行所述第二解釋。
2.如權(quán)利要求1所述的方法,其中所述第一源指令包括內(nèi)核函數(shù)(KF)。
3.如權(quán)利要求2所述的方法,其中存儲(chǔ)所述第一解釋包括以具有用于所述至少一個(gè)存儲(chǔ)器中存儲(chǔ)的解釋的索引的格式來存儲(chǔ)所述第一解釋。
4.如權(quán)利要求2所述的方法,其中將所存儲(chǔ)的第一解釋固定以避免從所述至少一個(gè)存儲(chǔ)器移除所述第一解釋。
5.如權(quán)利要求2所述的方法,其中所述第二解釋在所述應(yīng)用的運(yùn)行時(shí)期間來確定。
6.如權(quán)利要求2所述的方法,其中從不模擬所述第一源指令以及為所述目標(biāo)ISA模擬所述第二源指令。
7.如權(quán)利要求1所述的方法,其包括響應(yīng)用戶選擇,指定用于解釋的第一未定義符號(hào)以及指定用于模擬的第二未定義符號(hào)。
8.如權(quán)利要求1所述的方法,其包括解釋第一未定義符號(hào)而不模擬以及模擬第二未定義符號(hào)。
9.如權(quán)利要求8所述的方法,其中所述第一和第二未定義符號(hào)分別地對(duì)應(yīng)于第一和第二匿名全局變量。
10.如權(quán)利要求8所述的方法,其包括通過指向目標(biāo)ISA庫的門來模擬第二未定義符號(hào)。
11.如權(quán)利要求8所述的方法,其包括與源ISA庫共享目標(biāo)ISA庫中存儲(chǔ)的命名全局。
12.如權(quán)利要求1所述的方法,其包括通過解釋來解析第一未定義符號(hào)而不模擬,以及通過模擬解析來第二未定義符號(hào)。
13.至少一個(gè)機(jī)器可讀介質(zhì),其包括:多個(gè)指令,響應(yīng)所述多個(gè)指令在計(jì)算設(shè)備上被執(zhí)行,促使所述計(jì)算設(shè)備執(zhí)行如權(quán)利要求1至12中任一項(xiàng)所述的方法。
14.一種通信裝置,其布置成執(zhí)行如權(quán)利要求1-12中任一項(xiàng)所述的方法。
15.一種設(shè)備,其包括:用于執(zhí)行如權(quán)利要求1至12中任一項(xiàng)的部件。
16.—種設(shè)備,其包括: 應(yīng)用,所述應(yīng)用具有存儲(chǔ)在至少一個(gè)存儲(chǔ)器中的源指令集體系結(jié)構(gòu)(ISA); 至少一個(gè)處理器,所述至少一個(gè)處理器具有目標(biāo)ISA且耦合到所述至少一個(gè)存儲(chǔ)器,用于執(zhí)行包括如下的操作: 加載所述應(yīng)用; 將第一源指令的第一解釋存儲(chǔ)在所述至少一個(gè)存儲(chǔ)器,所述第一解釋是從所述源ISA到目標(biāo)ISA ; 在存儲(chǔ)所述第一解釋之后,Ca)檢索存儲(chǔ)的第一解釋并執(zhí)行所述解釋,以及(b)未成功嘗試找到第二源指令的第二解釋,以及此后,確定所述第二解釋并執(zhí)行所述第二解釋。
17.如權(quán)利要求16所述的設(shè)備,其中所述第一源指令包括內(nèi)核函數(shù)(KF)。
18.如權(quán)利要求17所述的設(shè)備,其中所述第二解釋在所述應(yīng)用的運(yùn)行時(shí)期間來確定。
19.如權(quán)利要求17所述的設(shè)備,其中所述操作包括解釋第一未定義符號(hào)而不模擬以及模擬第二未定義符號(hào)。
20.一種包括如權(quán)利要求16至19所述的至少一個(gè)處理器的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)還包括顯示器。
【文檔編號(hào)】G06F9/45GK104205049SQ201280071658
【公開日】2014年12月10日 申請(qǐng)日期:2012年3月22日 優(yōu)先權(quán)日:2012年3月22日
【發(fā)明者】X.林, Y.金, Y.吳, J.李, L.林, X施 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
丰台区| 开原市| 兴义市| 丰县| 灵石县| 宁陕县| 沙坪坝区| 驻马店市| 化德县| 沧州市| 潜江市| 雷波县| 卓资县| 嘉善县| 呼图壁县| 花垣县| 黔东| 北流市| 丽江市| 广安市| 黄龙县| 谢通门县| 图木舒克市| 恩平市| 奉节县| 谢通门县| 宜州市| 长顺县| 大名县| 青龙| 兴仁县| 祥云县| 铜川市| 崇义县| 怀仁县| 夹江县| 樟树市| 台北市| 苏尼特左旗| 新丰县| 普格县|