(57)【要約】【課題】メモリとストレージで重複してデータを保持することによる無駄を省くことができる仮想記管理を実現する。【解決手段】仮想アドレスと物理アドレスの管理において、メモリ（１０２）だけではなく、ストレージ（１０３）のアドレスも変換索引バッファ（１０７）により変換可能にする。これにより、ストレージからメモリへのデータロードの指示に際して、このアドレス変換索引バッファには、当該仮想ページとストレージのアドレスを登録する事により、メモリとストレージ間のリード・ライトを発生させずに処理を完了することができる。ストレージからメモリにロードするデータやプログラムのコピー動作と、ストレージ上に配置される仮想メモリのページファイルを削除できる。したがって、メモリとストレージの情報格納効率が向上し、メモリの帯域利用効率が上がり、低消費電力にも寄与する。【選択図】図１
2010026969.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファとを有し、
前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、及びその物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグを、管理する仮想ページアドレス毎に記憶し、前記アクセス主体から受け取った仮想アドレスが、管理している仮想ページアドレスに含まれるか否かを検索し、検索ヒットした仮想ページアドレスに応ずるストレージフラグの情報と物理ページアドレスを用いてメインメモリ又はストレージのアクセスを可能にする、データ処理装置。
【請求項２】
アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるメモリコントローラを有し、前記メモリコントローラはストレージフラグがメモリを意味するときその物理ページアドレスを用いてメモリのアクセスを行い、
アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるストレージコントローラを有し、前記ストレージコントローラはストレージフラグがストレージを意味するときその物理ページアドレスを用いてストレージのアクセスを行う、請求項１記載のデータ処理装置。
【請求項３】
前記アドレス変換索引バッファは、物理ページアドレスが複数の仮想ページアドレスで共有されていることを示す共有フラグを各変換対に有する、請求項１記載のデータ処理装置。
【請求項４】
前記アクセス主体がストレージをリードする物理アドレスとストレージからリードしたデータを格納するメモリの仮想アドレスを指定してストレージのリードアクセスを行う動作が指示されたとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないとき、当該指示に含まれる仮想ページアドレス、物理アドレス、及びストレージを意味するストレージフラグ、及び共有を意味する共有フラグを新たな変換対として登録する、請求項３記載のデータ処理装置。
【請求項５】
前記アクセス主体がメモリのリードを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知し、当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする、請求項４記載のデータ処理装置。
【請求項６】
前記アクセス主体がメモリのライトを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知し、当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする、請求項４記載のデータ処理装置。
【請求項７】
アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファを更に備え、
前記アドレス変換索引バッファは、管理する仮想ページアドレス毎に記憶するデータとして、仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを更に有し、
前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットし、
前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、
ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
ライトバッファフラグがセットされている変換対があれば、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
前記ストレージフラグがストレージを意味する変換対用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制してメモリアクセス可能にする、請求項1記載のデータ処理装置。
【請求項８】
メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、
前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファと、
アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファと、を有し、
前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、その物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグ、及び仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを、管理する仮想ページアドレス毎に記憶し、
前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットし、
前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、
ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
ライトバッファフラグがセットされている変換対があれば、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
前記ストレージフラグがストレージを意味する変換対用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制してメモリアクセス可能にする、データ処理装置。
【請求項９】
前記アクセス主体は中央処理装置であり、前記メモリ及びストレージは電気的に書換え可能な不揮発性メモリである、請求項１乃至８の何れか１項記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想記憶によるメモリ管理機能を有するデータ処理装置に関し、例えば、不揮発メモリをストレージ用途と、一時利用メモリ用途に利用する、不揮発メモリのアドレス管理に適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、計算機システム技術が発達するに従い、コンピュータシステムが、1つのＬＳＩに搭載され、カスタムＬＳＩの中にもＣＰＵが搭載される等、ＬＳＩの中に様々な形でプロセッサが搭載されてきている。これらのプロセッサは、より多くのプログラムを効率よく処理するため、アドレスを仮想化し、物理メモリより大きなプログラムやデータを取り扱える仮想記憶の仕組みを持っている。
【０００３】
プロセッサはメモリアクセスを伴う命令を実行するとき、及び次の命令を取り出すときに、仮想アドレスを利用してメモリを参照する。仮想アドレスはあらかじめ定義されている変換手順にそって物理アドレスに変換される。アドレス変換時間を最小限に抑えるために、一般に変換索引バッファ（ＴＬＢ）と呼ばれるアドレス変換専用のキャッシュと呼ばれる連想メモリがアドレス変換に使用される。特許文献１には仮想記憶に用いる仮想メモリの管理技術について例示がある。
【０００４】
プロセッサに使用されるアクティブなページ、または、すぐアクティブになる可能性の高いページの、ページ記述またはページ・テーブル・エントリ（ＰＴＥ）が変換索引バッファ（ＴＬＢ）に格納される。これにより、変換索引バッファに登録されているページ内の仮想アドレスから物理アドレスへの変換を高速に行うことができる。ＴＬＢ内にないページにアクセスすると割り込み、例外が起こり、ＯＳ（オペレーティングシステム）がページ・テーブル・エントリをＴＬＢにロードする。このページ・テーブル・エントリが物理メモリ上にない場合は、例えばストレージに吐き出されているページのデータを対象ページの物理アドレスに書き込み、ページ、テーブル・エントリをＴＬＢにロードする。
【０００５】
これにより、ストレージを低速な大容量メモリとして有効に活用し、大きなプログラムやデータの利用を可能にしている。また、高速にページ毎のアクセス管理をすることにより、プロセス管理、メモリの保護機能を実現し、マルチプロセスのプログラムを効率よく切り替え、メモリリソースを分配している。
【０００６】
【特許文献１】特開２００４−１３３９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明者は、従来からの仮想記憶において、ページ・テーブル・エントリが物理メモリ上にない場合は（ページフォルト）、例えばストレージに吐き出されているページのデータを対象ページの物理アドレスに書き込み、ページ、テーブル・エントリをＴＬＢにロードする、という管理形態における無駄に着目した。すなわち、ページフォルトにおけるストレージからメモリへのデータコピーは、同じデータを異なる記憶装置に重複して保持させ、そのためのデータ転送動作がメモリの帯域を圧迫し、且つ、無駄な電力消費にも繋がるという点である。この点について具体例を挙げて更に説明する。
【０００８】
例えば、ＨＤＤ（ハードディスクドライブ）をはじめとする低速な現行ストレージに対しフラッシュメモリ等の不揮発メモリは、ビット単価が下がり、帯域でもＤＲＡＭ（ダイナミックランダムアクセスメモリ）を超えることが予想される。このため、情報処理システムにおいて、メインメモリを不揮発化し、ストレージとメインメモリデバイスが低価格で広帯域な不揮発メモリで統一されてメモリ−ストレージ階層構成の単純化が進むことも予想される。これによって、ＯＳ、アプリケーションプログラムのブートレス、いつでも電源の間断動作対応が実現可能になると考えられる。
【０００９】
帯域性能差の小さい、ストレージとメインメモリで、従来の仮想記憶の仕組みを利用すると、プログラムやデータをストレージからメインメモリにロードするため、メインメモリともに不揮発であるにもかかわらず、同じデータを保持してしまうことになる。マルチプロセスで同一プログラムが複数動作する場合はさらに同一データを保持してしまうことになり、不揮発メモリにおけるデータやプログラムの格納効率を悪化させることになる。
【００１０】
また、メインメモリが不揮発であり、データを保持できるにも拘わらず、ストレージに利用されている不揮発メモリとメインメモリに利用している不揮発メモリ間でコピーが発生して、メモリの帯域を圧迫してしまい、システムの処理性能の向上を妨げてしまう。さらに、そのようなコピー動作は、プロセッサ、メモリバス、メモリの動作に掛かる電力を余分に消費することになる。
【００１１】
したがって、メモリに利用される領域とストレージに利用される領域で重複してデータを保持してしまうことにより記憶効率が低下する点、そして、データが重複する原因である、ストレージとメインメモリ間のコピーによりメモリの帯域が圧迫され、システム性能が低下する点が課題となる。このコピー動作にかかる、消費電力も考慮しなければならない。
【００１２】
本発明の目的は、メモリとストレージで重複してデータを保持することによる無駄を省くことができる仮想記管理を実現するデータ処理装置を提供することなる。
【００１３】
本発明の別の目的は、ストレージとメモリで同等のアクセス性能を持った不揮発メモリを使用するシステムで、高い記録効率、帯域利用効率と低消費電力動作を実現することにある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
すなわち、仮想アドレスと物理アドレスの管理において、メモリだけではなく、ストレージのアドレスも変換索引バッファにより変換可能にする。これにより、ストレージからメモリへのデータロードの指示に際して、このアドレス変換索引バッファには、当該仮想ページとストレージのアドレスを登録する事により、メモリとストレージ間のリード・ライトを発生させずに処理を完了することができる。また、ストレージからメモリにロードするデータやプログラムのコピー動作と、ストレージ上に配置される仮想メモリのページファイルを削除できる。したがって、メモリとストレージ間で重複するデータの保持を削減でき、これによってメモリとストレージの情報格納効率が向上し、メモリの帯域利用効率が上がり、低消費電力にも寄与する。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、メモリとストレージで重複してデータを保持することによる無駄を省くことができる仮想記管理を実現することができる。
【００１９】
また、ストレージとメモリで同等のアクセス性能を持った不揮発メモリを使用するシステムでは、高い記録効率、帯域利用効率と低消費電力動作を実現することができる。
【発明を実施するための最良の形態】
【００２０】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２１】
〔１〕本発明に係るデータ処理装置は、メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファとを有する。前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、及びその物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグを、管理する仮想ページアドレス毎に記憶し、前記アクセス主体から受け取った仮想アドレスが、管理している仮想ページアドレスに含まれるか否かを検索し、検索ヒットした仮想ページアドレスに応ずるストレージフラグの情報と物理ページアドレスを用いてメインメモリ又はストレージのアクセスを可能にする。
【００２２】
上記より、仮想アドレスと物理アドレスの変換対がストレージを意味するストレージフラグを有するとき、アクセス主体は、その仮想アドレスを指定したメモリリードアクセスを指示することにより、ストレージから必要なデータをリードすることができる。したがって、ストレージからメモリにデータやプログラムを予めロードするためのコピー動作を要しない。したがって、メモリとストレージ間で重複するデータの保持を削減でき、これによってメモリとストレージの情報格納効率が向上し、メモリの帯域利用効率が上がり、低消費電力にも寄与する。
【００２３】
〔２〕項１のデータ処理システムにおいて、アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるメモリコントローラを有し、前記メモリコントローラはストレージフラグがメモリを意味するときその物理ページアドレスを用いてメモリのアクセスを行う。アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるストレージコントローラを有し、前記ストレージコントローラはストレージフラグがストレージを意味するときその物理ページアドレスを用いてストレージのアクセスを行う。これにより、アドレス変換索引バッファはストレージフラグに応じてメモリコントローラ又はストレージコントローラの何れに物理アドレスを渡すかを制御することを要しない。
【００２４】
〔３〕項１のデータ処理システムにおいて、前記アドレス変換索引バッファは、物理ページアドレスが複数の仮想ページアドレスで共有されていることを示す共有フラグを各変換対に有する。共有フラグが参照されることによってそれぞれの仮想ページアドレスを用いるプロセスにおける誤動作を未然に防止することが可能になる。
【００２５】
〔４〕項３のデータ処理システムにおいて、前記アクセス主体がストレージをリードする物理アドレスとストレージからリードしたデータを格納するメモリの仮想アドレスを指定してストレージのリードアクセスを行う動作が指示されたとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないとき、当該指示に含まれる仮想ページアドレス、物理アドレス、及びストレージを意味するストレージフラグ、及び共有を意味する共有フラグを新たな変換対として登録する。これによれば、仮想ページアドレスとストレージの物理アドレスとを対応付ける変換対を、ストレージからメモリにデータやプログラムを予めロードするためのコピー動作に代えて生成することができ、アクセス主体の例外処理によって行うことを要しない。また、仮想ページアドレスとストレージの物理アドレスとを対応付ける変換対を登録するとき、共有フラグをセット（共有状態）することより、メモリアクセスに際してアドレス変換索引バッファは仮想アドレスがストレージに対応されていることを共有フラグによって認識することができる。ストレージフラグでこれを認識してもよいが、そうすると、アドレス変換索引バッファはストレージフラグと共有フラグの双方の状態を判別しなければならなくなる。
【００２６】
〔５〕項４のデータ処理システムにおいて、前記アクセス主体がメモリのリードを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知する。当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする。
【００２７】
〔６〕項４のデータ処理システムにおいて、前記アクセス主体がメモリのライトを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知する。当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする。
【００２８】
〔７〕項１のデータ処理システムにおいて、アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファを更に備える。前記アドレス変換索引バッファは、管理する仮想ページアドレス毎に記憶するデータとして、仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを更に有する。前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットする。前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とする。一方、ライトバッファフラグがセットされている変換対があれば、前記アドレス変換索引バッファは、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とする。これにより、前記ストレージフラグがストレージを意味する変換対を用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制して、必要な書き込みだけを可能にする。したがって、仮想アドレスにストレージの物理アドレスが対応されたとき、その仮想アドレスがメモリライトアクセスされる場合に、ストレージの書き換えを行わずに必要なデータの範囲でメモリライトを行うことが可能になる。
【００２９】
〔８〕項７の観点による本発明のデータ処理システムは、メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファと、アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファと、を有する。前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、その物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグ、及び仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを、管理する仮想ページアドレス毎に記憶する。前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットする。前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とする。また、ライトバッファフラグがセットされている変換対があれば、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とする。これによって、前記ストレージフラグがストレージを意味する変換対用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制してメモリアクセス可能にする。
【００３０】
〔９〕項１乃至８のデータ処理装置において、例えば前記アクセス主体は中央処理装置であり、前記メモリ及びストレージは電気的に書換え可能な不揮発性メモリである。ストレージとメモリで同等のアクセス性能を持った不揮発メモリを使用するシステムでは、高い記録効率、帯域利用効率と低消費電力動作を実現することができる。
【００３１】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００３２】
低速なストレージと高速なメインメモリの階層構造を持ったシステムで設計された既存プログラムを、ストレージとメインメモリで同等のアクセス性能を持った不揮発メモリを使用するシステムで記憶効率及び帯域利用効率よく、低消費電力で動作させることを実現した。
【００３３】
《実施形態１》
図１には本発明の一つの実施形態に係るデータ処理装置のブロックダイヤグラムが例示される。図１において１０１は例えば１個の半導体基板に形成されシステムオンチップされたデータ処理用の半導体装置（システムＬＳＩ）である。システムＬＳＩ１０１は仮想記憶によるメモリ管理機能を備える。１０２は前記メモリ管理の対象にされる物理メモリとしてのメインメモリであり、プログラムやデータの格納に利用される。１０３は前記メモリ管理の対象にされるファイルメモリとしてのストレージであり、データ処理に用いるプログラムやデータファイルの格納に利用される。１０４はシステムＬＳＩ１０１がその外部からユーザ操作や入力データを受け取るための入力装置である。１０５はシステムＬＳＩ１０１がその外部にユーザへの通知情報やデータを送出するための出力装置である。システムＬＳＩ１０１は代表的に示された中央処理装置（ＣＰＵ）１０６、アドレス変換索引バッファ１０７、メインメモリインタフェース１０８、及びストレージインタフェース１０９を有する。メインメモリインタフェース１０８はシステムＬＳＩ１０１がメインメモリ１０２のリード／ライトアクセスするためのメインメモリインタフェースを構成する。ストレージインタフェース１０９はシステムＬＳＩ１０１がストレージ１０３にリード／ライトアクセスするためのストレージインタフェースを構成する。ＣＰＵ１０６はプログラムによる命令をフェッチし、フェッチした命令をデコードして実行する。これによってＣＰＵ１０６は、入力装置１０４及び出力装置１０５のインタフェース制御、アドレス変換索引バッファ１０７、メインメモリインタフェース１０８、およびストレージインタフェース１０９の制御を行う。メインメモリ１０２は例えばバイト単位のアドレスによって管理される。ストレージは例えばセクタ単位のロジカルブロックアドレスによって管理される。仮想記憶によるメモリ管理はページ単位で行われ、特に制限されないが、１ページは単数又は複数セクタサイズに対応される。
【００３４】
ＣＰＵ１０６は、メインメモリ１０２に格納されたプログラムを実行する際、実効命令をメインメモリ１０２から読み込む。ＣＰＵ１０６がメモリのリードを行う場合、ＣＰＵ１０６は、読み込もうとしている仮想アドレスをアドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７はＮ（正の整数）個の索引をエントリデータＴＬＢＥＤ＿１〜ＴＬＢＥＤ＿Ｎとして持ち、例えば連想メモリによって構成される。各索引は、１ページ分のメインメモリ仮想アドレスから、メインメモリまたはストレージの物理アドレスへの変換ルールを表す。各索引は、（１）対象仮想ページをあらわすための、メインメモリ仮想ページアドレス（単に仮想ページアドレスとも記す）、（２）対象仮想ページをメインメモリの物理アドレスに変換するか、ストレージの物理アドレスに変換するかを示す、ストレージフラグ、（３）アドレスの変換先である、メインメモリまたはストレージの対象ページの物理ページアドレスを表す、物理ページアドレス、（４） 物理ページアドレスが複数の仮想アドレスで共有されていること等を表す、リード共有フラグ、を持つ。ストレージの物理ページアドレスはそのロジカルブロックアドレス又はその上位側の所定複数ビットとされる。アドレス変換索引バッファ１０７はメインメモリ１０２に対する従来からの仮想記憶の制御機能も供えており、変換対としてのエントリデータの追加や削除はメモリに対する仮想アドレスの割り当て変更に応じてＣＰＵが例外処理で行い、また、所謂アドレス変換ミスによる例外処理によってＣＰＵがアドレス変換対としてのエントリデータをアドレス変換索引バッファ１０７に追加する。追加された直後の変換対におけるストレージフラグはリセット状態にされる。
【００３５】
メインメモリインタフェース１０８は、アドレス変換索引バッファ１０７から、アクセス先を示す、ストレージフラグ情報と物理アドレスを受け取り、アクセス先がメインメモリであることをストレージフラグが示していれば、受け取った物理アドレスでメインメモリ１０２にアクセスする。ストレージインタフェース１０９は、アドレス変換索引バッファ１０７、又はＣＰＵ１０６から、ストレージフラグ情報と物理アドレスを受け取り、アクセス先がストレージであることをストレージフラグが示していれば、受け取った物理アドレスでストレージ１０３にアクセスする。
【００３６】
ＣＰＵ１０６がストレージ１０３のリードを行う場合、ＣＰＵ１０６は、ストレージに対するリードアクセスの指示を示すアクセス制御情報を、リードしたデータの格納先の仮想メモリアドレスとリードしたいデータの保存されているストレージのアドレスを、アドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７は、受け取った仮想メモリのページアドレスをストレージの物理アドレスに変換できるように、アドレス変換の索引を登録する。即ち、その索引の（１）メインメモリ仮想ページアドレスに、前記受け取ったデータ格納先の仮想メモリアドレスを入れ、（２）アドレスの変換先がストレージであることを示すためにストレージフラグをセットし、（３）物理ページアドレスに、前記リードしたいデータの保存されているストレージの物理ページアドレスを入れる。上記指定されたリードしたいデータの保存されているストレージのアドレスのデータを、リードしたデータの格納先として指定された仮想メモリアドレスに実際に転送して格納することを要しない。このストレージの物理ページは、ストレージとしてのページとアドレス変換索引バッファ１０７に登録した仮想ページで共有されるため、（４）リード共有フラグをセットして、仮想ページからのライトがあった場合、ストレージのページと不整合が起こらない様、処理する必要があることを示すようになっている。
【００３７】
この様に、アドレス変換索引バッファ１０７に仮想メモリアドレスとストレージの物理アドレスを登録することによって、その後、仮想メモリアドレスでストレージ１０３にアクセス可能になる。ＣＰＵ１０６がストレージ１０３のリードを行う場合、ストレージ１０３からＣＰＵ１０６、メインメモリ１０２へのデータ転送は発生しないので、ストレージ１０３とメインメモリ１０２で同一のデータを保持せずにすみ、ストレージ１０３、メインメモリ１０２のデータ格納効率を向上させることができる。要するに、同じデータをメインメモリとストレージの双方がまるまる保持することを要しない。特に、ストレージもインメモリも高速不揮発性メモリで構成されるような場合にはメモリ機能が同等のデバイスに同じデータを保持する明らかな無駄を抑制することができる。また、データ転送が発生しないため、ストレージ１０３、メインメモリ１０２の帯域を使用せずにすみ、転送にかかる消費電力を削減できる。
【００３８】
ＣＰＵ１０６がメモリのリードを行う場合、ＣＰＵ１０６は、メモリリードアクセスを指示するアクセス制御情報と、リードしたいメモリの仮想メモリアドレスを、アドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７は、受け取った仮想メモリアドレスのページアドレスで索引を検索し、その結果得られた索引項目のストレージフラグと物理ページアドレスをメインメモリインタフェース１０８とストレージインタフェース１０９に渡し、メインメモリ１０２またはストレージ１０３からのリードを実現する。すなわち、ストレージフラグが設定されていればストレージからリードされ、ストレージフラグがリセット状態であればメインメモリからリードされる。
【００３９】
ＣＰＵ１０６がストレージ１０３へのライトを行う場合、ストレージライトを指示するアクセス制御情報と、ライトしたいストレージの物理アドレス（ストレージのロジカルブロックアドレス）を、アドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７は、ストレージフラグがセットされ、かつ、物理ページが、受け取った物理アドレスである索引項目を検索する。ヒットする索引項目があり、その索引項目のリード共有フラグがセットされている場合は、そのストレージのページはメモリとしても使用されているので、ライトによって不整合が発生しないように、処理するようにＣＰＵ１０６に通知される。この通知を受けたＣＰＵ１０６は、例えばライト結果をメモリのページにも反映させる場合は以下の操作を行う。即ち、最初に、上記検索された索引項目のリード共有フラグをリセットし（ＣＰＵ１０６による例外処理をこれ以降継続可能にするため）、次に、ストレージへのライトアドレスを、アドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７は、ストレージフラグがセットされていて、かつ、物理ページが、受け取った物理アドレスである索引項目を検索する。検索ヒットの索引項目があり、そのリード共有フラグがリセットされている（先にＣＰＵ１０６によりリセットされている）場合は、その索引項目のストレージフラグと物理ページアドレスをメインメモリインタフェース１０８とストレージインタフェース１０９に渡す。この場合、ストレージフラグがセットされているとすれば、ストレージインタフェース１０９が働き、ストレージ１０３へのライトが行われ、その共有フラグがセットされる。この1回のアクセスで、メモリとしても参照される物理ページ（ストレージ）へのライトが完了される。これにより、メインメモリ１０２とストレージ１０３へのアクセス回数を削減し、帯域の有効活用と消費電力の低減を実現することができる。最初のアドレス変換索引バッファの検索で索引項目がない場合は、セット状態のストレージフラグと、問い合わせのあったストレージの物理アドレスをメインメモリインタフェース１０８とストレージインタフェース１０９に渡し、ストレージインタフェース１０９を働かせて、ストレージ１０３へのライトを行えばよい。
【００４０】
ＣＰＵ１０６がメモリへのライトを行う場合、ＣＰＵ１０６はメモリライトを指示するアクセス制御情報と、ライトしたい仮想メモリアドレスを、アドレス変換索引バッファ１０７に渡す。アドレス変換索引バッファ１０７は受け取った仮想アドレスを含む索引項目検索する。その検索結果の索引項目のリード共有フラグが立っている場合は、当該仮想アドレスに対応する物理ページをストレージ又は別の仮想ページが利用しているので、不整合が発生しないよう処理するようにＣＰＵ１０６に通知する。例えばＣＰＵ１０６がライト結果を他のページにも反映させる場合は以下の操作を行う。即ち、先に、上記検索された索引項目のリード共有フラグをリセットし（ＣＰＵ１０６による例外処理をこれ以降継続可能にするため）、次に、ライトアドレスを、アドレス変換バッファ１０７に渡す。アドレス変換バッファ１０７はそのリード共有フラグがリセットされている（先にＣＰＵ１０６によりリセットされている）場合は、検索結果の索引項目のストレージフラグと物理ページアドレスをメインメモリインタフェース１０８とストレージインタフェース１０９に渡し、ストレージフラグがセットされていれば、ストレージにライトを行い、その共有フラグがセットされる。また、ストレージフラグがリセットされていれば、メインメモリにライトを行い、その共有フラグがセットされる。この1回のアクセスで、メモリとして参照されるページへのライトも完了することになる。この様に、メインメモリ１０２とストレージ１０３へのアクセス回数を削減し、帯域の有効活用と消費電力の低減が実現できる。
【００４１】
尚、検索結果の索引項目のリード共有フラグが立っている（セットされている）場合に、ライトによって不整合が生じないようにするための処理は、上述のようにＣＰＵがライト結果を他のページにも反映させる処理に限定されず、索引項目にリード共有フラグが立っている検索結果に対応するライト処理をアクセスエラーとする例外処理にすることも可能である。また、ストレージにメモリの仮想アドレスが割当てられているとき、仮想ページアドレスを割当てたストレージの当該仮想ページアドレスに対するメモリライトにおいて、ストレージに一時利用のページを確保し、確保したストレージの物理ページにメモリライトに係るデータ全てをコピーして、元のストレージの物理ページと前記一時利用の物理ページとの仮想アドレスを別々にし、元の物理ページとメモリの間のリード共有フラグをリセットするようにしてもよい。
【００４２】
《実施形態２》
図２には本発明の別の実施形態に係るデータ処理装置のブロックダイヤグラムが例示される。システムＬＳＩ１０１Ａにおいて２０１は、ＣＰＵ１０６がアクセス中の仮想ページ内のオフセットアドレス毎に、ライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファである。アクティブ共有ページ・ライトバッファ２０１は、例えば、アクティブページ仮想アドレス毎に、当該アクティブページ仮想アドレス内のオフセットアドレス及び当該オフセットアドレスのライトフラグを備えた複数のエントリデータＡＣＴＰＥＤ＿１〜ＡＣＴＰＥＤ＿Ｍを有し、連想メモリによって構成される。Ｍは正の整数である。アクティブページ仮想アドレスとは物理ページアドレスが割当てられている仮想ページアドレスを意味する。アクティブ共有ページ・ライトバッファ２０１にはアクティブページ仮想アドレス毎にエントリデータのテーブルが作成される。このエントリデータのテーブルの作成はＣＰＵ１０６の例外処理で行なわれる。アドレス変換索引バッファ１０７Ａは、仮想ページアドレスによって参照される物理ページが、一時的な部分ライト用のページであるかどうかを示す、ライトバッファフラグを更に備える。即ち、例えばメモリアクセスの対象にされる仮想ページが割当てられたストレージのデータの内、メモリアクセスによってのみ書換えられたデータが保持される実体としての物理メモリが割当てられるテンポラリな仮想ページであることを意味するのがライトバッファフラグである。その他の構成は図１と同様であるから、その詳細な説明は省略する。
【００４３】
ＣＰＵ１０６がストレージのリードを行う場合、又はストレージ１０３へのライトを行う場合は、ＣＰＵ１０６とアドレス変換索引バッファ１０７Ａとの間に位置するアクティブ共有ページ・ライトバッファ２０１はＣＰＵ１０６から受け取った情報をそのまま、アドレス変換索引バッファ１０７に渡し、１０６、１０７Ａ、１０８、１０９、１０２、１０３は図１の実施形態１と同様の動作をすることによって、上記同様に、重複するデータの保持、データコピーを削減し、データの格納効率、帯域の利用効率を上げ、消費電力を低減する。
【００４４】
ＣＰＵ１０６がメモリ１０２のリードを行う場合、ＣＰＵ１０６は、メモリリードアクセスを指示するアクセス制御情報と、リードアドレスを、アクティブ共有ページ・ライトバッファ２０１に渡す。アクティブ共有ページ・ライトバッファ２０１はそのアドレスが自バッファに登録されている、アクティブページ仮想アドレスかどうかを確認する。登録されていない仮想アドレスの場合は、リセット状態のライトフラグの情報と仮想メモリアドレスを、アドレス変換索引バッファ１０７Ａに渡す。これに応答してアドレス変換索引バッファ１０７ＡはＣＰＵ１０６に例外処理を要求し、ＣＰＵ１０６はそのメモリリードアクセスを可能にするためにアクティブ共有ページ・ライトバッファ２０１とアドレス索引バッファ１０７Ａに必要なエントリの追加を行う。一方、その仮想アドレスがアクティブ共有ページ・ライトバッファ２０１に登録されている仮想アドレスの場合、アクティブ共有ページ・ライトバッファ２０１は受け取ったアドレスの仮想ページ内オフセットアドレスのライトフラグと仮想メモリアドレスを、アドレス変換索引バッファ１０７Ａに渡す。アドレス変換索引バッファ１０７Ａは、受け取ったセット状態のライトフラグに応答して、ライトバッファフラグがセット状態であり、且つ、仮想ページアドレスが相互に一致する索引項目を検索し、その項目のストレージフラグと物理ページアドレスをメインメモリインタフェース１０８とストレージインタフェース１０９に渡すことにより、書換えられたデータが、前記テンポラリな仮想ページのメインメモリ１０２からリードされる。
【００４５】
ＣＰＵ１０６がメモリへのライトを行う場合、ＣＰＵ１０６は、メモリライトアクセスを指示するアクセス制御情報と、ライトアドレスを、アクティブ共有ページ・ライトバッファ２０１に渡す。アクティブ共有ページ・ライトバッファ２０１はそのアドレスが、登録されているアクティブページ仮想アドレスかどうかを確認する。登録されている仮想ページアドレスであれば、受け取った仮想アドレスのオフセットアドレスに対応するライトフラグをセット状態にし、セットされたライトフラグの情報と、仮想メモリアドレスを、アドレス変換バッファ１０７Ａに渡す。アドレス変換バッファ１０７Ａは、ライトバッファフラグがセット状態にされ、且つ、仮想アドレスが一致する索引項目を検索し、そのストレージフラグと物理ページアドレスをメインメモリＩＦ１０８とストレージＩＦ１０９に渡すことにより、前記テンポラリな仮想ページのメインメモリ１０２にライトが行われる。登録されていない仮想アドレスの場合は、リードの場合と同様にＣＰＵ１０６が例外処理を実行してそのメモリライトアクセスを可能にするためにアクティブ共有ページ・ライトバッファ２０１とアドレス索引バッファ１０７Ａに必要なエントリの追加を行う。
【００４６】
上述のように、複数のページで共有されている物理ページの不整合が発生しないようにするのに、確保した一時利用のページの検索項目にはライトバッファフラグを立て、アクティブ共有ページ・ライトバッファ２０１を利用することによって、ライトの発生したアドレスへのライトのみを行うだけで済ませることができる。この様に、共有されているページへのライトの不整合を避けるための、一時利用バッファページと共有されているページへのアクセス回数を減らすことにより、帯域の有効利用と消費電力の削減を実現することができる。
【００４７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４８】
例えば、検索結果の索引項目のリード共有フラグが立っている場合にライトによって不整合が生じないようにするためのＣＰＵによる例外処理は上記した処理に限定されず、適宜変更可能である。アクセス主体はＣＰＵに限定されず、その他のロジック回路であってもよい。データ処理装置は図１及び図２に示される回路以外の種々の周辺回路を必要に応じて備えてよい。また、ストレージはフラッシュメモリやフラッシュメモリカードに限定されず、ＭＲＡＭ等のその他の書換え可能な不揮発性メモリ、更にはハードディスクドライブであってもよい。また、アドレス変換索引バッファはストレージフラグに応じてメモリコントローラ又はストレージコントローラの何れに物理アドレスを渡すかを制御してもよい。本発明は、仮想記憶におけるメモリ管理に限定されず、表示装置のフレームバッファ、描画装置の画像管理メモリの様な、定期的なデータのコピーの発生するメモリの高速かつ低消費電力な管理用途にも適用することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明に係るデータ処理装置における仮想記憶のメモリ管理機能を説明するためのブロックダイヤグラムである。
【図２】本発明に係るデータ処理装置における仮想記憶の別のメモリ管理機能を説明するためのブロックダイヤグラムである。
【符号の説明】
【００５０】
１０１  システムＬＳＩ
１０２  メインメモリ
１０３  ストレージ
１０４  入力装置
１０５  出力装置
１０６  ＣＰＵ
１０７，１０７Ａ  アドレス変換索引バッファ
１０８  メインメモリインタフェース
１０９  ストレージインタフェース
２０１  アクティブ共有ページ・ライトバッファ
【図１】
2010026969.tif 000003
【図２】
2010026969.tif 000004