作為中間件的平臺(tái)無關(guān)isa仿真器的制造方法
【專利摘要】硬件/軟件架構(gòu)能夠包括多個(gè)軟件應(yīng)用運(yùn)行于其上的高級(jí)軟件棧、具有硬件平臺(tái)類型的基礎(chǔ)硬件平臺(tái)以及駐留在高級(jí)軟件棧與基礎(chǔ)硬件平臺(tái)之間并且配置成允許所述多個(gè)軟件應(yīng)用中的兩個(gè)或更多與硬件平臺(tái)類型無關(guān)地彼此交互的中間件層。
【專利說明】作為中間件的平臺(tái)無關(guān)ISA仿真器
【技術(shù)領(lǐng)域】
[0001]一般來說,所公開技術(shù)涉及硬件/軟件架構(gòu),以及更具體來說,涉及用于平臺(tái)無關(guān)架構(gòu)的中間件。
【背景技術(shù)】
[0002]當(dāng)前,操作系統(tǒng)(OS)和軟件應(yīng)用棧整體地捆綁到它們運(yùn)行于其上的平臺(tái)架構(gòu)。因此,對(duì)應(yīng)后端架構(gòu)必須基于并且開始于應(yīng)用編程接口(API)以及具體平臺(tái)特定的指令集來開發(fā)。除非本機(jī)(native)硬件和指令集以某種方式來修改以適應(yīng)應(yīng)用/OS棧的需要,否則該平臺(tái)可能不是可行的。
[0003]如果遺留應(yīng)用依靠遺留指令集架構(gòu)(ISA),則當(dāng)今的平臺(tái)和操作系統(tǒng)除了本機(jī)方式之外就沒有支持它的方式,這僅增加雙邊的需求,從而引起多個(gè)負(fù)面結(jié)果的任一個(gè),例如效率的降低以及功率消耗的增加。
[0004]因此,仍然需要改進(jìn)的硬件/軟件架構(gòu)、特別是針對(duì)駐留其之間的中間件。
【專利附圖】
【附圖說明】
[0005]通過附圖、作為舉例而不是限制來示出所公開技術(shù)的實(shí)施例,附圖中,相似的參考標(biāo)號(hào)表示相似的元件。
[0006]圖1是示出當(dāng)前平臺(tái)相關(guān)硬件/軟件架構(gòu)的示例的框圖。
[0007]圖2是示出按照所公開技術(shù)的某些實(shí)施例的平臺(tái)無關(guān)硬件/軟件架構(gòu)的示例的框圖。
[0008]圖3示出按照所公開技術(shù)的某些實(shí)施例的中間件層、例如圖2的平臺(tái)無關(guān)架構(gòu)中的中間件層的示例。
[0009]圖4示出可實(shí)現(xiàn)所公開技術(shù)的實(shí)施例的某些方面的裝置的示例。
[0010]圖5是示出按照所公開技術(shù)的某些實(shí)施例的聯(lián)網(wǎng)系統(tǒng)的示例的框圖。
【具體實(shí)施方式】
[0011]所公開技術(shù)的某些實(shí)施例允許為特定硬件和/或指令集架構(gòu)(ISA)所開發(fā)的應(yīng)用是可行的、例如被支持,而與它們必須運(yùn)行于其上的硬件平臺(tái)的類型無關(guān)。這類實(shí)施例可用來消除硬件設(shè)計(jì)專一性以及一些情況中、支持依靠對(duì)應(yīng)硬件和/或ISA的應(yīng)用所需的對(duì)應(yīng)開銷。
[0012]某些實(shí)現(xiàn)包括利用靈活、可適配并且易于修改的二進(jìn)制(binary)仿真器,以充當(dāng)高級(jí)應(yīng)用/OS棧與對(duì)應(yīng)平臺(tái)硬件架構(gòu)之間的轉(zhuǎn)換器。從運(yùn)行于平臺(tái)的應(yīng)用的角度來看,這個(gè)中間件層可抽象出硬件,并且提供它們可與其通信的通用、例如標(biāo)準(zhǔn)化接口或者可編程仿真器接口。這類實(shí)施例使應(yīng)用能夠與平臺(tái)上的本地硬件進(jìn)行交互,而與它例如是ARM還是LA ISA或者實(shí)際上任何其它類型的架構(gòu)無關(guān)。
[0013]某些實(shí)現(xiàn)可允許所有對(duì)應(yīng)應(yīng)用是可移植的,而與基礎(chǔ)平臺(tái)架構(gòu)、例如ARM或者另外某種類型的架構(gòu)無關(guān)。實(shí)現(xiàn)可允許平臺(tái)硬件設(shè)計(jì)擺脫例如通過硬件中所實(shí)現(xiàn)的遺留支持,并且基本上不受阻礙,因?yàn)樗鼈優(yōu)榻?jīng)過硬件演進(jìn)/重新設(shè)計(jì)的持續(xù)性能改進(jìn)而努力。
[0014]應(yīng)用棧開發(fā)人員可依靠按照所公開技術(shù)的中間件層所提供的接口選項(xiàng)來與后端硬件進(jìn)行通信。那些接口選項(xiàng)可包括新的通用標(biāo)準(zhǔn)指令集或者當(dāng)前ISA的情況中、與其關(guān)聯(lián)的應(yīng)用的改進(jìn)可移植性。
[0015]所公開技術(shù)的某些實(shí)現(xiàn)可包括仿真某些類型的功能性,而不是本機(jī)地實(shí)現(xiàn)這種功能性。例如,這種架構(gòu)中的處理器可具有足夠處理能力(如根據(jù)中央處理器(CPU)和/或圖形處理單元(GPU)能力所測(cè)量)來仿真ARM ISA。在這個(gè)上下文中,二進(jìn)制仿真器要被認(rèn)為是中間件。
[0016]在涉及較小核心、例如小架構(gòu)的某些實(shí)施例中,具有較長(zhǎng)等待時(shí)間的指令可卸載到仿真器,以便促進(jìn)功能性和/或性能方面的折衷。這類實(shí)施例可包括用于卸載遺留ISA、例如x87 ISA、外部ISA和/或不太頻繁運(yùn)行的ISA、同時(shí)在中間件中保持兼容性層的機(jī)制。例如,這些實(shí)現(xiàn)可擴(kuò)展到包括通過通用串行總線(USB)連接的RS-232協(xié)議的仿真、以減少遺留端口的數(shù)量的情況。
[0017]圖1是示出當(dāng)前平臺(tái)相關(guān)硬件/軟件架構(gòu)100的示例的框圖。架構(gòu)100包括例如應(yīng)用和/或軟件組件等的軟件層110以及硬件平臺(tái)130。中間件層120如雙向箭頭112所示來與硬件平臺(tái)130進(jìn)行交互,并且還通過應(yīng)用編程接口層115來與軟件層110進(jìn)行交互,如雙向箭頭128所示。
[0018]圖2是示出按照所公開技術(shù)的某些實(shí)施例的平臺(tái)無關(guān)硬件/軟件架構(gòu)200的示例的框圖。在本示例中,例如,架構(gòu)200包括例如操作系統(tǒng)(OS)和軟件應(yīng)用等的高級(jí)軟件棧210以及例如ARM架構(gòu)等的硬件平臺(tái)230。架構(gòu)200還包括中間件層220,其駐留在高級(jí)軟件棧210與硬件平臺(tái)230之間。中間件層220如雙向箭頭212所示來與軟件層210進(jìn)行交互,并且還與硬件平臺(tái)230進(jìn)行交互,如雙向箭頭228所示。
[0019]在本示例中,二進(jìn)制仿真器中間件220可成為一個(gè)高級(jí)軟件棧210,并且因此具有與傳統(tǒng)軟件關(guān)聯(lián)的優(yōu)點(diǎn)的任一個(gè)或全部,例如靈活性、可編程性和快速轉(zhuǎn)向,而沒有必須重新設(shè)計(jì)本機(jī)硬件平臺(tái)230以支持新的和/或多個(gè)指令集或者改進(jìn)性能的開銷。
[0020]在某些實(shí)施例中,中間件層220可使基于ARM的應(yīng)用運(yùn)行于其它架構(gòu),并且反過來也是一樣,因而引起應(yīng)用和平臺(tái)的改進(jìn)互通。這可轉(zhuǎn)換成平臺(tái)、應(yīng)用的拓寬適用性以及最終的顧客可用的選擇數(shù)量。
[0021]在某些實(shí)現(xiàn)中,架構(gòu)200可允許將遺留ISA或低性能ISA的操控卸載到中間件220,以便例如使架構(gòu)200不受阻礙地、自由確定新的性能目標(biāo)。
[0022]圖3示出按照所公開技術(shù)的某些實(shí)施例的中間件層300、例如圖2的平臺(tái)無關(guān)架構(gòu)200中的中間件層220的示例。中間件層300包括可編程接口 302,其能夠與各種類型的平臺(tái)架構(gòu)進(jìn)行接口。中間件層300還可包括轉(zhuǎn)換器/仿真器304、標(biāo)準(zhǔn)化應(yīng)用/OS接口 306、可編程ARM或其它接口 308或者它們的任何組合。
[0023]圖4示出可實(shí)現(xiàn)所公開技術(shù)的實(shí)施例的某些方面的裝置400的示例。裝置400可包括但不限于:計(jì)算裝置,例如臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī);移動(dòng)裝置,例如手持或平板計(jì)算機(jī);通信裝置,例如智能電話;或者工業(yè)特定機(jī)器,例如售貨機(jī)或ATM。
[0024]裝置400包括殼體402、與殼體402關(guān)聯(lián)的顯示器404、與殼體402關(guān)聯(lián)的輸入機(jī)構(gòu)406、殼體402中的處理器408以及殼體402中的存儲(chǔ)器410。輸入機(jī)構(gòu)406可包括例如鍵盤等的物理裝置或者例如觸摸屏中實(shí)現(xiàn)的虛擬小鍵盤等的虛擬裝置。處理器408可執(zhí)行實(shí)際上多個(gè)操作的任一個(gè),例如以上所述的那些操作。存儲(chǔ)器410可存儲(chǔ)產(chǎn)生于處理器408所執(zhí)行的處理的信息。
[0025]圖5是示出按照所公開技術(shù)的某些實(shí)施例的聯(lián)網(wǎng)系統(tǒng)500的示例的框圖。在本示例中,系統(tǒng)500包括網(wǎng)絡(luò)502,例如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、家庭網(wǎng)絡(luò)或者它們的任何組合。個(gè)人計(jì)算機(jī)5045 506可連接到網(wǎng)絡(luò)502,以便相互通信或者與連接到網(wǎng)絡(luò)的其它裝置進(jìn)行通信。
[0026]系統(tǒng)500還包括三個(gè)移動(dòng)電子裝置508-512。移動(dòng)電子裝置中的兩個(gè)508和510是通信裝置,例如蜂窩電話或智能電話。移動(dòng)裝置中的另一個(gè)512是手持計(jì)算裝置,例如個(gè)人數(shù)字助理(PDA)或平板裝置。遠(yuǎn)程存儲(chǔ)裝置514可存儲(chǔ)供計(jì)算機(jī)504和506或者移動(dòng)電子裝置508-512的任一個(gè)來訪問和使用的數(shù)據(jù)的一些或全部。
[0027]在某些實(shí)現(xiàn)中,平臺(tái)無關(guān)硬件/軟件架構(gòu)、例如圖2的架構(gòu)200可跨越所示系統(tǒng)500中的裝置的任一個(gè)或全部。例如,運(yùn)行于臺(tái)式計(jì)算機(jī)504的應(yīng)用可設(shè)法與運(yùn)行于移動(dòng)裝置512的應(yīng)用進(jìn)行交互。平臺(tái)無關(guān)架構(gòu)可允許并且促進(jìn)兩個(gè)裝置504與512之間的這種通信,而與基礎(chǔ)硬件平臺(tái)無關(guān)。
[0028]所公開技術(shù)的實(shí)施例可結(jié)合到各種類型的架構(gòu)中。例如,某些實(shí)施例可實(shí)現(xiàn)為下列任一個(gè)或者組合:使用主板所互連的一個(gè)或多個(gè)微芯片或集成電路、圖形和/或視頻處理器、多核處理器、硬連線邏輯、由存儲(chǔ)器裝置所存儲(chǔ)并且由微處理器所運(yùn)行的軟件、固件、專用集成電路(ASIC)和/或現(xiàn)場(chǎng)可編程門陣列(FPGA)。如本文所使用的術(shù)語“邏輯”作為舉例可包括軟件、硬件或者它們的任何組合。
[0029]雖然本文示出和描述了具體實(shí)施例,但是本領(lǐng)域的技術(shù)人員將領(lǐng)會(huì),在不背離所公開技術(shù)的實(shí)施例的范圍的情況下,廣泛的各種備選和/或等同實(shí)現(xiàn)可取代所示和所述的具體實(shí)施例。本申請(qǐng)意在涵蓋本文所示和所述實(shí)施例的任何適配或變更。因此,所公開技術(shù)的實(shí)施例顯然旨在僅由隨附權(quán)利要求及其等同來限制。
【權(quán)利要求】
1.一種硬件/軟件架構(gòu),包括: 高級(jí)軟件棧,其上多個(gè)軟件應(yīng)用正在運(yùn)行; 基礎(chǔ)硬件平臺(tái),具有硬件平臺(tái)類型;以及 中間件層,駐留在所述高級(jí)軟件棧與所述基礎(chǔ)硬件平臺(tái)之間,并且配置成允許所述多個(gè)軟件應(yīng)用中的兩個(gè)或更多與所述硬件平臺(tái)類型無關(guān)地彼此交互。
2.如權(quán)利要求1所述的硬件/軟件架構(gòu),包括所述高級(jí)軟件棧中的至少一個(gè)操作系統(tǒng)(OS)。
3.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述硬件平臺(tái)類型包括ARM指令集架構(gòu)(ISA)。
4.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述中間件層還配置成提供包括新的通用標(biāo)準(zhǔn)指令集的接口選項(xiàng)。
5.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述多個(gè)軟件應(yīng)用包括基于ARM的應(yīng)用,并且其中所述中間件層還配置成使所述基于ARM的應(yīng)用能夠運(yùn)行于不同的架構(gòu)之上。
6.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述中間件層還配置成接收卸載的遺留指令集架構(gòu)。
7.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述中間件層還配置成接收卸載的低性能指令集架構(gòu)。
8.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述中間件層包括指令集架構(gòu)(ISA)仿真器。
9.如權(quán)利要求1所述的硬件/軟件架構(gòu),其中,所述中間件層包括架構(gòu)無關(guān)二進(jìn)制轉(zhuǎn)換器/仿真器。
10.如權(quán)利要求9所述的硬件/軟件架構(gòu),其中,所述二進(jìn)制轉(zhuǎn)換器/仿真器配置成與所述高級(jí)軟件棧相集成。
11.如權(quán)利要求9所述的硬件/軟件架構(gòu),其中,所述二進(jìn)制轉(zhuǎn)換器/仿真器是靈活、可適配并且易于修改的。
12.—種系統(tǒng),包括: 第一裝置,使用第一操作系統(tǒng)(OS)來運(yùn)行第一軟件應(yīng)用; 第二裝置,使用第二 OS來運(yùn)行第二軟件應(yīng)用; 基礎(chǔ)硬件平臺(tái),具有硬件平臺(tái)類型;以及 中間件層,駐留在所述第一和第二 OS的每個(gè)OS與所述基礎(chǔ)硬件平臺(tái)之間,所述中間件層配置成促進(jìn)所述第一與第二軟件應(yīng)用之間的通信,而與所述硬件平臺(tái)類型無關(guān)。
13.如權(quán)利要求12所述的系統(tǒng),其中,所述中間件層包括架構(gòu)無關(guān)二進(jìn)制轉(zhuǎn)換器/仿真器。
14.如權(quán)利要求12所述的系統(tǒng),其中,所述第一和第二裝置中的至少一個(gè)包括移動(dòng)電子裝置。
15.—種機(jī)器控制方法,包括: 在具有硬件平臺(tái)的架構(gòu)中,中間件層接收來自在第一裝置上的第一軟件棧中運(yùn)行的第一軟件應(yīng)用的與第二軟件應(yīng)用進(jìn)行通信的請(qǐng)求,所述第二軟件應(yīng)用在第二裝置上的第二軟件棧中運(yùn)行,所述硬件平臺(tái)具有硬件平臺(tái)類型;以及所述中間件層與所述硬件平臺(tái)類型無關(guān)地準(zhǔn)許所述請(qǐng)求。
16.如權(quán)利要求15所述的機(jī)器控制方法,還包括將遺留指令集架構(gòu)、低性能指令集架構(gòu)或者它們兩者卸載到所述中間件層。
17.如權(quán)利要求15所述的機(jī)器控制方法,還包括所述中間件層提供包括新的通用標(biāo)準(zhǔn)指令集的接口選項(xiàng)。
18.一種存儲(chǔ)指令的非暫態(tài)機(jī)器可讀媒體,所述指令在由處理器運(yùn)行時(shí)使所述處理器: 在具有硬件平臺(tái)的架構(gòu)中,接收來自在第一裝置上的第一軟件棧中運(yùn)行的第一軟件應(yīng)用的與第二軟件應(yīng)用進(jìn)行通信的請(qǐng)求,所述第二軟件應(yīng)用在第二裝置上的第二軟件棧中運(yùn)行,所述硬件平臺(tái)具有硬件平臺(tái)類型;以及 與所述硬件平臺(tái)類型無關(guān)地準(zhǔn)許所述請(qǐng)求。
19.如權(quán)利要求18所述的非暫態(tài)機(jī)器可讀媒體,其中,所述指令還使所述處理器使遺留指令集架構(gòu)、低性能指令集架構(gòu)或者它們兩者被卸載到平臺(tái)無關(guān)中間件層。
20.如權(quán)利要求18所述的非暫態(tài)機(jī)器可讀媒體,其中,所述指令還使所述處理器使基于ARM的應(yīng)用能夠運(yùn)行于 不同的架構(gòu)之上。
【文檔編號(hào)】G06F9/44GK104025074SQ201180076052
【公開日】2014年9月3日 申請(qǐng)日期:2011年12月30日 優(yōu)先權(quán)日:2011年12月30日
【發(fā)明者】S.R.庫瑪, S.R.尹加 申請(qǐng)人:英特爾公司