專利名稱:異構(gòu)虛擬處理器的制作方法
異構(gòu)虛擬處理器技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī),尤其涉及多種RISC架構(gòu)下虛擬X86兼容的異構(gòu)虛 擬處理器。背景技術(shù):
計(jì)算機(jī)時(shí)代的到來(lái)給嵌入式的發(fā)展帶來(lái)了挑戰(zhàn)和機(jī)遇,不同架構(gòu)的硬件 體系門類繁多,僅RISC就有ARM、 MIPS (計(jì)算機(jī))、PowerPC、 ColdFire (微 控制器)以及國(guó)產(chǎn)的龍芯CPU等等。眾多的處理器架構(gòu)給應(yīng)用帶來(lái)了更廣闊 的選擇空間,但隨之而來(lái)的是OS (操作系統(tǒng))、應(yīng)用程序移植所帶來(lái)的難題。 不同架構(gòu)體系間的系統(tǒng)軟件、應(yīng)用軟件不能直接移植,需要借助兼容層技術(shù) 實(shí)現(xiàn)不同架構(gòu)之間的通信。傳統(tǒng)的跨平臺(tái)技術(shù)是指在同一硬件架構(gòu)下實(shí)現(xiàn)的軟件移植和復(fù)用。例如, IBM跨平臺(tái)信息與流程整合工具、JAVA虛擬機(jī)、豪杰公司研發(fā)的兼容層技術(shù) (該技術(shù)可以讓W(xué)INDOWS下的開(kāi)發(fā)直接登陸Linux )、金山公司的跨Linux 平臺(tái)的辦公軟件等等。以上技術(shù)可歸納為"橫向跨平臺(tái),,技術(shù),但是,這種橫向跨平臺(tái)無(wú)法解決異構(gòu)架構(gòu)(不同硬件架構(gòu))下軟件的移 植問(wèn)題。
發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種異構(gòu)虛擬處理器,解決異構(gòu)架構(gòu)下軟件的 移植問(wèn)題。本發(fā)明所采用的技術(shù)方案為提供一種異構(gòu)虛擬處理器,其特征在于, 所述異構(gòu)虛擬處理器包括2X86層和VBIOS層,所述2X86層在RISC處理器 上虛擬兼容X86的軟處理器,所述VBIOS層在X86兼容的軟處理器上為操 作系統(tǒng)層虛擬一個(gè)PC兼容的完整平臺(tái),從而所述異構(gòu)虛擬處理器實(shí)現(xiàn)從RISC 處理器到X86平臺(tái)間的跨度,運(yùn)行X86平臺(tái)的操作系統(tǒng)和應(yīng)用軟件。更具體地,所述VB10S層在多種RISC架構(gòu)下虛擬X86硬件平臺(tái)并直接 移植X86硬件平臺(tái)下的操作系統(tǒng)及應(yīng)用程序。
更具體地,所述2X86層完成計(jì)算機(jī)語(yǔ)言的識(shí)別。 更具體地,所述2X86層包括寄存器。 更具體地,所述2X86層實(shí)現(xiàn)單一流水線指令運(yùn)行機(jī)制。 更具體地,所述2x86層捕捉X86硬件平臺(tái)上的上電/復(fù)位信號(hào)。 更具體地,所述2x86層實(shí)現(xiàn)實(shí)模式向保護(hù)模式的管理和切換。 更具體地,所述2x86層支持分段式內(nèi)存管理和段頁(yè)式內(nèi)存管理兩種機(jī)制。 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于本發(fā)明的異構(gòu)虛擬處理器通 過(guò)在RISC體系硬件平臺(tái)添加一個(gè)虛擬軟件層,實(shí)現(xiàn)一個(gè)虛擬而且兼容x86的 完整平臺(tái),從而順利運(yùn)行x86平臺(tái)下的所有OS、應(yīng)用程序等系列軟件。
圖1是本發(fā)明的異構(gòu)虛擬處理器和X86平臺(tái)、RISC處理器的組合示意圖。 圖2是本發(fā)明的2X86層的系統(tǒng)框圖。
具體實(shí)施方式本發(fā)明提供一種異構(gòu)虛擬處理器,所述異構(gòu)虛擬處理器包括2X86層 VBIOS層。所述異構(gòu)虛擬處理器在RISC處理器上虛擬兼容X86平臺(tái)的軟處 理器,實(shí)現(xiàn)從RISC處理器到X86處理器間的2爭(zhēng)度及從RISC平臺(tái)到X86平臺(tái) 的完整仿真,運(yùn)行X86的硬件平臺(tái)的操作系統(tǒng)和應(yīng)用軟件。請(qǐng)參閱圖1,異構(gòu)虛擬處理器包括2x86層和VBIOS (視頻基本輸入輸出 系統(tǒng))層。所述2x86層負(fù)責(zé)實(shí)現(xiàn)在不同的RISC (精簡(jiǎn)指令系統(tǒng)計(jì)算結(jié)構(gòu)) 處理器上模擬一個(gè)Intel 80486兼容的軟處理器。所述VBIOS層,負(fù)責(zé)在2x86 層模擬的X86兼容的軟處理器上,為操作系統(tǒng)層虛擬一個(gè)PC兼容的完整平 臺(tái)。所述2x86層和VBIOS層有^U的結(jié)合,實(shí)現(xiàn)從RISC處理器到X86處理 器的J爭(zhēng)度、從RISC平臺(tái)到X86平臺(tái)的完整仿真。原有的操作系統(tǒng)及其上的 應(yīng)用軟件完全不必做任何的修改,直接運(yùn)行。操作系統(tǒng)及其上的應(yīng)用軟件只 知X86,無(wú)法知道真實(shí)的硬件平臺(tái)一一RISC體系平臺(tái)。所述2X86層相當(dāng)于RISC到X86體系的一個(gè)"翻譯官"。X86層實(shí)現(xiàn)了 在RISC的處理器上虛擬一個(gè)軟件x86處理器模型,包括其所有寄存器和運(yùn)算, 取指、加載、計(jì)算、保存結(jié)果的指令流水線,同時(shí)還翻譯所有x86世界的語(yǔ) 言——x86 二進(jìn)制機(jī)器碼。請(qǐng)參閱圖2,所述2X86層具體的實(shí)現(xiàn)有
1 )、 32位80486兼容軟處理器模型為兼容X86世界的軟件,首先必須要為其建立一個(gè)完全兼容的寄存器組。 寄存器是X86體系統(tǒng)中運(yùn)算/傳遞速度最快的 一種存儲(chǔ)單元,為此實(shí)現(xiàn)時(shí)使用 了高速緩沖,以保證效率。同時(shí),這些寄存器要保證在任何時(shí)候/任何模式下 軟件都能訪問(wèn)得到,因此,在一些不支持高速緩沖機(jī)制,必須在普通內(nèi)存中 實(shí)現(xiàn)的RISC處理器中,要避免出現(xiàn)"訪問(wèn)空洞"。在X86處理器中,有些寄 存器不是單純的數(shù)據(jù)寄存器,如狀態(tài)寄存器等,直接影響指令執(zhí)行機(jī)制的寄 存器,也實(shí)現(xiàn)了相關(guān)的寄存器讀寫所附帶的效果。2) 、指令流水線本軟件實(shí)現(xiàn)單一流水線指令運(yùn)行機(jī)制。按照X86處理器運(yùn)行機(jī)制,總是 以CS: IP (保護(hù)模式下為CS: EIP)寄存器指向的內(nèi)存單元為下一條待執(zhí)行 的指令。本軟件通過(guò)從軟處理器的寄存器中讀取這兩個(gè)寄存器的值,經(jīng)內(nèi)存 管理機(jī)制轉(zhuǎn)換為物理內(nèi)存地址,從對(duì)應(yīng)的內(nèi)存單元讀首字節(jié),根據(jù)首字節(jié)判 斷指令長(zhǎng)度,繼續(xù)加載后續(xù)字節(jié),直到整條指令加載成功,將指令進(jìn)行"翻 譯",轉(zhuǎn)換成RISC處理器相對(duì)應(yīng)的操作進(jìn)行運(yùn)算,之后再將結(jié)果存入X86軟 處理器相應(yīng)的寄存器中。整個(gè)過(guò)程屏蔽外部中斷,實(shí)現(xiàn)X86體系處理器單指 令不可被中斷規(guī)則。3) 、上電/復(fù)位管理在2X86軟件層有一專門模塊用于捕捉平臺(tái)上的上電/復(fù)位信號(hào),在對(duì) RISC處理器和平臺(tái)進(jìn)行必須的初始化之后,即建立X86處理器模型,并建立 對(duì)應(yīng)的初始值,從而啟動(dòng)指令流水線模塊,進(jìn)行X86指令的加載運(yùn)行。4) 、實(shí)模式/保護(hù)模式機(jī)制管理在X86體系處理器中,支持實(shí)模式和保護(hù)模式兩種模式。而在RISC體 系中處理器并沒(méi)有與此對(duì)應(yīng)的模式概念。兩種模式所能訪問(wèn)的寄存器組合和 內(nèi)存管理機(jī)制不相同。為此跨平臺(tái)軟件兼容層軟件的2X86專門有一模塊實(shí)現(xiàn) 兩種機(jī)制的管理和切換。在實(shí)模式向保護(hù)模式轉(zhuǎn)換時(shí),開(kāi)放相關(guān)的寄存器, 同時(shí)進(jìn)行操作權(quán)限級(jí)別的鑒定,擴(kuò)大處理器可訪問(wèn)的內(nèi)存空間為4G,啟用段 頁(yè)式內(nèi)存管理機(jī)制;在保護(hù)模式向?qū)嵞J睫D(zhuǎn)換時(shí),屏蔽相關(guān)的寄存器,將內(nèi) 存可訪問(wèn)空間回到1M,啟用分段式內(nèi)存管理機(jī)制。5) 、 SMI及系統(tǒng)管理模式
X86處理器有一種特殊的運(yùn)行模式,稱為系統(tǒng)管理模式(SMM),它必須 由一外部中斷信號(hào)觸發(fā)才能進(jìn)入,稱為SMI中斷(系統(tǒng)管理中斷)。在RISC 體系的處理器中沒(méi)有此類模式和中斷。鑒于SMI的中斷最高優(yōu)先級(jí)和不可屏 蔽特點(diǎn),在RISC體系的處理器中選用 一個(gè)最高先級(jí)的中斷來(lái)才莫擬SMI中斷, 相應(yīng)的中斷服務(wù)程序?qū)崿F(xiàn)系統(tǒng)管理模式的切換和堆棧保護(hù)。在收到SMI中斷 時(shí),保存寄存器于堆棧中,同是通知內(nèi)存管理單元,切換系統(tǒng)管理內(nèi)存為可 訪問(wèn)狀態(tài)。在系統(tǒng)管理模式,使用專用內(nèi)存段。該段為實(shí)模式下A000和B000 段,128KB大小,內(nèi)存管理單元保證,在系統(tǒng)管理模式下所指向的為RAM, 而不是VGA設(shè)備的顯示緩沖。6)、內(nèi)存管理模塊X86處理器因?yàn)榧嫒菰缙谔幚砥鞯脑?,有?shí)模式、增強(qiáng)模式、保護(hù)模 式、虛擬實(shí)模式和系統(tǒng)管理模式之分,不同的模式其內(nèi)存管理機(jī)制不同,有 分段式內(nèi)存管理和段頁(yè)式內(nèi)存管理兩種機(jī)制。RISC處理器大都是平鋪時(shí)內(nèi)存 管理,含MMU的處理器可支持虛擬內(nèi)存。本內(nèi)存管理模塊就是在RISC處理 器實(shí)現(xiàn)兩種內(nèi)存管理機(jī)制,由兩個(gè)子模塊組成。實(shí)模式下的分段是管理由純 軟件實(shí)現(xiàn),在尋址時(shí)根據(jù)段寄存器和偏移寄存器的值計(jì)算內(nèi)存物理地址的方 法決定。段頁(yè)式管理根據(jù)有MMU和不含MMU兩種RISC處理器有兩種不同 的實(shí)現(xiàn)機(jī)制。
權(quán)利要求
1、一種異構(gòu)虛擬處理器,其特征在于,所述異構(gòu)虛擬處理器包括2X86層和VBIOS層,所述2X86層在RISC處理器上虛擬兼容X86的軟處理器,所述VBIOS層在X86兼容的軟處理器上為操作系統(tǒng)層虛擬一個(gè)PC兼容的完整平臺(tái),從而所述異構(gòu)虛擬處理器實(shí)現(xiàn)從RISC處理器到X86平臺(tái)間的跨度,運(yùn)行X86平臺(tái)的操作系統(tǒng)和應(yīng)用軟件。
2、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述VBIOS層 在多種RISC架構(gòu)下虛擬X86硬件平臺(tái)并直接移植X86硬件平臺(tái)下的操作系 統(tǒng)及應(yīng)用程序。
3、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2X86層完 成計(jì)算機(jī)語(yǔ)言的識(shí)別。
4、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2X86層包 括寄存器。
5、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2X86層實(shí) 現(xiàn)單一流水線指令運(yùn)行機(jī)制。
6、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2x86層捕 捉X86硬件平臺(tái)上的上電/復(fù)位信號(hào)。
7、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2x86層實(shí) 現(xiàn)實(shí)模式向保護(hù)模式的管理和切換。
8、 如權(quán)利要求1所述的異構(gòu)虛擬處理器,其特征在于,所述2x86層支 持分段式內(nèi)存管理和段頁(yè)式內(nèi)存管理兩種機(jī)制。
全文摘要
本發(fā)明公開(kāi)了一種異構(gòu)虛擬處理器,所述異構(gòu)虛擬處理器包括2X86層和VBIOS層,所述2X86層在RISC處理器上虛擬兼容X86的軟處理器,所述VBIOS層在X86兼容的軟處理器上為操作系統(tǒng)層虛擬一個(gè)PC兼容的完整平臺(tái),從而所述異構(gòu)虛擬處理器實(shí)現(xiàn)從RISC處理器到X86平臺(tái)間的跨度,運(yùn)行X86平臺(tái)的操作系統(tǒng)和應(yīng)用軟件。本發(fā)明異構(gòu)虛擬處理器通過(guò)在RISC體系硬件平臺(tái)添加一個(gè)軟件層來(lái)模擬X86平臺(tái),實(shí)現(xiàn)一個(gè)虛擬而且兼容X86的硬件平臺(tái),從而順利運(yùn)行X86平臺(tái)下的所有OS、應(yīng)用程序等系列軟件。
文檔編號(hào)G06F9/44GK101118488SQ20061006201
公開(kāi)日2008年2月6日 申請(qǐng)日期2006年8月3日 優(yōu)先權(quán)日2006年8月3日
發(fā)明者劉志永 申請(qǐng)人:深圳市研祥智能科技股份有限公司