JP3661852B2 - ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ - Google Patents

ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ Download PDF

Info

Publication number
JP3661852B2
JP3661852B2 JP2001195422A JP2001195422A JP3661852B2 JP 3661852 B2 JP3661852 B2 JP 3661852B2 JP 2001195422 A JP2001195422 A JP 2001195422A JP 2001195422 A JP2001195422 A JP 2001195422A JP 3661852 B2 JP3661852 B2 JP 3661852B2
Authority
JP
Japan
Prior art keywords
subprogram
microprocessor
program
address
rights
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001195422A
Other languages
English (en)
Other versions
JP2005037974A (ja
Inventor
シルヴィ ウィダール
Original Assignee
エステーミクロエレクトロニクス ソシエテ アノニム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エステーミクロエレクトロニクス ソシエテ アノニム filed Critical エステーミクロエレクトロニクス ソシエテ アノニム
Publication of JP2005037974A publication Critical patent/JP2005037974A/ja
Application granted granted Critical
Publication of JP3661852B2 publication Critical patent/JP3661852B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサに関し、特に、保護されたマイクロプロセッサに関するものである。
【0002】
保護されたマイクロプロセッサは、ある機密データやプログラムへのアクセスが禁止される必要があるアプリケーションにおいて、最も一般的に用いらている。従って、機密コードや暗号文アルゴリズムを備えたメモリゾーンを保護するために、例えばスマートカードが一般に保護されたマイクロプロセッサに備えられている。
【0003】
【従来の技術】
従来、マイクロプロセッサは、実行されているプログラムが、読み取り、書き込み、ジャンプ、または呼出し動作のために、あるメモリゾーンをアドレス指定する資格が与えられていることを確認するアドレス制御システムによって保護されている。この種のシステムは、一般に、実行されているプログラムの識別コードを第1の入力にて受信し、アドレス指定されているメモリゾーンの識別コードを第2の入力にて受信する権利割り当てテーブルである。前記メモリゾーンは、マイクロプロセッサのアドレスバスに存在する現在のアドレスに対応する。テーブルにおいて、実行されているプログラムがアドレス指定されているメモリゾーンを利用可能であると予定されている場合、前記テーブルは許可信号を出力する。そうでない場合、前記テーブルは許可信号を出力せず、アドレス違反信号が送信される。
【0004】
この種のアドレス制御システムは、マイクロプロセッサのメモリアレイ内の様々なプログラムの保護された共存を、それらのプログラムの各々に異なる権利を割り当てることによって得るために用いられる。これらの様々なプログラムは、一般に、メーカーによって予定された、マイクロプロセッサの異なるアプリケーションに対応している。
【0005】
【発明が解決しようとする課題】
しかしながら、マイクロプロセッサの保護は、メモリアレイを、各部分が一つのアプリケーションのために確保されている、様々な相互に“密閉された”部分に分割するという点において、メモリアレイの構成にマイナスの影響を及ぼす。現在、異なるアプリケーションのために設計されたプログラムが、“ライブラリ”としての、ある共通領域に集中化できるような類似した計算ステップを有していることがよくある。ライブラリとは,当業者の用語では、いくつかのプログラムによって共用される、一つ以上のサブプログラムを示す。
【0006】
いくつかのプログラムに共通なライブラリ形式のプログラム部分への集中化の標準的な方法は、それが引き起こす安全性の問題のために、保護されたマイクロプロセッサに対しては、一般に禁止されている。例えば,プログラムPGAはメモリアレイのゾーン“X”へアクセスする権利を享受し、 プログラムPGBは “X”と異なるゾーン“Y”へアクセスする権利を享受すると仮定する。プログラムPGAとプログラムPGBによって共用されるサブプログラムを設計することは、どちらがサブプログラムに与えられるべき権利であるかを見つけるという問題を招く。サブプログラムが、プログラムPGAに呼び出された時にはゾーン”X”のデータを読み取ったり書き込んだりすることができ、プログラムPGBに呼び出された時にはゾーン“Y”のデータを読み取ったり書き込んだりすることができる必要がある場合、サブプログラムは、プログラムPGAおよびPGBの総合された権利、すなわち、ゾーン“X”とゾーン“Y”に対する権利を与えられなければならない。しかしながら、プログラムPGB、またはプログラムPGBの場所にロードされた不正プログラムは、サブプログラムを使用して、プログラムPGAのために確保されているゾーン“X”へアクセスすることができるかもしれないし、その逆もまた同様である。従って、メモリアレイへの異なるアクセス権を有する二つのプログラムによって共用されるサブプログラムを設計することは、メモリアレイの分割における違反である。
【0007】
本発明は、この欠点を克服しようとするものである。
【0008】
特に、本発明は、いくつかのプログラムによって共用されるサブプログラムを、そのプログラムの各々に与えられた権利の完全性を危うくすることなく提供するための手段を得ようとするものである。
【0009】
【課題を解決するための手段】
この目的は、マイクロプロセッサによって実行可能なプログラムに、マイクロプロセッサのメモリアレイの、あるゾーンへの永続的なアクセス権を割り当てるための権利割り当てシステムを備えた保護されたマイクロプロセッサを設計することによって達成され、該権利割り当てシステムは、少なくとも2つのプログラムによって共用されるサブプログラムに対して、該サブプログラムがそれらのプログラムの一つによって呼び出される場合、あるメモリゾーンへの一時的なアクセス権を与える手段を備え、その一時的な権利の範囲は、サブプログラムを呼び出しているプログラムの機能であることを特徴とするものである。
【0010】
ある実施の形態によれば、この権利割り当てシステムは、サブプログラムに対して呼出しプログラムの権利を一時的に与える手段を備える。
【0011】
ある実施の形態によれば、この権利割り当てシステムは、サブプログラムに対して、呼出しプログラムとは独立した永続的な権利をさらに与える手段を備える。
【0012】
ある実施の形態によれば、この権利割り当てシステムは、第1の入力においてプログラムまたはサブプログラムの識別コードを、第2の入力においてマイクロプロセッサのアドレスバスを流れる現在のアドレスによって指定されたメモリゾーンの識別コードを受信するためにレイアウトされた権利割り当てテーブルと、サブプログラムの実行中に、権利割り当てテーブルの第1の入力に、サブプログラムを呼び出したプログラムの識別コードを入力する手段とを備える。
【0013】
ある実施の形態によれば、この権利割り当てシステムは、サブプログラムの実行中に、権利割り当てテーブルの第1の入力に、実行されているサブプログラムの識別コードと、前記サブプログラムを呼び出したプログラムの識別コードとを、同時に入力する手段を備える。
【0014】
ある実施の形態によれば、実行されているサブプログラムの識別コードのビットと、前記サブプログラムを呼び出したプログラムの識別コードのビットが、権利割り当てテーブルの第1の入力に入力される前に論理機能によって結合される。
【0015】
ある実施の形態によれば、この権利割り当てシステムは、命令の実行中に、実行されているプログラムまたはサブプログラムの識別コードを格納するための第1のラッチと、その入力が第1のラッチの出力に接続され、マイクロプロセッサがサブプログラムに切り換える時に実行されているプログラムの識別コードを格納するようにレイアウトされて、このサブプログラムを呼び出したプログラムの識別コードを形成する第2のラッチとを備え、前記第2のラッチは、マイクロプロセッサが前記サブプログラムを終了するとリセットされる。
【0016】
ある実施の形態によれば、前記第2のラッチのローディング及びリセットは、アドレスバスを流れる電流アドレスを入力において受信し、サブプログラムの第1の命令のアドレスが検出されると、ローディング信号を前記第2のラッチに入力するようにレイアウトされ、サブプログラムの最後の命令のアドレスが検出されると、リセット信号を第2のラッチに送信するアドレスデコーダによって制御される。
【0017】
ある実施の形態によれば、現在のアドレスによって指定されるメモリゾーンの識別コードと、実行されているプログラムおよびサブプログラムの識別コードとは、アドレスバスを流れる現在のアドレスを入力において受信するアドレスデコーダによって送信される。
【0018】
ある実施の形態によれば、権利分配システムは、アドレスバスに存在するアドレスが、実行されているプログラムまたはサブプログラムに永続的にまたは一時的に割り当てられる権利に対応しない場合、違反信号を送信する。
【0019】
ある実施の形態によれば、前記違反信号は、割り込みデコーダによって処理されて、マイクロプロセッサをアドレス違反処理サブプログラムに送る。
【0020】
【発明の実施の形態】
本発明のこれらおよび他の目的、特徴および利点は、本発明によるマイクロプロセッサの例示的な実施形態に関する、非限定的な説明として与えられ、添付の図を参照してなされる以下の説明において、さらに詳細に説明される。
【0021】
図1は、読み出し専用メモリMEM1(ROM)と、電気的消去可能プログラム可能メモリMEM2 (EEPROM)と、ランダムアクセスメモリMEM3 (RAM)とを備えつけられたマイクロプロセッサMPのブロック図である。これらの様々なメモリは、アドレスバス1およびデータバス2によってマイクロプロセッサに接続され、ともにマイクロプロセッサのメモリアレイを形成している。
【0022】
本発明によれば、マイクロプロセッサMPは、呼出しプログラムの機能として、サブプログラムに対し可変アクセス権を与える権利割り当てシステム10を備えている。
【0023】
システム10は、入力においてアドレスバスに接続されて、アドレスバスを循環している現在のアドレスADRを受信する2つのアドレスデコーダDEC1およびDEC2を備えている。デコーダDEC1は、メモリゾーン識別のための以下のようなタイプのコードCIM を出力する:
CIM = b0 b1...bn bn+1...bm
ここで、各ビットは所定のメモリゾーンの識別に割り当てられており、一度に1つのビットのみが1になることができ、他は0になる。
【0024】
以下、ビットb0ないしbnはメモリからなるメモリゾーンの指定に割り当てられており、ビットbn+1ないしbmはデータからなるメモリゾーンの指定に割り当てられているとする。メモリゾーンは、例えばメモリMEM1に配置され、データゾーンは、メモリMEM2およびMEM3に配置されている。
【0025】
コードCIMのビットb0ないしbnは、マイクロプロセッサMPより出力されるローディング信号LOAD1によって駆動されるラッチLT1の入力に入力される。信号LOAD1がラッチLT 1に入力されると、ラッチの出力は、該ラッチの入力を複写し、プログラムゾーン識別のためのコードCIP1を出力する。
【0026】
コードCIP1 は、デコーダDEC2より出力されるローディング信号LOAD2およびリセット信号RSTによって駆動される第2のラッチLT2の入力に入力される。信号LOAD2がラッチLT2に入力されると、ラッチLT2の出力は、その入力にあるコードCIP1を複写するコードCIP2を出力する。
【0027】
コードCIP1およびCIP2は結合されて、その結果コードCIP3を形成し、これは、デコーダDEC1より出力されるコードCIMを入力E2において受信する権利割り当てテーブルTDAの入力E1に入力される。本実施の形態では、コードCIP1およびCIP2の結合はORゲート11によって提供され、その出力は、コードCIP1およびCIP2のビット毎の論理和に等しいコードCIP3を出力する。
【0028】
権利割り当てテーブルTDAは、基本出力S0〜Sn からなる出力OUTを備え、各出力S0〜Sn は、コードCIP3のビットの一つを受信する入力E1の基本入力E11, …, E1nの同順位のものに対応している。出力S0〜S nは、許可ビットa0〜an という形でアクセス権を出力する。許可ビットaiは、対応する入力E1iが1ビットに等しいビットbiを受信した時は1ビットに等しく、ビットbi と共に、1ビットである許可された組み合わせ{bi,bj}を形成する。許可された組み合わせ{bi,bj}は、最終的にテーブルに記録され、永続的な権利を定める。
【0029】
ラッチLT1のローディング信号LOAD1は、マイクロプロセッサMPがメモリMEM1内の命令を読み取る時、またはまさに読み取ろうとしている時(マイクロプロセッサの読み取りサイクルまたはフェッチサイクル)に、マイクロプロセッサMPから送信される。その時点で、アドレスバスに存在するアドレスADRは、マイクロプロセッサの順序カウンタPCより送信される命令のアドレスIADRである。従って、デコーダDEC1より送信されるコードCIMは、この命令を有するメモリゾーンを指定するビットbi ないし1を有する。このビットbiは、ラッチLT1に記録されているコードCIP1、およびテーブルTDAの入力E1において見つけられる。
【0030】
さらに、信号LOAD2は、デコーダDEC2が共用サブプログラムの第1の命令のアドレスADRinをバス1上において検出すると、デコーダDEC2より送信され、信号RSTは、デコーダDEC2が共用サブプログラムの最後の命令のアドレスADRoutをアドレスバス上において検出すると、デコーダDEC2より送信される。アドレスADRinおよびADRoutは予め設定されており、考慮されているサブプログラムの入力アドレスおよび出力アドレスを表わしている。いくつかのサブプログラムが複数のプログラムによって共用されている場合、デコーダDEC2は、各サブプログラムの入力アドレスおよび出力アドレスを検出し、これらのアドレスの一方が検出されると信号LOAD2または信号RSTを送信するようにレイアウトされる。
【0031】
本発明によるシステム10は、ラッチLT2の出力が0で、テーブルTDAに入力されるコードCIP3は従ってコードCIP1に等しいので、プログラムの実行中は従来通りに作動する。プログラムの実行中、それぞれの新たな命令のローディングの後、例えば実行されている命令がメモリアレイにおける読み取りまたは書き込み命令であるとき、アドレスバスの現在のアドレスADRが変化し、メモリの他のゾーンを指定することがしばしばある。この場合、デコーダDEC1より送信されたコードCIMの値が変化し、対応するメモリゾーンを指定する、1である異なるビットbjを有する。テーブルTDAに入力される組み合わせ{bi,bj}が許可される場合、テーブルの出力Siは1のままである。さもなければ、出力Si は0になり、違反信号VLTは1になる。この命令の実行後、新たな命令のアドレスIADRがアドレスバスに送られ、コードCIMのさらなる変化およびコードビットの他の組み合わせ{bi,bj}のテーブルTDAにおける自動的な検証を引き起こす。このアドレスがサブプログラムにおけるジャンプに対応する場合、テーブルTDAにおいて対応する許可が予定されなければならない。
【0032】
本発明によるシステム10の動作は、プログラムが、共用サブプログラムに対するジャンプや呼び出しのための命令を有するとき、標準的なアドレス制御システムとは異なる。サブプログラムの第1の命令のアドレスADRinがアドレスバス上に位置している時、デコーダDEC2は信号LOAD2を送信し、ラッチLT2は、マイクロプロセッサがサブプログラムに切り換える前にコードCIP1を記録する。マイクロプロセッサがサブプログラムに切り換えると、ラッチLT1の出力におけるコードCIP1は、サブプログラムを含むメモリゾーンを指定し、ラッチLT2の出力におけるコードCIP2は、このサブプログラムを呼び出したプログラムが、あるメモリゾーンを指定する。こうして、コードCIP1は、実行されているサブプログラムを識別し、コードCIP2は、このサブプログラムを呼び出したプログラムを識別する。
【0033】
コードCIP1およびCIP2は、ここではORゲート11内で結合されるので、テーブルTDAは、その入力E1においてコードCIP3を受信する。このコードCIP3は、1ビットのみの代わりに、1であるビットbiを二つ有し、第1のビットは実行されているサブプログラムに対応し、第2のビットはこのサブプログラムを呼び出したプログラムに対応する。呼出しプログラムに対応するビットbiのテーブルTDAのアプリケーションは、その呼出しプログラムに特有のコードCIMのビットとビット{bi,bj}の組合わせを許可する。このように、呼び出されたサブプログラムは、その実行の間に、呼出しプログラムに与えられた権利を“継承する”。サブプログラムに譲渡されたこれらの権利は、これに割り当てられる永続的権利に付加される。しかしながら、これらの権利はゼロになることが選択されることもある。
【0034】
本発明によるシステム10は、このように、呼び出されたサブプログラムに対する動的な権利割り当てを実行し、これは、デコーダDEC2がサブプログラムの出力アドレスADRoutを検出しコードCIP2をリセットする時に、マイクロプロセッサが呼出しプログラムに戻ると終了する。
【0035】
実際には、永続的または一時的な権利の違反が起こった時に送信される信号VLTは、異なる方法で使用されて、禁止されたメモリゾーンへのアクセスを防ぐこともある。図1に示すように、信号VLTは、例えば割り込みデコーダITDECの入力に入力され、その出力は、アドレス違反の場合を処理するサブプログラムのアドレスITADRを送信する。アドレスITADRは、別の入力において順位カウンタPCより送信される次の命令のアドレスIADRを受信する多重装置MUXの入力に入力される。多重装置は、デコーダITDECから送信される信号ITによって駆動され、信号ITが送信されると、アドレスバスに対してアドレスIADRではなくアドレスITADRを送信する。ある代替実施形態では、信号VLTは、マイクロプロセッサを非活性化するように、マイクロプロセッサのリセット信号 (RESET)を0に設定するために用いられる。別の代替実施形態では、信号VLTは、マスク不可能割り込みを発生させるために用いられる。
【0036】
本発明によるシステム10の動作は,図2に示す簡単な典型的なインプリメンテーションに鑑みて、よりはっきりと理解することができるであろう。
【0037】
図2は、マイクロプロセッサのメモリアレイを示し、あるメモリゾーンはアプリケーションのために確保され、その他は厳しく禁じられていて斜線で示されている。この図は、プログラムPGAが記録されているゾーンA、プログラムPGBが記録されているゾーンB、プログラムPGAおよびPGBによって共用されるサブプログラムLIB (ライブラリ)が記録されているゾーンC、プログラムPGAのために読み取りおよび書き込みモードで確保されているデータゾーンD、プログラムPGBのために読み取りおよび書き込みモードで確保されているデータゾーンE、サブプログラムLIBのために読み取りおよび書き込みモードで確保されているデータゾーンF、及び3つのプログラムPGA、PGB、LIBのための読み取りおよび書き込みモードで利用可能なゾーンGを示している。ゾーンA、B、Cは、例えば、メモリMEM1(ROM)内にレイアウトされ、ゾーンD、E、FはメモリMEM2(EEPROM)内にレイアウトされ、ゾーンGはメモリMEM3(RAM)にレイアウトされる。図示されるように、メモリゾーンの識別コードCIMは、ゾーンAないしGの識別にそれぞれ割り当てられた7つのコードビットb0ないしb6からなり、プログラムゾーン識別のためのコードCIP1およびCIP2は、ビットb0、b1、およびb2からなる。
【0038】
この例では、プログラムPGAがサブプログラムに計算ステップの結果をゾーンDへ記録することを求めることができるように、またプログラムPGBがサブプログラムにこのような結果をゾーンEに記録することを求めることができるように、サブプログラムLIBは、このサブプログラムを呼び出すプログラムPGAまたはPGBの権利の恩恵を受けることが望ましく、このサブプログラムは、永続的な権利のおかげで、一時的結果の格納のためにゾーンFおよびGを使用することが出来る。
【0039】
従来の技術では、この目的を達成するために使用された解決策は、サブプログラムにゾーンDおよびEに対する永続的な権利を割り当てさせることにあったのだろうが、これはメモリアレイの区分壁を破ることを課すものであった。
【0040】
本発明によれば、マイクロプロセッサがサブプログラムを入力した場合に、ゾーンDおよびEの一方に対する権利が、呼出しプログラムの機能として、サブプログラムに一時的に割り当てられる。
【0041】
より明確なイメージを与えるために、図3は、このような一時的な権利の割り当て引き起こすために用いられるテーブルTDA1の典型的な実施形態を示している。テーブルTDA1は、3本の水平ラインLH0ないしLH2、7本の垂直ラインLV0ないしLV6、及び3本の出力ラインLS0ないしLS2を備えている。以下を容易に理解できるようにするために、実行されているプログラムの識別コードCIP1のビットをb0’ないしb2’、サブプログラムを呼び出すプログラムの識別コードCIP2のビットをb0”ないしb2”とする。
【0042】
垂直ラインLV0ないしLV6は、それぞれコードCIMのビットb0ないしb6を受け取る。ラインLH0は、ビットb0’及びb0”の論理和の結果を受け取る。ラインLH1は、ビットb1’及びb1”の論理和の結果を受け取る。ラインLH2は、ビットb2’が依然として0であるため、b2’のみを受け取る。ラインLS0ないしLS2は、それぞれ信号VLTを形成するようゲート12で結合される許可ビットa0ないしa2を出力する。
【0043】
プログラムPGA、PGB、及びサブプログラムLIBに割り当てられる、メモリアレイへの永続的アクセス権は、水平ラインLHiと垂直ラインLVjの交点に配置されたMOSトランジスタTi,jの形をとる。ラインLHi及びLVjの交点に配置されたトランジスタTi,jは、そのゲートによってラインLHiに、そのドレインによってラインLVjに、またそのソースによって出力ラインLSiに接続されている。なお、プログラムPGAの、ラインLH0と、それ自身のメモリゾーンA、サブプログラムLIBを含むゾーンC、及びゾーンD及びGに対する永続的な権利を決定するラインLV0、LV2、LV3、及びLV6との交点においてトランジスタを区別することができる(図2)。この図はまた、ラインLH1と、プログラムPGBの永続的権利を決定するラインLV1、LV2、LV4、及びLV6の交点におけるトランジスタ、及びラインLH2と、プログラムゾーンC及びゾーンFおよびGに対するサブプログラムLIBの永続的な権利を決定するラインLV2、LV5、及びLV6、の交点におけるトランジスタを示す。
【0044】
テーブルTDA1の動作は、プラグラムPGA、PGB、及びLIBに対する永続的な権利の割り当てに関しては、それ自体、標準的である。各出力ラインLS0ないしLS1は、レジスタ、それぞれr1ないしr3によって0に保持されており、そのソースによって出力ラインに接続されているトランジスタTi,jが、そのゲートにおいて1であるビットを、そのドレインにおいてシステムの電源電圧に相当する論理“1”を受け取った場合に1になる。
【0045】
サブプログラムの一時的および永続的権利の割り当ては、マイクロプロセッサがサブプログラムへ切り換えると発生する。その時点で、コードCIP1のビットb2’は1である。これは、サブプログラムの権利を活性化する。さらに、サブプログラムがプログラムPGAまたはPGBのどちらによって呼び出されたか次第で、コードCIP2のビットb0”またはb1”もまた1となる。これは、プログラムPGAまたはPGBの権利をサブプログラムの恩恵状態に保つものである。
【0046】
当然のことながら、テーブルTDA1は、当業者の範囲内である様々な代替実施形態、特に、逆の論理構成に開かれている。
【0047】
さらに、上記には呼出しプログラムの権利をサブプログラムに譲渡することが提案されているが、サブプログラムに割り当てられる一時的な権利の範囲に関しては、本発明の種々の代替実施形態が考案され得る。
【0048】
一例として、図4は、テーブルTDA1と同様の垂直ラインLV0ないしLV6を有するが、ビットb0’、b1’、b0”、及びb1”をそれぞれ、これらのビットの論理結合なしに受け取る4本の水平ラインLH0ないしLH3を有するテーブルTDA2を示す。ラインの交点におけるトランジスタT,jは、矢印によって出力ライン、この場合は4本のラインLS0ないしLS3に接続されている点によって模式的に表されている。ここでは、サブプログラムLIBに永続的権利を割り当てるための水平ラインは設けられていない。従って、この例では、これらの永続的な権利は皆無であるが、それらが皆無でないことも考えられ得るであろう。
【0049】
テーブルTDA2は、ラインLH0およびLH1がプログラムPGAおよびPGBの永続的な権利を定義し、ビットb0”及びb1”のみによって起動されるラインLH2およびLH3がサブプログラムLIBの一時的な権利を定義するという点においてテーブルTDA1と異なる。ラインLH2およびLH3は、ラインLH0 およびLH1と異なり、独立しているので、呼出しプログラムの永続的な権利とは異なる一時的な権利を呼出しプログラムの機能として、サブプログラムに割り当てることが可能である。したがって、図示された例では、トランジスタTi,jは、以下の割り当てがなされるようにレイアウトされる。
プログラムPGAに対して:それ自体のプログラムゾーンAに対する権利、サブプログラムLIBのプログラムゾーンCに対する権利、及びゾーンGに対する権利プログラムPGBに対して:それ自体のプログラムゾーンBに対する権利、サブプログラムLIBのプログラムゾーンCに対する権利、及びゾーンGに対する権利プログラムPGAによって呼び出されている時のサブプログラムLIBに対して:それ自体のプログラムゾーンCに対する権利、及びゾーンE及びGに対する権利
プログラムPGBによって呼び出されている時のサブプログラムLIBに対して:それ自体のプログラムゾーンCに対する権利、及びゾーンF及びGに対する権利
【0050】
最終に、サブプログラムへの切り換えにおいて、ラッチLT2により記録されたビットb0”及びb1”を受け取る2本の特別ラインLH2及びLH3を設けることによって、サブプログラムに対して特別な権利を割り当てることが可能である。これらの特別な権利は、呼出しプログラムによって決定され、同時に、このプログラムの権利とは独立している。
【0051】
さらに、この例では、権利の割り当ては、コードCIP2のビットb0”およびb1”のみによるので、サブプログラムLIBに割り当てられた権利は、プログラムPGA及びPGBによって呼び出され得る、任意の他のサブプログラムにも割り当てることができることが分かる。
【0052】
図5は,テーブルTDA2と同様のテーブルTDA3を示すが、ここでは、ラインLH2は、ANDゲートによってビットb2’と結合されたビットb0”を受け取り、LH3は、別のANDゲートによってビットb2’と結合されたビットb1”を受け取る。この場合、ラインLH2またはLH3は、ビットb2’が1に等しく、ビットb0”またはb1”もまた1であるという2重条件でのみ起動され得る。こうして、権利の一時的な譲渡は、任意の他のサブプログラムを除外して、サブプログラムLIBに対して確保される。
【0053】
本発明はもちろん、呼出しプログラムの本質の格納によるサブプログラムへの一時的な権利の譲渡の、本発明による原理に基づいた、変形例および代替実施形態に対して開かれている。特に、それら自体メインプログラムによって呼び出される1次レベルのサブプログラムによって呼び出された2次レベルのサブプログラムに対して、カスケード式の権利の譲渡が考案されることができる。
【0054】
最後に、上でさらに説明された権利割り当てテーブルの実施形態は、本発明の理解を容易にする目的で、トランジスタを用いたマトリクス回路の形式で示されているが、本発明による権利割り当てテーブルは、実際にはいくつかの他の形式を想定することが可能であることに留意しなければならない。特に、この種のテーブルは、VHDL言語コンパイラによって自動的に作成されるブール論理回路の形式で作ることができる。このハイレベルな言語で書かれた機能からの論理回路の自動的な作成方法は、近年、大きな発展を遂げた。
【図面の簡単な説明】
【図1】本発明にかかる権利管理システムを備えたマイクロプロセッサを示すブロック図である。
【図2】マイクロプロセッサのメモリアレイを示し、本発明にかかる権利管理システムの一実施例を図示する。
【図3】図2に示した実施例に関する権利割り当てテーブルの典型的な実施形態を示す。
【図4】本発明にかかる権利割り当てテーブルの他の典型的な実施形態の概略図である。
【図5】本発明にかかる権利割り当てテーブルの他の典型的な実施形態の概略図である。
【符号の説明】
1 アドレスバス
2 データバス
10 権利割り当てシステム
11 ORゲート
12 ゲート
LT1 ラッチ
LT2 第2のラッチ

Claims (10)

  1. マイクロプロセッサによって実行可能なプログラムに、マイクロプロセッサのメモリアレイの、あるゾーンへの永続的アクセス権を割り当てるための権利割り当てシステムを備え、前記システムは第1の入力においてプログラムまたはサブプログラムの識別コードを、第2の入力においてアドレスバスを流れる現在のアドレスによって指定されたメモリゾーンの識別コードを受信する、権利割り当てテーブルを備える、保護されたマイクロプロセッサにおいて、前記システムは、少なくとも2つのプログラムによって共有されるサブプログラムに対して、前記サブプログラムが前記プログラムの一つによって呼び出される場合、あるメモリゾーンへの一時的なアクセス権を与えるためにアレンジされ、この目的のために、サブプログラムの実行中に、前記権利割り当てテーブルの第1の入力に、前記サブプログラムを呼び出したプログラムの識別コードを入力する手段を備えた、
    ことを特徴とする保護されたマイクロプロセッサ。
  2. 請求項1記載のマイクロプロセッサにおいて、
    前記権利割り当てシステムは、サブプログラムに対して呼出しプログラムの権利を一時的に与える手段を備える、
    ことを特徴とするマイクロプロセッサ。
  3. 請求項1または2に記載のマイクロプロセッサにおいて、
    前記権利割り当てシステムは、サブプログラムに対して、呼出しプログラムとは独立した永続的な権利をさらに与える手段を備える、
    ことを特徴とするマイクロプロセッサ。
  4. 請求項1ないし3のいずれかに記載のマイクロプロセッサにおいて、
    前記権利割り当てシステムは、サブプログラムの実行中に、前記権利割り当てテーブルの第1の入力に、実行されている前記サブプログラムの識別コードと、前記サブプログラムを呼び出したプログラムの識別コードとを、同時に入力する手段を備えた、
    ことを特徴とするマイクロプロセッサ。
  5. 請求項1ないし4のいずれかに記載のマイクロプロセッサにおいて、
    実行されている前記サブプログラムの識別コードのビットと、前記サブプログラムを呼び出したプログラムの識別コードのビットが、前記権利割り当てテーブルの第1の入力に入力される前に論理機能によって結合される、
    ことを特徴とするマイクロプロセッサ。
  6. 請求項1ないし5のいずれかに記載のマイクロプロセッサにおいて、
    前記権利割り当てシステムは、
    命令の実行中に、実行されている前記プログラムまたはサブプログラムの識別コードを格納するための第1のラッチと、
    その入力が前記第1のラッチの出力に接続され、マイクロプロセッサがサブプログラムに切り換える時に実行されているプログラムの識別コードを格納するようにレイアウトされて、このサブプログラムを呼び出したプログラムの識別コードを形成するものであって、マイクロプロセッサが前記サブプログラムを終了するとリセットされる第2のラッチとを備える、
    ことを特徴とするマイクロプロセッサ。
  7. 請求項記載のマイクロプロセッサにおいて、
    前記第2のラッチのローディング及びリセットは、アドレスバスを流れる現在のアドレスを入力において受信し、サブプログラムの第1の命令のアドレスが検出されると、ローディング信号を前記第2のラッチに入力するようにレイアウトされ、リセット信号を前記第2のラッチに送信する、アドレスデコーダによって制御される、
    ことを特徴とするマイクロプロセッサ。
  8. 請求項1ないし7のいずれかに記載のマイクロプロセッサにおいて、
    現在のアドレスによって指定されるメモリゾーンの識別コードと、実行されているプログラムおよびサブプログラムの識別コードとは、アドレスバスを流れる現在のアドレスを入力において受信するアドレスデコーダによって送信される、ことを特徴とするマイクロプロセッサ。
  9. 請求項ないし8のいずれかに記載のマイクロプロセッサにおいて、
    前記権利割り当てシステムは、前記アドレスバスに存在するアドレスが、実行されているプログラムまたはサブプログラムに永続的にあるいは一時的に割り当てられる権利に対応しない場合、違反信号を送信する、
    ことを特徴とするマイクロプロセッサ。
  10. 請求項記載のマイクロプロセッサにおいて、
    前記アドレス違反信号は、割り込みデコーダによって処理されて、マイクロプロセッサをアドレス違反処理サブプログラムに送る、
    ことを特徴とするマイクロプロセッサ。
JP2001195422A 2000-06-28 2001-06-27 ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ Expired - Fee Related JP3661852B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0008283A FR2811096A1 (fr) 2000-06-28 2000-06-28 Microprocesseur securise comprenant un systeme d'attribution de droits a des librairies

Publications (2)

Publication Number Publication Date
JP2005037974A JP2005037974A (ja) 2005-02-10
JP3661852B2 true JP3661852B2 (ja) 2005-06-22

Family

ID=8851778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001195422A Expired - Fee Related JP3661852B2 (ja) 2000-06-28 2001-06-27 ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ

Country Status (4)

Country Link
US (1) US6925569B2 (ja)
EP (1) EP1168184A1 (ja)
JP (1) JP3661852B2 (ja)
FR (1) FR2811096A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2833374A1 (fr) * 2001-12-12 2003-06-13 Cp8 Procede et dispositif de controle d'acces dans un systeme embarque
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
EP1507185A1 (fr) * 2003-08-11 2005-02-16 Axalto S.A. Méthode et dispositif de protection contre l'accès non-autorisé à une routine sensible
US7797728B2 (en) * 2004-10-27 2010-09-14 Intel Corporation Mechanism to generate restricted and unrestricted execution environments
NO20050564D0 (no) * 2005-02-02 2005-02-02 Tore Lysemose Hansen Programmonitor for a identifisere uautorisert inntrenging i datasystemer
ITTO20070229A1 (it) * 2007-03-30 2008-09-30 Faiveley Transport Italia Spa Metodo per la protezione della memoria fisica in un sistema a microprocessore
DE102013226872A1 (de) * 2013-10-15 2015-04-16 Continental Automotive Gmbh Verfahren zum Betreiben eines Steuergerätes eines Kraftfahrzeuges und Steuergerät für ein Kraftfahrzeug
JP6493672B2 (ja) * 2015-04-16 2019-04-03 大日本印刷株式会社 電子情報記憶媒体、異常検知方法、異常検知プログラム、及びicカード
GB2569358B (en) * 2017-12-15 2020-01-29 Advanced Risc Mach Ltd Code realms

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5140772B2 (ja) * 1971-07-26 1976-11-05
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
EP0432359A3 (en) * 1989-11-21 1993-03-17 International Business Machines Corporation Method and apparatus for performing memory protection operations in a parallel processor system
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5551051A (en) * 1994-09-20 1996-08-27 Motorola, Inc. Isolated multiprocessing system having tracking circuit for verifyng only that the processor is executing set of entry instructions upon initiation of the system controller program
JP3713141B2 (ja) * 1998-05-19 2005-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムの不正実行防止方法
US6757802B2 (en) * 2001-04-03 2004-06-29 P-Cube Ltd. Method for memory heap and buddy system management for service aware networks
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment

Also Published As

Publication number Publication date
EP1168184A1 (fr) 2002-01-02
US6925569B2 (en) 2005-08-02
JP2005037974A (ja) 2005-02-10
US20020016890A1 (en) 2002-02-07
FR2811096A1 (fr) 2002-01-04

Similar Documents

Publication Publication Date Title
US7444668B2 (en) Method and apparatus for determining access permission
US5432950A (en) System for securing a data processing system and method of operation
US7778074B2 (en) System and method to control one time programmable memory
US5704039A (en) Mask programmable security system for a data processor and method therefor
EP0851358B1 (en) Processing system security
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
KR100395393B1 (ko) 컴퓨터 주변장치의 초기화 및 컴퓨터 주변장치와의 통신을위한 시스템, 장치 및 방법
US5802541A (en) Method and apparatus in a data processing system for using chip selects to perform a memory management function
US20040177266A1 (en) Data processing system with peripheral access protection and method therefor
US9619405B2 (en) Device having memory access protection
US20070255872A1 (en) Bus system and semiconductor integrated circuit
EP0443557B1 (en) Interrupt controller capable of realizing interrupt nesting function
JP3661852B2 (ja) ライブラリに権利を割り当てるためのシステムを備える保護されたマイクロプロセッサ
US11714647B2 (en) Resource allocation in a multi-processor system
US5894562A (en) Method and apparatus for controlling bus arbitration in a data processing system
US7054121B2 (en) Protection circuit for preventing unauthorized access to the memory device of a processor
JP3072706B2 (ja) データ保護装置及びコンピュータ・システム
US7137118B2 (en) Data synchronization hardware primitive in an embedded symmetrical multiprocessor computer
US11604739B2 (en) Conditional direct memory access channel activation
US7120760B2 (en) Harvard architecture microprocessor having a linear addressable space
JPS6362778B2 (ja)
US6987697B2 (en) Memory device
JPS6285372A (ja) マルチプロセツサシステムにおけるコンペアアンドスワツプ方式
US5799160A (en) Circuit and method for controlling bus arbitration
JPH0467226B2 (ja)

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050316

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090401

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100401

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110401

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120401

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130401

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees