JP5334048B2 - メモリ装置および計算機 - Google Patents

メモリ装置および計算機 Download PDF

Info

Publication number
JP5334048B2
JP5334048B2 JP2009012176A JP2009012176A JP5334048B2 JP 5334048 B2 JP5334048 B2 JP 5334048B2 JP 2009012176 A JP2009012176 A JP 2009012176A JP 2009012176 A JP2009012176 A JP 2009012176A JP 5334048 B2 JP5334048 B2 JP 5334048B2
Authority
JP
Japan
Prior art keywords
memory
address
state
defragmentation
copy
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.)
Expired - Fee Related
Application number
JP2009012176A
Other languages
English (en)
Other versions
JP2010170328A (ja
Inventor
靖 永井
啓太郎 岡▲崎▼
猛 朝日
慎也 井口
尊之 河原
秀行 松岡
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 JP2009012176A priority Critical patent/JP5334048B2/ja
Publication of JP2010170328A publication Critical patent/JP2010170328A/ja
Application granted granted Critical
Publication of JP5334048B2 publication Critical patent/JP5334048B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、メモリ装置に関し、特に不揮発性メモリをメインメモリとして使用するメモリ装置に関する。
計算機システムに備えられた不揮発性メモリは、計算機システムの電源を切った後、メモリに格納された内容を保持し続ける。このため、不揮発性メモリを備える計算機システムは、計算機システムにおいてプログラムが動作している状態であっても、プログラムを止めずに、起動および終了が可能である。計算機システム上のプログラムが常に動作中である場合、計算機システムは、起動および終了の際に、メモリの初期化、およびプログラムロードを行わない。これによって、計算機システムは、高速に起動および終了ができる。また、これによって、計算機システムへの通電時間を短縮できるため、計算機システムは、消費電力を削減でき、少ない電力によって長時間にわたり駆動することができる。
しかし、計算機システムが駆動する時間が長くなるに従い、計算機システムは不揮発性メモリに対して、新しいデータを格納するためのメモリを割り当てる操作、およびデータを削除した後のメモリの割り当てを解除する操作を、頻繁に繰り返すようになる。これらの操作が頻繁に繰り返されることによって、不揮発性メモリは、「断片化」される。「断片化」とは、多数の「有効」なメモリブロックがメモリ全体に分布し、これらの「有効」なメモリブロックの間に、データを格納できない「穴」が存在する状態になることである。この「断片化」が発生することによって、計算機システムは、不揮発性メモリを効率的に使用することができない。
なお、「有効」とは、不揮発性メモリのメモリブロックの内容が、メモリにアクセスするプログラムによって使用されることを示す。「穴」とは、「有効」と反対の意味であり、穴の位置には有効なデータがない。すなわち「穴」のメモリブロックは、プログラムによって使用されない。
不揮発性メモリのメモリブロックに任意のデータが計算機システムによって格納され、その後データが削除される場合、データが格納されていたメモリブロックは、「穴」となる。その後、新しく作成されるメモリブロックがこの「穴」よりも大きい場合、計算機システムは、この「穴」にデータを格納できず、新しいメモリブロックを残りの空きメモリに割り当て、データを格納する。
新しく作成されたメモリブロックが既存の「穴」より小さい場合は、新しく作成されたメモリブロックは既存の「穴」に格納される。しかし、ほとんどの場合、新しいメモリブロックは既存の「穴」よりもブロックサイズが大きいため、「穴」に新しいメモリブロックが格納されることはない。これによって、計算機システムが不揮発性メモリへのデータの格納および削除をする毎に、新たな「穴」が生成される。
不揮発性メモリ全体において「有効」なメモリブロックが頻繁に削除され、新しいメモリブロックが頻繁に作成される場合、「穴」が小さいために新たなメモリブロックが割り当てられず、使用されないメモリの「穴」が、不揮発性メモリにおいて大量に発生する可能性がある。「穴」が大量に発生する場合、さらにメモリブロックを不揮発性メモリに割り当てるためには、不揮発性メモリの断片化が解消(デフラグ)される必要がある。
従来の不揮発性メモリのデフラグの処理には、デフラグにおいて実行されるコピーを複数の塊に分割して実行し、デフラグの進捗をデフラグの対象となる不揮発性メモリとは別の不揮発性メモリに格納する方法が提案されている(例えば、特許文献1参照)。
特許文献1に記載されている方法を用いた場合、計算機システムは、デフラグ実行中に起動または終了があったとしてもデフラグ処理を継続でき、不揮発性メモリの内容に不整合を発生させない。
特開2000−305818号公報
特許文献1に提案されている方法を用いて、不揮発性メモリをデフラグする場合、デフラグは常に不揮発性メモリ全体を対象としているため、計算機システムは多くの時間および電力を必要とする。不揮発性メモリを分割し、分割された一部の不揮発性メモリに対してデフラグまたはガーベジコレクションを行う場合も、計算機システムは、プログラムによって頻繁に参照される不揮発性メモリのページに対して、そのページが実装される物理ページアドレスを頻繁にたどるため、計算機システムは、デフラグまたはガーベジコレクションに多くの時間を必要とする。
また、プログラムが必要とするメモリブロックの単位と、デフラグを実行する時間単位またはメモリブロックの単位とに関連がないため、計算機システムは、デフラグを実行した際に、プログラムを一時的に停止する必要があった。プログラムを一時的に停止させることによって、デフラグを実行した際は、計算機システムは、プログラムの処理性能を著しく低下させていた。
なお、前述の通り、従来の計算機システムは、デフラグを実行している際にプログラムの実行を一時停止する。これは、プログラムが更新または参照する不揮発性メモリのメモリブロックと、デフラグする不揮発性メモリのメモリブロックとが競合した場合、不揮発性メモリの内容の整合が取れなくなり、プログラムまたはデフラグの継続が困難となるためである。このため、従来の計算機システムは、デフラグ中には、プログラムを停止させる。
計算機システムがデフラグを実行する頻度を低くする場合、デフラグが実行されない期間、計算機システムの処理能力は維持される。しかし、長期間デフラグせずに、計算機システムがデフラグする場合、デフラグに必要となる時間は長くなり、計算機システムがプログラムを一時停止させる時間も長くなり、プログラムの反応速度は著しく低下する。
一方、計算機システムがデフラグを実行する頻度を高くする場合、プログラムが一時停止する場合が頻発するため、計算機システムの処理能力は低下する。
特許文献1に提示される方法を用い、計算機システムが長時間にわたり起動および終了をしない場合、または、特許文献1に提示される方法を用い、計算機システムの不揮発性メモリの容量を大きくする場合、計算機システムは、デフラグのために使用するメモリ管理テーブルを拡大する必要がある。メモリ管理テーブルが拡大された場合、メモリ管理テーブルを探索するために高速なメモリ管理が困難となり、かつ、デフラグに必要となる処理の数が増加するため、計算機システムの処理能力は低下する。
また、従来の計算機システムによるデフラグは、不揮発性メモリを使用するプログラムと関連無く実行される。つまり、デフラグは、プログラムが参照する頻度の高い不揮発性メモリと、参照する頻度が低い不揮発性メモリとの区別は無く、平等に実行される。プログラムの使用頻度が低いメモリブロックのデフラグに、時間および電力をかけることは、デフラグの実行に必要となる時間の短縮化およびデフラグの効率化に貢献しない。また、その参照頻度の低い不揮発性メモリにデフラグする間、参照頻度の高い不揮発性メモリがプログラムによって使用されることによって、そのメモリブロックの物理ページアドレスの断片化が進み、また関連データのメモリブロックが断片化する。これによって、使用頻度の高いメモリブロックをデフラグした場合、負荷が増大し、関連データのページ切り替え頻度が高まり、TLBミスおよびページフォールトが増加し、プログラム実行速度の低下が起こる。
本発明は、プログラムとデフラグとを並行して実行した場合でも、不揮発性メモリに格納されたデータに発生する不整合を未然に防止する計算機システムを提供することによって、計算機システムの起動および終了に必要となる時間および電力を低減することを目的とする。
また、本発明は、起動および終了に各々必要とする時間および電力を低減し、同時に、長時間にわたり安定して駆動し、処理能力を低下させることがない計算機システムの提供を目的とする。
本発明の代表的な一形態によると、データを記憶するメモリと、前記メモリに対してデフラグをするデフラグ部と、前記メモリに対するアクセスを調停するメモリ保護部と、前記デフラグの情報が格納されるバッファメモリとを備えるメモリ装置において、前記メモリ装置は、演算処理をするプロセッサと、前記メモリを管理するメモリ管理部とに接続され、前記バッファメモリには、前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先の状態を示すコピー先フラグとが格納され、前記コピー先フラグは、少なくとも空き状態と使用状態とを含む複数の状態のいずれかを示し、前記デフラグ部は、前記デフラグ部の状態を示す状態フラグを備え、前記状態フラグは、前記デフラグ部がデフラグに関する処理を実行中であることを示す非アイドル状態と、前記非アイドル状態以外のアイドル状態とのいずれかを示し、前記デフラグ部は、前記メモリ管理部から、メモリページを切り替える旨の通知を受信した場合、前記デフラグのコピー元およびコピー先のメモリのアドレスを、前記バッファメモリに格納し、前記格納されたコピー元およびコピー先のメモリのアドレスに基づいて、前記メモリのデフラグを実行し、前記メモリ保護部は、前記プロセッサからメモリの参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとを受信し、かつ、前記状態フラグが前記非アイドル状態である場合、前記バッファメモリに格納された前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先フラグと、前記プロセッサから受信した前記参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとに基づいて、前記参照または更新の命令の対象となるメモリアドレスを再度決定するか、または前記プロセッサに失敗を通知する
本発明の代表的な一形態によると、デフラグとプログラムを並行して実行する場合に、計算機システムのデータの不整合を防止できる。
本発明の実施形態の計算機は、デフラグの実行タイミングを、MMU(メモリマネジメントユニット)による参照するページを切り替えるタイミングとし、プログラムを実行した直後に不揮発性メモリのデフラグを実行することによって、メモリブロックの断片化を最小限にとどめる。
また、本発明の実施形態の計算機は、不揮発性メモリを保護する機能によって、デフラグとプログラムとがそれぞれ対象とする不揮発性メモリに不整合を発生させずに、デフラグとプログラムとを並行して実行させることを可能にする。また、本発明の実施形態の計算機は、デフラグを実行する単位を、従来のメモリブロック単位からページ単位とする。
(第1の実施形態)
図1は、本発明の第1の実施形態の計算機の構成を示すブロック図である。
第1の実施形態の計算機は、SoC100およびメインメモリ116を備える。SoC100(System On a Chip)は、第1の実施形態のデフラグに用いるMMU102を備える。メインメモリ116は、不揮発性メモリである。
SoC100は、CPU101、MMU102、バス104、アービタ105、入力装置106、出力装置107、周辺回路108、コピー回路108、デフラグディスクリプタバッファ110、およびメモリ保護回路115を備える。
CPU100は、メインメモリ116に格納されたプログラムを逐次実行しながら、MMU102、アービタ105、入力装置106、出力装置107、周辺回路108、コピー回路109およびメモリ保護回路115の各種装置を、管理および制御する。
MMU102は、メモリの仮想ページアドレスを物理ページアドレスへ、または物理ページアドレスを仮想ページアドレスへ高速に変換する。また、MMU102は、この変換機能を管理する。MMU102は、TLB103aおよび利用ページレジスタ103bを備える。
TLB103aは、メモリのページ単位に、仮想ページアドレス、物理ページアドレスおよび管理テーブル参照の情報を含む。TLB103aは、仮想ページアドレスと物理ページアドレスとの変換対をTLB103aに格納し、仮想ページアドレスを物理ページアドレスへ、または物理ページアドレスを仮想ページアドレスへ変換する。
利用ページレジスタ103bは、CPU101がプログラムを実行するために参照するページアドレスを含む。
バス104は、CPU101、または、バスマスタである周辺装置が、MMU102、アービタ105、入力装置106、出力装置107、周辺回路108、コピー回路109およびメモリ保護回路115が相互にアクセスするための経路となる。
アービタ105は、CPU101、または、バスマスタである周辺装置から発生する、バス104を介してアクセスする旨の要求を、調停する。
入力装置106は、SoC100へのユーザからの操作および入力されるデータを受信する。
出力装置107は、SoC100からユーザへの通知情報およびデータを送信する。
周辺回路108は、SoC100が使用するプログラムおよびデータファイルを格納するための外部記憶装置、またはグラフィックスアクセラレータなどの周辺装置である。
コピー回路109は、本実施形態のデフラグ処理において、MMU102によって管理されているページ間のデータコピーを実行する。
デフラグディスクリプタバッファ110は、コピー回路109が実行するデータのコピーの処理内容を含む。デフラグディスクリプタバッファ110は、ソース物理ページアドレス111、デスティネーション物理ページアドレス112、ソースアドレスディスクリプタ113、およびデスティネーションアドレスディスクリプタ114を含む。
図2は、本発明の第1の実施形態のデフラグディスクリプタバッファ110を示すブロック図である。
ソース物理ページアドレス111は、デフラグディスクリプタバッファ110に含まれる。ソース物理ページアドレス111は、デフラグにおけるコピー元となるページの物理ページアドレスを含む。
デスティネーション物理ページアドレス112は、デフラグディスクリプタバッファ110に含まれる。デスティネーション物理ページアドレス112は、デフラグにおけるコピー先となるページの物理ページアドレスを含む。
ソースアドレスディスクリプタ113は、デフラグディスクリプタバッファ110に含まれる。
デスティネーションアドレスディスクリプタ114は、デフラグディスクリプタバッファ110に含まれる。
メモリ保護回路115は、コピー回路109によるページ間のコピーと、CPU101によるプログラムの実行とを並行することによって発生する、コピー先のページ、または、実行されるプログラムが参照するコピー元のページの不整合を、デフラグディスクリプタバッファ110を参照することによって回避する。
メインメモリ116は、CPU101が実行するプログラムデータ117、メモリ全体のページエントリ118、各ページのページメモリ管理テーブル119、およびデータを含む。
図3は、本発明の第1の実施形態のメインメモリ116を示すブロック図である。
プログラムデータ117は、CPU101によって実行されるプログラムとプログラムの実行に利用されるデータとを含む。
ページエントリ118は、仮想ページアドレス、物理ページアドレス、および管理テーブルを含む。プログラムが実行される場合、メインメモリ116のページエントリ118に含まれる、仮想ページアドレスおよび物理ページアドレスの対から、プログラムを実行するために必要な対が、TLB103aに送られる。TLB103aに送られた仮想ページアドレスおよび物理ページアドレスの対は、プログラムがメインメモリ116にアクセスする際に、仮想ページアドレスと物理ページアドレスとを相互に変換するために利用される。
メインメモリ116に含まれるページエントリ118は、CPU101に利用される、全メモリページの仮想ページアドレス、物理ページアドレス、およびそのページを参照するアドレスの管理テーブル参照を含む。図3に示すブロック図において、ページエントリ118のページ数はN(Nは正の整数)であり、ページエントリ118は、1ページ目からNページまでのページ分のページアドレスの対を含む。
ページメモリ管理テーブル119は、スタートオフセット、エンドオフセット、および参照アドレスリストを含む。スタートオフセットには、メモリ内においてプログラムによって参照される領域の最初のアドレスを含む。エンドオフセットは、メモリ内においてプログラムによって参照される領域の最後のアドレスを含む。参照アドレスリストは、スタートオフセットとエンドオフセットとによって示された領域を参照するページアドレスを含む。図3に示すブロック図において、ページメモリ管理テーブル119の行数は、P(Pは正の整数)である。また、ページメモリ管理テーブル119は、同じ形式によってプログラム毎に複数存在する。
ページエントリ118の各ページにおいて、プログラムによって使用されるメモリ領域は、管理テーブル参照の値に示される。たとえば、ページエントリ118の2番目のページに含まれる管理テーブル参照2に示された値が、ページメモリ管理テーブル119であった場合、この2番目のページは、P(Pは正の整数)個のメモリ領域がプログラムによって使用されている。
TLB103aは、ページエントリ118において管理されるNページのうち、M(Mは、N>Mの条件を満たす正の整数)ページ分の仮想ページアドレスと物理ページアドレスと管理テーブル参照とを含む。
CPU101とMMU102とは、仮想ページアドレスと物理ページアドレスとを変換するために、後述の処理をする。
CPU101は、メインメモリ116に格納されるプログラムデータ117を参照し、プログラムを解釈し、メインメモリ116のメモリ領域の確保、開放、およびメモリ領域内のデータを更新する。このとき、CPU101はメインメモリ116にアクセスし、データを参照するため、MMU102に対し、データが含まれる仮想ページアドレスを渡す。MMU102は、CPU101から受信した仮想ページアドレスをTLB103aから検索する。
MMU102は、CPU101から仮想ページアドレスを受信した場合、TLB103aに格納されるM対の仮想ページアドレスの中から検索する。MMU102は、検索されたページの仮想ページアドレスと対を成す物理ページアドレスを用いて、仮想ページアドレスを物理ページアドレスに変換する。
MMU102は、CPUから受信した仮想ページアドレスが、TLB103aに存在するページの仮想ページアドレスである場合、MMU102は、受信した仮想ページアドレスを物理ページアドレスに変換し、メモリ保護回路115を介して、物理ページアドレスをメインメモリ116に渡す。これによって、CPU101は、メインメモリ116にアクセスできる。
MMU102は、CPUから受信した仮想ページアドレスが、TLB103aに存在しない場合、MMU102は、CPU101にTLBミス(ページフォールト)を通知する。
TLBミスをMMU102から通知されたCPU101は、メインメモリ116に格納されるTLBミス用のプログラムを実行する。CPU101は、まず、TLBミスを発生した仮想ページアドレスを、ページエントリ118から検索する。次に、検索結果の仮想ページアドレスと対となる物理ページアドレスがメインメモリ116の物理ページアドレスであるか否かを判定する。
検索結果の仮想ページアドレスと対となる物理ページアドレスがメインメモリ116のアドレスである場合、CPU101が必要とするデータは、メインメモリ116に含まれる。このため、CPU101は、TLB103aに含まれる使用頻度の低いページのアドレス対と管理テーブル参照とを、ページエントリ118からの検索によって得られたアドレス対と管理テーブル参照とに置換する。その後、CPU101は、TLBミスを起こした時点の処理に戻る。
検索結果の仮想ページアドレスと対になる物理ページアドレスがメインメモリ116のアドレスにはない場合、CPUが必要とする対象のデータは、メインメモリ116に含まれない。このため、CPU101は、ページエントリ118において参照頻度が低く、かつメインメモリ116に含まれるページのデータを外部記憶装置にコピーし、ページエントリ118において参照頻度が低いページの物理ページアドレスを外部記憶装置のアドレスに変更する。
さらに、CPU101は、検索によって得られた物理ページアドレスの外部記憶装置に含まれるデータを、メインメモリ116にコピーする。CPU101は、コピー先のメインメモリ116の物理ページアドレスを、TLBミスが発生した仮想ページアドレスの物理ページアドレスとしてページエントリ118に追加する。そして、CPU101は、追加されたアドレス対と管理テーブル参照によって、TLB103aの使用頻度の低いページのアドレス対と管理テーブル参照を更新する。CPU101は、TLBミスを起こした時点の処理に戻る。
本発明の実施形態のMMU102は、これらの仮想ページアドレスと物理ページアドレスとの変換に加え、コピー回路109およびメモリ保護回路115によって共有されるデフラグディスクリプタバッファ110と連携し、後述する処理をする。
MMU102は、CPU101から仮想ページアドレスを受信した場合、利用ページレジスタ103bに格納される仮想ページアドレスと受信した仮想ページアドレスとを比較し、前回のCPU101がアクセスしたページに含まれる仮想ページアドレスか否かを判定する。
前回のページと今回のページが同じである場合、MMU102は、得られたページアドレスをメインメモリ116に送信する。CPU101は、処理を継続する。
前回のページと今回のページとが異なり、ページを切り替える必要がある場合、MMU102は、前回参照したページアドレスに対応するTLB103aの管理テーブル参照の値から、メインメモリ116のページメモリ管理テーブル119が示すメモリ領域を取得し、取得されたメインメモリ116のメモリ領域が断片化されているか否かを判定する。
メモリが断片化されていない場合、MMU102はデフラグをしない。
メモリが断片化されている場合、MMU102は、コピー回路109に後述のデフラグをさせる。
コピー回路109は、まず、CPU101が前回参照したメモリ領域のページメモリ管理テーブル119の情報を、デフラグディスクリプタバッファ110のソースアドレスディスクリプタ113に格納する。つぎに、コピー回路109は、CPU101が前回参照した仮想ページアドレスと対になる物理ページアドレスを、利用ページレジスタ103bからソース物理ページアドレス111に格納する。
また、コピー回路109は、メインメモリ116に含まれるページエントリ118およびページメモリ管理テーブル119からデフラグに適したコピー先となる物理ページアドレスを検索し、検索結果のページの物理ページアドレスをデスティネーション物理ページアドレス112に格納する。コピー回路109は、初期化処理として、デフラグに適したコピー先となる物理ページアドレスに対応する管理テーブル参照が指すページメモリ管理テーブル119の内容を、デスティネーションアドレスディスクリプタ114の形式に変換して、デスティネーションアドレスディスクリプタ114に格納する。
デスティネーションアドレスディスクリプタ114は、デフラグに適したコピー先ページのオフセットアドレス毎の状態を表すフラグを含む。各フラグは、(1)ライト済み、(2)空き、(3)コピーライト不可、の三つの値をとる。図2に示すブロック図は、デスティネーションアドレスディスクリプタ114の1ページがK(Kは正の整数)アドレスを持つ場合である。ページメモリ管理テーブル119において、使用されるメモリ領域(スタートオフセットのアドレスとエンドオフセットのアドレスとにはさまれたメモリ領域)のオフセットアドレスのフラグは、(3)コピーライト不可を示す。また、ページメモリ管理テーブル119において、使用されていないメモリ領域のオフセットアドレスのフラグは、(2)空きを示す。
なお、このデスティネーションアドレスディスクリプタ114の初期化処理は、メモリページがメインメモリ116から切り替わるたびにページを切り替える旨をCPU101に上げた後、CPU101によって、任意のソフトウェアを用いて行われてもよい。CPU101によって初期化処理がされる場合、従来のMMUであっても同じ処理が可能である。
次に、コピー回路109は、デフラグディスクリプタバッファ110に格納された、ソース物理ページアドレス111、デスティネーション物理ページアドレス112、ソースアドレスディスクリプタ113、およびデスティネーションアドレスディスクリプタ114に従って、ソース物理ページアドレス111に格納されたソースページから、デスティネーション物理ページアドレス112に格納されたデスティネーションページへのメモリのコピーを実行する。
コピー回路109は、ソースのオフセットアドレスに、ソースアドレスディスクリプタ113が示す領域のみを適用し、デスティネーションのオフセットアドレスに、デスティネーションアドレスディスクリプタ114のフラグが(1)空きになっているアドレスのみを適用する。
図4は、本発明の第1の実施形態のコピー回路109のブロック図である。
バスマスタIF200は、バス104を介して、メインメモリ116にアクセスする。
バススレーブIF201は、バス104を介して、CPU101およびMMU102などのバスマスタが、コピー回路109に対してアクセスするためのインターフェースである。
状態レジスタ202は、コピー回路109の状態を示す。状態レジスタ202は、(1)アイドル状態、(2)ディスクリプタ構築状態、(3)ページ内領域コピー状態、および(4)領域の参照アドレスの更新状態、の四つの状態に遷移する。
ソースブロック参照レジスタ206は、デフラグディスクリプタバッファ110に格納されたソースアドレスディスクリプタ113において、コピーが実行されているメモリ領域を示す。
ソースアドレスレジスタ207は、コピー元となるソースのオフセットアドレスを示す。
デスティネーションアドレスレジスタ210は、コピー先となるデスティネーションのオフセットアドレスを示す。また、デスティネーションオフセットアドレスは、デフラグディスクリプタバッファ110に格納されたデスティネーションアドレスディスクリプタ114のフラグも示す。
デフラグコピー回路211は、デフラグにおいて、コピーを実行する。
ディスクリプタIF212は、デフラグコピー回路211がデフラグディスクリプタバッファ110にアクセスするためのインターフェースである。
デフラグコピー回路211は、状態レジスタ202が(1)アイドル状態である時に、MMU102から、ページを切り替える旨を受けた場合、状態レジスタ202の値を(2)ディスクリプタ構築状態に変更する。
デフラグコピー回路211は、デフラグにおけるコピー元のアドレスの候補となる物理ページアドレスを、MMU102から受信し、デフラグの要否を判定する。
デフラグの必要がない場合は、デフラグコピー回路211は、状態レジスタ202の値を(1)アイドル状態に戻す。
デフラグの必要がある場合は、デフラグコピー回路211は、ソースブロック参照レジスタ206に、ソースアドレスディスクリプタ113の最初の行をコピーする。デフラグコピー回路211は、ソースアドレスレジスタ207に、ソースアドレスディスクリプタ113のスタートオフセット1をコピーする。
デフラグコピー回路211は、デスティネーションアドレスレジスタ210に、ソースアドレスディスクリプタ113のスタートオフセット1とエンドオフセット1の間のメモリ領域のサイズを確保できる程度に、(2)空きが連続するデスティネーションアドレスディスクリプタ114のオフセット処理フラグを選択し、選択されたオフセット処理フラグの最初のオフセットアドレスをコピーする。
デフラグコピー回路211は、状態レジスタ202を(3)ページ内領域コピー状態にする。また、デフラグコピー回路211は、デスティネーションアドレスディスクリプタ114の選択されたオフセット処理フラグを、(3)コピーライト不可に変更する。
デフラグコピー回路211は、ソースアドレスレジスタ207が示すアドレスからデスティネーションアドレスレジスタ210が示すアドレスに、メインメモリ116のメモリ領域をコピーする。コピーが終了した後、デフラグコピー回路211は、デスティネーションアドレスディスクリプタ114の選択されたオフセット処理フラグを、(1)ライト済みに変更する。また、デフラグコピー回路211は、ソースアドレスレジスタ207とデスティネーションアドレスレジスタ210とのアドレスをインクリメントする。
デフラグコピー回路211は、前述の(2)ディスクリプタ構築状態、および(3)ページ内領域コピー状態の処理を、ソースアドレスレジスタ207の値がエンドオフセットの値+1になるまで繰り返す。
ソースアドレスレジスタ207の値がエンドオフセットの値+1になった場合、デフラグコピー回路211は、状態レジスタ202を(4)領域の参照アドレスの更新状態にする。
デフラグコピー回路211は、ソースブロック参照レジスタ206が示すソース領域の参照アドレスリスト1が示すアドレスのポインタ値を(デスティネーションアドレスレジスタ210からソースアドレスレジスタ207を引いた値)分移動させる。ソースブロック参照レジスタ206が全て更新された場合、デフラグコピー回路211は、ソースブロック参照レジスタ206を次のソース領域のポインタ値に更新する。
デフラグコピー回路211は、ソースブロック参照レジスタ206が示すソース領域のスタートオフセット2に、ソースアドレスレジスタ207を設定する。デフラグコピー回路211は、デスティネーションアドレスディスクリプタ114からコピー先となるオフセットを参照し、デスティネーションアドレスレジスタ210の値を設定する。デフラグコピー回路211は、状態レジスタ202を(3)ページ内領域コピー状態にし、メインメモリ106のページに対して、デフラグコピーを実行する。
前述の通り、全ての領域に対して、ページ内領域コピーと領域の参照アドレスの更新とを実行し、デフラグコピー回路211は、デフラグコピー完了のメッセージと、新しい物理ページアドレスとをMMU102に通知する。デフラグコピー回路211は、状態レジスタ202を(1)アイドル状態にする。
デフラグコピー回路211は、状態レジスタ202が(1)アイドル状態である時以外において、ページ切り替え通知を受信した場合、何も実行しない。
デフラグコピー回路211からコピー完了のメッセージを受信し、MMU102は、コピーが完了した仮想ページアドレスと物理ページアドレスとの対が格納された、TLB103aとメインメモリ116のページエントリ118とを、デフラグコピー回路から受信した新しい物理ページアドレスによって更新する。
CPU101は、前述のデフラグコピー処理を実行する間も別に動作し続け、MMU102とメモリ保護回路115を介して、メインメモリ116にアクセスする。メモリ保護回路115は、MMU102を介してCPU101から送られるリードライトコマンドとページアドレスとを受信し、コピー回路109が(1)アイドル状態であれば、受信したリードライトコマンドとライトアドレスとをメインメモリ116に送信する。これによって、CPU101はメインメモリ116にアクセスする。
コピー回路109が(1)アイドル状態でない場合、メモリ保護回路115は、MMU102から送られたアドレス、ソース物理ページアドレス111およびデスティネーション物理ページアドレス112を比較し、リードライトコマンドとMMU102から送られたアドレスとの組合せによって、後述の処理をする。
1.メモリ保護回路115は、ソースアドレスディスクリプタ113の示す領域と、MMU102から送られたアドレスとを比較し、MMU102から、デフラグコピー中のソースページに対するライトが要求された場合、後述の処理をする。
1.1.MMU102から送られたアドレスが、ソースアドレスディスクリプタ113に含まれる場合、メモリ保護回路115は、MMU102から送られたアドレスが含まれるソースアドレスディスクリプタ113のデータのコピー先を、デスティネーション物理ページアドレス112およびデスティネーションアドレスディスクリプタ114から取得し、取得されたアドレスとMMU102から送られたアドレスとの両方に、ライトを実行する。メモリ保護回路115は、ソースアドレスディスクリプタ113、およびデスティネーションアドレスディスクリプタ114から取得したアドレスの、デスティネーションアドレスディスクリプタ114のフラグを(3)ライト済みにする。
1.2.MMU102から送られたアドレスが、ソースアドレスディスクリプタ113に含まれない場合、メモリ保護回路115は、MMU102から送られたアドレスのみにライトを実行する。
2.MMU102から、デフラグコピー中のデスティネーションページに対するライトが要求された場合、メモリ保護回路115は、MMU102から送られたアドレスに対するライトを実行する。
3.MMU102から、デフラグコピー中のソースページおよびデスティネーションページではないページに対するライトが要求された場合、メモリ保護回路115は、MMU102から送られたアドレスに対するライトを実行する。
4.MMU102から、デフラグコピー中のソースページに対するリードが要求された場合、メモリ保護回路115は、MMU102から送られたアドレスに対するリードを実行する。
5.MMU102から、デフラグコピー中のデスティネーションに対するリードが要求された場合、後述の処理をする。
5.1.デスティネーションアドレスディスクリプタ114が、(1)ライト済みの場合、メモリ保護回路115は、MMU102から送られたアドレスに対するリードを実行する。
5.2.デスティネーションアドレスディスクリプタ114が、(2)空きの場合、メモリ保護回路115は、エラーメッセージをCPU101に通知する
5.3.デスティネーションアドレスディスクリプタ114が、(3)コピーライト不可の場合、メモリ保護回路115は、MMU102から送られたアドレスに対するリードを実行する。
6.MMU102から、デフラグコピー中のソースおよびデスティネーションではないページに対するリードが要求された場合、メモリ保護回路115は、MMU102から送られたアドレスに対するリードを実行する。
前述したように第1の実施形態によると、デフラグディスクリプタバッファをコピー回路とメモリ保護回路とが共有することによって、デフラグとプログラムとが並行した際に発生するメモリアクセスの競合を検出可能にし、メモリの内容が破壊されることを回避できる。また、これによって、デフラグに必要となるコピーとプログラムとを並行して実行でき、プログラムの実行速度を低下させず、記憶効率および帯域利用効率の向上を図ることができる。
なお、第1の実施形態において、不揮発性メモリのページ単位でデフラグコピーをしたが、いくつかのページをまとめてデフラグコピーをしてもよい。
また、デフラフディスクリプタバッファ110のデスティネーションアドレスディスクリプタ114の各フラグは、(1)ライト済み、(2)空き、(3)コピーライト不可、の三つの値を取ったが、「空き」と「使用済」の二つの値でもよい。
本実施形態によると、メインメモリ116は、特殊な機能を持つ不揮発性メモリである必要はない。本実施形態の計算機システムは、従来の計算機システムのSoC100を置換するのみによって実装できる。
利用ページレジスタ103bを持たないMMU102を用いる場合は、ページの切り替えをトリガとしてデフラグをするのではなく、TLBミスの発生をトリガにすることによって、本実施形態の処理は可能となる。この場合、本発明の実施形態の計算機は、MMU102に換えて、TLBミスが発生した際に例外的な処理をするプログラムを用いることによって、コピー回路109を制御してもよい。
また、メインメモリ116を不揮発性メモリによって構成する場合は、TLB103a、利用ページレジスタ103b、状態レジスタ202、ソースブロック参照レジスタ206、ソースアドレスレジスタ207、デスティネーションアドレスレジスタ210、デフラグディスクリプタバッファ110は、不揮発性メモリによって実装されてもよい。
TLB103a、利用ページレジスタ103b、状態レジスタ202、ソースブロック参照レジスタ206、ソースアドレスレジスタ207、デスティネーションアドレスレジスタ210、デフラグディスクリプタバッファ110が不揮発性メモリによって実装されることによって、本発明の実施形態の計算機は、計算機の電源の停止および起動がされてもデフラグを継続できる。これは、状態レジスタ202に、デフラグの状態が、途中経過として記憶されることによって、電源の停止および起動がされてもデフラグの継続が可能となる。
以上説明したように、本発明の第1の実施の形態の計算機によると、計算機の電源の停止および起動がされても、デフラグが継続されることによって、低消費電力であり、かつ、システムの再初期化処理によるプログラム停止期間がない計算機を提供できる。また、本発明の実施形態の計算機は、長時間にわたり安定して駆動し、計算機のレスポンス、およびスループットなどの処理能力を低下させることがない計算機システムを提供できる。
また、第1の実施形態の計算機は、ページフォールト、TLBミス、およびページの切り替えのI/O処理オーバヘッドの発生とオーバーラップするタイミングで、デフラグをページ単位で実行するため、ソフトウェアの実行速度の低下を小さくすることができる。
また、第1の実施形態の計算機は、断片化の可能性の高い、プログラムに参照された直後のページへのデフラグと、プログラムとを並行して実行し、断片化が発生する場合を最小限に抑える。これによって、本発明の実施形態の計算機は、デフラグのコピー量と、デフラグの複雑さを低減し、デフラグに必要となる時間および電力、すなわちメモリを管理するための時間および電力を削減する。
(第2の実施形態)
図5は、本発明の第2の実施形態の計算機の構成を示すブロック図である。
図5に示すCPU101からページメモリ管理テーブル119は、図1と同じである。
SoC300は、MMU102の利用ページレジスタ103bと、TLB103aの管理テーブル参照とを持たず、利用ページレジスタ103bとTLB103aの管理テーブル参照に換えて、コピー回路109を制御するプログラムを持つ。MMU102からTLBミスが発生したことを通知されたCPU101は、コピー回路109を制御するプログラムを用い、第1の実施形態のMMU102において実行した手順によって、同じ結果を得られる。
メモリ301は、コピー回路109、デフラグディスクリプタバッファ110、メモリ保護回路115およびメインメモリ116を備える。メモリ301は、SoC300から切り離すことが可能である。メモリ301を利用することによって、SoC300は、デフラグとプログラムとを効率よく並行に実行することができるため、長時間にわたり安定して駆動し、処理能力を低下させることがない計算機システムを提供できる。
(第3の実施形態)
図6は、本発明の第3の実施形態の計算機の構成を示すブロック図である。
図6に示すSoC300、CPU101からコピー回路119は図5と同じである。
メモリ401は、メモリ301と同様にコピー回路109、デフラグディスクリプタバッファ110、メモリ保護回路115およびメインメモリ116を備えるが、図3に示すメモリ301とは異なり、メモリ401は、メモリ401内部にデフラグ専用バス402を備える。コピー回路109は、デフラグ専用バス402を介して、メインメモリ116にアクセスすることができる。これによって、CPU101によるメモリアクセスとデフラグによるメモリアクセスの競合が、バス104において発生しないため、第3の実施形態の計算機は、アービトレイションによる性能低下を抑えることができる。
本発明の第1の実施形態の計算機の構成を示すブロック図である。 本発明の第1の実施形態のデフラグディスクリプタバッファを示すブロック図である。 本発明の第1の実施形態のメインメモリを示すブロック図である。 本発明の第1の実施形態のコピー回路のブロック図である。 本発明の第2の実施形態の計算機の構成を示すブロック図である。 本発明の第3の実施形態の計算機の構成を示すブロック図である。
100 SoC
101 CPU
102 MMU
103a TLB
103b 利用ページレジスタ
104 バス
105 アービタ
106 入力装置
107 出力装置
108 周辺回路
109 コピー回路
110 デフラグディスクリプタバッファ
111 ソース物理ページアドレス
112 デスティネーション物理ページアドレス
113 ソースアドレスディスクリプタ
114 デスティネーションアドレスディスクリプタ
115 メモリ保護回路
116 メインメモリ
117 プログラムデータ
118 ページエントリ
119 ページメモリ管理テーブル
200 バスマスタIF
201 バススレーブIF
202 状態レジスタ
206 ソースブロック参照レジスタ
207 ソースアドレスレジスタ
210 デスティネーションアドレスレジスタ
211 デフラグコピー回路
212 ディスクリプタIF
300 SoC
301 デフラグ補助機能付メモリ
401 デフラグ補助機能付メモリ
402 デフラグ専用バス

Claims (14)

  1. データを記憶するメモリと、前記メモリに対してデフラグをするデフラグ部と、前記メモリに対するアクセスを調停するメモリ保護部と、前記デフラグの情報が格納されるバッファメモリとを備えるメモリ装置において、
    前記メモリ装置は、演算処理をするプロセッサと、前記メモリを管理するメモリ管理部とに接続され、
    前記バッファメモリには、前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先の状態を示すコピー先フラグとが格納され、
    前記コピー先フラグは、少なくとも空き状態と使用状態とを含む複数の状態のいずれかを示し、
    前記デフラグ部は、前記デフラグ部の状態を示す状態フラグを備え、
    前記状態フラグは、前記デフラグ部がデフラグに関する処理を実行中であることを示す非アイドル状態と、前記非アイドル状態以外のアイドル状態とのいずれかを示し、
    前記デフラグ部は、
    前記メモリ管理部から、メモリページを切り替える旨の通知を受信した場合、前記デフラグのコピー元およびコピー先のメモリのアドレスを、前記バッファメモリに格納し、
    前記格納されたコピー元およびコピー先のメモリのアドレスに基づいて、前記メモリのデフラグを実行し、
    前記メモリ保護部は、前記プロセッサからメモリの参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとを受信し、かつ、前記状態フラグが前記非アイドル状態である場合、前記バッファメモリに格納された前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先フラグと、前記プロセッサから受信した前記参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとに基づいて、前記参照または更新の命令の対象となるメモリアドレスを再度決定するか、または前記プロセッサに失敗を通知することを特徴とするメモリ装置。
  2. 前記メモリ保護部は、前記プロセッサからメモリの更新の命令と、前記更新の対象となるメモリのアドレスとを受信し、前記状態フラグが前記非アイドル状態であり、かつ、前記バッファメモリに格納された前記デフラグのコピー元のメモリのアドレスと、前記プロセッサから受信した前記更新の命令の対象となるメモリのアドレスとが同一である場合、前記デフラグのコピー先のメモリのアドレスと、前記更新の命令の対象となるメモリのアドレスとの両方を、前記更新の命令の対象となるメモリのアドレスに決定することを特徴とする請求項1に記載のメモリ装置。
  3. 前記メモリ保護部は、前記プロセッサからメモリの参照の命令と、前記参照の対象となるメモリのアドレスとを受信し、前記状態フラグが非アイドル状態であり、かつ、前記バッファメモリに格納された前記デフラグのコピー先のメモリのアドレスと、前記プロセッサから受信した前記参照の命令の対象となるメモリのアドレスとが同一であり、前記コピー先フラグが前記空き状態を示す場合、前記プロセッサに失敗を通知することを特徴とする請求項1に記載のメモリ装置。
  4. 前記メモリと、前記バッファメモリとは、不揮発性メモリであり、
    前記状態フラグとは、不揮発性メモリに格納されることを特徴とする請求項1に記載のメモリ装置。
  5. 前記バッファメモリには、ページ単位に区切られたコピー元のメモリのアドレスが格納され、
    前記デフラグ部は、前記コピー先フラグが空き状態であり、前記ページ単位に区切られたコピー元のメモリの領域以上の容量の領域を持つメモリのアドレスを、前記コピー先のメモリのアドレスに決定することを特徴とする請求項1に記載のメモリ装置。
  6. 前記使用状態は、更新済み状態と、更新不可状態とを含み、
    前記デフラグ部は、
    前記メモリ管理部から、メモリページを切り替える旨の通知を受信した場合、前記コピー先フラグが前記空き状態を示すメモリのアドレスを、前記コピー先のアドレスに決定することを特徴とする請求項1に記載のメモリ装置。
  7. 前記非アイドル状態は、準備状態と、実行状態と、後処理状態とを含み、
    前記デフラグ部は、
    前記メモリ装置への電源が切断された後に電源が接続された場合、前記状態フラグが示す状態に基づいて、電源が切断される前の処理を認識し、
    前記認識された処理を継続することを特徴とする請求項1に記載のメモリ装置。
  8. 演算処理をするプロセッサと、メモリを管理するメモリ管理部と、データを記憶するメモリと、前記メモリに対してデフラグをするデフラグ部と、前記メモリに対するアクセスを調停するメモリ保護部と、前記デフラグの情報が格納されるバッファメモリとを備える計算機において、
    前記バッファメモリには、前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先の状態を示すコピー先フラグとが、格納され、
    前記コピー先フラグは、少なくとも空き状態と使用状態とを含む複数の状態のいずれかを示し、
    前記デフラグ部は、前記デフラグ部の状態を示す状態フラグを備え、
    前記状態フラグは、前記デフラグ部がデフラグに関する処理を実行中であることを示す非アイドル状態と、前記非アイドル状態以外のアイドル状態とのいずれかを示し、
    前記デフラグ部は、
    前記メモリ管理部から、メモリページを切り替える旨の通知を受信した場合、前記デフラグのコピー元およびコピー先のメモリのアドレスを、前記バッファメモリに格納し、
    前記格納されたコピー元およびコピー先のメモリのアドレスに基づいて、前記メモリのデフラグを実行し、
    前記メモリ保護部は、前記プロセッサからメモリの参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとを受信し、かつ、前記状態フラグが前記非アイドル状態である場合、前記バッファメモリに格納された前記デフラグのコピー元およびコピー先のメモリのアドレスと、前記コピー先フラグと、前記プロセッサから受信した前記参照または更新の命令と、前記参照または更新の対象となるメモリのアドレスとに基づいて、前記参照または更新の命令の対象となるメモリアドレスを再度決定するか、または前記プロセッサに前記参照の失敗を通知することを特徴とする計算機。
  9. 前記メモリ保護部は、前記プロセッサからメモリの更新の命令と、前記更新の対象となるメモリのアドレスとを受信し、前記状態フラグが前記非アイドル状態であり、かつ、前記バッファメモリに格納された前記デフラグのコピー元のメモリのアドレスと、前記プロセッサから受信した前記更新の命令の対象となるメモリのアドレスとが同一である場合、前記デフラグのコピー先のメモリのアドレスと、前記更新の命令の対象となるメモリのアドレスとの両方を、前記更新の命令の対象となるメモリのアドレスに決定することを特徴とする請求項8に記載の計算機。
  10. 前記メモリ保護部は、前記プロセッサからメモリの参照の命令と、前記参照の対象となるメモリのアドレスとを受信し、前記状態フラグが非アイドル状態であり、かつ、前記バッファメモリに格納された前記デフラグのコピー先のメモリのアドレスと、前記プロセッサから受信した前記参照の命令の対象となるメモリのアドレスとが同一であり、前記コピー先フラグが前記空き状態を示す場合、前記プロセッサに前記参照の失敗を通知することを特徴とする請求項8に記載の計算機。
  11. 前記メモリと、前記バッファメモリとは、不揮発性メモリであり、
    前記状態フラグとは、不揮発性メモリに格納されることを特徴とする請求項8に記載の計算機。
  12. 前記バッファメモリには、ページ単位に区切られたコピー元のメモリのアドレスが格納され、
    前記デフラグ部は、前記コピー先フラグが空き状態であり、前記ページ単位に区切られたコピー元のメモリの領域以上の容量の領域を持つメモリのアドレスを、前記コピー先のメモリのアドレスに決定することを特徴とする請求項8に記載の計算機。
  13. 前記使用状態は、更新済み状態と、更新不可状態とを含み、
    前記デフラグ部は、
    前記メモリ管理部から、メモリページを切り替える旨の通知を受信した場合、前記コピー先フラグが前記空き状態を示すメモリのアドレスを、前記コピー先のアドレスに決定することを特徴とする請求項8に記載の計算機。
  14. 前記非アイドル状態は、準備状態と、実行状態と、後処理状態とを含み、
    前記デフラグ部は、
    前記計算機への電源が切断された後に電源が接続された場合、前記状態フラグが示す状態に基づいて、電源が切断される前の処理を認識し、
    前記認識された処理を継続することを特徴とする請求項8に記載の計算機。
JP2009012176A 2009-01-22 2009-01-22 メモリ装置および計算機 Expired - Fee Related JP5334048B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009012176A JP5334048B2 (ja) 2009-01-22 2009-01-22 メモリ装置および計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009012176A JP5334048B2 (ja) 2009-01-22 2009-01-22 メモリ装置および計算機

Publications (2)

Publication Number Publication Date
JP2010170328A JP2010170328A (ja) 2010-08-05
JP5334048B2 true JP5334048B2 (ja) 2013-11-06

Family

ID=42702427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009012176A Expired - Fee Related JP5334048B2 (ja) 2009-01-22 2009-01-22 メモリ装置および計算機

Country Status (1)

Country Link
JP (1) JP5334048B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5568778B2 (ja) * 2011-01-28 2014-08-13 株式会社アクセル 画像処理装置及び画像処理方法
KR20140099737A (ko) 2013-02-04 2014-08-13 삼성전자주식회사 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
JP2020198128A (ja) * 2020-08-31 2020-12-10 キオクシア株式会社 メモリシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214874A (ja) * 1993-01-13 1994-08-05 Toshiba Corp メモリ管理方式
TW477932B (en) * 1999-03-23 2002-03-01 Ibm Memory defragmentation in chipcards
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
US7454585B2 (en) * 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content

Also Published As

Publication number Publication date
JP2010170328A (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
JP6314355B2 (ja) メモリ管理方法およびデバイス
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
KR101612922B1 (ko) 메모리 시스템 및 메모리 시스템 관리 방법
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
JP2012089105A (ja) メモリシステム及びホストコントローラ
US20130111103A1 (en) High-speed synchronous writes to persistent storage
US10268592B2 (en) System, method and computer-readable medium for dynamically mapping a non-volatile memory store
JP6165964B2 (ja) 計算機
JP2008090657A (ja) ストレージシステム及び制御方法
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
KR20200121372A (ko) 하이브리드 메모리 시스템
US9489295B2 (en) Information processing apparatus and method
US20130007367A1 (en) Information processing apparatus and method of controlling same
JP2021149374A (ja) データ処理装置
JP5334048B2 (ja) メモリ装置および計算機
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
WO2018127948A1 (ja) 計算機システム
US8886908B2 (en) Management of multiple capacity types in storage systems
JP5350077B2 (ja) 情報処理装置及びこれを備えた画像形成装置
JP5471677B2 (ja) 仮想ディスク制御システム、方法及びプログラム
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム
JP2009026310A (ja) データ記憶方法
US11221985B2 (en) Metadata space efficient snapshot operation in page storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130723

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees