(57)【要約】【課題】  利用可能なバス帯域幅を増加し、待ち時間を減少する。【解決手段】  データ処理システムには、バス・トランザクションを行なう別々の書込みチャンネルＷ及び読取りチャンネルＲを有するバスを設ける。特に比較的低速のバス・スレーブと関連した問題を軽減するよう書込み要求をバッファリングするために、バス構造内にはバス・トランザクション・バッファ３４を設ける。バス・トランザクション・バッファ３４は、同じまたは所定の範囲のメモリ・アドレスに対して識別するために、それらを通過する書込み要求及び読取り要求に関連したメモリ・アドレスに応答し、それにより、書込みに追従するよう読取られるこれらのトランザクションの厳密に正確な順序付けを確実にするか、もしくは、バッファリングされた書込みデータ値で、書込みに続く読取りの少なくとも部分を満足させ、次に、その最終の送信先に達しないように読取り要求を潜在的に消去する。【選択図】  図２
2005353041.tif 000002
【特許請求の範囲】
【請求項１】
バス・トランザクション・バッファであって、
それぞれの書込みバス及び読取りバスに結合され、１つまたは２つ以上の要求送信元から書込み要求及び読取り要求を受信するようそれぞれ動作可能の１つまたは２つ以上の書込みバス入力及び１つまたは２つ以上の読取りバス入力と、
それぞれの書込みバス及び読取りバスに結合され、１つまたは２つ以上の要求送信先に書込み要求及び読取り要求を出力するようそれぞれ動作可能の１つまたは２つ以上の書込みバス出力及び１つまたは２つ以上の読取りバス出力と、
前記要求送信元から受信された書込み要求をバッファリングするよう、かつ前記１つまたは２つ以上の要求送信先に対する書込み要求及び読取り要求の処理を制御するよう動作可能の要求バッファリング回路と、
を備え、それにより、少なくとも幾つかの読取り要求は、
（ｉ）与えられたメモリ・アドレスに対する書込み要求が、与えられた要求識別子を有する要求送信元から受信された後に、与えられた要求送信元識別子を有する要求送信元から受信される、与えられたメモリ・アドレスに対する読取り要求は、前記書込み要求が書込みバス出力において完了されたとして承認されるまで、読取りバス出力上に出力されないか、または
（ｉｉ）与えられたメモリ・アドレスに対する書込みデータ値の書込み要求の後、該書込み要求が前記バス・トランザクションによって未だバッファリングされている間に、要求送信元から受信された与えられたメモリ・アドレスに対する読取り要求は、前記バス・トランザクション・バッファ内にバッファリングされている前記書込みデータ値が、前記読取り要求の少なくとも部分を満足させるように前記読取り要求送信元に出力されることに帰結するか、
のいずれか一方であるバス・トランザクション・バッファ。
【請求項２】
前記要求バッファリング回路は、書込み要求に対する対応の要求完了信号が、前記書込み要求に対する前記書込みバス出力において受信されてしまう前に、要求送信元から受信された書込み要求ついて要求送信元に要求完了信号を出力するよう動作可能である請求項１に記載のバス・トランザクション・バッファ。
【請求項３】
前記要求バッファリング回路は、前記要求完了信号が前記書込みバス出力において受信されてしまうまで、与えられたメモリ・アドレスに対する先に受信された書込み要求と相対的に該与えられたメモリ・アドレスに対する読取り要求の処理を制御する請求項２に記載のバス・トランザクション・バッファ。
【請求項４】
要求送信元からの書込み要求または読取り要求の受信時に、前記要求バッファリング回路は、前記要求送信元に要求承認信号を発行するよう動作可能である請求項１に記載のバス・トランザクション・バッファ。
【請求項５】
前記１つまたは２つ以上の要求送信元は、
プロセッサ・コア
ダイレクト・メモリ・アクセス回路、及び
さらなるバス・トランザクション・バッファ
の１つまたは２つ以上を含む請求項１に記載のバス・トランザクション・バッファ。
【請求項６】
前記１つまたは２つ以上の要求送信先は、
メモリ、
メモリ・マッピングされた周辺機器回路、及び
さらなるバス・トランザクション・バッファ
の１つまたは２つ以上を含む請求項１に記載のバス・トランザクション・バッファ。
【請求項７】
前記要求バッファリング回路は、前記１つまたは２つ以上の要求送信元が前記与えられたメモリ・アドレスとは無関係に発行した前記書込み要求及び前記読取り要求を、前記与えられたメモリ・アドレスに対して順序付けするのを制御するよう動作可能である請求項１に記載のバス・トランザクション・バッファ。
【請求項８】
前記要求バッファリング回路は、前記読取り要求及び前記書込み要求が同じ要求送信元識別子で要求送信元から受信された場合にのみ前記バス・トランザクション・バッファ内でバッファリングされる前記書込みデータ値で前記読取り要求を満足させるよう動作可能である請求項１に記載のバス・トランザクション・バッファ。
【請求項９】
バッファリング可能でないメモリ・アドレスに対するバッファリング可能でない書込み要求もまた、前記複数の要求送信元から受信され、そしてバッファリング可能でないメモリ・アドレスに対するバッファリング可能でない書込み要求に応答して、前記要求バッファリング回路は、書込みバス出力において書込み完了信号を受信してしまうまで、書込み完了信号を発行しない請求項１に記載のバス・トランザクション回路。
【請求項１０】
前記要求バッファリング回路は、互いの所定の範囲で、メモリ・アドレスに対する書込み要求及び読取り要求の相対的な順序付けを制御するよう動作可能である請求項１に記載のバス・トランザクション回路。
【請求項１１】
バス・トランザクションを制御する方法であって、
それぞれの書込みバス及び読取りバスに結合された１つまたは２つ以上の書込みバス入力及び１つまたは２つ以上の読取りバス入力において、１つまたは２つ以上の要求送信元からの書込み要求及び読取り要求を受信する段階と、
それぞれの書込みバス及び読取りバスに結合された１つまたは２つ以上の書込みバス出力及び１つまたは２つ以上の読取りバス出力において、１つまたは２つ以上の要求送信先に書込み要求及び読取り要求を出力する段階と、
前記要求送信元から受信された書込み要求をバッファリングし、かつ前記１つまたは２つ以上の要求送信先に対する書込み要求及び読取り要求の処理を制御する段階と、
を含み、それにより、少なくとも幾つかの読取り要求は、
（ｉ）与えられたメモリ・アドレスに対する書込み要求が、与えられた要求識別子を有する要求送信元から受信された後に、与えられた要求送信元識別子を有する要求送信元から受信される、与えられたメモリ・アドレスに対する読取り要求は、前記書込み要求が書込みバス出力において完了されたとして承認されるまで、読取りバス出力上に出力されないか、または
（ｉｉ）与えられたメモリ・アドレスに対する書込みデータ値の書込み要求の後、該書込み要求が前記バス・トランザクションによって未だバッファリングされている間に、要求送信元から受信された与えられたメモリ・アドレスに対する読取り要求は、前記バス・トランザクション・バッファ内にバッファリングされている前記書込みデータ値が、前記読取り要求の少なくとも部分を満足させるように前記読取り要求送信元に出力されることに帰結するか、
のいずれか一方である方法。
【請求項１２】
書込み要求に対する対応の要求完了信号が、前記書込み要求に対する前記書込みバス出力において受信されてしまう前に、要求送信元から受信された書込み要求ついて要求送信元に要求完了信号が出力される請求項１１に記載の方法。
【請求項１３】
前記要求完了信号が前記書込みバス出力において受信されてしまうまで、与えられたメモリ・アドレスに対する先に受信された書込み要求と相対的に該与えられたメモリ・アドレスに対する読取り要求の処理が制御される請求項１２に記載の方法。
【請求項１４】
要求送信元からの書込み要求または読取り要求の受信時に、前記要求送信元に要求承認信号が発行される請求項１１に記載の方法。
【請求項１５】
前記１つまたは２つ以上の要求送信元は、
プロセッサ・コア
ダイレクト・メモリ・アクセス回路、及び
さらなるバス・トランザクション・バッファ
の１つまたは２つ以上を含む請求項１１に記載の方法。
【請求項１６】
前記１つまたは２つ以上の要求送信先は、
メモリ、
メモリ・マッピングされた周辺機器回路、及び
さらなるバス・トランザクション・バッファ
の１つまたは２つ以上を含む請求項１１に記載の方法。
【請求項１７】
前記１つまたは２つ以上の要求送信元が前記与えられたメモリ・アドレスとは無関係に発行した前記書込み要求及び前記読取り要求を、前記与えられたメモリ・アドレスに対して順序付けするのを制御する請求項１１に記載の方法。
【請求項１８】
前記読取り要求及び前記書込み要求が同じ要求送信元識別子で要求送信元から受信された場合にのみ前記バス・トランザクション・バッファ内でバッファリングされる前記書込みデータ値で前記読取り要求を満足させる請求項１１に記載の方法。
【請求項１９】
バッファリング可能でないメモリ・アドレスに対するバッファリング可能でない書込み要求もまた、前記複数の要求送信元から受信され、そしてバッファリング可能でないメモリ・アドレスに対するバッファリング可能でない書込み要求に応答して、書込みバス出力において書込み完了信号を受信してしまうまで、書込み完了信号を発行しない請求項１１に記載の方法。
【請求項２０】
互いの所定の範囲で、メモリ・アドレスに対する書込み要求及び読取り要求の相対的な順序付けを制御する請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。一層詳細には、本発明は、データ処理システム内におけるバス・トランザクションの管理及び制御に関する。
【背景技術】
【０００２】
異なった回路素子を接続するためにバス構造を有し、それを介して、読取り、書込み及び制御の機能のようなバス・トランザクションが行なわれるデータ処理システムを提供することは知られている。データ処理システムは、ますます複雑なシステムのオンチップ集積回路のように、より複雑になってきているので、回路内の種々の機能素子を接続するために用いられるバス構造は、全システム性能に関して一層複雑かつ臨界的になっていく傾向を有している。バス構造の１つの既知の型は、直列化されたバス・トランザクションが通される読取り及び書込みの一体化されたチャンネルを用いる。このような一体化されたチャンネルの方法は、バス・トランザクションのすべてが一体化されたチャンネル上で送り出し順に直列化されるので、バス・トランザクションが送り出される順番は、それらが受信される順番と同じであるという長所を有する。しかしながら、このような方法は、トランザクションのすべてが単一のチャンネルに沿って通されなければならないので、バスの帯域幅に制限を受けかつ待ち時間が増えるという欠点を蒙る。
【０００３】
代替的な方法は、データが並列に通され得る別々の読取りバス及び書込みバスを持ったバス構造を提供することである。このような方法は、利用可能なバス帯域幅を増加し、待ち時間を減少する。
【発明の開示】
【課題を解決するための手段】
【０００４】
一態様に鑑みて、本発明は、バス・トランザクション・バッファであって、
それぞれの書込みバス及び読取りバスに結合され、１つまたは２つ以上の要求送信元から書込み要求及び読取り要求を受信するようそれぞれ動作可能の１つまたは２つ以上の書込みバス入力及び１つまたは２つ以上の読取りバス入力と、
それぞれの書込みバス及び読取りバスに結合され、１つまたは２つ以上の要求送信先に書込み要求及び読取り要求を出力するようそれぞれ動作可能の１つまたは２つ以上の書込みバス出力及び１つまたは２つ以上の読取りバス出力と、
前記要求送信元から受信された書込み要求をバッファリングするよう、かつ前記１つまたは２つ以上の要求送信先に対する書込み要求及び読取り要求の処理を制御するよう動作可能の要求バッファリング回路と、
を備え、それにより、少なくとも幾つかの読取り要求は、
（ｉ）与えられたメモリ・アドレスに対する書込み要求が、与えられた要求識別子を有する要求送信元から受信された後に、与えられた要求送信元識別子を有する要求送信元から受信される、与えられたメモリ・アドレスに対する読取り要求は、前記書込み要求が書込みバス出力において完了されたとして承認されるまで、読取りバス出力上に出力されないか、または
（ｉｉ）与えられたメモリ・アドレスに対する書込みデータ値の書込み要求の後、該書込み要求が前記バス・トランザクションによって未だバッファリングされている間に、要求送信元から受信された与えられたメモリ・アドレスに対する読取り要求は、前記バス・トランザクション・バッファ内にバッファリングされている前記書込みデータ値が、前記読取り要求の少なくとも部分を満足させるように前記読取り要求送信元に出力されることに帰結するか、
のいずれか一方であるバス・トランザクション・バッファを提供する。
【０００５】
バス構造内における並列の読取り及び書込みチャンネルを有するシステムの文脈において、本発明の技術は、該バス構造に接続された異なった回路素子がそれらに向けられたバス・トランザクションを処理することができる速度から生じる問題があり得るということを認識する。例として、もし、システムが、例えばフラッシュ・メモリのような１つまたは２つ以上の特に低速の回路素子を含むならば、次に、例えば、高性能ＣＰＵのような高性能回路素子は、低性能回路素子において向けられるバス・トランザクション要求が完了されるのを待っているそれらの処理において保持され得、それにより高性能回路素子を解放してさらなるトランザクションを処理する。この問題を処理する１つの方法は、所望の回路素子に対するトランザクション要求をバッファリングするために用いられ得るバス構造自体内にバッファリングを提供することであり、それにより、それらのバッファリングされたトランザクションが実際に完了される前に、他の回路素子が処理を継続するために解放され得る。このバッファリングを設けることに追加して、本技術は、生じ得る特定の危険を認識しており、それにおいて、別々の読取り及び書込みチャンネルの場合、もしバス構造内でのバッファリングが提供されるならば、トランザクションが発行される順序が、異なったチャンネル内におけるバッファリングを受けたときに完了される順序ではないかも知れないということが起こり得る。本技術はこの危険を認識しており、そしてバッファリング回路が少なくとも同じ要求送信元から同じメモリ場所にトランザクションを検出し、かつそれらを適正に順序付けるということを確実にする解決法を提供しており、それにより、読取りは、正しいシーケンスで書込みに続くか、もしくは読取りの少なくとも部分を、当該の特定のシステムにおいて所望かつ適切であり得るバッファフィングされた書込み値で満足させる。バッファリングされた書込みは、後の読取りの部分に対応し得る。この場合、読取りは、これが一致性を確実にするために戻されるときに読取りデータ内に併合されるバッファリングされた書込みと共に発行され得る。これらの危険回避機構の少なくとも１つは、少なくとも幾つかの読取りのために動作するが、追加の代替的な危険回避機構も使用され得るということが理解されるであろう。
【０００６】
別々の読取り及び書込みバス・チャンネルを有し、かつ内部でバッファリングが行われ得るこのようなシステム内で、要求がその最終送信先において究極的に完了されてしまう前に、もし、要求バッファリング回路が要求完了信号を要求している送信元に戻して出力するように配列されているならば、性能が高められ得る。従って、バッファリング回路は、適正かつ究極的に完了され、かつ他のバス要求に対する正しい相対的な順序付け内で完了されるその要求に対して有効に責任を取ることができる。
【０００７】
上の文脈において、要求バッファリング回路は、係属中の書込みデータを所望もしくは適切なものとして相対的に順序付けするもしくは送り出すことを制御することにより、適切なバス・トランザクションの完了に対してこれらの委譲された責任を行うよう動作可能であるのが好ましい。
【０００８】
システムの性能は、これが概念的に完了される前でさえ書込み要求を受信したときに要求承認信号が要求バッファリング回路によって発行されるという実施形態においてさらに改善され得、その理由は、アドレス・バスのようなリソースが他の使用のために解放されるのを許容し得るからである。
【０００９】
要求送信元は、プロセッサ・コア、ダイレクト・メモリ・アクセス回路または階層的なバッファリングされたバス構造内のさらなるバス・トランザクション・バッファを含む種々の異なった形態を取ることができることが理解されるであろう。
【００１０】
同様の方法で、要求送信先は、メモリ、メモリ・マッピングされた周辺機器回路及びさらなるバス・トランザクション・バッファを含む種々の異なった形態を取ることができる。
【００１１】
１つの任意選択的な要件として、同じメモリ・アドレスに書込みを適正に追随させるような読取りの相対的な順序付けは、要求送信元識別子が同一であるときに保存され得る。しかしながら、より一般的には、この原理は、要求が異なった要求送信元から生じる場合でさえ、要求が同じメモリ・アドレスにあるときに適用され得る。
【００１２】
同様の方法で、バッファリングされた書込みデータ値による読取り要求の満足は、概して、与えられたメモリ・アドレスに対してバッファリングされた書込みデータ値が利用可能であるときはいつも使用され得るか、もしくは代替的には、与えられたメモリ・アドレスからのデータ値に対する要求送信元が、該与えられたメモリ・アドレスに対するバッファリングされた書込みデータ値の書込みを開始した要求送信元と同じであるときは一層制限的に使用され得る。
【００１３】
全システムにおいて、バッファリング可能でない書込み要求も、それらが或る種の周辺機器もしくは全システム内の他の装置に対して適切であり得るので、支持されるべきであるのが好適である。このようなバッファリング可能でない要求は、完了された信号が元の要求送信元に通し戻される前に、行なっても良くまたは行なわなくても良い任意の中間のバッファリングとは無関係に、その最終の送信先を介して実際に完了されなければならないものである。このことは、完全なシステムの広範な順序付け及び相対的なタイミングが大いに臨界的である状況に対して重要であり得る。
【００１４】
順序付けられるべきであるもしくはそうでなければ制御されるべきであるトランザクションのメモリ・アドレスの一致は、正確な一致に対する要件であり得、もしくは代替的には、特定のメモリ・アドレス値ではなくむしろアドレス範囲によって決定される一致であり得る。
【００１５】
もう１つの態様に鑑みて、本発明は、バス・トランザクションを制御する方法であって、
それぞれの書込みバス及び読取りバスに結合された１つまたは２つ以上の書込みバス入力及び１つまたは２つ以上の読取りバス入力において、１つまたは２つ以上の要求送信元からの書込み要求及び読取り要求を受信する段階と、
それぞれの書込みバス及び読取りバスに結合された１つまたは２つ以上の書込みバス出力及び１つまたは２つ以上の読取りバス出力において、１つまたは２つ以上の要求送信先に書込み要求及び読取り要求を出力する段階と、
前記要求送信元から受信された書込み要求をバッファリングし、かつ前記１つまたは２つ以上の要求送信先に対する書込み要求及び読取り要求の処理を制御する段階と、
を含み、それにより、少なくとも幾つかの読取り要求は、
（ｉ）与えられたメモリ・アドレスに対する書込み要求が、与えられた要求識別子を有する要求送信元から受信された後に、与えられた要求送信元識別子を有する要求送信元から受信される、与えられたメモリ・アドレスに対する読取り要求は、前記書込み要求が書込みバス出力において完了されたとして承認されるまで、読取りバス出力上に出力されないか、または
（ｉｉ）与えられたメモリ・アドレスに対する書込みデータ値の書込み要求の後、該書込み要求が前記バス・トランザクションによって未だバッファリングされている間に、要求送信元から受信された与えられたメモリ・アドレスに対する読取り要求は、前記バス・トランザクション・バッファ内にバッファリングされている前記書込みデータ値が、前記読取り要求の少なくとも部分を満足させるように前記読取り要求送信元に出力されることに帰結するか、
のいずれか一方である方法を提供する。
【００１６】
本発明の上述の及び他の目的、特徴及び長所は、添付図面と関連させて、説明的実施形態である以下の詳細な説明を読むことから明瞭となるであろう。
【発明を実施するための最良の形態】
【００１７】
図１は、外部のフラッシュ・メモリ４及び外部の周辺機器６に結合された集積回路２を含むデータ処理システムを概略的に示す。集積回路２内には、プロセッサ・コア及びダイレクト・メモリ・アクセス回路の形態で、多数のバス・トランザクション・ソース（送信元）８、１０、１２が設けられている。バス・トランザクションの送信元（ソース）の他の形態も可能である。集積回路２内のバス・トランザクションの送信先は、ランダム・アクセス・メモリ１４、第１の周辺機器１６及び第２の周辺機器１８を含む。図１から明白であるように、バス構造の部分として種々の回路素子間に読取り及び書込みの別々のチャンネルが設けられている。マルチプレクサ２０、２２は、多数のトランザクション・ソースから受信された読取り及び書込みチャンネルを１つの読取りチャンネル及び１つの書込みチャンネルに一緒に多重化するように働く。デマルチプレクサ２４、２６、２８は、別々のトランザクションの送信先に対する別々の読取り及び書込みチャンネルに戻すようにバス構造を逆多重化するよう働く。
【００１８】
集積回路２内には、トランザクション送信元（ソース）とトランザクション送信先との間に配置される、バス構造自体内のバス・トランザクション・バッファ回路３０、３２が設けられる。特に、これらのバス・トランザクション・バッファ回路３０、３２は、オフチップ・フラッシュ・メモリ４及び周辺機器装置６、１６、１８のような比較的低速のトランザクション送信先の上流に設けられる。この方法で、これらの比較的低速の装置へのバス・トランザクションは、バス・トランザクション・バッファ回路３０、３２内でバッファリングされて、それらのトランザクション発信元に対して完了したものとして返信応答され得、これにより、これらの高性能のトランザクション送信元は、比較的低速のトランザクション送信先がそれらに向けられたトランザクションを実際に完了するのを待たなければならないということ無しで、処理及び動作を継続するのを許容される。
【００１９】
図１における図示は、別々の読取り及び書込みチャンネルを大いに概略的な形態で示すものであり、これらの読取り及び書込みチャンネルの各々は、それ自体のデータ・バス部分、アドレス・バス部分、制御信号部分、ハンド・シェーキング信号部分、等を有し得るということが当業者には理解されるであろう。別々の読取り及び書込みチャンネルを有するこのようなシステムに対し、広い範囲の種々の異なった可能性がある。また、本技術は、多数の読取りチャンネル、多数の書込みチャンネルもしくは多数の読取り及び多数の書込みチャンネルの双方を有するシステムにおいても用いられことが可能であるので、単一の読取りチャンネル及び単一の書込みチャンネルだけを有するシステムに制限されるものでもない。
【００２０】
図２は、バス・トランザクション・バッファ３４を一層詳細に示す概略図である。示されたバス・トランザクション・バッファ３４は、書込みバス入力３６及び読取りバス入力３８を含む。書込みバス出力４０及び読取りバス出力４２も設けられる。バス・トランザクション・バッファ３４内には、ＦＩＦＯの形態を有する多数のエントリ書込みバッファ４４が、単一のエントリ読取り要求バッファ４６であると見なされ得るものと一緒に設けられる。読取り要求バッファ４６と書込みバッファ４４との間で、要求バッファリング制御回路４８は、読取り要求及び書込み要求が向けられるメモリ・アドレスを比較するように働き、それらが、正確にまたはアドレス値の所定の範囲内で、のいずれかで一致するときを識別して、次に、トランザクション要求の順序を保存するように所定の動作を取る。
【００２１】
与えられたメモリ・アドレスへの書込み要求が受信されると、これは、書込みバッファ４４内でバッファリングされる。その同じメモリ・アドレスへの読取り要求が、バス・トランザクション・バッファ３４によって後で受信されるかも知れず、この後で受信された読取り要求は、要求バッファリング制御回路４８によって識別され、これにより、該読取り要求は、書込みバッファ４４内の一致する書込み要求がバス・トランザクション・バッファ３４から出力されてしまって、それが送られるトランザクション送信先によって完了したとの承認を受け取るまで、読取り要求バッファ４６内で延期される（バッファリングされたと見なされる）。代替として、もし、宛て先の装置及び全システムのアーキテクチャ及び特性がそのように提供されているならば、次に、係属中の書込み要求と一致する後で受信された読取り要求もしくは該受信された読取り要求の少なくとも部分は、書込みバッファ４４内にバッファリングされている書込みデータ値を、任意のさらに戻された読取りデータと同様、該読取り要求に応答して戻すことにより、満足され得る。或る環境においては、読取り要求は全く送られないかも知れない。かかる方法は、トランザクションの正確な順序をも有効に保存する。
【００２２】
トランザクションを、純粋に、それらが向けられるメモリ・アドレスに基づいて一緒に一致させることが可能であるけれども、好適な実施形態は、また、上述した一致に基づく適切な動作を取る前に、トランザクションの要求している送信元の識別子をも一致させ得る。この方法で、同じ論理的な送信元から生じたトランザクションだけが厳密に順序付けられ、異なった送信元は、マルチ・バス・システム内で既知であるように、順序外の発行として取り扱わなければならないであろう。
【００２３】
図３は、第２の例示的なバス・トランザクション・バッファ５０を概略的に示す。この例においては、バス・トランザクション・バッファ５０は、多数の書込みバス入力、多数の書込みバス出力、多数の読取りバス入力及び多数の読取りバス出力を含む。バス・トランザクション・バッファ５０は、このように、多重化、バッファリング、順序付け及び逆多重化の機能を提供する。
【００２４】
図４は、バス・トランザクション・バッファ３４によって行なわれ得る読取り要求受信処理、特に、要求バッファリング制御回路４８によって行なわれる制御を概略的に示す流れ図である。ステップ５２において、システムは、任意の読取り要求が受信されるのを待つ。読取り要求が受信されると、次に、ステップ５４は、書込みバッファ４４内に現在バッファリングされている任意の既に受信された書込み要求に対して、該読取り要求のための宛て先アドレスをチェックする。ステップ５６で一致が検出されると、次に、ステップ５８に進み、そこで、当該アドレスが、最終のトランザクションの宛て先からのデータ値を実際に読取るのではなく、むしろバッファリングされた書込みデータ値からの読取りに対して満足されることができるものか否かが決定される。もし、読取りがこの方法で満足され得るならば、次に、ステップ６０は、受信された読取り要求に対する応答として書込みバッファ４４からのバッファリングされた書込みデータ値を戻し、受信された読取り要求は消去されて、その最終の宛て先には送られない。もし、バッファリングされた書込みデータ値からのこのような読取り要求処理が可能でないならば、次に、ステップ６２は、一致した書込み要求が発行されて、その最終の宛て先によって、または該書込み要求の正確な完了及び順序付けに対して責任を取っている次のバッファリング素子によって、のいずれかによって完了したとの承認を受けるまで、バス・トランザクション・バッファ３４から発行されるべきではないものとしてそれにマーキングすることにより、該読取り要求を取り扱う。もし、読取り要求がこの方法でマーキングされるならば、次に、ステップ６４において、それは読取り要求バッファ４６に追加される。（代替として、または追加して、もし、読取りの部分がバッファリングされる書込みの部分と一致するならば（アクセスは、長さにおいて変わることができ、かつ種々の方法で重複することができる）、次に、読取りが発行されて良く、重複するバッファリングされた書込みデータは、戻された読取りデータに併合されて、バッファリングされた書込みによって更新されるべき部分の代用をする。）ステップ６０またはステップ６４のいずれかに続いて、ステップ６５は、バス・トランザクション・バッファを待って、ステップ６６に進む前に読取り応答を受信する。ステップ６６は、元の読取り要求送信元に戻って要求完了信号を出力し、バス・トランザクション・バッファ３４が、該読取り要求、その適切な完了及びその順番の完了（ｉｔｓ   ｉｎ−ｏｒｄｅｒ  ｃｏｍｐｌｅｔｉｏｎ）に対する責任を有効に取ったということを示す。もし、ステップ５６における一致が検出されなかったならば、処理は直接ステップ６４及びステップ６６に進む。
【００２５】
図５は、バス・トランザクション・バッファ３４からの読取り要求発行（ｉｓｓｕｅ）を概略的に示す流れ図である。ステップ６８において、システムは、発行されるべき読取り要求がバッファリングされるまで待機する。ステップ７０において、サービスされるべき次の読取り要求が調査されて、それが、バッファリングされた書込み要求の完了に追従するよう順序付けられるべきものとしてマーキングされるかどうかを決定する。読取り要求がそのようにマーキングされるならば、次に、ステップ７２は、他のチャンネルにおける一致する書込み要求が完了されてしまったか否かを決定する。一致する書込み要求が完了されていないならば、次に、処理は、ステップ６８に戻る。もし、一致する書込み要求が完了されているならば、またはステップ７０が、読取り要求を順番付けられマーキングされたものとして識別しなかったならば、次に、処理はステップ７４に進み、該ステップ７４において、読取り要求は、トランザクションの宛て先に出力される。もし読取り要求がバッファリング可能でないならば、すなわち、最終の宛て先においてそれが実際に完了されるまで完了されたものとして承認されるべきでないものならば、次に、ステップ７６は、後の要求で完了された信号がもう１つの機構によって発生されるために、処理をステップ６８に転送戻しする。もし、読取り要求がバッファリング可能でないものではないならば、次に、ステップ７８は、読取り要求がトランザクションの宛て先に出力されてしまうと、またはステップ７４において少なくとも次のバス・トランザクション・バッファに出力されてしまうと、読取り要求が完了された信号を出力する。
【００２６】
添付図面を参照して本発明の図示実施形態をここに詳細に説明してきたけれども、本発明は、それらの正確な実施形態に制限されるものではなく、特許請求の範囲に限定される本発明の範囲及び精神から逸脱することなく、種々の変更及び修正が当業者によって行われ得るということを理解すべきである。
【図面の簡単な説明】
【００２７】
【図１】別々の読取りチャンネル及び書込みチャンネルを有するバス構造を含むデータ処理システムを概略的に示す図である。
【図２】バス・トランザクション・バッファを概略的に示す図である。
【図３】多重化及び逆多重化機能を追加的に提供するバス・トランザクション・バッファを概略的に示す図である。
【図４】バス・トランザクション・バッファ内の読取り要求受信処理を概略的に示す流れ図である。
【図５】バス・トランザクション・バッファ内の読取り要求発行を概略的に示す流れ図である。
【符号の説明】
【００２８】
２      集積回路
４      外部のフラッシュ・メモリ
６      外部の周辺機器
８、１０、１２      多数のバス・トランザクション送信元
１４      ランダム・アクセス・メモリ
１６      第１の周辺機器
１８      第２の周辺機器
２０、２２      マルチプレクサ
２４、２６、２８      デマルチプレクサ
３０，３２      バス・トランザクション・バッファ回路
３４      バス・トランザクション・バッファ
３６      書込みバス入力
３８      読取りバス入力
４０      書込みバス出力
４２      読取りバス出力
４４      多数のエントリ書込みバッファ
４６      単一のエントリ読取り要求バッファ
４８      要求バッファリング制御回路
【図１】
2005353041.tif 000003
【図２】
2005353041.tif 000004
【図３】
2005353041.tif 000005
【図４】
2005353041.tif 000006
【図５】
2005353041.tif 000007