JPH08305633A - 分散メモリ型マルチプロセッサのキャッシュ制御システム - Google Patents

分散メモリ型マルチプロセッサのキャッシュ制御システム

Info

Publication number
JPH08305633A
JPH08305633A JP7128884A JP12888495A JPH08305633A JP H08305633 A JPH08305633 A JP H08305633A JP 7128884 A JP7128884 A JP 7128884A JP 12888495 A JP12888495 A JP 12888495A JP H08305633 A JPH08305633 A JP H08305633A
Authority
JP
Japan
Prior art keywords
data transfer
cache
instruction
memory
address
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.)
Granted
Application number
JP7128884A
Other languages
English (en)
Other versions
JP2953343B2 (ja
Inventor
Hisao Koyanagi
尚夫 小柳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP7128884A priority Critical patent/JP2953343B2/ja
Publication of JPH08305633A publication Critical patent/JPH08305633A/ja
Application granted granted Critical
Publication of JP2953343B2 publication Critical patent/JP2953343B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 要素プロセッサ間転送処理とオーバーラップ
して他のメモリアクセスを実行することで要素プロセッ
サ間転送処理を見えなくし、かつ、ソフトウェアベース
のキャッシュ制御の欠点である無駄なキャッシュ無効化
を回避する。 【構成】 分散メモリ型マルチプロセッサの各要素プロ
セッサ10が、各エントリ毎にデータの属性を示す属性
情報を設定する属性フィールド211有するキャッシュ
メモリを備え、要素プロセッサ間データ転送によってメ
モリ14に対して書き込みが行われたアドレスを送出す
る要素プロセッサ間データ転送制御部15と、その書込
みアドレスと一致するキャッシュメモリのエントリの属
性フィールドに属性情報を設定するキャッシュ制御部1
2と、要素プロセッサ間のデータ転送処理中に、メモリ
に対するアクセス命令を実行し、データ転送処理後に、
属性フィールドに属性情報を設定したキャッシュメモリ
のエントリを無効化する無効命令を実行する命令制御部
11を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、分散メモリ型マルチプ
ロセッサのキャッシュ制御システムに関し、特に、要素
プロセッサ間のデータ転送処理とオーバーラップして別
のメモリアクセス処理の実行を可能とする分散メモリ型
マルチプロセッサのキャッシュ制御システムに関する。
【0002】
【従来の技術】キャッシュ一致制御は、マルチプロセッ
サの方式技術において重要な問題の1つである。一般に
考えられている方式には、スヌープキャッシュ方式、デ
ィレクトリ方式、ソフトウェアベースの方式等が提案さ
れている。このうち、スヌープキャッシュ方式は、多く
のマルチプロセッサ方式の情報処理装置において採用さ
れている。また、ディレクトリ方式もSC1(スケーラ
ブル・コヒーレント・インターフェース)等にも採用さ
れ、将来的には広く普及すると考えられている。しか
し、両方式には一長一短があり、一部のアプリケーショ
ン・プログラムについていえば性能面に、あるいは製品
のコスト面で問題がある。
【0003】ソフトウェア・ベースの方式については、
限られた容量のキャッシュを効率よく利用することがで
きないという欠点があるものの、キャッシュ一致制御の
ための要素プロセッサ間通信が少ないことから性能向上
に寄与すると共に、通信パスが存在せず、かつディレク
トリのような高価な記憶素子を必要としないことからコ
スト的にも非常に有利である。しかし、このソフトウェ
ア・ベースのキャッシュ一致制御方式では、キャッシュ
に存在するデータが有効か否かを確実に判断することが
できないという欠点がある。
【0004】一方、分散メモリ型マルチプロセッサは、
近年、そのスケーラビリティ、ピーク性能の高さから一
部で商用化されるなど、1TFLOPS(テラフロップ
ス)の性能を実現する可能性があることから非常に注目
されている。しかし、分散メモリ型マルチプロセッサに
おいて高性能を達成するための大きな障害は、要素プロ
セッサ間通信性能が上がらないことである。
【0005】また、今日提供されている情報処理装置の
うちには、拡張記憶装置が搭載されているものが多数あ
り、大容量メモリへの需要は今後も大きくなると考えら
れている。しかし、それに伴って、拡張記憶装置に対す
るデータ転送頻度も高くなることから、システム性能に
与える影響も大き〈なる傾向にあり、その速度向上が望
まれている。ただし、現状のマルチプロセッサにおける
キャッシュ一致制御に関しては、十分な考慮が払われて
いないのが実情である。これに関しては、例えば、拡張
記憶装置からの読み出しデータを主記憶装置に移動させ
る領域とそれ以外の処理で使用される記憶領域をソフト
ウェアが区別する方式、あるいは主記憶装置に書き込ま
れたデータ領域でキャッシュされているデータをデータ
転送中に無効化するといった方式が一般的に採用されて
いる。
【0006】
【発明が解決しようとする課題】上述した従来の分散メ
モリ型マルチプロセッサにおいて採用されているソフト
ウェアによるキャッシュ一致制御では、キャッシュに存
在するデータが有効か否かの判断が正確に行えないとい
う問題があった。このことが、限られた容量のキャッシ
ュメモリを有効に活用することができず、実行性能を低
下させる大きな要因の1つとなっている。
【0007】また、従来の分散メモリ型マルチプロセッ
サにおいては、要素プロセッサ間のデータ転送速度が低
いことが、性能向上を実現するうえで大きな障害となっ
ている。近年、プロセッサのめざましい性能向上がある
ものの、マルチプロセッサ化による性能向上の追求は今
後も続けられると思われる。しかし、CPUの速度向上
に反してCPUを接続するパスの通信性能は桁違いに遅
く、実プログラムで要素プロセッサ間のデータ転送を含
む場合、CPUがいくら高速でも実効性能は向上しな
い。このことが、分散メモリ型マルチプロセッサの普及
を妨げる大きな要因となっている。
【0008】また、従来の方法では、拡張記憶装置から
主記憶装置へデータを転送する際に、記憶領域の管理を
ソフトウェアで行う必要があると共に、データ転送処理
中においてはそれとは無関係の処理をオーバーラップし
て実行出来ないという問題があり、このことが、実行性
能を低下させる要因となっている。
【0009】本発明は、上記従来の欠点を解消し、性能
向上を妨げる最大の要因である要素プロセッサ間転送処
理とオーバーラップして他のメモリアクセスを実行する
ことで要素プロセッサ間転送処理を見えなくする機会を
多くし、かつ、ソフトウェアベースのキャッシュ制御の
欠点である無駄なキャッシュ無効化を回避することので
きる分散メモリ型マルチプロセッサのキャッシュ制御シ
ステムを提供することを目的とする。
【0010】
【課題を解決するための手段】上記の目的を達成するた
め、本発明は、CPUとメモリを組み合わせた要素プロ
セッサを複数互いに接続してなり、前記要素プロセッサ
間のデータ転送機能を有する分散メモリ型マルチプロセ
ッサにおいて、前記要素プロセッサが、固定長のブロッ
クデータを格納する複数のエントリからなり、かつ前記
各エントリ毎にデータの属性を示す属性情報を設定する
属性フィールドを備えるキャッシュメモリと、前記要素
プロセッサ間データ転送を行なうと共に、前記要素プロ
セッサが備える前記メモリに対してデータの書き込みが
行われる場合に、書き込みが行われたアドレスを前記キ
ャッシュメモリに送出する要素プロセッサ間データ転送
制御手段と、前記要素プロセッサ間データ転送制御手段
からの前記書込みアドレスと一致する前記キャッシュメ
モリのエントリの前記属性フィールドに前記属性情報を
設定するキャッシュ制御手段と、前記要素プロセッサ間
のデータ転送処理中に、前記メモリに対するアクセス命
令を実行し、前記要素プロセッサ間のデータ転送処理後
に、前記属性フィールドに前記属性情報を設定した前記
キャッシュメモリのエントリを無効化する無効命令を実
行する命令実行手段を備える構成としている。
【0011】また、他の態様では、前記命令実行手段
は、前記要素プロセッサ間のデータ転送の起動を指示す
る命令と前記データ転送の終了を待ち合わせる命令の間
で、前記データ転送中に実行可能なアクセス命令を実行
する構成としている。
【0012】さらに他の態様では、前記命令実行手段
は、前記要素プロセッサ間のデータ転送中に、キャッシ
ュミスを起こした前記アクセス命令の実行を前記データ
転送終了まで延期させる構成としている。
【0013】また、好ましい他の態様では、前記キャッ
シュ制御手段は、前記要素プロセッサ間データ転送制御
手段からの前記書込みアドレスと前記キャッシュメモリ
のアドレスを比較するアドレス比較手段と、前記アドレ
ス比較手段からのアドレス一致信号に基づいて前記キャ
ッシュメモリのエントリの前記属性フィールドに前記属
性情報を設定する設定手段を備える。
【0014】さらに、好ましい態様では、前記命令実行
手段は、前記要素プロセッサ間のデータ転送中であるこ
とを前記キャッシュ制御手段に通知し、前記キャッシュ
制御手段は、前記要素プロセッサ間データ転送制御手段
からの前記書込みアドレスと前記キャッシュメモリのア
ドレスを比較するアドレス比較手段と、前記アドレス比
較手段からのアドレス一致信号と前記命令実行手段から
のデータ転送中の通知に基づいて前記キャッシュメモリ
のエントリの前記属性フィールドに前記属性情報を設定
する設定手段と、前記命令実行手段からの無効命令に基
づいて前記属性フィールドに前記属性情報を設定した前
記キャッシュメモリのエントリを無効化する手段を備え
る。
【0015】
【作 用】本発明によれば、要素プロセッサ間のデータ
転送処理中に更新されるデータであってキャッシュメモ
リにキャッシュされているデータに対してマークを設定
し、要素プロセッサ間のデータ転送中に実行される処理
においてキャッシュメモリをアクセス可能とし、要素プ
ロセッサ間のデータ転送後にマークされているキャッシ
ェデータのみを無効化することによって、要素プロセッ
サ間のデータ転送処理による性能低下を防ぐと共に、無
駄なキャッシュ無効化を回避する。すなわち、要素プロ
セッサ間データ転送起動命令と要素プロセッサ間データ
転送終了待ち命令で、要素プロセッサ間データ転送前に
実行することが決定している処理を挟み込み、要素プロ
セッサ間データ転送時間中にその挟み込んだ処理を実行
することにより、要素プロセッサが何も処理することが
無いアイドル状態の時間を削減する。
【0016】
【実施例】以下、本発明の実施例について図面を参照し
て詳細に説明する。図1は、本発明によるキャッシュ制
御方式を適用した分散メモリ型マルチプロセッサの第1
実施例の構成を示すブロック図である。
【0017】図1においては、分散メモリ型マルチプロ
セッサを構成する複数の要素プロセッサのうちの一つの
要素プロセッサの構成を示している。他の要素プロセッ
サについても同様の構成となっている。
【0018】本実施例の要素プロセッサ10は、命令制
御部11、キャッシュ制御部12、メモリアクセス制御
部13、ローカルメモリ14、要素プロセッサ間データ
転送制御部15を備えて構成される。ここで、要素プロ
セッサ間データ転送制御部15は、自身のローカルメモ
リ14とデータ転送相手である他の要素プロセッサのロ
ーカルメモリ20との間でデータ転送を制御する。
【0019】本実施例の特徴は、要素プロセッサ間のデ
ータ転送処理中に更新されるデータであってキャッシュ
メモリにキャッシュされているデータに対してマークを
設定し、要素プロセッサ間のデータ転送中に実行される
処理においてキャッシュメモリをアクセス可能とし、要
素プロセッサ間のデータ転送後にマークされているキャ
ッシェデータのみを無効化することによって、要素プロ
セッサ間のデータ転送処理による性能低下を防ぐと共
に、無駄なキャッシュ無効化を回避することにある。
【0020】このような特徴を実現するためには、ある
程度のプログラムのチューニングが必要となるが、ここ
で必要とされている技術は、従来の最適化コンパイラ技
術程度で十分可能である。すなわち、要素プロセッサ間
データ転送の性能低下を他の処理で隠すために、要素プ
ロセッサ間のデータ転送処理の起動を前もってかけてお
き、要素プロセッサ間データ転送起動命令と要素プロセ
ッサ間データ転送終了待ち命令で、要素プロセッサ間デ
ータ転送前に実行することが決定している処理を挟み込
み、要素プロセッサ間データ転送時間中にその挟み込ん
だ処理を実行することにより、要素プロセッサが何も処
理することが無いアイドル状態の時間を削減する構成と
する。
【0021】要素プロセッサ間データ転送起動命令と要
素プロセッサ間データ転送終了待ち命令に挟まれた処理
ブロックにおいてキャッシュミスを起こさない限り、要
素プロセッサ間データ転送と上記処理ブロックによるア
クセス処理を並行して実行することができる。もし、上
記処理ブロックにおける処理でキャッシュミスを起こし
た場合は、メモリアクセス制御部13によって、その命
令のアクセスはホールドされる。
【0022】要素プロセッサ間データ転送処理中は、ロ
ーカルメモリ14に対して書き込みが行われるアドレス
が登録されているキャッシュメモリのエントリ内の付随
情報にマークを設定するが、このマークされたキャッシ
ュデータは要素プロセッサ間データ転送処理中のメモリ
アクセス命令のみが使用可能なデータであり、要素プロ
セッサ間データ転送終了後は無効化が必要である。ここ
で、要素プロセッサ間データ転送終了待ち命令とは、要
素プロセッサ間データ転送終了まで動作が保証されない
処理を延期させるための命令である。この命令によっ
て、要素プロセッサ間データ転送と並行実行可能ブロッ
クの後の処理の正当性が保証される。
【0023】図1の実施例において、命令制御部11
は、命令をデコードし、信号線102を介してキャッシ
ュ制御部12に対してアクセス指示を送る。また、要素
プロセッサ間のデータ転送処理を行なう場合は、メモリ
制御部11が、メモリアクセス制御部13と要素プロセ
ッサ間データ転送制御部15に対して信号線103、1
05を介して転送起動を通知する。
【0024】さらに、命令制御部11には、要素プロセ
ッサ間データ転送制御部16から信号線112を介して
送られる通知によって要素プロセッサ間データ転送起動
から転送終了までの期間を認識する機構が設けられ、命
令制御部11は、その状態をキャッシュ制御部12に対
して信号線104を介して通知する。
【0025】キャッシュ制御部12は、命令実行制御部
11からのメモリアクセス命令の処理を行い、もしキャ
ッシュミスが発生した場合は、メモリアクセス制御部1
3に対して信号線110によって指示する。また、要素
プロセッサ間データ転送処理中は、要素プロセッサ間デ
ータ転送制御部15からキャッシュ制御部12に対し
て、同一要素プロセッサ10内のローカルメモリ14に
対する書き込みが行われるアドレスが信号線115によ
って通知され、それがキャッシュメモリ内に保持されて
いる場合、そのエントリにマークが設定される。さら
に、命令制御部11からの指示によってキャッシュ無効
化命令が発行された場合、マークされたエントリのみを
無効化する処理が行なわれる。
【0026】メモリアクセス制御部13は、信号線11
0を介してキャッシュ制御部12からキャッシュミスの
際のキャッシュデータ要求が通知された場合、同一要素
プロセッサ内のローカルメモリ14に対して、信号線1
11を介して要求されたデータのアクセスを行う。ま
た、要素プロセッサ間データ転送処理中である場合は、
キャッシュミス時のキャッシュデータ要求を要素プロセ
ッサ間データ転送処理が終了するまで保留する。その
時、要素プロセッサ間データ転送処理の開始は信号線1
03によって、終了は信号線113によってメモリアク
セス制御部13に通知される。
【0027】要素プロセッサ間データ転送制御部15
は、命令制御部11から信号線105を介して送られる
起動指示を受取ることにより、信号線120,121を
介して要素プロセッサ間、すなわち自身のローカルメモ
リ15と他の要素プロセッサのローカルメモリ20間に
おけるデータ転送の処理を実行する。その時、要素プロ
セッサ間データ転送制御部15は、同一要素プロセッサ
内のローカルメモリ14に対してデータの書き込みを行
う場合、信号線115を介して書込みを行なうデータの
アドレスをキャッシュ制御部12に送出する。要素プロ
セッサ間データ転送処理が終了した場合は、信号線11
2,113を介して命令制御部11とメモリアクセス制
御部13に転送終了が通知される。
【0028】図2は、本実施例の特徴であるキャッシュ
制御部12の構成例を示すブロック図である。図2にお
いては、キャッシュ制御部12は、4ウェイのキャッシ
ュメモリのアクセス制御を行なう構成としている。な
お、図2においては、4つのアドレスアレイのうち、一
つの構成のみを示し、他のアドレスアレイの詳細につい
ては全く同一の構成であるため省略している。
【0029】図2において、201は命令制御部11か
らのアクセス指示によって送られるアドレスまたは要素
プロセッサ間データ転送制御部16から信号線115を
介して送られるアドレス251が格納されるキャッシュ
ブロック・アドレスレジスタであり、202はキャッシ
ュブロック・アドレスレジスタ201に格納されている
アドレスの上位アドレスの値を1サイクル毎にインクリ
メントするカウンタである。
【0030】210はアドレスアレイ、211は要素プ
ロセッサ間データ転送制御部16から送られるアドレス
が属するエントリがキャッシュメモリ内に存在するかど
うかを示す属性情報を設定する属性フィールド、212
はキャッシュメモリのデータが有効かどうかを示す有効
ビットである。
【0031】また、213は命令制御部11で実行され
る要素プロセッサ間のデータ転送起動命令に伴って送ら
れるデータ転送命令信号260とキャッシュ無効化命令
に伴って送られるキャッシュクリア信号261のインバ
ータ215の出力との論理積をとるAND回路、214
はキャッシュクリア信号261と属性フィールド211
の値との否定的論理積をとるNAND回路である。属性
フィールド211には、AND回路213の出力である
論理値“1”または“0”が属性情報として設定され
る。また、有効ビット212には、NAND回路214
の出力である論理値“1”または“0”が設定される。
属性フィールド211の値は、“1”の時に無効化対象
であることを示している。また、有効ビット212の値
は、“1”の時に有効であることを示している。
【0032】216はキャッシュブロック・アドレスレ
ジスタ201の下位アドレス252とアドレスアレイ2
10のアドレスを比較するアドレス比較器、217はア
ドレス比較器216の出力と有効ビット212との論理
積をとるAND回路、218はデータ転送命令信号26
0とAND回路217の出力との論理積をとるAND回
路、219はキャッシュクリア信号261と属性フィー
ルド211の値との論理積をとるAND回路、220は
AND回路218,219の出力の論理和をとるOR回
路である。OR回路220の出力によってアドレスアレ
イ210の書込み指示WEのタイミングが設定される。
【0033】ここで、図2を参照して要素プロセッサ間
データ転送時とキャッシュ無効化命令時の動作について
説明する。まず、要素プロセッサ間データ転送時の動作
について説明する。
【0034】要素プロセッサ間データ転送時には、要素
プロセッサ間データ転送制御部16から信号線115を
介してローカルメモリ15に対するデータの書込みアド
レス251が送られ、命令制御部11からその有効タイ
ミングを示す転送命令信号260が送られてくる。アド
レス251は、キャッシュブロック・アドレスレジスタ
201に格納される。転送命令信号260は、AND回
路213に入力する。この時、要素プロセッサ間データ
転送時にはキャッシュクリア信号261が論理値“0”
であるので、AND回路213の出力が論理値“1”と
なる。
【0035】この時、キャッシュブロック・アドレスレ
ジスタ201の下位アドレス252とアドレスアレイ2
10のアドレスとがアドレス比較器216によって比較
されることにより、要素プロセッサ間データ転送処理に
よって転送されたデータのアドレスがキャッシュメモリ
内に存在するかを判別する。
【0036】要素プロセッサ間データ転送処理によって
転送されたデータのアドレスがキャッシュメモリ内に存
在する場合、アドレス比較器216からアドレス一致を
示す“1”がAND回路217に出力される。ここで、
AND回路217の他方の入力には、キャッシュブロッ
ク・アドレスレジスタ201の上位アドレス253で指
定されるアドレスに対応するアドレスアレイ210の有
効ビット212が入力している。従って、有効ビット2
12が有効を示す“1”であれば、AND回路217か
ら論理値“1”が出力される。
【0037】そして、転送命令信号260とAND回路
217の出力を入力するAND回路218の出力が論理
値“1”となるので、アドレスアレイ210の書込み指
示WEがライトイネーブル状態となる。これにより、キ
ャッシュブロック・アドレスレジスタ201の上位アド
レス253で指定されるアドレスに対応するアドレスア
レイ210の属性フィールド211にAND回路213
の出力“1”がキャッシュ無効化対象を示すマークとし
てセットされる。以下、同様にして要素プロセッサ間デ
ータ転送制御部16から送られるデータの書込みアドレ
ス251の全てについて上記処理を行なう。これによ
り、要素プロセッサ間のデータ転送においてローカルメ
モリに書き込まれるデータであって、キャッシュされて
いるデータについてアドレスアレイ210の属性フィー
ルド211にマーク“1”が設定される。
【0038】次に、キャッシュ無効化命令時の動作につ
いて図3のフローチャートを参照して説明する。まず、
命令制御部11において要素プロセッサ間のデータ転送
終了待ち命令が実行された後、すなわち要素プロセッサ
間データ転送が終了した後に、命令制御部11において
キャッシュ無効化命令が実行され、それによってキャッ
シュクリア信号261が送られる。この時、キャッシュ
無効化命令によってキャッシュブロック・アドレスレジ
スタ201の上位アドレスに全て“0”がセットされ
る。
【0039】キャッシュ無効化命令が実行されると、ま
ず、アドレスアレイ210の先頭アドレスから順に、有
効ビット212が有効“1”であるかどうかを判別する
(ステップ301)。ここで、有効ビット212が有効
でなければ、キャッシュブロック・アドレスレジスタ2
01の上位アドレスを1サイクル毎にカウンタ2022
でインクリメントし(ステップ305)、アドレスアレ
イ210の全てのアドレスをアクセスするまで、ステッ
プ301からの処理を繰り返す(ステップ306)。
【0040】ステップ301で、有効ビット212が有
効であれば、属性フィールド211がキャッシュ無効化
対象となっているか、すなわちマーク“1”がセットさ
れているかが判別され(ステップ302)、キャッシュ
無効化対象となっていれば、上位アドレス253に対応
するアドレスアレイ210の有効ビット212がリセッ
トされる(ステップ303)。この判別は、図2におい
て、キャッシュクリア信号261と属性フィールド21
1の値を入力するNAND回路214によって行なわれ
る。すなわち、ここでは、キャッシュクリア信号261
が“1”なので、属性フィールド211の値が“1”で
あれば、NAND回路214から“0”が出力されると
共に、同様に、キャッシュクリア信号261と属性フィ
ールド211の値を入力するAND回路219から
“1”が出力されアドレスアレイ210の書込み指示W
Eがライトイネーブル状態となる。よって、上位アドレ
ス253に対応するアドレスアレイ210の有効ビット
212に“0”が設定されて有効ビット212のリセッ
トが行なわれる。
【0041】同時に、AND回路213には、転送命令
信号260の“0”とキャッシュクリア信号261の反
転値“0”が入力されるため、AND回路213から
“0”が出力されているので、上位アドレス253に対
応するアドレスアレイ210の属性フィールド211に
“0”が設定される(ステップ304)。
【0042】この動作をアドレスアレイの全エントリに
ついて行う(ステップ306)。これによって、要素プ
ロセッサ間データ転送時にマークされた部分のキャッシ
ュメモリの内容が無効化される。従って、データ転送時
にローカルメモリ14に書き込まれたデータについて
は、キャッシュメモリの内容が無効化されるので、デー
タの正当性が補償される。
【0043】図4は、本発明による効果があるプログラ
ムの内容例について説明した図である。図4において、
まず、要素プロセッサ間データ転送処理を起動する命令
が実行され、要素プロセッサ間データ転送制御部15
が起動する。
【0044】次に、要素プロセッサ間データ転送処理の
実行中に実行すべきプログラム処理ブロックが存在す
る。このプログラム処理ブロックの中にローカルメモ
リ14からデータを読み込むロード命令が存在しても、
キャッシュにヒットしていれば、その時実行中の要素プ
ロセッサ間データ転送処理によってキャッシング処理が
不正となることはない。その後、要素プロセッサ間デー
タ転送処理待ち命令とキャッシュ無効化命令が実行
される。
【0045】キャッシュ無効化命令では、プログラム
処理ブロックを実行している際に、要素プロセッサ間
データ転送処理によってローカルメモリ14に対して書
き込みが発生したキャッシュメモリのエントリに対して
のみ上述したような無効化を行うことによって、プログ
ラム処理ブロックの後のプログラム処理ブロックに
対しても処理の正当性を補償することができる。
【0046】図5は、図4のプログラムの動作シーケン
スについて説明した図である。要素プロセッサ間データ
転送起動命令とプログラム処理ブロックまではスム
ーズに実行されるが、要素プロセッサ間データ転送待ち
命令を実行する場合、要素プロセッサ間データ転送処
理が終了するまでその命令の実行指示が延期される。こ
のことで、要素プロセッサ間データ転送起動処理/転送
処理と先行するプログラム処理をオーバーラップさせる
ことができるため、分散メモリ型並列処理での性能向上
の大きな障害となる要素プロセッサ間要素プロセッサ間
データ転送処理を隠蔽することができ処理効率の向上が
実現する。
【0047】図6は、要素プロセッサ間データ転送処理
と並行して実行されるプログラム処理単位の中にキャ
ッシュミスを発生するメモリアクセス命令が存在する場
合の処理について示したものである。キャッシュミスを
起こすデータロード命令(LD命令)−3が存在する
こと以外は、図4のプログラムと同様である。
【0048】図7は、図6のプログラムの動作シーケン
スについて説明した図である。キャッシュミスを起こし
たLD命令−3については、要素プロセッサ間データ
転送処理が終了するまでローカルメモリ14へのアクセ
ス指示がメモリアクセス制御部13でホールドされ、こ
れによって不正動作を回避する。
【0049】図8は、本発明によるキャッシュ制御方式
を適用した分散メモリ型マルチプロセッサの第2実施例
の構成を示すブロック図である。この第2の実施例で
は、主記憶装置81と拡張記憶装置82間におけるデー
タ転送を行なう分散メモリ型マルチプロセッサを示して
いる。図1の第1実施例と比較して分かるように、転送
元のメモリが他の要素プロセッサのローカルメモリ20
であるか、拡張記憶装置82であるかの違いだけであ
り、その他の構成及び動作については第1の実施例と全
く同一であるので、図1と共通の符号を付して詳細な説
明を省略する。キャッシュ制御部12についても図2の
構成と同じである。以上好ましい実施例をあげて本発明
を説明したが、本発明は必ずしも上記実施例に限定され
るものではない。
【0050】
【発明の効果】以上説明したように、本発明の分散メモ
リ型マルチプロセッサのキャッシュ制御システムによれ
ば、性能向上を妨げる最大の要因である要素プロセッサ
間転送処理とオーバーラップして別のメモリアクセス処
理を実行するようにしたので、要素プロセッサ間のデー
タ転送処理を隠蔽することができ、かつ、従来のソフト
ウェアベースのキャッシュ制御の欠点である無駄なキャ
ッシュ無効化を回避することができる。これにより、分
散メモリ型マルチプロセッサにおける性能の向上を実現
することができる。
【0051】また、要素プロセッサ間のデータ転送終了
後に、キャッシュメモリのうち属性情報を設定したエン
トリのみを無効化するため、データ転送終了後の処理に
おいても処理の正当性を補償することができる。
【図面の簡単な説明】
【図1】 本発明によるキャッシュ制御方式を適用した
分散メモリ型マルチプロセッサの第1実施例の構成を示
すブロック図である。
【図2】 本実施例の特徴であるキャッシュ制御部の構
成例を示すブロック図である。
【図3】 キャッシュ制御部におけるキャッシュ無効化
命令時の動作を説明するフローチャートである。
【図4】 本発明による効果があるプログラムの内容例
について説明した図である。
【図5】 図4に示すプログラムの動作シーケンスにつ
いて説明した図である。
【図6】 要素プロセッサ間データ転送処理と並行して
実行されるプログラム処理の中にキャッシュミスを発生
するメモリアクセス命令が存在する場合のプログラムの
内容例を説明した図である。
【図7】 図6に示すプログラムの動作シーケンスにつ
いて説明した図である。
【図8】 本発明によるキャッシュ制御方式を適用した
分散メモリ型マルチプロセッサの第2実施例の構成を示
すブロック図である。
【符号の説明】
10 要素プロセッサ 11 命令制御部 12 キャッシュ制御部 13 メモリアクセス制御部 14,20 ローカルメモリ 15 要素プロセッサ間データ転送制御部 201 キャッシュブロック・アドレスレジスタ 202 カウンタ 210 アドレスアレイ 211 属性フィールド 212 有効ビット 213,217,218,219 AND回路 214 NAND回路 215 インバータ 216 アドレス比較器 220 OR回路

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 CPUとメモリを組み合わせた要素プロ
    セッサを複数互いに接続してなり、前記要素プロセッサ
    間のデータ転送機能を有する分散メモリ型マルチプロセ
    ッサにおいて、 前記要素プロセッサが、 固定長のブロックデータを格納する複数のエントリから
    なり、かつ前記各エントリ毎にデータの属性を示す属性
    情報を設定する属性フィールドを備えるキャッシュメモ
    リと、 前記要素プロセッサ間データ転送を行なうと共に、前記
    要素プロセッサが備える前記メモリに対してデータの書
    き込みが行われる場合に、書き込みが行われたアドレス
    を前記キャッシュメモリに送出する要素プロセッサ間デ
    ータ転送制御手段と、 前記要素プロセッサ間データ転送制御手段からの前記書
    込みアドレスと一致する前記キャッシュメモリのエント
    リの前記属性フィールドに前記属性情報を設定するキャ
    ッシュ制御手段と、 前記要素プロセッサ間のデータ転送処理中に、前記メモ
    リに対するアクセス命令を実行し、前記要素プロセッサ
    間のデータ転送処理後に、前記属性フィールドに前記属
    性情報を設定した前記キャッシュメモリのエントリを無
    効化する無効命令を実行する命令実行手段を備えること
    を特徴とする分散メモリ型マルチプロセッサのキャッシ
    ュ制御システム。
  2. 【請求項2】 前記命令実行手段は、 前記要素プロセッサ間のデータ転送の起動を指示する命
    令と前記データ転送の終了を待ち合わせる命令の間で、
    前記データ転送中に実行可能なアクセス命令を実行する
    ことを特徴とする請求項1に記載の分散メモリ型マルチ
    プロセッサのキャッシュ制御システム。
  3. 【請求項3】 前記命令実行手段は、 前記要素プロセッサ間のデータ転送中に、キャッシュミ
    スを起こした前記アクセス命令の実行を前記データ転送
    終了まで延期させることを特徴とする請求項1に記載の
    分散メモリ型マルチプロセッサのキャッシュ制御システ
    ム。
  4. 【請求項4】 前記キャッシュ制御手段は、 前記要素プロセッサ間データ転送制御手段からの前記書
    込みアドレスと前記キャッシュメモリのアドレスを比較
    するアドレス比較手段と、 前記アドレス比較手段からのアドレス一致信号に基づい
    て前記キャッシュメモリのエントリの前記属性フィール
    ドに前記属性情報を設定する設定手段を備えることを特
    徴とする請求項1に記載の分散メモリ型マルチプロセッ
    サのキャッシュ制御システム。
  5. 【請求項5】 前記命令実行手段は、 前記要素プロセッサ間のデータ転送中であることを前記
    キャッシュ制御手段に通知し、 前記キャッシュ制御手段は、 前記要素プロセッサ間データ転送制御手段からの前記書
    込みアドレスと前記キャッシュメモリのアドレスを比較
    するアドレス比較手段と、 前記アドレス比較手段からのアドレス一致信号と前記命
    令実行手段からのデータ転送中の通知に基づいて前記キ
    ャッシュメモリのエントリの前記属性フィールドに前記
    属性情報を設定する設定手段と、 前記命令実行手段からの無効命令に基づいて前記属性フ
    ィールドに前記属性情報を設定した前記キャッシュメモ
    リのエントリを無効化する手段を備えることを特徴とす
    る請求項1に記載の分散メモリ型マルチプロセッサのキ
    ャッシュ制御システム。
JP7128884A 1995-04-29 1995-04-29 分散メモリ型マルチプロセッサのキャッシュ制御システム Expired - Lifetime JP2953343B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7128884A JP2953343B2 (ja) 1995-04-29 1995-04-29 分散メモリ型マルチプロセッサのキャッシュ制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7128884A JP2953343B2 (ja) 1995-04-29 1995-04-29 分散メモリ型マルチプロセッサのキャッシュ制御システム

Publications (2)

Publication Number Publication Date
JPH08305633A true JPH08305633A (ja) 1996-11-22
JP2953343B2 JP2953343B2 (ja) 1999-09-27

Family

ID=14995743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7128884A Expired - Lifetime JP2953343B2 (ja) 1995-04-29 1995-04-29 分散メモリ型マルチプロセッサのキャッシュ制御システム

Country Status (1)

Country Link
JP (1) JP2953343B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015037A (ko) * 1999-06-16 2001-02-26 니시무로 타이죠 기억 매체 및 이 기억 매체를 사용한 콘텐츠 보호 방법
US8504781B2 (en) 2008-10-14 2013-08-06 Canon Kabushiki Kaisha Methods and systems for inter-processor communication under a multiprocessor environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015037A (ko) * 1999-06-16 2001-02-26 니시무로 타이죠 기억 매체 및 이 기억 매체를 사용한 콘텐츠 보호 방법
US8504781B2 (en) 2008-10-14 2013-08-06 Canon Kabushiki Kaisha Methods and systems for inter-processor communication under a multiprocessor environment

Also Published As

Publication number Publication date
JP2953343B2 (ja) 1999-09-27

Similar Documents

Publication Publication Date Title
JP3927556B2 (ja) マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
JPH08115260A (ja) データ処理システムのi/oチャネル・コントローラのコヒーレンシと同期化装置及び方法
US5822756A (en) Microprocessor cache memory way prediction based on the way of a previous memory read
JP2000285021A (ja) キャッシュ・コヒーレンシ維持のためにペンディング・タグを使用する多重処理システム
JPH0670779B2 (ja) フェッチ方法
JP3218316B2 (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
JP2005524170A (ja) 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US6748527B1 (en) Data processing system for performing software initialization
JP2953343B2 (ja) 分散メモリ型マルチプロセッサのキャッシュ制御システム
US5699550A (en) Computer system cache performance on write allocation cycles by immediately setting the modified bit true
US5835948A (en) Single bank, multiple way cache memory
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
US6397304B1 (en) Method and apparatus for improving system performance in multiprocessor systems
JP2007241601A (ja) マルチプロセッサシステム
KR100258883B1 (ko) 멀티 프로세서 시스템의 캐시 메모리 제어방법 및 장치
JP3052460B2 (ja) 協調処理型情報処理装置
JPH06149669A (ja) キャッシュデータ転送方式およびキャッシュデータ転送装置
JPH0744460A (ja) スヌープ処理方式
US8589636B2 (en) Cache memory device, processor, and processing method
JPH11212869A (ja) キャッシュメモリ制御方法及びこれを用いたマルチプロセッサシステム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070716

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100716

Year of fee payment: 11