JP2010026969A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2010026969A
JP2010026969A JP2008190605A JP2008190605A JP2010026969A JP 2010026969 A JP2010026969 A JP 2010026969A JP 2008190605 A JP2008190605 A JP 2008190605A JP 2008190605 A JP2008190605 A JP 2008190605A JP 2010026969 A JP2010026969 A JP 2010026969A
Authority
JP
Japan
Prior art keywords
address
storage
memory
virtual
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008190605A
Other languages
English (en)
Inventor
Yasushi Nagai
靖 永井
Keitaro Okazaki
啓太郎 岡崎
Takeshi Asahi
猛 朝日
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008190605A priority Critical patent/JP2010026969A/ja
Publication of JP2010026969A publication Critical patent/JP2010026969A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】メモリとストレージで重複してデータを保持することによる無駄を省くことができる仮想記管理を実現する。
【解決手段】仮想アドレスと物理アドレスの管理において、メモリ(102)だけではなく、ストレージ(103)のアドレスも変換索引バッファ(107)により変換可能にする。これにより、ストレージからメモリへのデータロードの指示に際して、このアドレス変換索引バッファには、当該仮想ページとストレージのアドレスを登録する事により、メモリとストレージ間のリード・ライトを発生させずに処理を完了することができる。ストレージからメモリにロードするデータやプログラムのコピー動作と、ストレージ上に配置される仮想メモリのページファイルを削除できる。したがって、メモリとストレージの情報格納効率が向上し、メモリの帯域利用効率が上がり、低消費電力にも寄与する。
【選択図】図1

Description

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

Claims (9)

  1. メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファとを有し、
    前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、及びその物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグを、管理する仮想ページアドレス毎に記憶し、前記アクセス主体から受け取った仮想アドレスが、管理している仮想ページアドレスに含まれるか否かを検索し、検索ヒットした仮想ページアドレスに応ずるストレージフラグの情報と物理ページアドレスを用いてメインメモリ又はストレージのアクセスを可能にする、データ処理装置。
  2. アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるメモリコントローラを有し、前記メモリコントローラはストレージフラグがメモリを意味するときその物理ページアドレスを用いてメモリのアクセスを行い、
    アドレス変換索引バッファからストレージフラグと物理ページアドレスが与えられるストレージコントローラを有し、前記ストレージコントローラはストレージフラグがストレージを意味するときその物理ページアドレスを用いてストレージのアクセスを行う、請求項1記載のデータ処理装置。
  3. 前記アドレス変換索引バッファは、物理ページアドレスが複数の仮想ページアドレスで共有されていることを示す共有フラグを各変換対に有する、請求項1記載のデータ処理装置。
  4. 前記アクセス主体がストレージをリードする物理アドレスとストレージからリードしたデータを格納するメモリの仮想アドレスを指定してストレージのリードアクセスを行う動作が指示されたとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないとき、当該指示に含まれる仮想ページアドレス、物理アドレス、及びストレージを意味するストレージフラグ、及び共有を意味する共有フラグを新たな変換対として登録する、請求項3記載のデータ処理装置。
  5. 前記アクセス主体がメモリのリードを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知し、当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする、請求項4記載のデータ処理装置。
  6. 前記アクセス主体がメモリのライトを指示したとき、前記アドレス変換索引バッファは、当該指示に含まれる仮想ページアドレスの変換対を保有していないときは前記アクセス主体に例外処理を通知し、当該指示に含まれる仮想ページアドレスの変換対を保有しているときストレージフラグがストレージを意味し、共有フラグが共有を意味するときは、前記アクセス主体にその旨を通知して、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制可能にする、請求項4記載のデータ処理装置。
  7. アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファを更に備え、
    前記アドレス変換索引バッファは、管理する仮想ページアドレス毎に記憶するデータとして、仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを更に有し、
    前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットし、
    前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、
    ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
    ライトバッファフラグがセットされている変換対があれば、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
    前記ストレージフラグがストレージを意味する変換対用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制してメモリアクセス可能にする、請求項1記載のデータ処理装置。
  8. メモリアクセスを行うために仮想アドレスを出力し、ストレージをアクセスするために論理ブロックアドレスを出力するアクセス主体と、
    前記アクセス主体が出力する仮想メモリアドレスをメモリの物理アドレス又はストレージの論理ブロックアドレスとしての物理アドレスに変換するアドレス変換索引バッファと、
    アクセス主体がアクセス中の仮想ページ内のオフセットアドレス毎にライトされたかどうかを表すライトフラグを管理するアクティブ共有ページ・ライトバッファと、を有し、
    前記アドレス変換索引バッファは、変換対象の仮想ページアドレス、当該仮想ページアドレスと変換対を成す物理ページアドレス、その物理ページアドレスがメモリの物理アドレスかストレージの物理アドレスかを表すストレージフラグ、及び仮想ページアドレスによって参照される物理ページが一時的な部分ライト用のページであるかどうかを示すライトバッファフラグを、管理する仮想ページアドレス毎に記憶し、
    前記アクティブ共有ページ・ライトバッファは、前記アクセス主体が仮想ページアドレスに対するライトを行う場合、アクティブ共有ページ・ライトバッファの該当オフセットアドレス部分のライトフラグをセットし、
    前記アドレス変換索引バッファは、アクセス主体から受取った仮想アドレスを含み且つ前記ライトバッファフラグがセットされている変換対を検索し、
    ライトバッファフラグがセットされている変換対がなければ、ライトバッファフラグをセットし、未使用の物理ページアドレスを指す、当該仮想アドレスページの新たな変換対を追加し、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
    ライトバッファフラグがセットされている変換対があれば、そのページのストレージフラグと物理アドレスを用いてメモリ又はストレージのアクセスを可能とし、
    前記ストレージフラグがストレージを意味する変換対用いるメモリアクセスにおいて、前記新たな変換対を追加することによって、仮想アドレスで指定されるメモリアドレスと当該仮想アドレスに対応されるストレージとの間のデータの不整合を抑制してメモリアクセス可能にする、データ処理装置。
  9. 前記アクセス主体は中央処理装置であり、前記メモリ及びストレージは電気的に書換え可能な不揮発性メモリである、請求項1乃至8の何れか1項記載のデータ処理装置。
JP2008190605A 2008-07-24 2008-07-24 データ処理装置 Pending JP2010026969A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008190605A JP2010026969A (ja) 2008-07-24 2008-07-24 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008190605A JP2010026969A (ja) 2008-07-24 2008-07-24 データ処理装置

Publications (1)

Publication Number Publication Date
JP2010026969A true JP2010026969A (ja) 2010-02-04

Family

ID=41732712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008190605A Pending JP2010026969A (ja) 2008-07-24 2008-07-24 データ処理装置

Country Status (1)

Country Link
JP (1) JP2010026969A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232216A (ja) * 2011-03-24 2013-11-14 Toshiba Corp 情報処理装置およびプログラム
US9348764B2 (en) 2013-01-07 2016-05-24 Samsung Electronics Co., Ltd. System on chip including memory management unit and memory address translation method thereof
JP2019144921A (ja) * 2018-02-22 2019-08-29 富士通株式会社 情報処理装置及び情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03256147A (ja) * 1990-03-07 1991-11-14 Hitachi Ltd 拡張記憶装置アクセス方法およびそれを利用した拡張記憶用アドレス変換装置
JPH07287668A (ja) * 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
JP2005310072A (ja) * 2004-04-26 2005-11-04 Matsushita Electric Ind Co Ltd アドレス変換装置、及びメモリアクセス方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03256147A (ja) * 1990-03-07 1991-11-14 Hitachi Ltd 拡張記憶装置アクセス方法およびそれを利用した拡張記憶用アドレス変換装置
JPH07287668A (ja) * 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
JP2005310072A (ja) * 2004-04-26 2005-11-04 Matsushita Electric Ind Co Ltd アドレス変換装置、及びメモリアクセス方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232216A (ja) * 2011-03-24 2013-11-14 Toshiba Corp 情報処理装置およびプログラム
US9348764B2 (en) 2013-01-07 2016-05-24 Samsung Electronics Co., Ltd. System on chip including memory management unit and memory address translation method thereof
JP2019144921A (ja) * 2018-02-22 2019-08-29 富士通株式会社 情報処理装置及び情報処理方法
JP7069811B2 (ja) 2018-02-22 2022-05-18 富士通株式会社 情報処理装置及び情報処理方法

Similar Documents

Publication Publication Date Title
US11868618B2 (en) Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
US20210056035A1 (en) Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
JP5762930B2 (ja) 情報処理装置および半導体記憶装置
KR101713051B1 (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
US20080235477A1 (en) Coherent data mover
TW201502781A (zh) 解決記憶體存取錯誤時重播記憶體交易
TW201237624A (en) Two-level system main memory
JP2008176785A (ja) ハイブリッドハードディスクドライブ、ハイブリッドハードディスクドライブを内蔵するコンピュータシステム、そしてハイブリッドハードディスクドライブのフラッシュメモリdma回路
US8583890B2 (en) Disposition instructions for extended access commands
US8543791B2 (en) Apparatus and method of reducing page fault rate in virtual memory system
JP2016167215A (ja) メモリ装置
US9329994B2 (en) Memory system
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
JP2010026969A (ja) データ処理装置
US10929301B1 (en) Hierarchical memory systems
US10083135B2 (en) Cooperative overlay
CN114341816A (zh) 三层层次型存储器系统
JP2021149374A (ja) データ処理装置
JP2007041813A (ja) 情報処理システムおよび情報処理方法
KR101203157B1 (ko) 데이터 전달 시스템, 장치 및 방법
US20210318904A1 (en) Hierarchical memory systems
JP5627754B2 (ja) 仮想記憶管理装置及び記憶管理装置
JP2013109404A (ja) 情報処理装置
JP2009026310A (ja) データ記憶方法
JP2004355187A (ja) 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130328