JP2023028793A - メモリシステム及び方法 - Google Patents
メモリシステム及び方法 Download PDFInfo
- Publication number
- JP2023028793A JP2023028793A JP2021134699A JP2021134699A JP2023028793A JP 2023028793 A JP2023028793 A JP 2023028793A JP 2021134699 A JP2021134699 A JP 2021134699A JP 2021134699 A JP2021134699 A JP 2021134699A JP 2023028793 A JP2023028793 A JP 2023028793A
- Authority
- JP
- Japan
- Prior art keywords
- data
- access frequency
- tile
- tiles
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims description 37
- 230000007704 transition Effects 0.000 claims abstract description 57
- 230000009467 reduction Effects 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 23
- 230000001629 suppression Effects 0.000 abstract description 4
- 230000001747 exhibiting effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008707 rearrangement Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101100519700 Candida albicans (strain SC5314 / ATCC MYA-2876) PGA12 gene Proteins 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】消費電力を抑制する。【解決手段】メモリシステムは、それぞれにデータが配置され得る複数のページを含むメモリと、複数のページに配置されたデータを再配置するデフラグ装置と、を備え、メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、複数の状態は、電源オフ状態とは異なる低消費電力状態を含み、デフラグ装置は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、データを再配置する。【選択図】図1
Description
本開示は、メモリシステム及び方法に関する。
例えば特許文献1~特許文献3に示されるように、メモリ内の領域ごとに低消費電力モードを設定する手法が知られている。
半導体プロセス微細化等に伴い、リーク電流による消費電力増加の課題が顕在化してきている。
本開示の一側面は、消費電力を抑制することを可能にする。
本開示の一側面に係るメモリシステムは、それぞれにデータが配置され得る複数のページを含むメモリと、複数のページに配置されたデータを再配置するデフラグ装置と、を備え、メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、複数の状態は、電源オフ状態とは異なる低消費電力状態を含み、デフラグ装置は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、データを再配置する。
本開示の一側面に係る方法は、それぞれにデータが配置され得る複数のページを含むメモリの複数のページに配置されたデータを再配置する方法であって、メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、方法は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、データを再配置することを含む。
以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の要素等には同一の符号を付することにより重複する説明を省略する。
以下に示す項目順序に従って本開示を説明する。
1.実施形態
2.変形例
3.効果の例
1.実施形態
2.変形例
3.効果の例
1.実施形態
図1は、実施形態に係るメモリシステムの概略構成の例を示す図である。メモリシステム100は、バスマスタ1と、メモリ2と、PMU3と、デフラグ装置4と、これらが接続されるバス5とを含む。なお、バスマスタ1は、メモリシステム100の構成要素でなくてもよい。
図1は、実施形態に係るメモリシステムの概略構成の例を示す図である。メモリシステム100は、バスマスタ1と、メモリ2と、PMU3と、デフラグ装置4と、これらが接続されるバス5とを含む。なお、バスマスタ1は、メモリシステム100の構成要素でなくてもよい。
バスマスタ1は、バス5を介して、他の装置との間でデータの送受信等を行う。例えば、バスマスタ1は、バス5を介してメモリ2にデータアクセスし、メモリ2内のデータを読み出したり、メモリ2内にデータを書き込んだりする。バスマスタ1の例は、CPU(Central Processing Unit)、DMAC(Direct Memory Access Controller)、各種のハードウェアエンジン、各種のI/F(Intearface)回路等である。複数のバスマスタ1が存在してよく、図1には3つのバスマスタ1が例示される。
メモリ2は、バスマスタ1によって読み出されたり書き込まれたりするデータを記憶する。メモリ2は、揮発メモリ(VM:Volatile Memory)及び不揮発メモリ(NVM:Non Volatile Memory)のいずれであってもよく、また、揮発メモリ及び不揮発メモリの両方を含んで構成されてもよい。
メモリ2は、複数のページ21を含むように分割される。複数のページ21それぞれにデータが配置される。ページ21に配置されたデータ(ページデータ)ごとに、アクセスが可能であり、また、後述の再配置が可能である。
メモリ2は、複数のタイル22を含むようにも分割される。複数のタイル22それぞれは、1つ以上のページ21を含む。各タイル22の記憶容量やメモリ種類は、同じであってもよいし、異なっていてもよい。
アクセス頻度の異なるさまざまなデータがページ21に配置される。これについて、図2を参照して説明する。
図2は、データ配置の例を示す図である。この例では、メモリ2が16個のタイル22を含み、それぞれのタイル22が16個のページ21を含む。タイル22は、例えば番号管理される。この例では、0~15の番号で複数のタイル22が管理される。各番号に対応するタイル22を、タイル22-0~タイル22-15(タイル#0~タイル#15)と称し図示する。なお、タイル22の番号は、連番でなくてもよい。
番号の小さいタイルを「左側のタイル」とも称し、番号の大きいタイルを「右側のタイル」とも称する。番号管理において隣り合うタイルどうしを、「隣り合うタイル」とも称する。
図2には、アクセス頻度の異なるデータが配置された4種類のページ21が例示される。アクセス頻度が高いデータが配置されたページ21が、白塗りで図示される。アクセス頻度が低いデータが配置されたページ21、アクセス頻度が非常に(さらに)低いデータが配置されたページ21、及び、データが配置されていない未使用のページ21が、異なるハッチングで図示される。アクセス頻度が高いデータを、「高アクセス頻度データ」とも称する。アクセス頻度が低いデータ及び非常に低いデータを、「低アクセス頻度データ」とも称する。理解されるように、高アクセス頻度データ及び低アクセス頻度データは、各タイル22内に点在している。
図1に戻り、PMU3は、メモリ2の電源を管理する電源制御(管理)ユニット(Power Management Unit)であり、メモリ2を含めたメモリシステム100内の電源の制御を行うハードウェアモジュールである。PMU3によって、メモリ2の消費電力の制御が可能になる。例えばリーク電流による消費電力が抑制される。種々の公知の抑制手法が用いられてよく、当業者であれば理解できるので詳細な説明は省略する。
複数のタイル22それぞれの消費電力が、PMU3によって個別に制御される。すなわち、複数のタイル22それぞれは、消費電力抑制率が異なる複数の状態の間で遷移可能(切り替え可能)に構成される。複数の状態のいくつかの例について述べる。
複数の状態は、通常状態Nを含む。通常状態Nは、タイル22へのデータアクセス(タイル22内のデータへのアクセス)が可能な状態である。一方で、タイル22の消費電力は抑制されない。消費電力抑制率は、通常状態Nでの消費電力を基準とした場合の消費電力の抑制率である。通常状態Nでは、消費電力抑制率は0%である。
複数の状態は、1つ以上の異なる低消費電力状態を含む。低消費電力状態は、タイル22へのデータアクセスが直ちには行えない状態である。データアクセスのために通常状態Nに遷移する必要があり、その分、データアクセスに時間を要する。一方で、タイル22の消費電力は、通常状態Nよりも抑制される。メモリ2の仕様等に応じたさまざまな低消費電力状態が存在し得る。以下では、低消費電力状態が、低消費電力状態Xと、超低消費電力状態Yと、電源オフ状態Zとを含む場合を例に挙げて説明する。
低消費電力状態X、超低消費電力状態Y及び電源オフ状態Zの順に、タイル22の消費電力が小さくなる。例えば、低消費電力状態X、超低消費電力状態Y及び電源オフ状態Zそれぞれの消費電力抑制率は、20%、70%及び100%である。通常状態Nでの消費電力に対する低消費電力状態X、超低消費電力状態Y及び電源オフ状態Zそれぞれの消費電力の割合は、80%、30%及び0%である。一方で、低消費電力状態X、超低消費電力状態Y及び電源オフ状態Zの順に、通常状態Nへの遷移に要する時間が長くなる。なお、タイル22が揮発メモリのタイルの場合、電源オフ状態Zではデータは失われる。
データアクセス頻度の低いタイル22を低消費電力状態に遷移させることで、メモリシステム100全体の消費電力を抑制することが考えられる。しかしながら、先に説明した図2のように、高アクセス頻度のデータが配置されたページ21が各タイル22内に点在していると、低消費電力状態に遷移できるタイル22の数が限られる。この問題に対処するために、次に説明するデフラグ装置4によって、アクセス頻度が同等のデータが同じタイル内に可能な限りまとめて配置されるように、データが再配置(デフラグ)される。より多くのタイル22を低消費電力状態に遷移させることができるようになり、その分、メモリシステム100全体の消費電力を抑制することができる。
デフラグ装置4は、メモリ2の複数のページ21に配置されたデータを再配置する。デフラグ装置4は、DMAC41と、管理テーブル42と、シーケンサ43とを含む。これらの機能を有するように構成されたハードウェア(Defrag Hard Ware)によって、デフラグ装置4が実現されてよい。
DMAC41は、メモリ2にデータアクセスできるように構成される。DMAC41は、メモリ2にアクセスし、ページ21に配置されたデータを他のページ21に転送する。データの転送は、ページ21間のデータの入れ替えを含む。一方のページ21に配置されたデータが他方のページ21に転送されるとともに、他方のページ21のデータが一方のページ21に転送される。入れ替えの際にデータを一時的に記憶するバッファも、DMAC41に含まれる。データの転送は、一方向転送を含む。転送先のページ21が未使用の場合には、転送元のページ21のデータがその未使用のページ21に転送される。データの再配置のための一連の処理は、途中にメモリ2へのデータアクセスが発生しないように、アトミックに実行される。
管理テーブル42は、データを管理するように構成される。管理は、データのアドレス等の管理の他に、アクセス頻度の管理を含む。アクセス頻度は、例えばアクセス回数やアクセス間隔に基づいてカウント(算出等)される。カウントは、例えば後述のシーケンサ43によって実行され、カウント結果は、管理テーブル42によって管理される。2種類の管理テーブル42を例に挙げて説明する。
図3及び図4は、管理テーブルの例を示す図である。この例では、管理テーブル42は、複数のタイル22それぞれに対応して設けられる。各管理テーブル42を、管理テーブル42-0等と称し図示する。管理テーブル42-0は、タイル22-0内のデータを管理する。他の管理テーブル42についても同様である。
図3に示される例では、管理テーブル42は、「ページアドレス」と、「物理アドレス」と、「Valid/Invalid」と、「アクセス回数」とを対応付けて記述する。
「ページアドレス」は、バスマスタ1やプログラムから読み取れる、ページ21の論理アドレスに相当する。図では、ページアドレスは、「0x000」等として模式的に示される。例えばバスマスタ1からデータアクセスがあった際には、管理テーブル42中のページアドレスの中から、アクセスに係る論理アドレスに一致する行が参照され、対応する物理アドレスに変換される。変換によって得られた物理アドレスで特定されるメモリ2中のページ21に対して、データアクセスが行われる。なお、データが再配置されても、ページアドレスは変更されない。
「物理アドレス」及び「Valid/Invalid」は、ページデータ情報の例である。物理アドレスは、メモリ2内の物理的なアドレスである。図では、物理アドレスは、「d0」等として模式的に示される。物理アドレスがページアドレスに対応付けられることで、ページアドレスと物理アドレスとの間のアドレス変換テーブルが与えられる。データの再配置に応じて、ページアドレスと物理アドレスとの対応関係すなわちアドレス変換テーブルが更新される。Valid/Invavlidは、物理アドレスによって特定されるページ21に書き込まれているデータが有効(Valid)及び無効(Invalid)のいずれであるかを示す。Invalidのページ21は、未使用のページ21である。
アクセス回数は、データアクセスのカウント数である。図では、カウント数は、「a0」等として模式的に示される。アクセス回数をカウント期間で除算して得られる平均アクセス間隔が、そのデータのアクセス間隔としてカウントされる。アクセス間隔に基づいて、アクセス頻度がカウントされる。例えば、アクセス間隔の逆数が、アクセス頻度としてカウントされる。アクセス回数そのものがアクセス頻度としてカウントされてもよい。データアクセスの都度、そのデータのアクセス頻度が更新され、管理テーブル42が更新される。
管理テーブル42は、対応するタイル22内の(データのうちの)最高アクセス頻度データのアクセス頻度、及び、最低アクセス頻度データのアクセス頻度も管理する。最高アクセス頻度データのアクセス頻度を、アクセス頻度最高値Aと称し図示する。最低アクセス頻度データのアクセス頻度を、アクセス頻度最低値Bと称し図示する。
データのアクセス頻度が更新されると、更新後のアクセス頻度と、アクセス頻度最高値A及びアクセス頻度最低値Bとが比較される。更新後のアクセス頻度がアクセス頻度最高値Aよりも高い場合には、アクセス頻度最高値Aがそのアクセス頻度となるように更新される。更新後のアクセス頻度がアクセス頻度最低値Bよりも低い場合には、アクセス頻度最低値Bがそのアクセス頻度となるように更新される。
図4に示される例では、管理テーブル42は、「ページアドレス」と、「物理アドレス」と、「Valid/Invalid」と、「前回カウンタ値」と、「最新カウンタ値」とを対応付けて記述する。アクセス頻度最高値A及びアクセス頻度最低値Bも管理される。
「前回カウンタ値」及び「最新カウンタ値」は、例えば図示しない基準となるフリーカウンタのカウンタ値である。図では、前回カウンタ値及び最新カウンタ値は、「pc0」、「lc0」等として模式的に示される。フリーカウンタは、デフラグ装置4内に設けられてもよいし、デフラグ装置4外に設けられてもよい。最新カウンタ値は、最新のデータアクセス時に取得されたカウンタ値である。前回カウンタ値は、1つ前のデータアクセス時に取得されたカウンタ値である。
最新カウンタ値と前回カウンタ値との差が、そのデータのアクセス間隔としてカウントされる。アクセス間隔に基づいて、アクセス頻度がカウントされる。データアクセスが行われる都度、そのデータのアクセス頻度が更新され、管理テーブル42が更新される。
図1に戻り、デフラグ装置4のシーケンサ43は、DMAC41及び管理テーブル42、さらにはPMU3を用いて、さまざまな制御を行う。
シーケンサ43による制御は、DMAC41の制御を含む。シーケンサ43は、管理テーブル42を参照しつつDMAC41を制御することにより、ページ21に配置されたデータを再配置する。具体的に、シーケンサ43は、高アクセス頻度データがまとめられたタイル22と、低アクセス頻度データがまとめられたタイル22とが存在するように、データを再配置する。シーケンサ43は、データの無いタイル22、すなわち未使用のページ21だけを含むタイル22が存在するようにも、データを再配置し得る。
例えば、シーケンサ43は、隣り合うタイル22どうしのアクセス頻度最高値A及びアクセス頻度最低値Bの比較結果に基づいて、データを再配置する。一方の(左側の)タイル22内のアクセス頻度最高値A、そのアクセス頻度最低値B、他方の(右側の)タイル22内のアクセス頻度最高値A、及び、そのアクセス頻度最低値Bが、この順に低くなるように、データが再配置されてよい。
上述のようにデータを再配置するために、例えば、シーケンサ43は、左側のタイル22のアクセス頻度最低値Bが右側のタイル22のアクセス頻度最高値Aを下回らないように、それらのタイル22間でデータを転送する。左側のタイル22のアクセス頻度最低値Bが右側のタイル22のアクセス頻度最高値Aよりも低い場合、シーケンサ43は、左側のタイル22の最低アクセス頻度データと、右側のタイル22の最高アクセス頻度データとを入れ替える。転送先のタイル22に未使用のページ21が存在する場合、シーケンサ43は、転送元のタイル22のデータを、その未使用のページ21に転送する。具体的な手順について、図5を参照して説明する。
図5は、デフラグ装置において実行される処理(データ再配置方法)の例を示すフローチャートである。
ステップS1において、デフラグ装置4は、データアクセスがあるか否かを判断する。シーケンサ43は、メモリ2へのデータアクセスがあるか否かを判断する。アクセスがある場合(ステップS1)、デフラグ装置4は、ステップS2に処理を進める。そうでない場合(ステップS1:No)、データアクセスがあるまでステップS1の判断が繰り返される。
ステップS2において、デフラグ装置4は、アクセス頻度をカウントする。シーケンサ43が、アクセスされたデータのアクセス頻度をカウントする。アクセス頻度のカウントは、先に図3及び図4を参照して説明したように、アクセス回数のカウント結果に基づいて行われてもよいし、カウンタ値の取得に基づいて行われてもよい。
ステップS3において、デフラグ装置4は、アクセス頻度最高値Aが設定されているか否かを判断する。シーケンサ43は、アクセスされたデータを含むタイル22のアクセス頻度最高値Aが、管理テーブル42に設定されているか否かを判断する。アクセス頻度最高値Aが設定されている場合(ステップS3:Yes)、デフラグ装置4は、ステップS4に処理を進める。そうでない場合(ステップS4:No)、デフラグ装置4は、ステップS5に処理を進める。
ステップS4において、デフラグ装置4は、アクセス頻度がアクセス頻度最高値Aよりも高い(大きい)か否かを判断する。シーケンサ43は、先のステップS2でカウントしたアクセス頻度が、管理テーブル42に設定されたアクセス頻度最高値Aよりも高いか否かを判断する。アクセス頻度がアクセス頻度最高値Aよりも高い場合(ステップS4:Yes)、デフラグ装置4は、ステップS5に処理を進める。そうでない場合(ステップS4:No)、デフラグ装置4は、ステップS7に処理を進める。
ステップS5において、デフラグ装置4は、アクセス頻度最高値Aを設定又は更新する。シーケンサ43は、管理テーブル42のアクセス頻度最高値Aが先のステップS2でカウントしたアクセス頻度となるように、アクセス頻度最高値Aを設定又は更新する。
ステップS6において、デフラグ装置4は、左隣のタイルのアクセス頻度最低値Bとの大小関係が反転しているか否かを判断する。シーケンサ43は、先のステップS5で設定又は更新したアクセス頻度最高値Aと、左隣のタイル22のアクセス頻度最低値Bとの大小関係が反転したか否かを判断する。左隣のタイル22のアクセス頻度最低値Bの方が高い場合には、大小関係が判定していると判断される。大小関係が反転している場合(ステップS6:Yes)、デフラグ装置4、ステップS11に処理を進める。そうでない場合(ステップS6:No)、デフラグ装置4は、ステップS1に処理を戻す。
ステップS7において、デフラグ装置4は、アクセス頻度最低値Bが設定されているか否かを判断する。シーケンサ43は、アクセスされたデータを含むタイル22のアクセス頻度最低値Bが、管理テーブル42に設定されているか否かを判断する。アクセス頻度最低値Bが設定されている場合(ステップS7:Yes)、デフラグ装置4は、ステップS8に処理を進める。そうでない場合(ステップS7:No)、デフラグ装置4は、ステップS9に処理を進める。
ステップS8において、デフラグ装置4は、アクセス頻度がアクセス頻度最低値Bよりも低い(小さい)か否かを判断する。シーケンサ43は、先のステップS2でカウントしたアクセス頻度が、管理テーブル42に設定されたアクセス頻度最低値Bよりも低いか否かを判断する。アクセス頻度がアクセス頻度最低値Bよりも低い場合(ステップS8:Yes)、デフラグ装置4は、ステップS9に処理を進める。そうでない場合(ステップS8:No)、デフラグ装置4は、ステップS1に処理を戻す。
ステップS9において、デフラグ装置4は、アクセス頻度最低値Bを設定又は更新する。シーケンサ43は、管理テーブル42のアクセス頻度最低値Bが先のステップS2でカウントしたアクセス頻度となるように、アクセス頻度最低値Bを設定又は更新する。
ステップS10において、デフラグ装置4は、右隣のタイルのアクセス頻度最高値Aとの大小関係が判定しているか否かを判断する。シーケンサ43は、先のステップS9で設定又は更新したアクセス頻度最低値Bと、右隣のタイル22のアクセス頻度最高値Aのとの大小関係が反転しているか否かを判断する。右隣りのタイル22のアクセス頻度最高値Aの方が高い場合には、大小関係が判定していると判断される。大小関係が反転した場合(ステップS10:Yes)、デフラグ装置4は、ステップS11に処理を進める。そうでない場合(ステップS10:No)、デフラグ装置4は、ステップS1に処理を戻す。
ステップS11において、デフラグ装置4は、未使用のページが存在するか否かを判断する。シーケンサ43は、管理テーブル42を参照して、データの転送先のタイル22内に未使用のページ21が存在するか否かを判断する。未使用のページが存在する場合(ステップS11:Yes)、デフラグ装置4は、ステップS12に処理を進める。そうでない場合(ステップS11:No)、デフラグ装置4は、ステップS14に処理を進める。
ステップS12において、デフラグ装置4は、データを転送する。シーケンサ43は、
DMAC41を制御して、データを、転送先のタイル22内の未使用のページ21に転送する。
DMAC41を制御して、データを、転送先のタイル22内の未使用のページ21に転送する。
ステップS13において、デフラグ装置4は、管理テーブル42を更新する。シーケンサ43は、先のステップS12でのデータ転送の結果が反映されるように、管理テーブル42を更新する。転送元及び転送先のタイル22内のデータに関する情報が更新される。ページアドレスと物理アドレスとの対応付け(変換テーブル)も更新される。管理テーブル42のアクセス頻度最高値A又はアクセス頻度最低値Bも更新される。ステップS13の処理の完了後、デフラグ装置4は、ステップS16に処理を進める。
ステップS14において、デフラグ装置4は、データを入れ替える。シーケンサ43は、DMAC41を制御して、転送元のタイル22内のデータと、転送先のタイル22内のデータとを入れ替える。
ステップS15において、デフラグ装置4は、管理テーブル42を更新する。シーケンサ43は、先のステップS14でのデータ入れ替えの結果が反映されるように、管理テーブル42を更新する。転送元及び転送先のタイル22内のデータに関する情報が更新される。管理テーブル42のアクセス頻度最高値A又はアクセス頻度最低値Bも更新される。ステップS15の処理の完了後、デフラグ装置4は、ステップS16に処理を進める。
ステップS16において、デフラグ装置4は、メモリシステム100の動作を終了するか否かを判断する。メモリシステム100の動作を終了する場合(ステップS16:Yes)、フローチャートの処理は終了する。そうでない場合(ステップS16:No)、デフラグ装置4は、ステップS1に処理を戻す。
例えば以上のような処理が繰り返し実行されることにより、データが再配置される。
図6は、再配置後のデータ配置の例を示す図である。この例では、高アクセス頻度データ(が配置されたページ21)が、左側のタイル22にまとめられる。未使用のページ21が、右側のタイル22にまとめられる。低アクセス頻度データ(が配置されたページ21)が、それらの間のタイル22にまとめられる。
タイル22-0のアクセス頻度最高値A及びアクセス頻度最低値Bを、アクセス頻度最高値A-0及びアクセス頻度最低値B-0と称し図示する。タイル22-1~タイル22-15それぞれのアクセス頻度最高値A及びアクセス頻度最低値Bについても同様である。なお、データの無いタイル22のアクセス頻度最高値A及びアクセス頻度最低値Bは、存在しなくてもよいし、最も低い値(例えばゼロ)として扱われてもよい。データのあるタイル22について述べると、例えば、タイル22-0のアクセス頻度最高値A-0、アクセス頻度最低値B-0、タイル22-1のアクセス頻度最高値A-1及びアクセス頻度最低値B-1が、この順に小さくなるように、データが配置される。他のタイル22についても同様である。
図6に示される例では、タイル22-0~タイル22-6の6個のタイル22が、アクセス頻度が高いデータが配置されたページ21を含む。これらの6個のタイル22に、高アクセス頻度データがまとめられる。
タイル22-7~タイル22-10の4個のタイル22が、アクセス頻度が高いデータが配置されたページ21は含まない一方で、アクセス頻度が低いデータが配置されたページ21を含む。タイル22-11~タイル22-13の3個のタイル22が、アクセス頻度が低いデータが配置されたページ21は含まない一方で、アクセス頻度が非常に低いデータが配置されたページ21を含む。これらの7個のタイル22に、低アクセス頻度のデータがまとめられる。
タイル22-14及びタイル22-15の2個のタイル22が、アクセス頻度が非常に低いデータが配置されたページ21は含まない一方で、未使用のページ21を含む。
例えば、タイル22-0~タイル22―6の7個のタイル22の状態を、通常状態N(消費電力抑制率0%)とすることが考えられる。タイル22―7~タイル22-10の4個のタイル22の状態を、低消費電力状態X(消費電力抑制20%)とすることが考えられる。タイル22-11~タイル22-13の3個の22の状態を、超低消費電力状態Y(消費電力抑制率70%)とすることが考えられる。タイル22-14及びタイル22-15の2個のタイル22の状態を、電源オフ状態Z(消費電力抑制率100%)とすることが考えられる。この場合の消費電力は、以下の式(1)で表されるように、すべてのタイル22の状態を通常状態Nとした場合の69%にまで抑制することができる(消費電力抑制率31%)。
例えばバスマスタ1が、キャッシュメモリが搭載されたプロセッサ(CPU等)である場合には、メモリ2へのアクセス頻度が低減され、その分、低アクセス頻度データがまとめられたタイル22の数が増加する。費電力抑制の効果がさらに高められる。一例として、1個のプロセッサと4個のタイル22が存在する場合で説明する。キャッシュメモリが無い場合のアクセス頻度を100%とすると、プロセッサからメモリ2の各タイル22へのアクセスの割合は4分の1の25%となる。キャッシュミスによりメモリ2へのデータアクセスが発生する確率が5%であれば、各タイル22へのアクセス頻度は25%×5%=1.25%にまで低減される。
上記とは別の手順によるデータの再配置も可能である。例えば、データの再配置対象の(デフラグ対象の)タイル22が設定される。すべてのタイル22が再配置対象に設定されてもよい。デフラグ装置4のシーケンサ43は、再配置対象のタイル22内のすべてのデータをアクセス頻度に応じてランキングし、ランキング結果に基づいて、データを再配置する。ランキングは、例えば、アクセス頻度が高い順のランキングである。
例えば、シーケンサ43は、管理テーブル42を参照して、再配置対象のタイル22のアクセス頻度最高値Aと、アクセス頻度最低値Bとの差を、差分値ΔABとしてカウントする。差分値ΔABは、例えばシーケンサ43によってカウントされ、管理テーブル42によって管理される。
シーケンサ43は、再配置対象のタイル22のうちの少なくとも1つのタイル22の差分値ΔABが閾値よりも大きい場合に、データをランキングし、データを再配置する。例えば、差分値ΔABが以下の条件1及び条件2のいずれかを満たす場合に、ランキングが行われる。条件1及び条件2のいずれを用いるのかは、予め設定されていてよい。ランキング中は、メモリ2へのデータアクセスのカウントは停止される。閾値は、タイル22ごとに個別に設定されてもよい。
条件1:再配置対象のタイル22のうちの1つのタイル22の差分値ΔABが閾値よりも大きい。
条件2:再配置対象のすべてのタイル22の差分値ΔABが閾値よりも大きい。
条件1:再配置対象のタイル22のうちの1つのタイル22の差分値ΔABが閾値よりも大きい。
条件2:再配置対象のすべてのタイル22の差分値ΔABが閾値よりも大きい。
シーケンサ43は、アクセス頻度の高いデータから順に、左側のタイル22内のページ21に配置する。このようなデータの再配置によっても、先に図5を参照して説明したようなデータ配置が得られる。
図1に戻り、シーケンサ43による制御は、PMU3の制御を含む。シーケンサ43は、PMU3を制御することによって、複数のタイル22それぞれの状態を、消費電力の抑制率が異なる複数の状態の間で遷移させる(切り替える)。
先に図6を参照して説明したように、データを含まないタイル22、すなわちデータが配置されていない未使用のページ21だけを含むタイル22が存在し得る。例えば、タイル22-14及びタイル22-15が存在するように、データが再配置される。その場合、シーケンサ43は、タイル22-14及びタイル22-15の状態を、電源オフ状態Zに遷移させる。これらのタイル22の消費電力抑制率が最大化される。
データを含むタイル22については、シーケンサ43は、データアクセス頻度が低いタイル22ほど消費電力抑制率が大きい状態に遷移するように、複数のタイル22それぞれの状態を遷移させる。アクセス頻度が低いデータがまとめられたタイル22の状態を、デフラグ装置4(ハードウェア)により自動的に低消費電力状態に遷移させることで、メモリシステム100全体の消費電力(リーク電力等)を低減することができる。状態遷移の例について、図7及び図8を参照して説明する。
図7及び図8は、タイルの状態遷移(遷移方法)の例を示す図である。タイルの状態遷移は、先に図5を参照して説明したデータの再配置とは別に独立して行われる。各遷移の際に、シーケンサ43は、状態遷移のリクエストをPMU3に対して発行する。PMU3は、状態遷移が完了したらその旨の通知をシーケンサ43に返す。
図7に示される例では、シーケンサ43は、タイル22のアクセス頻度最高値Aに基づいて、そのタイル22の状態を遷移させる。データアクセス時のタイル22の状態は、通常状態Nである。アクセスされたデータのアクセス頻度がカウントされ、更新される。そのデータを含むタイル22のアクセス頻度最高値A又はアクセス頻度最低値Bが更新され得る。
データアクセス完了後、タイル22の状態は、通常状態Nから別の状態に直ちに遷移する。データアクセスがあったタイル22のアクセス頻度最高値Aに対する閾値判断が行われる。閾値として、閾値a及び閾値bが例示される。閾値bは、閾値aよりも小さい。閾値a及び閾値bは、例えばソフトウェアによって書き換え可能である。
シーケンサ43は、タイル22のアクセス頻度最高値Aが閾値aよりも大きい場合、タイル22の状態を、通常状態Nから低消費電力状態Xに遷移させる。通常状態Nよりもタイル22の消費電力が抑制される。データアクセスに応じて、シーケンサ43は、タイル22の状態を、低消費電力状態Xから通常状態Nに遷移させる。
シーケンサ43は、タイル22のアクセス頻度最高値Aが閾値a以下であり且つ閾値bよりも大きい場合、タイル22の状態を、通常状態Nから超低消費電力状態Yに遷移させる。低消費電力状態Xよりも消費電力がさらに抑制される。データアクセスに応じて、シーケンサ43は、タイル22の状態を、超低消費電力状態Yから通常状態Nに遷移させる。
シーケンサ43は、タイル22が不揮発メモリのタイルでありそのアクセス頻度最高値Aが閾値b以下の場合、タイル22の状態を、通常状態Nから電源オフ状態Zに遷移させる。超低消費電力状態Yよりも消費電力がさらに抑制される。電源オフ状態Zに遷移しない場合には、データアクセスがあるまで、タイル22の状態は超低消費電力状態Yに留まる。データアクセスに応じて、シーケンサ43は、タイル22の状態を、電源オフ状態Zから通常状態Nに遷移させる。なお、タイル22が揮発メモリのタイルであっても、タイル22が未使用のページ21だけを含む場合には、タイル22の状態が電源オフ状態Zに遷移してよい。
図8に示される例では、シーケンサ43は、タイル22へのデータアクセスがない期間(非アクセス期間)が長いタイル22ほど消費電力抑制率が大きい状態に遷移するように、複数のタイル22それぞれの状態を遷移させる。この例では、非アクセス期間は、クロックサイクル数で規定される。
非アクセス期間に対する閾値判断が行われる。閾値として、クロックサイクル数n、クロックサイクル数m及びクロックサイクル数pが例示される。クロックサイクル数mは、クロックサイクル数nよりも大きい。クロックサイクル数pは、クロックサイクル数mよりも大きい。クロックサイクル数n、クロックサイクル数m及びクロックサイクル数pは、例えばソフトウェアによって書き換え可能である。
シーケンサ43は、タイル22の非アクセス期間がクロックサイクル数n以上になると、タイル22の状態を、通常状態Nから低消費電力状態Xに遷移させる。通常状態Nよりもタイル22の消費電力が抑制される。データアクセスに応じて、シーケンサ43は、タイル22の状態を、低消費電力状態Xから通常状態Nに遷移させる。
シーケンサ43は、タイル22の非アクセス期間がクロックサイクル数m以上になると、タイル22の状態を、低消費電力状態Xから超低消費電力状態Yに遷移させる。低消費電力状態Xよりもタイル22の消費電力がさらに抑制される。データアクセスに応じて、シーケンサ43は、タイル22の状態を、超低消費電力状態Yから通常状態Nに遷移させる。
シーケンサ43は、タイル22が不揮発メモリのタイルでありその非アクセス期間がクロックサイクル数p以上になると、タイル22の状態を、超低消費電力状態Yから電源オフ状態Zに遷移させる。超低消費電力状態Yよりも消費電力がさらに抑制される。電源オフ状態Zに遷移しない場合には、データアクセスがあるまで、タイル22の状態は超低消費電力状態Yに留まる。データアクセスに応じて、シーケンサ43は、タイル22の状態を、電源オフ状態Zから通常状態Nに遷移させる。なお、タイル22が揮発メモリのタイルであっても、タイル22が未使用のページ21だけを含む場合には、タイル22の状態が電源オフ状態Zに遷移してよい。
例えば以上のようにして、データアクセス頻度の低いタイル22の状態、すなわち低アクセス頻度データがまとめられたタイル22の状態を、低消費電状態に遷移させることができる。
2.変形例
開示される技術は、上記実施形態に限定されない。いくつかの変形例について述べる。
開示される技術は、上記実施形態に限定されない。いくつかの変形例について述べる。
上記実施形態では、デフラグ装置4の機能がいずれもハードウェアによって実現される例について説明した。ただし、デフラグ装置4のいくつかの機能がソフトウェアによって実現されてもよい。例えば、データの再配置、データの転送(入れ替えを含む)、ページアドレス及び物理アドレスの対応付けの更新(アドレス変換テーブルの更新)の機能が、ソフトウェアによって実現されてよい。ただし、ハードウェアによる実現の方が、処理の高速化等のメリットがある。データ転送をソフトウェアで実行すると、例えば1ワードデータあたり最低4クロックサイクルの処理期間が必要になるが、ハードウェア(DMAC41)で実行することにより、1ワードデータあたり1クロックサイクルにまで高速化できる。さらに、ソフトウェアの裏で転送ができるので、ソフトウェアから見たオーバーヘッドをゼロにすることも可能である。
上記実施形態では、メモリ2が16個のタイル22を含み、各タイル22が16個のページ21を含む例について説明した。ただし、メモリ2に含まれるタイル22の数は、2つ以上の任意の数であってよい。タイル22に含まれるページ21の数は、1以上の任意の数であってよい。
3.効果の例
以上で説明した技術は、例えば次のように特定される。図1~図8を参照して説明したように、メモリシステム100は、メモリ2と、デフラグ装置4と、を備える。メモリ2は、それぞれにデータが配置され得る複数のページ21を含む。デフラグ装置4は、複数のページ21に配置されたデータを再配置する。メモリ2は、それぞれが1つ以上のページ21を含む複数のタイル22を含む。複数のタイル22それぞれは、消費電力抑制率が異なる複数の状態(例えば通常状態N、低消費電力状態X、超低消費電力状態Y、電源オフ状態Z)の間を遷移可能に構成される。複数の状態は、電源オフ状態とは異なる低消費電力状態を含む。デフラグ装置4は、高アクセス頻度データがまとめられたタイル22と、低アクセス頻度データがまとめられたタイル22とが存在するように、データを再配置する。
以上で説明した技術は、例えば次のように特定される。図1~図8を参照して説明したように、メモリシステム100は、メモリ2と、デフラグ装置4と、を備える。メモリ2は、それぞれにデータが配置され得る複数のページ21を含む。デフラグ装置4は、複数のページ21に配置されたデータを再配置する。メモリ2は、それぞれが1つ以上のページ21を含む複数のタイル22を含む。複数のタイル22それぞれは、消費電力抑制率が異なる複数の状態(例えば通常状態N、低消費電力状態X、超低消費電力状態Y、電源オフ状態Z)の間を遷移可能に構成される。複数の状態は、電源オフ状態とは異なる低消費電力状態を含む。デフラグ装置4は、高アクセス頻度データがまとめられたタイル22と、低アクセス頻度データがまとめられたタイル22とが存在するように、データを再配置する。
上記のメモリシステム100によれば、高アクセス頻度データがまとめられたタイル22と、低アクセス頻度データがまとめられたタイル22とが存在するように、データが再配置される。例えば低アクセス頻度データがまとめられたタイル22の状態を低消費電力状態とすることで、消費電力を抑制することができる。
図7及び図8等を参照して説明したように、デフラグ装置4は、データアクセス頻度(例えばアクセス頻度最高値A)が低いタイル22ほど消費電力抑制率が大きい状態に遷移するように、複数のタイル22それぞれの状態を遷移させてよい。また、デフラグ装置4は、データアクセスのない期間が長いタイル22ほど消費電力抑制率が大きい状態に遷移するように、複数のタイル22それぞれの状態を遷移させてもよい。例えばこのようにして、低アクセス頻度データがまとめられたタイル22の状態を低消費電力状態に遷移させることができる。
図1及び図6~図8等を参照して説明したように、複数の状態は、電源オフ状態Zを含み、デフラグ装置4は、不揮発メモリのタイル22の状態を、電源オフ状態Zまで遷移させてよい。また、デフラグ装置4は、データが配置されていない未使用のページ21だけを含むタイル22が存在するようにデータを再配置した場合には、当該タイル22の状態を、電源オフ状態Zに遷移させてよい。これにより、消費電力をさらに抑制することができる。
図1、図5及び図6等を参照して説明したように、タイル22内の最高アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最高値Aとし、最低アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最低値Bとすると、デフラグ装置4は、番号管理において隣り合うタイル22のうちの一方のタイルのアクセス頻度最高値A、当該一方のタイル22のアクセス頻度最低値B、他方のタイル22のアクセス頻度最高値A、及び、当該他方のタイル22のアクセス頻度最低値Bが、この順に低くなるように、データを再配置してよい。また、デフラグ装置4は、番号管理において隣り合うタイル22のうちの一方のタイル22のアクセス頻度最高値Aと、他方のタイル22のアクセス頻度最低値Bとの比較結果に基づいて、データを再配置してよい。また、デフラグ装置4は、一方のタイル22のアクセス頻度最低値Bが、他方のタイル22のアクセス頻度最高値Aを下回らないように、一方のタイル22と他方のタイル22との間でデータを転送してよい。また、デフラグ装置4は、データのアクセス頻度のランキング結果に基づいて、データを再配置してよい。その場合、デフラグ装置4は、少なくとも1つのタイル22のアクセス頻度最高値Aとアクセス頻度最低値Bとの差分値ΔABが閾値よりも大きい場合に、データを再配置してよい。例えばこのようにしてデータを再配置することができる。
図5、図7及び図8等を参照して説明した方法も、開示される技術の1つである。方法は、それぞれにデータが配置され得る複数のページ21を含むメモリ2の複数のページ21に配置されたデータを再配置する方法である。メモリ2は、それぞれが1つ以上のページ21を含む複数のタイル22を含む。複数のタイル22それぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成される。方法は、高アクセス頻度データがまとめられたタイル22と、低アクセス頻度データがまとめられたタイル22とが存在するように、データを再配置すること(例えばステップS12、S14)を含む。このような方法によっても、これまで説明したように消費電力を抑制することができる。
なお、本開示に記載された効果は、あくまで例示であって、開示された内容に限定されない。他の効果があってもよい。
以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
なお、本技術は以下のような構成も取ることができる。
(1)
それぞれにデータが配置され得る複数のページを含むメモリと、
前記複数のページに配置されたデータを再配置するデフラグ装置と、
を備え、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記複数の状態は、電源オフ状態とは異なる低消費電力状態を含み、
前記デフラグ装置は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置する、
メモリシステム。
(2)
前記デフラグ装置は、データアクセス頻度が低いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
(1)に記載のメモリシステム。
(3)
前記デフラグ装置は、データアクセスのない期間が長いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
(1)又は(2)に記載のメモリシステム。
(4)
前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、不揮発メモリのタイルの状態を、前記電源オフ状態まで遷移させる、
(2)又は(3)に記載のメモリシステム。
(5)
前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、データが配置されていない未使用のページだけを含むタイルが存在するように前記データを再配置した場合には、当該タイルの状態を、前記電源オフ状態に遷移させる、
(1)~(4)のいずれかに記載のメモリシステム。
(6)
前記タイル内の最高アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最高値とし、最低アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最低値とすると、
前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値、当該一方のタイルのアクセス頻度最低値、他方のタイルのアクセス頻度最高値、及び、当該他方のタイルのアクセス頻度最低値が、この順に低くなるように、前記データを再配置する、
(1)~(4)のいずれかに記載のメモリシステム。
(7)
前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値と、他方のタイルのアクセス頻度最低値との比較結果に基づいて、前記データを再配置する、
(1)~(6)のいずれかに記載のメモリシステム。
(8)
前記デフラグ装置は、前記一方のタイルのアクセス頻度最低値が、前記他方のタイルのアクセス頻度最高値を下回らないように、前記一方のタイルと前記他方のタイルとの間でデータを転送する、
(7)に記載のメモリシステム。
(9)
前記デフラグ装置は、前記データのアクセス頻度のランキング結果に基づいて、前記データを再配置する、
(1)~(8)のいずれかに記載のメモリシステム。
(10)
前記デフラグ装置は、少なくとも1つのタイルのアクセス頻度最高値とアクセス頻度最低値との差分値が閾値よりも大きい場合に、前記データを再配置する、
(9)に記載のメモリシステム。
(11)
それぞれにデータが配置され得る複数のページを含むメモリの前記複数のページに配置されたデータを再配置する方法であって、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記方法は、
高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置することを含む、
方法。
(1)
それぞれにデータが配置され得る複数のページを含むメモリと、
前記複数のページに配置されたデータを再配置するデフラグ装置と、
を備え、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記複数の状態は、電源オフ状態とは異なる低消費電力状態を含み、
前記デフラグ装置は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置する、
メモリシステム。
(2)
前記デフラグ装置は、データアクセス頻度が低いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
(1)に記載のメモリシステム。
(3)
前記デフラグ装置は、データアクセスのない期間が長いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
(1)又は(2)に記載のメモリシステム。
(4)
前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、不揮発メモリのタイルの状態を、前記電源オフ状態まで遷移させる、
(2)又は(3)に記載のメモリシステム。
(5)
前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、データが配置されていない未使用のページだけを含むタイルが存在するように前記データを再配置した場合には、当該タイルの状態を、前記電源オフ状態に遷移させる、
(1)~(4)のいずれかに記載のメモリシステム。
(6)
前記タイル内の最高アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最高値とし、最低アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最低値とすると、
前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値、当該一方のタイルのアクセス頻度最低値、他方のタイルのアクセス頻度最高値、及び、当該他方のタイルのアクセス頻度最低値が、この順に低くなるように、前記データを再配置する、
(1)~(4)のいずれかに記載のメモリシステム。
(7)
前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値と、他方のタイルのアクセス頻度最低値との比較結果に基づいて、前記データを再配置する、
(1)~(6)のいずれかに記載のメモリシステム。
(8)
前記デフラグ装置は、前記一方のタイルのアクセス頻度最低値が、前記他方のタイルのアクセス頻度最高値を下回らないように、前記一方のタイルと前記他方のタイルとの間でデータを転送する、
(7)に記載のメモリシステム。
(9)
前記デフラグ装置は、前記データのアクセス頻度のランキング結果に基づいて、前記データを再配置する、
(1)~(8)のいずれかに記載のメモリシステム。
(10)
前記デフラグ装置は、少なくとも1つのタイルのアクセス頻度最高値とアクセス頻度最低値との差分値が閾値よりも大きい場合に、前記データを再配置する、
(9)に記載のメモリシステム。
(11)
それぞれにデータが配置され得る複数のページを含むメモリの前記複数のページに配置されたデータを再配置する方法であって、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記方法は、
高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置することを含む、
方法。
1 バスマスタ
2 メモリ
21 ページ
22 タイル
3 PMU
4 デフラグ装置
41 DMAC
42 管理テーブル
43 シーケンサ
2 メモリ
21 ページ
22 タイル
3 PMU
4 デフラグ装置
41 DMAC
42 管理テーブル
43 シーケンサ
Claims (11)
- それぞれにデータが配置され得る複数のページを含むメモリと、
前記複数のページに配置されたデータを再配置するデフラグ装置と、
を備え、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記複数の状態は、電源オフ状態とは異なる低消費電力状態を含み、
前記デフラグ装置は、高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置する、
メモリシステム。 - 前記デフラグ装置は、データアクセス頻度が低いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
請求項1に記載のメモリシステム。 - 前記デフラグ装置は、データアクセスのない期間が長いタイルほど消費電力抑制率が大きい状態に遷移するように、前記複数のタイルそれぞれの状態を遷移させる、
請求項1に記載のメモリシステム。 - 前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、不揮発メモリのタイルの状態を、前記電源オフ状態まで遷移させる、
請求項2に記載のメモリシステム。 - 前記複数の状態は、前記電源オフ状態を含み、
前記デフラグ装置は、データが配置されていない未使用のページだけを含むタイルが存在するように前記データを再配置した場合には、当該タイルの状態を、前記電源オフ状態に遷移させる、
請求項1に記載のメモリシステム。 - 前記タイル内の最高アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最高値とし、最低アクセス頻度データのアクセス頻度を当該タイルのアクセス頻度最低値とすると、
前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値、当該一方のタイルのアクセス頻度最低値、他方のタイルのアクセス頻度最高値、及び、当該他方のタイルのアクセス頻度最低値が、この順に低くなるように、前記データを再配置する、
請求項1に記載のメモリシステム。 - 前記デフラグ装置は、番号管理において隣り合うタイルのうちの一方のタイルのアクセス頻度最高値と、他方のタイルのアクセス頻度最低値との比較結果に基づいて、前記データを再配置する、
請求項1に記載のメモリシステム。 - 前記デフラグ装置は、前記一方のタイルのアクセス頻度最低値が、前記他方のタイルのアクセス頻度最高値を下回らないように、前記一方のタイルと前記他方のタイルとの間でデータを転送する、
請求項7に記載のメモリシステム。 - 前記デフラグ装置は、前記データのアクセス頻度のランキング結果に基づいて、前記データを再配置する、
請求項1に記載のメモリシステム。 - 前記デフラグ装置は、少なくとも1つのタイルのアクセス頻度最高値とアクセス頻度最低値との差分値が閾値よりも大きい場合に、前記データを再配置する、
請求項9に記載のメモリシステム。 - それぞれにデータが配置され得る複数のページを含むメモリの前記複数のページに配置されたデータを再配置する方法であって、
前記メモリは、それぞれが1つ以上のページを含む複数のタイルを含み、
前記複数のタイルそれぞれは、消費電力抑制率が異なる複数の状態の間を遷移可能に構成され、
前記方法は、
高アクセス頻度データがまとめられたタイルと、低アクセス頻度データがまとめられたタイルとが存在するように、前記データを再配置することを含む、
方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021134699A JP2023028793A (ja) | 2021-08-20 | 2021-08-20 | メモリシステム及び方法 |
CN202280055288.5A CN117795488A (zh) | 2021-08-20 | 2022-03-08 | 存储器系统和方法 |
PCT/JP2022/009933 WO2023021751A1 (ja) | 2021-08-20 | 2022-03-08 | メモリシステム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021134699A JP2023028793A (ja) | 2021-08-20 | 2021-08-20 | メモリシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023028793A true JP2023028793A (ja) | 2023-03-03 |
Family
ID=85240366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021134699A Pending JP2023028793A (ja) | 2021-08-20 | 2021-08-20 | メモリシステム及び方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2023028793A (ja) |
CN (1) | CN117795488A (ja) |
WO (1) | WO2023021751A1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4209906B2 (ja) * | 2006-08-02 | 2009-01-14 | 株式会社日立製作所 | 低消費電力メモリ管理方法及びその方法を用いた計算機 |
JP2012164046A (ja) * | 2011-02-04 | 2012-08-30 | Seiko Epson Corp | メモリー制御装置 |
JP7004453B2 (ja) * | 2017-08-11 | 2022-01-21 | 株式会社半導体エネルギー研究所 | グラフィックスプロセッシングユニット |
-
2021
- 2021-08-20 JP JP2021134699A patent/JP2023028793A/ja active Pending
-
2022
- 2022-03-08 WO PCT/JP2022/009933 patent/WO2023021751A1/ja active Application Filing
- 2022-03-08 CN CN202280055288.5A patent/CN117795488A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN117795488A (zh) | 2024-03-29 |
WO2023021751A1 (ja) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI627536B (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
CN105103144B (zh) | 用于存储器的自适应控制的设备及方法 | |
JP2007523412A (ja) | メモリ割当て | |
US20030079087A1 (en) | Cache memory control unit and method | |
US8868835B2 (en) | Cache control apparatus, and cache control method | |
US11487478B2 (en) | Memory system and method of controlling nonvolatile memory | |
US10754785B2 (en) | Checkpointing for DRAM-less SSD | |
WO2018140228A1 (en) | Thermal and reliability based cache slice migration | |
US10705977B2 (en) | Method of dirty cache line eviction | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
US20140297966A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus | |
US20140297957A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus | |
US20190278517A1 (en) | Memory system and memory control method | |
WO2023021751A1 (ja) | メモリシステム及び方法 | |
JP2005339299A (ja) | ストレージ装置のキャッシュ制御方法 | |
US10963402B1 (en) | Using age matrices for managing entries in sub-queues of a queue | |
EP0290730A2 (en) | Data transfer apparatus and method for use in a data processing system | |
JP2010170328A (ja) | メモリ装置および計算機 | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
CN113535597A (zh) | 内存管理方法、内存管理单元和物联网设备 | |
JP2001290704A (ja) | マルチプロセス制御装置及びマルチプロセス制御方法 | |
CN110688072A (zh) | 缓存系统及其运作方法 | |
JP2012043249A (ja) | メモリの制御装置、及び制御方法 | |
JP7335253B2 (ja) | スコアボードの保存及び復元 | |
WO2001048611A1 (en) | Causality-based memory access ordering in a multiprocessing environment |