版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java協(xié)同處理器上之虛擬機器Java Virtual Machine on ARM with CCL Java Coprocessor摘要本篇論文首先描描述從軟體研研發(fā)人員的角角度, 和CCPU團隊共共同製定Jaava協(xié)同處處理器時, 所進行的研研究方法及發(fā)發(fā)現(xiàn). 本團團隊將Javva虛擬機器器移植至ARRM 7搭配配Java協(xié)協(xié)同處理器之之平臺, 並並進行效能提提升, 效果果可達到8倍倍.關(guān)鍵詞Java Viirtuall Machhine JJava虛擬擬機器Java Cooproceessor Java協(xié)協(xié)同處理器ARM ARMM處理器1. 前言2. Methhodoloogy (SS
2、teps)2.1 決定定支援的位元元碼2.2 效能預(yù)預(yù)估2.3 isssues3. Encoounterred Prroblemms4. 大函式框框的處理機制制5. 指令摺疊疊(Paull)前言個式言平碼性傳統(tǒng)的程程式語言,原原始碼經(jīng)由編編譯器轉(zhuǎn)換成成某處理器特特定的機器碼碼,該機器碼碼只能在特定定的處理器上上執(zhí)行。如果果想在不同的的處理器上執(zhí)執(zhí)行同樣的程程式,必須再再度使用編譯譯器將原始碼碼轉(zhuǎn)換成另一一處理器之機機器碼。語平則編始位位是器而器執(zhí)a可碼一轉(zhuǎn)處令a語位可硬任統(tǒng)只存v器語在度式好可處行v言的須v器機後理多續(xù)是va器執(zhí)不位器續(xù)加a作a本以式是理alJps可而配理no及e8-於二處ao
3、e)配理平主模要v透理J同醒直a碼iiJe此類內(nèi)器e sr於之處記J元即v翻理碼的la的R電通所發(fā)表過獨v這器不另器可可成是理系工使花這的所v理這器可理之使要工是較的協(xié)所處RD設(shè)計方法2.1 決定支支援的位元碼碼首先我們必須決決定Javaa器位支碼部下果例在雜有理理JJava同行而間)成之3.4. 大函式框框的處理機制制由Java協(xié)同同處理器對於於堆疊快取的的設(shè)計所致,運運行於其上之之Java虛虛擬機器僅能能支援函式框框大小(該函函式之區(qū)域變變數(shù),框節(jié)構(gòu)構(gòu)及最大堆疊疊的總合) 在60個項項目以下的JJava函式式。但在Jaava程式的的執(zhí)行過程中中,少數(shù)的情情況下會遇到到函式框大於於60的Ja
4、ava函式,因因此我們的KKVM必須透透過軟體的方方式來解決這這個問題。當當函式框大於於60,以下下稱為大函式式框,其他情情況則稱為小小函式框。我們需要設(shè)計及及修改的地方方包括了:Java協(xié)同處處理器對於大大函式框的處處理執(zhí)行緒的切換與pushFrrame,ppopFraame,thhrowExxceptiion相關(guān)的的部分4.1 Javva協(xié)同處理理器對於大函函式框的處理理a協(xié)同之器元Saivo被J協(xié)同同到之會遇理才表之處的原v協(xié)同此非而被J協(xié)同同到碼接交格理函處式O此利)函式式框運行於非而函式框運運行於O在KVM中針針對大函式框框我們增加了了幾個全域變變數(shù)來儲存大大函式框的執(zhí)執(zhí)行狀態(tài),分分
5、別是lp_globaal,sp_globaal,fp_globaal,各代表表大函式框執(zhí)執(zhí)行時的區(qū)域域變數(shù)指標,堆堆疊頂端指標標,目前函式式框指標(ccurrennt fraame poointerr)。另外亦亦增加了一FFSO變數(shù),其其意義等同於於協(xié)同同態(tài)之元,而其存在在是為了加速速用,可不必必每次都得透透過a協(xié)同介F,可可節(jié)省協(xié)同處的當虛擬機器遇到到函式呼叫之之位元碼時(invokkevirttual, invokkespeccial, invokkestattic, iinvokeeinterrface),若經(jīng)判斷斷必須進入大大函式框之狀狀態(tài),便會將將Java協(xié)協(xié)同處理器的的堆疊快取清清
6、空,存入記記憶體中,並並且抑能堆疊疊快取,設(shè)定定Java協(xié)協(xié)同處理器,讓讓她進入大函函式框的執(zhí)行行狀態(tài)。此後後之堆疊存取取便由軟體來來負責,執(zhí)行行位元碼的時時候還是透過過JAExeecuteJJava,只只不過在大函函式框的執(zhí)行行模式下,JJava協(xié)同同處理器並不不會真的去執(zhí)執(zhí)行位元碼,只只是按照一般般小函式框的的模式把程式式計數(shù)器的值值作累加,也也把該位元碼碼對應(yīng)的函式式指標傳遞給給KVM,讓讓虛擬機器來來執(zhí)行該位元元碼。另外需要修改JJava協(xié)同同處理器的介介面函式,原原本直接對JJava 協(xié)協(xié)同處理器下下命令的動作作,現(xiàn)在必須須判斷是大函函式框或是小小函式框而採採取不同的動動作。JAPu
7、shSStack,JJAPopSStack,JJAWritteStacckEntrry,JARReadSttackEnntry必須須增加FSOO的判斷式來來決定要對送送出協(xié)同處理理器指令(mmcr/mrrc)請Jaava協(xié)同處處理器做處理理或是直接對對記憶體進行行操作。除此此之外還有JJAReaddLocallVaribbale和JJAWritteLocaalVariibale,JJAReaddFrameeEntryy,JAWrriteFrrameEnntry亦必必須加入FSSO的判斷式式。另外geetSP322(),geetLP322(),geetFP322()這三個個函式,當遇遇到大函式框
8、框時,就改成成直接傳回ssp_gloobal,llp_gloobal,ffp_gloobal。透過修改Javva協(xié)同處理理器的介面,好好處就是可以以讓處理大函函式框和小函函式框的程式式碼幾乎是一一樣的,因為為判斷的部分分在介面的部部分處理掉了了。4.2 執(zhí)行緒緒的切換主要是修改thhread.c中的looadExeecutioonEnviironmeent函式,執(zhí)執(zhí)行JALooadThrreadCoontextt之後如果LLoad進來來的執(zhí)行緒是是在大函式框框中執(zhí)行,那那麼必須將ssp,fp,llp,設(shè)定給給sp_gllobal,ffp_gloobal,llp_gloobal,並並且將FSOO
9、設(shè)為 1。4.3 與puushFraame,poopFramme,thrrowExcceptioon相關(guān)的部部分這部分定義在fframe.c裡,除了了pushFFrame和和popFrrame這兩兩個函式之外外還有excceptioon處理的部部分,fraame.c中中的throowExceeptionn。根據(jù)目前的函式式是大函式框框或小函式框框,以及即將將執(zhí)行的函式式是大函式框框或小函式框框,可以分成成四種情況。小函式框切換到到大函式框小函式框切換到到小函式框大函式框切換到到大函式框大函式框切換到到小函式框當進行函式呼叫叫的處理時,在在pushFFrame 函式中必須須考慮到這四四種情況。當
10、當進行函式返返回的處理時時,在poppFramee函式中亦必必須考慮到這這四種情況。此此外,在進行行例外處理時時,在thrrowExcceptioon函式中亦亦必須考慮到到這四種情況況。虛擬機器中,ppopFraame函式的的處理方式如如下所述:透過FSO的值值,我們可以以知道目前執(zhí)執(zhí)行的函式屬屬於大函式框框或是小函式式框。由大函式框返回回大函式框當目前處於大函函式框的狀態(tài)態(tài),由於Jaava堆疊都都在記憶體中中,所以透過過fp_gllobal指指向框結(jié)構(gòu)中中的prevviousFFp,就可以以知道之前的的函式是大函函式框或是小小函式框。此此時之前的函函式亦是大函函式框,因此此堆疊仍然存存在記憶
11、體中中,我們只需需調(diào)整sp_globaal,fp_globaal,lp_globaal,設(shè)定CCP,IP之之後便完成ppopFraame的動作作。由大函式框返回回小函式框若之前的函式是是小函式框,則則我們?nèi)〉弥暗暮降牡膕p,lpp,fp之後後必須將之轉(zhuǎn)轉(zhuǎn)成7bitt的格式放到到CurreentThrread的JJA_CTRRL變數(shù),取取消FSO 位元,打開開SPILLL_FILLL_BIT,再再呼叫l(wèi)oaadExeccutionnEnvirronmennt將這些變變數(shù)設(shè)定到JJava協(xié)同同處理器之中中,設(shè)定CPP,IP便完完成了SmaallFraame的設(shè)定定。由小函式框返回回小函式框若
12、FSO的值為為0,我們可可得知目前是是小函式框,透透過硬體取得得之前的prreviouusFp可以以得知之前的的函式是大函函式框或是小小函式框。若若是小函式框框,則按照JJava協(xié)同同處理器的設(shè)設(shè)計,這是預(yù)預(yù)設(shè)的情況,透透過硬體的指指令便可以完完成。由小函式框返回回大函式框若之前是大函式式框,則需呼呼叫storreExeccutionnEnvirronmennt將整個JJava 協(xié)協(xié)同處理器包包含的堆疊快快取清空,存存放至記憶體體中,設(shè)定ssp_gloobal,ffp_gloobal,llp_gloobal,CCP,IP之之後便完成ppop動作。虛擬機器中,ppushFrrame的處處理情形如
13、下下所述:透過FSO的值值,可得知目目前的函式屬屬於大框函式式或是小框函函式。計數(shù)下下一個函式框框的大小(最最大堆疊數(shù)加加上區(qū)域變數(shù)數(shù)個數(shù)加上框框結(jié)構(gòu)之大小小)便可得知知下一個函式式屬於大框函函式或是小框框函式。由大框函式呼叫叫大框函式由於堆疊已放於於記憶體中,因因此設(shè)定新的的函式框,調(diào)調(diào)整 fp_globaal,sp_globaal,lp_globaal,設(shè)定JJava協(xié)同同處理器新的的CP,IPP,便完成ppushFrrame的動動作。由大框函式呼叫叫小框函式此時需要進入硬硬體執(zhí)行的模模式,必須設(shè)設(shè)定CurrrentThhread的的JA_CTTRL,將新新的sp,llp,fp轉(zhuǎn)轉(zhuǎn)成7 b
14、iits設(shè)定至至Java協(xié)協(xié)同處理器,關(guān)關(guān)掉FSO位位元,開啟SSPILL_FILL_BIT,將將FSO變數(shù)數(shù)設(shè)為0,設(shè)設(shè)定新的函式式框,設(shè)定硬硬體 CP,IIP之後,呼呼叫l(wèi)oaddExecuutionEEnviroonmentt,讓Javva協(xié)同處理理器重新開始始執(zhí)行。由小框函式呼叫叫大框函式由於要進入大框框函式,因此此需呼叫sttoreExxecutiionEnvvironmment將堆堆疊快取清空空,並存放至至記憶體中,設(shè)設(shè)定新的函式式框,調(diào)整llp_gloobal,ffp_gloobal,ssp_gloobal,開開啟FSO位位元,關(guān)掉SSPILL_FILL_BIT,將將FSO變數(shù)數(shù)
15、設(shè)為1,如如此便完成呼呼叫BigFFrame的的動作。由小框函式呼叫叫小框函式這是最單純的情情況,設(shè)定JJava協(xié)同同處理器的ttmpregg0,tmppreg1,ttmpregg2後呼叫JJAPushhFramee便完成。虛擬機器中,tthrowEExcepttion處理理情況如下所所述:當Excepttion發(fā)生生時,首先呼呼叫storreExeccutionnEnvirronmennt將堆疊快快取清空,並並存放至記憶憶體中,再由由記憶體中的的資料來處理理。在找尋例例外處理函式式(exceeptionn handdler)的的過程中,我我們可能會一一直推出(ppop)函式式框,由於這這時候
16、是在記記憶體中處理理,所以不論論目前處於大大框函式或是是小框函式,處處理方式皆相相同。如果找找到了例外處處理函式,虛虛擬機器需要要執(zhí)行該函式式框之例外處處理函式,此此時便要重新新進行設(shè)定,讓讓Java協(xié)協(xié)同處理器可可以執(zhí)行大框框函式及小框框函式。之前前在不斷推出出函式框的過過程中,透過過函式框中的的previiousFPP,我們可以以得知要進入入的函式是大大框函式或是是小框函式,因因此當找到例例外處理函式式時,有兩種種可能的狀況況需要處理:例外處理函式位位於大框函式式內(nèi)由於目前的Jaava堆疊已已經(jīng)存在於記記憶體中,因因此僅需要調(diào)調(diào)整sp_ggloball,fp_ggloball,lp_ggloball,設(shè)定Jaava協(xié)同處處理器新的CCP,IP,將將例外物件(excepp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版工廠承包產(chǎn)品質(zhì)量監(jiān)控與售后服務(wù)協(xié)議3篇
- 2025年度食品加工設(shè)備抵押租賃協(xié)議4篇
- 2025年私募基金財產(chǎn)代持及投資退出協(xié)議3篇
- 2025年二零二五年度高端制造廠房產(chǎn)權(quán)轉(zhuǎn)讓合同書3篇
- 2025年度茶藝館品牌授權(quán)合作協(xié)議4篇
- 2025版綠化苗木生物多樣性保護合作協(xié)議3篇
- 二零二四年倉儲設(shè)施智能化改造合同3篇
- 2025年度冷鏈運輸臨時駕駛員用工合同4篇
- 二零二五版股權(quán)激勵計劃執(zhí)行補充協(xié)議3篇
- 2025版跨境電商臨時運輸合同4篇
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護賽項)備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
- 裝飾工程施工技術(shù)ppt課件(完整版)
- SJG 05-2020 基坑支護技術(shù)標準-高清現(xiàn)行
- 汽車維修價格表
- 司爐崗位應(yīng)急處置卡(燃氣)參考
- 10KV供配電工程施工組織設(shè)計
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護士安全警示教育培訓課件】--ppt課件
評論
0/150
提交評論