(57)【要約】      （修正有）【課題】動作時は、擬似揮発化により、電源供給が落ちた場合に内部にデータを残さないセキュリティ機能を備え、動作終了時には、高速にデータの不揮発化処理実行が可能なメモリを提供する。【解決手段】メモリを揮発性メモリ部と不揮発性メモリ部で構成し、書き込みデータ単位の一部を不揮発性メモリ部、一部を揮発性メモリ部に格納する。揮発メモリ部に書き込むデータを鍵として、不揮発メモリ部に書き込むデータを暗号化しておくことで、メモリを取り外すと、揮発メモリ部に格納されたデータの消失により、全体のデータが消滅する。動作終了時は、内部のデータ移動エンジンで、揮発データを不揮発メモリ部に移動し、データ全体を不揮発化できる。すべてのデータを揮発メモリ部に持つ場合に比べ、移動データ量が少ないので、高速にデータ移動が実行できる。【選択図】図１
2012168737.tif 000002
【特許請求の範囲】
【請求項１】
不揮発メモリ部分と揮発メモリ部分で構成されたメモリで、１回の読み出し書き込みデータ単位のうち、一部を不揮発メモリ部分、一部を揮発メモリ部分に格納する構成を備え、読み出し書き込みデータに対しては、不揮発メモリ部分に書き込むデータを揮発メモリ部分に書き込むデータを鍵として暗号複合化する回路を備えたメモリ装置。
【請求項２】
請求項１記載のメモリ装置で、電源供給が断たれた場合に揮発メモリ部分のデータを消失させることで、不揮発メモリ部分のデータを読み出すことを防止することを特徴とするメモリ装置。
【請求項３】
請求項１記載のメモリ装置において、不揮発メモリ部分に書き込むデータを揮発メモリ部分に書き込むデータを鍵として暗号化することで、揮発メモリ部分のデータ消失により全体のデータが消失することを特徴とするメモリ装置。
【請求項４】
複数の不揮発メモリ部分と複数の揮発メモリ部分で構成されたメモリ装置で、揮発メモリ部分に記録されたデータと不揮発メモリ部分に記録されたデータを相互に移動する機能と、揮発メモリ部分ごとに各不揮発メモリ部分がデータをその揮発メモリ部分と共有しているかいないか記憶したレジスタと、共有している場合には、そのデータが揮発メモリ部分にあるか不揮発メモリ部分にあるか示す状態フラグを内部に備えたメモリ装置。
【請求項５】
請求項４記載のメモリ装置において、電源断に先立ち、揮発メモリ部分ごとに、各不揮発メモリ部分がデータをその揮発メモリ部分と共有している場合、そのデータが揮発メモリ部分にあるか不揮発メモリ部分にあるか示す状態フラグに従って、揮発メモリ部分のデータを対応する不揮発メモリ部分にデータ移動し、転送後は状態フラグを更新することで、すべての揮発メモリ部分のデータを不揮発メモリ部分にデータ移動し、その不揮発化完了を、すべての状態フラグの論理積から確認した後、電源断することで、データ全体を不揮発データとして保持することを特徴とするメモリ装置。
【請求項６】
不揮発メモリ部分と揮発メモリ部分で構成されたメモリ装置で、アドレスと各メモリ部分との対応付け変更回路を内蔵し、該変更回路の設定により、メモリ装置内での各アドレスに対する不揮発メモリ部分と揮発メモリ部分を変更できるメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に係り、特に主記憶に不揮発性メモリを適用したメモリ装置に関するものである。
【背景技術】
【０００２】
情報を記憶する手段としてさまざまなメモリ装置が開発されている。演算等を処理するプロセッサ内の一時記憶レジスタ、一連のプログラム処理の実行に必要な情報を格納するDRAM等で構成された主記憶装置、データの保管が可能なハードディスクなどの外部記憶装置などがある。これら記憶媒体は、情報の維持に電源供給が必要か否かによって、不揮発性メモリと揮発性メモリに分類される。従来、電源供給が必要な揮発性メモリは高速、小容量であるため、一時記憶レジスタや主記憶装置に利用されてきた。また電源供給が不要な不揮発性メモリは、低速であるが、大容量かつ電源不要であるために、情報の保管用として外部記憶装置に利用されてきた。近年、フラッシュメモリのように不揮発であるが高速なメモリが開発され、高速性を必要とするレジスタや主記憶に不揮発なメモリを適用することが可能となりつつある。
【０００３】
従来技術として、特許文献１には、中央処理装置と、主記憶部と、表示系と、それらを接続するバスとからなる情報処理装置において、主記憶部にフラッシュメモリを用いた情報処理装置が開示されている。
【０００４】
又、特許文献２には、主記憶が全て不揮発性メモリで構成された装置において、突発的な電源の遮断発生後、電源再投入時にシステムが正常に動作するように、特別なハードウェアと処理手順を備えた装置が開示されている。
【０００５】
又、特許文献３には、不揮発メモリをプログラムメモリとして使用する場合、不揮発メモリからＣＰＵ用主記憶メモリへプログラムを転送後実行するが、不揮発メモリの低速性によりプログラム実行の遅れが発生する。これを解決するために、複数の不揮発メモリを平行動作させ、個々の不揮発メモリのビジー情報でその切替えを実施するメモリ制御システムが開示されている。
【０００６】
又、特許文献４には、不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムが開示されている。
【０００７】
又、特許文献５には、第三者から重要なデータを保護するために、電源をオフする操作を検出すると、動作中に必要とされるデータやプログラムを記憶する作業用の記憶装置からデータを消去する装置が開示されている。
【０００８】
又、特許文献６には、情報処理機器または二次記憶装置が盗難された場合に、不揮発メモリである二次記憶装置の内容にアクセスできないようにすることを目的とし、電源オフ時に二次記憶装置中のファイル管理領域をSRAMに待避し、ファイル管理領域の内容を破壊してから実際に電源をオフする装置が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平5-334168
【特許文献２】特開2010-108253
【特許文献３】特開2004-48428
【特許文献４】特開2004-362464
【特許文献５】特開2004-334626
【特許文献６】特開平11-212730
【発明の概要】
【発明が解決しようとする課題】
【００１０】
揮発性の主記憶に、不揮発な記憶媒体を適用することによって、電源が落ちた状態でも、情報の保持が可能になる。これを利用すれば、主記憶をプログラム実行のワーキングエリアとしてだけでなく、情報を保管する場所として利用することが可能になる。しかし、これを実現した場合、主記憶の揮発高速性、外部記憶装置の不揮発低速性を前提にした従来のシステムに問題を起こす可能性がある。例えば、近年情報保護の問題が大きくなっているが、現在の計算機システムでは主記憶は揮発性がほとんどであるため、情報保護の観点からは、対策不十分であることが多い。本発明では、揮発性メモリと不揮発性メモリを混在させてメモリ構成し、揮発メモリの特性を提供することが可能な、不揮発メモリを提供する。本発明による構成で解決する一つ目の課題は、データの擬似的な揮発性実現によるセキュリティ実現である。実行途中のデータについては、正規の手順を経ない場合には、データを残さず揮発させることでセキュリティ機能を実現する。二つ目の課題は、正規の手順を経た場合に完全な不揮発メモリを提供することである。揮発データの不揮発化処理として揮発データ部分を高速に不揮発メモリに移動する機能を実現する。
【課題を解決するための手段】
【００１１】
主記憶を構成する記憶装置を揮発性メモリと不揮発性メモリで構成する。書き込みデータ単位の一部を不揮発性メモリ、一部を揮発性メモリに格納する。主記憶への書き込みは通常一定の長さをもったデータ単位で行われるが、アドレスの下位ビットを判定に利用して、揮発性メモリか不揮発性メモリに格納する。この構成の記憶装置では、記憶装置をいきなり取り外したような場合に揮発部に格納されたデータが消失する。揮発メモリ部に書き込むデータを鍵として、不揮発メモリ部に書き込むデータを暗号化することで、揮発部のデータ消失により全体のデータを取り出し不能にさせることが可能になり、擬似的な揮発メモリが実現できる。通常動作終了後には、内部に備えたデータ移動エンジンで、揮発データを不揮発メモリに転送することで、記憶装置全体の不揮発化を実行できる。すべてのデータを揮発メモリに持つ場合に比べて、移動データが少ないので、高速な不揮発メモリへの移動が可能である。このメモリ構成がデータセキュリティを実現する第１の構成である。
【００１２】
第１の構成により、本発明の対象となる課題は解決されるが、主記憶が揮発メモリ、その他の拡張記憶が拡張メモリである従来メモリ構成方法と互換性を持つために、揮発性メモリを主記憶、不揮発性メモリを拡張記憶とするメモリ構成もあわせて実現可能とする。この構成では、アドレスの下位の部分を主記憶として揮発性メモリに割り当て、上位の部分を拡張記憶として不揮発性メモリに割り当て、プログラム実行に必要な主記憶データは、揮発メモリに格納する。拡張記憶と主記憶間は、記憶装置内に備えたデータ移動エンジンによりデータ移動を実行し、記憶領域を入れ替えが可能とする。このメモリ構成が主記憶を揮発メモリとする第２の構成である。
【００１３】
データセキュリティを実現する第１の構成と、主記憶を揮発メモリとする第２の構成は、記憶装置内のアドレス割当てを変更することで実現する。記憶装置のアドレス設定を切り替える論理を内部に保持することで、データセキュリティを実現する第１の構成と、主記憶を揮発メモリとする第２の構成の両方を、単一の記憶装置で実現する。
【発明の効果】
【００１４】
本発明によれば、動作中に正規の手順を経ないで取り外したメモリに対して、メモリ内に完全なデータを残さない、擬似揮発化によるセキュリティ機能を備えた不揮発メモリを実現できる。擬似揮発化データの不揮発化は、揮発メモリ部のデータを不揮発メモリ部に移動することで実現するが、すべてのデータを揮発メモリに持つ場合に比べ高速に実行することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明によるメモリの基本構成を示す図である。
【図２】本発明によるメモリに内蔵されるレジスタの内容を示す図である。
【図３】不揮発メモリから揮発メモリへのデータ移動処理（初期化処理）を示す図である。
【図４】セキュリティモード時の動作を示す図である。
【図５】本発明によるメモリに内蔵される暗号化回路を示す図である。
【図６】本発明によるメモリに内蔵される複合化回路を示す図である。
【図７】主記憶揮発モード時の動作を示す図である。
【図８】揮発メモリから不揮発メモリへのデータ移動処理（不揮発化処理）を示す図である。
【図９】セキュリティモード時と主記憶揮発モード時のアドレス生成方法を示す図である。
【図１０】データ移動エンジン回路の内部回路を示す図である。
【発明を実施するための形態】
【００１６】
本発明によるメモリの基本構成を、図１に示す。記憶部としては、同じ容量、構成を持つ不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5を持つ。不揮発メモリ、揮発メモリは任意の個数を持つ構成が可能であるが、本実施例では、不揮発メモリ４個、揮発メモリ1個の構成を示している。本発明によるメモリは、入力アドレスから内部の不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4、揮発メモリ5へのアドレスを生成するアドレス生成回路6を持ち、アドレス生成回路6内に、各メモリの割当てを変更することによってセキュリティモード構成又は主記憶揮発モード構成を決めるモードレジスタ9を持つ。アドレス生成回路6には、外部からアドレスピン16を介してメモリアドレスが、モードレジスタ9には、モードピン17を介してモード設定値が入力される。モードレジスタ9は図２に示すとおり、１ビットの設定レジスタでメモリの構成を定義する。値０の場合セキュリティモード構成、値１の場合主記憶揮発モード構成になる。
【００１７】
また、本発明によるメモリは、入力データピン20を介して入力されたデータをセキュリティ付データに変換する暗号化回路8を持つ。
【００１８】
また、本発明によるメモリは、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5間のデータ移動を実現するデータ移動エンジン回路７を持つ。データ移動エンジン回路７内には、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4が揮発メモリ5とデータを共有するか否かを設定するメモリ割当レジスタ10、および不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4の最新データが揮発メモリ5に置かれているか、または不揮発メモリにおかれているか示すメモリ状態フラグ11を持つ。
【００１９】
メモリ割当レジスタ10は図２に示すとおり、不揮発メモリ毎に1ビット、本実施例では合計４ビットのレジスタである。値０はその不揮発メモリは揮発メモリとデータ共有していないことを意味し値１はその不揮発メモリが揮発メモリとデータ共有していることを意味している。メモリ割当レジスタ10へは、メモリ割当ピン19を介して、設定値が入力される。メモリ割当レジスタ10は、４ビット中１ビットのみが値１にセット可能であり本実施例では、不揮発メモリＤ4を指定した状態で値”０００１”の場合を示している。
【００２０】
メモリ状態フラグ11は図２に示すとおり、不揮発メモリ毎に1ビット、本実施例では合計４ビットのレジスタである。値０はその不揮発メモリの最新データが不揮発メモリ上にあること、つまり該当データが不揮発状態にあることを意味し、値１はその不揮発メモリの最新データが揮発メモリ上にあること、つまり該当データが揮発状態にあることを意味している。メモリ状態フラグ11はメモリ割当レジスタ10が値１を持つ不揮発メモリに対応した部分のみ意味を持つ。メモリ状態フラグ11はメモリ状態フラグ出力ピン22から外部に出力されており、メモリデータが不揮発化状態か揮発化状態か監視することができる。
【００２１】
データ移動エンジン回路７は、起動信号ピン18からの信号により起動される。起動信号ピン18は２個の信号からなり、不揮発メモリから揮発メモリにデータ移動を行う初期化処理と、揮発メモリから不揮発メモリにデータ移動を行う不揮発化処理の起動ができる。
【００２２】
また、本発明によるメモリは、メモリから読み出されたデータがセキュリティ付データの場合、通常のデータに複合する複合化回路12を持つ。複合化回路12は出力データピン21を介してメモリ読み出しデータを出力する。
【００２３】
また、本発明によるメモリは、内部に動作によってアドレスやデータを選択するメモリアドレスセレクタ13、メモリ書き込みデータセレクタ14、出力データセレクタ15を持つ。メモリアドレスセレクタ13は、通常動作時は、アドレス生成回路6で生成されたアドレスを選択し、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5間でデータ移動するときには、データ移動エンジン回路７が出力するアドレスを選択し、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5にアドレスを出力する。
【００２４】
メモリ書き込みデータセレクタ14は、通常動作時は、暗号化回路8から送られるデータを選択し、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5間でデータ移動するときには、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4または揮発メモリ5が出力するデータを選択する。
【００２５】
出力データセレクタ15は、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5から読み出したデータを選択する。１段目のセレクタは、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、不揮発メモリＤ4と揮発メモリ5を選択する。本実施例では、不揮発メモリＤ4が揮発メモリ5とデータを共有しているので、通常動作時は、不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、および揮発メモリ5が選択される。通常動作時は、不揮発メモリＤ4は揮発メモリ5とデータを共有しており、かつ最新データは揮発メモリ5内にある。メモリ全体の初期化処理とメモリ全体の不揮発化処理による不揮発メモリと揮発メモリ間のデータ移動時は、不揮発メモリから揮発メモリにデータ移動する場合は、不揮発メモリを選択し、揮発メモリから不揮発メモリにデータ移動する場合は、揮発メモリを選択する。
【００２６】
２段目のセレクタは、メモリ領域の選択を行う。通常動作時は、メモリへのアドレスで指定されたメモリからのデータを選択し、複合化回路12にデータを転送する。メモリ全体の初期化処理とメモリ全体の不揮発化処理による不揮発メモリと揮発メモリ間のデータ移動時は、揮発メモリと不揮発メモリがデータを共有している部分、本実施例では不揮発メモリＤ4と揮発メモリ5の選択データ部分、が固定的に選択される。
【００２７】
本メモリの使用に先立ち以下の初期化処理を実施する。まず、セキュリティモード構成又は主記憶揮発モード構成を決めるモードレジスタ9を設定する。セキュリティモード構成時は、揮発メモリに書き込まれるデータで不揮発メモリに書き込むデータが暗号化された状態になり、不自然な作業などで電源断が発生した場合、揮発メモリ部のデータが消滅することで、全データのセキュリティが保たれる。主記憶揮発モード構成の場合は、プログラム等から直接アクセスできるデータすべてが、揮発メモリに格納され、従来技術による記憶階層を実現する。
【００２８】
次に揮発メモリと対応する不揮発メモリを定め、メモリ割当レジスタ10に設定する。本実施例では、メモリ割当レジスタ10は不揮発メモリＤ4を指定する値”０００１”の場合を示している。ここで設定された不揮発メモリは揮発メモリ間とデータ転送しあうことで、該当データを揮発化したり、不揮発化したりできる。
【００２９】
モードレジスタ9の設定とメモリ割当レジスタ10の設定は、モードピン17、メモリ割当ピン19から設定されるが、装置で使用方法を固定する場合、実装するボードから本メモリへ固定信号を入力することで実現してもよい。装置で使用方法を適宜変更する場合は、ＣＰＵなどの外部コントローラから、使用の都度設定値を書き込むことにより実現してもよい。
【００３０】
最後にメモリ割当レジスタ10で設定された不揮発メモリのデータを揮発メモリにコピーする。不揮発メモリから揮発メモリへのデータ移動は、データ移動エンジン回路7を起動することにより実施する。データ移動エンジン回路７は内部にアドレスカウンタを持ち、メモリ割当レジスタ10で設定された不揮発メモリの最下位アドレスから最上位アドレスに順次データを読み出し、揮発メモリの最下位アドレスから最上位アドレスに順次データを書き込む。通常の揮発メモリでは初期化として’０’書き込みが行われるが、本発明によるメモリでは、指定された不揮発メモリのデータをコピーすることにより揮発メモリの初期化となる。アドレスカウンタが最上位のアドレスに到達し、コピーが終了したら、データ移動エンジン回路7は、対応する不揮発メモリのメモリ状態フラグ11に最新データが揮発メモリにあるというフラグをたてる。
【００３１】
図３は、初期化時の不揮発メモリから揮発メモリへのデータの移動を示す。この実施例では、メモリ割当レジスタ10は”０００１”であり不揮発メモリＤ4が揮発メモリとデータ5を共有する。データ転送前のメモリ状態フラグ11は”００００”である。データ移動エンジン回路７が、起動信号ピン18からの信号により初期化処理を開始すると、内部のアドレスカウンタから、不揮発メモリＤ4と揮発メモリ5の最下位アドレスが、メモリアドレスセレクタ13に送られる。データ移動エンジン回路７が起動中は、データ移動エンジン回路７から送られるアドレスが選択され、不揮発メモリＤ4および揮発メモリ5および出力データセレクタ15にアドレスが送り出される。出力データセレクタ15は不揮発メモリＤ4を常に選択する。
【００３２】
メモリ書き込みデータセレクタ14は常に内部の不揮発メモリＤ4から読み出したデータを選択し、揮発メモリ5にデータを送る。不揮発メモリＤ4から読み出したデータが揮発メモリ5に書き込まれると、データ移動エンジン回路7の内部アドレスカウンタは次のアドレスに更新され、同様な移動処理が実行される。データ移動エンジン回路７の内部アドレスカウンタが不揮発メモリＤ4と揮発メモリ5の最上位アドレスに到達し、そのデータ移動が完了すると、データ移動エンジン回路7は、メモリ状態フラグ11を”０００１”に更新し、処理終了になる。外部の装置はメモリ状態フラグ11の状態を、メモリ状態フラグ出力ピン22を介して監視することにより、初期化完了を認識することができる。この初期化時のデータ移動は、セキュリティモードでも主記憶揮発モードでもモードに関係なく同様な処理が実行される。
【００３３】
本実施例では、データ移動エンジン回路７内のアドレスカウンタは１個でよいが、処理の高速化を目的に、読み出しアドレスカウンタと書き込みアドレスカウンタを２個用意する構成もある。読み出しアドレスカウンタと書き込みアドレスカウンタが別になっていれば、メモリの読み出しと書き込みを並列実行可能となり、データの移動は早く実行できる。
【００３４】
図４は、セキュリティモードにおける通常動作を示す。本モードでは、モードレジスタの設定は’０’であり、各入力データの単位は、不揮発メモリと揮発メモリに書き込まれる。ここでは、メモリ割当レジスタは”０００１”であり、不揮発メモリＤ4が揮発メモリ5とデータを共有するメモリに指定されているものとする。またデータa、b、c、dは一回のデータ書き込み単位であり、データaが不揮発メモリＡ1、データbが不揮発メモリＢ2、データcが不揮発メモリＣ3、データdが揮発メモリ5に書き込まれる場合を示している。ここで不揮発メモリＤ4は使用されず揮発メモリ部分と同一の記憶領域に割当てられており、記憶装置を不揮発化する場合には、揮発メモリ5のデータを不揮発メモリＤ4に転送することで、不揮発化される。通常の動作時は、最新のデータｄは揮発メモリにのみ存在し、不揮発メモリＤ4には存在しない。このため、無理に記憶装置を取り外すなどにより電源供給が断たれた場合、揮発メモリ部分のデータdは消失する。
【００３５】
データ入力ピン20から入力されたデータabcdは、暗号化回路8に送られ、暗号化される。暗号化は、図５に示すとおり、入力されたデータabcdのうちデータabcについてはデータdを用いて暗号変換し、データxyzにされる。データxyzはデータdを鍵として逆変換により、データabcに変換できるものとする。暗号化回路8でデータxyzdに変換されたデータは、データxを不揮発メモリＡ1、データyを不揮発メモリＢ2、データzを不揮発メモリＣ3、データdを揮発メモリ5に書き込まれる。
【００３６】
通常動作時に、不自然な行為により、記憶装置に電源が供給されなくなった場合、揮発メモリ上のデータdは消滅する。データxyzは不揮発メモリ上に残るが、鍵となるデータdが失われているため、元のデータを読み出すことを不可能にできる。メモリからデータを読み出す場合、データxは不揮発メモリＡ1、データyは不揮発メモリＢ2、データzは不揮発メモリＣ3、データdは揮発メモリ5から読み出す。読み出されたデータは複合化回路12に送られる。データxyzはデータdにより暗号化されているが、図６に示すとおり、データdを鍵として複合することによりデータxyzからデータabcをえることができる。
【００３７】
読み出し書き込みアドレスは、アドレスピン16から入力されたアドレスが、アドレス生成回路6にてモードレジスタ9の内容に従って変換されアドレスセレクタ13を経由して不揮発メモリＡ1、不揮発メモリＢ2、不揮発メモリＣ3、揮発メモリ5に送られる。図９にセキュリティモード時のアドレス生成結果を示す。セキュリティモードでは、アドレスの比較的下位のビットにより、不揮発メモリまたは揮発メモリにデータを割り振る。本実施例では、各メモリ領域の書き込みデータ幅が8バイトの場合を示しているためアドレスの下位３ビットは使用されない。また、本例では不揮発メモリＤ4は揮発メモリと対応しているため、通常動作時は使用されない。アドレス000xxxは、不揮発メモリＡ1、アドレス001xxxは、不揮発メモリＢ2、アドレス010xxxは、不揮発メモリＣ3、アドレス011xxxは、揮発メモリ5に割当て、アドレス100xxxは、不揮発メモリＡ1、アドレス101xxxは、不揮発メモリＢ2、アドレス110xxxは、不揮発メモリＣ3、アドレス111xxxは、揮発メモリ5に割当て、以下順次上位アドレス方向に割り当てる。アドレス生成回路6はこの割り当てに従ってメモリへアドレスと選択信号を出力する。
【００３８】
図７は、揮発メモリを主記憶に不揮発メモリを拡張記憶に割り当てる構成を示す。本モードでは、モードレジスタの設定は’１’であり、命令処理に必要なデータは揮発メモリにすべて置かれた従来型のメモリ階層構成を実現する。ここでは、メモリ割当レジスタは”０００１”であり、不揮発メモリＤ4が揮発メモリ5とデータを共有するメモリに指定されているものとする。またデータa、b、c、dは一回のデータ書き込み単位であり、データa、データb、データc、データdすべて揮発メモリ5に書き込まれる。本構成においても、不揮発メモリＤ4は揮発メモリ5と対応しており、初期化処理時には不揮発メモリから揮発メモリへ、不揮発化処理時には揮発メモリから不揮発メモリへのデータ移動を実行する。
【００３９】
入力データabcdは、データ入力ピン20から暗号化回路8に入力されるが、この主記憶揮発モード時、暗号化は実施しない。暗号化回路8を通過したデータはデータセレクタ14を通過し、揮発メモリ5にすべて書き込まれる。データの読み出し時は、出力データセレクタ15、複合化回路8を通過し読み出しが行われる。主記憶揮発モード時、データ複合化は実施しない。
【００４０】
読み出し書き込みアドレスは、アドレスピン16から入力されたアドレスが、アドレス生成回路6にてモードレジスタ9の内容に従って変換されアドレスセレクタを経由して揮発メモリ5に送られる。主記憶揮発モード時のアドレス生成は図９に示している。主記憶揮発メモリモードでは、主記憶に対応するデータはすべて揮発メモリに割り振られアドレスはそのまま揮発メモリのアドレスとして使用される。不揮発メモリを、プログラムから直接利用はできない拡張記憶として指定する場合、主記憶容量を超えたアドレスの上位ビットを用いることができる。本例では、アドレス０１ｘ…ｘ０００ｘｘｘを不揮発メモリＡ1、アドレス１０ｘ…ｘ０００ｘｘｘを不揮発メモリＢ2、アドレス１１ｘ…ｘ０００ｘｘｘを不揮発メモリＣ3として利用する場合を示している。本例では不揮発メモリＤ4は、揮発メモリ5に対応しているため、揮発メモリと同じアドレスとなり、通常動作時には使用されない。
【００４１】
図８は揮発データから不揮発データにデータを移動する処理を示している。この実施例では、メモリ割当レジスタ10は”０００１”であり不揮発メモリＤ4が揮発メモリ5とデータを共有する。データ転送前のメモリ状態フラグ11は”０００１”である。データ移動エンジン回路７が、起動信号ピン18からの信号により不揮発化処理を起動すると、内部のアドレスカウンタから、不揮発メモリＤ4と揮発メモリ5の最下位アドレスが出力され、メモリアドレスセレクタ13に送られる。データ移動エンジン回路７が起動中は、データ移動エンジン回路７から送られるアドレスが選択され、不揮発メモリＤ4および揮発メモリ５および出力データセレクタ15にそのアドレスが送り出される。出力データセレクタ15は揮発メモリ5を常に選択する。メモリ書き込みデータセレクタ14は常に内部の揮発メモリ5から読み出したデータを選択し、不揮発メモリＤ４にデータを送る。揮発メモリ5から読み出したデータが不揮発メモリＤ4に書き込まれると、データ移動エンジン回路７の内部アドレスカウンタは更新され次のアドレスに対して、同様な移動処理が実行される。データ移動エンジン回路７の内部アドレスカウンタが不揮発メモリＤ4と揮発メモリ5の最上位アドレスに到達すると、データ移動エンジン回路７は、メモリ状態フラグ11を”００００”に更新し、処理終了になる。外部の装置はメモリ状態フラグ出力ピン22を介してメモリ状態フラグ11の状態を監視することにより、不揮発化処理完了を認識することができる。この不揮発化時のデータ移動は、セキュリティモードでも主記憶揮発モードでもモードに関係なく同様な処理が実行される。
【００４２】
本実施例では、データ移動エンジン回路７内のアドレスカウンタは１個でよいが、処理の高速化を目的に、読み出しアドレスカウンタと書き込みアドレスカウンタを２個用意する構成もある。読み出しアドレスカウンタと書き込みアドレスカウンタが別になっていれば、メモリの読み出しと書き込みを並列実行可能となり、データの移動は早く実行できる。
【００４３】
図１０はデータ移動エンジン回路7の詳細構造を示す。起動ピン18からの起動信号により、データ移動エンジンシーケンサ24が起動される。データ移動エンジン回路7が動作中は、データ移動エンジンシーケンサ24からデータ移動エンジンセレクタ信号26が３本出力される。メモリアドレスセレクタ13、メモリ書き込みデータセレクタ14、出力データセレクタ15への選択信号であり、ここまでで説明したとおりに各動作に対応したデータ選択信号を出力する。データ移動エンジンシーケンサ24は、データ移動エンジン内アドレスカウンタ23にリセット信号を送り、メモリの最下位アドレスをセットする。データ移動エンジン内アドレスカウンタ23は、データ移動メモリアドレス25を、セレクタ13を介して内部のメモリに出力する。
【００４４】
該当アドレスのメモリ間のデータ移動が完了すると、データ移動エンジン内アドレスカウンタ23は＋１され次のアドレスが出力される。データ移動エンジン内アドレスカウンタ23がメモリの最上位アドレスに達すると、メモリ割当レジスタ10で指定されたビットに対応したメモリ状態フラグ11が、初期化処理時は’１’に、不揮発化処理時は’０’にセットされ、データ移動エンジンシーケンサ24の動作は終了する。
【００４５】
本実施例では、不揮発メモリが４個、揮発メモリが１個の場合の構成を示したが、不揮発メモリが揮発メモリ以上の個数であれば、不揮発メモリ、揮発メモリともより多い構成でもかまわない。不揮発メモリの個数が増えた場合、メモリ割当レジスタ、メモリ状態フラグのビット数が対応して増える。揮発メモリの個数が増えた場合、メモリ割当レジスタ、メモリ状態フラグの個数が対応して増え、独立管理する揮発メモリの数だけ、メモリ割当レジスタ、メモリ状態フラグを備えることになり、それぞれの揮発メモリに対して、同様な処理を実行することになる。
【符号の説明】
【００４６】
1 不揮発メモリＡ
2 不揮発メモリＢ
3 不揮発メモリＣ
4 不揮発メモリＤ
5 揮発メモリ
6 アドレス生成回路
7 データ移動エンジン回路
8 暗号化回路
9 モードレジスタ
10 メモリ割当レジスタ
11 メモリ状態フラグ
12 複合化回路
13 メモリアドレスセレクタ
14 メモリ書き込みデータセレクタ
15 出力データセレクタ
16 アドレス入力ピン
17 モード入力ピン
18 起動ピン
19 メモリ割当ピン
20 データ入力ピン
21 データ出力ピン
22 メモリ状態フラグ出力ピン
23 データ移動エンジン内アドレスカウンタ
24 データ移動エンジンシーケンサ
25 データ移動メモリアドレス
26 データ移動セレクタ信号
【図１】
2012168737.tif 000003
【図２】
2012168737.tif 000004
【図３】
2012168737.tif 000005
【図４】
2012168737.tif 000006
【図５】
2012168737.tif 000007
【図６】
2012168737.tif 000008
【図７】
2012168737.tif 000009
【図８】
2012168737.tif 000010
【図９】
2012168737.tif 000011
【図１０】
2012168737.tif 000012