(57)【特許請求の範囲】
【請求項１】
複数のプロセッサと主記憶がメモリ制御チップを介して接続されているマルチプロセッサシステムにおいて、
前記プロセッサはキャッシュメモリと、別の前記プロセッサが出力したリード要求のアドレスの最新データが前記キャッシュメモリに存在するかどうかの確認、及び存在した場合の当該データの主記憶への書き込み要求出力が終了したかことを示すコヒーレント報告を出力する手段を有し、
前記メモリ制御チップは、前記プロセッサから発行されたリード要求の参照アドレスと前記リード要求より遅れて別の前記プロセッサから発行されたライト要求の参照アドレスとの一致を検出する検出手段と、
前記リード要求に対して前記プロセッサが出力するコヒーレント報告を監視し、前記プロセッサの全てがコヒーレント報告を出力した時に当該リード要求に関するコヒーレントが完了したと判断する監視手段と、
前記検出手段がアドレスの一致を検出し、かつ前記監視手段が前記検出手段がアドレスの一致を検出したリード要求に対するコヒーレントの完了を検出していない場合に、前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定する判定手段と、
前記主記憶を起動したリード要求のアドレスを記憶する記憶手段と、
前記記憶手段に記憶したリード要求のアドレスで前記主記憶を再起動する再起動手段と、
前記主記憶の再起動で得られたデータと通常起動で得られたデータを入れ替える入れ替え手段とを有し、
前記判定手段で前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定した場合に、前記入れ替え手段で再起動で得られたデータと通常起動で得られたデータを入れ替えることを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１記載のマルチプロセッサシステムにおいて、
前記判定手段で前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定した場合に、前記ライト要求の主記憶への書き込みを他のリード要求に優先して実行し、その後に前記再起動手段からの主記憶の起動を他のリード要求に優先して実行することを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
技術分野
この発明は、キャッシュを有する複数のプロセッサからなり、プロセッサからのメモリへのリード要求とライト要求を検出し、メモリとキャッシュのコヒーレントを保証するマルチプロセッサシステムに関し、特に共有メモリに対するメモリアクセス制御に適したメモリ制御チップの実現と、このメモリ制御チップを用いた共有メモリ型のマルチプロセッサシステムに関する。
背景技術
マルチプロセッサシステムにおいて、キャッシュとメモリのコヒーレンシを保証することは不可欠である。特に、任意のプロセッサのリードが参照したアドレスに対して、別のプロセッサがライトを発行した場合、ライトされたデータを返すことを保証することが問題になる。
このリードとライト競合でのキャッシュのコヒーレンシの問題についての従来の技術を説明する。複数のプロセッサがプロセッサ制御線，プロセッサバス、及びコヒーレント報告線でそれぞれメモリ制御チップと接続されており、メモリ制御チップはメモリバスとメモリ制御線でメモリと接続されているものとする。
また、ある一つのプロセッサのキャッシュにアドレスＡの最新データＤ′が存在し、メモリには、古いデータＤが存在しているものとする。別のプロセッサがアドレスＡに対してメモリへリード要求を発行し、先のプロセッサがアドレスＡに対してメモリへライト要求を発行する場合、従来技術では、メモリ制御チップがリード要求とライト要求の参照アドレスＡの競合を検出し、プロセッサ制御線にリトライリード指示の信号を、リード要求を出したプロセッサに対して発行し、このプロセッサが再びアドレスＡに対してリード要求を発行する。メモリ制御チップは先に発行されたこのプロセッサからのリード要求を無効化し、ライト要求を優先してメモリのアドレスＡの内容をＤ′に更新する。その後、メモリ制御チップは再発行したリード要求を受け付け、読み出しデータＤ′をプロセッサバスに送出する。リード要求を出したプロセッサはアドレスＡに対してデータＤ′を受け取ることが出来るので、キャッシュとメモリのコヒーレンシが保証されたことになる。
しかし、この様な従来の技術では、リード要求を出したプロセッサがメモリ制御チップからリトライリードの要求を受けたとき、再び、参照アドレスＡを生成して発行する必要が有るので、プロセッサ内に履歴を残すバッファが必要であった。複数のリード要求の発行を許すには、リトライさせるリードを識別する情報もプロセッサ内に必要である。そこで従来の技術では、バッファによる物量の増加を抑えるため、メモリとキャッシュのコヒーレンシの保証が必要なリード要求は、１プロセッサに対して１要求に制限し、プロセッサがリード要求を発行できないステージを設け、そのステージ間でリトライリード要求を受け付けるという制御を行ってきた。しかし、この従来の技術では、プロセッサがリード要求を発行できない期間が存在するため、システムのメモリリードのスループットが悪くなり、性能が低下するという問題が存在した。
本発明は、プロセッサをコヒーレント保証の動作から解放し、マルチプロセッサシステムの性能向上を目的とするものである。
発明の開示
本発明は、上記の問題を解決するために、マルチプロセッサシステムにおいて、リード要求とライト要求の参照アドレスの一致を検出する機能と、リード要求のコヒーレント報告の終了を監視する機能と、参照アドレスの一致検出結果とコヒーレント報告の終了結果から、前記ライト要求のライトデータが前記リード要求に対するリードデータであると判定する機能と、リードデータとライトデータを一致させる機能とを備えたメモリ制御チップを設けるものである。
そして、リード要求がメモリに起動されていないならば、ライト要求がリード要求のコヒーレント報告が終了する前に発行された時、リード要求とライト要求の競合検出によりライト動作を優先処理させることで、リード動作が正しいデータを読み出すことができる。また、リード要求がメモリに起動されているならば、ライト要求がリード要求のコヒーレント報告が終了する前に発行された時、リード要求とライト要求の競合検出によりライト動作を優先処理し、リード動作を無効化し再び同じアドレスでメモリリードを起動し、読み出したデータをバスに送出することで、リード要求が正しいデータを読み出すことができる。
このように本発明は、メモリとキャッシュのコヒーレントをメモリ制御チップ内とメモリとで保証することにより、プロセッサをコヒーレント保証の動作から解放し、マルチプロセッサシステムの性能低下を防ぐものである。
【図面の簡単な説明】
第１図は、本発明にかかる好ましいマルチプロセッサシステムのブロック図である。
第２図は、このマルチプロセッサシステムにおける競合検出手段の説明図であり、第３図は、この競合検出手段の別の説明図であり、第４図は、この競合検出手段の競合検出手段の更に別の説明図である。
第５図は、本発明にかかる好ましいマルチプロセッサシステムにおけるメモリ制御手段の説明図であり、第６図は、このメモリ制御手段の説明図であり、第７図は、このメモリ制御手段の別の説明図であり、第８図は、このメモリ制御手段のまた別の説明図であり、第９図は、このメモリ制御手段の更に別の説明図であり、第１０図は、このメモリ制御手段の他の説明図である。
第１１図は、本発明にかかる好ましいマルチプロセッサシステムにおける送出制御手段の説明図であり、第１２図は、この送出制御手段の別の説明図であり、第１３図は、この送出制御手段の更に別の説明図である。
第１４図は、本発明にかかる好ましいマルチプロセッサシステムのリトライリードの説明図である。
第１５図は、本発明にかかる好ましいマルチプロセッサシステムのリード用バッファの説明図であり、第１６図は、本発明にかかる好ましいマルチプロセッサシステムのリード用バッファの別の説明図である。
第１７図は、本発明にかかる好ましいマルチプロセッサシステムのライト用バッファの説明図である。
第１８図は、本発明にかかる好ましいマルチプロセッサシステムのリトライリード用バッファの説明図である。
第１９図は、本発明にかかる好ましいマルチプロセッサシステムの送出用バッファの説明図である。
第２０図は、本発明にかかる好ましいマルチプロセッサシステムの書き込み優先処理の説明図である。
第２１図は、本発明にかかる好ましいマルチプロセッサシステムの書き込み優先処理とリトライリードの説明図である。
第２２図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける競合検出手段の説明図である。
第２３図は、この競合検出手段の別の説明図であり、第２４図は、この競合検出手段の更に別の説明図である。
第２５図は、本発明にかかる好ましい他のマルチプロセッサシステムのリード用バッファの説明図である。
第２６図は、本発明にかかる好ましい他のマルチプロセッサシステムのライト用バッファの説明図である。
第２７図は、本発明にかかる好ましい他のマルチプロセッサシステムのリトライリード用バッファの説明図である。
第２８図は、本発明にかかる好ましい他のマルチプロセッサシステムの送出用バッファの説明図である。
第２９図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける複数のリード要求と１つのライト要求の競合の説明図であり、第３０図は、この複数のリード要求と１つのライト要求の競合の別の説明図である。
第３１図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける複数のリード要求と複数のライト要求の競合の説明図であり、第３２図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第３３図は、本発明にかかる好ましい別のマルチプロセッサシステムのブロック図である。
第３４図は、本発明にかかる好ましい別のマルチプロセッサシステムにおけるライト用バッファの説明図であり、第３５図は、このライト用バッファの別の説明図であり、第３６図は、このライト用バッファの更に別の説明図である。
第３７図は、本発明にかかる好ましい別のマルチプロセッサシステムの送信用バッファの説明図である。
第３８図は、本発明にかかる好ましい別のマルチプロセッサシステムのメモリ制御手段の説明図である。
第３９図は、本発明にかかる好ましい別のマルチプロセッサシステムの複数のリード要求と複数のライト要求の競合の説明図であり、第４０図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第４１図は、本発明にかかる好ましい更に別のマルチプロセッサシステムのブロック図である。
第４２図は、本発明にかかる好ましい更に別のマルチプロセッサシステムのリード用バッファの説明図である。
第４３図は、本発明にかかる好ましい更に別のマルチプロセッサシステムにおける複数のリード要求と複数のライト要求の競合の説明図であり、第４４図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第４５図は、本発明にかかる好ましい更に他のマルチプロセッサシステムのブロック図である。
第４６図は、本発明にかかる好ましい更に他のマルチプロセッサシステムのリード用バッファの説明図である。
第４７図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの競合検出手段の説明図である。
第４８図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの送出用バッファの説明図である。
第４９図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの送出制御手段の説明図である。
第５０図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの複数のリード要求と複数のライト要求の競合の説明図であり、第５１図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第５２図は、本発明にかかるメモリ制御チップによるマルチプロセッサシステムの説明図である。
第５３図は、本発明にかかるマルチプロセッサシステムにおける競合検出手段の構成を示すブロック図である。
発明を実施するための最良の形態
本発明の一つの好ましい実施形態を第１図を参照して説明する。第１図において、１００，１０１，１０２，１０３は、キャッシュメモリ（Ｃ），１０４，１０５，１０６，１０７はプロセッサ（Ｐ），１０８，１０９，１１０，１１１はキャッシュのコヒーレント報告信号線、112はバスアービタ信号線、１１３はプロセッサバス、１１４は送出制御手段、１１５はコヒーレント完了信号線、１１６はリトライリード要求信号線、１１７はリトライデータ有効信号線、１１８は送出完了信号線、１１９は送出データ線、１２０は送出用バッファ、１２１はメモリリードデータ線、１２２はライト用バッファ、１２３はライト要求信号線、１２４はリード用バッファ、１２５はリード要求信号線、１２６はリードアドレス線、１２７は要求状態信号線、１２８は競合検出手段、129は書き込み優先信号線、１３０書き込み承認信号線、１３１はリトライリード用バッファ、１３２はリトライリードアドレス線、１３３はメモリ制御手段、１３４はメモリ制御信号線、１３５はメモリアドレス／データ線、１３６は送出抑止信号線、１３７は読み出し承認信号線である。
本発明は、システムのプロセッサから発行されたリード要求の参照アドレスとリード要求より遅れてシステム別のプロセッサから発行されたライト要求の参照アドレスの一致を検出する手段とリード要求のコヒーレント報告の終了を監視する手段を有する。これらの手段は競合検出手段１２８が有する。一致の検出結果と報告の終了結果からライト要求のライトデータがリードのリードデータで有ると判定する手段は、送出制御手段１１４である。リードデータとライトデータを一致させる手段は、リトライリード用バッファ１３１とメモリ制御手段１３３と送出用バッファ１２０である。
以下第１図の各部についての動作を説明する。リード用バッファ124は、プロセッサバス１１３に発行されたリード要求を記憶し、記憶したリード要求をリード要求信号線１２５によりメモリ制御手段１３３に出力する。また、リード用バッファ１２４はリードアドレス１２６，要求状態１２７を競合検出手段１２８に出力する。要求状態１２７は、リード用バッファ１２４のエントリが有効であるか、またリード要求がメモリ制御手段１３３に受け付けられているかどうかを表す状態である。
競合検出手段１２８は、プロセッサバス１１３に発行されたライト要求とプロセッサ１０４，１０５，１０６，１０７からのコヒーレント報告１０８，１０９，１１０，１１１を監視し、リード用バッファ１２４から出力されたリードアドレス１２６とライト要求が参照するアドレスとの比較とコヒーレント報告の到着状況から、書き込み優先信号１２９とコヒーレント完了信号１１５，送出抑止信号１３６の出力を制御する。リトライリード用バッファ１３１は、メモリ制御手段１３３へ受け付けられたリード用バッファ１２４の出力１２５を記憶し、記憶したリトライリードアドレス１３２はメモリ制御手段１３３に出力される。ライト用バッファ１２２はバスに発行されたライト要求を記憶し、その記憶されたライト要求は出力１２３を使いメモリ制御手段１３３へ出力される。メモリ制御手段１３３は、書き込み優先信号１２９とリトライリード要求信号１１６をもとに、リード用バッファの出力１２５と、ライト用バッファの出力１２３と、リトライリード用のバッファの出力１３２のうち受け付けるべき要求を選択しメモリを起動する。この起動がリード要求またはリトライリードに依る場合は、メモリ制御手段１３３はメモリからのデータ１３５を受信する。送出用バッファ１２０はメモリ制御手段１３３からのデータ１２１を受け付け、送出制御手段１１４に送出データ１１９を出力する。送出制御手段１１４は、コヒーレント完了信号１１５，送出抑止信号１３６を調べて、リトライリードをするかそのままプロセッサバス１１３へ送出するかを判定する。
次に、競合検出手段１２８の動作について第２図，第３図，第４図を参照して説明する。第２図は、コヒーレント完了信号１１５の動作を規定している。第３図は書き込み優先信号１２９の動作を規定している。第４図は送出抑止信号１３６の動作を規定している。
競合検出手段１２８は、リード要求のコヒーレント報告が全て出力されたらコヒーレント完了信号１１５をＯＮとし、そのリード要求の読み出しデータが送出制御手段１１４から送出され送出完了信号１１８がＯＮとなったら、コヒーレント完了信号１１５をＯＦＦとする。
第２図において、２００はリード要求、２０１，２０２，２０３，２０４はリード要求２００に対するコヒーレント報告である。第２図では、競合検出手段１２８は、時刻２０５でリード要求２００のコヒーレントが全て報告されるため、コヒーレント完了信号１１５をＯＮとする。競合検出手段１２８は、時刻２０６で送出完了信号１１８がＯＮとなるため、時刻２０７でコヒーレント完了信号１１５をＯＦＦとする。
競合検出手段１２８は、リード要求に対するコヒーレント報告が全て出力される前に、そのリード要求の参照アドレスと同じ参照アドレスを持つ書き込み要求が発行されたら、書き込み優先信号１２９をＯＮとし、その書き込み要求がメモリ制御手段１３３に受け付けられ書き込み承認信号１３０がＯＮとなったら、書き込み優先信号１２９をＯＦＦとする。第３図において、２０８はリード要求、２０９はライト要求、２１０，２１１，２１２，２１３はリード要求２０８のコヒーレント報告、215はリード要求２０８の参照アドレス、２１９はリード要求、２２０はライト要求、２１０ａ，２１１ａ，２１２ａ，２１３ａはリード要求219のコヒーレント報告、２１５ａはリード要求２１９の参照アドレスである。ライト要求２０９は、リード要求２０８と参照アドレスが同じである。ライト要求２２０は、リード要求２１９と参照アドレスが同じである。
第３図では、ライト要求２０９の発行はリード要求２０８のコヒーレント報告が全て出力された時刻２１４より以前であるため、競合検出手段１２８は、ライト要求２０９が発行された次の時刻２１６で書き込み優先信号１２９をＯＮとする。時刻２１７でライト要求２０９の書き込み承認信号１３０がＯＮとなるため、競合検出手段１２８は、時刻218で書き込み優先信号１２９をＯＦＦとする。ライト要求２２０の発行はリード要求２１９のコヒーレント報告が全て出力された時刻２２１以後であるため、競合検出手段１２８は書き込み優先信号１３０をＯＮにしない。
競合検出手段１２８は、リード要求に対するコヒーレント報告が全て出力される前で、且つ、そのリード要求がメモリ制御手段に受け付けられた後に、そのリード要求の参照アドレスと同じ参照アドレスを持つ書き込み要求が発行されたら、送出抑止信号１３６をＯＮとする。競合検出手段１２８は、そのリード要求のリトライリードデータがメモリ制御手段１３３から出力されリトライデータ有効信号１１７がＯＮとなったら、送出抑止信号１３６をＯＦＦとする。
第４図において、２２２はリード要求、２２３はライト要求、２２９はリード要求、２３０はライト要求、２３３はリード要求２２２の参照アドレス、２３４はリード要求２２９の参照アドレスである。ライト要求２２３は、リード要求２２２と参照アドレスが同じである。ライト要求２３０は、リード要求２２９と参照アドレスが同じである。第４図では、ライト要求２２３の発行はリード要求２２２のコヒーレント報告が全て出力された時刻２２４以前である。また、ライト要求２２３の発行はリード要求２２２がメモリ制御手段１３３に受け付けられた時刻225以後である。その為、競合検出手段１２８は、時刻２２６で送出抑止信号１３６をＯＮとする。時刻２２７でリトライデータ有効信号１１７がＯＮとなるため、競合検出手段１２８は送出抑止信号１３６を時刻228でＯＦＦとする。ライト要求２３０の発行はリード要求２２９のコヒーレント報告が全て出力された時刻２３１以前である。しかし、ライト要求２３０の発行はリード要求２２９がメモリ制御手段１３３に受け付けられた時刻２３２以前である。その為、競合検出手段１２８は送出抑止信号１３６を操作しない。
ここで、競合検出手段１２８の構成について、第５３図を参照して説明する。競合検出手段１２８は、コヒーレント報告の終了を監視する終了監視手段３６００とライト要求とリード要求のアドレスの一致を検出するアドレス一致検出手段３６０１からなる。終了監視手段３６００は、コヒーレント報告信号線１０８，１０９，１１０，１１１，送出完了信号線１１８を入力し、コヒーレント完了信号線１１５を出力する。コヒーレント完了信号線１１５の動作は第２図の規定に従う。アドレス一致検出手段３６０１は、プロセッサバス１１３，リードアドレス線１２６，要求状態信号線１２７，書き込み承認信号線１３０，リトライデータ有効信号線１１７，コヒーレント完了信号線１１５を入力し、書き込み優先信号線１２９，送出抑止信号線１３６を出力する。書き込み優先信号線１２９の動作は第３図の規定に従う。また、送出抑止信号線１３６の動作は、第４図の規定に従う。
次に、メモリ制御手段１３３の動作について第５図を参照して説明する。メモリ制御手段１３３は、書き込み優先信号１２９とリトライリード要求信号１１６がＯＦＦの時、ライト要求またはリード要求があれば通常のメモリ制御を行う。メモリ制御手段１３３は、この通常のメモリ制御以外にも次の様な動作を行う。
メモリ制御手段１３３は、書き込み優先信号１２９がＯＮの場合、リトライリード要求信号１１６の状態に係わらず、ライト要求のアドレス情報１２３が有効ならメモリライトを優先して行う。また、メモリ制御手段１３３は、書き込み優先信号１２９がＯＦＦで、且つリトライリード要求信号１１６がＯＮの時、リトライリードアドレス情報１３２が有効ならリトライリードを優先して行う。
次に、メモリ制御手段１３３のリード要求の処理動作について第６図を参照して説明する。第６図はリード要求処理時の読み出し承認信号１３７とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１の動作を規定する。第６図において、３００はリード要求、３０２はリード制御情報、３０３は参照アドレス、３０４は読み出されたデータである。メモリ制御手段１３３は、リード要求を処理可能な時にリード要求が有れば、リード要求を受け付け、読み出し承認信号１３７を１サイクルの期間ＯＮとする。読み出し承認信号１３７をＯＮとした１サイクル後、メモリ制御手段１３４にリード制御情報を出力し、その１サイクル後に、メモリアドレス／データ１３５に参照アドレスを出力する。メモリ制御手段１３３は、メモリから読み出されたデータがメモリアドレス／データ１３５に出力されたら、その１サイクル後にその読み出しデータをメモリリードデータ１２１に出力する。第６図では、メモリ制御手段１３３は、時刻３０１でリード要求３００を受け付けるため、時刻３０１で読み出し承認信号１３７をＯＮとする。メモリ制御手段１３３は、読み出されたデータ３０４を、メモリアドレス／データ１３５に出力された次のサイクルである時刻３０５でメモリリードデータ１２１に出力する。
次に、メモリ制御手段１３３のライト要求の処理動作について第７図を参照して説明する。第７図はライト要求処理時の書き込み承認信号１３０とメモリ制御信号１３４とメモリアドレス／データ１３５の動作を規定する。第７図において、３０６はライト要求、３０８はライト制御情報、３０９は参照アドレス、３１０は書き込みデータである。メモリ制御手段１３３は、ライト要求を処理可能な時にライト要求が有れば、ライト要求を受け付け、書き込み承認信号１３０を１サイクルの期間ＯＮとする。書き込み承認信号１３０をＯＮとした１サイクル後、メモリ制御信号１３４にライト制御情報を出力し、その１サイクル後にメモリアドレス／データ１３５に参照アドレスを、その１サイクル後にメモリアドレス／データ１３５に書き込みデータを出力する。第７図では、メモリ制御手段１３３は、時刻３０７でライト要求３０６を受け付けるため、時刻３０７で書き込み承認信号１３０をＯＮとする。
次に、メモリ制御手段１３３のリード要求とライト要求の競合処理動作について第８図を参照して説明する。第８図はリード要求とライト要求の競合処理動作時の読み出し承認信号１３７と書き込み承認信号130とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１の動作を規定する。第８図において、３１１はリード要求、３１３はライト要求、３１４はリード要求３１１のリード制御情報、３１５はリード要求３１１の参照アドレス、３１８はリード要求３１１の読み出されたデータ、３１７はライト要求３１３のライト制御情報、３２０はライト要求３１３の参照アドレス、３２１はライト要求３１３の書き込みデータである。メモリ制御手段１３３は、リード要求とライト要求が処理可能な時に、リード要求とライト要求が同時に有れば、リード要求を先に受け付け、第６図で規定したリード要求処理の動作を行う。リード要求の処理の終了後、メモリ制御手段１３３はライト要求を受け付け、第７図に規定したライト要求処理の動作を行う。
第８図では、メモリ制御手段１３３は、リード要求３１１とライト要求３１３のうち、時刻３１２でリード要求３１１を受け付けるため、時刻３０１で読み出し承認信号１３７をＯＮとする。メモリ制御手段133は、読み出されたデータ３１８をメモリアドレス／データ１３５に出力された次のサイクルである時刻３１６でメモリリードデータ１２１に出力する。次に、メモリ制御手段３１３は、リード要求３１１の処理が終了する時刻３１６でライト要求３１３を受け付けるため、時刻３１６で書き込み承認信号１３０をＯＮにする。
次に、メモリ制御手段１３３のリード要求とライト要求とリトライリードの競合処理動作について第９図を参照して説明する。第９図はリード要求とライト要求とリトライリードの競合処理動作時の読み出し承認信号１３７と書き込み承認信号１３０とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１とリトライデータ有効信号１１７の動作を規定する。第９図において、３２２はリード要求、３２４はライト要求、３２６はリトライリード要求、３２９はリトライリード要求３２６のリード制御情報、３３０はリトライリード要求３２６の参照アドレス、３３１はリトライリード要求３２６の読み出されたデータ、３３２はリード要求３２２のリード制御情報、３３３はリード要求３２２の参照アドレス、３３４はリード要求３２２の読み出されたデータ、３３５はライト要求３２４のライト制御情報、３３６はライト要求３２４の参照アドレス、３３７はライト要求３２４の書き込みデータである。メモリ制御手段１３３は、リード要求とライト要求とリトライリードが処理可能な時に、リード要求とライト要求とがあり、且つ、リトライリードが有ることを示すリトライリード要求信号１１６がＯＮであれば、リトライリードを優先して受け付ける。メモリ制御手段１３３は、リトライアドレス１３２の情報により、メモリ制御信号134にリード制御情報を出力し、その１サイクル後に、メモリアドレス／データ１３５に参照アドレスを出力する。メモリ制御手段１３３は、メモリから読み出されたデータがメモリアドレス／データ１３５に出力されたら、その１サイクル後にリトライデータ有効信号１１７を１サイクルＯＮにすると同時にその読み出しデータをメモリリードデータ１２１に出力する。リトライリード処理終了後、メモリ制御手段１３３は、第８図の規定に従いリード要求，ライト要求の順に処理する。
第９図では、メモリ制御手段１３３は、リード要求３２２とライト要求３２４とリトライリード要求３２６のうち、時刻３３８でリトライリード要求３２６を受け付けるため、時刻３３８でリード制御情報３２９をメモリ制御信号１３４に出力し、次のサイクルで参照アドレス３３０をメモリアドレス／データ１３５に出力する。メモリ制御手段１３３は、メモリアドレス／データ１３５に読み出しデータ３３１が出力されるのを受け、時刻３２８でリトライデータ有効信号１１７をＯＮにし、メモリリードデータ１２１に読み出しデータ３３１を出力する。メモリ制御手段１３３は、リトライリード処理の終了後、時刻３２３でリード要求３２２を受け付け読み出し承認信号１３７をＯＮにする。また、メモリ制御手段１３３は、リード処理の終了後、時刻３２５でライト要求324を受け付け書き込み承認信号１３０をＯＮにする。
次に、メモリ制御手段１３３のリード要求とライト要求とリトライリードと書き込み優先の競合処理動作について第１０図を参照して説明する。第１０図はリード要求とライト要求とリトライリードと書き込み優先の競合処理動作時の読み出し承認信号１３７と書き込み承認信号130とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１とリトライデータ有効信号１１７の動作を規定する。第１０図において、３３９はリード要求、３４１はライト要求、３４３はリトライリード要求、３４８はリトライリード要求３４３のリード制御情報、３４９はリトライリード要求３４３の参照アドレス、３５０はリトライリード要求３４３の読み出されたデータ、３５１はリード要求３３９のリード制御情報、３５２はリード要求３３９の参照アドレス、３５３はリード要求３３９の読み出されたデータ、３４５はライト要求３４１のライト制御情報、３４６はライト要求３４１の参照アドレス、３４６はライト要求３４１の書き込みデータである。メモリ制御手段１３３は、リード要求とライト要求とリトライリードが処理可能な時に、リード要求とライト要求とリトライリードとがあり、且つ、書き込みを優先させる書き込み優先信号１２９がＯＮであれば、ライト要求を優先して受け付ける。メモリ制御手段１３３は、第７図の規定に従いライト要求を処理し、ライト処理後続いて、第９図の規定に従いリトライリード要求を処理し、リトライリード処理後に第６図の規定に従いリード要求を処理する。
第１０図では、メモリ制御手段１３３は、リード要求３３９とライト要求３４１とリトライリード要求３４３のうち、書き込み優先信号129がＯＮであるため、時刻３４２で書き込み承認信号１３０を１サイクルＯＮにし、ライト要求３４１を受け付ける。メモリ制御手段１３３は、ライト制御情報３４５をメモリ制御信号１３４に出力し、次の２サイクルで参照アドレス３４６と書き込みデータ３４７をメモリアドレス／データ１３５に出力する。ライト要求３４１の処理後、メモリ制御手段１３３は、時刻３５４でリトライリード要求３４３を受け付けるため、時刻３５４でリード制御情報３４８をメモリ制御信号１３４に出力し、次のサイクルで参照アドレス３４９をメモリアドレス／データ１３５に出力する。メモリ制御手段１３３は、メモリアドレス／データ１３５に読み出しデータ３５０が出力されるのを受け、時刻３４４でリトライデータ有効信号１１７をＯＮにし、メモリリードデータ１２１に読み出しデータ３５０を出力する。リトライリード終了後、メモリ制御手段133は、時刻３４０でリード要求３３９を受け付け読み出し承認信号１３７をＯＮにする。
次に、送出制御手段１１４の動作について第１１図の状態遷移図を参照して説明する。送出バッファ１２０から出力されている送出データ１１９に対して、送出の起因となるリード要求に対する各プロセッサからのコヒーレント報告１０８，１０９，１１０，１１１が到着しており送出データが正しいものである時、送出データが有効であると定義する。また、第１１図における各遷移条件は、以下の通りである。
（条件１）：送出バッファ１２０が無効で且つ、
コヒーレント完了信号１１５がＯＦＦ。
（条件２）（条件６）：送出バッファ１２０が有効で且つ、
コヒーレント完了信号１１５がＯＦＦ。
（条件３）（条件７）（条件９）：送出バッファ１２０が有効で且つ、
コヒーレント完了信号１１５がＯＮで且つ、
送出抑止信号１３６がＯＦＦ。
（条件４）（条件８）（条件１１）：送出バッファ１２０が有効で且つ、
コヒーレント完了信号１１５がＯＮで且つ、
送出抑止信号１３６がＯＮ。
（条件５）（条件１０）：送出バッファ１２０が無効で且つ、
コヒーレント完了信号１１５がＯＮ。
（条件１２）：リトライデータ有効信号１１７がＯＦＦ。
（条件１３）：リトライデータ有効信号１１７がＯＮ。
（条件１４）：バス権獲得待ち。
（条件１５）：バス権を獲得。
待機状態４００は、送出バッファ１２０からの出力とコヒーレント完了信号１５５がＯＮとなるのを待っている状態である。状態４００から、送出バッファ１２０からデータが出力されコヒーレント完了信号１１５がＯＦＦのままの時（条件２）、送出制御手段１１４はコヒーレント完了待ち状態４０１に移行し、コヒーレント完了信号１１５がＯＮになるまで状態４０１で待つ。状態４００から、コヒーレント完了信号１１５がＯＮになり送出バッファ１２０からデータが出力されないままの時（条件５）、送出制御手段１１４は送出データ出力待ち状態４０２に移行し、送出データが出力されるまで状態４０２で待つ。状態４００からコヒーレント完了信号１１５がＯＮになり送出バッファ１２０からデータが出力された時（条件３）、送出制御手段１１４は、送出抑止信号１３６がＯＦＦであればデータ有効状態４０３に移行する。また送出制御手段１１４は、状態４０１からコヒーレント完了信号１１５がＯＮになった時、送出抑止信号１３６がＯＦＦであれば（条件７）データ有効状態４０３に移行する。送出制御手段１１４は、状態４０２から送出バッファ１２０からデータが出力された時、送出抑止信号１３６がＯＦＦであれば（条件９）データ有効状態４０３に移行する。送出制御手段１１４は、状態４００からコヒーレント完了信号１１５がＯＮになり送出バッファ１２０からデータが出力された時、送出抑止信号１３６がＯＮであれば（条件４）リトライリード状態４０４に移行する。状態４０１からコヒーレント完了信号１１５がＯＮになった時、送出制御手段１１４は、送出抑止信号１３６がＯＮであれば（条件８）リトライリード状態４０４に移行する。送出制御手段１１４は状態４０２にある時、送出バッファ１２０からデータが出力され、送出抑止信号１３６がＯＮであれば（条件１１）リトライリード状態４０４に移行する。状態４０４では、送出制御手段１１４はリトライリード要求信号１１６をＯＮとする。送出制御手段１１４は、リトライデータが送出バッファ１２０から出力されるまで状態４０４で待つ。状態４０４からリトライデータ有効信号１１７がＯＮとなった時（条件１３）、送出制御手段１１４はリトライリード要求信号１１６をＯＦＦにしデータ有効状態４０３に移行する。送出制御手段１１４は、バス権が獲得できるまでデータ有効状態４０３で待ち、バス権が獲得できたら（条件１５）送出完了信号１１５をＯＮにし待機状態４００に移行する。送出制御手段１１４は、待機状態４００に移行したら送出完了信号１１５をＯＦＦにする。
次に、送出制御手段１１４のリトライリードを行わない場合の動作を第１２図を参照して説明する。第１２図は、リトライリードを行わないときのプロセッサバスへの出力１１３とバスアービタ１１２と送出完了信号１１８の動作を規定する。第１２図で、４０５，４０６は送出データである。送出制御手段１１４は、コヒーレント完了信号１１５がＯＮであって、送出データ１１９が有効で無い時は、送出データ１１９が有効になるまで待つ。また、送出制御手段１１４は、コヒーレント完了信号１１５がＯＦＦであって、送出データ１１９が有効である時は、コヒーレント完了信号１１５がＯＮになるまで待つ。送出制御手段１１４は送出データ１１９が有効で且つ、コヒーレント完了信号１１５がＯＮであれば、バスアービタ信号１１２と送出完了信号１１８をＯＮとし、次のサイクルでプロセッサバス１１３に送出データを出力する。
第１２図では、時刻４０７で送出完了信号１１５がＯＮであるが、送出データ１１９は有効でないため、送出制御手段１１４は送出データ４０５が出力されるのを待つ。時刻４１１で送出データ４０５が出力されるため、送出制御手段１１４はバスアービタ１１２と送出完了信号１１８をＯＮにし、次のサイクルにプロセッサバス１１３に送出データ４０５を送出する。時刻４０９で送出完了信号１１５がＯＮでありかつ、送出データ１１９は有効であるため、送出制御手段１１４はバスアービタ１１２と送出完了信号１１８をＯＮにし、次のサイクルにプロセッサバス１１３に送出データ４０６を送出する。
次に、送出制御手段１１４のリトライリードを行う場合の動作を第１３図を参照して説明する。第１３図は、リトライリードを行うときのプロセッサバスへの出力１１３とバスアービタ１１２と送出完了信号１１８とリトライリード要求信号１１６の動作を規定する。第１３図で、４１２，４１４は送出データ、４１３と４１５はリトライリードによる送出データである。送出制御手段１１４は、コヒーレント完了信号115がＯＦＦであったり送出データ１１９が無効である時は、第１２図の規定に従い、コヒーレント完了信号１１５がＯＮで且つ、送出データ119が有効になるまで待つ。送出制御手段１１４は、コヒーレント完了信号１１５がＯＮで且つ、送出データ１１９が有効になり、送出抑止信号１３６がＯＦＦであれば、第１２図の規定に従い処理を行う。送出制御手段１１４は、コヒーレント完了信号１１５がＯＮで且つ、送出データ１１９が有効になり、送出抑止信号１３６がＯＮである時、リトライリード要求信号１１６をＯＮにする。メモリ制御手段１３３からリトライリードの読み出しデータが出力され、リトライデータ有効信号１１７がＯＮになることで、競合検出手段１２８が送出抑止信号１３６をＯＦＦにする。送出抑止信号１３６がＯＦＦになり、コヒーレント完了信号１１５がＯＮで且つ、送出データ１１９が有効であるため、送出制御手段１１４は第１２図の規定に従い処理を行う。
第１３図では、時刻４１６で送出完了信号１１５がＯＮであるが、送出データ１１９は無効であるため、送出制御手段１１４は送出データ４１２が出力されるのを待つ。送出データ４１２が出力された時、送出抑止信号１３６はＯＮであるため、送出制御手段１１４はリトライリード要求信号１１６をＯＮにする。時刻４１７でリトライデータ有効信号１１７がＯＮになり、時刻４１８で送出抑止信号１３６がＯＦＦになるため、送出制御手段１１４は、送出完了信号１１８をＯＮにし、次のサイクルでリトライリードによる送出データ４１３をプロセッサバス113に送出する。時刻４１９で送出完了信号１１５がＯＮとなる時、送出データ１１９が有効で且つ、送出抑止信号１３６はＯＮであるため、送出制御手段１１４はリトライリード要求信号１１６をＯＮにする。時刻４２０でリトライデータ有効信号１１７がＯＮになり、時刻４２１で送出抑止信号１３６がＯＦＦになるため、送出制御手段１１４は、時刻４２１で送出完了信号１１８をＯＮにし、次のサイクルでリトライリードによる送出データ４１５をプロセッサバス１１３に送出する。
次に、送出制御手段１１４の状態遷移の例を第１４図を参照して説明する。時刻５００では送出データ１１９は無効でコヒーレント完了信号１１５もＯＦＦであるため、送出制御手段１１４の状態は待機状態400である。時刻５０１で送出データ５０６が送出用バッファ１２０から出力されるので、送出制御手段１１４の状態は待機状態４００からコヒーレント完了待ち状態４０１に移行する。時刻５０２でコヒーレント完了信号がＯＮとなり送出抑止信号１３６がＯＮとなるため、送出制御手段１１４の状態はコヒーレント完了待ち状態４０１からリトライリード状態４０４に移行する。従って、時刻５０２でリトライリード要求信号１１６がＯＮになる。時刻５０３でリトライデータ有効信号１１７がＯＮになるため、時刻５０４で送出制御手段１１４の状態はリトライリード状態４０４からデータ有効状態４０３に移行する。時刻５０４でバス権が獲れているため、送出制御手段１１４は送出完了信号１１８をＯＮにする。そして、時刻５０５で送出制御手段１１４の状態はデータ有効状態４０３から待機状態４００に移行する。
次に、リード用バッファ１２４の動作を第１５図，第１６図を参照して説明する。第１５図と第１６図はリード要求信号１２５とリードアドレス信号１２６と要求状態信号１２７の動作を規定する。リード用バッファ１２４は、プロセッサバス１１３へ出力されたリード要求を記憶する。リード用バッファ１２４は、記憶したリード要求をリード要求信号１２５を使い、メモリ制御手段１３３とリトライリード用バッファ131に出力する。リード用バッファ１２４は、記憶されたリード要求がメモリ制御手段１３３に受け付けられるまで要求状態信号１２７をＯＮにする。リード用バッファ１２４は、メモリ制御手段１３３からの読み出し承認信号１３７がＯＮとなることにより、記憶されたリード要求がメモリ制御手段１３３に受け付けられたことを知り、要求状態信号１２７をＯＦＦにし、リード要求信号１２５を無効にする。リード用バッファ１２４は、記憶されたリード要求のリードアドレス信号１２６を競合検出手段１２８に出力する。
第１５図において、２４００はリード要求、２４０１は記憶されたリード要求２４００のリードアドレスである。第１５図では、時刻2402でリード要求２４００がリード用バッファ１２４に記憶されるため、リード用バッファ１２４は、時刻２４０２から要求状態信号１２７をＯＮとし、リード要求信号１２５を有効とする。時刻２４０３で読み出し承認信号１３７がＯＮになるため、リード用バッファ１２４は、次のサイクルで要求状態信号１２７ＯＦＦにし、リード要求信号１２５を無効にする。
第１６図において、２４０５はリード要求、２４０６は記憶されたリード要求２４０５のリードアドレスである。第１６図では、時刻2407でリード要求２４０５がリード用バッファ１２４に記憶されるため、リード用バッファ１２４は、時刻２４０７から要求状態信号１２７をＯＮとし、リード要求信号１２５を有効とする。時刻２４０９で読み出し承認信号１３７がＯＮになるため、リード用バッファ１２４は、次のサイクルで要求状態信号１２７ＯＦＦにし、リード要求信号１２５を無効にする。
次にライト用バッファ１２２の動作を第１７図を参照して説明する。第１７図はライト要求信号１２３の動作を規定する。ライト用バッファ１２２は、プロセッサバス１１３へ出力されたライト要求を記憶する。ライト用バッファ１２２は、記憶したライト要求をリード要求信号123を使い、メモリ制御手段１３３に出力する。ライト用バッファ１２２は、メモリ制御手段１３３からの書き込み承認信号１３０がＯＮとなることにより、記憶されたライト要求がメモリ制御信号１３３に受け付けられたことを知り、ライト要求信号１２３を無効にする。第１７図において、２５００はライト要求である。第１７図では、時刻２５０１で、ライト要求２５００がライト用バッファ１２２に記憶され、ライト要求信号１２３が有効となる。ライト用バッファ１２２は、時刻２５０２で書き込み承認信号１３０がＯＮとなるため、次のサイクルでライト要求信号１２３を無効にする。
次に、リトライリード用バッファ１３１の動作について第１８図を参照して説明する。第１８図はリトライリードアドレス線１３２の動作を規定する。リトライリード用バッファ１３１は、読み出し承認信号137がＯＮとなった時のリード要求信号１２５を記憶し、リトライリードアドレス１３２から出力する。リトライリード用バッファ１３１は、送出完了信号１１８がＯＮになるのを受けてリトライリードアドレス１３２を無効にする。第１８図において、２６００はリード要求である。第１８図では、時刻２６０１で読み出し承認信号１３７がＯＮとなるため、リトライリード用バッファ１３１は、リード要求２６００を記憶し、リトライリードアドレス１３２から出力する。時刻２６０２で送出完了信号１１８がＯＮとなるため、リトライリード用バッファ１３１は、リトライリードアドレス１３２を無効とする。
次に、送出用バッファ１２０の動作について第１９図を参照して説明する。第１９図は送出データ線１１９の動作を規定する。送出用バッファ１２０は、メモリリードデータ１２１に出力されたデータを記憶し、送出データ線１１９から出力する。また、送出用バッファ１２０は、リトライデータ有効信号１１７がＯＮとなることで、メモリリードデータ１２１のデータを記憶し、送出データ線１１９から出力する。送出用バッファ１２０は、送出完了信号１１８がＯＮになると送出データ線119を無効にする。
第１９図において、２７００，２７０２は送出データ、２７０３はリトライリードによる送出データである。第１９図では、メモリリードデータ１２１に送出データ２７００が出力されるため、送出用バッファ１２０は送出データ２７００を送出データ１１９から出力する。時刻２７０１で送出完了信号１１８がＯＮとなるため、送出用バッファ120は送出データ１１９を無効にする。時刻２７０５でリトライデータ有効信号１１７がＯＮとなるため、送出用バッファ１２０は、送出データ１１９に送出データ２７０２を変更し送出データ２７０３を出力する。時刻２７０４で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を無効にする。
次にこの好ましい実施形態において、リードとライトの競合時でリトライリードしない場合のデータの送出動作を第２０図を参照し説明する。リード要求６００は時刻６０１で、ライト要求６０２は時刻６０３で、プロセッサバス１１３に発行される。ライト要求６０２は、リード要求６００と参照アドレスが同じである。リード要求６００に対するコヒーレント報告１０８，１０９，１１０，１１１は、時刻６０４で完了している。ライト要求６０２が発行された時刻６０３では、コヒーレント報告は完了しておらず、リード要求６００も受け付けられていないため、競合検出手段１２８は、時刻６０５で書き込み優先信号１２９をＯＮとする。書き込み優先信号１２９がＯＮであるため、メモリ制御手段133は、リード要求６００よりも先にライト要求６０２を受け付ける。従って、リード要求６００により読み出されたデータ６００はライト要求６０２で書き込まれたデータとなる。時刻６０８において、送出用バッファ１２０からデータ６０７が出力されコヒーレント完了信号１１５もＯＮであるため、時刻６０８で送出制御手段１１４は送出完了信号118をＯＮにし、時刻６０９で送出制御手段１１４はプロセッサバス１１３にデータ６１０を送出する。送出完了信号１１８をＯＮであるため、競合検出手段１２８はコヒーレント完了信号１１５をＯＦＦにする。送出データ６１０は、データ６０６，６０７と同一であり、ライト要求602で書き込まれたデータである。従って、この実施形態により、キャッシュとメモリのコヒーレントが保証される。
次にこの好ましい実施形態において、リードとライトの競合時でリトライリードする場合のデータの送出動作を第２１図を参照し説明する。リード要求７００は時刻７０１で、ライト要求７０２は時刻７０３で、プロセッサバス１１３に発行される。ライト要求７０２は、リード要求７００と参照アドレスが同じである。リード要求７００に対するコヒーレント報告１０８，１０９，１１０，１１１は、時刻７０４で完了している。ライト要求７０２が発行された時刻７０３では、コヒーレント報告は完了していないがリード要求の受け付けは終了しているため、競合検出手段１２８は、時刻７０５で書き込み優先信号１２９をＯＮとし、時刻７０４で送出抑止信号１３６をＯＮとする。送出制御手段１１４は、送出データ７０６が送出バッファ１２０から出力される時刻７０４で、コヒーレント完了信号１１５と送出抑止信号１３６がＯＮであることから、リトライリード要求信号１１６をＯＮにする。その結果、メモリ制御手段１３３は、時刻７０８でリトライデータ有効信号１１７をＯＮにし、リトライリードによるデータ７０７を出力する。次にリトライデータ有効信号１１７がＯＮであるため、送出用バッファ１２０は時刻709で出力データを７０６から７０７へ変更し、競合検出手段１２８は送出抑止信号１３６をＯＦＦにする。送出抑止信号１３６がＯＦＦになったので、送出制御手段１１４は送出完了信号１１８をＯＮにし、時刻711でデータ７１０を送出する。送出データ７１０は、ライト要求７０２で書き込まれたデータである。従って、この実施形態により、キャッシュとメモリのコヒーレントが保証される。
次に本発明の他の好ましい実施形態を示す。リード用バッファ１２４，ライト用バッファ１２２はＦＩＦＯであり、それぞれ、リード要求，ライト要求を複数個記憶する。競合検出手段１２８は、リード用バッファに記憶された複数のリード要求１２６とその要求状態信号１２７からプロセッサバス１１３に発行されたライト要求との競合を検出し、その競合結果を記憶する。競合検出手段１２８は記憶した結果を、メモリ制御手段１３３と送出制御手段１１４に出力する。リトライリード用バッファ１３１はＦＩＦＯであり、リード用バッファ１２４の出力でメモリ制御手段１３３に受け付けられた要求を複数個記憶する。送出用バッファ１２０はＦＩＦＯバッファであり、送出データ１２１を複数個記憶する。
競合検出手段１２８の動作を第２２図，第２３図，第２４図を参照して説明する。第２２図は、コヒーレント完了信号１１５の動作を規定する。競合検出手段１２８はプロセッサバス１１３に発行されるリード要求に対するコヒーレント報告を監視し、その報告が全て完了したことを記憶し、コヒーレント完了信号１１５により、送出制御手段１１４に出力する。対応するリード要求が送出制御手段１１４で処理されプロセッサバス１１３に送出されたことを示す送出完了信号１１８がＯＮになることで、対応するリード要求のコヒーレント報告完了の記憶をクリアし、コヒーレント完了信号１１５をＯＦＦにする。続いて、競合検出手段１２８は、次のリード要求のコヒーレント報告の状態をコヒーレント報告完了信号１１５に出力する。
第２２図において、９００，９０１，９０２，９０３はリード要求、９０４，９０８，９１２，９１６はリード要求９００のコヒーレント報告、９０５，９０９，９１３，９１７はリード要求９０１のコヒーレント報告、９０６，９１０，９１４，９１８はリード要求９０２のコヒーレント報告、９０７，９１１，９１５，９１９はリード要求９０３のコヒーレント報告である。
第２２図では、リード要求９００のコヒーレント報告は、コヒーレント報告９１６が到着して完了するため、競合検出手段１２８は、リード要求９００のコヒーレント報告の完了を記憶し、時刻９２０でコヒーレント完了信号１１５をＯＮにする。リード要求９０１のコヒーレント報告は、コヒーレント報告９１７が到着して完了するため、競合検出手段１２８は、リード要求９０１のコヒーレント報告の完了を記憶する。時刻９２１でリード要求９００に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号115をＯＦＦにする。競合検出手段１２８は、すでに記憶しているリード要求９０１のコヒーレント報告完了情報により、時刻９２２でリード要求９０１に対してコヒーレント完了信号１１５をＯＮにする。時刻９２２でリード要求９０１に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をOFFにする。リード要求９０２のコヒーレント報告は、コヒーレント報告９１８が到着して完了するため、競合検出手段１２８は、リード要求９０２のコヒーレント報告の完了を記憶し、時刻９２４でコヒーレント完了信号１１５をＯＮにする。リード要求９０３のコヒーレント報告は、コヒーレント報告９１９が到着して完了するため、競合検出手段１２８は、リード要求９０３のコヒーレント報告の完了を記憶する。時刻925でリード要求９０２に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をOFFにする。競合検出手段１２８は、すでに記憶しているリード要求９０３のコヒーレント報告完了情報により、時刻９２６でリード要求９０３に対してコヒーレント完了信号１１５をＯＮにする。時刻９２７でリード要求９０３に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をＯＦＦにする。
第２３図は、書き込み優先信号１２９の動作を規定する。競合検出手段１２８は、プロセッサバス１１３に発行されるライト要求を監視し、すでに発行されリード用バッファ１２４に記憶されているリード要求に対して競合を検出する。競合検出手段１２８は、リード要求アドレス１２６に出力されているリード要求の参照アドレスとプロセッサバス１１３に発行されるライト要求の参照アドレスを比較し、リード要求の参照アドレスとライト要求の参照アドレスが同じで且つ、そのリード要求に対するコヒーレント報告が完了して無いならば、書き込み優先信号１２９をＯＮにする。競合検出手段１２８は、その競合情報とライト要求を関連させて記憶する。そのライト要求がメモリ制御手段１３３に受け付けられ、そのライト要求に対して書き込み承認信号１３０がＯＮになることで、競合検出手段１２８は、書き込み優先信号１２９をＯＦＦにし、記憶したそのライト要求の競合情報をクリアする。
第２３図において、９２８，９２９，９３０，９３１はリード要求、９３２，９３３，９３４，９３５はライト要求、９３６，９４０，９４４，９４８はリード要求９２８のコヒーレント報告、９３７，９４１，９４５，９４９はリード要求９２９のコヒーレント報告、９３８，９４２，９４６，９５０はリード要求９３０のコヒーレント報告、９３９，９４３，９４７，９５１はリード要求９３１のコヒーレント報告である。ライト要求932はリード要求９２８と参照アドレスが同じである。ライト要求９３３とライト要求９３５はリード要求９３０と参照アドレスが同じである。ライト要求９３４はリード要求９３１と参照アドレスが同じである。
第２３図では、ライト要求９３２の参照アドレスとリード要求９２８の参照アドレスが同じであるが、ライト要求９３２の発行がリード要求９２８の最後のコヒーレント報告９４４の出力以降であるため、競合検出手段１２８は、書き込み優先信号１２９を操作しない。ライト要求９３３の発行はリード要求９３０のコヒーレント報告完了の以前であるため、競合検出手段１２８は、その競合情報を記憶し、時刻９５２で書き込み優先信号１２９をＯＮとする。時刻９５２でライト要求９３２に対して、書き込み承認信号１３０がＯＮとなるが、ライト要求９３３に対するものでないため、競合検出手段１２８は、ライト要求９３３の競合情報はクリアせず、また、書き込み優先信号１２９もＯＦＦにしない。ライト要求９３４の発行はリード要求９３１のコヒーレント報告完了の以前であるため、競合検出手段１２８は、その競合情報を記憶する。時刻９５３でライト要求９３３に対して、書き込み承認信号１３０がＯＮとなるため、競合検出手段１２８は、ライト要求９３３の競合情報をクリアし、書き込み優先信号１２９をＯＦＦにする。競合手段１２８は、ライト要求９３４の競合情報を記憶しているため、時刻９５４で書き込み優先信号１２９をＯＮにする。ライト要求９３５の発行は、リード要求９３０の最後のコヒーレント報告９５０の出力以降であるため、競合検出手段１２８は、その競合情報は記憶しない。時刻９５５でライト要求９３４に対して、書き込み承認信号１３０がＯＮとなるため、競合検出手段１２８は、ライト要求９３４の競合情報をクリアし、書き込み優先信号１２９をＯＦＦにする。ライト要求９３５はリード要求と競合して無いので、時刻９５５の次のサイクル以降、競合検出手段１２８は書き込み優先信号１２９をＯＦＦとする。
第２４図は、送出抑止信号１３６の動作を規定する。競合検出手段１２８は、プロセッサバス１１３に発行されるライト要求を監視し、すでに発行されリード用バッファ１２４に記憶されているリード要求に対して競合を検出する。競合検出手段１２８は、要求状態信号１２７からそのリード要求のメモリ制御手段１３３への受け付け状況を知る。競合検出手段１２８は、リード要求アドレス１２６に出力されているリード要求の参照アドレスとプロセッサバス１１３に発行されるライト要求の参照アドレスを比較し、リード要求の参照アドレスとライト要求の参照アドレスが同じで且つ、そのリード要求に対するコヒーレント報告が完了してなくて、さらにそのリード要求のメモリ制御手段１３３への受け付けが終了している時、送出抑止するための情報をそのリード要求と関連させて送出制御情報として記憶する。競合検出手段１２８は、送出制御手段１１４でそのリード要求による読み出しが送出処理される時に、そのリード要求に関連して記憶した送出制御情報を基に送出抑止信号１３６を操作する。競合検出手段１２８は、送出制御情報が送出抑止を指示している時、送出抑止信号１３６をＯＮとする。そのリード要求に対して送出制御手段１１４がリトライリードを行い、メモリ制御手段１３３がリトライデータ有効信号１１７をＯＮにすることで、競合検出手段１２８は、そのリード要求の記憶された競合情報をクリアし、送出抑止信号１３６をＯＦＦにする。競合検出手段１２８は、送出完了信号１１８がＯＮになることで、次のリード要求の送出制御情報を調べ、送出抑止信号１３６を操作する。
第２４図において、９５７，９５８，９５９，９６０はリード要求、９６１，９６２，９６３，９６４はライト要求、９６５，９６９，９７３，９７７はリード要求９５７のコヒーレント報告、９６６，９７０,９７４，９７８はリード要求９５８のコヒーレント報告、９６７，９７１，９７５，９７９はリード要求９５９のコヒーレント報告、９６８，９７２，９７６，９８０はリード要求９６０のコヒーレント報告、９８６，９８７，９８８，９９０，９９１はリード要求の受け付け状態である。ライト要求９６１はリード要求９５７と参照アドレスが同じである。ライト要求９６２とライト要求９６４はリード要求９５９と参照アドレスが同じである。ライト要求９６３はリード要求９６０と参照アドレスが同じである。要求状態９８６はリード用バッファ１２４のリード要求９５７が記憶されたエントリのみが有効で、そのエントリがまだメモリ制御手段１３３に受け付けられていない状態を示す。要求状態９８７はリード用バッファ１２４のリード要求９５７が記憶されたエントリとリード要求９５８が記憶されたエントリが有効で、それら２つのエントリがまだメモリ制御手段１３３に受け付けられていない状態を示す。要求状態９８８はリード用バッファ１２４のリード要求９５８が記憶されたエントリとリード要求９５９が記憶されたエントリが有効で、それら２つのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求９５７がメモリ制御手段１３３に受け付けられた状態を示す。要求状態９８９はリード用バッファ１２４のリード要求９５８が記憶されたエントリとリード要求９５９が記憶されたエントリとリード要求９６０が記憶されたエントリが有効で、それら３つのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求９５７がメモリ制御手段１３３に受け付けられた状態を示す。要求状態９９０はリード用バッファ１２４のリード要求９５９が記憶されたエントリとリード要求９６０が記憶されたエントリが有効で、それら２つのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求９５７とリード要求９５８がメモリ制御手段１３３に受け付けられた状態を示す。要求状態９９１はリード用バッファ１２４のリード要求９６０が記憶されたエントリが有効で、そのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求９５７とリード要求９５８とリード要求９５９がメモリ制御手段１３３に受け付けられた状態を示す。
第２４図では、ライト要求９６１の参照アドレスとリード要求９５７の参照アドレスが同じであり、リード要求９５７がすでにメモリ制御手段１３３に受け付けられているが、ライト要求９６１の発行がリード要求９５７の最後のコヒーレント報告９７３の出力以降であるため、競合検出手段１２８は、送出制御情報として送出指示を記憶し、送出抑止信号１３６をＯＦＦにする。ライト要求９６２の発行はリード要求９５９のコヒーレント報告完了の以前であり、リード要求９５９がすでにメモリ制御手段１３３に受け付けられているため、競合検出手段１２８は、送出抑止を送出制御情報として記憶する。ライト要求９６３の発行はリード要求９６０のコヒーレント報告完了の以前であり、リード要求960がすでにメモリ制御手段１３３に受け付けられているため、競合検出手段１２８は、送出抑止を送出制御情報として記憶する。時刻９９４でリード要求９５７に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は、次のリード要求９５８の送出制御情報を調べる。リード要求９５８の送出制御情報は送出指示であるため、競合検出手段128は送出抑止信号１３６をＯＦＦのままにする。時刻９９５でリード要求９５８に対して送出完了信号１１８がＯＮになるため、競合検出手段１２８は、次のリード要求９５９の送出制御情報を調べる。リード要求９５９の送出制御情報は送出抑止であるため、競合検出手段１２８は、時刻９９２で送出抑止信号１３６をＯＮにする。時刻９９６でリトライデータ有効信号１１７がＯＮとなるため、競合検出手段１２８は、リード要求９５９の競合情報をクリアし、送出抑止信号１３６をＯＦＦにする。時刻９９７でリード要求９５９に対して、送出完了信号１１８がＯＮとなるため、競合検出手段１２８は、次のリード要求９６０の送出制御情報を調べる。リード要求９６０の送出制御情報は送出抑止であるため、競合検出手段１２８は、時刻９９３で送出抑止信号１３６をＯＮにする。時刻９９８でリトライデータ有効信号１１７がＯＮとなるため、競合検出手段１２８は、リード要求９５９の競合情報をクリアし、送出抑止信号１３６をＯＦＦにする。
次に、リード用バッファ１２４の動作を第２５図を参照して説明する。第２５図はリード要求信号１２５と要求状態信号１２７の動作を規定する。リード用バッファ１２４は、プロセッサバス１１３へ出力されたリード要求を複数個記憶する。リード用バッファ１２４は、記憶したリード要求を記憶した順にリード要求信号１２５を使い、メモリ制御手段１３３とリトライリード用バッファ１３１に出力する。リード用バッファ１２４は、記憶されたリード要求のメモリ制御手段１３３への受け付け状況を要求状態信号１２７により、競合検出手段１２８に通知する。リード用バッファ１２４は、メモリ制御手段１３３からの読み出し承認信号１３７がＯＮとなることにより、記憶されたリード要求がメモリ制御手段１３３に受け付けられたことを知り、リード要求信号１２５を１サイクルの間無効にし、次に記憶したリード要求をリード要求信号125に出力する。
第２５図において、２８００，２８０１，２８０２，２８０３はリード要求、２８０４，２８０５，２８０６，２８０７,２８０８,２８０９は要求状態である。要求状態２８０４はリード用バッファ１２４のリード要求２８００が記憶されたエントリのみが有効で、そのエントリがまだメモリ制御手段１３３に受け付けられていない状態を示す。要求状態２８０５はリード用バッファ１２４のリード要求２８００が記憶されたエントリとリード要求２８０１が記憶されたエントリが有効で、それら２つのエントリがまだメモリ制御手段１３３に受け付けられていない状態を示す。要求状態２８０６はリード用バッファ１２４のリード要求２８００が記憶されたエントリとリード要求２８０１が記憶されたエントリとリード要求２８０２が記憶されたエントリが有効で、それら３つのエントリがまだメモリ制御手段１３３に受け付けられていない状態を示す。要求状態２８０７はリード用バッファ１２４のリード要求2800が記憶されたエントリとリード要求２８０１が記憶されたエントリとリード要求２８０２が記憶されたエントリとリード要求２８０３が記憶されたエントリが有効で、それら４つのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態２８０８はリード用バッファ１２４のリード要求２８０１が記憶されたエントリとリード要求２８０２が記憶されたエントリとリード要求２８０３が記憶されたエントリが有効で、それら３つのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求２８００がメモリ制御手段133に受け付けられた状態を示す。要求状態２８０９はリード用バッファ１２４のリード要求２８０２が記憶されたエントリとリード要求2803が記憶されたエントリが有効で、それら２つのエントリがまだメモリ制御手段１３３に受け付けられていない状態と、リード要求２８００とリード要求２８０１がメモリ制御手段１３３に受け付けられた状態を示す。
第２５図では、リード用バッファ１２４は、リード要求２８００，２８０１，２８０２，２８０３を全て記憶する。リード用バッファ124は、リード要求２８００を記憶し、リード要求信号１２５にリード要求２８００を出力する。リード用バッファ１２４は、時刻２８１３に読み出し承認信号１３７がＯＮになるため、次のサイクルでリード要求信号１２５を無効にし、リード要求２８００の次に記憶されたリード要求２８０１をリード要求信号１２５に出力する。リード用バッファ１２４は、時刻が２８１４に読み出し承認信号１３７がＯＮになるため、次のサイクルでリード要求信号１２５を無効にし、リード要求２８０１の次に記憶されたリード要求２８０２をリード要求信号１２５に出力する。
次に、ライト用バッファ１２２の動作を第２６図を参照して説明する。第２６図はライト要求信号１２３の動作を規定する。ライト用バッファ１２２は、プロセッサバス１１３へ出力されたライト要求を複数個記憶する。ライト用バッファ１２２は、記憶したライト要求をライト要求信号１２３を使い、メモリ制御手段１３３に出力する。ライト用バッファ１２２は、メモリ制御手段１３３からの書き込み承認信号１３０がＯＮとなることにより、記憶されたライト要求がメモリ制御手段１３３に受け付けられたことを知り、ライト要求信号１２３を１サイクルの間無効にし、次に記憶したライト要求をライト要求信号１２３に出力する。
第２６図において、２９００，２９０１，２９０２，２９０３はライト要求である。第１７図では、ライト用バッファ１２２は、ライト要求２９００，２９０１，２９０２，２９０３を記憶し、ライト要求信号１２３にライト要求２９００出力する。ライト用バッファ１２２は、時刻２９０４で書き込み承認信号１３０がＯＮとなるため、次のサイクルでライト要求信号１２３を無効し、ライト要求２９００の次に記憶されたライト要求２９０１をライト要求信号１２３に出力する。ライト用バッファ１２２は、時刻２９０５で書き込み承認信号１３０がＯＮになるため、次のサイクルでライト要求信号１２３を無効にし、ライト要求２９０１の次に記憶されたライト要求２９０２をライト要求信号１２３に出力する。
次に、リトライリード用バッファ１３１の動作について第２７図を参照して説明する。第２７図はリトライリードアドレス線１３２の動作を規定する。リトライリード用バッファは、読み出し承認信号１３７がＯＮとなった時のリード要求信号１２５を記憶し、リトライリードアドレス１３２から出力する。リトライリード用バッファ１３１は、送出完了信号１１８がＯＮになるのを受けてリトライリードアドレス１３２を１サイクルの間無効にし、次に記憶したリード要求をリトライリードアドレス１３２から出力する。第２７図において、３０００，３００１，３００２はリード要求である。
第２７図では、時刻３００３で読み出し承認信号１３７がＯＮとなるため、リトライリード用バッファ１３１は、リード要求３０００を記憶し、リトライリードアドレス１３２からリード要求３０００を出力する。時刻３００４で読み出し承認信号１３７がＯＮとなるため、リトライリード用バッファ１３１はリード要求３００１を記憶する。時刻３００６で送出完了信号１１８がＯＮとなるため、リトライリード用バッファ１３１は、リトライリードアドレス１３２を次の１サイクルの間無効とした後リード要求３００１を出力する。時刻３００５で読み出し承認信号１３７がＯＮとなるため、リトライリード用バッファ１３１はリード要求３００２を記憶する。時刻３００７で送出完了信号１１８がＯＮとなるため、リトライリード用バッファ１３１は、リトライリードアドレス１３２を次の１サイクルの間無効とした後リード要求３００２を出力する。
次に、送出用バッファ１２０の動作について第２８図を参照して説明する。第２８図は送出データ線１１９の動作を規定する。送出用バッファ１２０は、メモリリードデータ１２１に出力されたデータを複数個記憶し、送出データ線１１９から出力する。また、送出用バッファ１２０は、リトライデータ有効信号１１７がＯＮとなることで、メモリリードデータ１２１のデータを記憶し、送出データ線１１９から出力する。送出用バッファ１２０は、送出完了信号１１８がＯＮとなると送出データ線１１９を無効にし、次に記憶したメモリリードデータ１２１のデータを送出データ線１１９から出力する。
第２８図において、３１００，３１０１，３１０２，３１０３は送出データ、３１０４はリトライリードによる送出データである。第２８図では、メモリリードデータ１２１に送出データ３１００が出力されるため、送出用バッファ１２０は送出データ３１００を送出データ１１９から出力する。時刻３１０５で送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ３１０１を送出データ線１１９から出力する。時刻３１０８でリトライデータ有効信号１１７がＯＮとなるため、送出用バッファ１２０は、送出データ線１１９の送出データ３１０１を変更し送出データ３１０４を出力する。時刻３１０６で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ３１０２を送出データ線１１９から出力する。時刻３１０７で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ３１０３を送出データ線１１９から出力する。
この他の好ましい実施形態における、複数のリード要求と一つのライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第２９図，第３０図を参照して説明する。この第２９図の右端と第３０図の左端とは信号が連続している。時刻１００１から連続でリード要求１０００，１００２，１００３がバス１１３に発行される。時刻１００５でライト要求１００４が発行される。ライト要求１００４の参照アドレスは、リード要求１０００と１００３の参照アドレスと競合する。時刻１００６で競合検出の結果書き込み優先信号１２９がＯＮになり、時刻１００７で書き込み要求承認信号130がＯＮされることで、書き込み優先信号１２９が時刻１００８でＯＦＦになる。リード要求１０００，１００２，１００３に対するリードデータは時刻１０１０から連続でメモリ制御手段１３３から出力される。時刻１００９でコヒーレント完了信号１１５と送出抑止信号１３６がＯＮになるため、送出制御手段１１４は時刻１００９でリトライリード要求信号１１６をＯＮにする。リトライリードアドレス１３２は、リード要求１０００の参照アドレス１０１３である。時刻１００９では書き込み優先信号１２９がＯＮになっているため、メモリ制御手段１３３はリトライリードよりもライト要求１００４の書き込みを優先する。
時刻１００８で書き込み優先信号１２９がＯＦＦになるため、メモリ制御手段１３３は時刻１０１４でリトライデータ有効信号１１７をＯＮにし、リトライリードによるデータ１０１５を出力する。送出用バッファ１２０は、送出データを１０１２からリトライリードのデータ1017に入れ替える。競合検出手段１２８はリトライデータ有効信号１１７がＯＮになったので、時刻１０１６で送出抑止信号１３６をＯＦＦにする。送出抑止信号１３６がＯＦＦになるため、送出制御手段１１４は、時刻１０１６で送出完了信号１１８をＯＮにし、時刻１０１８で送出データ１０１７を、バス１１３にデータ１０１９として送出する。送出完了信号１１８を受けて、競合検出手段１２８はコヒーレント完了信号１１５をクリアし、リトライリード用バッファ１３１はリード要求１００２の参照アドレスを出力する。時刻１０２１で、リード要求１００２のコヒーレント完了信号１１５がＯＮ、送出抑止信号１３６がＯＦＦであるので、送出制御手段１１４は送出完了信号１１８をＯＮにし、送出データ１０２０を時刻１０２３でバス１１３にデータ１０２２として送出する。送出完了信号１１８がＯＮになるため、競合検出手段１２８は、時刻１０２３でコヒーレント完了信号１１５をＯＦＦにする。時刻１０２５でリード要求１００３のコヒーレント完了信号１１５と送出抑止信号１３６が出力される。それを受けて送出制御手段１１４はリトライ要求信号１１６をＯＮとする。リトライリード用バッファ１３１はリトライリードアドレスとして、リード要求１００３の参照アドレス１０２６を出力する。
メモリ制御手段１３３はリード要求１００３の参照アドレスでリトライリードを実行し、時刻１０２７でリトライデータ１０３２を出力する。リトライデータ有効信号１１７がＯＮであるため、送出用バッファ120は出力をデータ１０２４からデータ１０２８に変更し、競合検出手段１２８は送出抑止信号１３６をＯＦＦにする。時刻１０２９で送出抑止信号１３６がＯＦＦとなるため、送出制御手段１１４は送出完了信号１１８をＯＮし、時刻１０３０でデータ１０２８をデータ１０３１としてバス１１３へ出す。リトライリードで読まれたデータ１０１５と1032はともに、ライト要求１００４で書かれたデータであるため、メモリとキャッシュのコヒーレントが保証できたことになる。
この他の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第３１図，第３２図を参照して説明する。この第３１図の右端と第３２図の左端とは信号が連続している。時刻１１０１から連続でリード要求１１００，１１０２，１１０３がバス１１３に発行される。時刻１１０５でライト要求１１０４，時刻1107でライト要求１１０８が発行される。ライト要求１１０４の参照アドレスは、リード要求１１０３と競合し、ライト要求１１０８の参照アドレスは、リード要求１１００の参照アドレスと競合する。競合検出の結果、時刻１１０６で書き込み優先信号１２９がＯＮになり、時刻１１０９で書き込み承認信号１３０がＯＮされることで、書き込み優先信号１２９が時刻１１１０でＯＦＦになる。リード要求１１００，１１０２，1103に対するリードデータ１１１３，１１１４，１１１５は時刻１１１２から連続でメモリ制御手段１３３から出力される。時刻１１１１でコヒーレント完了信号１１５と送出抑止信号１３６がＯＮになるため、送出制御手段１１４は時刻１１１７でリトライリード要求信号１１６をＯＮにする。リトライリードアドレス１３２は、リード要求１１００の参照アドレス１１１８である。時刻１１１７では書き込み優先信号１２９がＯＮになっているため、メモリ制御手段１３３はリトライリードよりもライト要求１１０４の書き込みを優先する。時刻１１１０で１サイクル書き込み優先信号１２９がＯＦＦになるが、メモリ制御手段１３３は書き込みを受け付けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求１１０８の書き込みが優先される。
時刻１１１９で書き込み承認信号１３０が発行され、時刻１１２０で書き込み優先信号１２９がＯＦＦになるため、メモリ制御手段１３３はリトライリード要求を受け付け、時刻１１２２でリトライデータ有効信号１１７をＯＮにし、リトライリードによるデータ１１２３を出力する。送出用バッファ１２０は、送出データを１１１６からリトライリードのデータ１１２７に入れ替える。競合検出手段１２８はリトライデータ有効信号１１７がＯＮになったので、時刻１１２４で送出抑止信号１３６をＯＦＦにする。送出制御手段１１４は送出抑止信号１３６がＯＦＦになるので、時刻１１２４で送出完了信号１１８をＯＮにし、時刻1125で送出データ１１２７を、バス１１３に、データ１１２６として送出する。送出完了信号１１８を受けて、競合検出手段１２８はコヒーレント完了信号１１５をクリアし、リトライリード用バッファ１３１はリード要求１１０２の参照アドレス１１３０を出力する。時刻１１２９で、リード要求１１０２のコヒーレント完了信号１１５がＯＮ、送出抑止信号136がＯＦＦであるので、送出制御手段１１４は送出完了信号１１８をＯＮにし、送出データ１１２８を時刻１１３１でバスにデータ１１３２として送出する。競合検出手段１２８は送出完了信号１１８がＯＮになるので、時刻１１３１でコヒーレント完了信号１１５をＯＦＦにする。時刻１１３４でリード要求１１０３のコヒーレント完了信号１１５と送出抑止信号１３６が出力される。それを受けて送出制御手段１１４はリトライリード要求信号１１６をＯＮとする。リトライリード用バッファ131はリトライリードアドレスとして、リード要求１１０３の参照アドレス１１３３を出力する。
メモリ制御手段１３３はリード要求１１０３の参照アドレスでリトライリードを実行し、時刻１１３５でリトライデータ１１３７を出力する。リトライデータ有効信号１１７がＯＮであるため、送出用バッファ120は出力をデータ１１３６からデータ１１３９に変更し、競合検出手段１２８は送出抑止信号１３６をＯＦＦにする。時刻１１３８で送出抑止信号１３６がＯＦＦとなるため、送出制御手段１１４は送出完了信号１１８をＯＮし時刻１１４０でデータ１１３９をデータ１１４１としてバス１１３へ出す。リトライリードで読まれたデータ１１２３と1137は、それぞれライト要求１１０８とライト要求１１０４で書かれたデータ、であるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第３３図に本発明の別の好ましい実施形態を示す。この実施形態はリード要求とライト要求の競合でリトライリードが必要な場合において、データをライト用バッファ１２２から持ってくることに対応する。ライト用バッファ１２２は、バス１１３に発行されたライト要求を複数個記憶する機能に加え、リトライリード要求１１６により、リトライリード用バッファ１３１から出力されているアドレス１３２と一致する参照アドレスを持つライト要求のデータを送出用バッファ１２０に出力する。送出用バッファ１２０は、メモリ制御手段１３３から出力された送出データを記憶する機能に加えて、リトライデータ有効信号１１７がＯＮされた時、送出データ１１９にライト用バッファの出力１２３を出力する機能を持つ。メモリ制御手段１３３は、リトライリード要求信号１１６がＯＮの時は、書き込み優先信号１２９がＯＮであるライト要求以外は受け付けない。
次に、ライト用バッファ１２２の動作を第３４図，第３５図，第３６図を参照して説明する。第３４図はライト要求信号１２３の動作を規定する。第３５図，第３６図は、ライト要求信号１２３とリトライデータ有効信号１１７の動作を規定する。ライト用バッファ１２２は、プロセッサバス１１３へ出力されたライト要求を複数個記憶する。ライト用バッファ１２２は、リトライリード要求信号１１６がＯＦＦの時または、書き込み優先信号１２９がＯＮの時、記憶したライト要求をライト要求信号１２３を使い、メモリ制御手段１３３に出力する。ライト用バッファ１２２は、メモリ制御手段１３３からの書き込み承認信号１３０がＯＮとなることにより、記憶されたライト要求がメモリ制御手段１３３に受け付けられたことを知り、ライト要求信号１２３を１サイクルの間無効にし、次に記憶したライト要求をライト要求信号１２３に出力する。ライト用バッファ１２２は、リトライリード要求信号１１６がＯＮでかつ、書き込み優先信号１２９がＯＦＦの時、リトライデータ有効信号１１７をＯＮにして、記憶されている全てのライト要求からリトライリードアドレス１３２と一致する参照アドレスを持つライト要求の書き込みデータをライト要求線１２３に出力する。第３４図において、リトライリード要求信号１１６がＯＦＦの時または、書き込み優先信号１２９がＯＮの時であり、１３００，１３０１，１３０２，１３０３はライト要求である。
第３４図では、ライト用バッファ１２２は、ライト要求１３００を記憶しライト要求信号１２３に出力する。時刻１３０４で、書き込み承認信号１３０がＯＮとなるため、ライト用バッファ１２２は、次のサイクルでライト要求信号１２３を無効し、ライト要求１３００の次に記憶されたライト要求１３０１をライト要求信号１２３に出力する。時刻1305で、書き込み承認信号１３０がＯＮとなるため、ライト用バッファ122は、次のサイクルでライト要求信号１２３を無効し、ライト要求1301の次に記憶されたライト要求１３０２をライト要求信号１２３に出力する。時刻１３０６で、書き込み承認信号１３０がＯＮとなるため、ライト用バッファ１２２は、次のサイクルでライト要求信号１２３を無効し、ライト要求１３０２の次に記憶されたライト要求１３０３をライト要求信号１２３に出力する。時刻１３０７で、書き込み承認信号１３０がＯＮとなるため、ライト用バッファ１２２は、次のサイクルでライト要求信号１２３を無効にする。
第３５図において、１３０８，１３０９，１３１０，１３１１はライト要求、１３１６はリトライリードの参照アドレスである。ライト要求１３０８の参照アドレスは、リトライリードの参照アドレス１３１６と同じである。第３５図では、ライト用バッファ１２２は、ライト要求１３０８を記憶し、第３４図の規定に従いライト要求信号１２３にライト要求１３０８を出力し、時刻１３１２の書き込み承認信号１３０のＯＮを受けてライト要求信号１２３にライト要求１３０９を出力する。時刻１３１４でリトライリード要求信号１１６がＯＮになるため、ライト用バッファ１２２はリトライリードアドレス１３２に出力されている参照アドレス１３１６と一致する参照アドレスのライト要求１３０８をライト要求信号１２３に出力する。ライト用バッファ１２２は、時刻１３１５にリトライデータ有効信号１１７をＯＮにして、ライト要求信号１２３を１サイクル無効にライト要求１３０９を再び出力する。以後、ライト用バッファ１２２は、第３４図の規定に従い、時刻１３１３の書き込み承認信号１３０がＯＮになるのを受けて、ライト要求信号１２３にライト要求１３１０を出力する。
第３６図において、１３１７，１３１８，１３１９，１３２０はライト要求、１３２６はリトライリードの参照アドレスである。ライト要求１３１７の参照アドレスは、リトライリードの参照アドレス１３２６と同じである。第３６図では、ライト用バッファ１２２は、第３４図の規定に従いライト要求１３１７を処理し、ライト要求信号１２３にライト要求１３１８を出力する。ライト用バッファ１２２は、時刻１３２４で書き込み優先信号１２９がＯＮであるため、第３４図の規定に従い、ライト要求１３１８を処理する。時刻１３２２の書き込み承認信号１３０がＯＮになるのを受けて、書き込み優先信号１２９はＯＦＦになる。書き込み優先信号１２９がＯＦＦで且つ、リトライリード要求信号１１６がＯＮとなるため、ライト用バッファ１２２は、第３５図の規定に従い、リトライリードアドレス１３２に出力されている参照アドレス１３２６と同じ参照アドレスであるライト要求１３１７を、ライト要求信号123に出力する。ライト用バッファ１２２は、第３５図の規定に従い、時刻１３２５にリトライデータ有効信号１１７をＯＮにし、ライト要求信号１２３にライト要求１３１９を出力する。ライト用バッファ１２２は、ライト要求１３１９，１３２０を第３４図の規定に従い処理する。
次に、送出用バッファ１２０の動作について第３７図を参照して説明する。第３７図は送出データ線１１９の動作を規定する。送出用バッファ１２０は、メモリリードデータ１２１に出力されたデータを複数個記憶し、送出データ線１１９から出力する。また、送出用バッファ１２０は、リトライデータ有効信号１１７がＯＮとなることで、ライト要求信号線１２３のデータを記憶し、送出データ線１１９から出力する。送出用バッファ１２０は、送出完了信号１１８がＯＮになると送出データ線１１９を無効にし、次に記憶したデータを送出データ線１１９から出力する。第３７図において、１４００，１４０１，１４０２，１４０３は送出データ、１４０９はライト用バッファ１２２に記憶されたライト要求の書き込みデータである。第３７図では、メモリリードデータ１２１に送出データ１４００が出力されるため、送出用バッファ１２０は送出データ１４００を送出データ１１９から出力する。時刻１４０４で送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ１４０１を送出データ線１１９から出力する。時刻１４０８でリトライデータ有効信号１１７がＯＮとなるため、送出用バッファ１２０は、送出データ線１１９の送出データ１４０１を変更し送出データ１４０９を出力する。時刻１４０５で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ１４０２を送出データ線１１９から出力する。時刻１４０６で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、次に記憶した送出データ１４０３を送出データ線１１９から出力する。時刻１４０７で、送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にする。
次に、メモリ制御手段１３３の動作について第３８図を参照して説明する。リード要求の処理動作、ライト要求の処理動作、リード要求とライト要求の競合処理動作はメモリ制御手段１３３と同じで、第６図，第７図，第８図に従う。メモリ制御手段１３３は、書き込み優先信号129がＯＦＦで且つ、リトライリード要求信号１１６がＯＮである時、メモリ制御手段１３３は、リード要求もライト要求も受け付けない。第３８図において、３２００はリード要求、３２０２はライト要求、３２０３はリトライリード用の書き込みデータ、３２０８はライト制御データ、３２０９はリード制御データ、３２１０はライトアドレス、３２１１は書き込みデータ、３２１２はリードアドレス、３２１３はリードの読み出しデータである。第３８図では、時刻３２０５でリトライリード要求信号１１６がＯＮであるが、書き込み優先信号１２９がＯＮであるため、メモリ制御手段１３３は、ライト要求３２０２を受け付ける。ライト要求の受け付けは第７図の規定に従う。ライト要求受け付け後、書き込み優先信号１２９がＯＦＦで且つ、リトライリード有効信号１１６がＯＮであるため、メモリ制御手段１３３は、ライト要求信号線１２３とリード要求信号線１２５の内容のどちらも受け付けない。時刻３２０７でリトライリード要求信号１１６がＯＦＦになるため、第６図の規定に従い、メモリ制御手段１３３はリード要求３２００を受け付ける。
この本発明にかかる別の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第３９図，第４０図を参照して説明する。この第３９図の右端と第４０図の左端とは信号が連続している。時刻１５０１から連続でリード要求１５００，１５０２，１５０３がバス１１３に発行される。時刻１５０５でライト要求1504，時刻１５０７でライト要求１５０８が発行される。ライト要求１５０４の参照アドレスは、リード要求１５０３と競合し、ライト要求１５０８の参照アドレスは、リード要求１５００の参照アドレスと競合する。競合検出の結果、時刻１５０６で書き込み優先信号１２９がＯＮになり、時刻１５０９で書き込み承認信号１３０がＯＮされることで、書き込み優先信号１２９が時刻１５１０でＯＦＦになる。リード要求１５００，１５０２，１５０３に対するリードデータ１５１３,１５１４,１５１５は時刻１５１２から連続でメモリ制御手段１３３から出力される。時刻１５１１でコヒーレント完了信号１１５と送出抑止信号１３６がＯＮになるため、送出制御手段１１４は時刻１５１７でリトライリード要求信号１１６をＯＮにする。リトライリードアドレス１３２は、リード要求１５００の参照アドレス１５１８である。時刻１５１７では書き込み優先信号１２９がＯＮになっているため、メモリ制御手段１３３はリトライリードよりもライト要求１５０４の書き込みを優先し、ライト用バッファ１２２は、記憶されているライト要求１５０４の情報１５４２を出力する。時刻１５１０で１サイクルの間書き込み優先信号１２９がOFFになるが、メモリ制御手段１３３は要求を受け付けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求1508の書き込みが優先される。ライト用バッファ１２２も承認信号を受けた次のサイクルは、出力１３２を有効としないのでリトライリード要求を待たし、記憶されているライト要求１５０８の情報１５４３を出力する。時刻１５１９で書き込み承認信号１３０が発行され、時刻１５２０で書き込み優先信号１２９がＯＦＦになるため、メモリ制御手段１３３はリトライリード要求を受け、通常のリード要求，ライト要求を受け付けない。ライト用バッファ１２２は、時刻１５２１で書き込み優先信号129がＯＦＦでリトライリード要求信号１１６がＯＮのため、リトライリードの動作を行い、時刻１５２１でリトライリードアドレス１５１８を参照アドアレスとするライト要求１５０８のデータ１５４４を出力１２３に出す。送出用バッファ１２０は、送出データを１５１８からリトライリードのデータ１５２７に入れ替える。競合検出手段１２８はリトライデータ有効信号１１６がＯＮになったので、時刻１５２４で送出抑止信号１３６をＯＦＦにする。送出制御手段１１４は送出抑止信号１３６がＯＦＦになるので、時刻１５２４で送出完了信号１１８をＯＮにし、時刻１５２５で送出データ１５２７を、バス１１３にデータ１５２６として送出する。送出完了信号１１８を受けて、競合検出手段１２８はコヒーレント完了信号１１５をクリアし、リトライリード用バッファ１３１はリード要求１５０２の参照アドレス１５３０を出力す��。時刻1529で、リード要求１５０２のコヒーレント完了信号１１５がＯＮ、送出抑止信号１３６がＯＦＦであるので、送出制御手段１１４は送出完了信号118をＯＮにし、送出データ１５２８を時刻１５３１でバス１１３にデータ１５３２として送出する。競合検出手段１２８は送出完了信号１１８がＯＮになるので、時刻１５３１でコヒーレント完了信号１１５をＯＦＦにする。時刻１５３４でリード要求１５０３のコヒーレント完了信号１１５と送出抑止信号１３６が出力される。それを受けて送出制御手段１１４はリトライリード要求信号１１６をＯＮとする。リトライリード用バッファ１３１はリトライリードアドレスとして、リード要求1503の参照アドレス１５３３を出力する。メモリ制御手段１３３はリトライリード要求を受け、通常のリード要求，ライト要求を受け付けない。ライト用バッファ１２２は、時刻１５３４で書き込み優先信号１２９がOFFでリトライリード要求信号１１６がＯＮのため、リトライリードの動作を行い、時刻１５３４でリトライリードアドレス１５３３を参照アドレスとするライト要求１５０４のデータ１５４５を出力１２３に出す。リトライデータ有効信号１１７がＯＮであるため、送出用バッファ１２０は出力をデータ１５３６からデータ１５３９に変更し、競合検出手段１２８は送出抑止信号１３６をＯＦＦにする。時刻１５３８で送出抑止信号１３６がＯＦＦとなるため、送出制御手段１１４は送出完了信号１１８をＯＮし時刻１５４０でデータ１５３９をデータ１５４１としてバス１１３へ出す。リトライリードで読まれたデータ１５２３と1537は、それぞれライト要求１５０８とライト要求１５０４で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第４１図に本発明の更に別の好ましい実施形態を示す。この実施形態はリード要求とライト要求の競合でリトライリードが必要な場合において、リトライリードアドレスをリード用バッファ１２４から持ってくることに対応する。リード用バッファ１２４は、バス１１３に発行されたリード要求を複数個記憶する機能に加え、出力１３２にリトライリードアドレスを出力する機能を持つ。
リード用バッファ１２４の動作を第４２図を参照して説明する。第４２図は、リトライリードアドレス１３２の動作を規定する。リード要求信号１２５とリードアドレス１２６と要求状態信号１２７は、第１７図の規定に従い動作する。リード用バッファ１２４は、プロセッサバス１１３へ出力されたリード要求を複数個記憶する。リード用バッファ１２４は、記憶したリード要求を記憶した順にリード要求信号１２５とリトライリードアドレス線１３２を使用しメモリ制御手段１３３に出力する。リード用バッファ１２４は、記憶されたリード要求のメモリ制御手段１３３への受け付け状況を要求状態信号１２７により、競合検出手段１２８に通知する。リード用バッファ１２４は、メモリ制御手段133からの読み出し承認信号１３７がＯＮとなることにより、記憶されたリード要求がメモリ制御手段１３３に受け付けられたことを知り、リード要求信号１２５を１サイクルの間無効にし、次に記憶したリード要求をリード要求信号１２５に出力する。リード用バッファ１２４は、送出制御手段１１４からの送出完了信号１１８がＯＮになることにより、記憶されたリード要求に対する送出が完了したことを知り、リトライリードアドレス１３２を１サイクルの間無効にし、次に記憶したリード要求をリトライリードアドレス１３２に出力する。
第４２図において、１７００，１７０１，１７０２，１７０３はリード要求である。第４２図では、時刻１７０４で読み出し承認信号１３７がＯＮになるため、リード用バッファ１２４は、リード要求１７００の代わりにリード要求１７０１をリード要求信号１２５に出力する。時刻１７０５で読み出し承認信号１３７がＯＮになるため、リード用バッファ１２４は、リード要求１７０１の代わりにリード要求１７０２をリード要求信号１２５に出力する。時刻１７０６で送出完了信号１１８がＯＮになるため、リード用バッファ１２４は、リトライリードアドレス信号１３２を１サイクル無効にし、リード要求１７００の代わりにリード要求１７０１をリトライリードアドレス信号１３２に出力する。
この本発明にかかる更に別の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第４３図，第４４図を参照して説明する。この第４３図の右端と第４４図の左端とは信号が連続している。時刻１８０１から連続でリード要求１８００，１８０２，１８０３がバス１１３に発行される。また、時刻１８４２にリード要求１８４３が発行される。時刻１８０５でライト要求１８０４，時刻1807でライト要求１８０８が発行される。ライト要求１８０４の参照アドレスは、リード要求１８０３と競合し、ライト要求１８０８の参照アドレスは、リード要求１８００の参照アドレスと競合する。競合検出の結果、時刻１８０６で書き込み優先信号１２９がＯＮになり、時刻１８０９で書き込み承認信号１３０がＯＮされることで、書き込み優先信号１２９が時刻１８１０でＯＦＦになる。リード要求１８００，１８０２，1803に対するリードデータ１８１３，１８１４，１８１８は時刻１８１２から連続でメモリ制御手段１３３から出力される。時刻１８１１でコヒーレント完了信号１１５と送出抑止信号１３６がＯＮになるため、送出制御手段１１４は時刻１８１７でリトライリード要求信号１１６をＯＮにする。リード用バッファ１２４は、リトライリードアドレス１３２にリード要求１８００の参照アドレス１８４８を出力する。時刻１８１７では書き込み優先信号１２９がＯＮになっているため、メモリ制御手段１３３はリトライリードよりもライト要求１８０４の書き込みを優先する。時刻１８１０で１サイクル書き込み優先信号１２９がＯＦＦになるが、メモリ制御手段１３３は要求を受けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求１８０８の書き込みが優先される。時刻１８１９で書き込み承認信号１３０が発行され、時刻１８２０で書き込み優先信号１２９がＯＦＦになるため、メモリ制御手段１３３はリード要求１８００の参照アドレス１８４８でリトライリード要求を受け付け、時刻１８２１でリトライデータ有効信号１１７をＯＮにし、リトライデータ１８２３を出力する。送出用バッファ120は、送出データを１８１８からリトライリードのデータ１８２７に入れ替える。競合検出手段１２８はリトライデータ有効信号１１７がＯＮになったので、時刻１８２４で送出抑止信号１３６をＯＦＦにする。送出制御手段１１４は送出抑止信号１３６がＯＦＦになるので、時刻1824で送出完了信号１１８をＯＮにし、時刻１８２５で送出データ１８２７を、バス１１３に、データ１８２６として送出する。送出完了信号１１８を受けて、競合検出手段１２８はコヒーレント完了信号１１５をクリアし、リード用バッファ１２４はリード要求１８０２の参照アドレス１８３０をリトライリードアドレス１３２に出力する。時刻１８２９で、リード要求１８０２のコヒーレント完了信号１１５がＯＮ、送出抑止信号136がＯＦＦであるので、送出制御手段１１４は送出完了信号１１８をＯＮにし、送出データ１８２８を時刻１８３１でバス１１３にデータ1832として送出する。競合検出手段１２８は送出完了信号１１８がＯＮになるので、時刻１８３１でコヒーレント完了信号１１��をＯＦＦにする。時刻１８２４で送出完了信号１１８がＯＮになるので、リード用バッファ１２４はリード要求１８０３の参照アドレス１８３３をリトライリードアドレス１３２に出力する。メモリ制御手段１３３は時刻１８４９でリード要求１８４３の読みだしデータ１８５０を出力する。時刻１８３４でリード要求１８０３のコヒーレント完了信号１１５と送出抑止信号１３６が出力される。それを受けて送出制御手段１１４はリトライリード要求信号１１６をＯＮとする。メモリ制御手段１３３はリード要求１８０３の参照アドレス１８３３でリトライリード要求を受け、時刻１８３５でリトライデータ有効信号１１７がＯＮにし、リトライデータ１８３７を出力する。送出用バッファ１２０は出力をデータ１８３６からデータ１８３９に変更し、競合検出手段１２８は送出抑止信号１３６をＯＦＦにする。時刻１８３８で送出抑止信号１３６がＯＦＦとなるため、送出制御手段１１４は送出完了信号１１８をＯＮし時刻１８４０でデータ１８３９をデータ１８４１としてバス１１３へ出す。時刻1840で送出バッファ１２０はリード要求１８４３の読みだしデータ１８５１を出力する。リトライリードで読まれたデータ１８２３と１８３７は、それぞれライト要求１８０８とライト要求１８０４で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第４５図に本発明の更に他の好ましい実施形態を示す。この実施形態はキャッシュの報告の完了を待ってリード要求をメモリ制御手段１３３に出力するものに対応する。リード用バッファ１２４は、バス１１３に発行されたリード要求を複数個記憶する機能に加え、コヒーレント完了信号１１５を受けてリード要求を出力１２５に出す。メモリ制御手段１３３はリード要求を受け付けたら、読み出し承認信号１３７を競合検出手段１２８に出力する。競合検出手段１２８は読み出し承認信号137を受けたら、コヒーレント完了信号１１５をクリアする。送出制御手段１１４は送出用バッファ１２０の出力をバス１１３に送出する。
次に、リード用バッファ１２４の動作を第４６図を参照して説明する。第４６図はリード要求信号１２５の動作を規定する。リードアドレス１２６の動作は第２５図の規定に従う。リード用バッファ１２４は、プロセッサバス１１３へ出力されたリード要求を複数個記憶する。リード用バッファ１２４は、コヒーレント完了信号１１５がＯＮになったら、記憶したリード要求を記憶した順にリード要求信号１２５を使い、メモリ制御手段１３３に出力する。リード用バッファ１２４は、メモリ制御手段１３３からの読み出し承認信号１３７がＯＮとなることにより、記憶されたリード要求がメモリ制御手段１３３に受け付けられたことを知り、リード要求信号１２５を１サイクルの間無効にし、次に記憶したリード要求をリード要求信号１２５に出力する。第４６図において、2000,２００１，２００２，２００３はリード要求である。第４６図では、時刻２００７でコヒーレント完了信号１１５がＯＮになるため、リード用バッファ１２４は、次のサイクルでリード要求信号１２５に最初に記憶したリード要求２０００を出力する。時刻２１０６で読み出し承認信号１３７がＯＮとなるため、リード用バッファ１２４はリード要求信号１２５を無効にする。時刻２００８でコヒーレント完了信号１１５がＯＮになるため、リード用バッファ１２４は、リード要求２０００の次に記憶したリード要求２００１をリード要求信号１２５に出力する。
競合検出手段１２８の動作を第４７図を参照して説明する。第４７図は、コヒーレント完了信号１１５の動作を規定する。書き込み優先信号１２９の動作は第２２図の規定に従う。競合検出手段１２８はプロセッサバス１１３に発行されるリード要求に対するコヒーレント報告を監視し、その報告が全て完了したことを記憶し、コヒーレント完了信号115により、リード用バッファ１２４に出力する。対応するリード要求がメモリ制御手段１３３に受け付けられたことを示す読み出し承認信号137がＯＮになることで、対応するリード要求のコヒーレント報告完了の記憶をクリアし、コヒーレント完了信号１１５をＯＦＦにする。続いて、競合検出手段１２８は、次のリード要求のコヒーレント報告の状態をコヒーレント完了信号１１５に出力する。第４７図において、３３００，３３０１，３３０２，３３０３はリード要求、３３０４，３３０８，３３１２，３３１６はリード要求３３００のコヒーレント報告、3305，３３０９，３３１３，３３１７はリード要求３３０１のコヒーレント報告、３３０６，３３１０，３３１４，３３１８はリード要求３３０２のコヒーレント報告、３３０７，３３１１，３３１５，３３１９はリード要求３３０３のコヒーレント報告である。第４７図では、リード要求３３００のコヒーレント報告は、コヒーレント報告３３１６が到着して完了するため、競合検出手段１２８は、リード要求３３００のコヒーレント報告の完了を記憶し、時刻３３２０でコヒーレント完了信号１１５をＯＮにする。リード要求３３０１のコヒーレント報告は、コヒーレント報告３３１７が到着して完了するため、競合検出手段１２８は、リード要求３３０１のコヒーレント報告の完了を記憶する。時刻３３２４でリード要求９００に対して読み出し承認信号１３７がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をＯＦＦにする。競合検出手段１２８は、すでに記憶しているリード要求３３０１のコヒーレント報告完了情報により、時刻３３２１でリード要求３３０１に対してコヒーレント完了信号１１５をＯＮにする。時刻３３２１でリード要求３３０１に対して読み出し承認信号１３７がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をＯＦＦにする。リード要求３３０２のコヒーレント報告は、コヒーレント報告３３１８が到着して完了するため、競合検出手段128は、リード要求３３０２のコヒーレント報告の完了を記憶し、時刻3322でコヒーレント完了信号１１５をＯＮにする。リード要求３３０３のコヒーレント報告は、コヒーレント報告３３１９が到着して完了するため、競合検出手段１２８は、リード要求３３０３のコヒーレント報告の完了を記憶する。時刻３３２６でリード要求３３０２に対して読み出し承認信号１３７がＯＮになるため、競合検出手段１２８は次のサイクルにコヒーレント完了信号１１５をＯＦＦにする。競合検出手段１２８は、すでに記憶しているリード要求３３０３のコヒーレント報告完了情報により、時刻３３２３でリード要求３３０３に対してコヒーレント完了信号１１５をＯＮにする。時刻３３２７でリード要求３３０３に対して読み出し承認信号１３７がＯＮになるため、競合検出手段１２８は次���サイクルにコヒーレント完了信号１１５をＯＦＦにする。
次にメモリ制御手段１３３について説明する。メモリ制御手段１３３は、リード用バッファ１２４，ライト用バッファ１２２から出力されるリード要求または、ライト要求を処理し、リード要求の場合はメモリリードデータ線１２１に送出データを出力する。書き込み優先信号１２９がＯＮである時、メモリ制御手段１３３は、ライト要求を優先して受け付ける。リード要求処理時の読み出し承認信号１３７とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１の動作は第６図の規定に従う。ライト要求処理時の書き込み承認信号130とメモリ制御信号１３４とメモリアドレス／データ１３５の動作は第７図の規定に従う。リード要求とライト要求の競合処理動作時の読み出し承認信号１３７と書き込み承認信号１３０とメモリ制御信号１３４とメモリアドレス／データ１３５とメモリリードデータ１２１の動作は第８図の規定に従う。
次に、送出用バッファ１２０の動作について第４８図を参照して説明する。第４８図は送出データ線１１９の動作を規定する。送出用バッファ１２０は、メモリリードデータ１２１に出力されたデータを複数個記憶し、送出データ線１１９から出力する。送出用バッファ１２０は、送出完了信号１１８がＯＮになると送出データ線１１９を無効にし、次に記憶したメモリリードデータ１２１のデータを送出データ線１１９から出力する。第４８図において、３４００，３４０１,３４０２,３４０３は送出データである。第４８図では、メモリリードデータ１２１に送出データ３１００が出力されるため、送出用バッファ１２０は送出データ３１００を送出データ１１９から出力する。時刻３４０４で送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、送出データ３４００の次に記憶した送出データ３４０１を送出データ線１１９から出力する。時刻３４０５で送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、送出データ３４０１の次に記憶した送出データ３４０２を送出データ線１１９から出力する。時刻３４０６で送出完了信号１１８がＯＮとなるため、送出用バッファ１２０は送出データ１１９を１サイクルの間無効にし、送出データ３４０２の次に記憶した送出データ３４０３を送出データ線１１９から出力する。
次に、送出制御手段１１４の動作を第４９図を参照して説明する。第４９図は、プロセッサバスへの出力１１３とバスアービタ１１２と送出完了信号１１８の動作を規定する。第４９図で、３５００，３５０１は送出データである。送出制御手段は、送出データ１１９が有効で無い時は、送出データ１１９が有効になるまで待つ。送出制御手段114は送出データ１１９が有効であれば、バスアービタ信号１１２と送出完了信号１１８をＯＮとし、次のサイクルでプロセッサバス１１３に送出データを出力する。第４９図では、時刻３５０２で送出データ１１９は有効であるため、送出制御手段１１４はバスアービタ１１２と送出完了信号１１８をＯＮにし、次のサイクルにプロセッサバス１１３に送出データ３５００を送出する。時刻３５０３で送出データ１１９は有効であるため、送出制御手段１２８はバスアービタ１１２と送出完了信号118をＯＮにし、次のサイクルにプロセッサバス１１３に送出データ3501を送出する。
この更に他の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第５０図，第５１図を参照して説明する。この第５０図の右端と第５１図の左端とは信号が連続している。時刻２１０１から連続でリード要求２１００，２１０２，２１０３がバス１１３に発行される。時刻２１０５でライト要求２１０４，時刻2107でライト要求２１０８が発行される。ライト要求２１０４の参照アドレスは、リード要求２１０３と競合し、ライト要求２１０８の参照アドレスは、リード要求２１００の参照アドレスと競合する。時刻２１０６で競合検出の結果書き込み優先信号１２９がＯＮになり、時刻２１０９で書き込み承認信号１３０がＯＮされることで、書き込み優先信号１２９が時刻２１１０でＯＦＦになる。時刻２１１１でコヒーレント完了信号１１５がＯＮになるため、リード用バッファ１２４はリード要求2100のアドレス２１１８を出力する。メモリ制御手段１３３は、要求を受け付けた次のサイクルは要求を受け付けないので、時刻２１０６から時刻２１２０までは書き込み優先となり、ライト要求２１０４と２１０８を受け付け、リード要求２１００は時刻２１２０以降の時刻２１２２で受け付ける。競合検出手段１２８は、読み出し承認信号１３７を受け、時刻２１２１でコヒーレント完了信号１１５をクリアする。それによりリード要求アドレスは無効となる。時刻２１２３でコヒーレント完了信号１１５がＯＮとなるので、リード用バッファ１２４はリード要求2102のアドレス２１２４を出力する。競合検出手段１２８は、読み出し承認信号１３７が時刻２１２５でＯＮになるのを受け、次のサイクルにコヒーレント完了信号１１５をクリアする。それによりリード要求アドレスは無効となる。時刻２１２７でコヒーレント完了信号１１５がＯＮとなるので、リード用バッファ１２４はリード要求２１０３のアドレス2126を出力する。競合検出手段１２８は、読み出し承認信号１３７が時刻2128でＯＮになるのを受け、次のサイクルにコヒーレント完了信号をクリアする。時刻２１１２から連続でリード要求２１００，２１０２，2103の読みだしデータがリードデータ１２１に出力され、時刻２１２９で送出データ１１９に出力されたリード要求２１００の読みだしデータが時刻２１３６でバス１１３に出力される。同様にリード要求２１０２，2103の読みだしデータ２１１４，２１１５，送出データ２２３１，２１３２がリードデータ１２１，送出データ１１９に連続で出力され、バス113にそれぞれ２１３４，２１３５として出力される。リード要求２１００，２１０３で読まれたデータ２１３３と2135は、それぞれライト要求2108とライト要求２１０４で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
次に、本発明を使用したメモリ制御チップにより構成されたマルチプロセッサシステムの好ましい実施形態を第５２図を参照して説明する。プロセッサ２２００はキャッシュ２２１１を持ち、複数がプロセッサバス２２０１と制御線２２０２とコヒーレント報告信号線２２０４で、メモリ制御チップ２２０３で接続されている。メモリ制御チップ２２０３は、プロセッサの発行するリード要求とライト要求の競合を検出し、メモリ制御チップの内部バッファまたは、メモリ２２０５をバッファとして使用することでメモリとキャッシュのコヒーレンシを保証する。メモリ制御チップはメモリ２２０５とメモリバス２２０６と制御線２２０７で接続されており、メモリのリード，ライトを制御する。また、メモリ制御チップは各Ｉ／Ｏ２２１０とシステムバス２２０８と制御線2209で接続され、プロセッサからのＩ／Ｏに対するリード及びライト要求を、また、Ｉ／ＯからのメモリへのＤＭＡリード及びライト要求を制御する。
産業上の利用可能性
以上のように、本発明にかかるマルチプロセッサシステムによれば、メモリ制御チップでプロセッサからのメモリへのリード要求とライト要求の検出し、メモリとキャッシュのコヒーレントを保証することにより、要求元であるプロセッサが、発行済みの要求に拘束されず他の要求を発行できるようになり、高い性能を要求されるシステムに用いるのに適している。
【図１】
0003735375.tif 000002
【図２】
0003735375.tif 000003
【図３】
0003735375.tif 000004
【図４】
0003735375.tif 000005
【図５】
0003735375.tif 000006
【図６】
0003735375.tif 000007
【図７】
0003735375.tif 000008
【図８】
0003735375.tif 000009
【図９】
0003735375.tif 000010
【図１０】
0003735375.tif 000011
【図１１】
0003735375.tif 000012
【図１２】
0003735375.tif 000013
【図１３】
0003735375.tif 000014
【図１４】
0003735375.tif 000015
【図１５】
0003735375.tif 000016
【図１６】
0003735375.tif 000017
【図１７】
0003735375.tif 000018
【図１８】
0003735375.tif 000019
【図１９】
0003735375.tif 000020
【図２０】
0003735375.tif 000021
【図２１】
0003735375.tif 000022
【図２２】
0003735375.tif 000023
【図２３】
0003735375.tif 000024
【図２４】
0003735375.tif 000025
【図２５】
0003735375.tif 000026
【図２６】
0003735375.tif 000027
【図２７】
0003735375.tif 000028
【図２８】
0003735375.tif 000029
【図２９】
0003735375.tif 000030
【図３０】
0003735375.tif 000031
【図３１】
0003735375.tif 000032
【図３２】
0003735375.tif 000033
【図３３】
0003735375.tif 000034
【図３４】
0003735375.tif 000035
【図３５】
0003735375.tif 000036
【図３６】
0003735375.tif 000037
【図３７】
0003735375.tif 000038
【図３８】
0003735375.tif 000039
【図３９】
0003735375.tif 000040
【図４０】
0003735375.tif 000041
【図４１】
0003735375.tif 000042
【図４２】
0003735375.tif 000043
【図４３】
0003735375.tif 000044
【図４４】
0003735375.tif 000045
【図４５】
0003735375.tif 000046
【図４６】
0003735375.tif 000047
【図４７】
0003735375.tif 000048
【図４８】
0003735375.tif 000049
【図４９】
0003735375.tif 000050
【図５０】
0003735375.tif 000051
【図５１】
0003735375.tif 000052
【図５２】
0003735375.tif 000053
【図５３】
0003735375.tif 000054