(57)【要約】【課題】本発明は、安価な製造コストで、揮発性メモリへの不正行為を防止することができるメモリコントローラを提供する。【解決手段】本発明の一実施の形態に係るメモリコントローラは、演算処理部と、揮発性メモリと、メモリ管理部とを備える。揮発性メモリは、プログラムまたはデータを記憶している。メモリ管理部は、揮発性メモリに記憶してあるプログラムまたはデータを保持するためのリフレッシュ動作の制御を行なう。メモリ管理部は、変換テーブルと、リフレッシュ制御部とを備える。変換テーブルは、論理アドレスを、物理アドレスに変換する。リフレッシュ制御部は、予め定められた特定領域の論理アドレスに対応する物理アドレスのリフレッシュ動作を停止する。【選択図】図１
2013191024.tif 000002
【特許請求の範囲】
【請求項１】
演算処理部と、
プログラムまたはデータを記憶している揮発性メモリと、
前記揮発性メモリに記憶してある前記プログラムまたは前記データを保持するためのリフレッシュ動作を制御するメモリ管理部と
を備え、
前記メモリ管理部は、
前記演算処理部において前記揮発性メモリ上での前記プログラムまたは前記データの位置を仮想的に規定してある論理アドレスを、前記揮発性メモリ上での前記プログラムまたは前記データの現実の位置を規定してある物理アドレスに変換する変換テーブルと、
予め定められた特定領域の前記論理アドレスに対応する前記物理アドレスのリフレッシュ動作を停止するリフレッシュ制御部と
を含むメモリコントローラ。
【請求項２】
前記リフレッシュ制御部は、前記特定領域の前記論理アドレスに対応する前記物理アドレスへのアクセスを禁止するリフレッシュ制御フィルタであり、
前記リフレッシュ制御フィルタは、前記演算処理部が出力するリフレッシュ停止制御信号により、前記特定領域の前記論理アドレスに対応する前記物理アドレスへのアクセスを一定期間停止して、前記揮発性メモリのリフレッシュ動作を停止する、請求項１に記載のメモリコントローラ。
【請求項３】
前記リフレッシュ停止制御信号は、前記演算処理部で検出した不正アクセスに基づいて生成された制御信号である、請求項２に記載のメモリコントローラ。
【請求項４】
タイマまたはカウンタをさらに備え、
前記リフレッシュ制御フィルタは、前記タイマまたは前記カウンタが予め定めた期間を経過したごとに、前記特定領域の前記論理アドレスに対応する前記物理アドレスを記憶したテーブルを更新する、請求項２に記載のメモリコントローラ。
【請求項５】
前記演算処理部において複数の仮想マシンが処理を実行し、前記仮想マシンのそれぞれに対応する前記プログラムまたは前記データを前記揮発性メモリに記憶してある場合、
前記リフレッシュ制御フィルタは、処理が終了して破棄される前記仮想マシンに対応する前記プログラムまたは前記データの前記物理アドレスへのアクセスを一定期間停止して、前記揮発性メモリのリフレッシュ動作を停止する、請求項２に記載のメモリコントローラ。
【請求項６】
前記リフレッシュ制御部は、前記演算処理部が出力するリフレッシュ制御信号により、前記特定領域以外の領域の前記論理アドレスに対応する前記物理アドレスのみリフレッシュ動作を行なうリフレッシュ信号を生成し、生成した前記リフレッシュ信号を前記揮発性メモリに出力するリフレッシュ制御テーブルであり、
前記揮発性メモリは、前記リフレッシュ制御テーブルの前記リフレッシュ信号に基づいて前記揮発性メモリがリフレッシュ動作を行なう、請求項１に記載のメモリコントローラ。
【請求項７】
前記リフレッシュ制御信号は、前記演算処理部で検出した不正アクセスに基づいて生成された制御信号である、請求項６に記載のメモリコントローラ。
【請求項８】
タイマまたはカウンタをさらに備え、
前記リフレッシュ制御テーブルは、前記タイマまたは前記カウンタが予め定めた期間を経過したごとに、前記特定領域以外の領域の前記論理アドレスに対応する前記物理アドレスを記憶したテーブルを更新する、請求項６に記載のメモリコントローラ。
【請求項９】
前記演算処理部において複数の仮想マシンが処理を実行し、前記仮想マシンのそれぞれに対応する前記プログラムまたは前記データを前記揮発性メモリに記憶してある場合、
前記リフレッシュ制御テーブルは、処理が終了して破棄される前記仮想マシン以外の前記仮想マシンに対応する前記プログラムまたは前記データの前記物理アドレスのみリフレッシュ動作を行なう前記リフレッシュ信号を生成する、請求項６に記載のメモリコントローラ。
【請求項１０】
前記演算処理部を、または前記演算処理部および前記揮発性メモリを少なくとも同じ半導体基板内に形成してある、請求項１に記載のメモリコントローラ。
【請求項１１】
前記特定領域は、守秘対象の前記プログラムまたは前記データを記憶してある前記揮発性メモリの領域である、請求項１に記載のメモリコントローラ。
【請求項１２】
請求項１〜請求項１１のいずれか１項に記載のメモリコントローラを備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラおよび情報処理装置に関し、たとえば揮発メモリのメモリコントローラおよび情報処理装置に好適に利用できるものである。
【背景技術】
【０００２】
近年、リフレッシュ動作が必要な揮発性メモリ（たとえば、ＤＲＡＭ（Dynamic  Random  Access  Memory））では、メモリアレイに記憶したデータの保護（情報維持）と、リフレッシュ動作による電力消費の低減とを満たすためにパーシャルアレイセルフリフレッシュ技術が開発されている。パーシャルアレイセルフリフレッシュ（Partial  Array  Self  Refresh：ＰＡＳＲ）技術は、詳しくは非特許文献１に開示してある。
【０００３】
ＰＡＳＲ技術は、ＤＲＡＭのメモリアレイすべてにリフレッシュ動作を行なうのではなく、データの保持が必要なメモリアレイの一部に対してのみ行なうリフレッシュ動作である。そのため、ＰＡＳＲ技術を採用したメモリは、低消費電力化が必要な携帯情報端末などに有用である。
【０００４】
しかし、近年、様々な不正行為（不正なアクセス、改ざん、複製など）が横行し、ネットワークに繋がる携帯情報端末などのシステムでは、不正行為に対して何らかの対策を講じる必要がある。
【０００５】
特に、セキュリティに関わるプロセス（タスク等）において、メモリに記憶したプログラム（認証等）やデータ（鍵データ、個人情報等）は、プロセスが終了した後も、特に何らかの処理をしない限り、リフレッシュ動作により、記憶したプログラムやデータが維持される。そのため、プロセスが終了した後に、メモリに不正なアクセスが行なわれると、記憶したプログラムやデータが不正に複製される、盗まれる、あるいは改ざんされるなどの不具合が発生する危険があった。
【０００６】
そこで、特許文献１に開示してある外部記憶装置では、タイマの時間が予め設定した時間に到達した際に、リフレッシュ動作を停止する記憶装置が提案されている。これにより、プログラムやデータを記憶したメモリ（たとえば、ＵＳＢメモリなど）を盗難または紛失した場合でも、自動的にメモリに記憶したプログラムやデータを消去することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１０９１４８号公報
【非特許文献】
【０００８】
【非特許文献１】「Mobile  RAMの低電力機能  パーシャルアレイセルフリフレッシュ」、テクニカルノート、エルピーダメモリ株式会社、２００５年８月、Document  No.J0597E10
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来、不正行為の対策として、通常の半導体装置（汎用マイコン、ASSP（Application  Specific  Standard  Produce）、SoC（System-on-a-chip）など）にＩＤ認証、やアクセス制限などの専用回路およびソフトウェア（アルゴリズム）を追加していた。そのため、不正行為の対策を行なった半導体装置には、追加回路設計、当該回路の検証、ソフトウェアなどの検証が必要となり、製造コストが高価になるという問題があった。たとえば、特許文献１に開示してある外部記憶装置では、タイマの時間が予め設定した時間に到達した際に、リフレッシュ動作を停止する制御部分が追加で必要となる。
【００１０】
また、一般の揮発性メモリ（たとえば、組込み機器、携帯通信機器、タブレット型コンピュータなどの携帯情報端末やノートパソコンなどの様々な情報処理装置のメインメモリに用いるＤＲＡＭ）では、不正行為の対策として、ソフトウェア、ソフトウェアおよび外部機器（たとえば、ＵＳＢやネットワークを使った認証や、暗号化による保護を行なう機器）を経由して行なう。そのため、不正行為の対策を行なった揮発性メモリには、ソフトウェアの作成および検証、外部機器の追加などが必要となり、製造コストが高価になるという問題があった。
【００１１】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
一実施の形態によれば、演算処理部と、プログラムまたはデータを記憶している揮発性メモリと、揮発性メモリに記憶してあるプログラムまたはデータを保持するためのリフレッシュ動作の制御を行なうメモリ管理部とを備えるメモリコントローラである。メモリ管理部は、変換テーブルと、リフレッシュ制御部とを備える。変換テーブルは、演算処理部において揮発性メモリ上でのプログラムまたはデータの位置を仮想的に規定してある論理アドレスを、揮発性メモリ上でのプログラムまたはデータの現実の位置を規定してある物理アドレスに変換する。リフレッシュ制御部は、予め定められた特定領域の論理アドレスに対応する物理アドレスのリフレッシュ動作を停止する。
【発明の効果】
【００１３】
前記一実施の形態によれば、揮発性メモリ上でのプログラムまたはデータの意図的な（悪意のある）情報取得、意図的な（悪意のある）情報書込みなどの不正行為を防止することができる。また、前記一実施の形態によれば、安価な製造コストで、揮発性メモリへの不正行為を防止することができるメモリコントローラを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係るメモリコントローラを含む半導体システムの構成を示すブロック図である。
【図２】実施の形態１に係る主メモリの構成を示すブロック図である。
【図３】実施の形態１に係る論理アドレスと物理アドレスとの変換を説明するための模式図である。
【図４】実施の形態１に係るメモリコントローラの動作を説明するためのフローチャートである。
【図５】実施の形態２に係るメモリコントローラを含む半導体システムの構成を示すブロック図である。
【図６】実施の形態２に係る主メモリの構成を示すブロック図である。
【図７】実施の形態２に係る論理アドレスと物理アドレスとの変換を説明するための模式図である。
【図８】実施の形態２に係るメモリコントローラの動作を説明するためのフローチャートである。
【図９】ガーベッジコレクションを考慮したＭＭＵ部と主メモリとの関係を説明するための模式図である。
【発明を実施するための形態】
【００１５】
以下、本発明に係る実施の形態について図面を参照して説明する。
（実施の形態１）
図１は、実施の形態１に係るメモリコントローラの構成を示すブロック図である。図１に示すメモリコントローラは、ＭＭＵ部１０、ＣＰＵ部２０、ＢＵＳステートコントローラ３０、主メモリ４０、ＤＭＡ部５０、周辺ＩＯ部６０を含んでいる。なお、メモリコントローラは、１つの半導体基板で構成しても、複数の半導体基板で構成し組合せてもよい。
【００１６】
ＭＭＵ（Memory  Management  Unit）部１０は、主メモリ４０からのプログラムまたはデータの読出しや、主メモリ４０へのプログラムまたはデータの書込みなどの制御を行なう。また、ＭＭＵ部１０は、主メモリ４０が揮発性メモリであるため、記憶してあるプログラムまたはデータを保持するためのリフレッシュ動作の制御を行なう。
【００１７】
ＣＰＵ（Central  Processing  Unit）部２０は、主メモリ４０に記憶してあるプログラムを実行し、実行したプログラムによりデータを処理する。
【００１８】
ＢＵＳステートコントローラ３０は、プログラムまたはデータを伝送するための経路（ＢＵＳ）を制御する。つまり、ＢＵＳステートコントローラ３０は、ＭＭＵ部１０からＣＰＵ部２０へのデータの伝送と、ＣＰＵ部２０から周辺ＩＯ部６０へのデータの伝送とが衝突することなく伝送することができるように制御する。
【００１９】
主メモリ４０は、内蔵ＤＲＡＭである。実施の形態１に係るメモリコントローラでは、主として内蔵ＤＲＡＭであるとして説明するが、外部ＤＲＡＭであってもよい。なお、主メモリ４０に外部ＤＲＡＭを用いる場合、外部ＤＲＡＭとの間にメモリインターフェースが必要になる場合がある。また、主メモリ４０は、揮発性メモリであれば、ＤＲＡＭに限定されるものではない。
【００２０】
ＤＭＡ（Direct  Memory  Access）部５０は、ＣＰＵ部２０を介さずに周辺ＩＯ部６０と主メモリ４０との間でデータを直接転送することができるように制御している。
【００２１】
周辺ＩＯ部６０は、メモリコントローラに接続される周辺機器とのインターフェースであり、周辺機器とのデータの受渡しを行なっている。
【００２２】
ＭＭＵ部１０について、さらに詳しく説明する。ＭＭＵ部１０は、変換テーブル（ＴＬＢ）１、リフレッシュ制御フィルタ２、タイマ／カウンタ３を含んでいる。変換テーブル１は、ＣＰＵ部２０において主メモリ４０上でのプログラムまたはデータの位置を仮想的に規定してある論理アドレスを、主メモリ４０上でのプログラムまたはデータの現実の位置を規定してある物理アドレスに変換する。
【００２３】
リフレッシュ制御フィルタ２は、リフレッシュ制御部であり、守秘対象のプログラムまたはデータを記憶してある特定領域の論理アドレスに対応する物理アドレスへのアクセスを禁止する。リフレッシュ制御フィルタ２は、後述するように物理アドレスへのアクセスを禁止するリフレッシュ停止制御テーブルを有している。
【００２４】
タイマ／カウンタ３は、リフレッシュ制御フィルタ２がアクセスを禁止する物理アドレスのテーブルを、一定期間を経過したごとに更新している。
【００２５】
次に、主メモリ４０について、さらに詳しく説明する。図２は、主メモリ４０の構成を示すブロック図である。主メモリ４０は、メモリアレイ４１、Ｒｏｗデコーダ４２、Ｒｏｗアドレスバッファ４３、センスアンプ４４、Ｃｏｌｕｍｎデコーダ４５、Ｃｏｌｕｍｎアドレスバッファ４６、および入出力回路４７を含んでいる。
【００２６】
メモリアレイ４１は、プログラムまたはデータを記憶するためのセルがマトリクス状に配列されている。
【００２７】
Ｒｏｗデコーダ４２は、ＭＭＵ部１０が出力した物理アドレスのうちのＲｏｗアドレスに対応するメモリアレイ４１を選択する。Ｒｏｗデコーダ４２が選択したメモリアレイ４１のＲｏｗに対して、プログラムまたはデータの読出し、または書込みが可能となる。
【００２８】
Ｒｏｗアドレスバッファ４３は、ＭＭＵ部１０が出力した物理アドレスのうちのＲｏｗアドレスを一時的に保管する。
【００２９】
センスアンプ４４は、Ｒｏｗデコーダ４２およびＣｏｌｕｍｎデコーダ４５が選択したセルに対して、プログラムまたはデータを読出し、または書込むデータを増幅する。
【００３０】
Ｃｏｌｕｍｎデコーダ４５は、ＭＭＵ部１０が出力した物理アドレスのうちのＣｏｌｕｍｎアドレスに対応するメモリアレイ４１を選択する。Ｃｏｌｕｍｎデコーダ４２が選択したメモリアレイ４１のＣｏｌｕｍｎに対して、プログラムまたはデータの読出し、または書込みが可能となる。
【００３１】
Ｃｏｌｕｍｎアドレスバッファ４６、ＭＭＵ部１０が出力した物理アドレスのうちのＣｏｌｕｍｎアドレスを一時的に保管する。
【００３２】
入出力回路４７は、センスアンプ４４を出力したプログラムまたはデータをデータ入出力端子から出力、またはデータ入出力端子から入力したプログラムまたはデータをセンスアンプ４４に入力する。
【００３３】
次に、実施の形態１に係るメモリコントローラの動作について説明する。メモリコントローラは、ＣＰＵ部２０が不正アクセスを検知した場合、ＭＭＵ部１０にリフレッシュ停止制御信号を送信し、主メモリ４０のリフレッシュ動作を停止する。主メモリ４０は、リフレッシュ動作を停止することで、記憶してある守秘対象のプログラムまたはデータを揮発させることができる。
【００３４】
ＣＰＵ部２０が検知する不正アクセスの検知手段は、特に限定されるものではなく、従来公知の手段であれば何れの手段であってもよい。また、不正アクセスの検知手段がＣＰＵ部２０からＭＭＵ部１０にリフレッシュ停止制御信号を送信する処理は、ＣＰＵ部２０で実行しているユーザアプリケーションに対し、ある種の「特権モード」的に動作する。また、不正アクセスの検知手段自体が不正行為の対象にならないように保護されている。
【００３５】
メモリコントローラは、ＣＰＵ部２０が不正アクセスを検知した場合、ＭＭＵ部１０にリフレッシュ停止制御信号を送信し、主メモリ４０に含まれるメモリアレイ４１すべてのセルのリフレッシュ動作を停止することで、不正行為を防止することができる。
【００３６】
しかし、ＣＰＵ部２０で実行しているユーザアプリケーションに関するプログラムまたはデータまで揮発させることになるため、ＣＰＵ部２０は、不正アクセスを検知した場合、ユーザアプリケーションを継続して実行することができず、システム動作の継続性に対して影響が大きい。
【００３７】
そこで、メモリコントローラは、ＣＰＵ部２０が不正アクセスを検知した場合、ＭＭＵ部１０にリフレッシュ停止制御信号を送信し、主メモリ４０に含まれる特定領域についてのみ選択的にリフレッシュ動作を停止する。ここで、主メモリ４０に含まれる特定領域として、たとえば、守秘対象のプログラムまたはデータが記憶してある領域であって、ＣＰＵ部２０で処理を実行するために必要なプログラムまたはデータを記憶している実行領域以外の領域をいう。
【００３８】
主メモリ４０に含まれる実行領域であれば、ＣＰＵ部２０で実行中のプログラムによりＩＤ認証、やアクセス制限など保護が可能であるが、主メモリ４０に含まれる特定領域には、何ら保護が行なわれていない。そのため、守秘対象のプログラムまたはデータが記憶してある主メモリ４０に含まれる特定領域は、積極的に当該プログラムまたは当該データを削除しない限り、不正行為を防止することができない。そこで、実施の形態１に係るメモリコントローラでは、主メモリ４０に含まれる特定領域のリフレッシュ動作を停止することで、この特定領域に記憶してあるプログラムまたはデータを積極的に揮発させる。
【００３９】
具体的に、ＭＭＵ部１０は、主メモリ４０に含まれる特定領域の物理アドレスへのアクセスを一定期間停止することで、主メモリ４０に含まれる特定領域のリフレッシュ動作を停止する。
【００４０】
つまり、実施の形態１に係るメモリコントローラは、主メモリ４０のリフレッシュ機能と、ＭＭＵ部１０の機能とを利用し、特定領域に対し、不正アクセス時の改ざん、複製などの不正行為を防止するために、プログラムまたはデータを積極的に揮発させる。
【００４１】
これにより、実施の形態１に係るメモリコントローラは、保護（揮発）すべきプログラムまたはデータの意図的な（悪意のある）情報取得（複製）を防止することができるとともに、意図的な（悪意のある）情報の書込みも防止することができる。
【００４２】
ＣＰＵ部２０がプログラムを実行するとき場合、主メモリ４０にはアプリケーションプログラムの本体をアロケートする領域Ａと、これとは別に様々な情報を保持するための領域Ｂとが必要になる。たとえば、領域Ａには、オブジェクトが格納され、領域Ｂには、変数が格納される。特に、ＣＰＵ部２０が仮想マシンなどを利用する場合、ガーベッジコレクションで集められる不要な領域（開放されるべき領域）が、オブジェクトを格納する領域Ａである。また、領域Ｂには、アプリケーションプログラムやオブジェクトで利用する個人ＩＤ情報や、パスワード等の個人情報が含まれる。
【００４３】
この領域Ｂのうち、特に、組込みメモリ（または外部ＤＲＡＭ）内のある個人情報などへの不正行為を防止する必要がある。
【００４４】
実施の形態１に係るメモリコントローラは、たとえば、組込みメモリ（リフレッシュ機能を含む）を搭載する半導体装置（汎用マイコン、ＳｏＣなど）および単体メモリ、メモリモジュール、メモリ搭載システムなどに適用することができる。
【００４５】
ＣＰＵ部２０は、不正アクセスの検知した場合、または予め不正アクセスを防止したい場合、オペレーティングシステム（ＯＳ）やアプリケーションプログラムによって、主メモリ４０に含まれる特定領域を揮発したいことを、リフレッシュ停止制御信号、事前にＭＭＵ部１０に送信する。ＣＰＵ部２０は、ＭＭＵ部１０にアクセス禁止イネーブル信号としてリフレッシュ停止制御信号を与え、ＭＭＵ部１０から主メモリ４０へのリフレッシュ動作の制御を行なう。ＭＭＵ部１０は、特定領域の物理アドレスへのアクセスを制限するための参照テーブルであるリフレッシュ制御フィルタ２を有している。
【００４６】
実施の形態１に係るメモリコントローラは、ハードウェア、ソフトウェアを大幅に変更することなしで利用することが可能な構成である。
【００４７】
実施の形態１に係るメモリコントローラは、ＭＭＵ部１０を用いて、主メモリ４０に含まれる特定領域（守秘対象のプログラムまたはデータを記憶してある領域）の物理アドレスへのアクセスを一定期間停止することで、主メモリ４０に含まれる特定領域のリフレッシュ動作を停止する。ここで、物理アドレスへのアクセスを停止するとは、当該物理アドレスのセルにアドレス情報を与えないことである。
【００４８】
図を用いて、実施の形態１に係るメモリコントローラがリフレッシュ動作を停止する構成について説明する。図３は、実施の形態１に係る論理アドレスと物理アドレスとの変換を説明するための模式図である。図４は、実施の形態１に係るメモリコントローラの動作を説明するためのフローチャートである。
【００４９】
図３に示す論理アドレスは、変換テーブル１によって、物理アドレスに変換される。論理アドレスでは、データＡ、データＢ、データＣ、データＤ、データＥの順であると仮想的に記憶してあるが、主メモリ４０に記憶してある現実の位置を示す物理アドレスでは、データＥ、データＢ、データＡ、データＤ、データＣの順で記憶してある。
【００５０】
リフレッシュ制御フィルタ２は、保護（揮発）したいプログラムまたはデータの物理アドレスを抽出して、リフレッシュ停止制御テーブル２１としてレジスタなどに記憶してある。
【００５１】
図４に示すように、ＣＰＵ部２０からアクセスのあった論理アドレスは、変換テーブル１に一時的に記憶（キャッシュ）される（ステップＳ４１）。ＭＭＵ部１０は、当該論理アドレスが、変換テーブル１に存在しているか否かを判断する（ステップＳ４２）。ＭＭＵ部１０は、当該論理アドレスが、変換テーブル１に存在していると判断した場合（ステップＳ４２：ＹＥＳ）、ＣＰＵ部２０からリフレッシュ停止制御信号が入力されているか否かを判断する（ステップＳ４３）。ＭＭＵ部１０は、ＣＰＵ部２０からリフレッシュ停止制御信号が入力されていると判断した場合（ステップＳ４３：ＹＥＳ）、当該論理アドレスが、リフレッシュ停止制御テーブル２１に存在しているか否かを判断する（ステップＳ４４）。
【００５２】
ＭＭＵ部１０は、当該論理アドレスが、リフレッシュ停止制御テーブル２１に存在していると判断した場合（ステップＳ４４：ＹＥＳ）、当該論理アドレスに対応する主メモリ４０の物理アドレスへのアクセスを停止する（ステップＳ４５）。ＭＭＵ部１０は、当該論理アドレスが、リフレッシュ停止制御テーブル２１に存在していないと判断した場合（ステップＳ４４：ＮＯ）、当該論理アドレスに対応する主メモリ４０の物理アドレスへのアクセスを行なう（ステップＳ４６）。ＭＭＵ部１０は、ＣＰＵ部２０からリフレッシュ停止制御信号が入力されていないと判断した場合（ステップＳ４３：ＮＯ）も、当該論理アドレスに対応する主メモリ４０の物理アドレスへのアクセスを行なう（ステップＳ４６）。
【００５３】
リフレッシュ停止制御テーブル２１は、リフレッシュ制御フィルタ２に付加されたタイマ／カウンタ３により設定された一定期間（時間／サイクル数など）を経過したごとに更新している。つまり、タイマ／カウンタ３は、一定期間を経過するごとにリフレッシュ停止制御テーブル２１に更新許可信号を与え、リフレッシュ停止制御テーブル２１が一定期間更新できないように禁止している。タイマ／カウンタ３は、リフレッシュ停止制御テーブル２１の更新を一定期間禁止することで、主メモリ４０に記憶したプログラムまたはデータの揮発時間を制御している。
【００５４】
ステップＳ４３〜ステップＳ４５の処理が、リフレッシュ制御フィルタ２での処理であり、タイマ／カウンタ３が、リフレッシュ停止制御テーブル２１の更新を制御している。
【００５５】
ステップＳ４２に戻って、ＭＭＵ部１０は、当該論理アドレスが、変換テーブル１に存在していないと判断した場合（ステップＳ４２：ＮＯ）、当該論理アドレスを物理アドレスに変換する（ステップＳ４７）。ＭＭＵ部１０は、ステップＳ４７で変換した物理アドレスが、変換テーブル１に存在しているか否かを判断する（ステップＳ４８）。ＭＭＵ部１０は、ステップＳ４７で変換した物理アドレスが、変換テーブル１に存在していると判断した場合（ステップＳ４８：ＹＥＳ）、キャッシュメモリをアップデートする（ステップＳ４９）。ＭＭＵ部１０は、ステップＳ４９でアップデートしたキャッシュメモリに従い、ステップＳ４７で変換した物理アドレスへアクセスを行なう（ステップＳ４６）。
【００５６】
ＭＭＵ部１０は、ステップＳ４７で変換した物理アドレスが、変換テーブル１に存在していないと判断した場合（ステップＳ４８：ＮＯ）、変換テーブル１自体を更新する（ステップＳ５０）。
【００５７】
なお、ＣＰＵ部２０は、ＣＰＵ部２０が何らかの不正アクセスを検知した場合にリフレッシュ停止制御信号を生成するが、ＣＰＵ部２０またはＣＰＵ部２０で実行するオペレーティングシステムの特権による指定、あるいは何らかの認証手続きなどの場合に生成しても良い。
【００５８】
以上のように、実施の形態１に係るメモリコントローラは、リフレッシュ制御フィルタ２が、ＣＰＵ部２０が出力するリフレッシュ停止制御信号により、特定領域の論理アドレスに対応する物理アドレスへのアクセスを一定期間停止して、主メモリ４０のリフレッシュ動作を停止する。そのため、実施の形態１に係るメモリコントローラは、主メモリ４０に含まれる特定領域に記憶してあるプログラムまたはデータを積極的に揮発させることができ、特定領域への不正行為を防止することができる。また、実施の形態１に係るメモリコントローラは、リフレッシュ制御フィルタ２を設けるだけであるため、安価な製造コストで、主メモリ４０への不正行為を防止することができる。
【００５９】
なお、実施の形態１に係るメモリコントローラは、ＣＰＵ部２０が出力するリフレッシュ停止制御信号の有無で、主メモリ４０のリフレッシュ動作を停止するか否かを制御しているが、主メモリ４０に含まれる特定領域のリフレッシュ動作を常に停止する構成でもよい。
【００６０】
また、実施の形態１に係るメモリコントローラでは、論理アドレスで主メモリ４０に含まれる特定領域へのアクセスを禁止する例を示したが、変換した後の物理アドレスで主メモリ４０に含まれる特定領域へのアクセスを禁止してもよい。
【００６１】
（実施の形態２）
実施の形態２に係るメモリコントローラは、ＭＭＵ部でリフレッシュ動作させたい主メモリの領域（守秘対象のプログラムまたはデータを記憶してある領域以外の領域）を指定し、主メモリの特定領域のみリフレッシュ動作を停止する。
【００６２】
図５は、実施の形態２に係るメモリコントローラの構成を示すブロック図である。図５に示すメモリコントローラは、ＭＭＵ部１０ａ、ＣＰＵ部２０、ＢＵＳステートコントローラ３０、主メモリ４０ａ、ＤＭＡ部５０、周辺ＩＯ部６０を含んでいる。実施の形態２に係るメモリコントローラは、ＭＭＵ部１０ａおよび主メモリ４０ａが実施の形態１に係るメモリコントローラのＭＭＵ部１０および主メモリ４０と異なる構成であり、その他の構成については同じ符号を付して詳細な説明を繰返さない。
【００６３】
ＭＭＵ部１０ａは、主メモリ４０ａからのプログラムまたはデータの読出しや、主メモリ４０ａへのプログラムまたはデータの書込みなどの制御を行なう。また、ＭＭＵ部１０ａは、主メモリ４０ａが揮発性メモリであるため、記憶してあるプログラムまたはデータを保持するためのリフレッシュ動作の制御を行なう。
【００６４】
ＭＭＵ部１０ａは、変換テーブル（ＴＬＢ）１、リフレッシュ制御テーブル４、タイマ／カウンタ３を含んでいる。変換テーブル１は、ＣＰＵ部２０において主メモリ４０ａ上でのプログラムまたはデータの位置を仮想的に規定してある論理アドレスを、主メモリ４０ａ上でのプログラムまたはデータの現実の位置を規定してある物理アドレスに変換する。
【００６５】
リフレッシュ制御テーブル４は、守秘対象のプログラムまたはデータを記憶してある特定領域以外の領域の物理アドレスに対してリフレッシュ動作を行なうことを指示するリフレッシュ信号を出力する。つまり、リフレッシュ制御テーブル４は、主メモリ４０ａの特定領域のみリフレッシュ動作を停止させる。
【００６６】
タイマ／カウンタ３は、リフレッシュ制御テーブル４がリフレッシュ動作を行なう物理アドレスのテーブルを、一定期間を経過したごとに更新している。
【００６７】
次に、主メモリ４０ａについて、さらに詳しく説明する。図６は、実施の形態２に係る主メモリ４０ａの構成を示すブロック図である。主メモリ４０ａは、メモリアレイ４１、Ｒｏｗデコーダ４２、Ｒｏｗアドレスバッファ４３、センスアンプ４４、Ｃｏｌｕｍｎデコーダ４５、Ｃｏｌｕｍｎアドレスバッファ４６、入出力回路４７、およびリフレッシュ制御部４９を含んでいる。なお、主メモリ４０ａは、リフレッシュ制御部４９をさらに含んでいる以外、主メモリ４０と同じ構成であるため、同じ構成要素については同じ符号を付して詳細な説明を繰返さない。
【００６８】
リフレッシュ制御部４９は、ＭＭＵ部１０ａが出力したリフレッシュ信号に基づいて、Ｒｏｗデコーダ４２の動作を制御して、リフレッシュ動作を行なうか、リフレッシュ動作を停止するかを切換える。
【００６９】
図を用いて、実施の形態２に係るメモリコントローラがリフレッシュ動作を停止する構成について説明する。図７は、実施の形態２に係る論理アドレスと物理アドレスとの変換を説明するための模式図である。図８は、実施の形態２に係るメモリコントローラの動作を説明するためのフローチャートである。
【００７０】
図７に示す論理アドレスは、変換テーブル１によって、物理アドレスに変換される。論理アドレスでは、データＡ、データＢ、データＣ、データＤ、データＥの順であると仮想的に記憶してあるが、主メモリ４０ａに記憶してある現実の位置を示す物理アドレスでは、データＥ、データＢ、データＡ、データＤ、データＣの順で記憶してある。
【００７１】
リフレッシュ制御テーブル４は、保護（揮発）したいプログラムまたはデータ以外の物理アドレスを抽出して、レジスタなどに記憶してある。リフレッシュ制御テーブル４は、記憶してある物理アドレスに基づいて、保護（揮発）したいプログラムまたはデータの物理アドレスを主メモリ４０ａの特定領域として、当該特定領域以外の領域の物理アドレスに対してリフレッシュ動作を行なうことを指示するリフレッシュ信号を出力する。
【００７２】
図８に示すように、ＣＰＵ部２０からアクセスのあった論理アドレスは、変換テーブル１に一時的に記憶（キャッシュ）される（ステップＳ８１）。ＭＭＵ部１０ａは、当該論理アドレスが、変換テーブル１に存在しているか否かを判断する（ステップＳ８２）。ＭＭＵ部１０ａは、当該論理アドレスが、変換テーブル１に存在していると判断した場合（ステップＳ８２：ＹＥＳ）、ＣＰＵ部２０からリフレッシュ制御信号が入力されているか否かを判断する（ステップＳ８３）。ＭＭＵ部１０ａは、ＣＰＵ部２０からリフレッシュ制御信号が入力されていると判断した場合（ステップＳ８３：ＹＥＳ）、当該論理アドレスが、リフレッシュ制御テーブル４に存在しているか否かを判断する（ステップＳ８４）。
【００７３】
ＭＭＵ部１０ａは、当該論理アドレスが、リフレッシュ制御テーブル４に存在していないと判断した場合（ステップＳ８４：ＮＯ）、当該論理アドレスに対応する主メモリ４０ａの物理アドレスへのリフレッシュ動作を停止する（ステップＳ８５）。ＭＭＵ部１０ａは、当該論理アドレスが、リフレッシュ制御テーブル４に存在していると判断した場合（ステップＳ８４：ＹＥＳ）、当該論理アドレスに対応する主メモリ４０ａの物理アドレスへのリフレッシュ動作を行なう（ステップＳ８６）。ＭＭＵ部１０ａは、ＣＰＵ部２０からリフレッシュ制御信号が入力されていないと判断した場合（ステップＳ８３：ＮＯ）、ＣＰＵ部２０からリフレッシュ制御信号が入力されるのを待機する。
【００７４】
リフレッシュ制御テーブル４は、付加されたタイマ／カウンタ３により設定された一定期間（時間／サイクル数など）を経過したごとに更新している。つまり、タイマ／カウンタ３は、一定期間を経過するごとにリフレッシュ停止制御テーブル２１に更新許可信号を与え、リフレッシュ制御テーブル４が一定期間更新できないように禁止している。タイマ／カウンタ３は、リフレッシュ制御テーブル４の更新を一定期間禁止することで、主メモリ４０ａに記憶したプログラムまたはデータの揮発時間を制御している。
【００７５】
ステップＳ８３〜ステップ８５の処理が、リフレッシュ制御テーブル４での処理であり、タイマ／カウンタ３が、リフレッシュ制御テーブル４の更新を制御している。
【００７６】
ステップＳ８２に戻って、ＭＭＵ部１０ａは、当該論理アドレスが、変換テーブル１に存在していないと判断した場合（ステップＳ８２：ＮＯ）、当該論理アドレスを物理アドレスに変換する（ステップＳ８７）。ＭＭＵ部１０ａは、ステップＳ８７で変換した物理アドレスが、変換テーブル１に存在しているか否かを判断する（ステップＳ８８）。ＭＭＵ部１０ａは、ステップＳ８７で変換した物理アドレスが、変換テーブル１に存在していると判断した場合（ステップＳ８８：ＹＥＳ）、キャッシュメモリをアップデートする（ステップＳ８９）。ＭＭＵ部１０ａは、ステップＳ８９でアップデートしたキャッシュメモリに従い、ステップＳ８７で変換した物理アドレスへのリフレッシュ動作を行なう（ステップＳ８６）。
【００７７】
ＭＭＵ部１０ａは、ステップＳ８７で変換した物理アドレスが、変換テーブル１に存在していないと判断した場合（ステップＳ８８：ＮＯ）、変換テーブル１自体を更新する（ステップＳ９０）。
【００７８】
なお、ＣＰＵ部２０は、通常、主メモリ４０ａのすべての領域に対してリフレッシュ動作を行なっているが、何らかの不正アクセスを検知した場合にリフレッシュ制御信号を生成して、主メモリ４０ａの特定領域以外の領域のみリフレッシュ動作を行なう。リフレッシュ制御信号は、ＣＰＵ部２０またはＣＰＵ部２０で実行するオペレーティングシステムの特権による指定、あるいは何らかの認証手続きなどの場合に生成されても良い。
【００７９】
ＭＭＵ部１０ａは、タイマ／カウンタ３の更新信号、あるいはＣＰＵ部２０から直接入力されるイベント信号を用いて、予めオペレーションシステムやアプリケーションプログラムによって指定された特定領域以外の領域のアドレスをリフレッシュ制御テーブル４にエントリする。
【００８０】
ＭＭＵ部１０ａは、ハードウェアに制限がある場合や、エントリ数が一杯または指定のエントリ数に達した場合、アプリケーションプログラムごと、当該アプリケーションプログラムが終了した後に、特定領域以外の領域のアドレスをリフレッシュ制御テーブル４にエントリしても良い。
【００８１】
リフレッシュ制御信号を受信したＭＭＵ部１０ａは、リフレッシュ制御テーブル４に伝達され、これにより、リフレッシュ制御テーブル４が活性化される。リフレッシュ制御テーブル４は、活性化されることで、主メモリ４０ａの特定領域以外の領域に対してリフレッシュ制御信号を送信して、当該領域のリフレッシュ動作を行なう。つまり、リフレッシュ制御テーブル４は、主メモリ４０ａの特定領域に対してリフレッシュ制御信号を送信しないことで、リフレッシュ動作を停止する。
【００８２】
以上のように、実施の形態２に係るメモリコントローラは、リフレッシュ制御テーブル４が、ＣＰＵ部２０が出力するリフレッシュ制御信号により、主メモリ４０ａの特定領域以外の領域の論理アドレスに対応する物理アドレスのみリフレッシュ動作を行なう。しかし、実施の形態２に係るメモリコントローラは、特定領域の論理アドレスに対応する物理アドレスのリフレッシュ動作を停止する。そのため、実施の形態２に係るメモリコントローラは、主メモリ４０ａに含まれる特定領域に記憶してあるプログラムまたはデータを積極的に揮発させることができ、特定領域への不正行為を防止することができる。また、実施の形態２に係るメモリコントローラは、リフレッシュ制御テーブル４を設けるだけであるため、安価な製造コストで、主メモリ４０ａへの不正行為を防止することができる。
【００８３】
なお、実施の形態２に係るメモリコントローラは、ＣＰＵ部２０が出力するリフレッシュ制御信号の有無で、主メモリ４０ａのリフレッシュ動作を停止するか否かを制御しているが、主メモリ４０ａに含まれる特定領域のリフレッシュ動作を常に停止する構成でもよい。
【００８４】
また、実施の形態２に係るメモリコントローラでは、論理アドレスで主メモリ４０ａに含まれる特定領域へのアクセスを禁止する例を示したが、変換した後の物理アドレスで主メモリ４０ａに含まれる特定領域へのアクセスを禁止してもよい。
【００８５】
（実施の形態３）
実施の形態１および実施の形態２に係るメモリコントローラの機構を応用し、仮想マシンなどで発生するガーベッジコレクションの高速化などへの応用が可能なメモリコントローラについて説明する。一般に、半導体装置においてガーベッジコレクションが発生した場合、通常リフレッシュ動作が必要な主メモリでは、リフレッシュ動作を行なっている領域へのアクセスが制限されてしまう。そこで、実施の形態３に係るメモリコントローラでは、ガーベッジコレクションの対象となる領域に対して、一定期間リフレッシュ動作を行なわない状態を作り、当該領域のデータを積極的に揮発させる。ここで、ガーベッジコレクションの対象となる領域としては、たとえば、使用されなくなった複数の仮想マシン（オブジェクト）が分散してアロケートされている領域である。
【００８６】
ＭＭＵ部は、ガーベッジコレクションの対象となる領域の物理アドレスを登録したガーベッジコレクションテーブルを準備する。ＭＭＵ部は、このガーベッジコレクションテーブルと、変換テーブルとをリンクさせてリフレッシュ停止信号を生成する。ＭＭＵ部は、生成したリフレッシュ停止信号を用いて主メモリのリフレッシュ制御部を制御して、リフレッシュ動作を停止する領域を指定する。これにより、実施の形態３に係るメモリコントローラは、リフレッシュ動作の停止により、ガーベッジコレクションが一時的に待たされる時間を取除くことが可能となる。また、実施の形態３に係るメモリコントローラは、ＣＰＵ部２０が高速に利用可能な未使用の主メモリの領域を確保することができ、連続的な領域として利用することが可能となる。
【００８７】
ＭＭＵ部が、ガーベッジコレクションと連携するメモリコントローラの構成についてさらに詳しく説明する。ガーベッジコレクションで揮発すべき主メモリの領域に記憶する仮想マシン（オブジェクト）には、保護すべき変数（個人情報、ＩＤ等の秘匿すべき情報）が含まれる場合がある。ガーベッジコレクションで揮発すべき主メモリの領域、即ちリフレッシュ動作を停止した領域の情報を利用して、ＭＭＵ部は、仮想マシンを一括揮発させた後、分割された領域をヒープ領域として１つにまとめることが可能となる。
【００８８】
実施の形態１のＭＭＵ部１０は、リフレッシュ停止制御テーブル２１でアクセスを禁止する主メモリ４０の特定領域を、仮想マシンが実装される主メモリ４０の領域とすることで、ガーベッジコレクションで秘匿したい主メモリ４０の領域を揮発することができる。また、実施の形態２のＭＭＵ部１０ａは、リフレッシュ制御テーブル４でリフレッシュ動作を停止する主メモリ４０ａの特定領域を、仮想マシンが実装される主メモリ４０の領域とすることで、ガーベッジコレクションで秘匿したい主メモリ４０の領域を揮発することができる。
【００８９】
ＭＭＵ部１０，１０ａは、ガーベッジコレクションで秘匿したい主メモリ４０，４０ａの領域を揮発することで、不正アクセスを意識したガーベッジコレクションを短時間で行なうガーベッジコレクションアクセラレータ機能として実現することができる。
【００９０】
図９は、ガーベッジコレクションを考慮したＭＭＵ部と主メモリとの関係を説明するための模式図である。図９に示すＭＭＵ部１０ｂは、実施の形態１のＭＭＵ部１０または実施の形態２のＭＭＵ部１０ａの機能に加え、仮想マシンに対応した仮想メモリのアドレスを変換する変換テーブルと、ガーベッジコレクションを行なう領域のリフレッシュ動作を停止するガーベッジコレクションテーブルを有している。そのため、ＭＭＵ部１０ｂは、ガーベッジコレクションで秘匿したい主メモリ４０の領域のリフレッシュ動作を停止し、ガーベッジコレクションを行なった後、揮発させて領域を１つのヒープ領域として構成することができる。
【００９１】
図９に示す仮想マシンは、仮想マシンＡ，Ｂ，Ｃが実行され、それぞれの仮想マシンＡ，Ｂ，Ｃに対応した仮想メモリが存在する。ＭＭＵ部１０ｂは、仮想マシンＡ，Ｂ，Ｃのそれぞれに対応した仮想メモリの論理アドレスを、主メモリ４０ｂの物理アドレスに変換する。さらに、ＭＭＵ部１０ｂは、ガーベッジコレクションで秘匿したい主メモリ４０の領域のリフレッシュ動作を停止して、当該領域に記憶してあるプログラムまたはデータを揮発させる。
【００９２】
また、ＭＭＵ１０ｂでは、仮想メモリのアドレス変換とガーベッジコレクションを行なう領域のリフレッシュ動作を停止するガーベッジコレクションテーブルとを用いて、新しい仮想メモリ（ヒープ領域）を構成する。
【００９３】
以上のように、実施の形態３に係るメモリコントローラは、ガーベッジコレクションを行なう領域のリフレッシュ動作を停止することで、ガーベッジコレクションで秘匿したい主メモリ４０の領域を揮発することができる。また、実施の形態３に係るメモリコントローラは、ガーベッジコレクションで秘匿したい主メモリ４０の領域を揮発した後に、新しい仮想メモリ（ヒープ領域）を構成することができる。
【００９４】
また、実施の形態１〜３に係るメモリコントローラを組込み機器、携帯通信機器、タブレット型コンピュータなどの携帯情報端末やノートパソコンなどの様々な情報処理装置に適用することにより、情報処理装置内の揮発性メモリ上でのプログラムまたはデータの意図的な（悪意のある）情報取得、意図的な（悪意のある）情報書込みなどの不正行為を防止することができる。
【００９５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００９６】
１  変換テーブル、２  リフレッシュ制御フィルタ、３  カウンタ／タイマ、４  リフレッシュ制御テーブル、１０  ＭＭＵ部、２０  ＣＰＵ部、２１  リフレッシュ停止制御テーブル、３０  ＢＵＳステートコントローラ、４０，４０ａ，４０ｂ  主メモリ、４１  メモリアレイ、４２  Ｒｏｗデコーダ、４５  Ｃｏｌｕｍｎデコーダ、４３  Ｒｏｗアドレスバッファ、４６  Ｃｏｌｕｍｎアドレスバッファ、４４  センスアンプ、４７  入出力回路、４９  リフレッシュ制御部、５０  ＤＭＡ部、６０  周辺ＩＯ部６０。
【図１】
2013191024.tif 000003
【図２】
2013191024.tif 000004
【図３】
2013191024.tif 000005
【図４】
2013191024.tif 000006
【図５】
2013191024.tif 000007
【図６】
2013191024.tif 000008
【図７】
2013191024.tif 000009
【図８】
2013191024.tif 000010
【図９】
2013191024.tif 000011