[go: up one dir, main page]

JP3735375B2 - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP3735375B2
JP3735375B2 JP51489697A JP51489697A JP3735375B2 JP 3735375 B2 JP3735375 B2 JP 3735375B2 JP 51489697 A JP51489697 A JP 51489697A JP 51489697 A JP51489697 A JP 51489697A JP 3735375 B2 JP3735375 B2 JP 3735375B2
Authority
JP
Japan
Prior art keywords
read
request
signal
write
data
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
JP51489697A
Other languages
Japanese (ja)
Inventor
秀仁 武和
道雄 森岡
小倉  真
憲一 黒澤
秀忠 福中
Original Assignee
株式会社 日立製作所
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 株式会社 日立製作所 filed Critical 株式会社 日立製作所
Application granted granted Critical
Publication of JP3735375B2 publication Critical patent/JP3735375B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

技術分野
この発明は、キャッシュを有する複数のプロセッサからなり、プロセッサからのメモリへのリード要求とライト要求を検出し、メモリとキャッシュのコヒーレントを保証するマルチプロセッサシステムに関し、特に共有メモリに対するメモリアクセス制御に適したメモリ制御チップの実現と、このメモリ制御チップを用いた共有メモリ型のマルチプロセッサシステムに関する。
背景技術
マルチプロセッサシステムにおいて、キャッシュとメモリのコヒーレンシを保証することは不可欠である。特に、任意のプロセッサのリードが参照したアドレスに対して、別のプロセッサがライトを発行した場合、ライトされたデータを返すことを保証することが問題になる。
このリードとライト競合でのキャッシュのコヒーレンシの問題についての従来の技術を説明する。複数のプロセッサがプロセッサ制御線,プロセッサバス、及びコヒーレント報告線でそれぞれメモリ制御チップと接続されており、メモリ制御チップはメモリバスとメモリ制御線でメモリと接続されているものとする。
また、ある一つのプロセッサのキャッシュにアドレスAの最新データD′が存在し、メモリには、古いデータDが存在しているものとする。別のプロセッサがアドレスAに対してメモリへリード要求を発行し、先のプロセッサがアドレスAに対してメモリへライト要求を発行する場合、従来技術では、メモリ制御チップがリード要求とライト要求の参照アドレスAの競合を検出し、プロセッサ制御線にリトライリード指示の信号を、リード要求を出したプロセッサに対して発行し、このプロセッサが再びアドレスAに対してリード要求を発行する。メモリ制御チップは先に発行されたこのプロセッサからのリード要求を無効化し、ライト要求を優先してメモリのアドレスAの内容をD′に更新する。その後、メモリ制御チップは再発行したリード要求を受け付け、読み出しデータD′をプロセッサバスに送出する。リード要求を出したプロセッサはアドレスAに対してデータD′を受け取ることが出来るので、キャッシュとメモリのコヒーレンシが保証されたことになる。
しかし、この様な従来の技術では、リード要求を出したプロセッサがメモリ制御チップからリトライリードの要求を受けたとき、再び、参照アドレスAを生成して発行する必要が有るので、プロセッサ内に履歴を残すバッファが必要であった。複数のリード要求の発行を許すには、リトライさせるリードを識別する情報もプロセッサ内に必要である。そこで従来の技術では、バッファによる物量の増加を抑えるため、メモリとキャッシュのコヒーレンシの保証が必要なリード要求は、1プロセッサに対して1要求に制限し、プロセッサがリード要求を発行できないステージを設け、そのステージ間でリトライリード要求を受け付けるという制御を行ってきた。しかし、この従来の技術では、プロセッサがリード要求を発行できない期間が存在するため、システムのメモリリードのスループットが悪くなり、性能が低下するという問題が存在した。
本発明は、プロセッサをコヒーレント保証の動作から解放し、マルチプロセッサシステムの性能向上を目的とするものである。
発明の開示
本発明は、上記の問題を解決するために、マルチプロセッサシステムにおいて、リード要求とライト要求の参照アドレスの一致を検出する機能と、リード要求のコヒーレント報告の終了を監視する機能と、参照アドレスの一致検出結果とコヒーレント報告の終了結果から、前記ライト要求のライトデータが前記リード要求に対するリードデータであると判定する機能と、リードデータとライトデータを一致させる機能とを備えたメモリ制御チップを設けるものである。
そして、リード要求がメモリに起動されていないならば、ライト要求がリード要求のコヒーレント報告が終了する前に発行された時、リード要求とライト要求の競合検出によりライト動作を優先処理させることで、リード動作が正しいデータを読み出すことができる。また、リード要求がメモリに起動されているならば、ライト要求がリード要求のコヒーレント報告が終了する前に発行された時、リード要求とライト要求の競合検出によりライト動作を優先処理し、リード動作を無効化し再び同じアドレスでメモリリードを起動し、読み出したデータをバスに送出することで、リード要求が正しいデータを読み出すことができる。
このように本発明は、メモリとキャッシュのコヒーレントをメモリ制御チップ内とメモリとで保証することにより、プロセッサをコヒーレント保証の動作から解放し、マルチプロセッサシステムの性能低下を防ぐものである。
【図面の簡単な説明】
第1図は、本発明にかかる好ましいマルチプロセッサシステムのブロック図である。
第2図は、このマルチプロセッサシステムにおける競合検出手段の説明図であり、第3図は、この競合検出手段の別の説明図であり、第4図は、この競合検出手段の競合検出手段の更に別の説明図である。
第5図は、本発明にかかる好ましいマルチプロセッサシステムにおけるメモリ制御手段の説明図であり、第6図は、このメモリ制御手段の説明図であり、第7図は、このメモリ制御手段の別の説明図であり、第8図は、このメモリ制御手段のまた別の説明図であり、第9図は、このメモリ制御手段の更に別の説明図であり、第10図は、このメモリ制御手段の他の説明図である。
第11図は、本発明にかかる好ましいマルチプロセッサシステムにおける送出制御手段の説明図であり、第12図は、この送出制御手段の別の説明図であり、第13図は、この送出制御手段の更に別の説明図である。
第14図は、本発明にかかる好ましいマルチプロセッサシステムのリトライリードの説明図である。
第15図は、本発明にかかる好ましいマルチプロセッサシステムのリード用バッファの説明図であり、第16図は、本発明にかかる好ましいマルチプロセッサシステムのリード用バッファの別の説明図である。
第17図は、本発明にかかる好ましいマルチプロセッサシステムのライト用バッファの説明図である。
第18図は、本発明にかかる好ましいマルチプロセッサシステムのリトライリード用バッファの説明図である。
第19図は、本発明にかかる好ましいマルチプロセッサシステムの送出用バッファの説明図である。
第20図は、本発明にかかる好ましいマルチプロセッサシステムの書き込み優先処理の説明図である。
第21図は、本発明にかかる好ましいマルチプロセッサシステムの書き込み優先処理とリトライリードの説明図である。
第22図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける競合検出手段の説明図である。
第23図は、この競合検出手段の別の説明図であり、第24図は、この競合検出手段の更に別の説明図である。
第25図は、本発明にかかる好ましい他のマルチプロセッサシステムのリード用バッファの説明図である。
第26図は、本発明にかかる好ましい他のマルチプロセッサシステムのライト用バッファの説明図である。
第27図は、本発明にかかる好ましい他のマルチプロセッサシステムのリトライリード用バッファの説明図である。
第28図は、本発明にかかる好ましい他のマルチプロセッサシステムの送出用バッファの説明図である。
第29図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける複数のリード要求と1つのライト要求の競合の説明図であり、第30図は、この複数のリード要求と1つのライト要求の競合の別の説明図である。
第31図は、本発明にかかる好ましい他のマルチプロセッサシステムにおける複数のリード要求と複数のライト要求の競合の説明図であり、第32図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第33図は、本発明にかかる好ましい別のマルチプロセッサシステムのブロック図である。
第34図は、本発明にかかる好ましい別のマルチプロセッサシステムにおけるライト用バッファの説明図であり、第35図は、このライト用バッファの別の説明図であり、第36図は、このライト用バッファの更に別の説明図である。
第37図は、本発明にかかる好ましい別のマルチプロセッサシステムの送信用バッファの説明図である。
第38図は、本発明にかかる好ましい別のマルチプロセッサシステムのメモリ制御手段の説明図である。
第39図は、本発明にかかる好ましい別のマルチプロセッサシステムの複数のリード要求と複数のライト要求の競合の説明図であり、第40図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第41図は、本発明にかかる好ましい更に別のマルチプロセッサシステムのブロック図である。
第42図は、本発明にかかる好ましい更に別のマルチプロセッサシステムのリード用バッファの説明図である。
第43図は、本発明にかかる好ましい更に別のマルチプロセッサシステムにおける複数のリード要求と複数のライト要求の競合の説明図であり、第44図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第45図は、本発明にかかる好ましい更に他のマルチプロセッサシステムのブロック図である。
第46図は、本発明にかかる好ましい更に他のマルチプロセッサシステムのリード用バッファの説明図である。
第47図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの競合検出手段の説明図である。
第48図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの送出用バッファの説明図である。
第49図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの送出制御手段の説明図である。
第50図は、本発明にかかる好ましい更に他のマルチプロセッサシステムの複数のリード要求と複数のライト要求の競合の説明図であり、第51図は、この複数のリード要求と複数のライト要求の競合の別の説明図である。
第52図は、本発明にかかるメモリ制御チップによるマルチプロセッサシステムの説明図である。
第53図は、本発明にかかるマルチプロセッサシステムにおける競合検出手段の構成を示すブロック図である。
発明を実施するための最良の形態
本発明の一つの好ましい実施形態を第1図を参照して説明する。第1図において、100,101,102,103は、キャッシュメモリ(C),104,105,106,107はプロセッサ(P),108,109,110,111はキャッシュのコヒーレント報告信号線、112はバスアービタ信号線、113はプロセッサバス、114は送出制御手段、115はコヒーレント完了信号線、116はリトライリード要求信号線、117はリトライデータ有効信号線、118は送出完了信号線、119は送出データ線、120は送出用バッファ、121はメモリリードデータ線、122はライト用バッファ、123はライト要求信号線、124はリード用バッファ、125はリード要求信号線、126はリードアドレス線、127は要求状態信号線、128は競合検出手段、129は書き込み優先信号線、130書き込み承認信号線、131はリトライリード用バッファ、132はリトライリードアドレス線、133はメモリ制御手段、134はメモリ制御信号線、135はメモリアドレス/データ線、136は送出抑止信号線、137は読み出し承認信号線である。
本発明は、システムのプロセッサから発行されたリード要求の参照アドレスとリード要求より遅れてシステム別のプロセッサから発行されたライト要求の参照アドレスの一致を検出する手段とリード要求のコヒーレント報告の終了を監視する手段を有する。これらの手段は競合検出手段128が有する。一致の検出結果と報告の終了結果からライト要求のライトデータがリードのリードデータで有ると判定する手段は、送出制御手段114である。リードデータとライトデータを一致させる手段は、リトライリード用バッファ131とメモリ制御手段133と送出用バッファ120である。
以下第1図の各部についての動作を説明する。リード用バッファ124は、プロセッサバス113に発行されたリード要求を記憶し、記憶したリード要求をリード要求信号線125によりメモリ制御手段133に出力する。また、リード用バッファ124はリードアドレス126,要求状態127を競合検出手段128に出力する。要求状態127は、リード用バッファ124のエントリが有効であるか、またリード要求がメモリ制御手段133に受け付けられているかどうかを表す状態である。
競合検出手段128は、プロセッサバス113に発行されたライト要求とプロセッサ104,105,106,107からのコヒーレント報告108,109,110,111を監視し、リード用バッファ124から出力されたリードアドレス126とライト要求が参照するアドレスとの比較とコヒーレント報告の到着状況から、書き込み優先信号129とコヒーレント完了信号115,送出抑止信号136の出力を制御する。リトライリード用バッファ131は、メモリ制御手段133へ受け付けられたリード用バッファ124の出力125を記憶し、記憶したリトライリードアドレス132はメモリ制御手段133に出力される。ライト用バッファ122はバスに発行されたライト要求を記憶し、その記憶されたライト要求は出力123を使いメモリ制御手段133へ出力される。メモリ制御手段133は、書き込み優先信号129とリトライリード要求信号116をもとに、リード用バッファの出力125と、ライト用バッファの出力123と、リトライリード用のバッファの出力132のうち受け付けるべき要求を選択しメモリを起動する。この起動がリード要求またはリトライリードに依る場合は、メモリ制御手段133はメモリからのデータ135を受信する。送出用バッファ120はメモリ制御手段133からのデータ121を受け付け、送出制御手段114に送出データ119を出力する。送出制御手段114は、コヒーレント完了信号115,送出抑止信号136を調べて、リトライリードをするかそのままプロセッサバス113へ送出するかを判定する。
次に、競合検出手段128の動作について第2図,第3図,第4図を参照して説明する。第2図は、コヒーレント完了信号115の動作を規定している。第3図は書き込み優先信号129の動作を規定している。第4図は送出抑止信号136の動作を規定している。
競合検出手段128は、リード要求のコヒーレント報告が全て出力されたらコヒーレント完了信号115をONとし、そのリード要求の読み出しデータが送出制御手段114から送出され送出完了信号118がONとなったら、コヒーレント完了信号115をOFFとする。
第2図において、200はリード要求、201,202,203,204はリード要求200に対するコヒーレント報告である。第2図では、競合検出手段128は、時刻205でリード要求200のコヒーレントが全て報告されるため、コヒーレント完了信号115をONとする。競合検出手段128は、時刻206で送出完了信号118がONとなるため、時刻207でコヒーレント完了信号115をOFFとする。
競合検出手段128は、リード要求に対するコヒーレント報告が全て出力される前に、そのリード要求の参照アドレスと同じ参照アドレスを持つ書き込み要求が発行されたら、書き込み優先信号129をONとし、その書き込み要求がメモリ制御手段133に受け付けられ書き込み承認信号130がONとなったら、書き込み優先信号129をOFFとする。第3図において、208はリード要求、209はライト要求、210,211,212,213はリード要求208のコヒーレント報告、215はリード要求208の参照アドレス、219はリード要求、220はライト要求、210a,211a,212a,213aはリード要求219のコヒーレント報告、215aはリード要求219の参照アドレスである。ライト要求209は、リード要求208と参照アドレスが同じである。ライト要求220は、リード要求219と参照アドレスが同じである。
第3図では、ライト要求209の発行はリード要求208のコヒーレント報告が全て出力された時刻214より以前であるため、競合検出手段128は、ライト要求209が発行された次の時刻216で書き込み優先信号129をONとする。時刻217でライト要求209の書き込み承認信号130がONとなるため、競合検出手段128は、時刻218で書き込み優先信号129をOFFとする。ライト要求220の発行はリード要求219のコヒーレント報告が全て出力された時刻221以後であるため、競合検出手段128は書き込み優先信号130をONにしない。
競合検出手段128は、リード要求に対するコヒーレント報告が全て出力される前で、且つ、そのリード要求がメモリ制御手段に受け付けられた後に、そのリード要求の参照アドレスと同じ参照アドレスを持つ書き込み要求が発行されたら、送出抑止信号136をONとする。競合検出手段128は、そのリード要求のリトライリードデータがメモリ制御手段133から出力されリトライデータ有効信号117がONとなったら、送出抑止信号136をOFFとする。
第4図において、222はリード要求、223はライト要求、229はリード要求、230はライト要求、233はリード要求222の参照アドレス、234はリード要求229の参照アドレスである。ライト要求223は、リード要求222と参照アドレスが同じである。ライト要求230は、リード要求229と参照アドレスが同じである。第4図では、ライト要求223の発行はリード要求222のコヒーレント報告が全て出力された時刻224以前である。また、ライト要求223の発行はリード要求222がメモリ制御手段133に受け付けられた時刻225以後である。その為、競合検出手段128は、時刻226で送出抑止信号136をONとする。時刻227でリトライデータ有効信号117がONとなるため、競合検出手段128は送出抑止信号136を時刻228でOFFとする。ライト要求230の発行はリード要求229のコヒーレント報告が全て出力された時刻231以前である。しかし、ライト要求230の発行はリード要求229がメモリ制御手段133に受け付けられた時刻232以前である。その為、競合検出手段128は送出抑止信号136を操作しない。
ここで、競合検出手段128の構成について、第53図を参照して説明する。競合検出手段128は、コヒーレント報告の終了を監視する終了監視手段3600とライト要求とリード要求のアドレスの一致を検出するアドレス一致検出手段3601からなる。終了監視手段3600は、コヒーレント報告信号線108,109,110,111,送出完了信号線118を入力し、コヒーレント完了信号線115を出力する。コヒーレント完了信号線115の動作は第2図の規定に従う。アドレス一致検出手段3601は、プロセッサバス113,リードアドレス線126,要求状態信号線127,書き込み承認信号線130,リトライデータ有効信号線117,コヒーレント完了信号線115を入力し、書き込み優先信号線129,送出抑止信号線136を出力する。書き込み優先信号線129の動作は第3図の規定に従う。また、送出抑止信号線136の動作は、第4図の規定に従う。
次に、メモリ制御手段133の動作について第5図を参照して説明する。メモリ制御手段133は、書き込み優先信号129とリトライリード要求信号116がOFFの時、ライト要求またはリード要求があれば通常のメモリ制御を行う。メモリ制御手段133は、この通常のメモリ制御以外にも次の様な動作を行う。
メモリ制御手段133は、書き込み優先信号129がONの場合、リトライリード要求信号116の状態に係わらず、ライト要求のアドレス情報123が有効ならメモリライトを優先して行う。また、メモリ制御手段133は、書き込み優先信号129がOFFで、且つリトライリード要求信号116がONの時、リトライリードアドレス情報132が有効ならリトライリードを優先して行う。
次に、メモリ制御手段133のリード要求の処理動作について第6図を参照して説明する。第6図はリード要求処理時の読み出し承認信号137とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121の動作を規定する。第6図において、300はリード要求、302はリード制御情報、303は参照アドレス、304は読み出されたデータである。メモリ制御手段133は、リード要求を処理可能な時にリード要求が有れば、リード要求を受け付け、読み出し承認信号137を1サイクルの期間ONとする。読み出し承認信号137をONとした1サイクル後、メモリ制御手段134にリード制御情報を出力し、その1サイクル後に、メモリアドレス/データ135に参照アドレスを出力する。メモリ制御手段133は、メモリから読み出されたデータがメモリアドレス/データ135に出力されたら、その1サイクル後にその読み出しデータをメモリリードデータ121に出力する。第6図では、メモリ制御手段133は、時刻301でリード要求300を受け付けるため、時刻301で読み出し承認信号137をONとする。メモリ制御手段133は、読み出されたデータ304を、メモリアドレス/データ135に出力された次のサイクルである時刻305でメモリリードデータ121に出力する。
次に、メモリ制御手段133のライト要求の処理動作について第7図を参照して説明する。第7図はライト要求処理時の書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135の動作を規定する。第7図において、306はライト要求、308はライト制御情報、309は参照アドレス、310は書き込みデータである。メモリ制御手段133は、ライト要求を処理可能な時にライト要求が有れば、ライト要求を受け付け、書き込み承認信号130を1サイクルの期間ONとする。書き込み承認信号130をONとした1サイクル後、メモリ制御信号134にライト制御情報を出力し、その1サイクル後にメモリアドレス/データ135に参照アドレスを、その1サイクル後にメモリアドレス/データ135に書き込みデータを出力する。第7図では、メモリ制御手段133は、時刻307でライト要求306を受け付けるため、時刻307で書き込み承認信号130をONとする。
次に、メモリ制御手段133のリード要求とライト要求の競合処理動作について第8図を参照して説明する。第8図はリード要求とライト要求の競合処理動作時の読み出し承認信号137と書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121の動作を規定する。第8図において、311はリード要求、313はライト要求、314はリード要求311のリード制御情報、315はリード要求311の参照アドレス、318はリード要求311の読み出されたデータ、317はライト要求313のライト制御情報、320はライト要求313の参照アドレス、321はライト要求313の書き込みデータである。メモリ制御手段133は、リード要求とライト要求が処理可能な時に、リード要求とライト要求が同時に有れば、リード要求を先に受け付け、第6図で規定したリード要求処理の動作を行う。リード要求の処理の終了後、メモリ制御手段133はライト要求を受け付け、第7図に規定したライト要求処理の動作を行う。
第8図では、メモリ制御手段133は、リード要求311とライト要求313のうち、時刻312でリード要求311を受け付けるため、時刻301で読み出し承認信号137をONとする。メモリ制御手段133は、読み出されたデータ318をメモリアドレス/データ135に出力された次のサイクルである時刻316でメモリリードデータ121に出力する。次に、メモリ制御手段313は、リード要求311の処理が終了する時刻316でライト要求313を受け付けるため、時刻316で書き込み承認信号130をONにする。
次に、メモリ制御手段133のリード要求とライト要求とリトライリードの競合処理動作について第9図を参照して説明する。第9図はリード要求とライト要求とリトライリードの競合処理動作時の読み出し承認信号137と書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121とリトライデータ有効信号117の動作を規定する。第9図において、322はリード要求、324はライト要求、326はリトライリード要求、329はリトライリード要求326のリード制御情報、330はリトライリード要求326の参照アドレス、331はリトライリード要求326の読み出されたデータ、332はリード要求322のリード制御情報、333はリード要求322の参照アドレス、334はリード要求322の読み出されたデータ、335はライト要求324のライト制御情報、336はライト要求324の参照アドレス、337はライト要求324の書き込みデータである。メモリ制御手段133は、リード要求とライト要求とリトライリードが処理可能な時に、リード要求とライト要求とがあり、且つ、リトライリードが有ることを示すリトライリード要求信号116がONであれば、リトライリードを優先して受け付ける。メモリ制御手段133は、リトライアドレス132の情報により、メモリ制御信号134にリード制御情報を出力し、その1サイクル後に、メモリアドレス/データ135に参照アドレスを出力する。メモリ制御手段133は、メモリから読み出されたデータがメモリアドレス/データ135に出力されたら、その1サイクル後にリトライデータ有効信号117を1サイクルONにすると同時にその読み出しデータをメモリリードデータ121に出力する。リトライリード処理終了後、メモリ制御手段133は、第8図の規定に従いリード要求,ライト要求の順に処理する。
第9図では、メモリ制御手段133は、リード要求322とライト要求324とリトライリード要求326のうち、時刻338でリトライリード要求326を受け付けるため、時刻338でリード制御情報329をメモリ制御信号134に出力し、次のサイクルで参照アドレス330をメモリアドレス/データ135に出力する。メモリ制御手段133は、メモリアドレス/データ135に読み出しデータ331が出力されるのを受け、時刻328でリトライデータ有効信号117をONにし、メモリリードデータ121に読み出しデータ331を出力する。メモリ制御手段133は、リトライリード処理の終了後、時刻323でリード要求322を受け付け読み出し承認信号137をONにする。また、メモリ制御手段133は、リード処理の終了後、時刻325でライト要求324を受け付け書き込み承認信号130をONにする。
次に、メモリ制御手段133のリード要求とライト要求とリトライリードと書き込み優先の競合処理動作について第10図を参照して説明する。第10図はリード要求とライト要求とリトライリードと書き込み優先の競合処理動作時の読み出し承認信号137と書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121とリトライデータ有効信号117の動作を規定する。第10図において、339はリード要求、341はライト要求、343はリトライリード要求、348はリトライリード要求343のリード制御情報、349はリトライリード要求343の参照アドレス、350はリトライリード要求343の読み出されたデータ、351はリード要求339のリード制御情報、352はリード要求339の参照アドレス、353はリード要求339の読み出されたデータ、345はライト要求341のライト制御情報、346はライト要求341の参照アドレス、346はライト要求341の書き込みデータである。メモリ制御手段133は、リード要求とライト要求とリトライリードが処理可能な時に、リード要求とライト要求とリトライリードとがあり、且つ、書き込みを優先させる書き込み優先信号129がONであれば、ライト要求を優先して受け付ける。メモリ制御手段133は、第7図の規定に従いライト要求を処理し、ライト処理後続いて、第9図の規定に従いリトライリード要求を処理し、リトライリード処理後に第6図の規定に従いリード要求を処理する。
第10図では、メモリ制御手段133は、リード要求339とライト要求341とリトライリード要求343のうち、書き込み優先信号129がONであるため、時刻342で書き込み承認信号130を1サイクルONにし、ライト要求341を受け付ける。メモリ制御手段133は、ライト制御情報345をメモリ制御信号134に出力し、次の2サイクルで参照アドレス346と書き込みデータ347をメモリアドレス/データ135に出力する。ライト要求341の処理後、メモリ制御手段133は、時刻354でリトライリード要求343を受け付けるため、時刻354でリード制御情報348をメモリ制御信号134に出力し、次のサイクルで参照アドレス349をメモリアドレス/データ135に出力する。メモリ制御手段133は、メモリアドレス/データ135に読み出しデータ350が出力されるのを受け、時刻344でリトライデータ有効信号117をONにし、メモリリードデータ121に読み出しデータ350を出力する。リトライリード終了後、メモリ制御手段133は、時刻340でリード要求339を受け付け読み出し承認信号137をONにする。
次に、送出制御手段114の動作について第11図の状態遷移図を参照して説明する。送出バッファ120から出力されている送出データ119に対して、送出の起因となるリード要求に対する各プロセッサからのコヒーレント報告108,109,110,111が到着しており送出データが正しいものである時、送出データが有効であると定義する。また、第11図における各遷移条件は、以下の通りである。
(条件1):送出バッファ120が無効で且つ、
コヒーレント完了信号115がOFF。
(条件2)(条件6):送出バッファ120が有効で且つ、
コヒーレント完了信号115がOFF。
(条件3)(条件7)(条件9):送出バッファ120が有効で且つ、
コヒーレント完了信号115がONで且つ、
送出抑止信号136がOFF。
(条件4)(条件8)(条件11):送出バッファ120が有効で且つ、
コヒーレント完了信号115がONで且つ、
送出抑止信号136がON。
(条件5)(条件10):送出バッファ120が無効で且つ、
コヒーレント完了信号115がON。
(条件12):リトライデータ有効信号117がOFF。
(条件13):リトライデータ有効信号117がON。
(条件14):バス権獲得待ち。
(条件15):バス権を獲得。
待機状態400は、送出バッファ120からの出力とコヒーレント完了信号155がONとなるのを待っている状態である。状態400から、送出バッファ120からデータが出力されコヒーレント完了信号115がOFFのままの時(条件2)、送出制御手段114はコヒーレント完了待ち状態401に移行し、コヒーレント完了信号115がONになるまで状態401で待つ。状態400から、コヒーレント完了信号115がONになり送出バッファ120からデータが出力されないままの時(条件5)、送出制御手段114は送出データ出力待ち状態402に移行し、送出データが出力されるまで状態402で待つ。状態400からコヒーレント完了信号115がONになり送出バッファ120からデータが出力された時(条件3)、送出制御手段114は、送出抑止信号136がOFFであればデータ有効状態403に移行する。また送出制御手段114は、状態401からコヒーレント完了信号115がONになった時、送出抑止信号136がOFFであれば(条件7)データ有効状態403に移行する。送出制御手段114は、状態402から送出バッファ120からデータが出力された時、送出抑止信号136がOFFであれば(条件9)データ有効状態403に移行する。送出制御手段114は、状態400からコヒーレント完了信号115がONになり送出バッファ120からデータが出力された時、送出抑止信号136がONであれば(条件4)リトライリード状態404に移行する。状態401からコヒーレント完了信号115がONになった時、送出制御手段114は、送出抑止信号136がONであれば(条件8)リトライリード状態404に移行する。送出制御手段114は状態402にある時、送出バッファ120からデータが出力され、送出抑止信号136がONであれば(条件11)リトライリード状態404に移行する。状態404では、送出制御手段114はリトライリード要求信号116をONとする。送出制御手段114は、リトライデータが送出バッファ120から出力されるまで状態404で待つ。状態404からリトライデータ有効信号117がONとなった時(条件13)、送出制御手段114はリトライリード要求信号116をOFFにしデータ有効状態403に移行する。送出制御手段114は、バス権が獲得できるまでデータ有効状態403で待ち、バス権が獲得できたら(条件15)送出完了信号115をONにし待機状態400に移行する。送出制御手段114は、待機状態400に移行したら送出完了信号115をOFFにする。
次に、送出制御手段114のリトライリードを行わない場合の動作を第12図を参照して説明する。第12図は、リトライリードを行わないときのプロセッサバスへの出力113とバスアービタ112と送出完了信号118の動作を規定する。第12図で、405,406は送出データである。送出制御手段114は、コヒーレント完了信号115がONであって、送出データ119が有効で無い時は、送出データ119が有効になるまで待つ。また、送出制御手段114は、コヒーレント完了信号115がOFFであって、送出データ119が有効である時は、コヒーレント完了信号115がONになるまで待つ。送出制御手段114は送出データ119が有効で且つ、コヒーレント完了信号115がONであれば、バスアービタ信号112と送出完了信号118をONとし、次のサイクルでプロセッサバス113に送出データを出力する。
第12図では、時刻407で送出完了信号115がONであるが、送出データ119は有効でないため、送出制御手段114は送出データ405が出力されるのを待つ。時刻411で送出データ405が出力されるため、送出制御手段114はバスアービタ112と送出完了信号118をONにし、次のサイクルにプロセッサバス113に送出データ405を送出する。時刻409で送出完了信号115がONでありかつ、送出データ119は有効であるため、送出制御手段114はバスアービタ112と送出完了信号118をONにし、次のサイクルにプロセッサバス113に送出データ406を送出する。
次に、送出制御手段114のリトライリードを行う場合の動作を第13図を参照して説明する。第13図は、リトライリードを行うときのプロセッサバスへの出力113とバスアービタ112と送出完了信号118とリトライリード要求信号116の動作を規定する。第13図で、412,414は送出データ、413と415はリトライリードによる送出データである。送出制御手段114は、コヒーレント完了信号115がOFFであったり送出データ119が無効である時は、第12図の規定に従い、コヒーレント完了信号115がONで且つ、送出データ119が有効になるまで待つ。送出制御手段114は、コヒーレント完了信号115がONで且つ、送出データ119が有効になり、送出抑止信号136がOFFであれば、第12図の規定に従い処理を行う。送出制御手段114は、コヒーレント完了信号115がONで且つ、送出データ119が有効になり、送出抑止信号136がONである時、リトライリード要求信号116をONにする。メモリ制御手段133からリトライリードの読み出しデータが出力され、リトライデータ有効信号117がONになることで、競合検出手段128が送出抑止信号136をOFFにする。送出抑止信号136がOFFになり、コヒーレント完了信号115がONで且つ、送出データ119が有効であるため、送出制御手段114は第12図の規定に従い処理を行う。
第13図では、時刻416で送出完了信号115がONであるが、送出データ119は無効であるため、送出制御手段114は送出データ412が出力されるのを待つ。送出データ412が出力された時、送出抑止信号136はONであるため、送出制御手段114はリトライリード要求信号116をONにする。時刻417でリトライデータ有効信号117がONになり、時刻418で送出抑止信号136がOFFになるため、送出制御手段114は、送出完了信号118をONにし、次のサイクルでリトライリードによる送出データ413をプロセッサバス113に送出する。時刻419で送出完了信号115がONとなる時、送出データ119が有効で且つ、送出抑止信号136はONであるため、送出制御手段114はリトライリード要求信号116をONにする。時刻420でリトライデータ有効信号117がONになり、時刻421で送出抑止信号136がOFFになるため、送出制御手段114は、時刻421で送出完了信号118をONにし、次のサイクルでリトライリードによる送出データ415をプロセッサバス113に送出する。
次に、送出制御手段114の状態遷移の例を第14図を参照して説明する。時刻500では送出データ119は無効でコヒーレント完了信号115もOFFであるため、送出制御手段114の状態は待機状態400である。時刻501で送出データ506が送出用バッファ120から出力されるので、送出制御手段114の状態は待機状態400からコヒーレント完了待ち状態401に移行する。時刻502でコヒーレント完了信号がONとなり送出抑止信号136がONとなるため、送出制御手段114の状態はコヒーレント完了待ち状態401からリトライリード状態404に移行する。従って、時刻502でリトライリード要求信号116がONになる。時刻503でリトライデータ有効信号117がONになるため、時刻504で送出制御手段114の状態はリトライリード状態404からデータ有効状態403に移行する。時刻504でバス権が獲れているため、送出制御手段114は送出完了信号118をONにする。そして、時刻505で送出制御手段114の状態はデータ有効状態403から待機状態400に移行する。
次に、リード用バッファ124の動作を第15図,第16図を参照して説明する。第15図と第16図はリード要求信号125とリードアドレス信号126と要求状態信号127の動作を規定する。リード用バッファ124は、プロセッサバス113へ出力されたリード要求を記憶する。リード用バッファ124は、記憶したリード要求をリード要求信号125を使い、メモリ制御手段133とリトライリード用バッファ131に出力する。リード用バッファ124は、記憶されたリード要求がメモリ制御手段133に受け付けられるまで要求状態信号127をONにする。リード用バッファ124は、メモリ制御手段133からの読み出し承認信号137がONとなることにより、記憶されたリード要求がメモリ制御手段133に受け付けられたことを知り、要求状態信号127をOFFにし、リード要求信号125を無効にする。リード用バッファ124は、記憶されたリード要求のリードアドレス信号126を競合検出手段128に出力する。
第15図において、2400はリード要求、2401は記憶されたリード要求2400のリードアドレスである。第15図では、時刻2402でリード要求2400がリード用バッファ124に記憶されるため、リード用バッファ124は、時刻2402から要求状態信号127をONとし、リード要求信号125を有効とする。時刻2403で読み出し承認信号137がONになるため、リード用バッファ124は、次のサイクルで要求状態信号127OFFにし、リード要求信号125を無効にする。
第16図において、2405はリード要求、2406は記憶されたリード要求2405のリードアドレスである。第16図では、時刻2407でリード要求2405がリード用バッファ124に記憶されるため、リード用バッファ124は、時刻2407から要求状態信号127をONとし、リード要求信号125を有効とする。時刻2409で読み出し承認信号137がONになるため、リード用バッファ124は、次のサイクルで要求状態信号127OFFにし、リード要求信号125を無効にする。
次にライト用バッファ122の動作を第17図を参照して説明する。第17図はライト要求信号123の動作を規定する。ライト用バッファ122は、プロセッサバス113へ出力されたライト要求を記憶する。ライト用バッファ122は、記憶したライト要求をリード要求信号123を使い、メモリ制御手段133に出力する。ライト用バッファ122は、メモリ制御手段133からの書き込み承認信号130がONとなることにより、記憶されたライト要求がメモリ制御信号133に受け付けられたことを知り、ライト要求信号123を無効にする。第17図において、2500はライト要求である。第17図では、時刻2501で、ライト要求2500がライト用バッファ122に記憶され、ライト要求信号123が有効となる。ライト用バッファ122は、時刻2502で書き込み承認信号130がONとなるため、次のサイクルでライト要求信号123を無効にする。
次に、リトライリード用バッファ131の動作について第18図を参照して説明する。第18図はリトライリードアドレス線132の動作を規定する。リトライリード用バッファ131は、読み出し承認信号137がONとなった時のリード要求信号125を記憶し、リトライリードアドレス132から出力する。リトライリード用バッファ131は、送出完了信号118がONになるのを受けてリトライリードアドレス132を無効にする。第18図において、2600はリード要求である。第18図では、時刻2601で読み出し承認信号137がONとなるため、リトライリード用バッファ131は、リード要求2600を記憶し、リトライリードアドレス132から出力する。時刻2602で送出完了信号118がONとなるため、リトライリード用バッファ131は、リトライリードアドレス132を無効とする。
次に、送出用バッファ120の動作について第19図を参照して説明する。第19図は送出データ線119の動作を規定する。送出用バッファ120は、メモリリードデータ121に出力されたデータを記憶し、送出データ線119から出力する。また、送出用バッファ120は、リトライデータ有効信号117がONとなることで、メモリリードデータ121のデータを記憶し、送出データ線119から出力する。送出用バッファ120は、送出完了信号118がONになると送出データ線119を無効にする。
第19図において、2700,2702は送出データ、2703はリトライリードによる送出データである。第19図では、メモリリードデータ121に送出データ2700が出力されるため、送出用バッファ120は送出データ2700を送出データ119から出力する。時刻2701で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を無効にする。時刻2705でリトライデータ有効信号117がONとなるため、送出用バッファ120は、送出データ119に送出データ2702を変更し送出データ2703を出力する。時刻2704で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を無効にする。
次にこの好ましい実施形態において、リードとライトの競合時でリトライリードしない場合のデータの送出動作を第20図を参照し説明する。リード要求600は時刻601で、ライト要求602は時刻603で、プロセッサバス113に発行される。ライト要求602は、リード要求600と参照アドレスが同じである。リード要求600に対するコヒーレント報告108,109,110,111は、時刻604で完了している。ライト要求602が発行された時刻603では、コヒーレント報告は完了しておらず、リード要求600も受け付けられていないため、競合検出手段128は、時刻605で書き込み優先信号129をONとする。書き込み優先信号129がONであるため、メモリ制御手段133は、リード要求600よりも先にライト要求602を受け付ける。従って、リード要求600により読み出されたデータ600はライト要求602で書き込まれたデータとなる。時刻608において、送出用バッファ120からデータ607が出力されコヒーレント完了信号115もONであるため、時刻608で送出制御手段114は送出完了信号118をONにし、時刻609で送出制御手段114はプロセッサバス113にデータ610を送出する。送出完了信号118をONであるため、競合検出手段128はコヒーレント完了信号115をOFFにする。送出データ610は、データ606,607と同一であり、ライト要求602で書き込まれたデータである。従って、この実施形態により、キャッシュとメモリのコヒーレントが保証される。
次にこの好ましい実施形態において、リードとライトの競合時でリトライリードする場合のデータの送出動作を第21図を参照し説明する。リード要求700は時刻701で、ライト要求702は時刻703で、プロセッサバス113に発行される。ライト要求702は、リード要求700と参照アドレスが同じである。リード要求700に対するコヒーレント報告108,109,110,111は、時刻704で完了している。ライト要求702が発行された時刻703では、コヒーレント報告は完了していないがリード要求の受け付けは終了しているため、競合検出手段128は、時刻705で書き込み優先信号129をONとし、時刻704で送出抑止信号136をONとする。送出制御手段114は、送出データ706が送出バッファ120から出力される時刻704で、コヒーレント完了信号115と送出抑止信号136がONであることから、リトライリード要求信号116をONにする。その結果、メモリ制御手段133は、時刻708でリトライデータ有効信号117をONにし、リトライリードによるデータ707を出力する。次にリトライデータ有効信号117がONであるため、送出用バッファ120は時刻709で出力データを706から707へ変更し、競合検出手段128は送出抑止信号136をOFFにする。送出抑止信号136がOFFになったので、送出制御手段114は送出完了信号118をONにし、時刻711でデータ710を送出する。送出データ710は、ライト要求702で書き込まれたデータである。従って、この実施形態により、キャッシュとメモリのコヒーレントが保証される。
次に本発明の他の好ましい実施形態を示す。リード用バッファ124,ライト用バッファ122はFIFOであり、それぞれ、リード要求,ライト要求を複数個記憶する。競合検出手段128は、リード用バッファに記憶された複数のリード要求126とその要求状態信号127からプロセッサバス113に発行されたライト要求との競合を検出し、その競合結果を記憶する。競合検出手段128は記憶した結果を、メモリ制御手段133と送出制御手段114に出力する。リトライリード用バッファ131はFIFOであり、リード用バッファ124の出力でメモリ制御手段133に受け付けられた要求を複数個記憶する。送出用バッファ120はFIFOバッファであり、送出データ121を複数個記憶する。
競合検出手段128の動作を第22図,第23図,第24図を参照して説明する。第22図は、コヒーレント完了信号115の動作を規定する。競合検出手段128はプロセッサバス113に発行されるリード要求に対するコヒーレント報告を監視し、その報告が全て完了したことを記憶し、コヒーレント完了信号115により、送出制御手段114に出力する。対応するリード要求が送出制御手段114で処理されプロセッサバス113に送出されたことを示す送出完了信号118がONになることで、対応するリード要求のコヒーレント報告完了の記憶をクリアし、コヒーレント完了信号115をOFFにする。続いて、競合検出手段128は、次のリード要求のコヒーレント報告の状態をコヒーレント報告完了信号115に出力する。
第22図において、900,901,902,903はリード要求、904,908,912,916はリード要求900のコヒーレント報告、905,909,913,917はリード要求901のコヒーレント報告、906,910,914,918はリード要求902のコヒーレント報告、907,911,915,919はリード要求903のコヒーレント報告である。
第22図では、リード要求900のコヒーレント報告は、コヒーレント報告916が到着して完了するため、競合検出手段128は、リード要求900のコヒーレント報告の完了を記憶し、時刻920でコヒーレント完了信号115をONにする。リード要求901のコヒーレント報告は、コヒーレント報告917が到着して完了するため、競合検出手段128は、リード要求901のコヒーレント報告の完了を記憶する。時刻921でリード要求900に対して送出完了信号118がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。競合検出手段128は、すでに記憶しているリード要求901のコヒーレント報告完了情報により、時刻922でリード要求901に対してコヒーレント完了信号115をONにする。時刻922でリード要求901に対して送出完了信号118がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。リード要求902のコヒーレント報告は、コヒーレント報告918が到着して完了するため、競合検出手段128は、リード要求902のコヒーレント報告の完了を記憶し、時刻924でコヒーレント完了信号115をONにする。リード要求903のコヒーレント報告は、コヒーレント報告919が到着して完了するため、競合検出手段128は、リード要求903のコヒーレント報告の完了を記憶する。時刻925でリード要求902に対して送出完了信号118がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。競合検出手段128は、すでに記憶しているリード要求903のコヒーレント報告完了情報により、時刻926でリード要求903に対してコヒーレント完了信号115をONにする。時刻927でリード要求903に対して送出完了信号118がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。
第23図は、書き込み優先信号129の動作を規定する。競合検出手段128は、プロセッサバス113に発行されるライト要求を監視し、すでに発行されリード用バッファ124に記憶されているリード要求に対して競合を検出する。競合検出手段128は、リード要求アドレス126に出力されているリード要求の参照アドレスとプロセッサバス113に発行されるライト要求の参照アドレスを比較し、リード要求の参照アドレスとライト要求の参照アドレスが同じで且つ、そのリード要求に対するコヒーレント報告が完了して無いならば、書き込み優先信号129をONにする。競合検出手段128は、その競合情報とライト要求を関連させて記憶する。そのライト要求がメモリ制御手段133に受け付けられ、そのライト要求に対して書き込み承認信号130がONになることで、競合検出手段128は、書き込み優先信号129をOFFにし、記憶したそのライト要求の競合情報をクリアする。
第23図において、928,929,930,931はリード要求、932,933,934,935はライト要求、936,940,944,948はリード要求928のコヒーレント報告、937,941,945,949はリード要求929のコヒーレント報告、938,942,946,950はリード要求930のコヒーレント報告、939,943,947,951はリード要求931のコヒーレント報告である。ライト要求932はリード要求928と参照アドレスが同じである。ライト要求933とライト要求935はリード要求930と参照アドレスが同じである。ライト要求934はリード要求931と参照アドレスが同じである。
第23図では、ライト要求932の参照アドレスとリード要求928の参照アドレスが同じであるが、ライト要求932の発行がリード要求928の最後のコヒーレント報告944の出力以降であるため、競合検出手段128は、書き込み優先信号129を操作しない。ライト要求933の発行はリード要求930のコヒーレント報告完了の以前であるため、競合検出手段128は、その競合情報を記憶し、時刻952で書き込み優先信号129をONとする。時刻952でライト要求932に対して、書き込み承認信号130がONとなるが、ライト要求933に対するものでないため、競合検出手段128は、ライト要求933の競合情報はクリアせず、また、書き込み優先信号129もOFFにしない。ライト要求934の発行はリード要求931のコヒーレント報告完了の以前であるため、競合検出手段128は、その競合情報を記憶する。時刻953でライト要求933に対して、書き込み承認信号130がONとなるため、競合検出手段128は、ライト要求933の競合情報をクリアし、書き込み優先信号129をOFFにする。競合手段128は、ライト要求934の競合情報を記憶しているため、時刻954で書き込み優先信号129をONにする。ライト要求935の発行は、リード要求930の最後のコヒーレント報告950の出力以降であるため、競合検出手段128は、その競合情報は記憶しない。時刻955でライト要求934に対して、書き込み承認信号130がONとなるため、競合検出手段128は、ライト要求934の競合情報をクリアし、書き込み優先信号129をOFFにする。ライト要求935はリード要求と競合して無いので、時刻955の次のサイクル以降、競合検出手段128は書き込み優先信号129をOFFとする。
第24図は、送出抑止信号136の動作を規定する。競合検出手段128は、プロセッサバス113に発行されるライト要求を監視し、すでに発行されリード用バッファ124に記憶されているリード要求に対して競合を検出する。競合検出手段128は、要求状態信号127からそのリード要求のメモリ制御手段133への受け付け状況を知る。競合検出手段128は、リード要求アドレス126に出力されているリード要求の参照アドレスとプロセッサバス113に発行されるライト要求の参照アドレスを比較し、リード要求の参照アドレスとライト要求の参照アドレスが同じで且つ、そのリード要求に対するコヒーレント報告が完了してなくて、さらにそのリード要求のメモリ制御手段133への受け付けが終了している時、送出抑止するための情報をそのリード要求と関連させて送出制御情報として記憶する。競合検出手段128は、送出制御手段114でそのリード要求による読み出しが送出処理される時に、そのリード要求に関連して記憶した送出制御情報を基に送出抑止信号136を操作する。競合検出手段128は、送出制御情報が送出抑止を指示している時、送出抑止信号136をONとする。そのリード要求に対して送出制御手段114がリトライリードを行い、メモリ制御手段133がリトライデータ有効信号117をONにすることで、競合検出手段128は、そのリード要求の記憶された競合情報をクリアし、送出抑止信号136をOFFにする。競合検出手段128は、送出完了信号118がONになることで、次のリード要求の送出制御情報を調べ、送出抑止信号136を操作する。
第24図において、957,958,959,960はリード要求、961,962,963,964はライト要求、965,969,973,977はリード要求957のコヒーレント報告、966,970,974,978はリード要求958のコヒーレント報告、967,971,975,979はリード要求959のコヒーレント報告、968,972,976,980はリード要求960のコヒーレント報告、986,987,988,990,991はリード要求の受け付け状態である。ライト要求961はリード要求957と参照アドレスが同じである。ライト要求962とライト要求964はリード要求959と参照アドレスが同じである。ライト要求963はリード要求960と参照アドレスが同じである。要求状態986はリード用バッファ124のリード要求957が記憶されたエントリのみが有効で、そのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態987はリード用バッファ124のリード要求957が記憶されたエントリとリード要求958が記憶されたエントリが有効で、それら2つのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態988はリード用バッファ124のリード要求958が記憶されたエントリとリード要求959が記憶されたエントリが有効で、それら2つのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求957がメモリ制御手段133に受け付けられた状態を示す。要求状態989はリード用バッファ124のリード要求958が記憶されたエントリとリード要求959が記憶されたエントリとリード要求960が記憶されたエントリが有効で、それら3つのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求957がメモリ制御手段133に受け付けられた状態を示す。要求状態990はリード用バッファ124のリード要求959が記憶されたエントリとリード要求960が記憶されたエントリが有効で、それら2つのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求957とリード要求958がメモリ制御手段133に受け付けられた状態を示す。要求状態991はリード用バッファ124のリード要求960が記憶されたエントリが有効で、そのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求957とリード要求958とリード要求959がメモリ制御手段133に受け付けられた状態を示す。
第24図では、ライト要求961の参照アドレスとリード要求957の参照アドレスが同じであり、リード要求957がすでにメモリ制御手段133に受け付けられているが、ライト要求961の発行がリード要求957の最後のコヒーレント報告973の出力以降であるため、競合検出手段128は、送出制御情報として送出指示を記憶し、送出抑止信号136をOFFにする。ライト要求962の発行はリード要求959のコヒーレント報告完了の以前であり、リード要求959がすでにメモリ制御手段133に受け付けられているため、競合検出手段128は、送出抑止を送出制御情報として記憶する。ライト要求963の発行はリード要求960のコヒーレント報告完了の以前であり、リード要求960がすでにメモリ制御手段133に受け付けられているため、競合検出手段128は、送出抑止を送出制御情報として記憶する。時刻994でリード要求957に対して送出完了信号118がONになるため、競合検出手段128は、次のリード要求958の送出制御情報を調べる。リード要求958の送出制御情報は送出指示であるため、競合検出手段128は送出抑止信号136をOFFのままにする。時刻995でリード要求958に対して送出完了信号118がONになるため、競合検出手段128は、次のリード要求959の送出制御情報を調べる。リード要求959の送出制御情報は送出抑止であるため、競合検出手段128は、時刻992で送出抑止信号136をONにする。時刻996でリトライデータ有効信号117がONとなるため、競合検出手段128は、リード要求959の競合情報をクリアし、送出抑止信号136をOFFにする。時刻997でリード要求959に対して、送出完了信号118がONとなるため、競合検出手段128は、次のリード要求960の送出制御情報を調べる。リード要求960の送出制御情報は送出抑止であるため、競合検出手段128は、時刻993で送出抑止信号136をONにする。時刻998でリトライデータ有効信号117がONとなるため、競合検出手段128は、リード要求959の競合情報をクリアし、送出抑止信号136をOFFにする。
次に、リード用バッファ124の動作を第25図を参照して説明する。第25図はリード要求信号125と要求状態信号127の動作を規定する。リード用バッファ124は、プロセッサバス113へ出力されたリード要求を複数個記憶する。リード用バッファ124は、記憶したリード要求を記憶した順にリード要求信号125を使い、メモリ制御手段133とリトライリード用バッファ131に出力する。リード用バッファ124は、記憶されたリード要求のメモリ制御手段133への受け付け状況を要求状態信号127により、競合検出手段128に通知する。リード用バッファ124は、メモリ制御手段133からの読み出し承認信号137がONとなることにより、記憶されたリード要求がメモリ制御手段133に受け付けられたことを知り、リード要求信号125を1サイクルの間無効にし、次に記憶したリード要求をリード要求信号125に出力する。
第25図において、2800,2801,2802,2803はリード要求、2804,2805,2806,2807,2808,2809は要求状態である。要求状態2804はリード用バッファ124のリード要求2800が記憶されたエントリのみが有効で、そのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態2805はリード用バッファ124のリード要求2800が記憶されたエントリとリード要求2801が記憶されたエントリが有効で、それら2つのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態2806はリード用バッファ124のリード要求2800が記憶されたエントリとリード要求2801が記憶されたエントリとリード要求2802が記憶されたエントリが有効で、それら3つのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態2807はリード用バッファ124のリード要求2800が記憶されたエントリとリード要求2801が記憶されたエントリとリード要求2802が記憶されたエントリとリード要求2803が記憶されたエントリが有効で、それら4つのエントリがまだメモリ制御手段133に受け付けられていない状態を示す。要求状態2808はリード用バッファ124のリード要求2801が記憶されたエントリとリード要求2802が記憶されたエントリとリード要求2803が記憶されたエントリが有効で、それら3つのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求2800がメモリ制御手段133に受け付けられた状態を示す。要求状態2809はリード用バッファ124のリード要求2802が記憶されたエントリとリード要求2803が記憶されたエントリが有効で、それら2つのエントリがまだメモリ制御手段133に受け付けられていない状態と、リード要求2800とリード要求2801がメモリ制御手段133に受け付けられた状態を示す。
第25図では、リード用バッファ124は、リード要求2800,2801,2802,2803を全て記憶する。リード用バッファ124は、リード要求2800を記憶し、リード要求信号125にリード要求2800を出力する。リード用バッファ124は、時刻2813に読み出し承認信号137がONになるため、次のサイクルでリード要求信号125を無効にし、リード要求2800の次に記憶されたリード要求2801をリード要求信号125に出力する。リード用バッファ124は、時刻が2814に読み出し承認信号137がONになるため、次のサイクルでリード要求信号125を無効にし、リード要求2801の次に記憶されたリード要求2802をリード要求信号125に出力する。
次に、ライト用バッファ122の動作を第26図を参照して説明する。第26図はライト要求信号123の動作を規定する。ライト用バッファ122は、プロセッサバス113へ出力されたライト要求を複数個記憶する。ライト用バッファ122は、記憶したライト要求をライト要求信号123を使い、メモリ制御手段133に出力する。ライト用バッファ122は、メモリ制御手段133からの書き込み承認信号130がONとなることにより、記憶されたライト要求がメモリ制御手段133に受け付けられたことを知り、ライト要求信号123を1サイクルの間無効にし、次に記憶したライト要求をライト要求信号123に出力する。
第26図において、2900,2901,2902,2903はライト要求である。第17図では、ライト用バッファ122は、ライト要求2900,2901,2902,2903を記憶し、ライト要求信号123にライト要求2900出力する。ライト用バッファ122は、時刻2904で書き込み承認信号130がONとなるため、次のサイクルでライト要求信号123を無効し、ライト要求2900の次に記憶されたライト要求2901をライト要求信号123に出力する。ライト用バッファ122は、時刻2905で書き込み承認信号130がONになるため、次のサイクルでライト要求信号123を無効にし、ライト要求2901の次に記憶されたライト要求2902をライト要求信号123に出力する。
次に、リトライリード用バッファ131の動作について第27図を参照して説明する。第27図はリトライリードアドレス線132の動作を規定する。リトライリード用バッファは、読み出し承認信号137がONとなった時のリード要求信号125を記憶し、リトライリードアドレス132から出力する。リトライリード用バッファ131は、送出完了信号118がONになるのを受けてリトライリードアドレス132を1サイクルの間無効にし、次に記憶したリード要求をリトライリードアドレス132から出力する。第27図において、3000,3001,3002はリード要求である。
第27図では、時刻3003で読み出し承認信号137がONとなるため、リトライリード用バッファ131は、リード要求3000を記憶し、リトライリードアドレス132からリード要求3000を出力する。時刻3004で読み出し承認信号137がONとなるため、リトライリード用バッファ131はリード要求3001を記憶する。時刻3006で送出完了信号118がONとなるため、リトライリード用バッファ131は、リトライリードアドレス132を次の1サイクルの間無効とした後リード要求3001を出力する。時刻3005で読み出し承認信号137がONとなるため、リトライリード用バッファ131はリード要求3002を記憶する。時刻3007で送出完了信号118がONとなるため、リトライリード用バッファ131は、リトライリードアドレス132を次の1サイクルの間無効とした後リード要求3002を出力する。
次に、送出用バッファ120の動作について第28図を参照して説明する。第28図は送出データ線119の動作を規定する。送出用バッファ120は、メモリリードデータ121に出力されたデータを複数個記憶し、送出データ線119から出力する。また、送出用バッファ120は、リトライデータ有効信号117がONとなることで、メモリリードデータ121のデータを記憶し、送出データ線119から出力する。送出用バッファ120は、送出完了信号118がONとなると送出データ線119を無効にし、次に記憶したメモリリードデータ121のデータを送出データ線119から出力する。
第28図において、3100,3101,3102,3103は送出データ、3104はリトライリードによる送出データである。第28図では、メモリリードデータ121に送出データ3100が出力されるため、送出用バッファ120は送出データ3100を送出データ119から出力する。時刻3105で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ3101を送出データ線119から出力する。時刻3108でリトライデータ有効信号117がONとなるため、送出用バッファ120は、送出データ線119の送出データ3101を変更し送出データ3104を出力する。時刻3106で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ3102を送出データ線119から出力する。時刻3107で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ3103を送出データ線119から出力する。
この他の好ましい実施形態における、複数のリード要求と一つのライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第29図,第30図を参照して説明する。この第29図の右端と第30図の左端とは信号が連続している。時刻1001から連続でリード要求1000,1002,1003がバス113に発行される。時刻1005でライト要求1004が発行される。ライト要求1004の参照アドレスは、リード要求1000と1003の参照アドレスと競合する。時刻1006で競合検出の結果書き込み優先信号129がONになり、時刻1007で書き込み要求承認信号130がONされることで、書き込み優先信号129が時刻1008でOFFになる。リード要求1000,1002,1003に対するリードデータは時刻1010から連続でメモリ制御手段133から出力される。時刻1009でコヒーレント完了信号115と送出抑止信号136がONになるため、送出制御手段114は時刻1009でリトライリード要求信号116をONにする。リトライリードアドレス132は、リード要求1000の参照アドレス1013である。時刻1009では書き込み優先信号129がONになっているため、メモリ制御手段133はリトライリードよりもライト要求1004の書き込みを優先する。
時刻1008で書き込み優先信号129がOFFになるため、メモリ制御手段133は時刻1014でリトライデータ有効信号117をONにし、リトライリードによるデータ1015を出力する。送出用バッファ120は、送出データを1012からリトライリードのデータ1017に入れ替える。競合検出手段128はリトライデータ有効信号117がONになったので、時刻1016で送出抑止信号136をOFFにする。送出抑止信号136がOFFになるため、送出制御手段114は、時刻1016で送出完了信号118をONにし、時刻1018で送出データ1017を、バス113にデータ1019として送出する。送出完了信号118を受けて、競合検出手段128はコヒーレント完了信号115をクリアし、リトライリード用バッファ131はリード要求1002の参照アドレスを出力する。時刻1021で、リード要求1002のコヒーレント完了信号115がON、送出抑止信号136がOFFであるので、送出制御手段114は送出完了信号118をONにし、送出データ1020を時刻1023でバス113にデータ1022として送出する。送出完了信号118がONになるため、競合検出手段128は、時刻1023でコヒーレント完了信号115をOFFにする。時刻1025でリード要求1003のコヒーレント完了信号115と送出抑止信号136が出力される。それを受けて送出制御手段114はリトライ要求信号116をONとする。リトライリード用バッファ131はリトライリードアドレスとして、リード要求1003の参照アドレス1026を出力する。
メモリ制御手段133はリード要求1003の参照アドレスでリトライリードを実行し、時刻1027でリトライデータ1032を出力する。リトライデータ有効信号117がONであるため、送出用バッファ120は出力をデータ1024からデータ1028に変更し、競合検出手段128は送出抑止信号136をOFFにする。時刻1029で送出抑止信号136がOFFとなるため、送出制御手段114は送出完了信号118をONし、時刻1030でデータ1028をデータ1031としてバス113へ出す。リトライリードで読まれたデータ1015と1032はともに、ライト要求1004で書かれたデータであるため、メモリとキャッシュのコヒーレントが保証できたことになる。
この他の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第31図,第32図を参照して説明する。この第31図の右端と第32図の左端とは信号が連続している。時刻1101から連続でリード要求1100,1102,1103がバス113に発行される。時刻1105でライト要求1104,時刻1107でライト要求1108が発行される。ライト要求1104の参照アドレスは、リード要求1103と競合し、ライト要求1108の参照アドレスは、リード要求1100の参照アドレスと競合する。競合検出の結果、時刻1106で書き込み優先信号129がONになり、時刻1109で書き込み承認信号130がONされることで、書き込み優先信号129が時刻1110でOFFになる。リード要求1100,1102,1103に対するリードデータ1113,1114,1115は時刻1112から連続でメモリ制御手段133から出力される。時刻1111でコヒーレント完了信号115と送出抑止信号136がONになるため、送出制御手段114は時刻1117でリトライリード要求信号116をONにする。リトライリードアドレス132は、リード要求1100の参照アドレス1118である。時刻1117では書き込み優先信号129がONになっているため、メモリ制御手段133はリトライリードよりもライト要求1104の書き込みを優先する。時刻1110で1サイクル書き込み優先信号129がOFFになるが、メモリ制御手段133は書き込みを受け付けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求1108の書き込みが優先される。
時刻1119で書き込み承認信号130が発行され、時刻1120で書き込み優先信号129がOFFになるため、メモリ制御手段133はリトライリード要求を受け付け、時刻1122でリトライデータ有効信号117をONにし、リトライリードによるデータ1123を出力する。送出用バッファ120は、送出データを1116からリトライリードのデータ1127に入れ替える。競合検出手段128はリトライデータ有効信号117がONになったので、時刻1124で送出抑止信号136をOFFにする。送出制御手段114は送出抑止信号136がOFFになるので、時刻1124で送出完了信号118をONにし、時刻1125で送出データ1127を、バス113に、データ1126として送出する。送出完了信号118を受けて、競合検出手段128はコヒーレント完了信号115をクリアし、リトライリード用バッファ131はリード要求1102の参照アドレス1130を出力する。時刻1129で、リード要求1102のコヒーレント完了信号115がON、送出抑止信号136がOFFであるので、送出制御手段114は送出完了信号118をONにし、送出データ1128を時刻1131でバスにデータ1132として送出する。競合検出手段128は送出完了信号118がONになるので、時刻1131でコヒーレント完了信号115をOFFにする。時刻1134でリード要求1103のコヒーレント完了信号115と送出抑止信号136が出力される。それを受けて送出制御手段114はリトライリード要求信号116をONとする。リトライリード用バッファ131はリトライリードアドレスとして、リード要求1103の参照アドレス1133を出力する。
メモリ制御手段133はリード要求1103の参照アドレスでリトライリードを実行し、時刻1135でリトライデータ1137を出力する。リトライデータ有効信号117がONであるため、送出用バッファ120は出力をデータ1136からデータ1139に変更し、競合検出手段128は送出抑止信号136をOFFにする。時刻1138で送出抑止信号136がOFFとなるため、送出制御手段114は送出完了信号118をONし時刻1140でデータ1139をデータ1141としてバス113へ出す。リトライリードで読まれたデータ1123と1137は、それぞれライト要求1108とライト要求1104で書かれたデータ、であるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第33図に本発明の別の好ましい実施形態を示す。この実施形態はリード要求とライト要求の競合でリトライリードが必要な場合において、データをライト用バッファ122から持ってくることに対応する。ライト用バッファ122は、バス113に発行されたライト要求を複数個記憶する機能に加え、リトライリード要求116により、リトライリード用バッファ131から出力されているアドレス132と一致する参照アドレスを持つライト要求のデータを送出用バッファ120に出力する。送出用バッファ120は、メモリ制御手段133から出力された送出データを記憶する機能に加えて、リトライデータ有効信号117がONされた時、送出データ119にライト用バッファの出力123を出力する機能を持つ。メモリ制御手段133は、リトライリード要求信号116がONの時は、書き込み優先信号129がONであるライト要求以外は受け付けない。
次に、ライト用バッファ122の動作を第34図,第35図,第36図を参照して説明する。第34図はライト要求信号123の動作を規定する。第35図,第36図は、ライト要求信号123とリトライデータ有効信号117の動作を規定する。ライト用バッファ122は、プロセッサバス113へ出力されたライト要求を複数個記憶する。ライト用バッファ122は、リトライリード要求信号116がOFFの時または、書き込み優先信号129がONの時、記憶したライト要求をライト要求信号123を使い、メモリ制御手段133に出力する。ライト用バッファ122は、メモリ制御手段133からの書き込み承認信号130がONとなることにより、記憶されたライト要求がメモリ制御手段133に受け付けられたことを知り、ライト要求信号123を1サイクルの間無効にし、次に記憶したライト要求をライト要求信号123に出力する。ライト用バッファ122は、リトライリード要求信号116がONでかつ、書き込み優先信号129がOFFの時、リトライデータ有効信号117をONにして、記憶されている全てのライト要求からリトライリードアドレス132と一致する参照アドレスを持つライト要求の書き込みデータをライト要求線123に出力する。第34図において、リトライリード要求信号116がOFFの時または、書き込み優先信号129がONの時であり、1300,1301,1302,1303はライト要求である。
第34図では、ライト用バッファ122は、ライト要求1300を記憶しライト要求信号123に出力する。時刻1304で、書き込み承認信号130がONとなるため、ライト用バッファ122は、次のサイクルでライト要求信号123を無効し、ライト要求1300の次に記憶されたライト要求1301をライト要求信号123に出力する。時刻1305で、書き込み承認信号130がONとなるため、ライト用バッファ122は、次のサイクルでライト要求信号123を無効し、ライト要求1301の次に記憶されたライト要求1302をライト要求信号123に出力する。時刻1306で、書き込み承認信号130がONとなるため、ライト用バッファ122は、次のサイクルでライト要求信号123を無効し、ライト要求1302の次に記憶されたライト要求1303をライト要求信号123に出力する。時刻1307で、書き込み承認信号130がONとなるため、ライト用バッファ122は、次のサイクルでライト要求信号123を無効にする。
第35図において、1308,1309,1310,1311はライト要求、1316はリトライリードの参照アドレスである。ライト要求1308の参照アドレスは、リトライリードの参照アドレス1316と同じである。第35図では、ライト用バッファ122は、ライト要求1308を記憶し、第34図の規定に従いライト要求信号123にライト要求1308を出力し、時刻1312の書き込み承認信号130のONを受けてライト要求信号123にライト要求1309を出力する。時刻1314でリトライリード要求信号116がONになるため、ライト用バッファ122はリトライリードアドレス132に出力されている参照アドレス1316と一致する参照アドレスのライト要求1308をライト要求信号123に出力する。ライト用バッファ122は、時刻1315にリトライデータ有効信号117をONにして、ライト要求信号123を1サイクル無効にライト要求1309を再び出力する。以後、ライト用バッファ122は、第34図の規定に従い、時刻1313の書き込み承認信号130がONになるのを受けて、ライト要求信号123にライト要求1310を出力する。
第36図において、1317,1318,1319,1320はライト要求、1326はリトライリードの参照アドレスである。ライト要求1317の参照アドレスは、リトライリードの参照アドレス1326と同じである。第36図では、ライト用バッファ122は、第34図の規定に従いライト要求1317を処理し、ライト要求信号123にライト要求1318を出力する。ライト用バッファ122は、時刻1324で書き込み優先信号129がONであるため、第34図の規定に従い、ライト要求1318を処理する。時刻1322の書き込み承認信号130がONになるのを受けて、書き込み優先信号129はOFFになる。書き込み優先信号129がOFFで且つ、リトライリード要求信号116がONとなるため、ライト用バッファ122は、第35図の規定に従い、リトライリードアドレス132に出力されている参照アドレス1326と同じ参照アドレスであるライト要求1317を、ライト要求信号123に出力する。ライト用バッファ122は、第35図の規定に従い、時刻1325にリトライデータ有効信号117をONにし、ライト要求信号123にライト要求1319を出力する。ライト用バッファ122は、ライト要求1319,1320を第34図の規定に従い処理する。
次に、送出用バッファ120の動作について第37図を参照して説明する。第37図は送出データ線119の動作を規定する。送出用バッファ120は、メモリリードデータ121に出力されたデータを複数個記憶し、送出データ線119から出力する。また、送出用バッファ120は、リトライデータ有効信号117がONとなることで、ライト要求信号線123のデータを記憶し、送出データ線119から出力する。送出用バッファ120は、送出完了信号118がONになると送出データ線119を無効にし、次に記憶したデータを送出データ線119から出力する。第37図において、1400,1401,1402,1403は送出データ、1409はライト用バッファ122に記憶されたライト要求の書き込みデータである。第37図では、メモリリードデータ121に送出データ1400が出力されるため、送出用バッファ120は送出データ1400を送出データ119から出力する。時刻1404で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ1401を送出データ線119から出力する。時刻1408でリトライデータ有効信号117がONとなるため、送出用バッファ120は、送出データ線119の送出データ1401を変更し送出データ1409を出力する。時刻1405で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ1402を送出データ線119から出力する。時刻1406で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、次に記憶した送出データ1403を送出データ線119から出力する。時刻1407で、送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にする。
次に、メモリ制御手段133の動作について第38図を参照して説明する。リード要求の処理動作、ライト要求の処理動作、リード要求とライト要求の競合処理動作はメモリ制御手段133と同じで、第6図,第7図,第8図に従う。メモリ制御手段133は、書き込み優先信号129がOFFで且つ、リトライリード要求信号116がONである時、メモリ制御手段133は、リード要求もライト要求も受け付けない。第38図において、3200はリード要求、3202はライト要求、3203はリトライリード用の書き込みデータ、3208はライト制御データ、3209はリード制御データ、3210はライトアドレス、3211は書き込みデータ、3212はリードアドレス、3213はリードの読み出しデータである。第38図では、時刻3205でリトライリード要求信号116がONであるが、書き込み優先信号129がONであるため、メモリ制御手段133は、ライト要求3202を受け付ける。ライト要求の受け付けは第7図の規定に従う。ライト要求受け付け後、書き込み優先信号129がOFFで且つ、リトライリード有効信号116がONであるため、メモリ制御手段133は、ライト要求信号線123とリード要求信号線125の内容のどちらも受け付けない。時刻3207でリトライリード要求信号116がOFFになるため、第6図の規定に従い、メモリ制御手段133はリード要求3200を受け付ける。
この本発明にかかる別の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第39図,第40図を参照して説明する。この第39図の右端と第40図の左端とは信号が連続している。時刻1501から連続でリード要求1500,1502,1503がバス113に発行される。時刻1505でライト要求1504,時刻1507でライト要求1508が発行される。ライト要求1504の参照アドレスは、リード要求1503と競合し、ライト要求1508の参照アドレスは、リード要求1500の参照アドレスと競合する。競合検出の結果、時刻1506で書き込み優先信号129がONになり、時刻1509で書き込み承認信号130がONされることで、書き込み優先信号129が時刻1510でOFFになる。リード要求1500,1502,1503に対するリードデータ1513,1514,1515は時刻1512から連続でメモリ制御手段133から出力される。時刻1511でコヒーレント完了信号115と送出抑止信号136がONになるため、送出制御手段114は時刻1517でリトライリード要求信号116をONにする。リトライリードアドレス132は、リード要求1500の参照アドレス1518である。時刻1517では書き込み優先信号129がONになっているため、メモリ制御手段133はリトライリードよりもライト要求1504の書き込みを優先し、ライト用バッファ122は、記憶されているライト要求1504の情報1542を出力する。時刻1510で1サイクルの間書き込み優先信号129がOFFになるが、メモリ制御手段133は要求を受け付けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求1508の書き込みが優先される。ライト用バッファ122も承認信号を受けた次のサイクルは、出力132を有効としないのでリトライリード要求を待たし、記憶されているライト要求1508の情報1543を出力する。時刻1519で書き込み承認信号130が発行され、時刻1520で書き込み優先信号129がOFFになるため、メモリ制御手段133はリトライリード要求を受け、通常のリード要求,ライト要求を受け付けない。ライト用バッファ122は、時刻1521で書き込み優先信号129がOFFでリトライリード要求信号116がONのため、リトライリードの動作を行い、時刻1521でリトライリードアドレス1518を参照アドアレスとするライト要求1508のデータ1544を出力123に出す。送出用バッファ120は、送出データを1518からリトライリードのデータ1527に入れ替える。競合検出手段128はリトライデータ有効信号116がONになったので、時刻1524で送出抑止信号136をOFFにする。送出制御手段114は送出抑止信号136がOFFになるので、時刻1524で送出完了信号118をONにし、時刻1525で送出データ1527を、バス113にデータ1526として送出する。送出完了信号118を受けて、競合検出手段128はコヒーレント完了信号115をクリアし、リトライリード用バッファ131はリード要求1502の参照アドレス1530を出力する。時刻1529で、リード要求1502のコヒーレント完了信号115がON、送出抑止信号136がOFFであるので、送出制御手段114は送出完了信号118をONにし、送出データ1528を時刻1531でバス113にデータ1532として送出する。競合検出手段128は送出完了信号118がONになるので、時刻1531でコヒーレント完了信号115をOFFにする。時刻1534でリード要求1503のコヒーレント完了信号115と送出抑止信号136が出力される。それを受けて送出制御手段114はリトライリード要求信号116をONとする。リトライリード用バッファ131はリトライリードアドレスとして、リード要求1503の参照アドレス1533を出力する。メモリ制御手段133はリトライリード要求を受け、通常のリード要求,ライト要求を受け付けない。ライト用バッファ122は、時刻1534で書き込み優先信号129がOFFでリトライリード要求信号116がONのため、リトライリードの動作を行い、時刻1534でリトライリードアドレス1533を参照アドレスとするライト要求1504のデータ1545を出力123に出す。リトライデータ有効信号117がONであるため、送出用バッファ120は出力をデータ1536からデータ1539に変更し、競合検出手段128は送出抑止信号136をOFFにする。時刻1538で送出抑止信号136がOFFとなるため、送出制御手段114は送出完了信号118をONし時刻1540でデータ1539をデータ1541としてバス113へ出す。リトライリードで読まれたデータ1523と1537は、それぞれライト要求1508とライト要求1504で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第41図に本発明の更に別の好ましい実施形態を示す。この実施形態はリード要求とライト要求の競合でリトライリードが必要な場合において、リトライリードアドレスをリード用バッファ124から持ってくることに対応する。リード用バッファ124は、バス113に発行されたリード要求を複数個記憶する機能に加え、出力132にリトライリードアドレスを出力する機能を持つ。
リード用バッファ124の動作を第42図を参照して説明する。第42図は、リトライリードアドレス132の動作を規定する。リード要求信号125とリードアドレス126と要求状態信号127は、第17図の規定に従い動作する。リード用バッファ124は、プロセッサバス113へ出力されたリード要求を複数個記憶する。リード用バッファ124は、記憶したリード要求を記憶した順にリード要求信号125とリトライリードアドレス線132を使用しメモリ制御手段133に出力する。リード用バッファ124は、記憶されたリード要求のメモリ制御手段133への受け付け状況を要求状態信号127により、競合検出手段128に通知する。リード用バッファ124は、メモリ制御手段133からの読み出し承認信号137がONとなることにより、記憶されたリード要求がメモリ制御手段133に受け付けられたことを知り、リード要求信号125を1サイクルの間無効にし、次に記憶したリード要求をリード要求信号125に出力する。リード用バッファ124は、送出制御手段114からの送出完了信号118がONになることにより、記憶されたリード要求に対する送出が完了したことを知り、リトライリードアドレス132を1サイクルの間無効にし、次に記憶したリード要求をリトライリードアドレス132に出力する。
第42図において、1700,1701,1702,1703はリード要求である。第42図では、時刻1704で読み出し承認信号137がONになるため、リード用バッファ124は、リード要求1700の代わりにリード要求1701をリード要求信号125に出力する。時刻1705で読み出し承認信号137がONになるため、リード用バッファ124は、リード要求1701の代わりにリード要求1702をリード要求信号125に出力する。時刻1706で送出完了信号118がONになるため、リード用バッファ124は、リトライリードアドレス信号132を1サイクル無効にし、リード要求1700の代わりにリード要求1701をリトライリードアドレス信号132に出力する。
この本発明にかかる更に別の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第43図,第44図を参照して説明する。この第43図の右端と第44図の左端とは信号が連続している。時刻1801から連続でリード要求1800,1802,1803がバス113に発行される。また、時刻1842にリード要求1843が発行される。時刻1805でライト要求1804,時刻1807でライト要求1808が発行される。ライト要求1804の参照アドレスは、リード要求1803と競合し、ライト要求1808の参照アドレスは、リード要求1800の参照アドレスと競合する。競合検出の結果、時刻1806で書き込み優先信号129がONになり、時刻1809で書き込み承認信号130がONされることで、書き込み優先信号129が時刻1810でOFFになる。リード要求1800,1802,1803に対するリードデータ1813,1814,1818は時刻1812から連続でメモリ制御手段133から出力される。時刻1811でコヒーレント完了信号115と送出抑止信号136がONになるため、送出制御手段114は時刻1817でリトライリード要求信号116をONにする。リード用バッファ124は、リトライリードアドレス132にリード要求1800の参照アドレス1848を出力する。時刻1817では書き込み優先信号129がONになっているため、メモリ制御手段133はリトライリードよりもライト要求1804の書き込みを優先する。時刻1810で1サイクル書き込み優先信号129がOFFになるが、メモリ制御手段133は要求を受けた次のサイクルは要求を受け付けないのでリトライリード要求は待たされ、ライト要求1808の書き込みが優先される。時刻1819で書き込み承認信号130が発行され、時刻1820で書き込み優先信号129がOFFになるため、メモリ制御手段133はリード要求1800の参照アドレス1848でリトライリード要求を受け付け、時刻1821でリトライデータ有効信号117をONにし、リトライデータ1823を出力する。送出用バッファ120は、送出データを1818からリトライリードのデータ1827に入れ替える。競合検出手段128はリトライデータ有効信号117がONになったので、時刻1824で送出抑止信号136をOFFにする。送出制御手段114は送出抑止信号136がOFFになるので、時刻1824で送出完了信号118をONにし、時刻1825で送出データ1827を、バス113に、データ1826として送出する。送出完了信号118を受けて、競合検出手段128はコヒーレント完了信号115をクリアし、リード用バッファ124はリード要求1802の参照アドレス1830をリトライリードアドレス132に出力する。時刻1829で、リード要求1802のコヒーレント完了信号115がON、送出抑止信号136がOFFであるので、送出制御手段114は送出完了信号118をONにし、送出データ1828を時刻1831でバス113にデータ1832として送出する。競合検出手段128は送出完了信号118がONになるので、時刻1831でコヒーレント完了信号115をOFFにする。時刻1824で送出完了信号118がONになるので、リード用バッファ124はリード要求1803の参照アドレス1833をリトライリードアドレス132に出力する。メモリ制御手段133は時刻1849でリード要求1843の読みだしデータ1850を出力する。時刻1834でリード要求1803のコヒーレント完了信号115と送出抑止信号136が出力される。それを受けて送出制御手段114はリトライリード要求信号116をONとする。メモリ制御手段133はリード要求1803の参照アドレス1833でリトライリード要求を受け、時刻1835でリトライデータ有効信号117がONにし、リトライデータ1837を出力する。送出用バッファ120は出力をデータ1836からデータ1839に変更し、競合検出手段128は送出抑止信号136をOFFにする。時刻1838で送出抑止信号136がOFFとなるため、送出制御手段114は送出完了信号118をONし時刻1840でデータ1839をデータ1841としてバス113へ出す。時刻1840で送出バッファ120はリード要求1843の読みだしデータ1851を出力する。リトライリードで読まれたデータ1823と1837は、それぞれライト要求1808とライト要求1804で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
第45図に本発明の更に他の好ましい実施形態を示す。この実施形態はキャッシュの報告の完了を待ってリード要求をメモリ制御手段133に出力するものに対応する。リード用バッファ124は、バス113に発行されたリード要求を複数個記憶する機能に加え、コヒーレント完了信号115を受けてリード要求を出力125に出す。メモリ制御手段133はリード要求を受け付けたら、読み出し承認信号137を競合検出手段128に出力する。競合検出手段128は読み出し承認信号137を受けたら、コヒーレント完了信号115をクリアする。送出制御手段114は送出用バッファ120の出力をバス113に送出する。
次に、リード用バッファ124の動作を第46図を参照して説明する。第46図はリード要求信号125の動作を規定する。リードアドレス126の動作は第25図の規定に従う。リード用バッファ124は、プロセッサバス113へ出力されたリード要求を複数個記憶する。リード用バッファ124は、コヒーレント完了信号115がONになったら、記憶したリード要求を記憶した順にリード要求信号125を使い、メモリ制御手段133に出力する。リード用バッファ124は、メモリ制御手段133からの読み出し承認信号137がONとなることにより、記憶されたリード要求がメモリ制御手段133に受け付けられたことを知り、リード要求信号125を1サイクルの間無効にし、次に記憶したリード要求をリード要求信号125に出力する。第46図において、2000,2001,2002,2003はリード要求である。第46図では、時刻2007でコヒーレント完了信号115がONになるため、リード用バッファ124は、次のサイクルでリード要求信号125に最初に記憶したリード要求2000を出力する。時刻2106で読み出し承認信号137がONとなるため、リード用バッファ124はリード要求信号125を無効にする。時刻2008でコヒーレント完了信号115がONになるため、リード用バッファ124は、リード要求2000の次に記憶したリード要求2001をリード要求信号125に出力する。
競合検出手段128の動作を第47図を参照して説明する。第47図は、コヒーレント完了信号115の動作を規定する。書き込み優先信号129の動作は第22図の規定に従う。競合検出手段128はプロセッサバス113に発行されるリード要求に対するコヒーレント報告を監視し、その報告が全て完了したことを記憶し、コヒーレント完了信号115により、リード用バッファ124に出力する。対応するリード要求がメモリ制御手段133に受け付けられたことを示す読み出し承認信号137がONになることで、対応するリード要求のコヒーレント報告完了の記憶をクリアし、コヒーレント完了信号115をOFFにする。続いて、競合検出手段128は、次のリード要求のコヒーレント報告の状態をコヒーレント完了信号115に出力する。第47図において、3300,3301,3302,3303はリード要求、3304,3308,3312,3316はリード要求3300のコヒーレント報告、3305,3309,3313,3317はリード要求3301のコヒーレント報告、3306,3310,3314,3318はリード要求3302のコヒーレント報告、3307,3311,3315,3319はリード要求3303のコヒーレント報告である。第47図では、リード要求3300のコヒーレント報告は、コヒーレント報告3316が到着して完了するため、競合検出手段128は、リード要求3300のコヒーレント報告の完了を記憶し、時刻3320でコヒーレント完了信号115をONにする。リード要求3301のコヒーレント報告は、コヒーレント報告3317が到着して完了するため、競合検出手段128は、リード要求3301のコヒーレント報告の完了を記憶する。時刻3324でリード要求900に対して読み出し承認信号137がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。競合検出手段128は、すでに記憶しているリード要求3301のコヒーレント報告完了情報により、時刻3321でリード要求3301に対してコヒーレント完了信号115をONにする。時刻3321でリード要求3301に対して読み出し承認信号137がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。リード要求3302のコヒーレント報告は、コヒーレント報告3318が到着して完了するため、競合検出手段128は、リード要求3302のコヒーレント報告の完了を記憶し、時刻3322でコヒーレント完了信号115をONにする。リード要求3303のコヒーレント報告は、コヒーレント報告3319が到着して完了するため、競合検出手段128は、リード要求3303のコヒーレント報告の完了を記憶する。時刻3326でリード要求3302に対して読み出し承認信号137がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。競合検出手段128は、すでに記憶しているリード要求3303のコヒーレント報告完了情報により、時刻3323でリード要求3303に対してコヒーレント完了信号115をONにする。時刻3327でリード要求3303に対して読み出し承認信号137がONになるため、競合検出手段128は次のサイクルにコヒーレント完了信号115をOFFにする。
次にメモリ制御手段133について説明する。メモリ制御手段133は、リード用バッファ124,ライト用バッファ122から出力されるリード要求または、ライト要求を処理し、リード要求の場合はメモリリードデータ線121に送出データを出力する。書き込み優先信号129がONである時、メモリ制御手段133は、ライト要求を優先して受け付ける。リード要求処理時の読み出し承認信号137とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121の動作は第6図の規定に従う。ライト要求処理時の書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135の動作は第7図の規定に従う。リード要求とライト要求の競合処理動作時の読み出し承認信号137と書き込み承認信号130とメモリ制御信号134とメモリアドレス/データ135とメモリリードデータ121の動作は第8図の規定に従う。
次に、送出用バッファ120の動作について第48図を参照して説明する。第48図は送出データ線119の動作を規定する。送出用バッファ120は、メモリリードデータ121に出力されたデータを複数個記憶し、送出データ線119から出力する。送出用バッファ120は、送出完了信号118がONになると送出データ線119を無効にし、次に記憶したメモリリードデータ121のデータを送出データ線119から出力する。第48図において、3400,3401,3402,3403は送出データである。第48図では、メモリリードデータ121に送出データ3100が出力されるため、送出用バッファ120は送出データ3100を送出データ119から出力する。時刻3404で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、送出データ3400の次に記憶した送出データ3401を送出データ線119から出力する。時刻3405で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、送出データ3401の次に記憶した送出データ3402を送出データ線119から出力する。時刻3406で送出完了信号118がONとなるため、送出用バッファ120は送出データ119を1サイクルの間無効にし、送出データ3402の次に記憶した送出データ3403を送出データ線119から出力する。
次に、送出制御手段114の動作を第49図を参照して説明する。第49図は、プロセッサバスへの出力113とバスアービタ112と送出完了信号118の動作を規定する。第49図で、3500,3501は送出データである。送出制御手段は、送出データ119が有効で無い時は、送出データ119が有効になるまで待つ。送出制御手段114は送出データ119が有効であれば、バスアービタ信号112と送出完了信号118をONとし、次のサイクルでプロセッサバス113に送出データを出力する。第49図では、時刻3502で送出データ119は有効であるため、送出制御手段114はバスアービタ112と送出完了信号118をONにし、次のサイクルにプロセッサバス113に送出データ3500を送出する。時刻3503で送出データ119は有効であるため、送出制御手段128はバスアービタ112と送出完了信号118をONにし、次のサイクルにプロセッサバス113に送出データ3501を送出する。
この更に他の好ましい実施形態における、複数のリード要求と複数のライト要求が競合した場合のメモリとキャッシュのコヒーレンシについて時間的に連続する信号を図示した第50図,第51図を参照して説明する。この第50図の右端と第51図の左端とは信号が連続している。時刻2101から連続でリード要求2100,2102,2103がバス113に発行される。時刻2105でライト要求2104,時刻2107でライト要求2108が発行される。ライト要求2104の参照アドレスは、リード要求2103と競合し、ライト要求2108の参照アドレスは、リード要求2100の参照アドレスと競合する。時刻2106で競合検出の結果書き込み優先信号129がONになり、時刻2109で書き込み承認信号130がONされることで、書き込み優先信号129が時刻2110でOFFになる。時刻2111でコヒーレント完了信号115がONになるため、リード用バッファ124はリード要求2100のアドレス2118を出力する。メモリ制御手段133は、要求を受け付けた次のサイクルは要求を受け付けないので、時刻2106から時刻2120までは書き込み優先となり、ライト要求2104と2108を受け付け、リード要求2100は時刻2120以降の時刻2122で受け付ける。競合検出手段128は、読み出し承認信号137を受け、時刻2121でコヒーレント完了信号115をクリアする。それによりリード要求アドレスは無効となる。時刻2123でコヒーレント完了信号115がONとなるので、リード用バッファ124はリード要求2102のアドレス2124を出力する。競合検出手段128は、読み出し承認信号137が時刻2125でONになるのを受け、次のサイクルにコヒーレント完了信号115をクリアする。それによりリード要求アドレスは無効となる。時刻2127でコヒーレント完了信号115がONとなるので、リード用バッファ124はリード要求2103のアドレス2126を出力する。競合検出手段128は、読み出し承認信号137が時刻2128でONになるのを受け、次のサイクルにコヒーレント完了信号をクリアする。時刻2112から連続でリード要求2100,2102,2103の読みだしデータがリードデータ121に出力され、時刻2129で送出データ119に出力されたリード要求2100の読みだしデータが時刻2136でバス113に出力される。同様にリード要求2102,2103の読みだしデータ2114,2115,送出データ2231,2132がリードデータ121,送出データ119に連続で出力され、バス113にそれぞれ2134,2135として出力される。リード要求2100,2103で読まれたデータ2133と2135は、それぞれライト要求2108とライト要求2104で書かれたデータであるため、メモリとキャッシュのコヒーレンシが保証できたことになる。
次に、本発明を使用したメモリ制御チップにより構成されたマルチプロセッサシステムの好ましい実施形態を第52図を参照して説明する。プロセッサ2200はキャッシュ2211を持ち、複数がプロセッサバス2201と制御線2202とコヒーレント報告信号線2204で、メモリ制御チップ2203で接続されている。メモリ制御チップ2203は、プロセッサの発行するリード要求とライト要求の競合を検出し、メモリ制御チップの内部バッファまたは、メモリ2205をバッファとして使用することでメモリとキャッシュのコヒーレンシを保証する。メモリ制御チップはメモリ2205とメモリバス2206と制御線2207で接続されており、メモリのリード,ライトを制御する。また、メモリ制御チップは各I/O2210とシステムバス2208と制御線2209で接続され、プロセッサからのI/Oに対するリード及びライト要求を、また、I/OからのメモリへのDMAリード及びライト要求を制御する。
産業上の利用可能性
以上のように、本発明にかかるマルチプロセッサシステムによれば、メモリ制御チップでプロセッサからのメモリへのリード要求とライト要求の検出し、メモリとキャッシュのコヒーレントを保証することにより、要求元であるプロセッサが、発行済みの要求に拘束されず他の要求を発行できるようになり、高い性能を要求されるシステムに用いるのに適している。
Technical field
The present invention relates to a multiprocessor system that includes a plurality of processors having a cache, detects a read request and a write request from a processor to a memory, and guarantees coherency between the memory and the cache, and is particularly suitable for memory access control for a shared memory. And a shared memory type multiprocessor system using the memory control chip.
Background art
In multiprocessor systems, it is essential to guarantee cache and memory coherency. In particular, when another processor issues a write to an address referenced by an arbitrary processor read, it is a problem to ensure that the written data is returned.
A conventional technique for the problem of cache coherency due to read and write competition will be described. A plurality of processors are connected to the memory control chip through a processor control line, a processor bus, and a coherent report line, respectively, and the memory control chip is connected to a memory through a memory bus and a memory control line.
Further, it is assumed that the latest data D ′ at address A exists in the cache of a certain processor, and the old data D exists in the memory. When another processor issues a read request to the memory for the address A and the previous processor issues a write request to the memory for the address A, in the prior art, the memory control chip refers to the read request and the write request. Address A conflict is detected, a retry read instruction signal is issued to the processor control line to the processor that issued the read request, and this processor issues a read request to address A again. The memory control chip invalidates the previously issued read request from the processor, and updates the contents of the memory address A to D ′ with priority on the write request. Thereafter, the memory control chip accepts the reissued read request and sends read data D ′ to the processor bus. Since the processor which issued the read request can receive the data D ′ for the address A, the coherency between the cache and the memory is guaranteed.
However, in such a conventional technique, when the processor that issued the read request receives the retry read request from the memory control chip, it is necessary to generate and issue the reference address A again. A buffer was needed to leave. In order to allow a plurality of read requests to be issued, information for identifying the lead to be retried is also required in the processor. Therefore, in the conventional technology, in order to suppress an increase in the amount of data due to the buffer, a read request that requires guarantee of memory and cache coherency is limited to one request for one processor, and a stage in which the processor cannot issue a read request is provided. Therefore, control has been performed to accept a retry read request between the stages. However, in this conventional technique, there is a period in which the processor cannot issue a read request, so that the memory read throughput of the system deteriorates and the performance deteriorates.
An object of the present invention is to improve the performance of a multiprocessor system by releasing a processor from a coherent guarantee operation.
Disclosure of the invention
In order to solve the above problem, the present invention provides a multiprocessor system that detects a match between reference addresses of a read request and a write request, a function that monitors the end of coherent reporting of a read request, A memory control chip having a function of determining that the write data of the write request is read data for the read request from a match detection result and a coherent report end result and a function of matching the read data and the write data are provided Is.
And if the read request is not activated in the memory, when the write request is issued before the coherent report of the read request is completed, the write operation is preferentially processed by detecting the conflict between the read request and the write request, Data with correct read operation can be read. Also, if a read request is activated in the memory, if a write request is issued before the coherent report of the read request is completed, the write operation is prioritized by detecting the conflict between the read request and the write request, and the read operation is performed. By invalidating and restarting the memory read with the same address and sending the read data to the bus, the data with the correct read request can be read.
As described above, the present invention guarantees the coherency of the memory and the cache in the memory control chip and the memory, thereby releasing the processor from the operation of the coherent guarantee and preventing the performance degradation of the multiprocessor system.
[Brief description of the drawings]
FIG. 1 is a block diagram of a preferred multiprocessor system according to the present invention.
FIG. 2 is an explanatory view of the conflict detection means in this multiprocessor system, FIG. 3 is another explanatory view of this conflict detection means, and FIG. 4 is an illustration of the conflict detection means of this conflict detection means. It is another explanatory view.
FIG. 5 is an explanatory diagram of the memory control means in the preferred multiprocessor system according to the present invention, FIG. 6 is an explanatory diagram of this memory control means, and FIG. 7 is another diagram of this memory control means. FIG. 8 is another explanatory view of this memory control means, FIG. 9 is still another explanatory view of this memory control means, and FIG. 10 is this memory control means. It is other explanatory drawing of.
FIG. 11 is an explanatory diagram of transmission control means in the preferred multiprocessor system according to the present invention, FIG. 12 is another explanatory diagram of this transmission control means, and FIG. 13 is an illustration of this transmission control means. It is another explanatory view.
FIG. 14 is an explanatory diagram of a retry read of a preferred multiprocessor system according to the present invention.
FIG. 15 is an explanatory diagram of the read buffer of the preferred multiprocessor system according to the present invention, and FIG. 16 is another explanatory diagram of the read buffer of the preferred multiprocessor system according to the present invention.
FIG. 17 is an explanatory diagram of a write buffer of a preferred multiprocessor system according to the present invention.
FIG. 18 is an explanatory diagram of a retry read buffer of a preferred multiprocessor system according to the present invention.
FIG. 19 is an explanatory diagram of a transmission buffer of a preferred multiprocessor system according to the present invention.
FIG. 20 is an explanatory diagram of the write priority processing of the preferred multiprocessor system according to the present invention.
FIG. 21 is an explanatory diagram of write priority processing and retry read of the preferred multiprocessor system according to the present invention.
FIG. 22 is an explanatory diagram of contention detection means in another preferred multiprocessor system according to the present invention.
FIG. 23 is another explanatory diagram of this competition detection means, and FIG. 24 is still another explanatory diagram of this competition detection means.
FIG. 25 is an explanatory view of a read buffer of another preferred multiprocessor system according to the present invention.
FIG. 26 is an explanatory diagram of another preferred multiprocessor system write buffer according to the present invention.
FIG. 27 is an explanatory diagram of a retry read buffer of another preferred multiprocessor system according to the present invention.
FIG. 28 is an explanatory diagram of a transmission buffer of another preferred multiprocessor system according to the present invention.
FIG. 29 is an explanatory diagram of a conflict between a plurality of read requests and one write request in another preferred multiprocessor system according to the present invention, and FIG. 30 is a conflict between the plurality of read requests and one write request. It is another explanatory drawing of.
FIG. 31 is an explanatory diagram of a conflict between a plurality of read requests and a plurality of write requests in another preferred multiprocessor system according to the present invention, and FIG. 32 is a conflict between the plurality of read requests and a plurality of write requests. It is another explanatory drawing of.
FIG. 33 is a block diagram of another preferred multiprocessor system according to the present invention.
FIG. 34 is an explanatory diagram of a write buffer in another preferred multiprocessor system according to the present invention, FIG. 35 is another explanatory diagram of this write buffer, and FIG. 36 is an example of this write buffer. It is another explanatory drawing of a buffer.
FIG. 37 is an explanatory diagram of a transmission buffer of another preferred multiprocessor system according to the present invention.
FIG. 38 is an explanatory diagram of the memory control means of another preferred multiprocessor system according to the present invention.
FIG. 39 is an explanatory diagram of a conflict between a plurality of read requests and a plurality of write requests in another preferred multiprocessor system according to the present invention, and FIG. 40 is a conflict between the plurality of read requests and a plurality of write requests. It is another explanatory drawing of.
FIG. 41 is a block diagram of still another preferred multiprocessor system according to the present invention.
FIG. 42 is an explanatory diagram of a read buffer of still another preferred multiprocessor system according to the present invention.
FIG. 43 is an explanatory diagram of the conflict between a plurality of read requests and a plurality of write requests in still another preferred multiprocessor system according to the present invention. FIG. 44 is a diagram illustrating the plurality of read requests and the plurality of write requests. It is another explanatory drawing of competition.
FIG. 45 is a block diagram of still another preferred multiprocessor system according to the present invention.
FIG. 46 is an explanatory view of a read buffer of still another preferred multiprocessor system according to the present invention.
FIG. 47 is an explanatory diagram of a contention detecting means of still another preferred multiprocessor system according to the present invention.
FIG. 48 is an explanatory diagram of a transmission buffer of still another preferred multiprocessor system according to the present invention.
FIG. 49 is an explanatory view of the transmission control means of still another preferred multiprocessor system according to the present invention.
FIG. 50 is an explanatory view of the conflict between a plurality of read requests and a plurality of write requests in still another preferred multiprocessor system according to the present invention, and FIG. 51 is a diagram of the plurality of read requests and the plurality of write requests. It is another explanatory drawing of competition.
FIG. 52 is an explanatory diagram of a multiprocessor system using a memory control chip according to the present invention.
FIG. 53 is a block diagram showing the structure of the conflict detection means in the multiprocessor system according to the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
One preferred embodiment of the present invention will be described with reference to FIG. In FIG. 1, 100, 101, 102 and 103 are cache memories (C), 104, 105, 106 and 107 are processors (P), 108, 109, 110 and 111 are cache coherent report signal lines, 112 is Bus arbiter signal line, 113 processor bus, 114 transmission control means, 115 coherent completion signal line, 116 retry read request signal line, 117 retry data valid signal line, 118 transmission completion signal line, 119 transmission data line , 120 is a sending buffer, 121 is a memory read data line, 122 is a write buffer, 123 is a write request signal line, 124 is a read buffer, 125 is a read request signal line, 126 is a read address line, and 127 is a request state Signal line 128 is competition detecting means, 129 is a write priority signal line, 13 Write approval signal line, 131 is a retry read buffer, 132 is a retry read address line, 133 is a memory control means, 134 is a memory control signal line, 135 is a memory address / data line, 136 is a transmission suppression signal line, and 137 is a read This is an approval signal line.
The present invention provides a means for detecting a match between a reference address of a read request issued from a processor of the system and a reference address of a write request issued from a processor of another system after the read request, and completion of coherent reporting of the read request. Have means for monitoring. These means are included in the competition detection means 128. A means for determining that the write data of the write request is the read data of the read from the coincidence detection result and the report end result is the transmission control means 114. The means for matching the read data with the write data is the retry read buffer 131, the memory control means 133, and the sending buffer 120.
The operation of each part in FIG. 1 will be described below. The read buffer 124 stores the read request issued to the processor bus 113, and outputs the stored read request to the memory control unit 133 through the read request signal line 125. Further, the read buffer 124 outputs the read address 126 and the request state 127 to the conflict detection unit 128. The request state 127 is a state indicating whether the entry in the read buffer 124 is valid and whether the read request is accepted by the memory control unit 133.
The conflict detection means 128 monitors the write request issued to the processor bus 113 and the coherent reports 108, 109, 110, and 111 from the processors 104, 105, 106, and 107, and the read address 126 output from the read buffer 124. And the address referred to by the write request and the arrival status of the coherent report, the outputs of the write priority signal 129, the coherent completion signal 115, and the transmission suppression signal 136 are controlled. The retry read buffer 131 stores the output 125 of the read buffer 124 received by the memory control unit 133, and the stored retry read address 132 is output to the memory control unit 133. The write buffer 122 stores a write request issued to the bus, and the stored write request is output to the memory control means 133 using the output 123. Based on the write priority signal 129 and the retry read request signal 116, the memory control means 133 accepts a request to be accepted among the output 125 of the read buffer, the output 123 of the write buffer, and the output 132 of the retry read buffer. Select to start the memory. When this activation depends on a read request or retry read, the memory control means 133 receives data 135 from the memory. The sending buffer 120 receives the data 121 from the memory control unit 133 and outputs the sending data 119 to the sending control unit 114. The transmission control unit 114 checks the coherent completion signal 115 and the transmission suppression signal 136 and determines whether to perform retry reading or to transmit to the processor bus 113 as it is.
Next, the operation of the conflict detection means 128 will be described with reference to FIGS. 2, 3, and 4. FIG. FIG. 2 defines the operation of the coherent completion signal 115. FIG. 3 defines the operation of the write priority signal 129. FIG. 4 defines the operation of the transmission inhibition signal 136.
The contention detection unit 128 turns on the coherent completion signal 115 when all of the read request coherent reports are output, and when the read request read data is transmitted from the transmission control unit 114 and the transmission completion signal 118 is turned on, the coherent completion is performed. The signal 115 is turned off.
In FIG. 2, 200 is a read request, and 201, 202, 203, and 204 are coherent reports for the read request 200. In FIG. 2, the contention detection means 128 turns on the coherent completion signal 115 because all the coherence of the read request 200 is reported at time 205. The contention detection unit 128 turns off the coherent completion signal 115 at time 207 because the transmission completion signal 118 is turned on at time 206.
If a write request having the same reference address as the reference address of the read request is issued before all the coherent reports for the read request are output, the conflict detection unit 128 turns the write priority signal 129 ON, and the write request is When the memory controller 133 accepts the write approval signal 130, the write priority signal 129 is turned OFF. In FIG. 3, 208 is a read request, 209 is a write request, 210, 211, 212, and 213 are coherent reports of the read request 208, 215 is a reference address of the read request 208, 219 is a read request, 220 is a write request, 210a , 211a, 212a, and 213a are coherent reports of the read request 219, and 215a is a reference address of the read request 219. The write request 209 has the same reference address as the read request 208. The write request 220 has the same reference address as the read request 219.
In FIG. 3, since the write request 209 is issued before the time 214 when all the coherent reports of the read request 208 are output, the contention detection unit 128 prioritizes writing at the next time 216 when the write request 209 is issued. The signal 129 is turned ON. Since the write approval signal 130 of the write request 209 is turned on at time 217, the conflict detection unit 128 turns off the write priority signal 129 at time 218. Since the write request 220 is issued after the time 221 when all the coherent reports of the read request 219 are output, the conflict detection unit 128 does not turn the write priority signal 130 ON.
The conflict detection unit 128 issues a write request having the same reference address as the reference address of the read request before all the coherent reports for the read request are output and after the read request is received by the memory control unit. Then, the transmission inhibition signal 136 is turned on. The conflict detection unit 128 turns the transmission inhibition signal 136 OFF when the retry read data of the read request is output from the memory control unit 133 and the retry data valid signal 117 is turned ON.
In FIG. 4, 222 is a read request, 223 is a write request, 229 is a read request, 230 is a write request, 233 is a reference address of the read request 222, and 234 is a reference address of the read request 229. The write request 223 has the same reference address as the read request 222. The write request 230 has the same reference address as the read request 229. In FIG. 4, the write request 223 is issued before the time 224 when all the coherent reports of the read request 222 are output. The write request 223 is issued after the time 225 when the read request 222 is accepted by the memory control means 133. For this reason, the conflict detection means 128 turns on the transmission suppression signal 136 at time 226. Since the retry data valid signal 117 is turned on at time 227, the conflict detection means 128 turns off the transmission suppression signal 136 at time 228. The write request 230 is issued before time 231 when all the coherent reports of the read request 229 are output. However, the write request 230 is issued before the time 232 when the read request 229 is accepted by the memory control means 133. For this reason, the conflict detection means 128 does not operate the transmission suppression signal 136.
Here, the configuration of the conflict detection means 128 will be described with reference to FIG. The conflict detection unit 128 includes an end monitoring unit 3600 that monitors the end of the coherent report, and an address match detection unit 3601 that detects a match between the addresses of the write request and the read request. The end monitoring means 3600 receives the coherent report signal lines 108, 109, 110, 111 and the transmission completion signal line 118 and outputs the coherent completion signal line 115. The operation of the coherent completion signal line 115 follows the definition of FIG. Address match detection means 3601 receives processor bus 113, read address line 126, request status signal line 127, write approval signal line 130, retry data valid signal line 117, coherent completion signal line 115, and write priority signal line 129, The transmission suppression signal line 136 is output. The operation of the write priority signal line 129 follows the definition of FIG. Further, the operation of the transmission suppression signal line 136 follows the definition of FIG.
Next, the operation of the memory control means 133 will be described with reference to FIG. When the write priority signal 129 and the retry read request signal 116 are OFF, the memory control unit 133 performs normal memory control if there is a write request or a read request. The memory control means 133 performs the following operation in addition to this normal memory control.
When the write priority signal 129 is ON, the memory control unit 133 gives priority to the memory write regardless of the state of the retry read request signal 116 if the address information 123 of the write request is valid. In addition, when the write priority signal 129 is OFF and the retry read request signal 116 is ON, the memory control unit 133 gives priority to retry reading if the retry read address information 132 is valid.
Next, the read request processing operation of the memory control means 133 will be described with reference to FIG. FIG. 6 defines the operations of the read approval signal 137, the memory control signal 134, the memory address / data 135, and the memory read data 121 during the read request processing. In FIG. 6, 300 is a read request, 302 is read control information, 303 is a reference address, and 304 is read data. If there is a read request when the read request can be processed, the memory control unit 133 accepts the read request and sets the read approval signal 137 to ON for one cycle. One cycle after the read approval signal 137 is turned ON, read control information is output to the memory control unit 134, and after one cycle, a reference address is output to the memory address / data 135. When the data read from the memory is output to the memory address / data 135, the memory control unit 133 outputs the read data to the memory read data 121 after one cycle. In FIG. 6, since the memory control means 133 accepts the read request 300 at time 301, the read approval signal 137 is turned ON at time 301. The memory control unit 133 outputs the read data 304 to the memory read data 121 at time 305 which is the next cycle output to the memory address / data 135.
Next, the write request processing operation of the memory control means 133 will be described with reference to FIG. FIG. 7 defines the operations of the write approval signal 130, the memory control signal 134, and the memory address / data 135 during the write request processing. In FIG. 7, 306 is a write request, 308 is write control information, 309 is a reference address, and 310 is write data. If there is a write request when the write request can be processed, the memory control unit 133 accepts the write request and turns on the write approval signal 130 for a period of one cycle. One cycle after the write approval signal 130 is turned ON, the write control information is output to the memory control signal 134, the reference address is written to the memory address / data 135 one cycle later, and the write data is written to the memory address / data 135 one cycle later. Is output. In FIG. 7, since the memory control means 133 accepts the write request 306 at time 307, the write approval signal 130 is turned ON at time 307.
Next, the read processing and write request contention processing operation of the memory control means 133 will be described with reference to FIG. FIG. 8 defines the operations of the read approval signal 137, the write approval signal 130, the memory control signal 134, the memory address / data 135, and the memory read data 121 during the read request / write request conflict processing operation. In FIG. 8, 311 is the read request, 313 is the write request, 314 is the read control information of the read request 311, 315 is the reference address of the read request 311, 318 is the read data of the read request 311, and 317 is the write request Write control information 313, 320 a reference address of the write request 313, and 321 write data of the write request 313. When the read request and the write request can be processed and the read request and the write request exist at the same time, the memory control means 133 accepts the read request first, and performs the read request processing operation defined in FIG. After the completion of the read request processing, the memory control means 133 accepts the write request and performs the write request processing operation defined in FIG.
In FIG. 8, the memory control means 133 accepts the read request 311 at the time 312 out of the read request 311 and the write request 313, so the read approval signal 137 is turned ON at the time 301. The memory control means 133 outputs the read data 318 to the memory read data 121 at time 316 which is the next cycle output to the memory address / data 135. Next, the memory control unit 313 turns on the write approval signal 130 at time 316 in order to accept the write request 313 at time 316 when the processing of the read request 311 ends.
Next, the read request, write request, and retry read contention processing operations of the memory control means 133 will be described with reference to FIG. FIG. 9 shows a read approval signal 137, a write approval signal 130, a memory control signal 134, a memory address / data 135, a memory read data 121, and a retry data valid signal 117 during a read request, write request, and retry read operation. Define the behavior. In FIG. 9, 322 is a read request, 324 is a write request, 326 is a retry read request, 329 is a read control information of the retry read request 326, 330 is a reference address of the retry read request 326, 331 is a read of the retry read request 326 The issued data, 332 is the read control information of the read request 322, 333 is the reference address of the read request 322, 334 is the read data of the read request 322, 335 is the write control information of the write request 324, and 336 is the write request Reference address 324 and 337 are write data of the write request 324. When the read request, the write request, and the retry read can be processed and the read request signal 116 indicating that there is a retry read is ON, the memory control unit 133 performs the retry. Accept lead with priority. The memory control means 133 outputs read control information to the memory control signal 134 based on the information of the retry address 132, and outputs a reference address to the memory address / data 135 one cycle later. When the data read from the memory is output to the memory address / data 135, the memory control means 133 turns on the retry data valid signal 117 one cycle later and outputs the read data to the memory read data 121 at the same time. To do. After the retry read process is completed, the memory control means 133 processes the read request and the write request in the order shown in FIG.
In FIG. 9, the memory control means 133 accepts the retry read request 326 at the time 338 among the read request 322, the write request 324, and the retry read request 326, so the read control information 329 is sent to the memory control signal 134 at the time 338. The reference address 330 is output to the memory address / data 135 in the next cycle. In response to the output of the read data 331 to the memory address / data 135, the memory control unit 133 turns on the retry data valid signal 117 at time 328 and outputs the read data 331 to the memory read data 121. The memory control means 133 accepts the read request 322 at time 323 after the retry read process is completed, and turns on the read approval signal 137. Further, the memory control means 133 accepts the write request 324 at time 325 after the end of the read process, and turns on the write approval signal 130.
Next, the read processing, write request, retry read, and write priority contention processing operation of the memory control means 133 will be described with reference to FIG. FIG. 10 shows a read approval signal 137, a write approval signal 130, a memory control signal 134, a memory address / data 135, a memory read data 121, and a retry data valid at the time of a read request, a write request, a retry read, and a write priority contention processing operation. The operation of the signal 117 is defined. In FIG. 10, 339 is a read request, 341 is a write request, 343 is a retry read request, 348 is read control information of the retry read request 343, 349 is a reference address of the retry read request 343, and 350 is a read of the retry read request 343. 351 is the read control information of the read request 339, 352 is the reference address of the read request 339, 353 is the read data of the read request 339, 345 is the write control information of the write request 341, 346 is the write request Reference address 341, 346 is write data of the write request 341. When the read request, the write request, and the retry read can be processed and the read request, the write request, and the retry read are present, and the write priority signal 129 that gives priority to writing is ON, the memory control unit 133 writes the write request. Priority is accepted. The memory control means 133 processes the write request in accordance with the rules of FIG. 7, and after the write processing, processes the retry read request in accordance with the rules of FIG. 9, and processes the read request in accordance with the rules of FIG. To do.
In FIG. 10, since the write priority signal 129 is ON among the read request 339, the write request 341, and the retry read request 343, the memory control means 133 turns the write approval signal 130 on for one cycle at time 342, and writes The request 341 is accepted. The memory control means 133 outputs the write control information 345 to the memory control signal 134 and outputs the reference address 346 and the write data 347 to the memory address / data 135 in the next two cycles. After processing the write request 341, the memory control means 133 accepts the retry read request 343 at time 354, so outputs the read control information 348 to the memory control signal 134 at time 354, and sets the reference address 349 to the memory address in the next cycle. / Output to data 135. In response to the output of the read data 350 to the memory address / data 135, the memory control unit 133 turns on the retry data valid signal 117 at time 344 and outputs the read data 350 to the memory read data 121. After the retry read is completed, the memory control means 133 accepts the read request 339 at time 340 and turns on the read approval signal 137.
Next, the operation of the sending control means 114 will be described with reference to the state transition diagram of FIG. When the coherent reports 108, 109, 110, 111 from the respective processors for the read request that caused the transmission have arrived for the transmission data 119 output from the transmission buffer 120 and the transmission data is correct, Define that the transmitted data is valid. Moreover, each transition condition in FIG. 11 is as follows.
(Condition 1): Transmission buffer 120 is invalid and
Coherent completion signal 115 is OFF.
(Condition 2) (Condition 6): The sending buffer 120 is valid, and
Coherent completion signal 115 is OFF.
(Condition 3) (Condition 7) (Condition 9): The sending buffer 120 is valid, and
The coherent completion signal 115 is ON, and
The transmission suppression signal 136 is OFF.
(Condition 4) (Condition 8) (Condition 11): The sending buffer 120 is valid, and
The coherent completion signal 115 is ON, and
The transmission inhibition signal 136 is ON.
(Condition 5) (Condition 10): The sending buffer 120 is invalid, and
Coherent completion signal 115 is ON.
(Condition 12): Retry data valid signal 117 is OFF.
(Condition 13): Retry data valid signal 117 is ON.
(Condition 14): Waiting for bus right.
(Condition 15): Obtain bus right.
The standby state 400 is a state waiting for the output from the transmission buffer 120 and the coherent completion signal 155 to be turned on. From the state 400, when data is output from the transmission buffer 120 and the coherent completion signal 115 remains OFF (condition 2), the transmission control unit 114 shifts to the coherent completion waiting state 401 until the coherent completion signal 115 is turned ON. Wait in state 401. From the state 400, when the coherent completion signal 115 is turned ON and no data is output from the transmission buffer 120 (condition 5), the transmission control unit 114 shifts to the transmission data output waiting state 402 until the transmission data is output. Wait in state 402. When the coherent completion signal 115 is turned ON from the state 400 and data is output from the transmission buffer 120 (condition 3), the transmission control unit 114 shifts to the data valid state 403 if the transmission suppression signal 136 is OFF. When the coherent completion signal 115 is turned ON from the state 401, the transmission control unit 114 shifts to the data valid state 403 if the transmission suppression signal 136 is OFF (condition 7). When the data is output from the transmission buffer 120 from the state 402, the transmission control unit 114 shifts to the data valid state 403 if the transmission inhibition signal 136 is OFF (condition 9). When the coherent completion signal 115 is turned ON from the state 400 and data is output from the transmission buffer 120, the transmission control unit 114 shifts to the retry read state 404 if the transmission suppression signal 136 is ON (condition 4). When the coherent completion signal 115 is turned ON from the state 401, the transmission control unit 114 shifts to the retry read state 404 if the transmission suppression signal 136 is ON (condition 8). When the transmission control unit 114 is in the state 402, if data is output from the transmission buffer 120 and the transmission suppression signal 136 is ON (condition 11), the transmission control unit 114 shifts to the retry read state 404. In the state 404, the transmission control means 114 turns the retry read request signal 116 ON. The transmission control means 114 waits in state 404 until retry data is output from the transmission buffer 120. When the retry data valid signal 117 is turned ON from the state 404 (condition 13), the transmission control unit 114 turns the retry read request signal 116 OFF and shifts to the data valid state 403. The transmission control means 114 waits in the data valid state 403 until the bus right can be acquired. When the bus right can be acquired (condition 15), the transmission completion signal 115 is turned ON and the state shifts to the standby state 400. The transmission control means 114 turns off the transmission completion signal 115 when the standby state 400 is entered.
Next, the operation of the sending control means 114 when retry reading is not performed will be described with reference to FIG. FIG. 12 defines the operations of the output 113 to the processor bus, the bus arbiter 112, and the transmission completion signal 118 when retry reading is not performed. In FIG. 12, reference numerals 405 and 406 denote transmission data. When the coherent completion signal 115 is ON and the transmission data 119 is not valid, the transmission control unit 114 waits until the transmission data 119 becomes valid. Further, when the coherent completion signal 115 is OFF and the transmission data 119 is valid, the transmission control unit 114 waits until the coherent completion signal 115 is turned ON. If the transmission data 119 is valid and the coherent completion signal 115 is ON, the transmission control unit 114 turns on the bus arbiter signal 112 and the transmission completion signal 118 and outputs the transmission data to the processor bus 113 in the next cycle.
In FIG. 12, although the transmission completion signal 115 is ON at time 407, since the transmission data 119 is not valid, the transmission control means 114 waits for the transmission data 405 to be output. Since the transmission data 405 is output at time 411, the transmission control unit 114 turns on the bus arbiter 112 and the transmission completion signal 118, and transmits the transmission data 405 to the processor bus 113 in the next cycle. Since the transmission completion signal 115 is ON at time 409 and the transmission data 119 is valid, the transmission control means 114 turns on the bus arbiter 112 and the transmission completion signal 118 and sends the transmission data 406 to the processor bus 113 in the next cycle. Send it out.
Next, the operation in the case of performing retry reading by the sending control means 114 will be described with reference to FIG. FIG. 13 defines the operations of the output 113 to the processor bus, the bus arbiter 112, the transmission completion signal 118, and the retry read request signal 116 when retry reading is performed. In FIG. 13, reference numerals 412 and 414 denote transmission data, and reference numerals 413 and 415 denote transmission data by retry read. When the coherent completion signal 115 is OFF or the transmission data 119 is invalid, the transmission control unit 114 waits until the coherent completion signal 115 is ON and the transmission data 119 becomes valid according to the definition of FIG. . If the coherent completion signal 115 is ON, the transmission data 119 is valid, and the transmission suppression signal 136 is OFF, the transmission control unit 114 performs processing according to the rules of FIG. The transmission control unit 114 turns the retry read request signal 116 ON when the coherent completion signal 115 is ON, the transmission data 119 is valid, and the transmission suppression signal 136 is ON. When the read data of the retry read is output from the memory control unit 133 and the retry data valid signal 117 is turned on, the conflict detection unit 128 turns off the transmission suppression signal 136. Since the transmission suppression signal 136 is turned OFF, the coherent completion signal 115 is ON, and the transmission data 119 is valid, the transmission control unit 114 performs processing according to the rules of FIG.
In FIG. 13, the transmission completion signal 115 is ON at time 416, but the transmission data 119 is invalid, so the transmission control means 114 waits for the transmission data 412 to be output. When the transmission data 412 is output, since the transmission suppression signal 136 is ON, the transmission control unit 114 sets the retry read request signal 116 to ON. Since the retry data valid signal 117 is turned on at time 417 and the transmission inhibition signal 136 is turned off at time 418, the transmission control means 114 turns on the transmission completion signal 118 and transmits the transmission data 413 by retry read in the next cycle. Is sent to the processor bus 113. When the transmission completion signal 115 is turned on at time 419, the transmission control unit 114 turns the retry read request signal 116 on because the transmission data 119 is valid and the transmission suppression signal 136 is on. Since the retry data valid signal 117 is turned on at time 420 and the transmission inhibition signal 136 is turned off at time 421, the transmission control unit 114 turns on the transmission completion signal 118 at time 421 and performs a retry read in the next cycle. Send data 415 is sent to the processor bus 113.
Next, an example of state transition of the sending control means 114 will be described with reference to FIG. Since the transmission data 119 is invalid at time 500 and the coherent completion signal 115 is also OFF, the state of the transmission control unit 114 is the standby state 400. Since the transmission data 506 is output from the transmission buffer 120 at time 501, the state of the transmission control unit 114 shifts from the standby state 400 to the coherent completion waiting state 401. At time 502, the coherent completion signal is turned on and the transmission suppression signal 136 is turned on, so that the state of the transmission control unit 114 shifts from the coherent completion waiting state 401 to the retry read state 404. Therefore, the retry read request signal 116 is turned ON at time 502. Since the retry data valid signal 117 is turned on at time 503, the state of the transmission control unit 114 shifts from the retry read state 404 to the data valid state 403 at time 504. Since the bus right is acquired at time 504, the transmission control means 114 turns on the transmission completion signal 118. At time 505, the state of the transmission control unit 114 shifts from the data valid state 403 to the standby state 400.
Next, the operation of the read buffer 124 will be described with reference to FIGS. 15 and 16 define the operations of the read request signal 125, the read address signal 126, and the request status signal 127. The read buffer 124 stores the read request output to the processor bus 113. The read buffer 124 outputs the stored read request to the memory control means 133 and the retry read buffer 131 using the read request signal 125. The read buffer 124 turns on the request state signal 127 until the stored read request is accepted by the memory control means 133. The read buffer 124 knows that the stored read request has been accepted by the memory control means 133 when the read approval signal 137 from the memory control means 133 is turned on, and turns off the request state signal 127 to read the read request signal. The request signal 125 is invalidated. The read buffer 124 outputs the read address signal 126 of the stored read request to the conflict detection means 128.
In FIG. 15, 2400 is a read request, and 2401 is the read address of the stored read request 2400. In FIG. 15, since the read request 2400 is stored in the read buffer 124 at time 2402, the read buffer 124 turns on the request status signal 127 from time 2402 and validates the read request signal 125. Since the read approval signal 137 is turned on at time 2403, the read buffer 124 turns off the request status signal 127 in the next cycle and invalidates the read request signal 125.
In FIG. 16, 2405 is a read request and 2406 is a read address of the stored read request 2405. In FIG. 16, since the read request 2405 is stored in the read buffer 124 at time 2407, the read buffer 124 turns on the request status signal 127 from time 2407 and validates the read request signal 125. Since the read approval signal 137 is turned on at time 2409, the read buffer 124 turns off the request state signal 127 in the next cycle and invalidates the read request signal 125.
Next, the operation of the write buffer 122 will be described with reference to FIG. FIG. 17 defines the operation of the write request signal 123. The write buffer 122 stores the write request output to the processor bus 113. The write buffer 122 outputs the stored write request to the memory control means 133 using the read request signal 123. The write buffer 122 knows that the stored write request has been accepted by the memory control signal 133 when the write approval signal 130 from the memory control means 133 is turned ON, and invalidates the write request signal 123. In FIG. 17, 2500 is a write request. In FIG. 17, at time 2501, the write request 2500 is stored in the write buffer 122, and the write request signal 123 becomes valid. Since the write approval signal 130 is turned ON at time 2502, the write buffer 122 invalidates the write request signal 123 in the next cycle.
Next, the operation of the retry read buffer 131 will be described with reference to FIG. FIG. 18 defines the operation of the retry read address line 132. The retry read buffer 131 stores a read request signal 125 when the read approval signal 137 is turned on and outputs it from the retry read address 132. The retry read buffer 131 invalidates the retry read address 132 when the transmission completion signal 118 is turned ON. In FIG. 18, 2600 is a read request. In FIG. 18, since the read approval signal 137 is turned ON at time 2601, the retry read buffer 131 stores the read request 2600 and outputs it from the retry read address 132. Since the transmission completion signal 118 is turned on at time 2602, the retry read buffer 131 invalidates the retry read address 132.
Next, the operation of the sending buffer 120 will be described with reference to FIG. FIG. 19 defines the operation of the transmission data line 119. The sending buffer 120 stores the data output to the memory read data 121 and outputs it from the sending data line 119. The sending buffer 120 stores the data of the memory read data 121 when the retry data valid signal 117 is turned on, and outputs it from the sending data line 119. The transmission buffer 120 disables the transmission data line 119 when the transmission completion signal 118 is turned ON.
In FIG. 19, 2700 and 2702 are transmission data, and 2703 is transmission data by retry read. In FIG. 19, since the transmission data 2700 is output to the memory read data 121, the transmission buffer 120 outputs the transmission data 2700 from the transmission data 119. Since the transmission completion signal 118 is turned ON at time 2701, the transmission buffer 120 invalidates the transmission data 119. Since the retry data valid signal 117 is turned ON at time 2705, the transmission buffer 120 changes the transmission data 2702 to the transmission data 119 and outputs the transmission data 2703. Since the transmission completion signal 118 is turned on at time 2704, the transmission buffer 120 invalidates the transmission data 119.
Next, in this preferred embodiment, the data sending operation when retry reading is not performed at the time of competition between reading and writing will be described with reference to FIG. The read request 600 is issued to the processor bus 113 at time 601 and the write request 602 is issued at time 603. The write request 602 has the same reference address as the read request 600. The coherent reports 108, 109, 110, and 111 for the read request 600 are completed at time 604. At time 603 when the write request 602 is issued, the coherent report has not been completed and the read request 600 has not been accepted, so the contention detection unit 128 turns the write priority signal 129 ON at time 605. Since the write priority signal 129 is ON, the memory control unit 133 accepts the write request 602 before the read request 600. Therefore, the data 600 read by the read request 600 becomes the data written by the write request 602. At time 608, since the data 607 is output from the transmission buffer 120 and the coherent completion signal 115 is also ON, the transmission control means 114 turns ON the transmission completion signal 118 at time 608, and the transmission control means 114 is at processor bus at time 609. Data 610 is sent to 113. Since the transmission completion signal 118 is ON, the conflict detection means 128 turns off the coherent completion signal 115. The send data 610 is the same as the data 606 and 607 and is data written by the write request 602. Thus, this embodiment guarantees cache and memory coherency.
Next, in this preferred embodiment, the data sending operation when retry reading is performed at the time of competition between read and write will be described with reference to FIG. The read request 700 is issued to the processor bus 113 at time 701 and the write request 702 is issued at time 703. The write request 702 has the same reference address as the read request 700. The coherent reports 108, 109, 110, and 111 for the read request 700 are completed at time 704. At time 703 when the write request 702 is issued, the coherent report has not been completed but acceptance of the read request has been completed. Therefore, the contention detection unit 128 turns on the write priority signal 129 at time 705, and at time 704. The transmission suppression signal 136 is turned ON. The transmission control unit 114 sets the retry read request signal 116 to ON because the coherent completion signal 115 and the transmission suppression signal 136 are ON at time 704 when the transmission data 706 is output from the transmission buffer 120. As a result, the memory control means 133 turns on the retry data valid signal 117 at time 708 and outputs data 707 by retry reading. Next, since the retry data valid signal 117 is ON, the transmission buffer 120 changes the output data from 706 to 707 at time 709, and the conflict detection means 128 turns the transmission inhibition signal 136 OFF. Since the transmission inhibition signal 136 is turned off, the transmission control unit 114 turns on the transmission completion signal 118 and transmits data 710 at time 711. The transmission data 710 is data written by the write request 702. Thus, this embodiment guarantees cache and memory coherency.
Next, another preferred embodiment of the present invention will be described. The read buffer 124 and the write buffer 122 are FIFOs, and each store a plurality of read requests and write requests. The conflict detection unit 128 detects a conflict between a plurality of read requests 126 stored in the read buffer and a write request issued to the processor bus 113 from the request status signal 127, and stores the conflict result. The conflict detection unit 128 outputs the stored result to the memory control unit 133 and the transmission control unit 114. The retry read buffer 131 is a FIFO, and stores a plurality of requests accepted by the memory control means 133 by the output of the read buffer 124. The sending buffer 120 is a FIFO buffer and stores a plurality of sending data 121.
The operation of the conflict detection means 128 will be described with reference to FIGS. 22, 23, and 24. FIG. FIG. 22 defines the operation of the coherent completion signal 115. The contention detection unit 128 monitors the coherent report for the read request issued to the processor bus 113, stores that all the reports are completed, and outputs it to the transmission control unit 114 by the coherent completion signal 115. When the transmission completion signal 118 indicating that the corresponding read request is processed by the transmission control unit 114 and transmitted to the processor bus 113 is turned ON, the storage of the coherent report completion of the corresponding read request is cleared, and the coherent completion signal Set 115 to OFF. Subsequently, the contention detection unit 128 outputs the coherent report status of the next read request to the coherent report completion signal 115.
In FIG. 22, 900, 901, 902, 903 are read requests, 904, 908, 912, 916 are coherent reports of the read request 900, 905, 909, 913, 917 are coherent reports of the read request 901, 906, 910, Reference numerals 914 and 918 are coherent reports for the read request 902, and reference numerals 907, 911, 915 and 919 are coherent reports for the read request 903.
In FIG. 22, since the coherent report of the read request 900 is completed when the coherent report 916 arrives, the contention detection unit 128 stores the completion of the coherent report of the read request 900 and outputs the coherent completion signal 115 at time 920. Turn it on. Since the coherent report of the read request 901 is completed when the coherent report 917 arrives, the conflict detection unit 128 stores the completion of the coherent report of the read request 901. Since the transmission completion signal 118 is turned on in response to the read request 900 at time 921, the conflict detection unit 128 turns off the coherent completion signal 115 in the next cycle. The contention detection unit 128 turns on the coherent completion signal 115 for the read request 901 at time 922 based on the coherent report completion information of the read request 901 already stored. Since the transmission completion signal 118 is turned ON in response to the read request 901 at time 922, the conflict detection means 128 turns off the coherent completion signal 115 in the next cycle. Since the coherent report of the read request 902 is completed when the coherent report 918 arrives, the conflict detection unit 128 stores the completion of the coherent report of the read request 902 and turns on the coherent completion signal 115 at time 924. Since the coherent report of the read request 903 is completed when the coherent report 919 arrives, the contention detection unit 128 stores the completion of the coherent report of the read request 903. Since the transmission completion signal 118 is turned on in response to the read request 902 at time 925, the conflict detection means 128 turns off the coherent completion signal 115 in the next cycle. The contention detection unit 128 turns on the coherent completion signal 115 for the read request 903 at time 926 based on the coherent report completion information of the read request 903 already stored. Since the transmission completion signal 118 is turned ON in response to the read request 903 at time 927, the conflict detection means 128 turns off the coherent completion signal 115 in the next cycle.
FIG. 23 defines the operation of the write priority signal 129. The conflict detection unit 128 monitors a write request issued to the processor bus 113 and detects a conflict for a read request that has already been issued and stored in the read buffer 124. The conflict detection unit 128 compares the reference address of the read request output to the read request address 126 with the reference address of the write request issued to the processor bus 113, and the reference address of the read request is the same as the reference address of the write request. If the coherent report for the read request is not completed, the write priority signal 129 is turned ON. The conflict detection means 128 stores the conflict information and the write request in association with each other. When the write request is accepted by the memory control unit 133 and the write approval signal 130 is turned on for the write request, the conflict detection unit 128 turns off the write priority signal 129 and conflicts with the stored write request. Clear information.
In FIG. 23, 928, 929, 930 and 931 are read requests, 932, 933, 934 and 935 are write requests, 936, 940, 944 and 948 are coherent reports of the read request 928, and 937, 941, 945 and 949 are The coherent report of the read request 929, 938, 942, 946, and 950 are the coherent reports of the read request 930, and 939, 943, 947, and 951 are the coherent reports of the read request 931. The write request 932 has the same reference address as the read request 928. The write request 933 and the write request 935 have the same reference address as the read request 930. The write request 934 has the same reference address as the read request 931.
In FIG. 23, the reference address of the write request 932 and the reference address of the read request 928 are the same, but since the issuance of the write request 932 is after the output of the last coherent report 944 of the read request 928, the conflict detection means 128 Does not operate the write priority signal 129. Since the issue of the write request 933 is before the completion of the coherent report of the read request 930, the conflict detection unit 128 stores the conflict information and turns on the write priority signal 129 at time 952. At time 952, the write approval signal 130 is turned ON for the write request 932, but since it is not for the write request 933, the conflict detection means 128 does not clear the conflict information of the write request 933, and the write priority signal Also, 129 is not turned off. Since the issuance of the write request 934 is before the completion of the coherent report of the read request 931, the conflict detection unit 128 stores the conflict information. Since the write approval signal 130 is turned ON for the write request 933 at time 953, the conflict detection unit 128 clears the conflict information of the write request 933 and turns the write priority signal 129 OFF. Since the contention means 128 stores contention information for the write request 934, the contention means 128 turns on the write priority signal 129 at time 954. Since the issue of the write request 935 is after the output of the last coherent report 950 of the read request 930, the conflict detection unit 128 does not store the conflict information. Since the write approval signal 130 is turned ON for the write request 934 at time 955, the conflict detection unit 128 clears the conflict information of the write request 934 and turns OFF the write priority signal 129. Since the write request 935 does not conflict with the read request, the conflict detection unit 128 turns the write priority signal 129 OFF after the next cycle of time 955.
FIG. 24 defines the operation of the transmission inhibition signal 136. The conflict detection unit 128 monitors a write request issued to the processor bus 113 and detects a conflict for a read request that has already been issued and stored in the read buffer 124. The conflict detection means 128 knows the acceptance status of the read request to the memory control means 133 from the request status signal 127. The conflict detection unit 128 compares the reference address of the read request output to the read request address 126 with the reference address of the write request issued to the processor bus 113, and the reference address of the read request is the same as the reference address of the write request. When the coherent report for the read request has not been completed and the acceptance of the read request to the memory control means 133 has been completed, information for sending out is transmitted in association with the read request. Store as control information. The contention detection unit 128 operates the transmission suppression signal 136 based on the transmission control information stored in association with the read request when the transmission by the read control is performed by the transmission control unit 114. The conflict detection unit 128 turns on the transmission suppression signal 136 when the transmission control information instructs to suppress transmission. In response to the read request, the transmission control unit 114 performs retry read, and the memory control unit 133 turns on the retry data valid signal 117, whereby the conflict detection unit 128 clears the conflict information stored in the read request. Then, the transmission inhibition signal 136 is turned off. When the transmission completion signal 118 is turned ON, the conflict detection unit 128 checks the transmission control information of the next read request and operates the transmission suppression signal 136.
In FIG. 24, 957, 958, 959, 960 are read requests, 961, 962, 963, 964 are write requests, 965, 969, 973, 977 are coherent reports of read requests 957, 966, 970, 974, 978 are Read request 958 coherent report, 967, 971, 975, 979 is read request 959 coherent report, 968, 972, 976, 980 is read request 960 coherent report, 986, 987, 988, 990, 991 is read request Accepted state. The write request 961 has the same reference address as the read request 957. The write request 962 and the write request 964 have the same reference address as the read request 959. The write request 963 has the same reference address as the read request 960. The request state 986 indicates a state in which only the entry storing the read request 957 in the read buffer 124 is valid and the entry is not yet accepted by the memory control unit 133. The request state 987 indicates a state in which the entry storing the read request 957 in the read buffer 124 and the entry storing the read request 958 are valid and these two entries are not yet accepted by the memory control unit 133. The request state 988 includes a state in which the entry storing the read request 958 and the entry storing the read request 959 in the read buffer 124 are valid, and these two entries are not yet received by the memory control unit 133. A state 957 is accepted by the memory control means 133. In the request state 989, the entry in which the read request 958 of the read buffer 124 is stored, the entry in which the read request 959 is stored, and the entry in which the read request 960 is stored are valid, and these three entries are still stored in the memory control unit 133. It shows a state where it is not accepted and a state where the read request 957 is accepted by the memory control means 133. The request state 990 includes a state where the entry storing the read request 959 of the read buffer 124 and the entry storing the read request 960 are valid, and these two entries are not yet accepted by the memory control unit 133, and the read request 957 and the read request 958 are shown in the state accepted by the memory control means 133. In the request state 991, the entry in the read buffer 124 in which the read request 960 is stored is valid and the entry is not yet accepted by the memory control means 133, and the read request 957, the read request 958, and the read request 959 are stored in the memory. The state accepted by the control means 133 is shown.
In FIG. 24, the reference address of the write request 961 and the reference address of the read request 957 are the same, and the read request 957 is already accepted by the memory control means 133, but the write request 961 is issued at the end of the read request 957. Since it is after the output of the coherent report 973, the conflict detection means 128 stores the transmission instruction as the transmission control information and turns off the transmission suppression signal 136. Since the issuance of the write request 962 is before the completion of the coherent report of the read request 959, and the read request 959 has already been received by the memory control unit 133, the contention detection unit 128 stores the transmission suppression as the transmission control information. Since the issuance of the write request 963 is before the completion of the coherent report of the read request 960 and the read request 960 has already been received by the memory control unit 133, the contention detection unit 128 stores the transmission suppression as the transmission control information. Since the transmission completion signal 118 is turned on in response to the read request 957 at time 994, the conflict detection unit 128 checks the transmission control information of the next read request 958. Since the transmission control information of the read request 958 is a transmission instruction, the conflict detection unit 128 keeps the transmission suppression signal 136 OFF. Since the transmission completion signal 118 is turned ON for the read request 958 at time 995, the conflict detection unit 128 checks the transmission control information of the next read request 959. Since the transmission control information of the read request 959 is transmission inhibition, the conflict detection unit 128 turns on the transmission inhibition signal 136 at time 992. Since the retry data valid signal 117 is turned on at time 996, the conflict detection unit 128 clears the conflict information of the read request 959 and turns off the transmission suppression signal 136. Since the transmission completion signal 118 is turned ON in response to the read request 959 at time 997, the conflict detection unit 128 checks the transmission control information of the next read request 960. Since the transmission control information of the read request 960 is transmission inhibition, the conflict detection unit 128 turns on the transmission inhibition signal 136 at time 993. Since the retry data valid signal 117 is turned on at time 998, the conflict detection unit 128 clears the conflict information of the read request 959 and turns off the transmission suppression signal 136.
Next, the operation of the read buffer 124 will be described with reference to FIG. FIG. 25 defines the operations of the read request signal 125 and the request status signal 127. The read buffer 124 stores a plurality of read requests output to the processor bus 113. The read buffer 124 outputs the stored read requests to the memory control unit 133 and the retry read buffer 131 using the read request signal 125 in the order in which the read requests are stored. The read buffer 124 notifies the contention detection unit 128 of the reception status of the stored read request to the memory control unit 133 by the request state signal 127. The read buffer 124 knows that the stored read request has been accepted by the memory control means 133 when the read approval signal 137 from the memory control means 133 is turned ON, and sends the read request signal 125 for one cycle. The read request stored next is invalidated and output to the read request signal 125.
In FIG. 25, 2800, 2801, 2802, 2803 are read requests, and 2804, 2805, 2806, 2807, 2808, 2809 are request states. The request state 2804 indicates a state in which only the entry storing the read request 2800 in the read buffer 124 is valid and the entry has not been accepted by the memory control unit 133 yet. The request state 2805 indicates a state where the entry storing the read request 2800 of the read buffer 124 and the entry storing the read request 2801 are valid and these two entries are not yet accepted by the memory control means 133. In the request state 2806, the entry storing the read request 2800 of the read buffer 124, the entry storing the read request 2801, and the entry storing the read request 2802 are valid, and these three entries are still in the memory control means 133. Indicates an unacceptable state. In the request state 2807, an entry in which the read request 2800 of the read buffer 124 is stored, an entry in which the read request 2801 is stored, an entry in which the read request 2802 is stored, and an entry in which the read request 2803 is stored are valid. One entry has not been accepted by the memory control means 133 yet. In the request state 2808, the entry storing the read request 2801 of the read buffer 124, the entry storing the read request 2802, and the entry storing the read request 2803 are valid, and these three entries are still in the memory control means 133. A state where it is not accepted and a state where the read request 2800 is accepted by the memory control means 133 are shown. The request state 2809 includes a state in which the entry storing the read request 2802 and the entry storing the read request 2803 of the read buffer 124 are valid, and these two entries are not yet accepted by the memory control unit 133. 2800 and a read request 2801 are received by the memory control means 133.
In FIG. 25, the read buffer 124 stores all read requests 2800, 2801, 2802, 2803. The read buffer 124 stores the read request 2800 and outputs the read request 2800 to the read request signal 125. Since the read approval signal 137 is turned ON at time 2813, the read buffer 124 invalidates the read request signal 125 in the next cycle and outputs the read request 2801 stored next to the read request 2800 to the read request signal 125. To do. Since the read approval signal 137 is turned ON at time 2814, the read buffer 124 invalidates the read request signal 125 in the next cycle and sets the read request 2802 stored next to the read request 2801 as the read request signal 125. Output.
Next, the operation of the write buffer 122 will be described with reference to FIG. FIG. 26 defines the operation of the write request signal 123. The write buffer 122 stores a plurality of write requests output to the processor bus 113. The write buffer 122 outputs the stored write request to the memory control means 133 using the write request signal 123. The write buffer 122 knows that the stored write request has been accepted by the memory control means 133 when the write approval signal 130 from the memory control means 133 is turned on, and the write request signal 123 is sent for one cycle. The invalidated write request is then output to the write request signal 123.
In FIG. 26, 2900, 2901, 2902 and 2903 are write requests. In FIG. 17, the write buffer 122 stores write requests 2900, 2901, 2902, 2903, and outputs a write request 2900 to the write request signal 123. Since the write approval signal 130 is turned ON at the time 2904, the write buffer 122 invalidates the write request signal 123 in the next cycle and outputs the write request 2901 stored next to the write request 2900 to the write request signal 123. To do. Since the write approval signal 130 is turned ON at time 2905, the write buffer 122 invalidates the write request signal 123 in the next cycle and outputs the write request 2902 stored next to the write request 2901 to the write request signal 123. To do.
Next, the operation of the retry read buffer 131 will be described with reference to FIG. FIG. 27 defines the operation of the retry read address line 132. The retry read buffer stores the read request signal 125 when the read approval signal 137 is turned on, and outputs it from the retry read address 132. The retry read buffer 131 invalidates the retry read address 132 for one cycle in response to the transmission completion signal 118 being turned ON, and then outputs the stored read request from the retry read address 132. In FIG. 27, 3000, 3001, and 3002 are read requests.
In FIG. 27, since the read approval signal 137 is turned on at time 3003, the retry read buffer 131 stores the read request 3000 and outputs the read request 3000 from the retry read address 132. Since the read approval signal 137 is turned on at time 3004, the retry read buffer 131 stores the read request 3001. Since the transmission completion signal 118 is turned ON at time 3006, the retry read buffer 131 outputs the read request 3001 after invalidating the retry read address 132 for the next one cycle. Since the read approval signal 137 is turned ON at time 3005, the retry read buffer 131 stores the read request 3002. Since the transmission completion signal 118 is turned ON at time 3007, the retry read buffer 131 invalidates the retry read address 132 for the next one cycle, and then outputs a read request 3002.
Next, the operation of the sending buffer 120 will be described with reference to FIG. FIG. 28 defines the operation of the transmission data line 119. The sending buffer 120 stores a plurality of data output to the memory read data 121 and outputs it from the sending data line 119. The sending buffer 120 stores the data of the memory read data 121 when the retry data valid signal 117 is turned on, and outputs it from the sending data line 119. When the transmission completion signal 118 is turned ON, the transmission buffer 120 invalidates the transmission data line 119 and outputs the data of the memory read data 121 stored next from the transmission data line 119.
In FIG. 28, 3100, 3101, 3102 and 3103 are transmission data, and 3104 is transmission data by retry read. In FIG. 28, since the transmission data 3100 is output to the memory read data 121, the transmission buffer 120 outputs the transmission data 3100 from the transmission data 119. Since the transmission completion signal 118 is turned on at time 3105, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and outputs the stored transmission data 3101 from the transmission data line 119. Since the retry data valid signal 117 is turned on at time 3108, the transmission buffer 120 changes the transmission data 3101 of the transmission data line 119 and outputs the transmission data 3104. Since the transmission completion signal 118 is turned on at time 3106, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and then outputs the stored transmission data 3102 from the transmission data line 119. Since the transmission completion signal 118 is turned on at time 3107, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and then outputs the stored transmission data 3103 from the transmission data line 119.
With reference to FIG. 29 and FIG. 30 illustrating the temporally continuous signal regarding the coherency between the memory and the cache when a plurality of read requests and one write request conflict in another preferred embodiment. . The signal is continuous between the right end of FIG. 29 and the left end of FIG. Read requests 1000, 1002, and 1003 are issued to the bus 113 continuously from time 1001. At time 1005, a write request 1004 is issued. The reference address of the write request 1004 conflicts with the reference addresses of the read requests 1000 and 1003. As a result of conflict detection, the write priority signal 129 is turned ON at time 1006, and the write request approval signal 130 is turned ON at time 1007, so that the write priority signal 129 is turned OFF at time 1008. Read data corresponding to the read requests 1000, 1002, and 1003 is output from the memory control unit 133 continuously from time 1010. Since the coherent completion signal 115 and the transmission suppression signal 136 are turned on at time 1009, the transmission control unit 114 turns on the retry read request signal 116 at time 1009. The retry read address 132 is the reference address 1013 of the read request 1000. Since the write priority signal 129 is ON at time 1009, the memory control unit 133 prioritizes writing of the write request 1004 over retry reading.
Since the write priority signal 129 is turned off at time 1008, the memory control unit 133 turns on the retry data valid signal 117 at time 1014 and outputs data 1015 by retry reading. The transmission buffer 120 replaces the transmission data from 1012 to the retry read data 1017. Since the retry data valid signal 117 is turned on, the conflict detection means 128 turns off the transmission suppression signal 136 at time 1016. Since the transmission suppression signal 136 is turned off, the transmission control unit 114 turns on the transmission completion signal 118 at time 1016 and transmits the transmission data 1017 to the bus 113 as data 1019 at time 1018. Upon receiving the transmission completion signal 118, the contention detection means 128 clears the coherent completion signal 115, and the retry read buffer 131 outputs the reference address of the read request 1002. Since the coherent completion signal 115 of the read request 1002 is ON and the transmission suppression signal 136 is OFF at time 1021, the transmission control unit 114 sets the transmission completion signal 118 to ON, and sends the transmission data 1020 to the bus 113 at time 1023. Send out as Since the transmission completion signal 118 is turned on, the conflict detection means 128 turns off the coherent completion signal 115 at time 1023. At time 1025, the coherent completion signal 115 and the transmission suppression signal 136 of the read request 1003 are output. In response to this, the transmission control means 114 turns the retry request signal 116 ON. The retry read buffer 131 outputs the reference address 1026 of the read request 1003 as the retry read address.
The memory control unit 133 executes retry reading with the reference address of the read request 1003 and outputs retry data 1032 at time 1027. Since the retry data valid signal 117 is ON, the transmission buffer 120 changes the output from the data 1024 to the data 1028, and the conflict detection means 128 turns the transmission suppression signal 136 OFF. Since the transmission suppression signal 136 is turned off at time 1029, the transmission control unit 114 turns on the transmission completion signal 118 and outputs the data 1028 to the bus 113 as data 1031 at time 1030. Since the data 1015 and 1032 read by the retry read are both data written by the write request 1004, the coherent memory and cache can be guaranteed.
With reference to FIG. 31 and FIG. 32, the temporally continuous signals will be described for memory and cache coherency when a plurality of read requests and a plurality of write requests compete in another preferred embodiment. . The signal is continuous between the right end of FIG. 31 and the left end of FIG. Read requests 1100, 1102, and 1103 are issued to the bus 113 continuously from time 1101. A write request 1108 is issued at time 1105 and a write request 1108 is issued at time 1107. The reference address of the write request 1104 conflicts with the read request 1103, and the reference address of the write request 1108 conflicts with the reference address of the read request 1100. As a result of the conflict detection, the write priority signal 129 is turned on at time 1106 and the write approval signal 130 is turned on at time 1109, so that the write priority signal 129 is turned off at time 1110. Read data 1113, 1114, and 1115 corresponding to the read requests 1100, 1102, and 1103 are output from the memory control unit 133 continuously from time 1112. Since the coherent completion signal 115 and the transmission suppression signal 136 are turned on at time 1111, the transmission control unit 114 turns on the retry read request signal 116 at time 1117. The retry read address 132 is the reference address 1118 of the read request 1100. Since the write priority signal 129 is ON at time 1117, the memory control unit 133 prioritizes writing of the write request 1104 over retry reading. Although the one-cycle write priority signal 129 is turned OFF at time 1110, the memory control means 133 does not accept the request in the next cycle in which the write is accepted, so the retry read request is waited and the write request 1108 is prioritized.
Since the write approval signal 130 is issued at time 1119 and the write priority signal 129 is turned off at time 1120, the memory control unit 133 accepts the retry read request, turns on the retry data valid signal 117 at time 1122, and performs the retry read. Data 1123 is output. The sending buffer 120 replaces the sending data with the retry read data 1127 from 1116. Since the retry data valid signal 117 is turned on, the contention detection unit 128 turns off the transmission suppression signal 136 at time 1124. Since the transmission suppression signal 136 is turned off, the transmission control unit 114 turns on the transmission completion signal 118 at time 1124 and transmits the transmission data 1127 to the bus 113 as data 1126 at time 1125. Upon receiving the transmission completion signal 118, the contention detection means 128 clears the coherent completion signal 115, and the retry read buffer 131 outputs the reference address 1130 of the read request 1102. At time 1129, since the coherent completion signal 115 of the read request 1102 is ON and the transmission suppression signal 136 is OFF, the transmission control unit 114 sets the transmission completion signal 118 ON, and the transmission data 1128 is set as data 1132 on the bus at time 1131. Send it out. Since the transmission completion signal 118 is turned on, the conflict detection means 128 turns off the coherent completion signal 115 at time 1131. At time 1134, the coherent completion signal 115 and the transmission suppression signal 136 of the read request 1103 are output. In response to this, the transmission control means 114 turns the retry read request signal 116 ON. The retry read buffer 131 outputs the reference address 1133 of the read request 1103 as the retry read address.
The memory control unit 133 executes retry reading with the reference address of the read request 1103, and outputs retry data 1137 at time 1135. Since the retry data valid signal 117 is ON, the output buffer 120 changes the output from the data 1136 to the data 1139, and the conflict detection means 128 turns the transmission suppression signal 136 OFF. Since the transmission suppression signal 136 is turned off at time 1138, the transmission control unit 114 turns on the transmission completion signal 118 and outputs data 1139 as data 1141 to the bus 113 at time 1140. Since the data 1123 and 1137 read by the retry read are data written by the write request 1108 and the write request 1104, respectively, the coherency of the memory and the cache can be guaranteed.
FIG. 33 shows another preferred embodiment of the present invention. This embodiment corresponds to bringing data from the write buffer 122 when retry read is necessary due to competition between the read request and the write request. In addition to the function of storing a plurality of write requests issued to the bus 113, the write buffer 122 has a write request having a reference address that matches the address 132 output from the retry read buffer 131 by the retry read request 116. Are output to the transmission buffer 120. The transmission buffer 120 has a function of outputting the output 123 of the write buffer to the transmission data 119 when the retry data valid signal 117 is turned on, in addition to the function of storing the transmission data output from the memory control unit 133. Have. When the retry read request signal 116 is ON, the memory control unit 133 does not accept other than a write request whose write priority signal 129 is ON.
Next, the operation of the write buffer 122 will be described with reference to FIG. 34, FIG. 35, and FIG. FIG. 34 defines the operation of the write request signal 123. 35 and 36 define the operations of the write request signal 123 and the retry data valid signal 117. The write buffer 122 stores a plurality of write requests output to the processor bus 113. When the retry read request signal 116 is OFF or the write priority signal 129 is ON, the write buffer 122 outputs the stored write request to the memory control means 133 using the write request signal 123. The write buffer 122 knows that the stored write request has been accepted by the memory control means 133 when the write approval signal 130 from the memory control means 133 is turned on, and the write request signal 123 is sent for one cycle. The invalidated write request is then output to the write request signal 123. When the retry read request signal 116 is ON and the write priority signal 129 is OFF, the write buffer 122 turns the retry data valid signal 117 ON to match the retry read address 132 from all stored write requests. Write data of a write request having a reference address to be output to the write request line 123. In FIG. 34, when the retry read request signal 116 is OFF or the write priority signal 129 is ON, 1300, 1301, 1302, and 1303 are write requests.
In FIG. 34, the write buffer 122 stores the write request 1300 and outputs it to the write request signal 123. At time 1304, since the write approval signal 130 is turned ON, the write buffer 122 invalidates the write request signal 123 in the next cycle, and the write request 1301 stored next to the write request 1300 is used as the write request signal 123. Output. At time 1305, since the write approval signal 130 is turned ON, the write buffer 122 invalidates the write request signal 123 in the next cycle, and the write request 1302 stored next to the write request 1301 is used as the write request signal 123. Output. At time 1306, since the write approval signal 130 is turned ON, the write buffer 122 invalidates the write request signal 123 in the next cycle, and the write request 1303 stored next to the write request 1302 is used as the write request signal 123. Output. Since the write approval signal 130 is turned on at time 1307, the write buffer 122 invalidates the write request signal 123 in the next cycle.
In FIG. 35, 1308, 1309, 1310, and 1311 are write requests, and 1316 is a retry read reference address. The reference address of the write request 1308 is the same as the reference address 1316 of the retry read. In FIG. 35, the write buffer 122 stores the write request 1308, outputs the write request 1308 to the write request signal 123 according to the rules of FIG. 34, and receives the write request signal 130 ON at time 1312 in response to the write request. A write request 1309 is output to the signal 123. Since the retry read request signal 116 is turned ON at time 1314, the write buffer 122 outputs a write request 1308 with a reference address that matches the reference address 1316 output to the retry read address 132 to the write request signal 123. The write buffer 122 turns on the retry data valid signal 117 at time 1315, invalidates the write request signal 123 for one cycle, and outputs the write request 1309 again. Thereafter, the write buffer 122 outputs a write request 1310 to the write request signal 123 in response to the write approval signal 130 at time 1313 being turned on in accordance with the rules of FIG.
In FIG. 36, 1317, 1318, 1319 and 1320 are write requests, and 1326 is a retry read reference address. The reference address of the write request 1317 is the same as the reference address 1326 of the retry read. In FIG. 36, the write buffer 122 processes the write request 1317 in accordance with the rules of FIG. 34 and outputs a write request 1318 to the write request signal 123. Since the write priority signal 129 is ON at time 1324, the write buffer 122 processes the write request 1318 in accordance with the rules of FIG. When the write approval signal 130 at time 1322 is turned ON, the write priority signal 129 is turned OFF. Since the write priority signal 129 is OFF and the retry read request signal 116 is ON, the write buffer 122 has the same reference address as the reference address 1326 output to the retry read address 132 in accordance with the rules of FIG. A write request 1317 is output to the write request signal 123. The write buffer 122 turns on the retry data valid signal 117 at time 1325 and outputs a write request 1319 to the write request signal 123 in accordance with the rules of FIG. The write buffer 122 processes the write requests 1319 and 1320 in accordance with the rules of FIG.
Next, the operation of the sending buffer 120 will be described with reference to FIG. FIG. 37 defines the operation of the transmission data line 119. The sending buffer 120 stores a plurality of data output to the memory read data 121 and outputs it from the sending data line 119. The sending buffer 120 stores the data of the write request signal line 123 when the retry data valid signal 117 is turned ON, and outputs it from the sending data line 119. When the transmission completion signal 118 is turned ON, the transmission buffer 120 invalidates the transmission data line 119 and outputs the next stored data from the transmission data line 119. In FIG. 37, 1400, 1401, 1402, and 1403 are send data, and 1409 is write data for a write request stored in the write buffer 122. In FIG. 37, since the transmission data 1400 is output to the memory read data 121, the transmission buffer 120 outputs the transmission data 1400 from the transmission data 119. Since the transmission completion signal 118 is turned ON at time 1404, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and outputs the stored transmission data 1401 from the transmission data line 119. Since the retry data valid signal 117 is turned on at time 1408, the transmission buffer 120 changes the transmission data 1401 of the transmission data line 119 and outputs the transmission data 1409. Since the transmission completion signal 118 is turned on at time 1405, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and then outputs the stored transmission data 1402 from the transmission data line 119. Since the transmission completion signal 118 is turned on at time 1406, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and then outputs the stored transmission data 1403 from the transmission data line 119. Since the transmission completion signal 118 is turned on at time 1407, the transmission buffer 120 invalidates the transmission data 119 for one cycle.
Next, the operation of the memory control means 133 will be described with reference to FIG. The read request processing operation, the write request processing operation, and the read request and write request contention processing operation are the same as those of the memory control means 133, and are shown in FIG. 6, FIG. 7, and FIG. When the write priority signal 129 is OFF and the retry read request signal 116 is ON, the memory control unit 133 accepts neither a read request nor a write request. 38, 3200 is a read request, 3202 is a write request, 3203 is write data for retry read, 3208 is write control data, 3209 is read control data, 3210 is write address, 3211 is write data, and 3212 is read address. , 3213 are read data for reading. In FIG. 38, the retry read request signal 116 is ON at time 3205, but since the write priority signal 129 is ON, the memory control means 133 accepts the write request 3202. The acceptance of the write request conforms to the rules of FIG. Since the write priority signal 129 is OFF and the retry read valid signal 116 is ON after the write request is received, the memory control unit 133 receives neither the content of the write request signal line 123 nor the read request signal line 125. Since the retry read request signal 116 is turned OFF at time 3207, the memory control means 133 accepts the read request 3200 in accordance with the rules of FIG.
See FIG. 39 and FIG. 40, which illustrate temporally continuous signals for memory and cache coherency when a plurality of read requests and a plurality of write requests compete in another preferred embodiment of the present invention. To explain. The signal is continuous between the right end of FIG. 39 and the left end of FIG. Read requests 1500, 1502, and 1503 are issued to the bus 113 continuously from time 1501. A write request 1504 is issued at time 1505 and a write request 1508 is issued at time 1507. The reference address of the write request 1504 conflicts with the read request 1503, and the reference address of the write request 1508 conflicts with the reference address of the read request 1500. As a result of the conflict detection, the write priority signal 129 is turned ON at time 1506, and the write approval signal 130 is turned ON at time 1509, so that the write priority signal 129 is turned OFF at time 1510. Read data 1513, 1514, 1515 corresponding to the read requests 1500, 1502, 1503 are continuously output from the memory control means 133 from time 1512. Since the coherent completion signal 115 and the transmission suppression signal 136 are turned on at time 1511, the transmission control unit 114 turns on the retry read request signal 116 at time 1517. The retry read address 132 is the reference address 1518 of the read request 1500. Since the write priority signal 129 is ON at time 1517, the memory control unit 133 prioritizes writing of the write request 1504 over retry read, and the write buffer 122 uses the stored information 1542 of the write request 1504. Output. At time 1510, the write priority signal 129 is turned OFF for one cycle, but the memory control means 133 does not accept the request in the next cycle after accepting the request, so the retry read request is awaited, and writing of the write request 1508 is prioritized. The In the next cycle when the write buffer 122 also receives the approval signal, the output 132 is not validated, so a retry read request is awaited and the stored information 1543 of the write request 1508 is output. Since the write approval signal 130 is issued at time 1519 and the write priority signal 129 is turned off at time 1520, the memory control means 133 receives a retry read request and does not accept a normal read request or write request. The write buffer 122 performs a retry read operation because the write priority signal 129 is OFF and the retry read request signal 116 is ON at time 1521, and data of the write request 1508 that sets the retry read address 1518 as a reference address at time 1521. 1544 is output to the output 123. The transmission buffer 120 replaces the transmission data with the retry read data 1527 from 1518. Since the retry data valid signal 116 is turned on, the conflict detection means 128 turns off the transmission suppression signal 136 at time 1524. Since the transmission suppression signal 136 is turned off, the transmission control unit 114 turns on the transmission completion signal 118 at time 1524 and transmits the transmission data 1527 as data 1526 to the bus 113 at time 1525. Upon receiving the transmission completion signal 118, the contention detection means 128 clears the coherent completion signal 115, and the retry read buffer 131 outputs the reference address 1530 of the read request 1502. At time 1529, since the coherent completion signal 115 of the read request 1502 is ON and the transmission suppression signal 136 is OFF, the transmission control unit 114 sets the transmission completion signal 118 ON, and sends the transmission data 1528 to the bus 113 at time 1531. Send out as Since the transmission completion signal 118 is turned on, the conflict detection means 128 turns off the coherent completion signal 115 at time 1531. At time 1534, the coherent completion signal 115 of the read request 1503 and the transmission suppression signal 136 are output. In response to this, the transmission control means 114 turns the retry read request signal 116 ON. The retry read buffer 131 outputs the reference address 1533 of the read request 1503 as the retry read address. The memory control means 133 receives a retry read request and does not accept a normal read request or write request. The write buffer 122 performs a retry read operation because the write priority signal 129 is OFF and the retry read request signal 116 is ON at time 1534, and the data of the write request 1504 using the retry read address 1533 as a reference address at time 1534. 1545 is output to the output 123. Since the retry data valid signal 117 is ON, the transmission buffer 120 changes the output from the data 1536 to the data 1539, and the conflict detection means 128 turns the transmission suppression signal 136 OFF. Since the transmission suppression signal 136 is turned off at time 1538, the transmission control unit 114 turns on the transmission completion signal 118 and outputs data 1539 as data 1541 to the bus 113 at time 1540. Since the data 1523 and 1537 read by retry read are data written by the write request 1508 and the write request 1504, respectively, the coherency of the memory and the cache can be guaranteed.
FIG. 41 shows still another preferred embodiment of the present invention. This embodiment corresponds to the case where the retry read address is brought from the read buffer 124 when the retry read is necessary due to the conflict between the read request and the write request. The read buffer 124 has a function of outputting a retry read address to the output 132 in addition to a function of storing a plurality of read requests issued to the bus 113.
The operation of the read buffer 124 will be described with reference to FIG. FIG. 42 defines the operation of the retry read address 132. The read request signal 125, the read address 126, and the request status signal 127 operate according to the rules of FIG. The read buffer 124 stores a plurality of read requests output to the processor bus 113. The read buffer 124 outputs the stored read requests to the memory control unit 133 using the read request signal 125 and the retry read address line 132 in the order in which they are stored. The read buffer 124 notifies the contention detection unit 128 of the reception status of the stored read request to the memory control unit 133 by the request state signal 127. The read buffer 124 knows that the stored read request has been accepted by the memory control means 133 when the read approval signal 137 from the memory control means 133 is turned ON, and sends the read request signal 125 for one cycle. The read request stored next is invalidated and output to the read request signal 125. The read buffer 124 knows that the transmission for the stored read request is completed when the transmission completion signal 118 from the transmission control means 114 is turned ON, invalidates the retry read address 132 for one cycle, Is output to the retry read address 132.
In FIG. 42, 1700, 1701, 1702, and 1703 are read requests. In FIG. 42, since the read approval signal 137 is turned ON at time 1704, the read buffer 124 outputs a read request 1701 to the read request signal 125 instead of the read request 1700. Since the read approval signal 137 is turned on at time 1705, the read buffer 124 outputs a read request 1702 to the read request signal 125 instead of the read request 1701. Since the transmission completion signal 118 is turned on at time 1706, the read buffer 124 invalidates the retry read address signal 132 for one cycle, and outputs a read request 1701 to the retry read address signal 132 instead of the read request 1700.
FIG. 43 and FIG. 44 illustrate temporally continuous signals regarding memory and cache coherency when a plurality of read requests and a plurality of write requests conflict in another preferred embodiment of the present invention. The description will be given with reference. The signal is continuous between the right end of FIG. 43 and the left end of FIG. Read requests 1800, 1802, and 1803 are issued to the bus 113 continuously from time 1801. At time 1842, a read request 1843 is issued. A write request 1808 is issued at time 1805 and a write request 1808 is issued at time 1807. The reference address of the write request 1804 conflicts with the read request 1803, and the reference address of the write request 1808 conflicts with the reference address of the read request 1800. As a result of the conflict detection, the write priority signal 129 is turned on at time 1806, and the write approval signal 130 is turned on at time 1809, so that the write priority signal 129 is turned off at time 1810. Read data 1813, 1814, and 1818 corresponding to the read requests 1800, 1802, and 1803 are continuously output from the memory control unit 133 from time 1812. Since the coherent completion signal 115 and the transmission suppression signal 136 are turned on at time 1811, the transmission control unit 114 turns on the retry read request signal 116 at time 1817. The read buffer 124 outputs the reference address 1848 of the read request 1800 to the retry read address 132. Since the write priority signal 129 is ON at time 1817, the memory control unit 133 prioritizes writing of the write request 1804 over retry reading. Although the one-cycle write priority signal 129 is turned OFF at time 1810, the memory control means 133 does not accept the request in the next cycle in which the request is received, so the retry read request is waited for, and writing of the write request 1808 is prioritized. Since the write approval signal 130 is issued at time 1819 and the write priority signal 129 is turned off at time 1820, the memory control unit 133 accepts the retry read request at the reference address 1848 of the read request 1800, and at time 1821 the retry data valid signal. 117 is turned ON and retry data 1823 is output. The transmission buffer 120 replaces the transmission data from the data 1818 to the retry read data 1827. Since the retry data valid signal 117 is turned on, the conflict detection means 128 turns off the transmission suppression signal 136 at time 1824. Since the transmission suppression signal 136 is turned OFF, the transmission control unit 114 turns the transmission completion signal 118 ON at time 1824 and transmits transmission data 1827 to the bus 113 as data 1826 at time 1825. Upon receiving the transmission completion signal 118, the conflict detection means 128 clears the coherent completion signal 115, and the read buffer 124 outputs the reference address 1830 of the read request 1802 to the retry read address 132. At time 1829, since the coherent completion signal 115 of the read request 1802 is ON and the transmission suppression signal 136 is OFF, the transmission control unit 114 sets the transmission completion signal 118 ON, and sends the transmission data 1828 to the bus 113 at time 1831. Send out as Since the transmission completion signal 118 is turned on, the conflict detection means 128 turns off the coherent completion signal 115 at time 1831. Since the transmission completion signal 118 is turned ON at time 1824, the read buffer 124 outputs the reference address 1833 of the read request 1803 to the retry read address 132. The memory control means 133 outputs the read data 1850 of the read request 1843 at time 1849. At time 1834, the coherent completion signal 115 of the read request 1803 and the transmission suppression signal 136 are output. In response to this, the transmission control means 114 turns the retry read request signal 116 ON. The memory control unit 133 receives a retry read request at the reference address 1833 of the read request 1803, turns on the retry data valid signal 117 at time 1835, and outputs the retry data 1837. The transmission buffer 120 changes the output from the data 1836 to the data 1839, and the conflict detection means 128 turns off the transmission suppression signal 136. Since the transmission inhibition signal 136 is turned off at time 1838, the transmission control unit 114 turns on the transmission completion signal 118 and outputs data 1839 as data 1841 to the bus 113 at time 1840. At time 1840, the transmission buffer 120 outputs read data 1851 of the read request 1843. Since the data 1823 and 1837 read by retry read are data written by the write request 1808 and the write request 1804, respectively, the coherency of the memory and the cache can be guaranteed.
FIG. 45 shows still another preferred embodiment of the present invention. This embodiment corresponds to a case in which a read request is output to the memory control means 133 after the completion of the cache report. In addition to the function of storing a plurality of read requests issued to the bus 113, the read buffer 124 receives a coherent completion signal 115 and outputs a read request to the output 125. When the memory control unit 133 accepts the read request, the memory control unit 133 outputs a read approval signal 137 to the conflict detection unit 128. Upon receiving the read approval signal 137, the conflict detection means 128 clears the coherent completion signal 115. The sending control unit 114 sends the output of the sending buffer 120 to the bus 113.
Next, the operation of the read buffer 124 will be described with reference to FIG. FIG. 46 defines the operation of the read request signal 125. The operation of the read address 126 follows the definition of FIG. The read buffer 124 stores a plurality of read requests output to the processor bus 113. When the coherent completion signal 115 is turned ON, the read buffer 124 uses the read request signal 125 in the order in which the stored read requests are stored, and outputs them to the memory control means 133. The read buffer 124 knows that the stored read request has been accepted by the memory control means 133 when the read approval signal 137 from the memory control means 133 is turned ON, and sends the read request signal 125 for one cycle. The read request stored next is invalidated and output to the read request signal 125. In FIG. 46, 2000, 2001, 2002 and 2003 are read requests. In FIG. 46, since the coherent completion signal 115 is turned ON at time 2007, the read buffer 124 outputs the read request 2000 stored first in the read request signal 125 in the next cycle. Since the read approval signal 137 is turned on at time 2106, the read buffer 124 invalidates the read request signal 125. Since the coherent completion signal 115 is turned on at time 2008, the read buffer 124 outputs the read request 2001 stored after the read request 2000 to the read request signal 125.
The operation of the conflict detection means 128 will be described with reference to FIG. FIG. 47 defines the operation of the coherent completion signal 115. The operation of the write priority signal 129 follows the definition of FIG. The contention detection means 128 monitors the coherent report for the read request issued to the processor bus 113, stores that all the reports are completed, and outputs it to the read buffer 124 by the coherent completion signal 115. When the read approval signal 137 indicating that the corresponding read request is accepted by the memory control unit 133 is turned ON, the storage of the coherent report completion of the corresponding read request is cleared, and the coherent completion signal 115 is turned OFF. Subsequently, the contention detection unit 128 outputs a coherent report state of the next read request to the coherent completion signal 115. 47, 3300, 3301, 3302, and 3303 are read requests, 3304, 3308, 3312, and 3316 are coherent reports of the read request 3300, 3305, 3309, 3313, and 3317 are coherent reports of the read request 3301, 3306, 3310, 3314 and 3318 are coherent reports of the read request 3302, and 3307, 3311, 3315 and 3319 are coherent reports of the read request 3303. In FIG. 47, since the coherent report of the read request 3300 is completed when the coherent report 3316 arrives, the contention detection unit 128 stores the completion of the coherent report of the read request 3300 and outputs the coherent completion signal 115 at time 3320. Turn it on. Since the coherent report of the read request 3301 is completed when the coherent report 3317 arrives, the conflict detection unit 128 stores the completion of the coherent report of the read request 3301. Since the read approval signal 137 is turned ON for the read request 900 at time 3324, the conflict detection unit 128 turns OFF the coherent completion signal 115 in the next cycle. The contention detection unit 128 turns on the coherent completion signal 115 for the read request 3301 at time 3321 based on the coherent report completion information of the read request 3301 already stored. Since the read approval signal 137 is turned on in response to the read request 3301 at time 3321, the conflict detection unit 128 turns off the coherent completion signal 115 in the next cycle. Since the coherent report of the read request 3302 is completed when the coherent report 3318 arrives, the conflict detection unit 128 stores the completion of the coherent report of the read request 3302 and turns on the coherent completion signal 115 at time 3322. Since the coherent report of the read request 3303 is completed when the coherent report 3319 arrives, the conflict detection unit 128 stores the completion of the coherent report of the read request 3303. Since the read approval signal 137 is turned on in response to the read request 3302 at time 3326, the conflict detection unit 128 turns off the coherent completion signal 115 in the next cycle. The contention detection unit 128 turns on the coherent completion signal 115 for the read request 3303 at time 3323 based on the coherent report completion information of the read request 3303 already stored. Since the read approval signal 137 is turned on in response to the read request 3303 at time 3327, the conflict detection unit 128 turns off the coherent completion signal 115 in the next cycle.
Next, the memory control means 133 will be described. The memory control unit 133 processes a read request or a write request output from the read buffer 124 and the write buffer 122, and outputs a transmission data to the memory read data line 121 in the case of a read request. When the write priority signal 129 is ON, the memory control unit 133 receives the write request with priority. The operations of the read approval signal 137, the memory control signal 134, the memory address / data 135, and the memory read data 121 during the read request processing are in accordance with the rules of FIG. The operations of the write approval signal 130, the memory control signal 134, and the memory address / data 135 during the write request processing are in accordance with the rules of FIG. The operations of the read approval signal 137, the write approval signal 130, the memory control signal 134, the memory address / data 135, and the memory read data 121 during the read request / write request conflict processing operation are in accordance with the rules of FIG.
Next, the operation of the sending buffer 120 will be described with reference to FIG. FIG. 48 defines the operation of the transmission data line 119. The sending buffer 120 stores a plurality of data output to the memory read data 121 and outputs it from the sending data line 119. When the transmission completion signal 118 is turned ON, the transmission buffer 120 invalidates the transmission data line 119 and outputs the data of the memory read data 121 stored next from the transmission data line 119. In FIG. 48, 3400, 3401, 3402 and 3403 are transmission data. In FIG. 48, since the transmission data 3100 is output to the memory read data 121, the transmission buffer 120 outputs the transmission data 3100 from the transmission data 119. Since the transmission completion signal 118 is turned ON at time 3404, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and outputs the transmission data 3401 stored next to the transmission data 3400 from the transmission data line 119. Since the transmission completion signal 118 is turned ON at time 3405, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and outputs the transmission data 3402 stored next to the transmission data 3401 from the transmission data line 119. Since the transmission completion signal 118 is turned ON at time 3406, the transmission buffer 120 invalidates the transmission data 119 for one cycle, and outputs the transmission data 3403 stored next to the transmission data 3402 from the transmission data line 119.
Next, the operation of the sending control means 114 will be described with reference to FIG. FIG. 49 defines the operations of the output 113 to the processor bus, the bus arbiter 112, and the transmission completion signal 118. In FIG. 49, reference numerals 3500 and 3501 denote transmission data. When the sending data 119 is not valid, the sending control means waits until the sending data 119 becomes valid. If the transmission data 119 is valid, the transmission control unit 114 turns on the bus arbiter signal 112 and the transmission completion signal 118 and outputs the transmission data to the processor bus 113 in the next cycle. In FIG. 49, since the transmission data 119 is valid at time 3502, the transmission control means 114 turns on the bus arbiter 112 and the transmission completion signal 118, and transmits the transmission data 3500 to the processor bus 113 in the next cycle. Since the transmission data 119 is valid at time 3503, the transmission control unit 128 turns on the bus arbiter 112 and the transmission completion signal 118, and transmits the transmission data 3501 to the processor bus 113 in the next cycle.
With reference to FIG. 50 and FIG. 51, the temporally continuous signals for the coherency of the memory and the cache when a plurality of read requests and a plurality of write requests compete in this further preferred embodiment will be described. To do. The signal is continuous between the right end of FIG. 50 and the left end of FIG. Read requests 2100, 2102, and 2103 are issued to the bus 113 continuously from time 2101. A write request 2104 is issued at time 2105 and a write request 2108 is issued at time 2107. The reference address of the write request 2104 conflicts with the read request 2103, and the reference address of the write request 2108 conflicts with the reference address of the read request 2100. As a result of conflict detection, the write priority signal 129 is turned ON at time 2106, and the write approval signal 130 is turned ON at time 2109, so that the write priority signal 129 is turned OFF at time 2110. Since the coherent completion signal 115 is turned on at time 2111, the read buffer 124 outputs the address 2118 of the read request 2100. Since the memory control means 133 does not accept the request in the next cycle after accepting the request, the write priority is given from the time 2106 to the time 2120, the write requests 2104 and 2108 are accepted, and the read request 2100 is at the time 2122 after the time 2120. Accept. The conflict detection unit 128 receives the read approval signal 137 and clears the coherent completion signal 115 at time 2121. As a result, the read request address becomes invalid. Since the coherent completion signal 115 is turned ON at time 2123, the read buffer 124 outputs the address 2124 of the read request 2102. In response to the read approval signal 137 being turned ON at time 2125, the conflict detection unit 128 clears the coherent completion signal 115 in the next cycle. As a result, the read request address becomes invalid. Since the coherent completion signal 115 is turned ON at time 2127, the read buffer 124 outputs the address 2126 of the read request 2103. In response to the read approval signal 137 being turned ON at time 2128, the conflict detection unit 128 clears the coherent completion signal in the next cycle. The read data of the read requests 2100, 2102, and 2103 are output to the read data 121 continuously from the time 2112, and the read data of the read request 2100 output to the send data 119 at the time 2129 are output to the bus 113 at the time 2136. The Similarly, read data 2114, 2115, and send data 2231, 2132 of the read requests 2102 and 2103 are continuously output to the read data 121 and the send data 119, and are output to the bus 113 as 2134 and 2135, respectively. Since the data 2133 and 2135 read by the read requests 2100 and 2103 are data written by the write request 2108 and the write request 2104, respectively, the coherency between the memory and the cache can be guaranteed.
Next, a preferred embodiment of a multiprocessor system constituted by a memory control chip using the present invention will be described with reference to FIG. The processor 2200 has a cache 2211, and a plurality of the processors 2200 are connected by a memory control chip 2203 through a processor bus 2201, a control line 2202, and a coherent report signal line 2204. The memory control chip 2203 detects a conflict between a read request and a write request issued by the processor, and uses the internal buffer of the memory control chip or the memory 2205 as a buffer to guarantee memory and cache coherency. The memory control chip is connected by a memory 2205, a memory bus 2206, and a control line 2207, and controls reading and writing of the memory. The memory control chip is connected to each I / O 2210, the system bus 2208, and a control line 2209 to read and write requests for I / O from the processor, and DMA read and write requests to the memory from the I / O. To control.
Industrial applicability
As described above, according to the multiprocessor system of the present invention, the memory control chip detects a read request and a write request from the processor to the memory, and guarantees the coherency of the memory and the cache. The processor can issue other requests without being bound by issued requests, and is suitable for use in a system that requires high performance.

Claims (2)

複数のプロセッサと主記憶がメモリ制御チップを介して接続されているマルチプロセッサシステムにおいて、
前記プロセッサはキャッシュメモリと、別の前記プロセッサが出力したリード要求のアドレスの最新データが前記キャッシュメモリに存在するかどうかの確認、及び存在した場合の当該データの主記憶への書き込み要求出力が終了したかことを示すコヒーレント報告を出力する手段を有し、
前記メモリ制御チップは、前記プロセッサから発行されたリード要求の参照アドレスと前記リード要求より遅れて別の前記プロセッサから発行されたライト要求の参照アドレスとの一致を検出する検出手段と、
前記リード要求に対して前記プロセッサが出力するコヒーレント報告を監視し、前記プロセッサの全てがコヒーレント報告を出力した時に当該リード要求に関するコヒーレントが完了したと判断する監視手段と、
前記検出手段がアドレスの一致を検出し、かつ前記監視手段が前記検出手段がアドレスの一致を検出したリード要求に対するコヒーレントの完了を検出していない場合に、前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定する判定手段と、
前記主記憶を起動したリード要求のアドレスを記憶する記憶手段と、
前記記憶手段に記憶したリード要求のアドレスで前記主記憶を再起動する再起動手段と、
前記主記憶の再起動で得られたデータと通常起動で得られたデータを入れ替える入れ替え手段とを有し、
前記判定手段で前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定した場合に、前記入れ替え手段で再起動で得られたデータと通常起動で得られたデータを入れ替えることを特徴とするマルチプロセッサシステム。
In a multiprocessor system in which a plurality of processors and a main memory are connected via a memory control chip,
The processor confirms whether or not the cache memory and the latest data at the address of the read request output from another processor exist in the cache memory, and when there is, the write request output to the main memory of the data ends. Means for outputting a coherent report indicating whether or not
The memory control chip detects a match between a reference address of a read request issued from the processor and a reference address of a write request issued from another processor later than the read request;
Monitoring means for monitoring a coherent report output by the processor in response to the read request, and determining that coherent for the read request has been completed when all of the processors output a coherent report;
If the detection means detects an address match, and the monitoring means does not detect coherent completion for the read request for which the detection means detects an address match, the address match is used as read data for the read request. Determination means for determining that the write data of the requested write should be used;
Storage means for storing the address of the read request that activated the main memory;
Restart means for restarting the main memory at the address of the read request stored in the storage means;
An exchange means for exchanging data obtained by restarting the main memory and data obtained by normal activation;
When it is determined by the determination means that the write data of the write request with the matching address should be used as the read data of the read request, the data obtained by the restart by the replacement means and the data obtained by the normal activation A multiprocessor system characterized by exchanging data.
請求項1記載のマルチプロセッサシステムにおいて、
前記判定手段で前記リード要求のリードデータとしてアドレスの一致したライト要求のライトデータを使用すべきであると判定した場合に、前記ライト要求の主記憶への書き込みを他のリード要求に優先して実行し、その後に前記再起動手段からの主記憶の起動を他のリード要求に優先して実行することを特徴とするマルチプロセッサシステム。
The multiprocessor system of claim 1, wherein
If the determination means determines that the write data of the write request with the matching address should be used as the read data of the read request, the write request to the main memory is given priority over other read requests. The multiprocessor system is characterized in that execution of the main memory from the restarting means is performed prior to other read requests.
JP51489697A 1995-10-13 1995-10-13 Multiprocessor system Expired - Fee Related JP3735375B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1995/002105 WO1997014103A1 (en) 1995-10-13 1995-10-13 Multiprocessor system

Publications (1)

Publication Number Publication Date
JP3735375B2 true JP3735375B2 (en) 2006-01-18

Family

ID=14126383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51489697A Expired - Fee Related JP3735375B2 (en) 1995-10-13 1995-10-13 Multiprocessor system

Country Status (2)

Country Link
JP (1) JP3735375B2 (en)
WO (1) WO1997014103A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704822B1 (en) * 1999-10-01 2004-03-09 Sun Microsystems, Inc. Arbitration protocol for a shared data cache
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3187446B2 (en) * 1991-04-02 2001-07-11 沖電気工業株式会社 Cache memory controller
JP3335726B2 (en) * 1993-09-24 2002-10-21 株式会社エフ・エフ・シー Data protection device in multiprocessor system

Also Published As

Publication number Publication date
WO1997014103A1 (en) 1997-04-17

Similar Documents

Publication Publication Date Title
US6122712A (en) Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
JP2916420B2 (en) Checkpoint processing acceleration device and data processing method
US5598550A (en) Cache controller for processing simultaneous cache accesses
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JPH08249231A (en) System and method for processing of old data in multiprocessor system
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
JPH06309230A (en) Bus snooping method
JP3735375B2 (en) Multiprocessor system
US20060236040A1 (en) Multiprocessor system for preventing starvation in case of occurring address competition and method thereof
JP2000132531A (en) Multiprocessor
US6516343B1 (en) Computer system and method for enhancing memory-to-memory copy transactions by utilizing multiple system control units
US8051251B2 (en) Method and apparatus for setting status of cache memory
US5699553A (en) Memory accessing device for a pipeline information processing system
JPH06309231A (en) Cache memory control method
US6173370B1 (en) Cache system capable of keeping cache-coherency among store-in-caches of two central processing units on occurrence of store-confliction
US5623694A (en) Aborting an I/O operation started before all system data is received by the I/O controller after detecting a remote retry operation
JP3461481B2 (en) Tag update control circuit
JP3130569B2 (en) Cache memory store method
US6266777B1 (en) Information processing apparatus to control bus latency
JPH04140860A (en) Method for controlling bus of multi-processor
US5790892A (en) Information handling system for modifying coherency response set to allow intervention of a read command so that the intervention is not allowed by the system memory
JPH0744459A (en) Cache control method and cache controller
JP3404386B2 (en) Avoidance method for increasing memory access latency

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101028

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111028

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121028

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees