JP5224053B2 - マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム - Google Patents

マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム Download PDF

Info

Publication number
JP5224053B2
JP5224053B2 JP2009014617A JP2009014617A JP5224053B2 JP 5224053 B2 JP5224053 B2 JP 5224053B2 JP 2009014617 A JP2009014617 A JP 2009014617A JP 2009014617 A JP2009014617 A JP 2009014617A JP 5224053 B2 JP5224053 B2 JP 5224053B2
Authority
JP
Japan
Prior art keywords
cache
time
processor
resource
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009014617A
Other languages
English (en)
Other versions
JP2010170493A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009014617A priority Critical patent/JP5224053B2/ja
Publication of JP2010170493A publication Critical patent/JP2010170493A/ja
Application granted granted Critical
Publication of JP5224053B2 publication Critical patent/JP5224053B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、マルチプロセッサ計算機、マルチプロセッサ計算機におけるキャッシュ整合性の保証方法、及び、これらを実現するためのプログラムに関する。
一般に、HPC(high-performance computing)分野における、SMP(対象型マルチプロセッサ:Symmetric Multiprocessor)型計算機に代表されるマルチプロセッサ計算機においては、キャッシュコヒーレンシ(キャッシュ整合性)の保証が、重要である。多くのSMP型計算機では、キャッシュコヒーレンシの保証は、ハードウェアに委ねられている(例えば、特許文献1参照)。また、HPC分野における、ベクトル型スーパーコンピュータ等のSMP型計算機においては、主としてハードウェアの実装上のコストや性能の観点から、キャッシュコヒーレンシの保証がソフトウェアに委ねられることもある。
ところで、通常、SMP型計算機であっても、シングルプロセッサ計算機で提供されるレベルのキャッシュ制御命令(キャッシュバイパス命令、キャッシュクリア命令等)しか実装されていないという現状がある。このため、キャッシュコヒーレンシの保証をソフトウェアに委ねる場合、SMP型計算機は、これらのキャッシュ制御命令を使用した処理を行って、プロセッサ毎のキャッシュ間の整合性を保証する必要がある。
具体的には、キャッシュ制御命令によってキャッシュコヒーレンシを保証する処理としては、複数のプロセッサがアクセスする可能性のある共有資源に対して、常に、キャッシュバイパスでアクセスを行う処理が挙げられる。また、一のプロセッサが、他のプロセッサが更新した可能性のある資源にアクセスする直前に、無条件にキャッシュクリアを行う処理も挙げられる。更に、他のプロセッサが参照する可能性のある資源にアクセスした直後に、無条件にキャッシュクリアを行う処理も挙げられる。
特許第3219810号
しかしながら、上述の処理によってキャッシュコヒーレンシを保証しようとした場合は、いずれの処理においても、不必要なキャッシュクリアが行われる。このため、これらの不必要なキャッシュクリアは、SMP型計算機においてオーバーヘッドとなり、SMP型計算機の性能低下を招くという問題を発生させる。
また、不必要なキャッシュクリアによる性能低下の問題は、キャッシュコヒーレンシがハードウェアに委ねられている場合であっても生じている。例えば、上記の特許文献1に開示の計算機では、「最後に資源を更新したプロセッサの情報」のみを参照してキャッシュクリアの有無が判定され、キャッシュクリアが行われる。
よって、資源が更新された時刻とキャッシュがクリアされた時刻の順序関係は考慮されていないため、本来キャッシュクリアが必要ない場面でも、キャッシュクリアが行われてしまう。例えば、一のプロセッサが、他のプロセッサによるある資源の更新後に、その資源にアクセスする場合において、この間に既に一のプロセッサが別の要因でキャッシュク
リアを行っていても、他プロセッサの更新後に再度キャッシュクリアが行われる。このように、上記の特許文献1に開示の計算機においても、不要なキャッシュクリアが行われている。
本発明の目的は、上記問題を解決し、キャッシュコヒーレンシ保証の際の不必要なキャッシュクリアの回数を抑制して、計算機の性能の向上を図り得る、マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明におけるマルチプロセッサ計算機は、メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機であって、
前記メインメモリは、前記複数のプロセッサ間で共有される情報を複数個の資源として記憶し、
前記複数のプロセッサそれぞれは、前記複数個の資源のいずれかに対して排他的制御によってアクセスするときに、
一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、
前記アクセス対象とされている資源が最後に更新された時刻t1と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、
前記複数のキャッシュメモリの全部又は一部のクリアを実行する、ことを特徴とする。
また、上記目的を達成するため、本発明におけるキャッシュ整合性の保証方法は、メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機において、前記複数のキャッシュメモリの整合性を保証するための方法であって、
前記複数のプロセッサのいずれかが、前記メインメモリによって記憶され、且つ、前記複数のプロセッサ間で共有される情報で構成された複数個の資源のいずれかに対して、排他的制御によってアクセスするときに、
一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、
前記アクセス対象とされている資源が最後に更新された時刻t1と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、
前記複数のキャッシュメモリの全部又は一部のクリアを実行するステップを有する、ことを特徴とする。
また、上記目的を達成するため、本発明におけるプログラムは、メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機において、前記複数のプロセッサに、前記複数のキャッシュメモリの整合性を保証させるプログラムであって、
前記複数のプロセッサそれぞれに対して、
前記複数のプロセッサのいずれかが、前記メインメモリによって記憶され、且つ、前記複数のプロセッサ間で共有される情報で構成された複数個の資源のいずれかに対して、排他的制御によってアクセスするときに、
一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、前記アクセス対象とされている資源が最後に更新された時刻t1
と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、
前記複数のキャッシュメモリの全部又は一部のクリアを実行するステップを実行させる、ことを特徴とする。
以上のように本発明における、マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びこれらを実現するためのプログラムによれば、キャッシュコヒーレンシ保証の際の不必要なキャッシュクリアの回数を抑制して、計算機の性能の向上を図ることができる。
図1は、本発明の実施の形態1におけるマルチプロセッサ計算機の概略構成を示すブロック図である。 図2は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるロック処理を示すフロー図である。 図3は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるアンロック処理を示すフロー図である。 図4は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるアイドル処理を示すフロー図である。 図5は、本発明の実施の形態1におけるマルチプロセッサ計算機の動作の一例を示すタイムチャートである。 図6(a)は、一般的なキャッシュクリアのパターンを示すタイムチャートである。図6(b)は、本発明の実施の形態1におけるキャッシュクリアのパターンを示すタイムチャートである。 図7は、本発明の実施の形態2におけるマルチプロセッサ計算機の概略構成を示すブロック図である。
(用語の定義)
最初に、本発明で使用する用語について、次のように定義する。先ず、本発明のマルチプロセッサ計算機において、演算器を、「プロセッサ」と表記し、主記憶装置を、「メインメモリ」と表記する。また、メインメモリより高速な記憶装置を、「キャッシュ(またはキャッシュメモリ)」と表記し、メインメモリ上に格納された情報の集合を「資源」と表記する。
また、メインメモリに記憶されている情報の一部を一時的にキャッシュ上に乗せることでプロセッサの動作を高速化する仕組みを、「キャッシュ機構」と表記する。キャッシュは、メインメモリに記憶されている情報の一部が一時的に複製される複数の領域(単位)から構成されており、この複数の領域それぞれを「キャッシュライン」と表記する。
また、メインメモリ上の一部の情報を空いているキャッシュラインに読み込むプロセッサの動作を、「キャッシュフィル」と表記する。更に、キャッシュラインに読み込まれた情報をメインメモリに書き戻して、開放する処理を、「キャッシュフラッシュ」と表記する。
メインメモリへのアクセスに際して、対象のメモリ領域がキャッシュ上に存在しており、メインメモリまでアクセスする必要がない場合を「キャッシュヒット」と表記する。一方、対象のメモリ領域がキャッシュ上に存在せず、メインメモリまでアクセスする必要がある場合を「キャッシュミスヒット」と表記する。
キャッシュヒット/キャッシュミスヒットに関わらず、キャッシュにアクセスせずに常にメインメモリにアクセスするプロセッサの動作を、「キャッシュバイパス」と表記する。また、全てのキャッシュラインをフラッシュするプロセッサの動作を、「キャッシュクリア」と表記する。
メインメモリの内容を読み出す時に、キャッシュヒットした場合はキャッシュの内容を読み出し、キャッシュミスヒットした場合は特定のアルゴリズムに従ってキャッシュフィルしてからキャッシュの内容を読み出す方式を、「リードキャッシュ」と表記する。また、キャッシュにおいて、メインメモリからの情報の読み込みのみを許可し、プロセッサによる情報の書き込みを禁止する方式を「リードオンリーキャッシュ」と表記する。
メインメモリに情報を書き込む時に、キャッシュヒットした場合はキャッシュの内容を書き込み、キャッシュミスヒットした場合は特定のアルゴリズムに従ってキャッシュフィルしてからキャッシュ上に情報を書き込み、その後に特定のアルゴリズムにしたがってメインメモリにキャッシュフラッシュする方式を、「ライトバックキャッシュ」と表記する。また、メインメモリに情報を書き込む時に、同時に、同じ情報をキャッシュ上にも書き込む方式を「ライトスルーキャッシュ」と表記する。
複数のプロセッサが1つのメインメモリを共有している対称型マルチプロセッサ計算機のことを「SMP型計算機」と表記する。本発明で「SMP型計算機」と表記した場合、特に断りのない限り、最も一般的な「プロセッサ毎にキャッシュが存在するSMP型計算機」の事を意味するものとする。
マルチプロセッサ計算機では各プロセッサのキャッシュの間で矛盾が発生しないように整合性を保証する必要があり、このような「キャッシュの整合性」の事を「キャッシュコヒーレンシ」と表記する。一般に、マルチプロセッサ計算機では、背景技術の欄でも述べたように、キャッシュコヒーレンシを保証する必要がある。
また、メインメモリの内容をキャッシュバイパスで読み込み、その値がある条件を満たす場合に別の値にキャッシュバイパスで書き換えるような一連の動作を、1サイクルで同時に実行する命令を「アトミック命令」と表記する。一般に、マルチプロセッサ計算機では、プロセッサ間で資源を排他的にアクセスするためにアトミック命令が使用される。
更に、ある資源を連続して排他的にアクセスするためには、その資源が特定プロセッサによって独占的に使用されている状態か否かを表す「ロックワード」が利用される。一般的にロックワードは資源ごとに存在し、メインメモリ上に置かれる事が多いことから、本発明においても、特に断りのない限り、「ロックワード」はメインメモリ上に置かれているものとする。
ロックワードには、特定プロセッサが排他的にアクセスしている事を意味する「ロック状態」と、そうではない「アンロック状態」の2つの状態がある。資源を連続して排他的にアクセスするためには、プロセッサは、先ず、アトミック命令でロックワードをロック状態にし、資源を更新した後に、ロックワードをアンロック状態に戻す一連の操作を実行する。
このように、ある資源に対応するロックワードをロック状態にする動作を「ロック処理」と表記し、アンロック状態にする動作を「アンロック処理」と表記する。また、ロック処理とアンロック処理とを合わせて「排他制御」と表記する。更に、ある資源に対するロック処理を実行する事を「資源をロックする」と表記し、ある資源に対するアンロック処
理を実行する事を「資源をアンロックする」と表記する。
また、命令の実行に要する最小の単位を「マシンクロック」と表記する。そして、各プロセッサからアクセス可能で、システム立ち上げ時に0(ゼロ)から開始し、マシンクロック単位で単調に増加する時刻を、「システムタイマ」と表記する。即ち、システムタイマは、システム立ち上げ時からの経過時間を表している。
(実施の形態1)
以下、本発明の実施の形態1におけるマルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラムについて、図1〜図4を参照しながら説明する。最初に、本実施の形態1におけるマルチプロセッサ計算機の概略構成について図1を用いて説明する。図1は、本発明の実施の形態1におけるマルチプロセッサ計算機の概略構成を示すブロック図である。
図1に示す本実施の形態1におけるマルチプロセッサ計算機11は、SMP型計算機である。図1に示すように、本実施の形態1におけるマルチプロセッサ計算機11は、メインメモリ4と、メインメモリ4を共有する複数のプロセッサ1−1〜1−Nと、複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリ2−1〜2−Nとを備えている。また、メインメモリ4は、複数のプロセッサ間で共有される情報を複数個の資源10−1〜10−Mとして記憶している。ここで、Nはプロセッサ数、Mは資源数を表している。また、nは1≦n≦Nである任意の自然数、mは1≦m≦Mである任意の自然数とする。
また、図1に示すように、本実施の形態1では、マルチプロセッサ計算機11は、一つのシステムタイマ3を備えている。システムタイマ3は、マシンクロック単位の分解能を持ち、システムの基準時からの経過時刻を表すタイマである。システムタイマ3の初期値は0に設定されており、システムの動作開始時を基準時とし、動作開始後、マシンクロック単位で増加する。
更に、メインメモリ4には、プロセッサ1−1〜1−Nが資源10−1〜10−Mに対してロック処理及びアンロック処理を行うための排他制御部9が構築されている。排他制御部9は、キャッシュクリアタイムスタンプ5―1〜5−N、ロックワード6−1〜6−M、資源更新スタンプ7−1〜7−M、及び資源更新プロセッサ8−1〜8−Mを備えている。また、キャッシュクリアタイムスタンプ5―1〜5−N、ロックワード6−1〜6−M、資源更新スタンプ7−1〜7−M、及び資源更新プロセッサ8−1〜8−Mは、メインメモリ4の記憶領域上に設けられている。
このうち、キャッシュクリアタイムスタンプ5―1〜5−Nは、各プロセッサに対応して設けられている。キャッシュクリアタイムスタンプ5―nは、プロセッサ1−nが最後にキャッシュクリアを行った時の時刻(システムタイマの値)を格納し、その初期値は0である。
また、ロックワード6−1〜6−Mは、各資源に対応して設けられている。ロックワード6−mは、資源10−mがロックされているか又はアンロックされているかを特定する情報を格納する。具体的には、ロックワード6−mは、資源10−mがロックされている場合は「1」を格納し、アンロックされている場合は「0」を格納する。ロックワード6−mの初期値は0である。
資源更新タイムスタンプ7−1〜7−M、及び資源更新プロセッサ8−1〜8−Mも、各資源に対応して設けられている。資源更新タイムスタンプ7−mは、資源10−mが最
後に更新された時刻(システムタイマの値)を格納し、その初期値は0である。資源更新プロセッサ8−mは、資源10−mを最後に更新したプロセッサを特定する情報(♯1〜♯N)を格納し、その初期値は0である。
また、このような構成において、プロセッサ1−1〜1−Nそれぞれは、資源10−1〜10−Mのいずれかに対して排他的制御によってアクセスするときに、以下の情報を用い、そして以下の時刻の関係に基づいて、キャッシュメモリのクリアを実行する。ここで、「情報」とは、「プロセッサ1−nによってアクセス対象とされている資源1−mを最後に更新したプロセッサを特定する情報」である。
また、「時刻の関係」とは、「アクセス対象とされている資源が最後に更新された時刻t1と、アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、プロセッサ1−nに対応するキャッシュメモリ2−nがクリアされた最新の時刻t3との関係」である。なお、時刻t1、時刻t2、及び時刻t3は、設定された基準時からの経過時間によって特定される時刻であり、本実施の形態1では、システムタイマの値が用いられる。
よって、プロセッサ1−nは、資源1―mにアクセスする際に、資源1―mを最後に更新したのが自身であるかどうかを判断する。そして、自身である場合は、プロセッサ1−nはキャッシュメモリ2−nのクリアをせず、不要なキャッシュクリアの実行が回避される。この結果、マルチプロセッサ計算機11における性能の低下が抑制される。
また、プロセッサ1−1〜1−Nそれぞれは、例えば、「時刻t1≦時刻t2≦時刻t3」の関係が成立するように、キャッシュメモリのクリアを実行する。具体的には、プロセッサ1−nは、資源1−mにアクセスする際に、それを最後に更新したプロセッサが他のプロセッサである場合は、初めに、資源1が最後に更新された時刻t1を特定する。
そして、時刻t1、他のプロセッサのキャッシュメモリがクリアされた時刻t2、プロッセ1−nのキャッシュメモリ2−nがクリアされた時刻t3が、「時刻t1≦時刻t2≦時刻t3」の関係にあるように、キャッシュメモリがクリアされる。この場合、不要なキャッシュクリアの実行が回避され、マルチプロセッサ計算機11における性能の低下が抑制される。
また、本実施の形態1では、プロセッサ1−1〜1−nそれぞれは、予め設定されたプログラムに従って、キャッシュメモリのクリアを実行する。つまり、本実施の形態1におけるマルチプロセッサ計算機11では、キャッシュコヒーレンシの保証は、ハードウェアによって行われておらず、ソフトウェアによって行われている。このため、キャッシュコヒーレンシの保証にかかるコストの低減が図られている。
更に、本実施の形態1では、プロセッサ1−1〜1−nそれぞれは、リードオンリーキャッシュ機構、ライトスルーキャッシュ機構、及びライトバックキャッシュ機構のうち何れの機構を備えていても良い。
ところで、本実施の形態1で行われるキャッシュコヒーレンシの保証は、共有資源の一貫性をグローバルなクロックを利用して保証する方式の一形態と見なす事ができる。一般的には、共有資源の一貫性の保証にグローバルクロックを使用する場合、コストがかかり性能が得られないと考えられている。
しかし、HPC分野では、再現性のある計算時間の算出や、高精度な並列度を得るために必要な同時実行時間の算出のために、全てのプロセッサからアクセス可能で、なおかつ
同期を取って順序関係を保証する時刻(システムタイマ)が低コストで取得可能な必要がある。また、HPC分野では、そのような時刻を取得する機構を組み込む事が容易なようにハードウェアが設計されている。
従って、本実施の形態1においては、HPC分野において利用される時刻(システムタイマ)をグローバルクロックとして採用する事で、通常考えられているよりも高い性能の、実用に耐えるレベルで、キャッシュコヒーレンシの保証を実現する。
また、一般的には、キャッシュコヒーレンシを保証しないようなハードウェアでは、各プロセッサは、自身に対応するキャッシュメモリをクリアする機能を有しているが、他のプロセッサのキャッシュメモリをクリアする機能は有していない。このため、プロセッサ間通信等による割込みを利用して、他のプロセッサのキャッシュメモリをクリアする機構をソフトウェアレベルで実装する必要がある。この場合、計算機としての性能を十分に得ることは困難とも考えられる。
しかし、HPC分野では、高速なI/Oアクセスにおける効率的なキャッシュメモリが利用できるため、多くの場合、割込み機能の一環として、任意のプロセッサのキャッシュメモリをクリアする機構は低コストで実装されている。従って、HPC分野では、このような他のプロセッサのキャッシュメモリをクリアする機能をキャッシュコヒーレンシの保証に利用できる。そして、本実施の形態1においても、このような機能を利用し、これにより、通常考えられているよりも高い性能の、実用に耐えるレベルで、キャッシュコヒーレンシの保証を実現している。
次に、図1に示したマルチプロセッサ計算機11における動作について、図2〜図4を用いて説明する。図2は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるロック処理を示すフロー図である。図3は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるアンロック処理を示すフロー図である。図4は、本発明の実施の形態1におけるマルチプロセッサ計算機におけるアイドル処理を示すフロー図である。
ところで、本実施の形態1におけるキャッシュ整合性の保証方法は、図1に示した本実施の形態1におけるマルチプロセッサ計算機を動作させることによって実施される。このため、本実施の形態1におけるキャッシュ整合性の保証方法の説明は、以下のマルチプロセッサ計算機1の動作の説明に代える。
また、図2に示すロック処理と、図3に示すアンロック処理とは、任意のプロセッサ1−nが、任意の資源10−mに対して排他的制御によってアクセスする場合の処理を示している。更に、図4に示すアイドル処理は、任意のプロセッサ1−nが、実行待ち処理が無い場合に実行される処理を示している。
図2に示すように、ロック処理においては、先ず、プロセッサ1−nは、ロックワード6−mに対してアトミック命令で排他的にアクセスし、ロックワード6−mがアンロック状態(値が0)であれば、ロック状態(値が1)に変更する(ステップA1)。
なお、プロッセサ1−nは、もし、ロックワード6−mがロック状態(値が1)であるならば、一定時間待ってから再度アトミック命令を使用して同様にアクセスする。そして、プロセッサ1−nは、ロックワード6−mが、アンロック状態であって、ロック状態に変更できるまで、アクセスを繰り返す。このような処理により、常に1つのプロセッサのみがロックワード6−mをロック状態にすることができる事になり、ロックワード6−mがロック状態になることにより、資源10−mへの排他的なアクセスが保証される。
次に、プロセッサ1−nは、自身の識別番号(♯n)を変数n1の値に設定し、更に、資源更新プロセッサ8−mに格納されている最後に資源10−mを更新したプロセッサの識別番号をキャッシュバイパス命令で呼び出し、これを変数n2の値に設定する(ステップA2)。
次に、プロセッサ1−nは、n2==0またはn2==n1であるかどうかを判定する(ステップA3)。ステップA3の判定の結果、n2==0またはn2==n1ならば、プロセッサ1−nが資源10−mを最後に更新した後に、他のプロセッサが資源10−mを更新していないこととなる。よって、プロセッサ1−nは、キャッシュクリアの必要がないと判断して、ロック処理を終了する。
一方、ステップA3の判定の結果、n2==0またはn2==n1が成立していない場合は、プロセッサ1−nは、ステップA4を実行する。ステップA4では、プロセッサ1−nは、資源更新タイムスタンプ7−mに格納されている値と、キャッシュクリアタイムスタンプ5−n2に格納されている値とを、それぞれキャッシュバイパス命令で読み出して比較する。
ステップA4での判断の結果、資源更新タイムスタンプ7−mの値がキャッシュクリアタイムスタンプ5−n2の値と同じか小さい場合は、プロセッサ1−nは、ステップA5に進む。これは、資源10−mの更新後に、キャッシュメモリ2−n2がクリアされているため、プロセッサ1−nは、プロセッサ1−n2のキャッシュメモリ2−n2をクリアする必要がないと判断するからである。
一方、ステップA4での判断の結果、資源更新タイムスタンプ7−mの値がキャッシュクリアタイムスタンプ5−n2の値より大きい場合は、プロッセ1−nは、ステップA6に進む。
ステップA6では、プロセッサ1−nは、キャッシュクリアタイムスタンプ5−n2にキャッシュバイパス命令でシステムタイマの値を設定する。更に、プロセッサ1−nは、プロセッサ1−n2に対するキャッシュクリア命令を実行して、キャッシュメモリ2−n2上の全てのキャッシュラインをフラッシュ(クリア)する。その後、プロセッサ1−nは、ステップA7を実行する。
次に、ステップA5では、プロセッサ1−nは、キャッシュクリアタイムスタンプ5−n2の値と、キャッシュクリアタイムスタンプ5−n1とをそれぞれキャッシュバイパス命令で読み出して比較する。
ステップA5での判断の結果、キャッシュフラッシュタイムスタンプn2の値がキャッシュクリアタイムスタンプn1の値と同じか小さい場合は、プロセッサ1−nは、ロック処理を終了する。この場合は、資源1−mの更新後にキャッシュメモリ2−n1がクリアされているため、プロセッサ1−n(1−n1)は自身のキャッシャメモリ2−n(2−n1)をクリアする必要がないと判断するからである。
一方、ステップA5での判断の結果、キャッシュフラッシュタイムスタンプn2の値がキャッシュクリアタイムスタンプn1の値より大きい場合は、プロセッサ1−nは、ステップA7に進む。
ステップA7では、プロセッサ1−nは、キャッシュクリアタイムスタンプ5−n1にキャッシュバイパス命令でシステムタイマの値を設定する。更に、プロセッサ1−nは、自身に対するキャッシュクリア命令を実行してキャッシュメモリ2−n(2−n1)上の
全てのキャッシュラインをフラッシュ(クリア)する。その後、プロセッサ1−nは、ロック処理を終了する。
このステップA7の実行により、「時刻t1≦時刻t2≦時刻t3」の関係が成立するように、キャッシュメモリのクリアが行われることとなる。なお、時刻t1は、資源更新タイムスタンプ7−mの値である。時刻t2の値は、ステップA6が実行されない場合は、キャッシュククリアタイムスタンプ5−n2の値、ステップA6が実行された場合はそのときのシステムタイマの値である。時刻t3は、ステップA7が実行されたときのシステムタイマの値である。
また、図3に示すように、アンロック処理においては、先ず、プロセッサ1−nは、資源更新タイムスタンプ7−mにキャッシュバイパス命令によってシステムタイマの値を設定する(ステップB1)。
次に、プロセッサ1−nは、資源更新プロセッサ8−mにキャッシュバイパス命令によって、自身の識別番号(♯n)を設定する(ステップB2)。これにより、資源10−mは、資源更新プロセッサ8−mによって、資源更新タイムスタンプ7−mの値より前に更新されたのを最後に、その後更新されていない事が保証される。
その後、プロセッサ1−nは、ロックワード6−mの値をアンロック状態(値が0)に変更する。これにより、他のプロセッサは、ロックワード6−mをロック状態(値が1)に変更し、資源10−mに対して排他的にアクセスすることができるようになる。
また、図4に示すように、アイドル処理においては、先ず、プロセッサ1−nは、キャッシュクリアタイムスタンプ5−nにキャッシュバイパス命令でシステムタイマの値を設定し、自身に対するキャッシュクリア命令を実行する(ステップC1)。これにより、キャッシュメモリ2−n上の全てのキャッシュラインがフラッシュ(クリア)される。
次に、プロセッサ1−nは、実行待ち処理があるかどうかを判定する(ステップC2)。判定の結果、実行待ち処理がない場合は、実行待ち処理が見つかるまで待機状態となる。一方、判定の結果、実行待ち処理がある場合(見つかった場合)は、アイドル処理を終了する。
なお、図2〜図4に示した各ステップのうち、「システムタイマの値をメインメモリ4上に格納する行為」を含んでいる処理、具体的には、ステップA6、A7、B1、及びC1の各処理は、複数のプロセッサ上で同時に実行される事がないものとする。
また、このことを実現する方式については、本明細書では特に規定されないが、例えば、メインメモリ4上にシステムに一意の資源「システムタイマ用ロックワード」を設け、これを利用した排他制御を行うことで実現することができる。即ち、ステップA6、A7、B1、及びC1の各処理の開始時に「システムタイマ用ロックワード」をロックし、終了時にアンロックすることで実現する。
このように、ステップA6、A7、B1、及びC1の各処理が同時に実行されないようにすれば、各タイムスタンプに(初期値の0を除いて)同じ値が格納される事も無いこととなる。
ここで、図5を用いて、図1に示したマルチプロセッサ計算機11における動作を更に詳細に説明する。また、以下の説明においては、適宜図1〜図4を参照する。図5は、本発明の実施の形態1におけるマルチプロセッサ計算機の動作の一例を示すタイムチャート
である。また、図5においては、プロセッサ1−1、プロセッサ1−2、プロセッサ1−3の3つのプロセッサが、ある順番で資源10−1、資源10−2、資源10−3の3つの資源を排他的にアクセスした場合に、キャッシュメモリのクリアが実行される箇所が示されている。
なお、図5の例では、説明を容易にする為に、各資源にアクセスする前後では必ずその資源に対するロック処理とアンロック処理が呼び出されているものとし、且つ、このロック処理及びアンロック処理にかかる時間は十分に小さく無視できるものとする。
例えば、プロセッサ1−1が、システムタイマ1〜3の間で資源を10−1にアクセスしているが、ロック処理はシステムタイマ1の時点で実行され、アンロック処理はシステムタイマ3の時点で実行されているものとする。また、説明を容易にするために、図2に示したステップA6及びA7の処理に要する時間は十分に小さく、同一時間に行われるものとする。例えば、プロセッサ1−3は、システムタイマ7でステップA6とステップA7の処理を一度に実行しているものとする。
先ず、プロセッサ1−1に着目して図5の例を説明する。プロセッサ1−1は、システムタイマ1の時点で資源10−1をロックするが、この時の資源更新プロセッサ8−1が格納している値は0である。よって、プロセッサ1−1は、キャッシュメモリ2−1のキャッシュクリアを実行しない。
次に、プロセッサン1−1は、システムタイマ3の時点で資源10−1をアンロックするので、資源更新プロセッサ8−1は「1」を格納し、また、資源更新タイムスタンプ7−1はシステムタイマの値「3」を格納する。
次に、プロセッサ1−1は、システムタイマ4の時点で資源10−3をロックするが、この時の資源更新プロセッサ8−3が格納している値は「0」である。このため、この場合も、プロセッサ1−1は、キャッシュメモリ2−1のキャッシュクリアを実行しない。
次に、プロセッサ1−1は、システムタイマ6の時点で資源10−3をアンロックするので、資源更新プロセッサ8−3は「1」を格納し、また、資源更新タイムスタンプ7−3はシステムタイマの値「6」を格納する。
次に、プロセッサ1−1は、システムタイマ7の時点で資源10−1をロックする。この時の資源更新プロセッサ8−1が格納している値は「1」、キャッシュクリアタイムスタンプ5−1が格納しているシステムタイマの値は「0」、資源更新タイムスタンプ7−1が格納しているシステムタイマの値は「3」である。そして、資源更新プロセッサ8−1が格納している値は、プロセッサ1−1自身の識別番号である「1」と同じ値であるため、プロセッサ1−1はキャッシュクリアを実行しない。
次に、プロセッサ1−1は、システムタイマ9の時点で資源10−1をアンロックするので、資源更新プロセッサ8−1は「1」を格納し、また、資源更新タイムスタンプ7−1はシステムタイマの値「9」を格納する。
その後、プロセッサ1−1は、システムタイマ10の時点でアイドル状態に移行する。キャッシュクリアタイムスタンプ5−1が格納するシステムタイマの値は「10」に設定され、プロセッサ1−1は、キャッシュメモリ2−1をクリアする(図4参照)。
続いて、プロセッサ1−2に着目して図5の例を説明する。プロセッサ1−2は、先ず、システムタイマ2の時点で資源2をロックするが、この時の資源更新プロセッサ8−2
が格納している値は「0」である。よって、プロセッサ1−2は、キャッシュメモリ2−2のキャッシュクリアを実行しない。
次に、プロセッサ1−2は、システムタイマ5の時点で資源10−2をアンロックするので、資源更新プロセッサ8−2は「2」を格納し、また、資源更新タイムスタンプ7−2はシステムタイマの値「5」を格納する。
次に、プロセッサ1−2は、システムタイマ12の時点で資源10−3をロックするが、この時の資源更新プロセッサ8−3が格納している値は「1」、資源更新タイムスタンプ7−3が格納しているシステムスタイマの値は「6」である。また、この時、キャッシュクリアタイムスタンプ5−1が格納しているシステムタイマの値は「10」、キャッシュクリアタイムスタンプ5−2が格納しているシステムタイマの値は「0」である。
よって、ステップA4においてYESと判断され、ステップA5においてNOと判断されるので(図2参照)、システムタイマ12の時点でキャッシュメモリ2−2はクリアされる。また、システムタイマ12の時点でのキャッシュメモリ2−2のクリアにより、t1≦t2≦t3が成立する。そして、キャッシュクリアタイムスタンプ5−2が格納するシステムスタンプの値は「12」となる。
次に、プロセッサ1−2は、システムタイマ14の時点で資源3をアンロックするので、資源更新プロセッサ8−3は「2」を格納し、また、資源更新タイムスタンプ7−3はシステムタイマの値「14」を格納する。
次に、プロセッサ1−2は、システムタイマ15の時点で資源2をロックするが、後述するように、この時の資源更新プロセッサ8−2が格納しているプロセッサの識別番号は「3」、資源更新タイムスタンプ7−2が格納しているシステムタイマの値は「10」である。また、キャッシュクリアタイムスタンプ5−3が格納しているシステムタイマの値は「11」、キャッシュクリアタイムスタンプ5−2が格納しているシステムタイマの値は「12」である。
この場合は、システムタイマ15の時点でキャッシュメモリのクリアを行わなくても、既にt1≦t2≦t3の関係が成立している(ステップA5においてYESと判断されるため)。よって、プロセッサ1−2によるキャッシュメモリ2−2及び2−3のクリアは行われない。
次に、プロセッサ1−2は、システムタイマ18の時点で資源2をアンロックするので、資源更新タイムスタンプ7−2はシステムタイマの値「18」を格納し、資源更新プロセッサ8−2は「2」を格納する。
続いて、プロセッサ1−3に着目して図5の例を説明する。プロセッサ1−3は、先ず、システムタイマ7の時点で資源2をロックするが、この時の資源更新プロセッサ8−2が格納している値は「2」である。また、このとき、資源更新タイムスタンプ7−2はシステムタイマの値「5」を格納し、キャッシュクリアタイムスタンプ5−3は「0」を格納している。
よって、ステップA4(図2参照)においてNOと判断される。この結果、プロセッサ1−3は、キャッシュメモリ2−2をクリアし(ステップA6)、更に、キャッシュメモリ2−3をクリアする(ステップA7)。そして、t1≦t2≦t3が成立する。キャッシュクリアタイムスタンプ5−2及びキャッシュクリアタイムスタンプ5−3は、システムタイマの値「7」を格納する。
次に、プロセッサ1−3は、システムタイマ10の時点で資源2をアンロックするので、資源更新プロセッサ8−2は「3」を格納し、資源更新タイムスタンプ7−2はシステムタイマの値「10」を格納する。
次に、プロセッサ1−3は、システムタイマ11の時点でアイドル状態に移行する。キャッシュクリアタイムスタンプ5−3が格納するシステムタイマの値は「11」に設定され、プロセッサ1−3は、キャッシュメモリ2−3をクリアする(図4参照)。
次に、プロセッサ1−3は、システムタイマ16の時点で資源1をロックするが、この時の資源更新プロセッサ8−1が格納している値は「1」であり、資源更新タイムスタンプ7−1が格納しているシステムタイマの値は「9」である。更に、この時、キャッシュクリアタイムスタンプ5−1が格納しているシステムタイマの値は「10」、キャッシュクリアタイムスタンプ5−3が格納しているシステムタイマの値は「11」である。このため、既にt1≦t2≦t3の関係が成立しているため、プロセッサ1−3によるキャッシュメモリ2−1及び2−3のクリアは行われない。
次に、プロセッサ1−3は、システムタイマ18の時点で資源1をアンロックするので、資源更新プロセッサ8−1は「3」を格納し、資源更新タイムスタンプ7−1はシステムタイマの値「18」を格納する。
以上のように、本実施の形態1では、プロセッサ1−nは、資源10−mをロックする際に、「アクセス対象とされている資源が最後に更新された時刻t1≦アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2≦プロセッサ1−nに対応するキャッシュメモリ2−nがクリアされた最新の時刻t3」が成立するように、キャッシュメモリのクリアを実行する。この結果、キャッシュコヒーレンシを保証するための各キャッシュメモリのクリアは必要最小限で済み、マルチプロセッサ計算機11の性能の向上が図られる。
ここで、図6(a)及び(b)を用いて、本発明の実施の形態1におけるマルチプロセッサ計算機で実行されるキャッシュクリアのパターンについて説明する。図6(a)は、一般的なキャッシュクリアのパターンを示すタイムチャートである。図6(b)は、本発明の実施の形態1におけるキャッシュクリアのパターンを示すタイムチャートである。図6(a)及び図6(b)は、プロセッサが資源をロックする際に、「資源を最後にアクセスしたプロセッサ」の情報と、時刻t1〜t3の関係とによって、キャッシュクリアがどのように行われるかを示している。
図6(a)及び図6(b)に示すように、本実施の形態1では、プロセッサ間の排他制御である、ロック処理、アンロック処理及びアイドル処理に、キャッシュコヒーレンシを保証する処理が追加されている。即ち、本実施の形態では、「キャッシュの整合性を考慮する必要があるのは、複数のプロセッサが同時に更新する可能性のある資源にアクセスする時に限定される」という点が着目されている。そして、この着目点に基づくことで、キャッシュコヒーレンシの保証は、資源の排他制御の一環として低コストで実現されるのである。
また、本実施の形態1は、リードオンリーキャッシュ機構や、ライトスルーキャッシュ機構を備えたプロセッサに限定されず、ライトバックキャッシュ機構を備えたプロセッサにも適用でき、キャッシュコヒーレンシの保証を実現する。これは、本実施の形態1におけるマルチプロセッサ計算機11では、他のプロセッサによるメインメモリへの書き込みの際のライトバックキャッシュ機構も意識した上で、キャッシュコヒーレンシを保証して
いるからである。
本発明の実施の形態1におけるプログラムは、コンピュータに、図2に示すステップA1〜A7を実行させることができるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行すれば、本実施の形態1におけるマルチプロセッサ計算機及びキャッシュ整合性の保証方法を具現化できる。但し、コンピュータとしては、メインメモリと、メインメモリを共有する複数のプロセッサと、複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるコンピュータが用いられる。
(実施の形態2)
次に、本発明の実施の形態2におけるマルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラムについて、図7を参照しながら説明する。図7は、本発明の実施の形態2におけるマルチプロセッサ計算機の概略構成を示すブロック図である。
図7に示すように、本実施の形態2におけるマルチプロセッサ計算機22は、図1に示した実施の形態1におけるマルチプロセッサ計算機11と異なり、2種類のメインメモリを備えている。即ち、マルチプロセッサ計算機22は、ハードウェアによってキャッシュコヒーレンシが保証されるメインメモリ21と、ハードウェアによってキャッシュコヒーレンシが保証されないメインメモリ23とを備えている。
上述した実施の形態1におけるマルチプロセッサ計算機11では、メインメモリの全ての領域に関してハードウェアによってキャッシュコヒーレンシが保証されないため、各プロッセは、排他制御部9へのアクセスを、常に、キャッシュバイパスによって行っている。
これに対して、本実施の形態2におけるマルチプロセッサ計算機22では、排他制御部24は、キャッシュコヒーレンシ機能を有し、メインメモリ22に配置されている。よって、メインメモリ22に対しては、通常のアクセスにおいて、ハードウェアによってキャッシュコヒーレンシが保証される。なお、排他制御の対象である資源10−1〜10−Mは、メインメモリ23に配置されている。
つまり、本実施の形態2においても、マルチプロセッサ計算機22における動作のアルゴリズムは、図2〜図6に示した実施の形態1における動作のアルゴリズムと同様である。但し、排他制御部24がキャッシュコヒーレンシ機能を有するため、排他制御部24に対する全てのアクセスに対してキャッシュコヒーレンシが保証される。このため、本実施の形態2によれば、実施の形態1と異なり、キャッシュバイパスによってアクセスしていた処理(ステップA2、A4、A5、A6、A7、B1、B2、C1)は、全て通常のアクセスによって行うことが可能となる。
本発明は、ハードウェアによってキャッシュコヒーレンシが保証されない事を特徴とする、リードキャッシュ機構を備えたSMP型計算機に対して、プログラムによりキャッシュコヒーレンシを保証する用途に利用できる。また、本発明は、ハードウェアによってキャッシュコヒーレンシが保証されない事を特徴とする、ライトスルーキャッシュ機構を備えたSMP型計算機に対して、プログラムによりキャッシュコヒーレンシを保証する用途にも利用できる。更に、ハードウェアによってキャッシュコヒーレンシが保証されない事を特徴とする、ライトバックキャッシュ機構を備えたSMP型計算機に対して、プログラムによりキャッシュコヒーレンシを保証する用途にも利用できる。また、本発明で述べた排他制御部をハードウェアとして実装すれば、ハードウェアによってキャッシュコヒーレンシを保証する用途に利用できる。
1−1〜1−N プロセッサ
2−1〜2−N キャッシュメモリ
3 システムタイマ
4 メインメモリ
5−1〜5−N キャッシュクリアタイムスタンプ
6−1〜6−M ロックワード
7−1〜7−M 資源更新タイムスタンプ
8−1〜8−M 資源更新プロセッサ
9 排他制御部
10−1〜10−M 資源
11 マルチプロセッサ計算機(実施の形態1)
21 マルチプロセッサ計算機(実施の形態2)
22 メインメモリ
23 メインメモリ
24 排他制御部

Claims (13)

  1. メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機であって、
    前記メインメモリは、前記複数のプロセッサ間で共有される情報を複数個の資源として記憶し、
    前記複数のプロセッサそれぞれは、前記複数個の資源のいずれかに対して排他的制御によってアクセスするときに、
    一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、
    前記アクセス対象とされている資源が最後に更新された時刻t1と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、
    前記複数のキャッシュメモリの全部又は一部のクリアを実行する、ことを特徴とするマルチプロセッサ計算機。
  2. 前記時刻t1、前記時刻t2、及び前記時刻t3が、設定された基準時からの経過時間によって特定され、
    前記複数のプロセッサそれぞれが、前記一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサが、前記一のプロセッサ以外のプロセッサである場合に、前記時刻t1≦前記時刻t2≦前記時刻t3の関係が成立するように、前記複数のキャッシュメモリの全部又は一部のクリアを実行する、請求項1に記載のマルチプロセッサ計算機。
  3. 前記複数のプロセッサそれぞれが、前記時刻t1≦前記時刻t2≦前記時刻t3の関係が既に成立している場合に、前記複数のキャッシュメモリの全部又は一部のクリアを実行しない、請求項2に記載のマルチプロセッサ計算機。
  4. 前記複数のプロセッサそれぞれが、予め設定されたプログラムに従って、前記複数のキャッシュメモリのクリアを実行する、請求項1〜3のいずれかに記載のマルチプロセッサ計算機。
  5. 前記複数のプロセッサそれぞれが、リードオンリーキャッシュ機構、ライトスルーキャッシュ機構、及びライトバックキャッシュ機構のうち何れかの機構を備えている、請求項1〜4のいずれかに記載のマルチプロセッサ計算機。
  6. メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機において、前記複数のキャッシュメモリの整合性を保証するための方法であって、
    前記複数のプロセッサのいずれかが、前記メインメモリによって記憶され、且つ、前記複数のプロセッサ間で共有される情報で構成された複数個の資源のいずれかに対して、排他的制御によってアクセスするときに、
    一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、
    前記アクセス対象とされている資源が最後に更新された時刻t1と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、前記複数のキャッシュメモリの全部又は一部のクリアを
    実行するステップを有する、ことを特徴とするキャッシュ整合性の保証方法。
  7. 前記時刻t1、前記時刻t2、及び前記時刻t3が、設定された基準時からの経過時間によって特定されており、
    前記一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサが、前記一のプロセッサ以外のプロセッサである場合に、前記時刻t1≦前記時刻t2≦前記時刻t3の関係が成立するように、前記複数のキャッシュメモリの全部又は一部のクリアを実行する、請求項6に記載のキャッシュ整合性の保証方法。
  8. 前記時刻t1≦前記時刻t2≦前記時刻t3の関係が既に成立している場合に、前記複数のキャッシュメモリの全部又は一部のクリアを実行しない、請求項7に記載のキャッシュ整合性の保証方法。
  9. 前記複数のプロセッサそれぞれが、リードオンリーキャッシュ機構、ライトスルーキャッシュ機構、及びライトバックキャッシュ機構のうち何れかの機構を備えている、請求項6〜8のいずれかに記載のキャッシュ整合性の保証方法。
  10. メインメモリと、前記メインメモリを共有する複数のプロセッサと、前記複数のプロセッサそれぞれ毎に設けられた複数のキャッシュメモリとを備えるマルチプロセッサ計算機において、前記複数のプロセッサに、前記複数のキャッシュメモリの整合性を保証させるプログラムであって、
    前記複数のプロセッサそれぞれに対して、
    前記複数のプロセッサのいずれかが、前記メインメモリによって記憶され、且つ、前記複数のプロセッサ間で共有される情報で構成された複数個の資源のいずれかに対して、排他的制御によってアクセスするときに、
    一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサを特定する情報を用い、
    前記アクセス対象とされている資源が最後に更新された時刻t1と、前記アクセス対象とされている資源を最後に更新したプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t2と、前記一のプロセッサに対応するキャッシュメモリがクリアされた最新の時刻t3との関係に基づいて、
    前記複数のキャッシュメモリの全部又は一部のクリアを実行するステップを実行させる、ことを特徴とするプログラム。
  11. 前記時刻t1、前記時刻t2、及び前記時刻t3が、設定された基準時からの経過時間によって特定されており、
    前記一のプロセッサによってアクセス対象とされている前記資源を最後に更新したプロセッサが、前記一のプロセッサ以外のプロセッサである場合に、前記時刻t1≦前記時刻t2≦前記時刻t3の関係が成立するように、前記複数のキャッシュメモリの全部又は一部のクリアを実行する、請求項10に記載のプログラム。
  12. 前記時刻t1≦前記時刻t2≦前記時刻t3の関係が既に成立している場合に、前記複数のキャッシュメモリの全部又は一部のクリアを実行しない、請求項11に記載のプログラム。
  13. 前記複数のプロセッサそれぞれが、リードオンリーキャッシュ機構、ライトスルーキャッシュ機構、及びライトバックキャッシュ機構のうち何れかの機構を備えている、請求項10〜12のいずれかに記載のプログラム。
JP2009014617A 2009-01-26 2009-01-26 マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム Expired - Fee Related JP5224053B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009014617A JP5224053B2 (ja) 2009-01-26 2009-01-26 マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009014617A JP5224053B2 (ja) 2009-01-26 2009-01-26 マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010170493A JP2010170493A (ja) 2010-08-05
JP5224053B2 true JP5224053B2 (ja) 2013-07-03

Family

ID=42702571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009014617A Expired - Fee Related JP5224053B2 (ja) 2009-01-26 2009-01-26 マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5224053B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929800B (zh) * 2012-10-17 2015-07-08 无锡江南计算技术研究所 Cache一致性协议派生处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5668852A (en) * 1979-11-08 1981-06-09 Toshiba Corp Information processor
KR100451211B1 (ko) * 2002-10-31 2004-10-13 엘지전자 주식회사 이동 컴퓨팅 환경에서 트랜잭션 캐시 일관성 유지 시스템및 방법
JP2006276901A (ja) * 2005-03-25 2006-10-12 Nec Corp マルチプロセッサ計算機、そのキャッシュコヒーレンシ保証方法及びキャッシュコヒーレンシ保証プログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
US8171229B2 (en) Wait-free parallel data cache
US8180971B2 (en) System and method for hardware acceleration of a software transactional memory
KR101355496B1 (ko) 복수의 병렬 클러스터들을 포함하는 계층 프로세서의스케쥴링 메카니즘
US20110208921A1 (en) Inverted default semantics for in-speculative-region memory accesses
US20050154866A1 (en) Systems and methods for executing across at least one memory barrier employing speculative fills
EP2641171B1 (en) Preventing unintended loss of transactional data in hardware transactional memory systems
US20050154805A1 (en) Systems and methods for employing speculative fills
CN106663026B (zh) 针对事务型数据处理执行模式的调用堆栈维护
CN113505088A (zh) 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议
US8301844B2 (en) Consistency evaluation of program execution across at least one memory barrier
US7216202B1 (en) Method and apparatus for supporting one or more servers on a single semiconductor chip
JP2008503821A (ja) 小容量キャッシュシステムにおけるアトミック予約ライン上のライトバックを無効化する方法およびシステム
US8380935B2 (en) Atomic memory operation cache protocol with opportunistic combining
WO2017074416A1 (en) Managing cache operations using epochs
JP5224053B2 (ja) マルチプロセッサ計算機、キャッシュ整合性の保証方法、及びプログラム
Poudel et al. Adaptive versioning in transactional memories
US9244844B2 (en) Enabling hardware transactional memory to work more efficiently with readers that can tolerate stale data
Singh et al. Efficient hardware primitives for immediate memory reclamation in optimistic data structures
Atoofian Improving performance of software transactional memory through contention locality
JP2006276901A (ja) マルチプロセッサ計算機、そのキャッシュコヒーレンシ保証方法及びキャッシュコヒーレンシ保証プログラム
Gaona et al. Selective dynamic serialization for reducing energy consumption in hardware transactional memory systems
Titos-Gil et al. Zebra: Data-centric contention management in hardware transactional memory
Scott et al. Architectural Background
Shahid et al. Hardware transactional memories: A survey
KR20240067941A (ko) 예비 디렉토리 항목에 특정 데이터 패턴의 표시 저장

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130226

R150 Certificate of patent or registration of utility model

Ref document number: 5224053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees