(57)【要約】【課題】複数ＣＰＵを用いたシステムコントローラの性能を向上させる。【解決手段】共有バス２１２６を介して接続される複数のＣＰＵ２００１と複数のメモリ２００２またはＩＯデバイス２１２７、２１２９とを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラに、命令を発行したＣＰＵと、その命令の転送先と、転送保留中のＣＰＵとを識別する識別情報を保持する保持手段と、リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備える。【選択図】　　　　図３
2004126678.tif 000002
【特許請求の範囲】
【請求項１】
共有バスを介して接続される複数のＣＰＵと複数のメモリまたはＩＯデバイスとを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラであって、
命令を発行したＣＰＵと、その命令の転送先と、転送保留中のＣＰＵとを識別する識別情報を保持する保持手段と、
リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、
一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備えたことを特徴とするシステムコントローラ。
【請求項２】
前記共有バスに出力されたトランザクション要求を、当該共有バス上でバススヌーピング後にキューイングする手段を更に有することを特徴とする請求項１に記載のシステムコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数ＣＰＵを用い、クロスバースイッチを用いたバス接続を有するシステムコントローラで、特に、スキャニング、プリンティングデバイス、ネットワークインターフェース等の制御を目的とする複合機器のコントローラに関するものである。
【０００２】
【従来の技術】
▲１▼従来、図１２に示すような、複数のＣＰＵ２００１、メモリコントローラ、ＤＭＡＣ等を共通のバス２１２６に接続したマルチプロセッサシステムが存在する。
【０００３】
▲２▼また、複数のＣＰＵを、同時接続可能な複数のバススイッチのマスタポートに接続した例も存在する。
【０００４】
▲３▼更に、共通バスをバススイッチのマスターポートのひとつに接続する構成も提案がされている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来の技術には、以下のような問題があった。
【０００６】
上記▲１▼の従来例では、バススヌーピングによるキャッシュメモリのコヒーレンシ管理、アトミックトランザクションの実現等が簡易になる反面、共通バスに接続されたマスタデバイスが一度に一つしか使用できないという問題点、共有バスに接続されるデバイス数が多くなり、動作周波数が制限されるという問題点等により、高性能化が難しいという問題があった。
【０００７】
上記▲２▼の従来例では、同時接続性、バス負荷の低減による高性能化は可能な反面、一方のＣＰＵより他方のＣＰＵのバストランザクションが観測できず、キャッシュメモリのコヒーレンシ管理、ロードリンク、ストアコンデイショナルによるアトミックトランザクションのサポートが困難であるという問題があった。そこで、この問題を解決するために、一方のトランザクションをターゲットスレーブに伝達する前に他のＣＰＵに対して転送し、スヌーピングを行わせることにより、キャッシュのコヒーレンシ保持及びアトミックトランザクションを実現する方法が提案されている。
【０００８】
しかし、この方法では、ライト動作がスヌーピング終了まで保留され、ＣＰＵの性能を制限してしまう。またライトバッファを実装する場合に、一方のライト動作終了前に他方のＣＰＵがライト動作を検出できず、リンクビットをブレーク出来ないため、アトミックトランザクションが保証できないという問題があった。
【０００９】
上記▲３▼の方式は、上述の問題を解決するが、共通バスに接続された一方のＣＰＵがアクセス時間の長い低速のデバイスに転送要求を発行すると、もう一方のＣＰＵがメモリ等の高速デバイスにアクセスしようとした場合でも、最初のＣＰＵの転送終了までアクセスが保留されてしまい、複数ＣＰＵを用いた場合の性能の向上を制限してしまうと言う問題があった。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、共有バスを介して接続される複数のＣＰＵと複数のメモリまたはＩＯデバイスとを、リード命令とリードデータリターンとが分離可能なバスを介して接続されたシステムコントローラに、命令を発行したＣＰＵと、その命令の転送先と、転送保留中のＣＰＵとを識別する識別情報を保持する保持手段と、リード時に、前記保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように制御する順序制御手段と、一旦シリアライズされて前記共有バスを介して行なわれた転送を、複数の接続経路を用いて並行に発行する発行手段とを備える。
【００１１】
【発明の実施の形態】
〔第一の実施形態〕
以下に、本発明の装置及びその動作について詳細に説明する。
【００１２】
＜全体構成＞
全体構成図を図１に示した。
【００１３】
Ｃｏｎｔｒｏｌｌｅｒ　Ｕｎｉｔ（２０００）は画像入力デバイスであるＳｃａｎｎｅｒ（２０７０）や画像出力デバイスであるＰｒｉｎｔｅｒ（２０９５）と接続し、一方ではＬＡＮ（２０１１）や公衆回線（ＷＡＮ）〈２０５１〉と接続することで、画像情報やデバイス情報の人出カ、ＰＤＬデータのイメージ展開を行う為のコントローラである。
【００１４】
ＣＰＵ（２００１）はシステム全体を制御するプロセッサである。本実施形態では２つのＣＰＵを用いた例を示した。これら二つのＣＰＵは、共通のＣＰＵバス〈２１２６〉に接続され、さらに、システムバスブリッジ（２００７）に接続される。
【００１５】
システムバスブリッジ（２００７）は、バススイッチであり、ＣＰＵバス（２１２６）、ＲＡＭコントローラ（２１２４）、ＲＯＭコントローラ（２１２５）、ＩＯバス１（２１２７）、サブバススイッチ（２１２８）、ＩＯバス２（２１２９）、画像リングインターフェース１（２１４７）、画像リングインターフェース２（２１４８）が接続される。
【００１６】
サブバススイッチ（２１２８）は、第２のバススイッチであり、画像ＤＭＡ１（２１３０）、画像ＤＭＡ２（２１３２）、フォント伸張部（３１３４）、ソート回路（２１３５）、ビットマップトレース部（２１３６）が接続され、これらのＤＭＡから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【００１７】
ＲＡＭ（２００２）はＣＰＵ（２００１）が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭコントローラ〈２１２４）により制御される、本実施形態では、ダイレクトＲＤＲＡＭを採用する例を示した。
【００１８】
ＲＯＭ（２００３）はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭコントローラ（２１２５）により制御される。
【００１９】
画像ＤＭＡ１（２１３０）は、画像圧縮部（３１３１）に接続し、レジスタアクセスリング（２１３７）を介して設定された情報に基づき、画像圧縮部（２１３１）を制御し、ＲＡＭ（２００２）上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施形態では、ＪＰＥＧを圧縮アルゴリズムに採用した例を示した。
【００２０】
画像ＤＭＡ２（２１３２）は、画像伸張部（２１３３）に接続し、レジスタアクセスリング（２１３７）を介して設定された情報に基づき、画像伸張部（２１３３）を制御し、ＲＡＭ（２００２）上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施形態では、ＪＰＥＧを伸張アルゴリズムに採用した例を示した。
【００２１】
フォント伸張部（２１３４）は、ＬＡＮインターフェース（２０１０）等を介して外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ（２００３）もしくは、ＲＡＭ（２００２）内に格納された、圧縮フォントデータの伸張を行う。本実施形態では、ＦＢＥアルゴリズムを採用した例を示した。
【００２２】
ソート回路（２１３５）は、ＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース回路（２１３６）は、ビットマップデータより、エッジ情報を抽出する回路である。
【００２３】
ＩＯバス１（２１２７）は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインターフェース（２１３８）、汎用シリアルポート〈２１３９）、インタラプトコントローラ（２１４０）、ＧＰＩＯインターフェース（２１４１）が接続される。ＩＯバス１には、バスアービタ（図示せず）が含まれる。
【００２４】
操作部Ｉ／Ｆ（２００６）は操作部（ＵＩ）（２０１２）とインターフェース部であり、操作部（２０１２）に表示すべき画像データを操作部（２０１２）に対して出力する。また、操作部（２０１２）から本システム使用者が入力した情報を、ＣＰＵ（２００１）に伝える役割をする。
【００２５】
ＩＯバス２（２１２９）は内部ＩＯバスの一種であり、汎用バスインターフェース１及び２（２１４２）と、ＬＡＮコントローラ（２０１０）が接続される。ＩＯバス２にはバスアービタ（図示せず）が含まれる。
【００２６】
汎用バスインターフェース（２１４２）は、２つの同一のバスインターフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施形態では、ＰＣＩバス（２１４３）を採用した例を示した。
【００２７】
ＨＤＤ（２００４）はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ（２１４４）を介して一方のＰＣＩバス（２１４３）に接続される。
【００２８】
ＬＡＮコントローラ（２０１０）は、ＭＡＣ回路（２１４５）、ＰＨＹ／ＰＭＤ回路（２１４６）を介してＬＡＮ（２０１１）に接続し、情報の入出力を行う。
【００２９】
Ｍｏｄｅｍ（２０５０）は公衆回線（２０５１）に接続し、情報の人出力を行う。
【００３０】
画像リングインターフェース１（２１４７）及び画像リングインターフェース２（２１４８）は、システムバスブリッジ（２００７）と画像データを高速で転送する画像リング（２００８）を接続し、タイル化後に圧縮されたデータをＲＡＭ（２００２）とタイル画像処理部（２１４９）との間で転送するＤＭＡコントローラである。
【００３１】
画像リング（２００８）は、一対の単方向接続経路の組み合わせにより構成される（画像リング１及び画像リング２）。画像リング（２００８）は、タイル画像処理部（２１４９）内で、画像リングインターフェース３（２１０１）及びタイル画像インターフェース４（２１０２）を介し、タイル伸張部（２１０３）、コマンド処理部（２１０４）、ステータス処理部（２１０５）、タイル圧縮部（２１０６）に接続される。本実施形態では、タイル伸張部（２１０３）を２組、タイル圧縮部を３組実装する例を示した。
【００３２】
タイル伸張部（２１０３）は、画像リングインターフェースへの接続に加え、タイルバス〈２１０７）に接続され、画像リングより入力された庄縮後の画像データを伸張し、タイルバス（２１０７）へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックピッツを伸張アルゴリズムとして採用した例を示した。
【００３３】
タイル圧縮部〈２１０６）は、画像リングインターフェースへの接続に加え、タイルバス（２１０７）に接続され、タイルバスより入力された圧縮前の画像データを圧縮し、画像リング〈２００８）へ転送するバスブリッジである。本実施形態では、多値データにはＪＰＥＧ、２値データにはパックピッツを圧縮アルゴリズムとして採用した例を示した。
【００３４】
コマンド処理部（２１０４）は、画像リングインターフェースヘの接続に加え、レジスタ設定バス（２１０９）に接続され、画像リングを介して入力したＣＰＵ（２００１）より発行されたレジスタ設定要求を、レジスタ設定バス〈２１０９）に接続される該当ブロックヘ書き込む。また、ＣＰＵ（２００１）より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し。画像リングインターフェース４（２１０２）に転送する。
【００３５】
ステータス処理部（２１０５）は、各画像処理部の情報を監視し、ＣＰＵ（２００１）に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース４に出力する。
【００３６】
タイルバス（２１０７）には、上記ブロックに加え、以下の機能ブロックが接続される。レンダリング部インターフェース（２１１０）、画像入力インターフェース（２１１２）、画像出力インターフェース（２１１３）、多値化部（２１１９）、２値化部（２１１８）、色空間変換部（２１１７）、画像回転部（２０３０）、解像度変換部（２１１６）。
【００３７】
レンダリング部インターフェース（２１１０）は、後述するレンダリング部により生成されたビットマップイメージを入力するインターフェースである。レンダリング部とレンダリング部インターフェースは、一般的なビデオ信号（２１１１）にて接続される。レンダリング部インターフェースは、タイルバス（２１０７）に加え、メモリバス（２１０８）、レジスタ設定バス（２１０９）への接続を有し、入力された、ラスタ画像をレジスタ設定バスを介して設定された、所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス（２１０７）に対し出力を行う。
【００３８】
画像入力インターフェース（２１１２）は、後述するスキャナー用画像処理部（２１１４）により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された、所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス（２１０７）に対し出力を行う。
【００３９】
画像出力インターフェースは、タイルバスからのタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部（２１１５）へ出力する。
【００４０】
画像回転部（２０３０）は画像データの回転を行う。解像度変換部（２１１６〉は画像の解像度の変更を行う。色空間変換部〈２１１７）はカラー及びグレースケール画像の色空間の変換を行う。２値化部（２１１８）は多値（カラー、グレースケール）画像を２値化する。多値化部（２１１９）は２値画像を多値データヘ変換する。
【００４１】
外部バスインターフェース部（２１２０）は、画像リングインターフェース１、２、３、４、コマンド処理部、レジスタ設定バスを介し、ＣＰＵ（２００１）により発行された、書き込み、読み出し要求を外部バス３（２１２１）に変換出力するバスブリッジである。外部バス３（２１２１）は本実施形態では、プリンター用画像処理部（２１１５）、スキャナー用画像処理部（２１１４）に接続されている。
【００４２】
メモリ制御部（２１２２）は、メモリバス（２１０８）に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ１及び画像メモリ２（２１２３〉に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにＳＤＲＡＭを用いた例を示した。
【００４３】
スキャナー用画像処理部（２１１４）では、画像入力デバイスであるスキャナ〈２０７０）によりスキャンされた画像データを補正画像処理する。
【００４４】
プリンタ用画像処理部では、プリンタ出力のための補正画像処理を行い、結果をＰｒｉｎｔｅｒ（２０９５）へ出力する。
【００４５】
レンダリング部（２０６０）はＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００４６】
〔システム全体〕
本実施形態のネットワークシステム全体の構成図を図２に示した。
【００４７】
１００１は複合機器で、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク（以下ＬＡＮ）（１０１０）に流したり、ＬＡＮから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ（１０３０）に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトできる。１００２は、データベースサーバで、本実施形態の複合機器（１００１）により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００４８】
１００３は、データベースサーバ（１００２）のデータベースクライアントで、データベース（１００２）に保存されている画像データを閲覧／検索等できる。
【００４９】
１００４は、電子メールサーバで、複合機器（１００１）により読み取った画像を電子メールの添付として受け取ることができる。１００５は、電子メールのクライアントで、電子メールサーバ（１００４）の受け取ったメールを受信し閲覧したり、電子メールを送信したり、可能である。
【００５０】
１００６はＨＴＭＬ文書をＬＡＮに提供するＷＷＷサーバであり、複合機器（１００１）により、ＷＷＷサーバ（１００６）で提供されるＨＴＭＬ文書をプリントアウトできる。
【００５１】
１００７は、ルータでＬＡＮ（１０１０）をインターネット／イントラネット（１０１２）と連結する。インターネット／イントラネットに、前述したデータベースサーバ（１００２）、ＷＷＷサーバ（１００６）、電子メールサーバ（１００４）、複合機器（１００１）と同様の装置が、それぞれ１０２０、１０２１、１０２２、１０２３として連結している。一方、複合機器（１００１）は、ＰＳＴＮまたはＩＳＤＮ〈１０３０）を介して、ＦＡＸ装置（１０３１）と送受信可能になっている。
【００５２】
また、ＬＡＮ上にプリンタ（１０４０）も連結されており、複合機器（１００１）により読み取った画像をプリントアウト可能なように構成されている。
【００５３】
図３に、本実施形態によるＣＰＵバスインターフェース部のみのブロック図を示した。２つのＣＰＵ（２００１）が共通バス（２１２６）に接続される。システムバスブリッジ（２００７）内部に実装されるＣＰＵバスインターフェース（１０）が、この共通バス（２１２６）のスレーブとして接続される。ＣＰＵバスインターフェース内部には、システムバスブリッジ内部のバス（Ｙｂｕｓ）（１１）へのマスタポートを２つ持つ。図３では簡潔のため、ＲＡＭ（２００２）、ＩＯバス１（２１２７）、ＩＯバス２（２１２９）への接続のみを図示した。
【００５４】
図４にシステムバスブリッジ（２００７）のブロック図を示す。
【００５５】
システムバスブリッジ（２００７）は、バススイッチ（３００３）によって、複数のバスインターフェースブロックが相互に接続された構成をとる。相互に接続されたバスインターフェースには、ＭＣＩＦ（３００１）、ＢＩＦ（３００２）、ＲＣＩＦ（３００４）、ＣＰＵバスインターフェース（３００５）、ＣＩＵ（３００６）、ＹＭＩＦ（３００７）、ＥＢＩＦ（３００８）、ＳＲＩＦ（３０１１）、ＧＵＩＦＪＩ（３０１２）、ＧＵＩＦ＿ＰＯ（３０１３）が含まれる。その他の構成要素として、ＳＲＵＩＦ（３０１０）、ＲＥＧ（３００９）が含まれる。
【００５６】
ＭＣＩＦ（３００１）には、ＲＡＭコントローラ（２１２４）が接続される。ＢＩＦ（３００２）には、ＩＯバス１（２１２７）が接続される。ＲＣＩＦ（３００４）には、ＲＯＭコントローラ（２１２５）が接続される。ＣＩＵ（３００６）は、ＣＰＵバス（２１２６）に接続され、キャッシュスヌーピングに必要な情報をＣＰＵバスに対して伝達する。
【００５７】
ＹＭＦ（３００７）には、サブバススイッチ（２１２８）が接続される。ＥＢＩＦ（３００８）には、ＩＯバス２（２１２９）が接続される。ＳＲＩＦ（３０１１）には、レジスタアクセスリング（２１３７）が接続される。ＧＵＩＦ＿ＰＩ（３０１２）には、画像リングインターフェース２（２１４８）が接続される。ＧＵＩＦ＿ＰＯ（３０１３）には、画像リングインターフェース１（２１４７）が接続される。ＳＲＵＩＦ（３０１０）は、レジスタアクセスリング（２１３７）に接続され、システムバスブリッジ内部のプログラミングレジスタＲＥＧ（３００９）へのデータの読み書きを行う。
【００５８】
ＣＰＵバスインターフェース（ＣＰＵＢｕｓＩＦ）（３００５）は、本実施形態において最も特徴的な部分であり、スイッチ（３００３）内部のバス（Ｙｂｕｓ〉とＣＰＵバス（２１２６）のプロトコル変換を行うバスブリッジである。
【００５９】
ＣＰＵバスインターフェースの構成をさらに詳しく説明する。図５にＣＰＵバスインターフェースのブロック図を示した。
【００６０】
ＣＰＵバスインターフェースは、ＣＰＵコアの外部バスインターフェースであるＣＰＵバスと、ＳＢＢ内部バスであるＹｂｕｓとの間のバスプロトコル変換回路である。ＣＰＵバスインターフェース内には、Ｃｏｍｍａｎｄ＿Ｑ（１０１）、ＹｂｕｓＭａｓｔｅｒＩＯ（１０４），ＹＢｕｓＭａｓｔｅｒＭＥＭ（１０５）、Ｄｅｃｏｄｅ（１０２）、Ｄｉｓｐａｔｃｈ（１０３）、ＲｅａｄＲｅｔｕｒｎＡｒｂｉｔｏｒ（１０６）、ＲｅａｄＤｔａＭｕｘ（１０７）が含まれる。
【００６１】
ＣＰＵバスインターフェースは、ＣＰＵバスに定義された図６の転送をサポートする。
【００６２】
ＣＰＵバスインターフェースのＹＢｕｓマスタＩＤは、００００及び０００１（ｙ０＿ｘｘｘ、ｙ１＿ｘｘｘ）である。
【００６３】
Ｃｏｍｍａｎｄ＿Ｑ（１０１）は、ＣＰＵバスより発行されたトランザクションコマンドをキューイングするキューである。
【００６４】
図８にコマンドキューのブロックを示した。
【００６５】
２０１はコマンドを格納するレジスタ群で、ＣＰＵバスより入力された、ＣｍｄＩＤ、ｒｅａｄ＿ｎｏｔ＿ｗｒｉｔｅ、ｂｕｒｓｔ＿ｎｏｔ＿ｓｉｎｇｌｅ、ａｄｄｒｅｓｓ、ＷｒｉｔｅＤａｔａ、Ｂｙｔｅ＿ｅｎａｂｌｅなどが、格納される。２０２はバリッドビットであり、情報が書き込まれる場合に１が書き込まれ、キューがシフトされると、０が書き込まれる。２０３はＣｏｍｍａｎｄ＿Ｑがフルの状態を示す信号で、ｃｐｕｂｕｓ＿Ｃｍｄｒｄｙｐに接続され、ＣＰＵ（２００１）に対し、バストランザクションの発行を停止させる。２０６はキュー管理のシーケンサで、ライト要求２０４、シフト要求２０５により、キューの管理を行う。２０７はＱ＿ｖａｌｉｄ信号であり、Ｄｅｃｏｄｅ（１０２）に接続される。
【００６６】
Ｄｅｃｏｄｅ（１０２）は、アドレスデコーダであり、コマンドキュー（１０１）の出力を元にデコードを行う。デコード結果には、ソースがＣＰＵ０かＣＰＵ１か、ターゲットデバイスが、メモリかＩＯか、さらにＩＯアクセスの場合、ＲＣＩＦ、ＢＩＦ、ＥＢＩＦ、ＳＲＩＦのいずれかを示した情報が含まれる（１０８）。
【００６７】
Ｄｉｓｐａｔｃｈ（１０３）はデコーダ（１０２）の結果を元に、コマンドキュー（１０１）内の次にサービスされるべきリクエストがＹｂｕｓマスタブロック（１０４及び１０５）に対し発行可能かを判定し、可能な場合には、適切なＹｂｕｓマスタブロックに起動要求を発行する。リードトランザクションの発行に関する制限を図７に表す。
【００６８】
この制限事項を実施するための情報の保持を行っているのが、ＰｅｎｄｉｎｇＱ（４０３）であり、判断を行っているのが、Ｄｉｓｐａｔｃｈ（１０３）である。ＰｅｎｄｉｎｇＱ（４０３）の構成を図１０に、Ｄｉｓｐａｔｃｈ（１０３）の状態遷移を図９に示した。Ｄｉｓｐａｔｃｂ（１０３）において、ＣＰＵバスよりアクセス要求のない場合は、シーケンサはＩＤＬＥ（３０１）の状態にある。
【００６９】
ＣＰＵバスよりアクセス要求が、キューイングされると、後述する、ＰｅｎｄｉｎｇＱ（４０３）から出力されるＣＰＵ０及びＣＰＵ１のリードリクエスト保留の状態（１０９）と、Ｄｅｃｏｄｅ（１０２）から出力されるＣＰＵリクエスト情報（１０８）に基づきＩＯもしくは、ＭＥＭのＹｂｕｓＭａｓｔｅｒを起動する。
【００７０】
具体的には、図７にしたがって、ＣＰＵ０よりＩＯへのアクセス要求があった場合、ＹＢｕｓＭａｓｔｅｒ　ＭＥＭ（１０５）から出力されるｃｐｕ０＿ｉｎ＿ｍｅｍ（１０９内）信号がアクティブでなかった場合に、シングル転送要求の場合は、遷移３１１によりＹＢｕｓＭａｓｔｅｒＩＯ（１０４）に対して、シングル転送要求を発行するステートＩＯＳｉｎｇｌｅ（３１３）へ制御が移動し、ＹＢｕｓＭａｓｔｅｒＩＯ（１０４）へ起動を要求した後、遷移３１２でアイドルヘ戻る。バースト転送の場合も同様に、３０５→３０７→３０６の遷移により、ＩＯのバースト転送の起動を行う。また、ＩＯのリード要求の場合は、図１０に示したＰｅｎｄｉｎｇＱ（４０３）内部のＴａｒｇｅｔＣｈｅｃｋ回路（５０９）により、異なったＩＯターゲットに対するリード要求がすでに保留になっていないかがチェックされ、ＤｉｓｐａｔｃｈＯＫ信号（５１３）によって、異なったターゲットへのリード要求に対するデータが戻ってくるまで、実際のトランザクションは発行されない。
【００７１】
ＣＰＵ０からのアクセス要求がＭＥＭに対するものだった場合は、ＣＰＵ０の要求がすでにＹｂｕｓＭａｓｔｅｒＩＯ（１０４）内部で保留になっていないかをＣＰＵ０＿ｉｎ＿ｉｏ信号によって、検出し、保留ではない場合に、バーストかシングルかに応じて、３０９→３０８→３１０もしくは、３０４→３０２→３０３の系によりメモリアクセス要求がＹＢｕｓＭａｓｔｅｒＭＥＭ（１０５）に対して発行される。ＹＢｕｓＭａｓｔｅｒＩＯ（１０４）、ＹＢｕｓＭａｓｔｅｒＭＥＭ（１０５）はそれぞれ、ＩＯデバイス及びメモリに対するアクセスを行うＹｂｕｓマスタブロックである。この２つのブロックは、内部的には、まったく同一の構成をとる。ＹＢｕｓＭａｓｔｅｒＩＯ（１０４）及びＹＢｕｓＭａｓｔｅｒＭＥＭ（１０５）について、ＹＢｕｓＭａｓｔｅｒＩＯ（１０４）を例にとって説明する。
【００７２】
図１１はＹＢｕｓＭａｓｔｅｒＩＯ（１０４）の内部構造を表す。Ｉｎｆｏ　Ｌａｔｃｈ（４０１）は、Ｄｉｓｐａｔｃｈ（１０３）からの起動要求によりＹｂｕｓトランザクションを発行するのに必要な情報を必要期間保持する。これらの情報には、アドレス、バイトイネーブル、ライトデータ、リード、ライト、バーストトランザクション、シングルトランザクション、リクエスト発行ＣＰＵの番号等が含まれる。
【００７３】
Ｉｎｆｏ　Ｌａｔｃｈ（４０１）は同時に、情報のデコードを行い、ＹＭａｓｔｅｒＳＭ（４０２）に対して、起動要求を発行する。
【００７４】
ＹＭａｓｔｅｒＳＭ（４０２）には、Ｙｂｕｓマスターステートマシンが内蔵され、Ｙｂｕｓに対して、シングルリード、シングルライト、バーストリード、バーストライトのいずれかのトランザクション要求を発行する。
【００７５】
発行要求がリードであった場合には、Ｙｂｕｓに対してリードトランザクションを発行すると同時に、ＰｅｎｄｉｎｇＱ（４０３）に対して、リードリクエストに使用した情報の保持を指令する。Ｙｂｕｓに発行したリクエストがライトの場合は、ライトデータをアドレス等のコントロール情報と同時にＹｂｕｓに対してドライブし、シングルライトの場合は、転送を終了し、アイドル状態に戻る。
【００７６】
バーストライトの場合は、アクセスターゲットデバイスよりレディ信号が返って来た次のクロックサイクルで、２ビート目のデータをドライブし、アイドル状態に戻る。
【００７７】
Ｙｂｕｓより戻ってきたリードデータは、ＲｅａｄＲｅｔｕｒｎｂｇｉｃ（４０４）内のリードバッファに一時格納される。
【００７８】
その後リターンデータをＣＰＵ（２００１）に転送するため、ＲｅａｄＲｅｔｕｒｎＡｒｂｉｔｏｒ（１０６）に対して、ＣＰＵバスのリードリターントランザクション発行要求が行われる。Ｒｅａｄ　Ｒｅｔｕｒｎ　Ａｒｂｉｔｏｒ（１０６）は、リードリターン要求のアービトレーションを行い、ＲｅａｄＤａｔａＭｕｘ（１０７）に対して、リードリターンシーケンスの開始と、データのセレクト信号を発行する。ＲｅａｄＤａｔａＭｕｘは、リードデータをＣＰＵバス上にドライブすると同時に、ｃｐｕｂｕｓ＿ｒｄｒｄｙｐ信号でＣＰＵに対して、ＲｅａｄＤａｔａの返送を通知する。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、保持された、命令発行ＣＰＵの番号、転送先、及び転送保留中のＣＰＵ番号に基づき、リード時に、リターンデータが転送命令の発行順と入れ替わる事を阻止し、一旦、共通バスを介し、シリアライズされた転送を再度、複数の接続経路を用い同時並行に発行することができる。これにより、更に以下の効果を奏する。
【００８０】
▲１▼バススヌーピングによるキャッシュのコヒーレンシ管理、アトミックトランザクションを性能の低下なしに実現する。
【００８１】
▲２▼コマンドキュー（ライトバッファ）の実装を可能にし、ＣＰＵをバストランザクションから早期に開放することにより、性能の向上をもたらす。
【００８２】
▲３▼一旦シリアライズされたＣＰＵのトランザクションを再度並列化することにより、低速のデバイスにアクセスしている一方のＣＰＵの転送終了を待たずに、他方のＣＰＵの転送を終了することが出来、性能低下を抑えることが出来る。
【００８３】
▲４▼ＣＰＵバススレーブ部分の回路を共通化でき、複数のＣＰＵバスを独立して持つ場合より、回路規模を小さく出来る。
といった効果が得られる。
【図面の簡単な説明】
【図１】実施形態のシステムコントローラの全体構成を示すブロック図である。
【図２】本システムの実使用環境を表す図である。
【図３】バスブリッジの構成を示す図である。
【図４】システムバスブリッジの構成を表す図である。
【図５】ＣＰＵバスインターフェース部を表すブロック図である。
【図６】バスの転送の定義を示す図である。
【図７】リードトランザクションにおける発行の制限を示す図である。
【図８】コマンドキューの構成を表す図である。
【図９】デイバッチステートマシンの状態遷移を示す図である。
【図１０】Ｙｂｕｓリードペンディングキューを示した図である。
【図１１】Ｙｂｕｓマスタブロックのブロック図である。
【図１２】従来例の構成を示す図である。
【図１】
2004126678.tif 000003
【図２】
2004126678.tif 000004
【図３】
2004126678.tif 000005
【図４】
2004126678.tif 000006
【図５】
2004126678.tif 000007
【図６】
2004126678.tif 000008
【図７】
2004126678.tif 000009
【図８】
2004126678.tif 000010
【図９】
2004126678.tif 000011
【図１０】
2004126678.tif 000012
【図１１】
2004126678.tif 000013
【図１２】
2004126678.tif 000014