(57)【特許請求の範囲】
【請求項１】
データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作するメモリであって、
前記第１動作モードは、前記第２動作モードよりもコマンドに対して高いセキュリティが施されるモードであり、
前記コントロール回路は、
現在の動作モードを記憶する動作モード記憶部と、
前記入出力回路を介して外部より入力されるコマンドを判別するコマンド判別回路と、
を備え、
前記コマンド判別回路は、
少なくとも前記第１動作モードにおいて入力するコマンドに施されたセキュリティを解除してコマンドを解読する手段と、
前記第１動作モードにおいて入力するコマンドから第１アドレス情報を取得する手段と、
前記第２動作モードにおいて入力するコマンドから第２アドレス情報を取得する手段と、
を含み、
前記コントロール回路は、
前記コマンド判別回路が前記第１動作モードにおいて取得した前記第１アドレス情報を記憶するアドレス情報記憶部と、
前記コマンド判別回路が前記第２動作モードにおいて取得した前記第２アドレス情報またはその一部と、前記アドレス情報記憶部に格納されている前記第１アドレス情報またはその一部とから指定アドレスを生成するアドレス生成回路と、
を備え、
前記コントロール回路は、前記アドレス生成回路より出力された指定アドレスを用いて前記データ記憶部へのアクセスを行うことを特徴とする半導体メモリ。
【請求項２】
請求項１に記載の半導体メモリにおいて、
前記第１アドレス情報が、前記指定アドレスの上位ビットアドレスを構成し、前記第２アドレス情報が、前記指定アドレスの下位ビットアドレスを構成することを特徴とする半導体メモリ。
【請求項３】
請求項２に記載の半導体メモリにおいて、
前記データ記憶部は、複数のブロックで管理され、前記上位ビットアドレスは、前記データ記憶部のブロックアドレスであり、前記コマンド判別回路によって前記上位ビットアドレスが取得されることにより、当該上位ビットアドレスで指定されるブロック内の記憶領域に対しては、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする半導体メモリ。
【請求項４】
請求項３に記載の半導体メモリにおいて、
前記上位ビットアドレスで指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする半導体メモリ。
【請求項５】
データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作するメモリであって、
前記第１動作モードは、前記第２動作モードよりもコマンドに対して高いセキュリティが施されるモードであり、
前記コントロール回路は、
現在の動作モードを記憶する動作モード記憶部と、
前記入出力回路を介して外部より入力されるコマンドを判別するコマンド判別回路と、
を備え、
前記コマンド判別回路は、
少なくとも前記第１動作モードにおいて入力するコマンドに施されたセキュリティを解除してコマンドを解読する手段と、
前記第１動作モードにおいて入力するコマンドから第１アドレス情報を取得する手段と、
前記第２動作モードにおいて入力するコマンドから第２アドレス情報を取得する手段と、
を含み、
前記コントロール回路は、
前記コマンド判別回路が前記第１動作モードにおいて取得した前記第１アドレス情報を記憶するアドレス情報記憶部と、
前記コマンド判別回路が前記第２動作モードにおいて取得した前記第２アドレス情報またはその一部と、前記アドレス情報記憶部に格納されている前記第１アドレス情報またはその一部とを比較して、両者が一致する場合にのみ前記第２アドレス情報またはその一部から指定アドレスを生成するアドレス生成回路と、
を備え、
前記コントロール回路は、前記アドレス生成回路より出力された指定アドレスを用いて前記データ記憶部へのアクセスを行うことを特徴とする半導体メモリ。
【請求項６】
請求項５に記載の半導体メモリにおいて、
前記データ記憶部は、複数のブロックで管理され、前記第１アドレス情報は、前記データ記憶部のブロックアドレスであり、前記第２アドレス情報は、前記データ記憶部のアクセス単位に対応したアドレスであり、前記アドレス生成回路は、前記第２アドレス情報に含まれる上位のブロックアドレスが前記第１アドレス情報と一致する場合に、前記第２アドレス情報を指定アドレスとして出力することを特徴とする半導体メモリ。
【請求項７】
請求項６に記載の半導体メモリにおいて、
前記コマンド判別回路によって前記第１アドレス情報が取得されることにより、当該第１アドレス情報で指定されるブロック内の記憶領域に対しては、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする半導体メモリ。
【請求項８】
請求項７に記載の半導体メモリにおいて、
前記第１アドレス情報で指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする半導体メモリ。
【請求項９】
請求項３、請求項４、請求項６ないし請求項８のいずれかに記載の半導体メモリにおいて、
前記データ記憶部は、異なるビット長のブロックアドレスが混在する複数のブロックから構成されることを特徴とする半導体メモリ。
【請求項１０】
請求項１ないし請求項９のいずれかに記載の半導体メモリにおいて、
前記第１動作モードにおいて入力するコマンドに認証値が含まれており、前記第２動作モードにおいて入力するコマンドに含まれている認証値が、前記第１動作モードにおいて入力した認証値と一致する場合のみ、前記データ記憶部へのアクセスを許可することを特徴とする半導体メモリ。
【請求項１１】
データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作する半導体メモリにおいて前記データ記憶部にアクセスする方法であって、
a)前記半導体メモリが、前記第２動作モードよりもコマンドに対して高いセキュリティが施される前記第１動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、
b)前記コントロール回路が、前記第１動作モードにおいて入力したコマンドから第１アドレス情報を取得する工程と、
c)前記半導体メモリが、前記第２動作モードに遷移する工程と、
d)前記半導体メモリが、前記第２動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、
e)前記コントロール回路が、前記第２動作モードにおいて入力したコマンドから第２アドレス情報を取得する工程と、
f)前記コントロール回路が、前記第１アドレス情報またはその一部と、前記第２アドレス情報またはその一部とから指定アドレスを生成する工程と、
g)前記コントロール回路が、生成した前記指定アドレスを用いて前記データ記憶部へのアクセスを行う工程と、
を備えることを特徴とするデータアクセス方法。
【請求項１２】
請求項１１に記載のデータアクセス方法において、
前記第１アドレス情報が、前記指定アドレスの上位ビットアドレスを構成し、前記第２アドレス情報が、前記指定アドレスの下位ビットアドレスを構成することを特徴とするデータアクセス方法。
【請求項１３】
請求項１２に記載のデータアクセス方法において、
前記データ記憶部は、複数のブロックで管理され、前記上位ビットアドレスは、前記データ記憶部のブロックアドレスであり、前記工程a)〜c)を実行することにより、前記上位ビットアドレスが取得された後は、当該上位ビットアドレスで指定されるブロック内の記憶領域に対しては、前記工程d)〜g)を繰り返すことにより、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とするデータアクセス方法。
【請求項１４】
請求項１３に記載のデータアクセス方法において、
前記上位ビットアドレスで指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とするデータアクセス方法。
【請求項１５】
データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作する半導体メモリにおいて前記データ記憶部にアクセスする方法であって、
a)前記半導体メモリが、前記第２動作モードよりもコマンドに対して高いセキュリティが施される前記第１動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、
b)前記コントロール回路が、前記第１動作モードにおいて入力したコマンドから第１アドレス情報を取得する工程と、
c)前記半導体メモリが、前記第２動作モードに遷移する工程と、
d)前記半導体メモリが、前記第２動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、
e)前記コントロール回路が、前記第２動作モードにおいて入力したコマンドから第２アドレス情報を取得する工程と、
f)前記コントロール回路が、前記第１アドレス情報またはその一部と、前記第２アドレス情報またはその一部とを比較して、両者が一致する場合にのみ前記第２アドレス情報またはその一部から指定アドレスを生成する工程と、
g)前記コントロール回路が、生成した前記指定アドレスを用いて前記データ記憶部へのアクセスを行う工程と、
を備えることを特徴とするデータアクセス方法。
【請求項１６】
請求項１５に記載のデータアクセス方法において、
前記データ記憶部は、複数のブロックで管理され、前記第１アドレス情報は、前記データ記憶部のブロックアドレスであり、前記第２アドレス情報は、前記データ記憶部のアクセス単位に対応したアドレスであり、
前記工程f)は、前記第２アドレス情報に含まれる上位のブロックアドレスが前記第１アドレス情報と一致する場合に、前記第２アドレス情報を指定アドレスとして出力することを特徴とするデータアクセス方法。
【請求項１７】
請求項１６に記載のデータアクセス方法において、
前記工程a)〜c)により前記第１アドレス情報が取得されることにより、当該第１アドレス情報で指定されるブロック内の記憶領域に対しては、前記工程d)〜g)を繰り返すことにより、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とするデータアクセス方法。
【請求項１８】
請求項１７に記載のデータアクセス方法において、
前記第１アドレス情報で指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とするデータアクセス方法。
【請求項１９】
請求項１３、請求項１４、請求項１６ないし請求項１８のいずれかに記載のデータアクセス方法において、
前記データ記憶部は、異なるビット長のブロックアドレスが混在する複数のブロックから構成されることを特徴とするデータアクセス方法。
【請求項２０】
請求項１１ないし請求項１９のいずれかに記載のデータアクセス方法において、
前記第１動作モードにおいて入力するコマンドに認証値が含まれており、前記第２動作モードにおいて入力するコマンドに含まれている認証値が、前記第１動作モードにおいて入力した認証値と一致する場合のみ、前記データ記憶部へのアクセスを許可することを特徴とするデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリのセキュリティ技術に関する。
【背景技術】
【０００２】
半導体メモリに格納されたデータの不正な読み出しを防ぐために、あるいは半導体メモリに対する不正なデータの書き込みを防ぐために暗号技術が用いられている。半導体メモリに対するコマンドを暗号化することで、コマンドの観測を困難にし、不正なコマンドの生成を現実的に不可能となるようにするのである。
【０００３】
また、書き込みプロテクトに特化した他の実現方法として、メモリアレイを一定容量のブロックに分割し、各ブロックに書き込みをプロテクトするためのフラグビット（不揮発性メモリにより実現）を設けるという方法がある。システムは、書き込みを行う前に書き込み対象のブロックに対応するフラグビットを書き込み可能状態にし、その状態で書き込み対象ブロックへの書き込みを行う。そして、書き込みが終わった後、フラグビットを書き込み無効状態（プロテクト状態）にすることで、書き込みをプロテクトするという方式である。
【０００４】
下記特許文献１は、メモリブロック内にプロテクトフラグを格納する半導体メモリに関するものである。ホストから書き込みコマンドが入力されると、プロテクトフラグの内容をチェックし、書き込み可能状態となっている場合のみ、データ書き込みを履行することとしている。
【０００５】
【特許文献１】特開２００５−１０８２７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、暗号技術を用いることで、コマンドの観測を困難にすることができる。しかし、コマンドを暗号化させた場合、処理速度が低下するという問題がある。これは、暗号化されたコマンドは所定のアルゴリズムを用いて復号化する必要があり、この処理の負荷が大きいからである。この問題を回避するために、処理負荷の小さいスクランブル処理を利用する方法も考えられるが、スクランブル処理はセキュリティが弱いため、コマンドが解読される可能性が高くなるという問題がある。
【０００７】
また、上述したフラグビットを設けて書き込みプロテクトを行う方法であるが、この方式も、セキュリティという観点からは半導体メモリを保護できる技術ではない。つまり、この方法は、悪意ある第３者による書き込みをプロテクトするというよりは、書き込みシステムのソフトウェア暴走などによる意図しない書き込みを防ぐという目的のための技術だからである。
【０００８】
上記特許文献１で開示されている技術についても、プロテクトフラグが立っている場合にはデータの書き込みを行わないよう制御するものであり、不正なプログラムによりプロテクトフラグが操作されるということまでを想定し、それら不正な行為に対する対策を講じた技術ではない。
【０００９】
そこで、本発明は前記問題点に鑑み、半導体メモリに対するセキュリティを高める技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作するメモリであって、前記第１動作モードは、前記第２動作モードよりもコマンドに対して高いセキュリティが施されるモードであり、前記コントロール回路は、現在の動作モードを記憶する動作モード記憶部と、前記入出力回路を介して外部より入力されるコマンドを判別するコマンド判別回路と、を備え、前記コマンド判別回路は、少なくとも前記第１動作モードにおいて入力するコマンドに施されたセキュリティを解除してコマンドを解読する手段と、前記第１動作モードにおいて入力するコマンドから第１アドレス情報を取得する手段と、前記第２動作モードにおいて入力するコマンドから第２アドレス情報を取得する手段と、を含み、前記コントロール回路は、前記コマンド判別回路が前記第１動作モードにおいて取得した前記第１アドレス情報を記憶するアドレス情報記憶部と、前記コマンド判別回路が前記第２動作モードにおいて取得した前記第２アドレス情報またはその一部と、前記アドレス情報記憶部に格納されている前記第１アドレス情報またはその一部とから指定アドレスを生成するアドレス生成回路と、を備え、前記コントロール回路は、前記アドレス生成回路より出力された指定アドレスを用いて前記データ記憶部へのアクセスを行うことを特徴とする。
【００１１】
請求項２記載の発明は、請求項１に記載の半導体メモリにおいて、前記第１アドレス情報が、前記指定アドレスの上位ビットアドレスを構成し、前記第２アドレス情報が、前記指定アドレスの下位ビットアドレスを構成することを特徴とする。
【００１２】
請求項３記載の発明は、請求項２に記載の半導体メモリにおいて、前記データ記憶部は、複数のブロックで管理され、前記上位ビットアドレスは、前記データ記憶部のブロックアドレスであり、前記コマンド判別回路によって前記上位ビットアドレスが取得されることにより、当該上位ビットアドレスで指定されるブロック内の記憶領域に対しては、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする。
【００１３】
請求項４記載の発明は、請求項３に記載の半導体メモリにおいて、前記上位ビットアドレスで指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする。
【００１４】
請求項５記載の発明は、データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作するメモリであって、前記第１動作モードは、前記第２動作モードよりもコマンドに対して高いセキュリティが施されるモードであり、前記コントロール回路は、現在の動作モードを記憶する動作モード記憶部と、前記入出力回路を介して外部より入力されるコマンドを判別するコマンド判別回路と、を備え、前記コマンド判別回路は、少なくとも前記第１動作モードにおいて入力するコマンドに施されたセキュリティを解除してコマンドを解読する手段と、前記第１動作モードにおいて入力するコマンドから第１アドレス情報を取得する手段と、前記第２動作モードにおいて入力するコマンドから第２アドレス情報を取得する手段と、を含み、前記コントロール回路は、前記コマンド判別回路が前記第１動作モードにおいて取得した前記第１アドレス情報を記憶するアドレス情報記憶部と、前記コマンド判別回路が前記第２動作モードにおいて取得した前記第２アドレス情報またはその一部と、前記アドレス情報記憶部に格納されている前記第１アドレス情報またはその一部とを比較して、両者が一致する場合にのみ前記第２アドレス情報またはその一部から指定アドレスを生成するアドレス生成回路と、を備え、前記コントロール回路は、前記アドレス生成回路より出力された指定アドレスを用いて前記データ記憶部へのアクセスを行うことを特徴とする。
【００１５】
請求項６記載の発明は、請求項５に記載の半導体メモリにおいて、前記データ記憶部は、複数のブロックで管理され、前記第１アドレス情報は、前記データ記憶部のブロックアドレスであり、前記第２アドレス情報は、前記データ記憶部のアクセス単位に対応したアドレスであり、前記アドレス生成回路は、前記第２アドレス情報に含まれる上位のブロックアドレスが前記第１アドレス情報と一致する場合に、前記第２アドレス情報を指定アドレスとして出力することを特徴とする。
【００１６】
請求項７記載の発明は、請求項６に記載の半導体メモリにおいて、前記コマンド判別回路によって前記第１アドレス情報が取得されることにより、当該第１アドレス情報で指定されるブロック内の記憶領域に対しては、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする。
【００１７】
請求項８記載の発明は、請求項７に記載の半導体メモリにおいて、前記第１アドレス情報で指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする。
【００１８】
請求項９記載の発明は、請求項３、請求項４、請求項６ないし請求項８のいずれかに記載の半導体メモリにおいて、前記データ記憶部は、異なるビット長のブロックアドレスが混在する複数のブロックから構成されることを特徴とする。
【００１９】
請求項１０記載の発明は、請求項１ないし請求項９のいずれかに記載の半導体メモリにおいて、前記第１動作モードにおいて入力するコマンドに認証値が含まれており、前記第２動作モードにおいて入力するコマンドに含まれている認証値が、前記第１動作モードにおいて入力した認証値と一致する場合のみ、前記データ記憶部へのアクセスを許可することを特徴とする。
【００２０】
請求項１１記載の発明は、データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作する半導体メモリにおいて前記データ記憶部にアクセスする方法であって、a)前記半導体メモリが、前記第２動作モードよりもコマンドに対して高いセキュリティが施される前記第１動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、b)前記コントロール回路が、前記第１動作モードにおいて入力したコマンドから第１アドレス情報を取得する工程と、c)前記半導体メモリが、前記第２動作モードに遷移する工程と、d)前記半導体メモリが、前記第２動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、e)前記コントロール回路が、前記第２動作モードにおいて入力したコマンドから第２アドレス情報を取得する工程と、f)前記コントロール回路が、前記第１アドレス情報またはその一部と、前記第２アドレス情報またはその一部とから指定アドレスを生成する工程と、g)前記コントロール回路が、生成した前記指定アドレスを用いて前記データ記憶部へのアクセスを行う工程と、を備えることを特徴とする。
【００２１】
請求項１２記載の発明は、請求項１１に記載のデータアクセス方法において、前記第１アドレス情報が、前記指定アドレスの上位ビットアドレスを構成し、前記第２アドレス情報が、前記指定アドレスの下位ビットアドレスを構成することを特徴とする。
【００２２】
請求項１３記載の発明は、請求項１２に記載のデータアクセス方法において、前記データ記憶部は、複数のブロックで管理され、前記上位ビットアドレスは、前記データ記憶部のブロックアドレスであり、前記工程a)〜c)を実行することにより、前記上位ビットアドレスが取得された後は、当該上位ビットアドレスで指定されるブロック内の記憶領域に対しては、前記工程d)〜g)を繰り返すことにより、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする。
【００２３】
請求項１４記載の発明は、請求項１３に記載のデータアクセス方法において、前記上位ビットアドレスで指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする。
【００２４】
請求項１５記載の発明は、データ記憶部とコントロール回路と入出力回路とを備え、第１動作モードと第２動作モードとを切替えながら動作する半導体メモリにおいて前記データ記憶部にアクセスする方法であって、a)前記半導体メモリが、前記第２動作モードよりもコマンドに対して高いセキュリティが施される前記第１動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、b)前記コントロール回路が、前記第１動作モードにおいて入力したコマンドから第１アドレス情報を取得する工程と、c)前記半導体メモリが、前記第２動作モードに遷移する工程と、d)前記半導体メモリが、前記第２動作モードで動作している状態において、前記コントロール回路が、外部からコマンドを入力する工程と、e)前記コントロール回路が、前記第２動作モードにおいて入力したコマンドから第２アドレス情報を取得する工程と、f)前記コントロール回路が、前記第１アドレス情報またはその一部と、前記第２アドレス情報またはその一部とを比較して、両者が一致する場合にのみ前記第２アドレス情報またはその一部から指定アドレスを生成する工程と、g)前記コントロール回路が、生成した前記指定アドレスを用いて前記データ記憶部へのアクセスを行う工程と、を備えることを特徴とする。
【００２５】
請求項１６記載の発明は、請求項１５に記載のデータアクセス方法において、前記データ記憶部は、複数のブロックで管理され、前記第１アドレス情報は、前記データ記憶部のブロックアドレスであり、前記第２アドレス情報は、前記データ記憶部のアクセス単位に対応したアドレスであり、前記工程f)は、前記第２アドレス情報に含まれる上位のブロックアドレスが前記第１アドレス情報と一致する場合に、前記第２アドレス情報を指定アドレスとして出力することを特徴とする。
【００２６】
請求項１７記載の発明は、請求項１６に記載のデータアクセス方法において、前記工程a)〜c)により前記第１アドレス情報が取得されることにより、当該第１アドレス情報で指定されるブロック内の記憶領域に対しては、前記工程d)〜g)を繰り返すことにより、前記第２動作モードにおいて連続的にアクセス可能としたことを特徴とする。
【００２７】
請求項１８記載の発明は、請求項１７に記載のデータアクセス方法において、前記第１アドレス情報で指定されるブロック以外のブロックに対しては、前記第２動作モードにおいて実質的にアクセス不可能であることを特徴とする。
【００２８】
請求項１９記載の発明は、請求項１３、請求項１４、請求項１６ないし請求項１８のいずれかに記載のデータアクセス方法において、前記データ記憶部は、異なるビット長のブロックアドレスが混在する複数のブロックから構成されることを特徴とする。
【００２９】
請求項２０記載の発明は、請求項１１ないし請求項１９のいずれかに記載のデータアクセス方法において、前記第１動作モードにおいて入力するコマンドに認証値が含まれており、前記第２動作モードにおいて入力するコマンドに含まれている認証値が、前記第１動作モードにおいて入力した認証値と一致する場合のみ、前記データ記憶部へのアクセスを許可することを特徴とする。
【発明の効果】
【００３０】
本発明の半導体メモリは、第２動作モードにおいて取得した第２アドレス情報またはその一部と、第２動作モードよりもセキュリティの高い第１動作モードにおいて取得した第１アドレス情報またはその一部とから指定アドレスを生成し、指定アドレスを用いてデータ記憶部へアクセスする。データ記憶部へアクセスするためには、セキュリティの強さの異なる２つのモードにおいてコマンドを発行する必要があり、コマンドを解析することが困難となる。これにより、不正なデータの読み出しや書き込みを有効に防止することができる。
【００３１】
また、データ記憶部が、複数のブロックで管理され、第１動作モードにおいてブロックアドレスが取得されることにより、指定されるブロックに対しては、第２動作モードにおいて連続的にアクセス可能となる。これにより、セキュリティの高い第１動作モードにおいて、ブロックごとのアクセス制御を行いつつ、第２動作モードにおいて連続処理を可能として処理速度が低下することを防止できる。
【００３２】
また、本発明の半導体メモリは、第２動作モードにおいて取得した第２アドレス情報またはその一部と、第２動作モードよりもセキュリティの高い第１動作モードにおいて取得した第１アドレス情報またはその一部とを比較して、一致した場合にのみ第２アドレス情報またはその一部から指定アドレスを生成し、指定アドレスを用いてデータ記憶部へアクセスする。データ記憶部へアクセスするためには、セキュリティの強さの異なる２つのモードにおいてコマンドを発行する必要があり、コマンドを解析することが困難となる。これにより、不正なデータの読み出しや書き込みを有効に防止することができる。
【００３３】
また、データ記憶部は、複数のブロックで管理され、第１アドレス情報が取得されることにより、第１アドレス情報で指定されるブロックに対しては、第２動作モードにおいて連続的にアクセス可能である。これにより、セキュリティを強化しつつ処理速度の低下を防ぐことが可能である。
【発明を実施するための最良の形態】
【００３４】
｛第１の実施の形態｝
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本実施の形態に係る情報処理装置１と半導体メモリ２とを示す図である。情報処理装置１は、ＣＰＵ１１、ＲＡＭ１２およびメモリスロット１３を備えている。情報処理装置１は、メモリスロット１３に装着された半導体メモリ２からデータを読み出し、ＣＰＵ１１、ＲＡＭ１２を利用して、各種のデータ処理を実行する。あるいは、半導体メモリ２に対してデータの書き込み処理を実行する。
【００３５】
情報処理装置１としては、たとえば、ＰＤＡ（Personal Digital
Assistance）、セットトップボックス、ゲーム装置などが考えられる。情報処理装置１が、ＰＤＡやセットトップボックスである場合には、半導体メモリ２は、アプリケーションプログラムやコンテンツデータなどが記録されるメモリであり、情報処理装置１がゲーム装置である場合には、半導体メモリ２は、ゲームカートリッジである。
【００３６】
図２は、半導体メモリ２のブロック図である。半導体メモリ２は、情報を記憶する多数のメモリセルからなる不揮発性メモリであるメモリアレイ２１と、メモリアレイ２１に対するアクセスをコントロールするためのコントロール回路２２と、情報処理装置１との間でデータやコマンドを入出力するための回路であるＩ／Ｏバッファ２３とを備えている。
【００３７】
コントロール回路２２は、コマンド判別回路２２１、アドレス情報記憶部２２２、動作モード記憶部２２３、アドレス生成回路２２４を備えている。
【００３８】
コマンド判別回路２２１は、Ｉ／Ｏバッファ２３を介して情報処理装置１から入力するコマンドの内容を判別する回路である。情報処理装置１によって生成されたコマンドが、データの読み出しコマンドである場合には、コマンドには読み出し命令と読み出しアドレスが含まれている。また、コマンドが書き込みコマンドである場合には、コマンドには書き込み命令と書き込みアドレスが含まれる。これら読み出し／書き込みコマンドは、情報処理装置１のＣＰＵ１１によって生成され、Commandバスを介して半導体メモリ２に転送される。そして、Ｉ／Ｏバッファ２３を介してコマンド判別回路２２１に入力されるのである。また、コマンドが書き込みコマンドである場合には、ＣＰＵ１１によって生成された書き込みデータが、Dataバスを介して半導体メモリ２に転送される。そして、Ｉ／Ｏバッファ２３を介してコマンド判別回路２２１に入力されるのである。なお、本実施の形態においては、図２に示すように、CommandバスとDataバスを共通のバスを利用して多重化するようにしているが、それぞれに独立したバスを設けるようにしてもよい。
【００３９】
コマンド判別回路２２１は、入力したコマンドの内容を判別し、読み出しコマンドである場合には、メモリアレイ２１に対して読み出し制御信号（Control Signal）を送出する。また、書き込みコマンドである場合には、書き込み制御信号（Control Signal）を送出する。また、コマンド判別回路２２１は、読み出しコマンドあるいは書き込みコマンドから、読み出しアドレスあるいは書き込みアドレスを取得する。さらに、コマンド判別回路２２１は、コマンドが書き込みコマンドである場合には、入力した書き込みデータ（Write Data）をメモリアレイ２１に送出する。コマンド判別回路２２１は、また、Dataバスを介してデータを外部に出力するためにＩ／Ｏバッファ２３のディレクション切り替えを行う。
【００４０】
動作モード記憶部２２３は、この半導体メモリ２の現在の動作モードの情報を格納する記憶部である。本実施の形態の半導体メモリ２は、２つの動作モードを切替えて動作可能としている。第１動作モードは、コマンドが暗号化されるモードである。つまり、コマンドが高いセキュリティで保護されるモードである。第２動作モードは、コマンドがスクランブルされるモードである。第２動作モードは、第１動作モードよりは、セキュリティ強度は劣るが、第１動作モードより高速な処理が可能な動作モードである。このように、本実施の形態の半導体メモリ２は、セキュリティは非常に高いが、処理負荷の大きい第１動作モードと、セキュリティは第１動作モードよりは低下するが、処理負荷の小さい第２動作モードを切替えながら動作可能としている。
【００４１】
ここでは、スクランブル処理とは、ビット演算あるいはビット操作によって情報を攪乱する処理であり、暗号処理とは、所定のアルゴリズムを用いてデータ自体を解読不可能な状態にする処理を想定しているが、これは一例である。本質的には、情報処理装置１と半導体メモリ２との間で転送されるコマンドに対するセキュリティの強さが、第２動作モードに比べて第１動作モードの方が高くなっていることである。したがって、第２動作モードでは、全くセキュリティを掛けずに生のコマンドを転送し、第１動作モードでは、スクランブル処理を含め様々な強さの暗号化を利用するようにしてもよい。また、第２動作モードは、第１動作モードに比べてセキュリティの強度は低下するが、処理負荷が小さいという点も重要な条件である。
【００４２】
動作モードの切り替えは、情報処理装置１によって行われる。ＣＰＵ１１によって動作モードの切り替えコマンドが生成され、このコマンドがＩ／Ｏバッファ２３を介してコマンド判別回路２２１に入力される。コマンド判別回路２２１は、動作モードの切り替えコマンドを入力すると、動作モード記憶部２２３に記憶されている動作モード情報を書き換えるのである。コントロール回路２２は、動作モード記憶部２２３に格納されている情報に従って動作を行う。
【００４３】
また、コマンド判別回路２２１は、暗号化されたコマンドを復号するための復号回路と、スクランブルされているコマンドをデスクランブルするためのデスクランブル回路とを備えている。コマンド判別回路２２１は、現在の動作モードが第１動作モードである場合には、入力したコマンドを復号回路によって復号し、命令とアドレス情報を取得する。現在の動作モードが第２動作モードである場合には、入力したコマンドをデスクランブル回路によってデスクランブルし、命令とアドレス情報を取得する。
【００４４】
アドレス情報記憶部２２２は、コマンド判別回路２２１が第１動作モードにおいて入力したコマンドに含まれていたアドレス（このアドレスを第１アドレス情報３１と呼ぶ。）を格納する記憶部である。コマンド判別回路２２１は、第１動作モードへのモード切り替えコマンドを入力し、動作モードを第１動作モードに切替えた後、続いて入力したコマンドを復号回路によって復号する。そして、復号されたコマンドに含まれていた第１アドレス情報３１をアドレス情報記憶部２２２に格納するのである。
【００４５】
アドレス生成回路２２４は、コマンド判別回路２２１が第２動作モードにおいて入力したコマンドに含まれていたアドレス（このアドレスを第２アドレス情報３２と呼ぶ。）を入力する。コマンド判別回路２２１は、第２動作モードへのモード切り替えコマンドを入力し、動作モードを第２動作モードに切替えた後、続いて入力したコマンドをデスクランブル回路によってデスクランブルする。そして、デスクランブルされたコマンドに含まれていた第２アドレス情報３２をアドレス生成回路２２４に出力するのである。そして、アドレス生成回路２２４は、入力した第２アドレス情報３２とアドレス情報記憶部２２２に格納されている第１アドレス情報３１とから指定アドレス３３を生成する。指定アドレス３３とは、メモリアレイ２１に与えられるアドレスであって、読み出しコマンドについては、読み出しアドレスであり、書き込みコマンドについては、書き込みアドレスである。
【００４６】
具体的には、アドレス生成回路２２４は、第１アドレス情報３１を上位アドレスビットとし、第２アドレス情報３２を下位アドレスビットとする指定アドレス３３を生成する。たとえば、メモリアレイ２１が、１Ｋ×１Ｂｙｔｅ＝１ＫＢｙｔｅのメモリアレイである場合を考える。つまり、１Ｋのアドレス空間を持ったメモリアレイであり、１Ｂｙｔｅのデータ格納可能な記憶領域に、それぞれ１０ビットのアドレスが付与されている。この場合であれば、たとえば、４ビットの第１アドレス情報３１と６ビットの第２アドレス情報３２とから１０ビットの指定アドレス３３を生成する。
【００４７】
以上説明した半導体メモリ２および情報処理装置１によるデータ読み出し／書き込み処理の流れについて図３および図４を参照しながら説明する。
【００４８】
図３を参照して全体の処理の流れを説明する。まず、半導体メモリ２が、第１動作モードに遷移する（ステップＳ１）。つまり、情報処理装置１から入力するコマンドは、暗号化により高いセキュリティが掛けられるモードに遷移する。この状態において、第三者は、任意のコマンドを発行してメモリアレイ２１にアクセスすることは非常に困難となっている。この遷移は、情報処理装置１より発行されたモード切り替えコマンドにより実行される。また、情報処理装置１が起動した直後に半導体メモリ２が第１動作モードに遷移するように、情報処理装置１のローダープログラムによってモードが制御されてもよい。
【００４９】
半導体メモリ２が、第１動作モードで動作している状態で、情報処理装置１より暗号化コマンドが生成され、出力される。半導体メモリ２は、暗号化コマンドを入力する（ステップＳ２）。なお、この暗号化コマンドは、第１アドレス情報３１を設定するために情報処理装置１によって生成されたアドレス設定コマンドである。
【００５０】
次に、コマンド判別回路２２１が、復号回路によって暗号化コマンドを復号化し、第１アドレス情報３１を抽出する（ステップＳ３）。
【００５１】
そして、コマンド判別回路２２１は、抽出した第１アドレス情報３１をアドレス情報記憶部２２２に格納する（ステップＳ４）。
【００５２】
次に、情報処理装置１において、第２動作モードへの切り替えコマンドが生成され、出力される。半導体メモリ２は、第２動作モードへの切り替えコマンドを入力する（ステップＳ５）。なお、この切り替えコマンドは、暗号化されている。
【００５３】
コマンド判別回路２２１は、モード切り替えコマンドを入力すると、このコマンドを復号する。そして、コマンドが第２動作モードへの切り替えコマンドであることを判別し、現在の動作モードを第２動作モードとする情報を動作モード記憶部２２３に格納する。これにより、半導体メモリ２は、第２動作モードへ遷移する（ステップＳ６）。つまり、第１動作モードよりはセキュリティの強度は低下するが、処理速度が第１動作モードよりも高速なモードである。
【００５４】
半導体メモリ２が第２動作モードに遷移している状態で、情報処理装置１は、スクランブルされたコマンドを生成し、出力する。半導体メモリ２は、スクランブルされたコマンドを入力する（ステップＳ７）。
【００５５】
コマンド判別回路２２１は、デスクランブル回路により入力したコマンドをデスクランブルする。そして、コマンドから第２アドレス情報３２を抽出する（ステップＳ８）。この第２アドレス情報３２が含まれていたコマンドは、たとえば、スクランブルされた読み出しコマンドである。つまり、読み出し命令とともに第２アドレス情報３２が格納されたコマンドである。あるいは、読み出し命令が格納されたコマンドとは別に、第２アドレス情報３２を設定するために生成されたコマンドであってもよい。
【００５６】
そして、コマンド判別回路２２１は、第２アドレス情報３２をアドレス生成回路２２４に出力する（ステップＳ９）。アドレス生成回路２２４は、コマンド判別回路２２１から第２アドレス情報３２を入力すると、この第２アドレス情報３２と、アドレス情報記憶部２２２に格納されている第１アドレス情報３１とから指定アドレス３３を生成する（ステップＳ１０）。
【００５７】
図４は、指定アドレス３３の生成処理のフローチャートである。この実施の形態においては、第１アドレス情報３１は、メモリアレイ２１に出力する指定アドレス３３の上位４ビットを構成し、第２アドレス情報３２は、メモリアレイ２１に出力する指定アドレス３３の下位６ビットを構成している。したがって、アドレス生成回路２２４は、第１アドレス情報３１を上位４ビット、第２アドレス情報３２を下位６ビットとする１０ビットの指定アドレス３３を生成する（ステップＳ２１）。
【００５８】
再び、図３に戻り、アドレス生成回路２２４は、生成した指定アドレス３３をメモリアレイ２１に与えるのである（ステップＳ１１）。これにより、コマンドが読み出しコマンドである場合には、制御信号（Control Signal）としてread命令がメモリアレイ２１に与えられることにより、指定アドレス３３で指定されたアドレスに格納されたデータが読み出される。読み出されたデータは、読み出しデータバス、Ｉ／Ｏバッファ２３を介して情報処理装置１に転送される。このとき、コマンド判別回路２２１によってＩ／Ｏバッファ２３のディレクションが切替えられ、データ出力可能な状態となっている。コマンドが書き込みコマンドである場合には、制御信号（Control Signal）としてwrite命令がメモリアレイ２１に与えられるとともに、データバスを介して書き込みデータがメモリアレイ２１に与えられることにより、指定アドレス３３で指定されたアドレスにデータが書き込まれるのである。
【００５９】
このように、本実施の形態の半導体メモリ２は、セキュリティ強度が高い第１動作モードにおいて抽出した第１アドレス情報３１と、セキュリティ強度は第１動作モードより低いが処理負荷の小さい第２動作モードにおいて抽出した第２アドレス情報３２を用いてメモリアレイ２１にアクセスする。したがって、セキュリティの異なるモードで発行された複数のコマンドからアドレスが生成されることになり、コマンドの解析が非常に困難となる。これにより、不正なデータの読み出しや書き込みを有効に防止することが可能である。また、第１動作モードによって強固なセキュリティを確保しながら、第２動作モードに遷移することで処理速度の向上を図っているので、データのセキュリティと効率的な転送を両立可能な構成となっている。
【００６０】
なお、上記の実施の形態においては、第１アドレス情報３１と第２アドレス情報３２全てを利用して指定アドレス３３を生成するようにしたが、第１アドレス情報３１の全部あるいはその一部と、第２アドレス情報３２の全部あるいはその一部とから指定アドレス３３を生成するようにしてもよい。また、上位４ビット、下位６ビットから１０ビットの指定アドレス３３を生成するようにしたが、上位、下位のビット数や全体のビット数は一例であり、特に限定されるものではない。
【００６１】
また、上記の実施の形態においては、第１アドレス情報３１は、指定アドレス３３の上位４ビットを構成し、第２アドレス情報３２は、指定アドレス３３の下位６ビットを構成している。したがって、第１アドレス情報３１によりメモリアレイ２１のブロックアドレスを指定するようにすれば、セキュリティ強度の高い第１動作モードにおいて、ブロック単位のアクセス制御を行うことが可能である。
【００６２】
たとえば、上述したようにメモリアレイ２１が１Ｋ×１Ｂｙｔｅ＝１ＫＢｙｔｅのメモリアレイであるとする。そして、このメモリを１６のブロックに分割する。この場合、１０ビットのアドレスのうち、上位４ビットはブロックを指定するアドレスとなる。これにより、アドレス情報記憶部２２２に第１アドレス情報３１が格納されることで、この第１アドレス情報３１で指定されるブロックに対するアクセスを許可することと等価となる。つまり、第２動作モードにおいては、第２アドレス情報を入力することで、第１アドレス情報３１で指定されるブロック内の任意のアドレスにアクセス可能となるのである。一方、第１アドレス情報３１で指定されるブロック以外のブロックについては、実質的にアクセスが不可能となっており、高いセキュリティが確保されている。
【００６３】
したがって、第２動作モードに遷移した後は、連続して下位ビットである第２アドレス情報を情報処理装置１から半導体メモリ２に転送することで、アクセスが許可されたブロック内の領域に連続的にアクセス可能となる。つまり、セキュリティ強度の高い第１動作モードで、ブロック単位で強度の高いアクセス制限を行い、第１動作モードで第１アドレス情報３１が設定された場合には、比較的処理が高速な第２動作モードを利用し、データアクセスを行うのである。
【００６４】
そして、異なるブロックにアクセスする場合には、情報処理装置１から、再び、第１動作モードに遷移するコマンドを出力する。そして、第１動作モードに遷移した後、異なるブロックを指定する第１アドレス情報３１を半導体メモリ２に与えるのである。そして、さらに、第２動作モードへのモード切り替えコマンドを出力する。これにより、第２動作モードで、再び連続してブロック内のデータにアクセス可能となるのである。
【００６５】
｛第２の実施の形態｝
次に、本発明の第２の実施の形態について説明する。第２の実施の形態における情報処理装置１および半導体メモリ２の構成も図１および図２で示したものと同様である。第２の実施の形態においては、アドレス生成回路２２４における指定アドレス３３の生成処理方法が異なる。
【００６６】
コントロール回路２２が、第１アドレス情報３１および第２アドレス情報３２を抽出して指定アドレス３３を出力する処理の全体の流れも、図３のフローチャートで示した処理と同様である。ただし、第１アドレス情報３１は、ブロック単位で管理されたメモリアレイ２１のブロックアドレスであり、第２アドレス情報３２は、ブロックアドレスを含めた全体のアドレス（バイトアドレス）である。たとえば、メモリアレイ２１のアドレス空間が１０ビットであり、このメモリアレイ２１が１６のブロックに分割されている場合には、ブロックアドレスは４ビットであるので、第１アドレス情報３１は４ビットであり、第２アドレス情報３２は１０ビットである。
【００６７】
図５を参照しながら、アドレス生成処理について説明する。図３のステップＳ９において、コマンド判別回路２２１がアドレス生成回路２２４に対して第２アドレス情報３２を出力する。アドレス生成回路２２４は、第２アドレス情報３２を入力すると、その第２アドレス情報３２の上位４ビットと、アドレス情報記憶部２２２に格納されている第１アドレス情報３１とを比較する（ステップＳ３１）。
【００６８】
アドレス情報記憶部２２２には、ブロックアドレスである第１アドレス情報（４ビット）３１が格納されており、１０ビットの第２アドレス情報３２の上位４ビットが第１アドレス情報３１と一致するかどうかを比較するのである。この両者が一致するということは、第２アドレス情報３２で指定される記憶領域が、アドレス情報記憶部２２２に格納されている第１アドレス情報３１で指定されるブロック内の領域であることを意味している。つまり、第１アドレス情報３１によって、セキュリティが解除されたブロック内を第２アドレス情報３２で指定していることを意味している。
【００６９】
両者が一致する場合（ステップＳ３２でＹＥＳ）には、第２アドレス情報３２を指定アドレスとしてメモリアレイ２１に出力する（ステップＳ３３）。これにより、コマンドが読み出しコマンドである場合には、制御信号（Control Signal）としてread命令がメモリアレイ２１に与えられることにより、指定アドレスで指定されたアドレスに格納されたデータが読み出される。読み出されたデータは、読み出しデータバス、Ｉ／Ｏバッファ２３を介して情報処理装置１に転送される。コマンドが書き込みコマンドである場合には、制御信号（Control Signal）としてwrite命令がメモリアレイ２１に与えられるとともに、データバスを介して書き込みデータがメモリアレイ２１に与えられることにより、指定アドレス３３で指定されたアドレスにデータが書き込まれるのである。
【００７０】
また、両者が一致しない場合（ステップＳ３２でＮＯ）には、エラー処理を実行する（ステップＳ３４）。具体的には、メモリアレイ２１へのアクセスを拒否するとともに、エラー信号を情報処理装置１に転送する。
【００７１】
このように、本実施の形態の半導体メモリ２は、セキュリティ強度が高い第１動作モードにおいて抽出した第１アドレス情報３１と、セキュリティ強度は第１動作モードより低いが処理負荷の小さい第２動作モードにおいて抽出した第２アドレス情報３２を比較し、その一部が一致した場合のみメモリアレイ２１にアクセス可能となる。したがって、セキュリティの異なるモードで発行された複数のコマンドがアクセスの可否の判断に用いられるので、コマンドの解析が非常に困難となる。これにより、不正なデータの読み出しや書き込みを有効に防止することが可能である。また、第１動作モードによって強固なセキュリティを確保しながら、第２動作モードに遷移することで処理速度の向上を図っているので、データのセキュリティと効率的な転送を両立可能な構成となっている。
【００７２】
なお、この実施の形態においては、第１アドレス情報３１と第２アドレス情報３２の一部（上位４ビット）を比較して一致した場合に、第１アドレス情報３１で指定されたブロック内の領域へのアクセスを許可することとしたが、第１アドレス情報３１がブロックアドレスであるというのは、一例である。本実施の形態は、本質的には、第１動作モードにおいて抽出された第１アドレス情報３１と、第２動作モードにおいて抽出された第２アドレス情報３２を比較し、その比較結果に応じてアクセスの可否を判断することである。したがって、第１アドレス情報３１の全部あるいは一部を比較対象としてもよいし、第２アドレス情報３２の全部あるいは一部を比較対象としてもよい。そして、第１アドレス情報３１がブロックアドレスでない場合にも、もちろん適用可能である。また、ブロックアドレスが４ビットであり、全体のアドレスが１０ビットである場合を例に説明したが、これは一例で特に限定されるものではない。
【００７３】
第１アドレス情報３１がブロックアドレスである場合には、第１の実施の形態と同様、アドレス情報記憶部２２２に第１アドレス情報３１が格納されることで、この第１アドレス情報３１で指定されるブロックに対するアクセスを許可することと等価と考えることができる。つまり、第２動作モードにおいて入力する第２アドレス情報３２が、同じブロック領域内のアドレスである場合には、任意のアドレスにアクセス可能となるのである。
【００７４】
したがって、第２動作モードに遷移した後は、連続して第２アドレス情報３２を情報処理装置１から半導体メモリ２に転送することで、アクセスが許可されたブロック内の複数の領域に連続的にアクセス可能となる。つまり、セキュリティ強度の高い第１動作モードにおいて、ブロック単位で強度の高いアクセス制限を行い、第１動作モードで第１アドレス情報３１が設定された場合には、比較的処理が高速な第２動作モードを利用し、データアクセスを行うのである。一方、第１アドレス情報３１で指定されるブロック以外のブロックについては、実質的にアクセスが不可能となっており、高いセキュリティが確保されている。
【００７５】
そして、異なるブロックにアクセスする場合には、情報処理装置１から、再び、第１動作モードに遷移するコマンドを出力する。そして、第１動作モードに遷移した後、異なるブロックを指定する第１アドレス情報３１を半導体メモリ２に与えるのである。そして、さらに、第２動作モードへのモード切り替えコマンドを出力する。これにより、第２動作モードで、再び連続してブロック内のデータにアクセス可能となるのである。
【００７６】
｛変形例１｝
第１および第２の実施の形態に係る半導体メモリ２に対するセキュリティをさらに向上させる方法について説明する。情報処理装置１は、第１動作モードにおいて、第１アドレス情報を出力する他に、任意ビット長の認証値を出力するのである。つまり、暗号化された第１アドレス情報３１の他に、暗号化された認証値を出力するのである。この認証値は、第１アドレス情報３１を転送するコマンドに含まれていても良いし、別のコマンドを発行して転送するようにしてもよい。
【００７７】
そして、情報処理装置１は、第２動作モードにおいて、第２アドレス情報３２を転送するコマンドに再び認証値を含めるのである。そして、コマンド判別回路２２１は、第１動作モードで入力した認証値をレジスタ等に格納しておき、第２動作モードで入力した認証値が一致した場合にのみ、アドレス生成回路２２４に対して第２アドレス情報３２を出力するようにするのである。これにより、さらなるセキュリティの向上を図ることが可能である。
【００７８】
｛変形例２｝
第１および第２の実施の形態において、第１アドレス情報３１をブロックアドレスとすることにより、メモリアレイ２１に対するブロック単位でのアクセスコントロールが可能となることを説明した。そして、上記の実施の形態においては、たとえば、ブロックアドレスが４ビットで、バイトアドレス（全体のアドレス）が１０ビットである場合を説明したが、この全体のアドレスに対するブロックアドレスの比はメモリアレイ２１内で一定でなくてもよい。
【００７９】
たとえば、上記の実施の形態では、ブロックアドレスを４ビットとして、１ＫＢｙｔｅのメモリアレイ２１を１６個のブロックに分割して管理したが、そのうちの１番目のブロックについては、ブロックアドレスを５ビットとして、さらに、ブロックを２分割して管理するようにしてもよい。
【００８０】
このような半導体メモリ２にアクセスするために、第１の方法としては、情報処理装置１から半導体メモリ２に対して、ブロックアドレスの比率情報をコマンドによって転送する方法である。たとえば、コマンドによってブロックアドレスの比率が４／１０（４ビット）であるという情報が半導体メモリ２に送られる。コマンド判別回路２２１は、たとえば、動作モード記憶部２２３に、現在の動作モード情報としてブロックアドレスの比率情報も格納するようにする。そして、その後、コマンドによって第１アドレス情報３１あるいは第２アドレス情報３２を入力した際には、このブロックアドレスの比率情報に従って、それらアドレスの抽出を行うのである。
【００８１】
第２の方法は、第２の実施の形態で採用できる方法である。第１動作モードにおいて、転送する第１アドレス情報３１を、ブロックアドレスだけでなく、ブロックアドレスを含めた全体アドレスとする方法である。たとえば、第２動作モードに遷移した後に最初に転送する読み出しコマンドに含まれる第２アドレス情報３２と同じアドレスを第１アドレス情報３１として用いればよい。
【００８２】
これにより、コマンド判別回路２２１は、第１アドレス情報３１で指定されたアドレスが、どのブロックに属するアドレスであるかを判別することが可能である。そして、コマンド判別回路２２１は、各ブロックについて、ブロックアドレスの比率情報を参照可能にしておけば、第１アドレス情報３１からブロックアドレスを抽出することが可能となる。したがって、コマンドによってブロックアドレスの比率情報を転送することなく、異なるブロックに対するコマンドをそのまま転送すれば、半導体メモリ２において、ブロックを判別し、第１アドレス情報３１および第２アドレス情報３２を抽出可能である。
【００８３】
このように、本実施の形態の半導体メモリ２は、ブロックアドレスのビット長が異なるブロックから構成されている場合にも適用可能である。たとえば、セキュリティを高くしたいデータについては、ブロックアドレスのビット長が長いブロックに格納するとか、データの読み出し速度を高速にしたい場合には、ブロックアドレスのビット長が短いブロックに格納するというカスタマイズが可能である。ブロックアドレスのビット長が短い場合には、ブロックサイズが大きく、第２動作モードで多くのデータを連続的に読み出し可能である。逆に、ブロックサイズが小さければ、頻繁に第１動作モードに遷移してブロックを変更しなければならないので、処理速度は低下するが、セキュリティは高くなるからである。
【００８４】
｛その他の変形例｝
第２の実施の形態の変形例として、第１アドレス情報３１と第２アドレス情報３２とを同じアドレス長にしてもよい。上記の実施の形態であれば、第１アドレス情報３１と第２アドレス情報３２のいずれについても完全な１０ビットのアドレスを用いるのである。この場合、メモリアレイ２１の最小アクセス単位とブロック単位が同じ単位となる。したがって、全ての記憶領域にアクセスするためには、一旦第１動作モードに遷移し、ブロックを変更する必要が生じる。このため、処理速度の低下は免れないが、セキュリティは非常に高くなるので、処理速度よりセキュリティの強化が強く望まれる製品で用いるなどすればよい。あるいは、第１アドレス情報３１を完全な１０ビットのアドレスとし、第２アドレス情報３２は０ビットとしてもよい。つまり、第１動作モードにおいて第１アドレス情報３１を設定し、第２動作モードではアドレスを指定しないＲｅａｄ／Ｗｒｉｔｅコマンドを発行するのである。この場合にも、メモリアレイ２１の最小アクセス単位とブロック単位が同じ単位となり、処理速度の低下は免れないが、非常にセキュリティの高いシステムとなる。
【００８５】
また、上記の実施の形態においては、メモリアレイ２１のアクセスの最小単位をＢｙｔｅ単位としているが、アクセス単位は、ページ単位であってももちろんよい。例えば、１Ｐａｇｅ＝４Ｂｙｔｅなどのページ単位でアクセスするメモリであってもよい。
【００８６】
このように、本実施の形態の半導体メモリ２は、不正なデータの読み出しや、不正なデータの書き込みを防止することが可能である。情報処理装置１がゲーム装置である場合、半導体メモリ２に格納されたゲームプログラムが不正に読み出されることを有効に防止することができる。また、ゲーム装置である情報処理装置１がネットワーク経由でゲームプログラムをダウンロードし、半導体メモリ２にゲームプログラムを格納するというサービス形態が想定されるが、この場合にも、不正な方法によりゲームプログラムがゲームカートリッジに格納されることを有効に防止することが可能である。
【図面の簡単な説明】
【００８７】
【図１】半導体メモリにアクセスする情報処理装置のブロック図である。
【図２】半導体メモリの機能ブロック図である。
【図３】第１、第２アドレス情報の抽出から指定アドレスの出力に関わるコントロール回路のフローチャートである。
【図４】第１の実施の形態における指定アドレスの生成に関するフローチャートである。
【図５】第２の実施の形態における指定アドレスの生成に関するフローチャートである。
【符号の説明】
【００８８】
１    情報処理装置
２    半導体メモリ
２１  メモリアレイ
２２  コントロール回路
２２１  コマンド判別回路
２２２  アドレス情報記憶部
２２３  動作モード記憶部
２２４  アドレス生成回路
【図１】
0004780304.tif 000002
【図２】
0004780304.tif 000003
【図３】
0004780304.tif 000004
【図４】
0004780304.tif 000005
【図５】
0004780304.tif 000006