JP2019133703A - 記憶システム - Google Patents

記憶システム Download PDF

Info

Publication number
JP2019133703A
JP2019133703A JP2019071347A JP2019071347A JP2019133703A JP 2019133703 A JP2019133703 A JP 2019133703A JP 2019071347 A JP2019071347 A JP 2019071347A JP 2019071347 A JP2019071347 A JP 2019071347A JP 2019133703 A JP2019133703 A JP 2019133703A
Authority
JP
Japan
Prior art keywords
storage unit
data
secondary storage
flag
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.)
Granted
Application number
JP2019071347A
Other languages
English (en)
Other versions
JP6746747B2 (ja
Inventor
菅野 伸一
Shinichi Sugano
伸一 菅野
吉田 英樹
Hideki Yoshida
英樹 吉田
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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of JP2019133703A publication Critical patent/JP2019133703A/ja
Application granted granted Critical
Publication of JP6746747B2 publication Critical patent/JP6746747B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Abstract

【課題】 メモリの書き込み回数の増加を抑制することができ、寿命を延ばすことが可能な記憶システムを提供する。【解決手段】 二次記憶部14は、一次記憶部13よりデータ転送レートが低く、保持されたデータが読み出されると保持されたデータが破壊されるメモリにより構成される。制御部11は、第1オペレーションにおいて、二次記憶部14から一次記憶部13に第1のデータを転送し、一次記憶部から二次記憶部に書き戻す第1のデータに第1状態をセットし、第2オペレーションにおいて、第1状態がセットされた第1のデータを一次記憶部から二次記憶部に書き込む。【選択図】 図1

Description

本発明の実施形態は、例えば仮想記憶又はキャッシュを備えた記憶システムに関する。
データの読み出しに基づいて、記憶されていたデータが破壊される破壊読み出しメモリ(destructive readout memory)がある。データが破壊読出しメモリから読み出された後、当該データを破壊読出しメモリに継続して保持する必要がある場合、当該データは破壊読出しメモリに書き戻される。破壊読出しメモリにおいて、書き込み回数に制約がある場合、破壊読出しメモリから読み出したデータを破壊読出しメモリに書き戻すと書き換え回数が増加し、破壊読出しメモリの寿命を短縮する。
国際公開第2010/055937号 国際公開第2011/033600号 米国特許第8560761号明細書
本実施形態は、メモリの書き込み回数の増加を抑制することができ、寿命を延ばすことが可能な記憶システムを提供する。
本実施形態の記憶システムは、一次記憶部と、前記一次記憶部よりデータ転送レートが低く、保持されたデータが読み出されると保持された前記データが破壊されるメモリにより構成された二次記憶部と、第1オペレーションでデータを前記二次記憶部から前記一次記憶部へ転送し、第2オペレーションでデータを前記一次記憶部から前記二次記憶部に転送する制御部と、を具備し、前記制御部は、前記第1オペレーションにおいて、前記二次記憶部から前記一次記憶部に第1のデータを転送し、前記一次記憶部から前記二次記憶部に書き戻す前記第1のデータに第1状態をセットし、前記第2オペレーションにおいて、前記第1状態がセットされた前記第1のデータを前記一次記憶部から前記二次記憶部に書き込む。
第1の実施形態に係る計算機システムの一例を概略的に示す構成図。 第1の実施形態に係る仮想記憶管理装置の構成を概略的に示す構成図。 第1の実施形態に適用されるフラグの一例を示す構成図。 第1の実施形態に適用されるフラグの一例を示す構成図。 第1の実施形態に適用されるフラグの一例を示す構成図。 第1の実施形態に適用されるフラグの一例を示す構成図。 第1の実施形態の動作を説明するために示すフローチャート。 第1の実施形態の動作を説明するために示すフローチャート。 第2の実施形態に係る計算機システムの一例を概略的に示す構成図。 第2の実施形態に係る計算機システムのファームウェアの構成を概略的に示す構成図。 第2の実施形態に適用されるフラグの一例を示す構成図。 第2の実施形態に適用されるフラグの一例を示す構成図。 第2の実施形態に適用されるフラグの一例を示す構成図。 第2の実施形態に適用されるフラグの一例を示す構成図。 第2の実施形態の動作を説明するために示すフローチャート。 第2の実施形態の動作を説明するために示すフローチャート。 第1、第2の実施形態が適用されるサーバの一例を示す斜視図。
以下、図面を参照して実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に係り、例えば仮想記憶部を有する計算機システム(記憶システムとも言う)を概略的に示している。
計算機システム10は、プロセッサ(本実施形態ではCPU(Central Processing Unit)11とする)、MMU(Memory Management Unit)12、一次記憶部13(メインメモリ)、及び二次記憶部14(例えば、大容量ディスクストレージ)などによって構成されている。これらCPU11、MMU12、一次記憶部13、及び二次記憶部14は、バス15により接続されている。
ここで、仮想記憶とは、二次記憶部14と一次記憶部13との間で必要に応じてデータを移動することにより、大容量なメモリが存在するかのようにアプリケーションプログラムに見せかける技術である。一次記憶部13は、高いデータ転送レート又は高いアクセス速度を有し、比較的小容量の揮発性メモリと不揮発性メモリとのうちの少なくとも一方により構成される。また、二次記憶部(仮想メモリ空間)14は、一次記憶部13よりもデータ転送レートが低く、大容量の不揮発性メモリにより構成される。
仮想メモリ空間と実メモリ空間の置き換え制御、及び仮想アドレスから実アドレスへの変換制御に関する技術の1つとして、ページを単位としたページング技術がある。ページングによるアドレス変換により、仮想メモリ上の仮想ページと物理メモリ上の物理ページとが対応付けられる。
計算機システム10は、ページングによる仮想記憶に対応したオペレーティングシステムが動作する計算機である。ページングは、オペレーティングシステム及びMMU12により実行される。ページは、1つの領域を表わし、ページを単位として仮想メモリ空間と実メモリ空間との間でデータが転送される。各ページは、コード及びデータから構成され、仮想ページと物理ページがある。計算機システム10は、例えばエンドユーザが事務処理等を実行するコンピュータである。しかし、これに限定されるものではなく、計算機システム10は、ネットワークを介してクライアントからの要求を処理するサーバ、或いは機器の制御を実行する組み込みコンピュータであってもよい。
CPU11は、計算機システム10の全体を制御する。CPU11は、例えばオペレーティングシステムをメインメモリとしての一次記憶部13から読み込み、オペレーティングシステムに基づいてアプリケーションプログラムを実行する。
MMU12は、例えば仮想ページと物理ページと対応関係を示すページテーブルを有し、CPU11の指示に基づき、仮想ページと物理ページを変換し、一次記憶部13をアクセスする。
仮想ページと物理ページの関連付けは、ページテーブルを用いているが、テーブルに限定されるものではなく、例えばB-Tree Structure などを用いて仮想ページと物理ページとを関連付けることも可能である。
一次記憶部13は、データ転送レートが高く、且つランダムに書き込みが可能な揮発性メモリによって構成されている。揮発性メモリは、例えばSRAM(Static Random Access Memory)により構成されている。しかし、これに限らず、DRAM(Dynamic Random Access Memory)などを用いてもよい。
二次記憶部14は、一次記憶部13よりもデータ転送レートが低くが、一次記憶部13に比べて大容量である。二次記憶部14は、例えばMRAM(Magnetic Random Access Memory)やReRAM(Resistive Random Access Memory)などの破壊読出しメモリにより構成される。CPU11は、一次記憶部13と二次記憶部14とをそれぞれアクセスすることにより、一次記憶部13と二次記憶部14との間でデータを転送する。
ここで、「破壊読出し」とは、メモリからデータを読出した場合、メモリに記憶されていたデータが元のデータと異なるデータに変化する読出し動作である。また、「破壊」とは、データが読み出された瞬間に、メモリに記憶されていたデータが完全に消去、又は異なるデータに変化される場合に限定されるものではなく、次の読み出し動作までに徐々に元のデータと異なるデータに変化するような場合も含まれる。
図2は、第1の実施形態に係る仮想記憶管理装置20の一例を示している。仮想記憶管理装置20は、計算機システム10の内部に設けられ、仮想記憶を管理する。仮想記憶管理装置20は、アプリケーションプログラム21、オペレーティングシステム22、仮想記憶管理部23、一次記憶部(揮発性メモリ)13、二次記憶部(破壊読出しメモリ)14、及びMMU22を含んでいる。
アプリケーションプログラム21は、オペレーティングシステム22に基づき、CPU11によって実行される。したがって、アプリケーションプログラム21のプログラムコード及びデータは、仮想メモリ上に設けられる。CPU11は、仮想アドレスを指定してアプリケーションプログラム21を読み出して実行する。
例えばオペレーティングシステム22は、仮想記憶管理部23を含んでいる。オペレーティングシステム22のプログラムコード及びデータは、例えば二次記憶部14に保持されており、起動時に二次記憶部14から一次記憶部13に転送される。しかし、これに限定されるものではなく、一次記憶部13内に不揮発性メモリを設け、この不揮発性メモリにオペレーティングシステム22のプログラムコード及びデータを格納してもよい。二次記憶部14が破壊読出しメモリである場合、二次記憶部14から読み出されたオペレーティングシステムを二次記憶部14に書込む必要があるが、一次記憶部13内の不揮発性メモリにオペレーティングシステムを格納する場合、オペレーティングシステムを再書込みする必要がない。
仮想記憶管理部23は、仮想記憶空間及び仮想アドレスを管理し、一次記憶部13と二次記憶部14との間のページの移動を管理する。
さらに、仮想記憶管理部23は、フラグ管理部24を有している。フラグ管理部24は、ページ毎に設けられたフラグを管理する。
図3Aは、フラグ管理部24により管理されたフラグ32の状態を示している。フラグ管理部24は、ページ31毎に設けられた例えば1ビットの記憶領域に記憶される1ビットのデータとしてのフラグ32を管理する。フラグ32は、例えば二次記憶部14から一次記憶部13にページを移動するページインにおいて、セットするか否かが、フラグ管理部24によって判断される。図3Bは、フラグ32がセットされた状態、すなわち、記憶領域に第1の状態としての(データ“1”)が書き込まれた場合を示し、図3Cは、フラグがセットされていない状態、すなわち、記憶領域が第2の状態としての(データ“0”)を保持した場合を示している。
ここで、フラグ32は、ページ内に含まれるデータを二次記憶部14に書き込むか否かを指示する指示部として機能する。このため、フラグ32は、少なくともページ内のデータを二次記憶部14に書き込むか否かを判断できるデータであればよい。したがって、1ビットのデータに限定されるものではない。
また、フラグのセットとは、データ“1”を記憶領域に保持することを示しているが、これに限らず、少なくともページ内のデータを二次記憶部14に書き込むか否かを判断できるデータが記憶領域に保持されればよい。
また、ページインにおいて、フラグ32がセットされていない場合において、ページインの後、そのページのデータが変更された場合、フラグがセットされる。図3Dは、ページのデータが変更されたことにより、フラグがセットされたことを示している。
上記ページに対応して設けられたフラグの内容は、一次記憶部13から二次記憶部14にページを移動するページアウトにおいて判断される。すなわち、フラグがセットされたページのデータは、二次記憶部14に書き込む必要があり、フラグがセットされていないページのデータは、二次記憶部14に書き込む必要がない。
フラグ管理部24は、例えば二次記憶部14から一次記憶部13にページインされている状態にあり、アプリケーションプログラム21又はオペレーティングシステム22からデリート(削除)するように命令されたデータについては、一次記憶部13から二次記憶部14へ書き戻しを行わないように、当該データのフラグにゼロをセットする。
図4A、図4Bは、仮想記憶管理部23及びフラグ管理部24の上記動作を概略的に示している。
図4Aは、ページインにおける動作を示している。例えばアプリケーションプログラム21の実行に際して必要なページのデータが二次記憶部14から一次記憶部13に移動される。或いは、アプリケーションプログラムの実行途中において、一次記憶部13に記憶されているページ以外のページがアクセスされた場合、ページフォルトが発生し、二次記憶部14から一次記憶部13に対応するページが移動される。このように、二次記憶部14から一次記憶部13に対応するページが移動されるページインにおいて、フラグ管理部24は、ページのデータを二次記憶部14に書き込む必要が有るかどうかを判断する(S11)。書き込む必要が有るかどうかは、例えばアプリケーションプログラム21により指示される。しかし、これに限らず、書き込む必要が有るかどうかは、オペレーティングシステム22により指示されるとしてもよい。
書込みが必要であると判断された場合、そのページに対応するフラグがセットされる(S12)。また、書込みの必要が無いと判断された場合、そのページに対応するフラグはセットされない。
この後、一次記憶部13内のページのデータが書き換えられたかどうかが判断される(S13)。この結果、ページのデータが書き換えられた場合、そのページに対応するフラグがセットされる(S12)。このように、二次記憶部14から一次記憶部13にページを転送した後、ページのデータが書き換えられた場合、一次記憶部13に保持されたページのデータと二次記憶部14に保持されたページのデータが不一致となっている。このため、フラグ32に所謂ダーティフラグがセットされる。
一方、一次記憶部13の記憶領域が不足した場合、記憶領域を確保するため、不要となったページが二次記憶部14に転送される。二次記憶部14に転送されるページの選択は、例えばLRU(Least Recently Used)、LFU(Least Frequently Used)などのアルゴリズムを適用することができる。また、二次記憶部14に転送されるページは、例えばシーケンシャルに選択されてもよく、この場合、FIFO(First-In First-Out)によって選択されてもよい。
図4Bに示すように、一次記憶部13から二次記憶部14にページを転送するページアウトにおいて、転送対象のページに対応するフラグの内容が判断される(S21)。この結果、フラグがセットされていると判断されたページは、二次記憶部14に書き込まれる(S22)。一方、フラグがセットされていないと判断されたページは、二次記憶部14に書き込まれずに破棄される(S23)。
(第1の実施形態の効果)
上記第1の実施形態によれば、各ページに対応してフラグを設け、ページインにおいて、二次記憶部14に書き込む必要があるページは、対応するフラグがセットされ、書き込む必要がないページは、対応するフラグがセットされない。さらに、ページインの後、ページのデータが書き換えられた場合、そのページに対応するフラグがセットされる。この後、ページアウトの際にフラグの状態が判断され、フラグがセットされているページのみ、二次記憶部14にページのデータを書き込んでいる。このため、二次記憶部14が、例えばMRAMやReRAMなどの破壊読出しメモリにより構成されている場合において、書き込む必要があるページのみを書き込んでいる。したがって、二次記憶部14に対する書き込み回数を削減することが可能であり、二次記憶部14の書き込み回数に制約がある場合においても、書き込み回数の増加を抑制することができ、破壊読出しメモリの寿命を延ばすことが可能である。
(第2の実施形態)
第1の実施形態は、仮想記憶装置を有する計算機システムにおいて、二次記憶部14から一次記憶部13にデータを転送するページインの際、フラグを必要に応じてセットし、ページアウトの際、フラグがセットされているページのみを二次記憶部14に書き込んだ。第1の実施形態の技術思想を、キャッシュメモリを有する計算機システムに適用することが可能である。
図5は、第2の実施形態に係るキャッシュメモリを有する計算機システム(記憶システムとも言う)を概略的に示している。図5において、図1と同一部分には同一符号を付している。
図5において、計算機システム30は、CPU11、MMU12、一次記憶部としてのキャッシュメモリ33、及び外部記憶部としての二次記憶部14などによって構成されている。これらCPU11、MMU12、キャッシュメモリ33、及び二次記憶部14は、バス15により接続されている。
CPU11は、計算機システム30の全体を制御する。CPU11は、例えばオペレーティングシステムをキャッシュメモリ33から読み込み、オペレーティングシステムに基づいてアプリケーションプログラムを実行する。
MMU12は、例えば仮想ページと物理ページと対応関係を示すページテーブルを有し、CPU11の指示に基づき、仮想ページと物理ページを変換し、実際のメインメモリをアクセスする。さらに、MMU12は、キャッシュの動作を制御する。しかし、MMU12により、キャッシュの動作を制御しないことも可能である。
キャッシュメモリ33は、データ転送レートが高く、且つランダムに書き込みが可能な揮発性メモリによって構成されている。揮発性メモリは、例えばSRAMにより構成されている。しかし、これに限らず、DRAMなどを用いてもよい。
二次記憶部14は、キャッシュメモリ33よりもデータ転送レートが低くが、キャッシュメモリ33に比べて大容量である。二次記憶部14は、例えばMRAMやReRAMなどの破壊読出しメモリにより構成される。CPU11は、キャッシュメモリ33と二次記憶部14とをそれぞれアクセスすることにより、キャッシュメモリ33と二次記憶部14との間でデータを転送する。
図6は、第2の実施形態に係るキャッシュ管理装置40の一例を示している。キャッシュ管理装置40は、計算機システム30の内部に設けられ、キャッシュ動作を管理する。キャッシュ管理装置40は、アプリケーションプログラム21、オペレーティングシステム22、キャッシュ管理部43、キャッシュメモリ33、二次記憶部(破壊読出しメモリ)14、及びMMU12を含んでいる。
アプリケーションプログラム21は、オペレーティングシステム22に基づき、CPU11によって実行される。オペレーティングシステム22は、キャッシュ管理部43を含んでいる。
キャッシュ管理部43は、二次記憶部14を例えば数バイト乃至数十バイトの所謂ラインと称する単位で管理する。キャッシュ管理部43は、例えばデータの書き込み要求に基づき、データをライン単位でキャッシュメモリ33に書き込む。キャッシュメモリ33内に空き領域が無い場合、不要なラインを選択して、キャッシュメモリ33から追い出す。ラインの選択は、例えばLRU、LFU、FIFOなどのアルゴリズムが用いられてもよく、ランダムに選択されてもよい。
また、データの読み出し要求が発行されたとき、要求されたデータがキャッシュメモリ33内に無いキャッシュミスが発生した場合、キャッシュ管理部43は、二次記憶部14から対応するデータをライン単位で読み出し、キャッシュメモリ33に転送する。
さらに、キャッシュ管理部43は、例えばライトバック方式を用いてデータをメモリに書き込む。すなわち、データ書き込み時、キャッシュメモリ33のみにデータが書き込まれ、後にキャッシュメモリ33のデータが二次記憶部14に書き込まれる。これにより、書き込み回数に制約がある破壊読出しメモリの書き込み回数を低減することが可能である。しかし、これに限定されるものではなく、データの書き込みに基づいて、キャッシュメモリ33と二次記憶部14に同一のデータが書き込まれるライトスルー方式を用いることも可能である。
さらに、キャッシュ管理部43は、フラグ管理部44を有している。フラグ管理部44は、ライン毎に設けられたフラグを管理する。
図7Aは、フラグ管理部44により管理されたフラグの状態を示している。フラグ管理部44は、ライン51毎にフラグ52を管理する。フラグ52は、例えば二次記憶部14からキャッシュメモリ33にラインを移動するラインインにおいて、セットするか否かが、フラグ管理部44によって判断される。図7Bは、フラグ52がセットされた状態(データ“1”)を示し、図7Cは、フラグがセットされていない状態(データ“0”)を示している。
また、ラインインにおいて、フラグ52がセットされていない場合において、ラインインの後、そのラインのデータが変更された場合、フラグがセットされる。図7Dは、ラインのデータが変更されたことにより、フラグがセットされたことを示している。
上記ラインに対応して設けられたフラグの内容は、キャッシュメモリ33から二次記憶部14にラインを移動するラインアウトにおいて判断される。すなわち、フラグがセットされたラインのデータは、二次記憶部14に書き込む必要があり、フラグがセットされていないラインのデータは、二次記憶部14に書き込む必要がない。
図8A、図8Bは、キャッシュ管理部43及びフラグ管理部44の上記動作を概略的に示している。
図8Aは、ラインインにおける動作を示している。例えばアプリケーションプログラム21の実行に際して必要なラインのデータが二次記憶部14からキャッシュメモリ33に移動される。或いは、アプリケーションプログラムの実行途中において、キャッシュメモリ33に記憶されているライン以外のラインがアクセスされた場合、キャッシュミスが発生し、二次記憶部14からキャッシュメモリ33に対応するラインが移動される。このように、二次記憶部14からキャッシュメモリ33に対応するラインが移動されるラインインにおいて、フラグ管理部44は、ラインのデータを二次記憶部14に書き込む必要が有るかどうかを判断する(S31)。書き込む必要が有るかどうかは、例えばアプリケーションプログラム21により指示される。しかし、これに限らず、書き込む必要が有るかどうかは、オペレーティングシステム22により指示されるとしてもよい。
書き込む必要があると判断された場合、そのラインに対応するフラグがセットされる(S32)。また、書き込む必要が無いと判断された場合、そのラインに対応するフラグはセットされない。
この後、キャッシュメモリ33内のラインのデータが書き換えられたかどうかが判断される(S33)。この結果、ラインのデータが書き換えられた場合、そのラインに対応するフラグがセットされる(S32)。このように、二次記憶部14からキャッシュメモリ33にラインを転送した後、ラインのデータが書き換えられた場合、キャッシュメモリ33に保持されたラインのデータと二次記憶部14に保持されたラインのデータが不一致となっている。このため、フラグ52に所謂ダーティフラグがセットされる。
一方、キャッシュメモリ33の記憶領域が不足した場合、記憶領域を確保するため、不要となったラインが二次記憶部14に転送される。
図8Bに示すように、キャッシュメモリ33から二次記憶部14にラインを転送するラインアウトにおいて、転送対象のラインに対応するフラグの内容が判断される(S41)。この結果、フラグがセットされていると判断されたラインは、二次記憶部14に書き込まれる(S42)。一方、フラグがセットされていないと判断されたページは、二次記憶部14に書き込まれずに破棄される(S43)。
(第2の実施形態の効果)
上記第2の実施形態によれば、各ラインに対応してフラグを設け、ラインインにおいて、二次記憶部14に書き込む必要があるラインは、対応するフラグがセットされ、書き込む必要がないラインは、対応するフラグがセットされない。さらに、ラインインの後、ラインのデータが書き換えられた場合、そのラインに対応するフラグがセットされる。この後、ラインアウトの際にフラグの状態が判断され、フラグがセットされているラインのみ、二次記憶部14にラインのデータを書き込んでいる。このため、二次記憶部14が、例えばMRAMやReRAMなどの破壊読出しメモリにより構成されている場合において、書き込む必要があるラインのみを書き込んでいる。したがって、二次記憶部14に対する書き込み回数を削減することが可能であり、二次記憶部14の書き込み回数に制約がある場合においても、書き込み回数の増加を抑制することができ、破壊読出しメモリの寿命を延ばすことが可能である。
(変形例)
上記第1、第2の実施形態は、例えばパーソナルコンピュータに適用される計算機システムを想定している。しかし、これに限定されるものではなく、第1、第2の実施形態を例えば、企業で運用されるデータセンターやクラウドコンピューティングシステムにおけるサーバのようなホスト装置に適用することも可能である。
図9は、このようなホスト装置60に、第1、第2の実施形態を適用した場合を概略的に示している。
ホスト装置60において、例えば第1のボード61は、複数のコネクタ(例えばスロット)62を有している。各コネクタ62は、例えばSAS(Serial Attached SCSI)により構成されている。しかし、SASに限定されるものでははく、計算機と計算機を接続するインターフェース、例えばPCIe(PCI Express)などを適用することも可能である。各コネクタ62には、第2のボード63が装着されている。第2のボード63に第1の実施形態の計算機システム10、又は第2の実施形態の計算機システム30が実装されている。
尚、二次記憶部14は、第2のボード63とは別のボードに実装することも可能であり、SASを用いて複数の第2のボード63により、例えば1つの二次記憶部14を共有することも可能である。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11…CPU、12…MMU、13…一次記憶部、14…二次記憶部、31…ページ、32…フラグ。

Claims (5)

  1. 一次記憶部と、
    前記一次記憶部よりデータ転送レートが低く、保持されたデータが読み出されると保持された前記データが破壊されるメモリにより構成された二次記憶部と、
    第1オペレーションでデータを前記二次記憶部から前記一次記憶部へ転送し、第2オペレーションでデータを前記一次記憶部から前記二次記憶部に転送する制御部と、
    を具備し、
    前記制御部は、前記第1オペレーションにおいて、前記二次記憶部から前記一次記憶部に第1のデータを転送し、前記一次記憶部から前記二次記憶部に書き戻す前記第1のデータに第1状態をセットし、前記第2オペレーションにおいて、前記第1状態がセットされた前記第1のデータを前記一次記憶部から前記二次記憶部に書き込むことを特徴とする記憶システム。
  2. 前記一次記憶部から前記二次記憶部に前記第1のデータを書き戻さない場合、前記制御部は前記第1のデータに前記第1状態をセットしないことを特徴とする請求項1記載の記憶システム。
  3. 前記第1状態がセットされず、前記第1のデータが前記二次記憶部から前記一次記憶部に転送された後、前記第1のデータが前記一次記憶部において第2のデータに書き換えられた場合、前記制御部は、前記書き換えられた第2のデータに前記第1状態をセットすることを特徴とする請求項2記載の記憶システム。
  4. 前記制御部は、仮想記憶空間と仮想アドレスを管理し、前記一次記憶部と前記二次記憶部との間の前記データの移動を管理する第1の管理部を具備することを特徴とする請求項3記載の記憶システム。
  5. 前記制御部は、データの書き込み要求に基づき前記データを前記一次記憶部に書き込み、読み出し要求に対応するデータが前記一次記憶部にない場合、前記二次記憶部から前記読み出し要求に対応するデータを読み出す第2の管理部を具備することを特徴とする請求項3記載の記憶システム。
JP2019071347A 2015-01-14 2019-04-03 記憶システム Active JP6746747B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562103139P 2015-01-14 2015-01-14
US62/103,139 2015-01-14
US14/722,606 2015-05-27
US14/722,606 US9785552B2 (en) 2015-01-14 2015-05-27 Computer system including virtual memory or cache

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015114686A Division JP2016131006A (ja) 2015-01-14 2015-06-05 計算機システム

Publications (2)

Publication Number Publication Date
JP2019133703A true JP2019133703A (ja) 2019-08-08
JP6746747B2 JP6746747B2 (ja) 2020-08-26

Family

ID=56367606

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015114686A Pending JP2016131006A (ja) 2015-01-14 2015-06-05 計算機システム
JP2019071347A Active JP6746747B2 (ja) 2015-01-14 2019-04-03 記憶システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015114686A Pending JP2016131006A (ja) 2015-01-14 2015-06-05 計算機システム

Country Status (2)

Country Link
US (1) US9785552B2 (ja)
JP (2) JP2016131006A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021186768A1 (ja) * 2020-03-19 2021-09-23 株式会社島津製作所 ワイヤロープ検査装置およびワイヤロープ検査システム
US11726711B2 (en) 2020-03-04 2023-08-15 Kioxia Corporation Destructive read type memory circuit and information processing circuit and apparatus utilizing destructive read type memory circuit

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10800200B2 (en) 2015-01-27 2020-10-13 Information Planning And Management Service Inc. Array of printed information sheets for a business establishment
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
US10698628B2 (en) * 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US7577795B2 (en) * 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US8560761B2 (en) 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
WO2010055937A1 (ja) 2008-11-17 2010-05-20 日本電気株式会社 計算機システム、データ保存方法およびプログラム
JP5404798B2 (ja) 2009-09-21 2014-02-05 株式会社東芝 仮想記憶管理装置及び記憶管理装置
US8489799B2 (en) * 2009-12-13 2013-07-16 International Business Machines Corporation Efficient loading of data into memory of a computing system
JP2013065150A (ja) * 2011-09-16 2013-04-11 Toshiba Corp キャッシュメモリ装置、プロセッサ、および情報処理装置
US9703704B2 (en) * 2012-05-01 2017-07-11 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US9298617B2 (en) * 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726711B2 (en) 2020-03-04 2023-08-15 Kioxia Corporation Destructive read type memory circuit and information processing circuit and apparatus utilizing destructive read type memory circuit
WO2021186768A1 (ja) * 2020-03-19 2021-09-23 株式会社島津製作所 ワイヤロープ検査装置およびワイヤロープ検査システム

Also Published As

Publication number Publication date
JP6746747B2 (ja) 2020-08-26
JP2016131006A (ja) 2016-07-21
US20160202907A1 (en) 2016-07-14
US9785552B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
JP6746747B2 (ja) 記憶システム
US9471507B2 (en) System and device for page replacement control between virtual and real memory spaces
EP2778933A1 (en) System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
JP2009276853A (ja) フラッシュメモリ装置
US20190188130A1 (en) Data Storage Device and Non-Volatile Memory Control Method
US10430346B2 (en) DDR storage adapter
US10268592B2 (en) System, method and computer-readable medium for dynamically mapping a non-volatile memory store
US20140344503A1 (en) Methods and apparatus for atomic write processing
US9645926B2 (en) Storage system and method for managing file cache and block cache based on access type
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP6689325B2 (ja) メモリ装置の制御方法
JP6595654B2 (ja) 情報処理装置
JP7067256B2 (ja) データ転送装置およびデータ転送方法
JP5795418B2 (ja) キャッシュ装置、及び記憶システム
JP5627754B2 (ja) 仮想記憶管理装置及び記憶管理装置
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム
JP2013109404A (ja) 情報処理装置
KR101974731B1 (ko) 플래시 스토리지 장치 및 플래시 스토리지 장치에 데이터를 기록하는 방법
Koutoupis Advanced hard drive caching techniques
JP2018005371A (ja) 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200805

R150 Certificate of patent or registration of utility model

Ref document number: 6746747

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150