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

虛擬硬件系統(tǒng)及基于虛擬硬件系統(tǒng)的指令執(zhí)行方法

文檔序號:6563594閱讀:232來源:國知局
專利名稱:虛擬硬件系統(tǒng)及基于虛擬硬件系統(tǒng)的指令執(zhí)行方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù),特別涉及虛擬硬件系統(tǒng)及基于虛擬硬件系統(tǒng)的 指令執(zhí)行方法。
背景技術(shù)
計(jì)算機(jī)系統(tǒng)中,包括用于執(zhí)行特定系統(tǒng)指令集的處理器。不同種類的處 理器僅能夠執(zhí)行該類處理器所對應(yīng)的指令集,即不同處理器的指令集不兼 容。然而,通過執(zhí)行不同的指令集,各類型的處理器能夠體現(xiàn)出不同的性能優(yōu)勢,例如Intel80X86中央處理單元(CPU)的指令集基于復(fù)雜指令集計(jì)算 機(jī)(CICS)格式,能夠?qū)崿F(xiàn)復(fù)雜的處理功能;而Motorola Power PC的指令 集,則基于精簡指令集計(jì)算機(jī)(RISC)格式,能夠高速執(zhí)行簡單處理功能。 現(xiàn)有技術(shù)通過在一種處理器中,由仿真邏輯單元構(gòu)成另一種處理器,并 通過仿真另一種處理器的指令運(yùn)行過程,來解決不同指令集的不兼容性。實(shí) 際存在的處理器中,實(shí)現(xiàn)原有功能的硬件資源稱為父硬件,由仿真邏輯單元 構(gòu)成的硬件資源稱為虛擬硬件?;谔摂M硬件技術(shù)的虛擬硬件系統(tǒng)中,父硬 件能夠融合不同處理器的性能優(yōu)勢,具有跨平臺無關(guān)性,當(dāng)父硬件平臺更換 時(shí)可以保證為虛擬硬件編寫的代碼的二進(jìn)制兼容;而且,當(dāng)父硬件的開發(fā)工具不易實(shí)現(xiàn)時(shí),可通過擁有豐富開發(fā)資源的虛擬硬件來進(jìn)行編譯,從而降低 開發(fā)的難度。圖1為現(xiàn)有技術(shù)中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法流程圖。如圖l所 示,以父硬件為A處理器、虛擬硬件為B處理器為例,現(xiàn)有技術(shù)中基于虛 擬硬件系統(tǒng)的指令執(zhí)行方法包括以下步驟步驟101,將A處理器的存儲空間分配給B處理器,作為B處理器的 指令存儲器和數(shù)據(jù)存儲器等的存儲空間;步驟102, A處理器按B處理器對應(yīng)的指令集規(guī)則讀取B處理器指令存 儲器空間的指令數(shù)據(jù);步驟103, A處理器將讀取的數(shù)據(jù),按照B處理器指令集的規(guī)則轉(zhuǎn)化為 A處理器能夠執(zhí)行的指令;步驟104, A處理器執(zhí)行轉(zhuǎn)化后的指令,并將該指令的處理結(jié)果返回給 B處理器的數(shù)據(jù)存儲器空間,返回步驟102, A處理器繼續(xù)讀取B處理器的 下一條指令數(shù)據(jù)。上述流程中,A處理器在利用虛擬硬件B處理器運(yùn)行指令流程的過程 中,需要讀取并轉(zhuǎn)換每一條指令,執(zhí)行一條B處理器的指令,可能需要多條 A處理器的指令來實(shí)現(xiàn)。由此可見,現(xiàn)有的虛擬硬件系統(tǒng)中,父硬件通過逐條讀取、轉(zhuǎn)化指令的 方式來模擬虛擬硬件的指令執(zhí)行過程,因此,父硬件執(zhí)行每一條虛擬硬件的 指令都需要幾十個(gè)甚至上百個(gè)指令周期,執(zhí)行速度慢,無法滿足高性能要求 的運(yùn)算處理過程。而且,由于父硬件通過逐條讀取、轉(zhuǎn)化指令的方式來模擬 虛擬硬件的指令執(zhí)行過程,指令執(zhí)行僅限于底層指令,因而,現(xiàn)有的虛擬硬 件也無法使用父硬件中的高級資源,僅能使用父硬件分配的有限資源,使得 虛擬硬件系統(tǒng)的應(yīng)用范圍較小。發(fā)明內(nèi)容有鑒于此,本發(fā)明的一個(gè)主要目的在于提供一種虛擬硬件系統(tǒng),能夠 高速執(zhí)行指令。本發(fā)明的另一個(gè)主要目的在于提供一種基于虛擬硬件系統(tǒng)的指令執(zhí)行 方法,能夠基于虛擬硬件高速執(zhí)行指令。根據(jù)上述的一個(gè)主要目的,本發(fā)明提供了一種虛擬硬件系統(tǒng),包括父 硬件和虛擬硬件,其中,父硬件,從虛擬硬件中讀取指令數(shù)據(jù),運(yùn)行讀取的指令數(shù)據(jù)對應(yīng)的處理
流程;向虛擬硬件發(fā)送處理結(jié)果;虛擬硬件,用于存儲與預(yù)先約定的指令具有映射關(guān)系的指令數(shù)據(jù);接收 來自所述父硬件的處理結(jié)果。所述父硬件包括主控單元、主用指令存儲單元和資源調(diào)用單元,其中,主控單元,用于接收來自主用指令存儲單元的所述父硬件的指令,從虛 擬硬件中讀取指令數(shù)據(jù),將讀取到的指令數(shù)據(jù)轉(zhuǎn)化為父硬件能夠執(zhí)行的指 令;根據(jù)轉(zhuǎn)化后的指令,從虛擬硬件中讀取該指令對應(yīng)的運(yùn)算變量;當(dāng)轉(zhuǎn)化 后的指令為外部調(diào)用指令時(shí),通過系統(tǒng)調(diào)用接口調(diào)用資源調(diào)用單元中的內(nèi)部 資源,所述系統(tǒng)調(diào)用接口為各種特殊指令與內(nèi)部資源之間的映射關(guān)系表;利 用讀取到的運(yùn)算變量,運(yùn)行來自資源調(diào)用單元的內(nèi)部資源,并將得到的處理 結(jié)果發(fā)送到虛擬硬件;主用指令存儲單元,用于存儲所述父硬件的指令,并在系統(tǒng)上電時(shí),將 指令提供給主控單元;資源調(diào)用單元,用于存儲內(nèi)部資源,并通過系統(tǒng)調(diào)用接口提供給主控單元。所述主控單元進(jìn)一步用于,當(dāng)所述轉(zhuǎn)化后的指令為普通指令時(shí),執(zhí)行普 通指令,并將普通指令的處理結(jié)果發(fā)送給所述虛擬硬件。所述系統(tǒng)進(jìn)一步包括主用數(shù)據(jù)存儲單元,用于存儲父硬件的所有指令 對應(yīng)的運(yùn)算變量,并提供給主控單元;主控單元進(jìn)一步用于將每一條指令對應(yīng)的運(yùn)算中間值發(fā)送給主用數(shù)據(jù) 存儲單元,并在運(yùn)行下一條指令時(shí),根據(jù)該指令從主用數(shù)據(jù)存儲單元中讀取 運(yùn)算中間值。所述主控單元為電可擦寫只讀存儲器E2PROM或者隨機(jī)存儲器RAM; 所述主用指令存儲單元為只讀存儲器ROM; 所述主用數(shù)據(jù)存儲單元為RAM; 所述資源調(diào)用單元為E2PROM。所述虛擬硬件包括虛擬指令存儲單元和虛擬數(shù)據(jù)存儲單元,其中,
虛擬指令存儲單元,用于存儲所述虛擬硬件的指令數(shù)據(jù),并將指令數(shù)據(jù)提供給所述父硬件;虛擬數(shù)據(jù)存儲單元,用亍接收來自所述父硬件的處理結(jié)果。 所述虛擬指令存儲單元為E2PROM; 所述虛擬數(shù)據(jù)存儲單元為RAM。所述父硬件為XA2處理器,所述虛擬硬件為8051處理器。 根據(jù)上述的另一個(gè)主要目的,本發(fā)明提供了一種基于虛擬硬件系統(tǒng)的指 令執(zhí)行方法,包括以下步驟A、 父硬件讀取虛擬硬件中的指令數(shù)據(jù),根據(jù)預(yù)先設(shè)置的約定指令與父 硬件內(nèi)部資源的映射關(guān)系,調(diào)用讀取到的指令數(shù)據(jù)對應(yīng)的內(nèi)部資源;B、 父硬件利用調(diào)用的內(nèi)部資源,運(yùn)行轉(zhuǎn)化后的指令對應(yīng)的處理流程, 將處理結(jié)果返回給虛擬硬件>所述步驟A之前進(jìn)一步包括將所述父硬件的存儲空間分配給虛擬硬 件,作為所述虛擬硬件的指令存儲空間和數(shù)據(jù)存儲空間;步驟A所述讀取虛擬硬件中的指令數(shù)據(jù)為父硬件根據(jù)內(nèi)部存儲的指 令,從虛擬硬件的指令存儲空間中讀取指令數(shù)據(jù)。所述步驟A進(jìn)一步包括父硬件從虛擬硬件的數(shù)據(jù)存儲空間中,讀取所 述從虛擬硬件讀取的指令數(shù)據(jù)對應(yīng)的運(yùn)算變量。步驟A所述轉(zhuǎn)化虛擬硬件中的指令數(shù)據(jù)為按照虛擬硬件對應(yīng)的指令集 規(guī)則,將讀取的指令數(shù)據(jù)轉(zhuǎn)化為父硬件能夠執(zhí)行的指令。所述約定指令為外部調(diào)用指令;步驟A所述調(diào)用內(nèi)部資源為判斷轉(zhuǎn)化后的指令是否為外部調(diào)用指令, 如果是,則根據(jù)轉(zhuǎn)化后的外部調(diào)用指令,通過所述映射關(guān)系,調(diào)用父硬件內(nèi) 部存儲的功能函數(shù)。所述判斷轉(zhuǎn)化后的指令是否為外部調(diào)用指令為判斷轉(zhuǎn)化后的指令調(diào)用 的子程序地址是否處于正常范圍內(nèi),如果不是,再判斷所述指令是否與父硬 件內(nèi)部資源存在映射關(guān)系,如果是,則判定所述轉(zhuǎn)化后的指令為外部調(diào)用指令。所述判斷轉(zhuǎn)化后的指令是否為外部調(diào)用指令為判斷轉(zhuǎn)化后的指令是否 為特殊編碼,且所述指令是否與父硬件內(nèi)部資源存在映射關(guān)系,如果是,則 所述轉(zhuǎn)化后的指令為外部調(diào)用指令。所述步驟A進(jìn)一步包括在判斷出所述轉(zhuǎn)化后的指令不是外部調(diào)用指令 之后,執(zhí)行所述轉(zhuǎn)化后的指令,將處理結(jié)果返回給虛擬硬件。步驟B所述運(yùn)行轉(zhuǎn)化后的指令對應(yīng)的處理流程為根據(jù)讀取的運(yùn)算變 量,運(yùn)行調(diào)用的內(nèi)部資源。步驟B所述將處理結(jié)果返回給虛擬硬件為將處理結(jié)果發(fā)送到虛擬硬 件的數(shù)據(jù)存儲空間。由上述技術(shù)方案可見,恭發(fā)明通過父硬件讀取轉(zhuǎn)化一條虛擬硬件的指令 數(shù)據(jù),根據(jù)該指令調(diào)用內(nèi)部資源,例如功能函數(shù)和多種高級資源,并利用調(diào) 用的內(nèi)部資源,運(yùn)行該指令對應(yīng)的處理流程,替代與虛擬硬件的多條指令交 互過程,減少了指令執(zhí)行周期,從而提高了虛擬硬件的指令執(zhí)行速度。而且, 本發(fā)明通過調(diào)用父硬件的內(nèi)部資源,不需要在父硬件和虛擬硬件中分別存儲 用于實(shí)現(xiàn)相同功能的相同邏輯代碼,節(jié)省了系統(tǒng)資源。


圖1為現(xiàn)有技術(shù)中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法流程圖。圖2為本發(fā)明中虛擬硬件系統(tǒng)的示例性結(jié)構(gòu)圖。圖3為本發(fā)明中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法的示例性流程圖。圖4為本發(fā)明實(shí)施例中虛擬硬件系統(tǒng)的結(jié)構(gòu)圖。圖5為本發(fā)明實(shí)施例中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明的基本思想是父硬件讀取轉(zhuǎn)化一條虛擬硬件的指令數(shù)據(jù),才艮據(jù) 該指令調(diào)用內(nèi)部資源,并利用調(diào)用的內(nèi)部資源,運(yùn)行該指令對應(yīng)的處理流程。其中,用于父硬件調(diào)用內(nèi)部資源的指令為父硬件與虛擬硬件預(yù)先約定的 指令,如外部調(diào)用指令等,即在預(yù)先約定的指令和內(nèi)部資源之間存在映射關(guān) 系。其中,內(nèi)部資源可以為功能函數(shù),也可以為文件系統(tǒng)等高級資源。圖2為本發(fā)明中虛擬硬件系統(tǒng)的示例性結(jié)構(gòu)圖。如圖2所示,本發(fā)明的 虛擬硬件系統(tǒng)包括父硬件201和虛擬硬件202。父硬件201,用于從虛擬硬件202中讀取指令數(shù)據(jù),運(yùn)行讀取的指令對 應(yīng)的處理流程;向虛擬硬件202發(fā)送處理結(jié)果;虛擬硬件202,用于存儲與預(yù)先約定的指令具有映射關(guān)系的指令數(shù)據(jù); 接收來自所述父硬件201的處理結(jié)果。其中,虛擬硬件202的指令集中,包括與父硬件的外部調(diào)用指令對應(yīng)的 指令數(shù)據(jù),也包括與父硬件的普通指令對應(yīng)的指令數(shù)據(jù),父硬件201只有在 讀取到與外部調(diào)用指令對應(yīng)的指令數(shù)據(jù)后,才能夠調(diào)用內(nèi)部資源,如存儲的 功能函數(shù)等。圖3為本發(fā)明中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法的示例性流程圖。如 圖3所示,本發(fā)明基于虛擬硬件系統(tǒng)的指令執(zhí)行方法包括以下步驟步驟301,父硬件讀取虛擬硬件中的指令數(shù)據(jù),根據(jù)預(yù)先設(shè)置的映射關(guān) 系,調(diào)用讀取到的指令數(shù)據(jù)對應(yīng)的內(nèi)部資源;步驟302,父硬件利用調(diào)用的內(nèi)部資源,運(yùn)行轉(zhuǎn)化后的指令對應(yīng)的處理 流程,將處理結(jié)果返回給虛擬硬件,并返回步驟301,即父硬件繼續(xù)讀取虛 擬硬件的下 一條指令數(shù)據(jù)。其中,當(dāng)父硬件轉(zhuǎn)化后的指令為普通指令時(shí),可以按照現(xiàn)有技術(shù)的方法, 逐條讀取轉(zhuǎn)化指令集中的指令。下面,結(jié)合具體實(shí)施例,對本發(fā)明的虛擬硬件系統(tǒng)和基于虛擬硬件系統(tǒng) 的指令執(zhí)行方法進(jìn)行詳細(xì)說明。本實(shí)施例以物理硬件為飛利浦(Philips Semiconductors ) 司的高速擴(kuò)
展結(jié)構(gòu)微處理器(Smart extended Architecture 2nd generation, SmartXA2 ) 為例,SmartXA2簡稱XA2,是一個(gè)16位的微處理器,適用于作為軟件開發(fā)平臺。圖4為本發(fā)明實(shí)施例中虛擬硬件系統(tǒng)的結(jié)構(gòu)圖。如圖4所示,以虛擬'硬 件為虛擬8051處理器為例,本發(fā)明的虛擬硬件系統(tǒng)包括XA2處理器401 和虛擬8051處理器402。其中,XA2處理器401包括主控單元410、主用指令存儲單元411和 資源調(diào)用單元412;主控單元410對應(yīng)的物理實(shí)體可以為物理硬件XA2的電 可擦寫只讀存儲器(E2PROM)中的任意存儲空間,也可以為隨機(jī)存儲器 (RAM)中的任意存儲空間;主用指令存儲單元411對應(yīng)的物理實(shí)體為物 理硬件XA2的只讀存儲器(ROM);資源調(diào)用單元412對應(yīng)的物理實(shí)體為 物理硬件XA2的E2PROM的低位存儲空間。主控單元410,用于接收來自主用指令存儲單元411的XA2處理器的 指令,從虛擬8051處理器402中讀取指令數(shù)據(jù),并按照虛擬8051處理器 402對應(yīng)的指令集規(guī)則,將讀取到的指令數(shù)據(jù)轉(zhuǎn)化為XA2處理器401能夠執(zhí) 行的指令;根據(jù)轉(zhuǎn)化后的指令,從虛擬8051處理器402中讀取該指令對應(yīng) 的運(yùn)算變量;當(dāng)轉(zhuǎn)化后的指令為外部調(diào)用指令時(shí),根據(jù)外部調(diào)用指令,并通 過系統(tǒng)調(diào)用接口調(diào)用資源調(diào)用單元412中的內(nèi)部資源,如功能函數(shù),系統(tǒng)調(diào) 用接口為各種特殊指令與內(nèi)部資源之間的映射關(guān)系表;利用讀取到的運(yùn)算變量,運(yùn)行來自資源調(diào)用單元412的內(nèi)部資源;將運(yùn)行內(nèi)部資源得到的處理結(jié) 果發(fā)送到虛擬8051處理器401。主用指令存儲單元411'用于存儲XA2處理器401的指令,并在系統(tǒng) 上電時(shí),將指令提供給主控單元400。資源調(diào)用單元412,用于存儲內(nèi)部資源,并通過系統(tǒng)調(diào)用接口提供給主 控單元。虛擬8051處理器402包括虛擬指令存儲單元421和虛擬數(shù)據(jù)存儲單元422;虛擬指令存儲單元421對應(yīng)的物理實(shí)體為物理硬件XA2的E2PROM的
高位存儲空間;虛擬數(shù)據(jù)存儲單元422對應(yīng)的物理實(shí)體為物理硬件XA2的 RAM的高位存儲空間。虛擬指令存儲單元421,用于存儲虛擬8051處理器402的指令數(shù)據(jù), 并將指令數(shù)據(jù)提供給XA2處理器401的主控單元410;虛擬數(shù)據(jù)存儲單元422,用于存儲虛擬8051處理器402的所有指令對 應(yīng)的運(yùn)算變量,并提供給XA2處理器401的主控單元410;接收來自XA2 處理器401的主控單元410的處理結(jié)果。實(shí)際應(yīng)用中,主控單元410還用于當(dāng)轉(zhuǎn)化后的指令為普通指令時(shí),執(zhí)行 轉(zhuǎn)化后的普通指令,并將普通指令的處理結(jié)果發(fā)送到虛擬8051處理器402。XA2處理器401進(jìn)一步包括主用數(shù)據(jù)存儲單元413,作為XA2處理器 401的數(shù)據(jù)存儲空間,對應(yīng)的物理實(shí)體為物理硬件XA2的RAM的低位存儲 空間,用于存儲XA2處理器401的所有指令對應(yīng)的運(yùn)算變量,并提供給主 控單元410。在這種情況下,主控單元410進(jìn)一步用于將每一條指令對應(yīng)的運(yùn)算中間 值發(fā)送給主用數(shù)據(jù)存儲單元413,并在運(yùn)行下一條指令時(shí),根據(jù)該指令從主 用數(shù)據(jù)存儲單元413中讀取運(yùn)算中間值。本實(shí)施例的虛擬硬件系統(tǒng)是基于XA2來實(shí)現(xiàn)的,系統(tǒng)調(diào)用接口為各種 特殊指令與內(nèi)部資源之間的映射關(guān)系表;資源調(diào)用單元412和虛擬指令存儲 單元421分別為XA2中E2PROM的低位存儲空間和高位存儲空間,空間的 大小可以根據(jù)需要預(yù)先設(shè)定,也可將低位存儲空間分配給虛擬8051處理器 402作為虛擬指令存儲單元421、將高位存儲空間設(shè)置為資源調(diào)用單元412; 主用數(shù)據(jù)存儲單元413和虛擬數(shù)據(jù)存儲單元422分別為XA2中RAM的低位 存儲空間和高位存儲空間,空間的大小可以根據(jù)需要預(yù)先設(shè)定,也可將低位 存儲空間分配給虛擬8051處理器402作為虛擬數(shù)據(jù)存儲單元422、將高位 存儲空間設(shè)置為主用數(shù)據(jù)存儲單元413。本實(shí)施例中,虛擬硬件為虛擬8051處理器,將物理硬件中RAM的存 儲空間作為虛擬數(shù)據(jù)存儲單元422,當(dāng)虛擬硬件為其他類型的處理器時(shí),也
可以將E2PROM的存儲空間作為虛擬硬件的數(shù)據(jù)存儲單元422,接收來自 XA2處理器401的處理結(jié)果。本實(shí)施例的虛擬硬件系統(tǒng),也可以基于其他物理硬件,例如增強(qiáng)型精簡 指令集單片機(jī)(Advanced RISC Machines, ARM),來實(shí)現(xiàn);本實(shí)施例中的 虛擬硬件,也可以為AVR爭其他處理器,還可以為XA2本身。下面,對基于上述系統(tǒng)的指令執(zhí)行方法進(jìn)行詳細(xì)說明。圖5為本發(fā)明實(shí)施例中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法流程圖。如圖 5所示,本發(fā)明基于虛擬硬件系統(tǒng)的指令執(zhí)行方法包括以下步驟步驟501,為虛擬805處理器分配資源空間。本實(shí)施例中,將XA2處理器中E^ROM的高位存儲空間分配給主控單 元;將E2PROM的低位存儲空間分配給虛擬8051處理器,作為虛擬8051 處理器的虛擬指令存儲空間;將E2PROM的剩余存儲空間分配給XA2處理 器,作為XA2處理器的資源調(diào)用單元;將RAM的高位存儲空間分配給虛擬 8051處理器,作為虛擬8051處理器的數(shù)據(jù)存儲空間;將RAM的低位存儲 空間分配給XA2處理器,作為XA2處理器的數(shù)據(jù)存儲空間。 步驟502, XA2處理器從虛擬8051處理器中讀取指令數(shù)據(jù)。 本實(shí)施例中,XA2處理器從E^ROM的高位存儲空間,即虛擬8051處 理器的虛擬指令存儲空間中,讀取8051指令集的相應(yīng)指令數(shù)據(jù),按照虛擬 8051處理器對應(yīng)的指令集規(guī)則,將讀取到的指令數(shù)據(jù)轉(zhuǎn)化為XA2處理器能 夠執(zhí)行的指令;同時(shí),從虛擬8051處理器的數(shù)據(jù)存儲空間中,讀取該指令 對應(yīng)的運(yùn)算變量。本步驟中,XA2處理器中存儲有8051指令集與XA2指令集的映射表, XA2讀取到8051指令之后.查找內(nèi)部的映射表,即可將8051指令轉(zhuǎn)化為 XA2指令,也可以通過其他方式轉(zhuǎn)化。步驟503, XA2判斷轉(zhuǎn)化后的指令是否為外部調(diào)用指令,如果是,則執(zhí) 行步驟504;如果不是,則執(zhí)行步驟505。本步驟中,普通指令中的指針指向的地址在虛擬8051處理器的正常地
址范圍內(nèi),當(dāng)指針指向的地址為預(yù)先約定的特殊地址時(shí),且該指令與內(nèi)部資源存在映射關(guān)系,則判斷該指令為外部調(diào)用指令;或者,當(dāng)讀取到的指令編 碼為A5的特殊指令時(shí),且該指令與內(nèi)部資源存在映射關(guān)系,則判斷該指令 為外部調(diào)用指令;構(gòu)造外部調(diào)用指令,也可以采用其他方式。虛擬8051處理器的指令集中,將需要進(jìn)行函數(shù)運(yùn)算的指令設(shè)定為上述 的特殊指令,而XA2處理器中存儲有特殊指令映射表,即可實(shí)現(xiàn)功能函數(shù) 的調(diào)用。例如,虛擬8051處理器中執(zhí)行正弦函數(shù)運(yùn)算的指令為調(diào)用2000H ( 16 進(jìn)制)地址子程序的指令,而虛擬8051處理器的正常地址范圍為1400H, 該指令為特殊指令。XA2和虛擬8051處理器可以事先約定2000H為進(jìn)行正 弦運(yùn)算的特殊地址,當(dāng)虛擬8051硬件執(zhí)行到調(diào)用2000H地址子程序的指令 時(shí),XA2處理器先判斷出該指令中的地址不屬于正常范圍內(nèi),再從內(nèi)部存 儲的映射表中查找該地址,查找到該地址后,根據(jù)該地址在映射表中的映射 關(guān)系,即可判斷出需要調(diào)用的功能為正弦函數(shù),并調(diào)用正弦函數(shù)?,F(xiàn)有技術(shù)中,調(diào)用2000H地址子程序的指令為非法指令,執(zhí)行正弦函 數(shù)需要調(diào)用一段數(shù)百甚至上千條指令的子程序段,并將上千條指令逐條轉(zhuǎn)換 為父硬件能執(zhí)行的指令,運(yùn)算速度顯然非常慢;而本發(fā)明中,XA2處理器根 據(jù)內(nèi)部存儲的指令映射表,判斷出該指令對應(yīng)的XA2指令為正弦函數(shù)。步驟504,根據(jù)轉(zhuǎn)化后的外部調(diào)用指令,并通過系統(tǒng)調(diào)用接口,即各種 特殊指令與內(nèi)部資源之間的映射關(guān)系,調(diào)用XA2存儲的內(nèi)部資源,如功能 函數(shù);根據(jù)讀取到的運(yùn)算變量,運(yùn)行來自資源調(diào)用單元的內(nèi)部資源,然后將 處理結(jié)果發(fā)送給虛擬8051處理器的虛擬數(shù)據(jù)存儲空間,并返回步驟502, XA2處理器繼續(xù)讀取虛擬8051處理器的下一條指令數(shù)據(jù)。本步驟中,由于執(zhí)行的是父硬件XA2的函數(shù),不需要轉(zhuǎn)換,因此速度 大大高于虛擬硬件執(zhí)行的速度,同時(shí)也避免了現(xiàn)有技術(shù)中為了在父硬件和虛 擬硬件上實(shí)現(xiàn)相同功能而必須實(shí)現(xiàn)兩段邏輯相同的函數(shù)造成的資源浪費(fèi),對 于虛擬8051處理器來說,執(zhí)行步驟504與調(diào)用一個(gè)虛擬8051處理器內(nèi)部子 程序并沒有明顯的區(qū)別,幾乎不影響虛擬8051處理器的正常運(yùn)行;當(dāng)特殊 指令映射表中的映射結(jié)果為調(diào)用高級資源時(shí),XA2處理器則調(diào)用計(jì)算機(jī)系統(tǒng) 中的上層資源,例如文件系統(tǒng)或者高級函數(shù)庫。步驟505,執(zhí)行轉(zhuǎn)化后的普通指令,并將處理結(jié)果發(fā)送到虛擬8051處 理器的數(shù)據(jù)存儲空間,并返回步驟502, XA2處理器繼續(xù)讀取虛擬8051處 理器的下一條指令。本步驟的執(zhí)行過程可以與現(xiàn)有技術(shù)相同,轉(zhuǎn)化后的普通指令可以為多條 XA2指令;當(dāng)根據(jù)虛擬8051處理器的指令轉(zhuǎn)化后的XA2處理器的指令為多 條時(shí),可以在執(zhí)行每一條指令之后,將處理結(jié)果存儲到XA2處理器的數(shù)據(jù) 存儲空間中,在執(zhí)行下一條指令時(shí),再從XA2處理器的數(shù)據(jù)存儲空間中讀 取上一條指令的處理結(jié)果。本實(shí)施例的指令執(zhí)行方法中,也可以在步驟502的轉(zhuǎn)化過程中,判斷讀 取到的指令數(shù)據(jù)是否對應(yīng)父硬件的外部調(diào)用指令,判斷方法為先對讀取到 的指令數(shù)據(jù)進(jìn)行轉(zhuǎn)化,如果指令數(shù)據(jù)能夠按照現(xiàn)有技術(shù)中虛擬硬件的指令規(guī) 則進(jìn)行轉(zhuǎn)化,則轉(zhuǎn)化結(jié)果為普通指令,并執(zhí)行步驟505;如果讀取到的指令 數(shù)據(jù)無法按照現(xiàn)有技術(shù)中虛擬硬件的指令規(guī)則進(jìn)行轉(zhuǎn)化,則從外部調(diào)用指令 映射表中,查找該指令數(shù)據(jù),如果查找到該指令數(shù)據(jù),則根據(jù)映射關(guān)系得到 的指令為外部調(diào)用指令,并執(zhí)行步驟504,如果映射表中不包括該指令數(shù)據(jù), 則該指令數(shù)據(jù)對應(yīng)的父硬件指令為非法指令,并結(jié)束本流程。本實(shí)施例中,虛擬8051處理器的數(shù)據(jù)存儲空間可以為RAM,也可以為 分配到的E2PROM的高位存儲空間。本實(shí)施例中基于虛擬硬件系統(tǒng)的指令執(zhí)行方法,也適用于其他基于其他 物理硬件,例如基于ARM的虛擬硬件系統(tǒng);本實(shí)施例中的方法,也適用于 虛擬硬件為其他處理器的虛擬硬件系統(tǒng),例如AVR、 XA2等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范 圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種虛擬硬件系統(tǒng),其特征在于,包括父硬件和虛擬硬件,其中,父硬件,從虛擬硬件中讀取指令數(shù)據(jù),運(yùn)行讀取的指令數(shù)據(jù)對應(yīng)的處理流程;向虛擬硬件發(fā)送處理結(jié)果;虛擬硬件,用于存儲與預(yù)先約定的指令具有映射關(guān)系的指令數(shù)據(jù);接收來自所述父硬件的處理結(jié)果。
2、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述父硬件包括主控單 元、主用指令存儲單元和資源調(diào)用單元,其中,主控單元,用于接收來自主用指令存儲單元的所述父硬件的指令,從虛 擬硬件中讀取指令數(shù)據(jù),將讀取到的指令數(shù)據(jù)轉(zhuǎn)化為父硬件能夠執(zhí)行的指 令;根據(jù)轉(zhuǎn)化后的指令,從虛擬硬件中讀取該指令對應(yīng)的運(yùn)算變量;當(dāng)轉(zhuǎn)化 后的指令為外部調(diào)用指令時(shí),通過系統(tǒng)調(diào)用接口調(diào)用資源調(diào)用單元中的內(nèi)部 資源,所述系統(tǒng)調(diào)用接口為各種特殊指令與內(nèi)部資源之間的映射關(guān)系表;利 用讀取到的運(yùn)算變量,運(yùn)行來自資源調(diào)用單元的內(nèi)部資源,并將得到的處理 結(jié)果發(fā)送到虛擬硬件;主用指令存儲單元,用于存儲所述父硬件的指令,并在系統(tǒng)上電時(shí),將 指令提供給主控單元;資源調(diào)用單元,用于存儲內(nèi)部資源,并通過系統(tǒng)調(diào)用接口提供給主控單元。
3、 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述主控單元進(jìn)一步用于, 當(dāng)所述轉(zhuǎn)化后的指令為普通指令時(shí),執(zhí)行普通指令,并將普通指令的處理結(jié) 果發(fā)送給所述虛擬硬件。
4、 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述系統(tǒng)進(jìn)一步包括主 用數(shù)據(jù)存儲單元,用于存儲父硬件的所有指令對應(yīng)的運(yùn)算變量,并提供給主 控單元;主控單元進(jìn)一步用于將每一條指令對應(yīng)的運(yùn)算中間值發(fā)送給主用數(shù)據(jù) 存儲單元,并在運(yùn)行下一條指令時(shí),根據(jù)該指令從主用數(shù)據(jù)存儲單元中讀取 運(yùn)算中間值。
5、 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述主控單元為電可擦寫 只讀存儲器E2PROM或者隨機(jī)存儲器RAM;所述主用指令存儲單元為只讀存儲器ROM; 所述主用數(shù)據(jù)存儲單元為RAM; 所述資源調(diào)用單元為E2PROM。
6、 如權(quán)利要求2至5中任意一項(xiàng)所述的系統(tǒng),其特征在于,所述虛擬 硬件包括虛擬指令存儲單元和虛擬數(shù)據(jù)存儲單元,其中,虛擬指令存儲單元,用于存儲所述虛擬硬件的指令數(shù)據(jù),并將指令數(shù)據(jù) 提供給所述父硬件;虛擬數(shù)據(jù)存儲單元,用于接收來自所述父硬件的處理結(jié)果。
7、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述虛擬指令存儲單元為 E2PROM;所述虛擬數(shù)據(jù)存儲單元為RAM。
8、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述父硬件為XA2處理器, 所述虛擬硬件為8051處理器。
9、 一種基于虛擬硬件的指令執(zhí)行方法,其特征在于,包括以下步驟A、 父硬件讀取虛擬硬件中的指令數(shù)據(jù),根據(jù)預(yù)先設(shè)置的約定指令與父 硬件內(nèi)部資源的映射關(guān)系,調(diào)用讀取到的指令數(shù)據(jù)對應(yīng)的內(nèi)部資源;B、 父硬件利用調(diào)用的內(nèi)部資源,運(yùn)行轉(zhuǎn)化后的指令對應(yīng)的處理流程, 將處理結(jié)果返回給虛擬硬件,
10、 如權(quán)利要求9所述的方法,其特征在于,所述步驟A之前進(jìn)一步包 括將所述父硬件的存儲空間分配給虛擬硬件,作為所述虛擬硬件的指令存 儲空間和數(shù)據(jù)存儲空間;步驟A所述讀取虛擬硬件中的指令數(shù)據(jù)為父硬件根據(jù)內(nèi)部存儲的指 令,從虛擬硬件的指令存儲空間中讀取指令數(shù)據(jù)。
11、 如權(quán)利要求9或10所述的方法,其特征在于,所述步驟A進(jìn)一步 包括父硬件從虛擬硬件的數(shù)據(jù)存儲空間中,讀取所述從虛擬硬件讀取的指 令數(shù)據(jù)對應(yīng)的運(yùn)算變量。
12、 如權(quán)利要求9所述的方法,其特征在于,步驟A所述轉(zhuǎn)化虛擬硬件 中的指令數(shù)據(jù)為按照虛擬硬件對應(yīng)的指令集規(guī)則,將讀取的指令數(shù)據(jù)轉(zhuǎn)化 為父硬件能夠執(zhí)行的指令。
13、 如權(quán)利要求9所述的方法,其特征在于,所述約定指令為外部調(diào)用 指令;步驟A所述調(diào)用內(nèi)部資源為判斷轉(zhuǎn)化后的指令是否為外部調(diào)用指令, 如果是,則根據(jù)轉(zhuǎn)化后的外部調(diào)用指令,通過所述映射關(guān)系,調(diào)用父硬件內(nèi) 部存儲的功能函數(shù)。
14、 如權(quán)利要求13所述的方法,其特征在于,所述判斷轉(zhuǎn)化后的指令 是否為外部調(diào)用指令為判斷轉(zhuǎn)化后的指令調(diào)用的子程序地址是否處于正常 范圍內(nèi),如果不是,再判斷所述指令是否與父硬件內(nèi)部資源存在映射關(guān)系, 如果是,則判定所述轉(zhuǎn)化后的指令為外部調(diào)用指令。
15、 如權(quán)利要求13所述的方法,其特征在于,所述判斷轉(zhuǎn)化后的指令 是否為外部調(diào)用指令為判斷轉(zhuǎn)化后的指令是否為特殊編碼,且所述指令是 否與父硬件內(nèi)部資源存在映射關(guān)系,如果是,則所述轉(zhuǎn)化后的指令為外部調(diào) 用指令。
16、 如權(quán)利要求13所述的方法,其特征在于,所述步驟A進(jìn)一步包括 在判斷出所述轉(zhuǎn)化后的指令不是外部調(diào)用指令之后,執(zhí)行所述轉(zhuǎn)化后的指 令,將處理結(jié)果返回給虛擬硬件。
17、 如權(quán)利要求11所述的方法,其特征在于,步驟B所述運(yùn)行轉(zhuǎn)化后 的指令對應(yīng)的處理流程為根據(jù)讀取的運(yùn)算變量,運(yùn)行調(diào)用的內(nèi)部資源。
18、 如權(quán)利要求9所述的方法,其特征在于,步驟B所述將處理結(jié)果返 回給虛擬硬件為將處理結(jié)果發(fā)送到虛擬硬件的數(shù)據(jù)存儲空間。
全文摘要
本發(fā)明公開了一種虛擬硬件系統(tǒng),包括父硬件和虛擬硬件,其中,父硬件,從虛擬硬件中讀取指令數(shù)據(jù),運(yùn)行讀取的指令數(shù)據(jù)對應(yīng)的處理流程;向虛擬硬件發(fā)送處理結(jié)果;虛擬硬件,用于存儲與預(yù)先約定的指令具有映射關(guān)系的指令數(shù)據(jù);接收來自所述父硬件的處理結(jié)果。本發(fā)明還公開了一種基于虛擬硬件的指令執(zhí)行方法。本發(fā)明通過父硬件讀取轉(zhuǎn)化一條虛擬硬件的指令數(shù)據(jù),根據(jù)該指令調(diào)用內(nèi)部資源,例如功能函數(shù)和多種高級資源,并利用調(diào)用的內(nèi)部的資源,運(yùn)行該指令對應(yīng)的處理流程,減少了指令執(zhí)行周期,從而提高了虛擬硬件的指令執(zhí)行速度。而且,本發(fā)明不需要在父硬件和虛擬硬件中分別存儲用于實(shí)現(xiàn)相同功能的相同邏輯代碼,節(jié)省了系統(tǒng)資源。
文檔編號G06F9/38GK101154155SQ20061015967
公開日2008年4月2日 申請日期2006年9月30日 優(yōu)先權(quán)日2006年9月30日
發(fā)明者殷廣英 申請人:北京深思洛克數(shù)據(jù)保護(hù)中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
浮山县| 新平| 呼玛县| 卢湾区| 庆阳市| 彭阳县| 大石桥市| 高台县| 柞水县| 荥阳市| 永寿县| 政和县| 东辽县| 车致| 梧州市| 仁布县| 陈巴尔虎旗| 仁化县| 昂仁县| 枣阳市| 繁昌县| 洪泽县| 琼中| 武威市| 泗洪县| 湟源县| 安新县| 旬阳县| 锦州市| 长春市| 麻江县| 沭阳县| 新野县| 扎囊县| 科尔| 长子县| 大名县| 泽库县| 南京市| 手机| 土默特左旗|