JP5958192B2 - 演算処理装置、情報処理装置、及び演算処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置、及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP5958192B2
JP5958192B2 JP2012190442A JP2012190442A JP5958192B2 JP 5958192 B2 JP5958192 B2 JP 5958192B2 JP 2012190442 A JP2012190442 A JP 2012190442A JP 2012190442 A JP2012190442 A JP 2012190442A JP 5958192 B2 JP5958192 B2 JP 5958192B2
Authority
JP
Japan
Prior art keywords
management unit
data
arithmetic processing
memory
main storage
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.)
Active
Application number
JP2012190442A
Other languages
English (en)
Other versions
JP2014048830A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012190442A priority Critical patent/JP5958192B2/ja
Priority to US13/929,925 priority patent/US20140068194A1/en
Publication of JP2014048830A publication Critical patent/JP2014048830A/ja
Application granted granted Critical
Publication of JP5958192B2 publication Critical patent/JP5958192B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、演算処理装置、情報処理装置、及び演算処理装置の制御方法に関する。
複数の演算処理装置としてのCPU(Central Processing Unit)ノードが相互に接続され、各CPUノードに属する主記憶装置としてのメモリを複数のCPUノードの各々が共用する情報処理装置がある(例えば、特許文献1、2参照)。以下、図14に示すような演算処理部(CORE部)が発行したロード要求を受けるキャッシュ制御部等で構成されたccNUMA(cache coherent Non Uniform Memory Access、分散共有メモリ)方式のノード間データ転送方式について考える。
図14において、CPUノード10(10A、10B、10C)の各々は、ロード要求等を発行する演算処理部(CORE部)11及び二次キャッシュ部12を有する。なお、演算処理部(CORE部)11には、一次キャッシュメモリが含まれている。二次キャッシュ部12は、キャッシュ制御部13、キャッシュメモリ部14、キャッシュデータ管理部15、メモリ管理部16、及びリモート管理部17を有する。
キャッシュ制御部13は、あらかじめ決められた優先順位に基づいて1つの要求を選択し、選択した要求に対応した処理を行う。キャッシュメモリ部14は、主記憶領域であるメモリ18に格納されているデータブロックを保持する二次キャッシュメモリである。キャッシュデータ管理部15は、要求元のCPUノード10の資源でキャッシュメモリへの書き込みに係るアドレスやデータの管理を行う。メモリ管理部16は、ホームとして管理する主記憶領域であるメモリ18の情報を管理している。リモート管理部17は、他のCPUノードのメモリ管理部16からの要求を受け、その要求に対して自CPUノードのキャッシュメモリにヒットしたときにデータブロックを送信する。
演算処理部(CORE部)11により主記憶領域にロード要求が発生した場合、キャッシュ制御部13は、要求されたデータブロックがどのCPUノード10に属するメモリ18に格納されているかを、システムで定められたアドレス空間定義を基に判断する。例えば、アドレス空間定義のあるアドレスフィールドにCPU−IDを割り当て、そのCPU−IDに基づいて、どのCPUノード10に属するメモリ18に格納されているかを判断する。また、各データブロックはキャッシュラインサイズ単位で管理されており、メモリ18のすべてのデータブロックはディレクトリ情報(ヘッダ情報)を有する。ディレクトリ情報には、データブロックが最新のものであるか否かを示す情報やどのCPUノード10のキャッシュメモリに存在しているかを示す情報などを含む。
図14に示した情報処理装置でのデータ転送経路について説明する。以下に説明する例では、CPU−Aノード10Aの演算処理部(CORE部)11により主記憶領域にロード要求が発生したものとする。なお、以下に示す図15〜図17においては、データ転送に携る機能部を図示し、その他の機能部については図示を省略している。
図15は、ロード要求を発行したCPU−Aノード10Aに属するメモリ18Aにデータを有していた場合の転送経路を示す図である。ロード要求R101は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。また、ロード要求R101は、キャッシュ制御部13Aによりメモリ管理部16Aを経由してメモリ18Aにデータ及びディレクトリ情報を要求する(R102)。その要求に対する応答としてメモリ18Aから送信されたディレクトリ情報を含むヘッダ情報I101及びデータD101を、メモリ管理部16Aを経由してキャッシュデータ管理部15Aが受信する(I102、D102)。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD103が送られる。
図16は、ロード要求を発行したCPU−Aノード10Aに属するメモリ18Aに最新データを保有しておらず、CPU−Bノード10Bに属するメモリ18Bに最新データを保有しているとキャッシュ制御部13Aが判断した場合の転送経路を示す図である。ロード要求R201は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。そして、キャッシュデータ管理部15AからCPU−Bノード10Bにロード要求R202が送信され、キャッシュ制御部13Bを経由してメモリ管理部16Bが受信する(R203)。CPU−Bノード10Bのメモリ管理部16Bは、メモリ18Bにデータ及びディレクトリ情報を要求する(R204)。その要求に対する応答としてメモリ18Bから送信されたディレクトリ情報を含むヘッダ情報I201及び最新のデータD201をメモリ管理部16Bが受信する。さらに、メモリ管理部16BからCPU−Aノード10Aにヘッダ情報I202及びデータD202に送信されキャッシュデータ管理部15Aが受信する。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD203が送られる。
図17は、ロード要求を発行したCPU−Aノード10Aに属するメモリ18Aにデータを有するとキャッシュ制御部13Aが判断したが、メモリ18Aからのディレクトリ情報により他のCPU−Bノード10Bのキャッシュメモリに最新のデータがある場合の転送経路を示す図である。ロード要求R301は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。また、ロード要求R301は、キャッシュ制御部13Aによりメモリ管理部16Aを経由してメモリ18Aにデータ及びディレクトリ情報を要求する(R302)。その要求に対する応答として、メモリ管理部16Aが、メモリ18Aからヘッダ情報I301及び最新のデータが他のCPU−Bノード10Bにあるという情報R303を受け取る。そして、キャッシュ制御部13B等により、CPU−Bノード10Bのキャッシュメモリにあるデータをリモート管理部17Bに要求する(R304,R305)。それによって、リモート管理部17Bから送信されたヘッダ情報I302及びデータD301を、CPU−Aノード10Aのメモリ管理部16Aを経由して、キャッシュデータ管理部15Aが受信する(I304、D302)。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD303が送られる。
特開平9−198309号公報 特開2003−44455号公報
前述した情報処理装置での転送経路は、メモリ18又はリモート管理部17からメモリ管理部16に送信し、メモリ管理部16からキャッシュデータ管理部15に送信するためにデータ転送に係るレイテンシが長くなり無駄であった。また、同じCPUノード10内でもメモリ18のデータをメモリ管理部16にも送信していたため、キャッシュデータ管理部15とデータの分のメモリ管理部16の資源が必要であった。
1つの側面では、本発明の目的は、複数のCPUノードが相互に接続された情報処理装置において、CPUノードが有するメモリ管理部を介さずに、メモリからCPUノードが有するデータ管理部に要求されたデータを送信することにより、複数のCPUノード間のデータ転送に係るレイテンシを短くすることにある。
演算処理装置の一態様は、キャッシュメモリと、主記憶装置が記憶する対象データをキャッシュメモリにロードするロード要求を発行する演算処理部と、演算処理部から受信したロード要求に対応する処理を行う制御部と、制御部からの要求に対応する対象データと、対象データが最新であるかを示す情報を含むヘッダ情報とを、主記憶装置に対して要求するとともに、主記憶装置に対する要求に基づいて主記憶装置が応答したヘッダ情報を受信するメモリ管理部と、ロード要求により取得したデータのキャッシュメモリへの書き込み制御を管理するとともに、主記憶装置に対する要求に基づいて主記憶装置が応答した対象データをメモリ管理部を介さずに受信するデータ管理部を有する。
複数のCPUノードが相互に接続された情報処理装置において、CPUノードが有するメモリ管理部を介さずに、メモリからCPUノードが有するデータ管理部に要求されたデータを送信することにより、複数のCPUノードが相互に接続された情報処理装置において、データ転送に係るレイテンシを短くすることができる。
本発明の実施形態における情報処理装置でのデータ転送経路の例を示す図である。 本実施形態における情報処理装置でのデータ転送経路の例を示す図である。 本実施形態におけるキャッシュデータ管理部の構成例を説明するための図である。 本実施形態における書き込みタイミング制御を説明するための図である。 本実施形態におけるヘッダ情報及びデータの例を示す図である。 本実施形態におけるフラグの値と状態との対応を示す図である。 本実施形態におけるリード要求からキャッシュメモリへの書き込みまでの動作例を示すフローチャートである。 本実施形態におけるメモリ管理部の構成例を示す図である。 本実施形態における資源獲得処理の例を示すフローチャートである。 図1に示すデータ転送経路でのデータ転送の流れを示す図である。 図2に示すデータ転送経路でのデータ転送の流れを示す図である。 図14に示す情報処理装置でのデータ転送経路の例を示す図である。 図12に示すデータ転送経路でのデータ転送の流れを示す図である。 複数のCPUノードが相互接続された情報処理装置の構成例を示す図である。 図14に示す情報処理装置でのデータ転送経路の例を示す図である。 図14に示す情報処理装置でのデータ転送経路の例を示す図である。 図14に示す情報処理装置でのデータ転送経路の例を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
本発明の一実施形態における情報処理装置の構成は、図14に示した情報処理装置と同様である。すなわち、複数のCPUノード10(10A、10B、10C)が相互に接続され、CPUノード10の各々は、ロード要求等を発行する演算処理部(CORE部)11及び二次キャッシュ部12を有する。二次キャッシュ部12は、キャッシュ制御部13、キャッシュメモリ部14、キャッシュデータ管理部15、メモリ管理部16、及びリモート管理部17を有する。
キャッシュ制御部13は、あらかじめ決められた優先順位に基づいて1つの要求を選択し、選択した要求に対応した処理を行う。キャッシュメモリ部14は、二次キャッシュメモリであり、主記憶領域であるメモリ18に格納されているデータブロックを保持する。キャッシュデータ管理部15は、キャッシュメモリ部14を含むキャッシュメモリへの書き込みに係るアドレスやデータの管理を行う。メモリ管理部16は、ホームとして管理する主記憶領域であるメモリ18の情報を管理している。リモート管理部17は、他のCPUノードのメモリ管理部16からの要求を受け、その要求に対して自CPUノードのキャッシュメモリにヒットしたときにデータブロックを送信する。
図15及び図17に示したデータ転送では、メモリ18又はリモート管理部17からメモリ管理部16にデータを送信し、そのデータをメモリ管理部16からキャッシュデータ管理部15に送信する。本実施形態におけるデータ転送では、図1及び図2に示すようにメモリ管理部16を介さずに、メモリ18又はリモート管理部17からキャッシュデータ管理部15にデータを送信する。なお、ディレクトリ情報を含むヘッダ情報は、図15及び図17に示した例と同様に、メモリ18又はリモート管理部17からメモリ管理部16に送信し、メモリ管理部16からキャッシュデータ管理部15に送信する。
図1及び図2は、本実施形態における情報処理装置でのデータ転送経路の例を示す図である。図1及び図2においては、データ転送に携る機能部を図示し、その他の機能部については図示を省略している。また、CPU−Aノード10Aの演算処理部(CORE部)11により主記憶領域にロード要求が発生したものとする。
図1は、本実施形態においてロード要求を発行したCPU−Aノード10Aに属するメモリ18Aにデータを有していた場合の転送経路を示す図である。ロード要求R11は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。また、ロード要求R11は、キャッシュ制御部13Aによりメモリ管理部16Aを経由してメモリ18Aにデータ及びディレクトリ情報を要求する(R12)。その要求R12に対する応答として、メモリ18Aから送信されるデータD11を、メモリ管理部16Aを介さずに、キャッシュデータ管理部15Aが受信する。メモリ18Aから送信されるディレクトリ情報を含むヘッダ情報I11は、メモリ管理部16Aを経由してキャッシュデータ管理部15Aに送信される(I12)。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD12が送られる。
また、図2は、本実施形態においてロード要求を発行したCPU−Aノード10Aに属するメモリ18Aにデータを有するとキャッシュ制御部13Aが判断したが、メモリ18Aからのディレクトリ情報により他のCPU−Bノード10Bのキャッシュメモリに最新のデータがある場合の転送経路を示す図である。ロード要求R21は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。また、ロード要求R21が、キャッシュ制御部13Aによりメモリ管理部16Aを経由して送信され、メモリ18Aにデータ及びディレクトリ情報を要求する(R22)。その要求に対する応答として、メモリ管理部16Aが、メモリ18Aからヘッダ情報I21及び最新のデータが他のCPU−Bノード10Bにあるという情報R23を受け取る。
そして、キャッシュ制御部13B等により、CPU−Bノード10Bのキャッシュメモリにあるデータをリモート管理部17Bに要求する(R24,R25)。この要求に対する応答として、リモート管理部17BからCPU−Aノード10Aに送信されるデータD21を、メモリ管理部16Aを介さずに、キャッシュデータ管理部15Aが受信する。リモート管理部17BからCPU−Aノード10Aに送信されるディレクトリ情報を含むヘッダ情報I21は、メモリ管理部16Aを経由してキャッシュデータ管理部15Aに送信される(I24)。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD22が送られる。
本実施形態では、図1及び図2に示したようにメモリ管理部16を介さずに、メモリ18又はリモート管理部17からキャッシュデータ管理部15にデータを送信するので、データ転送に係るレイテンシを短くすることができる。また、同じCPUノード10内のキャッシュデータ管理部15及びメモリ管理部16において、同じデータブロックを保持する必要がなく、データブロックの保持に要する資源を削減することができ、回路面積(CPUチップ面積)や消費電力を縮小させることが可能になる。
図1及び図2に示したデータ転送経路でのデータ転送を可能にする、本実施形態におけるキャッシュデータ管理部の構成例について説明する。図3は、本実施形態におけるキャッシュデータ管理部の構成例を説明するための図である。図3において、13はロード要求を発行するCPUノード10のキャッシュ制御部であり、15はロード要求を発行するCPUノード10のキャッシュデータ管理部である。18はキャッシュ制御部13がロード要求により要求されたデータが格納されていると判断したメモリであり、16はそのメモリ18が属しているCPUノード10のメモリ管理部である。17はディレクトリ情報により最新のデータがあるとされたキャッシュメモリを有するCPUノード10のリモート管理部である。
キャッシュデータ管理部15は、ヘッダ管理部22、データ部23、セレクト回路24、及びデータパス制御部25を有する。メモリ18(他のCPUノードのメモリ管理部16)、リモート管理部17からのデータは、キャッシュデータ管理部15に対して常に送信され、その書き込みタイミングはIDによって制御される。
IDによる書き込みタイミングを、図4を参照して説明する。ここで、パケットの制御情報であるヘッダ情報は、図5(A)に示すように、応答ステータス、制御フラグD、R、M、ID及びノード間通信の際には要求CPU−IDを含んでいる。IDは要求の識別子であり、キャッシュ管理部ID及びメモリ管理部IDを含むフォーマットである。図4に示すようにロード要求に係る動作では、まずキャッシュデータ管理部15からメモリ管理部16にキャッシュデータ管理部IDが送信される(S11)。
次に、メモリ管理部16が、キャッシュデータ管理部ID及びメモリ管理部IDをメモリ18に送信する(S12)。それに対して、メモリ18が、キャッシュデータ管理部ID及びメモリ管理部IDをメモリ管理部16に送信し(S13)、メモリ管理部16が、キャッシュデータ管理部ID及びメモリ管理部IDをキャッシュデータ管理部15に送信する(S14)。また、最新のデータが他のCPUノードにある場合、メモリ管理部16が、メモリ18からキャッシュデータ管理部ID及びメモリ管理部IDを受信した後、キャッシュデータ管理部ID及びメモリ管理部IDを他のCPUノードのリモート管理部17に送信する(S15)。それに対して、リモート管理部17が、キャッシュデータ管理部ID及びメモリ管理部IDをメモリ管理部16及びキャッシュデータ管理部15に送信する(S16、S17)。
このようにメモリ18から送信されるIDのタイミングとリモート管理部17から送信されるIDのタイミングが異なるため、IDでキャッシュデータ管理部15へのデータの書き込みタイミングを制御する。キャッシュデータ管理部15ではIDで指示されているエントリに対して簡単な2ポートライト処理部22でメモリ18(他のCPUノードのメモリ管理部16)若しくはリモート管理部17からのデータを受信しデータ部23に書き込みを行う。また、キャッシュデータ管理部15ではIDで指示されているエントリに対して簡単な2ポートライト処理部21でメモリ管理部16若しくはリモート管理部17からのヘッダ情報を受信しヘッダ管理部22に書き込みを行う。
また、本実施形態におけるデータの書き込みでは、図5(B)に示すデータのヘッダに含まれる2つのフラグD及びdによりキャッシュデータ管理部15への書き込みを指示している。リモート管理部17もしくはメモリ管理部16からの応答データパケットがデータ付きであることを示すフラグD、もしくはメモリ18からの応答データパケットがデータ付きであることを示すフラグdが立っている(値が“1”)とき、メモリ18(他のCPUノードのメモリ管理部16)、リモート管理部17からのデータをIDで指示されたキャッシュデータ管理部15のエントリに書き込む。
ここで、データが有効である最新のデータである場合には、転送の終了を知らせる必要がある。そこで、本実施形態では、例えばキャッシュデータ管理部15のデータ部23が保持している最新のデータのキャッシュメモリへの書き込みは、ヘッダ管理部22に保持されているヘッダ情報のフラグD、R、Mを参照して行う。フラグDはデータを有することを示し、フラグRはメモリ管理部16で資源をとり、リモート管理部17から完了応答が送信され、キャッシュデータ管理部15にメモリ管理部16の処理完了を示し、フラグMはリモート管理部17からの応答を示す。フラグD、R、Mの値と状態の対応を図6に示す。
キャッシュデータ管理部15は、フラグD、R、Mの状態をセレクト回路24で判断し、(D,R,M)=(1,0,0)又は(1,1,1)であるときに、送信されてきたデータを最新データとしてデータ有効指示を受信した状態を示す。ここで、(D,R,M)=(1,0,0)はメモリ18からの有効な最新のデータを表し、(D,R,M)=(1,1,1)はリモード管理部17からの有効な最新データを表している。これらのフラグD,R,Mを設けることで、メモリ18からの最新データ及びリモード管理部17からの最新データの判別ができ、キャッシュメモリに書き込むことができる。このデータ有効指示状態及びキャッシュ制御部13からの要求指示がデータパス制御部25に送信され、必要なデータがキャッシュデータ管理部15のデータ部23からキャッシュメモリに書き込まれる。
リード要求からキャッシュメモリへの書き込みまでのフラグに焦点を当てた動作のフローチャートを図7に示す。図7に示す例は、CPU−Aノード10Aによりリード要求が発行されたときを示している。
リード要求が発行されると、CPU−Aノード10Aのキャッシュ制御部13Aは、L==Hであるか否かを判断する(S101)。ここで、L==Hは、自CPUノードに属しているメモリ18に要求されたデータが格納されていることを示す。すなわち、ステップS101にて、キャッシュ制御部13Aは、要求されるデータがメモリ18Aに格納されているか否かを判断する。ステップS101での判断の結果、L==Hである場合には、CPU−Aノード10Aのメモリ管理部16の資源が確保され(S102)、メモリ18Aにディレクトリを確認しにいく(S103)。そして、メモリ18からフラグd=1にして、キャッシュデータ管理部15Aにデータが送信される(S104)。
次に、メモリ管理部16Aは、ヘッダ情報に含まれるディレクトリ情報に基づいて、メモリ18Aに最新のデータがあるか否かを判断する(S105)。ステップS105での判断の結果、メモリ18Aに最新のデータがあると判断した場合には、メモリ管理部16Aは、フラグ(D,R,M)=(1,0,0)としてヘッダ情報を送信する(S106)。そして、キャッシュデータ管理部15Aは、ヘッダ情報のフラグが(D,R,M)=(1,0,0)であることをセレクト回路24により判断し(S107)、キャッシュメモリへの書き込みを行う。
ステップS105での判断の結果、メモリ18Aに最新のデータがないと判断した場合には、CPU−Aノード10A以外のリモート管理部17B(17C)からフラグD=1、M=1にして、キャッシュデータ管理部15Aにデータが送信される(S108)。次に、リモート管理部17B(17C)からCPU−Aノード10Aのメモリ管理部16Aに完了応答を出し、資源を解放させる(S109)。メモリ管理部16Aは、R=1にしてキャッシュデータ管理部15Aにデータが送信される(S110)。そして、キャッシュデータ管理部15Aは、ヘッダ情報のフラグが(D,R,M)=(1,1,1)であることをセレクト回路24により判断し(S111)、キャッシュメモリへの書き込みを行う。
ステップS101での判断の結果、L==Hでない場合には、ステップS112に進む。ここでは、要求されるデータがメモリ18Aに格納されておらず、CPU−Bノード18Bに属しているメモリ18Bにあるものとする。ステップS112にて、CPU−Bノード10Bのメモリ管理部16の資源が確保され(S112)、メモリ18Bにディレクトリを確認しにいく(S113)。そして、メモリ管理部16Bは、ヘッダ情報に含まれるディレクトリ情報に基づいて、メモリ18Bに最新のデータがあるか否かを判断する(S114)。ステップS114での判断の結果、メモリ18Bに最新のデータがあると判断した場合には、メモリ管理部16Bは、フラグ(D,R,M)=(1,0,0)としてヘッダ情報を送信する(S115)。そして、キャッシュデータ管理部15Aは、ヘッダ情報のフラグが(D,R,M)=(1,0,0)であることをセレクト回路24により判断し(S116)、キャッシュメモリへの書き込みを行う。
ステップS114での判断の結果、メモリ18Bに最新のデータがないと判断した場合には、CPU−Cノード10Cのリモート管理部17CからフラグD=1、M=1にして、キャッシュデータ管理部15Aにデータが送信される(S117)。次に、リモート管理部17CからCPU−Aノード10Aのメモリ管理部16Aに完了応答を出し、資源を解放させる(S118)。メモリ管理部16Aは、R=1にしてキャッシュデータ管理部15Aにデータが送信される(S119)。そして、キャッシュデータ管理部15Aは、ヘッダ情報のフラグが(D,R,M)=(1,1,1)であることをセレクト回路24により判断し(S120)、キャッシュメモリへの書き込みを行う。
本実施形態では、要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合(L==H)の要求について、メモリ管理部16はデータ格納部32を省略することが可能である。ccNUMA方式では広大な主記憶領域を多数のCPUノードが共有できるが、処理性能を十分に上げるためには自CPUノードに属しているローカルの主記憶領域へアクセスするようにソフトをチューニングすることが好ましい。実際にccNUMA構成をサポートしたOS(オペレーションシステム)や開発環境はMPO(Memory Placement Optimization)と呼ばれる機能を実装しており、ローカルの主記憶領域へアクセスするようにプログラミングされる。
自CPUノードに属していないリモートメモリへのアクセス比が大きいとされる用途としてデータベース処理ソフトがあるが、統計的にローカル要求比:リモート要求比は1:1程度である。したがって、一般的なccNUMA構成使用時のローカル要求比:リモート要求比は1:1又はそれよりもローカル要求比が高いことを前提にしても問題がない。本実施形態における技術を適用することによって、要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合の要求は、メモリ管理部16のデータ資源を経由することなくキャッシュデータ管理部15へデータ転送が行われる。したがって、要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合の要求はメモリ管理部16のデータ資源を使用しない。一方で、要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一でない場合の要求は、メモリ管理部16のデータ資源を経由することになる。
本実施形態におけるメモリ管理部の構成例を図8に示す。メモリ管理部16は、ヘッダ管理部31、データ部32、IDデコード部33、35、及びヘッダ制御部34、36を有する。データをどのエントリが受信するかの制御は、IDによって行われる。例えば、IDが0〜7については要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一でない場合のデータを受信するエントリとする。そして例えば、IDが8〜15を要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合のメモリ管理部16が受信せずにキャッシュデータ管理部15へデータをバイパスするエントリとする。そのときに単純にデータ部32のIDが8〜15のエントリは削除する。また、エントリの有効数をカウントする機能については、H_DATA_USE_CTR(データ有)、H_NODATA_USE_CTR(データ無)の二つに分けて、それぞれカウントさせることで資源を溢れさせないようにすることができる。
ここで、本実施形態においてメモリ管理部は、前述のようにヘッダ管理部及びデータ部の両方を備えたエントリ(データ部付きエントリ)と、ヘッダ管理部のみを備えたエントリ(データ部無しエントリ)で構成できる。要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合の要求をデータ部無しエントリへ振り分け、同一でない場合の要求をデータ部付きエントリへ振り分けるように制御する。さらに、要求元CPUノード(CPU(L))とデータを持っているとされるCPUノード(CPU(H))が同一である場合の要求では、メモリ管理部16におけるデータ部無しエントリが空いてないときはデータ部付きエントリに割り当てるようにしても良い。
獲得資源についてのフローチャートを図9に示す。ここで、要求元CPUノード(CPU(L))と最新データを保有しているCPUノード(CPU(H))が同一ではない場合をL!=H、要求元CPUノード内からのリード要求をL−REQ、要求元CPUノード以外からのリード要求をR−REQとする。キャッシュ制御部15は、送信先情報について管理しており、その情報からリード要求に対してL−REQ又はR−REQを生成しているため、L−REQであるかR−LEQであるかが判別できる。さらにヘッダ情報内のアドレスをデコードすることにより、要求元CPUノード(CPU(L))と最新データを保有しているCPUノード(CPU(H))が同一であるか否かが特定できる。
キャッシュ制御部15は、リード要求が要求元CPUノード内からのリード要求L−REQであるか否かを判断する(S201)。その結果、リード要求がL−REQでない場合には、キャッシュ制御部15は、メモリ管理部にデータ部付きエントリの資源を獲得する(S202)。一方、リード要求がL−REQである場合には、キャッシュ制御部15は、アドレスをデコードし、要求元CPUノード(CPU(L))と最新データを保有しているCPUノード(CPU(H))が同一であるか否かを判断する(S203)。要求元CPUノード(CPU(L))と最新データを保有しているCPUノード(CPU(H))が同一でない場合には、キャッシュ制御部15は、キャッシュデータ管理部のデータ資源を獲得する(S204)。
リード要求がL−REQであり、要求元CPUノード(CPU(L))と最新データを保有しているCPUノード(CPU(H))が同一である場合には、キャッシュ制御部15は、メモリ管理部にデータ部無しエントリが空いているか否かを判断する(S204)。メモリ管理部にデータ部無しエントリが空いていれば、キャッシュ制御部15は、キャッシュデータ管理部のデータ資源及びメモリ管理部のデータ部無しエントリの資源を獲得する(S205)。一方、メモリ管理部にデータ部無しエントリが空いていなければ、キャッシュ制御部15は、メモリ管理部のデータ部付きエントリが空いていれば、そのエントリの資源を獲得する(S206)。
データ部付きエントリとデータ部無しエントリ比率は、用途により最適値が異なるが、一般的なリモート要求比率が最大とされる1:1程度とすれば大部分の処理において、性能を低下させずにCPUチップ面積や消費電力の低減が実現可能となる。
図10及び図11に、それぞれ図1及び図2に示したデータ転送経路でのデータ転送の流れを示す。ここで、図12に示すデータ転送経路について説明する。図12に示す転送経路は、CPU−Aノード10Aのキャッシュ制御部15Aが、ロード要求R31を発行したCPU−Aノード10Aに属しているメモリ18Aにデータを有しておらず、CPU−Bノード18Bに属しているメモリ18Bにデータがあると判断した場合の転送経路である。さらに、メモリ18Bからのディレクトリ情報により、メモリ18Bにあるデータが最新ではなく、CPU−Cノード10Cのキャッシュメモリに最新データがあった場合に、メモリ管理部16Bだけではなく、キャッシュデータ管理部15Aにもデータを転送する転送経路である。
ロード要求R31は、キャッシュ制御部13Aによりキャッシュデータ管理部15Aに送信され、キャッシュデータ管理部15Aにおける資源が確保される。そして、キャッシュデータ管理部15AからCPU−Bノード10Bにロード要求R32が送信され、キャッシュ制御部13Bを経由してメモリ管理部16Bが受信する。CPU−Bノード10Bのメモリ管理部16Bは、メモリ18Bにデータ及びディレクトリ情報を要求する(R333)。その要求に対する応答として、メモリ管理部16Bが、メモリ18Bからヘッダ情報I31及び最新のデータが他のCPU−Cノード10Cにあるという情報R33を受け取る。
そして、キャッシュ制御部13C等により、CPU−Cノード10Cのキャッシュメモリにあるデータをリモート管理部17Cに要求する(R35,R36)。それによって、リモート管理部17Cから送信されたヘッダ情報I32は、CPU−Bノード10Bのメモリ管理部16Bを経由して、CPU−Aノード10Aのキャッシュデータ管理部15Aに送信される(I34)。リモート管理部17Cから送信されたデータD31はCPU−Aノード10Aのキャッシュデータ管理部15Aに送信され、データD32はCPU−Bノード10Bのメモリ管理部16Bに送信される。そして、キャッシュデータ管理部15Aからキャッシュ制御部13AにデータD33が送られる。図13に、図12に示したデータ転送経路でのデータ転送の流れを示す。図11と図13とを比較すると、CPU−Aノード10Aのキャッシュデータ管理部15Aが他のCPUノードのリモート管理部からのデータを受信するときの制御は同じ制御で実現することができる。したがって、図12に示すようなデータ転送経路が実現可能であるキャッシュデータ管理部15と同様の論理構成で、本実施形態におけるキャッシュデータ管理部を実現することができる。なお、図10、図11、及び図14において、M_REQはMove in要求である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
10 CPUノード
11 演算処理部(CORE部)
12 二次キャッシュ部
13 キャッシュ制御部
14 キャッシュメモリ部
15 キャッシュデータ管理部
16 メモリ管理部
17 リモート管理部
18 メモリ

Claims (7)

  1. 主記憶装置に接続する演算処理装置において、
    キャッシュメモリと、
    前記主記憶装置が記憶する対象データを前記キャッシュメモリにロードするロード要求を発行する演算処理部と、
    前記演算処理部から受信したロード要求に対応する処理を行う制御部と、
    前記制御部からの要求に対応する対象データと、対象データが最新であるかを示す情報を含むヘッダ情報とを、前記主記憶装置に対して要求するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答したヘッダ情報を受信するメモリ管理部と、
    前記ロード要求により取得したデータの前記キャッシュメモリへの書き込み制御を管理するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答した対象データを前記メモリ管理部を介さずに受信するデータ管理部を有することを特徴とする演算処理装置。
  2. 前記メモリ管理部は、前記主記憶装置が応答した前記ヘッダ情報が他の演算処理装置のキャッシュメモリに最新の対象データがあることを示す場合には、当該他の演算処理装置に対して対象データとヘッダ情報を要求するとともに、前記他の演算処理装置に対する要求に基づいて前記他の演算処理装置が応答したヘッダ情報を受信し、
    前記データ管理部は、前記他の演算処理装置に対する要求に基づいて前記他の演算処理装置が応答した対象データを前記メモリ管理部を介さずに受信することを特徴とする請求項1記載の演算処理装置。
  3. 前記ヘッダ情報に複数のフラグを有し、
    前記データ管理部は、前記メモリ管理部から供給される前記ヘッダ情報の前記複数のフラグの値が所定の組み合わせである場合に、当該ヘッダ情報に対応する前記対象データの前記キャッシュメモリへの書き込みを指示することを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記データ管理部は、前記メモリ管理部から供給される前記ヘッダ情報を保持する第1の保持部と、
    前記主記憶装置が応答した対象データを保持する第2の保持部と、
    前記第1の保持部に保持された前記ヘッダ情報の前記複数のフラグの値が所定の組み合わせであるか否かを判定する判定回路と、
    前記判定回路での判定結果に応じて、前記第2の保持部に保持された前記対象データを出力する出力回路とを有することを特徴とする請求項3記載の演算処理装置。
  5. 前記メモリ管理部は、前記対象データ及び前記ヘッダ情報をともに格納する第1のエントリと、前記対象データを格納せずに前記ヘッダ情報を格納する第2のエントリとを有し、
    前記ロード要求を発行した演算処理装置に接続された前記主記憶装置が、当該ロード要求により要求される対象データを有している場合には、当該ロード要求について前記第2のエントリを割り当てることを特徴とする請求項1〜4の何れか1項に記載の演算処理装置。
  6. キャッシュメモリと、
    主記憶装置が記憶する対象データを前記キャッシュメモリにロードするロード要求を発行する演算処理部と、
    前記演算処理部から受信したロード要求に対応する処理を行う制御部と、
    前記制御部からの要求に対応する対象データと、対象データが最新であるかを示す情報を含むヘッダ情報とを、前記主記憶装置に対して要求するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答したヘッダ情報を受信するメモリ管理部と、
    前記ロード要求により取得したデータの前記キャッシュメモリへの書き込み制御を管理するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答した対象データを受信するデータ管理部を有する演算処理装置と、
    前記演算処理装置に接続され、前記演算処理装置の前記メモリ管理部からの要求に対して前記対象データを前記演算処理装置の前記データ管理部に送信し、前記ヘッダ情報を前記演算処理装置の前記メモリ管理部に送信する主記憶装置とを備えることを特徴とする情報処理装置。
  7. 主記憶装置に接続し、キャッシュメモリを有する演算処理装置の制御方法において、
    前記演算処理装置が有する演算処理部が、前記主記憶装置が記憶する対象データを前記キャッシュメモリにロードするロード要求を発行し、
    前記演算処理装置が有する制御部が、前記演算処理部から受信したロード要求に対応する処理を行い、
    前記演算処理装置が有するメモリ管理部が、前記制御部からの要求に対応する対象データと、対象データが最新であるかを示す情報を含むヘッダ情報とを、前記主記憶装置に対して要求するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答したヘッダ情報を受信し、
    前記演算処理装置が有するデータ管理部が、前記ロード要求により取得したデータの前記キャッシュメモリへの書き込み制御を管理するとともに、前記主記憶装置に対する要求に基づいて前記主記憶装置が応答した対象データを前記メモリ管理部を介さずに受信することを特徴とする演算処理装置の制御方法。
JP2012190442A 2012-08-30 2012-08-30 演算処理装置、情報処理装置、及び演算処理装置の制御方法 Active JP5958192B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012190442A JP5958192B2 (ja) 2012-08-30 2012-08-30 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US13/929,925 US20140068194A1 (en) 2012-08-30 2013-06-28 Processor, information processing apparatus, and control method of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012190442A JP5958192B2 (ja) 2012-08-30 2012-08-30 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014048830A JP2014048830A (ja) 2014-03-17
JP5958192B2 true JP5958192B2 (ja) 2016-07-27

Family

ID=50189120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012190442A Active JP5958192B2 (ja) 2012-08-30 2012-08-30 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US20140068194A1 (ja)
JP (1) JP5958192B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
JP2001282764A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd マルチプロセッサシステム
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US7225298B2 (en) * 2003-04-11 2007-05-29 Sun Microsystems, Inc. Multi-node computer system in which networks in different nodes implement different conveyance modes
US7321956B2 (en) * 2004-03-25 2008-01-22 International Business Machines Corporation Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches
JP2005332250A (ja) * 2004-05-20 2005-12-02 Toshiba Corp データ処理装置およびフロー制御方法
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US20080065835A1 (en) * 2006-09-11 2008-03-13 Sun Microsystems, Inc. Offloading operations for maintaining data coherence across a plurality of nodes
JP2009187272A (ja) * 2008-02-06 2009-08-20 Nec Corp 分散メモリマルチプロセッサシステムにおけるメモリ移行のための装置及び方法
JP2009245323A (ja) * 2008-03-31 2009-10-22 Nec Computertechno Ltd レイテンシ短縮方式及び方法

Also Published As

Publication number Publication date
US20140068194A1 (en) 2014-03-06
JP2014048830A (ja) 2014-03-17

Similar Documents

Publication Publication Date Title
US10169080B2 (en) Method for work scheduling in a multi-chip system
ES2553428T3 (es) Método, dispositivo y sistema de procesamiento de contenidos
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
US7111092B1 (en) Buffer management technique for a hypertransport data path protocol
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
US10592459B2 (en) Method and system for ordering I/O access in a multi-node environment
WO2014038070A1 (ja) 情報処理装置,並列計算機システム及び情報処理装置の制御方法
US10055153B2 (en) Implementing hierarchical distributed-linked lists for network devices
JP5621918B2 (ja) 情報処理装置、並列計算機システムおよび演算処理装置の制御方法
US9785367B2 (en) System and method for enabling high read rates to data element lists
CN102439571B (zh) 一种防止节点控制器死锁的方法及装置
KR20150129808A (ko) 메모리 노드를 포함하는 분산형 메모리 시스템을 위한 방법 및 장치
CN107852344A (zh) 存储网元发现方法及装置
JP5958192B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US20170017568A1 (en) System And Method For Implementing Distributed-Linked Lists For Network Devices
JP2020184668A (ja) コントローラ
JP2000010948A (ja) ノード間接続装置、接続方法及び接続処理プログラム記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5958192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150