(57)【要約】【課題】アドレスを暗号化しつつ、ＤＲＡＭへのアクセス速度の低下を低減することができる情報処理装置を提供する。【解決手段】ＣＰＵ２から出力されたアドレスにおけるローアドレスを示す部分であるアドレス信号Ａ１５〜Ａ２４をローアドレス信号ＲＡに変換するローアドレス変換部５と、ＣＰＵ２から出力されたアドレスにおけるカラムアドレスを示す部分であるアドレス信号Ａ５〜Ａ１４をカラムアドレス信号ＣＡに変換するカラムアドレス変換部６とを備えた。また、ローアドレス信号ＲＡ、及びカラムアドレス信号ＣＡを指定してＤＲＡＭ８へのアクセスを行うと共に、ローアドレス信号ＲＡが同一であるメモリアドレスへのアクセスが複数回連続する場合、二回目以降のアクセスにおいてローアドレス信号ＲＡの指定を行わないＤＲＡＭコントローラ７を備えた。【選択図】図１
2008234008.tif 000002
【特許請求の範囲】
【請求項１】
ローアドレスとカラムアドレスとが指定されることによりアクセスを受け付けると共に、同一ローアドレスによる連続する複数回のアクセスを受け付ける場合、二回目以降のアクセスにおいてローアドレスの指定が不要となるメモリと、
前記メモリにアクセスするためのアドレスを出力する制御部と、
前記制御部から出力されたアドレスにおける前記ローアドレスを示す部分である第１ローアドレスを、当該第１ローアドレスとは異なり、かつ当該第１ローアドレスと１対１で対応する第２ローアドレスに変換することにより暗号化するローアドレス変換部と、
前記制御部から出力されたアドレスにおける前記カラムアドレスを示す部分である第１カラムアドレスを、当該第１カラムアドレスとは異なり、かつ当該第１カラムアドレスと１対１で対応する第２カラムアドレスに変換することにより暗号化するカラムアドレス変換部と、
前記ローアドレス変換部により生成された第２ローアドレスと前記カラムアドレス変換部により生成された第２カラムアドレスとを指定して前記メモリへのアクセスを行うと共に、当該第２ローアドレスが同一であるメモリアドレスへのアクセスが複数回連続する場合、二回目以降のアクセスにおいて当該第２ローアドレスの指定を行わないメモリアクセス制御部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記メモリは、前記カラムアドレスが指定された後、当該指定されたアドレスに続く予め設定された設定数のアドレスのデータを連続して転送するバースト転送を行うものであり、
前記カラムアドレス変換部は、前記第１カラムアドレスにおいて前記設定数に対応する下位のアドレスビットを維持して前記第２カラムアドレスを生成し、
前記メモリアクセス制御部は、前記カラムアドレス変換部により生成された第２カラムアドレスを指定して前記メモリへのアクセスを行った後、さらに、前記メモリに前記バースト転送を行わせることによりアクセスを行うこと
を特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メモリは、バンクアドレスで指定される複数のブロックに分割されて構成され、前記各ブロックは他のブロックがプリチャージ期間中においてもアクセス可能にされており、
前記制御部から出力されたアドレスにおける前記バンクアドレスを示す部分である第１バンクアドレスを、当該第１バンクアドレスとは異なり、かつ当該第１バンクアドレスと１対１で対応する第２バンクアドレスに変換することにより暗号化するバンクアドレス変換部をさらに備え、
前記メモリアクセス制御部は、さらに、前記バンクアドレス変換部により生成された第２バンクアドレスを指定して前記メモリへのアクセスを行うこと
を特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記ローアドレス変換部は、前記第１ローアドレスの各アドレスビットの並び順を入れ替えるように配線された信号配線を用いて前記第２ローアドレスを生成し、
前記カラムアドレス変換部は、前記第１カラムアドレスの各アドレスビットの並び順を入れ替えるように配線された信号配線を用いて前記第２カラムアドレスを生成すること
を特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ローアドレス変換部は、前記第１ローアドレスを、ハッシュ関数を用いて前記第２ローアドレスに変換し、
前記カラムアドレス変換部は、前記第１カラムアドレスを、ハッシュ関数を用いて前記第２カラムアドレスに変換することにより暗号化すること
を特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御部と、前記ローアドレス変換部と、前記カラムアドレス変換部とは、単一の集積回路によって構成されていること
を特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセスを行う情報処理装置に関する。
【背景技術】
【０００２】
従来、ＣＰＵ（Central Processing Unit）が、アドレスを指定してメモリにアクセスする情報処理装置において、アドレスにスクランブルをかける等の暗号化をすることにより、メモリへの不正アクセスやリバースエンジニアリングを防止し、装置の解析の困難性を増大させる技術が知られている。
【０００３】
一方、近年、情報処理装置に搭載されるメモリの記憶容量が増大し、メモリとして大記憶容量でかつ低価格なＤＲＡＭ（Dynamic Random Access Memory）が広く用いられている。ところで、ＤＲＡＭにアクセスする際は、まずローアドレスを指定し、次にカラムアドレスを指定することで、所望のアドレスにアクセスすることができるようになっている。また、一度ローアドレスが指定されると、このローアドレスを記憶しておき、同一ローアドレスのメモリセルへは、カラムアドレスを指定するだけでアクセス可能とすることにより、ローアドレスを指定するための処理時間を削減し、アクセス速度を向上するようにしたＤＲＡＭも知られている。
【０００４】
ＣＰＵによるメモリアクセスは、例えばＤＲＡＭに記憶されたプログラムを読み出す場合であれば、プログラムは分岐が発生しない限りアドレス順に実行されるのが原則であるため、メモリアクセスの局所性が生じて同一ローアドレス内での連続したアドレスへのアクセスが発生する場合が多い。また、画像データ等の処理対象となるデータがＤＲＡＭに記憶されている場合であっても、処理対象のデータは一定のアドレスに集まって配置されることからメモリアクセスの局所性が生じ、同一ローアドレス内での連続したアドレスへのアクセスが発生する場合が多い。
【０００５】
従って、ローアドレスを記憶した後、同一ローアドレスのメモリセルへは、カラムアドレスを指定するだけで連続アクセス可能とされたＤＲＡＭを用いた情報処理装置では、上述のようなメモリアクセスの局所性を利用して、メモリへのアクセス速度を向上している。
【０００６】
ところで、仮想記憶を用いる情報処理装置では、ＭＭＵ（Memory Management Unit）を用いて、メモリのアドレス空間をページと呼ばれる特定のサイズ、すなわちページサイズ（一般的には４ｋＢ）に区切り、このページサイズ毎に仮想的に構成された論理アドレスと、メモリが割り当てられた物理アドレスとの対応を管理している。このような仮想記憶を用いる情報処理装置では、ＣＰＵから出力されたアドレスにスクランブルをかける等の暗号化を施すと、ＭＭＵにより管理されている複数のページにスクランブルされたアドレスが散在してしまい、メモリに記憶されているページ外へのアクセスが頻繁に発生する結果、メモリスワップ等の例外処理が必要となって、メモリへのアクセス性能が低下してしまうという、不都合があった。
【０００７】
そこで、メモリに設定されたページサイズに基づいて、スクランブルを行わない非スクランブルビット数を設定し、ＣＰＵから出力されたアドレスにおける非スクランブルビット数分の上位ビットについてはスクランブルを行わないことにより、スクランブルされたアドレスがページ外のアドレスになることを低減し、メモリへのアクセス性能の低下を抑制する技術が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００３−２９８５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上述のように、アドレスを暗号化することにより、装置の解析の困難性を増大させた場合には、例えＣＰＵがＤＲＡＭの同一ローアドレスの範囲内で連続してアクセスしている場合であっても、ＤＲＡＭに入力されるローアドレスは、暗号化に伴い変化してしまう。また、ＤＲＡＭのローアドレスで指定されるアドレス範囲は、仮想記憶で設定されるページサイズとは異なるため、特許文献１に記載の技術を用いても、暗号化によってＤＲＡＭへのアクセスが同一ローアドレスの範囲内で連続しなくなることによるアクセス速度の低下を抑制することはできない。
【０００９】
そのため、ＣＰＵから出力されたアドレスを暗号化することにより装置の解析の困難性を増大させた場合には、例えＣＰＵがＤＲＡＭの同一ローアドレスの範囲内で連続してアクセスしている場合であっても、暗号化されたローアドレスは同一のまま維持されないため、ＤＲＡＭへのアクセス速度が低下するという不都合があった。
【００１０】
本発明は、このような問題に鑑みて為された発明であり、アドレスを暗号化しつつ、ＤＲＡＭへのアクセス速度の低下を低減することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る情報処理装置は、ローアドレスとカラムアドレスとが指定されることによりアクセスを受け付けると共に、同一ローアドレスによる連続する複数回のアクセスを受け付ける場合、二回目以降のアクセスにおいてローアドレスの指定が不要となるＤＲＡＭと、前記ＤＲＡＭにアクセスするためのアドレスを出力する制御部と、前記制御部から出力されたアドレスにおける前記ローアドレスを示す部分である第１ローアドレスを、当該第１ローアドレスとは異なり、かつ当該第１ローアドレスと１対１で対応する第２ローアドレスに変換することにより暗号化するローアドレス変換部と、前記制御部から出力されたアドレスにおける前記カラムアドレスを示す部分である第１カラムアドレスを、当該第１カラムアドレスとは異なり、かつ当該第１カラムアドレスと１対１で対応する第２カラムアドレスに変換することにより暗号化するカラムアドレス変換部と、前記ローアドレス変換部により生成された第２ローアドレスと前記カラムアドレス変換部により生成された第２カラムアドレスとを指定して前記ＤＲＡＭへのアクセスを行うと共に、当該第２ローアドレスが同一であるメモリアドレスへのアクセスが複数回連続する場合、二回目以降のアクセスにおいて当該第２ローアドレスの指定を行わないメモリアクセス制御部とを備える。
【００１２】
この構成によれば、制御部から出力されたアドレスにおける、ＤＲＡＭのローアドレスを示す部分である第１ローアドレスが、ローアドレス変換部によって、当該第１ローアドレスとは異なり、かつ当該第１ローアドレスと１対１で対応する第２ローアドレスに変換されることにより暗号化される。また、制御部から出力されたアドレスにおける、ＤＲＡＭのカラムアドレスを示す部分である第１カラムアドレスが、カラムアドレス変換部によって、当該第１カラムアドレスとは異なり、かつ当該第１カラムアドレスと１対１で対応する第２カラムアドレスに変換されることにより暗号化される。そして、メモリアクセス制御部によって、暗号化された第２ローアドレスと暗号化された第２カラムアドレスとが指定されてＤＲＡＭがアクセスされる。この場合、第２ローアドレスと第２カラムアドレスとは、ローアドレス変換部とカラムアドレス変換部とによって、それぞれ独立に暗号化されるので、制御部によるアクセスが、同一の第１ローアドレスのまま異なる第１カラムアドレスに対して連続して行われた場合、第２ローアドレスは同一のまま維持される。そして、メモリアクセス制御部によるＤＲＡＭへのアクセスは、二回目以降、第２ローアドレスの指定を行わずに実行される。これにより、ＤＲＡＭに入力されるアドレスを暗号化しつつ、ＤＲＡＭへのアクセス速度の低下を低減することができる。
【００１３】
また、前記ＤＲＡＭは、前記カラムアドレスが指定された後、当該指定されたアドレスに続く予め設定された設定数のアドレスのデータを連続して転送するバースト転送を行うものであり、前記カラムアドレス変換部は、前記第１カラムアドレスにおいて前記設定数に対応する下位のアドレスビットを維持して前記第２カラムアドレスを生成し、前記メモリアクセス制御部は、前記カラムアドレス変換部により生成された第２カラムアドレスを指定して前記ＤＲＡＭへのアクセスを行った後、さらに、前記ＤＲＡＭに前記バースト転送を行わせることによりアクセスを行うことが好ましい。
【００１４】
この構成によれば、カラムアドレス変換部によって、第１カラムアドレスにおける設定数に対応する下位のアドレスビットが維持されて第２カラムアドレスが生成される。そうすると、制御部によるアクセスが連続する第１カラムアドレスに対して行われた場合、ＤＲＡＭのバースト転送に用いられる下位のアドレスビットはカラムアドレス変換部によって変換されることなく維持される。そうすると、メモリアクセス制御部によって、第２カラムアドレスを指定してＤＲＡＭへのアクセスが行われた後、ＤＲＡＭにバースト転送を行わせることにより連続して転送が行われる二番目以降のアドレスは、第２カラムアドレスと一致するので、第２カラムアドレスをＤＲＡＭに指定することなく、第２カラムアドレスが指し示すアドレスへのアクセスが行われる。これにより、第１カラムアドレスにおける設定数に対応する下位のアドレスビットを除くアドレスを暗号化しつつ、ＤＲＡＭにパースト転送を行わせることで、ＤＲＡＭへのアクセス速度の低下を低減することができる。
【００１５】
また、前記ＤＲＡＭは、バンクアドレスで指定される複数のブロックに分割されて構成され、前記各ブロックは他のブロックがプリチャージ期間中においてもアクセス可能にされており、前記制御部から出力されたアドレスにおける前記バンクアドレスを示す部分である第１バンクアドレスを、当該第１バンクアドレスとは異なり、かつ当該第１バンクアドレスと１対１で対応する第２バンクアドレスに変換することにより暗号化するバンクアドレス変換部をさらに備え、前記メモリアクセス制御部は、さらに、前記バンクアドレス変換部により生成された第２バンクアドレスを指定して前記ＤＲＡＭへのアクセスを行うことが好ましい。
【００１６】
この構成によれば、バンクアドレス変換部によって、制御部から出力されたアドレスにおけるバンクアドレスを示す部分である第１バンクアドレスが、当該第１バンクアドレスとは異なり、かつ当該第１バンクアドレスと１対１で対応する第２バンクアドレスに変換されることにより暗号化される。そして、メモリアクセス制御部によって、バンクアドレス変換部により生成された第２バンクアドレスを指定してＤＲＡＭへのアクセスが行われる。この場合、第２ローアドレス、第２カラムアドレス、及び第２バンクアドレスは、ローアドレス変換部、カラムアドレス変換部、及びバンクアドレス変換部によって、それぞれ独立に暗号化されるので、制御部から出力された第１バンクアドレスが変化しなければ、第２バンクアドレスもまた、変化しない。そうすると、バンクアドレスを暗号化しつつ、制御部によって、同一のバンクをアクセスするか、異なるバンクをアクセスするかを制御することが可能となるので、制御部が、あるブロックがプリチャージ期間中に他のブロックへのアクセスを行うことで、ＤＲＡＭアクセスを高速化することが可能になる。
【００１７】
また、前記ローアドレス変換部は、前記第１ローアドレスの各アドレスビットの並び順を入れ替えるように配線された信号配線を用いて前記第２ローアドレスを生成し、前記カラムアドレス変換部は、前記第１カラムアドレスの各アドレスビットの並び順を入れ替えるように配線された信号配線を用いて前記第２カラムアドレスを生成することが好ましい。
【００１８】
この構成によれば、信号配線によって、第１ローアドレスの各アドレスビットの並び順が入れ替えられて第２ローアドレスが生成されると共に、信号配線によって、第１カラムアドレスの各アドレスビットの並び順が入れ替えられて第２カラムアドレスが生成される。これにより、ローアドレス変換部及びカラムアドレス変換部の構成を簡素化できると共に、第１ローアドレスから第２ローアドレス、及び第１カラムアドレスから第２カラムアドレスへの変換処理を高速化することができる。
【００１９】
また、前記ローアドレス変換部は、前記第１ローアドレスを、ハッシュ関数を用いて前記第２ローアドレスに変換し、前記カラムアドレス変換部は、前記第１カラムアドレスを、ハッシュ関数を用いて前記第２カラムアドレスに変換することにより暗号化するようにしてもよい。
【００２０】
この構成によれば、ハッシュ関数によって、第１ローアドレスが第２ローアドレスに変換されると共に、ハッシュ関数によって、第１カラムアドレスが第２カラムアドレスに変換される。これにより、アドレスの変化が複雑化され、第三者による解析の困難性が増大する。
【００２１】
また、前記制御部と、前記ローアドレス変換部と、前記カラムアドレス変換部とは、単一の集積回路によって構成されていることが好ましい。この構成によれば、暗号化されていない第１ローアドレス及び第１カラムアドレスは、集積回路の外部に出力されることがないので、第三者による解析の困難性が増大する。
【発明の効果】
【００２２】
このような構成の情報処理装置は、制御部から出力されたアドレスにおける、ＤＲＡＭのローアドレスを示す部分である第１ローアドレスが、ローアドレス変換部によって、当該第１ローアドレスとは異なり、かつ当該第１ローアドレスと１対１で対応する第２ローアドレスに変換されることにより暗号化される。また、制御部から出力されたアドレスにおける、ＤＲＡＭのカラムアドレスを示す部分である第１カラムアドレスが、カラムアドレス変換部によって、当該第１カラムアドレスとは異なり、かつ当該第１カラムアドレスと１対１で対応する第２カラムアドレスに変換されることにより暗号化される。そして、メモリアクセス制御部によって、暗号化された第２ローアドレスと暗号化された第２カラムアドレスとが指定されてＤＲＡＭがアクセスされる。この場合、第２ローアドレスと第２カラムアドレスとは、ローアドレス変換部とカラムアドレス変換部とによって、それぞれ独立に暗号化されるので、制御部によるアクセスが、同一の第１ローアドレスのまま異なる第１カラムアドレスに対して連続して行われた場合、第２ローアドレスは同一のまま維持される。そして、メモリアクセス制御部によるＤＲＡＭへのアクセスは、二回目以降、第２ローアドレスの指定を行わずに実行される。これにより、ＤＲＡＭに入力されるアドレスを暗号化しつつ、ＤＲＡＭへのアクセス速度の低下を低減することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係る実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
【００２４】
図１は、本発明の一実施形態に係る情報処理装置の構成の一例を示すブロック図である。図１に示す情報処理装置１は、例えば、ＣＰＵ２（制御部）、チップセレクト回路３、バンクアドレス変換部４、ローアドレス変換部５、カラムアドレス変換部６、ＤＲＡＭコントローラ７（メモリアクセス制御部）、及びＤＲＡＭ８（メモリ）を備えて構成されている。また、ＣＰＵ２、チップセレクト回路３、バンクアドレス変換部４、ローアドレス変換部５、カラムアドレス変換部６、及びＤＲＡＭコントローラ７は、集積回路１０として、単一のＩＣ（Integrated Circuit）に集積化されて構成されている。
【００２５】
ＤＲＡＭ８は、例えば、アドレス信号Ａ０〜Ａ１４で示されるカラムアドレスと、アドレス信号Ａ１５〜Ａ２４で示されるローアドレスと、アドレス信号Ａ２５，Ａ２６で示されるバンクアドレスとによって、アドレスが指定されるＤＲＡＭである。
【００２６】
ＤＲＡＭ８は、例えばメモリセルが四つのブロックに分割されて構成され、すなわち４バンク構成にされている。そして、各バンクは、独立して動作可能にされている。ＤＲＡＭは、データを読み出すと、メモリセルに記憶されているデータが消えてしまう。そこで、ＤＲＡＭは、データを読み出した後にデータを書き戻すプリチャージ動作をブロック毎に実行するようになっている。このプリチャージを実行中のブロックにはアクセスすることができないが、他のブロックへのアクセスは可能にされており、あるブロックがプリチャージ期間中に他のブロックへのアクセスを行うことで、ＤＲＡＭアクセスを高速化することが可能になっている。
【００２７】
そして、ＤＲＡＭ８は、アドレス信号Ａ２５，Ａ２６のバンクアドレスとアドレス信号Ａ１５〜Ａ２４のローアドレスとを受け付けると共に記憶し、当該バンクアドレスで指定されたバンクにおける、当該ローアドレスで指定されたアドレス範囲のメモリセルを活性化してアクセス可能とする。また、ＤＲＡＭ８は、バンクアドレスとローアドレスとを受け付けた後、カラムアドレスを受け付けることにより、当該バンクアドレス、ローアドレス、及びカラムアドレスで指定されるアドレスへのアクセスを受け付ける。
【００２８】
そして、ＤＲＡＭ８は、バンクアドレス、ローアドレス、及びカラムアドレスが指定された後、同一のバンクアドレス、及び同一のローアドレスで指定されるアドレス範囲では、カラムアドレスのみの指定でアクセスを受け付ける。従って、ＤＲＡＭ８における同一のバンクアドレス、及び同一のローアドレスによる連続する複数回のアクセスを受け付ける場合、二回目以降のアクセスにおいてバンクアドレス及びローアドレスの指定を行う処理が不要となるので、ＤＲＡＭ８へのアクセスを高速化することができる。
【００２９】
また、ＤＲＡＭ８は、カラムアドレスが指定された後、当該指定されたアドレスに続く予め設定された設定数のアドレス、例えばアドレス信号Ａ０〜Ａ４で示されるアドレス範囲のデータを連続して転送するバースト転送を実行する。この場合、バースト転送においてはカラムアドレスを指定する処理が不要となるので、ＤＲＡＭ８へのアクセスを高速化することができる。
【００３０】
ＣＰＵ２は、例えばアドレス信号Ａ０〜Ａ２８を出力して、メモリアクセスを行う。チップセレクト回路３は、ＣＰＵ２から出力されたアドレス信号Ａ２７，２８をデコードしてＤＲＡＭ８のチップセレクト信号ＣＳを生成する。
【００３１】
バンクアドレス変換部４は、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ２８における、ＤＲＡＭ８のバンクアドレスを示す部分であるアドレス信号Ａ２５，Ａ２６（第１バンクアドレス）を、アドレス信号Ａ２５，Ａ２６とは異なり、かつアドレス信号Ａ２５，Ａ２６で示されるアドレスと１対１で対応するアドレスを示すアドレス信号ＢＡ２５，ＢＡ２６（第２バンクアドレス）に変換し、ＤＲＡＭコントローラ７へ出力する。
【００３２】
ローアドレス変換部５は、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ２８における、ＤＲＡＭ８のローアドレスを示す部分であるアドレス信号Ａ１５〜Ａ２４（第１ローアドレス）を、アドレス信号Ａ１５〜Ａ２４とは異なり、かつアドレス信号Ａ１５〜Ａ２４で示されるアドレスと１対１で対応するアドレスを示すアドレス信号ＲＡ１５〜ＲＡ２４（第２ローアドレス）に変換し、ＤＲＡＭコントローラ７へ出力する。
【００３３】
カラムアドレス変換部６は、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ２８における、ＤＲＡＭ８のカラムアドレスを示す部分であるアドレス信号Ａ０〜Ａ１４（第１カラムアドレス）のうち、バースト転送に対応するアドレス信号Ａ０〜Ａ４を除くアドレス信号Ａ５〜Ａ１４を、アドレス信号Ａ５〜Ａ１４とは異なり、かつアドレス信号Ａ５〜Ａ１４で示されるアドレスと１対１で対応するアドレスを示すアドレス信号ＣＡ５〜ＣＡ１４に変換し、ＤＲＡＭコントローラ７へ出力する。この場合、アドレス信号ＣＡ５〜ＣＡ１４とアドレス信号Ａ０〜Ａ４とをあわせたものが、第２カラムアドレスの一例に相当している。
【００３４】
図２は、ローアドレス変換部５とカラムアドレス変換部６との構成の一例を説明するための説明図である。図２に示すカラムアドレス変換部６は、ＣＰＵ２から出力されたアドレス信号Ａ１４，Ａ１３，Ａ１２，Ａ１１，Ａ１０，Ａ９，Ａ８，Ａ７，Ａ６，Ａ５を、信号配線によって例えばランダムに並び順を入れ替えることにより、アドレス信号ＣＡ１１，ＣＡ１２，ＣＡ１４，ＣＡ７，ＣＡ５，ＣＡ９，ＣＡ６，ＣＡ１３，ＣＡ１０，ＣＡ８に変換する。
【００３５】
また、図２に示すローアドレス変換部５は、ＣＰＵ２から出力されたアドレス信号Ａ２４，Ａ２３，Ａ２２，Ａ２１，Ａ２０，Ａ１９，Ａ１８，Ａ１７，Ａ１６，Ａ１５を、信号配線によって例えばランダムに並び順を入れ替えることにより、アドレス信号ＲＡ１９，ＲＡ２４，ＲＡ２２，ＲＡ２０，ＲＡ１７，ＲＡ２１，ＲＡ１５，ＲＡ２３，ＲＡ１８，ＲＡ１６に変換する。
【００３６】
このように、カラムアドレスのうちアドレス信号Ａ４〜Ａ０は変換されずにＤＲＡＭコントローラ７へ出力され、カラムアドレスのうちアドレス信号Ａ１４〜Ａ５は、カラムアドレス変換部６によって、カラムアドレスを示すアドレス信号ＣＡ１４〜ＣＡ５に変換され、ローアドレスに対応するアドレス信号Ａ２４〜Ａ１５は、ローアドレス変換部５によって、ローアドレスを示すアドレス信号ＲＡ２４〜ＲＡ１５に変換され、バンクアドレスに対応するアドレス信号Ａ２６〜Ａ２５は、バンクアドレス変換部４によって、バンクアドレスを示すアドレス信号ＢＡ２６〜ＢＡ２５に変換されるので、カラムアドレス、ローアドレス、及びバンクアドレスがそれぞれ独立して暗号化される結果、カラムアドレスを示すアドレス信号Ａ１４〜Ａ０が変化しても、ローアドレス及びバンクアドレスがそれぞれ変化しなければ、アドレス信号ＲＡ２４〜ＲＡ１５及びアドレス信号ＢＡ２６〜ＢＡ２５は変化しないようになっている。
【００３７】
図３は、バンクアドレス変換部４の構成の一例を説明するための説明図である。バンクアドレス変換部４は、ＣＰＵ２から出力されたアドレス信号Ａ２６，２５を信号配線によって入れ替えることにより、アドレス信号ＢＡ２５，ＢＡ２６として、ＤＲＡＭコントローラ７へ出力する。
【００３８】
以上のように、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６を、信号配線によって構成することにより、アドレス変換処理の速度を高速にすると共に、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６の構成を簡素化し、コストを低減することができる。なお、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６は、ＣＰＵ２から出力されたアドレスを、一対一の写像関係にあるアドレスに変換するものであればよく、例えばハッシュ関数によりアドレスを変換してもよい。この場合、アドレスの変化が複雑化され、第三者による解析の困難性が増大する。
【００３９】
ＤＲＡＭコントローラ７は、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ４と、カラムアドレス変換部６から出力されたアドレス信号ＣＡ５〜ＣＡ１４と、ローアドレス変換部５から出力されたアドレス信号ＲＡ１５〜ＲＡ２４と、バンクアドレス変換部４から出力されたアドレス信号ＢＡ２５，ＢＡ２６とに基づいて、ＤＲＡＭ８のアクセスを行う。
【００４０】
次に、上述のように構成された情報処理装置１の動作について説明する。図４は、ＣＰＵ２が、同一バンクアドレス、同一ローアドレス内で連続してアクセスを実行した場合の情報処理装置１の動作の一例を示すタイミングチャートである。まず、ＣＰＵ２から、ＤＲＡＭ８をアクセスするべくアドレスＡｄｄ１を示すアドレス信号Ａ０〜Ａ２８が出力される。そして、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ４は、そのままＤＲＡＭコントローラ７に入力される。また、ＣＰＵ２から出力されたアドレス信号Ａ５〜Ａ１４は、カラムアドレス変換部６によって、アドレス信号ＣＡ５〜ＣＡ１４に変換されてＤＲＡＭコントローラ７に入力される。
【００４１】
そして、ＣＰＵ２から出力されたアドレス信号Ａ１５〜Ａ２４は、ローアドレス変換部５によって、アドレス信号ＲＡ１５〜ＲＡ２４に変換されてＤＲＡＭコントローラ７に入力される。また、ＣＰＵ２から出力されたアドレス信号Ａ２５，Ａ２６は、バンクアドレス変換部４によって、アドレス信号ＢＡ２５，ＢＡ２６に変換されてＤＲＡＭコントローラ７に入力される。
【００４２】
次に、ＤＲＡＭコントローラ７によって、まず、アドレス信号ＢＡ２５，ＢＡ２６で示されるバンクアドレス（ＢＡ）と、アドレス信号ＲＡ１５〜ＲＡ２４で示されるローアドレス（ＲＡ）とが、ＤＲＡＭ８へ出力される。そうすると、ＤＲＡＭ８によって、バンクアドレス（ＢＡ）とローアドレス（ＲＡ）とが記憶されると共に、バンクアドレス（ＢＡ）で指定されるバンクが活性化される。
【００４３】
次に、ＤＲＡＭコントローラ７によって、アドレス信号Ａ０〜Ａ４、及びアドレス信号ＣＡ５〜ＣＡ１４で示されるカラムアドレス（ＣＡ−１）がＤＲＡＭ８へ出力され、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及びカラムアドレス（ＣＡ−１）で指定されるメモリアドレスへのアクセスが行われる。以下、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及びカラムアドレス（ＣＡ−１）で指定されるメモリアドレスのことを、アドレス（ＢＡ＋ＲＡ＋ＣＡ−１）と称する。
【００４４】
この場合、アクセスが読み出しアクセスであれば、ＤＲＡＭ８のアドレス（ＢＡ＋ＲＡ＋ＣＡ−１）に記憶されているＤａｔａ−１がＤＲＡＭコントローラ７によって読み出され、ＣＰＵ２へ出力される。一方、アクセスが書き込みアクセスであれば、ＣＰＵ２から出力されたＤａｔａ−１がＤＲＡＭコントローラ７によってＤＲＡＭ８のアドレス（ＢＡ＋ＲＡ＋ＣＡ−１）に記憶される。以下、書き込みアクセスの例について説明する。
【００４５】
この場合、ＣＰＵ２、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６は、集積回路１０として集積化されているので、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ２８は、集積回路１０の外部へ出力されることがなく、かつ、集積回路１０からＤＲＡＭ８へ出力されるアドレス（ＢＡ＋ＲＡ＋ＣＡ−１）は、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６によって、ＣＰＵ２から出力されたアドレスＡｄｄ１とは異なるアドレスに変換され、すなわち暗号化されているので、第三者がＣＰＵ２の出力アドレスを検出してリバースエンジニアリングや装置の解析を行うことが、困難となる。
【００４６】
次に、ＣＰＵ２から、アドレスＡｄｄ１と同一のバンクアドレス、同一のローアドレスであって、カラムアドレスだけがアドレスＡｄｄ１と異なるアドレスＡｄｄ２が出力されると、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６によって、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及び、新たなカラムアドレスに基づくカラムアドレス（ＣＡ−２）が生成される。
【００４７】
この場合、上述のように、カラムアドレス、ローアドレス、及びバンクアドレスはそれぞれ独立して暗号化されるので、アドレスＡｄｄ２におけるカラムアドレスに対応するアドレスビットが変化した場合であっても、ＤＲＡＭコントローラ７に入力されるバンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）は変化せず、カラムアドレスのみ、ＣＡ−１からＣＡ−２へ変化する。
【００４８】
そうすると、ＤＲＡＭコントローラ７は、バンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）が変化していないので、ＤＲＡＭ８へ、バンクアドレス（ＢＡ）及びローアドレス（ＲＡ）を出力することなく、カラムアドレスＣＡ−１及びＣＰＵ２から出力されたＤａｔａ−２を出力してＤＲＡＭ８を書き込みアクセスする。そうすると、ＤＲＡＭ８に記憶されているバンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）に基づき、ＤＲＡＭコントローラ７から出力されたＤａｔａ−２がＤＲＡＭ８のアドレス（ＢＡ＋ＲＡ＋ＣＡ−２）に記憶される。
【００４９】
このように、カラムアドレス、ローアドレス、及びバンクアドレスがそれぞれ独立して暗号化されることによって、カラムアドレスが変化しても、バンクアドレス変換部４及びローアドレス変換部５からＤＲＡＭコントローラ７に入力されるバンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）は変化しないので、同一バンク、同一ローアドレスによる連続する複数回のアクセスを行う場合、二回目以降のアクセスにおいてバンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）の指定が不要となり、アドレスを暗号化しつつ、ＤＲＡＭへのアクセス速度を向上することができる。
【００５０】
また、バンクアドレスは、バンクアドレス変換部４によって、カラムアドレス及びローアドレスとは独立して暗号化されるので、ＣＰＵ２による連続する複数回のメモリアクセスにおいて、ＣＰＵ２から出力されたバンクアドレスが変化していなければ、バンクアドレス変換部４からＤＲＡＭコントローラ７を介してＤＲＡＭ８へ供給されるバンクアドレス（ＢＡ）もまた、変化しない。そうすると、バンクアドレスを暗号化しつつ、ＣＰＵ２は、同一のメモリバンクをアクセスするか、異なるメモリバンクをアクセスするかを制御することができるので、ＣＰＵ２が、あるブロックがプリチャージ期間中に他のブロックへのアクセスを行うことで、ＤＲＡＭアクセスを高速化することが可能になる。
【００５１】
以下、ＤＲＡＭコントローラ７は、ＣＰＵ２から出力されるバンクアドレス及びローアドレスのうちいずれかが変化するまで、バンクアドレス（ＢＡ）、及びローアドレス（ＲＡ）の指定を行うことなくカラムアドレス（ＣＡ）のみを指定して、高速にアクセスすることができる。
【００５２】
また、このようにしてＤＲＡＭ８に記憶されたＤａｔａ−１、Ｄａｔａ−２は、ＣＰＵ２から出力されたＡｄｄ１、Ａｄｄ２とは異なるメモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−１）、（ＢＡ＋ＲＡ＋ＣＡ−２）に記憶されるので、第三者がＤＲＡＭ８に記憶されているＤａｔａ−１、Ｄａｔａ−２を読み出した場合であっても、アドレス配置が本来の配置と異なるために、ＤＲＡＭ８から読み出したデータに基づいてリバースエンジニアリングを行ったり装置の解析をしたりすることが困難となる。
【００５３】
図５は、ＣＰＵ２が、同一バンクアドレス、同一ローアドレス内で、かつ連続したアドレスＡｄｄ４，Ａｄｄ５，Ａｄｄ６，Ａｄｄ７へのアクセスを実行した場合の情報処理装置１の動作の一例を示すタイミングチャートである。まず、ＣＰＵ２から、ＤＲＡＭ８をアクセスするべくアドレスＡｄｄ４を示すアドレス信号Ａ０〜Ａ２８が出力される。そして、ＣＰＵ２から出力されたアドレス信号Ａ０〜Ａ４は、そのままＤＲＡＭコントローラ７に入力される。また、ＣＰＵ２から出力されたアドレス信号Ａ５〜Ａ１４は、カラムアドレス変換部６によって、アドレス信号ＣＡ５〜ＣＡ１４に変換されてＤＲＡＭコントローラ７に入力される。
【００５４】
そして、ＣＰＵ２から出力されたアドレス信号Ａ１５〜Ａ２４は、ローアドレス変換部５によって、アドレス信号ＲＡ１５〜ＲＡ２４に変換されてＤＲＡＭコントローラ７に入力される。また、ＣＰＵ２から出力されたアドレス信号Ａ２５，Ａ２６は、バンクアドレス変換部４によって、アドレス信号ＢＡ２５，ＢＡ２６に変換されてＤＲＡＭコントローラ７に入力される。
【００５５】
次に、ＤＲＡＭコントローラ７によって、まず、アドレス信号ＢＡ２５，ＢＡ２６で示されるバンクアドレス（ＢＡ）と、アドレス信号ＲＡ１５〜ＲＡ２４で示されるローアドレス（ＲＡ）とが、ＤＲＡＭ８へ出力される。そうすると、ＤＲＡＭ８によって、バンクアドレス（ＢＡ）とローアドレス（ＲＡ）とが記憶されると共に、バンクアドレス（ＢＡ）で指定されるバンクが活性化される。
【００５６】
次に、ＤＲＡＭコントローラ７によって、アドレス信号Ａ０〜Ａ４、及びアドレス信号ＣＡ５〜ＣＡ１４で示されるカラムアドレス（ＣＡ−４）がＤＲＡＭ８へ出力され、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及びカラムアドレス（ＣＡ−４）で指定されるメモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−４）がアクセスされる。
【００５７】
次に、ＣＰＵ２から、アドレスＡｄｄ５が出力される。アドレスＡｄｄ５は、一つ前のアドレスＡｄｄ４と連続したアドレス、すなわちアドレスＡｄｄ４に「１」加算されたアドレスになっている。そうすると、アドレスビットＡ４からアドレスビットＡ５への桁上げが無ければ、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及びカラムアドレス信号ＣＡ５〜ＣＡ１４は変化せず、アドレス信号Ａ０〜Ａ４のみ、「１」加算される。
【００５８】
そうすると、ＤＲＡＭコントローラ７によって、連続するアドレスへのアクセスであることが検出される。そして、ＤＲＡＭコントローラ７によって、ＤＲＡＭ８のバースト転送によるアクセスを行うべく、新たなアドレスを出力することなく図略のタイミング信号のみがＤＲＡＭ８へ出力される。
【００５９】
そうすると、ＤＲＡＭ８の内部で、一つ前のアクセスタイミングで用いられたカラムアドレス（ＣＡ−４）に「１」加算されてカラムアドレス（ＣＡ−５）が生成され、メモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−５）へのアクセスが行われる。
【００６０】
以降、ＣＰＵ２から出力されたアドレスＡｄｄ６，Ａｄｄ７についても、ＤＲＡＭ８の内部でメモリアドレスが一つずつ加算されてメモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−６）、（ＢＡ＋ＲＡ＋ＣＡ−７）が生成されて、メモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−５）、（ＢＡ＋ＲＡ＋ＣＡ−６）、及び（ＢＡ＋ＲＡ＋ＣＡ−７）へのアクセスが可能となる。すなわち、ＤＲＡＭコントローラ７は、バンクアドレス（ＢＡ）、ローアドレス（ＲＡ）及びカラムアドレス（ＣＡ）のいずれも出力することなく、ＤＲＡＭ８が有するバースト転送を用いてＤＲＡＭ８メモリアドレス（ＢＡ＋ＲＡ＋ＣＡ−５）、（ＢＡ＋ＲＡ＋ＣＡ−６）、及び（ＢＡ＋ＲＡ＋ＣＡ−７）へアクセスすることができるので、ＤＲＡＭ８のアクセス速度を向上することができる。
【００６１】
この場合、もし仮に、アドレス信号Ａ０〜Ａ４が、カラムアドレス変換部６により暗号化される構成となっていた場合には、例えＣＰＵ２が、同一バンクアドレス、同一ローアドレス内で、かつ連続したアドレスＡｄｄ４，Ａｄｄ５，Ａｄｄ６，Ａｄｄ７へのアクセスを実行した場合であっても、カラムアドレス変換部６からＤＲＡＭ８へ出力されるカラムアドレスは連続しなくなるので、ＤＲＡＭコントローラ７はＤＲＡＭ８のバースト転送を用いたアクセスを実行することができず、バースト転送によるアクセス速度向上の効果が得られない。しかしながら、図１に示す情報処理装置１では、バースト転送可能な設定数に応じたアドレスビット、例えばアドレス信号Ａ０〜Ａ４は、カラムアドレス変換部６により暗号化されることなくＤＲＡＭコントローラ７へ供給されるので、ＤＲＡＭコントローラ７は、ＤＲＡＭ８へのバースト転送を実行してアクセス速度を向上させることが可能となっている。
【００６２】
なお、アドレス信号Ａ０〜Ａ４もまた、カラムアドレス変換部６により暗号化される構成としてもよい。この場合、バースト転送によるアクセス速度の向上は望めないが、アドレス信号Ａ０〜Ａ４が暗号化されることにより、第三者による情報処理装置１の解析の困難性が増大される。
【００６３】
なお、ＣＰＵ２から出力されるアドレス信号Ａ０〜Ａ２８と、バンクアドレス変換部４、ローアドレス変換部５、及びカラムアドレス変換部６との間の接続関係を切り替える例えばマルチプレクサ等の切替スイッチをさらに備え、アドレス信号Ａ０〜Ａ２８における、カラムアドレス、ローアドレス、及びバンクアドレスとの対応関係を変更可能にしてもよい。この場合、ＤＲＡＭ８として用いるＤＲＡＭの仕様に応じて、ＣＰＵ２から出力されるアドレスと、カラムアドレス、ローアドレス、及びバンクアドレスとの対応関係を変更することができるので、ＤＲＡＭ８の選択の自由度が増大する。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図２】図１に示すローアドレス変換部とカラムアドレス変換部との構成の一例を説明するための説明図である。
【図３】図１に示すバンクアドレス変換部の構成の一例を説明するための説明図である。
【図４】図１に示すＣＰＵが、同一バンクアドレス、同一ローアドレス内で連続してアクセスを実行した場合の情報処理装置の動作の一例を示すタイミングチャートである。
【図５】図１に示すＣＰＵが、同一バンクアドレス、同一ローアドレス内で、かつ連続したアドレスへのアクセスを実行した場合の情報処理装置の動作の一例を示すタイミングチャートである。
【符号の説明】
【００６５】
１  情報処理装置
２  ＣＰＵ
３  チップセレクト回路
４  バンクアドレス変換部
５  ローアドレス変換部
６  カラムアドレス変換部
７  ＤＲＡＭコントローラ
８  ＤＲＡＭ
１０  集積回路
【図１】
2008234008.tif 000003
【図２】
2008234008.tif 000004
【図３】
2008234008.tif 000005
【図４】
2008234008.tif 000006
【図５】
2008234008.tif 000007