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