JP3678715B2 - Distributed shared memory multiprocessor system and tag control method used therefor - Google Patents

Distributed shared memory multiprocessor system and tag control method used therefor Download PDF

Info

Publication number
JP3678715B2
JP3678715B2 JP2002121558A JP2002121558A JP3678715B2 JP 3678715 B2 JP3678715 B2 JP 3678715B2 JP 2002121558 A JP2002121558 A JP 2002121558A JP 2002121558 A JP2002121558 A JP 2002121558A JP 3678715 B2 JP3678715 B2 JP 3678715B2
Authority
JP
Japan
Prior art keywords
tag
memory
swap buffer
cache
request
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 - Lifetime
Application number
JP2002121558A
Other languages
Japanese (ja)
Other versions
JP2003316756A (en
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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2002121558A priority Critical patent/JP3678715B2/en
Publication of JP2003316756A publication Critical patent/JP2003316756A/en
Application granted granted Critical
Publication of JP3678715B2 publication Critical patent/JP3678715B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法に関し、特に共有メモリマルチプロセッサシステムに用いられるタグ(以下、TAGとする)の制御方法に関する。
【0002】
【従来の技術】
従来、共有メモリマルチプロセッサシステムにおいては、複数のプロセッサがシステムメモリのコピーをキャッシュに記憶している。この場合、共有メモリマルチプロセッサシステムには、同じメモリラインの複数のキャッシュに記憶されたデータとメモリとの整合性を維持するためにキャッシュコヒーレント機構が必要となる。
【0003】
このキャッシュコヒーレント機構を実現するのに、TAG(あるいはディレクトリ)を具備している。TAGは各メモリラインのアドレスやシステムメモリとキャッシュとの状態を記憶する。
【0004】
近年、コンピュータシステムはシステムメモリへのアクセスを加速させるために搭載されるキャッシュ容量が大幅に大容量化している。また、システムメモリも大幅に大容量化している。TAGは上記のシステムメモリ及びキャッシュの大容量化に伴って多くの情報を記憶することで、システム全体のスループットが向上する。
【0005】
【発明が解決しようとする課題】
しかしながら、上述した従来の共有メモリマルチプロセッサシステムでは、システムメモリあるいはキャッシュと同じ容量のTAGを搭載すると、ハードウェア量の増大化あるいはコスト負担増、制御の複雑さが増すため、TAGとして外付けRAMを用いることが考えられるが、アクセススピードが遅く、その制御が複雑となる。
【0006】
そこで、本発明の目的は上記の問題点を解消し、バスへの負荷を減らすことができ、キャッシュのヒット率を上げてシステム全体の性能を向上させることができる分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法を提供することにある。
【0007】
【課題を解決するための手段】
本発明による分散共有メモリ型マルチプロセッサシステムは、キャッシュを具備する複数の中央処理装置と、前記中央処理装置及び入出力装置のいずれかからの要求を処理するメモリコントローラと、前記キャッシュの情報を保持する分散共有メモリとから構成され、前記中央処理装置と前記メモリコントローラとの間をバス接続してなる複数のノードを含む分散共有メモリ型マルチプロセッサシステムであって、
前記複数のノード各々を接続するノード間アドレスバスと、前記複数のノード各々を接続しかつ前記複数のノード間のデータの処理と前記入出力装置からの要求の処理とを行うクロスバーとを備え
前記メモリコントローラは、前記キャッシュの情報を保持するタグメモリと、前記タグメモリにおけるタグ掃き出し情報を保持するタグスワップバッファと、前記ノードから発行されたリクエストを制御するタグ制御回路と、前記ノード各々にアクセスするリクエストを制御するリクエスト制御部と、前記ノード内のリプライデータを制御するリプライ制御回路とを具備し、
前記タグ制御回路は、前記タグメモリ及び前記タグスワップバッファの索引、登録、無効化、コヒーレントリクエストの発行を行う機構を具備し、
前記タグメモリ及び前記タグスワップバッファの索引結果を判定する判定回路を具備し、
前記判定回路は、前記タグメモリのエリアが無効化対象であり、同一セットアドレスが前記タグスワップバッファに存在することを検出した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリへの再登録を行っている。
【0008】
本発明によるタグ制御方法は、キャッシュを具備する複数の中央処理装置と、前記中央処理装置及び入出力装置のいずれかからの要求を処理するメモリコントローラと、前記キャッシュの情報を保持する分散共有メモリとから構成され、前記中央処理装置と前記メモリコントローラとの間をバス接続してなる複数のノードを含む分散共有メモリ型マルチプロセッサシステムのタグ制御方法であって、
前記複数のノード各々を、ノード間アドレスバスと、前記複数のノード間のデータの処理と前記入出力装置からの要求の処理とを行うクロスバーとによって接続し、
前記キャッシュの情報を保持するタグメモリ及び前記タグメモリにおけるタグ掃き出し情報を保持するタグスワップバッファに、前記ノード内の前記キャッシュに登録されたアドレス及びステータス情報を保持し、
前記タグスワップバッファに、前記タグメモリのエリアがフルに登録されている状態で新規登録する際に、いずれか1つのエリアをスワップしたアドレス及びステータス情報を保持し
前記タグメモリ及び前記タグスワップバッファの索引結果を判定する際に、前記タグメモリのエリアが無効化対象であり、同一セットアドレスが前記タグスワップバッファに存在することを検出した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリへの再登録を行っている。
【0009】
すなわち、本発明の分散共有メモリ型マルチプロセッサシステムは、キャッシュを具備する複数のCPU(中央処理装置)と、各CPUとメモリコントローラとの間をバス接続し、CPUあるいはI/O(入出力)装置からの要求を処理するメモリコントローラと、分散共有メモリとから各ノードを構成し、上記の各ノードをノード間アドレスバス及びクロスバーを介して接続し、上記のクロスバーが複数のノード間のデータを処理すると同時に、I/O装置からの要求を処理する。
【0010】
各ノードのメモリコントローラは、ノード内の各CPUに搭載されるキャッシュの情報を保持するタグ(以下、TAGとする)メモリと、TAG掃き出し情報を保持するTAGスワップバッファと、ノード内あるいは他ノードから発行されたリクエストを制御し、TAGメモリ及びTAGスワップバッファの索引、登録、無効化及びコヒーレントリクエストを発行する機構を具備するTAG制御回路と、各ノードにアクセスするリクエストを制御するリクエスト制御部と各ノード内のリプライデータを制御するリプライ制御回路とから構成されている。
【0011】
TAGメモリ及びTAGスワップバッファは各ノード内のCPUのキャッシュに登録されたアドレス及びステータス情報を保持する。TAGスワップバッファはTAGメモリのエリアがフルに登録されている状態で新規登録する際に、いずれか1つのエリアをスワップしたアドレス及びステータス情報を保持する。
【0012】
TAG制御回路はTAG索引リクエストを受信すると、TAGメモリ及びTAGスワップバッファを同時に索引し、TAGメモリあるいはTAGスワップバッファに保持されているアドレスが一致し、かつステータス情報が有効(PあるいはS)の場合、それぞれ索引結果に応じて登録、更新、無効化を行い、TAG制御回路はバスへリクエスト発行を行う。
【0013】
TAGメモリ及びTAGスワップバッファの索引結果を判定する回路においては、TAGメモリのエリアが無効化対象であり、同一セットアドレスがTAGスワップバッファに存在することを判定した場合、TAGスワップバッファの情報を無効化し、TAGメモリに再登録する。
【0014】
上記の処理において、TAGスワップバッファ中に複数の同一セットアドレスが存在した場合、ステータス情報がキャッシュの全ての状態のいずれかを示す“P”のものを優先して再登録する。TAGスワップバッファは、各エントリに保持されたステータス情報を基に有効情報の有無を判定し、バッファフル状態であり、かつTAGメモリからのスワップが発生した場合にTAGスワップバッファから読出し、TAG制御回路からバスへインバリデイトリクエストを発行する。
【0015】
TAGメモリ及びTAGスワップバッファの索引結果を判定する各判定回路においては、それぞれのステータス情報を判定し、TAGメモリからの追い出し(スワップ)はステータス情報が“P”よりシステム内で複数キャッシングしている可能性がある状態またはキャッシングしていない状態を示す“S”を優先する。
【0016】
上記と同様に、TAGメモリ及びTAGスワップバッファの索引結果を判定する各判定回路において、TAGスワップバッファからの追い出し対象をステータス情報が“P”より“S”を優先することによって、キャッシュからライトバック処理を低減する。
【0017】
また、上記と同様に、TAGスワップバッファの全ステータスが“P”でかつTAGメモリからのスワップ対象のステータス情報が“S”と判定した場合には、TAGスワップバッファに保持することなく、バスにインバリデイトリクエストを発行する。
【0018】
よって、上述した通り、TAGメモリ及びTAGスワップバッファを制御することによって、複数のノード間のコヒーレント制御を行うと同時に、TAGメモリのエントリを有効的に活用することが可能であり、CPUのキャッシュにステータス情報“M”で登録されたデータの掃き出し動作を低減することから、キャッシュのヒット率が上がり、また、バスへの負荷を抑えることからシステム全体の性能が向上する。
【0019】
よって、本発明の分散共有メモリ型マルチプロセッサシステムでは、LSI(大規模集積回路)に搭載可能なTAGメモリ及びTAGスワップバッファをフルに活用し、バスへの負荷を減らし、キャッシュのヒット率を上げることから、システム全体の性能が向上する。
【0020】
近年、メインメモリの容量及びメモリCPUに搭載されるキャッシュの容量は大容量化している。TAGメモリで全メモリ空間の情報を保持することはハードウェア投資が膨大となる。また、TAGメモリの容量が増やすことによって、制御が複雑化すると同時に、ハードウェア投資に見合った性能が確保されるとは限らない。
【0021】
本発明の分散共有メモリ型マルチプロセッサシステムでは、TAGメモリとTAGメモリからの掃き出し情報を保持するTAGスワップバッファとによって、TAGスワップバッファに有効な情報があり、TAGメモリのエリアが空いた際にTAGスワップバッファからの再登録を行う。
【0022】
TAGスワップバッファはフル状態となるまでバスへのコヒーレントリクエストを発行しない。また、TAGスワップバッファ内にTAGへの再登録対象が複数ある場合、TAGステータスが“S”より“P”であるものを優先する。TAGスワップバッファからバスへのコヒーレントリクエストを発行する場合もステータスが“S”より“P”を優先させる機構を具備することによって、各ノード内のバスへの負荷を低減し、TAGメモリを有効に活用することから、CPUに搭載されるキャッシュからの掃き出しが低減される。よって、システム全体の性能が向上する。
【0023】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例による分散共有メモリ型マルチプロセッサシステムの構成を示すブロック図である。図1において、本発明の一実施例による分散共有メモリ型マルチプロセッサシステムはノード(#0〜#3)1〜4と、クロスバー5と、I/O(入出力)装置6−1〜6−4とから構成されている。
【0024】
各ノード(#0〜#3)1〜4は複数のCPU(中央処理装置)11〜14,……,41〜44と、メモリコントローラ15,……,45と、分散共有メモリ16,……,46とから構成されている。尚、図1においてはノード(#0,#3)1,4の構成だけを図示し、他のノード(#1,#2)2,3の構成の図示を省略しているが、他のノード(#1,#2)2,3の構成もノード(#0,#3)1,4の構成と同様である。
【0025】
CPU11〜14,……,41〜44はそれぞれキャッシュ11a,12a,13a,14a,……,41a,42a,43a,44aを具備しており、バス110,……,140を介してメモリコントローラ15,……,45に接続されている。メモリコントローラ15,……,45はCPU11〜14,……,41〜44あるいはI/O装置6−1〜6−4からの要求を処理する。
【0026】
クロスバー5は複数のノード1〜4間のデータをデータ線301,……,304を介して処理すると同時に、複数のI/O装置6−1〜6−4からの要求も処理する。
【0027】
図2は図1のメモリコントローラ15の構成を示すブロック図である。図2においては、メモリコントローラ15の構成のみを図示しているが、ノード(#1,#2)2,3のメモリコントローラやノード(#3)4のメモリコントローラ45もメモリコントローラ15と同様の構成となっている。
【0028】
メモリコントローラ15はタグ(以下、TAGとする)メモリ151と、TAGスワップバッファ152と、TAG制御回路153と、リクエスト制御部154と、判定回路155と、リプライ制御回路部156とから構成されている。
【0029】
図3は図2のTAGメモリ151の保持内容を示す図である。図3において、TAGメモリ151にはCPUキャッシュステータスと、コードと、概要とが保持されている。
【0030】
CPUキャッシュステータス「M(Modified)」は、コードが「11」で、その概要が「システム内で唯一キャッシングしている。共有メモリのコピーではない。」となっている。CPUキャッシュステータス「E(Exclusive)」は、コードが「10」で、その概要が「システム内で唯一キャッシングしており、共有メモリのコピーを有している。」となっている。
【0031】
CPUキャッシュステータス「S(Shared)」は、コードが「01」で、その概要が「システム内で複数キャッシングしている可能性があり、共有メモリのコピーを有している。」となっている。CPUキャッシュステータス「I(Invalid)」は、コードが「00」で、その概要が「キャッシングしていない」となっている。
【0032】
図4は図2のTAGスワップバッファ152の保持内容を示す図である。図4において、TAGスワップバッファ152にはTAGステータスと、コードと、CPUキャッシュステータスとが保持されている。
【0033】
TAGステータス「P(Private)」は、コードが「11」で、CPUキャッシュステータスが「M/E/S/Iのいずれかのステータスである。」となっている。TAGステータス「S(Share)」は、コードが「10」で、CPUキャッシュステータスが「S/Iのいずれかのステータスである。」となっている。TAGステータス「U(Uncached)」は、コードが「00」で、CPUキャッシュステータスが「I(キャッシングされていない)」となっている。つまり、TAGステータス「P」は全てのCPUキャッシュステータスのいずれかを示し、TAGステータス「S」は「システム内で複数キャッシングしている可能性があり、共有メモリのコピーを有している」というステータスまたは「キャッシングしていない」というステータスを示している。
【0034】
これら図2〜図4を参照して、メモリコントローラ15について詳細に説明する。
【0035】
TAGメモリ151はノード1内のCPU11〜14に搭載されるキャッシュ11a,12a,13a,14aの情報を保持する。TAGスワップバッファ152はTAG掃き出し情報を保持する。判定回路155は他ノード2〜4あるいはI/O装置6−1〜6−4から発行されたリクエスト/リプライを判定する。
【0036】
TAG制御回路153は判定回路155によって転送先が制御され、TAGメモリ151及びTAGスワップバッファ152の索引、登録、無効化及びコヒーレントリクエストを発行する機構を具備している。リクエスト制御部154は各ノード(#0〜3)1〜4にアクセスするリクエストを制御する。リプライ制御回路部156は各ノード1〜4内のリプライデータを制御する。
【0037】
各ノード1〜4おけるメモリコントローラ15,……,45のTAGメモリ151及びTAGスワップバッファ152は、各ノード1〜4内のCPU11〜14,……,41〜44のキャッシュ11a,12a,13a,14a,……,41a,42a,43a,44aに登録されたアドレス及びステータス情報を保持する。
【0038】
TAGスワップバッファ152はTAGメモリ151のエリアがフルに登録されている状態で新規登録する際に、いずれか1つのエリアをスワップしたアドレス及びステータス情報を保持する。
【0039】
TAG制御回路153はTAG索引リクエストを受信すると、TAGメモリ151及びTAGスワップバッファ152を同時に索引し、TAGメモリ151あるいはTAGスワップバッファ152に保持されているアドレスが一致し、かつステータス情報(以下、TAGスワップバッファ152のステータス情報は図4を参照)が有効(“P”あるいは“S”)の場合、それぞれ索引結果に応じて登録、更新、無効化を行い、必要に応じてバス110へリクエスト発行を行う。
【0040】
図5は図2のTAGメモリ151及びTAGスワップバッファ152の制御機構を示すブロック図である。図5において、TAGメモリ151及びTAGスワップバッファ152の制御機構はレジスタ161と、TAGメモリ151及びTAGスワップバッファ152の索引結果を判定する判定回路162,164,166と、各判定結果から対象となるデータを選択する選択回路163,165とから構成され、以下のように制御する。ここで、TAGメモリ151は一般的に設計されるnWAY・セット・アソシアティブのメモリである。
【0041】
判定回路162はTAGスワップバッファ152の有効エントリ(“P”あるいは“S”)がフルの状態であるかを判定し、フルの場合に“1”、フルでない場合に“0”をTAG制御回路153に送信する。
【0042】
判定回路164はTAG索引リクエスト受信時にTAGスワップバッファ152の有効エントリ(ステータスが“P”あるいは“S”)と、セットアドレス一致及びキーアドレス一致を判定し、それぞれにおいて一致した場合に“1”、一致しない場合に“0”を送信する。
【0043】
判定回路166はTAGメモリ151に登録されているキーアドレス及びステータス情報との一致条件を出力する。また、判定回路166は索引リクエストのセットアドレスに対するエリアがフルに使用されているかについても判定する。
【0044】
選択回路163は上記の判定回路164の結果から索引リクエストによる更新、無効化処理対象のものを選択する。また、選択回路163はTAGスワップバッファ152からTAGメモリ151への再登録対象あるいはTAGスワップバッファ152からの追い出し対象の「アドレス+ステータス」が複数ある場合にいずれか1つを選択する。
【0045】
選択回路165は上記の判定回路166の結果から索引リクエストによる更新、登録、無効化処理対象のものを選択する。また、選択回路165はTAGメモリ151から追い出し処理が必要な場合(セットアドレスに対するエリアがフルに有効情報“P”あるいは“S”が格納されている場合)、TAGメモリ151から追い出し対象のものを選択する。
【0046】
さらに、選択回路165はTAGスワップバッファ152からTAGメモリ151への再登録対象、あるいはTAGスワップバッファ152からの追い出し対象の「アドレス+ステータス」が複数ある場合にいずれか1つを選択する。
【0047】
図6は図2のTAGメモリ151からの追い出し制御を示すフローチャートである。これら図2と図5と図6とを参照してTAGメモリ151からの追い出し制御について説明する。以下、ノード(#0)1について説明するが、他のノード(#1〜#3)2〜4におけるTAGメモリからの追い出し制御もこれと同様である。
【0048】
メモリコントローラ15はTAG索引リクエストに対して、判定回路166の結果からアドレス一致せず、セットアドレスに対するエリアに有効情報がフルに格納されている場合で新規登録を必要とする場合(図6ステップS1〜S4)、“S”のみの場合(図6ステップS5)、いずれかをランダムに選択し、それを追い出す(図6ステップS6)。
【0049】
メモリコントローラ15は“S”と“P”とが混在する場合(図6ステップS7)、いずれかの“S”のものを優先して選択し、それを追い出す(図6ステップS8)。また、メモリコントローラ15は“P”のみの場合(図6ステップS9)、いずれかをランダムに選択し、それを追い出す(図6ステップS10)。
【0050】
図7は図2のTAGスワップバッファ152からの追い出し制御を示すフローチャートである。これら図2と図5と図7とを参照してTAGスワップバッファ152からの追い出し制御について説明する。以下、ノード(#0)1について説明するが、他のノード(#1〜#3)2〜4におけるTAGスワップバッファからの追い出し制御もこれと同様である。
【0051】
メモリコントローラ15は判定回路162の結果からTAGスワップバッファ152がフルでかつTAGメモリ151からの追い出しがある場合(図7ステップS11,S12)、TAGスワップバッファ152が“S”のみであり、TAGメモリ151からの追い出し対象が“S”あるいは“P”の場合(図7ステップS13)、TAGスワップバッファ152のいずれかの“S”を優先して追い出す(図7ステップS14)。
【0052】
メモリコントローラ15はTAGスワップバッファ152に“S”と“P”とが混在しており、TAGメモリ151からの追い出し対象が“S”あるいは“P”の場合(図7ステップS15)、TAGスワップバッファ152のいずれかの“S”を優先して追い出す(図7ステップS16)。
【0053】
メモリコントローラ15はTAGスワップバッファ152が“P”のみであり、TAGメモリ151からの追い出し対象が“P”の場合(図7ステップS17)、TAGスワップバッファ152のいずれかの“P”を追い出す(図7ステップS18)。尚、メモリコントローラ15はTAGメモリ151からの追い出し対象が“S”の場合(図7ステップS19)、そのままバス110に発行する(図7ステップS20)。
【0054】
図8は図2のTAGスワップバッファ152からTAGメモリ151への再登録制御を示すフローチャートである。これら図2と図5と図8とを参照してTAGスワップバッファ152からTAGメモリ151への再登録制御について説明する。以下、ノード(#0)1について説明するが、他のノード(#1〜#3)2〜4におけるTAGスワップバッファからTAGメモリへの再登録制御もこれと同様である。
【0055】
メモリコントローラ15は判定回路166によってTAGメモリ151が無効化“I”でかつ判定回路164の結果からTAGスワップバッファ152にアドレス一致で“S”あるいは“P”のものが存在する場合(図8ステップS21,S22)、TAGスワップバッファ152に存在する対象が“S”のみの場合(図8ステップS23)、いずれかの“S”のものを選択回路163で選択してTAGメモリ151に再登録する(図8ステップS24)。
【0056】
メモリコントローラ15はTAGスワップバッファ152に存在する対象が“S”あるいは“P”の場合(図8ステップS25)、いずれかの“P”のものを優先して選択回路163で選択してTAGメモリ151に再登録する(図8ステップS26)。
【0057】
よって、上述したように、TAGメモリ151及びTAGスワップバッファ152を制御することによって、複数のノード間のコヒーレント制御を行うと同時に、TAGメモリ151のエントリを有効的に活用することが可能であり、CPU11〜14のキャッシュ11a〜14aにステータス情報“M”(以下、キャッシュのステータス情報は図4を参照)で登録されたデータの掃き出し動作を低減するので、キャッシュ11a〜14aのヒット率が上がり、またバス110への負荷を抑えられるので、システム全体の性能が向上する。
【0058】
図9〜図19は図1の分散共有メモリ16,46に対するリード処理を示すフローチャートであり、図20〜図33は図1の分散共有メモリ16,46に対するライト処理を示すフローチャートである。これら図1〜図33を参照して分散共有メモリ16,46に対するリード処理及びライト処理について説明する。
【0059】
本実施例においてはノード(#0)1から見ると、自ノードの分散共有メモリ16に対するリード、他ノード(#3)4の分散共有メモリ46に対するリード、自ノードの分散共有メモリ16に対するライト、他ノード(#3)4の分散共有メモリ46に対するライトがある。
【0060】
尚、他ノード(#1,#2)2,3の分散共有メモリに対するリード及びライトは他ノード(#3)4の分散共有メモリ46に対するリード及びライトと同様である。また、動作説明に関して、キャッシュ(本実施例では、キャッシュはストアインキャッシュとする)11a〜14aと、TAGメモリ151と、TAGスワップバッファ152とに登録、更新、無効化するデータのステータスについては図3及び図4を参照するものとする。
【0061】
まず、自ノード(#0)1の分散共有メモリ16に対するリードについて説明する。この場合、リクエスト発行元をCPU11とする。尚、自ノード(#0)1内のCPU12〜14から発行した場合も、各CPU12〜14内のキャッシュ制御及びそれらに関連するリクエストの動作はCPU11の処理と同様であるものとする。
【0062】
CPU11において、キャッシュ11aにアクセス対象のデータが“M”で登録されている場合には(図9ステップS31)、キャッシュ11aにヒットし、キャッシュ11a内のデータがCPU11に返信され(図9ステップS32)、リードリクエストが完了する。
【0063】
CPU11において、キャッシュ11aにアクセス対象のデータが“E”で登録されている場合には(図9ステップS33)、キャッシュ11aにヒットし、キャッシュ11a内のデータがCPU11に返信され(図9ステップS32)、リードリクエストが完了する。
【0064】
CPU11において、キャッシュ11aにアクセス対象のデータが“S”で登録されている場合には(図9ステップS34)、キャッシュ11aにヒットし、キャッシュ11a内のデータがCPU11に返信され(図9ステップS32)、リードリクエストが完了する。
【0065】
CPU11において、キャッシュ11aにアクセス対象のデータが登録されていない場合には(図9ステップS35)、キャッシュ11aがバス110にバス獲得要求を発行し(図9ステップS36)、バス110が獲得できたら(図9ステップS37)、ラインリードリクエストを発行する(図9ステップS38)。
【0066】
上記のラインリードリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“M”で登録されている場合には(図10ステップS39)、そのキャッシュ12a,13a,14aがバス110に“M”で登録されているデータをライトバック(データリプライ)する(図10ステップS40)。
【0067】
ライトバックを発行したキャッシュ12a,13a,14aは無効化され、“I”とされる(図10ステップS41)。上記のライトバックはリクエスト制御部154を介して分散共有メモリ16に送信される(図10ステップS42)。既に同一ノード(#0)1内のキャッシュが“M”の状態であるので、TAGメモリ151あるいはTAGスワップバッファ152に登録されているTAGステータは“P”のままとする(図10ステップS43)。
【0068】
キャッシュ11aはバス110を介して上記のライトバックデータをリプライデータとして受信し、“E”で登録し、CPU11にデータを返信する(図10ステップS44)。また、自ノード(#0)1の分散共有メモリ16にも上記のライトバックデータが送信され、その内容が更新される。これによって、リード処理が完了する。
【0069】
上記のラインリードリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“E”で登録されている場合には(図11ステップS45)、そのキャッシュ12a,13a,14aを“S”に更新する(図11ステップS46)。
【0070】
ラインリードリクエストはリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送される(図11ステップS47)。TAG制御回路153はTAGメモリ151及びTAGスワップバッファ152を索引し(図11ステップS48)、判定回路164あるいは判定回路166の出力からアクセス対象のステータスを“S”に更新する(図11ステップS49)。
【0071】
また、ラインリードリクエストによって分散共有メモリ16から読出されたデータリプライはリプライ制御回路156及びバス110を介してリクエスト発行元のキャッシュ11aに送信され、“S”で登録され、CPU11にデータを返信し(図11ステップS50)、リード処理が完了する。
【0072】
上記のラインリードリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“S”で登録されている場合には(図12ステップS51)、そのキャッシュを“S”に更新する(図12ステップS52)。
【0073】
ラインリードリクエストはリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送される(図12ステップS53)。TAG制御回路153はTAGメモリ151及びTAGスワップバッファ152を更新しない(図12ステップS54)。
【0074】
また、ラインリードリクエストによって分散共有メモリ16から読出されたデータリプライはリプライ制御回路156及びバス110を介してリクエスト発行元のキャッシュ11aに送信され、“S”で登録され、CPU11にデータを返却し(図12ステップS55)、リード処理が完了する。
【0075】
上記のラインリードリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aの全てがアクセス対象のデータを登録していない場合には(図13ステップS56)、ラインリードリクエストはリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送される(図13ステップS57)。
【0076】
TAG制御回路153はノード間アドレスバス200にラインリクエストを発行し、他ノード(#1〜#3)2〜4のメモリコントローラに上記のラインリクエストを転送する(図13ステップS58)。
【0077】
他ノード(#1〜#3)2〜4各々のメモリコントローラのTAG制御回路は他のノードからのラインリクエストを受信すると(図14ステップS71)、TAGメモリ及びTAGスワップバッファを索引する(図14ステップS72)。以下、各索引結果毎の処理について述べるが、その処理についてはノード(#3)4を対象として説明する。但し、ノード(#1,2)2,3でもノード(#3)4と同様の動作を行うものとする。
【0078】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致でかつ“P”の場合には(図14ステップS73)、TAG制御制御回路がバス140にラインリード&インバリデイトリクエストを発行し(図14ステップS74)、ノード(#3)4のTAGメモリあるいはTAGスワップバッファのアクセス対象を無効化する(図14ステップS75)。
【0079】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図14ステップS76)、索引結果が“M”の場合(図14ステップS77)、“M”を登録しているキャッシュがデータをバス140にライトバックし、リクエスト制御部に転送する(図14ステップS78)。“M”を登録しているキャッシュは無効化される(図14ステップS79)。
【0080】
上記のライトバックはデータリプライとしてデータ線304を介してクロスバー5に転送され(図14ステップS80)、データ線301を介してノード(#0)1のメモリコントローラ15に転送される。
【0081】
メモリコントローラ15の判定回路155はデータ線301を介して転送されてきたデータリプライをリプライ制御回路156及びリクエスト制御部154に転送する(図13ステップS59,S60)。リプライ制御回路156はデータリプライをバス110上のCPU11に送信し、キャッシュ11aは“E”を登録する(図13ステップS61)。データリプライはCPU11に返却され、リード処理が完了する。
【0082】
一方、メモリコントローラ15のリクエスト制御部154はTAG制御回路153にデータリプライを転送し、TAGメモリ151及びTAGスワップバッファ152を索引する(図17ステップS101)。ここで、TAGメモリ151の索引結果が判定回路166の結果あるいはTAGスワップバッファ152の索引結果を判別する判定回路164の出力によって以下の様になる。
【0083】
TAGメモリ151のアクセス対象エリアに空きエリアが存在した場合には(図17ステップS102)、その空きエリアにキーアドレス及びステータス“P”を登録する(図17ステップS103)。
【0084】
TAGメモリ151のアクセス対象エリアが全て“P”で登録されていた場合には(図17ステップS104)、いずれかのエリアをTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図17ステップS105)。
【0085】
TAGメモリ151のアクセス対象エリアが“P”あるいは“S”で満たされている場合には(図17ステップS106)、いずれかの“S”をTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図17ステップS107)。
【0086】
TAGメモリ151のアクセス対象エリアが全て“S”で登録されていた場合には(図17ステップS108)、いずれかのエリアをTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図17ステップS109)。
【0087】
上記の処理において、TAGスワップバッファ152が判定回路164の結果からフル状態の場合(図18ステップS110)、TAGスワップバッファ152に格納されている全てが“P”であれば(図18ステップS111)、いずれかの“P”を追い出す(図18ステップS112)。TGA制御回路153は追い出し対象のアドレスでインバリデイトリクエストをバス110に発行する(図18ステップS113)。以下、上記のインバリデイトリクエストの動作について述べる。
【0088】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“M”が登録されている場合には(図19ステップS121)、バス110にライトバックし、無効化“I”する(図19ステップS122)。ライトバックはリクエスト制御部154を介してアクセス対象の分散共有メモリ16にルーティングされ、そのメモリの内容が更新される(図19ステップS123)。
【0089】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“E”が登録されている場合には(図19ステップS124)、そのキャッシュを無効化“I”する(図19ステップS125)。
【0090】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“S”が登録されている場合には(図19ステップS126)、そのキャッシュを無効化“I”する(図19ステップS125)。
【0091】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれにも登録されていない場合には(図19ステップS127)、何もしない。
【0092】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図14ステップS76)、索引結果が“E”の場合(図16ステップS87)、“E”を登録しているキャッシュを無効化する(図16ステップS88)。
【0093】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図13ステップS59,S62)。キャッシュ11aはデータリプライを“E”で登録し、CPU11にデータを返信し(図13ステップS63)、リード処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図17及び図18に示す処理と同様である。
【0094】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図14ステップS76)、索引結果が“S“の場合(図16ステップS89)、“S”を登録しているキャッシュを無効化する(図16ステップS90)。
【0095】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図13ステップS59,S62)。キャッシュ11aはデータリプライを“E”で登録し、CPU11にデータを返信し(図13ステップS63)、リード処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図17及び図18に示す処理と同様である。
【0096】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図14ステップS76)、いずれのキャッシュにもヒットしない場合(図16ステップS91)、何もしない。
【0097】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図13ステップS62)。キャッシュ11aはデータリプライを“E”で登録し、CPU11にデータを返信し(図13ステップS63)、リード処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図17及び図18に示す処理と同様である。
【0098】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致でかつ“S”の場合(図15ステップS81)、TAG制御制御回路はバス140にラインリード&インバリデイトリクエストを発行する(図15ステップS82)。ノード(#3)4のTAGメモリあるいはTAGスワップバッファのアクセス対象は無効化“I”される(図15ステップS83)。
【0099】
ノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果が“S”であることから、バス140上のキャッシュ41a,42a,43a,44aは“S”あるいは“I”であることから、索引結果が“S”の場合には(図15ステップS84)、“S”を登録しているキャッシュを無効化する(図16ステップS90)。また、索引結果が“I”の場合には(図15ステップS85)、何もしない。尚、ノード(#0)1のTAGメモリ151及びTAGスワップバッファ152の登録、更新、及び追い出し制御は上述した図17及び図18に示す処理と同様である。
【0100】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致しないあるいはアドレス一致したが“I”の場合(有効データと一致条件が成立しなかった)には(図15ステップS86)、何もしない。尚、ノード(#0)1のTAGメモリ151及びTAGスワップバッファ152の登録、更新、及び追い出し制御は上述した図17及び図18に示す処理と同様である。
【0101】
他ノード(#3)4の分散共有メモリ46に対するリードについては、TAGメモリ、TAGメモリスワップバッファ及びCPU41〜44各々のキャッシュ41a,42a,43a,44aに対する制御が上述したノード(#0)1の処理と同様である。アクセス対象の分散共有メモリ46はリクエスト発行ノード以外のノードであり、ノード間のデータ転送経路のみが異なる。
【0102】
分散共有メモリ46から読出されたデータはメモリコントローラ45からデータ線304、クロスバー5、データ線301を介してメモリコントローラ15に転送される。このデータは判定回路155からリプライ制御回路156を介してバス110に送信され、リクエスト発行元のキャッシュ11aに登録される。
【0103】
また、他ノード(#3)4においてはキャッシュの“M”から“I”の無効化がノード(#0)1あるいは他ノードで発生したかによって、データリプライの経路が変わるのみである。
【0104】
次に、自ノード(#0)1の分散共有メモリ16に対するライトについて説明する。この場合、リクエスト発行元をCPU11とする。尚、自ノード(#0)1内のCPU12〜14から発行した場合も、各CPU12〜14内のキャッシュ制御及びそれらに関連するリクエストの動作はCPU11の処理と同様であるものとする。
【0105】
CPU11において、キャッシュ11aにアクセス対象のデータが“M”で登録されている場合には(図20ステップS131)、キャッシュ11aにヒットし、キャッシュ11a内のデータが更新され、キャッシュ11aのステータスが“M”のままとされ(図20ステップS132)、ライト処理が完了する。
【0106】
CPU11において、キャッシュ11aにアクセス対象のデータが“E”で登録されている場合には(図20ステップS133)、キャッシュ11aにヒットし、キャッシュ11a内のデータが更新され、キャッシュ11aのステータスも“M”に更新され(図20ステップS134)、ライト処理が完了する。
【0107】
CPU11において、キャッシュ11aにアクセス対象のデータが“S”で登録されている場合には(図20ステップS135)、キャッシュ11aがバス110にバス獲得要求を発行し(図20ステップS137)、バス110が獲得できたら(図20ステップS138)、ラインリード&インバリデイトリクエストを発行する(図20ステップS139)。
【0108】
上記のラインリード&インバリデイトリクエストにおいて、キャッシュ11aがライト対象を“S”でキャッシングしている場合には(図21ステップS140)、バス110にメモリラインリード&インバリデイトリクエストを発行する(図21ステップS141)。
【0109】
バス110上のいずれかのストアインキャッシュに“S”でキャッシングしているものがあれば(図21ステップS142)、インバリデイトされ、キャッシュ11aの登録が無効化“I”される(図21ステップS143)。
【0110】
並行してキャッシュ11aから発行されたラインリード&インバリデイトリクエストをリクエスト制御部154を介してTAG制御回路153に転送し、ノード間アドレス共有バス200に発行する(図21ステップS144)。
【0111】
転送されたメモリリード&インバリデイトリクエストによって他のノードではTAGメモリ及びTAGスワップバッファが索引され、アドレス一致でかつ“P”あるいは“S”を検出した場合に(図22ステップS151)、無効化“I”し(図22ステップS152)、同一ノード内のバスにインバリデイトリクエストを発行する(図22ステップS153)。
【0112】
続いて、他のノードでは“S”でキャッシングしているキャッシュの登録を無効化“I”し(図22ステップS154)、メモリリード&インバリデイトリクエストの完了通知を送信し(図22ステップS155)、索引を完了する。
【0113】
他のノードではTAGメモリ及びTAGスワップバッファの索引結果が“I”の場合(図22ステップS156)、何もせず、メモリリード&インバリデイトリクエストの完了通知を送信し(図22ステップS155)、索引を完了する。
【0114】
TAG制御回路153は他のノードに発行したメモリリード&インバリデイトリクエストの完了通知(スヌーププ結果)を受信すると(図21ステップS145)、TAGメモリ151あるいはTAGスワップバッファ152のいずれかで対象となるエリアを“P”で登録する(図21ステップS146)。
【0115】
メモリラインリード&インバリデイトリクエストのアドレスがマッピングされている分散共有メモリ16からはリードリプライデータが読出され(図21ステップS147)、リプライ制御回路156を介してキャッシュ41aに返信する(図21ステップS148)。
【0116】
キャッシュ11aはリードリプライデータを受信すると、そのリードリプライデータをライトデータとマージして“M”で登録し(図21ステップS149)、ライト処理を完了する。
【0117】
CPU11において、キャッシュ11aにアクセス対象のデータがアドレス一致しない、あるいはアドレス一致したが無効化“I”されている場合には(図20ステップS136)、キャッシュ11aがバス110にバス獲得要求を発行し(図20ステップS137)、バス110が獲得できたら(図20ステップS138)、ラインリード&インバリデイトリクエストを発行する(図20ステップS139)。
【0118】
上記のラインリード&インバリデイトリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“M”で登録されている場合には(図23ステップS161)、そのキャッシュ12a,13a,14aがバス110に“M”データをライトバック(データリプライ)する(図23ステップS162)。
【0119】
ライトバックを発行したキャッシュ12a,13a,14aは無効化され、“I”とされる(図23ステップS163)。上記のライトバックはリクエスト制御部154を介して分散共有メモリ16に送信される(図23ステップS164)。既に同一ノード(#0)1内のキャッシュが“M”の状態であるので、TAGメモリ151あるいはTAGスワップバッファ152に登録されているTAGステータスは“P”のままとする(図23ステップS165)。
【0120】
キャッシュ11aはバス110を介して上記のライトバックデータをリプライデータとして受信すると、“M”で登録してデータを更新し(図23ステップS166)、ライト処理を完了する。
【0121】
上記のラインリード&インバリデイトリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“E”で登録されている場合には(図24ステップS167)、そのキャッシュ12a,13a,14aを無効化“I”し(図24ステップS168)、ラインリード&インバリデイトリクエストをリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送する(図24ステップS169)。
【0122】
TAG制御回路153はTAGメモリ151及びTAGスワップバッファ152を索引し(図24ステップS170)、判定回路164あるいは判定回路166の出力からアクセス対象のステータスを“P”に更新する(図24ステップS171)。
【0123】
また、ラインリードリクエストによって分散共有メモリ16から読出されたデータリプライはリプライ制御回路156及びバス110を介してリクエスト発行元のキャッシュ11aに送信され、キャッシュ11aがライトデータとマージして“M”で登録し(図24ステップS172)、ライト処理が完了する。
【0124】
上記のラインリード&インバリデイトリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aのいずれかでアクセス対象のデータが“S”で登録されている場合には(図25ステップS173)、そのキャッシュを無効化“I”する(図25ステップS174)。
【0125】
ラインリード&インバリデイトリクエストはリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送される(図25ステップS175)。また、他ノードのキャッシュが“S”である可能性があるため、TAG制御回路153はノード間アドレスバス200にインバリデイトリクエストを発行する(図25ステップS176)。
【0126】
インバリデイトリクエストを受信した各々のノードのメモリコントローラは(図27ステップS191)、ノード内のバスへインバリデイトリクエストを発行する(図27ステップS192)。“S”で登録されているキャッシュは全て無効化“I”される(図27ステップS193)。キャッシングされていない場合には(図27ステップS194)、なにもしない。他ノードのTAGメモリ及びTAGスワップバッファのアクセス対象のエリアは無効化“I”される(図27ステップS195)。
【0127】
自ノード(#0)1内のメモリコントローラ15のTAG制御回路153はTAGメモリ151及びTAGスワップバッファ152を“P”に更新する(図25ステップS177)。
【0128】
また、ラインリード&インバリデイトリクエストによって分散共有メモリ16から読出されたデータリプライはリプライ制御回路156及びバス110を介してリクエスト発行元のキャッシュ11aに送信される(図25ステップS178)。キャッシュ11aはそのデータリプライをライトデータとマージして“M”で登録し(図25ステップS179)、ライト処理が完了する。
【0129】
上記のラインリード&インバリデイトリクエストにおいて、バス110に接続しているCPU12〜14のキャッシュ12a,13a,14aの全てがアクセス対象のデータを登録していない場合には(図26ステップS180)、ラインリード&インバリデイトリクエストをリクエスト制御部154を介してTAG制御回路153及び分散共有メモリ16に転送する(図26ステップS181)。
【0130】
TAG制御回路153はノード間アドレスバス200にラインリード&インバリデイトリクエストを発行し(図26ステップS182)、他ノード(#1〜#3)2〜4のメモリコントローラに上記ラインリクエストを転送する。
【0131】
他ノード(#1〜#3)2〜4各々のメモリコントローラのTAG制御回路は他のノードからのラインリクエストを受信すると(図28ステップS201)、TAGメモリ及びTAGスワップバッファを索引する(図28ステップS202)。以下、各索引結果毎の処理について述べるが、その処理についてはノード(#3)4を対象として説明する。但し、ノード(#1,2)2,3でもノード(#3)4と同様の動作を行うものとする。
【0132】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致でかつ“P”の場合には(図28ステップS203)、TAG制御回路がバス140にインバリデイトリクエストを発行し(図28ステップS204)、ノード(#3)4のTAGメモリあるいはTAGスワップバッファのアクセス対象を無効化“I”する(図28ステップS205)。
【0133】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図28ステップS206)、索引結果が“M”の場合(図28ステップS207)、“M”を登録しているキャッシュがデータをバス140にライトバックし、リクエスト制御部に転送する(図28ステップS208)。“M”を登録しているキャッシは無効化“I”される(図28ステップS209)。
【0134】
上記のライトバックはデータリプライとしてデータ線304を介してクロスバー5に転送され(図28ステップS210)、データ線301を介してノード(#0)1のメモリコントローラ15に転送される。
【0135】
メモリコントローラ15の判定回路155はデータリプライをリプライ制御回路156及びリクエスト制御部154に転送する。リプライ制御回路156はデータリプライをバス110上のCPU11に送信する。キャッシュ11aはデータリプライとライトデータとをマージして“M”で登録し(図26ステップS183,S184)、ライト処理が完了する。
【0136】
尚、上記の処理においてリード動作時のTAGメモリ151とTAGスワップバッファ152の制御と同様に、リクエスト発行元のTAG制御回路153はデータリプライを受信し、TAGメモリ151及びTAGスワップバッファ152を索引する(図31ステップS231)。ここで、TAGメモリ151の索引結果が判定回路166の結果あるいはTAGスワップバッファ152の索引結果を判別する判定回路164の出力によって以下の様になる。
【0137】
TAGメモリ151のアクセス対象エリアに空きエリアが存在した場合には(図31ステップS232)、その空きエリアにキーアドレス及びステータス“P”を登録する(図31ステップS233)。
【0138】
TAGメモリ151のアクセス対象エリアが全て“P”で登録されていた場合には(図31ステップS234)、いずれかのエリアをTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図31ステップS235)。
【0139】
TAGメモリ151のアクセス対象エリアが“P”あるいは“S”で満たされている場合には(図31ステップS236)、いずれかの“S”をTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図31ステップS237)。
【0140】
TAGメモリ151のアクセス対象エリアが全て“S”で登録されていた場合には(図31ステップS238)、いずれかのエリアをTAGスワップバッファ152に追い出し、替わりにデータリプライのキーアドレス及びステータス“P”を登録する(図31ステップS239)。
【0141】
上記の処理において、TAGスワップバッファ152が判定回路162の結果からフル状態の場合(図32ステップS240)、TAGスワップバッファ152に格納されている全てが“P”であれば(図32ステップS241)、いずれかの“P”を追い出す(図32ステップS242)。TGA制御回路153は追い出し対象のアドレスでインバリデイトリクエストをバス110に発行する(図32ステップS243)。以下、上記のインバリデイトリクエストに対する動作について述べる。
【0142】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“M”が登録されている場合には(図33ステップS251)、バス110にライトバックし、無効化“I”する(図33ステップS252)。ライトバックはリクエスト制御部154を介してアクセス対象の分散共有メモリ16にルーティングされ、そのメモリの内容が更新される(図33ステップS253)。
【0143】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“E”が登録されている場合には(図33ステップS254)、そのキャッシュを無効化“I”する(図33ステップS255)。
【0144】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれかで“S”が登録されている場合には(図33ステップS256)、そのキャッシュを無効化“I”する(図33ステップS255)。
【0145】
インバリデイトリクエストのアドレスに対して、バス110上のキャッシュ11a,12a,13a,14aのいずれにも登録されていない場合には(図33ステップS257)、何もしない。
【0146】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図28ステップS206)、索引結果が“E”の場合(図30ステップS217)、“E”を登録しているキャッシュを無効化”I”する(図30ステップS218)。
【0147】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図26ステップS183,S185)。キャッシュ11aはデータリプライとライトデータとをマージして“M”で登録し(図26ステップS186)、ライト処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図31及び図32に示す処理と同様である。
【0148】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図28ステップS206)、索引結果が“S”の場合(図30ステップS219)、“S”を登録しているキャッシュを無効化“I”する(図30ステップS220)。
【0149】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図26ステップS183,S185)。キャッシュ11aはデータリプライとライトデータとをマージして“M”で登録し(図26ステップS186)、ライト処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図31及び図32に示す処理と同様である。
【0150】
ノード(#3)4ではCPU41〜44各々のキャッシュ41a,42a,43a,44aを索引し(図28ステップS206)、いずれのキャッシュにもヒットしない場合(図30ステップS221)、何もしない。
【0151】
この場合、メモリコントローラ15において、データリプライは分散共有メモリ16から読出され、リプライ制御回路156を介してバス110に送出される(図26ステップS183,S185)。キャッシュ11aはデータリプライとライトデータとをマージして“M”で登録し(図26ステップS186)、ライト処理が完了する。尚、TAGメモリ151及びTAGスワップバッファ152に対する制御及び追い出し制御は上述した図31及び図32に示す処理と同様である。
【0152】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致でかつ“S”の場合(図29ステップS211)、TAG制御制御回路はバス140にインバリデイトリクエストを発行する(図29ステップS212)。ノード(#3)4のTAGメモリあるいはTAGスワップバッファのアクセス対象は無効化“I”される(図29ステップS213)。
【0153】
ノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果が“S”であることから、バス140上のキャッシュ41a,42a,43a,44aは“S”あるいは“I”であることから、索引結果が“S”の場合には(図29ステップS214)、“S”を登録しているキャッシュを無効化“I”する(図30ステップS220)。また、索引結果が“I”の場合には(図29ステップS215)、何もしない。尚、ノード(#0)1のTAGメモリ151及びTAGスワップバッファ152の登録、更新、及び追い出し制御は上述した図31及び図32に示す処理と同様である。
【0154】
上記のノード(#3)4のTAGメモリ及びTAGスワップバッファの索引結果がアドレス一致しないあるいはアドレス一致したが“I”の場合(有効データと一致条件が成立しなかった)には(図29ステップS216)、何もしない。尚、ノード(#0)1のTAGメモリ151及びTAGスワップバッファ152の登録、更新、及び追い出し制御は上述した図31及び図32に示す処理と同様である。
【0155】
他ノード(#3)4の分散共有メモリ46に対するライトについては、TAGメモリ、TAGメモリスワップバッファ及びCPU41〜44各々のキャッシュ41a,42a,43a,44aに対する制御が上述したノード(#0)1の処理と同様である。アクセス対象の分散共有メモリ46はリクエスト発行ノード以外のノードであり、ノード間のデータ転送経路のみが異なる。
【0156】
分散共有メモリ46から読出されたデータはメモリコントローラ44からデータ線304、クロスバー5、データ線301を介してメモリコントローラ15に転送される。このデータは判定回路155からリプライ制御回路156を介してバス110に送信され、リクエスト発行元のキャッシュ11aに登録される。
【0157】
また、他ノード(#3)4においてはキャッシュの“M”から“I”の無効化がノード(#0)1あるいは他ノードで発生したかによって、データリプライの経路が変わるのみである。
【0158】
近年、メインメモリの容量及びCPUに搭載されるキャッシュの容量は大容量化している。TAGメモリで全メモリ空間の情報を保持することはハードウェア投資が膨大となる。また、TAGメモリの容量を増やすことによって、制御が複雑化すると同時に、ハードウェア投資に見合った性能が確保されるとは限らない。
【0159】
本実施例ではTAGメモリ151と、TAGメモリ151からの掃き出し情報を保持するTAGスワップバッファ152とによって、TAGスワップバッファ152に有効な情報があり、TAGメモリ151のエリアが空いた際にTAGスワップバッファ152からの再登録を行っている。
【0160】
TAGスワップバッファ152はフル状態となるまで、バス110へのコヒーレントリクエストを発行しない。また、TAGスワップバッファ152内にTAGメモリ151への再登録対象が複数ある場合、TAGステータスが“S”よりも“P”であるものを優先する。
【0161】
TAGスワップバッファ152からバス110へのコヒーレントリクエストを発行する場合も、ステータスが“S”よりも“P”を優先させる機構を具備することによって、各ノード内のバスへの負荷を低減し、TAGメモリ151を有効に活用することから、CPU11〜14,……,41〜44に搭載されるキャッシュ11a,12a,13a,14a,……,41a,42a,43a,44aからの掃き出しが低減される。よって、システム全体の性能が向上する。
【0162】
【発明の効果】
以上説明したように本発明は、タグメモリと、タグメモリ151からの掃き出し情報を保持するタグスワップバッファとによって、タグスワップバッファに有効な情報があり、タグメモリのエリアが空いた際にタグスワップバッファからの再登録を行うことによって、バスへの負荷を減らすことができ、キャッシュのヒット率を上げてシステム全体の性能を向上させることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例による分散共有メモリ型マルチプロセッサシステムの構成を示すブロック図である。
【図2】図1のメモリコントローラの構成を示すブロック図である。
【図3】図2のTAGメモリの保持内容を示す図である。
【図4】図2のTAGスワップバッファの保持内容を示す図である。
【図5】図2のTAGメモリ及びTAGスワップバッファの制御機構を示すブロック図である。
【図6】図2のTAGメモリからの追い出し制御を示すフローチャートである。
【図7】図2のTAGスワップバッファからの追い出し制御を示すフローチャートである。
【図8】図2のTAGスワップバッファからTAGメモリへの再登録制御を示すフローチャートである。
【図9】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図10】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図11】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図12】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図13】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図14】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図15】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図16】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図17】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図18】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図19】図1の分散共有メモリに対するリード処理を示すフローチャートである。
【図20】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図21】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図22】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図23】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図24】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図25】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図26】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図27】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図28】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図29】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図30】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図31】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図32】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【図33】図1の分散共有メモリに対するライト処理を示すフローチャートである。
【符号の説明】
1〜4 ノード(#0〜#3)
5 クロスバー
6−1〜6−4 I/O装置
11〜14,41〜44 CPU
11a,12a,13a,
14a,41a,42a,
43a,44a キャッシュ
15,45 メモリコントローラ
16,46 分散共有メモリ
151 TAGメモリ
152 TAGスワップバッファ
153 TAG制御回路
154 リクエスト制御部
155,162,164,
166 判定回路
156 リプライ制御回路部
161 レジスタ
163,165 選択回路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a distributed shared memory multiprocessor system and a tag control method used therefor, and more particularly, to a tag (hereinafter referred to as TAG) control method used in a shared memory multiprocessor system.
[0002]
[Prior art]
Conventionally, in a shared memory multiprocessor system, multiple processors store a copy of the system memory in a cache. In this case, the shared memory multiprocessor system requires a cache coherent mechanism in order to maintain the consistency between the data stored in the plurality of caches of the same memory line and the memory.
[0003]
A TAG (or directory) is provided to realize this cache coherent mechanism. The TAG stores the address of each memory line and the state of the system memory and the cache.
[0004]
In recent years, the capacity of caches installed in computer systems for accelerating access to system memory has been greatly increased. In addition, the system memory has been greatly increased in capacity. The TAG stores a large amount of information as the system memory and the cache increase in capacity, thereby improving the throughput of the entire system.
[0005]
[Problems to be solved by the invention]
However, in the conventional shared memory multiprocessor system described above, if a TAG having the same capacity as the system memory or the cache is installed, the amount of hardware increases, the cost burden increases, and the control complexity increases. However, the access speed is slow and the control becomes complicated.
[0006]
Therefore, an object of the present invention is to solve the above-mentioned problems, reduce the load on the bus, increase the cache hit rate, and improve the performance of the entire system, and a distributed shared memory multiprocessor system and It is to provide a tag control method used therefor.
[0007]
[Means for Solving the Problems]
  A distributed shared memory multiprocessor system according to the present invention holds a plurality of central processing units having a cache, a memory controller for processing a request from one of the central processing unit and the input / output device, and information on the cache A distributed shared memory type multiprocessor system including a plurality of nodes configured by a bus connection between the central processing unit and the memory controller,
  An inter-node address bus that connects each of the plurality of nodes; and a crossbar that connects each of the plurality of nodes and performs processing of data between the plurality of nodes and processing of a request from the input / output device.,
  The memory controller includes a tag memory that holds information on the cache, a tag swap buffer that holds tag flush information in the tag memory, a tag control circuit that controls a request issued from the node, and each of the nodes A request control unit that controls a request to access, and a reply control circuit that controls reply data in the node;
  The tag control circuit includes a mechanism for indexing, registering, invalidating, and issuing a coherent request for the tag memory and the tag swap buffer.
  A determination circuit for determining an index result of the tag memory and the tag swap buffer;
  The determination circuit invalidates information in the tag swap buffer and re-registers in the tag memory when detecting that the area of the tag memory is an invalidation target and the same set address exists in the tag swap buffer. Doneing.
[0008]
  A tag control method according to the present invention includes a plurality of central processing units having a cache, a memory controller that processes a request from one of the central processing unit and the input / output device, and a distributed shared memory that holds information of the cache A distributed shared memory multiprocessor system tag control method including a plurality of nodes formed by bus connection between the central processing unit and the memory controller,
  Each of the plurality of nodes is connected by an inter-node address bus and a crossbar that performs processing of data between the plurality of nodes and processing of a request from the input / output device,
  In the tag memory holding the cache information and the tag swap buffer holding the tag sweep information in the tag memory, the address and status information registered in the cache in the node are held,
  When newly registering the tag memory area in the tag swap buffer, the address and status information obtained by swapping any one of the areas are stored.,
  When determining the index result of the tag memory and the tag swap buffer, when it is detected that the area of the tag memory is an invalidation target and the same set address exists in the tag swap buffer, the tag swap buffer Invalidate information and re-register in the tag memorying.
[0009]
That is, the distributed shared memory type multiprocessor system of the present invention has a bus connection between a plurality of CPUs (central processing units) having a cache and each CPU and a memory controller, and the CPU or I / O (input / output). Each node is composed of a memory controller that processes requests from a device and a distributed shared memory, and each of the above nodes is connected via an inter-node address bus and a crossbar. At the same time as processing data, requests from I / O devices are processed.
[0010]
The memory controller of each node includes a tag memory (hereinafter referred to as “TAG”) that holds information on a cache mounted on each CPU in the node, a TAG swap buffer that holds TAG flush information, and a node or other node. TAG control circuit comprising a mechanism for controlling issued requests and issuing index, registration, invalidation and coherent requests for TAG memory and TAG swap buffer, request control unit for controlling requests to access each node, and each And a reply control circuit for controlling reply data in the node.
[0011]
The TAG memory and the TAG swap buffer hold the address and status information registered in the CPU cache in each node. The TAG swap buffer holds the address and status information obtained by swapping any one area when a new registration is performed in a state where the area of the TAG memory is fully registered.
[0012]
When the TAG control circuit receives the TAG index request, the TAG memory and the TAG swap buffer are simultaneously indexed, the addresses held in the TAG memory or the TAG swap buffer match, and the status information is valid (P or S). The TAG control circuit issues a request to the bus by performing registration, update, and invalidation according to each index result.
[0013]
In the circuit for determining the index result of the TAG memory and the TAG swap buffer, if it is determined that the area of the TAG memory is the object to be invalidated and the same set address exists in the TAG swap buffer, the information of the TAG swap buffer is invalidated. And re-register in the TAG memory.
[0014]
In the above processing, when a plurality of identical set addresses exist in the TAG swap buffer, re-registration is performed with priority given to the status information “P” indicating any one of the states of the cache. The TAG swap buffer determines whether there is valid information based on the status information held in each entry, reads out from the TAG swap buffer when the buffer is full, and a swap from the TAG memory occurs, and a TAG control circuit Issue an invalidate request to the bus.
[0015]
In each determination circuit that determines the index results of the TAG memory and the TAG swap buffer, the status information is determined, and a plurality of evictions (swaps) from the TAG memory are cached in the system from the status information “P”. Priority is given to “S” indicating a possible state or a state where caching is not performed.
[0016]
Similarly to the above, in each determination circuit that determines the index result of the TAG memory and the TAG swap buffer, the status information is written back from the cache by giving priority to “S” over “P” as the status information. Reduce processing.
[0017]
Similarly to the above, if it is determined that all the statuses of the TAG swap buffer are “P” and the status information to be swapped from the TAG memory is “S”, the status is not stored in the TAG swap buffer but is stored in the bus. Issue an invalidate request.
[0018]
Therefore, as described above, by controlling the TAG memory and the TAG swap buffer, coherent control between a plurality of nodes can be performed, and at the same time, the entry of the TAG memory can be effectively used, and the CPU cache can be used. Since the data sweeping operation registered with the status information “M” is reduced, the cache hit rate is increased, and the load on the bus is suppressed, so that the performance of the entire system is improved.
[0019]
Therefore, in the distributed shared memory multiprocessor system of the present invention, the TAG memory and the TAG swap buffer that can be mounted on the LSI (Large Scale Integrated circuit) are fully utilized, the load on the bus is reduced, and the cache hit rate is increased. As a result, the performance of the entire system is improved.
[0020]
In recent years, the capacity of the main memory and the capacity of the cache mounted on the memory CPU have increased. Holding information in the entire memory space with the TAG memory requires a huge amount of hardware investment. Further, an increase in the capacity of the TAG memory complicates the control, and at the same time, does not always ensure the performance commensurate with the hardware investment.
[0021]
In the distributed shared memory type multiprocessor system of the present invention, the TAG swap buffer that holds the swept information from the TAG memory and the TAG memory has effective information in the TAG swap buffer. When the TAG memory area is free, the TAG Re-register from the swap buffer.
[0022]
The TAG swap buffer does not issue a coherent request to the bus until it is full. Further, when there are a plurality of re-registration targets in the TAG swap buffer, the one with the TAG status “P” is prioritized over “S”. Even when a coherent request is issued from the TAG swap buffer to the bus, the load on the bus in each node is reduced and the TAG memory is enabled by providing a mechanism that prioritizes the status “P” over “S”. By utilizing, the flushing from the cache mounted on the CPU is reduced. Therefore, the performance of the entire system is improved.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a distributed shared memory multiprocessor system according to an embodiment of the present invention. In FIG. 1, a distributed shared memory multiprocessor system according to an embodiment of the present invention includes nodes (# 0 to # 3) 1 to 4, a crossbar 5, and I / O (input / output) devices 6-1 to 6-6. -4.
[0024]
Each of the nodes (# 0 to # 3) 1 to 4 includes a plurality of CPUs (central processing units) 11 to 14,..., 41 to 44, a memory controller 15,. , 46. In FIG. 1, only the configurations of the nodes (# 0, # 3) 1 and 4 are illustrated, and the configurations of the other nodes (# 1, # 2) 2 and 3 are omitted. The configuration of the nodes (# 1, # 2) 2, 3 is the same as the configuration of the nodes (# 0, # 3) 1, 4.
[0025]
The CPUs 11-14,..., 41-44 have caches 11a, 12a, 13a, 14a,..., 41a, 42a, 43a, 44a, respectively, and the memory controller 15 via the buses 110,. ,..., 45 are connected. The memory controllers 15, ..., 45 process requests from the CPUs 11-14, ..., 41-44 or the I / O devices 6-1 to 6-4.
[0026]
The crossbar 5 processes data between the plurality of nodes 1 to 4 via the data lines 301,..., 304, and simultaneously processes requests from the plurality of I / O devices 6-1 to 6-4.
[0027]
FIG. 2 is a block diagram showing the configuration of the memory controller 15 of FIG. In FIG. 2, only the configuration of the memory controller 15 is illustrated, but the memory controllers of the nodes (# 1, # 2) 2 and 3 and the memory controller 45 of the node (# 3) 4 are the same as the memory controller 15. It has a configuration.
[0028]
The memory controller 15 includes a tag (hereinafter referred to as TAG) memory 151, a TAG swap buffer 152, a TAG control circuit 153, a request control unit 154, a determination circuit 155, and a reply control circuit unit 156. .
[0029]
FIG. 3 is a diagram showing the contents held in the TAG memory 151 of FIG. In FIG. 3, the TAG memory 151 holds a CPU cache status, a code, and an outline.
[0030]
The CPU cache status “M (Modified)” has a code “11” and its outline is “only caching in the system. It is not a copy of the shared memory”. The CPU cache status “E (Exclusive)” has a code of “10”, and its outline is “the only caching in the system and has a copy of the shared memory”.
[0031]
The CPU cache status “S (Shared)” has a code “01” and its outline is “There may be multiple caches in the system, and there is a copy of the shared memory”. . The CPU cache status “I (Invalid)” has a code “00” and its outline is “no caching”.
[0032]
FIG. 4 is a diagram showing the contents held in the TAG swap buffer 152 of FIG. In FIG. 4, the TAG swap buffer 152 holds a TAG status, a code, and a CPU cache status.
[0033]
The TAG status “P (Private)” has a code “11” and a CPU cache status “M / E / S / I status”. The TAG status “S (Share)” has a code “10” and a CPU cache status “S / I status”. The TAG status “U (Uncached)” has a code “00” and a CPU cache status “I (not cached)”. In other words, the TAG status “P” indicates any one of the CPU cache statuses, and the TAG status “S” indicates that “there is a possibility that a plurality of caches are in the system, and there is a copy of the shared memory”. Indicates a status or “not caching” status.
[0034]
The memory controller 15 will be described in detail with reference to FIGS.
[0035]
The TAG memory 151 holds information on the caches 11a, 12a, 13a, and 14a mounted on the CPUs 11 to 14 in the node 1. The TAG swap buffer 152 holds TAG flush information. The determination circuit 155 determines requests / replies issued from the other nodes 2 to 4 or the I / O devices 6-1 to 6-4.
[0036]
The transfer control of the TAG control circuit 153 is performed by the determination circuit 155, and the TAG control circuit 153 has a mechanism for issuing an index, registration, invalidation, and coherent request for the TAG memory 151 and the TAG swap buffer 152. The request control unit 154 controls a request for accessing each of the nodes (# 0 to 3) 1 to 4. The reply control circuit unit 156 controls reply data in each of the nodes 1 to 4.
[0037]
The TAG memory 151 and the TAG swap buffer 152 of each of the nodes 1 to 4 are connected to the caches 11a, 12a, 13a of the CPUs 11 to 14,. 14a,..., 41a, 42a, 43a, 44a, and the registered address and status information are held.
[0038]
The TAG swap buffer 152 holds the address and status information obtained by swapping any one area when a new registration is performed in a state where the area of the TAG memory 151 is fully registered.
[0039]
When the TAG control circuit 153 receives the TAG index request, the TAG control circuit 153 simultaneously indexes the TAG memory 151 and the TAG swap buffer 152, the addresses held in the TAG memory 151 or the TAG swap buffer 152 match, and status information (hereinafter referred to as TAG). If the status information of the swap buffer 152 (see FIG. 4) is valid (“P” or “S”), registration, update, and invalidation are performed according to the index results, and requests are issued to the bus 110 as necessary. I do.
[0040]
FIG. 5 is a block diagram showing a control mechanism of the TAG memory 151 and the TAG swap buffer 152 of FIG. In FIG. 5, the control mechanism of the TAG memory 151 and the TAG swap buffer 152 is targeted from the register 161, the determination circuits 162, 164, and 166 that determine the index results of the TAG memory 151 and the TAG swap buffer 152, and the determination results. It is composed of selection circuits 163 and 165 for selecting data, and is controlled as follows. Here, the TAG memory 151 is a generally designed nWAY • set associative memory.
[0041]
The determination circuit 162 determines whether the valid entry (“P” or “S”) of the TAG swap buffer 152 is full, “1” when it is full, and “0” when it is not full. To 153.
[0042]
The determination circuit 164 determines whether the valid entry (status is “P” or “S”) in the TAG swap buffer 152, the set address match, and the key address match when receiving the TAG index request. If they do not match, “0” is transmitted.
[0043]
The determination circuit 166 outputs a matching condition with the key address and status information registered in the TAG memory 151. The determination circuit 166 also determines whether the area for the set address of the index request is fully used.
[0044]
The selection circuit 163 selects the update / invalidation processing target based on the index request from the result of the determination circuit 164 described above. The selection circuit 163 selects one of the “address + status” to be re-registered from the TAG swap buffer 152 into the TAG memory 151 or to be evicted from the TAG swap buffer 152.
[0045]
The selection circuit 165 selects a target for update, registration, and invalidation processing by an index request from the result of the determination circuit 166 described above. Further, the selection circuit 165 selects the target to be evicted from the TAG memory 151 when evicting processing is required from the TAG memory 151 (when the effective area “P” or “S” is stored in the full area for the set address). select.
[0046]
Further, the selection circuit 165 selects one of the “address + status” to be re-registered from the TAG swap buffer 152 to the TAG memory 151 or to be evicted from the TAG swap buffer 152.
[0047]
FIG. 6 is a flowchart showing eviction control from the TAG memory 151 of FIG. The eviction control from the TAG memory 151 will be described with reference to FIG. 2, FIG. 5, and FIG. Hereinafter, although the node (# 0) 1 will be described, the eviction control from the TAG memory in the other nodes (# 1 to # 3) 2 to 4 is the same as this.
[0048]
When the memory controller 15 does not match the address from the result of the determination circuit 166 with respect to the TAG index request and the valid information is fully stored in the area corresponding to the set address, new registration is required (step S1 in FIG. 6). To S4), when only "S" is present (step S5 in FIG. 6), any one is selected at random, and it is expelled (step S6 in FIG. 6).
[0049]
When “S” and “P” coexist (step S7 in FIG. 6), the memory controller 15 preferentially selects one of “S” and drives it out (step S8 in FIG. 6). In addition, when only “P” is present (step S9 in FIG. 6), the memory controller 15 selects one at random and drives it out (step S10 in FIG. 6).
[0050]
FIG. 7 is a flowchart showing the eviction control from the TAG swap buffer 152 of FIG. The eviction control from the TAG swap buffer 152 will be described with reference to FIG. 2, FIG. 5, and FIG. Hereinafter, although the node (# 0) 1 will be described, the eviction control from the TAG swap buffer in the other nodes (# 1 to # 3) 2 to 4 is the same as this.
[0051]
When the TAG swap buffer 152 is full and there is an eviction from the TAG memory 151 (steps S11 and S12 in FIG. 7), the memory controller 15 determines that the TAG swap buffer 152 is only “S” and the TAG memory When the target to be evicted from 151 is “S” or “P” (step S13 in FIG. 7), any “S” in the TAG swap buffer 152 is preferentially evicted (step S14 in FIG. 7).
[0052]
In the memory controller 15, when “S” and “P” are mixed in the TAG swap buffer 152 and the eviction target from the TAG memory 151 is “S” or “P” (step S 15 in FIG. 7), the TAG swap buffer Either “S” of 152 is preferentially driven out (step S16 in FIG. 7).
[0053]
When the TAG swap buffer 152 is only “P” and the eviction target from the TAG memory 151 is “P” (step S17 in FIG. 7), the memory controller 15 evoke any “P” in the TAG swap buffer 152 ( FIG. 7 step S18). Note that if the target to be evicted from the TAG memory 151 is “S” (step S19 in FIG. 7), the memory controller 15 issues it directly to the bus 110 (step S20 in FIG. 7).
[0054]
FIG. 8 is a flowchart showing re-registration control from the TAG swap buffer 152 of FIG. 2 to the TAG memory 151. The re-registration control from the TAG swap buffer 152 to the TAG memory 151 will be described with reference to FIG. 2, FIG. 5, and FIG. Hereinafter, although the node (# 0) 1 will be described, the re-registration control from the TAG swap buffer to the TAG memory in the other nodes (# 1 to # 3) 2 to 4 is the same as this.
[0055]
When the TAG memory 151 is invalidated “I” by the determination circuit 166 and the result of the determination circuit 164 is “S” or “P”, the memory controller 15 has an address match of “S” or “P” (step in FIG. 8). S21, S22), when only “S” exists in the TAG swap buffer 152 (step S23 in FIG. 8), one of “S” is selected by the selection circuit 163 and re-registered in the TAG memory 151. (FIG. 8, step S24).
[0056]
When the target existing in the TAG swap buffer 152 is “S” or “P” (step S25 in FIG. 8), the memory controller 15 selects one of “P” with priority by the selection circuit 163 and selects the TAG memory. 151 is registered again (step S26 in FIG. 8).
[0057]
Therefore, as described above, by controlling the TAG memory 151 and the TAG swap buffer 152, coherent control between a plurality of nodes can be performed, and at the same time, the entry of the TAG memory 151 can be effectively used. The cache 11a to 14a of the CPUs 11 to 14 reduce the data sweeping operation registered with the status information “M” (refer to FIG. 4 for cache status information below), so the hit rate of the caches 11a to 14a is increased. In addition, since the load on the bus 110 can be suppressed, the performance of the entire system is improved.
[0058]
9 to 19 are flowcharts showing the read processing for the distributed shared memories 16 and 46 shown in FIG. 1, and FIGS. 20 to 33 are flowcharts showing the write processing for the distributed shared memories 16 and 46 shown in FIG. The read processing and write processing for the distributed shared memories 16 and 46 will be described with reference to FIGS.
[0059]
In this embodiment, when viewed from the node (# 0) 1, the read to the distributed shared memory 16 of the own node, the read to the distributed shared memory 46 of the other node (# 3) 4, There is a write to the distributed shared memory 46 of the other node (# 3) 4.
[0060]
Note that reading and writing to the distributed shared memory of other nodes (# 1, # 2) 2 and 3 are the same as reading and writing to the distributed shared memory 46 of other nodes (# 3) 4. Regarding the operation description, the status of data to be registered, updated, or invalidated in the caches (in this embodiment, the cache is a store-in cache) 11a to 14a, the TAG memory 151, and the TAG swap buffer 152 is shown in FIG. 3 and FIG. 4 shall be referred to.
[0061]
First, reading from the distributed shared memory 16 of the own node (# 0) 1 will be described. In this case, the request issuer is the CPU 11. Even when issued from the CPUs 12 to 14 in the own node (# 0) 1, the cache control in each of the CPUs 12 to 14 and the operation of requests related thereto are assumed to be the same as the processing of the CPU 11.
[0062]
In the CPU 11, when the data to be accessed is registered as “M” in the cache 11a (step S31 in FIG. 9), the cache 11a is hit and the data in the cache 11a is returned to the CPU 11 (step S32 in FIG. 9). ), The read request is completed.
[0063]
In the CPU 11, when the data to be accessed is registered with “E” in the cache 11 a (step S 33 in FIG. 9), the cache 11 a is hit and the data in the cache 11 a is returned to the CPU 11 (step S 32 in FIG. 9). ), The read request is completed.
[0064]
In the CPU 11, when the access target data is registered with “S” in the cache 11 a (step S 34 in FIG. 9), the cache 11 a is hit and the data in the cache 11 a is returned to the CPU 11 (step S 32 in FIG. 9). ), The read request is completed.
[0065]
In the CPU 11, when the access target data is not registered in the cache 11a (step S35 in FIG. 9), the cache 11a issues a bus acquisition request to the bus 110 (step S36 in FIG. 9). (Step S37 in FIG. 9), a line read request is issued (Step S38 in FIG. 9).
[0066]
In the above line read request, when the access target data is registered as “M” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (step S39 in FIG. 10). The caches 12a, 13a, and 14a write back (data reply) the data registered with “M” in the bus 110 (step S40 in FIG. 10).
[0067]
The caches 12a, 13a, and 14a that have issued the write-back are invalidated and set to “I” (step S41 in FIG. 10). The above write back is transmitted to the distributed shared memory 16 via the request control unit 154 (step S42 in FIG. 10). Since the cache in the same node (# 0) 1 is already in the “M” state, the TAG status registered in the TAG memory 151 or the TAG swap buffer 152 remains “P” (step S43 in FIG. 10). .
[0068]
The cache 11a receives the write-back data as reply data via the bus 110, registers it as “E”, and returns the data to the CPU 11 (step S44 in FIG. 10). Further, the above write-back data is also transmitted to the distributed shared memory 16 of the own node (# 0) 1 and the contents thereof are updated. This completes the read process.
[0069]
In the above line read request, when the access target data is registered as “E” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (step S45 in FIG. 11). The caches 12a, 13a, and 14a are updated to “S” (step S46 in FIG. 11).
[0070]
The line read request is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154 (step S47 in FIG. 11). The TAG control circuit 153 indexes the TAG memory 151 and the TAG swap buffer 152 (step S48 in FIG. 11), and updates the access target status to “S” from the output of the determination circuit 164 or the determination circuit 166 (step S49 in FIG. 11). .
[0071]
The data reply read from the distributed shared memory 16 by the line read request is transmitted to the request issuing cache 11a via the reply control circuit 156 and the bus 110, registered as “S”, and returns the data to the CPU 11. (FIG. 11, step S50), the read process is completed.
[0072]
In the above line read request, when the access target data is registered as “S” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (step S51 in FIG. 12). The cache is updated to “S” (step S52 in FIG. 12).
[0073]
The line read request is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154 (step S53 in FIG. 12). The TAG control circuit 153 does not update the TAG memory 151 and the TAG swap buffer 152 (step S54 in FIG. 12).
[0074]
Further, the data reply read from the distributed shared memory 16 by the line read request is transmitted to the cache 11a of the request issuer via the reply control circuit 156 and the bus 110, registered with “S”, and returns the data to the CPU 11. (Step S55 in FIG. 12), the read process is completed.
[0075]
In the above line read request, when all of the caches 12a, 13a and 14a of the CPUs 12 to 14 connected to the bus 110 have not registered access target data (step S56 in FIG. 13), the line read request is The data is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154 (step S57 in FIG. 13).
[0076]
The TAG control circuit 153 issues a line request to the inter-node address bus 200, and transfers the line request to the memory controllers of the other nodes (# 1 to # 3) 2 to 4 (step S58 in FIG. 13).
[0077]
When the TAG control circuit of each memory controller of each of the other nodes (# 1 to # 3) 2 to 4 receives a line request from another node (step S71 in FIG. 14), the TAG memory and the TAG swap buffer are indexed (FIG. 14). Step S72). Hereinafter, the processing for each index result will be described, but the processing will be described with respect to the node (# 3) 4. However, the nodes (# 1, 2) 2 and 3 perform the same operation as the node (# 3) 4.
[0078]
When the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 matches the address and is “P” (step S73 in FIG. 14), the TAG control control circuit sends a line read & invalidate to the bus 140. A request is issued (step S74 in FIG. 14), and the access target of the TAG memory or the TAG swap buffer of the node (# 3) 4 is invalidated (step S75 in FIG. 14).
[0079]
In the node (# 3) 4, the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 are indexed (step S76 in FIG. 14). If the index result is “M” (step S77 in FIG. 14), “M” is registered. The cache that is writing writes the data back to the bus 140 and transfers it to the request control unit (step S78 in FIG. 14). The cache in which “M” is registered is invalidated (step S79 in FIG. 14).
[0080]
The write back is transferred as a data reply to the crossbar 5 via the data line 304 (step S80 in FIG. 14), and is transferred to the memory controller 15 of the node (# 0) 1 via the data line 301.
[0081]
The determination circuit 155 of the memory controller 15 transfers the data reply transferred via the data line 301 to the reply control circuit 156 and the request control unit 154 (steps S59 and S60 in FIG. 13). The reply control circuit 156 transmits a data reply to the CPU 11 on the bus 110, and the cache 11a registers “E” (step S61 in FIG. 13). The data reply is returned to the CPU 11 and the read process is completed.
[0082]
On the other hand, the request controller 154 of the memory controller 15 transfers the data reply to the TAG control circuit 153 and indexes the TAG memory 151 and the TAG swap buffer 152 (step S101 in FIG. 17). Here, the index result of the TAG memory 151 is as follows depending on the result of the determination circuit 166 or the output of the determination circuit 164 that determines the index result of the TAG swap buffer 152.
[0083]
If there is an empty area in the access target area of the TAG memory 151 (step S102 in FIG. 17), the key address and status “P” are registered in the empty area (step S103 in FIG. 17).
[0084]
If all the access target areas of the TAG memory 151 are registered with “P” (step S104 in FIG. 17), one of the areas is expelled to the TAG swap buffer 152, and instead the data reply key address and status “P” "Is registered (step S105 in FIG. 17).
[0085]
When the access target area of the TAG memory 151 is filled with “P” or “S” (step S106 in FIG. 17), either “S” is pushed out to the TAG swap buffer 152, and instead a data reply key. The address and status “P” are registered (step S107 in FIG. 17).
[0086]
If all the access target areas of the TAG memory 151 are registered as “S” (step S108 in FIG. 17), any area is expelled to the TAG swap buffer 152, and instead the key address and status “P” of the data reply "Is registered (step S109 in FIG. 17).
[0087]
In the above processing, when the TAG swap buffer 152 is full from the result of the determination circuit 164 (step S110 in FIG. 18), if all stored in the TAG swap buffer 152 are “P” (step S111 in FIG. 18). Then, any “P” is driven out (step S112 in FIG. 18). The TGA control circuit 153 issues an invalid request to the bus 110 with the address to be evicted (step S113 in FIG. 18). The operation of the invalidate request will be described below.
[0088]
If “M” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalidate request (step S121 in FIG. 19), write back to the bus 110, Invalidation “I” is performed (step S122 in FIG. 19). The write back is routed to the distributed shared memory 16 to be accessed via the request control unit 154, and the contents of the memory are updated (step S123 in FIG. 19).
[0089]
If “E” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalidate request (step S124 in FIG. 19), the cache is invalidated “I”. "(Step S125 in FIG. 19).
[0090]
If “S” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalidate request (step S126 in FIG. 19), the cache is invalidated “I”. "(Step S125 in FIG. 19).
[0091]
If the address of the invalidate request is not registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 (step S127 in FIG. 19), nothing is done.
[0092]
The node (# 3) 4 indexes the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 (step S76 in FIG. 14). If the index result is “E” (step S87 in FIG. 16), “E” is registered. The cache that is being used is invalidated (step S88 in FIG. 16).
[0093]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16 and sent to the bus 110 via the reply control circuit 156 (steps S59 and S62 in FIG. 13). The cache 11a registers the data reply with “E”, returns the data to the CPU 11 (step S63 in FIG. 13), and the read processing is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 17 and 18 described above.
[0094]
In the node (# 3) 4, the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 are indexed (step S76 in FIG. 14). If the index result is “S” (step S89 in FIG. 16), “S” is registered. The cache that is being used is invalidated (step S90 in FIG. 16).
[0095]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16 and sent to the bus 110 via the reply control circuit 156 (steps S59 and S62 in FIG. 13). The cache 11a registers the data reply with “E”, returns the data to the CPU 11 (step S63 in FIG. 13), and the read processing is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 17 and 18 described above.
[0096]
In the node (# 3) 4, the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 are indexed (step S76 in FIG. 14), and if no cache is hit (step S91 in FIG. 16), nothing is done.
[0097]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16 and sent to the bus 110 via the reply control circuit 156 (step S62 in FIG. 13). The cache 11a registers the data reply with “E”, returns the data to the CPU 11 (step S63 in FIG. 13), and the read processing is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 17 and 18 described above.
[0098]
When the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 is an address match and “S” (step S81 in FIG. 15), the TAG control control circuit sends a line read & invalidate request to the bus 140. Issue (step S82 in FIG. 15). The access target of the TAG memory or the TAG swap buffer of the node (# 3) 4 is invalidated “I” (step S83 in FIG. 15).
[0099]
Since the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 is “S”, the caches 41a, 42a, 43a, 44a on the bus 140 are “S” or “I”. If the index result is “S” (step S84 in FIG. 15), the cache in which “S” is registered is invalidated (step S90 in FIG. 16). If the index result is “I” (step S85 in FIG. 15), nothing is done. The registration, update, and eviction control of the TAG memory 151 and the TAG swap buffer 152 of the node (# 0) 1 are the same as the processes shown in FIGS. 17 and 18 described above.
[0100]
When the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 does not match the address or matches the address but is “I” (the matching condition is not satisfied with the valid data) (step in FIG. 15) S86), do nothing. The registration, update, and eviction control of the TAG memory 151 and the TAG swap buffer 152 of the node (# 0) 1 are the same as the processes shown in FIGS. 17 and 18 described above.
[0101]
Regarding the read to the distributed shared memory 46 of the other node (# 3) 4, the control of the cache 41a, 42a, 43a, 44a of each of the TAG memory, the TAG memory swap buffer, and the CPUs 41 to 44 is performed by the node (# 0) 1 described above. It is the same as the processing. The distributed shared memory 46 to be accessed is a node other than the request issuing node, and only the data transfer path between the nodes is different.
[0102]
Data read from the distributed shared memory 46 is transferred from the memory controller 45 to the memory controller 15 via the data line 304, the crossbar 5, and the data line 301. This data is transmitted from the determination circuit 155 to the bus 110 via the reply control circuit 156, and is registered in the cache 11a that issued the request.
[0103]
Further, in the other node (# 3) 4, only the data reply path changes depending on whether the invalidation of the cache from “M” to “I” occurs in the node (# 0) 1 or the other node.
[0104]
Next, writing to the distributed shared memory 16 of the own node (# 0) 1 will be described. In this case, the request issuer is the CPU 11. Even when issued from the CPUs 12 to 14 in the own node (# 0) 1, the cache control in each of the CPUs 12 to 14 and the operation of requests related thereto are assumed to be the same as the processing of the CPU 11.
[0105]
In the CPU 11, when the access target data is registered as “M” in the cache 11 a (step S 131 in FIG. 20), the cache 11 a is hit, the data in the cache 11 a is updated, and the status of the cache 11 a is “ M ”remains (step S132 in FIG. 20), and the write process is completed.
[0106]
In the CPU 11, when the data to be accessed is registered as “E” in the cache 11a (step S133 in FIG. 20), the cache 11a is hit, the data in the cache 11a is updated, and the status of the cache 11a is also “ M ″ is updated (step S134 in FIG. 20), and the write process is completed.
[0107]
In the CPU 11, when the access target data is registered with “S” in the cache 11 a (step S 135 in FIG. 20), the cache 11 a issues a bus acquisition request to the bus 110 (step S 137 in FIG. 20). Is acquired (step S138 in FIG. 20), a line read & invalidate request is issued (step S139 in FIG. 20).
[0108]
In the above line read & invalidate request, if the cache 11a is caching the write target with “S” (step S140 in FIG. 21), a memory line read & invalidate request is issued to the bus 110 (FIG. 21). Step S141).
[0109]
If any one of the store-in caches on the bus 110 is cached with “S” (step S142 in FIG. 21), it is invalidated and the registration of the cache 11a is invalidated “I” (step 21 in FIG. 21). S143).
[0110]
In parallel, the line read & invalidate request issued from the cache 11a is transferred to the TAG control circuit 153 via the request control unit 154 and issued to the inter-node address sharing bus 200 (step S144 in FIG. 21).
[0111]
In response to the transferred memory read & invalidate request, the TAG memory and the TAG swap buffer are indexed in the other nodes, and when the address coincides and “P” or “S” is detected (step S151 in FIG. 22), the invalidation “ I "(step S152 in FIG. 22), and an invalidate request is issued to the bus in the same node (step S153 in FIG. 22).
[0112]
Subsequently, in the other node, the cache registration cached in “S” is invalidated “I” (step S154 in FIG. 22), and the completion notification of the memory read & invalidate request is transmitted (step S155 in FIG. 22). Complete the index.
[0113]
In other nodes, when the index result of the TAG memory and the TAG swap buffer is “I” (step S156 in FIG. 22), nothing is done and a memory read & invalidate request completion notification is transmitted (step S155 in FIG. 22). To complete.
[0114]
When the TAG control circuit 153 receives the completion notification (snoop result) of the memory read & invalidate request issued to another node (step S145 in FIG. 21), the target area in either the TAG memory 151 or the TAG swap buffer 152 Is registered with “P” (step S146 in FIG. 21).
[0115]
Read reply data is read from the distributed shared memory 16 to which the address of the memory line read & invalidate request is mapped (step S147 in FIG. 21), and is returned to the cache 41a via the reply control circuit 156 (step S148 in FIG. 21). ).
[0116]
When the cache 11a receives the read reply data, it merges the read reply data with the write data and registers it as “M” (step S149 in FIG. 21), thereby completing the write process.
[0117]
In the CPU 11, when the data to be accessed does not match the address in the cache 11 a or the address matches but is invalidated “I” (step S 136 in FIG. 20), the cache 11 a issues a bus acquisition request to the bus 110. (Step S137 in FIG. 20) When the bus 110 has been acquired (Step S138 in FIG. 20), a line read & invalidate request is issued (Step S139 in FIG. 20).
[0118]
In the above line read & invalidate request, when the data to be accessed is registered as “M” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (FIG. 23). In step S161), the caches 12a, 13a, and 14a write back (data reply) “M” data to the bus 110 (step S162 in FIG. 23).
[0119]
The caches 12a, 13a, and 14a that issued the write-back are invalidated and set to “I” (step S163 in FIG. 23). The above write back is transmitted to the distributed shared memory 16 via the request control unit 154 (step S164 in FIG. 23). Since the cache in the same node (# 0) 1 is already in the “M” state, the TAG status registered in the TAG memory 151 or the TAG swap buffer 152 remains “P” (step S165 in FIG. 23). .
[0120]
When the cache 11a receives the write-back data as reply data via the bus 110, the cache 11a registers with “M” to update the data (step S166 in FIG. 23) and completes the write process.
[0121]
In the above line read & invalidate request, when the access target data is registered as “E” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (FIG. 24). In step S167), the caches 12a, 13a, and 14a are invalidated “I” (step S168 in FIG. 24), and the line read & invalidate request is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154. (Step S169 in FIG. 24).
[0122]
The TAG control circuit 153 indexes the TAG memory 151 and the TAG swap buffer 152 (step S170 in FIG. 24), and updates the access target status to “P” from the output of the determination circuit 164 or the determination circuit 166 (step S171 in FIG. 24). .
[0123]
The data reply read from the distributed shared memory 16 by the line read request is transmitted to the cache 11a that issued the request via the reply control circuit 156 and the bus 110, and the cache 11a merges with the write data and becomes “M”. Registration (step S172 in FIG. 24) completes the write process.
[0124]
In the above line read & invalidate request, when the access target data is registered as “S” in any of the caches 12a, 13a, and 14a of the CPUs 12 to 14 connected to the bus 110 (FIG. 25). In step S173), the cache is invalidated “I” (step S174 in FIG. 25).
[0125]
The line read & invalidate request is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154 (step S175 in FIG. 25). Further, since there is a possibility that the cache of another node is “S”, the TAG control circuit 153 issues an invalidate request to the inter-node address bus 200 (step S176 in FIG. 25).
[0126]
The memory controller of each node that has received the invalidate request (step S191 in FIG. 27) issues an invalidate request to the bus in the node (step S192 in FIG. 27). All the caches registered in “S” are invalidated “I” (step S193 in FIG. 27). If it is not cached (step S194 in FIG. 27), nothing is done. The area to be accessed in the TAG memory and the TAG swap buffer of the other node is invalidated “I” (step S195 in FIG. 27).
[0127]
The TAG control circuit 153 of the memory controller 15 in the own node (# 0) 1 updates the TAG memory 151 and the TAG swap buffer 152 to “P” (step S177 in FIG. 25).
[0128]
Further, the data reply read from the distributed shared memory 16 by the line read & invalidate request is transmitted to the request issuing source cache 11a via the reply control circuit 156 and the bus 110 (step S178 in FIG. 25). The cache 11a merges the data reply with the write data and registers it with “M” (step S179 in FIG. 25), and the write process is completed.
[0129]
In the above line read & invalidate request, when all of the caches 12a, 13a, 14a of the CPUs 12 to 14 connected to the bus 110 have not registered access target data (step S180 in FIG. 26), the line The read & invalidate request is transferred to the TAG control circuit 153 and the distributed shared memory 16 via the request control unit 154 (step S181 in FIG. 26).
[0130]
The TAG control circuit 153 issues a line read & invalidate request to the inter-node address bus 200 (step S182 in FIG. 26), and transfers the line request to the memory controllers of the other nodes (# 1 to # 3) 2 to 4.
[0131]
When the TAG control circuit of each of the memory controllers of the other nodes (# 1 to # 3) 2 to 4 receives a line request from the other node (step S201 in FIG. 28), the TAG memory and the TAG swap buffer are indexed (FIG. 28). Step S202). Hereinafter, the processing for each index result will be described, but the processing will be described with respect to the node (# 3) 4. However, the nodes (# 1, 2) 2 and 3 perform the same operation as the node (# 3) 4.
[0132]
When the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 matches the address and is “P” (step S203 in FIG. 28), the TAG control circuit issues an invalid request to the bus 140. (Step S204 in FIG. 28), the access target of the TAG memory or the TAG swap buffer of the node (# 3) 4 is invalidated “I” (Step S205 in FIG. 28).
[0133]
In the node (# 3) 4, the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 are indexed (step S206 in FIG. 28), and when the index result is “M” (step S207 in FIG. 28), “M” is registered. The cache that is writing writes the data back to the bus 140 and transfers it to the request controller (step S208 in FIG. 28). The cache registering “M” is invalidated “I” (step S209 in FIG. 28).
[0134]
The write-back is transferred as a data reply to the crossbar 5 via the data line 304 (step S210 in FIG. 28) and transferred to the memory controller 15 of the node (# 0) 1 via the data line 301.
[0135]
The determination circuit 155 of the memory controller 15 transfers the data reply to the reply control circuit 156 and the request control unit 154. The reply control circuit 156 transmits a data reply to the CPU 11 on the bus 110. The cache 11a merges the data reply and the write data and registers them with “M” (steps S183 and S184 in FIG. 26), and the write processing is completed.
[0136]
In the above process, the TAG control circuit 153 that issued the request receives the data reply and indexes the TAG memory 151 and the TAG swap buffer 152 in the same manner as the control of the TAG memory 151 and the TAG swap buffer 152 during the read operation. (FIG. 31, step S231). Here, the index result of the TAG memory 151 is as follows depending on the result of the determination circuit 166 or the output of the determination circuit 164 that determines the index result of the TAG swap buffer 152.
[0137]
If there is an empty area in the access target area of the TAG memory 151 (step S232 in FIG. 31), the key address and status “P” are registered in the empty area (step S233 in FIG. 31).
[0138]
If all the access target areas of the TAG memory 151 are registered as “P” (step S234 in FIG. 31), one of the areas is evicted to the TAG swap buffer 152, and the data reply key address and status “P” are used instead. "Is registered (step S235 in FIG. 31).
[0139]
When the access target area of the TAG memory 151 is filled with “P” or “S” (step S236 in FIG. 31), either “S” is pushed out to the TAG swap buffer 152, and instead a data reply key. The address and status “P” are registered (step S237 in FIG. 31).
[0140]
If all the access target areas of the TAG memory 151 are registered with “S” (step S238 in FIG. 31), one of the areas is expelled to the TAG swap buffer 152, and instead the key address and status “P” of the data reply "Is registered (step S239 in FIG. 31).
[0141]
In the above processing, when the TAG swap buffer 152 is full based on the result of the determination circuit 162 (step S240 in FIG. 32), if all stored in the TAG swap buffer 152 are “P” (step S241 in FIG. 32). , One of “P” is driven out (step S242 in FIG. 32). The TGA control circuit 153 issues an invalid request to the bus 110 with the address to be evicted (step S243 in FIG. 32). The operation for the invalid request will be described below.
[0142]
If “M” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalidate request (step S251 in FIG. 33), write back to the bus 110, Invalidation “I” is performed (step S252 in FIG. 33). The write back is routed to the distributed shared memory 16 to be accessed via the request control unit 154, and the contents of the memory are updated (step S253 in FIG. 33).
[0143]
If “E” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalid request (step S254 in FIG. 33), the cache is invalidated “I”. "(Step S255 in FIG. 33).
[0144]
If “S” is registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 for the address of the invalidate request (step S256 in FIG. 33), the cache is invalidated “I”. "(Step S255 in FIG. 33).
[0145]
If the address of the invalidate request is not registered in any of the caches 11a, 12a, 13a, and 14a on the bus 110 (step S257 in FIG. 33), nothing is done.
[0146]
In the node (# 3) 4, the caches 41a, 42a, 43a, 44a of the CPUs 41 to 44 are indexed (step S206 in FIG. 28), and when the index result is “E” (step S217 in FIG. 30), “E” is registered. The cache that has been invalidated is “I” (step S218 in FIG. 30).
[0147]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16, and sent to the bus 110 via the reply control circuit 156 (steps S183 and S185 in FIG. 26). The cache 11a merges the data reply and the write data and registers them as “M” (step S186 in FIG. 26), and the write process is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 31 and 32 described above.
[0148]
In the node (# 3) 4, the caches 41a, 42a, 43a and 44a of the CPUs 41 to 44 are indexed (step S206 in FIG. 28). If the index result is “S” (step S219 in FIG. 30), “S” is registered. The invalidated cache is “I” (step S220 in FIG. 30).
[0149]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16, and sent to the bus 110 via the reply control circuit 156 (steps S183 and S185 in FIG. 26). The cache 11a merges the data reply and the write data and registers them as “M” (step S186 in FIG. 26), and the write process is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 31 and 32 described above.
[0150]
In the node (# 3) 4, the caches 41a, 42a, 43a and 44a of the CPUs 41 to 44 are indexed (step S206 in FIG. 28), and if no cache is hit (step S221 in FIG. 30), nothing is done.
[0151]
In this case, in the memory controller 15, the data reply is read from the distributed shared memory 16, and sent to the bus 110 via the reply control circuit 156 (steps S183 and S185 in FIG. 26). The cache 11a merges the data reply and the write data and registers them as “M” (step S186 in FIG. 26), and the write process is completed. Note that the control and eviction control for the TAG memory 151 and the TAG swap buffer 152 are the same as the processing shown in FIGS. 31 and 32 described above.
[0152]
When the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 is an address match and “S” (step S211 in FIG. 29), the TAG control control circuit issues an invalid request to the bus 140 ( FIG. 29 step S212). The access target of the TAG memory or the TAG swap buffer of the node (# 3) 4 is invalidated “I” (step S213 in FIG. 29).
[0153]
Since the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 is “S”, the caches 41a, 42a, 43a, 44a on the bus 140 are “S” or “I”. When the index result is “S” (step S214 in FIG. 29), the cache in which “S” is registered is invalidated “I” (step S220 in FIG. 30). If the index result is “I” (step S215 in FIG. 29), nothing is done. The registration, update, and eviction control of the TAG memory 151 and the TAG swap buffer 152 of the node (# 0) 1 are the same as the processes shown in FIGS. 31 and 32 described above.
[0154]
If the index result of the TAG memory and the TAG swap buffer of the node (# 3) 4 does not match the address or matches the address but is “I” (the matching condition is not satisfied with the valid data) (step in FIG. 29) S216), do nothing. The registration, update, and eviction control of the TAG memory 151 and the TAG swap buffer 152 of the node (# 0) 1 are the same as the processes shown in FIGS. 31 and 32 described above.
[0155]
For writing to the distributed shared memory 46 of the other node (# 3) 4, the control of the TAG memory, the TAG memory swap buffer, and the caches 41a, 42a, 43a, 44a of each of the CPUs 41 to 44 of the node (# 0) 1 described above. It is the same as the processing. The distributed shared memory 46 to be accessed is a node other than the request issuing node, and only the data transfer path between the nodes is different.
[0156]
Data read from the distributed shared memory 46 is transferred from the memory controller 44 to the memory controller 15 via the data line 304, the crossbar 5, and the data line 301. This data is transmitted from the determination circuit 155 to the bus 110 via the reply control circuit 156, and is registered in the cache 11a that issued the request.
[0157]
Further, in the other node (# 3) 4, only the data reply path changes depending on whether the invalidation of the cache from “M” to “I” occurs in the node (# 0) 1 or the other node.
[0158]
In recent years, the capacity of the main memory and the capacity of the cache mounted on the CPU have been increased. Holding information in the entire memory space with the TAG memory requires a huge amount of hardware investment. In addition, increasing the capacity of the TAG memory complicates the control, and at the same time, does not necessarily ensure the performance commensurate with the hardware investment.
[0159]
In this embodiment, the TAG swap buffer 152 has effective information by the TAG memory 151 and the TAG swap buffer 152 that holds the swept information from the TAG memory 151. When the area of the TAG memory 151 becomes empty, the TAG swap buffer Re-registration from 152 is performed.
[0160]
The TAG swap buffer 152 does not issue a coherent request to the bus 110 until it is full. In addition, when there are a plurality of re-registration targets in the TAG memory 151 in the TAG swap buffer 152, priority is given to the one whose TAG status is “P” rather than “S”.
[0161]
Even when a coherent request from the TAG swap buffer 152 to the bus 110 is issued, the load on the bus in each node is reduced by providing a mechanism in which “P” is given priority over “S”. Since the memory 151 is effectively used, sweeping out from the caches 11a, 12a, 13a, 14a,..., 41a, 42a, 43a, 44a mounted on the CPUs 11 to 14,. . Therefore, the performance of the entire system is improved.
[0162]
【The invention's effect】
As described above, according to the present invention, the tag swap and the tag swap buffer that holds the swept information from the tag memory 151 have effective information in the tag swap buffer. By performing re-registration from the buffer, it is possible to reduce the load on the bus and to increase the cache hit rate and improve the performance of the entire system.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a distributed shared memory multiprocessor system according to an embodiment of the present invention.
2 is a block diagram showing a configuration of a memory controller in FIG. 1. FIG.
FIG. 3 is a diagram showing the contents held in the TAG memory of FIG. 2;
4 is a diagram showing the contents held in the TAG swap buffer of FIG. 2; FIG.
5 is a block diagram showing a control mechanism of the TAG memory and the TAG swap buffer in FIG. 2;
6 is a flowchart showing eviction control from the TAG memory of FIG. 2. FIG.
7 is a flowchart showing eviction control from the TAG swap buffer of FIG. 2; FIG.
FIG. 8 is a flowchart showing re-registration control from the TAG swap buffer of FIG. 2 to the TAG memory.
FIG. 9 is a flowchart showing a read process for the distributed shared memory in FIG. 1;
10 is a flowchart showing a read process for the distributed shared memory of FIG. 1. FIG.
FIG. 11 is a flowchart showing a read process for the distributed shared memory in FIG. 1;
12 is a flowchart showing a read process for the distributed shared memory in FIG. 1; FIG.
FIG. 13 is a flowchart showing a read process for the distributed shared memory of FIG. 1;
14 is a flowchart showing a read process for the distributed shared memory in FIG. 1. FIG.
15 is a flowchart showing a read process for the distributed shared memory of FIG. 1. FIG.
16 is a flowchart showing a read process for the distributed shared memory of FIG. 1. FIG.
FIG. 17 is a flowchart showing a read process for the distributed shared memory in FIG. 1;
FIG. 18 is a flowchart showing a read process for the distributed shared memory of FIG. 1;
FIG. 19 is a flowchart showing a read process for the distributed shared memory in FIG. 1;
20 is a flowchart showing a write process for the distributed shared memory in FIG. 1; FIG.
FIG. 21 is a flowchart showing a write process for the distributed shared memory in FIG. 1;
FIG. 22 is a flowchart showing a write process for the distributed shared memory in FIG. 1;
FIG. 23 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
24 is a flowchart showing a write process for the distributed shared memory in FIG. 1; FIG.
FIG. 25 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
FIG. 26 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
FIG. 27 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
FIG. 28 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
FIG. 29 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
30 is a flowchart showing a write process for the distributed shared memory in FIG. 1; FIG.
FIG. 31 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
32 is a flowchart showing a write process for the distributed shared memory in FIG. 1. FIG.
FIG. 33 is a flowchart showing a write process for the distributed shared memory of FIG. 1;
[Explanation of symbols]
1 to 4 nodes (# 0 to # 3)
5 Crossbar
6-1 to 6-4 I / O device
11-14, 41-44 CPU
11a, 12a, 13a,
14a, 41a, 42a,
43a, 44a cash
15, 45 Memory controller
16, 46 Distributed shared memory
151 TAG memory
152 TAG swap buffer
153 TAG control circuit
154 Request control unit
155, 162, 164
166 judgment circuit
156 reply control circuit section
161 registers
163,165 selection circuit

Claims (15)

キャッシュを具備する複数の中央処理装置と、前記中央処理装置及び入出力装置のいずれかからの要求を処理するメモリコントローラと、前記キャッシュの情報を保持する分散共有メモリとから構成され、前記中央処理装置と前記メモリコントローラとの間をバス接続してなる複数のノードを含む分散共有メモリ型マルチプロセッサシステムであって、
前記複数のノード各々を接続するノード間アドレスバスと、前記複数のノード各々を接続しかつ前記複数のノード間のデータの処理と前記入出力装置からの要求の処理とを行うクロスバーとを有し、
前記メモリコントローラは、前記キャッシュの情報を保持するタグメモリと、前記タグメモリにおけるタグ掃き出し情報を保持するタグスワップバッファと、前記ノードから発行されたリクエストを制御するタグ制御回路と、前記ノード各々にアクセスするリクエストを制御するリクエスト制御部と、前記ノード内のリプライデータを制御するリプライ制御回路とを含み、
前記タグ制御回路は、前記タグメモリ及び前記タグスワップバッファの索引、登録、無効化、コヒーレントリクエストの発行を行う機構を含み、
前記タグメモリ及び前記タグスワップバッファの索引結果を判定する判定回路を含み、
前記判定回路は、前記タグメモリのエリアが無効化対象であり、同一セットアドレスが前記タグスワップバッファに存在することを検出した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリへの再登録を行うことを特徴とする分散共有メモリ型マルチプロセッサシステム。
A plurality of central processing units having a cache; a memory controller that processes a request from either the central processing unit or the input / output device; and a distributed shared memory that holds information of the cache. A distributed shared memory multiprocessor system including a plurality of nodes formed by bus connection between a device and the memory controller,
An inter-node address bus that connects each of the plurality of nodes, and a crossbar that connects each of the plurality of nodes and performs data processing between the plurality of nodes and processing of requests from the input / output devices. And
The memory controller includes a tag memory that holds information on the cache, a tag swap buffer that holds tag flush information in the tag memory, a tag control circuit that controls a request issued from the node, and each of the nodes A request control unit that controls a request to be accessed, and a reply control circuit that controls reply data in the node;
The tag control circuit includes a mechanism for indexing, registering, invalidating, and issuing a coherent request for the tag memory and the tag swap buffer,
A determination circuit for determining an index result of the tag memory and the tag swap buffer;
The determination circuit invalidates information in the tag swap buffer and re-registers in the tag memory when detecting that the area of the tag memory is an invalidation target and the same set address exists in the tag swap buffer. distributed shared memory multi-processor system and performs.
前記タグメモリ及び前記タグスワップバッファは、前記ノード内の前記キャッシュに登録されたアドレス及びステータス情報を保持し、
前記タグスワップバッファは、前記タグメモリのエリアがフルに登録されている状態で新規登録する際に、いずれか1つのエリアをスワップしたアドレス及びステータス情報を保持することを特徴とする請求項1記載の分散共有メモリ型マルチプロセッサシステム。
The tag memory and the tag swap buffer hold address and status information registered in the cache in the node,
2. The tag swap buffer, when newly registering in a state where the area of the tag memory is fully registered, holds the address and status information obtained by swapping any one area. Distributed shared memory multiprocessor system.
前記タグ制御回路は、タグ索引リクエストの受信時に前記タグメモリ及び前記タグスワップバッファを同時に索引し、前記タグメモリ及び前記タグスワップバッファに保持されているアドレスが一致しかつステータス情報が有効の場合にそれぞれ索引結果に応じて登録、更新、無効化、前記バスへのリクエスト発行を行うことを特徴とする請求項1または請求項2記載の分散共有メモリ型マルチプロセッサシステム。The tag control circuit simultaneously indexes the tag memory and the tag swap buffer when a tag index request is received, and the addresses held in the tag memory and the tag swap buffer match and status information is valid. 3. The distributed shared memory multiprocessor system according to claim 1 , wherein registration, update, invalidation, and request issuance to the bus are performed according to each index result. 前記判定回路は、前記タグスワップバッファに有効な情報が存在しかつ前記タグメモリのエリアが空いた時に前記タグスワップバッファから前記タグメモリへの再登録を行うことを特徴とする請求項1から請求項3のいずれか記載の分散共有メモリ型マルチプロセッサシステム。The decision circuit, wherein the claim 1, characterized in that to re-registration in the tag memory from the tag swap buffer when valid information to the tag swap buffer is empty present and the tag memory area Item 4. The distributed shared memory multiprocessor system according to any one of Items 3 to 4 . 前記判定回路は、前記タグメモリのエリアが無効化対象でありかつ同一セットアドレスが前記タグスワップバッファに存在することを判定した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリに再登録することを特徴とする請求項1から請求項4のいずれか記載の分散共有メモリ型マルチプロセッサシステム。The determination circuit invalidates information of the tag swap buffer and re-registers it in the tag memory when it is determined that the area of the tag memory is to be invalidated and the same set address exists in the tag swap buffer. 5. The distributed shared memory type multiprocessor system according to claim 1 , wherein the distributed shared memory type multiprocessor system is used. 前記判定回路は、前記タグスワップバッファ中に複数の同一セットアドレスが存在した時に前記ステータス情報が前記キャッシュの全ての状態のいずれかを示す第1の値のものを優先して再登録することを特徴とする請求項1から請求項5のいずれか記載の分散共有メモリ型マルチプロセッサシステム。The determination circuit preferentially re-registers the status information having a first value indicating one of all the states of the cache when a plurality of identical set addresses exist in the tag swap buffer. 6. The distributed shared memory multiprocessor system according to claim 1 , wherein the distributed shared memory type multiprocessor system is used. 前記判定回路は、前記タグメモリ及び前記タグスワップバッファからの追い出し対象を前記ステータス情報が前記第1の値よりもシステム内で複数キャッシングしている可能性がある状態及びキャッシングしていない状態のいずれかを示す第2の値を優先することを特徴とする請求項6記載の分散共有メモリ型マルチプロセッサシステム。The determination circuit is in a state where there is a possibility that a plurality of status information is cached in the system from the tag memory and the tag swap buffer, and a state where the status information is not cached. 7. The distributed shared memory multiprocessor system according to claim 6, wherein the second value indicating the priority is given priority. 前記判定回路は、前記タグスワップバッファの全てのステータスが前記第1の値でかつ前記タグメモリからのスワップ対象のステータス情報が前記第2の値と判定した時に前記タグスワップバッファに保持しないようにしたことを特徴とする請求項7記載の分散共有メモリ型マルチプロセッサシステム。The determination circuit does not hold in the tag swap buffer when all the statuses of the tag swap buffer are determined to be the first value and the status information to be swapped from the tag memory is determined to be the second value. 8. The distributed shared memory multiprocessor system according to claim 7, wherein キャッシュを具備する複数の中央処理装置と、前記中央処理装置及び入出力装置のいずれかからの要求を処理するメモリコントローラと、前記キャッシュの情報を保持する分散共有メモリとから構成され、前記中央処理装置と前記メモリコントローラとの間をバス接続してなる複数のノードを含む分散共有メモリ型マルチプロセッサシステムのタグ制御方法であって、
前記複数のノード各々を、ノード間アドレスバスと、前記複数のノード間のデータの処理と前記入出力装置からの要求の処理とを行うクロスバーとによって接続し、
前記キャッシュの情報を保持するタグメモリ及び前記タグメモリにおけるタグ掃き出し情報を保持するタグスワップバッファに、前記ノード内の前記キャッシュに登録されたアドレス及びステータス情報を保持し、
前記タグスワップバッファに、前記タグメモリのエリアがフルに登録されている状態で新規登録する際に、いずれか1つのエリアをスワップしたアドレス及びステータス情報を保持し、
前記タグメモリ及び前記タグスワップバッファの索引結果を判定する際に、前記タグメモリのエリアが無効化対象であり、同一セットアドレスが前記タグスワップバッファに存在することを検出した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリへの再登録を行うことを特徴とするタグ制御方法。
A plurality of central processing units having a cache; a memory controller that processes a request from either the central processing unit or the input / output device; and a distributed shared memory that holds information of the cache. A tag control method for a distributed shared memory multiprocessor system including a plurality of nodes formed by bus connection between a device and the memory controller,
Each of the plurality of nodes is connected by an inter-node address bus and a crossbar that performs processing of data between the plurality of nodes and processing of a request from the input / output device,
The tag memory that holds the cache information and the tag swap buffer that holds the tag sweep information in the tag memory hold the address and status information registered in the cache in the node,
When newly registering the tag memory area with the tag memory area being fully registered in the tag swap buffer, the address and status information obtained by swapping any one of the areas are retained .
When determining the index result of the tag memory and the tag swap buffer, when it is detected that the area of the tag memory is an invalidation target and the same set address exists in the tag swap buffer, the tag swap buffer A tag control method characterized by invalidating information and performing re-registration in the tag memory .
タグ索引リクエストの受信時に前記タグメモリ及び前記タグスワップバッファを同時に索引し、前記タグメモリ及び前記タグスワップバッファに保持されているアドレスが一致しかつステータス情報が有効の場合にそれぞれ索引結果に応じて登録、更新、無効化、前記バスへのリクエスト発行を行うステップを含むことを特徴とする請求項9記載のタグ制御方法。When the tag index request is received, the tag memory and the tag swap buffer are simultaneously indexed, and the addresses held in the tag memory and the tag swap buffer coincide with each other and the status information is valid according to the index result. The tag control method according to claim 9 , further comprising a step of performing registration, update, invalidation, and request issuance to the bus. 前記索引結果を判定する際に、前記タグスワップバッファに有効な情報が存在しかつ前記タグメモリのエリアが空いた時に前記タグスワップバッファから前記タグメモリへの再登録を行うことを特徴とする請求項10記載のタグ制御方法。 Claims in determining the index results, and performs re-registration from the tag swap buffer when valid information to the tag swap buffer is empty present and the tag memory area to the tag memory Item 13. A tag control method according to Item 10 . 前記索引結果を判定する際に、前記タグメモリのエリアが無効化対象でありかつ同一セットアドレスが前記タグスワップバッファに存在することを判定した時に前記タグスワップバッファの情報を無効化しかつ前記タグメモリに再登録することを特徴とする請求項10または請求項11記載のタグ制御方法。When determining the index result, when it is determined that the area of the tag memory is to be invalidated and the same set address exists in the tag swap buffer, the information of the tag swap buffer is invalidated and the tag memory The tag control method according to claim 10 or 11 , wherein the tag control method is re-registered with the tag. 前記索引結果を判定する際に、前記タグスワップバッファ中に複数の同一セットアドレスが存在した時に前記ステータス情報が前記キャッシュの全ての状態のいずれかを示す第1の値のものを優先して再登録することを特徴とする請求項11から請求項12のいずれか記載のタグ制御方法。When determining the index result, when there are a plurality of identical set addresses in the tag swap buffer, the status information is re-prioritized with the first value indicating one of all the states of the cache. The tag control method according to claim 11, wherein the tag control method is registered. 前記索引結果を判定する際に、前記タグメモリ及び前記タグスワップバッファからの追い出し対象を前記ステータス情報が前記第1の値よりもシステム内で複数キャッシングしている可能性がある状態及びキャッシングしていない状態のいずれかを示す第2の値を優先することを特徴とする請求項13記載のタグ制御方法。 When determining the index result, we have state and caching the valid clusters the status information is likely to have multiple caching in the system than the first value from the tag memory and the tag swap buffer 14. The tag control method according to claim 13 , wherein priority is given to the second value indicating any of the non-existing states. 前記索引結果を判定する際に、前記タグスワップバッファの全てのステータスが前記第1の値でかつ前記タグメモリからのスワップ対象のステータス情報が前記第2の値と判定した時に前記タグスワップバッファに保持しないようにしたことを特徴とする請求項14記載のタグ制御方法。 When determining the index result, the tag swap buffer when the status information of the swap target of all status from said first value a and the tag memory of the tag swap buffer determines that the second value 15. The tag control method according to claim 14 , wherein the tag is not held.
JP2002121558A 2002-04-24 2002-04-24 Distributed shared memory multiprocessor system and tag control method used therefor Expired - Lifetime JP3678715B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002121558A JP3678715B2 (en) 2002-04-24 2002-04-24 Distributed shared memory multiprocessor system and tag control method used therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002121558A JP3678715B2 (en) 2002-04-24 2002-04-24 Distributed shared memory multiprocessor system and tag control method used therefor

Publications (2)

Publication Number Publication Date
JP2003316756A JP2003316756A (en) 2003-11-07
JP3678715B2 true JP3678715B2 (en) 2005-08-03

Family

ID=29537418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002121558A Expired - Lifetime JP3678715B2 (en) 2002-04-24 2002-04-24 Distributed shared memory multiprocessor system and tag control method used therefor

Country Status (1)

Country Link
JP (1) JP3678715B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4967087B2 (en) * 2007-11-01 2012-07-04 エヌイーシーコンピュータテクノ株式会社 Node controller, distributed shared memory type information processing apparatus, and cache coherency control method
JP5019222B2 (en) * 2007-11-13 2012-09-05 エヌイーシーコンピュータテクノ株式会社 Multiprocessor system
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter

Also Published As

Publication number Publication date
JP2003316756A (en) 2003-11-07

Similar Documents

Publication Publication Date Title
TWI443514B (en) Apparatus,system and method for replacing cache lines in a cache memory
US9176876B2 (en) Selective cache-to-cache lateral castouts
US8489819B2 (en) Victim cache lateral castout targeting
US8117397B2 (en) Victim cache line selection
JP4848771B2 (en) Cache coherency control method, chipset, and multiprocessor system
US8347036B2 (en) Empirically based dynamic control of transmission of victim cache lateral castouts
TWI393005B (en) Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains
US8225045B2 (en) Lateral cache-to-cache cast-in
US6073211A (en) Method and system for memory updates within a multiprocessor data processing system
US8949540B2 (en) Lateral castout (LCO) of victim cache line in data-invalid state
US20100235576A1 (en) Handling Castout Cache Lines In A Victim Cache
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US8700863B2 (en) Computer system having a cache memory and control method of the same
JP3661764B2 (en) Method and system for providing an eviction protocol in a non-uniform memory access computer system
US11550720B2 (en) Configurable cache coherency controller
US10579527B2 (en) Remote node broadcast of requests in a multinode data processing system
JP2002197073A (en) Cache coincidence controller
US20110082981A1 (en) Multiprocessing circuit with cache circuits that allow writing to not previously loaded cache lines
JP3678715B2 (en) Distributed shared memory multiprocessor system and tag control method used therefor
US7669013B2 (en) Directory for multi-node coherent bus
JP2020003959A (en) Information processing unit and arithmetic processing unit and control method of information processing unit
US10713169B2 (en) Remote node broadcast of requests in a multinode data processing system
US10387310B2 (en) Remote node broadcast of requests in a multinode data processing system
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations
KR100344065B1 (en) Shared memory multiprocessor system based on multi-level cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050510

R150 Certificate of patent or registration of utility model

Ref document number: 3678715

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100520

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110520

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110520

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120520

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120520

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130520

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 9

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

EXPY Cancellation because of completion of term