JPH0773035A - 複数プロセツサ・システム - Google Patents

複数プロセツサ・システム

Info

Publication number
JPH0773035A
JPH0773035A JP3348392A JP34839291A JPH0773035A JP H0773035 A JPH0773035 A JP H0773035A JP 3348392 A JP3348392 A JP 3348392A JP 34839291 A JP34839291 A JP 34839291A JP H0773035 A JPH0773035 A JP H0773035A
Authority
JP
Japan
Prior art keywords
request
pipeline
waiting
storage
requests
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.)
Pending
Application number
JP3348392A
Other languages
English (en)
Inventor
Bradford M Bean
ブラッドフォード・メイソン・ビーン
Anne E Bierce
アンネ・エリザベス・ビアース
Neal T Christensen
ニール・テイラー・クリステンセン
Leo J Clark
レオ・ジェームス・クラーク
Christine C Jones
クリスチーヌ・コミンス・ジョーンズ
Mathew A Krygowsky
マシュー・アンソニー・クリゴウスキー
Kevin F Reick
ケビン・フランクリン・レイク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0773035A publication Critical patent/JPH0773035A/ja
Pending legal-status Critical Current

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Abstract

(57)【要約】 【目的】 ストレージへのアクセス要求がストレージ・
リソースを待たなければならない時でも、ストレージの
アドレス処理を制御するためのストレージ要求パイプラ
イン1中で後続の要求を中断せずにパイプラインの連続
処理を可能とするシステムを与える。 【構成】 要求の処理を開始するためにリソースが使用
可能になるのを待たなければならない要求は、パイプラ
イン1に入るための優先権付与回路13の制御を受けた
後、待機用通路2、3に差し向けられる。データの取り
出し要求の待ちは、待機用通路2に入れられ、ストア要
求の待ちは、待機用通路3に入れられる。待機時間が終
つた時、優先権付与回路を再度通つた後、要求は待機用
通路からパイプラインに再び入る。複数個の要求が非同
期な態様で同時にパイプライン処理される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ストレージ要求が必要
とするストレージ・リソースを待つている1つ、または
それ以上のストレージ要求によつて、ストレージ要求パ
イプラインの処理を停滞させることなくストレージ要求
を継続して並列処理をさせるような態様でストレージに
アクセスするために、非同期の態様でストレージ要求パ
イプラインを処理する技術に関する。
【0002】
【従来の技術】ストレージにアクセスする要求(以下、
ストレージ要求、または単に要求とも言う)を処理する
従来の技術において、ストレージ・リソースが動作して
いる時に生じるアイドル時間の間で、他のストレージ要
求によるそのリソースの使用を禁止しているストレージ
要求が完了するまで、その要求はそのストレージ・リソ
ースを拘束していた。このように、従来の技術において
は、ストレージを制御するためのリソース(以下、スト
レージ・リソース、または単にリソースとも言う)は、
アイドル時間の間でも自由に解放されず、同じストレー
ジ要求の次の動作を開始するための不作動の待機状態に
保たれていた。そして、そのリソースは、前の要求がス
トレージ・リソースを必要とするすべての動作を完了し
た時にだけ、他のストレージ要求によつて使用すること
ができるように解放される。
【0003】米国特許第3670309号及び同第41
49245号はストレージ要求の処理動作を教示してい
るが、パイプラインの中に再度エントリを必要とする待
機状態の要求を保持するための待機用の通路を持つスト
レージ要求パイプラインを開示していない。また、これ
らの米国特許は、ストレージのタイミング制御を教示し
ているが、パイプラインの中に再度入力することのでき
る複数個の待機用通路を持つストレージ要求パイプライ
ンを開示していない。
【0004】ストレージ要求の従来の処理手段は、最初
のストレージ要求がストレージ・リソースの使用を完了
するまで(最初のストレージ要求によりストレージ・リ
ソースが動作している期間中でそのリソースが不作動状
態の時に、最初のストレージ要求が完了する前には、他
のストレージ要求によつてそのリソースを使用すること
はできないから)、最初のストレージ要求はそのストレ
ージ・リソースを拘束する。従来の技術においては、同
じ要求のために或るリソースに対して後で次の処理を必
要とする時、そのリソースは、同じ要求に対して開始さ
れる次の動作のための不動作の待ち状態に保持され、他
の要求の使用のために解放されないが、リソースが上記
の要求のために必要なすべての動作を完了した時にだ
け、そのリソースは、他の要求によつて使用することが
できるように解放される。
【0005】
【発明が解決しようとする課題】本発明の目的は、スト
レージへのアクセス要求(ストレージ要求)を処理し、
制御するためのストレージ要求パイプラインを提供する
ことにある。
【0006】本発明の他の目的は、非同期的なストレー
ジ要求を並列に処理し、しかも、後続するストレージ要
求に著しい遅延を与えることなく、一部処理されたスト
レージ要求の処理を待機させることにある。
【0007】本発明の他の目的は、ストレージ・リソー
スによつて遂行される複数個の処理ステツプの各々を他
の処理ステツプとは独立して使用可能にするために、ス
トレージ・リソースによつて遂行される複数個の処理ス
テツプの各々を独立させることにあり、これにより、他
のストレージ要求にストレージ・リソースを利用可能に
することができ、他のストレージ要求によるストレージ
・リソースの処理ステツプが終了した時に、前のストレ
ージ要求の他の処理ステツプを遂行するために、ストレ
ージ・リソースを後でアクセスすることができる。従つ
て、ストレージ・リソースが処理ステツプを遂行してい
ない場合には、そのリソースは他の要求による処理ステ
ツプのために利用することが可能である。従つて、リソ
ースを使用した前の要求がリソースの使用を全部完了す
る前に、複数個の要求は、それらの要求による1つのリ
ソースの使用を多重化することができる。他のストレー
ジ要求がリソースの使用を拘束している場合を除いて、
予め決められた複数個の処理ステツプの間でリソースが
動作していない時には、ストレージ要求は予め決められ
た複数個の処理ステツプの間でリソースを拘束する必要
はない。
【0008】本発明の他の目的は、非同期の態様で複数
個のストレージ要求を同時に管理するための単一のスト
レージ要求パイプラインに結合させた複数個の待機用の
通路を与えることにある。
【0009】本発明の他の目的は、夫々のストレージ要
求の待機時間の終了まで、複数個のストレージ要求を、
独立した待機用の通路中に、並列に保持させ、その後、
ストレージ要求をパイプラインに再度入力可能にさせる
ことにある。
【0010】本発明の他の目的は、或るストレージ要求
のための処理ステツプにおいて、ストレージ・リソース
がその要求の処理ステツプのために直ちに使用できる
時、その要求のためにそのリソースを獲得させ、その
後、そのリソースがその要求によつて最早や使用されな
くなつた時には直ちにリソースを解放して、他の要求に
対してそのリソースの使用を利用可能にさせることにあ
り、これにより、ストレージ・リソースの利用度を最大
にする。
【0011】本発明の他の目的は、完了するのに長い処
理ステツプを必要とするストレージ要求パイプラインの
処理をバイパスすることにあり、これにより、単一のマ
シン・サイクル内で直ちに遂行することのできるパイプ
ラインの処理動作だけを管理するために、パイプライン
を自由に解放する。
【0012】本発明の他の目的は、完了するのに長い処
理を必要とする処理に対して停止、または待機をさせる
パイプラインを必要とすることなく、可変長の実行時間
を持つ処理ステツプによつて複数のストレージ要求を同
時に処理することにある。
【0013】本発明の他の目的は、複数個のストレージ
要求を、非同期的な態様で同時に処理させることにあ
る。本発明においては、要求の処理の間に競合が生じる
とか、要求の処理に遅延を生じるような要求は、待機用
の通路において、保持され、部分的に完了され、しか
も、待機することを必要としない要求は、実質的な処理
なしでパイプライン中で移動され、これにより、システ
ムのスループツトを最大にすることができる。本発明
は、必要に応じて、要求の発生の順序を維持することが
できるが、また同時に、発生の順序を維持する必要がな
い要求に対する順序は維持しない。
【0014】
【課題を解決するための手段】本発明はアドレスを処理
し、取り扱う技術に関する。本発明はアドレスによつて
検索されるデータの処理を目的としていない。従つて、
例えば、インストラクシヨン・パイプラインによつて処
理されるデータのように、ストレージ要求によつて検索
されるデータは、本発明には直接の関係がない。本発明
が指向する技術は、ストレージ要求パイプラインによつ
て遂行される処理である。インストラクシヨン・パイプ
ラインは、本発明とは異なつたタイプのパイプラインで
あつて、本発明とは関係がない。
【0015】インストラクシヨン・パイプラインとは異
なつて、本発明のストレージ要求パイプラインは、スト
レージ要求がストレージ・リソースを使用する時に、必
要なストレージのアドレスの処理を制御するものであ
る。例えば、インストラクシヨン・パイプラインは、イ
ンストラクシヨン要求の受け取り順序を維持しなければ
ならない。然しながら、本発明のストレージ要求パイプ
ラインにおいては、ストレージ要求の順序を維持するこ
とを、ストレージ要求を起したプロセツサと、インスト
ラクシヨン・パイプラインとに制御を任せることによつ
て、ストレージ要求パイプラインは、要求を受け取つた
順序を無視する。
【0016】本発明は、ストレージにアクセスするため
の複数個の要求を準備する順番を制御するためのストレ
ージ要求パイプラインを与える。本発明に従つて、スト
レージ要求パイプラインが他の要求を継続して処理し、
取り扱うことができるような手段を与えるために、スト
レージ要求パイプラインから分岐した1個、またはそれ
以上の待機用の通路が設けられ、しかも、待機用通路中
の要求は、待機している要求について現在利用すること
のできない必要なリソースに対して待機させることがで
きる。本発明においては、ストレージ要求に対して、2
つのタイプの待機用通路が与えられており、一方のタイ
プは、ストレージからの取り出し要求のための待機用通
路であり、他方のタイプは、ストレージへのストア要求
のための待機用通路である。各タイプの待機用通路は任
意の数だけ設けることができる。
【0017】本発明は、MPまたはUP環境で動作する
ことのできる独立したプロセツサ(CPU及びIOP)
による複数個の要求を、非同期の態様で、ストレージ要
求パイプラインに対して任意の順序で与えることができ
る。
【0018】本発明において、ストレージ要求パイプラ
イン及びその待機用通路は、異なつた長さの副次的な処
理時間及び待ち時間を必要とする複数個の要求を、重複
して並列処理にすることができる。待機用通路中にある
要求は、例えば、他のCPUのキヤツシユ中で生じる無
効の結果とか、CPUの前のストア動作の完了の結果と
か、キヤツシユのキヤスト・アウトの完了の結果とか、
キヤツシユの優先権の割り当ての結果とか、メーン・ス
トレージ(MS)へのアクセスの優先権の割り当ての結
果とか、キヤツシユ・デイレクトリの更新の結果とか、
MS、またはキヤツシユのインターリーブの利用可能性
の問合せの結果などを待つている。
【0019】本発明においては、待機している要求に必
要なリソースが利用可能になつたことによつて、待機用
通路中で待機時間の異なつた待ちが完了した後、要求
は、パイプライン処理のためにパイプラインに入れる要
求の順序を制御するのに使用するパイプライン優先権付
与回路を通つてパイプラインの中に再度入力される。優
先権付与回路は従来の技術で利用可能なタイプのもので
あつてよい。要求は、システムのストレージ階層中の次
のレベルをアクセスするのに使用するために、要求を準
備する複数の段階を持つパイプラインを通して処理され
る。必要なすべてのストレージ・リソースを利用するこ
とのできる要求は、パイプラインの1つの経路において
パイプラインの処理を完了するけれども、しかし、必要
なリソースを利用することのできない要求は、パイプラ
インから取り出されて、その要求が必要とするリソース
が利用可能になるまで待機用通路に入れられる。リソー
スを使用することができないと言う理由は、問題のリソ
ースが他の要求によつて使用されているということが通
常の理由である。
【0020】要求は、パイプラインの一部と、1つ、ま
たはそれ以上の待機用通路とを通つて1回、またはそれ
以上の回数を循環される。システムのストレージ階層に
おいて次のストレージ・リソースへのアクセスを遂行す
る準備が、そのストレージ要求に対して整つたことを、
パイプラインが表示した時にだけ、その要求は、そのス
トレージ要求を遂行するためにパイプラインから出て行
く。
【0021】従つて、本発明は、ストレージ要求がパイ
プライン動作に遅延を与える場合に、要求がパイプライ
ンを使用する限り、パイプライン中でストレージ要求を
停滞させずに、パイプラインを継続して動作させること
ができる。
【0022】或る場合には、要求が待機用通路に保持さ
れている間で、要求の処理が行なわれる。つまり、本発
明において、待機用通路は、ストレージ・リソースを待
つ要求に用いられるばかりでなく、完了するのに長い処
理ステツプを必要とするストレージ要求の待機用の通路
としても使用し、これにより、パイプラインが単一のマ
シン・サイクルで直ちに遂行できる処理動作だけを取り
扱えるうようにパイプライン動作を単純化し、これによ
りパイプラインの性能を改善する。
【0023】本発明に従つて、待機している要求によつ
て使用されるストレージ階層のレベル中の複数のインタ
ーリーブに、複数の待機用通路が関連付けられている。
【0024】また、本発明はストレージ・リソースを取
り扱う態様を制御することができる。つまり、本発明
は、要求がストレージ・リソースの現在の使用を終了す
るや否や、他の要求によつてストレージ・リソースを使
用させるために、リソースを解放する制御をすることが
できるということである。或る要求がリソースを再度必
要とする時に、可成り長時間の間、そのリソースを再度
使用することができない場合、本発明は、前の要求によ
つてリソースを使用できない長時間の間で、他の要求に
より、そのリソースを使用させ、その後、前の要求がそ
のリソースを再び利用できるようにする。従つて、本発
明は複数の要求によつて1つのリソースを部分的に使用
するような多重化を可能とする。
【0025】
【実施例】本発明は、ストレージにアクセスするための
複数の要求(複数のストレージ要求)がコンピユータ・
システムにおいて処理されることを含んでいる。ストレ
ージ要求は、システムのメーン・メモリからのデータを
必要とするプロセツサ(CPU(中央処理装置)、また
はIOP(入/出力プロセツサ))によつて与えられ
る。ストレージ要求には、ストレージ要求が遂行する機
能に従つて分類される幾つかのタイプがある。ストレー
ジ要求は、システム・ストレージを検索しなければなら
ないデータを必要とするインストラクシヨン演算子から
得る要求か、または、キヤツシユ・デイレクトリ、キヤ
ツシユ・データ・アレイ、ストレージ・キー・アレイ、
変換索引バツフア(TLB)、または、ストレージに関
係した他のアレイのような関連したストレージ装置の中
にアクセスされなければならない関連情報を必要とする
インストラクシヨン演算子から得る要求である。一般
に、ストレージ要求は、システム・ストレージにあるデ
ータのアドレスと、要求されたストレージへのアクセス
の性質を特定する情報とによつて表示されるが、このス
トレージへのアクセスの性質を特定する情報とは、スト
レージへのアクセス動作が取り出し(fetch)動作によ
るのか、またはストア動作によるのかに関する情報や、
ストレージ・キー・アレイ中の変化とか、またはTLB
(変換索引バツフア)、キヤツシユ・デイレクトリ、或
はストレージのキー・アレイのような関連したストレー
ジのエントリの無効とかのようなストレージの他のアク
セス情報などである。
【0026】図1を参照すると、複数個の中央プロセツ
サ(CPU1乃至N)に対して与えられたストレージ階
層が示されている。任意のプロセツサからのストレージ
要求は、要求されたデータを得るために、先ず、関連す
るCPUだけしかアクセスすることのできない速度の最
も速いデータ源に対してアクセスを試みる。若し、要求
されたデータがストレージ階層の第1のレベル、即ちL
1レベルのキヤツシユ・メモリ中で入手できなければ、
L1レベルのキヤツシユ・ミス(必要なキヤツシユがな
いこと)の信号は、その要求が、あたかも第2のレベ
ル、即ちL2レベルのキヤツシユ・デイレクトリに送ら
れたかのようにそのストレージ要求を表示する。図示の
実施例において、L2レベルのキヤツシユは、ストア・
イン・タイプのキヤツシユ・メモリである。
【0027】そして、若し、L2レベルのキヤツシユ・
メモリ中に所望のデータがなければ、L2レベルのキヤ
ツシユ・ミスの信号は、その要求が、あたかもシステム
のメーン・メモリ(L3レベル)に送られたかのように
要求を表示する。ストレージ階層のストレージ・レベル
が大きく(低く)なると、ストレージの容量は大きくな
り、そして、要求されたデータにアクセスするためにス
トレージ要求が階層中の低いレベルに行く必要があれ
ば、アクセス時間は増加する。
【0028】L2及びL3レベルのデータ・ストレージ
は、L2及びL3レベルのストレージ・エンテイテイの
各々において、同時に4個のアクセス要求を、4個まで
の通路に重複させるために、インターリーブされた4個
のデータ・アレイに夫々分割されている。
【0029】図1に示したシステムの夫々のプロセツサ
は、異なつたストレージ階層を通して動作する。図1の
階層において、L2レベル及びそれらの階層の低位のレ
ベルの部分は、すべてのCPUに対して共通であるけれ
ども、これらのCPUは異なつたL1レベルのキヤツシ
ユ・メモリを持つているので、これらのストレージ階層
は異なつている。
【0030】然しながら、システム中のI/Oプロセツ
サ(IOP)は、CPUのような高速度キヤツシユ・メ
モリを持つ必要はなく、I/Oストレージ階層中の最も
速度の速いストレージ・レベルは、L3レベルのメーン
・メモリである。図1において、I/Oストレージ要求
は、IOPによりL3レベルのシステムのメーン・スト
レージに差し向けられることによつて、CPU要求とは
異なつて取り扱われる。それにも拘らず、各I/O要求
は、L2レベルのデータがL3レベルにおいてアクセス
されるI/OデータのCPUの更新バージヨンを含んで
いるか否かを決めるために、L2レベルのストア・イン
・タイプのキヤツシユにおいてチエツクされなければな
らない。若し、更新バージヨンが見い出されたならば、
L2レベルのデータ・ユニツトは、L3レベルへのキヤ
スト・アウト(cast out)のデータ通路を用いてI/O
装置に送られる。
【0031】例えばストレージ・キー・アレイ、または
TLB(変換索引バツフア)、またはシステム・ストレ
ージの制御に関連した他のタイプのストレージ装置中に
ストアされたデータのような、L2レベルのキヤツシ
ユ、またはL3レベルのメーン・ストレージ以外の場所
にある特別のタイプのデータをアクセスするために特別
のストレージ要求が与えられている。このような特別の
ストレージ要求は、このような要求を処理する回路で識
別できるようなフオームを持つている。これらの特別の
要求のフオーム(ストレージ・コマンド中で与えられ
る)は、これらの特別の要求がシステム・メモリ中のデ
ータから取り出されるのか、またはシステム・メモリに
ストアされるのか、あるいは、L2レベル、またはL3
レベル中にストアされたデータの制御に影響する他のス
トレージ・リソース中のデータを取り出し、またはその
リソースにストアするのかの何れかを表示する制御ビツ
トを含んでいる。
【0032】図示の実施例においては、システムのスト
レージ階層中のL2及びL3レベルと関連したストレー
ジ要求を取り扱つており、システム中の夫々のCPUに
ついて取り扱われるL1レベルのストレージ要求は取り
扱わない。従つて、図示の実施例は、CPUのキヤツシ
ユ・メモリ、またはインストラクシヨンのキヤツシユ・
メモリの中に、要求されたデータを見い出すことのでき
ないCPUからのストレージ要求を取り扱い、それに加
えて、I/O装置からのストレージ要求も取り扱う。
【0033】CPUによるL2レベルのキヤツシユ・ミ
スの結果としてL3レベルのストレージからデータが得
られた時、データは、要求CPUと、L1レベルのキヤ
ツシユと、ストアされるL2レベルのキヤツシユ・デー
タ・アレイとに対して並列に同時に送られるので、その
データは、そのデータに対して後続するすべてのストレ
ージ要求に利用可能である。L3レベルのデータをL2
レベルのキヤツシユ中に入れるためには、L3レベルの
データを受け取るために割り当てられたL2レベルのキ
ヤツシユのロケーシヨン中にあり、前にストアされたデ
ータに重ね書きする必要がある(従つて、前のデータの
キヤスト・アウトが必要である)。
【0034】図示の実施例のL2レベルのキヤツシユ・
メモリは「ストア・イン」タイプのキヤツシユである。
L2レベルのストア・イン・タイプのキヤツシユは、L
3レベルのメーン・ストレージ中の更新されたデータを
コピーすることなく、ストア・イン・キヤツシユ中に含
まれている任意のデータ・ユニツト内に新しいデータを
ストアさせることができる。従つて、L2レベルのキヤ
ツシユは、システム中の更新データだけを含んでいる。
従つて、他のデータにL2レベルのメモリのロケーシヨ
ンの再割り当てによつて更新されたデータが新しいデー
タで重ね書きされ、更新されたデータがL2レベルで喪
失される前に、L2レベルの更新されたデータをキヤス
ト・アウトし、L3レベルの中に更新されたデータをス
トアすることは必要不可欠である。再割り当てされたロ
ケーシヨン中の更新されたデータのために、キヤスト・
アウト処理が与えられ、これにより、上述の問題を回避
する。
【0035】L2レベルのキヤスト・アウト(CO)処
理は、L2レベルのデイレクトリ・エントリが、最初に
L2レベルに書き込まれて以来、各エントリが変更され
たか否かについての表示がL2レベルの各デイレクトリ
・エントリに維持されていることを必要とする。この表
示は、関連したデイレクトリ・エントリが変更されたか
否かを表示するためのL2レベルのキヤツシユ・デイレ
クトリ中の夫々のエントリに、各変更ビツトが対応して
いるL2レベルのデイレクトリと関連した変更ビツト・
アレイ中に維持されている。
【0036】L2及びL3レベルのメモリは夫々インタ
ーリーブされている。各メモリは、要求されたデータ・
ユニツト(データ単位)のアドレス中の予め決められた
ロケーシヨンにある一組のビツトの値、通常はデータ・
ユニツトのアドレスの最も低位の部分のビツト値のよう
な、ストアされるデータ・ユニツトのアドレス特性に従
つてデータをストアする物理的に同じ長さの部分(イン
ターリーブと呼ばれる)に分割されている。例えば、2
通路のインターリーブは、要求されたデータ・ユニツト
が奇数アドレスを持つているか、または偶数アドレスを
持つているか(データ・ユニツトのアドレスの最低位ビ
ツトの値によつて決められる)に従つて決定され、ま
た、4通路のインターリーブはデータ・ユニツトのアド
レス中の最低位の2つのビツトの値によつて決められ、
以下同様にして、他の通路数とアドレスの関係が決めら
れる。この場合、要求されたデータ・ユニツトを含むメ
モリの、アドレスされたインターリーブ・セクシヨンだ
けがアクセスされなければならない。このことは、同時
に他のストレージ要求をアクセスする場合に、他のイン
ターリーブ・セクシヨンが独立して動作することを可能
とする。
【0037】L2レベルのデイレクトリの各エントリ
は、L2レベルのデータ・アレイ中のデータ・ユニツト
を表示する。L2レベルのデータ・アレイ中のデータの
単位(ユニツト)のサイズは、システムの取り扱いを容
易にするために予め決められており、実施例において
は、例えば256バイトのデータ・ユニツト(DU)で
ある。また、このDUのサイズは、この実施例ではL3
レベルのシステムのメーン・ストレージ中で使用される
DUである。
【0038】従つて、L2レベルのキヤツシユは4通路
のインターリーブされたキヤツシユとして構成されてい
るので、キヤツシユ中のその4つのセクシヨンは、4つ
の異なつたストレージ要求により同時にアクセスするこ
とができる。L2レベルのキヤツシユ中にアクセスされ
るDUのアドレスの低位の2つのビツトは、4つのイン
ターリーブされたアレイの内のどのアレイが特定の要求
に対して選択されるのかを決定するために用いられる。
【0039】この実施例において、L1レベルのCPU
のキヤツシユのデータ・ユニツトの大きさは、128バ
イトだから、L2レベルのDUはL1レベルのキヤツシ
ユのサイズの2つのデータ・ユニツトを持つている。L
2レベルにおけるL1レベルのストア動作は、L1のデ
ータ・ユニツトのアドレス中の低位のビツトの状態によ
つて選択されるL2レベルのDUの半分の128バイト
の2つのワードの内の一方のワード分を重ね書きする。
【0040】従つて、L2レベルのキヤツシユ・デイレ
クトリ中の各エントリは、L2レベルの4つのインター
リーブされたデータ・アレイ(ITRLV1乃至ITR
LV4)の256バイトのデータ・ユニツトの関連した
データ・ユニツトの1つのデータ・ユニツトを表わす。
同様に、変更表示アレイ中の各変更ビツトは、L2の夫
々のDUにより関連付けられ、そして、変更ビツトがオ
ンにセツトされた時に夫々のデータ・ユニツトが変更さ
れたことを表わす。また、同じサイズ(256バイトの
データ・ユニツト)の複数のDUが、L2レベルの4つ
のインターリーブされたデータ・アレイ(ITRLV1
乃至ITRLV4)で構成されたL2のメーン・ストレ
ージ中で使用され、各メーン・ストレージは、L2のイ
ンターリーブされた各データ・アレイの記憶容量よりも
遥かに大きな記憶容量を持つている。
【0041】I/Oシステムは、1バイト以下の大きさ
のデータ・ユニツトをL3レベルから転送し、またはL
3レベルへ転送することができる。I/O装置のチヤン
ネルからのストレージ要求は、取り出し動作及びストア
動作の両方に対してL3のシステムのメーン・ストレー
ジに差し向けられるけれども、I/Oのバイト単位のア
ドレスがL2のDU中にも含まれているか否かを決める
ために、L3のI/0からの各取り出し動作、またはL
3のI/Oへの各ストア動作に対してL2のデイレクト
リを検査することが必要である。若し、I/Oのバイト
のアドレスがL2のキヤツシユのDU中に含まれている
ならば、L2のDUの変更ビツトの状態は、そのデータ
・ユニツトがL2レベルにおいて変更されたか否かを決
めるために検査されなければならない。若し、その変更
ビツトがオンにセツトされているならば、それは、L2
のI/Oの、アドレスされたバイト中のDUが変更され
たことを表示する。L3の対応するDUは更新されてい
ないから(L2レベルがストア・イン・タイプのキヤツ
シユなので)、L2の更新されるDUは、システムのデ
ータの一貫性を維持するために、I/0のバイトがL3
のDUから取り出され、またはL3のDUにストアされ
る前に、L3レベルにキヤスト・アウトされなければな
らない。
【0042】しかし、若し、I/0要求のアドレスがL
2のデイレクトリ中に見い出されなければ、L2のキヤ
ツシユ動作は必要がなく、I/0バイトのアクセスはL
3レベルにおいて行なわれる。
【0043】コンピユータ・システムが複数のCPUを
持つている複数プロセツサ・システム(MP)のアーキ
テクチヤは、システム中のデータの一貫性を維持するた
めに、システム・ストレージの中のデータを変更するこ
とや、或は、メモリ・ロケーシヨン中で変更処理中のす
べてのデータを使用することを、通常は、一時に1つの
CPUにしか行なわせない。然しながら、通常、そのよ
うなアーキテクチヤにおいて、データを変更する処理を
していなければ、任意のCPUがシステム・メモリから
データを同時に取り出して使用することができる。従つ
て、各CPUがプライベート・キヤツシユ(L1レベ
ル)を持つており、1台のCPUがL1レベルにあるデ
ータ・ユニツト中にストアする時には、そのCPUは、
システム・メモリ中のデータ・ユニツトについて排他的
な制御を先ず獲得しなければならない。この排他的な制
御は、システム中の他のプロセツサのプライベート・キ
ヤツシユ・メモリを質問することによつてか、或は、C
PUの識別子フイールドを質問することによつてかの何
れかにより行なわれ、この場合のCPU識別子フイール
ドは、L1レベルのキヤツシユがL2レベルのある同じ
DUのアドレスからのデータをコピーしているか否かを
決めるために、L2レベル中の、アドレスされたDUの
エントリと関連されている。若し、L1レベルの他のキ
ヤツシユのデータ・ユニツトが、L2レベルの同じDU
と同じデータ・ユニツトを持つていることが見い出され
たならば、L1のデイレクトリのエントリは無効にされ
る。その結果、ストア要求を行なつたCPU、またはI
OPだけが、現在有効なストレージ装置中のデータ・ユ
ニツトについて排他的な制御を持つ。
【0044】各ストレージ要求は、処理について幾つか
のタイプ(ストレージ要求の取り扱い)を必要とする。
ストレージ要求の取り扱いは、ただ1つの処理ステツプ
を含んでもよいし、または、データの階層中のデータの
ロケーシヨンに依存して複数個の処理ステツプを含んで
もよい。例えば、プロセツサのストレージ要求は、L1
のキヤツシユ・ヒツト(必要とするキヤツシユがあるこ
と)の要求、またはL1のキヤツシユ・ミス(必要とす
るキヤツシユがないこと)の要求の何れかにストレージ
要求のフオームを変更するためのL1のキヤツシユ・デ
イレクトリのサーチを必要とする。L1レベルのキヤツ
シユ・ヒツト要求は、関連するL1レベルのキヤツシユ
のデータ・アレイ中の要求データにアクセスする単一の
処理ステツプを発生し、この処理ステツプは単一のマシ
ン・サイクルで行なわれる。L1のキヤツシユ・ミス要
求は、下記の複数のステツプを発生する。即ち、
【0045】(1) ストレージ階層中で次に低位のレ
ベルのストレージ(このストレージは、L2レベルのキ
ヤツシユか、または、L2レベルにキヤツシユがなけれ
ば、L3レベルのシステムのメーン・メモリである)を
アドレスするステツプと、(2) 次に低位のレベルの
ストレージからデータを取り出す(fetch)ステツプ
と、(3) 低位のレベルの取り出し動作を行なうため
のキヤツシユ・ミス要求を発生するL1レベルのキヤツ
シユ・デイレクトリを更新するステツプとである。
【0046】1つ、またはそれ以上のシステム・リソー
スが、ストレージ要求の処理に用いられる。例えば、L
3のメーン・メモリは、L2のキヤツシユ・ミス要求を
取り出すために必要なシステム・リソースである。他の
システム・リソースとしては、メーン・メモリから取り
出されたデータを受け取るのに必要なL2レベルのキヤ
ツシユ・アレイと、L1レベルのキヤツシユ・デイレク
トリ・ミスに応答して、取り出されたデータのメモリ・
アドレスで更新されなければならないL2レベルのキヤ
ツシユ・デイレクトリとがある。L2レベルのキヤツシ
ユのデータ・アレイ中でインターリーブされた4つのイ
ンターリーブ・セクシヨンの各々は、L2のキヤツシユ
がインターリーブされた時、夫々のストレージ・リソー
スとして取り扱うことができる。そして、L3レベルの
メーン・ストレージ中でインターリーブされた4つのセ
クシヨンの各々は、L3レベルのメーン・ストレージが
インターリーブされた時、夫々のストレージ・リソース
として取り扱うことができる。また、変更ビツトのアレ
イは、ストレージ・キー・アレイや、各プロセツサのT
LBなどと同じように、システム・リソースである。
【0047】従来の技術と比較した場合、本発明の重要
な特徴は、システムのストレージ・リソースを取り扱う
方法が異なつていることにある。従来の技術において
は、1つの要求が最後の処理ステツプを必要とするま
で、要求は、最初の処理ステツプからリソースに結合し
ている。その結果、ストレージ要求によつて必要とされ
る複数個の処理ステツプの内の各々のステツプの間で、
そのリソースが処理動作を行なつていない時でも、その
リソースは、他のすべてのストレージ要求のためには利
用することができない。例えば、従来の技術において、
キヤツシユ・デイレクトリ(リソース)は、その最初の
処理ステツプ(キヤツシユ・ミスを生じるようなストレ
ージ要求のサーチの処理ステツプ)を行なう時間から、
その第2の処理ステツプ(そのキヤツシユ・ミスについ
て、取り出されるデータのアドレスをデイレクトリの中
に書き込むステツプ)の時間まで拘束されるが、これら
2つの処理ステツプの間においては多数のマシン・サイ
クルが使用され、しかも、他のすべてのストレージ要求
は、リソースであるこのデイレクトリを利用することが
できない。本発明は、リソースを使用するストレージ要
求が開始した後、そのリソースの使用が終了する前に、
そのリソースについて他のステツプの処理を必要とする
ようなストレージ要求が、必要とする処理ステツプの間
で、ストレージ・リソースが他の要求のための1つ、ま
たはそれ以上の処理ステツプを処理するのを使用可能に
する。
【0048】多数のCPUは、L1レベルのキヤツシユ
において時間的に重複したストレージ要求ミスを持ち、
そして、IOP要求と共にL2レベルのメモリを同時に
アクセスすることがあり得るので、或る要求が他の要求
を不当に遅らせることなく要求の転送を行なわせるよう
な態様で、L2レベルにおける複数のアクセスによる混
雑を制御するための「交通整理の巡査のような」機能が
必要とされる。このような混雑は、L2レベルの1つの
デイレクトリ、インターリーブされた4つのキヤツシユ
・データ・アレイ、L2のデイレクトリにエントリを割
り当てるためのLRU制御、L2のキヤスト・アウト制
御などのような限られた数のリソースが、L2レベルの
ストレージ要求を処理しなければならないから、上述の
ような複数のアクセスによる混雑は、複数のストレージ
要求の処理の間で競合する可能性を含んでいる。本発明
の実施例は、上述の「交通整理の巡査のような」機能を
持つている。
【0049】これらのリソースの内のあるものは、要求
に対してサーチするための処理ステツプを持つL2レベ
ルのデイレクトリの処理ステツプとか、割り当てられた
LRUのエントリを有する処理ステツプのような1つ、
またはそれ以上のタイプの処理ステツプを遂行する。L
2の4つのキヤツシユのデータ・アレイの各々は、DU
(データ単位、即ちデータ・ユニツト)中にデータをス
トアする処理ステツプ、または、DUからデータをキヤ
スト・アウトする処理ステツプを行なうことができる。
然しながら、L2レベルのすべてのデータ・アレイ、ま
たはL2レベルのデイレクトリは、これらのステツプを
一度に一回しか遂行することができない。これらのリソ
ースは「複数ステツプ・リソース」と呼ばれる。
【0050】従来の技術は、複数ステツプ・リソースの
使用を請求する要求を許容しているが、そのような要求
が、使用している複数ステツプ・リソースを解放するま
で、請求した要求のために行なう処理ステツプが行なわ
れていない時でも、その複数ステツプ・リソースは他の
要求により使用することができない。従つて、従来技術
の下では、請求した要求のために行なう複数ステツプ・
リソースの処理ステツプの間で、複数ステツプ・リソー
スは使用することができず、複数ステツプ・リソース
が、請求した要求のためのすべての処理ステツプを完了
した後にだけ、その複数ステツプ・リソースは次の要求
に対して利用可能になる。
【0051】本発明は、要求がリソースを解放する時ま
で、要求に対してリソースを拘束するようなことはしな
い。上述のことは対照的に、本発明は、リソースの処理
ステツプの終了の時点でリソースを自動的に解放するこ
とによつて、たつた1つの処理ステツプだけしか、要求
に対してリソースを拘束しない。これは、リソースの処
理ステツプが完了した時にリソースを自動的に解放する
ただ1つの処理ステツプの拘束によつて、1処理ステツ
プだけの間、リソースを遅延する。次に、そのリソース
は、リソースが行なうことのできるすべての処理ステツ
プを必要とする他の任意の要求に対して、直ちに利用可
能となる。従つて、本発明は、順序の異なつた要求に対
するリソースの処理ステツプを任意の順序で継続して遂
行させることができる。
【0052】その結果、本発明は、他の要求によつて、
複数ステツプ・リソースを使用する一連の処理ステツプ
が完了される前に、複数ステツプ・リソースを任意の要
求によつて使用するのを可能にする。複数ステツプ・リ
ソースの処理ステツプが他の要求によつて使用されてい
なければ、非同期的な順序で複数ステツプ・リソースを
必要とする要求に対して、複数ステツプ・リソースによ
り遂行される処理ステツプの順序とは無関係に複数ステ
ツプ・リソースを使用するために介入することができ
る。
【0053】従つて、従来の技術において行なわれてい
た方法とは異なつて、本発明はストレージ要求によつて
必要とされるストレージ・リソースの複数個の処理ステ
ツプの間でストレージ・リソースを拘束しない。従来の
装置は、リソースに対して「要求ベース」の拘束をする
こと、つまり、ストレージ要求によつてストレージ・リ
ソースを拘束する(即ち、1つの要求がたつた1つのス
テツプしか含んでいないとか、複数個のステツプを含ん
でいるとかには関係がない)。然しながら、本発明は、
ストレージ・リソースに対して「単一の処理ステツプ・
ベース」の拘束をすること、つまり、1処理ステツプの
間だけストレージ・リソースを拘束する(要求がたつた
1つのステツプしか含んでいないとか、複数個のステツ
プを含んでいるかとは関係がない)。
【0054】上述の「複数ステツプ・リソースの処理ス
テツプをストレージ要求から独立させる」と言う概念
は、ストレージ要求を処理するリソースによつて行なわ
れる個々の処理ステツプを独立して使用することを可能
にしている。本発明の下において、各複数ステツプ・リ
ソースの処理ステツプは、ストレージ要求の複数ステツ
プ・リソースによつて遂行される「要求を処理する単
位」であると考えることができる。本発明は、各処理ス
テツプが独立して別個に開始し、そして、独立して別個
に終了することができるように、複数ステツプ・リソー
ス(1つ以上の処理ステツプを遂行するもの)を使用し
て、夫々の処理ステツプを独立させることで得ることの
できる利点を持つている。このことによつて、複数ステ
ツプ・リソースが待機状態の間にある時に、リソースの
任意の処理ステツプを、任意のストレージ要求によつ
て、使用することが可能となる。
【0055】複数ステツプ・リソースが要求によつて使
用される毎に、複数ステツプ・リソースの使用に必要な
処理ステツプの全体の順序の間で、複数ステツプ・リソ
ースがインターロツクされるように、複数ステツプ・リ
ソースを複数ステツプ・リソースによつて遂行される処
理ステツプの順序に結び付ける従来の技術と比較して、
本発明は全く異なつた技術を含んでいる。つまり、従来
の技術は、1つの要求がそのリソースの使用を完了する
まで、その要求がそのリソースを拘束するということで
ある。要求とリソースとをインターロツクした従来の技
術は、リソースが処理ステツプを遂行していない時で
も、そのリソースによつて遂行される異なつた処理ステ
ツプの動作の間においては、他の要求のためのすべての
処理動作を起すことができないことを生じる。
【0056】例えば、従来の技術において、ストレージ
要求がキヤツシユ・デイレクトリに無かつた時、取り出
し要求について下記の一連のステツプが完了されるま
で、キヤツシユ・デイレクトリ及びキヤツシユ・データ
・アレイ(2つのリソース)は、その要求に拘束される
(つまり、他のストレージ要求は、これら2つのリソー
スを利用することはできない)。上述の一連のステツプ
とは、キヤツシユのサーチが行われるステツプ、キヤツ
シユ・ミス信号が発生されるステツプ、キヤツシユ・ミ
ス信号に対してデータがMS(メーン・ストレージ)中
から取り出されるステツプ、データがキヤツシユのデー
タ・アレイ中に書き込まれるステツプ、そして、MSの
データのアドレスがキヤツシユ・デイレクトリ中に書き
込まれるステツプである。これらのステツプの各処理動
作は、非常に短いマシン・サイクル時間で行なわれる
が、これらのステツプの幾つかのステツプの間の待ち時
間は、上述の各動作の動作時間よりも遥かに長い時間を
必要とする。この長い時間とは、デイレクトリの中で要
求が無いことを検知した時から、キヤツシユ・データ・
アレイにデータが書き込まれる時間との間において、デ
イレクトリ及びデータ・アレイが、MSからデータを取
り出し、そしてMSにデータを戻すための待ち時間であ
つて、これは、他の要求によつてそのリソースが使用で
きない時間である。
【0057】本発明は、ストレージ要求の処理の完了の
前に、ストレージ・リソースを事前に拘束することを除
去する。本発明においては、リソースによつて行なわれ
る各処理ステツプの動作を夫々別個に独立して行なわせ
る。本発明は、各処理ステツプの終了の時点でストレー
ジ・リソースを自動的に解放することにより、ストレー
ジ・リソースの処理ステツプを独立させ、これにより、
リソースを必要とするすべての要求に対してリソースを
割り当てることができ、そして、リソースが遂行するこ
とのできるすべての処理ステツプを、現在の処理ステツ
プの前、または後において、リソースを使用する他の要
求に対して関係を持たせる必要がない。
【0058】本発明のストレージ要求の処理システムは
以下の特徴を持つている。即ち、それらの特徴とは、
(1) 前に受け取つた未完成の状態のストレージ要求
があるのを心配することなくストレージ要求を継続して
受け取ることができることと、(2) 処理を開始、ま
たは継続するために、処理を待つている未完成のストレ
ージ要求を保持するための待機用の通路を持つているこ
とと、(3) 複数のストレージ要求を同時に処理でき
ることと、(4) 処理されるストレージ要求を非同期
的に完成することができることとである。
【0059】実施例の詳細な説明 図2は本発明の実施例のストレージ要求の処理回路を示
す図である。このストレージ要求処理回路はコンピユー
タ・システム中のすべての中央処理装置(CPU)及び
I/Oプロセツサ(IOP)から受け取るストレージ要
求を処理し、そして、この回路は、システムのL2レベ
ルのストレージ要求を処理するための回路を持つてい
る。この処理回路は、L2レベルのキヤツシユの共通の
ストレージ・バツフア及びシステムのメーン・ストレー
ジ(MS)の両方の中のデータにアクセスするためのす
べてのストレージ要求を処理するばかりでなく、アクセ
スを伴わないタイプのストレージ要求も処理する。アク
セスを伴うタイプのストレージ要求は、CPUからイン
ストラクシヨンを取り出すコマンド、データを取り出す
コマンド、CPUからの16個までのストア要求、そし
てIOPから合計8個の要求を含んでいる。
【0060】ストレージ要求は夫々のストレージ要求レ
ジスタ11(または、入力レジスタ)によつて受け取ら
れる。各要求レジスタはストレージ要求の特定のリソー
ス、特定のCPU、またはIOPに対して用いられる。
また、各要求レジスタは、要求がパイプラインに転送可
能になる前に、含まれた要求が事前処理を必要(ニー
ド)とするか否かを表示するステータス(状態)フイー
ルドを含む「ニード・レジスタ」を持つている。
【0061】ニード(必要)の表示を持つていない要求
レジスタ中のすべての要求は、優先権付与回路13に要
求信号を与えることによつて優先権が与えられる。優先
権付与回路13は、1つ、またはそれ以上の有効な要求
が要求レジスタ中に存在している場合、ストレージ要求
パイプラインに入れる要求の1つに対して、各マシン・
サイクル毎に優先権を与える。優先権を与えられた要求
はストレージ要求パイプライン1(以下、単にパイプラ
インとも言う)の第1のステージ(段階)レジスタC1
に転送される。各要求は、パイプライン・レジスタC
1、C2、C3及びC4の順序でこれらのステージ・レ
ジスタを通して移動され、1マシン・サイクルの時間の
間、これらの各ステージ・レジスタの中に留まつてい
る。要求がパイプラインの終端に到達する前に、要求は
その処理を完了し、若し、要求がパイプライン処理を完
了したならば、要求は、ステージ・レジスタの中で無効
にされる。
【0062】プロセツサからストレージ要求パイプライ
ンへの入力:図2は本発明の実施例の回路図である。こ
の回路は複数個の要求レジスタ、即ち入力レジスタ、1
1−1乃至11−Nを持つており、各入力レジスタは夫
々のCPU、またはIOPからのストレージ要求(コマ
ンドの形式で)を受け取ることができる。各レジスタ1
1は、夫々のCPU、またはIOPに接続されており、
各レジスタ11はストレージ要求の発生源からのストレ
ージ要求を受け取るために用いられる。
【0063】入力レジスタ11に与えられた各要求は、
アドレス・ビツト(L3レベルにおけるデータ・ユニツ
トのアドレスを表示するビツト)を含んでいる。また、
各要求は、要求によつて遂行される動作(例えば、取り
出し動作、或はストア動作)を表示する動作ビツトと、
取り出し動作が取り出し要求によるものであるか、また
はストア要求によるものであるか否かとか、或は、取り
出し動作が、システム・ストレージにおいて行なわれる
のか、またはストレージ・キー・アレイ等のような特別
のアレイにおいて行なわれるのかといつたような、要求
の性質を表示するタグ(またはフラグ)ビツトとを含ん
でいる。
【0064】各入力レジスタ11は、「ニード・レジス
タ」12が関連されており、「ニード・レジスタ」12
は、要求を処理する前に満足されねばならない或る種の
条件が存在するか否かといつたような、ストレージ要求
を処理するパイプラインに対して、ストレージ要求が転
送される前に満足されねばならないニード(必要)を、
関連したレジスタ11中のストレージ要求が持つている
か否かの表示を含んでいる。各ニード・レジスタ12
は、「ノーニード(不必要)」状態ビツトにより、ある
いは、ゼロのような予め決められたビツトで、ノーニー
ド・レジスタにすることによつて、「ノーニード」状態
か、または「ニード」状態かの何れかを表示する。入力
レジスタ中の要求について「ノーニード」状態が存在す
る時にだけ、その要求はパイプラインに入ることができ
る。表示された「ニード」状態は、その要求がパイプラ
インに入ることを阻止し、「ニード」の条件が満たされ
るまで、「ニード」状態を持続する。
【0065】ノーニードの表示を持つ入力レジスタ11
中の現在の要求(複数の要求を含む)だけが、パイプラ
イン1に入るために競合することができ、パイプライン
を必要とする1つ、またはそれ以上のレジスタ11中に
「ノーニード」の表示を持つ要求がある限り、競合した
要求の内の1つの要求が、処理用のパイプラインに入る
ために、各マシン・サイクルで優先権が与えられ、そし
て、要求の処理を開始する。従つて、パイプラインは、
レジスタ11がノーニードの表示を持つ要求を含んでい
る限り、レジスタ11から各マシン・サイクル毎に要求
を受け取る。レジスタの内容は、要求の処理が完了さ
れ、処理完了の信号が要求装置に戻されるまで、有効に
維持される。
【0066】ストレージ要求パイプラインの構造:図2
において、ストレージ要求パイプラインは、シフトレジ
スタの態様で接続されているステージ・レジスタC1、
C2、C3及びC4で構成されていることが示されてお
り、この回路において、ストレージ要求は、ステージ・
レジスタC1から開始しC4で終る順番で1つのステー
ジ・レジスタから次のステージ・レジスタに並列でシフ
トされ、そして、各ステージ・レジスタは、1サイクル
の間だけストレージ要求を維持する。レジスタC1は、
優先権付与回路13によつて優先権を与えられたレジス
タ11からの各要求を受け取つて、ストレージ要求パイ
プライン内の第1の段階を与える。シフトレジスタの態
様で、各パイプライン・ステージ・レジスタは、パイプ
ライン中の前のステージ・レジスタ中の要求を受け取
り、そして、その要求を1マシン・サイクルの間だけ保
持し、次の処理サイクルのために、パイプライン中の次
のステージ・レジスタにその要求を転送する。
【0067】ストレージ要求の処理はステージ・レジス
タC1乃至C4中では行なわれない。各ステージ・レジ
スタは、ステージ・レジスタに関連した1つ、またはそ
れ以上のリソースを持つており、要求が夫々のステージ
・レジスタに保持されている1マシン・サイクルの間
で、関連した1つのリソースが処理ステツプを遂行す
る。
【0068】従つて、パイプラインの各ステージ・レジ
スタが要求を受け取つた時、そのレジスタは関連したリ
ソースにおいて要求の処理ステツプを開始する。リソー
スの選択の処理ステツプ及びリソース中で開始される処
理ステツプは、本明細書で「モード」ビツトと称されて
いる、ストレージ要求によつて担持されたステータス・
ビツトによつて決定される。
【0069】若し、必要なリソースがパイプラインのサ
イクルの初めで使用可能(動作中でない)ならば、パイ
プラインのステージ・レジスタ中の要求は、パイプライ
ンの段階のサイクルの間で行なわれる処理ステツプを獲
得する。若し、必要なリソースが使用可能でなければ、
その要求は、ストレージ要求パイプライン1から、選択
された待機用通路2、3の中に送られ、その要求が必要
とするリソースから、次の処理ステツプを獲得してその
要求がパイプラインを通る他の通路を通ることができる
まで、その要求は待機する。
【0070】従つて、この回路は1つの要求を転送する
のにパイプライン全体を通して4サイクルを取るから、
若し、必要なリソースがパイプラインの各段階において
利用可能ならば、要求が各パイプラインのステージ・レ
ジスタC1、C2、C3またはC4の中にある時、要求
がパイプラインの処理ステツプを完了するために、1マ
シン・サイクルよりも長い時間かかることはない。
【0071】待機用通路:パイプラインの段階によリ必
要とされるリソースが、夫々のパイプラインのサイクル
の開始時において、使用不能な場合には、パイプライン
中にある後続するストレージ要求の処理が停止されるの
を避けるために、要求は、パイプラインから、待機用通
路の中に転送される。要求は、必要な長さの時間の間、
待機用通路の中で待機する。
【0072】待機用通路中の要求が次のパイプラインの
処理動作を続ける準備が整つた時、その要求は、パイプ
ラインに再度入るために待機しているすべてのストレー
ジ要求のパイプラインに入る優先権を決定する上述の優
先権付与制御手段13から優先権を獲得する。パイプラ
インの処理を制御する準備が整つた待機中の各要求は、
すべてのプロセツサ要求が持つている優先権と競合す
る。この優先権の競合は、関連したニード・レジスタ1
2で表示されている「ノーニード」状態を持つ要求レジ
スタ11中の要求の間だけの競合である。
【0073】本発明の実施例においては、2つのタイプ
の待機用通路がある。1方のタイプは、遅延される取り
出し要求が待機する取り出し要求の待機用通路2であ
る。他方のタイプは、遅延されるストア要求が待機する
ストア要求の待機用通路3である。良好な実施例におい
て、4つの取り出し要求の待機用通路と、4つのストア
要求の待機用通路とがあり、1つの取り出し要求の待機
用通路と、1つのストア要求の待機用通路とは、図1に
示したL2レベルのデータ・アレイの4つのインターリ
ーブ、ITRLV1乃至4の各々と関連している。特定
の待機用通路は、要求のアドレス中のインターリーブ選
択特性と、要求が取り出し要求か、またはストア要求の
何れかであることとに従つて、パイプラインの保持要求
のために選択される。
【0074】各待機用通路は要求を保持するための2つ
のレジスタを含んでいる。取り出し要求の待機用通路は
レジスタ、LFAR1及びLFAR2を含んでいる。ス
トア要求の待機用通路はレジスタ、LSAR1及びLS
AR2を含んでいる。取り出し要求がLFAR2レジス
タの中にある時に、その取り出し要求が優先権を獲得す
る。
【0075】取り出し要求が待機用通路に入つた時、そ
の取り出し要求は、先ず、LFAR1の中に入れられ
る。取り出し要求がLFAR1にある間に、その取り出
し要求の優先権は、MS優先回路14中のL3レベルの
要求の優先権に対して競合する。このLFAR1中の要
求の競合は、ストア要求の待機用通路中の要求に対して
の競合と、パイプライン・レジスタC4中で完了された
処理ステツプを持つ要求に対しての競合である。L2レ
ベルにおいてそのデータが変更されたためにL2レベル
のエントリ(LRU回路によつてその要求に割り当てら
れたエントリ)がキヤスト・アウトされる必要があるか
否かを決めるための処理サイクルを、L2レベルのライ
ン変更アレイ中で得るために、LSAR1中のストア要
求は、パイプラインに入る優先権について競合する。し
かし、L2レベルに変更がなければ、L2レベルはL3
レベルのエントリと同じなので、LRUに割り当てられ
たエントリはキヤスト・アウトされる必要はない。
【0076】LFAR2及びLSAR1中で待機してい
る要求に関連した夫々のモード・レジスタ17及び18
中のモード・ビツトは、要求を処理するどちらのステツ
プが、待つている要求をパイプラインに再度入れること
を可能にするL3レベルのMS優先回路14に表示する
状態に達したかを表示するために、待機通路においてセ
ツトされる。
【0077】特別の要求は、システム・ストレージに対
して、要求により使用されるリソースに含まれた競合を
持たないリソースであつて、パイプラインの各段階にお
いて使用可能なリソースを必要とし、そして、これらの
特別の要求は待機用通路を必要としない。
【0078】取り出し動作に関して、待ち状態を持たな
いパイプライン動作(非待機パイプライン動作)の例
は、以下の通りである。即ち、パイプライン動作の第1
のサイクルC1によつて使用されるリソースは、ステー
ジ・レジスタC1中の取り出し要求によつてアクセスさ
れるL2レベルのキヤツシユ・デイレクトリである(L
2レベルのデイレクトリが入手可能であると仮定す
る)。L2レベルのデイレクトリのヒツトの表示はこの
要求を引き受ける。
【0079】L2レベルのデイレクトリの処理のC2の
サイクルの間で、この要求は、パイプライン動作の第2
のパイプライン・サイクルの間で、ステージ・レジスタ
C2中に受け取られる。C2のサイクルの間で使用され
るリソースは、例外的な状態の表示があるか否かを検査
するL2レベルの例外検出ハードウエアを含んでいる
(この例では、例外はないものと仮定する)。
【0080】C3のサイクルの間で、要求は、パイプラ
イン動作、即ちパイプライン処理の第3のパイプライン
・サイクルの間でステージ・レジスタC3中に受け取ら
れる。C3のサイクルの間で使用されるリソースは、L
2レベルのキヤツシユのデータ・アレイのインターリー
ブであり、このインターリーブは、C2のサイクルの間
で表示されるL2レベルのデイレクトリのヒツト表示か
ら得られたDUアドレスの2つの最低位ビツトの値を検
出することによつて選択される。アドレスされたDU
は、選択されたキヤツシユのインターリーブのデータ・
アレイから取り出される。
【0081】C4のサイクルにおいて、要求は、パイプ
ライン処理の第4パイプライン・サイクルの間で、ステ
ージ・レジスタC4中に受け取られる。C4のサイクル
の間で使用されるリソースは、選択されたL2レベルの
データ・アレイから取り出したDUを、要求プロセツサ
及びそのプロセツサのL1レベルのキヤツシユに転送す
るためのハードウエア、即ちデータ・バスである。これ
で、このパイプライン処理は終了される。
【0082】殆どの要求は待機用の通路を使用すること
なくストレージ・パイプラインを使用するものと考えら
れる。然しながら、待ちを必要とするストレージ要求は
比較的少ないけれども、若し、そのような待ちを必要と
する要求がストレージ要求はパイプライン1中で待機す
ることを許されるならば、持ちを許されたそのような要
求が、その待機時間の間、すべてのパイプライン要求の
処理を停止するので、待ちを必要とする要求はパイプラ
インの動作を著しく阻害する。
【0083】待機用通路を有するパイプライン動作:図
4、図5及び図6は、パイプラインの段階のサイクル及
びその待機用通路と関連したリソースの動作を説明する
ための流れ図である。
【0084】図4において、優先権処理を表わすボツク
ス31において、ストレージ要求は満たされるべき「ニ
ード」を持つていないこと、つまり、その要求はパイプ
ラインに入れるための優先権を獲得する候補であること
を確認するために、ニード・レジスタ12の内容がすべ
て0であることを検査する。ボツクス32は、パイプラ
インのステージ・レジスタC1に要求を転送する優先権
付与回路13によつて候補の要求に優先権を与えること
を示している。
【0085】ボツクス33はパイプライン・サイクル
(段階)C1の間で、L2レベルのデイレクトリ・リソ
ースによつて遂行される処理ステツプを表わしている。
この処理ステツプは、要求がデイレクトリ中に表示され
ているか否かを見い出すために、デイレクトリをサーチ
し、そして、L2レベルのデイレクトリの使用を得るこ
とに競合が存在するか否かを決定するテストを行なう。
【0086】C1のサイクルが完了された時に、要求
は、パイプラインの第2の処理サイクルの間で、ボツク
ス34及び35に示した競合処理動作を行なうことと、
ボツクス37、43及びC3に示したデイレクトリ・ヒ
ツトの処理動作を行なうこととのために、ステージ・レ
ジスタC2に転送される。
【0087】ボツクス34において、競合が検出された
か否かが、ボツクス33におけるC1のサイクルのテス
トの間で表示されたか否かが決定される。若し、競合が
表示されたならば、ボツクス35に進み、パイプライン
から要求を取り出して、入力レジスタの中にその要求を
差し戻し、そして、競合状態の存在を表示するために、
ゼロでない状態に(ニード状態)、関連したニード・レ
ジスタをセツトする。関連した要求がパイプラインに入
るための優先権に対して再度競合する前に、ニード状態
は満足されていなければならない。従つて、この要求
は、パイプラインに再度入力するためには、再び、優先
権付与回路13を通らねばならない。
【0088】取り出し要求(取り出し動作か、またはス
トア動作のいずれのための)が優先権を与えられ、そし
て、パイプラインのステージ・レジスタC1の中に入れ
られた時、その要求の一部であるMSのデータ・アドレ
スを用いて、L2レベルのキヤツシユ・デイレクトリ中
において、要求に対するサーチが行なわれる。次に、要
求は、次のマシン・サイクルにおいて、要求がパイプラ
イン処理をするのに可能な状態にあるか否かをテストす
る動作を行なうために、次のパイプライン・レジスタC
2に通過される。(必要に応じて、できるだけ早い時期
に取り出し動作を開始して、C2のサイクルの動作とそ
の取り出し動作とを重複させるために、この要求がC2
のサイクルにおいてテストされる前に、デイレクトリの
サーチ要求がC1において開始される。)
【0089】若し、要求されたリソースが利用可能でな
いことを、C2のサイクルのテスト動作が決定したなら
ば、その要求は「排除」され、そして、その要求は、パ
イプラインに入るための優先権を再度求めるために、入
力レジスタにおいて再度初期化される。その要求は、以
前に優先権を与えられたことがあることの表示を与え、
そして、必要とするリソース、または、見い出された競
合を識別するために、その要求に関連した「ニード」レ
ジスタがセツトされる。
【0090】従つて、若し、ステージ・レジスタC2中
の要求がパイプライン処理を行なうためには、可能な状
態ではないことが見い出されたならば、特別の処理を必
要とする例外状態を示す例外信号が出力される。これら
の例外状態の1つの状態は、要求がパイプライン処理に
未だ準備完了されていないことを表示する「ニードのセ
ツト」状態であり、この場合、要求は入力レジスタに差
し戻され、そして、関連した「ニード・フラグ」が関連
した「ニード」レジスタにセツトされる。「ニード」が
後で満足された時、要求は、パイプラインに入るための
優先権に対して再度競合することができる。
【0091】若し、ボツクス34において、競合がない
ことが見い出されたならば、ボツクス37において、C
1のサイクルのサーチの間で、デイレクトリ・ヒツト表
示、またはデイレクトリ・ミス表示がセツトされたか否
かが決定される。若し、デイレクトリ・ヒツト表示が表
示されたならば、ボツクス38に進み、選択されたアレ
イの中の要求されたデータを取り出すために、要求の中
のDUのアドレスを使用して、L2レベルのキヤツシユ
のデータ・アレイ(ITRLV1、2、3、または4)
が選択される。次に、要求は、パイプラインのステージ
・レジスタC4に転送されるボツクス39に進み、要求
が担持しているプロセツサのIDビツトに従つて、L2
レベルから、要求CPU、または要求IOPにデータを
転送するL2レベルのデータ・バスを選択する。
【0092】然しながら、ボツクス37において、L2
レベルのキヤツシユ・ミス表示が検出されたならば、L
2レベルのキヤツシユ・ミス表示は、要求されたデータ
がL2のキヤツシユにおいてアクセス不能であること
と、L3のシステムのメーン・ストレージからデータを
得るために、複数サイクルが必要であることとを表示す
る。次に、要求はパイプラインのステージ・レジスタC
3の中に転送され、ボツクス43において、実施例にお
いては、各インターリーブは夫々のL3のインターリー
ブに差し向けられた複数個の取り出し要求の待機用通路
の間で選択される夫々の取り出し要求の待機用通路と関
連されているので、そのMSのインターリーブの選択を
決定する要求中のアドレス情報(例えば、要求により担
持されているDUのアドレスの低位部分)を用いること
によつて、取り出し要求の待機用通路を選択する。
【0093】取り出し要求はL2レベルのエントリを必
要とし、取り出し要求のアドレスのL3の表示と関連情
報とを受け取る必要があるので、ボツクス46におい
て、L2のデイレクトリ中にスロツトが存在するか否か
を決定するために、パイプラインの段階のC3のサイク
ルの間でL2のデイレクトリのLRU回路へのアクセス
を行なう。次にボツクス47において、L2のスロツト
が利用可能であるか否かを決定し、若し、L2のスロツ
トが利用可能ならば、その取り出し要求によつてキヤス
ト・アウトは発生されず、キヤスト・アウトの動作は終
了される。
【0094】L2レベルにおいて、若し、スロツトが利
用可能でなければ、ボツクス47からボツクス48への
処理には進まない。つまり、スロツトが利用可能でない
場合には、L2レベルのスロツトのロケーシヨンが有る
か、無いかを見い出し、そして、若しL2レベルのスロ
ツトが見い出されなければ、L2レベルのキヤツシユ・
デイレクトリ中にスロツトを割り当てるためのLRUア
レイ及び回路を有する処理ステツプを用いるL2のキヤ
ツシユのスロツトの割り当を行なうボツクス48の処理
は行なわれないことを意味する。
【0095】ボツクス48において、スロツトの割り当
ては、C4のサイクルのパイプラインの段階動作の間の
処理ステツプによつて行なわれるが、LRUアレイ及び
回路リソースにより行なわれる上述の処理ステツプは、
取り出し要求のためにL2レベルのキヤツシユにスロツ
トを割り当てる。割り当てられたスロツトは、L2レベ
ルにおいて変化されたデータであつて、かつシステム中
のそのデータのバージヨンだけを含んでいる。この場
合、データは、取り出しデータがスロツト中に置かれる
前に、キヤスト・アウトされなければならない。然しな
がら、データが変更された時にだけ、キヤスト・アウト
が行なわれるので、割り当てられたスロツト中の現在の
すべてのデータが変更されたか否かが未だ決定されてい
ないから、この時点では、すべてのキヤスト・アウトは
将来の問題である。
【0096】L2のキヤツシユ・ミスがボツクス37か
らの出口を取らせない時、キヤツシユ・ミスのアドレス
は、L3レベルの4つのインターリーブされたデータ・
アレイの内のアドレスされた1つのアレイと、関連した
取り出し要求の待機用通路及びストア要求の待機用通路
とのために、留保を発生する。従つて、この実施例にお
いて、待機用通路の割り当ては、取り出し要求のL3レ
ベルのデータ・ユニツト(DU)のアドレスによつて行
なわれる。これらの待機用通路は、取り出しデータがこ
の実施例のL3レベルから返還された時に解放される。
(他の実施例において、待機用通路の割り当ては、待機
用通路の割り当てに、より柔軟性を持たせるために、よ
り複雑な態様で行なわれる。)
【0097】従つて、良好な実施例において、キヤスト
・アウトのストア要求の待機用通路及びそれに関連した
取り出し要求の待機用通路は、2つの関連した待機用通
路を見い出すためのL3レベルの取り出し要求のアドレ
スを用いることによつて常に容易に見い出すことができ
る。
【0098】また、ボツクス43において、C3のサイ
クルの間で、アドレスで選択された取り出し要求の待機
用通路中のLFAR1レジスタ中に取り出し要求がロー
ドされる。そして、ボツクス44において、LFAR1
の中の取り出し要求は、L3レベルのメモリにアクセス
するための優先サイクルの信号を、図2に示したL3レ
ベルの要求レジスタ16に送る。次に、この流れは図5
に示したボツクス61に進行する。
【0099】そして、若し、キヤツシユのスロツトが割
り当てられたならば、ボツクス49において、キヤスト
・アウトのアドレス(解放された取り出し要求の待機用
通路中のLFAR1中にある取り出し要求に割り当てら
れたL2のロケーシヨン中に含まれている)がロードさ
れ、これは、C5と呼ばれる次のサイクルで行なわれ
る。L3レベルからの取り出しデータが重ね書きをする
ために受け取られることによつて、割り当てられたスロ
ツト中に現在含まれているデータが破壊される前に、キ
ヤスト・アウトは必ず発生しなければならない。
【0100】(図6において、最終的なキヤスト・アウ
トの決定は、変更ビツト・アレイ・リソースにアクセス
し、そして、割り当てられたL2のスロツトのための変
更ビツトのステータスを検査する図6の処理を行なわせ
る。若し、変更ビツトがオンにセツトされていれば、こ
れは、割り当てられたロケーシヨン中の現在のデータが
変更されていることと、L2レベルのストア・イン・キ
ヤツシユが、最新のバージヨンの単なるコピーしか持つ
ていないことを表示する。この場合、システム中のデー
タの最新のバージヨンを維持するために、取り出しデー
タによつて、最新のデータが破壊される前に、システム
中のデータの最新のバージヨンは、L3レベル中にキヤ
スト・アウトされねばならない。)
【0101】ボツクス49において、選択されたストア
要求の待機用通路中のLSAR1の中に要求をロードし
た後、図6のボツクス81に進む。
【0102】アクセスを持たない特別のストレージ要求
は、夫々単一の処理ステツプのストレージ要求であり、
各要求は待機用通路を用いることなくパイプラインにお
いて処理することができる。この特別のストレージ要求
は、待ち状態に遭遇して、後続するストレージ要求のパ
イプライン処理の停滞を防止するために、待機用の通路
を探すような要求を強制するシステム内のストレージの
データにアクセスしなければならない要求である。
【0103】待機用通路の動作:ボツクス34及びボツ
クス37において、通常、要求はパイプラインから出な
ければならないか否かの決定がなされる。ボツクス34
において、競合が見い出された時に入力レジスタに要求
を戻すことによつて、要求をパイプラインから移動させ
る。ボツクス37において、要求したデータがL3のメ
ーン・ストレージから得られる前に、多数の待ちのサイ
クルが必要なので、L2のキヤツシユ・ミスが表示され
た時、取り出し要求はパイプラインから、取り出し要求
の待機用通路に移動される。そして、取り出し要求のた
めのL2のキヤツシユ・スロツトの割り当てのために、
キヤスト・アウトが必要とされる場合、ストア要求の待
機用通路が留保される(この通路は、取り出し要求の待
機用通路として同じL2のインターリーブ・データ・ア
レイに関連される)。
【0104】待機用通路中にある要求の処理は長い待機
時間の中に散布されているが、待機用通路中の要求の処
理は継続される。待機用通路中に保持されている要求の
処理は、待機時間の経過後、パイプラインの段階によつ
て制御されるリソースを必要とし、この場合、パイプラ
インで制御されるリソースは、リソースにアクセスする
ためにパイプラインを通して要求を再循環することによ
つてアクセスされる。要求はパイプラインを通つて、2
回、或はそれ以上の回数を再循環されるけれども、要求
はその待機用通路を解放しない。
【0105】従つて、待機用通路中の要求は、要求の処
理が開始されているけれども、要求が待機用通路を離れ
る前に、他の処理を必要とする要求であるか、または、
要求の処理が一時的に停止されている要求か、または、
要求の処理が完了されてしまつて、要求が次の処理ステ
ツプに移動される前に、要求が優先権の待ち行列の中に
戻されるのを単に待つているだけの要求かの何れかの要
求である。
【0106】特に、待機用通路中の要求は、仕事を「や
り直す」必要はないが、しかし、その要求は既に処理が
開始されていること、そしてその要求は次のステツプに
行く機会を待つているだけであることには注意を払う必
要がある。要求のやり直しは、ボツクス34において、
競合があることが見い出された時だけに行なわれるが、
要求は待機用通路には入れられず、その要求は、そのパ
イプライン処理を最初からのやり直しを開始するため
に、パイプラインから入力レジスタに移動される。従つ
て、待機用通路に送られたストレージ要求は再試行され
ず、要求の処理が単に続けられるだけである。
【0107】「モード」ビツトは待機用通路において要
求と関連付けられている。モード・ビツトは、要求がパ
イプラインに再度入れられた時、次に必要な処理ステツ
プを表示するために、待機用通路のモード・レジスタ1
7、または18の中に置かれている。
【0108】モード・ビツトは待機用通路においてセツ
トされ、そして、次に必要とされる処理ステツプを表示
するために、要求によつて使用される。モード・ビツト
がパイプラインに再度入れられた時に、それらのビツト
は、要求によつて担持され、そして、モード・ビツト
は、パイプラインの段階が要求のための処理ステツプを
遂行する段階かということと、どの処理ステツプがパイ
プラインの段階で遂行されるか否かということとを、パ
イプラインの各段階に対して表示する(要求がその段階
に到達した時)。
【0109】待機用通路中の要求がパイプライン中に再
度入れることを求めた時、その要求は、他のすべての要
求に対して完全に非同期的な態様で、パイプラインに入
る優先権を争う。待機用通路中の要求に対して、より高
い優先権を与えることはできるけれども、このことは必
ずしも必要ではない。
【0110】取り出し要求の待機用通路の処理:図5は
取り出し要求の待機用通路中で行なわれる処理ステツプ
を示している。LFAR1の中で待機している取り出し
要求を表わしているボツクス61において、LFAR1
は取り出し要求にアクセスすために、L3のメーン・ス
トレージへアクセスする優先権を要求する。L3レベル
が要求を受け取つたことを表示するL3のコントローラ
から、信号が受け取られるまで、要求はLFAR1の中
で待機する。次に、取り出し要求は、LFAR1からL
FAR2に転送される。ボツクス62はL3のDUの返
還を表わす。L3のデータの返還のための待ちは多数の
サイクルを必要とする。
【0111】また、ボツクス62は、割り当てられたL
2のデイレクトリのエントリが取り出し要求を表示する
ために更新されなければならないことを表示するため
に、要求(LFAR2の中の)と関連付けられているモ
ード・レジスタ17中にモード・ビツトをセツトする。
【0112】ボツクス63において、必要なキヤスト・
アウトは完了されているか否か、あるいは、キヤスト・
アウトは必要ないこととを決定するためのチエツクを行
なう。若し、結果が肯定的ならば、ボツクス64におい
て、パイプラインの優先権付与回路13に対して、候補
の要求として、LFAR2の中の要求を表示し、これに
より、その要求がパイプライン中に入つた時、L2のキ
ヤツシユ中の割り当てられたスロツトに書き込むことが
できる(ボツクス66)。デイレクトリのニードの更新
を表示するために、モード・ビツトがLFAR2にセツ
トされる。
【0113】ボツクス67において、LFAR2の中の
要求は、ボツクス68でL2のデイレクトリを更新する
ために、パイプライン中へ要求を再度入れるためのパイ
プラインの優先権付与回路に再度与えられる。そして、
モード・ビツトはリセツトされ、その取り出し要求の待
機用通路中に受け取られるべき次の取り出し要求の準備
をする。次に、プロセツサ要求の処理は終了する。
【0114】ストア要求の待機用通路の処理:図6は、
キヤスト・アウトが行なわれる時にだけ使用されるスト
ア要求の待機用通路の処理の流れ図を示している。キヤ
スト・アウトは、取り出し要求に割り当てられたL2レ
ベルのキヤツシユ・ロケーシヨン中のデータが変更され
た時にだけ必要である。L2のキヤツシユからのデータ
のキヤスト・アウトは、L3レベルから取り出されたデ
ータが、L2のキヤツシユの同じロケーシヨン中に書き
込まれる前に完了されねばならない。キヤスト・アウト
の処理ステツプの最初の処理ステツプは、関連した取り
出し動作のための開始処理ステツプと同時に行なうこと
ができる。
【0115】ボツクス81において、キヤスト・アウト
されるDUに対してストア要求があるか否かを決めるた
めに、パイプライン中の各ストア要求と、他の待機用通
路中の要求とのアドレスをテストする。これは、パイプ
ラインの中か、または他のストア要求の待機用通路の中
にあるすべてのストア要求のDUのアドレスと、キヤス
ト・アウトのアドレスとの比較を含んでいる。若し、キ
ヤスト・アウトのアドレスと同じストア要求が見い出さ
れたならば、キヤスト・アウト処理は、次のボツクス8
2の動作に移る前に、競合する他のすべてのストア要求
が完了するのを待たなければならない。
【0116】ボツクス82に入ると、変更ビツト・アレ
イのリソースがパイプライン中で次に用いられることを
表示するために、モード・レジスタ18がLSAR1に
関連付けられ、そして、LSAR1の要求は、ボツクス
83で表わされているように、パイプラインに再度入れ
るための優先権を獲得するためのパイプラインの優先権
付与回路13に与えられる。LSAR1の要求がパイプ
ラインに入るための優先権を獲得した時、ボツクス83
において、肯定的な出口、つまりイエス(YES)のラ
インに出る。
【0117】キヤスト・アウト要求によつてパイプライ
ンを通る次の転送は、キヤスト・アウト要求が担持して
いるモード・ビツトによつて制御される。これらのモー
ド・ビツトは、C1及びC2のサイクルのパイプライン
の段階の処理ステツプは取られないことを表示するが、
C3のサイクルのパイプラインの段階の処理ステツプは
変更ビツト・アレイのリソースによつて行なわれること
を表示する。次に、ボツクス84において、変更ビツト
・アレイにアクセスされ、そして、取り出し要求に割り
当てられたL2のスロツトに関連した変更ビツトが読み
取られる。次に、ボツクス86において、割り当てられ
たL2のロケーシヨンがキヤスト・アウトを必要とする
か否かを決定するために読み取られた変更ビツトの状態
がテストされる。若し、L2のロケーシヨンの現在のD
U中には変更がない旨の表示が、変更ビツトにより与え
られたならば、キヤスト・アウトは必要とされない。こ
の場合には、ボツクス87において、取り出し要求のア
ドレスを書き込むことによつて、そのL2のスロツト中
の古いデータに重複書き込みが行なわれる。
【0118】然しながら、若し、L2のロケーシヨンの
DUに変更が与えられたことを変更ビツトが表示したな
らば、キヤスト・アウトが割り当てられたL2のキヤツ
シユのロケーシヨン中の古いデータのキヤスト・アウト
が必要であることを表示するために、キヤスト・アウト
標識子がセツトされる。この場合には、ボツクス86の
イエスの出口からボツクス91に移り、ボツクス91に
おいて、LSAR1の中の割り当てられたL2のエント
リのアドレスはLSAR1からLSAR2に移動してキ
ヤスト・アウトのアドレスになる。ボツクス92におい
て、関連したL2のデータ・アレイ中のインターリーブ
のDUがキヤスト・アウト・バツフア中にロードされ
る。次に、ボツクス93において、L3の優先権がLS
AR2中の現在の要求に与えられた時に、L3から取り
出されるべき新しい取り出し要求のアドレスによつてデ
イレクトリが更新される。受け取られたL3の取り出し
データがL2のデータ・アレイに書き込まれた時、プロ
セツサ要求のこの処理は終了する。
【0119】ストア要求の待機用通路と取り出し要求の
待機用通路との比較:依存性のない要求はペナルテイ無
しで処理されるけれども、内部的な依存性を持つ要求が
正しい順序で処理されることを保証するために、各待機
用通路中の比較及び制御ロジツクが用いられる。例え
ば、テストされた要求は前にストアされた要求に対して
依存していないことを決定するために、他の要求(パイ
プライン及び待機用通路中の要求)に対して、各要求
(処理されるステツプを持つている要求)のためのテス
トを行なう。
【0120】従つて、すべてのペンデイング(未処理)
のストア要求を検出するために、パイプライン中の各要
求は、すべての他の要求装置のアドレス(すべての待機
用通路のLSAR及びLFAR中のアドレスを含む)に
対して比較されるアドレスを持つている。これらの比較
は、同じアドレスが適当な順序で取り扱われることを保
証する(例えば、前のストア要求を同じアドレスに従つ
て取り出すこと)。比較−同一の状態を持たないアドレ
スは、できるだけ速く処理することができ、他のすべて
の要求と非同期で処理することができる。
【0121】
【発明の効果】本発明は、リソースへのアクセス要求を
制御するための新規なストレージ要求パイプライン方式
を与え、しかも、このパイプライン方式において、リソ
ースへのアクセス要求を停滞させることなく、動作を進
行させる。
【図面の簡単な説明】
【図1】本発明の実施例を含む複数プロセツサ・システ
ムのブロツク図である。
【図2】本発明の実施例における取り出し要求の通路及
びストア要求の通路の異なつたタイプの通路のハードウ
エアを説明するためのブロツク図である。
【図3】本発明の実施例中の待機している取り出し要求
の通路と、待機しているストア要求の通路との間にある
比較用ハードウエアを示す図である。
【図4】図2及び図3のハードウエア中で遂行される処
理ステツプを説明するための流れ図である。
【図5】図2及び図3のハードウエア中で遂行される処
理ステツプを説明するための流れ図である。
【図6】図2及び図3のハードウエア中で遂行される処
理ステツプを説明するための流れ図である。
【図7】L2レベルのデイレクトリのリソースを示す図
である。
【図8】パイプラインに連結されたL2レベルの変更ラ
イン表示アレイを示す図である。
【図9】L2レベルのインターリーブ・データ・アレイ
中の取り出し要求に使用されるL2レベルのデイレクト
リのリソースのためのタイミング制御を説明するための
図である。
【図10】L3レベルのメーン・ストレージからのデー
タ・ユニツトをL2レベルのインターリーブのデータ・
アレイの中にストアするために、L3レベルの取り出し
バツフアの転送のタイミング制御を説明するための図で
ある。
【図11】L2レベルのキヤツシユ中の新しいロケーシ
ヨンを得るためのLRUの制御タイミングを説明するた
めの図である。
【図12】キヤスト・アウト・バツフアのリソースを通
してL2レベルのキヤツシユからL3レベルのメーン・
ストレージへのキヤスト・アウトの制御のタイミングを
説明するための図である。
【符号の説明】
1 ストレージ要求パイプライン 2 取り出し要求の待機用通路 3 ストア要求の待機用通路 11 ストレージ要求レジスタ(入力レジスタ) 12 ニード・レジスタ 13 要求がパイプラインに入るための優先権付与回路 14 MS(メーン・ストレージ)優先回路 16 L3レベルの要求レジスタ 17、18 モード・レジスタ C1、C2、C3、C4 パイプライン中のステージ・
レジスタ L1 ストレージ階層中の第1のレベル L2 ストレージ階層中の第2のレベル L3 ストレージ階層中の第3のレベル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンネ・エリザベス・ビアース アメリカ合衆国ニューヨーク州、ポーキプ シー、イニス・アベニュー 9番地 (72)発明者 ニール・テイラー・クリステンセン アメリカ合衆国ニューヨーク州、ワッペン ジー・フォールス、ブラザース・ロード 23 番地 (72)発明者 レオ・ジェームス・クラーク アメリカ合衆国ニューヨーク州、ホープウ エル・ジャンクション、ストームビル・ロ ード 8番地 (72)発明者 クリスチーヌ・コミンス・ジョーンズ アメリカ合衆国ニューヨーク州、ポーキプ シー、ローン・ドライブ 3番地 (72)発明者 マシュー・アンソニー・クリゴウスキー アメリカ合衆国ニューヨーク州、ホープウ エル・ジャンクション、タマラック・ドラ イブ 11番地 (72)発明者 ケビン・フランクリン・レイク アメリカ合衆国ニューヨーク州、プレザン ト・バレー、フリーダム・ロード 97C番 地

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 各々がプライベート・キヤツシユ(L1
    レベル)を持つ複数個のCPUによつて共有されている
    メーン・ストレージ(L3レベル)を有する複数プロセ
    ツサ・システムにおいて、 メーン・ストレージのために準備されている時に、L1
    レベルのキヤツシユからの複数個のストレージ要求を保
    持するためのストレージ要求パイプライン手段と、 L1レベルのキヤツシユの要求を受け取り、そして、優
    先権が与えられた時に、上記パイプライン手段に要求を
    入れる優先権付与手段と、 上記パイプライン手段から要求を受け取り、該要求によ
    つて必要とされるリソースであつて現在使用することの
    できないリソースを待つか、あるいは、複数サイクルの
    処理ステツプが該要求のためのリソースにより遂行され
    ている間待機するための、上記パイプライン手段に結合
    された待機用通路手段を具備し、要求が待機用通路中で
    保持されている間に、他の要求が上記パイプライン手段
    で処理され、さらに上記パイプライン手段に要求を再度
    入れるために、待機している要求の待機時間が終了した
    時に、待機している要求を、上記優先権付与手段に与え
    るための上記待機用通路手段の出力手段を含む複数プロ
    セツサ・システム。
  2. 【請求項2】 各々がプライベート・キヤツシユ(L1
    レベル)を持つ複数個のCPUによつて共有されたメー
    ン・ストレージ(L3レベル)と、L1レベルのキヤツ
    シユ・ミスを持つ要求によつてアクセスされる、上記プ
    ライベート・キヤツシユとメーン・ストレージの間の共
    有キヤツシユ(L2レベル)とを有する複数プロセツサ
    ・システムにおいて、 L2レベルのキヤツシユ、またはメーン・ストレージの
    ために準備されている時に、L1レベルのキヤツシユか
    らの複数個のストレージ要求を保持するためのストレー
    ジ要求パイプライン手段と、 L1レベルのキヤツシユの要求を受け取り、そして、優
    先権が与えられた時に、上記パイプライン手段に要求を
    入れる優先権付与制御手段と、 上記パイプライン手段から要求を受け取り、該要求によ
    つて必要とされるリソースであつて現在使用することの
    できないリソースを待つか、あるいは、複数サイクルの
    処理ステツプが該要求のためのリソースにより遂行され
    ている間待機するための、上記パイプライン手段に結合
    された待機用通路手段を含み、要求が待機用通路に保持
    されている間に、他の要求が上記パイプライン手段によ
    つて処理され、 上記パイプライン手段に要求を再度入れるために、使用
    できなかつたリソースが使用できるようになつた時に、
    待機している要求を、上記優先権付与手段に与える待機
    用通路手段の出力手段とからなる複数プロセツサ・シス
    テム。
  3. 【請求項3】 各々がプライヘート・キヤツシユ(L1
    レベル)を持つ複数個のCPUによつて共有されたメー
    ン・ストレージ(L3レベル)と、L1レベルのキヤツ
    シユ・ミスを持つ要求によつてアクセスされる、上記プ
    ライベート・キヤツシユとメーン・ストレージの間の共
    有キヤツシユ(L2レベル)とを有する複数プロセツサ
    ・システムにおいて、 L1レベルのキヤツシユからストレージ要求を保持する
    ための複数個の段階を有するストレージ要求パイプライ
    ン手段を含み、該パイプライン手段の段階は、L2レベ
    ルのキヤツシユ・デイレクトリにアクセスするために、
    与えられた所定のサイクル速度で要求を処理し、さら
    に、 L1レベルのキヤツシユの要求を受け取り、そして、優
    先権が与えられた時に、上記パイプライン手段に要求を
    入れる優先権付与手段と、 上記パイプライン手段から要求を受け取り、該要求によ
    つて必要とされるリソースであつて現在使用することの
    できないリソースを待つか、あるいは、複数サイクルの
    処理ステツプが該要求のためのリソースによつて遂行さ
    れている間待機するための、上記パイプライン手段に結
    合された待機用通路手段と、 上記パイプライン手段に要求を再度入れるのを可能にす
    るために、待機していたリソースが使用できるようにな
    つた時、待機している要求を上記優先権付与手段に与え
    る待機用通路手段の出力手段を含み、上記優先権付与手
    段によつて受け取られたすべての要求は上記パイプライ
    ン手段に初めて、または再度入るために競合をすること
    を特徴とする複数プロセツサ・システム。
  4. 【請求項4】 上記パイプラインの各段階はストレージ
    にアクセスする要求を準備するために、要求に必要なリ
    ソースに対して処理ステツプを遂行することを特徴とす
    る請求項3に記載の複数のプロセツサ・システム。
  5. 【請求項5】 上記待機用通路に結合された上記パイプ
    ライン手段内の結合段階と、該段階のステツプで処理さ
    れるべきか、あるいは、待機用通路に送られるべきかを
    決めるために、上記結合段階にある要求によつて必要と
    されるリソースの使用可能状態をテストする手段とを含
    む請求項4に記載の複数のプロセツサ・システム。
  6. 【請求項6】 待機用通路中で待機している要求のため
    に必要なリソースが使用可能になつた時を表示するため
    のリソース解放手段と、上記パイプライン手段に再度入
    れるために、優先権付与手段に要求を送る手段とを含む
    請求項5に記載の複数のプロセツサ・システム。
  7. 【請求項7】 上記パイプライン手段内において、待機
    用通路に結合された結合段階と、リソースの処理及びリ
    ソースの待ちによつて、他の要求のパイプライン処理が
    遅延するのを防止するために、複数の処理サイクルが、
    使用可能なリソース、または、使用不可能なリソースの
    ために必要とされる時に、待機用通路中へ要求を差し向
    ける手段とを含む請求項4に記載の複数のプロセツサ・
    システム。
  8. 【請求項8】 複数サイクルのステツプが他の要求のパ
    イプライン処理を遅らせるのを防ぐために、待機用通路
    中に保持された要求のための複数サイクル・リソースの
    処理ステツプが終了する時を表示するリソース解放手段
    を含む請求項7に記載の複数のプロセツサ・システム。
  9. 【請求項9】 他の要求の処理がパイプラインの中で継
    続している時に複数個の要求を保持させるために、上記
    パイプライン手段の1つ、またはそれ以上の段階に夫々
    結合された入力を有する複数個の待機用通路手段を含む
    請求項4に記載の複数のプロセツサ・システム。
  10. 【請求項10】 他の要求の処理がパイプライン中で継
    続している時に、複数個の要求を保持させるために、上
    記パイプライン手段の異なつた段階に夫々結合された入
    力を異なつたタイプの複数個の待機用通路手段を含む請
    求項4に記載の複数のプロセツサ・システム。
  11. 【請求項11】 他の要求の処理がパイプラインの中で
    継続している時に複数個の要求を保持させるために、上
    記パイプライン手段の1つ、またはそれ以上の段階に夫
    々結合された入力を有する複数個の待機用通路手段を含
    むことと、異なつた待機用通路中の要求は、異なつたス
    トレージのインターバルをアドレスすることとを特徴と
    する請求項4に記載の複数のプロセツサ・システム。
  12. 【請求項12】 取り出しタイプの待機用通路手段及び
    ストア・タイプの待機用通路手段を含むことと、他の要
    求の処理がパイプライン中で継続している時に、取り出
    しタイプの待機用通路手段は、取り出し要求の待機用通
    路中に、複数個の取り出し要求を同時に保持させるため
    に、上記パイプライン手段の1つの段階に接続された入
    力を持ち、かつ、ストア・タイプの待機用通路手段は、
    ストア要求の待機用通路中に複数個のストア要求を同時
    に保持させるために、上記パイプライン手段の他の段階
    に接続された入力を持つていることとを特徴とする請求
    項11に記載の複数のプロセツサ・システム。
  13. 【請求項13】 取り出しタイプ及びストア・タイプの
    各待機用通路手段は、パイプラインに再度入れるため
    に、任意の待機用通路において待機時間を終了する要求
    を付勢するための優先権付与手段に接続された出力手段
    を持つていることを特徴とする請求項12に記載の複数
    のプロセツサ・システム。
  14. 【請求項14】 複数個の取り出しタイプの待機用通路
    手段は、夫々のストレージのインターリーブにアクセス
    するために待機する要求を受け取るために、異なつたス
    トレージのインターリーブに夫々関連されていることを
    特徴とする請求項11に記載の複数のプロセツサ・シス
    テム。
  15. 【請求項15】 複数個のストア・タイプの待機用通路
    手段は、夫々のストレージのインターリーブにアクセス
    するために待機する要求を受け取るために、異なつたス
    トレージのインターリーブに夫々関連されていることを
    特徴とする請求項11に記載の複数のプロセツサ・シス
    テム。
JP3348392A 1991-01-16 1991-12-05 複数プロセツサ・システム Pending JPH0773035A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64226491A 1991-01-16 1991-01-16
US642264 1991-01-16

Publications (1)

Publication Number Publication Date
JPH0773035A true JPH0773035A (ja) 1995-03-17

Family

ID=24575872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3348392A Pending JPH0773035A (ja) 1991-01-16 1991-12-05 複数プロセツサ・システム

Country Status (4)

Country Link
EP (1) EP0495167A3 (ja)
JP (1) JPH0773035A (ja)
BR (1) BR9200053A (ja)
CA (1) CA2056716A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590309A (en) * 1994-04-01 1996-12-31 International Business Machines Corporation Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array
GB2382422A (en) * 2001-11-26 2003-05-28 Infineon Technologies Ag Switching delay stages into and out of a pipeline to increase or decrease its effective length
US8688880B2 (en) 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
KR101667772B1 (ko) 2012-08-18 2016-10-19 퀄컴 테크놀로지스, 인크. 프리페칭을 갖는 변환 색인 버퍼

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113648A (ja) * 1986-08-27 1988-05-18 アムダ−ル コ−ポレ−シヨン キャッシュ記憶待ち行列

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58222361A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
CA1221464A (en) * 1983-12-26 1987-05-05 Hidehiko Nishida Data processor system having improved data throughput of multiprocessor system
GB8613068D0 (en) * 1986-05-29 1986-07-02 Univ Manchester Delay management
CA1324679C (en) * 1989-02-03 1993-11-23 Michael A. Gagliardo Method and means for interfacing a system control unit for a multi-processor system with the system main memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113648A (ja) * 1986-08-27 1988-05-18 アムダ−ル コ−ポレ−シヨン キャッシュ記憶待ち行列

Also Published As

Publication number Publication date
EP0495167A2 (en) 1992-07-22
CA2056716A1 (en) 1992-07-17
EP0495167A3 (en) 1996-03-06
BR9200053A (pt) 1992-09-08

Similar Documents

Publication Publication Date Title
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US4394731A (en) Cache storage line shareability control for a multiprocessor system
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
US6226713B1 (en) Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem
JP3875738B2 (ja) ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US5875472A (en) Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US6430654B1 (en) Apparatus and method for distributed non-blocking multi-level cache
US5095424A (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
US6816947B1 (en) System and method for memory arbitration
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
US8131935B2 (en) Virtual barrier synchronization cache
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
JPH0561770A (ja) データ処理システムのコヒーレンス手段
EP1202180A1 (en) Scalar data cache for a vector processor
US8190825B2 (en) Arithmetic processing apparatus and method of controlling the same
US20090106498A1 (en) Coherent dram prefetcher
JP2005533295A5 (ja)
JPH0670779B2 (ja) フェッチ方法
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US6202126B1 (en) Victimization of clean data blocks
US6496917B1 (en) Method to reduce memory latencies by performing two levels of speculation
JP2001222468A (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法