JP5559373B1 - 主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム - Google Patents
主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム Download PDFInfo
- Publication number
- JP5559373B1 JP5559373B1 JP2013024539A JP2013024539A JP5559373B1 JP 5559373 B1 JP5559373 B1 JP 5559373B1 JP 2013024539 A JP2013024539 A JP 2013024539A JP 2013024539 A JP2013024539 A JP 2013024539A JP 5559373 B1 JP5559373 B1 JP 5559373B1
- Authority
- JP
- Japan
- Prior art keywords
- main memory
- instruction
- access
- memory access
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 44
- 230000000694 effects Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Abstract
【課題】同一アドレスへの参照命令を連続して処理する場合、後続命令の処理開始のタイミングを早めて、主記憶アクセス性能を向上させる主記憶アクセス制御装置を提供する。
【解決手段】本願発明の命令実行制御装置は、主記憶を共有するマルチプロセッサシステムにおいて、実行中の主記憶アクセス命令ごとに、命令種別と、アクセスアドレスと、主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて記憶する実行中命令記憶手段と、後続主記憶アクセス命令を受信したときに、実行中命令記憶手段を参照して、後続主記憶アクセス命令とアクセスアドレスが等しいレコードが存在する場合、当該レコードと後続主記憶アクセス命令の命令種別がいずれも参照命令であり、かつ、当該レコードのアクセス完了データがアクセス完了を示していれば、プロセッサからの開放指示の受信を待たずに、後続アクセス命令の実行を開始する実行手段と、を備える。
【選択図】 図1
【解決手段】本願発明の命令実行制御装置は、主記憶を共有するマルチプロセッサシステムにおいて、実行中の主記憶アクセス命令ごとに、命令種別と、アクセスアドレスと、主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて記憶する実行中命令記憶手段と、後続主記憶アクセス命令を受信したときに、実行中命令記憶手段を参照して、後続主記憶アクセス命令とアクセスアドレスが等しいレコードが存在する場合、当該レコードと後続主記憶アクセス命令の命令種別がいずれも参照命令であり、かつ、当該レコードのアクセス完了データがアクセス完了を示していれば、プロセッサからの開放指示の受信を待たずに、後続アクセス命令の実行を開始する実行手段と、を備える。
【選択図】 図1
Description
本願発明は、主記憶を共有するマルチプロセッサシステムにおいて、各プロセッサから主記憶上の同一アドレスへのアクセス競合が発生した場合の、アクセス処理を制御する主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラムに関する。
コンピュータシステムの処理性能を向上させるため、マルチプロセッサシステムが包含するプロセッサの台数は、年々増加してきている。主記憶装置を共有するマルチプロセッサシステムにおいては、プロセッサの台数が増加するにしたがい、主記憶における同一アドレスへのアクセスの競合がシステム性能に与える影響が大きくなる。
例えば、複数のプロセッサが、システム内の同じ資源(リソース)に同時にアクセスする際の排他制御の仕組みであるスピンロック処理などでは、多くのプロセッサが、主記憶上の同一アドレスにアクセスする。このとき、当該アドレスに対するアクセス競合が発生し、当該アドレスへのアクセス権を取得したプロセッサ以外のプロセッサは、当該アドレスへのアクセス権を取得できるまで、処理を待たされることになる。したがって、アクセス競合が発生した場合の主記憶アクセス処理の性能を向上させる技術の重要性が、益々高まってきている。
このような、主記憶アクセス処理の性能を向上させる関連技術として、特許文献1には、複数のノードを備えたシステムにおいて、第1の主記憶アクセスリクエストの処理中に、当該リクエストとアクセスアドレスが競合する第2の主記憶アクセスリクエストを他ノードから受信した場合の、アクセス処理技術が公開されている。この技術では、ノードが第1のリクエストの処理を完了するまで第2のリクエストを保持し、第1のリクエストの処理を完了した後、第2のリクエストを続けて処理する。
また、上述のスピンロック処理の関連技術として、特許文献2には、演算処理装置がスピンロック状態になったことを検出した場合、演算処理装置に接続されるキャッシュメモリに対して、当該演算処置から出力されるメモリアクセスリクエストをマスクするためのフラグ信号を出力する技術が公開されている。この技術では、ポーリング回数を低減することにより、バスアクセスやキャッシュアクセスの回数を削減している。
各プロセッサがキャッシュを備えるマルチプロセッサシステムでは、主記憶上の同一アドレスへのアクセス競合が発生した場合、各プロセッサ間のキャッシュコヒーレンシ制御のためのスヌープ処理が行われる。この場合、ある主記憶アクセス命令に関するスヌープ処理が完了しないうちに、当該主記憶アクセスとアクセスアドレスの等しい後続の主記憶アクセス命令の実行が開始されると、データ不正が発生する可能性がある。したがって、このようなマルチプロセッサシステムにおいては、通常、各プロセッサが、自身が発行した主記憶アクセス命令について、スヌープ処理を含めた全ての処理が完了したことを確認して、アクセスアドレスの開放指示を発行し、主記憶アクセス処理を制御する主記憶アクセス制御装置は、この開放指示を受信してから、後続の当該アクセスアドレスに対する主記憶アクセス命令の処理を開始している。
しかしながら、主記憶への参照命令については、スヌープ処理は発生しない。したがって、例えばスピンロック処理時のように、同一アドレスへの参照命令が連続するケースでは、主記憶アクセス制御装置は、上述のアクセスアドレスの開放指示の受信を待たなくても、実行中の主記憶アクセス命令の主記憶アクセスが完了し、当該アクセスアドレスへのアクセスが可能になった時点で、後続の主記憶アクセス命令の処理を開始しても、データ不正の問題は生じない。
上述の通り、主記憶への参照命令が連続するケースでは、後続の主記憶アクセス命令の処理を開始するタイミングを早めることが可能となるが、上述の特許文献1乃至2は、このような主記憶アクセス処理の技術については言及していない。
本願発明の目的は、上述の課題を解決した主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラムを提供することである。
本願発明の一実施形態の主記憶アクセス制御装置は、主記憶を共有するマルチプロセッサシステムにおいて、いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する装置であって、実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて記憶する実行中命令記憶手段と、新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記実行中命令記憶手段を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続アクセス命令の実行を開始する実行手段と、を備える。
本願発明の一実施形態の主記憶アクセス制御方法は、 主記憶を共有するマルチプロセッサシステムにおいて、いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する方法であって、実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて第一の記憶域に記憶し、新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記第一の記憶域を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続アクセス命令の実行を開始する。
本願発明の一実施形態の主記憶アクセス制御プログラムは、主記憶を共有するマルチプロセッサシステムにおいて、いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する処理をコンピュータに実行させるプログラムであって、実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて第一の記憶域に記憶する実行中命令記憶処理と、新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記第一の記憶域を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続アクセス命令の実行を開始する実行処理と、をコンピュータに実行させる。
本願発明は、主記憶を共有するマルチプロセッサシステムにおいて、主記憶上の同一アドレスに対する参照命令を連続して処理する場合に、後続の参照命令の処理を開始するタイミングを早めることで、主記憶アクセス性能を向上させる。
本願発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は本実施形態の主記憶アクセス制御システム1の構成を示すブロック図である。本実施形態の主記憶アクセス制御システム1は、主記憶アクセス制御装置10と、n個のプロセッサ(中央処理装置)20−1乃至20−nと、主記憶装置30と、を包含している。
主記憶アクセス制御装置10は、実行中命令記憶部11と、実行部13と、を包含している。実行中命令記憶部11は、電子回路あるいはコンピュータプログラムによりアクセス制御が行われる電子メモリ等の記憶装置である。実行部13は、電子回路である場合もあれば、コンピュータプログラムである場合もある。
実行中命令記憶部11は、プロセッサ20−1乃至20−nから発行された、主記憶装置30へのアクセス命令で、実行中であるものに関する情報を記憶している。実行中命令記憶部11は、主記憶アクセス命令ごとに、命令種別110、アクセスアドレス111、発行元プロセッサ112、リプライデータ113、及び、開放指示不要フラグ114の情報を記憶している。
命令種別110は、主記憶アクセス命令が、主記憶装置30への参照命令であるのか、あるいは、更新命令であるのか等を示す情報である。アクセスアドレス111は、主記憶装置30における、主記憶アクセス命令のアクセスアドレスである。リプライデータ113は、主記憶アクセス命令の実行により、主記憶装置30から受信したリプライデータであり、例えば、参照命令の場合は主記憶装置30から読み出したデータであり、更新命令の場合は、主記憶装置30への書き込み完了を示すデータとなる。
発行元プロセッサ112は、主記憶アクセス命令の発行元のプロセッサの識別情報である。プロセッサ20−1乃至20−nは、それぞれ、識別情報として、1乃至nのプロセッサ番号が付与されており、発行元プロセッサ112は、1乃至nの何れかの値となる。
開放指示不要フラグ114は、主記憶アクセス命令を発行したプロセッサが、当該主記憶アクセス命令の処理を全て完了したときに、当該主記憶アクセス命令のアクセスアドレスのエントリの開放指示を、主記憶アクセス制御装置10に対して発行しなくてもよいことを示すフラグである。
実行部13は、プロセッサ20−1乃至20−nの何れかから発行された後続の主記憶アクセス命令12を受信すると、主記憶アクセス命令12の命令情報を、実行中命令記憶部11に照合する。主記憶アクセス命令12の命令情報は、命令種別120、アクセスアドレス121、及び、発行元プロセッサ122の情報を包含している。命令種別120と、アクセスアドレス121と、発行元プロセッサ122の詳細は、それぞれ、命令種別110と、アクセスアドレス111と、発行元プロセッサ112と同様である。
実行部13は、アクセスアドレス121と値が一致するアクセスアドレス111を持つレコードが、実行中命令記憶部11内に存在しない場合は、主記憶アクセス命令12とアクセスアドレスが競合する実行中の主記憶アクセス命令が存在しないため、主記憶アクセス命令12の命令情報を実行中命令記憶部11に登録して、主記憶アクセス命令12の実行を開始する。
実行部13は、アクセスアドレス121と値が一致するアクセスアドレス111を持つレコードが実行中命令記憶部11内に存在する場合は、命令種別120と、実行中命令記憶部11における当該レコードの命令種別110を確認する。実行部13は、命令種別120、及び、命令種別110の少なくともいずれか一方が更新命令である場合、当該レコードに対応する主記憶アクセス命令の処理が全て完了し、当該主記憶アクセス命令の発行元のプロセッサからアクセスアドレスのエントリの開放指示を受信するまで、主記憶アクセス命令12を実行することができない。したがって、実行部13は、発行元プロセッサ122が示す主記憶アクセス命令12の発行元プロセッサに対して、主記憶アクセスのリトライ指示を送信する。
実行部13は、上述の確認の結果、命令種別120、及び、命令種別110の両方が参照命令である場合、実行中命令記憶部11における当該レコードのリプライデータ113を確認し、リプライデータ113が格納済みであるかどうかを確認する。実行部13は、リプライデータ1123格納済みである場合、当該レコードを実行中命令記憶部11から削除して、主記憶アクセス命令12の命令情報を実行中命令記憶部11に登録し、主記憶アクセス命令12の実行を開始する。実行部13は、リプライデータ113が格納済みでない場合、当該レコードにおける開放指示不要フラグ114を点灯させたのち、発行元プロセッサ122が示す主記憶アクセス命令12の発行元プロセッサに対して、主記憶アクセスのリトライ指示を送信する。
実行部13は、実行中命令記憶部11に登録された、実行中の主記憶アクセス命令のいずれかのリプライデータを主記憶装置30から受信すると、実行中命令記憶部11における当該主記憶アクセス命令に対応するレコードのリプライデータ112として格納する。実行部13は、リプライデータ112、及び、当該レコードの開放指示不要フラグ114の値を、発行元プロセッサ112が示すプロセッサに送信する。
実行部13は、プロセッサ20−1乃至20−nのいずれかから、所定の処理が全て完了した主記憶アクセス命令のアクセスアドレスのエントリの開放指示を受信すると、実行中命令記憶部11から、当該主記憶アクセス命令に対応するレコードを削除する。実行部13は、主記憶装置30における同一アドレスへの参照アクセスが連続し、上述の主記憶アクセス命令12の開始動作により、実行中命令記憶部11から既に命令情報が削除されている主記憶アクセス命令に対応するアクセスアドレスのエントリの開放指示を受信した場合は、当該開放指示を無効化する。
プロセッサ20−1乃至20−nは、実行部13から、発行した主記憶アクセス命令に対応するリプライデータ113、及び、開放指示不要フラグ114を受信すると、開放指示不要フラグ114が点灯していない場合は、当該主記憶アクセス命令に関するキャッシュコヒーレンシ制御のためのスヌープ処理等の所定の処理を全て完了させた後、当該主記憶アクセス命令アクセスアドレスのエントリの開放指示を実行部13へ送信する。プロセッサ20−1乃至20−nは、上述の開放指示不要フラグ114が点灯している場合は、当該主記憶アクセス命令アクセスアドレスのエントリの開放指示の発行を行わない。
次に、図2のフローチャートを参照して、本実施形態の動作について詳細に説明する。
主記憶アクセス制御装置10は、プロセッサ20−1乃至20−nのいずれかから、主記憶装置30への主記憶アクセス命令12を受信する(S101)。実行部13は、主記憶アクセス命令12におけるアクセスアドレス121と値が一致するアクセスアドレス111を持つレコードが、実行中命令記憶部11内に存在するか確認する(S102)。
値が一致するレコードが存在しない場合(S103でNo)、実行部13は、主記憶アクセス命令12の命令種別120と、アクセスアドレス121と、発行元プロセッサ122を、実行中命令記憶部11に登録し、主記憶アクセス命令12を実行する(S111)。値が一致するレコードが存在する場合(S103でYes)、実行部13は、一致したレコードにおける命令種別110、及び、主記憶アクセス命令12における命令種別120を確認する(S104)。
命令種別110と命令種別120の少なくともいずれかが参照命令でない場合(S105でNo)、実行部13は、主記憶アクセス命令12における発行元プロセッサ122が示すプロセッサに、リトライ指示を送信し(S109)、全体の処理は終了する。命令種別110と命令種別120がいずれも参照命令である場合(S105でYes)、実行部13は、S103で値が一致したレコードにおけるリプライデータ113が格納済みであるか確認する(S106)。
リプライデータ113が格納済みでない場合(S107でNo)、実行部13は、S103で値が一致したレコードにおける開放指示不要フラグ114を点灯させる(S108)。リプライデータ112が格納済みである場合(S107でYes)、実行部13は、実行中命令記憶部11におけるS103で一致したレコードを削除する(S110)。実行部13は、主記憶アクセス命令12の命令種別120と、アクセスアドレス121と、発行元プロセッサ122を、実行中命令記憶部11に登録し、主記憶アクセス命令12を実行する(S111)。
実行部13は、主記憶アクセス命令12のリプライデータ113を、主記憶装置30から受信し、実行中命令記憶部11に格納した後、リプライデータ113と開放指示不要フラグ114を、発行元プロセッサ122が示すプロセッサへ送信する(S112)。発行元プロセッサ122が示すプロセッサは、主記憶アクセス命令12の所定の処理を完了させる(S113)。
開放指示不要フラグ114が点灯している場合(S114でYes)、全体の処理は終了する。開放指示不要フラグ114が点灯していない場合(S114でNo)、発行元プロセッサ122が示すプロセッサは、実行部13に、アクセスアドレス121の開放指示を送信する(S115)。
アクセスアドレス121と値が一致するアクセスアドレス111のレコードが実行中命令記憶部11に存在しない場合(S116でNo)、全体の処理は終了する。アクセスアドレス121と値が一致するアクセスアドレス111のレコードが実行中命令記憶部11に存在する場合、実行部13は、アクセスアドレス121と値が一致するアクセスアドレス111のレコードを、実行中命令記憶部11から削除し(S117)、全体の処理は終了する。
本実施形態には、主記憶を共有するマルチプロセッサシステムにおいて、主記憶上の同一アドレスに対する参照命令を連続して処理する場合に、後続の参照命令の処理を開始するタイミングを早めることで、主記憶アクセス性能を向上させる効果がある。その理由は、実行部13が、受信した主記憶アクセス命令12のアクセスアドレス121が、実行中の主記憶アクセス命令と競合する場合、両方の命令がいずれも参照命令であり、かつ、実行中の主記憶アクセス命令のリプライデータ113が格納済みである場合、実行中の主記憶アクセス命令のアクセスアドレスのエントリの開放指示を待たずに、主記憶アクセス命令12の処理を開始するからである。
各々のプロセッサがキャッシュを備えた、主記憶を共有するマルチプロセッサシステムでは、各プロセッサは、キャッシュコヒーレンシ制御のためのスヌープ処理を実行する。主記憶における同一アドレスへのアクセスが競合した場合、ある主記憶アクセス命令のスヌープ処理が、先行する主記憶アクセス命令の処理を追い越す、あるいは、後続の主記憶アクセス命令の処理に追い越されることがないことを、主記憶アクセス制御装置が保障する必要がある。しかがって、通常、主記憶アクセス制御装置は、実行中の先行主記憶アクセス命令の所定の処理が全て完了した後、アクセスアドレスのエントリの開放指示を、先行する主記憶アクセス命令の発行元のプロセッサから受信するまでは、後続の主記憶アクセス命令の処理を開始しない。
しかしながら、主記憶アクセス命令が参照命令である場合は、スヌープ処理が発生しないため、実行中の主記憶アクセス命令と、後続の主記憶アクセス命令が、いずれも参照命令であるならば、上述のスヌープ処理に関わる命令間の順序保障の問題は発生しない。したがって、実行中の主記憶アクセス命令と、後続の主記憶アクセス命令が、いずれも参照命令である場合は、主記憶アクセス制御装置は、実行中の主記憶アクセス命令の発行元プロセッサからのアクセスアドレスのエントリの開放指示を待たずに、後続の主記憶アクセス命令を開始することが可能となる。
本実施形態における同一アドレスへの主記憶アクセス競合時において、実行中の主記憶アクセス命令と後続の主記憶アクセス命令の、少なくともいずれかが更新命令である場合の主記憶アクセス制御装置10の主記憶アクセスの時間軸動作を図3に示す。
主記憶アクセス制御装置10は、プロセッサ20−1からのアクセスリクエストを受信して、当該アクセスリクエストの処理を開始する。その後、主記憶アクセス制御装置10は、プロセッサ20−2乃至20−4から、同一アドレスへのアクセスリクエストを受信するが、プロセッサ20−1からのアクセスリクエストが処理中であるため、プロセッサ20−2乃至20−4に対して、リトライ指示を送信する。
主記憶アクセス制御装置10は、プロセッサ20−1からのアクセスリクエストに対する主記憶装置30からのリプライデータを受信すると、リプライデータを、プロセッサ20−1に送信する。主記憶アクセス制御装置10がリプライデータを受け取った時点で、主記憶装置30における当該アクセスアドレスへのアクセス自体は可能となるが、当該アクセスリクエストに関するスヌープ処理等の所定の処理が完了していないため、主記憶アクセス制御装置10は、当該アクセスアドレスへの後続のアクセスリクエストを受け付けない。
プロセッサ20−1は、アクセスリクエストに関する所定の処理を全て完了させた後、主記憶装置30に対して、当該アクセスアドレスのエントリ開放指示を送信する。主記憶アクセス制御装置10は、当該アクセスアドレスのエントリ開放指示の受信をもって、当該アクセスアドレスへの後続のアクセスリクエストを受け付けることが可能となり、エントリ開放指示の受信後、最初に受信したプロセッサ20−4からのアクセスリクエストの処理を開始する。
本実施形態における同一アドレスへの主記憶アクセス競合時において、参照命令を連続して処理する場合の主記憶アクセス制御装置10の主記憶アクセスの時間軸動作を図4に示す。
主記憶アクセス制御装置10は、図3の場合と同様に、プロセッサ20−1からの参照リクエストの処理中に受信したアクセスリクエストの発行元であるプロセッサ20−2乃至20−4に対して、リトライ指示を送信する。
主記憶アクセス制御装置10は、プロセッサ20−1からのアクセスリクエストに対する主記憶装置30からのリプライデータを受信すると、当該アクセスリクエストと同じアクセスアドレスに対する後続の参照リクエストを受け付けることが可能となる。主記憶アクセス制御装置10は、当該リプライデータの受信後、最初に受信したプロセッサ20−2からの参照リクエストの処理を開始する。
図4における、主記憶アクセス制御装置10による、プロセッサ20−1からの主記憶アクセスリクエストの処理時間は、図3におけるそれと比較して、主記憶アクセス制御装置10がプロセッサ20−1へリプライデータを送信し、プロセッサ20−1からアクセスアドレスのエントリ開放指示を受信するまでの時間分短いこととなる。
特に、マルチノード構成の分散共有メモリを備える大規模なコンピュータシステムでは、プロセッサから主記憶装置へのレイテンシが長いことが多く、上述の主記憶アクセスリクエストで短縮される処理時間が大きくなるため、本実施形態の主記憶アクセス性能を向上させる効果は大きくなる。
また、多数のプロセッサを備えたマルチプロセッサシステムにおいて、スピンロックが発生したような場合、同一アドレスに対する多数の参照リクエストが連続するため、本実施形態の、上述の主記憶アクセスリクエストの処理時間の短縮による主記憶アクセス性能を向上させる効果は大きくなる。
さらに、本実施形態では、実行中命令記憶部11が、実行中の主記憶アクセス命令ごとに、開放指示不要フラグを備え、後続の参照命令が処理待ちの状態のときに、実行部13が開放指示不要フラグを点灯させ、当該主記憶アクセス命令のアクセスアドレスの開放指示の発行が不要であることを、当該主記憶アクセス命令の発行元のプロセッサに通知する。したがって、各プロセッサは、不要なアクセスアドレスの開放指示の発行処理を行わないで済むため、本実施形態には、各プロセッサの処理性能を向上させる効果もある。
<第2の実施形態>
次に、本願発明の第2の実施形態について図面を参照して詳細に説明する。
<第2の実施形態>
次に、本願発明の第2の実施形態について図面を参照して詳細に説明する。
図5は本願発明の第2の実施形態の主記憶アクセス制御システム1の構成を示すブロック図である。本実施形態の主記憶アクセス制御システム1は、主記憶アクセス制御装置10が、実行待ち命令記憶部14を備えていることを除いては、実施形態1と同様の構成である。
実行待ち命令記憶部14は、電子回路あるいはコンピュータプログラムによりアクセス制御が行われる電子メモリ等の記憶装置である。
実行待ち命令記憶部14は、プロセッサ20−1乃至20−nから発行された、主記憶装置30へのアクセス命令で、アクセスアドレスの競合等により、実行待ちになった命令に関する情報を記憶している。実行待ち命令記憶部14は、主記憶アクセス命令ごとに、命令種別140、アクセスアドレス141、発行元プロセッサ142の情報を記憶している。
実行部13は、実行中命令記憶部11を参照し、実行中命令記憶部11における、命令種別110が参照命令であるいずれかのレコードのリプライデータが格納されたことを検出する。実行部13は、当該レコードとアクセスアドレスが等しい参照命令である実行待ちの命令が、実行待ち命令記憶部14に、少なくとも1つ以上存在する場合、該当する実行待ち命令のうちの何れかの実行を開始する。
実行部13は、実行待ち命令記憶部14に記憶された何れかの実行待ちの命令の実行を開始すると、当該命令に関するレコードを、実行待ち命令記憶部14から削除する。
本実施形態には、第一の実施形態の効果に加えて、実行待ちの状態にある主記憶への参照命令の実行を開始するタイミングを早めることで、主記憶アクセス性能をさらに向上させる効果がある。その理由は、実行待ち命令記憶部14が、実行待ちの主記憶アクセス命令を記憶し、実行部13が、実行中の主記憶への参照命令のいずれかのリプライデータが格納されたことを検出すると、実行待ち命令記憶部14における、当該参照命令とアクセスアドレスが等しい実行待ちの参照命令の実行を開始するからである。
本実施形態では、主記憶アクセス制御装置10は、アクセスアドレスの競合等で、実行待ちになった主記憶アクセス命令のリトライ指示を、当該命令の発行元プロセッサに送信するのではなく、実行待ちになった主記憶アクセス命令の情報を、実行待ち命令記憶部14に格納する。したがって、主記憶アクセス制御装置10は、実行待ちになった主記憶アクセス命令に関する、発行元プロセッサからのリトライを待たずに、アクセスアドレスが競合する実行中の主記憶アクセス命令のリプライデータが格納されたタイミングで、実行待ちの主記憶アクセス命令の実行を開始することが可能となる。
<第3の実施形態>
次に、本願発明の第3の実施形態について図面を参照して詳細に説明する。
<第3の実施形態>
次に、本願発明の第3の実施形態について図面を参照して詳細に説明する。
図6は本実施形態の主記憶アクセス制御装置10の構成を示すブロック図である。
本実施形態の主記憶アクセス制御装置10は、プロセッサ20−1乃至20−nのいずれかからの主記憶装置30への主記憶アクセス命令の実行を開始すると、アクセスアドレスの主記憶を占有する。主記憶アクセス制御装置10は、当該アクセスアドレスへのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該アクセスアドレスの占有を開放して、他のプロセッサからの当該アクセスアドレスへのアクセスを許可する。
主記憶アクセス制御装置10は、実行中命令記憶部11と、実行部13と、を包含している。
実行中命令記憶部11は、実行中の前記主記憶アクセス命令の各々ごとに、命令種別110と、アクセスアドレス111と、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データ115とを対応付けて記憶する。
実行部13は、新たな主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、実行中命令記憶部11を参照する。実行部13は、後続主記憶アクセス命令とアクセスアドレスが等しいレコードが存在する場合、当該レコードと後続主記憶アクセス命令の命令種別がいずれも参照命令であり、かつ、当該レコードのアクセス完了データ115がアクセス完了を示しているのであれば、プロセッサからの開放指示の受信を待たずに、後続アクセス命令の実行を開始する。
本実施形態には、第1の実施形態と同様に、主記憶上の同一アドレスに対する参照命令を連続して処理する場合に、後続の参照命令の処理を開始するタイミングを早めることで、主記憶アクセス性能を向上させる効果がある。その理由は、実行部13が、受信した後続主記憶アクセス命令のアクセスアドレスが、実行中の主記憶アクセス命令と競合する場合、両方の命令がいずれも参照命令であり、かつ、実行中の主記憶アクセス命令のアクセス完了データ115が格納済みである場合、実行中の主記憶アクセス命令のアクセスアドレスのエントリの開放指示を待たずに、後続主記憶アクセス命令の処理を開始するからである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 主記憶アクセス制御システム
10 主記憶アクセス制御装置
11 実行中命令記憶部
110 命令種別
111 アクセスアドレス
112 発行元プロセッサ
113 リプライデータ
114 開放指示不要フラグ
115 アクセス完了データ
12 主記憶アクセス命令
120 命令種別
121 アクセスアドレス
122 発行元プロセッサ
13 実行部
14 実行待ち命令記憶部
140 命令種別
141 アクセスアドレス
142 発行元プロセッサ
20−1乃至20−n プロセッサ(中央処理装置)
30 主記憶装置
10 主記憶アクセス制御装置
11 実行中命令記憶部
110 命令種別
111 アクセスアドレス
112 発行元プロセッサ
113 リプライデータ
114 開放指示不要フラグ
115 アクセス完了データ
12 主記憶アクセス命令
120 命令種別
121 アクセスアドレス
122 発行元プロセッサ
13 実行部
14 実行待ち命令記憶部
140 命令種別
141 アクセスアドレス
142 発行元プロセッサ
20−1乃至20−n プロセッサ(中央処理装置)
30 主記憶装置
Claims (7)
- 主記憶を共有するマルチプロセッサシステムにおいて、
いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する装置であって、
実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて記憶する実行中命令記憶手段と、
新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記実行中命令記憶手段を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続主記憶アクセス命令の実行を開始する実行手段と、
を備える主記憶アクセス制御装置。 - 実行待ちの前記後続主記憶アクセス命令の各々ごとに、前記命令種別と、前記アクセスアドレスを記憶する実行待ち命令記憶手段をさらに備え、
前記実行手段は、前記実行中命令記憶手段における、前記命令種別が前記参照命令であるいずれかのレコードの前記アクセス完了データがアクセス完了の状態になると、前記実行待ち命令記憶手段が記憶した前記後続主記憶アクセス命令のなかに、当該レコードと前記アクセスアドレスが等しい前記参照命令である実行可能命令が、少なくとも1つ以上存在する場合に、前記実行可能命令のいずれかの実行を開始する、
請求項1の主記憶アクセス制御装置。 - 請求項1乃至2の主記憶アクセス制御装置と、前記主記憶を包含する主記憶装置と、複数の前記プロセッサと、を包含する主記憶アクセス制御システム。
- 主記憶を共有するマルチプロセッサシステムにおいて、
いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する方法であって、
実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて第一の記憶域に記憶し、
新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記第一の記憶域を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続主記憶アクセス命令の実行を開始する、
主記憶アクセス制御方法。 - 実行待ちの前記後続主記憶アクセス命令の各々ごとに、前記命令種別と、前記アクセスアドレスを第二の記憶域に記憶し、
前記第一の記憶域における、前記命令種別が前記参照命令であるいずれかのレコードの前記アクセス完了データがアクセス完了の状態になると、前記第二の記憶域が記憶した前記後続主記憶アクセス命令のなかに、当該レコードと前記アクセスアドレスが等しい前記参照命令である実行可能命令が、少なくとも1つ以上存在する場合に、前記実行可能命令のいずれかの実行を開始する、
請求項4の主記憶アクセス制御方法。 - 主記憶を共有するマルチプロセッサシステムにおいて、
いずれかのプロセッサからの前記主記憶への主記憶アクセス命令の実行を開始すると、当該主記憶を占有し、当該主記憶へのアクセスが完了した後、所定の処理が完了すると、当該プロセッサからの開放指示を受けて、当該主記憶の占有を開放して、他の前記プロセッサからの当該主記憶へのアクセスを許可する処理をコンピュータに実行させるプログラムであって、
実行中の前記主記憶アクセス命令の各々ごとに、命令種別と、アクセスアドレスと、前記主記憶へのアクセスが完了したか否かを示すアクセス完了データとを対応付けて第一の記憶域に記憶する実行中命令記憶処理と、
新たな前記主記憶アクセス命令である後続主記憶アクセス命令を受信したときに、前記第一の記憶域を参照して、前記後続主記憶アクセス命令と前記アクセスアドレスが等しいレコードが存在する場合、当該レコードと前記後続主記憶アクセス命令の前記命令種別がいずれも参照命令であり、かつ、当該レコードの前記アクセス完了データがアクセス完了を示しているのであれば、前記プロセッサからの前記開放指示の受信を待たずに、前記後続主記憶アクセス命令の実行を開始する実行処理と、
をコンピュータに実行させる主記憶アクセス制御プログラム。 - 実行待ちの前記後続主記憶アクセス命令の各々ごとに、前記命令種別と、前記アクセスアドレスを第二の記憶域に記憶する実行待ち命令記憶処理と、
前記第一の記憶域における、前記命令種別が前記参照命令であるいずれかのレコードの前記アクセス完了データがアクセス完了の状態になると、前記第二の記憶域が記憶した前記後続主記憶アクセス命令のなかに、当該レコードと前記アクセスアドレスが等しい前記参照命令である実行可能命令が、少なくとも1つ以上存在する場合に、前記実行可能命令のいずれかの実行を開始する前記実行処理と、
をコンピュータに実行させる請求項6の主記憶アクセス制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013024539A JP5559373B1 (ja) | 2013-02-12 | 2013-02-12 | 主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013024539A JP5559373B1 (ja) | 2013-02-12 | 2013-02-12 | 主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5559373B1 true JP5559373B1 (ja) | 2014-07-23 |
JP2014154018A JP2014154018A (ja) | 2014-08-25 |
Family
ID=51416954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013024539A Expired - Fee Related JP5559373B1 (ja) | 2013-02-12 | 2013-02-12 | 主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5559373B1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011002986A (ja) * | 2009-06-18 | 2011-01-06 | Nec Computertechno Ltd | レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム |
JP2011076159A (ja) * | 2009-09-29 | 2011-04-14 | Nec Computertechno Ltd | キャッシュメモリ制御システム及びキャッシュメモリの制御方法 |
WO2012124094A1 (ja) * | 2011-03-16 | 2012-09-20 | 富士通株式会社 | ディレクトリキャッシュ制御装置、ディレクトリキャッシュ制御回路、およびディレクトリキャッシュ制御方法 |
-
2013
- 2013-02-12 JP JP2013024539A patent/JP5559373B1/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011002986A (ja) * | 2009-06-18 | 2011-01-06 | Nec Computertechno Ltd | レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム |
JP2011076159A (ja) * | 2009-09-29 | 2011-04-14 | Nec Computertechno Ltd | キャッシュメモリ制御システム及びキャッシュメモリの制御方法 |
WO2012124094A1 (ja) * | 2011-03-16 | 2012-09-20 | 富士通株式会社 | ディレクトリキャッシュ制御装置、ディレクトリキャッシュ制御回路、およびディレクトリキャッシュ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2014154018A (ja) | 2014-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4680851B2 (ja) | システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置 | |
JP4474570B2 (ja) | キャッシュコヒーレンシ制御方法 | |
JP4834362B2 (ja) | メモリ制御装置。 | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
JP2010044599A (ja) | 情報処理装置及び順序保証方式 | |
GB2529180A (en) | Arbitration and hazard detection for a data processing apparatus | |
JPWO2008155829A1 (ja) | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 | |
US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
JP2000029776A (ja) | メモリ要求取消し方法 | |
US10423466B2 (en) | Optimized streaming in an un-ordered interconnect | |
JP5559373B1 (ja) | 主記憶アクセス制御装置、主記憶アクセス制御システム、主記憶アクセス制御方法、及び、主記憶アクセス制御プログラム | |
US8959290B2 (en) | Methods and apparatus for reusing snoop responses and data phase results in a cache controller | |
JP5239769B2 (ja) | リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム | |
JP6183049B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP4335298B2 (ja) | スヌープ制御方法および情報処理装置 | |
US8307141B2 (en) | Multi-core processor, control method thereof, and information processing apparatus | |
JP6570873B2 (ja) | マルチプロセッサシステムのメインメモリ対する投機的クエリ | |
CN116089116B (zh) | 数据处理方法及装置 | |
JPH08153065A (ja) | バス制御回路 | |
JP2004334840A (ja) | システムバスの制御方法及び関連装置 | |
JP6607069B2 (ja) | メモリアクセス制御装置、メモリアクセス制御方法、プログラム | |
EP2237158A1 (en) | System controller, information processing system, and access processing method | |
US11762774B2 (en) | Arithmetic processor and method for operating arithmetic processor | |
JP5630825B2 (ja) | マルチプロセッサシステム、リクエスト処理方法、及びノード | |
JP2018005851A (ja) | 電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140513 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140605 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5559373 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |