JP3404386B2 - メモリアクセスレイテンシ増加回避方式 - Google Patents

メモリアクセスレイテンシ増加回避方式

Info

Publication number
JP3404386B2
JP3404386B2 JP2001071315A JP2001071315A JP3404386B2 JP 3404386 B2 JP3404386 B2 JP 3404386B2 JP 2001071315 A JP2001071315 A JP 2001071315A JP 2001071315 A JP2001071315 A JP 2001071315A JP 3404386 B2 JP3404386 B2 JP 3404386B2
Authority
JP
Japan
Prior art keywords
request
memory read
local memory
control unit
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001071315A
Other languages
English (en)
Other versions
JP2002269064A (ja
Inventor
真一 嶋田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC 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 JP2001071315A priority Critical patent/JP3404386B2/ja
Publication of JP2002269064A publication Critical patent/JP2002269064A/ja
Application granted granted Critical
Publication of JP3404386B2 publication Critical patent/JP3404386B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のCPU(C
entral Processing Unit)カー
ド(各CPUカードは以下のaおよびbに示す特徴を備
えている)間を信号線で接続したNUMA(Non−U
niform Memory Access。不均一メ
モリアクセスモデル)型マルチプロセッサシステムにお
けるメモリアクセスレイテンシ増加回避方式に関する。
【0002】a.内蔵キャッシュを有するプロセッサを
1個または複数個有する。
【0003】b.他のCPUカード上のプロセッサから
もアクセス可能なメモリを有する(このために、複数の
CPUカード間が相互に信号線で接続されている)。
【0004】
【従来の技術】一般的に、NUMA型マルチプロセッサ
システムにおいては、メモリリードリクエストを発行す
るプロセッサを搭載するCPUカードとそのメモリリー
ドリクエストのリクエスト対象のメモリを搭載するCP
Uカードとが同一の場合に、「メモリライト(更新)リ
クエストや他のCPUカードからのメモリリードリクエ
ストとは異なるパスを使用してメモリアクセスレイテン
シを短くする」という制御が行われ、性能向上が図られ
ている。
【0005】このようなNUMA型マルチプロセッサシ
ステムには、コヒーレンシ制御のために、各メモリアク
セスリクエスト(メモリリードリクエストおよびメモリ
ライトリクエスト)から見て論理的に一意に決まるコヒ
ーレンシ制御ポイントが存在する。このコヒーレンシ制
御ポイントは、各CPUカードを接続する信号線からメ
モリアクセスリクエストを受け付けるコヒーレンシ制御
部に置かれる。そして、当該NUMA型マルチプロセッ
サシステムにおけるコヒーレンシは、コヒーレンシ制御
部に各メモリアクセスリクエストが転送された順序で保
証されることになる。
【0006】メモリリードリクエストを発行するプロセ
ッサを搭載するCPUカードとリクエスト対象のメモリ
を搭載するCPUカードとが同一のCPUカードである
場合には、当該メモリリードリクエストは、メモリアク
セス(メモリリード)を目的として直接メモリアクセス
リクエスト制御部に転送されるリクエスト(メモリリー
ド用リクエスト)と、コヒーレンシ制御を目的としてC
PUカード間を接続する信号線を介して全CPUカード
のコヒーレンシ制御部に転送されるリクエスト(コヒー
レンシ制御用リクエスト)とに分割される。
【0007】そして、メモリリード用リクエストによる
メモリリードは、コヒーレンシ制御用リクエストとは無
関係に(独立して)実行される。これにより、メモリア
クセスレイテンシの短縮が可能となる。
【0008】しかし、上記のような制御においては、場
合によっては、以下に示すような不都合が生じる。
【0009】すなわち、メモリリード用リクエストによ
るメモリリードからコヒーレンシ制御用リクエストがコ
ヒーレンシ制御部に受け付けられるまでの間に、他のC
PUカードからメモリ更新を行うようなメモリアクセス
リクエスト(メモリライトリクエスト)が発行された場
合に、コヒーレンシ制御の観点から見て当該メモリリー
ドリクエストは当該メモリライトリクエストによるメモ
リ更新後のデータを得るべきであるにも関わらず、メモ
リ更新前のデータを得ることになる。
【0010】そこで、メモリリードリクエストを発行し
たプロセッサを搭載するCPUカードでは、そのような
メモリライトリクエストの存在がチェックされ、もしそ
のようなメモリライトリクエストが存在するのならば、
先行して行われたメモリリードによって読み出されたデ
ータがプロセッサに返却される前に廃棄され、当該プロ
セッサに対して再度メモリリードリクエストを発行する
ことが要求される。
【0011】現状の制御では、自CPUカード上のメモ
リに対するメモリリードリクエストによるメモリアクセ
ス(メモリリード)が他のメモリアクセスリクエストに
よるメモリアクセスとは異なるパスを使用して行われる
ため、そのメモリリードリクエストに対応するコヒーレ
ンシ制御用リクエストがコヒーレンシ制御部に到達する
までの間に、同一アドレスへのメモリライトリクエスト
が発行されメモリが更新されるという状態が頻発した場
合に、メモリリードリクエストがそのたびに再発行され
ることになる。
【0012】
【発明が解決しようとする課題】上述したように、従来
の技術では、自CPUカード上のメモリに対するメモリ
リードリクエストによるメモリリードが、他のメモリア
クセスリクエストによるメモリアクセスとは異なるパス
を使用して行われるため、そのメモリリードに対応する
コヒーレンシ制御用リクエストがコヒーレンシ制御部に
到達するまでの間にメモリライトリクエストが発行され
メモリが更新されるという状態が頻発した場合に、その
たびにメモリリードリクエストが再発行される(当該メ
モリリードリクエストは正しいデータを得ることができ
ずプロセッサからメモリリードリクエストの再発行が繰
り返される)ので、結果として自CPUカード上のプロ
セッサが最初のメモリリードリクエストを発行してから
最終的に正当なデータを得るまでのメモリアクセスレイ
テンシが増加する可能性があるという問題点があった。
【0013】本発明の目的は、上述の点に鑑み、プロセ
ッサが自CPUカード上のメモリに発行するメモリリー
ドリクエストの処理開始から終了までを管理し、そのメ
モリリードリクエストにより取得されたデータが廃棄対
象となった回数をカウントし、ハードウェア的にメモリ
リードリクエストの再実行を行い、再実行回数が規定回
数に達したならばメモリリードリクエストの実行をコヒ
ーレンシ制御部経由のメモリリクエスト実行パス(競合
するメモリライトリクエストの後にメモリリードアクセ
スを行うことが可能なパス)に切り替えて常に正当なデ
ータを得られるようにすることにより、ある一定値以上
にメモリアクセスレイテンシが増加することを回避でき
るようにするメモリアクセスレイテンシ増加回避方式を
提供することにある。
【0014】
【課題を解決するための手段】本発明のメモリアクセス
レイテンシ増加回避方式は、複数のCPUカード間を信
号線で接続したNUMA型マルチプロセッサシステムに
おいて、自CPUカード内のプロセッサからローカルメ
モリリードリクエストを受けた際に、当該ローカルメモ
リリードリクエストの再発行要求が規定回数続く前には
性能向上を目的としてローカルメモリリードパスを使用
してメモリリードリクエストを行い、当該ローカルメモ
リリードリクエストの再発行要求が規定回数続いた時に
は非ローカルメモリリードパスを使用してメモリリード
リクエストを行うように制御するRRMを備える各CP
Uカード内のプロセッサリクエスト制御部と、前記プロ
セッサリクエスト制御部からのローカルメモリリードリ
クエスト発行指示に基づいて仕掛かり中のローカルメモ
リリードリクエストに関する情報を保持し、当該保持情
報およびコヒーレンシ制御部からの処理中リクエスト情
報に基づき、ローカルメモリリードリクエストのメモリ
リードから当該ローカルメモリリードリクエストに対応
するコヒーレンシ制御用リクエストがコヒーレンシ制御
部に受け付けられるまでの期間を管理し、この期間中に
当該ローカルメモリリードリクエストのアクセス対象の
アドレスと同一アドレスに対するメモリライトリクエス
トがコヒーレンシ制御部に受け付けられたか否かをチェ
ックし、そのようなメモリライトリクエストが存在した
ならばローカルメモリリードリクエスト再発行指示を出
力するLRMを備えるローカルメモリリードリクエスト
制御部とを有する。
【0015】
【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
【0016】(1) 第1の実施の形態
【0017】図1は、本発明の第1の実施の形態に係る
メモリアクセスレイテンシ増加回避方式が適用されるN
UMA型マルチプロセッサシステムの構成を示すブロッ
ク図である。
【0018】図1を参照すると、このNUMA型マルチ
プロセッサシステムは、複数のCPUカード(プロセッ
サ101が搭載されたCPU10およびプロセッサ10
2が搭載されたCPU11)によって構成され、各々の
CPUカード10およびCPU11に全プロセッサで共
有可能なメモリ124およびメモリ125が搭載され、
CPUカード10とCPU11との間が双方向バス(共
有バスである第2のバス109および第3のバス13
0)で接続されて構成されている。
【0019】本実施の形態では、本発明を説明するにあ
たり、簡単化のため、各CPUカード10および11に
搭載されるプロセッサ数を1個とした。しかし、当該プ
ロセッサ数が複数でもかまわないことはいうまでもな
い。また、CPUカード数は2枚以上ならば何枚でもか
まわない(第2のバス109および第3のバス130が
全てのCPUカードで共有される)。
【0020】CPU10/11(CPU10およびCP
U11の各々)は、プロセッサ101/102と、第1
のバス103/104と、RRM500(図5参照)を
有するプロセッサリクエスト制御部105/106と、
バス出力リクエスト制御部107/108と、第2のバ
ス109と、コヒーレンシ制御部110/111と、T
AG(自プロセッサ(プロセッサ101/102)対応
TAGメモリ)112/113と、LRM200(図2
参照)を有するローカルメモリリードリクエスト制御部
114/115と、ローカルメモリリード発行線116
/117と、ローカルメモリリード再発行要求線118
/119と、キャッシュインバリデート要求線120/
121と、メモリアクセスリクエスト制御部122/1
23と、メモリ(主記憶)124/125と、自CPU
カードリードリプライ線126/127と、他CPUカ
ードリードリプライ線128/129と、第3のバス1
30とを含んで構成されている。
【0021】プロセッサ101/102は、CPUカー
ド10/11上のプロセッサであり、内蔵キャッシュを
有している。本実施の形態では、このプロセッサ内蔵キ
ャッシュは、ストアスルー方式のキャッシュであるもの
とする。ただし、本発明の考え方は、ストアイン方式の
プロセッサ内蔵キャッシュを有するNUMA型マルチプ
ロセッサシステムにも適用できる。
【0022】プロセッサリクエスト制御部105/10
6は、プロセッサ101/102からのリクエストの受
け付け,プロセッサ101/102へのリプライデータ
の返却,プロセッサ101/102へのメモリリードリ
クエストの再実行要求,およびプロセッサ101/10
2へのプロセッサ内蔵キャッシュのインバリデート要求
を行う(第1のバス103/104を介しリクエストや
データのやりとりを行う)。
【0023】プロセッサリクエスト制御部105/10
6がプロセッサ101/102から受け付けたリクエス
トのうち、メモリライト(更新)リクエストおよび他の
CPUカード11/10上のメモリ125/124(リ
モートメモリ)へのメモリアクセスリクエスト(「リモ
ートメモリアクセスリクエスト」と称する)は、第2の
バス109に出力される。このようなメモリアクセスリ
クエスト(メモリライトリクエストおよびリモートメモ
リアクセスリクエスト)は、それぞれのCPUカード1
0/11上のコヒーレンシ制御部110/111に受け
付けられた順序でメモリアクセスが実行されるように制
御される。
【0024】プロセッサリクエスト制御部105/10
6がプロセッサ101/102から受け付けたメモリア
クセスリクエストのうち、当該プロセッサリクエスト制
御部105/106が搭載されたCPUカード10/1
1内のメモリ124/125(ローカルメモリ)にアク
セスするためのメモリリードリクエスト(「ローカルメ
モリリードリクエスト」と称する)は、メモリライトリ
クエストおよびリモートメモリアクセスリクエストと同
様にコヒーレンシ制御を目的として第2のバス109に
出力されるとともに、性能向上を目的として直接メモリ
アクセスリクエスト制御部122/123に対してロー
カルメモリリード発行線116/117を介して発行さ
れる。このとき、コヒーレンシ制御を目的として第2の
バス109に発行されたリクエスト(コヒーレンシ制御
用リクエスト)によっては、TAG112/113の検
索および必要に応じた更新が行われるのみで、コヒーレ
ンシ制御部110/111からメモリアクセスリクエス
ト制御部122/123へのメモリリードリクエストの
発行は行われない。
【0025】バス出力リクエスト制御部107/108
は、CPUカード10/11上のプロセッサリクエスト
制御部105/106を介してプロセッサ101/10
2により発行されたリクエストを受け付ける。
【0026】第2のバス109は、CPUカード10と
CPUカード11とを接続している。この第2のバス1
09に対するリクエストの出力の可否は、各CPUカー
ド10/11上のバス出力リクエスト制御部107/1
08内でまったく同じ制御が行われるアービタにより決
定される。
【0027】コヒーレンシ制御部110/111は、他
のCPUカード11/10のコヒーレンシ制御部111
/110とまったく同じタイミングで第2のバス109
からリクエストを受け付け、自CPUカード(CPUカ
ード10/11)に搭載されたTAG112/113の
検索および必要に応じた更新を行い、場合によってはキ
ャッシュインバリデート要求線120/121を使用し
てプロセッサリクエスト制御部105/106に対して
自CPUカードに搭載されたプロセッサ内蔵キャッシュ
のインバリデート要求リクエストを発行する(このイン
バリデート要求リクエストに基づき第1のバス103/
104へのキャッシュインバリデート要求の発行が行わ
れる)。
【0028】また、コヒーレンシ制御部110/111
は、メモリアクセスリクエストのリクエストアドレスに
基づき「自CPUカード搭載メモリ(メモリ124/1
25)へのアクセスであること」および「ローカルメモ
リリード時のコヒーレンシ制御用リクエストではないこ
と」という条件を判別し、当該条件が満たされる場合に
はメモリアクセスリクエスト制御部122/123に対
して当該メモリアクセスリクエストを転送する。
【0029】さらに、コヒーレンシ制御部110/11
1は、メモリアクセスリクエストがローカルメモリリー
ドリクエストに対応するコヒーレンシ制御用リクエスト
である場合には、ローカルメモリリードリクエスト制御
部114/115内のLRM200中のCHK−Fla
g212(図2参照)の内容に基づいて、当該ローカル
メモリリードリクエスト(メモリリード用リクエスト)
によるメモリアクセス(メモリリード)から当該コヒー
レンシ制御用リクエストがコヒーレンシ制御部110/
111に受け付けられるまでの期間にメモリライトリク
エストが存在したか否かを識別し、存在しなかったなら
ばTAG112/113をメモリデータとプロセッサ内
蔵キャッシュ内データとが同一であることを示すSha
reという状態に更新する(存在したならばローカルメ
モリリードリクエスト自身の再発行となるためTAG1
12/113の更新は行われない)。
【0030】TAG112/113は、自CPUカード
(CPUカード10/11)に搭載されたプロセッサ内
蔵キャッシュのアドレスアレイのコピーである。
【0031】ローカルメモリリードリクエスト制御部1
14/115は、ローカルメモリリードリクエストのメ
モリアクセス(メモリリード用リクエストによるローカ
ルメモリリード)から対応するコヒーレンシ制御用リク
エストがコヒーレンシ制御部110/111に受け付け
られるまでの期間を管理し、この期間中に当該ローカル
メモリリードリクエストのアクセス対象のアドレスと同
一アドレスに対するメモリライトリクエストがコヒーレ
ンシ制御部110/111に受け付けられたか否かをチ
ェックする。もし、そのようなメモリライトリクエスト
が存在したならば、ローカルメモリリード再発行要求線
118/119により、先行して行われたローカルメモ
リリードによって読み出されたデータの廃棄と、そのロ
ーカルメモリリードリクエストの再発行とを要求する。
【0032】ここで、従来の技術では、メモリリードリ
クエストの再発行をプロセッサに対して要求していた
が、プロセッサはその内部処理によっては同じメモリリ
ードリクエストを再発行しない可能性がある。本発明で
は、再発行要求頻発時のメモリアクセスレイテンシ増加
の回避を目的として再発行要求対象となったローカルメ
モリリードリクエストに対してハードウェアリソースを
割り当てるため、もしプロセッサ101/102が同一
のローカルメモリリードリクエストの再発行を行わなか
った場合には、そのハードウェアリソースの解放ができ
ないことになる。そこで、本発明では、対象となるロー
カルメモリリードリクエストの再発行は、プロセッサリ
クエスト制御部105/106の内部に新設する機能
(後述の図5に示すRRM500の機能)によってハー
ドウェア的に行われる。
【0033】メモリ124/125は、全てのCPUカ
ード10/11上のプロセッサ101/102が使用可
能なメモリ(主記憶)である。
【0034】各メモリ124/125に対するメモリア
クセスリクエスト制御部122/123は、メモリ12
4/125に対するデータの書き込み指示および読み出
し指示を行い、自CPUカード(CPUカード10/1
1)上のプロセッサ101/102からのメモリリード
リクエストに対するリプライデータについては自CPU
カードリードリプライ線126/127を用いてプロセ
ッサリクエスト制御部105/106に返却し、他CP
Uカード(CPUカード11/10)上のプロセッサ1
02/101からのメモリリードリクエストに対するリ
プライデータについてはCPUカード間データ転送用の
第3のバス130を介して相手のCPUカード11/1
0の他CPUカードリードリプライ線129/128を
用いてプロセッサリクエスト制御部106/105に返
却する(プロセッサリクエスト制御部105/106は
各リプライデータをプロセッサ101/102に返却す
る)。
【0035】図2は、ローカルメモリリードリクエスト
制御部114/115内に存在し、ローカルメモリリー
ドリクエストのメモリリードから当該ローカルメモリリ
ードリクエストに対応するコヒーレンシ制御用リクエス
トがコヒーレンシ制御部110/111に受け付けられ
るまでの期間(LRM管理期間)を管理するローカルメ
モリリードリクエスト管理機能部(「LRM(Loca
l memory Read Manager)」と称
する)200の構成を示すブロック図である。なお、こ
こでは、LRM200は、説明の簡易化のために1エン
トリの構成として記述するが、複数エントリとして複数
リクエストを同時に取り扱うように構成してもよい。
【0036】LRM200は、コヒーレンシ制御部11
0/111からの処理中リクエスト情報(ストローブ2
01,リクエストコード202,リクエストアドレス2
03,およびリクエストID(IDentificat
ion)204)およびプロセッサリクエスト制御部1
05/106からのローカルメモリリードリクエスト発
行指示(ストローブ205,リクエストアドレス20
6,およびリクエストID207)を入力し、ローカル
メモリリードリクエスト再発行指示(V213,S21
4,およびリクエストID215)を出力し、ライトリ
クエスト識別回路208と、Vレジスタ209と、リク
エストアドレスレジスタ210と、リクエストIDレジ
スタ211と、CHK(CHecK)−Flag212
とを含んで構成されている。
【0037】201〜204の符号で示される入力情報
は、コヒーレンシ制御部110/111で処理中のメモ
リアクセスリクエストに関する情報(処理中リクエスト
情報)である。
【0038】ストローブ201は、処理中リクエストの
有効信号(ストローブ)であり、本信号が「1」のとき
のみ202〜204の符号で示される情報が有効とな
る。
【0039】リクエストコード202は、本NUMA型
マルチプロセッサシステムにおけるリクエストの種類を
規定する情報である。ここで、リクエストコードの具体
例を、図3に示す。
【0040】リクエストアドレス203は、リクエスト
対象のアドレスを示す情報である。
【0041】リクエストID204は、仕掛かり中(処
理中)リクエストに対して、システム(本NUMA型マ
ルチプロセッサシステム)内で唯一となるようにプロセ
ッサリクエスト制御部105/106において制御(付
与)されている識別情報である。したがって、このリク
エストID204のコードが後述のリクエストIDレジ
スタ211のコードと一致すれば、そのときのコヒーレ
ンシ制御部110/111からのリクエストは、LRM
200で管理されているローカルメモリリードリクエス
トに対応するコヒーレンシ制御用リクエストであるとい
える。
【0042】205〜207の符号で示される入力情報
は、プロセッサリクエスト制御部105/106からの
ローカルメモリリードリクエスト発行指示である。
【0043】ストローブ205は、ローカルメモリリー
ドリクエスト発行指示のストローブ(有効信号)であ
り、メモリアクセスリクエスト制御部122/123へ
の発行指示のストローブと同じものである。206およ
び207の符号で示される情報は、このストローブ20
5が「1」のときのみ有効となる。なお、ストローブ2
05が「1」のときには、必ずリクエストコードはロー
カルメモリリードリクエストを示すものであるので、リ
クエストコード自身は転送されない。
【0044】リクエストアドレス206は、ローカルメ
モリリードリクエストのリクエストアドレスを示す情報
である。
【0045】リクエストID207は、ローカルメモリ
リードリクエストのリクエストIDを示す情報である。
コヒーレンシ制御部110/111からのリクエストI
D204と同様に、仕掛かり中リクエストについてシス
テム内で唯一となるように制御(付与)されている。
【0046】ライトリクエスト識別回路208は、リク
エストコード202のデコーダであり、コヒーレンシ制
御部110/111内のリクエストがメモリライトリク
エストであるときに「1」を出力する。
【0047】Vレジスタ(バリッドレジスタまたは有効
ビットレジスタ)209は、プロセッサリクエスト制御
部105/106からのストローブ205が「1」のと
きに「1」にセットされ、仕掛かり中のローカルメモリ
リードリクエストに対応するコヒーレンシ制御用リクエ
ストをコヒーレンシ制御部110/111が受け付けた
ならば、すなわちコヒーレンシ制御部110/111か
らのリクエストID204とリクエストIDレジスタ2
11の値とが一致したならば「0」にリセットされる。
【0048】リクエストアドレスレジスタ210は、仕
掛かり中のローカルメモリリードリクエストのアドレス
を保持するレジスタであり、ストローブ205をトリガ
としてリクエストアドレス206を格納する。
【0049】リクエストIDレジスタ211は、仕掛か
り中のローカルメモリリードリクエストのIDを保持す
るレジスタであり、リクエストアドレスレジスタ210
におけるリクエストアドレス206の格納と同タイミン
グで、リクエストID207を格納する。
【0050】CHK−Flag212は、LRM管理期
間中における仕掛かり中のローカルメモリリードリクエ
ストの対象アドレスと同一のアドレスに対するメモリラ
イトリクエストについての検出フラグレジスタであり、
Vレジスタ209,リクエストアドレスレジスタ21
0,およびリクエストIDレジスタ211に対するセッ
トと同タイミングで、「0」にリセットされる。そし
て、CHK−Flag212は、Vレジスタ209が
「1」であり、かつ、リクエストアドレスレジスタ21
0の値とコヒーレンシ制御部110/111からのリク
エストアドレス203とが一致し、かつ、コヒーレンシ
制御部110/111からのリクエストがメモリライト
リクエストである(ライトリクエスト識別回路208の
出力信号が「1」である)ときに、「1」にセットされ
る。
【0051】213〜215の符号で示される出力情報
は、プロセッサリクエスト制御部105/106へのロ
ーカルメモリリードリクエスト再発行指示である(ロー
カルメモリリード再発行要求線118/119上に出力
される再発行要求に相当する)。
【0052】V213は、当該ローカルメモリリードリ
クエスト再発行指示(再発行要求)の有効信号であり、
Vレジスタ209のリセットと同タイミングで「1」と
なり、このときにだけS214およびリクエストID2
15が有効になる。
【0053】S214は、当該ローカルメモリリードリ
クエスト再発行指示の指示内容を示す情報である。S2
14は、CHK−Flag212の値であり、その値が
「1」のときに「先行して行われたローカルメモリリー
ドの読み出しデータが不正であること」を示す。
【0054】ここで、上記のV213とS214との組
み合わせによる意味は、図4に示すとおりである。
【0055】リクエストID215は、再発行対象のリ
クエストIDであり、どのローカルメモリリードリクエ
ストが再発行対象であるかをプロセッサリクエスト制御
部105/106に通知するための識別情報である。
【0056】図3は、先に言及したように、リクエスト
コードの内容の具体例を示す図である。本実施の形態で
は、リクエストコードの「00000000(00
h)」がリクエスト種類の「非ローカルメモリリードリ
クエスト」を示し、「00000001(01h)」が
「ローカルメモリリードリクエスト/コヒーレンシ制御
用リクエスト」を示し、「00000010(02
h)」が「メモリライトリクエスト」を示し、上記以外
のコードが「非メモリアクセスリクエスト」を示す。
【0057】図4は、先に言及したように、ローカルメ
モリリードリクエスト再発行指示におけるVとSとの組
み合わせによる意味を示す図である。ローカルメモリリ
ードリクエスト再発行指示におけるVとSとの組み合わ
せが「1」と「0」との組み合わせである場合には「正
常終了(再発行不要)」を意味し、「1」と「1」との
組み合わせである場合には「再発行必要」を意味する。
なお、この組み合わせが「0」と「x」(任意の値)と
の組み合わせである場合には、「Don’t Care
(意味を持たない)」を意味し、この信号パターンを受
け付けた場合の動作はNOP(No Operatio
n)となる。
【0058】図5は、プロセッサリクエスト制御部10
5/106内に存在するローカルメモリリードリクエス
ト再発行機能部(「RRM(Retransmit l
ocal memory Read request
Manager)」と称する)500の構成を示すブロ
ック図である。なお、ここでは、RRM500は、説明
の簡易化のために1エントリの構成として記述するが、
複数エントリとして複数リクエストを同時に扱うように
構成してもよい。ただし、RRM500のエントリ数
は、LRM200(図2参照)のエントリ数と同じにす
る必要がある。
【0059】RRM500は、プロセッサ発行リクエス
ト情報(ストローブ501,リクエストコード502,
リクエストアドレス503,およびリクエストID50
4)およびLRM200から出力されたローカルメモリ
リードリクエスト再発行指示(V505,S506,お
よびリクエストID507)を入力し、バス出力リクエ
スト制御部107/108にリクエストが発行されるこ
とを示すリクエスト発行信号522,ローカルメモリリ
ードリクエスト制御部114/115およびメモリアク
セスリクエスト制御部122/123にリクエストが発
行されることを示すリクエスト発行信号523,ならび
にバス出力リクエスト制御部107/108,ローカル
メモリリードリクエスト制御部114/115,および
メモリアクセスリクエスト制御部122/123に転送
されるリクエストコード524,リクエストアドレス5
25,およびリクエストID526を出力し、ローカル
メモリリード判定回路508と、Vレジスタ509と、
リクエストアドレスレジスタ510と、リクエストID
レジスタ511と、リトライ回数カウンタ512と、信
号線513と、ANDゲート514と、ANDゲート・
ORゲート515と、ANDゲート516と、比較回路
517と、NLP(Non−Local memory
read Path)−Flag518と、ANDゲ
ート519と、LP(Local memory re
ad Path)−Flag520と、ANDゲート5
21とを含んで構成されている。
【0060】501〜504の符号で示される入力情報
は、プロセッサ発行リクエスト(プロセッサ101/1
02から発行されるリクエスト)に関する情報(プロセ
ッサ発行リクエスト情報)である。
【0061】ストローブ501は、プロセッサ発行リク
エストの有効信号(ストローブ)である。本信号が
「1」のときのみ、502〜504の符号で示される情
報が有効となる。
【0062】リクエストコード502は、プロセッサ発
行リクエストの種類を規定する情報である(リクエスト
コードとリクエスト種類との対応については図3参
照)。
【0063】リクエストアドレス503は、プロセッサ
発行リクエストのリクエスト対象のアドレスを示す情報
である。
【0064】リクエストID504は、当該プロセッサ
発行リクエストに対して、仕掛かり中リクエストとして
はシステム内で唯一となるようにプロセッサリクエスト
制御部105/106において制御(付与)される識別
情報である。
【0065】505〜507の符号で示される入力情報
は、ローカルメモリリードリクエスト制御部114/1
15からのローカルメモリリードリクエスト再発行指示
である。ここで、V505は図2中のV213に相当
し、S506はS214に相当し、リクエストID50
7はリクエストID215に相当する。
【0066】ローカルメモリリード判定回路508は、
リクエストコード502およびリクエストアドレス50
3を入力し、当該プロセッサ発行リクエストがローカル
メモリリードリクエストであると判別した場合に「1」
を出力する。
【0067】Vレジスタ509は、「1」のとき、仕掛
かり中のローカルメモリリードリクエストが存在するこ
とを示す(Vレジスタ509が「1」となることによっ
て、リクエストアドレスレジスタ510およびリクエス
トIDレジスタ511が有効となり、リトライ回数カウ
ンタ512が0クリアされる)。このVレジスタ509
は、プロセッサ発行リクエストがローカルメモリリード
リクエストであった場合に、ANDゲート514の出力
信号により「1」にセットされる。また、ローカルメモ
リリードリクエスト制御部114/115からのV50
5(図2中のV213)およびS506(図2中のS2
14)が「正常終了」を示す組み合わせになったとき、
またはリトライ回数カウンタ512が規定値(規定回
数)に達してRRM内リクエスト(RRM500で仕掛
かり中のローカルメモリリードリクエスト)を非ローカ
ルメモリリードパスで実行したときに(RRM内リクエ
ストをそれ以上再発行してメモリアクセスレイテンシが
増加することを回避するためにこのような実行が行われ
る)、ANDゲート・ORゲート515の出力信号によ
り「0」にリセットされる。
【0068】リクエストアドレスレジスタ510は、仕
掛かり中のローカルメモリリードリクエストのアドレス
を格納するレジスタである。
【0069】リクエストIDレジスタ511は、仕掛か
り中のローカルメモリリードリクエストのリクエストI
Dを格納するレジスタである。
【0070】リクエストアドレスレジスタ510および
リクエストIDレジスタ511は、Vレジスタ509に
「1」がセットされるタイミングで、リクエストアドレ
ス503およびリクエストID504を格納する。
【0071】リトライ回数カウンタ512は、仕掛かり
中のローカルメモリリードリクエストに対してローカル
メモリリードリクエスト制御部114/115から今ま
でに何回再発行要求(ANDゲート516の出力信号が
「1」となること)があったかを示す。ここでは、簡単
化のため1ビットのカウンタとする。リトライ回数カウ
ンタ512は、Vレジスタ509を「1」にセットする
タイミングで「0」にリセットされる。また、ローカル
メモリリードリクエスト制御部114/115からのロ
ーカルメモリリードリクエスト再発行指示があり(AN
Dゲート516の出力信号が「1」となり)、かつ、そ
れがRRM内リクエストに対するものである(比較回路
517の出力信号が「1」となる)場合に、1の加算
(+1)を行う。その他はホールドである。
【0072】信号線513上の信号は、RRM内リクエ
ストに対して規定回数の再発行要求(指示)があった場
合に「1」となる信号である(ここでは、規定回数を2
回とする)。すなわち、リトライ回数カウンタ512の
キャリーアウト信号である。
【0073】NLP−Flag518は、RRM内リク
エストの非ローカルメモリリードパスでのメモリリード
リクエスト再発行要求指示フラグレジスタに該当し、他
のプロセッサ発行リクエストが存在するときにRRM内
リクエスト(再発行対象のローカルメモリリードリクエ
スト)が発行順番を待ち受けるためのレジスタである。
【0074】ローカルメモリリードリクエスト制御部1
14/115からのローカルメモリリードリクエスト再
発行指示があり(ANDゲート516の出力信号が
「1」となり)、かつ、リトライ回数カウンタ512が
規定値に達した(信号線513上の信号が「1」となっ
た)場合に、ANDゲート519の出力信号が「1」と
なり、NLP−Flag518が「1」にセットされ
る。そして、プロセッサ発行リクエストと競合しないと
き、すなわちプロセッサ発行リクエスト情報のストロー
ブ501が「0」のときに、バス出力リクエスト制御部
107/108にローカルメモリリードリクエスト(R
RM内リクエスト)が発行され(リクエスト発行信号5
22が「1」となり)、NLP−Flag518は
「0」にリセットされる。このとき、バス出力リクエス
ト制御部107/108に発行されるリクエストのリク
エストコードは00h(非ローカルメモリリードリクエ
ストを示すコード。図3参照)である。
【0075】LP−Flag520は、RRM内リクエ
ストのローカルメモリリードパスでのメモリリードリク
エスト再発行要求指示フラグレジスタに該当し、他のプ
ロセッサ発行リクエストが存在するときにRRM内リク
エストが発行順番を待ち受けるためのレジスタである。
【0076】ローカルメモリリードリクエスト制御部1
14/115からのローカルメモリリードリクエスト再
発行指示があり(ANDゲート516の出力信号が
「1」となり)、かつ、リトライ回数カウンタ512が
規定値に達していない(信号線513上の信号が「0」
である)場合に、ANDゲート521の出力信号が
「1」となり、LP−Flag520が「1」にセット
される。そして、プロセッサ発行リクエストと競合しな
いとき、すなわちプロセッサ発行リクエスト情報のスト
ローブ501が「0」のときに、バス出力リクエスト制
御部107/108に当該RRM内リクエストに対応す
るコヒーレンシ制御用リクエストが発行され(ANDゲ
ート521の出力信号が「1」となり)、ローカルメモ
リリードリクエスト制御部114/115およびメモリ
アクセスリクエスト制御部122/123にローカルメ
モリリードパスを使用したローカルメモリリードリクエ
ストの発行が行われ(リクエスト発行信号523が
「1」となり)、LP−Flag520は「0」にリセ
ットされる。このとき、バス出力リクエスト制御部10
7/108,ローカルメモリリードリクエスト制御部1
14/115,およびメモリアクセスリクエスト制御部
122/123に発行されるリクエストのコードは全て
01h(ローカルメモリリードリクエスト/コヒーレン
シ制御用リクエストを示すコード。図3参照)である。
【0077】リクエスト発行信号522は、バス出力リ
クエスト制御部107/108へのリクエスト発行の有
無を示す信号であり、プロセッサ101/102からの
非ローカルメモリリードリクエストまたはRRM内リク
エストに対応するコヒーレンシ制御用リクエストの発行
時に「1」となる。どちらのリクエストであるかの識別
は、同時に転送されるリクエストコード524によって
行われる。
【0078】リクエスト発行信号523は、ローカルメ
モリリードリクエスト制御部114/115およびメモ
リアクセスリクエスト制御部122/123へのリクエ
スト発行の有無を示す信号であり、プロセッサ101/
102からのローカルメモリリードリクエストまたはR
RM内リクエスト(ローカルメモリリードリクエスト)
のローカルメモリリードパスによる発行時に「1」とな
る。
【0079】524〜526の符号で示される出力情報
は、バス出力リクエスト制御部107/108,ローカ
ルメモリリードリクエスト制御部114/115,およ
びメモリアクセスリクエスト制御部122/123に転
送される情報であり、上記のリクエスト発行信号522
および/または523が「1」のときに有効となる。
【0080】リクエストコード524は、非ローカルメ
モリリードパスからのRRM内リクエストの発行時には
図3に示す非ローカルメモリリードリクエストを示すコ
ード(00h)となり、ローカルメモリリードパスから
のRRM内リクエストの発行時にはローカルメモリリー
ドリクエスト/コヒーレンシ制御用リクエストを示すコ
ード(01h)となり、それ以外のときにはプロセッサ
発行リクエストのリクエストコード(リクエストコード
502)の値となる。
【0081】リクエストアドレス525は、プロセッサ
発行リクエストストローブ(ストローブ501)が
「1」のときにはプロセッサ発行リクエストのリクエス
トアドレス(リクエストアドレス503)の値となり、
それ以外のときにはRRM500のリクエストアドレス
レジスタ510の値となる。
【0082】リクエストID526は、プロセッサ発行
リクエストストローブが「1」のときにはプロセッサ発
行リクエストのリクエストID(リクエストID50
4)の値となり、それ以外のときにはRRM500のリ
クエストIDレジスタ511の値となる。
【0083】本実施の形態、ひいては本発明では、上記
のようなRRM500の機能を用いて、通常時には性能
向上を目的としてローカルメモリリードパスを使用し、
再発行要求(指示)が規定回数続いた場合にはそれ以上
再発行要求の発生しない非ローカルメモリアクセスパス
に切り替えて、ローカルメモリリードリクエストを実行
することにより、メモリアクセスレイテンシ増加の可能
性を回避している。
【0084】図6は、本実施の形態に係るメモリアクセ
スレイテンシ増加回避方式の具体的な動作を説明するた
めの図であり、プロセッサ101がローカルメモリリー
ドリクエストを発行した際のタイミングチャートを示す
図である。なお、図6中のTn(nは正整数)は時間経
過を示す値であり、TnとTn+1との間が必ずしも1
CLK(クロック)である必要はない。
【0085】次に、図1〜図6を参照して、上記のよう
に構成された本実施の形態に係るメモリアクセスレイテ
ンシ増加回避方式の具体的な動作について説明する。
【0086】図6に示すように、T3で、CPUカード
10上のプロセッサ101が第1のバス103にローカ
ルメモリリードリクエスト(リクエスト対象のアドレス
を「A」とする)を発行した場合を考える。
【0087】この場合に、プロセッサリクエスト制御部
105により当該プロセッサ発行リクエストがローカル
メモリリードリクエストであると判別されたならば、T
4で、プロセッサリクエスト制御部105内のRRM5
00中のVレジスタ509(図6中のRRMV)が
「1」にセットされ、リクエストアドレスレジスタ51
0(図6中のRRMアドレス)およびリクエストIDレ
ジスタ511(図6中のRRMリクエストID)に当該
プロセッサ発行リクエストのリクエストアドレス503
(ここでは、アドレスA)およびリクエストID504
が格納され、リトライ回数カウンタ512(図6中のR
RMリトライ回数カウンタ)が「0」にリセットされ
る。
【0088】同時に(T4で)、メモリアクセスリクエ
スト制御部122に、当該メモリリードリクエスト(R
DA)が発行される。このメモリリードリクエストによ
り、T4で、メモリ124のデータ(アドレスAのデー
タ)が読み出され、そのデータは自CPUカードリード
リプライ線126が使用されてプロセッサリクエスト制
御部105に転送される(このデータは後述のWTA
(1)による更新前のデータである)。
【0089】プロセッサリクエスト制御部105では、
即座にはこのデータの処置(プロセッサ101への返却
または棄却)が行われず、ローカルメモリリードリクエ
スト制御部114からのローカルメモリリード再発行要
求線118の値(V213の値。図6中の再発行要求
V)が「1」になるまで待ち受けられる。
【0090】同じT4のタイミングで、ローカルメモリ
リードリクエスト制御部114にも当該メモリリードリ
クエスト(RDA)が発行され、ローカルメモリリード
リクエスト制御部114内のLRM200中のVレジス
タ209(図6中のLRMV)が「1」にセットされ、
対応するリクエストアドレス206およびリクエストI
D207がリクエストアドレスレジスタ210(図6中
のLRMアドレス)およびリクエストIDレジスタ21
1(図6中のLRMリクエストID)に格納され、CH
K−Flag212(図6中のLRMチェックフラグ)
が「0」にリセットされる。
【0091】このとき、バス出力リクエスト制御部10
7に転送された当該ローカルメモリリードリクエストに
対応するコヒーレンシ制御用リクエストは、出力調停待
ちによりT13で第2のバス109に発行されたものと
し、それに先んじてT8で同一アドレス(アドレスA)
に対するメモリライトリクエスト(図6中のWTA
(1))がCPUカード11側で第2のバス109に発
行されたものとする。
【0092】このようなケースでは、本来ならば、ロー
カルメモリリードリクエストは、メモリライトリクエス
トによるメモリ更新後のデータを読み出す必要がある。
しかし、T4で、メモリライトリクエストによるメモリ
更新前のデータを読み出してしまっている。したがっ
て、先にプロセッサリクエスト制御部105に返却され
たデータを使用することはできない。
【0093】ローカルメモリリードリクエスト制御部1
14内のLRM200では、T9で、コヒーレンシ制御
部110内の処理中リクエスト(WTA(1))のリク
エストコード202およびリクエストアドレス203が
チェックされ、当該ローカルメモリリードリクエストの
対象アドレスと同一アドレスに対するメモリライトリク
エストが存在することが認識される。そして、T10
で、CHK−Flag212に「1」がセットされる。
【0094】T14で、コヒーレンシ制御部110に受
け付けられたコヒーレンシ制御用リクエスト(当該ロー
カルメモリリードリクエストに対応するコヒーレンシ制
御用リクエスト)により、LRM200がチェックさ
れ、CHK−Flag212が「1」であることから、
対応するローカルメモリリードリクエストによる読み出
し後にメモリ124が更新されたことが認識され、TA
G112の更新が抑止される。
【0095】また、T14で、ローカルメモリリードリ
クエスト制御部114では、LRM200からプロセッ
サリクエスト制御部105に対してローカルメモリリー
ドリクエスト再発行指示が行われる(図6中の再発行要
求Vおよび再発行要求Sが「1」となる)。
【0096】さらに、T15で、LRM200内のVレ
ジスタ209が「0」にリセットされる。
【0097】ローカルメモリリードリクエスト再発行指
示を受けて、プロセッサリクエスト制御部105では、
T15で、RRM500内のリトライ回数カウンタ51
2に1が加算され(+1され)、まだリトライ回数が規
定値(2回)に達していないことが認識され、再度、ロ
ーカルメモリリード発行線116からのローカルメモリ
リードリクエスト制御部114およびメモリアクセスリ
クエスト制御部122へのローカルメモリリードリクエ
ストの発行ならびにバス出力リクエスト制御部107へ
のコヒーレンシ制御用リクエストの発行が行われる。
【0098】この再発行ローカルメモリリードリクエス
トに対しても、一度目の発行時と同様に、メモリリード
(T16)からコヒーレンシ制御用リクエストのコヒー
レンシ制御部110による受け付け(T27)までの期
間中に、同一のアドレス(アドレスA)に対するメモリ
ライトリクエスト(図6中のWTA(2))が発行され
たものとする(T20,T21,およびT22参照)。
【0099】したがって、T27で、ローカルメモリリ
ードリクエスト制御部114からプロセッサリクエスト
制御部105に対して、再度、ローカルメモリリードリ
クエスト再発行指示が行われる(再発行要求Vおよび再
発行要求Sが「1」となる)。
【0100】このローカルメモリリードリクエスト再発
行指示を受け付けたプロセッサリクエスト制御部105
では、RRM500内のリトライ回数カウンタ512に
1が加算される。ここでは、規定値の2回に達するた
め、T28のタイミングで、バス出力リクエスト制御部
107に対してのみローカルメモリリードリクエストが
リクエストコードを非ローカルメモリリードリクエスト
(00h)として発行され、ローカルメモリリードパス
の使用が取り止められる。
【0101】このリクエスト発行を待って、T29で、
RRM500内のVレジスタ509が「0」にリセット
される。
【0102】T39で、このローカルメモリリードリク
エストはコヒーレンシ制御部110に受け付けられる。
このとき、もし、上記の1回目および2回目のメモリリ
ードリクエスト発行時と同様に、それ以前に同一アドレ
スに対するメモリライトリクエストが存在したとしても
(ここでは、T34でWTA(3)が存在している)、
T40でメモリ124から読み出されるデータはそのメ
モリライトリクエストによる更新後のデータであるので
使用可能である。したがって、さらなる再発行要求は発
生しない。このデータは、自CPUカードリードリプラ
イ線126を介してプロセッサリクエスト制御部105
に返却され、さらに第1のバス103を介してプロセッ
サ101に返却される。
【0103】(2) 第2の実施の形態
【0104】図7は、本発明の第2の実施の形態に係る
メモリアクセスレイテンシ増加回避方式を説明するため
のブロック図である。
【0105】本実施の形態に係るメモリアクセスレイテ
ンシ増加回避方式は、上記の第1の実施の形態に対し
て、複数のCPUカードの接続方法および共有バス(C
PUカード間接続バス)へのリクエストの入出力に関す
る調停方法についての変形形態に該当する。
【0106】上記の第1の実施の形態では、第2のバス
109によるCPUカード(CPUカード10およびC
PUカード11)間接続が行われ、リクエスト出力時の
分散調停方式がとられていた。すなわち、第1の実施の
形態の構成では、リクエストの転送に関してただ1本の
バス接続信号線によって各CPUカードが接続され、出
力時に全CPUカードで同一のアービタにより調停が行
われ、ただひとつのCPUカードのみがリクエスト出力
許可を得ていた。
【0107】これに対して、本実施の形態では、図7に
示すように、各CPUカード(CPUカード70,7
1,72,および73)は、各々がリクエストの出力専
用に使用する1本の信号線と、リクエストの入力に使用
するm本(mは他CPUカード枚数により決まる値)の
信号線群とを含んで構成されている。すなわち、信号線
701,702,703,および704を有している。
【0108】また、本実施の形態における構成では、各
CPUカード70,71,72,および73は、リクエ
スト入出力時の調停に関して、バス出力リクエスト制御
部とともに、バスリクエスト受け付け調停部705,7
06,707,および708を有している。
【0109】本実施の形態に係るメモリアクセスレイテ
ンシ増加回避方式では、各CPUカード70〜73は、
まったく独立したタイミングでリクエストを自分の出力
専用の信号線701〜704を用い、自分自身も含めた
全てのCPUカード70〜73に転送する。
【0110】このリクエストは、全CPUカード70〜
73において同タイミングで、バスリクエスト受け付け
調停部705〜708で受け付けられる。
【0111】当該バスリクエスト受け付け調停部705
〜708は、全CPUカード70〜73で同一のアービ
タを備えており、複数CPUカードからのリクエストを
同タイミングで受け付けたならば、全CPUカード70
〜73で共通のアービタ論理により、どのリクエストを
先に処理するかを決定する。このアービタ論理として
は、例えば、「カード番号の小さいCPUカードからの
リクエストを優先的に処理する」といったものが考えら
れる。
【0112】なお、上記のような本実施の形態(第2の
実施の形態)で特有な構成および動作以外の構成および
動作は、第2の実施の形態も第1の実施の形態と同様で
ある。
【0113】また、全CPUカード上のコヒーレンシ制
御部においてまったく同一の順序で共有バスからの入力
リクエストが認識できるのであれば、上記の第1の実施
の形態および第2の実施の形態の調停方法以外のCPU
間リクエスト入出力調停方法を採用することも可能であ
る。さらに、CPUカード間の接続方法も、全CPUカ
ードで同じ順番でリクエストを受け取ること等ができれ
ば、どのような接続方法でもかまわない。
【0114】
【発明の効果】以上説明したように、本発明によると、
従来の「メモリアクセスレイテンシ短縮を目的とするが
再発行要求が頻発した際には結果として最初のリクエス
ト発行から最終的に正当なデータが得られるまでのレイ
テンシが増加する可能性のあるローカルメモリリードリ
クエスト処理方式」に対して、再発行要求が頻発するお
それがある場合にそれ以上再発行要求が発生することが
ない非ローカルメモリリードパスを使用したローカルメ
モリリードリクエスト実行処理に切り替える機能(LR
MおよびRRMによる機能)を加えることにより、メモ
リアクセスレイテンシがある一定値以上増加することを
回避できるという効果が生じる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るメモリアクセ
スレイテンシ増加回避方式が適用されるNUMA型マル
チプロセッサシステムの構成を示すブロック図である。
【図2】図1中のLRMの構成を示すブロック図(回路
構成図)である。
【図3】図1に示すNUMA型マルチプロセッサシステ
ムで使用されるリクエストコードの一例を示す図であ
る。
【図4】図1中のローカルメモリリードリクエスト制御
部からプロセッサリクエスト制御部に通知されるローカ
ルメモリリードリクエスト再発行指示の意味を示す図で
ある。
【図5】図1中のRRMの構成を示すをブロック図(回
路構成図)である。
【図6】図1に示すメモリアクセスレイテンシ増加回避
方式の具体的な動作の一例を示すタイミングチャートで
ある。
【図7】本発明の第2の実施の形態に係るメモリアクセ
スレイテンシ増加回避方式を説明するためのブロック図
である。
【符号の説明】
10,11,70,71,72,73 CPUカード 101,102 プロセッサ 103,104 第1のバス 105,106 プロセッサリクエスト制御部 107,108 バス出力リクエスト制御部 109 第2のバス 110,111 コヒーレンシ制御部 112,113 TAG 114,115 ローカルメモリリードリクエスト制御
部 116,117 ローカルメモリリード発行線 118,119 ローカルメモリリード再発行要求線 120,121 キャッシュインバリデート要求線 122,123 メモリアクセスリクエスト制御部 124,125 メモリ 126,127 自CPUカードリードリプライ線 128,129 他CPUカードリードリプライ線 130 第3のバス 200 LRM 201,205,501 ストローブ 202,502,524 リクエストコード 203,206,503,525 リクエストアドレス 204,207,215,504,507,526 リ
クエストID 213,505 V 214,506 S 208 ライトリクエスト識別回路 209,509 Vレジスタ 210,510 リクエストアドレスレジスタ 211,511 リクエストIDレジスタ 212 CHK−Flag 500 RRM 508 ローカルメモリリード判定回路 512 リトライ回数カウンタ 513,701,702,703,704 信号線 514,516,519,521 ANDゲート 515 ANDゲート・ORゲート 517 比較回路 518 NLP−Flag 520 LP−Flag 522,523 リクエスト発行信号 705,706,707,708 バスリクエスト受け
付け調停部
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/00 550 - 12/06 G06F 13/16 - 13/18

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のCPUカード間を信号線で接続し
    たNUMA型マルチプロセッサシステムにおいて、自C
    PUカード内のプロセッサからローカルメモリリードリ
    クエストを受けた際に、当該ローカルメモリリードリク
    エストの再発行要求が規定回数続く前には性能向上を目
    的としてローカルメモリリードパスを使用してメモリリ
    ードリクエストを行い、当該ローカルメモリリードリク
    エストの再発行要求が規定回数続いた時には非ローカル
    メモリリードパスを使用してメモリリードリクエストを
    行うように制御するRRMを備える各CPUカード内の
    プロセッサリクエスト制御部と、前記プロセッサリクエ
    スト制御部からのローカルメモリリードリクエスト発行
    指示に基づいて仕掛かり中のローカルメモリリードリク
    エストに関する情報を保持し、当該保持情報およびコヒ
    ーレンシ制御部からの処理中リクエスト情報に基づき、
    ローカルメモリリードリクエストのメモリリードから当
    該ローカルメモリリードリクエストに対応するコヒーレ
    ンシ制御用リクエストがコヒーレンシ制御部に受け付け
    られるまでの期間を管理し、この期間中に当該ローカル
    メモリリードリクエストのアクセス対象のアドレスと同
    一アドレスに対するメモリライトリクエストがコヒーレ
    ンシ制御部に受け付けられたか否かをチェックし、その
    ようなメモリライトリクエストが存在したならばローカ
    ルメモリリードリクエスト再発行指示を出力するLRM
    を備えるローカルメモリリードリクエスト制御部とを有
    することを特徴とするメモリアクセスレイテンシ増加回
    避方式。
  2. 【請求項2】 LRMが、ストローブ,リクエストコー
    ド,リクエストアドレス,およびリクエストIDを有す
    るコヒーレンシ制御部からの処理中リクエスト情報なら
    びにストローブ,リクエストアドレス,およびリクエス
    トIDを有するプロセッサリクエスト制御部からのロー
    カルメモリリードリクエスト発行指示を入力し、ローカ
    ルメモリリードリクエスト再発行指示を出力し、ライト
    リクエスト識別回路と、Vレジスタと、リクエストアド
    レスレジスタと、リクエストIDレジスタと、CHK−
    Flagとを含んで構成されていることを特徴とする請
    求項1記載のメモリアクセスレイテンシ増加回避方式。
  3. 【請求項3】 RRMが、ストローブ,リクエストコー
    ド,リクエストアドレス,およびリクエストIDを有す
    るプロセッサ発行リクエスト情報ならびにLRMから出
    力されたローカルメモリリードリクエスト再発行指示を
    入力し、バス出力リクエスト制御部にリクエストが発行
    されることを示すリクエスト発行信号,ローカルメモリ
    リードリクエスト制御部およびメモリアクセスリクエス
    ト制御部にリクエストが発行されることを示すリクエス
    ト発行信号,ならびにバス出力リクエスト制御部,ロー
    カルメモリリードリクエスト制御部,およびメモリアク
    セスリクエスト制御部に転送されるリクエストコード,
    リクエストアドレス,およびリクエストIDを出力し、
    ローカルメモリリード判定回路と、Vレジスタと、リク
    エストアドレスレジスタと、リクエストIDレジスタ
    と、リトライ回数カウンタと、NLP−Flagと、L
    P−Flagとを含んで構成されていることを特徴とす
    る請求項1または請求項2記載のメモリアクセスレイテ
    ンシ増加回避方式。
  4. 【請求項4】 複数のCPUカードの接続方法およびC
    PUカード間接続バスへのリクエストの入出力に関する
    調停方法が「リクエストの転送に関して1本のバス接続
    信号線によって各CPUカードを接続し、リクエストの
    出力時に全CPUカードで同一のアービタにより調停を
    行い、ただひとつのCPUカードのみがリクエスト出力
    許可を得る方法」であることを特徴とする請求項1,請
    求項2,または請求項3記載のメモリアクセスレイテン
    シ増加回避方式。
  5. 【請求項5】 複数のCPUカードの接続方法およびC
    PUカード間接続バスへのリクエストの入出力に関する
    調停方法が「各CPUカードがリクエストの出力専用に
    使用する信号線とリクエストの入力に使用する信号線群
    とを含んで構成され、各CPUカードは独立したタイミ
    ングでリクエストを自分の出力専用の信号線を用いて自
    分自身も含めた全てのCPUカードに転送し、各CPU
    内のバスリクエスト受け付け調停部が当該リクエストを
    全CPUカードにおいて同タイミングで受け付けて全C
    PUカードで共通のアービタ論理によりどのリクエスト
    を先に処理するかを決定する方法」であることを特徴と
    する請求項1,請求項2,または請求項3記載のメモリ
    アクセスレイテンシ増加回避方式。
  6. 【請求項6】 プロセッサ内蔵キャッシュにストアスル
    ー方式が採用されているNUMA型マルチプロセッサシ
    ステムに適用されることを特徴とする請求項1,請求項
    2,請求項3,請求項4,または請求項5記載のメモリ
    アクセスレイテンシ増加回避方式。
JP2001071315A 2001-03-14 2001-03-14 メモリアクセスレイテンシ増加回避方式 Expired - Fee Related JP3404386B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001071315A JP3404386B2 (ja) 2001-03-14 2001-03-14 メモリアクセスレイテンシ増加回避方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001071315A JP3404386B2 (ja) 2001-03-14 2001-03-14 メモリアクセスレイテンシ増加回避方式

Publications (2)

Publication Number Publication Date
JP2002269064A JP2002269064A (ja) 2002-09-20
JP3404386B2 true JP3404386B2 (ja) 2003-05-06

Family

ID=18929056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001071315A Expired - Fee Related JP3404386B2 (ja) 2001-03-14 2001-03-14 メモリアクセスレイテンシ増加回避方式

Country Status (1)

Country Link
JP (1) JP3404386B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829038B2 (ja) * 2006-08-17 2011-11-30 富士通株式会社 マルチプロセッサシステム
JP6680973B2 (ja) * 2016-01-07 2020-04-15 富士通株式会社 情報処理装置、情報処理装置の制御方法及び演算処理装置

Also Published As

Publication number Publication date
JP2002269064A (ja) 2002-09-20

Similar Documents

Publication Publication Date Title
US5615343A (en) Method and apparatus for performing deferred transactions
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US5568620A (en) Method and apparatus for performing bus transactions in a computer system
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US6012118A (en) Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
EP0608622A1 (en) Multiprocessor system with multilevel caches
EP0524683A1 (en) Scientific visualization system
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
US6553442B1 (en) Bus master for SMP execution of global operations utilizing a single token with implied release
US7653788B2 (en) Cache coherency in a shared-memory multiprocessor system
EP0553743A1 (en) A cache controller
US20190155729A1 (en) Method and apparatus for improving snooping performance in a multi-core multi-processor
US6507880B1 (en) Bus protocol, bus master and bus snooper for execution of global operations utilizing multiple tokens
US6516368B1 (en) Bus master and bus snooper for execution of global operations utilizing a single token for multiple operations with explicit release
US5903738A (en) Method and apparatus for performing bus transactions in a computer system
EP0380842A2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
US6480915B1 (en) Bus protocol and token manager for SMP execution of global operations utilizing a single token with implied release
US6272604B1 (en) Contingent response apparatus and method for maintaining cache coherency
US6460101B1 (en) Token manager for execution of global operations utilizing multiple tokens
US6260091B1 (en) Method and apparatus for performing out-of-order bus operations in which an agent only arbitrates for use of a data bus to send data with a deferred reply
US6460100B1 (en) Bus snooper for SMP execution of global operations utilizing a single token with implied release
JP3404386B2 (ja) メモリアクセスレイテンシ増加回避方式
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US20030131158A1 (en) Increased computer peripheral throughput by using data available withholding

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees