(57)【特許請求の範囲】
【請求項１】
複数のバイトレーンを有する第１の入出力バスと複数のバイトレーンを有し前記第１の入出力バスとは異なるエンディアンの第２の入出力バスとの間の転送データに対し、前記第１の入出力バスのバイトレーン対応に設けたレジスタを有する第１のレジスタ群と、前記第２の入出力バスのバイトレーン対応に設けたレジスタを有する第２のレジスタ群と、別途入力する転送データ情報により前記第１のレジスタ群及び前記第２のレジスタ群の動作を制御する制御信号を生成する制御回路とを備え、
前記第１のレジスタ群のレジスタ及び前記第２のレジスタ群のレジスタはそれぞれ直列に接続されているとともに、前記第１のレジスタ群のレジスタは前記第２のレジスタ群のレジスタと１対１対応で接続され、
前記転送データ情報には前記転送データのデータ幅と前記転送データの転送方向が含まれ、前記制御回路が前記転送データ情報に基づいて前記第１または前記第２のレジスタ群のレジスタが保持するデータを該レジスタに対応するバイトレーンに隣接するバイトレーンに対応した同一レジスタ群のレジスタまたは前記データを保持するレジスタに接続された他方のレジスタ群のレジスタへバイトレーン間シフトするデータシフト動作を決定することにより、前記第１の入出力バスと前記第２の入出力バス間で前記転送データのエンディアン変換を行うことを特徴とする入出力バスブリッジ装置。
【請求項２】
第１の入出力バスのデータバス幅と第２の入出力バスのデータバス幅とが異なることを特徴とする請求項１記載の入出力バスブリッジ装置。
【請求項３】
複数のバイトレーンを有する第１の入出力バスと複数のバイトレーンを有し前記第１の入出力バスとは異なるエンディアンの第２の入出力バスとの間の転送データに対し、前記第１の入出力バスのバイトレーン対応に設けたレジスタを有する第１のレジスタ群と、前記第２の入出力バスのバイトレーン数よりも多い構成であるバイトレーン対応に設けたレジスタを有する第２のレジスタ群と、別途入力する転送データ情報により前記第１のレジスタ群及び前記第２のレジスタ群の動作を制御する制御信号を生成する制御回路とを備え、
前記第１のレジスタ群のレジスタ及び前記第２のレジスタ群のレジスタはそれぞれ直列に接続されているとともに、前記第１のレジスタ群のレジスタは前記第２のレジスタ群のレジスタと１対１対応で接続され、
前記転送データのデータ幅は前記第2の入出力バスのデータバス幅よりも大きく、
前記転送データ情報には前記転送データのデータ幅と前記転送データの転送方向が含まれ、前記制御回路が前記転送データ情報に基づいて前記第１または前記第２のレジスタ群のレジスタが保持するデータを該レジスタに対応するバイトレーンに隣接するバイトレーンに対応した同一レジスタ群のレジスタまたは前記データを保持するレジスタに接続された他方のレジスタ群のレジスタへバイトレーン間シフトするデータシフト動作を決定することにより、前記第１の入出力バスと前記第２の入出力バス間で前記転送データのエンディアン変換を行うことを特徴とする入出力バスブリッジ装置。
【請求項４】
ダイレクトメモリ転送機能を有するバスマスタ手段を別途設け、前記バスマスタ手段の出力信号を転送データ情報として用いることにより、メモリバスと入出力バス間で転送データのエンディアン変換を行うことを特徴とする請求項１または２記載の入出力バスブリッジ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ処理／伝達装置バスデータのエンディアン変換をする入出力バスブリッジ装置に関する。
【０００２】
【従来の技術】
たとえば一般に示す従来の入出力バスブリッジ装置１０Ｃは図７のように、レジスタ１１ａは、互いに異なるビッグエンディアン・データバスＡとリトルエンディアン・データバスＢを分割し表現するバイトレーン１〜４と５〜８の各バイト単位データを保持・駆動する。制御回路１２Ｃは、転送データ情報（幅／方向）を指定する別途入力をする制御信号に従いセレクタ１３の動作を決定する出力制御信号を生成する。セレクタ１３は、制御回路１２Ｃによる制御信号に従い、レジスタ１１経由バイトレーン１〜４のデータに対し選択・分配をする。セレクタ１３ａは、制御回路１２Ｃによる出力制御信号に従い、セレクタ１３による各出力に対し選択・分配をし、レジスタ１１経由バイトレーン５〜８のデータとして出力する。
【０００３】
上記従来の入出力バスブリッジ装置は、互いに異なるエンディアン・データの入出力バス間で対象データ幅に従いセレクタによるバイトレーン切替えをしエンディアン変換をする方式を採る。
【０００４】
上記図７に示す実施形態は図８のように、入出力バスブリッジ装置１０Ｃに接続する互いに異なるビッグエンディアン・データバスＡとリトルエンディアン・データバスＢに対し図９（ａ）に示す互いに異なるエンディアンデータをもつデバイスＡとＢを接続し、図９（ｂ）に示す４つのバイトレーンＢＬ１とＢＬ２とＢＬ３とＢＬ４に対しデータバスＡとＢの１〜４と５〜８にそれぞれ対応するものとし、図９（ｃ）と（ｄ）に示すデバイスＡとＢのメモリイメージで３２ビットデータＯｘＦＥＤＣＢＡ９８／１６ビットデータＯｘＡＢＣＤ／１６ビットデータＯｘ１２３４／文字列データｘｙｚＮＵＬＬに対しそれぞれアドレスＯｘ０００／Ｏｘ００４／Ｏｘ００６／Ｏｘ００８に設定するものとすると、データバスＡとＢ間におけるアドレスＯｘ０００の３２ビットデータＯｘＦＥＤＣＢＡ９８転送時（図８（ａ））は、３２ビット転送データ幅を指定する入力制御信号に対し生成する制御回路１２Ｃによる出力制御信号に従い、データバスＡのバイトレーンＢＬ１とＢＬ２とＢＬ３とＢＬ４からデータバスＢのバイトレーンＢＬ４とＢＬ３とＢＬ２とＢＬ１にそれぞれデータＯｘＦＥとＯｘＤＣとＯｘＢＡとＯｘ９８を出力するように、各セレクタ１３間で転送する。アドレスＯｘ００４とＯｘ００６の１６ビットデータＯｘＡＢＣＤとＯｘ１２３４転送時（図８（ｂ））は、上記図８（ａ）と同じに制御回路１２Ｃによる出力制御信号に従い、データバスＡのバイトレーンＢＬ１とＢＬ２とＢＬ３とＢＬ４からデータバスＢのバイトレーンＢＬ２とＢＬ１とＢＬ４とＢＬ３にそれぞれデータＯｘＡＢとＯｘＣＤとＯｘ１２とＯｘ３４を出力するように、各セレクタ１３間で転送する。アドレスＯｘ００８の８ビットデータｘｙｚＮＵＬＬ転送時（図８（ｃ））は、上記図８（ａ）と同じに制御回路１２Ｃによる出力制御信号に従い、データバスＡのバイトレーンＢＬ１とＢＬ２とＢＬ３とＢＬ４からデータバスＢのバイトレーンＢＬ１とＢＬ２とＢＬ３とＢＬ４にそれぞれ文字列データｘとｙとｚとＮＵＬＬを出力するように、各セレクタ間１３間で転送する。
【０００５】
【発明が解決しようとする課題】
上記のような従来の入出力バスブリッジ装置では、互いに異なるエンディアン・データの入出力バス間で対象データ幅に従いセレクタによるバイトレーン切替えをしエンディアン変換をする方式を採るから、バイト単位データを保持するレジスタとセレクタ間の配線量が多くなり、また回路の複雑さ増大に伴う入出力信号を保持するフリップフロップ間の遅延時間が大きくなり、回路全体の動作を高速化できない問題点があった。
【０００６】
この発明が解決しようとする課題は、入出力バスブリッジ装置で上記問題点を解消するように、互いに異なるエンディアン・データの入出力バス間で対象データ幅に従い互いに隣合うバイトレーンを保持するレジスタによるデータシフト操作をしエンディアン変換をする方式（単純化エンディアン変換機能による入出力バスブリッジ方式）を提供することにある。
【０００７】
【課題を解決するための手段】
この発明の入出力バスブリッジ装置は、入出力バス幅構成のレジスタ群で互いに異なるエンディアンの入出力バス間転送データに対し保持をするとともに、別途入力する転送データ情報によりレジスタ群の動作を決定し生成する制御回路による制御信号に従い駆動・転送をするもので、上記課題を解決するためつぎの手段を設け、単純化エンディアン変換機能による入出力バスブリッジ方式を採ることを特徴とする。
【０００８】
制御回路は、互いに異なるエンディアンの入出力バス間転送データに対し、当該データ幅に従いエンディアン変換を施すようにレジスタ群のデータシフト動作を決定する。または互いに異なるエンディアンかつデータ幅の入出力バス間転送データに対し、エンディアン変換を施すようにレジスタ群のデータシフト動作を決定する。または入出力バス幅よりも大きい転送データに対し、エンディアン変換を施すように別途設ける入出力バス幅よりも多い構成のレジスタ群のデータシフト動作を決定する。
【０００９】
バスマスタ機能をもつ手段は、別途設け、互いに異なるエンディアンまたは互いに異なるエンディアンかつデータ幅のメモリバスと入出力バス間でダイレクトメモリ転送をする。
【００１０】
【発明の実施の形態】
この発明の実施の一形態を示す入出力バスブリッジ装置１０は図１のように、制御回路１２で対象データのバス幅を指定することにより、バイト単位の転送データを保持するレジスタ１１相互間のデータシフト操作で動的にエンディアン変換（バイトの並び順変換）をするとともに、入出力間でデータバス幅が異なるときでも速度変換をするように構成する。レジスタ１１は、一般的なレジスタとセレクタでも構成できるが、２入力２出力構成とするのが望ましい。互いに異なるビッグエンディアン・データバスＡとリトルエンディアン・データバスＢを分割し表現するバイトレーン１〜４と５〜８における各バイト単位データに対し、保持をするとともに、制御回路１２による出力制御信号に従い、互いに隣合うバイトレーン１〜８を保持する当該相互間でシフト操作によるエンディアン変換を施すようにし、駆動・転送をする。制御回路１２は、転送データ情報（幅／方向）を指定する別途入力する制御信号（読出し／書込みストローブ信号、下位ビットアドレス信号、ソフトウェア設定によるデータ幅を示すレジスタ出力信号等）により、レジスタ１１の動作を決定する出力制御信号を生成する。従来のセレクタによるバイトレーン切替えではなく、互いに隣合うバイトレーン間シフト操作によるデータエンディアン変換をすることにより、配線量軽減と回路規模抑制をし集積化でき、動作可能周波数拡張をし回路全体の動作を高速化できる。
【００１１】
上記実施の形態の入出力バスブリッジ装置は、互いに異なるエンディアン・データの入出力バス間で対象データ幅に従い互いに隣合うバイトレーンを保持するレジスタによるデータシフト操作をしエンディアン変換をする方式（単純化エンディアン変換機能による入出力バスブリッジ方式）を採る。
【００１２】
上記図１に示す実施形態は図２のように、データバスＡからＢへの３２ビットデータＯｘＦＥＤＣＢＡ９８転送時は、３２ビット転送データ幅を指定する入力制御信号に対し生成する制御回路１２による出力制御信号に従い、各バイトレーン１〜４対応レジスタ１１の各設定データＯｘＦＥとＯｘＤＣとＯｘＢＡとＯｘ９８に対し、データの流れ１０１に沿って４回のシフト操作によるエンディアン変換を施し、最終的に各バイトレーン５〜６対応レジスタ１１の各設定データＯｘ９８とＯｘＢＡとＯｘＤＣとＯｘＦＥとして転送する。各バイトレーン４〜１と５〜８対応レジスタ１１の各データは、別途入力クロック信号Ａに対しデータの流れ１０１に沿ってＢ→Ｃ→Ｄ→Ｅ→Ｆ→Ｇ→Ｈ→Ｉの時系列動作をする。図３のように、データバスＡからＢへの１６ビットデータＯｘＡＢＣＤ／Ｏｘ１２３４転送時は、上記図２と同じに制御回路１２による制御信号に従い、各バイトレーン１〜４対応レジスタ１１の各設定データＯｘＡＢとＯｘＣＤ／Ｏｘ１２とＯｘ３４に対し、データの流れ１０２に沿って２系統２回のシフト操作によるエンディアン変換を施し、最終的に各バイトレーン５〜６対応レジスタ１１の各設定データＯｘＣＤとＯｘＡＢとＯｘ３４とＯｘ１２として転送する。各バイトレーン４／３と７／８対応レジスタ１１の各データおよび各バイトレーン２／１と５／６対応レジスタ１１の各データは、別途入力クロック信号Ａに対しデータの流れ１０２に沿ってＢ′→Ｃ′→Ｄ′→Ｅ′およびＦ′→Ｇ′→Ｈ′→Ｉ′の時系列動作をする。図４のように、データバスＡからＢへの８ビット文字列データｘｙｚＮＵＬＬ転送時は、上記図２と同じに制御回路１２による制御信号に従い、各バイトレーン１〜４対応レジスタ１１の各設定文字データｘとｙとｚとＮＵＬＬに対し、データの流れ１０３に沿ってデータバスＡとＢの同一バイトレーン対応レジスタ１１間のシフト操作によるエンディアン変換を施し、最終的に各バイトレーン５〜８対応レジスタ１１の各設定文字データｘとｙとｚとＮＵＬＬとして転送する。各バイトレーン４〜１と８〜５対応レジスタ１１の各データは、別途入力クロック信号Ａに対しデータの流れ１０３に沿ってＢ″→Ｃ″とＤ″→Ｅ″とＦ″→Ｇ″とＨ″→Ｉ″の時系列動作をする。
【００１３】
なお上記図１に示す発明の実施の形態で図５のように、たとえばバイトレーン７と８対応レジスタ１１を削除してもよい。互いに異なるデータバス幅のたとえば３２ビットビッグエンディアン・データバスＡと１６ビットリトルエンディアン・データバスＢ間データ転送時に、上記と同じに互いに異なるバス幅の入出力データに対しエンディアン変換ができる。
上記図５に示す実施形態は、１６ビットデータ転送時でバイトレーン１と２または３と４に有効データが存在するときは、制御回路１２ａによる出力制御信号（下位２ビットアドレス信号とデータ幅１６ビットを示す信号）に従い、バイトレーン１と２または３と４対応レジスタ１１の設定データに対し、バイトレーン２→１→５→６または４→３→２→１→５→６対応レジスタ１１の順にシフト操作によるエンディアン変換を施し転送する。８ビットデータ転送時は、制御回路１２ａによる出力制御信号（下位２ビットアドレス信号）に従い有効な各バイトレーン１〜６対応レジスタ１１のシフト操作によるエンディアン変換を施し転送する。
【００１４】
また上記図１に示す発明の実施の形態で図６（ａ）のように、バイトレーン１〜８対応レジスタ１１に対しデータバス幅よりも多い構成たとえば４個のレジスタ１１を追加してもよい。データバスＡからＢへの６４ビット（データバス幅よりも２倍大きい）データ転送時に、上記と同じにバス幅よりも大きい入出力データに対しエンディアン変換ができる。
上記図６（ａ）に示す実施形態は、６４ビットデータ転送時は、制御回路１２ｂによる出力制御信号に従い、まずバイトレーン１〜４対応レジスタ１１に保持する１回目の３２ビットデータ（０１，０２，０３，０４）に対しシフト操作によるエンディアン変換を施し、保持データ（０４，０３，０２，０１）としてバイトレーン５〜８対応レジスタ１１に移動する。つぎに上記と同じに２回目の３２ビットデータ（０５，０６，０７，０８）に対しエンディアン変換を施し保持データ（０８，０７，０６，０５）としてバイトレーン５〜８対応レジスタ１１に移動すると同時に、１回目の保持データ（０４，０３，０２，０１）を４個の追加レジスタ１１に移動する。さらにエンディアン変換された６４ビットデータ（０８，０７，０６，０５，０４，０３，０２，０１）に対し、バイトレーン５〜８対応レジスタ１１の保持データ（０８，０７，０６，０５）出力に続き、４個の追加レジスタ１１の保持データ（０４，０３，０２，０１）をバイトレーン５〜８対応レジスタ１１に移動後出力をする。たとえば図６（ｂ）のように、６４ビットデータＯｘ０１０２０３０４０５０６０７０８の転送時、バスＡでは１回目と２回目で３２ビットデータＯｘ０１０２０３０４とＯｘ０５０６０７０８を転送し、バスＢでは１回目と２回目で３２ビットデータＯｘ０５０６０７０８とＯｘ０１０２０３０４を出力する。
【００１５】
また上記図１または図５に示す発明の実施の形態で別途設けるＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラと組合せてバスマスタ機能を付加し、制御回路１２または１２ａの入力制御信号として予めソフトウェア設定をするＤＭＡコントローラ等によるレジスタ等デバイス出力信号を用いてもよい。互いに異なるエンディアンまたは互いに異なるエンディアンかつデータ幅のメモリバスと入出力バス間でダイレクトメモリ転送ができる。
【００１６】
また上記図１に示す発明の実施の形態で別途設ける８ビットまたは１６ビットデータインタフェースデバイスをバイトレーン５〜８のいずれかのバスＢに接続することにより、バスＡにおけるバイトレーン１〜４の４つの１バイトデータを順次シフト操作でまたは２つのバイトデータを２回ずつのシフト操作で、バスＢのたとえば接続バイトレーン５または接続バイトレーン５と６に１バイトずつまたは２バイトずつ出力してもよい。バスＡに接続する３２ビットデータインタフェースデバイスとバスＢに接続する８ビットまたは１６ビットデータインタフェースデバイス間のＤＭＡ転送時に有効である。
【００１７】
【発明の効果】
上記のようなこの発明の入出力バスブリッジ装置では、互いに異なるエンディアン・データの入出力バス間で対象データ幅に従い互いに隣合うバイトレーンを保持するレジスタによるデータシフト操作をしエンディアン変換をする方式を採るから、従来のように対象データ幅に従いセレクタによるバイトレーン切替えをする方式に比べ、配線量軽減と回路規模抑制による集積化ができ、動作可能周波数拡張による回路全体動作の高速化ができるほか発明ごとにつぎの効果がある。
（１）互いに異なるバス幅の入出力データに対しエンディアン変換ができる。
（２）バス幅よりも大きい入出力データに対しエンディアン変換ができる。
（３）互いに異なるエンディアンまたは互いに異なるエンディアンかつデータ幅のメモリバスと入出力バス間でダイレクトメモリ転送ができる。
【図面の簡単な説明】
【図１】  この発明の実施の一形態を示す入出力バスブリッジ装置の構成ブロック図。
【図２】  図１に示す入出力バスブリッジ装置の３２ビットデータ転送時動作を説明する系統図とタイミング図。
【図３】  図１に示す入出力バスブリッジ装置の１６ビットデータ転送時動作を説明する系統図とタイミング図。
【図４】  図１に示す入出力バスブリッジ装置の８ビットデータ転送時動作を説明する系統図とタイミング図。
【図５】  この発明の実施の他の一形態を示す構成ブロック図。
【図６】  この発明の実施の他の一形態を示す構成ブロック図とメモリイメージ図。
【図７】  従来の技術を示す入出力バスブリッジ装置の構成ブロック図。
【図８】  図７に示す入出力バスブリッジ装置の３２／１６／８ビットデータ転送時動作を説明する図。
【図９】  図８に示す入出力バスブリッジ装置の接続デバイスとバイトレーンとを説明する図および互いに異なるエンディアンデータの配置とバイトレーン関係を示すメモリイメージ図。
【符号の説明】
１〜４  データバスＡのバイトレーン、５〜８  データバスＢのバイトレーン、１０、１０ａ、１０ｂ  入出力バスブリッジ装置、１１  レジスタ、１２、１２ａ、１２ｂ  制御回路。
なお図中、同一符号は同一または相当部分を示す。
【図１】
0004134371.tif 000002
【図２】
0004134371.tif 000003
【図３】
0004134371.tif 000004
【図４】
0004134371.tif 000005
【図５】
0004134371.tif 000006
【図６】
0004134371.tif 000007
【図７】
0004134371.tif 000008
【図８】
0004134371.tif 000009
【図９】
0004134371.tif 000010