JP3583183B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP3583183B2 JP3583183B2 JP05757695A JP5757695A JP3583183B2 JP 3583183 B2 JP3583183 B2 JP 3583183B2 JP 05757695 A JP05757695 A JP 05757695A JP 5757695 A JP5757695 A JP 5757695A JP 3583183 B2 JP3583183 B2 JP 3583183B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- shared resource
- cycle
- bus
- control
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
【産業上の利用分野】
本発明は、複数の構成要素モジュールを有するコンピュータ装置に関し、詳細には、どのモジュールが特定の装置の資源を使用するかを決定する際にモジュールによって使用できる調停プロトコルを実施するデータ処理装置に関する。
【0002】
【従来の技術】
コンピュータ装置は一般に、プロセッサ、メモリ、入出力装置など複数の構成要素と、2つ以上の構成要素間で情報を転送するための共用バスとを有する。構成要素は一般に、それぞれ、1つまたは複数のプロセッサ、メモリ、ないし入出力装置を含むことができる、構成要素モジュールの形でバスに結合される。情報は、それぞれ、モジュールがバスの制御を有し、限られた量の情報をバス上で転送し、あるいはドライブすることを許可される、バス「サイクル」中にバス上で構成要素モジュール間で送られる。モジュールは、従来型の「読取り」トランザクションや「書込み」トランザクションなど、完了するのに1サイクル以上かかるトランザクションをバス上で相互に送ることによって通信する。
【0003】
通常、所与のサイクルに共用バス上で情報を送り、あるいはドライブできるモジュールは1つだけである。したがって、どんな共用バス装置でも、特定のサイクルにどのモジュールがバス上で情報をドライブする資格をもつかを判定するためのバス「調停」方法をもたなければならない。多数の従来型のバス調停方法が利用可能である。大部分の調停方法では、共用バス中の各モジュールが、バスをドライブしたいときに信号を生成し、1つまたは複数のプロセッサ上で実施されるアルゴリズムが、どのモジュールが所与のサイクル中にバスをドライブする資格をもつかを判定する。
【0004】
従来型の調停方法は一般に、各モジュールが発行する必要があるトランザクションを進行できるように、バスの使用を求める各モジュールがそのようにすることを許可するように設計される。たとえば、従来型のラウンド・ロビン調停方法では、モジュールは事実上、調停優先順位のために待機する。待ち行列の始めにあるモジュールは、次の利用可能なバス・サイクル中にバスを勝ち得て、次いで、待ち行列の終りに置かれる。一般に、このようなモジュールの待機は、モジュールの順位を定義し、待ち行列の始めにあると考えられるモジュールを指すポインタを使用することによって実施される。待ち行列の始めにあるモジュールは、次の利用可能なサイクルのために調停を勝ち得る。待ち行列の始めにあるモジュールが調停に勝利した後、ポインタは、定義された順序に従って次のモジュールに進む。各モジュールがバスを制御する機会をもった後、ポインタは、順序における最初のモジュールに戻る。このように、各モジュールは、ある程度規則的にバスを制御する機会を保証され、それによって、発行する必要があるトランザクションを進行することができる。ラウンド・ロビン方法よりもずっと複雑な多数の従来型の調停方法が利用可能である。しかし、一般に、どんな調停方法でも、バスを求める各モジュールがそのようにする機会をもち、したがって、進行できるようにすることが望ましい。
【0005】
モジュールが調停に勝利したとき常にトランザクションを発行できる場合、すべてのモジュールに進行が保証される。しかし、ある種のバス装置では、モジュールは事実上、あるサイクル中だけある種のトランザクションを発行するのを妨げられる。たとえば、入出力トランザクションは、あるサイクル中に禁止され、あるいは入出力モジュール自体がビジー過ぎて新しいトランザクションを受け入れられないとき、発行された後に打ち切られる。同様に、コンピュータ装置用のメモリ制御装置がビジー過ぎて新しいトランザクションを処理のために受け入れることができない場合、メモリ制御装置が再び新しいトランザクションを受け入れられるまで、新しいメモリ関連トランザクションは禁止され、あるいは打ち切られる。打ち切られ、あるいは発行することを禁止されたトランザクションは、トランザクションが事実上発行できるようになるまで、関連するモジュールによって保持される。
【0006】
【発明が解決しようとする課題】
あるサイクル中に事実上、あるトランザクション・クラスを発行できないバス装置では、モジュールが、望ましくないほど長い期間中、遅延し、あるいは転送を禁止される可能性がある。たとえば、モジュールが入出力装置にデータを書き込むためにバスの制御のための調停を行ったが、事実上入出力トランザクションを発行できないサイクル中にバスの制御を得ることがある。このモジュールは通常、次いで、バスの制御を放棄し、ある期間中だけ他のモジュールに対してより低い優先順位を与えられる(たとえば、ラウンド・ロビン調停プロトコルでは、このモジュールは待ち行列の終りに置かれる)。次いで、このモジュールがトランザクションを発行して進行できるようにするには、再び調停に勝利するまで待機しなければならない。このモジュールがより低い優先順位である間、そのモジュールが発行したいトランザクションが一時的に許可されることがある。しかし、このモジュールが再びバスの制御を勝ち得るまでに、このモジュールが発行したいトランザクションが再び禁止されることがある。これは、このモジュールが望ましくないほど長い期間中バスを勝ち得るたびに行われる。したがって、このモジュールは、望ましくないほど長い期間中、進行することができない。
【0007】
したがって、あるトランザクション・クラスを1バス・サイクル以上の間バス上で発行できない場合でも、各モジュールを進行できるようにする調停方法が必要がある。
【0008】
したがって、本発明の一目的は、改良された多重調停方法を適用するデータ処理装置を提供することである。
【0009】
本発明の他の目的は、共用資源の使用のための調停を行う各モジュールが、その資源を望ましい方法で使用できるときにその資源を制御できるようにする調停方法を適用するデータ処理装置を提供することである。
【0010】
本発明の他の目的は、あるトランザクション・クラスが事実上、1バス・サイクル以上の間禁止される場合でも、バスの使用を求める各モジュールが進行できるようにするバス調停方法を適用するデータ処理装置を提供することである。
【0011】
本発明のこれらおよびその他の目的は、以下の本発明および好ましい実施例の詳細な説明、添付の図面、ならびに特許請求の範囲から当業者に明らかになろう。
【0012】
【課題を解決するための手段】
大ざっぱに言えば、本発明は、共用資源を使用する各構成要素が進行できるようにする調停方法を適用するデータ処理装置である。多数のモジュールを接続するためのバス装置に関して本発明を説明する。しかし、当業者には、この調停方法が他の共用資源に適用できることが明らかになろう。
【0013】
本発明による共用バス装置は、バスと、バスに結合された1組の構成要素モジュールと、各サイクル中にどのモジュールがバス上でトランザクションを発行する資格をもつかを判定するための調停プロセッサとを含む。任意の所与の時間にバス上でトランザクションを発行する資格をもつモジュールは1つだけであり、モジュールは、バス・サイクルを定義する最小期間中だけバスを制御する。
【0014】
トランザクションは、2つ以上のクラスに分割される。事実上、1バス・サイクル以上の間、少なくとも1つのトランザクション・クラスを発行できない。
【0015】
調停プロセッサは、トランザクションの発行を求める各モジュールが1サイクル以上の間バスを制御する資格を与えられるようにする。調停プロセッサはさらに、所与のクラスのトランザクションの発行を求める各モジュールが、そのクラスのトランザクションを事実上発行できないバス・サイクル中にバスの制御を得られるようにする。
【0016】
本発明は、共用コンピュータ・バスなどの共用資源を使用する各構成要素が進行できるようにする調停方法を適用する。本発明に適用する共用バス装置では、構成要素モジュールは、1サイクル以上の間のバスの制御のための調停を行い、そのモジュールがバスを制御するサイクル中にバス上でトランザクションを送る。トランザクションは、1組のトランザクション・クラスとして分割される。あるバス・サイクル(すなわち、制限サイクル)の間、ある種のトランザクション・クラスは発行できない。しかし、他のあるサイクル(すなわち、非制限サイクル)の間は、どんなクラスのどんなトランザクションでも発行することができる。どんなトランザクションでも発行できるようにするサイクルは定期的に発生する。
【0017】
本発明は、所与のクラスのトランザクションの発行を求める各モジュールが、そのクラスのトランザクションを発行できるサイクル中にバスの制御を得られるようにすることによって、各モジュールごとの進行を保証する。これは、多重ラウンド・ロビン方法を使用して行われる。
【0018】
本発明による多重ラウンド・ロビン調停方法の好ましい実施例によれば、2つのラウンド・ロビン・ポインタを使用して、制限サイクルおよび非制限サイクル中にどのモジュールが調停に勝利するかを別々に判定するための2つのラウンド・ロビン調停プロトコルが実施される。第1に、一次ポインタを使用して、一次ラウンド・ロビン調停プロトコルが実施される。一次ポインタは、制限サイクル中に各モジュールの優先順位を追跡する。二次ラウンド・ロビン・ポインタまたは「エニー・トランザクション」ラウンド・ロビン・ポインタは、どんなクラスのトランザクションでも発行できる非制限サイクルに関する各モジュールの優先順位を追跡する。制限サイクルの間、一次ポインタは、どのモジュールが調停に勝利するかを判定し、所定の順序に従って次のモジュールに進む。非制限サイクルの間は、二次ポインタが、どのモジュールが調停に勝利するかを判定し、所定の順序に従って次のモジュールに進む。
【0019】
二次ポインタは、あるサイクル中に禁止されているトランザクションの発行を求めるモジュールが最終的にトランザクションを発行する機会を与えられるようにする。上述のように、どのクラスのトランザクションも可能なサイクルが周期的に発生する。したがって二次ポインタは、どんなトランザクション・クラスでも許可されるサイクル中に各モジュールを定期的に指し、それによって、任意のクラスのトランザクションを発行する機会を各モジュールに与える。あるサイクル中に禁止されているトランザクションの発行を求めるモジュールは、一次ポインタに基づいてそのようなサイクル中に調停に勝利することができ、その場合、一次ポインタは先に進み、そのモジュールに「順番を譲らせる」。しかし、最終的に二次ポインタがそのモジュールを指し、そのモジュールが非制限サイクル中に勝利できるようにし、最終的にそのトランザクションが発行されるようにする。
【0020】
【実施例】
本発明による典型的なコンピュータ装置のブロック図を図1に10で示す。コンピュータ装置10は、共用資源としてのバス12と、バス12に結合された複数の構成要素とを有するマルチプロセッサ・コンピュータである。これらの構成要素には、メイン・メモリ制御装置14、構成モジュールとしての入出力モジュール16および18、プロセッサ・モジュール20および22が含まれる。これらの構成要素は、バス12上でトランザクションを送り、かつ受け取ることによって相互に通信する。
【0021】
プロセッサ・モジュール20および22は、コンピュータ装置10用のメイン・プロセッサであり、装置用のソフトウェアは、すべてのプロセッサ上で同時に実行される。プロセッサ・モジュール20および22はそれぞれ、直近で使用されたデータを記憶するための従来型のキャッシュ・メモリを含むことができる。
【0022】
入出力モジュール16および18は、コンピュータ装置10と入出力装置の間のインタフェースとして働く。入出力モジュール16および18はそれぞれ、一般に入出力バスを介してバス12と入出力装置の間に結合された少なくとも1つの入出力アダプタを含む。
【0023】
バス12を使用する必要があるプロセッサ・モジュールおよび入出力モジュールは、任意の所与のサイクル中にバス12の制御のための調停を行う。調停手段30は、バス調停方法を実施して、どのモジュールが調停に勝利し、任意の所与のバス・サイクル中にバスを制御するかを判定する。調停モジュール30によって実施されるバス調停方法を以下で詳細に説明する。以下で詳細に説明するように、バス調停方法は、すべてのモジュールによる進行を保証する多重ラウンド・ロビン調停方法である。
【0024】
メイン・メモリ制御装置14は、従来型の方法で、メイン・メモリ15から情報を読み取り、メイン・メモリ15に情報を記憶する責任を負う。メイン・メモリ制御装置14は、クライアント・モジュールとみなすことができる残りのモジュールによってバス12を使用できる方法を指示するための「ホスト」モジュールまたは「バス制御装置」としても働くことが好ましい。具体的には、メイン・メモリ制御装置14は、各クライアント・モジュールに直接結合されたCLIENT−OPライン24を制御する。メイン・メモリ制御装置14は、次の利用可能なサイクル中にバス上でどんなトランザクション・クラスを発行できるかを示すための信号をCLIENT_OPライン24上で各クライアント・モジュールに送る。
【0025】
好ましい実施例では、CLIENT_OPバスは、所与のサイクル中に許可されるトランザクションのクラスを識別する以下の表1に示したクライアント・オプション信号をサポートする。
【0026】
【表1】
【0027】
NONE_ALLOWEDクライアント・オプション信号は、関連するサイクル中にはトランザクションがいっさい許可されないことを示すために使用される。
【0028】
RET_ONLYクライアント・オプション信号は、関連するサイクル中には、以前に保持された専用ダーティ・キャッシュ・ラインのリターン(書込み直し)または以前のトランザクションに対する応答しか許可されないことを示す。たとえば、プロセッサ・モジュール20がプロセッサ22のキャッシュに専用ダーティとして保持されているデータの読取りを発行した場合、プロセッサ22は、従来型のキャッシュ間コピー・トランザクションでそのキャッシュ・ラインを供給することを求めることができる。そのキャッシュ間コピー・トランザクションは、RET_ONLYクライアント・オプション信号によって支配されるサイクル中に発行することができる。なぜなら、キャッシュ間コピーは、その読取りに対応する応答であるからである。同様に、入出力モジュール16は、RET_ONLYクライアント・オプション信号によって支配されるサイクル中に以前の従来型の入出力読取りトランザクションから得たデータを返すことができる。なぜなら、データ・リターンは、その入出力読取りトランザクションに対する応答であるからである。RET_ONLYクライアント・オプション信号はたとえば、プロセッサ・モジュールが他のタスクの実行に専念しているために新しいコヒーレント・トランザクションを受け入れることができず、あるいはメモリ制御装置(またはメモリ)が読取りトランザクションを受け入れることができない場合に有用である。
【0029】
NO_IOクライアント・オプション信号は、入出力トランザクションを除きすべてのトランザクションが許可されることを示す。ホストはたとえば、入出力モジュールがビジー過ぎるために新しいトランザクションに応答できない場合にNO_IOクライアント・オプション信号を発行することができる。
【0030】
ANY_TRANSクライアント・オプション信号は、次の利用可能なサイクル中にはどんなトランザクションでも許可されることを示す。すべてのトランザクション・クラスが定期的に許可されるように、メイン・メモリ制御装置は定期的に、1サイクル以上の間ANY_TRANSクライアント・オプション信号を発行する。
【0031】
上述のように、調停モジュール30は、多重ラウンド・ロビン方法を実施して、各サイクル中にどのモジュールがバス12を制御する資格をもつかを判定する。多重ラウンド・ロビン調停方法は、クライアント・オプション信号が、あるバス・サイクル中にバス12上で許可されるトランザクションのクラスを制限することにもかかわらず、各モジュールが進行できるようにする。
【0032】
どのモジュールがバス12を制御する資格をもつかを判定するために使用される多重ラウンド・ロビン方法は、中央調停方法でも、分散調停方法でもよい。中央調停方法を使用する場合、バスの使用を求める各モジュールは、中央アービタ回路に調停信号を送る。中央アービタ回路は、調停信号を処理して、次の利用可能なサイクル中にバスを使用する資格をもつモジュール(すなわち、次のバス所有者)を判定する。中央アービタ回路は次いで、バスを使用する資格があるかどうかを各モジュールに通知する調停応答信号をモジュールに送り返す。次いで、調停に「勝利した」モジュールは、バス上で情報をドライブする。分散調停方法を使用する場合、各モジュールは装置中で相互に調停信号を送る。各モジュールは、このような調停信号に基づいて次のバス所有者を決定するための調停アルゴリズムを実行するための論理回路を含む。各モジュールは、調停信号を受信すると、次のバス所有者を決定する。次いで、調停に勝利したモジュールは、バス上でモジュール自体の情報をドライブする。
【0033】
多重ラウンド・ロビン調停方法は、トランザクションの発行を求める各モジュールが、トランザクションを発行できるサイクル中にバスの制御を得られるようにすることによって、すべてのモジュールの進行を保証する。多重ラウンド・ロビン調停方法は、一次ポインタ31とANY_TRANSポインタ32(本明細書では二次ポインタとも呼ぶ)の少なくとも2つのポインタを使用する。以下でさらに説明するように、各ポインタは個別のラウンド・ロビン「待ち行列」の始めにあるモジュールを追跡する。したがって、各モジュールは一次優先順位とANY_TRANS優先順位の2つの調停優先順位を有する。
【0034】
一次ポインタは、クライアント・オプション信号がANY_TRANS以外のものであり、モジュールがバスを制御する資格をもつとき、ラウンド・ロビン・プロトコルを実施してどのモジュールが調停に勝利するかを判定するために使用される。一次ポインタは、ANY_TRANSによって支配されないサイクルに関して最高の優先順位を有するモジュールを指し、このようなサイクル中にどのモジュールが調停に勝利するかを決定する。現行の高優先順位モジュールが勝利すると、一次ポインタは、所定の順序に従って次のモジュールに進む。一次ポインタは、ANY_TRANSクライアント・オプション信号によって支配されるサイクル中にあるモジュールがバスを勝ち得た場合には先に進まない。
【0035】
ANY_TRANSポインタは、クライアント・オプション信号がANY_TRANSであり、モジュールがバスを制御する資格をもつとき、ラウンド・ロビン調停プロトコルを実施して、どのモジュールが調停に勝利するかを判定する。ANY_TRANSポインタは、ANY_TRANSクライアント・オプション信号に関して最高の現調停優先順位を有するモジュールを指す。ANY_TRANSサイクル中に最高優先順位のモジュールが調停に勝利すると、ANY_TRANSポインタは所定の順序に従って次のモジュールに進む。ANY_TRANSポインタは、ANY_TRANS以外のクライアント・オプション信号によって支配されるサイクル中にあるモジュールが調停に勝利した場合は、先に進まない。
【0036】
このように、禁止されることがあるトランザクションの発行を求めるモジュールは最終的に、そのトランザクションを発行する機会を与えられる。たとえば、モジュールは入出力トランザクションを発行する必要があることがある。このモジュールは、NO_IOクライアント・オプション信号によって支配されるサイクル中に調停に勝利すると、入出力トランザクションを発行することができず、このサイクルは無駄になる。一次ポインタはそれにもかかわらず、次のモジュールに進み、次のモジュールに調停に勝利する機会を与える。しかし、ANY_TRANSポインタは先に進まない。入出力トランザクションの発行を求めるモジュールは、その入出力トランザクションを発行できないので調停を継続する。ANY_TRANSクライアント・オプション信号が定期的に発生するので、ANY_TRANSポインタは最終的に、入出力トランザクションの発行を求めるモジュールに進み、そのモジュールはこのトランザクションを発行する。したがって、上述の調停方法ではANY_TRANSポインタによって進行が保証される。
【0037】
当業者には、本発明によって各クライアント・オプション信号に別々のラウンド・ロビン・ポインタを使用できることが、本開示に基づいて理解されよう。しかし、ANY_TRANSポインタによって進行が保証されるので追加ポインタは必要とされない。
【0038】
少なくとも1つのクライアント・オプション信号タイプの下で各トランザクション・タイプが許可される限り、ANY_TRANS(すなわち、非制限)クライアント・オプション信号を有する必要がないことも理解されよう。言い換えると、各トランザクション・タイプごとに、少なくとも1つの「許容」クライアント・オプション信号がなければならない。クライアント・オプション信号が許容であるのは、それによってそのトランザクション・タイプを発行できる場合である。進行は、各トランザクション・タイプを許可する許容クライアント・オプション信号を定期的に発行することによって保証される。好ましい実施例では、すべてのトランザクション・タイプに関して許容であるANY_TRANS信号が使用される。
【0039】
本発明に適用される調停方法が、各サイクルごとおよびどのサイクル中にも先に進む一次ポインタを有することができることも理解されよう。これが可能であるのは、ANY_TRANSポインタがそれにもかかわらずに、進行を保証するからである。
【0040】
当業者には、入出力モジュールとプロセッサ・モジュールを共にもつ必要はないことが理解されよう。本発明に適用される調停方法は、2つ以上のプロセッサ・モジュールなどあらゆるタイプのモジュールで実施することができる。
【0041】
さらに、ANY_TRANSサイクルまたはその他のサイクル、あるいはその両方に使用される調停プロトコルがラウンド・ロビン・プロトコルである必要はないことが理解されよう。関連するサイクル中の進行を可能にするどんなプロトコルでも使用することができる。
【0042】
当業者には、メモリ制御装置14が都合だけのためにホストまたはバス制御装置として働いており、ホスト機能とメモリ制御機能を2つ以上のモジュールとして分離できることが理解されよう。
【0043】
表1に示したクライアント・オプション信号は、CLIENT_OPバスが、所与のサイクル中に許可されるトランザクションを制限する、1つの可能な方法を示すために、例示のために選択されたものである。他のタイプのクライアント・オプション信号を使用して、バス上で発行できるトランザクションのタイプを制限できることが理解されよう。
【0044】
「バス」と「ライン」の語は共に、この詳細な説明では、上記で詳細に説明した様々な組の1つまたは複数の電気経路を示すために使用したものである。当業者には、「バス」と「ライン」の語が、相互に排他的なものでも、その他の点でそれら自体を制限するものでもないことが理解されよう。たとえば、「CLIENT_OPバス」および「CLIENT_OPライン」の語は、上記で詳細に説明したように、ホストによってのみドライブされる1組のハードウェア・ラインを示すために相互交換可能に使用したものである。
【0045】
当業者には、本発明に適用される多重調停方法を使用して、どんな共用資源の制御でも決定できることが理解されよう。好ましい実施例では、共用資源はコンピュータ・バスであるが、本発明はコンピュータ・バスの制御のための調停に限らない。
【0046】
本発明の様々な修正は、以下の説明および添付の図面から当業者に明らかになろう。したがって、本発明は特許請求の範囲によってのみ制限されるものである。
【0047】
以上、本発明の各実施例について詳述したが、ここで各実施例の理解を容易にするために、各実施例ごとに要約して以下に列挙する。
【0048】
1. 複数の構成要素モジュールによって使用される共用資源(12)を有するデータ処理装置(10)であって、任意の所与の時点で1つのモジュールしか共用資源を使用する資格を与えられず、所与の時点で共用資源(12)を使用する資格をもつモジュールが、サイクルを定義する最小期間中だけ共用資源の制御を行い、前記モジュールが、共用資源を使用して、少なくとも1つの動作クラスが、事実上1制限サイクル以上の間実行できず、かつ1許容サイクル以上の間許可される制限クラスである、複数の動作クラスを実行する複数の構成要素モジュール(16、18、20、22)と、
共用資源を使用する動作の実行を求める各モジュールが1サイクル以上の間共用資源を制御する資格を与えられるようにし、さらに、前記制限クラスの動作の実行を求める各モジュールが許容サイクル中に共用資源の制御を得られるようにする、各サイクルごとにどのモジュールが共用資源を制御する資格をもつかを判定するための調停手段(30)と、
を備えることを特徴とするデータ処理装置である。
【0049】
2. 共用資源がバス(12)であり、動作がバス上のトランザクションであることを特徴とする上記1に記載のデータ処理装置(10)である。
【0050】
3. 調停手段(30)が、前記制限サイクル中にどのモジュールが共用資源を制御する資格をもつかを判定するラウンド・ロビン・プロトコルを実施するための第1のポインタ(31)と、前記許容サイクル中にどのモジュールが共用資源を制御する資格をもつかを判定するための第2のポインタ(32)とを含むことを特徴とする上記1に記載のデータ処理装置(10)である。
【0051】
【発明の効果】
以上うのように、本発明によれば、調停手段により任意の所与の時点で共用資源を使用する資格が与えられた一つのモジュールがバス・サイクルを定義する最小期間中だけバスを制御し、共同資源を使用して一つの動作クラスが一制限サイクル以上実行できないようにし、1許容サイクル以上の間許可される制限クラスの動作の実行を求めるモジュールが許容サイクル中に調停手段により共用資源の制御が得られると判断するとそのモジュールが許容サイクル中に共用資源の制御を行えるようにしたので、制限サイクルの間ある種のトランザクション・クラスは発行できないが、非制限サイクルの間どのようなクラスのどのようなトランザクションの発行も定期的に発行ることができ、あるトランザクション・クラスを1バス・サイクル以上の間バスで発行できない場合でも、各モジュールを進行できる。
【図面の簡単な説明】
【図1】本発明に適用される多重調停方法を使用するデータ処理装置の一実施例を示すブロック図である。
【符号の説明】
10 コンピュータ装置
12 バス
14 メイン・メモリ制御装置
15 メイン・メモリ
16,18 入出力モジュール
20,22 プロセッサ・モジュール
24 CLIENT_OPライン
31 一次ポインタ
32 ANY_TRANSポインタ
Claims (4)
- 複数の構成要素モジュールによって使用される共用資源を有するデータ処理装置であって、
任意の所与の時点で1つのモジュールしか共用資源を使用する資格を与えられず、所与の時点で共用資源を使用する資格をもつモジュールが、サイクルを定義する最小期間の間共用資源の制御を行い、前記複数のモジュールが、共用資源を使用して、複数の、動作のクラスの動作を実行し、少なくとも1つの、動作のクラスは、そのクラスの動作が事実上制限サイクルの間実行できず、非制限サイクルの間実行を許可される、制限されたクラスである、複数の構成要素モジュールと、
共用資源を使用する動作の実行を求める各モジュールがサイクルの間共用資源を制御する資格を与えられるようにし、さらに、第1および第2の調停器を含み、各サイクルの間に、どのモジュールが共用資源を制御するようにするかを判定する調停手段であって、前記第1の調停器は、前記共用資源の制御を要求するどのモジュールに、前記制限サイクルの間に前記共用資源の制御を許可するかを判定するように、前記制限サイクルの間に有効であり、前記第2の調停器は、前記共用資源の制御を要求するどのモジュールに前記非制限サイクルの間に前記共用資源の制御を許可するかを判定するように、前記非制限サイクルの間に有効であり、前記複数のモジュールが前記共用資源の制御を必要とする場合に、前記第1および第2の調停器の両方に前記共用資源の制御を要求する、調停手段とを含むデータ処理装置。 - 複数の構成要素モジュールによって使用される共用資源を有するデータ処理装置であって、
任意の所与の時点で1つのモジュールしか共用資源を使用する資格を与えられず、所与の時点で共用資源を使用する資格をもつモジュールが、サイクルを定義する最小期間の間共用資源の制御を行い、前記複数のモジュールが、共用資源を使用して、複数の、動作のクラスの動作を実行し、少なくとも1つの、動作のクラスは、そのクラスの動作が事実上制限サイクルの間実行できず、許容サイクルの間実行を許可される、制限されたクラスである、複数の構成要素モジュールと、
各サイクルの間にどのモジュールが共用資源を制御する資格を有するかを判定する調停手段であって、共用資源を使用する動作の実行を求める各モジュールがサイクルの間共用資源を制御する資格を与えられるようにし、さらに、多重ラウンド・ロビン調停方法を使用し、周期的に許容サイクルを発行して、制限されたクラスの動作の実行を求める各モジュールが許容サイクルの間共用資源を制御する資格を与えられるようにする調停手段と、を含むデータ処理装置。 - 共用資源がバスであり、動作がバス上のトランザクションである請求項1または2に記載のデータ処理装置。
- 調停手段が、前記制限サイクルの間にどのモジュールが共用資源を制御する資格をもつかを判定するラウンド・ロビン・プロトコルを実施するための第1のポインタと、前記非制限サイクルの間にどのモジュールが共用資源を制御する資格をもつかを判定するための第2のポインタとを含む請求項1に記載のデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US217-500 | 1994-03-24 | ||
US08/217,500 US5528766A (en) | 1994-03-24 | 1994-03-24 | Multiple arbitration scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271717A JPH07271717A (ja) | 1995-10-20 |
JP3583183B2 true JP3583183B2 (ja) | 2004-10-27 |
Family
ID=22811350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05757695A Expired - Fee Related JP3583183B2 (ja) | 1994-03-24 | 1995-03-16 | データ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5528766A (ja) |
EP (1) | EP0675444B1 (ja) |
JP (1) | JP3583183B2 (ja) |
DE (1) | DE69515355T2 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923859A (en) * | 1995-04-13 | 1999-07-13 | Compaq Computer Corporation | Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus |
US5758105A (en) * | 1995-12-04 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for bus arbitration between isochronous and non-isochronous devices |
US5754865A (en) * | 1995-12-18 | 1998-05-19 | International Business Machines Corporation | Logical address bus architecture for multiple processor systems |
US5872939A (en) * | 1996-06-05 | 1999-02-16 | Compaq Computer Corporation | Bus arbitration |
US6075929A (en) * | 1996-06-05 | 2000-06-13 | Compaq Computer Corporation | Prefetching data in response to a read transaction for which the requesting device relinquishes control of the data bus while awaiting data requested in the transaction |
US5987539A (en) * | 1996-06-05 | 1999-11-16 | Compaq Computer Corporation | Method and apparatus for flushing a bridge device read buffer |
US6021480A (en) * | 1996-06-05 | 2000-02-01 | Compaq Computer Corporation | Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line |
US6035362A (en) * | 1996-06-05 | 2000-03-07 | Goodrum; Alan L. | Storing data associated with one request while continuing to store data associated with a previous request from the same device |
US5872941A (en) * | 1996-06-05 | 1999-02-16 | Compaq Computer Corp. | Providing data from a bridge to a requesting device while the bridge is receiving the data |
US6055590A (en) * | 1996-06-05 | 2000-04-25 | Compaq Computer Corporation | Bridge circuit comprising independent transaction buffers with control logic adapted to store overflow data in second buffer when transaction size exceeds the first buffer size |
US6052513A (en) * | 1996-06-05 | 2000-04-18 | Compaq Computer Corporation | Multi-threaded bus master |
US6108741A (en) * | 1996-06-05 | 2000-08-22 | Maclaren; John M. | Ordering transactions |
US5903906A (en) * | 1996-06-05 | 1999-05-11 | Compaq Computer Corporation | Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written |
US5954809A (en) * | 1996-07-19 | 1999-09-21 | Compaq Computer Corporation | Circuit for handling distributed arbitration in a computer system having multiple arbiters |
US5784569A (en) * | 1996-09-23 | 1998-07-21 | Silicon Graphics, Inc. | Guaranteed bandwidth allocation method in a computer system for input/output data transfers |
DE69724270T2 (de) * | 1996-11-06 | 2004-02-19 | Motorola, Inc. | Verfahren und vorrichtung zur feststellung der anzahl von zugeteilten zugriffen während der latenz des schlechtesten falles |
US6138192A (en) * | 1996-12-31 | 2000-10-24 | Compaq Computer Corporation | Delivering a request to write or read data before delivering an earlier write request |
US5832278A (en) * | 1997-02-26 | 1998-11-03 | Advanced Micro Devices, Inc. | Cascaded round robin request selection method and apparatus |
US6105094A (en) * | 1998-01-26 | 2000-08-15 | Adaptec, Inc. | Method and apparatus for allocating exclusive shared resource requests in a computer system |
US6330646B1 (en) * | 1999-01-08 | 2001-12-11 | Intel Corporation | Arbitration mechanism for a computer system having a unified memory architecture |
JP2007026022A (ja) * | 2005-07-15 | 2007-02-01 | Nec Electronics Corp | バス調停装置及びバス調停方法 |
US9280503B2 (en) * | 2013-04-12 | 2016-03-08 | Apple Inc. | Round robin arbiter handling slow transaction sources and preventing block |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787032A (en) * | 1986-09-08 | 1988-11-22 | Compaq Computer Corporation | Priority arbitration circuit for processor access |
US5001652A (en) * | 1987-03-20 | 1991-03-19 | International Business Machines Corporation | Memory arbitration for video subsystems |
US4937781A (en) * | 1988-05-13 | 1990-06-26 | Dallas Semiconductor Corporation | Dual port ram with arbitration status register |
US5265257A (en) * | 1990-06-22 | 1993-11-23 | Digital Equipment Corporation | Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines |
CA2051029C (en) * | 1990-11-30 | 1996-11-05 | Pradeep S. Sindhu | Arbitration of packet switched busses, including busses for shared memory multiprocessors |
US5280591A (en) * | 1991-07-22 | 1994-01-18 | International Business Machines, Corporation | Centralized backplane bus arbiter for multiprocessor systems |
US5301282A (en) * | 1991-10-15 | 1994-04-05 | International Business Machines Corp. | Controlling bus allocation using arbitration hold |
US5345562A (en) * | 1992-02-12 | 1994-09-06 | Industrial Technology Research Institute | Data bus arbitration for split transaction computer bus |
US5420985A (en) * | 1992-07-28 | 1995-05-30 | Texas Instruments Inc. | Bus arbiter system and method utilizing hardware and software which is capable of operation in distributed mode or central mode |
US5375089A (en) * | 1993-10-05 | 1994-12-20 | Advanced Micro Devices, Inc. | Plural port memory system utilizing a memory having a read port and a write port |
US6182176B1 (en) * | 1994-02-24 | 2001-01-30 | Hewlett-Packard Company | Queue-based predictive flow control mechanism |
US5586274A (en) * | 1994-03-24 | 1996-12-17 | Hewlett-Packard Company | Atomic operation control scheme |
-
1994
- 1994-03-24 US US08/217,500 patent/US5528766A/en not_active Expired - Lifetime
-
1995
- 1995-01-20 EP EP95100768A patent/EP0675444B1/en not_active Expired - Lifetime
- 1995-01-20 DE DE69515355T patent/DE69515355T2/de not_active Expired - Lifetime
- 1995-03-16 JP JP05757695A patent/JP3583183B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69515355T2 (de) | 2000-10-19 |
EP0675444B1 (en) | 2000-03-08 |
US5528766A (en) | 1996-06-18 |
JPH07271717A (ja) | 1995-10-20 |
EP0675444A1 (en) | 1995-10-04 |
DE69515355D1 (de) | 2000-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3583183B2 (ja) | データ処理装置 | |
US4602327A (en) | Bus master capable of relinquishing bus on request and retrying bus cycle | |
US4703420A (en) | System for arbitrating use of I/O bus by co-processor and higher priority I/O units in which co-processor automatically request bus access in anticipation of need | |
US5129090A (en) | System bus preempt for 80386 when running in an 80386/82385 microcomputer system with arbitration | |
US6490642B1 (en) | Locked read/write on separate address/data bus using write barrier | |
US5581782A (en) | Computer system with distributed bus arbitration scheme for symmetric and priority agents | |
EP0450233B1 (en) | Bus access for digital computer system | |
US5619726A (en) | Apparatus and method for performing arbitration and data transfer over multiple buses | |
JP3641003B2 (ja) | 調停機構付きバス・システム | |
WO2000043894A9 (en) | Method and apparatus for communicating between multiple functional units in a computer environment | |
US5649209A (en) | Bus coupling information processing system for multiple access to system bus | |
JPH0683763A (ja) | 中央アービタをスレーブアービタに変換する方法およびシステム | |
US5822549A (en) | Computer system and bus controller for controlling access to a computer bus | |
US5455912A (en) | High speed/low overhead bus arbitration apparatus and method for arbitrating a system bus | |
US5454082A (en) | System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus | |
EP0507954B1 (en) | Device for controlling bus | |
JPH0656602B2 (ja) | キヤツシユを有するプロセツサのための優先制御システム | |
JPH03142650A (ja) | 優先使用遅延回路 | |
JPH09185580A (ja) | バスシステム | |
KR100451789B1 (ko) | 자원 공유를 위한 프로세서 중재장치 및 중재방법 | |
KR100243868B1 (ko) | 주 전산기에서의 중재로직 방법 | |
KR930001586B1 (ko) | 다중 버스 마이크로 컴퓨터 시스템 | |
JPH06266657A (ja) | 情報処理装置 | |
GB2318487A (en) | Bus arbitration system | |
JPH0488459A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040702 |
|
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: 20040727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040728 |
|
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: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |