(57)【要約】【課題】  メモリ内に格納された機密コードを確実に保護する。【解決手段】  本発明のメモリシステムは、機密コードを格納した第１のメモリと、仮想アドレスを物理アドレスに変換するアドレス変換バッファを有し、前記仮想アドレスを用いたプログラムを実行するプロセッサと、前記プロセッサによる前記第１のメモリへのアクセス可否を判定するアクセス可否判定回路であって、前記アクセス可否の判定において判定基準となるアクセス可否判定コードを第２のメモリにおいて格納し、前記アクセス可否判定コードの前記仮想アドレスから変換された前記物理アドレスを前記プロセッサから受け取った場合は、前記第２のメモリ内におけるこの物理アドレスに格納された前記アクセス可否判定コードと、前記アクセス可否の判定において判定対象となる前記プロセッサから出力されるアクセスコードとに基づいて、前記アクセス可否を判定するアクセス可否判定回路と、を備える。【選択図】  図１
2005063170.tif 000002
【特許請求の範囲】
【請求項１】
機密コードを格納した第１のメモリと、
仮想アドレスを物理アドレスに変換するアドレス変換バッファを有し、前記仮想アドレスを用いたプログラムを実行するプロセッサと、
前記プロセッサによる前記第１のメモリへのアクセス可否を判定するアクセス可否判定回路であって、前記アクセス可否の判定において判定基準となるアクセス可否判定コードを第２のメモリにおいて格納し、前記アクセス可否判定コードの前記仮想アドレスから変換された前記物理アドレスを前記プロセッサから受け取った場合は、前記第２のメモリ内におけるこの物理アドレスに格納された前記アクセス可否判定コードと、前記アクセス可否の判定において判定対象となる前記プロセッサから出力されるアクセスコードとに基づいて、前記アクセス可否を判定するアクセス可否判定回路と、
を備えたメモリシステム。
【請求項２】
前記プロセッサは、前記第１のメモリへのアクセスが許可された場合は、前記アドレス変換バッファを用いて前記機密コードの前記仮想アドレスを前記物理アドレスに変換し、この物理アドレスを用いて前記第１のメモリから前記機密コードを取得することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
機密コードを格納した第１のメモリと、仮想アドレスを用いたプログラムを実行し、前記仮想アドレスを物理アドレスに変換するアドレス変換バッファを有したプロセッサと、前記プロセッサによる前記第１のメモリへのアクセス可否を判定する、前記アクセス可否の判定における判定基準となるアクセス可否判定コードを第２のメモリにおいて格納したアクセス可否判定回路とを備えたメモリシステムにおいて、前記プロセッサが前記第１のメモリから前記機密コードを取得するメモリアクセス方法であって、
前記アクセス可否判定回路が、前記アクセス可否判定コードの前記仮想アドレスから変換された前記物理アドレスを前記プロセッサから受け取るステップと、
前記アクセス可否判定回路が、前記アクセス可否の判定における判定対象となるアクセスコードを前記プロセッサから受け取るステップと、
前記アクセス可否判定回路が、前記第２のメモリ内における前記物理アドレスに格納された前記アクセス可否判定コードと、受け取った前記アクセスコードとに基づいて、前記プロセッサによる前記第１のメモリへのアクセス可否を判定するステップと、
前記プロセッサは、前記第１のメモリへのアクセスが許可された場合は、前記アドレス変換バッファを用いて、前記機密コードの前記仮想アドレスを前記物理アドレスに変換し、前記物理アドレスを用いて前記第１のメモリから前記機密コードを取得するステップと、
を備えたことを特徴とするメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステム及びメモリアクセス方法に関する。
【背景技術】
【０００２】
図４は、従来のメモリシステムの構成を示すブロック図である。
【０００３】
このメモリシステムにおいて、ＲＯＭ（Read Only Memory）２１には、暗号化データ（例えば、ＤＶＤに格納された映像データや音楽データなど）の復号化に用いる復号キー等の機密コードが格納されている。ＲＯＭ２２（１）〜２２（ｎ）には、ＣＰＵ２３により実行される各種プログラム等が格納されている。ＣＰＵ２３は、プログラムを実行してＲＯＭ２１から機密コードを取り出し、各種処理（例えば、映像データや音楽データの復号化など）を行う。
【０００４】
ＣＰＵ２３がＲＯＭ２１内の機密コードを取得するには、まず、機密コードの格納された物理アドレスＭＡＤＲをアドレスライン２４に送出する。アドレスライン２４に接続された分割回路２５は、この物理アドレスＭＡＤＲを、ＲＯＭ２１、２２（１）〜２２（ｎ）を選択するための上位アドレスＵＡＤＲと、選択されたＲＯＭ内における物理アドレスを特定するための下位アドレスＬＡＤＲとに分割する。分割回路２５は、上位アドレスＵＡＤＲをデコード回路２６に送出し、一方、下位アドレスＬＡＤＲをＲＯＭ２１、２２（１）〜２２（ｎ）に送出する。
【０００５】
デコード回路２６は、受け取った上位アドレスＵＡＤＲに基づき、ＲＯＭ２１、２２（１）〜２２（ｎ）のいずれかを選択する。具体的には、デコード回路２６は、選択するＲＯＭに対してチップ選択信号（ローレベル）を出力する。ここでは、デコード回路２６は、機密コードが格納されたＲＯＭ２１を選択するものとする。
【０００６】
選択されたＲＯＭ２１は、上において分割回路２５から受け取った下位アドレスＬＡＤＲに格納されたデータ（ここでは機密コード）を読み出し、図示しないデータ線を介して、ＣＰＵ２３に送出する。
【０００７】
以上から分かるように、このメモリシステムでは、ＣＰＵ２３がＲＯＭ２１内の機密コードを取得するには、機密コードが格納された物理アドレスＭＡＤＲをアドレスライン２４に送出する。
【０００８】
ここで、アドレスライン２４を流れる物理アドレスＭＡＤＲは、半導体解析装置を用いることにより、観察可能である。
【０００９】
従って、上述した構成では、不正の目的をもった者が、アドレスライン２４を観察するなどして機密コードの物理アドレスＭＡＤＲを取得することで、機密コードを取得するプログラムを作成するなどして、容易に機密コードにアクセスできてしまう。
【００１０】
図５は、従来の別のメモリシステムの構成を示すブロック図である。
【００１１】
この別のメモリシステムは、上述のメモリシステムに対し、プロセッサ２３がＲＯＭ２１へアクセスすることを認めるか否かを判定するアクセス可否判定回路２８を新たに追加したものである。
【００１２】
このアクセス可否判定回路２８は、アクセス可否の判定基準となるアクセス可否判定コードを格納したレジスタ２９を備える。レジスタ２９は、所定の物理アドレスＭＡＤＲを有する。
【００１３】
ＣＰＵ２３は、ＲＯＭ２１へのアクセスに際しては、まず、アクセス可否の判定において判定対象となるアクセスコードを、レジスタ２９の物理アドレスＭＡＤＲを指定して、アクセス可否判定回路２８に送出する。
【００１４】
アクセス可否判定回路２８は、レジスタ２９内のアクセス可否判定コードと、受け取ったアクセスコードを比較し、両者が一致する場合は、アクセス許可を示す許可信号（ローレベル）をＯＲ回路３０に出力する。
【００１５】
ＯＲ回路３０は、アクセス可否判定回路２８から許可信号（ローレベル）が入力された場合のみ、デコード回路２６からＲＯＭ２１へのチップ選択信号（ローレベル）を通過させる。
【００１６】
しかし、以上のようなメモリシステムにおいても、アドレスライン２４を観察することで、レジスタ２９の物理アドレスＭＡＤＲを容易に取得できる。レジスタ２９の物理アドレスＭＡＤＲが分かれば、レジスタ２９内のアクセス可否判定コードも容易に取得できる。この結果、機密コードを容易に取得されてしまう。
【特許文献１】特開２０００−２７６３９７号公報
【特許文献２】特開２００１−２６５６５４号公報
【特許文献３】特開２００２−３１２２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、上記問題点に鑑みてなされたものであり、その目的は、メモリ内に格納された機密コードを有効に保護できるメモリシステム及びメモリアクセス方法を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の第１のメモリシステムは、機密コードを格納した第１のメモリと、仮想アドレスを物理アドレスに変換するアドレス変換バッファを有し、前記仮想アドレスを用いたプログラムを実行するプロセッサと、前記プロセッサによる前記第１のメモリへのアクセス可否を判定するアクセス可否判定回路であって、前記アクセス可否の判定において判定基準となるアクセス可否判定コードを第２のメモリにおいて格納し、前記アクセス可否判定コードの前記仮想アドレスから変換された前記物理アドレスを前記プロセッサから受け取った場合は、前記第２のメモリ内におけるこの物理アドレスに格納された前記アクセス可否判定コードと、前記アクセス可否の判定において判定対象となる前記プロセッサから出力されるアクセスコードとに基づいて、前記アクセス可否を判定するアクセス可否判定回路と、を備えたことを特徴とする。
【００１９】
本発明の第２のメモリシステムは、前記プロセッサは、前記第１のメモリへのアクセスが許可された場合は、前記アドレス変換バッファを用いて前記機密コードの前記仮想アドレスを前記物理アドレスに変換し、この物理アドレスを用いて前記第１のメモリから前記機密コードを取得することを特徴とする。
【００２０】
本発明のメモリアクセス方法は、機密コードを格納した第１のメモリと、仮想アドレスを用いたプログラムを実行し、前記仮想アドレスを物理アドレスに変換するアドレス変換バッファを有したプロセッサと、前記プロセッサによる前記第１のメモリへのアクセス可否を判定する、前記アクセス可否の判定における判定基準となるアクセス可否判定コードを第２のメモリにおいて格納したアクセス可否判定回路とを備えたメモリシステムにおいて、前記プロセッサが前記第１のメモリから前記機密コードを取得するメモリアクセス方法であって、前記アクセス可否判定回路が、前記アクセス可否判定コードの前記仮想アドレスから変換された前記物理アドレスを前記プロセッサから受け取るステップと、前記アクセス可否判定回路が、前記アクセス可否の判定における判定対象となるアクセスコードを前記プロセッサから受け取るステップと、前記アクセス可否判定回路が、前記第２のメモリ内における前記物理アドレスに格納された前記アクセス可否判定コードと、受け取った前記アクセスコードとに基づいて、前記プロセッサによる前記第１のメモリへのアクセス可否を判定するステップと、前記プロセッサは、前記第１のメモリへのアクセスが許可された場合は、前記アドレス変換バッファを用いて、前記機密コードの前記仮想アドレスを前記物理アドレスに変換し、前記物理アドレスを用いて前記第１のメモリから前記機密コードを取得するステップと、を備えたことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、プログラムにおいてメモリアドレスとして仮想アドレスを用いるとともに、仮想アドレスを物理アドレスに変換するアドレス変換バッファをプロセッサに備えさせたので、アドレスラインの観察などにより、アクセス可否判定コードの物理アドレスや、機密コードの物理アドレスが露呈した場合においても、機密コードを確実に保護することができる。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明の実施の形態としてのメモリシステムの構成を示すブロック図である。
【００２３】
このメモリシステムは、例えば、１チップにより構成される。
【００２４】
図１に示すように、ＲＯＭ（メモリ）１は、暗号化データを解読するための復号キー等の機密コードを格納する。
【００２５】
一方、ＲＯＭ２（１）〜２（ｎ）は、ＲＯＭ１から機密コードを取得することを実現するプログラムや、取得した機密コードを用いて各種処理を行うことを実現するプログラム等を格納する。各種処理としては、例えば、暗号化された音楽データを機密コードを用いて復号することなどがある。
【００２６】
ＣＰＵ３は、ＲＯＭ２（１）〜２（ｎ）内に格納されたプログラムを含む各種プログラムを実行する。ＣＰＵ３の実行対象となるプログラムは、メモリアドレスとして仮想アドレスＶＡＤＲを用いる。
【００２７】
ＣＰＵ３は、仮想アドレスＶＡＤＲを物理アドレスＭＡＤＲに変換するアドレス変換バッファ（ＴＬＢ：Translation Lookaside Buffer）（図示せず）を備えたメモリ管理ユニット（ＭＭＵ:Memory Management Unit）１０を有する。
【００２８】
アドレス変換バッファは、図３に示すような、仮想アドレスＶＡＤＲと物理アドレスＭＡＤＲとをマッピングしたアドレス変換テーブルを有する。アドレス変換バッファは、このアドレス変換テーブルを用いて、図２に示すように、仮想アドレスＶＡＤＲを物理アドレスＭＡＤＲに変換する。このアドレス変換テーブルは、例えばあらかじめユーザが作成しておく。
【００２９】
ＣＰＵ３は、ＲＯＭ１、２（１）〜２（ｎ）へのアクセスの際は、メモリ管理ユニット１０を用いて仮想アドレスＶＡＤＲを物理アドレスＭＡＤＲに変換する。このような仕組みは、例えば、Windows-CE（登録商標）, Linux（登録商標）, EPOC（登録商標）等のオペレーティング・システムにも採用されている。
【００３０】
アクセス可否判定回路４は、ＣＰＵ３がＲＯＭ１へアクセスことを許可するか否かを判定する。アクセス可否判定回路４は、アクセス可否の判定をする際の判定基準となるアクセス可否判定コード（例えば１バイトのサイズを有するコード）を保有したレジスタ５を備える。レジスタ５は、所定の物理アドレスＭＡＤＲを有する。
【００３１】
ＣＰＵ３がＲＯＭ１へアクセス際は、アクセス可否の判定において判定対象となるアクセスコードを、レジスタ５の物理アドレスＭＡＤＲを指定して、アクセス可否判定回路４に送る。アクセス可否判定回路４は、レジスタ５内のアクサセス可否判定コードと、受け取ったアクセスコードが一致すればＲＯＭ１へのアクセスを許可する。
【００３２】
一方、アクセス可否判定回路４は、指定された物理アドレスＭＡＤＲがレジスタ５の物理アドレスＭＡＤＲと異なる場合や、アクセスコードとアクセス可否判定コードとが一致しない場合は、ＲＯＭ１へのアクセスを許可しない。
【００３３】
アクセス可否判定回路４は、アクセスを許可する場合は、許可信号（ローレベル）をＯＲ回路９に出力し、許可しない場合は、非許可信号（ハイレベル）をＯＲ回路９に出力する。
【００３４】
分割回路８は、ＣＰＵ３から物理アドレスＭＡＤＲを受け取り、ＲＯＭ１、２（１）〜２（ｎ）のいずれかを選択するための上位アドレスＵＡＤＲと、各ＲＯＭ内における物理アドレスを特定するための下位アドレスＬＡＤＲとにこの物理アドレスＭＡＤＲを分割する。分割回路８は、上位アドレスＵＡＤＲ及び下位アドレスＬＡＤＲのうち、上位アドレスＵＡＤＲをデコード回路６に、下位アドレスＬＡＤＲをＲＯＭ１、ＲＯＭ２（１）〜ＲＯＭ２（ｎ）に送出する。
【００３５】
デコード回路６は、分割回路８から受け取った上位アドレスＵＡＤＲに基づいて、ＲＯＭ１及びＲＯＭ２（１）〜２（ｎ）のいずれかを選択する。
【００３６】
具体的には、デコード回路６は、ＲＯＭ１を選択する場合は、ＯＲ回路９に対してチップ選択信号（ローレベル）を出力し、ＲＯＭ２（１）〜２（ｎ）に対してはチップ非選択信号（ハイレベル）を出力する。ＯＲ回路９は、上述のアクセス可否判定回路４から許可信号（ローレベル）が入力された場合のみ、デコード回路６からのチップ選択信号（ローレベル）をＲＯＭ１に通過させる。
【００３７】
一方、デコード回路６は、ＲＯＭ２（１）〜２（ｎ）のいずれかを選択する場合は、選択するＲＯＭに対してチップ選択信号（ローレベル）を出力し、選択されないＲＯＭ及びＯＲ回路９に対してはチップ非選択信号（ハイレベル）を出力する。
【００３８】
選択されたＲＯＭ１、２（１）〜２（ｎ）は、分割回路８から受け取った下位アドレスＬＡＤＲに格納されたデータを取り出して、図示しないデータ線を介して、ＣＰＵ３に送出する。
【００３９】
次に、上述したメモリシステムによる処理動作を、ＣＰＵ３がＲＯＭ１内の機密コードを読み出す場合を例に、説明する。
【００４０】
まず、ＣＰＵ３は、レジスタ５の仮想アドレスＶＡＤＲをプログラムから読み出すとともに、アクセス可否の判定対象となるアクセスコードをこのプログラムから読み出す。ＣＰＵ３は、メモリ管理ユニット１０を用いて、仮想アドレスＶＡＤＲを物理アドレスＭＡＤＲに変換し、この物理アドレスＭＡＤＲと上述のアクセスコードとをアクセス可否判定回路４に送出する。
【００４１】
アクセス可否判定回路４は、受け取った物理アドレスＭＡＤＲが、レジスタ５の物理アドレスＭＡＤＲに一致する場合は、レジスタ５内のアクセス可否判定コードと、受け取ったアクセスコードとが一致するか否かを判断する。アクセス可否判定回路４は、アクセス可否判定コードとアクセスコードとが一致すると判断したら、アクセス許可信号（ローレベル）をＯＲ回路９に送出する。
【００４２】
一方、ＣＰＵ３は、機密コードの仮想アドレスＶＡＤＲをプログラムから読出し、この仮想アドレスＶＡＤＲをメモリ管理ユニット１０を用いて物理アドレスＭＡＤＲに変換する。ＣＰＵ３は、この物理アドレスＭＡＤＲを分割回路８に送出する。
【００４３】
分割回路８は、受け取った物理アドレスＭＡＤＲを、上位アドレスＵＡＤＲと下位アドレスＬＡＤＲとに分割し、上位アドレスＵＡＤＲをデコード回路６に送出する。一方、分割回路８は、下位アドレスＬＡＤＲをＲＯＭ１、２（１）〜２（ｎ）に送出する。
【００４４】
デコード回路６は、受け取った上位アドレスＵＡＤＲに基づいて、ＲＯＭ１を選択する。つまり、デコード回路６は、ＯＲ回路９にチップ選択信号（ローレベル）を出力し、ＲＯＭ２（１）〜２（ｎ）に対してはチップ非選択信号（ハイレベル）を出力する。
【００４５】
ＯＲ回路９は、アクセス可否判定回路４からアクセス許可信号（ローレベル）を受け取っているので、デコード回路６からのチップ選択信号（ローレベル）をＲＯＭ１に通過させる。
【００４６】
ＲＯＭ１は、分割回路８から受け取った下位アドレスＬＡＤＲに格納された機密コードを取り出し、図示しないデータ線を介して、ＣＰＵ３に送出する。これにより、ＣＰＵ３は、機密コードを取得する。
【００４７】
以上のように、本実施の形態によれば、ＣＰＵの実行対象となるプログラムにおいてメモリアドレスとして仮想アドレスを用いるようにするとともに、仮想アドレスを物理アドレスに変換するアドレス変換バッファをＣＰＵに備えさせたので、アドレスラインの観察などによりアクセス可否判定コードの物理アドレス及び機密コードの物理アドレスが露呈されたとしても、機密コードを有効に防御することができる。物理アドレスに対応する仮想アドレスを特定することは、アドレス変換テーブルが露呈されない限り、実質上困難であるからである。
【００４８】
また、本実施の形態によれば、仮想記憶方式という非常にシンプルな構成を採用したので、従来技術に示した回路構成からの変更（回路規模の増大）を極めて少なくしつつ、ＲＯＭに格納された機密コードを、確実に守ることができる。また、システム構成自体が非常にシンプルなので、ＣＰＵ３からＲＯＭへアクセスする際のレイテンシ（待ち時間）ペナルティも少ない。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の形態としてのメモリシステムの構成を示すブロック図である。
【図２】アドレス変換バッファを説明するための図である。
【図３】アドレス変換バッファが保有するアドレス変換テーブルを示す図である。
【図４】従来におけるメモリシステムの構成を示すブロック図である。
【図５】従来における別のメモリシステムの構成を示すブロック図である。
【符号の説明】
【００５０】
１  ＲＯＭ（メモリ）
２（１）〜２（ｎ）ＲＯＭ
３  ＣＰＵ
４  アクセス可否判定回路
５  レジスタ
６  デコード回路
８  分割回路
９  ＯＲ回路
１０  メモリ管理ユニット
１１  アドレスライン
【図１】
2005063170.tif 000003
【図２】
2005063170.tif 000004
【図３】
2005063170.tif 000005
【図４】
2005063170.tif 000006
【図５】
2005063170.tif 000007