(57)【特許請求の範囲】
【請求項１】
メモリフィールド（ＣＭＥＭ）を有するキャッシュメモリにおいて、
比較的緩慢な入力データ（ＤＩ）がメモリフィールドへ書き込み可能であり、比較的高速なデータ（ＤＯ）がメモリフィールドから読み出し可能であり、
割り当てユニット（ＭＡＰ）が設けられており、
該割り当てユニットは、２次元データフィールド（ＩＭ）内の領域（Ｗ１，Ｗ２）をメモリフィールドのデータブロックにフレキシブルに割り当て、
このために当該割り当てユニットでは要求信号（ＲＥＱ）から、書き込み待ち行列（ＷＱ）に対する書き込み命令（Ｗ）と、読み出し待ち行列（ＲＱ）に対する読み出し命令（Ｒ）とが形成され、
データコンフリクト識別ユニット（ＨＤＥＴ）が設けられており、
該データコンフリクト識別ユニットは、読み出し待ち行列（ＲＱ）からの以下のような読み出し命令が全て処理される前に、書き込み制御信号（ＷＣ）が書き込み過程をスタートさせるのを阻止し、
前記読み出し命令とは、これに所属のデータがメモリフィールド（ＣＭＥＭ）に既にロードされているが、しかしまだメモリフィールドから読み出されていないため上書きしてはならないような読み出し命令であり、
このために前記データコンフリクト識別ユニットでは、書き込み待ち行列（ＷＱ）により遅延された書き込み命令（Ｗ’）と、読み出し待ち行列からのアドレス（ＨＳ）とからコンフリクト信号（Ｈ）が形成され、
書き込み制御部（ＷＣＴＲＬ）が設けられており、
該書き込み制御部では、遅延された書き込み命令（Ｗ’）とコンフリクト信号（Ｈ）とから、メモリフィールドに対する書き込み制御信号（ＷＣ）と同期信号（ＳＹＮＣ）とが形成され、
読み出し制御部（ＲＣＴＲＬ）が設けられており、
該読み出し制御部では、読み出し待ち行列により遅延された読み出し信号（Ｒ２）と同期信号（ＳＹＮＣ）とから、メモリフィールドに対する読み出し制御信号（ＲＣ）が形成され、
前記同期信号により、読み出し制御信号（ＲＣ）は所要のデータが既にメモリフィールドに存在してから初めて形成されるようになる、
ことを特徴とするキャッシュメモリ。
【請求項２】
メモリフィールド（ＣＭＥＭ）は、２つの別個の読み出しポート（ＲＤ１とＲＤ２）および書き込みポート（ＷＲ）を備えたメモリセル（Ｚ）を有し、
第１の読み出しポートは複数の垂直読み出し線路（ＶＬ）の１つと接続されており、
第２の読み出しポートは複数の水平読み出し線路（ＨＬないしＨＬ’）の１つと接続されており、
メモリフィールドは２つの別個のブロック（Ｂ０とＢ１）に分割されており、
当該２つのブロックの水平読み出し線路は相互に分離されており、
垂直読み出し線路はクロスバースイッチを介して、出力データ（ＤＯ）に対する出力側に任意に割り当て可能であり、
各ブロックには、対角分散スイッチ（ＳＤ）が垂直読み出し線路（ＶＬ）と水平読み出し線路（ＨＬないしＨＬ’）との間に設けられており、これにより、
水平読み出し線路は垂直読み出し線路を介してクロスバースイッチと接続可能であり、これにより任意の異なるデータフィールド部分がただ１つのアクセスにより読み出し可能である、請求項１記載のキャッシュメモリ。
【請求項３】
割り当てユニット（ＭＡＰ）は要求（ＲＥＱ）により、メモリフィールドを制御するための書き込み命令（Ｗ）および読み出し命令（Ｒ）を形成し、
それぞれの要求は、位置、フォーマット、および２次元データフィールドの要求された領域の番号を含み、
割り当てユニット（ＭＡＰ）は、要求された領域のデータが全て既にメモリフィールド（ＣＭＥＭ）に記憶されたか否かを検査し、
割り当てユニットは相互に別個のデータ領域を有し、
該データ領域は記述部（ＳＤ）を有し、
該記述部は２次元データフィールドの記述を含み、かつ要求を介して初期化され、
メモリフィールド（ＣＭＥＭ）内のキャッシュメモリブロック（ＣＳ１とＣＳ２）に対して、前記別個のデータ領域はそれぞれ２つのブロックエントリー（ＢＥ０とＢＥ１）を有し、
前記それぞれのブロックエントリーは、２次元データフィールドにあるそれぞれの領域（Ｗ１）のスタート行（ｍＢＣ）とスタート列（ｍＢＲ）、キャッシュメモリブロック（ＣＳ１，ＣＳ２）のスタート列（ＣＢＲ）、それぞれのキャッシュメモリブロックのライン数（ＣＲ）、および、キャッシュメモリブロックがそもそも有効なラインを含んでいるか否かを指示する標識（ＲＦ）を有する、請求項１または２記載のキャッシュメモリ。
【発明の詳細な説明】
【０００１】
本発明はキャッシュメモリに関するものであり、このキャッシュメモリは処理ユニットにおいて最大許容クロック周波数よりも高いクロック周波数を許容する。これは、外部記憶構成素子と基板プレートの特性によるものである。従来のプロセッサ構造におけるキャッシュメモリは例えばモトローラＭＣ６８０４０の場合のように、通常はクロック毎に１つの個々のデータワードへのアクセスしか許容しない。例えば画像のような二次元データフィールドではこのことは、１つのデータワードに所要のピクセルがランダムに順次並んでいなくても、すなわち全てのデータが既にキャッシュに存在していても、画像領域をキャッシュメモリから読み出すために複数のクロックが必要であることを意味する。
【０００２】
IEEE Journal of Solid State Circuit, Vol.25, No.3, June 1990 から、完全な画像ラインを記憶する複数のラインバッファを備えたオンチップメモリが公知である。ここでは重なったピクセルが重ねて配置されたラインバッファから読み出され、読み出されたピクセルが次のラインバッファに転送される。これによりピクセルは、１ラインだけずらして行われる次のアクセスの際に正しい位置に存在するようになる。しかしこれの欠点は、画像幅が読み出し形式を定めるバッファ量によって制限され、画像データのコラム指向の処理がリロードなしでは不可能なことである。
【０００３】
本発明の課題は、上記の欠点を回避したキャッシュメモリを提供することである。
【０００４】
この課題は本発明により、請求項１の構成によって解決される。従属請求項はキャッシュメモリの有利な構成に関するものである。
【０００５】
以下本発明の実施例を図面に基づき詳細に説明する。
【０００６】
図１は、全体的実施例のブロック回路図である。
【０００７】
図２は、図１のメモリフィールドの詳細回路図である。
【０００８】
図３は、外部画像メモリにおける画像ファイルフォーマットを説明するための図である。
【０００９】
図４は、図１の割り当てユニットの機能を説明するための図である。
【００１０】
図５は、キャッシュアクセスのパイプライン処理を説明するための図である。
【００１１】
図６は、データコンフリクト識別ユニットを説明するための図である。
【００１２】
図７は、有利なデータ識別ユニットの回路図である。
【００１３】
メモリフィールドと割り当てユニットの特別な構成によって、メモリフィールドからクロック毎に例えば複数のピクセルを同時に読み出し、プロセッサフィールドで並列処理することができる。読み出された画像窓のフォーマットはここではクロック毎に変化することができ、例えば８ピクセルを備えた２つのラインセグメントからの画像領域から、８ピクセルを備えた２つのコラムセグメントからの画像領域までを有することができる。したがって１つまたは複数の全体画像ラインを記録するためのバッファは必要ない。書き込み待ち行列、読み出し待ち行列、およびデータコンフリクト識別ユニットにより、データコンフリクトがメモリフィールドの読み出しおよび書き込みの際に阻止される。時間のかかるリロード演算がここではデータスループットを損なうことがない。なぜならアクセス要求のパイプライン処理によって個々のアクセスに対する待ち時間は減少しないが、データの位置関係が十分に既知であるとき、すなわちここでは例えば上述の画像領域の１つの位置関係が十分に既知であれば、スループットは画像領域当たりに僅かなアクセスしか必要とせず、したがって外部メモリへのデータ転送スループットが低減する。
【００１４】
図１には、外部メモリＸＭＥＭと処理ユニットＰとの間のキャッシュメモリが簡単に図示されている。ここで処理ユニットは通常はプロセッサフィールドからなる。キャッシュメモリは実質的にメモリフィールドＣＭＥＭ並びにキャッシュ制御部を有する。キャッシュ制御部は、要求信号ＲＥＱから書き込み制御信号ＷＣおよび読み出し制御信号ＲＣをメモリフィールドＣＭＥＭに対して、および相応にして外部メモリと処理ユニットＰに対して形成する。ここで入力データＤＩは外部メモリＸＭＥＭからメモリフィールドへ読み込まれ、出力データＤＯはメモリフィールドから処理ユニットへ読み込まれる。キャッシュ制御部は実質的に割り当てユニット（マッパー）ＭＡＰ、書き込み待ち行列ＷＱ、読み出し待ち行列ＲＱ、データコンフリクト識別ユニット（ハザード検知ユニット）ＨＤＥＴ、書き込み制御部ＷＣＴＲＬ、および読み出し制御部ＲＣＴＲＬを有する。割り当てユニットＭＡＰは領域を、２次元データフィールド、例えば画像内に、書き込みデータセット、すなわちセクションエントリーによりキャッシュメモリのデータブロックにフレキシブルに結像し、要求信号ＲＥＱから書き込み命令Ｗおよび読み出し命令Ｒを形成する。書き込み命令Ｗは書き込み待ち行列ＷＱに供給され、読み出し命令Ｒは読み出し待ち行列ＲＱに供給される。書き込み待ち行列ＷＱの出力側には遅延された書き込み命令Ｗ’が出力され、これらは書き込み制御部ＷＣＴＲＬとデータコンフリクト識別ユニットＨＤＥＴとに供給される。ここでデータコンフリクト識別ユニットＨＤＥＴは遅延された書き込み命令Ｗ’に依存して、かつさらに読み出すべき全てのキャッシュメモリセルのアドレスに依存してコンフリクト通報信号Ｈを形成する。読み出すべきキャッシュメモリセルはキャッシュミスの前に、すなわちその所属のデータの読み出し開始の前にまだメモリフィールドＣＭＥＭにロードされておらず、したがって要求される。前記コンフリクト通報信号Ｈは書き込み制御部ＷＣＴＲＬに対してコンフリクトの場合には、書き込み制御信号ＷＣの出力を阻止する。データコンフリクト識別ユニットＨＤＥＴは、全てがヒットする前に、すなわち所属のデータがメモリＣＭＥＭに既にロードされ、読み出し待ち行列ＲＱで処理されたかという問い合わせの前に、書き込み要求がスタートするのを阻止する。読み出し制御部ＲＣＴＲＬは、書き込み制御部ＷＣＴＲＬから同期信号ＳＹＮＣを、読み出し待ち行列ＲＱから遅延された書き込み命令Ｒ２を受け取り、出力側に読み出し信号ＲＣを形成する。同期信号ＳＹＮＣにより、問い合わせに対して所属の読み出し制御信号ＲＣが次の場合に初めて形成されるようになる。すなわち、所要のデータが既に外部メモリＸＭＥＭからキャッシュメモリＣＭＥＭに伝送されて初めて形成されるようになる。
【００１５】
図２には例として、所属のデータ経路を備えたメモリフィールドＣＭＥＭが示されている。メモリフィールドＣＭＥＭはそれぞれ８ビットのメモリセルを含み、メモリセルはそれぞれ別個の読み出しポートＲＤ１とＲＤ２を読み出しのために、また１つの書き込みポートＷＲをセルＺの書き込みのために有する。一方の読み出しポートは垂直読み出し線路ＶＬを担当し、他方の読み出しポートは水平読み出し線路ＨＬないしＨＬ’を担当する。垂直読み出し線路はクロスバースイッチを介して、出力データＤＯに対する出力側に割り当てることができる。メモリフィールドは２つの別個のブロックＢ０とＢ１に分割される。ここで水平読み出し線路ＨＬはブロックＢ０で、ブロックＢ１の水平読み出し線路ＨＬ’から分離される。各ブロックには対角に分散されたスイッチが垂直読み出し線路ＶＬと水平読み出し線路ＨＬないしＨＬ’との間で次のように設けられている。すなわち、水平読み出し線路が垂直読み出し線路を介してクロスバースイッチと接続可能であるように設けられており、このクロスバースイッチは多数のスイッチＳを有する。このことによりここでは、画像ラインの複数ピクセルまたは２次元マトリクスの複数ピクセルを、垂直読み出し線路を介してパラレルに読み出し、コラムセグメントまたは２つのコラムを有するマトリクスを水平および垂直読み出し線路を介して読み出すことが可能になる。
【００１６】
図３により、どのように１画像が外部メモリＸＭＥＭにファイルされているかが示されている。画像の第１ラインの第１の３２バイトは例えば第１のデータワードにあり、このデータワードは画像ベースアドレスによってアドレシングされる。次に高位のアドレスを定めるデータワードは、データラインの右に続く３２バイトを受け取る。ライン端部では次のセルの開始部にジャンプする。ライン長が３２バイトの倍数に等しくなければ、ラインは未使用のバイトにより３２バイトの倍数まで充填され、これにより各画像ラインは外部メモリにおいて３２バイトワード境界から開始する。このようにして画像は３２バイト幅の垂直ストリップに分割される。図３は、複数の処理オペランドＰＯ１...ＰＯ３を示し、ここで処理オペランドＰＯ１は完全に１つのメモリワード内にあり、処理オペランドＰＯ２は２つのメモリワードに分割され、コラム状の構成の場合には処理オペランドＰＯ３は複数のメモリワードに含まれる。２つの別個のブロックＢ０とＢ１を有する上記のメモリフィールドは、ちょうど処理オペランドＰＯ２に対して特に有利である。処理オペランドＰＯ３に対しては、キャッシュメモリなしでもアクセス数と必要なピクセル数とが同じになり、メモリバス幅の使用は最小になる。
【００１７】
要求ＲＥＱは位置、例えばｘｙ座標、フォーマット、例えばライン、コラム、またはマトリクス、そして要求された画像領域の画像番号を含む。割り当てユニットＭＡＰ（マッパー）は、要求された全てのピクセルが既にキャッシュメモリフィールドに記憶されているか否かを検査し、外部メモリＸＭＥＭとキャッシュメモリフィールドＣＭＥＭに対する物理的アドレスを計算する。画像ラインとキャッシュラインとの割り当てはここでは例えば単純連想式ないしはダイレクトマッピングで行われる。すなわち、画像番号の低位ビットは所属のキャッシュラインのアドレスと等しい。
【００１８】
図４に例として示した割り当てユニットＭＡＰは相互に別個のデータ領域、いわゆる領域エントリー（セクションエントリー）を有する。この領域エントリーは記述部（セクション・ディスクリプション）を有する。記述部は画像の特徴を含んでおり、要求ＲＥＱを介して初期化される。さらにそれぞれの領域エントリーは２つのブロックエントリーＢＥ０とＢＥ１をキャッシュメモリフィールドＣＭＥＭのメモリバンクＣＳ１とＣＳ２に対して含んでいる。このようなブロックエントリーは、画像全体ＴＭの画像窓Ｗ１のスタート行ｍＢＣとスタート列ｍＢＲ、キャッシュブロックのスタート列ＣＢＲ、およびそれぞれのキャッシュ領域のライン数ＣＲとマークセルＲＦ（常駐フラグ）を含む。マークセルはキャッシュブロックがそもそも有効なラインを含んでいるのか否かを指示する。処理ユニットＰの複数のプロセッサが同時にキャッシュメモリを使用することができるようにするため、場合により複数のこのような領域エントリーが設けられる。これにより、複数の画像オブジェクトを同時にキャッシュメモリで管理することができる。
【００１９】
２ワードバーストによってしか効率的に読み出すことのできない外部メモリ素子を使用する場合、または大きな窓幅が役立つような適用では、１つのキャッシュブロックで複数のキャッシュブロック領域に複数の画像ストリップを割り当てることができ、ここでは例えば全ての奇数画像ストリップをキャッシュブロック領域ＣＳ１に、全ての偶数が蔵すトリップをキャッシュブロック領域ＣＳ２に割り当てる。
【００２０】
要求され、記憶された領域がオーバラップを有していない場合に対しては、要求された全領域に対する書き込み命令が書き込み待ち行列ＷＱに、読み出し命令が読み出し待ち行列ＲＱに引き渡される。前もって該当するキャッシュブロックに記憶されたデータは後続の要求に対しては無効となる。ここでは割り当てユニットには待ち時間（待機状態）が生じない。
【００２１】
要求され、記憶された領域間にオーバラップが存在する場合には、１つまたは２つの書き込み命令がまだ記憶されていない画像領域と共に書き込み待ち行列ＷＱに、読み出し命令が読み出し待ち行列に引き渡される。リロードの際にこれまで有効であったラインが上書きされないのであれば、該当するキャッシュブロックに含まれるデータは有効のままであり、要求に対して使用される。要求された画像領域から上と下の画像ラインが欠けていれば、２つの書き込み命令が必要である。この場合には割り当てユニットは待機状態を発生するが、それ以外には発生しない。
【００２２】
要求された領域が記憶された領域に完全に含まれている後者の場合に対しては書き込み命令は必要ない。読み出し命令は読み出し待ち行列ＲＱに引き渡される。該当するキャッシュブロックにあるデータは有効のままであり、使用される。
【００２３】
書き込み命令は、書き込み待ち行列ＷＱを通過した後、画像領域を外部メモリからキャッシュメモリフィールドＣＭＥＭへリロードすることを開始する。命令により要求された画像領域は、１つまたは２つの画像コラムと、１つまたは複数のラインとを有する部分を含む。
【００２４】
読み出し命令により、必要なデータがキャッシュにリロードされた後、後置接続された処理ユニットＰのイネーブルが行われ、要求されたデータＤＯが適切なフォーマットで出力される。
【００２５】
困難なことは、キャッシュメモリをパイプラインによりないしは待ち行列ＷＱとＲＱによりリロードする際に生じる。複数のアクセスを処理した後、必然的に全てのキャッシュエントリーをデータにより書き込み、新しいアクセスに対して古いデータを上書きしなければならない。このとき必要なデータが上書きされないようにし、パイプラインにまだ存在するアクションをサービスしなければならない。図５は、このことが適切な制御がなければデータ損失につながり得ることを示す。例えばキャッシュ制御部からの要求３がヒットとして識別されると、待ち行列に組み込まれる。なぜなら、必要なデータがキャッシュエントリーＮに存在するからである。次のアクセス４は、例えば読み出しアドレスにより規定されるデータのリロードを要求し、不都合なことにはデータがエントリーＮで上書きされる。アクセス４の要求のリロードポートは空きになるから、同じことがリロード４’で始まってしまう。しかしエントリーＮにあるデータは、アクセス３をサービスするためまだ使用される。アクセス４に対するリロードは比較的後の時点４”にずらさなければならない。なぜなら命令０...３を前もって待ち行列から読み出さなければならないからである。待ち行列の待ち時間後に時点４"'でも命令４を待ち行列から読み出すことができる。
【００２６】
図６にはデータコンフリクト識別ユニットＨＤＥＴの作用を説明するためのブロック回路図が示されている。ここにはさらに割り当てユニットＭＡＰ、書き込み待ち行列ＷＱ、第１の部分ＲＱ１と第２の部分ＲＱ２を有する読み出し待ち行列ＲＱ、書き込み制御部ＷＣおよび読み出し制御部ＲＣが示されている。割り当てユニットＭＡＰは、要求ＲＥＱにしたがって行うべき書き込み動作と読み出し動作を定める。外部メモリＸＭＥＭからメモリフィールドＣＭＥＭへのリロードは、出力よりも格段に長く持続する。なぜなら記憶に対しては複数の緩慢なメモリクロックが必要であり、処理に対しては高速の処理クロックが必要なだけだからであり、さらに外部メモリからのリロードには例えば１０メモリクロックの大きなレイテンシー時間がつきまとうからである。多数の読み出し要求をリロードなしでうまく処理すべきであるから、有利には複数の要求をパイプラインで処理する。要求ＲＥＱに対してリロードが必要な場合、割り当てユニットＭＡＰは書き込み命令Ｗと読み出し命令Ｒを同時に出力する。データをリロードすべき読み出し命令Ｒが出力サイクルへ処理される前に、キャッシュメモリフィールドＣＭＥＭにあるデータが使用できるまで遅延しなければならない。データの出力は有利には要求されたのと同じ順序で行うべきであるから、データは読み出し待ち行列ＲＱ（キュー）を通過しなければならない。
【００２７】
既にリロード演算が処理されていれば、書き込み命令Ｗも有利には書き込み待ち行列ＷＱに中間記憶される。なぜならそのようにしないと、リロードを要求する２つの順次連続する要求がパイプラインを不可避的に停止状態にもたらすこととなるからである。若干のメモリスペースが書き込み待ち行列にあれば、リロードバンド幅の負荷は格段に軽減される。
【００２８】
図５に示したようにデータをキャッシュメモリフィールドＣＭＥＭにリロードする際にはデータコンフリクト（ハザード）が発生し得る。このような事態が、リロード演算をスタートすべきときに発生すると、有効データがキャッシュメモリフィールドで上書きされることになってしまう。しかしこのデータは、前に割り当てユニットで既に形成されているが、未だ出力されていない読み出し命令のために必要である。読み出し命令はこの時点で第１の読み出し待ち行列ＲＱに記憶される。データコンフリクトを識別するためには、読み出し待ち行列ＲＱの第１の部分ＲＱ１の内容をリロード演算の際に探索すればよい。書き込み待ち行列ＷＱのヘッダＫにはリロード命令があり、この命令はデータをキャッシュアドレスＡに伝送させる。読み出し待ち行列ＲＱの第１の部分ＲＱ１のセル１１はここで例えば相応する読み出し命令を含んでいる。すなわち、両方のエントリーは同じ要求から発生し、同時に割り当てユニットＭＡＰによって書き込み待ち行列ＷＱと読み出し待ち行列の第１の部分ＲＱ１にエントリーされたものである。したがって読み出し待ち行列ＲＱのセル１１は、キャッシュアドレスＡから読み出す命令を含んでいる。読み出し待ち行列ＲＱの第２の部分ＲＱ２のセル５は同様にアドレスＡへの読み出しアクセスを含んでおり、行列待ちするリロード演算とコンフリクトする。なぜなら所属の要求は、命令をセル１１で初期化し、おかれた要求より前に比較的に古いデータをキャッシュアドレスＡで待機するからである。エラーのある動作を回避するには、読み出し待ち行列ＲＱの第２の部分ＲＱ２をリロード演算がストーとできるようになる前に処理しなければならない。この場所で１１より大きな番号を有し、キャッシュアドレスＡから読み出される読み出し命令を探索の際に考慮してはならない。なぜなら、これらの演算は既にリロードすべきデータを待機しているからである。早期にリロードを阻止する探索機能のためには読み出し待ち行列ＲＱを２つの部分ＲＱ１とＲＱ２に分割しなければならない。割り当てユニットは命令をまず第１の部分ＲＱ１に引き渡し、この第１の部分を命令が、相応する書き込み命令がエントリーとして書き込み制御部ＷＣＴＲＬに引き渡されるまでループする。リロード演算のスタート時に読み出し命令は読み出し待ち行列の第２の部分ＲＱ２に引き渡される。コンフリクト探索は読み出し待ち行列の第２の部分Ｑ２に制限される。
【００２９】
リロード演算がスタートし、相応する読み出し命令が第２の部分ＲＱ２へ移動すると、次のリロード演算は、これに相応する読み出し命令が読み出し待ち行列の第１の部分ＲＱ１のヘッダＫＲＱ１に存在して初めてスタートすることができる。なぜならリロード演算と関連しない先行の全ての命令はコンフリクト探索のために読み出し待ち行列の第２の部分ＲＱ２に存在しなければならないからである。図６の場合は、セル１１に対するリロード演算のスタート後、番号１５とそれより小さい読み出し命令の全てが第２の部分ＲＱ２に存在すれば、セル１６に対するリロード演算についてのコンフリクト探索を最も早い場合には実行しても良いことを示す。これは、命令１１に対するリロードが非常に高速に終了し、読み出し制御部ＲＣＴＲＬが命令に対してセル１６で既に準備されており、読み出し待ち行列の第１の部分では１５より小さいセル番号の命令がまだ存在するならば、若干の付加的待ちサイクルと能力損失を意味する。このようなことは例えば、２つの部分ＲＱ１とＲＱ２が２つの別個のメモリで実現され、クロック毎に１つの命令しか第１の部分から第２の部分へ移動することができない場合に生じる。
【００３０】
この欠点は例えば次のようにして回避することができる。すなわち、２つの部分ＲＱ１とＲＱ２が１つのメモリに存在するようにし、命令の転送を待ち行列ＲＱ１内で行うようにし、書き込みおよび読み出しポインタの増分によるデータ転送によっては行わないようにするのである。これにより命令セット全体の論理移行が１クロック内で行われるようになる。この実現形式では、ヘッドポインタとテールポインタの他にミッドポインタを設け、これが第１の部分ＲＱ１と第２の部分ＲＱ２との分離をマーキングするようにする。
【００３１】
キャッシュラインの各ロード毎に、この待ち行列領域に同じセルから読み出された命令が存在するか否かを検査する。この検査はとりわけ簡単に、図７に示した構成によって実現することができる。ここでＲＱ１とＲＱ２はメモリフィールドＨＭＥＭにより実現され、そのコラム数はＲＱ１とＲＱ２のエントリー数に相応し、そのライン数はキャッシュラインの数に相応する。読み出し命令をＲＱ１にエントリーする際に、データワードが書き込みポインタにより定められたコラムに書き込まれる。このワードの各ビットは、相応するキャッシュラインの読み出し状態を反映する。ここでは例えば１が読み出しを、０が非読み出しを意味する。１つの命令により複数のキャッシュラインを読み出すことができるから、１つのコラムで複数のビットがここでセットされる。したがってメモリフィールドＨＭＥＭのラインは、読み出し待ち行列ＲＱ１とＲＱ２全てに対するキャッシュラインの状態を表す。
【００３２】
キャッシュラインを上書きする前に、ラインがメモリフィールドＨＭＥＭから読み出される。読み出された各ビットはそれぞれ、選択信号ＲＱ２ＳＥＬからの選択ビットとそれぞれのＡＮＤゲートＡ１...Ａｎで結合され、ＯＲゲートＯＲを介してコンフリクト信号Ｈに統合される。選択ビットは適切な位置の１−レベルにより、読み出し待ち行列領域ＲＱ２が所属するコラムをマーキングする。
【００３３】
書き込み制御部ＷＣＴＲＬは、書き込み命令ＷＣをキャッシュメモリフィールドと外部メモリに対する適切な制御サイクルに変換する。書き込み命令ＷＣは複数のキャッシュラインのリロードを行わせることができる。各キャッシュラインのリロードは、データコンフリクト識別ユニットＨＤＥＴとの密な共同作業を必要とする。命令の変換には通常、複数のクロックサイクルが必要である。
【００３４】
読み出し制御部ＲＣＴＲＬは、読み出し待ち行列ＲＱからの読み出し命令をキャッシュメモリフィールドに対する制御信号に変換する。スループットはここでは通常、１クロック当たり１命令と１出力である。読み出し命令がリロード演算と結合していれば、場合によりリロード演算が実行されるまで待ちサイクルが導入される。各出力により複数のピクセルが読み出されるから、ピクセルの表示に対して多数のフォーマットがキャッシュ出力側ＤＯに存在する。適切なキャッシュラインのアクティブ化の他に読み出し制御部は、クロスバースイッチの適切な切換点の制御というタスクを有する。
【図面の簡単な説明】
【図１】  図１は、全体的実施例のブロック回路図である。
【図２】  図２は、図１のメモリフィールドの詳細回路図である。
【図３】  図３は、外部画像メモリにおける画像ファイルフォーマットを説明するための図である。
【図４】  図４は、図１の割り当てユニットの機能を説明するための図である。
【図５】  図５は、キャッシュアクセスのパイプライン処理を説明するための図である。
【図６】  図６は、データコンフリクト識別ユニットを説明するための図である。
【図７】  図７は、有利なデータ識別ユニットの回路図である。
【図１】
0003708436.tif 000002
【図２】
0003708436.tif 000003
【図３】
0003708436.tif 000004
【図４】
0003708436.tif 000005
【図５】
0003708436.tif 000006
【図６】
0003708436.tif 000007
【図７】
0003708436.tif 000008