(57)【特許請求の範囲】
【請求項１】
複数の装置により、メモリのような共有資源アクセス・システムへのアクセスを制御する共有資源アクセス・システムであって、
記憶した変数に基づいて、資源アクセス要求への優先順位の数値をコード化する優先順位エンコーダと、
待ち状態の資源アクセス要求の優先順位の数値を解読、比較し、選出要求を決定する優先順位デコーダと、
待機中の資源アクセス要求に対する、共有資源の少なくとも一つのアドレスを解読するアドレス・デコーダと、
現在アクティブな資源アクセス要求と、優先順位デコーダからの選出要求との間で調停し、出力を供給する調停装置と、
前記調停装置からの出力に基づいて、共有資源へのアクセスを制御する資源コントローラとを備え、
さらに、前記複数の各装置に対し、前記優先順位の数値に基づき優先順位曲線を確立する手段を含み、優先順位曲線が、待ち時間の変化に対する優先順位カウントの変化を表すとともに、
各装置に対する優先順位曲線が、第一の優先順位領域、第二の優先順位領域、および第三の優先順位領域を含み、第一、第二および第三の優先順位領域それぞれが、待ち時間に対する優先順位カウントのそれぞれの変化速度を持ち、第一の優先順位領域において、ある装置が他の装置による横取りを許すが、他の装置からの横取りを要求せず、
第二の優先順位領域において、ある装置が他の装置による横取りを許し、また他の装置からの横取りを要求し、
第三の優先順位領域において、ある装置が他の装置からの横取りを要求するが、他の装置による横取りを許さないことを特徴とするシステム。
【請求項２】
複数の装置により、メモリのような共有資源へのアクセスを制御するための共有資源アクセス方法であって、
装置資源要件の決定に基づいて、アクセス優先順位を確立するステップと、
前記確立したアクセス優先順位に基づいて、共有資源にアクセスを許可するステップとからなり、装置資源要件が、基準優先順位、待ち時間、帯域幅および処理能力の中の少なくとも一つを含み、さらに、前記複数の各装置に対して優先順位曲線を確立するステップを含み、優先順位曲線が、待ち時間の変化に対する優先順位カウントの変化を表すとともに、
各装置に対する優先順位曲線が、第一の優先順位領域、第二の優先順位領域、および第三の優先順位領域を含み、第一、第二および第三の優先順位領域それぞれが、待ち時間に対する優先順位カウントのそれぞれの変化速度を持ち、第一の優先順位領域において、ある装置が他の装置による横取りを許すが、他の装置からの横取りと要求せず、
第二の優先順位領域において、ある装置が他の装置による横取りを許し、また他の装置からの横取りを要求し、
第三の優先順位領域において、ある装置が他の装置からの横取りを要求するが、他の装置による横取りを許さない方法。
【請求項３】
請求項２記載の方法において、さらに、
性能カテゴリーで装置を分類するステップを含み、
前記性能カテゴリーが、
ある待ち時間許容範囲を超えた場合に、故障が発生する故障点タイプの装置と、
待ち時間許容範囲を超えた場合に、性能が悪影響を受ける性能感受タイプの装置と、
その待ち時間が過度に長い場合に、性能の低下がより少ない、下位優先順位に悪影響を与えないタイプの装置とを含む方法。
【請求項４】
請求項３記載の方法において、優先順位が、最初、故障点タイプの装置に対する優先順位曲線を計算し、その後、残りの帯域幅を考慮して、性能感受タイプの装置に対する優先順位曲線を計算し、その後、残りの帯域幅を考慮して、下位優先順位に影響を与えないタイプの装置に対する、優先順位曲線を計算することにより、性能カテゴリーに基づいて決定される方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、共有資源へのアクセスの制御に関し、特に、一つのメモリ資源制御装置およびデータ経路への、リアルタイムでのデータ転送送をサポートしているバス装置を含む、ＤＭＡ（直接メモリ・アクセス）をサポートしている複数のバスを調停する、例えば、ＤＲＡＭのような共通（共有）ハードウェアへの、またこの共通（共有）ハードウェアからのバースト性能を改善するための複雑なメモリ・コア優先順位および調停スキームに関する。
【０００２】
本発明は、さらにすべてのサポートされた、バス装置の待ち時間および帯域幅を決定することができ、ハードウェア・レジスタに結果を記憶することができる優先順位アーキテクチャに関する。前記レジスタはプログラム可能で、例えば、ビデオ解像度を変更したり、またはＰＣＴバス上でより高速なＳＣＳＴ装置の使用を可能にするために、帯域幅要件に基づいて変更することができる。
【０００３】
【従来の技術】
バスの使用を最適化するためのメモリ調停の分野には多くの特許がある。例えば、「ＤＭＡ動作に関して、転送されるデータの量を変化させることにより、バス使用を最適化するための装置および方法」という名称の米国特許第５，４２３，０２０号がある。この特許は、ＤＭＡ転送のサイズを動的に変化させるための、ＤＭＡコントローラを含むシステムに関する。前記コントローラは、データ・ブロックが到着したときに、装置からデータ・ブロックをバッファするための手段と、ＤＭＡ動作を動的に作動し、データの最近の到着速度、およびＤＭＡ転送用にすでにバッファされたデータの量に従って、ＤＭＡが動作しているときに、転送されたデータの量を変化させるための手段とを含む。前記コントローラは、転送を待っているバッファされたデータの量、および最近のデータの到着速度に基づいて、ＤＭＡの動作中に転送された、データの量を動的に変化させることによってＤＭＡの動作に対する効率的なバス利用を行うための技術を提供する。前記システムは、プロセッサ、主メモリ、一つまたはそれ以上の周辺機器およびＤＭＡコントローラを含む。システム・バスが、プロセッサ、メモリおよびＤＭＡコントローラを相互に接続している。前記コントローラは、ＤＭＡ転送のサイズを動的に変化させることによって、データ・ブロックの直接メモリ・アクセス転送中のバス使用を改善する。前記コントローラは、データ・ブロックが到着したときに、装置からデータ・ブロックをバッファするための手段、およびＤＭＡ動作を動的に作動し、最近のデータ到着速度およびＤＭＡ転送用にすでにバッファされたデータの量に従って、ＤＭＡの動作中に転送されるデータの量を変化させるための手段とを含む。
【０００４】
本発明の代表的な実施形態としては、プロセッサ、メモリ、一つまたはそれ以上の周辺機器、周辺機器からの、データ・ブロックをバッファするためのバッファを含む、直接メモリ・アクセス・コントローラ、および前記プロセッサ、メモリおよびコントローラを相互に接続しているバスを含むシステムがある。この場合、データ・ブロックは、高速と低速との間で変化するデータ速度で到着し、バッファされる。バス要求装置は、周辺機器とメモリとの間の、各直接メモリ・アクセス転送により転送されるデータ・ブロックの数を、動的に変化させることにより、直接メモリ・アクセス転送中のバス効率を改善するために、周辺機器および直接メモリ・アクセス・コントローラに接続している。バス要求装置は、バッファ中にバッファされた、データ・ブロックの全数をカウントするためのカウント手段と、到着してバッファされる連続データ・ブロックの間の、可変時間的間隔を測定するための測定手段、および時間的間隔が短くなり、バッファされたデータ・ブロックの全数が増大するにつれて、直接メモリ・アクセス転送により転送されるデータ・ブロックの変化する数を増大することによりバス効率を増大するために、バッファからメモリへのバッファされたデータ・ブロックの可変数をバス上の一回の転送中で選択的に転送するために、前記測定手段およびカウント手段に応じる直接メモリ・アクセス・コントローラを含む手段とを含む。
【０００５】
「競合するメモリ・リフレッシュ回路、周辺コントローラおよびバス・マスタの間で、アクセス制御を調停するための共有メモリ・バス・システム」という名称の米国特許第５，４３８，６６６号は、共有アドレス、バス・マスタを通して、周辺機器とメモリとの間でデータを転送するために、バースト動作モードを提供するデータおよび制御バス用の調停システムに関する。前記調停システムは、バス・マスタから高い優先順位活動を制御する回路へ、共有バスの制御を一時的に渡すために、メモリ・リフレッシュ・サイクルおよびＤＭＡサイクルのような、高い優先順位バス活動に応答する。前記調停システムは、さらにバースト・モード中にデータを転送するバス・マスタが、過度の長い時間の間共有バスの制御を保持するのを確実に防止するためにタイミング回路を含む。前記特許は、メモリ・リフレッシュ動作が、共有バス、特に、ＤＭＡを実行する際の過度に長い時間のオーバヘッド、バースト・モード転送制限を使用する、「サイクル・スチル」システムの欠点を克服するためのものである。本発明の目的は、マイクロプロセッサをベースとするコンピュータ・システムの動作の統合性を維持しながら、共有アドレス、データおよび制御バスへのより迅速で、より効率的なアクセスを提供することである。前記システムのバス調停回路は、バス・マスタが共有バスにアクセスし、マイクロプロセッサを排除して共有バスの制御を保持するのを防止するために、共有バスの統合性を保護するためのロジックを含む。保護の一つの形として、バス調停回路は、マイクロプロセッサへの割り込み要求をモニタし、マイクロプロセッサが割り込み要求を与えることができるように、マイクロプロセッサに共有バスの制御を許可する。
【０００６】
動作中、このバス調停回路は、マイクロプロセッサによる割り込みサービスの完了を示す信号をモニタし、割り込みサービスが完了した時、（再調停待ち状態バス要求による）現在最も高い優先順位を持つ要求バス・マスタに、共有バスの制御を許可する。前記バス調停回路は、マイクロプロセッサによる共有バスへの、「公平な」アクセスを供給する別のロジックを含む。バス・マスタが、共有バスへのアクセスすることを許可されると、監視タイマがセットされ、予め定めた長さの時間が経過すると信号を発生する。前記予め定めた時間の長さは、バス・マスタが、共有バスを通してメモリへ、またはメモリからデータのバーストを転送することができるだけの十分な長さで持ち、それにより時間のオーバヘッド問題が軽減する。予め定めた長さの時間が経過すると、バス調停回路は、現在制御を行っているバス・マスタへの共有バスの許可を取り消す。命令を実行するために、マイクロプロセッサがバスを使用した後で、バス調停回路は、バス・マスタからの待ち状態のアクセス要求を調停し、一つまたはそれ以上のバス・マスタが、共有バスへのアクセスを要求している場合には、現在最高の優先順位を持つバス・マスタにアクセスを許可する。ある実施形態の場合には、バス・マスタ間のアクセス優先順位は、バス・マスタに共有バスに対するアクセスが許可される度に、回転（変化）し、その結果、バス調停回路が、バス・マスタによる共有バスへのアクセスを、次に調停した場合には、現在共有バスを制御しているバス・マスタが最下位の優先順位を持つことになる。
【０００７】
本発明の代表的な実施形態としては、マイクロプロセッサ、システム・メモリおよび前記マイクロプロセッサと前記システム・メモリとの間に共有バスを持つ、コンピュータ・システム用のバス調停制御回路がある。前記コンピュータ・システムは、さらにシステム・メモリを周期的にリフレッシュするために、共有バスを使用するメモリ・リフレッシュ制御回路、およびシステム・メモリと複数の周辺機器との間でデータを転送するために共有バスを使用する、複数の周辺コントローラを含む。バス調停制御回路は、共有バスへアクセスするためのアクティブな要求を持つ周辺コントローラの間で、共有バスの制御の調停を行う。調停制御装置は、周辺コントローラおよびメモリ・リフレッシュ制御回路から共有バスへアクセスするための要求を受信する複数の入力と、リフレッシュ制御回路が、メモリ・リフレッシュを完了し、その結果、第一の周辺コントローラが、前記第一の周辺コントローラとアクティブなバス要求を持つ他の周辺コントローラとの間で、優先順位の調停を行わないでその動作を完了することができるとき、リフレッシュ制御回路が、共有バスにアクセスを要求し、ロジック・シーケンサが、何時でも共有バスの制御を第一の周辺コントローラに自動的に戻すとき、複数の入力に応答し、共有バスの制御を持つ第一の周辺コントローラに制御を放棄させ、一時的に、メモリ・リフレッシュ制御回路に共有バスの制御を渡すロジック・シーケンサを持つ。
【０００８】
「データ・バス待ち時間および域値以下の受信した再割当要求に基づいて、データ転送中、再割当要求を拒否するための装置」という名称の他の米国特許第５，４６３，７３９号は、第一の装置と、共通メモリの割当てられた部分との間のデータ転送を管理するための方法を開示している。この方法は、第二の装置からの、共通メモリの前記割り当てられた部分の再割当要求の受信と、第一の装置から要求された前記再割当の拒否の受信と、前記再配置要求の遅延を含む。さらに、周辺機器と仮想メモリ・システムの共通メモリとの間でデータを転送する方法も開示している。前記方法は、共通メモリの割当られた部分により、データを転送するようとの周辺機器への命令と、共通メモリの割当済みの部分の再割当の要求と、および命令されたデータ転送に応じて、周辺機器から要求された再割当の拒否の受信とを含む。動作中、調停装置は、システム・バス割込み待ち時間に関して、許容できる時間の間に、データ転送を完了することができるかどうかを決定して、再度の試みを許可するかどうかを決定する。
【０００９】
「過去のフィードバックおよびエラー検出および修正用の設備を持つ、動的にプログラムすることができるバス調停装置」という名称の米国特許第５，４８１，６８０号は、表に作成するために、バス要求を表す数値と組合される、一意の経歴レジスタを使用する調停回路を開示している。経歴レジスタ要求のすべての可能な組合せは、対応する許可と一緒に前記表の中に記憶される。表の一つのブロックは、経歴レジスタにより選択され、要求は、どの要求が許可を受信したかを決定するために、ブロック中で索引をつけるために使用される。その後、前記許可は、経歴レジスタにシフトされる。メモリには一つ以上の表を記憶することができ、それら表は調停装置コントローラにより選択することができる。この特許は、この分野のある問題を記載しているが、その問題とは、その許可選択の際に過去のフィード・バック対する規定を持つ、動的な優先順位スキームを供給するバス使用調停装置が存在しないという問題である。この特許の場合、前のバス・アクセスを要求者にサービスするための、決定の一部として考慮に入れる調停回路によりこの問題に対処している。より詳細に説明すると、前記調停回路は、メモリのある位置にアクセスするための、現在のバス要求を表す数値と組合されている過去のバス要求を表す数値を、発生する一意の経歴レジスタを提供する。可能性のある許可は定義され、過去の要求および現在の要求の可能な各組合せに対する、メモリの各位置に記憶される。可能性のある許可の選択は、経歴レジスタの内容を、メモリ・アドレスの高順位のビットとして使用することにより、また一つの許可出力を許可することを決定するために、現在の要求をメモリ・アドレスの低順位のビットとして使用することにより行われる。前記許可も、経歴レジスタにシフトされる。複数のアルゴリズムを選択的に供給するために、メモリに一つ以上の表を記憶することができる。この特許は、バス使用に対する、複数の要求を受けつけるステップと、前記複数の要求に応じて、選択した調停状態を決定するために、前記複数の要求に対して、シーケンシャルな順序で、前記複数の過去の許可を含む経歴レジスタを適用するステップと、選択した調停状態を、複数の調停状態、および対応する複数の許可を含む調停状態表に、索引として使用するステップと、要求者に、選択した調停状態により直接索引がつけられた、複数の許可の一つ発行するステップとを持つ、複数の前のバス要求許可の経歴に基づいて、複数の要求からのバス割り込み要求を調停する方法を開示し、また特許請求している。
【００１０】
「バス帯域幅管理用の方法および装置」という名称の米国特許第５，５０６，９６９号は、図３に、バス帯域幅管理方法のフローチャートを示している。ブロック３００においては、クライアントのアプリケーションが、高速バス上のバス・マネージャに、データ転送に対する転送要求を発行する。前記転送要求は、転送用のデータを含むモジュール（ソース・モジュール）を定義する情報、データ転送を受信するためのメモリ領域を含む、一つのモジュールまたは複数のモジュール（宛先モジュール）、転送されたデータを受信するための二つの二次元メモリ領域の説明、および特定の転送要求に関連する重要情報および緊急情報を含む。
【００１１】
ある実施形態の場合には、時間駆動資源管理（ＴＤＲＭ）法が使用される。一般的にいって、ＴＤＲＭ法は、緊急情報に基づき、期限が一番短いものを一番最初にする、すべての未決着の転送のスケジュールを作成しようとする。バス過負荷状態に対するテストが行われ、バス過負荷であると判断された場合には、選択した転送要求のサービスは遅延される。この特許の代表的な実施形態は、緊急情報および重要情報に基づく、各転送要求に対する重要性に関するリストおよび緊急性に関するリストを作成するステップと、各転送要求に対して指定された期限以内に、緊急リスト上の転送要求にサービスするのに、十分なバス帯域幅があるかどうかを判断するステップと、バスが、転送要求にサービスするだけの、十分なバス帯域幅を持っている場合に、緊急リストに対応する転送順序を作成するステップと、バスが、転送要求にサービスするのに、十分な帯域幅を持っていない場合に、バスが、残りの転送要求にサービスするにに、十分なバス帯域幅を持つまで、低い優先順位を持つ転送要求を除去することにより、緊急リストの順序を変更するステップとを含むバス管理法に基づいて、バス使用に対する転送要求のスケジュールの作成を含む。
【００１２】
「スケール可能なインターフェースを持つ、動的多重速度バス・アーキテクチャ用の方法および装置」という名称の米国特許第５，５０９，１２６号は、コンピュータ・システムの複数の装置、またはノードの間での通信を可能にするための、バス・アーキテクチャ通信スキーム、特に固定速度および多重速度のノード間で、可変および将来高速化可能な速度で、データ・パケット転送を可能にする、動的多重速度バス・アーキテクチャに関する。この特許は、各ノードが、システムの他の各ノードに接続されるバスに、プラグにより接続されるバス・アーキテクチャの欠点を克服する方法を開示している。特定のノードにより、前記タイプの共通バスを通して送信されたデータ・パケットは、データ・パケット転送が、最も遅いノードの速度に基づく固定速度で、行われなければならないようにバスに接続している、すべての他のノードにより受信することができる。特定のバス上のデータ・パケット転送の固定速度は、バスそれ自身を実行する前に定義しなければならない。何故なら、前記固定速度は、その時のノードの技術的能力により異なるからである。それ故、この特許の目的は、新しいノードが古いノードと共存することができ、最も簡単な方法（最低のコスト、最低の設計努力および最低のアップグレード時間）で、速度を向上させることができる、最適のコスト・パフォーマンス・システムを供給する一方で、より新しくより高速のノードを持つ上位互換性を持つ、真の動的多重速度バスを実行することである。この特許が開示しているように、この特許の目的は、より新しく、より高速のノードと、少なくとも一つの多重速度バスの一つの相互接続を形成している、可変速度、固定サイズ・リンクを通して、一緒に接続しているより古く、より速度の遅いノードとの間で可変速度データ・パケット転送を可能にするスケール可能な、多重速度バス・アーキテクチャ用の方法および装置を提供することである。この特許の図２に示すように、スケール可能な能力を持つ、固定速度Ｆｓ、可変サイズＶｚ、可変長ＶＬの（バスＹと呼ぶ）インターフェースが、ローカル・ホスト２５および多重速度リンクｚとの間の、各ノード３で実行されている第一のモジュール２１、および第二のモジュール２２の間に設置されている。第二のモジュール２２は、複数の多重速度直列ラインｚ、多重速度直列バス上の、種々のノード３の間の調停をするためのバス調停装置５５、およびコントローラ５０とバス調停装置５５との間で、制御情報を転送するための内部バス１を通して、複数の他のナットを相互に接続するための複数の外部ポートを持つ。バス調停装置５５は、速度メッセージを送受信するための、速度信号回路５９を含む。コントローラ４０に、リンクＺに第三のデータ・パケットＣＣを送信する速度を知らせるために、この情報を含む速度メッセージを、第一のデータ・パケットＡＡを受信する前に、ローカル・ホスト２５からコントローラ４０に、送信する必要がある。その後、前記速度メッセージは、リンクＺの他方の端部に接続している隣接中継ノード３に送信するために、またリンクＺ上に送るために、第二のモジュール２２の速度信号回路５９に送られる。この速度情報を使用することにより、コントローラ４０は、バスＹの固定速度の数値で、第三のデータ・パケット速度の数値を割ることにより、第二のデータ・パケットＢＢのサイズを決定することができる。バスを要求するために、またはレジスタにアクセスするために、要求ラインを通して、データ・ビットの短い直列ストリームが送られる。送られた情報は、要求のタイプ、データ・パケットが送信される速度、および任意の読み出し／書き込みコマンドを含む。
【００１３】
「マルチメディア・コンピュータ・システムで、効率的なバス割当てを行うための方法および装置」という名称の米国特許第５，５３３，２０５号は、プロセッサ、メモリおよび最大データ転送速度を持つバスを通して相互に接続している、複数の入力／出力装置を含む、、マルチメディア・コンピュータで、効率的なバス割当てを行う方法および装置を開示している。コンピュータ・システムにおける、種々の表示装置へのオーディオ、ビデオ、または他の時間の影響を受けるデータの転送は、選択したアプリケーションをサポートするために、予め定めたある速度で行わなければならない。バス・アクセスで競合する可能性がある各表示装置に、関連するバス・アクセスの優先順位を表示するために、調停レベル・インジケータが使用される。選択した時間中、特定の表示装置に関連する調停レベル・インジケータは、必要なデータ速度でのバス・アクセスを保証するために、一時的に順序の変更を行う。この特許の図３は、この特許の方法およびシステムによる、調停レベル・インジケータの時間インターバル割当ての図面による表示である。動作中、例えば、バスの最大データ転送速度が、２０メガバイトであり、特定の入力／出力装置割当て調停レベル６（Ａ６）が、１秒当たり４メガバイトのデータ転送速度を必要とする場合には、その調停レベルに、１フレーム中の５番目の時間インターバルが割り当てられる。入力／出力装置が使用することができるバス帯域幅の百分率は、調停オーバヘッドおよび潜在時間により異なる。しかし、この例は、各フレームにおいて、前記百分率が、時間の経過につれて均一に分布していることを示している。図３について説明すると、このシステムは、高速メモリに、バス３６上の各区時間フレームの、ある時間インターバルの最も高い優先順位が与えられる調停レベルの表示を記憶する。この特許は、予め定めたデータ速度での、バスへの特定の入力／出力装置のアクセスを保証するために、特定の入力／出力装置に関連する調停レベル・インジケータの、記憶した順番に配列されたリストを、特定の時間インターバル中に、選択的にまた一時的に並べ変えることができる技術を提供する。
【００１４】
「動的で柔軟な優先順位決定を行うための、調停装置および調停プロセス」という名称の米国特許第５，５４６，５４８号は、簡単なスキームにより実行した、優先順位決定の動的構成を提供する、プログラム可能な調停装置に関する。調停装置のバンクは、カスケード状になっている。各調停バンクは、調停する必要がある予め定めた数の組の、バス要求を受信する。各バンクは、バス要求の優先順位を評価するための、回転または固定優先順位を提供するように、それぞれプログラムされる。固定優先順位または回転優先順位で動作するように、調停バンクを個々にプログラムすることによって、種々のアプリケーションに適応することができる、固定優先順位、回転優先順位または両者を組合せた優先順位により、動作することができる柔軟で、プログラム可能な調停装置を作ることができる。調停装置コンフィギュレーション・レジスタが、前記バンクを制御するために使用される制御信号を、記憶するために設置されている。図４ｃは、図４ａに示す調停構造体をサポートするためのコンフィギュレーション・レジスタである。他の実施形態の場合には、調停装置は、例えば、調停装置コンフィギュレーション・レジスタに記憶されている数値によりプログラムされた、優先順位スキームを動的に優先するような構成にすることができる。それ故、レジスタの状態を変化させないで、優先順位を変えることができる。他の観点から見ると、この特許の場合、高速バス５００の帯域幅を節約するために、より速度が遅いバス５１０が、アクセスのために解放されるのを待ちながら複数の再試行要求の再発行を防止するため、要求が無用なものとして処分されないようにする目的で、要求がマスクされるようにＣＰＵの優先順位が一時的に修正される。別な方法の場合には、その優先順位が、もっと低い優先順位になるような修正が行われる。バス調停装置は、バス５１０、５００上に時計を保持していて、そのためより速度が遅いバス５１０が解放されると、ＣＰＵの優先順位が、予め定めた優先順位に再び修正され、その結果、後続の再試行が試しに行われ、許可される。
【００１５】
「自動入力／出力制御装置を持つデータ処理システム」という名称の米国特許第３，２８３，３０８号は、チャネル優先順位アクセス制御により規制された、入力／出力マスタ制御装置を通して、メモリ・サブシステムと個々のチャネル・バッファ・レジスタとの間のデータの流れの規制に関する。チャネル優先順位アクセス制御装置の一実施形態の場合には、各チャネルに予め定めた優先順位アクセスを割り当てる。例えば、チャネル番号「０」は最も低い優先順位を持ち、チャネル番号「１」は、より高い優先順位を持つというようになる。それ故、速度が最も遅い周辺機器は、優先順位の最も低いチャネルに接続している。従って最も高速の周辺機器は、優先順位が最も高いチャネルに接続している。チャネル優先順位レジスタは、２進コードがついている三本の出力リード線と、作動段を持つ８段のレジスタである。動作中、クロック・パルスが発生したときに、リード線上に信号が存在する場合には、優先順位レジスタは、２進コードで「７」を登録する。他の段はオンにセットされる。何故なら、リード線上の前記信号は、インバータで倒置された後で、後続の各ＡＮＤゲートが閉じるのを阻止するからである。類似の方法で、任意のより高い優先順位を持つチャネルは、同一のロジック・ゲート素子で、下位のゲートを阻止するからである。この特許の代表的な実施形態は、最も高速なデータ速度を持つ装置が、自動的にメモリ・サブシステムの、最も高い優先順位を使用することができるように、メモリ・サブシステムと、周辺の送受信装置との間のデータの流れを規制する手段と、最も高速のデータ速度を持つ装置が、自動的にメモリの最も高い優先順位を使用することができるように、メモリと、周辺のデータ送受信装置との間のデータの流れを規制するための手段と、各チャネルに対応する複数の入力に応答し、メモリ・サブシステムへのアクセスを要求するチャネルに、対応するカウントを登録することができる、チャネル優先順位レジスタを持つメモリ・サブシステムへの各チャネル制御ユニットのアクセスを規制するためのチャネル優先順位アクセス制御装置と、より高い優先順位のチャネルからのアクセス要求が、より低い優先順位のチャネルからのアクセス要求を阻止するように、チャネルとレジスタ入力との間に接続しているゲート手段と、周辺のデータ送受信装置と、メモリ・サブシステムへ周辺機器を選択的に接続するためのチャネル制御ユニットとの組合せと、（現在のアドレスが端部アドレスと等しい場合に）メモリ・バッファ領域の端部が、データ交換に使用された場合、チャネル制御装置をリセットし、周辺機器を切り離すことによって、またはスタート・アドレスを、端部アドレス直後のデータ交換用の、現在のアドレスとして使用することにより、循環的にデータ交換を続行することにより、選択した周辺機器とメモリ・サブシステムとの間のデータ交換を選択的に終了するための手段を含む。
【００１６】
「多重バス・サイクルを実行することができるマイクロプロセッサ」という名称の米国特許第４，５８０，２１３号は、マイクロプロセッサ・バス・コントローラの実行に関する。
【００１７】
「入力／出力装置を持つ、バス制御システムのバス用優先順位制御装置」という名称の米国特許第４，５８３，１６０号は、より高い優先順位を持つ入力／出力装置により、バスの使用に割り込みがかけられるまでは、ハードウェア動作装置のような、より優先順位の高い処理ユニットにより、バスの使用に割り込みが掛けられるまで、高速データ処理ユニットにより、バスを継続して使用することができるバス制御システムの供給に関する。バス・データ用の高速処理ユニットは、他の装置と比較すると、バスの使用に関してより低い優先順位を持つ。高速処理ユニットが、バス・データを処理している間に、命令を実行するデータ処理ユニットによるバスの使用は抑制され、その結果、高速処理ユニットの優先順位は、データ処理ユニットの優先順位より高くなる。他の装置により割り込み要求が行われた場合には、割り込み要求を受けた高速処理ユニットは、バス・データの高速処理を中断する。データ処理ユニットによる割り込み処理が完了した後で、データ処理ユニットからの再開要求により、バス・データの高速処理が再開される。バス使用についての優先順位は、下記の順序で、最も高い優先順位から最も低い優先順位の順序で、入力／出力装置、ハードウェア動作ユニットおよびデータ処理ユニットに与えられ、データ処理ユニットによるバスの使用は、動作ユニットの高速処理ができるように、ハードウェア動作ユニットの継続処理動作中は抑制される。
【００１８】
「バス・データ転送速度を改善するための、複数のバス要求および許可信号を使用するＤＭＡシステム」という名称の米国特許第４，７２９，０９０号は、構成部品の間でデータを転送するための共通データ・バスに関するもので、ＣＰＵがバスを使用しているかどうかを示すフラッグ・レジスタを提供する。
【００１９】
「バス・コントローラ・コマンド・ブロック処理システム」という名称の米国特許第４，８０５，１３７号は、ターミナル応答のための厳格な時間拘束を持つ、バス・システム用のリアルタイム・バス・システム・コントローラに関する。
【００２０】
「チャネル制御回路を持つ、直接メモリ・アクセス・コントローラを含む、単一チップ通信データ処理装置」という名称の米国特許第５，１１１，４２５号は、例えば、転送パラメータを記憶するレジスタを使用し、前記レジスタを制御するための制御回路を持つＩＳＤＮのような、通信制御ユニットと一緒に使用するためのＤＭＡコントローラに関する。
【００２１】
「バス幅コンバータおよび８ビットおよび１６ビットの、マイクロプロセッサとのインターフェース用のラッチを使用する３２ビット・パソコン」という名称の米国特許第５，１１３，３６９号は、マイクロプロセッサ・システムで、８、１６および３２ビットのバス幅を変換するための集積回路に関する。
【００２２】
「データ・ブロックの幅が変化する、データ・エントリのブロックをバースト転送するために、ブロック移動命令を使用するデータ処理システム」という名称の米国特許第５，１８５，６９４号は、「移動」命令を使用する緩く接続しているシステムの、システム・バス上でのデータのバースト・モード転送の使用に関する。
【００２３】
「複数のバス・マスタによる、多重化アドレス／データ信号バスを、共通使用するための方法および装置」という名称の米国特許第５，１９１，６５６号は、待機中のバス装置の待ち時間を短くするために共有バスへのアクセスを制御する中央調停ユニットに関する。
【００２４】
「資源の利用可能性に基づく調停のための方法および装置」という名称の米国特許第５，２３９，６５１号は、転送資源の利用可能性に基づく、複数の要求されたデータ転送間での、調停を行うための方法および装置に関する。資源の制御に関する要求は、要求されたデータ転送、内部バスおよび外部バスのサイズに関する情報と一緒に、調停装置に送られる。前記調停装置は、前記情報をバッファに残っているスペース、内部バスの利用可能性および外部バスの利用可能性と比較する。要求を満足させるために、すべての資源を使用することができる場合には、その要求は許可調停となり、要求された転送がスタートする。
【００２５】
「異なる速度で動作しているバスの調停方法」という名称の米国特許第５，２５３，３４８号は、異なる速度のバスを持つシステムで、複数のバス許可が同時に行われるのを防止するための、バス・アクセスの調停に関する。
【００２６】
「マイクロプロセッサでのバースト・データの転送方法」という名称の米国特許第５，２５５，３７８号は、バースト配列スキームの実行による、バースト・データ転送の効率の改善に関する。
【００２７】
「周辺機器を選択的に接続するための、キャッシュ・メモリおよびバス幅制御回路」という名称の米国特許第５，２８０，５９８号は、キャシュ・メモリでバス幅制御回路を使用する異なる幅の複数のバスの接続に関する。
【００２８】
「透明なデータ・バスのサイズ決定」という名称の米国特許第５，３８８，２２７号は、異なる幅の複数のバス間の通信の処理に関する。
【００２９】
「バスのサイズ決定機能を持つデータ・プロセッサ」という名称の米国特許第５，３９４，５２８号は、メモリ境界サイズ決定を使用する異なる幅のバス間での通信の制御に関する。
【００３０】
「多重バス・コンピュータ・システム用調停ロジック」という名称の米国特許第５，３９６，６０２号は、第一のおよび第二のレベルの調停ロジックを接続し、選択した規格入力／出力装置に対応する調停識別情報を含み、側帯波システムを含む調停機構に関する。ベース・システム・メモリへのアクセスは、ベース・システム・メモリ・バスを通して、メモリ・コントローラにより制御される。入出力動作が、一次ＰＣＩ装置に対するものである場合には、ＰＣＩホスト・ブリッジは、メモリ・コントローラに解読コマンドで応答し、入出力サイクルを適当な一次ＰＣＩ装置に送る。
【００３１】
この特許の図２について説明すると、規格バス・ブリッジが存在しない場合に使用される実行は、バンク調停制御点（ＢＡＣＰ）、ＰＣＩ調停制御点（ＰＡＣＰ）、および直接取り付け調停制御点（ＤＡＣＰ）を含む。前記ＢＡＣＰは、一次ＰＣＴバスを制御するために、ＰＡＣＰおよびＤＡＣＰによる要求間の調停を行う。ＰＡＣＰは、ＣＰＵ、および一次ＰＣＩ装置によりＰＡＣＰに提出された一次ＰＣＩバス・アクセス要求（集合的に、「バンク０要求」と呼ぶ）を管理する。ＤＡＣＰは、それが制御する周辺入力／出力装置のために、入出力コントローラが、ＤＡＣＰに提出した一次ＰＣＩバス要求を処理する。この階層アーキテクチャは、ＣＰＵと一次ＰＣＩ装置との間の調停が、入出力コントローラにより制御されている周辺入出力装置、（存在する場合には）標準バス・ブリッジに取り付けられている、標準入出力装置間の調停とは独立して管理されるシステムに対して、調停スキームを提供する。ＰＡＣＰは、ＰＡＣＰ上の五つのピンを通して、最高５台までのＰＣＩ装置およびＣＰＵから、直接ＰＣＩバスに対するアクセス要求を受信する。調停優先順位が、各一次ＰＣＩ装置およびＣＰＵに割り当てられる。優先順位レベルは、関連ＰＣＩ装置の帯域幅に基づいて決定される。例えば、高い帯域幅と低いバッファ能力を持つＰＣＩ装置には、より狭い帯域幅および／またはより高いバッファ能力を持つ装置より高い調停優先順位を、割当てなければならない。この特許の代表的な実施形態は、第二のシステム・バスに電気的に接続している二つのレベルの調停ロジックと、個々の入出力バス位置の一方が、標準入出力バスへのアクセスのために競合している、複数の個々の入出力位置から選択される入出力バス上で、調停を行うためのロジックの第一のレベルと、選択した個々の入出力バス位置の間で、調停を行うためのロジックの第二のレベルとを備える、二つのレベルを持つ調停ロジックとを持ち、ＣＰＵと少なくとも一つの周辺機器が、周辺バスにアクセスするために選択される。前記二つのレベルを持つ調停ロジックは、調停ロジックの第一および第二のレベルを、直接接続している側帯波信号と、選択した個々の入出力バス位置に対応する、調停識別情報を含む側帯波信号を含む。
【００３２】
「１バイト幅のデジタル・データ・バスと、４バイト幅のデジタル・データ・バスとの間で、データを転送するためのデジタル・データ装置」という名称の米国特許第５，４２８，７６３号は、ＶＭＥとＳＣＳＩバスとの間でのデータ転送の制御に関する。
【００３３】
「高速直接メモリ・アクセス・バス用の調停装置」という名称の米国特許第５，４７１，６３９号は、ＤＭＡコントローラの調停回路に関する。
【００３４】
「プロセッサの介入を少なくするための、ＤＭＡコントローラ、サービス調停装置、バッファ・タイプ・マネージャ、およびデータ転送を管理するためのバッファ・マネージャを持つデータ・パケット切り替えシステム」という名称の米国特許第５，５３０，９０２号は、データ・パケット転送を使用する、マイクロプロセッサ装置用の共通バッファ管理スキームに関する。
【００３５】
「ＤＭＡ転送の動的バス・サイズ決定」という名称の米国特許第５，５４８，７８６号は、異なるサイズのバスを通してのデータ転送を制御するために、バス・サイズ制御情報を使用するＤＭＡコントローラに関する。
【００３６】
「複数のデータ経路が発生した、メモリ要求信号タイプを使用する調停制御用システム」という名称の米国特許第５，５４８，７９３号は、要求タイプに優先順位を割り当てることによる、並列プロセッサを持つビデオ信号処理システムのメモリ要求間の調停に関する。
【００３７】
「複数のディスク・ドライブからのＤＭＡ要求を調停するために、ゲート回路を使用するＳＣＳＩバス容量拡張コントローラ」という名称の米国特許第５，５６６，３４５号は、ＳＣＳＩバスに接続する装置の数を拡張するためのプロトコル規格の使用に関する。
【００３８】
前記特許に記載してあるように、この分野には多数のそして種々のメモリ／バス調停スキームが使用されているが、特に高いビデオ解像度が要求される近代パソコンの場合には、待ち時間および帯域幅に関するいくつかの問題が未解決のままである。
【００３９】
コア・ロジック構成部品は、中央処理ユニット（ＣＰＵ）装置の、ローカル制御およびデータ・バスを、直接メモリ・アクセスＲＡＭ（ＤＲＡＭ）のような他のバス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）のような入出力バスにインターフェースする働きをする。異なるＣＰＵアーキテクチャで実行される、コア・ロジック装置に共通な要件は、ＤＲＡＭおよびＰＣＩのような共有資源に、複数のエージェントがアクセスすることができることである。
【００４０】
従来の実行の場合には、重点的な考慮の対象となったのは、バス・アクセス・クライアントが固定の優先順位を持つ、固定調停アルゴリズムである。この方法は、フレーム・バッファおよびグラバのような、帯域幅および待ち時間要求を変更するクライアントが必要とする柔軟性を持たない。固定アルゴリズムを使用した場合には、要求された時何時でも、高い優先順位の装置に同じ帯域幅を与えることにより、要求が軽くなる場合には、帯域幅が無駄に使用されるという結果になる。
【００４１】
システムの、前記装置は、バッファを使用することにより、ある程度の待ち時間があっても大丈夫になる。しかし、帯域幅要求の変更に基づいて、これらバッファが満たされたり、空になったりする速度が、最低の場合の設計処理能力以下に低下した場合には、前記装置は待ち時間要件を緩和しない。
【００４２】
固定アルゴリズムの場合は、優先順位の高いクライアントが、要求を行った場合でも、ＣＰＵまたは他の高性能装置が（そのバーストを継続する）そのバースト長さを延長させるという方法を利用しない。何故なら、優先順位が高いクライアントがどのくらい長く待ち状態にあるのか、または優先順位の高いクライアントが何時失敗するかを知ることができないからである。
【００４３】
他の方法の場合には、クライアントのところで帯域幅を供給することにより、ある程度の柔軟性を与える試みが行われる。例えば、リアルタイム・クライアントは、ある域値に達するまで、ある要求を表明定しないように複数のタップ点を持つことができる。この方法で問題になるのは、他のリアルタイムまたは高性能被駆動装置がアイドル状態であるために、アイドル時間中転送を行うことができない場合に、このクライアントが、転送することができないことである。このため、将来クライアント間で要求の競合が起こる確率が高くなる。何故なら、側帯域幅がすでに無駄に使用されてしまったからである。本発明を使用すれば、データを持っているとき、クライアントは何時でもアクセスを要求することができ、そのアクセスを要求している間に、経験した待ち時間の長さに基づいて、アクセスの許可が行われる。
【００４４】
ＰＣＩ（周辺部品相互接続）バス優先順位スキームは、またメモリ・コントローラのような他の資源共有装置を使用してすでに実行されている。ＰＣＩは、ラウンド・ロビン方式をサポートポートするが、この場合には、システム・メモリのように、装置にアクセスするためのにバスが許可されるとき、各クライアントおよびエージェントに等しく公平な機会が与えられる。各エージェントは、時間の長さを制限するそれ自身のプログラム可能な待ち時間タイマを実行し、エージェントは、アクセスを許可された場合、バス上にバーストすることができる。
【００４５】
この方法の問題は、エージェントがバスの使用を要求した時、この方法が固定域値のコンセプトまたは多数の固定域値を使用することである。あるエージェントの場合には、バスの負荷が軽いか、バスが使用されていない場合には、バスの要求を考えないし、帯域幅要求が「最高点と最低点」の達した時、バス使用の効率が低くなる。常に要求を行って、ラウンド・ロビン方式を利用するエージェントの場合には、他のエージェントがより多くのデータを持っているかもしれない場合には、短い複数のバーストで、帯域幅を無駄に使用する。何故なら、ラウンド・ロビン方式の場合には、すべてのエージェントは、等しい優先順位を持つからである。
【００４６】
【課題を解決するための手段】
複数の装置により、メモリのような共有資源アクセス・システムへのアクセスを制御する共有資源アクセス・システムであって、記憶した変数に基づいて、資源アクセス要求への優先順位の数値をコード化する優先順位エンコーダと、待ち状態の資源アクセス要求の優先順位の数値を解読、比較し、選出要求を決定する優先順位デコーダと、待機中の資源アクセス要求に対する、共有資源の少なくとも一つのアドレスを解読するアドレス・デコーダと、現在アクティブな資源アクセス要求と、優先順位デコーダからの選出要求との間で調停し、出力を供給する調停装置と、前記調停装置からの出力に基づいて、共有資源へのアクセスを制御する資源コントローラとを有する構成とし、前記複数の各装置に対し、前記優先順位の数値に基づき優先順位曲線を確立するステップを含み、優先順位曲線が、待ち時間の変化に対する優先順位カウントの変化を表すとともに、各装置に対する優先順位曲線が、第一の優先順位領域、第二の優先順位領域、および第三の優先順位領域を含み、第一、第二および第三の優先順位領域それぞれが、待ち時間に対する優先順位カウントのそれぞれの変化速度を持ち、第一の優先順位領域において、ある装置が他の装置による横取りを許すが、他の装置の横取りと要求せず、第二の優先順位領域において、ある装置が他の装置による横取りを許し、また他の装置の横取りを要求し、第三の優先順位領域において、ある装置が他の装置の横取りを要求するが、他の装置による横取りを許さないようにしたことを特徴としている。
【００６９】
【発明の実施の形態】
図１について説明すると、この図は、本発明の例示としての実施形態の実行のブロック図である。
【００７０】
メモリ・コアを見てみると、この実施形態の場合には、メモリ・コアは七つのエージェントを含み、すべてのエージェントは被呼クライアントである。何故なら、前記メモリ・コアは、単一のメモリ資源にアクセスするための、すべての要求をサーブするからである。クライアントの一例としては、独立の読み出しおよび書き込み経路、グラフィックス・コントローラ１０４、ＶＧＡコントローラ１０６、表示をリフレッシュするために、メモリにアクセスするビデオ走査バッファ１０８、リアルタイムＹＵＶマルチメディア・ポート１１０（ビデオ入力）、ハードウェア・カーソル１１２、または独立のビット・マップした画像またはＰＣＩ１１４のような入出力クライアントを必要とするＸ８６マイクロプロセッサのようなホストＣＰＵ１０２がある。
【００７１】
図１のブロック１１６は、段階１優先順位エンコーダ、優先順位デコーダおよびＲＡＳチャネル・デコーダである。図に示すように、ブロック１１６は、種々のクライアントから要求を受信する。ブロック１１６は、Ｅｒｒｏｒ Ｃｈｅｃｋを、段階１エラー・チェック・ブロック１１８に出力し、Ｄｅｃｏｄｅを段階１アーキテクチャ１２２に出力する。
【００７２】
段階１エラー・チェック・ブロック１１８は、「エラー状態」を段階１アーキテクチャ１２２およびレジスタ・ファイル・ブロック１３４に出力する。
【００７３】
段階１ロック（タグ付け）ブロック１２０は、段階ＩＣＣＣサブステージ・ブロック１３０、および段階１ロック状態維持サブステージ１２８がするように、段階１アーキテクチャ１２２と信号を交換する。
【００７４】
段階１アーキテクチャ１２２は、入出力コンフィギュレーション・バスに接続している。
【００７５】
段階１アーキテクチャ１２２は、「要求エントリ発行」を、段階２メモリ・コントローラ（非同期および同期）ブロック１３２に出力する。
【００７６】
段階１アーキテクチャ１２２は、クライアント発行状態を出力する。
【００７７】
段階２メモリ・コントローラ・ブロック１３２は、「制御信号」を、クライアントの各データ・バスおよびＤＲＡＭインターフェース・データ・バスに接続している段階２データ・マルチプレクサ１２４に出力する。
【００７８】
段階２メモリ・コントローラ・ブロック１３２は、「ＲＤＹ／ＤＯＮＥ」を段階２要求バス状態マルチプレクサ・ブロック１２６に出力し、前記ブロック１２６は、各クライアントに出力を送る。
【００７９】
段階２メモリ・コントローラ・ブロック１３２は、入出力コンフィギュレーション・バスを通して、さらにレジスタ・ファイル・ブロック１３４、段階１アーキテクチャ１２２、および優先順位エンコーダ／デコーダ／ＲＡＳチャネル・デコーダ・クロック１１６に接続している。
【００８０】
レジスタ・ファイル・ブロック１３４は、ホスト・コア・インターフェース・ブロック１０２に接続している。
【００８１】
より詳細に説明すると、すべてのメモリ・クライアントは、要求バスを通して、メモリ・コアの段階１にインターフェースにより接続している。図示のクライアントは、ホスト・コア・インターフェース１０２、グラフィックス・アクセラレータ・エンジン１０４、ＶＧＡビデオ・コントローラ１０６、ビデオ走査バッファ１０８、ハードウェア・カーソル１１２、ＹＵＶビデオ入力ストリーム１１０、およびＰＣＩコア１１４を含む。
【００８２】
各クライアント用の要求バスは、対応する物理的アドレス、バイト・マスク、バーズト・サイズ、タイプ（読み出しまたは書き込み）、バースト順序（直線的、シーケンシャル、インターリーブ）、読み出し修正（要求位置ロック）、シーケンス番号、書き込みデータ入力と共に、クライアントの要求を知らせるためのものである。メモリ・コアからクライアントへの要求バス出力信号は、発行インジケータ、エラー、データ読み出し／書き込みレディ、発行済みまたはレディ・シーケンス番号または読み出しデータを含む。
【００８３】
各クライアントは、待ち時間感度およびバースト・サイズに基づいて、書き込みまたは読み出しバッファをサポートする場合もあるし、サポートしない場合もある。また、クライアントは、メモリ領域を決定する個々のレジスタによりプログラムされる。このときのメモリ領域はメモリ・コアによりキャッシュのコヒーレンシー（スヌープまたは問い合せサイクル）を必要とし、キャッシュに記憶可能であると考えられる領域である。  側帯波信号が、問い合わせ（検査）サイクルを同期できるように、ホストと段階１との間に供給される。この動作は要求されたメモリ位置が修正キャッシュ・ラインと一致しても、可能性のある結果がキャッシュを無効としている場合に行われる。キャッシュが無効になると、要求しているクライアントのアクセスの前に、実行しなければならないキャッシュ・ラインの書き戻しが行われる。より詳細に説明すると、ホスト・インターフェースへのメモリ・コアに対しては、前記側帯波信号は、問い合わせサイクル要求であり、問い合わせアドレスであり、メモリ・コアへのホスト・インターフェースに対しては、前記側帯波信号は、問い合わせサイクル受取通知、修正一致、修正不一致である。
【００８４】
入力／出力コンフィギュレーション・バス１３６は、優先順位領域および優先順位変更速度、キャッシュ可能なメモリ領域、メモリ保護領域、メモリ・タイミング、メモリ・タイプを決定する、調停関連のレジスタのように、すべてのプログラム可能なレジスタ・ファイル１３４出力を供給する。すべてのデータは、レジスタ・ファイル１３４に記憶される。
【００８５】
段階１優先順位エンコーダ／デコーダＲＡＳチャネル・デコーダ・ブロック１１６は、優先順位コード化、優先順位解読を実行するための、階層動作ブロックを含む。優先順位エンコーダは、本特許明細書に記載するように、優先順位カウント累積機能を行う。この場合、未処置のクライアント要求は、二つの優先順位領域の０に対する優先順位カウントの変更速度を記述するレジスタ設定に基づいて、優先順位カウント値を累積する。優先順位エンコーダは、またあるクライアントに対する横取りを発生するための、優先順位領域０−２のところで概略説明したルールに基づいて、待機中のクライアントに対する横取り要求を送る。
【００８６】
優先順位デコーダは、未処置のクライアント要求に対する、すべての優先順位カウントを比較し、領域０−２に対する優先順位領域ルールに基づく、選出クライアントＩＤを表示する。さらに、優先順位デコーダは、優先順位エンコーダによる横取り要求に基づいて、アクティブな段２のタスクの横取りを表示し、三つの優先順位領域を制御する。
【００８８】
段階１アーキテクチャ１２２は、１１６のすべての階層ブロックの決定と平行して、またこの決定に基づいて、アクティブな段階２の、メモリ・コントローラ１３２により、タスクが完了したの後、選出要求をラッチする。ラッチされた要求は、要求アドレス・タイプ、バースト・サイズ、バイト・マスク、クライアントＩＤを含む。ラッチされた信号は、段階２メモリ・コントローラ１３２に発行される。
【００８９】
横取りが発生した場合には、段階１アーキテクチャ１２２は、現在の未処置のバースト・サイズと一緒に、バッファに横取りしたタスクを記憶し、横取りタスクを発行する。横取りタスクが完了すると、調停装置１２２は、新しい基準（アドレス）および突出バースト・サイズと一緒に、横取りタスクを復元する。入り子状になった横取りがサポートされる。しかし、多重に横取りされたタスクの場合には、横取りタスクが完了した後で、その優先順位カウントに基づいて、タスクが復元される。任意の新しい要求がラッチされると、調停装置ブロック１２２は、選出クライアントに要求信号を正式に発行する。
【００９０】
調停装置への三つのサブ段階がサポートされる。ＣＣＣ（キャッシュ・コヒーレンシー・チェック）サブ段階１３０が、キャッシュ・コヒレンス・チェックを必要とし、必要なキャッシュ・ラインからの外れまたは当たり書き戻しが発生するまで、ＣＣＣサブ段階に残留する要求を発行する。ＣＣＣサブ段階は、一つの要求分だけ深く、側帯波信号を通して、ホスト・インターフェースへの問い合わせサイクルを要求する。段階１ロック（タグ付け）ブロック１２０は、要求バス上に表示された読み出し−修正−書き込みアクセスとして要求された、任意の読み出しアドレスにタグを付ける。この位置への後続の任意の要求は、ロックするクライアントから、ロックされた位置への、書き込むサイクルが発生するまで、遅延され、段階１ロック遅延サブ段階１２８に発行される。
【００９１】
段階１エラー・チェック・ブロック１１８は、違法で、保護されていて（読み出しのみを含む）マップされていないアドレスへの要求をチェックする。エラー状態バス１３８は、違反しているクライアントに表明されたエラー信号を供給する他に、ソフトウェア制御下のエラー状態を読み出すために、レジスタ・ファイル・ブロック１３４にマップされる。
【００９２】
前記例示としての実施形態の段階２は、二つのメモリ・コントローラ１３２、すなわち、非同期コントローラおよび同期コントローラを備える。このアプリケーション用の非同期コントローラは、ＥＤＯ  ＤＲＡＭを駆動し、一方、同期コントローラは、ＳＤＲＡＭ／ＳＧＲＡＭを駆動する。各コントローラは、二つのチャネル、すなわち、性能を向上させるためにインターリーブすることができるチャネルＡと、チャネルＢを持つ。コントローラ１３２の出力は、多重化され、必要なＤＲＡＭ制御信号およびアドレスを駆動する。レディ・アンド・ダン（ｒｅａｄｙ  ａｎｄ  ｄｏｎｅ）信号が、アクティブ・クライアントと目標メモリ・コントローラとの間の、適当なクライアントへの、段階２要求バス状態マルチプレクサ・ブロック１２６により多重化されたデータを、ハンドシェークさせるために発生する。このブロック１２６は、アイドルまたは待機中の要求を持つ、クライアントへのレディ・アンド・ダン信号の表明を解除する。
【００９３】
データ読み出しは、ＤＲＡＭインターフェース・データ・バスから、すべてのクライアントに直接送られるが、この場合、各クライアントは、読み出したデータが何時有効であるかを表示するために、それ自身の読み出しレディ・アンド・ダン信号を受信する。書き込み可能な各クライアントは、それ自身のデータ書き込みバスを持ち、アクティブなクライアントに基づいて、データ・マルチプレクサ・ブロック１２４により多重化され、アクティブなメモリ・コントローラにより制御される。ダンと一緒にメモリ・コントローラにより表明された書き込みレディ信号により書き込みが行われるとき、データ書き込みが送られる。
【００９４】
前記例示としての実施形態の場合には、すべてのクライアントは、一つのメモリ資源にアクセスし、この実行を統合されたメモリ・アーキテクチャ（ＵＭＡ）とする。このアーキテクチャに対する要求の場合には、ビデオ入力１１０、ハードウェア・カーソル１１２およびビデオ走査バッファ１０８クライアントのような、リアルタイム・データ・アクセスを持つクライアントは、リアルタイムデータ・ストリームにアクセスする予測可能な最大待ち時間を持つ。そうでないと、ビデオ・フレームが脱落したり、表示が不鮮明になったりする。
【００９５】
リアルタイム・クライアントに対する待ち時間を最も短くすると同時に、ＣＰＵのパイプラインを遅延させないため、また性能に悪影響を与えないようにするために、ホストＣＰＵ１０２の待ち時間をできるだけ短くしなければならない。
【００９６】
すべての待ち時間要件は、データ帯域幅を最大にするためには、メモリ・アーキテクチャを持つ長いデータ・バーストが望ましいという事実と矛盾してくる。例えば、拡張データ出力（ＥＤＯ）ＤＲＡＭおよび同期ＤＲＡＭ（ＳＤＲＡＭ）の場合には、オープン・ページの場合に発生するデータ・バーストが長ければ長いほど、その処理能力は高い。しかし、データ・バーストが長ければ長いほど、待機中の要求（タスク）を持つクライアントの待ち時間はますます長くなる。
【００９７】
フレームまたは割り込みリフレッシュ・データの脱落を防止するために、リアルタイムのクライアントが適当な帯域幅および待ち時間を持つのを保証すると同時に、待ち時間Ｉ対バースト性能を維持しなければならないという問題がある。
【００９８】
統合メモリ・アーキテクチャ（ＵＭＡ）の利点は、すべてのクライアントが一つのメモリ資源を共有するので、コストが安くてすむこと、および表示をおこなうために独立のフレーム・バッファを必要としないことである。この利点は、大容量のフレーム・バッファを必要とする三次元で、自然色の、１２８０ｘ１０２４のような高ビデオ解像度をサポートする場合には、さらに有利なものとなる。
【００９９】
さらに、ＵＭＡアーキテクチャは、リアルタイム・ビデオ・クライアントと、メモリ・サブシステムとの間のデータ経路を高速にし、ノートブックおよび個人データアシスタント（ＰＤＡ）のような携帯用アプリケーションに対して高いレベルの統合を行う。
【０１００】
＜クライアント優先順位曲線＞
本発明は、すべてのサポートしているクライアントの、待ち時間および帯域幅要件を計算することができ、結果を、本発明でサポートされているハードウェア・レジスタの形に、プログラムすることができる優先順位アーキテクチャを実行する。前記レジスタは、ソフトウェア・ドライバによりプログラムされ、ピクセル深さのビデオ解像度の変更のような、各クライアントに対する帯域幅要件に基づいて変更することができるし、またはＰＣＩ上でサポートされているＳＣＳＩ装置を、より高速にすることができる。
【０１０１】
図１は、本発明の例示としての実施形態であり、考慮しなければならないいくつかの重要な項目としては、下記のものがある。すなわち、レジスタ・ファイルに記憶したプログラム可能な数値、優先順位エンコーダでサポートされている各クライアント用の、優先順位カウントおよび横取りフラッグ、および優先順位デコーダが供給する選出（アクティブ）タスクの制御である。
【０１０２】
図２について説明すると、本発明は、この例示としての実施形態の場合には、各クライアントの優先順位が、待ち時間（Ｘ軸）の変化に対して優先順位カウント（Ｙ軸）の変化としてグラフ表示されている。各クライアントは、自分自身の優先順位曲線を持つ。前記曲線は、さらに領域１、領域２および領域３という名前がついている三つの優先順位領域に分割される。優先順位領域０は、優先順位カウントに対してある有限の整数である、待ち時間に対する基礎優先順位カウントを定義している、ハードウェア・レジスタからスタートする。待ち時間に対するカウントはゼロである。他の二つの優先順位領域（１および２）は、優先順位域値レジスタ１および２により定義される。前記レジスタは、クロックによる待ち時間のカウントを表す２進コードでプログラムされる。前記レジスタは、定義した優先順位領域の、あるクライアントに与えられる待ち時間に基づいてプログラムされ、その領域に入ったかどうかを判断するために、そのクライアントの優先順位カウントと比較される。
【０１０３】
優先順位領域は、二つの有意の境界定義を持つ。第一の定義は、優先順位が累積される速度を定義する。第二の定義は、クライアントのタスクが、他のタスクを横取りしているか、より高い優先順位要求に対して横取りされているかどうかを定義する。また、横取りしているタスクは、目的の待ち時間および帯域幅を達成するリアルタイム・クライアントに成功を保証する。
【０１０４】
この例の場合、図３は、図２の優先順位曲線により実行する、一組の横取りルールの概略を示す。ここでもまた、各クライアントは、それ自身の優先順位曲線に基づいて、それ自身の横取りルールを実行する。縦列１は、クライアントが現在いる優先順位領域の概略を示す。縦列２は、待機中の要求を表明している場合に、クライアントが横取りを要求するかどうかを概略示す。縦列３は、自分が現在のアクティブなタスクを持っていて、他のクライアントが横取りを要求した場合、そのクライアントの行動を概略示す。
【０１０５】
前記ルールは、一人のクライアントが、待たされた待ち時間の長さに関する横取りに対する組織的な方法である。「一番下のライン」は、あるクライアントが優先順位領域１にいる場合には、他のクライアントがより高い優先順位カウントからみて、もっと長い待ち時間を経験した場合には、前記他のクライアントが、帯域幅を入手することができるラインであり、一方、あるクライアント優先順位領域３にいる場合には、他のクライアントは、どのような状況下でも、帯域幅を横取りすることはできない。優先順位領域２は、重なり合っている領域で、この領域では新しいタスクに現在のタスクを横取りさせて、クライアントは協力し合う。
【０１０６】
＜横取り制御＞
横取りは、メモリ・コアで、優先順位エンコーダにより発生し、優先順位デコーダにより支配される。優先順位領域２または３の、待ち状態のタスクを持つあるクライアントが、優先順位領域１または２の現在のアクティブ・タスクより、高い優先順位カウントをもっている場合に、アクティブなタスクの横取りに対する要求が発生する。この横取りは、現在アクティブなタスクによる待ち時間によるものである。前記アクティブなタスクが、すでに概略説明したように、優先順位領域３で実行中である場合には、現在アクティブなタスクを持つクライアントは、より高い優先順位を持つクライアントへのアクセスを拒否するだけである。このことは、アクティブなタスクがすでに長い待ち時間を経験し、例えば、失敗しそうなことを示す。
【０１０７】
横取りと一緒に考慮されるもう一つの変数は、横取りされる前に、クライアントが持つことができる最少の帯域幅の大きさである。メモリにページを設定するには、行アドレス・ストローブ（ＲＡＳ）プリチャージ、およびＲＡＳ−コラム・アドレス・ストローブ（ＣＡＳ）遅延から見てコストが高い。ページを設定する際に、長い帯域幅をバーストするのに不十分になるのを避けるために、横取りされる前に、クライアントが許可したデータ・アクセスの数が最も少ない場合に、プログラムすることが許される。理想的には、一人のクライアントが入手できる最大の帯域幅を、同じＲＡＳページへ、また同じＲＡＳページから連続的にバーストすることである。
【０１０８】
＜累積優先順位＞
あるクライアントが、資源へのアクセスの待ち状態の要求を、持っている場合には、その優先順位は増分ずつ増大する。前記クライアントがアクセスを拒否されると、優先順位エンコーダにより、その優先順位が増分だけ増大する。優先順位デコーダは、優先順位曲線のそのクライアントの位置を解読し、優先順位エンコーダに、優先順位カウント速度の変更をフィードバックする。優先順位が増分だけ増大する速度は、クライアントがどの領域に存在するかにより違ってくる。
【０１０９】
あるクライアントが、資源へのアクセスを許可された場合で、そのクライアントが、新しい要求を持っていない場合には、優先順位は、基準優先順位にリセットされる。前記クライアントが、新しい待ち状態の要求を持っている場合には（前記クライアントはその要求信号を継続的に表明し続ける）、第一のタスクと一緒に実行されるまで、クライアントはその優先順位の数値を保持する。その時点で、それが第二の要求と共に待ち時間を経験している場合には、カウントを中断したところから、その優先順位カウントは増分だけ増大する。この方法は、クライアントが通常、待ち時間要求に基づく容量と共に変化する、バッファを持っていることを考慮に入れる。
【０１１０】
＜クライアント対クライアント帯域幅分析＞
本特許明細書に概略記載した、優先順位および横取りに対するハードウェアサポートから、各クライアントの基準優先順位、待ち時間に基づく優先順位の領域の変化速度、および各優先順位領域に行き着くために、優先順位カウントが累積しなければならない時間の長さに対して、プログラムすべき適当な数値を決定するために、ソフトウェア環境で決定されたデータを書き込むことができる。
【０１１１】
ソフトウェア環境は、図２に概略示した曲線に基づき、各クライアントをプログラムする。待ち時間に対して変化する許容範囲を持つ、多くのクライアントが共有する、任意のハードウェア資源に関する重要な問題は、リアルタイム・ビデオ・クライアントの帯域幅および待ち時間要求に適合していないために起こる、フレームまたはピクセルの脱落のような、エラーを起こさない調停スキームを分析し、設計することである。さらに、すでに概略考察したように、紙と鉛筆ですべての変数を計算するのは面倒な仕事である。
【０１１２】
このようなソフトウェア環境の下で、前記エラーを防止しながら、最初にクライアントの優先順位を決めることができる。例えば、ビデオ・スクリーン・リフレッシュに対するクライアントの要求データは、優先順位の高いクライアントであると見なされる。
【０１１３】
ユーザのアプリケーションに従って変化することができる、サポートされているスクリーン解像度およびピクセルの深さに基づいて、クライアントが経験した待ち時間のある長さに対して、優先順位および領域設置の速度により、クライアントがエラーに絶対に遭遇しないようにするために、サポートしている各解像度およびピクセルの深さの組合せに対して、一本の曲線を描くことができる。
【０１１４】
この技法は、複数のクライアントが、（ＣＰＵ読み出しサイクルのように）待ち時間が余りにも長すぎる場合には、性能に悪影響を与えるクライアントと、同じ資源を共有している場合には、さらに有効なものになる。曲線は、エラーの発生を防止し、システム全体の性能に影響を与える重要なクライアントに対して、性能をできるかぎり最適化した状態で描かれる。
【０１１５】
もっと多くのクライアント曲線が描かれると、前の優先順位曲線に基づいて、帯域幅を単に使いきってしまうケースを決定する際に、「ｗｈａｔ  ｉｆ」シナリオが考慮され、シナリオ失敗を示す警告が出される。前記警告は、ビデオ・リフレッシュ・クライアントに対する解像度およびピクセル深さに基づく、リアルタイムのＹＵＶフレーム・グラバ・クライアントのフレーム速度による、アーキテクチャ調整を必要とする。前記警告は、またリアルタイム・クライアントに対して計算した曲線に基づくＣＰＵの投影性能を報告する。
【０１１６】
図４は、サンプル・プログラム入力ファイルである。このファイルについては以下に説明する。図４および図５は、それぞれ、ソフトウェア・ドライバによりロードされるレジスタの数値を決定するプログラムと、そのプログラム結果を示す。これら数値は、各クライアントに対する帯域幅および優先順位使用を決定するために、各クライアントにロードされる。このプログラムのすべての権利は、それら数値により明白にリザーブされる。
【０１１７】
図４は、前記プログラムに対する例示としての入力ファイルの概略である。前記入力ファイルは、最初、行アドレス・ストローブ（ＲＡＳ）に対する行アドレス設定および保持、コラム・アドレス・ストローブ（ＣＡＳ）に対するコラム・アドレス設定および保持、ＣＡＳに対するＲＡＳ遅延、およびＲＡＳおよびＣＡＳ両方からのアクセス時間に基づくバースト間の時間に影響を与える、使用する目的ＤＲＡＭ技術について概略記載している。
【０１１８】
ＳＤＲＡＭは、ＲＡＳの代わりに行の作動、およびＣＡＳ発生の代わりに読み出しまたは書き込みコマンドを中心とする、（ＥＤＯおよびＢＥＤＯ  ＤＲＡＭの場合のように）類似の考慮対象のタイミング・パラメータを持つ。
【０１１９】
他の考慮対象としては、最高速のバースト速度（バースト・クロック）を定義するクロック入力がある。個々の各クライアント・エントリ（タスク）によるアクセスは、最悪の場合のリアルタイムクライアント待ち時間要件に対する、行ページ・ミスとなる。最後に、帯域幅および待ち時間測定の間隔が、メモリの使用に対してすべてのクライアントが測定される時間の窓を定義する。この例の場合、前記間隔は、水平走査周波数であり、これはビデオ・リフレッシュ・クライアントにとって重要な時間である。
【０１２０】
目標のメモリおよびプロセッサ速度（クロック）が指定されると、各クライアントは、自分が許容できる、帯域幅使用および待ち時間に基づくエントリを持つ。リアルタイム・クライアントは、失敗点クライアントとして分類される。何故なら、前記クライアントの待ち時間許容範囲を超えると、ビデオ・スクリーン上のビットの脱落のようなミスが発生するからである。他のクライアントは、ホスト読み出しポートのような性能感知クライアントとして分類される。（このようなポートは、読み出しアクセスが完了するまで、ＣＰＵ遅延に基づく性能に直接影響を与える。）第三の分類は、下位の優先順位のクライアントに衝撃を与えない。このように分類されるのは、これらクライアントが過度に長い待ち時間を経験しても、システムへの性能に関する衝撃および故障がより少ないからである。
【０１２１】
あるクライアントにおいては、バーストの長さは必ずしも固定されていないが、多くの場合、固定されている。バーストの長さ、インターバル毎のバーストの数および故障／性能衝撃点は、データ対クロック、バッファ（ＦＩＦＯ）サイズおよびデータ経路幅により影響を受ける、クライアントの帯域幅要件に直接関連する。各クライアントは、これら領域で変化する。
【０１２２】
さらに、あるクライアントは、動作モードに従って変化することができる。例えば、ビデオ・リフレッシュ・クライアントは、スクリーン解像度（水平ｘ垂直ｘ垂直走査周波数）およびピクセル深さ（例えば、８、１６または２４面）に基づく帯域幅および待ち時間要件で変化する。前記スクリーン解像度は、フレーム・バッファ・アクセスに対する増大または減少する要求による、１インターバル毎に必要なバーストの数に直接影響する。ビデオ・リフレッシュ・クライアントのＦＩＦＯサイズ、およびビデオ解像度、またはピクセルの深さも変化した場合には、一つのインターバル毎のバーストの数はさらに影響を受ける。それ故、ドライバのレジスタ数値決定の際に助けになるものは、ビデオ・リフレッシュ・クライアントによりサポートされている、各解像度およびピクセル深さに対するデータ入力ファイルと一緒に、このプログラムを実行する能力である。すべてのクライアントの順列を記述しているファイルを発生させ、動作モードの選択に基づく結果を使用する、ソフトウェア・ドライバと一緒に実行することができる。
【０１２３】
図５は、図４の入力ファイルに基づくプログラム計算の結果を示す。ハードウェアで前記曲線を実行するパワーは、ホスト（ＣＰＵ）が読み出しおよび書き込みクライアントに、待ち時間がリアルタイム・クライアントに対する失敗点に到着しない時間の間に、リアルタイム・クライアントより、高いある優先順位を与えることができたとき、実現する。リアルタイム・クライアントは、また性能とは無関係に要求を表明することができる。それにより、ホスト（ＣＰＵ）読み出しのようなクライアントは、パイプライン遅延を避けるために、アクセスすることができる。
【０１２４】
ハードウェアは、１−３２の間の割り算の間のバス・クロックの整数の割り算に基づく優先順位の変更速度をサポートする。それにより、変化する勾配は、優先順位変更速度対待ち時間を制御する。この制御により、性能向けクライアントは、リアルタイム・クライアントが失敗点に近づくと、よりアグレシブでない勾配で、インパルス関数に（理想的に）近づく優先順位を累積することができる。
【０１２５】
リアルタイム（優先順位の高い）クライアントが、最初に計算される。ＢＷ測定のインターバル中に、もっと多くの帯域幅を使用するクライアントは、もっと一定の勾配の曲線を描く。さらに、要求間の時間の長さは、全曲線の勾配に影響を与える。この場合、要求間の周期が長ければ長いほど、確実に一定の勾配がより緩やかになり、優先順位の速度の増分がより少なくなる。リアルタイム・クライアントが拒絶されると、その優先順位は増大して、失敗点に近づく。
【０１２６】
次に、性能向けクライアントの曲線が、その待ち時間および帯域幅要件、およびリアルタイム・クライアントの要件の前の曲線に対する、残りの帯域幅を考慮して描かれる。
【０１２７】
Ｘ軸（待ち時間）の一番右の凡例は、領域１、２および３で、それぞれ、三倍まで時間単位が変化する。ここでの唯一の定数は、（この例の場合には、０−２５５の間の）カウント値であり、すべての曲線が描かれ、前記カウント値にカバーされる部分が考慮の対象になる。ハードウェアにおいては、クライアントの優先順位カウントおよびその優先順位カウントが存在する領域が、次のアクティブなタスクおよび／または現在のアクティブなタスクが横取りされるかどうかを決定するために使用される。前記曲線は性能ツールとして使用される。
【０１２８】
図３に概略示した横取りルールにより、下位の優先順位クライアントは、アグレシブの程度が低い勾配を持つ領域２を定義し、リアルタイム・クライアントが横取りすることができるようにすることにより、インパルス優先順位カウントの増大に近づくことができる。一方、リアルタイム・クライアントは、領域３での横取りを拒絶する。前記横取りは、失敗点の近くで領域３で計算される。何故なら、リアルタイム・クライアントの時間幅が、性能向けクライアントのものより大きいからである。
【０１２９】
衝撃のないクライアントに分類された、最も低い優先順位のクライアントの曲線が、非常に浅い勾配で描かれるが、曲線の優先順位は、常に、より高い基準優先順位を持つクライアント、またはリアルタイム・クライアントまたは性能衝撃クライアントに分類されたクライアントより低い。これらの優先順位がより低いクライアントの曲線は、その領域２および３で、要求が横取りすることができるように描かれる。しかし、より高い優先順位を持つすべてのクライアントは横取りされない。ＢＷ要求のピーク時、または、例えば、大型スクリーン解像度およびピクセルの深さ、または強度のグラフィック・アプリケーションにより、測定のＢＷインターバルの前記クライアントに残された容量がゼロに近づいた時に、前記性質のクライアントの優先順位カウントは最高値を超える。他のグラフィックス・クライアントは、そのグラフィックス・アプリケーションに基づいて、衝撃のない、または性能衝撃クライアントとしてプログラムされる。
【０１３０】
本発明の例示としての実施形態は、ペンティアム・マイクロプロセッサを、Ｌ２キャッシュ・サブシステム、前記のＤＲＡＭ（ＳＤＲＡＭおよびＥＤＯ）メモリ・アーキテクチャ、ＰＣＩサブシステム、内蔵ＶＧＡおよびグラフィックス・コントローラ、ＹＵＶビデオ入力ポート、ハードウェア・カーソル、およびビデオ・フレーム・バッファ・リフレッシュ・サポートにインターフェースを通して接続する、コア・ロジック装置であるＰＵＭＡ（プロセッサ統合メモリ・アーキテクチャ）と呼ばれるチップで実行される。
【０１３１】
電子商用チップ開発を、現在のスマート・カードおよびバリュー・チェッカー（登録商標）リーダの、個人データ補助（ＰＤＡ）コンパニオンとしての組み込みＰＣのコンセプトと結合するには、電子商用機能を持つＰＵＭＡのような高度な集積チップ、およびＸ８６またはＲｉｓｃプロセッサを必要とする。前記チップは両方とも、外部メモリと一緒に同じボード上に有利に装着されている。ＵＭＡは、グラフィックスおよび／またはビデオ・ディスプレイを含む、高度の集積を目指す有利な装置である。
【０１３２】
本発明を例示としての実施形態を使用して説明してきたが、本発明の範囲は前記実施形態により制限されない。通常の当業者なら知っているように、前記例示としての実施形態は、添付の特許請求の範囲に定義する本発明の精神および範囲内で、種々に変更したり、改良することができる。
【図面の簡単な説明】
【図１】本発明の優先順位スキームを実行するための、設計のメモリ・コアのブロック図である。
【図２】図１の実施形態での、優先順位カウントと優先順位域値および領域との関連を示す、優先順位グラフである。
【図３】図２の優先順位曲線に従って実行した、一組の先取りルールの概略である。
【図４】サンプル・プログラム入力ファイルである。
【図５】図４の前記入力ファイルに基づく、プログラム計算の結果である。
【図１】
0003699833.tif 000002
【図２】
0003699833.tif 000003
【図３】
0003699833.tif 000004
【図４】
0003699833.tif 000005
【図５】
0003699833.tif 000006