JP2021170241A - 情報処理装置及び制御プログラム - Google Patents
情報処理装置及び制御プログラム Download PDFInfo
- Publication number
- JP2021170241A JP2021170241A JP2020073253A JP2020073253A JP2021170241A JP 2021170241 A JP2021170241 A JP 2021170241A JP 2020073253 A JP2020073253 A JP 2020073253A JP 2020073253 A JP2020073253 A JP 2020073253A JP 2021170241 A JP2021170241 A JP 2021170241A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- frequency
- core
- pmem
- unit
- 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.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 26
- 230000015654 memory Effects 0.000 claims abstract description 178
- 238000012545 processing Methods 0.000 claims abstract description 78
- 230000001629 suppression Effects 0.000 claims abstract description 20
- 238000012544 monitoring process Methods 0.000 claims abstract description 18
- 230000006866 deterioration Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 137
- 230000008569 process Effects 0.000 description 130
- 238000001514 detection method Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 13
- 230000007423 decrease Effects 0.000 description 11
- 101000596298 Homo sapiens Modulator of macroautophagy TMEM150B Proteins 0.000 description 8
- 102100035252 Modulator of macroautophagy TMEM150B Human genes 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】互いに処理速度の異なる第1メモリ3及び第2メモリ4に対するアクセスを制御する共用のメモリコントローラ2b、を有するプロセッサ2を備える情報処理装置における、処理性能の低下を抑制する。【解決手段】第1メモリ3と、前記第1メモリ3とは処理速度の異なる第2メモリ4と、プロセッサ2と、を備え、前記プロセッサ2は、前記第1メモリ3及び前記第2メモリ4と接続され、前記第1メモリ3及び前記第2メモリ4に対するアクセスを制御する共用のメモリコントローラ2bと、前記第1メモリ3又は前記第2メモリ4にアクセスする複数の制御部2aと、前記第2メモリ4に対するデータの書き込み状態の監視結果に応じて、前記複数の制御部2aのうちの前記第2メモリ4にアクセスする第1制御部2aを制御することで、前記第2メモリ4に対する前記データの書き込み頻度を抑制する抑制処理部と、を備える。【選択図】図7
Description
本発明は、情報処理装置及び制御プログラムに関する。
サーバやPC(Personal Computer)等の情報処理装置においては、CPU(Central Processing Unit)等のプロセッサにより、主記憶装置、例えばDRAM(Dynamic Random Access Memory)等のメモリに対するアクセスが行なわれる。
プロセッサは、1以上のCPUコア(単に「コア」と称されてもよい)と、メモリコントローラ(以下、「MC」と表記する場合がある)とを備える。コアは、メモリに格納されたデータにアクセスするプロセス(「プログラム」と称されてもよい)を実行する。MCは、実行されるプロセスのアクセス対象であるメモリへのアクセスを制御する。
近年、次世代メモリ技術を採用したメモリが登場している。このようなメモリとしては、例えば、3D XPoint(登録商標)技術を採用したIntel Optane DC Persistent Memory(以下、「PMEM」又は「PM」と表記する場合がある)(登録商標)が知られている。
PMEMは、DRAMと比較して、処理性能(特に書込性能)が低いものの、容量単価が安価で大容量である。一例として、PMEMは、処理性能がDRAMの10分の1程度であり、記憶用量(記憶領域サイズ)がDRAMの10倍程度である。
PMEMは、DRAMと同様に、例えばDIMM(Dual Inline Memory Module)スロット等のメモリスロットに搭載可能である。このため、MCは、DRAM及びPMEMの双方に対するアクセスを制御することになる。換言すれば、第1メモリの一例であるDRAMと、DRAMとは処理性能(処理速度)の異なる第2メモリの一例であるPMEMとが、同一の記憶(メモリ)階層に混在することになる。
例えば、1つのプロセッサにおいて、DRAMにアクセスするプロセスとPMEMにアクセスするプロセスとを含む複数のプロセスが並行して実行されると、MCでは、DRAMに対する処理及びPMEMに対する処理の競合が発生する場合がある。
従って、例えば、MCにおいて、処理の競合により少なくとも1つのプロセスの処理時間(処理遅延)が増加する可能性がある。
1つの側面では、本発明は、互いに処理速度の異なる第1及び第2メモリに対するアクセスを制御する共用のメモリコントローラ、を有するプロセッサを備える情報処理装置における、処理性能の低下を抑制することを目的の1つとする。
1つの側面では、情報処理装置は、第1メモリと、前記第1メモリとは処理速度の異なる第2メモリと、プロセッサと、を備えてよい。前記プロセッサは、メモリコントローラと、複数の制御部と、抑制処理部と、を備えてよい。前記メモリコントローラは、前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラであってよい。前記複数の制御部は、前記第1メモリ又は前記第2メモリにアクセスしてよい。前記抑制処理部は、前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制してよい。
1つの側面では、互いに処理速度の異なる第1及び第2メモリに対するアクセスを制御する共用のメモリコントローラ、を有するプロセッサを備える情報処理装置における処理性能の低下を抑制することができる。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1−1〕DRAM及びPMEMを用いたハイブリッドメモリシステムについて
図1は、情報処理装置が備える各コンポーネント(モジュール)110〜150の処理速度(処理性能)、及び、コンポーネントが記憶装置の場合にはその記憶容量、の一例を示す図である。
〔1−1〕DRAM及びPMEMを用いたハイブリッドメモリシステムについて
図1は、情報処理装置が備える各コンポーネント(モジュール)110〜150の処理速度(処理性能)、及び、コンポーネントが記憶装置の場合にはその記憶容量、の一例を示す図である。
図1に例示するように、コンポーネントを処理速度の高い順に並べると、CPU110、DRAM120、PMEM130、SSD(Solid State Drive)140、HDD(Hard Disk Drive)150となる。コンポーネントを記憶容量の大きい順に並べると、HDD150、SSD140、PMEM130、DRAM120となる。DRAM120をSSD140と比較すると、処理速度は1000倍程度であり、記憶容量は1000分の1程度となる。PMEM130は、処理速度及び記憶容量の観点ではDRAM120とSSD140との間に位置し、DRAM120をPMEM130と比較すると、処理速度は10倍程度であり、記憶容量は10分の1程度となる。
このように、PMEM130は、DRAM120と比較して、処理性能(特に書込性能)が低く、また、書込耐性が低いものの、容量単価が安価で大容量である。また、PMEM130は、DRAM120と同様に、バイト単位のアクセスが可能であり、例えばDIMMスロット等のメモリスロットに搭載可能である。さらに、PMEM130は、DRAM120とは異なり不揮発性であるため、電源遮断時にデータが消失しない。
これらの理由から、DRAM120及びPMEM130の双方をメモリ(主記憶装置)として搭載する情報処理装置が普及することが想定される。
図2は、DRAM120及びPMEM130の双方をメモリとして搭載するサーバ100のハードウェア(HW)構成例を示すブロック図である。
図2に示すように、サーバ100は、例示的に、1以上(図2の例では1つ)のCPUソケットを搭載し、各CPUソケットにプロセッサの一例としてのCPU110を備える。サーバ100は、DRAM120及びPMEM130を用いてハイブリッドメモリシステムを構成する。ハイブリッドメモリシステムは、第1メモリの一例であるDRAM120と、DRAM120とは処理性能(処理速度)の異なる第2メモリの一例であるPMEM130とが、同一の記憶(メモリ)階層に混在するシステムである。
CPU110は、複数のコア112とメモリコントローラ(MC)114とを備える。
各CPUソケットでは、単一のCPU110において、複数のプロセス(図2の例では、「プロセスA」及び「プロセスB」と表記)116が同時に(並行して)実行される。例えば、CPU110は、コア112の処理リソース(資源)の競合を回避するために、各プロセス116を互いに異なるコア112により実行してよい。なお、2以上のコア112が1つのプロセス116を実行してもよい。
各CPU110のMC114は、1以上(図2の例では1つ)のDRAM120、及び、1以上(図2の例では1つ)のPMEM130と、同じメモリチャネルを介して接続され、DRAM120及びPMEM130の双方を管理(制御)する。
各プロセス116は、DRAM120及びPMEM130の一方又は双方にアクセスする。例えば、図2において、プロセスAがDRAM120にアクセスし、プロセスBがPMEM130にアクセスする。
この場合、プロセスA及びBによるDRAM120及びPMEM130へのアクセスは、共通するMC114により制御されるため、DRAM120へのアクセスと、PMEM130へのアクセスとの間で、MC114の競合が発生する場合がある。
図3は、プロセスBによるPMEM130への書込頻度の一例を示す図である。図3において、横軸は、PMEM130に対する書き込み頻度を示す。左縦軸(棒グラフ)は、PMEM130に対する書き込み頻度に応じた、DRAM120へのアクセスのバンド幅[GB/s]を示す。右縦軸(折れ線グラフ)は、PMEM130に対する書き込み頻度に応じた、PMEM130への書き込みのバンド幅[GB/s]を示す。
図3に例示するように、PMEM130への書き込み頻度が符号Aで示す頻度以下又は未満である(低頻度である)場合、プロセスAによるDRAM120へのアクセスのバンド幅は、70〜80GB/s程度で略一定である。しかし、当該バンド幅は、PMEM130への書き込み頻度が符号A以上である(高頻度である)場合、例えば、頻度が符号Aから符号Cに増加するにつれて急激に減少し、頻度が符号Cよりも大きい場合には、7〜8GB/s程度(低頻度時の1/10程度)にまで減少することがわかる。
一方、プロセスBによるPMEM130へのアクセスのバンド幅は、PMEM130への書き込み頻度が符号Aで示す頻度以下である(低頻度である)場合、頻度の増加に伴って、0.3〜3.2GB/s程度に徐々に増加する。しかし、当該バンド幅は、PMEM130への書き込み頻度が符号B以上である場合、飽和状態となり、3.2〜3.5GB/s程度で頭打ちとなることがわかる。
このように、プロセスBがPMEM130に対して、例えば符号Aで示す頻度以上の書き込み頻度(高頻度)で書き込みを行なう場合、プロセスAによるDRAM120へのアクセスの大幅な遅延が生じ得る。
プロセスAとプロセスBとの間の性能面の公平性の観点では、プロセスA又はプロセスBが単独でDRAM120又はPMEM130にアクセスを行なう場合の基準性能に対して、プロセスA及びプロセスBともに、50%程度の性能低下となるのが理想的である。
しかし、MC114の競合により、上述した理想的な性能低下のバランスが崩れてしまう。その結果、図3に例示するように、PMEM130に高頻度の書き込みを行なうプロセスBは、基準性能に対する性能低下が殆ど発生しない。これに対して、図3に例示するように、DRAM120にアクセスを行なうプロセスAは、基準性能に対して、50%を大きく上回る90%程度の性能低下が発生する。
このように、ハイブリッドメモリシステムにおいて、DRAM120に対するアクセスを行なうプロセスAと、PMEM130に対して高頻度に書き込みを行なうプロセスBとの間で、不公平なメモリアクセスが発生し得る。プロセスAとプロセスBとがMC114において競合する場合、MC114においてプロセスAの処理時間(処理遅延)が増加する。
そこで、一実施形態においては、互いに処理速度の異なる第1及び第2メモリに対するプロセスによるアクセスを制御する共用のメモリコントローラ、を有するプロセッサを備える情報処理装置における、処理性能の低下を抑制する手法を説明する。
〔1−2〕一実施形態の構成例
〔1−2−1〕ハードウェア構成例
図4は、一実施形態に係るサーバ1のHW構成例を示すブロック図である。サーバ1は、情報処理装置の一例である。情報処理装置としては、サーバに代えて、例えば、PC、メインフレーム等の種々のコンピュータが挙げられる。サーバ1は、HW構成として、例示的に、プロセッサ1a、メモリ1b、記憶部1c、IF(Interface)部1d、I/O(Input / Output)部1e、及び、読取部1fを備えてよい。
〔1−2−1〕ハードウェア構成例
図4は、一実施形態に係るサーバ1のHW構成例を示すブロック図である。サーバ1は、情報処理装置の一例である。情報処理装置としては、サーバに代えて、例えば、PC、メインフレーム等の種々のコンピュータが挙げられる。サーバ1は、HW構成として、例示的に、プロセッサ1a、メモリ1b、記憶部1c、IF(Interface)部1d、I/O(Input / Output)部1e、及び、読取部1fを備えてよい。
プロセッサ1aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ1aは、サーバ1内の各ブロックとバス1iで相互に通信可能に接続されてよい。一実施形態において、プロセッサ1aは、複数のプロセッサ(例えば複数のCPU)を含むマルチプロセッサであってもよい。また、複数のプロセッサの各々は、複数のプロセッサコアを有するマルチコアプロセッサであってもよい。
図5は、一実施形態に係るサーバ1のプロセッサ1a及びメモリ1bに着目したHW構成例を示すブロック図である。図5に例示するように、図4に示すプロセッサ1aは、1以上(図5の例では1つ)のプロセッサ2であってよい。プロセッサ2は、複数のコア2a、及び、MC2bを備えてよい。
MC2bは、1以上(図5の例では1つ)のDRAM3、及び、1以上(図5の例では1つ)のPMEM4と、同じ(共通の)メモリチャネル5を介して接続され、DRAM3及びPMEM4の双方を管理(制御)する。例えば、MC2bは、DRAM3及びPMEM4のそれぞれに、互いに異なるアドレス範囲を対応付け、コア2aから指定されたメモリアドレスに応じて、共有のメモリチャネル5を介して、DRAM3又はPMEM4に択一的にアクセスしてよい。
換言すれば、MC2bは、DRAM3及びPMEM4に対するプロセスによるアクセスを制御する共用のメモリコントローラの一例である。例えば、MC2bは、DRAM3に対するプロセスによるアクセスと、PMEM4に対するプロセスによるアクセスと、の双方で共用されてよい。
なお、プロセッサ1aとしては、CPUに代えて、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が用いられてもよい。MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
図4の説明に戻り、メモリ1bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ1bとしては、例えばDRAM等の揮発性メモリ、及び、PMEM等の不揮発性メモリの双方が挙げられる。すなわち、一実施形態に係るサーバ1は、DRAM及びPMEMを用いるハイブリッドメモリシステムを実現してよい。
例えば、図5に示すように、メモリ1bは、1つのプロセッサ2について、1以上のDRAM3と1以上のPMEM4とを含んでよい。DRAM3は、第1メモリの一例であり、PMEM4は、第1メモリとは処理速度の異なる(例えば低速である)第2メモリの一例である。
なお、図5の例では、説明の簡略化のため、1つのプロセッサ2にDRAM3及びPMEM4が1つずつ備えられるものとするが、これに限定されるものではない。例えば、1つのプロセッサ2には、MC2bごとに、DRAM3及びPMEM4のグループ(セット)が2つ以上備えられてもよい。また、図5の例では、DRAM3とPMEM4とがMC2bにカスケード状に接続されているが、これに限定されるものではなく、バッファ等の回路を介してDRAM3とPMEM4とがMC2bに並列に接続されてもよい。
図4の説明に戻り、記憶部1cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部1cとしては、例えばSSD等の半導体ドライブ装置、HDD等の磁気ディスク装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
また、記憶部1cは、サーバ1の各種機能の全部若しくは一部を実現するプログラム1gを格納してよい。例えば、サーバ1のプロセッサ1aは、記憶部1cに格納されたプログラム1g(制御プログラム)をメモリ1bに展開して実行することにより、図6に示す後述する処理部10としての機能を実現できる。処理部10の機能は、後述する、制御プロセス20、及び、複数のプロセス30の機能を含んでよい。
IF部1dは、図示しないネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部1dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、光通信(例えばFC(Fibre Channel;ファイバチャネル))等に準拠したアダプタを含んでよい。例えば、プログラム1gは、当該通信IFを介して、ネットワークからサーバ1にダウンロードされ、記憶部1cに格納されてもよい。
I/O部1eは、マウス、キーボード、又は操作ボタン等の入力部、並びに、タッチパネルディスプレイ、LCD(Liquid Crystal Display)等のモニタ、プロジェクタ、又はプリンタ等の出力部、の一方又は双方を含んでよい。
読取部1fは、記録媒体1hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部1fは、記録媒体1hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部1fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体1hにはプログラム1gが格納されてもよく、読取部1fが記録媒体1hからプログラム1gを読み出して記憶部1cに格納してもよい。
記録媒体1hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したサーバ1のHW構成は例示である。従って、サーバ1内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
〔1−2−2〕機能構成例
図6は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。図6に示すように、サーバ1は、一実施形態に係る制御に関する機能に着目すると、例示的に、処理部10の機能を備えてよい。処理部10は、図5に例示するサーバ1のプロセッサ2が、DRAM3又はPMEM4に展開したプログラム1gを実行することにより実現されてよい。
図6は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。図6に示すように、サーバ1は、一実施形態に係る制御に関する機能に着目すると、例示的に、処理部10の機能を備えてよい。処理部10は、図5に例示するサーバ1のプロセッサ2が、DRAM3又はPMEM4に展開したプログラム1gを実行することにより実現されてよい。
図6に示すように、処理部10は、例示的に、制御プロセス20、及び、複数のプロセス30を備えてよい。
複数のプロセス30のそれぞれは、DRAM3及びPMEM4の一方又は双方にアクセスする。プロセス30には、サーバ1のOS(Operating System)空間で動作するOSレベルのプロセスと、ユーザ空間で動作するユーザレベルのプロセス、例えばOS上で動作するアプリケーションのプロセスと、が含まれてよい。
例えば、プロセッサ2は、コア2aの処理リソース(資源)の競合を回避するために、各プロセス30を互いに異なるコア2aにより実行してよい。なお、2以上のコア2aが1つのプロセス30を実行してもよい。
制御プロセス20は、複数のプロセス30の1つであってよく、例えば、ユーザレベルのプロセスであってよい。一例として、制御プロセス20は、ユーザレベルランタイムシステムであってよい。
制御プロセス20は、例えば、図7に示すように、以下の(a)〜(c)の処理を実行してよい。
(a)制御プロセス20は、PMEM4への高頻度な書き込みを検知する。図7の例では、制御プロセス20は、プロセッサ2において発生したPMEM4への高頻度な書き込みを検知する(符号(a)参照)。
(b)制御プロセス20は、DRAM3にアクセスするプロセス30を実行する第1のコア2a、及び、PMEM4に書き込みを行なうプロセス30を実行する第2のコア2aのうちの、少なくとも第2のコア2aを識別する。図7の例では、制御プロセス20は、DRAM3にアクセスするプロセスAを実行するコア2a、及び、PMEM4に高頻度な書き込みを行なうプロセスBを実行するコア2a、のうちの、少なくともプロセスBを実行するコア2aを識別する(符号(b)参照)。
(c)制御プロセス20は、第2のコア2aを制御することで、PMEM4への書き込み頻度を抑制する。図7の例では、制御プロセス20は、プロセスBを実行するコア2aを制御することで、PMEM4への書き込み頻度を抑制する(符号(c)参照)。
このように、一実施形態に係るサーバ1によれば、ハイブリッドメモリシステムにおいて、PMEM4への書き込み頻度を低下させることができ、プロセスAとプロセスBとの間の不公平なメモリアクセスを解消することができる。これにより、プロセスAとプロセスBとがMC2bにおいて競合する場合であっても、MC2bにおいてプロセスAの処理時間(処理遅延)の増加を抑制できる。
図6に示すように、制御プロセス20は、例示的に、検知部21、コア識別部22、算出結果23、IDリスト24、及び、周波数制御部25を備えてよい。
算出結果23及びIDリスト24は、例えば、図4に示すメモリ1b(図5に示すDRAM3及び/又はPMEM4)、並びに、記憶部1cの少なくとも1つが有する記憶領域に格納されてよい。以下の説明では、便宜上、算出結果23及びIDリスト24のデータ形式をテーブル形式として説明するが、これに限定されるものではなく、配列やDB(Database)等の種々のデータ形式であってよい。
検知部21は、PMEM4に対する高頻度な書き込みを検知する。例えば、検知部21は、プロセッサ2のパフォーマンスカウンタの値を取得及び監視し、PMEM4への高頻度な書き込みを検出してよい。
一例として、検知部21は、プロセッサ2全体でのPMEM4に対する書き込みバンド幅(PWBW;PMEM Write Band Width)をパフォーマンスカウンタから取得する。PWBWは、PMEM4に対するデータの書き込み状態の一例である。
パフォーマンスカウンタは、プロセッサ2に実装される性能監視用のHWである。パフォーマンスカウンタからの情報の取得は、既知の種々の手法により実現可能であるため、その説明を省略する。
例えば、検知部21は、PWBWの値が高閾値HTh以上である場合に、PWBWの監視結果として、PMEM4に対する高頻度な書き込みが発生したことを検出してよい。この場合、検知部21は、コア識別部22に対して、PMEM4への高頻度な書き込みを行なうプロセス30を実行するコア2aの識別を指示する。
高閾値HThは、第4閾値の一例であり、PMEM4への書き込み頻度が高いときのPWBWであって、DRAM3の性能が大きく減少する(減少率が大きくなる)直前のPWBWであってよい。一例として、図8に示すように、DRAM3及びPMEM4の各性能と、PMEM4への書き込み頻度との間の相関関係を参照する。なお、図8において、符号A〜Cは図3に示す符号A〜Cと同様のPWBWを示している。
図8の例において、DRAM3の性能は、PMEM4への書き込み頻度が符号Aに示す頻度の場合は、符号Dに示す減少幅であるのに対し、符号Bに示す頻度では、符号Eに示す減少幅となる。このように、符号Aの時点では、最大値(80GB/s)から12%程度の性能低下であるのに対し、符号Aから符号Bに頻度が増加する場合、DRAM3の性能が最大値から50%程度低下する。
図8に示す例では、高閾値HThには、符号Aに示す書き込み頻度のときのPWBW(符号F参照)である、“2.4GB/s”が設定される。高閾値HThとして、符号Fに示すPWBWが設定されることにより、DRAM3の性能の大幅な減少が発生する前にコア識別部22に指示を発行でき、後述する制御によりPMEM4への書き込み頻度の抑制を行なうことができる。
また、例えば、検知部21は、PWBWの値が低閾値LTh以下である場合に、PWBWの監視結果として、PMEM4においてバンド幅に余裕がある(飽和していない)ことを検出してよい。この場合、検知部21は、周波数制御部25に対して、プロセッサ2の1以上のコア2a、例えば全てのコア2aを、DRAM3及びPMEM4へのアクセス頻度を増加させることを指示してよい。当該指示は、例えば、動作周波数を増加させる、一例として最大にする指示であってもよい。
低閾値LThは、第5閾値の一例であり、PMEM4への書き込み頻度が低く、PMEM4が低負荷であるときのPWBWである。
図8の例において、PMEM4への書き込み頻度が符号Gに示す頻度の場合は、DRAM3の性能は略最大値(80GB/s程度)であるのに対し、PMEM4の性能は最大値(3.5GB/s)の約30%となる1.0GB/s程度である。
図8に示す例では、低閾値LThには、符号Gに示す書き込み頻度のときのPWBW(符号H参照)である、“1.0GB/s”が設定される。低閾値LThとして、符号Hに示すPWBWが設定されることにより、DRAM3にアクセスするプロセス30の性能が大幅に低下しないためPMEM4へのアクセス頻度を抑制する必要がないと判断できる。
図8(図3)に例示する相関関係は、例えば、サーバ1において、一定期間におけるPWBWとDRAM3へのアクセスのバンド幅とをプロセッサ2単位でパフォーマンスカウンタから取得することで求められてよい。なお、DRAM3へのアクセスのバンド幅は、プロセス30単位のベンチマーク結果に基づき算出されてもよい。
高閾値HTh及び低閾値LThのそれぞれは、サーバ1(例えば検知部21)により、パフォーマンスカウンタから取得される値に基づき事前に設定されてもよいし、サーバ1の利用者又は管理者等により事前に設定されてもよい。
例えば、高閾値HThには、DRAM3及びPMEM4の各性能と、PMEM4への書き込み頻度との間の相関関係に基づき、PWBWの最大値(図8では3.5GB/s)の所定割合の値、又は、最大値よりも所定値だけ小さい値が設定されてもよい。例えば、所定割合は60〜80%程度、図8の例では70%であってもよく、所定値は1.0〜1.2GB/s程度、図8の例では1.1GB/sであってもよい。
或いは、高閾値HThには、相関関係に基づき、DRAM3へのアクセスのバンド幅の最大値(図8では80GB/s)の所定割合の値、又は、最大値よりも所定値だけ小さい値が設定されてもよい。例えば、所定割合は5〜20%程度、図8の例では12%であってもよく、所定値は5〜20GB/s程度、一例として10GB/sであってもよい。
また、例えば、低閾値LThには、相関関係に基づき、PWBWの最大値(図8では3.5GB/s)の所定割合の値、又は、最大値よりも所定値だけ小さい値が設定されてもよい。例えば、所定割合は10〜40%程度、図8の例では30%であってもよく、所定値は2.0〜3.0GB/s程度、図8の例では2.5GB/sであってもよい。
このように、検知部21は、PMEM4に対するデータの書き込み状態の監視を行ない、監視結果をコア識別部22又は周波数制御部25に通知する通知部の一例である。
コア識別部22は、PMEM4にアクセスするコア2aを識別する。例えば、コア識別部22は、検知部21からの指示の受信に応じて、複数のコア2aの各々のパフォーマンスカウンタの値を取得し、取得した値に基づき、第1のコア2a、及び、第2のコア2aのうちの少なくとも第2のコア2aを識別する。
なお、第1のコア2aは、DRAM3にアクセスするプロセス30を実行するコア2aである。第2のコア2aは、PMEM4に書き込みを行なうプロセス30を実行するコア2aであって、第1制御部の一例である。
一例として、コア識別部22は、コア2aごとの実行命令数及びアクセス数に関するカウント情報をパフォーマンスカウンタから取得する。カウント情報は、例えば、コア2aの識別情報の一例であるコアID(Identifier)ごとに実行命令数及びアクセス数等のカウント値が対応付けられた配列等の形式であってよい。
カウント値は、例示的に、所定の計測期間における、コア2aごとの、実行命令数、ロード命令数、ストア命令数、DRAMアクセス数、及び、PMEMアクセス数を含んでよい。実行命令数は、コア2aが実行した命令数である。ロード命令数は、実行命令数のうちのロード命令、換言すれば読み出し命令の命令数であり、ストア命令数は、実行命令数のうちのストア命令、換言すれば書き込み命令の命令数である。DRAMアクセス数は、DRAM3への書き込み及び読み出しを含むアクセス数であり、PMEMアクセス数は、PMEM4への書き込み及び読み出しを含むアクセス数である。
例えば、コア識別部22は、取得したカウント情報に基づき、ストア率、DRAMアクセス率、及び、PMEMアクセス率の各指標を、コア2aごとに算出し、算出した結果である算出結果23をメモリ1b等のサーバ1の記憶領域に格納してよい。
ここで、ストア率は、読み出しアクセス数に対する書き込みアクセス数の割合の一例であり、例えば、下記式(1)に従い算出されてよい。DRAMアクセス率は、実行命令数に対するDRAM3へのアクセス数の割合の一例であり、例えば、下記式(2)に従い算出されてよい。PMEMアクセス率は、実行命令数に対するPMEM4へのアクセス数の割合の一例であり、例えば、下記式(3)に従い算出されてよい。
ストア率 = ストア命令数 / ロード命令数 (1)
DRAMアクセス率 = DRAMアクセス数 / 実行命令数 (2)
PMEMアクセス率 = PMEMアクセス数 / 実行命令数 (3)
DRAMアクセス率 = DRAMアクセス数 / 実行命令数 (2)
PMEMアクセス率 = PMEMアクセス数 / 実行命令数 (3)
図9は、算出結果23の一例を示す図である。図9に示す例では、少なくともコアID“0”〜“3”のそれぞれについて、ストア率、DRAMアクセス率及びPMEMアクセス率が算出されている。
コア識別部22は、算出結果23に基づき、DRAMアクセス率が第1閾値よりも大きいコア2aが存在する場合、PMEMアクセス率が第2閾値以上であるコア2aであって、ストア率が第3閾値以上であるコア2aを特定する。
そして、コア識別部22は、特定したコア2aのリストであるIDリスト24を生成し、IDリスト24に基づくPMEM4への書き込み頻度の抑制を周波数制御部25に指示する。
第1閾値は、例えば、“0.0”以上の値であってよい。DRAMアクセス率が“0.0”よりも大きいコア2a、換言すれば、1回でもDRAM3にアクセスするプロセス30を実行するコア2aは、PMEM4への書き込み頻度が増加した場合、DRAM3のバンド幅が減少し性能低下が発生し得る。
そこで、一実施形態では、例えば、性能低下の影響が比較的大きいユーザレベルのプロセス30を実行するコア2aが、カウント情報の集計期間に1回でもDRAM3にアクセスする場合に、コア識別部22による(第2の)コア2aの識別を行なうのである。
ところで、OSレベルのプロセス30において、ユーザレベルのプロセス30とは独立してDRAM3へのアクセスが発生する場合がある。このため、一実施形態では、第1閾値を“0.0”に固定するのではなく、OSレベルのプロセス30により増加し得るDRAMアクセス率(例えば平均)を“0.0”に加えた値である、“0.0”「以上」の値とする。なお、DRAMアクセス率として、ユーザレベルのプロセス30によるDRAM3へのアクセス率を用いることができる場合、第1閾値は“0.0”であってもよい。
第2閾値は、例えば、“0.0”以上の値であってよい。PMEMアクセス率が“0.0”よりも大きいコア2a、換言すれば、1回でもPMEM4にアクセスするプロセス30を実行するコア2aは、PMEM4への書き込み頻度を増加させ得る。
そこで、一実施形態では、例えば、性能低下の影響が比較的大きいユーザレベルのプロセス30を実行するコア2aについては、1回でもPMEM4にアクセスする場合、コア識別部22による識別対象の(第2の)コア2aとするのである。
なお、OSレベルのプロセス30は、PMEM4にアクセスを行なう可能性が低い。このため、一実施形態では、第2閾値を“0.0”以上としているが、“0.0”に固定してもよい。
第3閾値は、例えば、“0.1”程度の値であってよい。上述のように、PMEM4は、DRAM3の約1/10程度のアクセス性能であり、特に書込性能が低いため、一実施形態においては、第3閾値として“0.1”程度の値を用いるものとする。
図9の例では、コア識別部22は、DRAMアクセス率が第1閾値(例えば“0.0”)よりも大きいコア2aとして、コアID“0”、“2”及び“3”を検出するため、第2のコア2aの識別を行なうと判定する。
例えば、コア識別部22は、PMEMアクセス率が第2閾値(例えば“0.0”)以上であって、且つ、ストア率が第3閾値(例えば“0.1”)以上であるコア2aとして、例えばコアID“1”及び“2”を識別する。
この場合、コア識別部22は、コアID“1”及び“2”を含むIDリスト24を生成し、周波数制御部25への指示(通知)を行なう。
図10は、IDリスト24の一例を示す図である。図10に例示するように、IDリスト24には、図9に示す算出結果23から識別されたコアID“1”及び“2”が含まれてよい。
周波数制御部25は、PMEM4への書き込み頻度を抑制する。例えば、周波数制御部25は、コア識別部22からの指示の受信に応じて、IDリスト24に基づき、IDリスト24に含まれる第2のコア2aのそれぞれを制御することで、PMEM4への書き込み頻度を抑制する。
例えば、周波数制御部25は、第2のコア2aの制御の一例として、第2のコア2aの動作周波数を低下させる制御を行なうことで、PMEM4への書き込み頻度を抑制する。
コア2aは、例えば、コア2a上に実装されたレジスタのレジスタ値に応じた動作周波数で動作する。従って、周波数制御部25は、コア2aごとのレジスタ値をソフトウェアにより変更することで、動作周波数をコア2aごとに変更することが可能である。
例えば、周波数制御部25は、レジスタ値を参照し、IDリスト24に含まれる第2のコア2aの現在の動作周波数が、設定可能な最低動作周波数か否かを判定する。
そして、周波数制御部25は、確認した現在の動作周波数が設定可能な最低動作周波数ではない場合、動作周波数を1段階低下させるように、レジスタ値を変更してよい。「1段階」とは、例えば、レジスタ値において変更可能な最小単位であってよく、或いは、所定の周波数、又は、コア2aの最大動作周波数に対する所定の割合、等であってもよい。
なお、周波数制御部25は、IDリスト24に含まれる全ての第2のコア2aについて判定を行なうと、IDリスト24をクリア(リセット)してよい。図10の例では、周波数制御部25は、IDリスト24に含まれるコアID“1”及び“2”のそれぞれについて、上述した判定、及び、最低動作周波数でない場合の動作周波数の制御を行ない、IDリスト24をクリアする。
このように、コア識別部22が、PMEM4に対して書き込みを行なうコア2aを識別し、周波数制御部25は、コア識別部22により識別された第2のコア2aごとに制御を行なうことで、確実にPMEM4への書き込み頻度を抑制することができる。
また、周波数制御部25は、検知部21からの指示の受信に応じて、プロセッサ2内の複数のコア2a、例えば全てのコア2aのそれぞれの動作周波数を増加させてよい。例えば、周波数制御部25は、全てのコア2aのそれぞれの動作周波数を最大にするように、コア2aごとのレジスタ値を変更してよい。なお、周波数制御部25は、全てのコア2aのそれぞれの動作周波数を、1段階又は複数段階増加させるように、コア2aごとのレジスタ値を変更してもよい。これにより、プロセッサ2の処理性能を向上させることができる。
このように、周波数制御部25は、PMEM4に対するデータの書き込み状態の監視結果に応じて、PMEM4にアクセスする第2のコア2a(第1制御部)を制御することで、PMEM4に対するデータの書き込み頻度を抑制する抑制処理部の一例である。
以上のように、一実施形態に係るサーバ1によれば、図7に例示するように、DRAM3に対するアクセスを行なうプロセスAと、PMEM4に対して高頻度に書き込みを行なうプロセスBとの間で、不公平なメモリアクセスを解消できる。換言すれば、公平なメモリアクセスを実現できる。従って、プロセスAとプロセスBとによるMC2bでの競合の発生を抑制でき、MC2bにおけるプロセスAの処理時間(処理遅延)を低減できる。
また、周波数制御部25は、コア2aの制御として、コア2aの動作周波数を低減させる。これにより、プロセッサ2の消費電力を低減させることができる。
〔1−3〕動作例
次に、図11〜図13を参照して、上述の如く構成された一実施形態に係るサーバ1の動作例を説明する。
次に、図11〜図13を参照して、上述の如く構成された一実施形態に係るサーバ1の動作例を説明する。
〔1−3−1〕検知処理の動作例
まず、図11を参照して、サーバ1による検知処理の動作例を説明する。図11は、検知処理の動作例を示すフローチャートである。
まず、図11を参照して、サーバ1による検知処理の動作例を説明する。図11は、検知処理の動作例を示すフローチャートである。
図11に例示するように、サーバ1の制御プロセス20が起動すると、検知部21は、パフォーマンスカウンタからPWBWを取得する(ステップS1)。
検知部21は、取得したPWBWが高閾値HTh以上か否かを判定する(ステップS2)。PWBWが高閾値HTh以上であると判定した場合(ステップS2でYES)、検知部21は、コア識別部22にコア2aの識別を指示することでコア識別処理を起動し(ステップS3)、処理がステップS6に移行する。
PWBWが高閾値HTh以上ではないと判定した場合(ステップS2でNO)、検知部21は、PWBWが低閾値LTh以下か否かを判定する(ステップS4)。PWBWが低閾値LTh以下ではないと判定した場合(ステップS4でNO)、処理がステップS6に移行する。この場合、PMEM4への書き込み頻度に関する現状の設定は維持される。
PWBWが低閾値LTh以下であると判定した場合(ステップS4でYES)、検知部21は、周波数制御部25に対して、全てのコア2aの動作周波数を最大に設定することを指示し(ステップS5)、処理がステップS6に移行する。この場合、周波数制御部25は、全てのコア2aのそれぞれの動作周波数を制御するレジスタ値に、動作周波数が最大となる値を設定する。
ステップS6において、検知部21は、一定時間待機し、処理がステップS1に移行する。
〔1−3−2〕コア識別処理の動作例
次に、図12を参照して、図11のステップS3に示すコア識別処理の動作例を説明する。図12は、コア識別処理の動作例を示すフローチャートである。
次に、図12を参照して、図11のステップS3に示すコア識別処理の動作例を説明する。図12は、コア識別処理の動作例を示すフローチャートである。
図12に例示するように、コア識別部22は、パフォーマンスカウンタから、各検知部21のカウント情報を取得する(ステップS11)。カウント情報には、コア2aごとに、実行命令数、ロード命令数、ストア命令数、DRAMアクセス数及びPMEMアクセス数が含まれてよい。
コア識別部22は、取得したカウント情報に基づき、各コア2aの各指標を算出し(ステップS12)、算出結果23として記憶領域に格納する。指標としては、例えば、上述したストア率、DRAMアクセス率及びPMEMアクセス率である。
コア識別部22は、DRAMアクセス率が第1閾値よりも大きいコア2aが存在するか否かを判定する(ステップS13)。DRAMアクセス率が第1閾値よりも大きいコア2aが存在しないと判定した場合(ステップS13でNO)、処理が終了する。
DRAMアクセス率が第1閾値よりも大きいコア2aが存在すると判定した場合(ステップS13でYES)、コア識別部22は、PMEMアクセス率が第2閾値以上且つストア率が第3閾値以上であるコア2aのIDをIDリスト24に追加する(ステップS14)。
そして、コア識別部22は、IDリスト24を周波数制御部25に通知することで、頻度抑制処理を起動し(ステップS15)、処理が終了する。
〔1−3−3〕頻度抑制処理の動作例
次に、図13を参照して、図12のステップS15に示す頻度抑制処理の動作例を説明する。図13は、頻度抑制処理の動作例を示すフローチャートである。
次に、図13を参照して、図12のステップS15に示す頻度抑制処理の動作例を説明する。図13は、頻度抑制処理の動作例を示すフローチャートである。
図13に例示するように、周波数制御部25は、コア識別部22からIDリスト24を通知されると、IDリスト24から未取得のコアIDを、例えばIDリスト24の先頭から順に取得(抽出)する(ステップS21)。
周波数制御部25は、取得したコアIDのコア2aの動作周波数を取得する(ステップS22)。例えば、周波数制御部25は、当該コア2aのレジスタ値をソフトウェアにより参照することで、動作周波数を取得してよい。
周波数制御部25は、取得した動作周波数が、最低動作周波数か否かを判定する(ステップS23)。動作周波数が最低動作周波数であると判定した場合(ステップS23でYES)、処理がステップS25に移行する。
動作周波数が最低動作周波数ではないと判定した場合(ステップS23でNO)、周波数制御部25は、取得したコアIDのコア2aの動作周波数を1段階低下させる(ステップS24)。例えば、周波数制御部25は、当該コア2aのレジスタ値をソフトウェアにより変更することで、動作周波数を1段階低下させてよい。
そして、周波数制御部25は、IDリスト24に未取得のコアIDが存在するか否かを判定する(ステップS25)。IDリスト24に未取得のコアIDが存在すると判定した場合(ステップS25でYES)、処理がステップS21に移行する。
IDリスト24に未取得のコアIDが存在しないと判定した場合(ステップS25でNO)、周波数制御部25は、IDリスト24をリセットし(ステップS26)、処理が終了する。
〔1−4〕変形例
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
一実施形態では、制御プロセス20は、コア識別部22が識別したコア2aの動作周波数を低下させることで、PMEM4への書き込み頻度を抑制する手法を例に挙げて説明したが、これに限定されるものではない。
PMEM4への書き込み頻度を抑制する手法として、例えば、図14に示すように、周波数制御部25に代えて、頻度制限部26が用いられてもよい。
図14は、変形例に係るサーバ1Aの機能構成を示すブロック図である。図14に示すように、サーバ1Aの処理部10Aにおいて、制御プロセス20Aは、周波数制御部25に代えて、頻度制限部26を備えてよい。
頻度制限部26は、コア2aから出力されるPMEM4に対するアクセス要求の出力頻度を低下させる制御を行なう。例えば、頻度制限部26は、IDリスト24に含まれるコア2aごとに、各コア2aによるPMEM4へのメモリアクセス頻度を制限する。
コア2aは、例えば、コア2a上に実装されたレジスタのレジスタ値、又は、ソフトウェアによるコマンド等の指示に応じて、コア2aからDRAM3又はPMEM4に出力されるメモリアクセス頻度を制限することができる。従って、頻度制限部26は、コア2aごとのレジスタ値をソフトウェアにより変更する、又は、ソフトウェアによりコア2aごとに制限値を通知することで、メモリアクセス頻度をコア2aごとに変更することが可能である。
サーバ1Aは、例えば、図12のステップS14において、コア識別部22からIDリスト24を頻度制限部26に通知することで、ステップS15に示す頻度抑制処理を、頻度制限部26により実行してよい。なお、検知部21及びコア識別部22による処理、並びに、算出結果23及びIDリスト24の内容は、一実施形態と同様である。
図15は、変形例に係る頻度抑制処理の動作例を示すフローチャートである。図15に例示するように、頻度制限部26は、ステップS21で取得したコアIDのコア2aのメモリアクセス頻度を取得する(ステップS31)。
頻度制限部26は、取得したメモリアクセス頻度が、最低値(設定可能な最低のメモリアクセス頻度)か否かを判定する(ステップS32)。メモリアクセス頻度が最低値であると判定した場合(ステップS32でYES)、処理がステップS25に移行する。
メモリアクセス頻度が最低値ではないと判定した場合(ステップS32でNO)、頻度制限部26は、取得したコアIDのコア2aのメモリアクセス頻度を1段階低下させ(ステップS33)、処理がステップS25に移行する。
例えば、頻度制限部26は、当該コア2aのレジスタ値をソフトウェアにより変更する、或いは、当該コア2aにソフトウェアからメモリアクセス頻度の制限値を通知することで、メモリアクセス頻度を1段階低下させてよい。「1段階」とは、例えば、レジスタ値において変更可能な最小単位であってよく、或いは、所定の頻度、又は、コア2aの最大のメモリアクセス頻度に対する所定の割合、等であってもよい。
このように、頻度制限部26は、PMEM4に対するデータの書き込み状態の監視結果に応じて、PMEM4にアクセスする第2のコア2a(第1制御部)を制御することで、PMEM4に対するデータの書き込み頻度を抑制する抑制処理部の一例である。
以上のように、変形例に係るサーバ1Aによっても、DRAM3に対するアクセスを行なうプロセスAと、PMEM4に対して高頻度に書き込みを行なうプロセスBとの間で、公平なメモリアクセスを実現できる。従って、プロセスAとプロセスBとによるMC2bでの競合の発生を抑制でき、MC2bにおけるプロセスAの処理時間(処理遅延)を低減できる。
また、変形例に係るサーバ1Aによれば、コア2aによるPMEM4への書き込み頻度を直接的に制限することができる。これにより、コア2aの動作周波数を低下させることでプロセッサ2の消費電力を低下させつつ間接的にPMEM4への書き込み頻度を抑制する一実施形態よりも、プロセッサ2の処理性能の低下抑制を高速に(短時間で)実現することができる。
〔2〕その他
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
例えば、図6に示すサーバ1において、制御プロセス20の検知部21、コア識別部22及び周波数制御部25の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図14に示すサーバ1Aにおいて、制御プロセス20Aの検知部21、コア識別部22及び頻度制限部26の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
また、図6に示すサーバ1において、制御プロセス20は、さらに、図14に示す頻度制限部26を備えてもよい。この場合、周波数制御部25及び頻度制限部26は、それぞれに設定された割合に応じた制御量で、周波数制御部25及び頻度制限部26の双方がIDリスト24に含まれるコア2aに対して制御を行なってもよい。或いは、事前の設定、又は、算出結果23に応じて、コア2aごとに、周波数制御部25及び頻度制限部26のうちのいずれか一方が制御を行なってもよい。これらによっても、一実施形態又は変形例と同様の効果を奏することができる。
〔3〕付記
以上の実施形態及び変形例に関し、さらに以下の付記を開示する。
以上の実施形態及び変形例に関し、さらに以下の付記を開示する。
(付記1)
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
プロセッサと、を備え、
前記プロセッサは、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、
前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する抑制処理部と、
を備える、情報処理装置。
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
プロセッサと、を備え、
前記プロセッサは、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、
前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する抑制処理部と、
を備える、情報処理装置。
(付記2)
前記第1制御部の制御は、前記第1制御部の動作周波数を低下させる制御である、
付記1に記載の情報処理装置。
前記第1制御部の制御は、前記第1制御部の動作周波数を低下させる制御である、
付記1に記載の情報処理装置。
(付記3)
前記第1制御部の制御は、前記第1制御部から出力される前記第2メモリに対するアクセス要求の出力頻度を低下させる制御である、
付記1に記載の情報処理装置。
前記第1制御部の制御は、前記第1制御部から出力される前記第2メモリに対するアクセス要求の出力頻度を低下させる制御である、
付記1に記載の情報処理装置。
(付記4)
前記抑制処理部は、実行命令数に対する前記第1メモリへのアクセス数の割合が第1閾値よりも大きい制御部が存在する場合、実行命令数に対する前記第2メモリへのアクセス数の割合が第2閾値以上である前記第1制御部であって、読み出しアクセス数に対する書き込みアクセス数の割合が第3閾値以上である前記第1制御部を特定する、
付記1〜付記3のいずれか1項に記載の情報処理装置。
前記抑制処理部は、実行命令数に対する前記第1メモリへのアクセス数の割合が第1閾値よりも大きい制御部が存在する場合、実行命令数に対する前記第2メモリへのアクセス数の割合が第2閾値以上である前記第1制御部であって、読み出しアクセス数に対する書き込みアクセス数の割合が第3閾値以上である前記第1制御部を特定する、
付記1〜付記3のいずれか1項に記載の情報処理装置。
(付記5)
前記書き込み状態は、前記第2メモリに対する書き込みバンド幅であり、
前記書き込み頻度の抑制は、前記監視結果が、前記書き込みバンド幅が第4閾値以上であることを示す場合に実行される、
付記1〜付記4のいずれか1項に記載の情報処理装置。
前記書き込み状態は、前記第2メモリに対する書き込みバンド幅であり、
前記書き込み頻度の抑制は、前記監視結果が、前記書き込みバンド幅が第4閾値以上であることを示す場合に実行される、
付記1〜付記4のいずれか1項に記載の情報処理装置。
(付記6)
前記抑制処理部は、前記監視結果が、前記第2メモリに対する前記書き込みバンド幅が前記第4閾値よりも小さい第5閾値以下であることを示す場合に、前記複数の制御部のそれぞれの動作周波数を増加させる、
付記5に記載の情報処理装置。
前記抑制処理部は、前記監視結果が、前記第2メモリに対する前記書き込みバンド幅が前記第4閾値よりも小さい第5閾値以下であることを示す場合に、前記複数の制御部のそれぞれの動作周波数を増加させる、
付記5に記載の情報処理装置。
(付記7)
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、を有するプロセッサと、
を備えるコンピュータに、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する、
処理を実行させる、制御プログラム。
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、を有するプロセッサと、
を備えるコンピュータに、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する、
処理を実行させる、制御プログラム。
(付記8)
前記第1制御部の制御は、前記第1制御部の動作周波数を低下させる制御である、
付記7に記載の制御プログラム。
前記第1制御部の制御は、前記第1制御部の動作周波数を低下させる制御である、
付記7に記載の制御プログラム。
(付記9)
前記第1制御部の制御は、前記第1制御部から出力される前記第2メモリに対するアクセス要求の出力頻度を低下させる制御である、
付記7に記載の制御プログラム。
前記第1制御部の制御は、前記第1制御部から出力される前記第2メモリに対するアクセス要求の出力頻度を低下させる制御である、
付記7に記載の制御プログラム。
(付記10)
前記コンピュータに、
実行命令数に対する前記第1メモリへのアクセス数の割合が第1閾値よりも大きい制御部が存在する場合、実行命令数に対する前記第2メモリへのアクセス数の割合が第2閾値以上である前記第1制御部であって、読み出しアクセス数に対する書き込みアクセス数の割合が第3閾値以上である前記第1制御部を特定する、
処理を実行させる、付記7〜付記9のいずれか1項に記載の制御プログラム。
前記コンピュータに、
実行命令数に対する前記第1メモリへのアクセス数の割合が第1閾値よりも大きい制御部が存在する場合、実行命令数に対する前記第2メモリへのアクセス数の割合が第2閾値以上である前記第1制御部であって、読み出しアクセス数に対する書き込みアクセス数の割合が第3閾値以上である前記第1制御部を特定する、
処理を実行させる、付記7〜付記9のいずれか1項に記載の制御プログラム。
(付記11)
前記書き込み状態は、前記第2メモリに対する書き込みバンド幅であり、
前記監視結果が、前記書き込みバンド幅が第4閾値以上であることを示す場合に、前記書き込み頻度を抑制する、
処理を前記コンピュータに実行させる、
付記7〜付記10のいずれか1項に記載の制御プログラム。
前記書き込み状態は、前記第2メモリに対する書き込みバンド幅であり、
前記監視結果が、前記書き込みバンド幅が第4閾値以上であることを示す場合に、前記書き込み頻度を抑制する、
処理を前記コンピュータに実行させる、
付記7〜付記10のいずれか1項に記載の制御プログラム。
(付記12)
前記コンピュータに、
前記監視結果が、前記第2メモリに対する前記書き込みバンド幅が前記第4閾値よりも小さい第5閾値以下であることを示す場合に、前記複数の制御部のそれぞれの動作周波数を増加させる、
処理を実行させる、
付記11に記載の制御プログラム。
前記コンピュータに、
前記監視結果が、前記第2メモリに対する前記書き込みバンド幅が前記第4閾値よりも小さい第5閾値以下であることを示す場合に、前記複数の制御部のそれぞれの動作周波数を増加させる、
処理を実行させる、
付記11に記載の制御プログラム。
1、1A サーバ
2 プロセッサ
2a コア
2b MC
2c、30 プロセス
10、10A 処理部
20、20A 制御プロセス
21 検知部
22 コア識別部
23 算出結果
24 IDリスト
25 周波数制御部
26 頻度制限部
3 DRAM
4 PMEM
5 メモリチャネル
2 プロセッサ
2a コア
2b MC
2c、30 プロセス
10、10A 処理部
20、20A 制御プロセス
21 検知部
22 コア識別部
23 算出結果
24 IDリスト
25 周波数制御部
26 頻度制限部
3 DRAM
4 PMEM
5 メモリチャネル
Claims (7)
- 第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
プロセッサと、を備え、
前記プロセッサは、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、
前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する抑制処理部と、
を備える、情報処理装置。 - 前記第1制御部の制御は、前記第1制御部の動作周波数を低下させる制御である、
請求項1に記載の情報処理装置。 - 前記第1制御部の制御は、前記第1制御部から出力される前記第2メモリに対するアクセス要求の出力頻度を低下させる制御である、
請求項1に記載の情報処理装置。 - 前記抑制処理部は、実行命令数に対する前記第1メモリへのアクセス数の割合が第1閾値よりも大きい制御部が存在する場合、実行命令数に対する前記第2メモリへのアクセス数の割合が第2閾値以上である前記第1制御部であって、読み出しアクセス数に対する書き込みアクセス数の割合が第3閾値以上である前記第1制御部を特定する、
請求項1〜請求項3のいずれか1項に記載の情報処理装置。 - 前記書き込み状態は、前記第2メモリに対する書き込みバンド幅であり、
前記書き込み頻度の抑制は、前記監視結果が、前記書き込みバンド幅が第4閾値以上であることを示す場合に実行される、
請求項1〜請求項4のいずれか1項に記載の情報処理装置。 - 前記抑制処理部は、前記監視結果が、前記第2メモリに対する前記書き込みバンド幅が前記第4閾値よりも小さい第5閾値以下であることを示す場合に、前記複数の制御部のそれぞれの動作周波数を増加させる、
請求項5に記載の情報処理装置。 - 第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御する共用のメモリコントローラと、前記第1メモリ又は前記第2メモリにアクセスする複数の制御部と、を有するプロセッサと、
を備えるコンピュータに、
前記第2メモリに対するデータの書き込み状態の監視結果に応じて、前記複数の制御部のうちの前記第2メモリにアクセスする第1制御部を制御することで、前記第2メモリに対する前記データの書き込み頻度を抑制する、
処理を実行させる、制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020073253A JP2021170241A (ja) | 2020-04-16 | 2020-04-16 | 情報処理装置及び制御プログラム |
US17/156,677 US11573739B2 (en) | 2020-04-16 | 2021-01-25 | Information processing apparatus and method to control memory access and computer-readable recording medium having stored therein control program to control memory access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020073253A JP2021170241A (ja) | 2020-04-16 | 2020-04-16 | 情報処理装置及び制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021170241A true JP2021170241A (ja) | 2021-10-28 |
Family
ID=78081627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020073253A Withdrawn JP2021170241A (ja) | 2020-04-16 | 2020-04-16 | 情報処理装置及び制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11573739B2 (ja) |
JP (1) | JP2021170241A (ja) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173356B1 (en) * | 1998-02-20 | 2001-01-09 | Silicon Aquarius, Inc. | Multi-port DRAM with integrated SRAM and systems and methods using the same |
KR100311042B1 (ko) | 1999-06-26 | 2001-11-02 | 윤종용 | 기입 주기의 프로그래밍이 가능한 동기식 메모리 장치 및 이를 이용한 데이터 기입 방법 |
JP4282636B2 (ja) | 2005-06-22 | 2009-06-24 | 株式会社東芝 | 不揮発性半導体記憶装置とそのデータ書き込み方法 |
US8566836B2 (en) * | 2009-11-13 | 2013-10-22 | Freescale Semiconductor, Inc. | Multi-core system on chip |
CN104572493A (zh) * | 2013-10-23 | 2015-04-29 | 华为技术有限公司 | 一种存储器资源优化方法和装置 |
US9250999B1 (en) * | 2013-11-19 | 2016-02-02 | Google Inc. | Non-volatile random access memory in computer primary memory |
KR102205899B1 (ko) * | 2014-02-27 | 2021-01-21 | 삼성전자주식회사 | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 |
US9507405B2 (en) * | 2014-06-18 | 2016-11-29 | Oracle International Corporation | System and method for managing power in a chip multiprocessor using a proportional feedback mechanism |
US9734889B2 (en) * | 2014-12-22 | 2017-08-15 | Empire Technology Development Llc | Reconfigurable row DRAM |
US10303371B2 (en) * | 2015-12-02 | 2019-05-28 | Toshiba Memory Corporation | Data storage device that stabilizes write latency |
US10606649B2 (en) * | 2017-04-20 | 2020-03-31 | Nutanix, Inc. | Workload identification and display of workload-specific metrics |
US10700954B2 (en) * | 2017-12-20 | 2020-06-30 | Advanced Micro Devices, Inc. | Scheduling memory bandwidth based on quality of service floorbackground |
US10552051B2 (en) * | 2018-02-05 | 2020-02-04 | International Business Machines Corporation | Allocation of heat-tiered storage among throttling units |
US10558574B2 (en) * | 2018-05-30 | 2020-02-11 | Intel Corporation | Reducing cache line collisions |
KR20200057311A (ko) * | 2018-11-16 | 2020-05-26 | 삼성전자주식회사 | 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치 |
-
2020
- 2020-04-16 JP JP2020073253A patent/JP2021170241A/ja not_active Withdrawn
-
2021
- 2021-01-25 US US17/156,677 patent/US11573739B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210326071A1 (en) | 2021-10-21 |
US11573739B2 (en) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9413683B2 (en) | Managing resources in a distributed system using dynamic clusters | |
US9195409B2 (en) | Storage system with load balancing mechanism and method of operation thereof | |
US9098337B2 (en) | Scheduling virtual central processing units of virtual machines among physical processing units | |
US10146651B2 (en) | Member replacement in an array of information storage devices | |
US20150268967A1 (en) | Optimizing computer hardware usage in a computing system that includes a plurality of populated central processing unit ('cpu') sockets | |
US10768853B2 (en) | Information handling system with memory flush during shut down | |
TWI709909B (zh) | 用於幽靈緩解之資料快取記憶體隔離的方法及裝置 | |
JP2021170241A (ja) | 情報処理装置及び制御プログラム | |
US20200364126A1 (en) | Information Handling System to Allow System Boot when an Amount of Installed Memory Exceeds Processor Limit | |
US20160070478A1 (en) | Storage control device and storage control method | |
US10956046B2 (en) | Dynamic I/O load balancing for zHyperLink | |
TWI501588B (zh) | 使用輔助處理器存取本地儲存裝置之技術 | |
US10825475B1 (en) | System and method for improving hard disk drive performance | |
US12019760B2 (en) | System and method for secure movement of trusted memory regions across NUMA nodes | |
US11360901B2 (en) | Method and apparatus for managing page cache for multiple foreground applications | |
US12001386B2 (en) | Disabling processor cores for best latency in a multiple core processor | |
US12001373B2 (en) | Dynamic allocation of peripheral component interconnect express bus numbers | |
US20230334020A1 (en) | Software-based log management | |
US10579392B2 (en) | System and method for mapping physical memory with mixed storage class memories | |
JP7155915B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
US11630500B2 (en) | Configuring power level of central processing units at boot time | |
JP2021043654A (ja) | 情報処理装置及びプロセス配置決定プログラム | |
US20240036948A1 (en) | Policy-driven alert management | |
JP2009110183A (ja) | 計算機の起動方法及び計算機システム | |
JP2021082096A (ja) | 情報処理装置及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230112 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |