專利名稱:程序執(zhí)行裝置及便攜式信息處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種設(shè)定了用以執(zhí)行指定處理的程序執(zhí)行環(huán)境的裝置(在此稱為“程序執(zhí)行裝置”),特別涉及設(shè)定了不同結(jié)構(gòu)的兩種程序執(zhí)行環(huán)境的程序執(zhí)行裝置以及采用了該程序執(zhí)行裝置的便攜式信息處理裝置。
虛擬機執(zhí)行環(huán)境一般具有如圖11所述的結(jié)構(gòu)。
在圖中,70為平臺OS(操作系統(tǒng)),71為具有基于平臺OS的順序結(jié)構(gòu)的應用程序(在此,稱為“現(xiàn)有系統(tǒng)用應用程序71”)。前述OS 70,在未安裝虛擬機時,僅僅設(shè)定了只有現(xiàn)有系統(tǒng)用應用程序71工作的程序執(zhí)行環(huán)境(以下,將該OS 70稱為“通用OS 70”,將只有該現(xiàn)有系統(tǒng)用應用程序71工作的系統(tǒng)稱為“現(xiàn)有系統(tǒng)”)。
前述虛擬機80,在前述現(xiàn)有系統(tǒng)的OS 70上,其功能為驅(qū)動JavaTM的應用程序81(在圖中,表示為“虛擬機用應用程序81”)的OS。即、在虛擬機用應用程序81執(zhí)行某項處理時,表示該處理內(nèi)容的字節(jié)碼命令被從應用程序81傳至虛擬機后,在虛擬機80和OS 70之間進行基于前述命令的模擬并執(zhí)行前述應用程序81所要求的處理。
并且,上述虛擬機執(zhí)行環(huán)境,無庸置言,其硬件資源設(shè)定為CPU90、存儲器91(相當于下述圖11的ROM 92和RAM 93)等,如圖中帶箭頭的虛線所示,各應用程序71、81通過OS 70和CPU 90共用存儲器91。
圖12是表示設(shè)定了虛擬機執(zhí)行環(huán)境的其他系統(tǒng)結(jié)構(gòu)的圖。該系統(tǒng),其軟件結(jié)構(gòu)與前述圖11相同,但其硬件中,作為加速器的第2 CPU95與CPU 91連接,在通用OS 70處理來自虛擬機80的命令時,通過將該命令傳遞給第2 CPU 95并進行處理,來實現(xiàn)處理的高速化。所以,如圖中的虛線框所示,通過第2 CPU 95、存儲器91、各種裝置94等的硬件及虛擬機80來設(shè)定虛擬機執(zhí)行環(huán)境。
并且,在單獨驅(qū)動現(xiàn)有系統(tǒng)用應用程序71時或者進行由虛擬機用應用程序80利用現(xiàn)有系統(tǒng)的功能的處理時,和從前一樣,可以單獨通過現(xiàn)有的CPU 91來應對。
圖13是設(shè)定了虛擬機工作環(huán)境的第3系統(tǒng)結(jié)構(gòu)的圖。該系統(tǒng)的現(xiàn)有系統(tǒng)和虛擬機執(zhí)行環(huán)境被分別設(shè)定在獨立的硬件資源上,其采用的是兩個系統(tǒng)的CPU 91、91a連接的結(jié)構(gòu)。虛擬機執(zhí)行環(huán)境的硬件結(jié)構(gòu)和現(xiàn)有系統(tǒng)相同(由CPU 91a、ROM 92a、RAM 93a、裝置94a等構(gòu)成),但是,在軟件方面,除前述圖11、12的虛擬機80所具有的功能外卻安裝有設(shè)定了用以和現(xiàn)有系統(tǒng)交換數(shù)據(jù)的功能以及用以控制存儲器及裝置的功能等的專用OS 82。在虛擬機用應用程序81利用現(xiàn)有系統(tǒng)所具有的功能時,在該專用OS 82與現(xiàn)有系統(tǒng)通用OS 70之間進行發(fā)出請求以及返回與前述命令相應的處理的執(zhí)行結(jié)果的通信。
在前述圖11的系統(tǒng)中,存在著由于是通過基于OS 70的模擬來操作虛擬機80,所以,虛擬機用應用程序81的執(zhí)行速度會降低的問題。并且,由于現(xiàn)有系統(tǒng)用應用程序71和虛擬機80是在同一個OS 70上操作的,所以,容易發(fā)生資源的競爭,而且,由于不能避免對現(xiàn)有系統(tǒng)應用程序71的影響,所以必須改變程序。并且,即使是虛擬機執(zhí)行環(huán)境,也存在著下述問題由于線程管理和存儲器管理必須適合通用的OS 70,所以必須改變程序,因軟件變更會花費很多的時間和成本。
并且,由于是在現(xiàn)有系統(tǒng)和虛擬機執(zhí)行程序之間共享相同的存儲器及裝置,所以,將包含惡意的程序或者未經(jīng)充分檢測的程序作為虛擬機用應用程序81而安裝時,可能會破壞整個系統(tǒng)。
接著,在圖12的系統(tǒng)中,雖然通過加速器第2 CPU 95可以快速執(zhí)行虛擬機用應用系統(tǒng)81,但是為了連接該第2 CPU 95,必須改變現(xiàn)有的CPU 91的結(jié)構(gòu)。并且,在該系統(tǒng)中容易產(chǎn)生下述問題由于是在現(xiàn)有系統(tǒng)和虛擬機執(zhí)行環(huán)境之間共用存儲器91及裝置94,所以其安全性能會減弱。
根據(jù)圖13的系統(tǒng),現(xiàn)有系統(tǒng)的硬件和虛擬機執(zhí)行環(huán)境的硬件被分開,可以確保比圖11、12的系統(tǒng)更高的安全性能。但是,由于各個OS必須并行執(zhí)行對發(fā)生在系統(tǒng)內(nèi)部的命令的處理和對來自不同結(jié)構(gòu)的OS的命令的處理,所以使資源的排他性控制變得復雜化的問題。
在如上所述設(shè)定虛擬機執(zhí)行環(huán)境的以往的系統(tǒng)中,存在著硬件或軟件的結(jié)構(gòu)復雜化,不能確保充分安全等的問題。本發(fā)明正是著眼于上述問題,其目的是提供一種結(jié)構(gòu)簡單的、并且可以通過虛擬機快速執(zhí)行處理的、同時具備優(yōu)良的安全性能的程序執(zhí)行裝置。
并且,本發(fā)明的第2個目的,是通過將上述程序執(zhí)行裝置安裝在便攜式信息處理裝置內(nèi),利用現(xiàn)有裝置的電路結(jié)構(gòu)低成本地提供一種可以在虛擬機的執(zhí)行環(huán)境下進行高速處理的便攜式信息處理裝置。
這里所說的“運算電路”是指其主體為CPU,包括RAM、ROM等存儲器的計算機用電路,必要的話,可以連接輸入輸出裝置和外部存儲器等裝置?!俺绦驁?zhí)行環(huán)境”是指規(guī)定結(jié)構(gòu)的程序的操作環(huán)境,一般由運算電路硬件和OS軟件構(gòu)成。在本發(fā)明中,將構(gòu)成該程序執(zhí)行環(huán)境的硬件和軟件稱為“系統(tǒng)”。
在上述2種系統(tǒng)中,各個系統(tǒng)的程序執(zhí)行環(huán)境通過結(jié)構(gòu)不同的OS來設(shè)定。例如、在一個運算電路上設(shè)定與JavaTM的虛擬機相對應的虛擬機執(zhí)行環(huán)境,而在另一個運算電路上則設(shè)定基于其本身不包括該虛擬機執(zhí)行環(huán)境的OS(前述的通用OS)的程序執(zhí)行環(huán)境。
前述的共用存儲器,如同雙端口RAM那樣,是可以從兩個方向存取的存儲器。并且,如果前述的2個運算電路和共用存儲器被搭載到相同的基板上,那么可以將其作為執(zhí)行指定處理的信息處理裝置的控制裝置安裝在前述裝置內(nèi)。
并且,在本發(fā)明的各個系統(tǒng)內(nèi)分別設(shè)置用于執(zhí)行在要求另一方系統(tǒng)的處理發(fā)生時,表示該處理內(nèi)容的命令被寫入到前述共用存儲器內(nèi),并使另一方系統(tǒng)發(fā)生中斷的寫入控制,和根據(jù)前述中斷的發(fā)生從前述共用存儲器讀出前述命令的讀出控制的中繼裝置。
所謂“請求另一方系統(tǒng)的處理”,是其本身系統(tǒng)不具備的功能,而可以通過另一方系統(tǒng)所具有的功能進行的處理,換言之,意味著該處理必須參照處于其他系統(tǒng)管理之下的資源。例如、在前述虛擬機執(zhí)行環(huán)境與現(xiàn)有系統(tǒng)的關(guān)系中,鍵輸入信息從現(xiàn)有系統(tǒng)傳遞給虛擬機執(zhí)行環(huán)境,或者,虛擬機用應用程序基于數(shù)據(jù)顯示的需要而使用現(xiàn)有系統(tǒng)所具有的字體數(shù)據(jù)等,即適用于上述情形。
根據(jù)上述結(jié)構(gòu)的程序執(zhí)行裝置,由于雙方的系統(tǒng)分別設(shè)定在單獨的運算電路上,所以,各運算電路獨立地工作,因此,可以同時運行被安裝在各系統(tǒng)內(nèi)的應用程序。在此情形下,當一方系統(tǒng)必須利用另一方系統(tǒng)的功能進行處理時,該系統(tǒng)的命令中繼裝置會將表示該處理內(nèi)容的命令寫入到前述共用存儲器,并使另一方系統(tǒng)發(fā)生中斷。據(jù)此,另一方系統(tǒng)的命令中繼裝置會從共用存儲器取出前述被寫入的命令,并執(zhí)行該數(shù)據(jù)所表示的處理。
并且,當必須在接受前述命令的系統(tǒng)回傳命令的處理結(jié)果時,執(zhí)行處理的系統(tǒng)的命令中繼裝置會把指示收取前述處理結(jié)果的命令與前述處理結(jié)果一起寫入到共用存儲器內(nèi),并使另一方系統(tǒng)發(fā)生中斷。據(jù)此,另一方的系統(tǒng)的命令中繼裝置可以取出被寫入到共用存儲器內(nèi)的命令,獲得前面發(fā)生的處理的處理結(jié)果。
如前所述,上述結(jié)構(gòu)的共用存儲器和各系統(tǒng)的命令中繼裝置是作為向另一方系統(tǒng)發(fā)送命令或接受該命令的接口而發(fā)揮作用的。運算電路或共用存儲器的連接,由于可以利用通用的總線簡單地進行連接,所以沒有必要更多地改變命令中繼裝置以外的軟件的結(jié)構(gòu),而且,由于可以同時在單獨的硬件上運行各個系統(tǒng),所以可以實現(xiàn)處理的高速化和低成本化。
并且,由于系統(tǒng)間不共享資源,通過前述命令中繼裝置并根據(jù)來自另一方系統(tǒng)的中斷而自發(fā)地從共用存儲器讀出命令,因此,也可以象處理系統(tǒng)內(nèi)所發(fā)生的命令那樣來處理來自其他系統(tǒng)的命令,簡化排他性控制。并且,系統(tǒng)間數(shù)據(jù)的交換僅限于基于前述命令中繼裝置及共用存儲器的接口內(nèi),因此,容易確保對有惡意程序及未經(jīng)充分檢測的程序的安全性。
在上述程序執(zhí)行裝置的優(yōu)選形態(tài)下,前述共用存儲器為各系統(tǒng)分別設(shè)定了單獨的存儲區(qū)域,前述命令中繼裝置,在寫入控制時被設(shè)定在與另一方系統(tǒng)對應的存儲區(qū)域內(nèi),而在前述讀出控制時則被設(shè)定在與本身系統(tǒng)對應的存儲區(qū)域內(nèi),使之分別存取。根據(jù)上述結(jié)構(gòu),可以按照不同的命令發(fā)送方向來管理系統(tǒng)間命令的收發(fā),因此,例如、在一方的系統(tǒng)尚未讀出完畢來自另一方的系統(tǒng)的命令的狀態(tài)下,即使發(fā)生了必須利用另一方的系統(tǒng)的功能來進行處理的情形,也不會影響在共用存儲器上的命令的寫入。
并且,根據(jù)優(yōu)選形態(tài),在前述共用存儲器的各個存儲區(qū)域里分別設(shè)定了用以存儲發(fā)送給另一方系統(tǒng)的命令的命令存儲區(qū)域、和用以存儲就多個命令分別根據(jù)該命令進行處理所參照的數(shù)據(jù)的數(shù)據(jù)存儲區(qū)域。并且,將各系統(tǒng)的命令中繼裝置設(shè)定為下述在存儲控制時,在另一方系統(tǒng)的數(shù)據(jù)存儲區(qū)域內(nèi)寫入在對該系統(tǒng)執(zhí)行的處理時所參照的數(shù)據(jù),然后,執(zhí)行將前述命令與參照數(shù)據(jù)的存儲地址一并寫入在前述命令存儲區(qū)域的處理,在讀出控制時,根據(jù)前述中斷的發(fā)生,從本身系統(tǒng)的命令存儲區(qū)域內(nèi)讀出前述命令及參照數(shù)據(jù)的存儲地址,然后,執(zhí)行在清除前述命令存儲區(qū)域后讀出參照數(shù)據(jù)的處理。
根據(jù)上述方式,當一方的系統(tǒng)發(fā)生必須利用另一方系統(tǒng)的功能來進行處理的情形時,首先,將該處理時所參照的數(shù)據(jù)寫入到對方系統(tǒng)的數(shù)據(jù)存儲區(qū)域內(nèi),然后,將指定前述處理的命令與參照數(shù)據(jù)的存儲地址一并寫入到前述命令存儲區(qū)域內(nèi)。對方系統(tǒng)根據(jù)前述中斷的發(fā)生,從本系統(tǒng)的命令存儲區(qū)域內(nèi)讀出命令及存儲地址后,就清除命令存儲區(qū)域,然后讀出前述參照數(shù)據(jù)并執(zhí)行與命令相應的處理。另外,所謂的“參照數(shù)據(jù)”,是指表示命令的處理對象的數(shù)值、字符串以及表示參照對象的資源的數(shù)據(jù)(例如、處理對象數(shù)據(jù)的存儲地址、通信時連接對象的地址等)。
根據(jù)上述結(jié)構(gòu),當連續(xù)發(fā)生必須用另一方系統(tǒng)的功能進行處理的情形時,在進行處理的系統(tǒng)中,即使是首先接收的命令的參照數(shù)據(jù)尚未讀出完畢,也可以接收下一個處理命令,因此,可以在各系統(tǒng)內(nèi)同時執(zhí)行多個處理,從而進一步實現(xiàn)處理的高速化。
另外,在實施該方式時,前述共用存儲器必須使各系統(tǒng)具有能夠存儲分別進行多個處理所參照的數(shù)據(jù)的容量。并且,當處理對象的數(shù)據(jù)容量很大時,優(yōu)選的是,將數(shù)據(jù)按規(guī)定的單位進行分割,并按程序發(fā)送。
并且,本發(fā)明通過在機身內(nèi)安裝上述結(jié)構(gòu)的程序執(zhí)行裝置,可以低成本地提供一種能夠進行高速處理的的便攜式信息處理裝置。
例如、便攜式信息處理裝置為便攜式電話時,可以將一方的系統(tǒng)設(shè)定為用以進行與裝置的主要功能、比如通信處理或者連接諸如互聯(lián)網(wǎng)的計算機網(wǎng)絡(luò)等主要功能有關(guān)的處理的系統(tǒng)。與此相反,將另一方的系統(tǒng)設(shè)定為基于諸如JavaTM的虛擬機執(zhí)行環(huán)境的系統(tǒng),因而可以高速進行比如表示動畫或者運行游戲用應用程序等需要復雜控制的處理。
根據(jù)上述結(jié)構(gòu),將虛擬機用的運算電路與共用存儲器連接,因而可以在與現(xiàn)有機型相同結(jié)構(gòu)的運算電路上,簡單地構(gòu)成控制裝置。并且,就現(xiàn)有運算電路的系統(tǒng),由于安裝了構(gòu)成前述命令中繼裝置的軟件,并設(shè)定了該軟件的工作環(huán)境,可與之對應,所以不必對軟件進行大規(guī)模的變更。
圖1是本發(fā)明的一個實施例的程序執(zhí)行裝置的硬件結(jié)構(gòu)的方框圖。
圖2是包含圖1的程序執(zhí)行裝置的軟件的結(jié)構(gòu)的說明圖。
圖3是與系統(tǒng)間命令交換有關(guān)的結(jié)構(gòu)和命令流程的說明圖。
圖4是命令寄存器及命令數(shù)據(jù)區(qū)域的數(shù)據(jù)結(jié)構(gòu)的說明圖。
圖5是命令發(fā)布系統(tǒng)的接口的處理順序的流程圖。
圖6是命令接收系統(tǒng)的接口的處理順序的流程圖。
圖7是系統(tǒng)間命令處理的具體流程的說明圖。
圖8是系統(tǒng)間命令處理的具體流程的說明圖。
圖9是系統(tǒng)間命令處理的具體流程的說明圖。
圖10是系統(tǒng)間命令處理的具體流程的說明圖。
圖11是以往的程序執(zhí)行裝置的結(jié)構(gòu)的說明圖。
圖12是以往的程序執(zhí)行裝置的結(jié)構(gòu)的說明圖。
圖13是以往的程序執(zhí)行裝置的結(jié)構(gòu)的說明圖。
主系統(tǒng)執(zhí)行裝置1具備由CPU 11、RAM 12及ROM 13構(gòu)成的運算電路15和外部存儲器、輸入輸出裝置等外圍裝置(在圖中,以“裝置14”概括表示)。虛擬機執(zhí)行裝置2也同樣具備由CPU 21、RAM 22及ROM 23構(gòu)成的運算電路25和裝置26。并且,主系統(tǒng)執(zhí)行裝置1的運算電路15和以往的便攜式電話或PDA中所安裝的電路屬于相同的通用電路,但是,在虛擬機執(zhí)行裝置2的運算電路25中引入了將字節(jié)碼作為本機代碼使用的JavaTM專用運算電路。
各運算電路15、25的關(guān)系為,其雙方的CPU 11、21通過通用總線4連接,并且,前述DPRAM 3被連接在該通用總線4上。有關(guān)DPRAM3的具體情況將在后面進行說明,其用途為當一方的裝置的系統(tǒng)發(fā)生了必須讓另一方的裝置的系統(tǒng)進行處理的情形時,將表示該處理的內(nèi)容的命令傳遞給對方的系統(tǒng),或者,將來自對方的系統(tǒng)的處理結(jié)果交接給請求方的系統(tǒng)。
圖2是上述程序執(zhí)行裝置的軟件結(jié)構(gòu)示意圖。在前述主系統(tǒng)執(zhí)行裝置1,和虛擬機執(zhí)行裝置2上通過被分別安裝在前述運算電路15、25的ROM 13、23和外部存儲器等上的程序,來設(shè)定規(guī)定的程序執(zhí)行環(huán)境。
在前述主系統(tǒng)執(zhí)行裝置1上,作為OS,除了安裝諸如ITRON那樣的實時OS 16(以下,稱之為“通用OS 16”)外,還安裝了用以控制裝置內(nèi)部的裝置的裝置驅(qū)動器17以及構(gòu)成后述的子系統(tǒng)接口18等的軟件。通過這些軟件,將具有基于通用OS 16的程序執(zhí)行環(huán)境的系統(tǒng)100(以下,稱之為“主系統(tǒng)100”)設(shè)定在主系統(tǒng)執(zhí)行裝置1上,運行由前述通用OS 16的語義學所述的現(xiàn)有系統(tǒng)用應用程序19。
另一方面,在虛擬機執(zhí)行裝置2上,除與硬件連動地執(zhí)行字節(jié)碼的虛擬機執(zhí)行環(huán)境用OS26外,還安裝了裝置驅(qū)動器27和主系統(tǒng)接口28。通過該結(jié)構(gòu),設(shè)定具備虛擬機執(zhí)行環(huán)境的系統(tǒng)200(以下,稱之為“子系統(tǒng)200”),運行具有JavaTM的源代碼的虛擬機用應用程序29。
設(shè)定各系統(tǒng)100、200的應用程序19、29,使其在請求本系統(tǒng)OS16、26作必要的處理的同時保持運行。任意一個OS 16、26在進行利用本系統(tǒng)的功能的處理時,與另一方的OS的運行并無關(guān)聯(lián),直接地或者通過裝置驅(qū)動器17、27并參照本系統(tǒng)內(nèi)的資源來執(zhí)行必要的處理。
另一方面,當系統(tǒng)內(nèi)必須利用另一方的系統(tǒng)的功能進行處理時,前述子系統(tǒng)接口18和主系統(tǒng)接口28啟動,通過前述DPRAM 3在該接口18、28間進行命令交換,據(jù)此,使其執(zhí)行被對方系統(tǒng)所請求的處理,并收取該處理結(jié)果。
圖3是表示在前述程序執(zhí)行裝置中雙方系統(tǒng)之間交換數(shù)據(jù)的部分的結(jié)構(gòu)詳細圖。
在圖3中,作為“命令接口”被虛線所圍住的部分(用標號5表示)是系統(tǒng)間的中繼裝置,其由主系統(tǒng)100的子系統(tǒng)接口18、子系統(tǒng)200的主系統(tǒng)接口28以及前述DPRAM 3構(gòu)成。
子系統(tǒng)接口18和主系統(tǒng)接口28都具有發(fā)送使對方系統(tǒng)執(zhí)行本系統(tǒng)所必需的處理的命令的功能和讀出來自對方系統(tǒng)的命令并請求本系統(tǒng)的OS 16、26進行與前述命令對應的處理的功能。(以下,在不區(qū)分子系統(tǒng)接口18和主系統(tǒng)接口28時,一律稱之為“接口”。)前述DPRAM 3是可以接收來自雙方系統(tǒng)的存取的存儲器,但在此其被用作將一方接口所發(fā)送的命令交付給另一方系統(tǒng)的地址。在該DPRAM 3上,單獨設(shè)定了用以存儲分別請求主系統(tǒng)100和子系統(tǒng)200的命令及該命令所參照的數(shù)據(jù)的區(qū)域51、52(以下,總稱為“專用存儲區(qū)域51、52”)。各接口18、28設(shè)定為下述在分別發(fā)送命令時,將命令寫入到對方系統(tǒng)的專用存儲區(qū)域內(nèi),同時向?qū)Ψ较到y(tǒng)發(fā)送中斷通知,另一方面,本系統(tǒng)接收到中斷通知后,將訪問本系統(tǒng)的專用存儲區(qū)域,并接收對方系統(tǒng)所發(fā)送的命令。
此外,主系統(tǒng)100為現(xiàn)有系統(tǒng),因此,可以在通用OS或裝置驅(qū)動器17的一部分上設(shè)定與子系統(tǒng)接口18的通信功能,不必變更現(xiàn)有系統(tǒng)用應用程序19。另一方面,子系統(tǒng)200設(shè)定為虛擬機用應用程序29直接與主系統(tǒng)接口28通信,可以提高處理的速度。
在圖3中,表示了在子系統(tǒng)200的虛擬機用應用程序29的各個線程291(在圖中,表示為“應用程序線程291”)上發(fā)生“方法調(diào)用”時的處理過程。此時,如圖中單點劃線所示,主系統(tǒng)接口28根據(jù)“方法調(diào)用”發(fā)送命令,子系統(tǒng)接口18取進該命令,并向本系統(tǒng)內(nèi)的通用OS 16發(fā)送“系統(tǒng)調(diào)用”。
通用OS 16,在必要時啟動裝置驅(qū)動器17進行與前述SYSTEM.CALL對應的處理,并將該處理結(jié)果回傳給子系統(tǒng)接口18。據(jù)此,如圖中的雙點劃線所示,由子系統(tǒng)接口18發(fā)送請求取進前述處理結(jié)果的命令,主系統(tǒng)接口28取進該命令并交付給發(fā)出前述“MEHTOD.CALL”的應用程序線程291。此時由應用程序線程291所請求的處理被執(zhí)行完畢,應用程序線程291利用該處理結(jié)果來執(zhí)行下一步的處理。
如上所述,請求對方系統(tǒng)執(zhí)行處理,或者回傳該處理的執(zhí)行結(jié)果的處理全部是通過子系統(tǒng)接口18和主系統(tǒng)接口28之間的命令交換來進行的。所以,各系統(tǒng)100、200,在請求另一方系統(tǒng)進行處理或者接收其他系統(tǒng)所請求的處理內(nèi)容并回傳該處理結(jié)果時,可以執(zhí)行對系統(tǒng)內(nèi)的接口18、28的處理,并且,由于接口18、28本身也根據(jù)中斷自發(fā)地取得來自另一方系統(tǒng)的命令,因此,可以在系統(tǒng)內(nèi)不必識別其他的系統(tǒng)而簡便地進行資源的排他性控制。并且,在不必請求另一方系統(tǒng)執(zhí)行處理時,由于各系統(tǒng)能夠獨立運行,所以可以大幅度提高虛擬機的處理速度。并且,在未運行虛擬機用應用程序29時,由于虛擬機執(zhí)行裝置2可以設(shè)定為備用方式,因此,可以減少耗電。
并且,在現(xiàn)有系統(tǒng)的主系統(tǒng)100中,由于在現(xiàn)有的程序執(zhí)行環(huán)境中加入了子系統(tǒng)接口18,只要設(shè)定該子系統(tǒng)接口18可以工作的環(huán)境即可,因此不必大規(guī)模改變主系統(tǒng)100的軟件結(jié)構(gòu)。并且,由于硬件可以通過通用總線4連接子系統(tǒng)200的CPU 21和DPRAM 3,所以,也可以不必改變主系統(tǒng)100的硬件結(jié)構(gòu),而得以大幅度地削減成本。
各接口18、28所發(fā)送的命令通常由表示該命令的種類的ID來表示,在必要時,附加當執(zhí)行該命令時所必須參照的數(shù)據(jù),如數(shù)值、字符串等(以下,稱之為“命令數(shù)據(jù)”)。前述DPRAM 3的各個專用存儲區(qū)域51、52都區(qū)分為用以存儲其前述命令I(lǐng)D的命令寄存器51A、52A和命令數(shù)據(jù)區(qū)域51B、52B。
圖4(1)、(2)分別表示命令寄存器51A、52A、命令數(shù)據(jù)區(qū)域51B、52B的數(shù)據(jù)結(jié)構(gòu)示意圖。在各命令寄存器51A、52A里,除命令I(lǐng)D外,還寫入了塊(BLOCK)信息。另一方面,命令數(shù)據(jù)區(qū)域51B、52B按相同的數(shù)據(jù)長度進行分割,在被分割的每一個區(qū)域(在此,稱之為“數(shù)據(jù)塊(DATABLOCK)”)內(nèi)寫入1個命令的命令數(shù)據(jù)。
前述命令寄存器51A、52A內(nèi)的塊信息,是指表示在前述命令數(shù)據(jù)區(qū)域51B、52B內(nèi)存儲與相同寄存器內(nèi)的命令I(lǐng)D對應的命令數(shù)據(jù)的數(shù)據(jù)塊的信息。但,在命令中,還有不含命令數(shù)據(jù)的命令,此時,塊信息設(shè)定為空置狀態(tài)。并且,如果命令數(shù)據(jù)是諸如數(shù)值的小容量數(shù)據(jù),那么,該數(shù)據(jù)將被直接寫入到塊信息的存儲區(qū)域內(nèi)。
此外,在命令數(shù)據(jù)中,還包括超過1個數(shù)據(jù)塊的可存儲的大小的命令數(shù)據(jù)。在這樣的情況下,命令數(shù)據(jù)將按前述可儲存的大小被分割并按照順序?qū)懭氲揭?guī)定的數(shù)據(jù)塊里。用以確定命令數(shù)據(jù)的會話(SESSION)的會話ID被寫入到命令數(shù)據(jù)區(qū)域內(nèi),使得按上述被分割的命令數(shù)據(jù)能夠作為連續(xù)的數(shù)據(jù)而被對方系統(tǒng)所識別。
并且,各數(shù)據(jù)塊中還包含作為用以表示各個數(shù)據(jù)塊的使用情況以及命令數(shù)據(jù)的屬性的信息(圖中示出“命令數(shù)據(jù)識別信息”)以下信息。
(1)數(shù)據(jù)塊保護標志(以下,簡稱為“保護標志”)用以表示自身數(shù)據(jù)塊是否確保命令交換的標志,該標志在性質(zhì)上由發(fā)送命令的系統(tǒng)來設(shè)定,并在完成了對所有的命令附帶的命令數(shù)據(jù)的讀出后,由對方系統(tǒng)清除。
(2)數(shù)據(jù)塊使用標志(以下,簡稱為“使用標志”)用以表示自身數(shù)據(jù)塊是否為使用中的標志,該標志在命令數(shù)據(jù)存儲時由發(fā)送命令的系統(tǒng)來設(shè)定,然后,在完成了對寫入在數(shù)據(jù)塊中的命令數(shù)據(jù)的讀出后,由接收方系統(tǒng)及時清除。
(3)命令數(shù)據(jù)大小用以表示命令所附帶的所有的命令數(shù)據(jù)的大小。
(4)命令數(shù)據(jù)序號用以表示寫入在目前數(shù)據(jù)塊里的命令數(shù)據(jù)在全部命令數(shù)據(jù)中的排列位置的數(shù)值數(shù)據(jù)。在接收方系統(tǒng)中,當命令數(shù)據(jù)被分割交付時,根據(jù)該命令數(shù)據(jù)序號而連接各個命令數(shù)據(jù)。
此外,在該實施例中,可以通過前述多個數(shù)據(jù)塊將關(guān)于多個命令的命令數(shù)據(jù)寫入到命令數(shù)據(jù)區(qū)域51B、52B內(nèi),但是,命令寄存器51A、52A卻被設(shè)定為系統(tǒng)100、200都只能儲存1個命令。但是,如后所述,各個接口18、28分別根據(jù)中斷從命令寄存器51A、52A讀出命令時,將在進行命令數(shù)據(jù)的讀出之前清除命令寄存器51A、52B,因此,即使是在連續(xù)發(fā)送命令的情況下,也能夠并不怎么遲延地進行應用程序或裝置的處理。
接著,對進行命令交換時各接口上所進行的處理的詳細情況作出說明。圖5是發(fā)送命令的系統(tǒng)(以下,稱之為“發(fā)送系統(tǒng)”)的接口的順序圖,各個處理的步驟以“ST”表示。另外,圖6是接收命令的系統(tǒng)(以下,稱之為“對方系統(tǒng)”)的接口的順序圖,各個處理的步驟以“st”表示。
此外,在圖5和圖6中,僅僅表示了命令數(shù)據(jù)被寫入到命令數(shù)據(jù)區(qū)域51B、52B時的順序。
首先,對命令數(shù)據(jù)可被存儲在一個數(shù)據(jù)塊內(nèi)的大小進行說明。當一方的系統(tǒng)向另一方的系統(tǒng)發(fā)送命令時,系統(tǒng)內(nèi)的接口啟動并開始圖5中所表示的順序。在ST1中,訪問由DPRAM 3內(nèi)的對方系統(tǒng)的專用存儲區(qū)域,搜索未被使用的數(shù)據(jù)塊,并在該空置塊上設(shè)置塊保護標志。在之后ST2中,將前述使用標志設(shè)置到前述被保護的數(shù)據(jù)塊上,并且,在之后的ST3中,將發(fā)生在系統(tǒng)內(nèi)的命令數(shù)據(jù)復制到該數(shù)據(jù)塊上。并且,在前述ST3中,在復制命令數(shù)據(jù)的同時,對前述會話ID、命令數(shù)據(jù)大小、命令數(shù)據(jù)序號的各個數(shù)據(jù)進行寫入。
接著,在ST4中,檢查對方系統(tǒng)的命令寄存器是否為正在使用中。在此,當0之外的數(shù)據(jù)被存儲在命令寄存器時,視之為正在使用中,并待機到寄存器被清零時為止。并且,當命令寄存器被清零后,進入之后的ST5,將表示命令I(lǐng)D以及前述命令數(shù)據(jù)的存儲地址的塊信息存儲到前述命令寄存器,然后,在ST6中向?qū)Ψ较到y(tǒng)輸出中斷。
輸出中斷后,待機到前述數(shù)據(jù)塊的使用標志被對方系統(tǒng)清除時為止。使用標志被清除后,ST7變?yōu)椤癥ES”并進入ST8,在確認命令數(shù)據(jù)的發(fā)送完成后,終止處理。
接著,在對方系統(tǒng)中,接受前述ST6中的中斷輸出,而啟動接口,開始了圖6的順序。首先,在最初的st1中,對本系統(tǒng)的專用存儲區(qū)域進行訪問,并從命令寄存器讀出前述命令I(lǐng)D以及塊信息。此時,接口迅速地將讀出的信息保存到本系統(tǒng)的緩沖寄存器等上,進入st2,并將命令寄存器清零。
在之后的st3中,通過前述塊信息對命令數(shù)據(jù)的被存儲的數(shù)據(jù)塊進行確認,并讀出該數(shù)據(jù)塊的各個數(shù)據(jù)。在之后的st4中,通過前述會話ID以及命令數(shù)據(jù)大小序號確認是否為最初的發(fā)送數(shù)據(jù),如果是最初的數(shù)據(jù),則進入st5中并確認前述命令數(shù)據(jù)的大小。并且,在st6中,經(jīng)在本系統(tǒng)RAM等的存儲器內(nèi)確保前述命令數(shù)據(jù)大小的相應的數(shù)據(jù)存儲區(qū)域后,進入st8,并將前述被讀出的命令數(shù)據(jù)復制到前述數(shù)據(jù)存儲區(qū)域的前端位置。
之后,在st9中,清除前述數(shù)據(jù)塊的使用標志,并且在st10中,檢查其后是否還有命令數(shù)據(jù)。此時,由于假定了命令數(shù)據(jù)進入1個數(shù)據(jù)塊的大小,所以,st10顯示為“NO”并進入st11,前述數(shù)據(jù)塊的保護標志也被清除。并且,在st12中,由前述命令I(lǐng)D以及命令數(shù)據(jù)所表示的命令的內(nèi)容被發(fā)送到本系統(tǒng)的OS上,處理終止。
接著,對命令數(shù)據(jù)被分割存儲時的順序進行說明。此時,發(fā)送系統(tǒng)的接口在前述圖5的ST1~3中為確保規(guī)定的數(shù)據(jù)塊而寫入命令數(shù)據(jù),但在這種情形下,僅從待發(fā)送的命令數(shù)據(jù)中自前端按照順序讀出一個數(shù)據(jù)塊并復制到前述數(shù)據(jù)塊內(nèi),將剩余的數(shù)據(jù)保持在系統(tǒng)內(nèi)的存儲器里,在此狀態(tài)下執(zhí)行ST4之后的處理。
并且,在對方系統(tǒng)中,根據(jù)中斷的發(fā)生,與前述同樣進行st1~9的處理,由于其后的st10的判斷變?yōu)椤癥ES“,因此不進行st11的保護標志的清除處理而終止處理。
此間,在發(fā)送系統(tǒng)的接口上,經(jīng)確認使用標志在圖5的ST7中已被清除后,ST8的判斷變?yōu)椤癗O”并回到ST2。此時,如前所述,對方系統(tǒng)跳過保護標志清除,據(jù)此保持在發(fā)送前一個命令時所被保護的數(shù)據(jù)塊,所以,在前述被保護中的數(shù)據(jù)塊上重新設(shè)定使用標志后,從前述存儲器中取出后個命令數(shù)據(jù)并復制到前述數(shù)據(jù)塊上。其后,以與上次相同的順序,重新將命令I(lǐng)D以及塊信息寫入到命令寄存器內(nèi),并向?qū)Ψ较到y(tǒng)輸出中斷。
在對方系統(tǒng)中,針對第2次中斷,和上次同樣啟動接口并開始圖6的順序,通過和上次同樣的st1~3的處理而取得ID,讀出數(shù)據(jù)塊內(nèi)的數(shù)據(jù)。其后,st4的判斷為“NO”并進入st7,通過前述會話ID來確認最初接收命令時所保護的數(shù)據(jù)存儲區(qū)域。然后進入st8,在被確認后的數(shù)據(jù)存儲區(qū)域內(nèi),將第2個命令數(shù)據(jù)復制到前面所復制的命令數(shù)據(jù)的末尾。此后,在st9中清除使用標志后,從st10進入st12,向OS發(fā)送命令I(lǐng)D以及命令數(shù)據(jù),終止處理。
以下,在雙方的系統(tǒng)中,以相同的順序重復圖5和6中的處理,直到發(fā)送完畢最后一個命令數(shù)據(jù)為止。在發(fā)送系統(tǒng)中,在發(fā)送最后一個命令并向?qū)Ψ较到y(tǒng)輸出中斷后,就等待使用標志的清除,終止命令的發(fā)送處理(ST7、8)。另外,在對方系統(tǒng)中,針對該最后一個命令的發(fā)送,在清除使用標志后,從st10進入st11,保護標志也被清除,然后,在st12中,將最后發(fā)布的命令的內(nèi)容發(fā)送到OS,終止命令接收處理。
此外,在發(fā)布不包含命令數(shù)據(jù)的命令時,如后所述,發(fā)布系統(tǒng)的接口在向命令寄存器進行寫入后輸出中斷,對方系統(tǒng)的接口據(jù)此進行命令寄存器的讀出,并將前述命令I(lǐng)D的內(nèi)容傳遞給OS。通過上述處理,即使是正在發(fā)送含有大容量命令數(shù)據(jù)的命令,也可以發(fā)送不需要命令數(shù)據(jù)的短命令并優(yōu)先執(zhí)行該命令。例如,在子系統(tǒng)200請求主系統(tǒng)100發(fā)送諸如流式數(shù)據(jù)的大容量數(shù)據(jù)并接收該發(fā)送時,如果發(fā)生了為啟動其他的虛擬機用應用程序29的關(guān)鍵性事件,可以對請求諸如能夠在前者的處理的中間插入后者的處理等的應答功能的命令進行高速的處理。
接下來,展示在上述程序執(zhí)行裝置中通過前述命令接口5的功能來實現(xiàn)的處理的具體事例。例如、在該程序執(zhí)行裝置被安裝到便攜式電話的情形下,主系統(tǒng)100可以執(zhí)行諸如接受各種鍵操作的處理、進行通信的處理、表示通過鍵操作的內(nèi)容或通信取進的數(shù)據(jù)的處理等與從前的機型相同的處理。另一方面,子系統(tǒng)200,例如、進行運行游戲用的應用程序使之表示動畫或得分等的處理,當發(fā)生關(guān)鍵性事件時,從主系統(tǒng)100接收所發(fā)送的被操作的鍵的內(nèi)容。并且,當需要取進表示文字時的字體數(shù)據(jù)或者需訪問網(wǎng)絡(luò)時,將使用主系統(tǒng)100所具有的功能。
所以,以下,以關(guān)鍵性事件發(fā)生時的處理(圖7)、子系統(tǒng)200需要字體數(shù)據(jù)時的處理(圖8)、在子系統(tǒng)200上需要訪問網(wǎng)絡(luò)的處理(圖9、10)為例,對雙方系統(tǒng)的處理流程進行說明。另外,在圖7~10中,根據(jù)前述圖3的結(jié)構(gòu),除子系統(tǒng)接口18和主系統(tǒng)接口28之外,主系統(tǒng)100的通用OS 16及裝置驅(qū)動器17、子系統(tǒng)200的應用程序線程291也各自與各部分的處理流程相關(guān)聯(lián),對各個處理附加了一系列參照數(shù)字(帶括弧)。(在下面的說明中也使用該參照數(shù)字)(A)關(guān)鍵性事件發(fā)生時的處理在圖7中,假設(shè)處于使用者通過對鍵的操作請求子系統(tǒng)200的虛擬機用應用程序29執(zhí)行某種處理的狀態(tài)。此時,該關(guān)鍵性事件的內(nèi)容首先通過主系統(tǒng)100的裝置驅(qū)動器17和通用OS 16被讀出((1))。接著,通用OS啟動子系統(tǒng)接口18,開始命令發(fā)布的處理。
被啟動的子系統(tǒng)接口18從通用OS 16接收前述關(guān)鍵性事件的內(nèi)容后,即行檢查子系統(tǒng)200的命令寄存器52A,如果命令寄存器52A處于未使用狀態(tài)時(如果在檢查時為未使用狀態(tài),就立即進行,另外,如果為正在使用中,則待機到未使用狀態(tài)時為止),寫入啟動命令的命令I(lǐng)D,并向子系統(tǒng)200輸出中斷((4)(5))。并且,在這里,啟動命令的參照數(shù)據(jù)作為塊信息是可以存儲的大小,它不寫入在前述命令數(shù)據(jù)區(qū)域內(nèi)。
在子系統(tǒng)200中,主系統(tǒng)接口28接受中斷而啟動,并讀出被寫入在本系統(tǒng)的命令寄存器52A內(nèi)的命令I(lǐng)D((6)(7))。并且,主系統(tǒng)接口28在前述命令寄存器52A清零后,通過虛擬機執(zhí)行用環(huán)境OS26將前述關(guān)鍵性事件通知給啟動中的應用程序線程291((8)(9))。應用程序線程291在接到該通知后,對關(guān)鍵性事件的內(nèi)容進行識別,并執(zhí)行與該事件對應的處理。
(B)使用字體數(shù)據(jù)的處理圖8表示了在子系統(tǒng)200的應用程序線程291中需要進行使用字體數(shù)據(jù)的描畫處理時的處理。當出現(xiàn)請求該描畫處理時,應用程序線程291輸出向本系統(tǒng)的主系統(tǒng)接口28請求必要的字體數(shù)據(jù)的命令((1)(2))。接受該請求而啟動的主系統(tǒng)接口28對本系統(tǒng)100的命令寄存器51A進行檢查((3)(4)),當該命令寄存器51A為未使用狀態(tài)時,寫入獲取字體的命令的命令I(lǐng)D,并向主系統(tǒng)100輸出中斷((5))。另外,該獲取字體的命令的參照數(shù)據(jù)也和前述啟動命令一樣屬于不必寫入命令數(shù)據(jù)的命令。
在主系統(tǒng)100中,子系統(tǒng)接口18接受前述中斷而啟動,并從本系統(tǒng)的命令寄存器51A中讀出前述命令I(lǐng)D((6)(7))。并且,子系統(tǒng)接口18在前述命令寄存器51A清零后,向本系統(tǒng)的通用OS 16輸出字體數(shù)據(jù)的請求((8)(9))。
通用OS 16根據(jù)該請求生成指定的字體數(shù)據(jù),并回傳給子系統(tǒng)接口18((10))。接收該回傳的子系統(tǒng)接口18在子系統(tǒng)200的命令數(shù)據(jù)區(qū)域52B的空置數(shù)據(jù)塊設(shè)置保護標志和使用標志后,把由前述通用OS 16所交付的字體數(shù)據(jù)復制到該數(shù)據(jù)塊內(nèi)((11)(12))。并且,子系統(tǒng)接口18對子系統(tǒng)200的命令寄存器52A進行檢查,當該寄存器52A為空置狀態(tài)時,寫入字體獲取完畢的命令的命令I(lǐng)D和復制前述字體數(shù)據(jù)的數(shù)據(jù)塊的地址,然后向子系統(tǒng)200輸出中斷((13)(14))。
在子系統(tǒng)200中,主系統(tǒng)接口28接受前述中斷重新啟動,并從本系統(tǒng)的命令寄存器52A中讀出命令I(lǐng)D和塊信息((15)(16))。并且,主系統(tǒng)接口28把前述命令寄存器52A清零,訪問已寫入前述字體數(shù)據(jù)的數(shù)據(jù)塊,讀出該塊內(nèi)的字體數(shù)據(jù)并復制到本裝置的存儲器內(nèi)((17)(18))。
此外,由于字體數(shù)據(jù)是固定長度的數(shù)據(jù),所以,在(18)中,要在存儲器內(nèi)確保與字體數(shù)據(jù)的大小對應的存儲區(qū)域,然后再進行字體數(shù)據(jù)的復制。
此后,主系統(tǒng)接口28清除前述數(shù)據(jù)塊的保護標志和使用標志,并將所取得字體數(shù)據(jù)的存儲地址通知給應用程序線程291((19)(20))。應用程序線程291通過上述的連續(xù)處理獲取字體數(shù)據(jù),并執(zhí)行描畫處理((21))。
(C)需要訪問網(wǎng)絡(luò)的處理在圖9、10中,假設(shè)在子系統(tǒng)200的應用程序線程291上出現(xiàn)了必須連接互聯(lián)網(wǎng)進行處理的情形。并且,在該圖9中,假設(shè)通過連接網(wǎng)絡(luò)可以取進大容量的數(shù)據(jù),只根據(jù)命令數(shù)據(jù)的分割數(shù)量重復進行圖中虛線框內(nèi)部分的處理。
首先,由應用程序線程291指定所規(guī)定的URL并輸出請求連接的命令(HTTP請求)((1)(2))。主系統(tǒng)接口28根據(jù)該請求啟動后,隨即對主系統(tǒng)100的命令寄存器51A進行檢查((3)),如果該寄存器51A為空置狀態(tài)時,寫入請求連接前述指定的URL的命令(HTTP命令)的命令I(lǐng)D,同時將前述URL作為前述塊信息而寫入。并且,向主系統(tǒng)100輸出中斷((4)(5))。
接著,在主系統(tǒng)100中,子系統(tǒng)接口18接受前述中斷而啟動,并從本系統(tǒng)的命令寄存器51A中讀出命令((6)(7))。并且,子系統(tǒng)接口18在命令寄存器51A清零后,向通用OS 16輸出HTTP請求((8)(9))。
通用OS 16根據(jù)前述請求,將通信電路設(shè)定為有效并發(fā)送指定的URL,取進來自網(wǎng)絡(luò)的響應數(shù)據(jù)(HTTP.RESPONSE)((10))。子系統(tǒng)接口18與前述字體數(shù)據(jù)的情形相同,將使用標志和保護標志設(shè)置在子系統(tǒng)200的命令數(shù)據(jù)區(qū)域51B的空置數(shù)據(jù)塊中,并復制前述響應數(shù)據(jù)的前端部分((11)(12))。
此后,子系統(tǒng)接口18對子系統(tǒng)200的命令寄存器52A進行檢查,如果該寄存器為空置狀態(tài)時,立即寫入表示響應數(shù)據(jù)取進完畢的命令(HTTP完畢命令),并向子系統(tǒng)200輸出中斷((13)(14))。并且,此時在命令寫入的處理中,將已寫入前端響應數(shù)據(jù)的數(shù)據(jù)塊的塊信息和命令I(lǐng)D一并進行寫入。
在子系統(tǒng)中200中,主系統(tǒng)接口28接受前述中斷重新啟動,并從前述命令寄存器讀出HTTP完畢的命令((15)(16))。并且,主系統(tǒng)接口28在本系統(tǒng)的命令寄存器52A清零后,立即根據(jù)前述HTTP完畢的命令中所含的塊信息,訪問已寫入響應數(shù)據(jù)的數(shù)據(jù)塊,并檢查命令數(shù)據(jù)的所有數(shù)據(jù)的大小,在本系統(tǒng)的存儲器內(nèi)確保前述響應數(shù)據(jù)的存儲區(qū)域((17)(18))。并且,在前述數(shù)據(jù)塊內(nèi)的響應數(shù)據(jù)被復制到該數(shù)據(jù)存儲區(qū)域后,清除前述數(shù)據(jù)塊的使用標志((19)(20))。
子系統(tǒng)接口18在寫入前述HTTP完畢命令后,繼續(xù)進行使用標志的檢查,使用標志被清除后,就重新設(shè)置該標志,并復制下一個響應數(shù)據(jù)((21)~(23))。并且,對子系統(tǒng)200的命令寄存器52A進行檢查,在該寄存器52A為空置狀態(tài)時,重新寫入HTTP完畢的命令,并向子系統(tǒng)200輸出中斷((24)(25))。在接收該中斷的子系統(tǒng)200中,重新啟動主系統(tǒng)接口28,并和上次一樣,依次執(zhí)行命令讀出、命令寄存器清零、響應數(shù)據(jù)復制、使用標志清除的各種處理((26)~(29))。
接下來,同樣重復進行((21)~(29))的處理,一直到全部響應數(shù)據(jù)被交付給子系統(tǒng)200為止。當響應數(shù)據(jù)的發(fā)送終止時,主系統(tǒng)接口28隨即清除保護標志,并通知應用程序線程291處理終止((30))。在該終止的通知里表明了前述響應數(shù)據(jù)的存儲地址,應用程序線程291從該地址讀出響應數(shù)據(jù),并執(zhí)行必要的數(shù)據(jù)處理((31))。
并且,前述終止通知相當于前述圖6中的st12的處理,所以,如果按照圖6的順序每得到一個數(shù)據(jù)塊的響應數(shù)據(jù),就發(fā)出終止通知的話,可以在取進數(shù)據(jù)的同時讓應用程序線程291進行數(shù)據(jù)處理。
并且,在上述的例子中,對大容量的命令數(shù)據(jù)進行分割并按照順序?qū)懭氲较嗤臄?shù)據(jù)塊里,但是,也可以改變上述方法,在命令數(shù)據(jù)區(qū)域52B內(nèi)確保與響應數(shù)據(jù)的數(shù)據(jù)大小相應的多個數(shù)據(jù)塊,并對響應數(shù)據(jù)進行一次寫入,此后,按照順序改變塊信息,同時發(fā)布命令。
發(fā)明的效果在本發(fā)明中,通過把不同結(jié)構(gòu)的程序執(zhí)行環(huán)境中運行的2中系統(tǒng)設(shè)定為單獨的運算電路,可以使各系統(tǒng)單獨運行從而實現(xiàn)處理的高速化。并且,通過連接在各運算電路連接路線上的共用存儲器,各系統(tǒng)內(nèi)的命令中繼裝置根據(jù)中斷接收來自另一方系統(tǒng)的命令,因此,可以對系統(tǒng)內(nèi)、外的命令進行一元化處理,可以簡化資源的排他性控制并進一步提高處理的速度。并且,在各系統(tǒng)間所共享的只是共用存儲器,對另一方系統(tǒng)的通信被限定在命令中繼處理裝置,所以可以提供一種安全性能較高的程序執(zhí)行裝置。
并且,在本發(fā)明中,上述結(jié)構(gòu)的程序執(zhí)行裝置被用作便攜式信息處理裝置的控制裝置,據(jù)此,直接利用現(xiàn)有的運算電路,可以簡單地提供一種具有虛擬機執(zhí)行環(huán)境的控制裝置。并且,由于不必大規(guī)模地改變現(xiàn)有運算電路的軟件及硬件的結(jié)構(gòu),因此,可以低成本地提供一種能夠快速執(zhí)行各種任選功能的便攜式信息處理裝置。
權(quán)利要求
1.一種程序執(zhí)行裝置,該裝置是一種在兩種運算電路上設(shè)定了各自不同的程序執(zhí)行環(huán)境的系統(tǒng),在把各個運算電路彼此連接的同時,將可以由雙方運算電路使用的共用存儲器連接到各個運算電路的連接線路上,各系統(tǒng)中分別設(shè)有命令中繼裝置,上述命令中繼裝置執(zhí)行當發(fā)生了由一方系統(tǒng)請求另一方系統(tǒng)執(zhí)行處理時,一方系統(tǒng)將表示該處理內(nèi)容的命令寫入到前述共用存儲器內(nèi),并使另一方系統(tǒng)發(fā)生中斷的寫入控制,和另一方系統(tǒng)接受前述中斷的發(fā)生,從前述共用存儲器讀出前述命令的讀出控制。
2.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,其特征為,前述共用存儲器中,各系統(tǒng)分別設(shè)定單獨的存儲區(qū)域,前述各系統(tǒng)的命令中繼裝置,在一方系統(tǒng)進行前述寫入控制時,在與另一方系統(tǒng)對應的存儲區(qū)域內(nèi)寫入,而在另一方系統(tǒng)進行前述的讀出控制時,從與本系統(tǒng)對應的存儲區(qū)域內(nèi)讀出。
3.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,其特征為,在前述共用存儲器的各個存儲區(qū)域內(nèi)包括用于分別存儲發(fā)送給另一方系統(tǒng)的命令的命令存儲區(qū)域和用于存儲就多個命令分別根據(jù)該命令進行處理所參照的數(shù)據(jù)的數(shù)據(jù)存儲區(qū)域,前述各系統(tǒng)的命令中繼裝置,在寫入控制時,在一方系統(tǒng)把讓該系統(tǒng)執(zhí)行的處理所參照的參照數(shù)據(jù)寫入,然后,執(zhí)行將前述命令與參照數(shù)據(jù)的存儲地址一并寫入在前述命令存儲區(qū)域的處理,在讀出控制時,另一方系統(tǒng)接受前述中斷的發(fā)生,從本身系統(tǒng)的命令存儲區(qū)域內(nèi)讀出前述命令及參照數(shù)據(jù)的存儲地址,然后,在將前述命令存儲區(qū)域清零后,執(zhí)行讀出參照數(shù)據(jù)的處理。
4.一種便攜式信息處理裝置,該裝置由把權(quán)利要求1至3中任一項所述的程序執(zhí)行執(zhí)行裝置安裝在機身內(nèi)而構(gòu)成的。
5.一種命令中繼方法,該方法是一種在兩種運算電路中設(shè)定了各自不同的程序執(zhí)行環(huán)境的系統(tǒng),在把各個運算電路彼此連接的同時,將可以由雙方運算電路使用的共用存儲器連接到各個運算電路的連接線路上而構(gòu)成的程序執(zhí)行裝置中,一方系統(tǒng)請求另一方系統(tǒng)進行處理的命令中繼方法,該命令中繼方法包括下述步驟一方系統(tǒng)把表示處理內(nèi)容的命令寫入到前述共用存儲器內(nèi)的步驟,并使另一方系統(tǒng)發(fā)生中斷的步驟;和另一方系統(tǒng)接受前述中斷,從前述共用存儲器讀出前述命令的步驟。
6.根據(jù)權(quán)利要求5所述的命令中繼方法,該方法是一種在把由各個系所使用的單獨的存儲區(qū)域設(shè)定在前述共用存儲器內(nèi)的程序執(zhí)行裝置上執(zhí)行的命令中繼方法,其特征在于,前述寫入步驟是向與另一方系統(tǒng)對應的存儲區(qū)域?qū)懭耄笆鲎x出步驟是從與本系統(tǒng)對應的存儲區(qū)域讀出。
7.根據(jù)權(quán)利要求5所述的命令中繼方法,該方法是一種在前述共用存儲器的各個存儲區(qū)域包括了用以分別存儲發(fā)送給另一方系統(tǒng)的命令的命令存儲區(qū)域和用以存儲就多個命令分別根據(jù)該命令進行處理所參照的數(shù)據(jù)的數(shù)據(jù)存儲區(qū)域的程序執(zhí)行裝置上執(zhí)行的命令中繼方法,其特征在于,前述各個系統(tǒng)的命令中繼方法包括以下步驟一方系統(tǒng)在另一方系統(tǒng)的數(shù)據(jù)存儲區(qū)域內(nèi)寫入使另一方系統(tǒng)執(zhí)行的處理所參照的參照數(shù)據(jù)的步驟;將前述命令與前述參照數(shù)據(jù)的存儲地址一并寫入到前述命令存儲區(qū)域的步驟;前述另一方系統(tǒng)接受來自前述一方系統(tǒng)的中斷,從本系統(tǒng)的命令存儲區(qū)域讀出前述命令及參照數(shù)據(jù)的存儲地址的步驟;把讀出后的前述命令存儲區(qū)域清零的步驟;以及根據(jù)被讀出的前述參照數(shù)據(jù)的存儲地址,讀出前述參照數(shù)據(jù)的步驟。
8.一種程序,該程序在前述程序執(zhí)行裝置中使用權(quán)利要求5至7中任一項所述的命令中繼方法。
全文摘要
提供一種結(jié)構(gòu)簡單并且能夠進行高速處理的具備優(yōu)良的安全性能的程序執(zhí)行裝置。其中,在單獨的運算電路上安裝設(shè)定了基于通用OS16的程序執(zhí)行環(huán)境的主系統(tǒng)100和設(shè)定了虛擬機執(zhí)行環(huán)境的子系統(tǒng)200,同時,把DPRAM 3連接在連接了兩個運算電路的通用總線。安裝在各系統(tǒng)100、200的接口18、28,當系統(tǒng)內(nèi)發(fā)生了請求另一方系統(tǒng)執(zhí)行的處理時,將表示該處理內(nèi)容的命令寫入DPRAM 3,同時,向?qū)Ψ较到y(tǒng)輸出中斷,而對來自另一方系統(tǒng)的中斷,執(zhí)行從前述DPRAM 3讀出被寫入的命令的處理。
文檔編號G06F15/167GK1388448SQ0212221
公開日2003年1月1日 申請日期2002年5月30日 優(yōu)先權(quán)日2001年5月30日
發(fā)明者加藤意之, 森山孝三, 馬場洋介 申請人:歐姆龍株式會社