(57)【要約】【課題】  データの転送先に応じて適応的にデータの符号化の有無を制御することが困難であった。【解決手段】  データ転送装置は、受信したデータをパケットに変換して転送するデータ転送装置であって、データの転送先アドレスを取得し、転送先アドレスの値に応じて、データと転送先アドレスとの少なくともいずれかを含む第１のパケットと、第１のパケットに誤り検出符号または誤り訂正符号を付加した第２のパケットとの、いずれかを転送する。【選択図】  図３
2013250956.tif 000002
【特許請求の範囲】
【請求項１】
受信したデータをパケットに変換して転送するデータ転送装置であって、
前記データの転送先アドレスを取得する取得手段と、
前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第１のパケットと前記第１のパケットに誤り検出符号または誤り訂正符号を付加した第２のパケットとのいずれかを転送する転送手段と、
を有することを特徴とするデータ転送装置。
【請求項２】
前記転送手段は、前記転送先アドレスの値が符号を付加しないアドレスとして予め設定されるアドレスの範囲に含まれる場合に、前記第１のパケットを転送する、
ことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記転送手段は、前記転送先アドレスの値が符号を付加すべきアドレスとして予め設定されるアドレスの範囲に含まれる場合に、前記第２のパケットを転送する、
ことを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
予め設定される、符号を付加すべきアドレスの範囲と、符号を付加しないアドレスの範囲の少なくともいずれかを含む情報を、転送先の装置へ送信する送信手段をさらに有する、
ことを特徴とする請求項１から３のいずれか１項に記載のデータ転送装置。
【請求項５】
転送先アドレスからデータを読み出すためのデータ転送を行う場合、前記転送手段は前記第２のパケットを転送する、
ことを特徴とする請求項１から４のいずれか１項に記載のデータ転送装置。
【請求項６】
転送先の装置からのデータを書き込むためのデータ転送に対する、応答のためのデータ転送を行う場合、前記転送手段は前記第２のパケットを転送する、
ことを特徴とする請求項１から５のいずれか１項に記載のデータ転送装置。
【請求項７】
前記第１のパケットは、前記データを含むデータパケットと、ヘッダを含むヘッダパケットとを含み、
前記転送手段は、前記ヘッダパケットに対しては当該ヘッダパケットの前記第１のパケットに対応する前記第２のパケットを転送し、前記データパケットに対しては、前記転送先アドレスに応じて前記第１のパケットと前記第２のパケットとのいずれかを転送する、
ことを特徴とする請求項１から６のいずれか１項に記載のデータ転送装置。
【請求項８】
前記第１のパケットは、当該パケットに含まれる前記データに対しては誤り検出符号または誤り訂正符号を付加せず、ヘッダの部分に対しては誤り検出符号または誤り訂正符号を付加したパケットである、
ことを特徴とする請求項１から６のいずれか１項に記載のデータ転送装置。
【請求項９】
パケットを受信し、当該パケットに含まれるデータの転送先までに経る経路に応じた信号の形式に当該パケットを変換して転送するデータ転送装置であって、
前記パケットから転送先アドレスを取得する取得手段と、
信号の形式を変換された前記データを送出する要求を前記経路へ送信する送信手段と、
前記転送先アドレスと、前記パケットに対する誤り検出の結果に応じて、前記要求を無効化する信号を出力する出力手段と、
を有することを特徴とするデータ転送装置。
【請求項１０】
前記出力手段は、前記転送先アドレスが予め設定される誤り検出符号または誤り訂正符号を付加すべきアドレスの範囲に含まれると共に、前記結果が誤りを検出したことを示す場合、前記要求を無効化する信号を出力する、
ことを特徴とする請求項９に記載のデータ転送装置。
【請求項１１】
受信したデータをパケットに変換して転送するデータ転送装置におけるデータ転送方法であって、
取得手段が、前記データの転送先アドレスを取得する取得工程と、
転送手段が、前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第１のパケットと前記第１のパケットに誤り検出符号または誤り訂正符号を付加した第２のパケットとのいずれかを転送する転送工程と、
を有することを特徴とするデータ転送方法。
【請求項１２】
パケットを受信し、当該パケットに含まれるデータの転送先までに経る経路に応じた信号の形式に当該パケットを変換して転送するデータ転送装置におけるデータ転送方法であって、
取得手段が、前記パケットから転送先アドレスを取得する取得工程と、
送信手段が、信号の形式を変換された前記データを送出する要求を前記経路へ送信する送信工程と、
出力手段が、前記転送先アドレスと、前記パケットに対する誤り検出の結果に応じて、前記要求を無効化する信号を出力する出力工程と、
を有することを特徴とするデータ転送方法。
【請求項１３】
コンピュータを、受信したデータをパケットに変換して転送するデータ転送装置における、
前記データの転送先アドレスを取得する取得手段と、
前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第１のパケットと前記第１のパケットに誤り検出符号または誤り訂正符号を付加した第２のパケットとのいずれかを転送する転送手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを使用してデータ転送を行うデータ転送装置、データ転送方法、及びプログラムに関する。
【背景技術】
【０００２】
パケットを使用してデータ転送を行う技術が様々な分野に適用されている。例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）は、インターネット上のデータ転送をパケットベースで行う技術である。また、ＰＣＩ−Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−Ｅｘｐｒｅｓｓ）は、集積回路間のデータ転送をパケットベースで行う技術である。また、ＮｏＣ（Ｎｅｔｗｏｒｋ  Ｏｎ  Ｃｈｉｐ）は集積回路内のデータ転送をパケットベースで行う技術である。
【０００３】
パケットベースでデータ転送を行うメリットは、少ない信号線数で、アドレスやデータ等の転送に必要な様々な情報を転送できることにある。例えば、ＰＣＩ−Ｅｘｐｒｅｓｓでは、２対の差動線路のみを用いてデータ転送を行うことができる。また、パケットベースのデータ転送は、転送レートを上げやすいというメリットもある。しかしながら、パケットベースの転送方式においては、様々な情報を時間軸上に展開して送信するため、最低限必要な情報以外の情報もパケットに付加される。このため、転送効率が低下するという問題点がある。
【０００４】
一方、データ転送の高速化やデータ転送路上のノイズに応じて、多くの場合に、パケットベースの転送方式において誤り検出符号や誤り訂正符号を用いるようになっている。このような符号として、例えば、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）やＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）が用いられる。パケットベースの全てのデータ転送に対して、このような誤り検出訂正のための符号を付加すると、誤り耐性を向上させることができるが、符号化が不要な転送に対しても符号を付加することにより転送効率が低下するという課題があった（特許文献１）。これに対し、特許文献２において、データ転送効率を向上させるために、画像や音声といった転送データの種類（ヘッダの情報）に応じて、誤り検出符号の付加の有無を制御する技術が提案されている。また、特許文献２においては送信済みパケットの制御フィールドと、新たに送信するパケットの制御フィールドとが一致するときに、制御フィールドを一致フラグに置き換える技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１７３６５９号公報
【特許文献２】特開２００９−１８２６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献２に記載の手法では、データの種別を識別するヘッダを余計に付加するため、それによる転送効率の低下が生じるという課題があった。また、同一の種類のデータを送信する場合、符号化を行うか否かを、転送先のチップ内の接続先デバイスに応じて適切に制御することが出来ないという課題があった。
【０００７】
本発明は上記課題に鑑みなされたものであり、ヘッダ情報を新たに付加することなく、データの転送先に応じて適応的にデータの符号化の有無を制御可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明によるデータ転送装置は、受信したデータをパケットに変換して転送するデータ転送装置であって、前記データの転送先アドレスを取得する取得手段と、前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第１のパケットと前記第１のパケットに誤り検出符号または誤り訂正符号を付加した第２のパケットとのいずれかを転送する転送手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、ヘッダに対する付加情報なしに、転送データに対する符号化を、転送先に応じて適応的に制御可能とするデータ転送技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】システムの構成例を示す図。
【図２】バスブリッジの構成例を示す図。
【図３】データ変換送信部の構成例を示す図。
【図４】データ受信変換部の構成例を示す図。
【図５】第１のアドレス情報保持部の初期化動作を示すフローチャート。
【図６】第２のアドレス情報保持部の初期化動作を示すフローチャート。
【図７】転送先アドレスの範囲の例を示す図。
【図８】データの送信動作を示すフローチャート。
【図９】データの受信動作を示すフローチャート。
【図１０】パケットのフォーマット例を示す図。
【図１１】シリアルバスに送出される信号の例を示す図。
【図１２】データ転送に要するサイクル数に関する、従来例と実施形態との比較図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜＜実施形態１＞＞
（システム構成）
図１は、２つの特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）第１のＡＳＩＣ１００と第２のＡＳＩＣ２００が、シリアルバス３００で接続されるシステムの構成例を示す図である。シリアルバス３００上では、パケットによるデータ転送が行われる。
【００１３】
第１のＡＳＩＣ１００は、例えば、第１バス１０５に対する第１のバスマスタ１０１及び第２のバスマスタ１０２、第１バス−シリアルバスブリッジ１０３、第１のＤＲＡＭコントローラ１０４を有し、各モジュールは第１バス１０５によって接続される。第１バス１０５は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。第１のバスマスタ１０１及び第２のバスマスタ１０２は、第１バス１０５を介して、第１バス−シリアルバスブリッジ１０３と第１のＤＲＡＭコントローラ１０４との間でデータ転送を実行させる。第１のＤＲＡＭコントローラ１０４は第１のＤＲＡＭインタフェース１０７を介して第１のＤＲＡＭ１０６との間でデータ転送を行う。
【００１４】
第１バス−シリアルバスブリッジ１０３は、第１バス１０５からのデータをシリアルバス３００へのデータ形式に変換し、接続先の第２のＡＳＩＣ２００内のシリアルバス−第２バスブリッジ２０３へ転送を行う。また、第１バス−シリアルバスブリッジ１０３は、シリアルバス３００からのデータを第１バス１０５のデータ形式に変換し、パラレルデータとして第１バス１０５へ送出する能力をも有する。このように、第１バス−シリアルバスブリッジ１０３は、受信した経路（バス）に対応する信号を、送出先の経路に対応する信号へと変換して出力する機能部である。
【００１５】
一方、第２のＡＳＩＣ２００は、例えば、第２バス２０５に対する第３のバスマスタ２０１及び第４のバスマスタ２０２、シリアルバス−第２バスブリッジ２０３、第２のＤＲＡＭコントローラ２０４、ＬＣＤコントローラ２０８を有する。そして、各モジュールは、第２バス２０５によって接続される。なお、ＬＣＤは液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。第２バス２０５は、アドレスやデータ等がそれぞれ専用線で接続されるパラレルバスである。
【００１６】
シリアルバス−第２バスブリッジ２０３は、シリアルバス３００からのデータを第２バスのデータ形式に変換し、第２バスを介して第２のＤＲＡＭコントローラ２０４及びＬＣＤコントローラ２０８に転送する。また、シリアルバス−第２バスブリッジ２０３は、第２バス２０５からのデータをシリアルバス３００のデータ形式に変換し、パケットとしてシリアルバス３００へ送出する能力をも有する。このように、シリアルバス−第２バスブリッジ２０３は、第１バス−シリアルバスブリッジ１０３と同様に、受信した経路に対応する信号を、送出先の経路に対応する信号へと変換して出力する機能部である。
【００１７】
第３のバスマスタ２０１及び第４のバスマスタ２０２は、第２バス２０５を介して、シリアルバス−第２バスブリッジ２０３と、第２のＤＲＡＭコントローラ２０４と、ＬＣＤコントローラ２０８との間で、データ転送を実行させる。第２のＤＲＡＭコントローラ２０４は第２のＤＲＡＭインタフェース２０７を介して第２のＤＲＡＭ２０６との間でデータ転送を行う。ＬＣＤコントローラ２０８はＬＣＤインタフェース２１０を介してＬＣＤ＿２０９との間でデータ転送を行う。
【００１８】
（バスブリッジの構成）
図２は、本実施形態の転送方式を実行するための、第１バス−シリアルバスブリッジ１０３とシリアルバス−第２バスブリッジ２０３との構成例を示す図である。第１バス−シリアルバスブリッジ１０３とシリアルバス−第２バスブリッジ２０３とは、それぞれデータ変換送信部４００及びデータ受信変換部５００を１つずつ有する。そして、第１バス−シリアルバスブリッジ１０３とシリアルバス−第２バスブリッジ２０３とがそれぞれ有するデータ変換送信部４００及びデータ受信変換部５００は、それぞれ同様の構成を有する。以下では、データ変換送信部４００及びデータ受信変換部５００の回路構成の詳細と処理シーケンスとについて説明する。
【００１９】
（データ変換送信部の回路構成）
図３は、データ変換送信部４００の構成例を示す図である。データ変換送信部４００は、例えば、パラレルデータ受信部４０１、パケット変換部４０２、パケット送信部４０３、符号付加部４０４、第１のアドレスデコード／比較部４０５、第１のアドレス情報保持部４０６、及び信号選択部４０７を有する。本実施形態のデータ変換送信部４００は、上述の各手段を用いて、誤り検出符号を付加すべきパケットと、付加すべきでないパケットとを、パケットの宛先のアドレスに応じて分類する。なお、本実施形態では、符号付加部４０４は誤り検出符号を付加する機能部として説明するが、それに限られず、誤り訂正符号を付加する機能部であってもよい。また、符号付加部４０４は、パケットに誤り検出や誤り訂正用の系列を付加するのみならず、転送データやヘッダを用いて任意の符号化を施したパケットを生成してもよい。
【００２０】
パラレルデータ受信部４０１は、パラレルバスからのデータ（アドレス、転送データなど）を受信し、一時的に格納しておく記憶回路である。パケット変換部４０２は、パラレルデータ受信部４０１に格納されたパラレルバスからのデータをパケットに変換する。符号付加部４０４は、例えば、転送データとヘッダとの少なくともいずれかに対する誤り検出符号を、パケット変換部４０２から出力されたパケットに付加し、信号選択部４０７へ出力する。信号選択部４０７へは、パケット変換部４０２からの符号が付加されていない第１のパケットと、符号付加部４０４からの符号が付加された第２のパケットとが入力される。そして、信号選択部４０７は、第１のアドレスデコード／比較部４０５からの符号の付加の有無を示す切替信号に応じて、これらのパケットのいずれを出力するかを選択する。
【００２１】
なお、符号付加部４０４がパケットに誤り検出符号を付加すると、例えばペイロード長が変化する場合があるため、これに応じてパケットのヘッダにおける転送データ長などの情報を更新してもよい。また、本実施形態では、一度、アドレスなどの情報を含めたパケットを生成してから符号を付加しているが、転送データを符号化した後に、アドレスなどの情報を取得してヘッダ部分を付加し、パケットを生成してもよい。また、このときに、ヘッダ部分に対する符号を別途用意してもよく、ヘッダ部分の付加の際に、それに対応する符号をも付加してパケットを生成してもよい。
【００２２】
送信側の第１のアドレス情報保持部４０６は、符号を付加すべき宛先アドレスの範囲と付加する必要のない宛先アドレスの範囲とを含む、予め設定される情報を保持するための回路である。なお、後述するが、このアドレスの範囲の情報は転送先チップとの間で共有される。第１のアドレスデコード／比較部４０５は、パラレルデータ受信部４０１で受信したデータに含まれる転送先アドレスをデコードして取得する。そして、第１のアドレスデコード／比較部４０５は、取得した転送先アドレスと第１のアドレス情報保持部４０６に格納されたアドレスの範囲とを比較し、比較結果に基づいて、信号選択部４０７に対して符号の付加の有無を示す切替信号を出力する。パケット送信部４０３は、パケット化されたデータをシリアルバス３００へ１ビット単位で出力する。
【００２３】
（データ受信変換部の回路構成）
図４は、データ受信変換部５００の構成例を示す図である。データ受信変換部５００は、パケット受信部５０１、パケット逆変換部５０２、パラレルデータ送信部５０３、誤り検出部５０４、第２のアドレスデコード／比較部５０５、第２のアドレス情報保持部５０６、マスク部５０７、及び割り込み生成部５０８を有する。なお、データ変換送信部４００において誤り検出符号を用いる場合は、誤り検出部５０４が用いられるが、誤り訂正符号を用いる場合は、誤り検出部５０４を、誤り訂正復号を実行する機能部に置き換えてもよい。
【００２４】
パケット受信部５０１は、送信元デバイスと接続されたシリアルバス３００からパケットを受信し、そのパケットをパケット逆変換部５０２へ出力する。パケット逆変換部５０２は、受信したパケットデータを、ＡＳＩＣ内部のバスであるパラレルバス（第１バス１０５又は第２バス２０５）のデータ形式に変換する。パラレルデータ送信部５０３は、パケット逆変換部５０２の出力結果であるパラレルバスへ出力すべきデータを、一時格納した後にパラレルバスへ出力する。
【００２５】
誤り検出部５０４は、受信したパケットに含まれる誤り検出符号に基づきエラー検出結果を出力する。第２のアドレスデコード／比較部５０５はパケットに含まれるアドレスをデコードして取得し、取得したアドレスと、第２のアドレス情報保持部５０６で保持される予め設定された転送先アドレスの範囲の情報とを比較する。そして、処理しているパケットに誤り検出符号が付加されているかどうかを判定し、判定結果をマスク部５０７へ出力する。マスク部５０７は、誤り検出部５０４が出力したエラー検出結果をマスクするか否かを選択する。マスクされたエラー検出結果はその後使用されない。割り込み生成部５０８は、マスク部５０７の出力結果に応じて割り込み信号を生成し、割り込みコントローラ（不図示）へ通知する。
【００２６】
（第１のアドレス情報保持部の初期化処理）
続いて、第１のアドレス情報保持部４０６の初期化処理について、図５を参照して説明する。パラレルデータ受信部４０１は、第１バス１０５を介して、第１のバスマスタ１０１や第２のバスマスタ１０２からの転送先アドレスの範囲の設定命令を受信する（Ｓ６００）。この設定命令には転送先アドレスの範囲が含まれ、転送先アドレスの範囲は、例えば図７に示すような形式を有する。この転送先アドレスの範囲には、転送先アドレスの範囲毎に符号を付加するか否かを指定する情報が格納される。
【００２７】
なお、図７の例では、符号の付加の有無によらず、転送先アドレスの候補が転送先のアドレスの範囲として格納されるが、符号化すべきアドレスの範囲のみ、または符号化しないアドレスの範囲のみを格納してもよい。そして、符号化すべきアドレスの範囲のみが含まれる場合、信号選択部４０７は、転送先アドレスがその範囲に含まれる場合は符号化した第２のパケットを、転送先アドレスがその範囲に含まれない場合は符号化しない第１のパケットを、それぞれ選択してもよい。また、符号化しないアドレスの範囲のみが含まれる場合、信号選択部４０７は、転送先アドレスがその範囲に含まれる場合は符号化しない第１のパケットを、転送先アドレスがその範囲に含まれない場合は符号化した第２のパケットを、それぞれ選択してもよい。
【００２８】
なお、符号を付加するかの判断（分類）については、例えば、以下のようにする。すなわち、ＬＣＤコントローラ２０８へ転送する画像データについては、符号を付加せず、ＤＲＡＭコントローラ２０４へ画像データを転送する際には符号を付加する。すなわち、ＬＣＤ２０９での表示は、画像データにビットエラーレベルの誤りがあったとしても、人間の視覚特性上感知されにくいため、符号を付加しなくてもよい。また、ＤＲＡＭ２０６へ格納される画像データは、様々な画像処理を施されたり、他の処理に応用されたりする場合があることから、これらの格納後の処理への影響を十分に抑えるため、符号を付加してもよい。同様に、音声の記録・再生装置においては、音声データをＤＲＡＭに格納する場合は誤り検出符号を付加し、音声再生系（例えばスピーカ）に転送する場合は誤り検出符号を付加しなくてもよい。すなわち、人間の知覚へ情報を提示する出力系に直接データを転送する場合は符号を付加せず、それ以外の場合には符号を付加してもよい。
【００２９】
また、一連の処理（例えばパイプライン処理）において、後段に続くステージの数が少ないステージへ処理結果を転送する場合は、誤りがあっても波及する処理が多くないため、符号を付加しないようにしてもよい。その場合、符号を付加するかを判定するノードは、自ノードで実行する処理が一連の処理におけるいずれの段の処理であるかを判定してもよい。なお、この判定のために、ノードは、一連の処理におけるいずれの段の処理を実行するかを示す値を格納するレジスタを保持していてもよい。
【００３０】
図７の例においては、ＬＣＤコントローラ２０８を特定するアドレスの範囲０ｘ８０００＿００００から０ｘ８ＦＦＦ＿ＦＦＦＦが、誤り検出符号の付加の対象でない転送先アドレスの範囲である。一方、第２のＤＲＡＭコントローラ２０４を特定するアドレスの範囲０ｘ００００＿００００から０ｘ７ＦＦＦ＿ＦＦＦＦが、誤り検出符号の付加の対象となる転送先アドレスの範囲である。パラレルデータ受信部４０１は、受信した設定命令を第１のアドレス情報保持部４０６に送信し、第１のアドレス情報保持部４０６に転送先アドレスの範囲の情報を設定する（Ｓ６０１）。ここで、データ変換送信部４００は、第１のアドレス情報保持部４０６に転送先アドレスの範囲の情報が設定されたことを確認する処理を実行してもよい。
【００３１】
第１のアドレス情報保持部４０６への転送先アドレスの範囲の設定の後、パケット送信部４０３は、シリアルバス３００を介して、データ受信変換部５００へ転送先アドレスの範囲の設定パケットを送信する（Ｓ６０２）。受信側の処理ついては後述する。そして、データ受信変換部５００から転送先アドレスの範囲の設定処理の終了を通知されると（Ｓ６０３でＹｅｓ）、データ変換送信部４００は、第１のバスマスタ１０１や第２のバスマスタ１０２へ転送先アドレスの範囲の設定完了を通知する（Ｓ６０４）。
【００３２】
（第２のアドレス情報保持部の初期化処理）
続いて、第２のアドレス情報保持部５０６の初期化処理について、図６を参照しながら説明する。パケット受信部５０１は、シリアルバス３００を介して、データ変換送信部４００から転送先アドレスの範囲の設定パケットを受信する（Ｓ７００）。パケット受信部５０１は、受信した設定パケットを、第２のアドレス情報保持部５０６に入力し、第２のアドレス情報保持部５０６に転送先アドレスの範囲の情報を設定する（Ｓ７０１）。ここで、データ受信変換部５００は、第２のアドレス情報保持部５０６に転送先アドレスの範囲の情報が設定されたことを確認してもよい。その後、データ受信変換部５００は、データ変換送信部４００へ、転送先アドレスの範囲の設定完了を通知する（Ｓ７０２）。
【００３３】
（データ送信処理）
続いて、データ送信処理について図８を参照して説明する。パラレルデータ受信部４０１は、第１バス１０５を介して、第１のバスマスタ１０１や第２のバスマスタ１０２からのデータ転送要求（リクエスト）を受信する（Ｓ８００）。リクエストは、例えば、アドレス、属性情報、及び転送すべきデータを含む。本実施形態では、リクエストは、転送先のアドレス（Ａｄｄｒｅｓｓ）、Ｗｒｉｔｅ転送かＲｅａｄ転送かを示すフラグ、書き込みデータ（Ｗｄａｔａ）、ストローブ（Ｗｓｔｒｂ）、及び属性情報（ＲｅｑＡｔｒｂ０／１）を含むものとする。なお、Ｗｒｉｔｅ転送は、転送先へデータを書き込むためのデータ転送の種別であり、Ｒｅａｄ転送は、転送先からデータを読み出すためのデータ転送の種別である。また、属性情報（ＲｅｑＡｔｒｂ０／１）は、例えば、パケットサイズや転送の優先度等を示す情報を含む。
【００３４】
パケット変換部４０２は、受信したリクエスト（パラレルデータ受信部の受信結果）をパケットに変換する（Ｓ８０１）。変換により得られるパケットの例を、図１０（ａ）及び図１０（ｂ）に示す。パケットは、ヘッダとデータとを含み、ヘッダ及びデータは、共に複数の３２ビット単位のキャラクタによって構成される。ヘッダは、パケットの種類を示す識別子（Ｔｙｐｅ）や属性情報（ＲｅｑＡｔｒｂ０／１）や転送先のアドレス（Ａｄｄｒｅｓｓ）を含む。また、データは、書き込みデータ（Ｗｄａｔａ）やストローブ（Ｗｓｔｒｂ）によって構成され、Ｗｒｉｔｅ転送時にのみ生成される。Ｒｅａｄ転送時は転送先の装置へデータを要求するのであって、その装置へ送信するデータはないため、データ部分は例えば空となる。
【００３５】
続いて、第１のアドレスデコード／比較部４０５は転送先アドレスをチェックし、第１のアドレス情報保持部４０６に保持される転送先アドレスの範囲と比較する（Ｓ８０２）。そして、第１のアドレスデコード／比較部４０５は、切替信号を信号選択部４０７へ出力し、信号選択部４０７に、パケット変換部４０２からの第１のパケットと、符号付加部４０４からの第２のパケットとのいずれかを選択させる（Ｓ８０２、Ｓ８０３）。
【００３６】
具体的には、第１のアドレスデコード／比較部４０５は、デコードで取得した転送先アドレスが符号を付加しないアドレスの範囲に含まれる場合、パケット変換部４０２からの第１のパケットの選択を指示する切替信号を信号選択部４０７へ出力する。図７の例では、デコードで取得した転送先アドレスが０ｘ００００＿００００から０ｘ７ＦＦＦ＿ＦＦＦＦの範囲に含まれる場合、第１のアドレスデコード／比較部４０５は、パケット変換部４０２からの第１のパケットを選択するべき旨の切替信号を出力する。一方、第１のアドレスデコード／比較部４０５は、デコードで取得した転送先アドレスが符号を付加するアドレスの範囲に含まれる場合、符号付加部４０４からの第２のパケットの選択を指示する切替信号を信号選択部４０７へ出力する。このとき、符号を付加した第２のパケットは例えば図１０（ａ）のようになり、符号を付加しない第１のパケットは例えば図１０（ｂ）のようになる。
【００３７】
信号選択部４０７は、上述のように、切替信号に従って出力すべき信号を選択し、選択した信号をパケット送信部４０３へ出力する。パケット送信部４０３は、パケット化したリクエストを、例えば図１０の各パケットの左上のビットから、１ビット単位でシリアルバス３００へ送出する（Ｓ８０４）。
【００３８】
送出される信号の例を図１１に示す。図１１において、「Ｎ」は非転送期間（ＮＯＰ）を示し、「Ｓ」はスタートビットを示す。また、丸で囲まれた数字はパケットに含まれる各キャラクタ内のビット位置を示す。信号は３２ビット単位のキャラクタごとに区切って送出される。信号の送出においては、まず、２ビットのスタートビットが送信され、その後に続いて、３２ビット単位のキャラクタが最上位ビットから順に１ビットずつ送信される。具体的には、スタートビット２ビットの後、図１０の各パケットにおける横方向に連続する３２ビットのキャラクタを、左のビットから右のビットへ続けて送信する。その後、次のキャラクタを送信する前に、再度スタートビットを送信し、パケットの次の行の３２ビットのキャラクタを同様に送信する。これをパケットの終端まで繰り返す。このようにして、パケットは、クロックに応じて、シリアルバス３００を介して、受信側の第２のＡＳＩＣ２００に送信される。
【００３９】
（データ受信処理）
続いて、データ受信処理について図９を参照して説明する。パケット受信部５０１は、第１のＡＳＩＣ１００からシリアルバス３００を介してデータが受信されるのを待ち受ける（Ｓ９００）。なお、データの受信においては、まず、２ビットのスタートビットを認識し、後続の３２ビットのシリアルデータを受信して３２ビットのキャラクタを生成し、それをパケットの末尾まで繰り返すことにより、パケット全体を受信する。受信したパケットは、パケット逆変換部５０２、誤り検出部５０４、及び第２のアドレスデコード／比較部５０５に入力される。パケット逆変換部５０２は、データ転送の種類を示す識別子（Ｔｙｐｅ）に応じて、パケットから第２バスへのリクエスト形式の信号への変換を行う（Ｓ９０１）。例えば、パケットの種類を示す識別子が、属性情報（ＲｅｑＡｔｒｂ０／１）が付加されているパケットを示す場合、受信したパケットから属性情報（ＲｅｑＡｔｒｂ０／１）を抽出し、それを用いて、パケットを第２バスへのリクエスト形式の信号に変換する。パラレルデータ送信部５０３は、第２バスへの信号形式に変換されたリクエストを出力し、第２のＤＲＡＭコントローラ２０４へ第２バス２０５を介して送信する（Ｓ９０１）。また、誤り検出部５０４において誤り検出処理が行われる（Ｓ９０２）。
【００４０】
なお、図９の例では、誤り検出処理（Ｓ９０２）は、パケットの逆変換処理及びリクエストの送出（Ｓ９０１）の後に実行されるように記載されているが、これに限られない。例えば、パケットの逆変換処理及びリクエストの送出と並行して、またはそれより先に誤り検出処理が実行されてもよい。なお、誤り検出部５０４は、受信したパケットに対して誤り検出処理を実行し、受信キャラクタに誤りが含まれていると判断した場合、割り込み生成部５０８に対してエラーを検出したことを報告する。
【００４１】
誤り検出部５０４による誤り検出結果の報告は、転送先アドレスに応じて、マスク部５０７でマスク（無効化）されるべきかが判定される。具体的には、第２のアドレスデコード／比較部５０５は、アドレス情報をデコードして取得し、取得した転送先アドレスと第２のアドレス情報保持部５０６に保持されている転送先アドレスの範囲の情報とを比較する（Ｓ９０３）。そして、第２のアドレスデコード／比較部５０５は、転送先アドレスが符号化を行わないアドレスの範囲に含まれている場合、誤り検出部５０４からの報告をマスクするように、マスク部５０７に制御信号を送信する。一方、第２のアドレスデコード／比較部５０５は、転送先アドレスが符号化を行うアドレスの範囲に含まれている場合、誤り検出部５０４からの報告をマスクしないように、マスク部５０７に制御信号を送信する。すなわち、送信元において符号化されていない場合の報告を無効化し、送信元で符号化されている場合は報告を無効化しないように、マスク部５０７を制御する信号を、マスク部５０７へ送信する。
【００４２】
マスク部５０７は、この制御信号に従って、転送先アドレスが、符号化を行わないアドレスの範囲に含まれている場合は、誤り検出の結果をマスクして無効化する（Ｓ９０４）。一方、割り込み生成部５０８は、マスクされた報告を受信した場合、又はエラーが検出されていない場合の報告を受信した場合（Ｓ９０５でＮｏ）は、何も行わない。一方、割り込み生成部５０８は、エラー検出の報告を受信すると（Ｓ９０５でＹｅｓ）、割り込み信号を出力し、Ｓ９０２のリクエストの送出を無効化する（Ｓ９０６）。
【００４３】
（リクエスト送受信時の、符号付加の有無に関する選択処理の有効化と無効化）
リクエスト送受信時において、符号付加の有無に関する選択処理を有効とするか否かは、Ｗｒｉｔｅ転送時とＲｅａｄ転送時で異なる。Ｗｒｉｔｅ転送時は、送信されるリクエストに、書き込みデータ（Ｗｄａｔａ）やストローブ（Ｗｓｔｒｂ）といったデータが含まれる。このようなデータは、符号化が必要でない場合に符号化せず、データ転送効率を向上させることができる。このため、符号付加の有無に関する選択処理を有効としてもよい。一方、Ｒｅａｄ転送時には、送信されるリクエストには転送データは含まれず、アドレス（Ａｄｄｒｅｓｓ）が主要なデータとなる。アドレス（Ａｄｄｒｅｓｓ）はデータ誤りが発生するとトランザクションに支障をきたすため、常に誤り検出符号を付加してもよい。常に符号を付加する場合は、符号付加の要否の選択は不要であるため、このようなＲｅａｄ転送時には、符号付加の有無に関する選択処理を無効化してもよい。
【００４４】
（レスポンスの送信処理及び受信処理）
リクエストに対する応答信号（レスポンス）の送信処理及び受信処理の場合のデータ変換送信部４００とデータ受信変換部５００の内部構成及び処理内容は、リクエストの送信処理と受信処理の場合と同様である。そのため、詳細な回路構成及び動作の説明を省略し、リクエストパケットの構成要素と、符号付加の有無の判定条件について説明する。
【００４５】
（レスポンス及びレスポンスパケットの構成）
レスポンスは、例えば、エラーか否かを示すステータス情報（ＲｅｓｐＳｔ）、読み出しデータ（Ｒｄａｔａ）、及びパケットサイズや転送のプライオリティーを示す属性情報（ＲｅｓｐＡｔｒｂ０／１）を含む。レスポンスパケットの例を図１０（ｃ）及び図１０（ｄ）に示す。パケットはヘッダとデータとを含み、ヘッダとデータは、共に複数の３２ビット単位のキャラクタによって構成される。ヘッダは、例えば、パケットの種類を示す識別子（Ｔｙｐｅ）、ステータス（ＲｅｓｐＳｔ）、属性情報（ＲｅｓｐＡｔｒｂ０／１）を含む。また、データは読み出しデータ（Ｒｄａｔａ）によって構成され、Ｒｅａｄ転送時にのみ生成される。Ｗｒｉｔｅ転送時は、転送元の装置からデータを受信して書き込むだけであり、転送元の装置へ送信するデータはないため、データ部分は例えば空となる。
【００４６】
（レスポンス送受信時の、符号の付加の有無の選択処理の有効化と無効化）
レスポンス送受信時において、符号付加の有無に関する選択処理を有効とするかどうかは、Ｗｒｉｔｅ転送時とＲｅａｄ転送時で異なる。Ｗｒｉｔｅ転送時には、レスポンスには読み出しデータ（Ｒｄａｔａ）は含まれず、エラーか否かを示すステータス情報（ＲｅｓｐＳｔ）が主要なデータとなる。ステータス情報（ＲｅｓｐＳｔ）はバスシステムの動作においては重要な情報なので、全ての転送に対して誤り検出符号を付加して転送する。一方、Ｒｅａｄ転送時には、レスポンスには読み出しデータ（Ｒｄａｔａ）が含まれる。読み出しデータに対しては、場合によっては符号を付加する必要がない。このため、符号付加の有無の判定を有効とし、不要な場合は符号を付加せずに、転送効率を向上させることが可能となる。
【００４７】
本実施形態によれば、誤り検出符号を付加する必要のないパケットに対しては誤り検出符号を付加せず、また、符号付加の有無を示すビットを付加することもないため、データの転送効率を向上させることが可能となる。また、転送先アドレスに応じて符号化の有無を決定するため、同一種類のデータに対しても、転送先のチップ内の接続先デバイスに応じて、符号化を行うか否かを適切に制御することが可能となる。例えば、画像データを転送する際に、通常のデータとして転送先チップ内のメモリ領域へ書き込む場合には符号化するが、そのまま表示系デバイスに出力する場合には符号化しないという制御が可能になる。
【００４８】
図１２（ａ）に従来例におけるリクエストパケット送信に要するサイクル数を、図１２（ｂ）に本実施形態によるリクエストパケット送信の要するサイクル数を、それぞれ示す。図中の数字は転送に要するサイクル数を示す。図１２（ａ）及び図１２（ｂ）の例では、第１のバスマスタ１０１からのリクエスト（図中のＡ１からＡ４）と第２のバスマスタ１０２からのリクエスト（図中のＢ１からＢ４）が、交互に第１バス−シリアルバスブリッジ１０３に送信される。なお、全ての転送は６４ビットのＳｉｎｇｌｅ  Ｗｒｉｔｅ転送とする。この例において、第１のバスマスタ１０１から発行されるアドレスは、常に誤り検出符号を付加する必要のない転送先を示し、第２のバスマスタ１０２からから発行されるアドレスは、常に誤り検出符号を付加する必要がある転送先を示すものとする。図１２（ａ）の例においては、各マスタからの全パケットは３キャラクタのヘッダ及び３キャラクタのデータ、及び１キャラクタの誤り検出符号によって構成され、全部で７キャラクタのパケットであるとする。
【００４９】
このとき、２つのそれぞれのマスタから４つのＷｒｉｔｅ転送を行う場合、転送すべきキャラクタ数は、７（キャラクタ数）×４（各マスタあたりのパケット数）×２（マスタ数）＝５６キャラクタとなる。各キャラクタの転送にはスタートビットを含めて３４サイクルかかるため、従来例では、転送に５６×３４＝１９０４サイクル必要になる。
【００５０】
一方、本実施形態によれば、各マスタからのパケットについて、誤り検出符号を付加する必要のないパケットには誤り検出符号を付加せず、さらに、誤り検出符号を付加しないことを示す情報ビットを付加する必要もない。このため、第１のバスマスタ１０１から発行されるリクエストには、誤り検出符号が常に付加されず、７キャラクタのうち、１キャラクタ分は送信しないこととなる。一方、第２のバスマスタ１０２から発行されるリクエストには、誤り検出符号が常に付加される。このため、図１２（ｂ）に示すように、各マスタからの４つのＷｒｉｔｅ転送のうち、第１のバスマスタ１０１からの４つのＷｒｉｔｅ転送について、誤り検出符号が付加されず１キャラクタずつ省略される。したがって、第１のバスマスタ１０１からの４つのＷｒｉｔｅ転送に関しての、転送キャラクタ数は、６（キャラクタ数）×４（各マスタあたりのパケット数）＝２４キャラクタとなる。一方第２のバスマスタ１０２からの４つのＷｒｉｔｅ転送の転送キャラクタ数は従来例と変わらず、７（キャラクタ数）×４（各マスタあたりのパケット数）＝２８キャラクタとなる。すなわち、合計では２４＋２８＝５２キャラクタとなり、本実施形態では、転送に５２×３４＝１７６８サイクルが必要となる。したがって、従来例と比して、本実施形態では、転送に必要なサイクル数を１３６サイクル分だけ削減することができる。
【００５１】
また、全てのパケットにおいて誤り検出符号を付加する必要がない場合は、サイクル数を最大限に削減することができる。全てのパケットに誤り検出符号を付加する必要がない場合の例を図１２（ｃ）に示す。図１２（ｃ）では、合計８つのＷｒｉｔｅ転送に対して必要な全キャラクタ数は、６（キャラクタ数）×８（２つのマスタに対する全パケット数）＝４８キャラクタである。この場合、転送に４８×３４＝１６３２サイクルが必要である。このように、従来例と比して、本実施形態では、転送に必要なサイクル数を最大２７２サイクル分だけ削減することができる。
【００５２】
＜＜実施形態２＞＞
実施形態１記載のリクエスト送受信時において、Ｗｒｉｔｅ転送時は、リクエストに書き込みデータ（Ｗｄａｔａ）やストローブ（Ｗｓｔｒｂ）といったデータが含まれ、符号付加の有無に関する選択処理をすると説明した。しかしながら、実施形態１のリクエストパケットの構造では、アドレスとデータをパッキングして送信するため、データに符号を付加しないだけでなく、データ以外の部分、例えば、アドレスを含むヘッダ部分にも符号を付加せずに送信する場合がある。
【００５３】
このため、ヘッダ部分にはすべてのパケットで誤り検出符号を付加すると同時に、データ部分に対しては符号付加の有無に関する選択処理を有効化するようにしてもよい。例えば、リクエストパケットにおいて、ヘッダパケットとデータパケットとを明示的に分離することで、データパケットのみに対して符号付加の有無に関する選択処理を有効化することが可能となる。このようにすることにより、パケット中の重要な部分（例えば、データ部分以外のヘッダ部分）については常に符号化による保護を行うと共に、データ部分については場合に応じて符号化を行わないようにして転送効率を向上させることができる。
【００５４】
（リクエスト送受信時の符号付加の有無に関する選択処理の有効化と無効化）
Ｗｒｉｔｅ転送時、まずリクエストパケットが、データパケットであるか、ヘッダパケットであるかを判別する。リクエストパケットがヘッダパケットである場合、符号付加の有無に関する選択処理を無効化し、全てのヘッダパケットに対し誤り検出符号を付加する。一方、リクエストパケットがデータパケットである場合、符号付加の有無に関する選択処理を有効化し、場合によって符号を付加しないことにより、データ転送を効率化する。Ｒｅａｄ転送時は、実施形態１と同様に、符号付加の有無に関する選択処理を無効化し、全てのパケットに対し誤り検出符号を付加する。なお、レスポンスの送受信時の処理は、実施形態１と同様である。
【００５５】
なお、Ｗｒｉｔｅ転送時には、書き込むデータが存在するため、データ部分については転送先アドレスに応じて符号の付加を伴わない第１のパケットと、第２のパケットとから転送するパケットを決定する。しかしながら、Ｒｅａｄ転送時には、データが存在しないため、常に符号化を伴う第２のパケットが転送されてもよい。さらに、相手方の装置からＷｒｉｔｅ転送の要求を受けた時の応答のデータ転送においても、常に符号化を伴う第２のパケットを転送してもよい。
【００５６】
また、上述の説明では、符号化を伴わない第１のパケットと、それに対応する符号化を伴う第２のパケットとを生成し、その後転送するパケットを選択するとしたが、これに限られない。例えば、転送先アドレスが、符号化を伴わないデータ転送を行うべきアドレスの範囲に含まれていた場合は、第２のパケットの生成を省略してもよい。
【００５７】
また、アドレスを含むヘッダに対する符号とデータに対する符号とを分離し、ヘッダ部分に対する符号は必ずパケットに付加し、データに対する符号をパケットに付加するかのみを転送先アドレスに応じて切り替えてもよい。この場合、符号を付加しない第１のパケットであっても、ヘッダ部分については符号が付加されていてもよい。
【００５８】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013250956.tif 000003
【図２】
2013250956.tif 000004
【図３】
2013250956.tif 000005
【図４】
2013250956.tif 000006
【図５】
2013250956.tif 000007
【図６】
2013250956.tif 000008
【図７】
2013250956.tif 000009
【図８】
2013250956.tif 000010
【図９】
2013250956.tif 000011
【図１０】
2013250956.tif 000012
【図１１】
2013250956.tif 000013
【図１２】
2013250956.tif 000014