多道程序執行控制裝置及方法
2023-08-11 17:33:01 3
專利名稱:多道程序執行控制裝置及方法
技術領域:
本發明涉及在具有多道程序的微型計算機中,禁止一個程序訪問其它程序的多道程序執行控制裝置及方法。
以往,在IC卡和無線電卡等攜帶用數據載體中,重視確保程序和數據的安全性。
它們使用的微型計算機,對於一個半導體裝置主要使用一個主程序,即使有多個程序時,那些程序也是以代行主程序的擴充性作用或者部分功能為目的,以子程序性的功能被使用。在相關的技術中,將多個程序中正在執行的程序的標識符(ID)送到中央運算處理裝置(CPU)中,使其了解執行中的程序。
關於這種在微型計算機中裝載的程序的製作,只能限定於熟知該微型計算機的作業系統(OS)且管理、擁有和經銷該微型計算機的人,或者受委託對其進行研製、知道整個程序的作業系統(OS)的人。
這裡所說的OS是對於使用某系統的某應用程式,將命令的使用方法和數據的管理方法定義化的系統。
然而,在前述以往技術中,在程序按某種規則將自己的ID通知CPU的正常的程序中,雖然CPU能認識正在執行的程序,但在程序不遵循規定的規則時,存在CPU對執行中的程序不能認識的問題。
而且,在前述以往技術中,不能禁止執行中的一個程序訪問其它程序,並且也沒有其必要禁止。因此,在前述技術中,從技術上講,不能避免在存儲器地址上寫入其它不正確的程序的情況下,其它的程序被改寫、或被讀出、或被執行的危險。
另一方面,關於程序的製作,在委託前述相關者以外的人的情況下,因必須將該微型計算機的OS全部公布在程序中,所以有系統向外洩露的可能性高、安全性差以及容易被不正當使用等問題。
本發明鑑於前述存在的問題而作,其目的在於控制多道程序的執行,能禁止某個程序訪問其它程序,提高程序和數據的安全性。
為達到前述目的,本發明第1實施形態的多道程序執行控制裝置,包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,包括在所述各程序中設定禁止來自其它程序的訪問的禁止區域或者允許來自其他程序的訪問的允許區域中至少任何一個的設定裝置。
而發明第2實施形態的多道程序執行控制裝置,包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,具備在所述各程序中設定禁止來自其他程序的訪問的禁止區域的設定裝置、以及在所述多個程序中的某個程序執行中要訪問其他程序的禁止區域時,控制對所述中央運算處理裝置進行中斷和禁止對所述存儲裝置進行訪問中至少任何一項的控制裝置。
本發明第3實施形態的多道程序執行控制裝置,包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,包括在所述多個程序中識別執行的程序的ID的程序ID識別裝置、設定該程序的允許訪問區域的程序區域設定裝置、以及在該程序設定動作切換時動作開始的地址的起始地址設定裝置的程序訪問允許區域設定裝置,和具有將用所述程序區域設定裝置設定的地址與現在正在執行中的程序正在訪問的地址加以比較,並檢測是允許的地址還是允許以外的地址的地址檢測裝置、在用所述地址檢測裝置檢測的結果為允許以外的地址時根據該檢測信號產生用於對中央運算處理裝置進行中斷的信號的中斷信號發生裝置、以及僅在所述地址檢測裝置檢測的結果為,該訪問是允許以外的地址時產生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號的存儲器訪問禁止信號發生裝置的程序訪問控制裝置。
本發明第4實施形態的多道程序執行控制方法,基於具備中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行的多道程序執行控制裝置,其特徵在於,該方法包括在所述多個程序中識別執行的程序的ID的步驟、設定該程序的允許訪問區域的步驟、在該程序設定動作切換時開始動作的地址的步驟、比較所述設定的地址與正在執行中的程序訪問的地址並檢測是允許的地址還是允許以外的地址的步驟、在所述檢測的結果為允許以外的地址時根據該檢測信號發生用於對中央運算處理裝置進行中斷的信號的步驟和僅在所述檢測的結果為,該訪問是允許以外的地址時發生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號的步驟。
也就是說,本發明第1實施形態的多道程序執行控制裝置,藉助於設定裝置,在各程序中設定禁止其他程序的訪問的禁止區域和允許其他程序訪問的允許區域中的至少任何一個。
本發明第2實施形態的多道程序執行控制裝置,藉助於設定裝置,在各程序中設定禁止來自其他程序的訪問的禁止區域,在上述多個程序中的某一個程序正在執行時想要訪問其他程序的某些區域的情況下,藉助於控制裝置執行對中央運算處理裝置的中斷和禁止對存儲裝置進行的訪問兩者中的至少任何一項。
本發明第3實施形態的多道程序執行控制裝置,在程序訪問允許區域設定裝置中,藉助於程序ID識別裝置,識別多個程序中執行的程序的ID,藉助於程序區域設定裝置,設定該程序的允許訪問區域,藉助於起始地址設定裝置,動作切換時在該程序設定開始動作的地址。然後,在程序訪問控制裝置中,藉助於地址檢測裝置,比較用所述程序區域設定裝置設定的地址與現在正在執行中的程序正在訪問的地址,並檢測是允許地址還是允許以外的地址,藉助於中斷信號發生裝置,在所述地址檢測裝置檢測的結果為允許以外的地址時根據該檢測信號發生用於對中央運算處理裝置進行中斷的信號,藉助於存儲器訪問禁止信號發生裝置,僅在所述地址檢測裝置檢測的結果為,該訪問是允許以外的地址時,發生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號。
在本發明第4實施形態的多道程序執行控制方法中,在多個程序中識別執行程序的ID,設定該程序的允許訪問區域,在該程序中設定動作切換時開始動作的地址,比較所述設定的地址與正在執行中的程序正在訪問的地址,並檢測是允許的地址還是允許以外的地址,在所述檢測的結果為允許以外的地址時、根據該檢測信號生成用於對中央運算處理裝置進行中斷的信號,僅在所述檢測的結果為,該訪問是允許以外的地址時發生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號。
圖1是與本發明實施例相關的多道程序執行控制裝置的結構圖。
圖2是用於對本發明的多道程序執行控制裝置的存儲器的訪問進行說明的存儲器映射圖。
圖3是用於對本發明的多道程序執行控制裝置的存儲器的訪問進行說明的存儲器映射圖。
圖4是用於對本發明的多道程序執行控制裝置的存儲器的訪問進行說明的存儲器映射圖。
圖5是用於對本發明的多道程序執行控制裝置的存儲器的訪問進行說明的存儲器映射圖。
下面,參照附圖對本發明的實施例進行說明。
實施例圖1表示與實施例相關的多道程序執行控制裝置的結構圖。
如圖1所示,程序訪問允許區域設定電路1、2的輸出連接到程序訪問控制電路3的輸入,該程序訪問控制電路3的輸出連接到系統控制電路4的輸入。該系統控制電路4的輸出分別連接到CPU5、ROM6、RAM7、EEPROM8的輸入。此外,這種系統控制電路4與前述程序訪問允許區域設定電路1、2相互連接。前述CPU5的輸出連接到地址總線9,該地址總線9與前述ROM6、RAM7、EEPROM8、系統控制電路4以及程序訪問控制電路3的輸入相連接。前述ROM6的輸出連接到數據總線10,該數據總線10分別與前述系統控制電路4、CPU5、RAM7以及EEPROM8相連接。
這樣,本實施例的多道程序執行控制裝置為了檢測各程序訪問狀態、禁止某個程序對其他程序的訪問,設有程序訪問允許區域設定電路1、2和程序訪問控制電路3。
該程序訪問允許區域設定電路1,更具體地說由程序ID識別寄存器1a、程序區域設定寄存器1c和起始地址寄存器1b三個寄存器組成。程序ID識別寄存器1a顯示執行的程序是什麼程序。程序區域設定寄存器1c是設定該程序的訪問允許的寄存器。起始地址寄存器1b是動作切換時在該程序中設定開始地址的寄存器。這樣的結構,對於程序訪問允許區域設定電路2也相同。
前述程序訪問控制電路3,由地址檢測電路3a、CPU用中斷信號生成電路3b和存儲器訪問禁止信號生成電路3c構成。地址檢測電路3a比較用程序區域設定寄存器設定的地址和現在正在執行的程序正在訪問的地址的值,檢測是允許地址還是允許以外地址。CPU用中斷信號生成電路3b是,用地址檢測電路3a檢測的結果為允許以外的地址時,根據該檢測信號生成用於對CPU5施加中斷的信號的電路。存儲器訪問禁止信號生成電路3c是用地址檢測電路3a進行檢測,僅當該訪問為允許以外的地址時,生成用於禁止訪問對應於該允許以外的地址的存儲器的信號的電路。
在這樣的結構中,某程序(這裡假設為程序A)在訪問允許區域內動作時,因是正常動作,所以本發明的電路,不會特別產生控制信號到CPU5、存儲器6到8中。但是,當程序A到訪問允許區域外訪問時,根據地址檢測電路3a的檢測信號,CPU用中斷信號發生電路3b發生的中斷信號,對CPU5施加中斷,將該程序A的不正當訪問通知CPU5。同時,用存儲器訪問禁止信號發生電路3c發生的信號,禁止作為該不正當訪問對象的存儲器動作。藉助於這樣的程序訪問允許區域設定電路1和程序訪問控制電路3的一系列的動作,能實現本發明的目的。
接著,參照圖2和圖3的存儲器映射對藉助於前述多道程序執行控制裝置的程序間的訪問進行說明。
在圖2的例中,由ROM6、RAM7、EEPROM8以及其他部分組成的存儲器的存儲器映射11,詳細地說,可分類成為ROM6的存儲器映射12、RAM7的存儲器映射13和EEPROM8的存儲器映射14。於是,如同這些存儲器映射所示,ROM6中設置多個程序A,B,……的存儲區域,EEPROM8中設置程序A,B……的擴充和工作區域、程序1,2,……的存儲區域和工作區域,RAM7中設置各程序A,B,……,1,2,……的工作區域。
當由CPU5使系統復位時,在前述ROM6中存儲的多個程序A,B,……中,在程序訪問允許區域設定電路1內部的各寄存器中設定動作可能範圍的程序動作。這裡,假設程序A被設定於該寄存器中。
在該程序A正在執行時使用用其他程序(這裡假設為程序B)處理的數據的情況下,CPU5首先根據程序A的命令在程序訪問允許區域設定電路1的起始地址寄存器1b中,設定從程序B返回到程序A時的程序A的起始地址,並在程序訪問允許區域設定電路2的各寄存器中設定程序B的起始地址。但是,在程序A完全地控制程序B等的做法中,因為能從程序A自由地轉移到程序B的某個地址,所以CPU5不必設定程序B的起始地址寄存器、只要封鎖程序B的起始地址寄存器就行。這樣動作後,CPU5從程序A轉移到程序B被分配的起始地址或者程序B的某個地址,並從程序A切換到程序B的執行。此外,前述動作在使用用其他程序C,D,……處理的數據的情況下也是相同的。
程序B在允許地址內執行時,由地址檢測電路3a輸出正常動作中的信號,因而不能進行對CPU5的中斷、也不能禁止存儲器訪問。但是,在該程序B不正當地或者超越控制範圍訪問允許地址以外的地址空間的情況下,地址檢測電路3a檢測允許外地址,並將檢測信號輸出到CPU中斷信號發生電路3b和存儲器訪問禁止信號發生電路3c。以此,由於CPU中斷信號發生電路3b和存儲器訪問禁止信號發生電路3c發生的信號,發生了對CPU5的中斷。而且,禁止對對應於允許外地址的存儲器的訪問。在從程序B返回到程序A的情況下,CPU5使已經設定程序A用條件的程序訪問允許區域設定電路1可以操作,在程序A的起始地址中進行從程序B向程序A的轉移。以此使程序A能再次動作。此外,程序B的向程序A的轉移前頭的地址與程序A的起始地址的寄存器的值不一致時,地址檢測電路3a也進行檢測,並對CPU5施加中斷。
在圖3的例中,由ROM6、RAM7、EEPROM8以及其他部分組成的存儲器映射15,細分成為ROM6的存儲器映射16、RAM7的存儲器映射17和EEPROM8的存儲器映射18。於是,如這些存儲映射所示,ROM6中設置多個程序A、B、……的存儲區域和程序共同區域A,EEPROM8中設置程序A、B、……的擴充和工作區域、程序1、2、……的存儲區域和工作區域和程序共同區域C,RAM7中設置各程序A、B、……、1、2、……的工作區域和程序共同區域B。
這樣,與圖2相比,在圖3的存儲器映射中,各個存儲器中具有程序共同區域。這是因為禁止各個程序相互地直接訪問,所以在程序共同區域上能按某種程序切換規則,進行各程序間執行的切換。
藉助於CPU5進行系統復位後,由程序共同區域指定究競是哪個程序動作。該指定方法可根據外部來的數據進行也可內部固定,任意一種。例如,系統復位後,選擇程序A,假設為程序A分配程序訪問允許區域設定電路1。接著,當希望從程序A切換到其他程序(程序1)時,CPU5首先根據來自程序A的命令,將用於轉移到程序1的預定命令或者數據寫入程序共同區域B或者C中。這裡,因禁止各程序進行直接相互訪問,所以在該例中,當程序A要訪問其它程序時,就禁止訪問。CPU5一旦從程序A返回程序共同區域,由該程序在程序訪問允許區域設定電路2的各寄存器進行程序1的設定後,向程序1轉移。
下面參照圖4和圖5對與實施例相關的多道程序執行控制裝置的動作細節進行說明。
圖4出示各有一個主程序和子程序的例子並加以說明。在該例中,由ROM6、RAM7、EEPROM8和其他部分組成的存儲器的存儲器映射19,可細分為ROM6的存儲器映射20、RAM7的存儲器映射21和EEPROM8的存儲器映射22。
於是,如這些存儲器映射所示,ROM6中設置主程序的存儲區域,EEPROM8中設置主程序和子程序的擴充和工作區域,RAM7中設置主程序和子程序的工作區域。
由於CPU5的系統復位,程序訪問允許區域設定電路1被恢復操作,並在其內部各寄存器中設定主程序動作可能範圍。在該系統復位之後,主程序動作。在執行主程序的過程中,根據需要,轉移到子程序中,主程序有時使用用子程序處理了的數據。這種情況下,首先根據主程序的命令,在程序訪問允許區域設定電路1的起始地址1中,設定從子程序返回到主程序時的主程序的起始地址。此外,在程序訪問允許區域設定電路2的各寄存器中進行子程序的設定。
接著,CPU5從主程序轉移到分配子程序的起始地址或者有子程序的地址。由此,切換從主程序到子程序的執行。子程序在允許地址內執行時,由於從地址檢測電路3a輸出在正常動作中的信號,所以不能進行對CPU5的中斷也不能禁止存儲器訪問。但是,在該子程序不正當地或者超越控制範圍地訪問允許地址以外的地址空間時,地址檢測電路3a檢測允許以外的地址,並輸出檢測信號。由此,由CPU中斷信號發生電路3b和存儲器訪問禁止信號發生電路3c,用生成的信號產生對CPU5的中斷,並禁止訪問對應於允許以外的地址的存儲器。
在從子程序返回到主程序時,使已經設定主程序用條件的程序訪問允許區域設定電路1恢復動作,在主程序的起始地址中進行從子程序向主程序的轉移。藉助於此,主程序能再次動作。而且,子程序向主程序的轉移前頭的地址與主程序的起始地址的寄存器的值不一致時地址檢測電路3a也進行檢測,並對CPU5施加中斷。
圖5顯示ROM6中有二個程序,EEPROM8中有二個程序的例子並進行說明。在該例中,由ROM6、RAM7、EEPROM8和其他部分組成的存儲器的存儲器映射23,詳細地說分成ROM6的存儲器映射24、RAM7的存儲器映射25和EEPROM8的存儲器映射26。如這些存儲器映射所示,ROM6中設置程序1,2的存儲區域和程序共同區域A,EEPROM8中設置程序1-4的擴充和工作區域、以及程序共同區域C,RAM7中設置各程序1-4的工作區域和程序共同區域B。
現在,當系統復位後,選擇程序1,假設為程序1分配程序訪問允許區域設定電路1。接著,當希望從程序1切換到其他程序(程序3)時,首先根據來自程序1的命令,將用於轉移到程序3中的某個命令或者數據寫入到程序共同區域B或者C中。在本例中,因禁止各程序相互進行直接訪問,所以當程序1要訪問其他程序2-4時,訪問就被禁止。一旦從程序1返回程序共同區域,由該程序在程序訪問允許區域設定電路2的各寄存器中進行程序3的設定。而後,向程序3轉移。接著,重複進行這種操作。
如上所述,採用本發明的多道程序執行控制裝置,在製作、管理ROM中程序時,能防止從子程序向主程序的不正當訪問,確保主程序的安全。而且,因不需向子程序的製作者公開使該微型計算機動作的晶片作業系統,所以能確保晶片作業系統的安全。
然後,子程序製作者的立場是,即使不知道晶片作業系統,只要是增添了子程序所必需的功能程序就行,所以能容易地製作。此外,即使子程序的動作異常,也因為禁止對主程序進行訪問,所以能將異常動作對主程序的影響限制於最低限度。進而,由於子程序製作容易,程序製作者比起以往只限於知道晶片作業系統的人來說,要多得多,只要知道CPU的系統操作就能製作。
由此,對應於每個應用程式能迅速地製作,且程序製作時間也縮短。此外,應用程式也能的多樣化。在費用上,例如可將這種子程序寫入EEPROM等可改寫的不揮發性存儲器,所以不需以往那樣對每個應用程式製作ROM的掩模數據,而只要製作某一個主程序的掩模數據即可。因此,可削減對應於各應用程式的掩模數據的製作費,減少費用。而且,也不需要那些應用程式的掩模數據相應的製作時間,不需要在裝入已有的主程序的樣品中安裝該應用用的子程序的以外的時間。
另一方面,因能禁止各程序之間的訪問,所以能完全地確保各程序數據的安全。例如,在以加密程序那樣的安全重要的情況下,能對別的程序製作者保持加密程序的算法和加密數據的處理方法的秘密。由此,能防止來自其他程序的不正當訪問和加密程序的不正當使用與不正當複製等。而且,用以上辦法可強化程序的著作權的有效性並保護所有者的權益。
而且,有可能不受晶片作業系統的限制地製作作為加密程序等的、特別要求安全的程序應用軟體包單體具有價值的程序。這不僅使加密程序,而且使對應於各種應用的具體算法黑盒子化,所以能提高安全性並能防止商品價值的下降。
即,這種程序的黑盒子化,使用禁止來自其他程序的訪問的本發明,能提高其安全性。例如,從IC卡等輸入使衛星廣播等的加密數據解調的解碼用的關鍵碼,能獲得衛星廣播的接收權。這時,使用本發明,即使是主程序的製作者,也不能了解加密程序的算法(algorithm),所以能特別地發揮該密碼的作用。進而,即使對於IC卡發行公司,對其密碼部分可以委託密碼製作公司管理,所以沒有在IC卡發行公司內洩露其密碼的危險。而且,由於主程序和加密程序的製作者分開,提高了安全性。
此外,並記在本申請範圍中各主要構件圖的標號,是為了使本發明容易理解,而不是將本發明的技術範圍限定於圖示的實施例的示意圖。
如上所述,採用本發明,能提供對多個程序的執行進行控制、能禁止某個程序訪問其他的程序和提高程序及數據安全性的多道程序執行控制裝置及方法。
權利要求
1.一種多道程序執行控制裝置,該裝置包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,包括在所述各程序中設定禁止來自其它程序的訪問的禁止區域或者允許來自其他程序的訪問的允許區域中至少任何一個的設定裝置。
2.一種多道程序執行控制裝置,該裝置包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,具備在所述各程序中設定禁止來自其他程序的訪問的禁止區域的設定裝置以及在所述多個程序中的某個程序執行中要訪問其他程序的禁止區域時,控制對所述中央運算處理裝置進行中斷和禁止對所述存儲裝置進行訪問中至少任何一項的控制裝置。
3.一種多道程序執行控制裝置,該裝置包括中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行,其特徵在於,包括在所述多個程序中識別執行的程序的ID的程序ID識別裝置、設定該程序的允許訪問區域的程序區域設定裝置、以及在該程序設定動作切換時動作開始的地址的起始地址設定裝置的程序訪問允許區域設定裝置,和具有將用所述程序區域設定裝置設定的地址與執行中的程序正在訪問的地址加以比較,並檢測是允許的地址還是允許以外的地址的地址檢測裝置、在用所述地址檢測裝置檢測的結果為允許以外的地址時根據該檢測信號產生用於對中央運算處理裝置進行中斷的信號的中斷信號發生裝置、以及僅在所述地址檢測裝置檢測的結果為,該訪問是允許外的地址時產生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號的存儲器訪問禁止信號發生裝置的程序訪問控制裝置。
4.一種多道程序執行控制方法,基於具備中央運算處理裝置和存儲多個程序的存儲裝置,控制所述多個程序中各程序的執行的多道程序執行控制裝置,其特徵在於,該方法包括在所述多個程序中識別執行的程序的ID的步驟、設定該程序的允許訪問區域的步驟、在該程序設定動作切換時開始動作的地址的步驟、比較所述設定的地址與正在執行中的程序訪問著的地址並檢測是允許的地址還是允許以外的地址的步驟、在所述檢測的結果為允許以外的地址時根據該檢測信號發生用於對中央運算處理裝置進行中斷的信號的步驟、和僅在所述檢測的結果為,該訪問是允許以外的地址時發生用於禁止訪問與該允許以外的地址對應的存儲裝置的信號的步驟。
全文摘要
本發明揭示一種多道程序執行控制裝置及方法,該裝置包括CPU(5)、存儲器(6-8)、識別執行程序的ID,設定該程序的允許訪問區域和在該程序中設定動作切換時開始動作的地址的程序訪問允許區域設定電路(1)、(2)、檢測正在執行的程序訪問的地址是允許的地址還是允許以外的地址,是允許以外的地址時根據該檢測信號發生用於對CPU(5)進行中斷的信號和生成用於禁止訪問與該允許以外的地址對應的存儲(6-8)的信號的程序訪問控制電路(3)。
文檔編號G06F9/46GK1161500SQ9610444
公開日1997年10月8日 申請日期1996年3月29日 優先權日1996年3月29日
發明者榊欣也 申請人:東芝株式會社