説明

データ転送装置及びデータ転送方法

【課題】 集積回路内や集積回路間において、データ有効情報を伴うパケット転送を高い転送効率で行うこと。
【解決手段】 データイネーブル情報を示すキャラクタを用意し、かつ、データイネーブルキャラクタを示す識別子をパケット上に付与し、データイネーブル情報が連続して有効な場合は、前記データイネーブルキャラクタを送信するパケットから省略する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットを使用してデータ転送を行うデータ転送装置及びデータ転送方法に関する。
【背景技術】
【0002】
パケットを使用してデータ転送を行う技術が様々な分野に適用されている。TCP/IP(Transmission Control Protocol/Internet Protocol)はインターネット上のデータ転送をパケットベースで行う技術である。また、PCI−Express(Peripheral Component Interconnect−Express)は集積回路間のデータ転送をパケットベースで行う技術である。また、NoC(Network On Chip)は集積回路内のデータ転送をパケットベースで行う技術である。
パケットベースでデータ転送を行うメリットは、アドレスやデータ等の転送に必要な様々な情報を少ない信号線で転送できることにある。例えば、PCI−Expressでは、2対の差動線路のみで、データ転送を行うことができる。また、転送レートを上げやすいというメリットがある。しかし、パケットベースの転送方式にあっては、様々な情報を時間軸上に展開して送信するため、非パケットベースの転送方式に比べて転送に要するサイクル数が多いという問題点がある。そのため、パケット構造を工夫し、転送する情報量を削減することで、転送に要するサイクル数を減らし、転送効率を上げる技術が提案されている。
転送する情報を減らす工夫として、非特許文献1に開示されているPCI−Expressでは、メモリリクエスト時のデータペイロード中の最終の4バイトデータ、及び、先頭の4バイトデータ以外は全て有効データとして取り扱うプロトコルにし、パケット構成の中でデータペイロード中の最終の4バイトデータ、及び、先頭の4バイトデータに対応したバイトイネーブル識別情報(Last DW BE、1st DW BE)以外を割愛することで、パケット上の情報を減らす工夫をしている。
また、特許文献1では、シリアルバス上に転送すべきデータについてバイト単位で付加されているバイトイネーブルに基づいて有効なデータのみを転送することで、無効データの転送を抑制し、転送効率の向上を図っている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−102341号公報
【非特許文献】
【0004】
【非特許文献1】“PCI Express Base Specification Revision 1.1”PCI−SIG,March,2005.
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方で、集積回路内のデータ転送には、非パケットベースのパラレルバスが主流である。集積回路内のパラレルバスのプロトコルは、一転送単位中(例えば、64バイト=64ビットバス幅 × 8バースト転送)のどのデータが有効であるか否かを示すバイトイネーブル(例えば8ビット)を、データ単位(バス幅である64ビット)毎に有していることが多い。同様に記憶装置として主流であるDRAMを対象としたデータ転送に関するプロトコルにおいてもバイトイネーブルを有している。集積回路内/間を含むシステム全体におけるマスタからスレーブ(例えば、DRAM)へのデータ転送は、パケットベースの転送や、非パケットベースでバイトイネーブルを用いた転送を相互に利用することで実現される。
ここで、集積回路内のパラレルバスから集積回路間のPCI−Expressへの転送経路において、パラレスバスからの一転送単位のデータにおいて、先頭と末尾の4バイト以外に無効データがある場合について詳細を述べる。PCI−Expressのプロトコルは、データペイロード(一転送単位)中の最終と先頭以外のデータは有効な転送対象のデータとして扱うため、PCI−Expressへデータを転送する際には、少なくとも向こうデータがある箇所で転送を分割し、分割した分だけヘッダーを追加する必要がある。例えば、64ビットのデータバス幅のパラレスバスからの一転送のデータが64バイト(64ビットバス幅 × 8バースト転送)で、かつ、8バイトおきに無効なデータが1バイト含まれるようなデータをPCI−Expressへ転送する場合は、例えば、8バイト毎に分割し其々にヘッダーを追加する必要がある。従って、転送帯域を占有するので転送効率が損なわれてしまう。
一方で、特許文献1のように、バイトイネーブルをシリアルバス上に転送するデータについてバイト単位で付与するため、転送対象のデータについて有効なデータを含む割合が多い場合は、バイトイネーブル自体のデータ量で逆に転送効率が損なわれてしまう。
【課題を解決するための手段】
【0006】
以上の課題を解決するために本発明に係るデータ転送装置は、データと、当該データについてバイト単位で有効であるか否かを示す有効情報と、を含むパケットを受信する受信手段と、前記有効情報のうちの第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子と、前記第1のビット数分のデータと、をセットとして含むパケットを送信する送信手段と、を備えるデータ転送装置であって、前記送信手段は前記データのうち、前記第1のビット数分のデータが全て有効である際には、当該第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子の送信を省略することを特徴とする。
【発明の効果】
【0007】
有効データ情報を含むデータ転送にあたって、転送効率を上げることができる。
【図面の簡単な説明】
【0008】
【図1】システムの構成図である。
【図2】本発明の実施形態の構成を示す図である。
【図3】本発明の実施形態のパケットのフォーマットを示す図である。
【図4】キャラクタ生成部1034の処理フローを説明する図である。
【図5】本発明の実施形態における転送データを示す図である。
【図6】本発明の実施形態におけるシリアルバス300上のデータフォーマット例を示す図である。
【図7】キャラクタ判別部2033の処理フローを説明する図である。
【発明を実施するための形態】
【0009】
(実施形態1)
図1は、本発明の実施形態に関わるシステムの構成例である。ASIC_A100とASIC_B200がシリアルバス300で接続されているシステムの構成を示す。(ASICはApplication Specific Integrated Circuitの略称である。)
【0010】
シリアルバス300上では、パケットによるデータ転送が行われる。ASIC_A100は第一バスマスタA101、第一バスマスタB102、第一バスとシリアルバス間のブリッジである第一ブリッジ103、DRAMコントローラA104を有しており、各モジュールは、第一バス105によって接続されている。第一バス105は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。第一バスマスタA101及び第一バスマスタB102は第一バス105を介して、第一ブリッジ103とDRAMコントローラA104との間でデータ転送を行う。DRAMコントローラA104はDRAM I/F A107を介してDRAM_A106との間でデータ転送を行う。第一ブリッジ103は第一バス105からの転送をシリアルバス300の転送に変換して、接続先のASIC_B200内の第二ブリッジ203へ転送を行う。
【0011】
一方、ASIC_B200は第二バスマスタA201、第二バスマスタB202、第二ブリッジ203、DRAMコントローラB204を有しており、各モジュールは、第二バス205によって接続されている。第二バス205は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。第二ブリッジ203はシリアルバス300からの転送を第二バス205の転送に変換して、第二バス205を介してDRAMコントローラB204に転送する。第二バスマスタA201及び第二バスマスタB202は第二バス205を介して、DRAMコントローラB204との間でデータ転送を行う。DRAMコントローラB204はDRAM I/F B207を介してDRAM_B206との間でデータ転送を行う。なお、本例では、第一バス、第二バスとも、データのバス幅は64ビットとする。
【0012】
図2は本実施形態の転送方式を実現するための第一ブリッジ103及び第二ブリッジ203の構成図である。以下にそれぞれの処理について説明する。
【0013】
〔リクエスト送信処理〕
まず、リクエストの送信処理について説明する。第一バスリクエスト受信部1030は第一バス105を介して、第一バスマスタA101や第一バスマスタB102からのリクエストを受信する。各バスマスタは、転送先のアドレス(Address)、Write転送かRead転送かを示すフラグ、転送データのサイズ、書き込みデータ(Wdata)、ライトストローブ(Wstrb)、及び、転送にまつわる属性情報(ReqAtrb)を含むリクエストを出力する。
第一バスリクエスト受信部1030は、リクエストのタイミングを制御する信号に従い、上述したリクエストからアドレス、Write転送かRead転送かを示すフラグ、Write転送の場合は書き込みデータ、ライトストローブを抽出し、リクエストパケット変換部1031に渡す。
リクエストパケット変換部1031は、受信したリクエストをパケットに変換する。リクエストパケット変換部1031には、データイネーブルパターン認識部1033、及び、キャラクタ生成部1034から構成される。
データイネーブルパターン認識部1033は、第一バスリクエスト受信部1030からのリクエストのうち、1byte毎に有効なデータの有無を示しているライトストローブ(Wstrb:有効情報)を受信する。そして、連続する所定数の単位毎(第1のビット数毎)にライトストローブ(Wstrb)が全て真であるかどうかを判定するブロックである。本実施形態では、64bitのデータ単位(8byte単位)でライトストローブ(Wstrb)が連続して真か否かを判定するものとする。キャラクタ生成部1034は、第一バスリクエスト受信部1030からのリクエスト、及び、データイネーブルパターン認識部1033の判定結果を受けて、後述する各キャラクタを生成する。
【0014】
図3に、キャラクタ生成部1034が生成する複数のキャラクタを有するパケットの例を示す。パケットはヘッダーおよびデータ部を有する。本実施形態のパケットではヘッダーおよびデータ部共に一キャラクタあたり33bitとしているとしているが、その他のビット数でもよい。ただし、データ転送の利便性を高めるためにキャラクタは所定長であることが好ましい。ヘッダー及びデータ共に32bit単位(第2のビット数毎)の要素に分割され、各要素について1bitのデータイネーブルキャラクタであるかどうかを示す識別子としてのフラグを付与されて複数の33bitのキャラクタを有するパケットとなっている。なお、データイネーブルキャラクタは64bitのデータ(第1のビット数分のデータ)についてのバイトイネーブル(ここでは、部分有効情報とする)を有しているので、データイネーブルキャラクタであることを示すフラグは部分有効情報の有無を示していることに相当する。バイトイネーブルはバイト単位でデータが有効であるか否かを示している。
【0015】
図3(a)は、ライトリクエストのパケットの例である。ヘッダーは、パケットの種類を示す識別子(Type)や転送属性情報(ReqAtrb:Request Attribution)を含むキャラクタと転送先のアドレス(Address)を含むキャラクタとを有する。また、データ部は書き込みデータ(Wdata)やWrite転送時にのみ生成されるデータイネーブルキャラクタ(ライトストローブ用のキャラクタ)を有する。また、各キャラクタの先頭bitは其々のキャラクタがデータイネーブルキャラクタであるかデータキャラクタであるかを示す識別子としてのデータイネーブルキャラクタフラグである。図3(a)に示す例では先頭から3番目及び6番目のキャラクタのフラグが“1”なのでデータイネーブルキャラクタであり、その他は“0”なのでデータキャラクタである。なお、転送データの全てのバイトが有効でない限り、データ部はデータイネーブルキャラクタとデータキャラクタのセットを少なくとも1つ以上有する。
【0016】
以下、リクエストパケット変換部1031内のキャラクタ生成部1034によるキャラクタ生成処理について、図4で示すフローチャートを用いて詳細に説明する。
リクエストパケット変換部1031内のキャラクタ生成部1034は、第一バスリクエスト受信部1030から転送されるリクエストを受けて、処理を開始する(ステップS400)。次に、このタイミングで受信したリクエストの成分がヘッダーを構成する成分であるか判断する(ステップS401)。受信したリクエストの成分がヘッダーを構成する成分である場合は、図3(a)に示すヘッダー部を生成する(ステップS402)。ステップS401において、受信したリクエストの成分がヘッダーを構成する成分でない場合、受信したリクエストの成分はデータを生成する成分であるとして、ステップS403に移行する。データイネーブルパターン認識部1033の結果を受けて、ライトストローブのキャラクタを生成するかどうかを判断する(ステップS403)。
【0017】
図5は、本実施形態においてバスマスタからのリクエストについてデータイネーブルパターン認識部1033が生成した32bit単位のライトデータ(Wdata)とバイト毎のライトストローブ(Wstrb)の一例である。
【0018】
まず、本実施形態のデータイネーブルキャラクタは後続する2キャラクタ分のデータキャラクタのライトストローブ信号を有している。
Wdata0に対応するライトストローブ(Wstrb)は“0111“、Wdata1に対応するライトストローブ(Wstrb)は“1111”であるので、Wdata0〜1の範囲で64bitのデータ単位(8byte単位)でライトストローブ(Wstrb)が連続して“真”ではない。このライトストローブ情報をデータイネーブルパターン認識部1033から受け取り、ライトストローブ情報(Wstrb0)と予約領域(Reserved)とを含むデータイネーブルキャラクタを生成する(ステップS404)。ここでは、Wdata0〜1に対応して図3(a)に示す3番目のキャラクタを生成する(ステップS405)。次に、Wdata0〜1データキャラクタを生成し(ステップS405)、図3(a)に示す4番目、5番目のキャラクタを生成する。なお、予約領域は次のキャラクタのアライメントをするための情報であり、予約領域のbit数は、(1キャラクタのbit数)−(キャラクタフラグのbit数)−(ライトストローブのbit数)で決定される。本実施形態であると、33−8−1=24となり予約領域は24bitである。次の、Wdata2、Wdata3に関しても8byte単位でライトストローブが連続して“真”ではないので、Wdata0、Wdata1と同様の処理を繰り返す。
【0019】
一方で、Wdata4、5に対応するライトストローブ(Wstrb)はともに“1111”であるので、Wdata2〜3の範囲で64bitのデータ単位(8byte単位)でライトストローブ(Wstrb)が連続して“真”になる。この情報をデータイネーブルパターン認識部1033から受け取り、データイネーブルキャラクタの生成を省き、ステップS405に移行し、図3(a)に示す9番目、10番目のキャラクタを生成する。以上の処理を一連のリクエストが終わるまで繰り返し(ステップS406)、処理を終了する。
【0020】
なお、リードリクエストの場合、書き込みデータ(Wdata)、ライトストローブ(Wstrb)がなく、転送先のアドレス(Address)、Write転送かRead転送かを示すフラグ、及び、転送にまつわる属性情報(ReqAtrb)のみを処理することになる。ライトリクエストの処理と比較して、書き込みデータ(Wdata)、ライトストローブ(Wstrb)の処理(図4のステップS403、404、405)がなくなるだけであるので、ここでは説明を省略する。
リクエストパケット変換部1031でパケット化された各キャラクタは、リクエストパケット送信部1032からクロックとともにシリアルバス300を介して、受信側のASIC_B200に送信される。図6に、本実施形態においてシリアルバス300上でクロックに同期して転送されるデータのフォーマットを示す。キャラクタ毎にキャラクタの先頭を示すスタートビットが付与されている構成で、データ転送がない場合は、NOP(ノーオペレーション)を示すデータが転送される。
【0021】
〔リクエスト受信処理〕
続いて、ASIC_B200によるリクエストの受信処理について説明する。
リクエストパケット受信部2030はシリアルバス300を介してASIC_A100から送信されたシリアルデータ内のスタートビットを検出し、スタートビットに続く33bitのシリアルデータから33bitのキャラクタを生成し、リクエストパケット逆変換部2031に転送する。
【0022】
次に、リクエストパケット逆変換部2031内のキャラクタ判別部2033の動作を図7のフローチャートを用いて説明する。まず、最初に転送されるヘッダー部の2個のキャラクタから転送の種類を示す識別子(Type)、転送属性情報(ReqAtrb)、アドレスを抽出し、其々を第二バスリクエスト送信部2032に送信する(ステップS700)。さらに、後続するデータ部のキャラクタがあるか否か判定し(ステップS701)、データ部のキャラクタがある場合は、転送属性情報(ReqAtrb)内に含まれる転送サイズ情報から、データの数(データキャラクタの数に相当する)を記憶する(ステップS702)。データ部のキャラクタがない場合は、処理を完了し、次のキャラクタが転送された際は、再びステップS700においてヘッダー処理を行う。
データ部のキャラクタがあると判定された場合、後続するキャラクタのデータイネーブルキャラクタフラグから、各キャラクタがデータイネーブルキャラクタとデータキャラクタのどちらであるかを判定する(ステップS703)。
データキャラクタである場合は、データ成分を第二バスリクエスト送信部2032へ転送するとともに、データイネーブル生成部2034に今回のキャラクタがデータキャラクタであったことを通知する(ステップS704)。次にステップS705において、処理したデータの数がステップS702において記憶したデータの数に満たない場合は、ステップS703に戻り、データの数と一致した場合は、処理を完了し、次のキャラクタが転送された際は、ステップS700においてヘッダー処理を行う。
ステップS703において、データキャラクタでなくデータイネーブルキャラクタの場合、前記キャラクタ内のWstrb成分(第1の有効情報)をデータイネーブル生成部2034にそのまま転送し(ステップS706)、ステップS703へ戻る。
データイネーブル生成部2034は、キャラクタ判定部2033から受信する情報から、ライトストローブ(第2の有効情報)を生成する。本実施形態では、2キャラクタ分のデータ、つまり、64ビットのデータ毎にWstrb成分を生成する。
【0023】
以下に、Wstrb成分の生成方法を示す。
【0024】
データイネーブル生成部2034は、キャラクタ判定部2033からWstrb成分を受信した場合は、そのまま、第二バスリクエスト送信部2032に送信する。また、データイネーブル生成部2034はキャラクタ判定部2033からWstrb成分の受信を受けずにキャラクタがデータであったことの通知を2回連続(所定数連続)で受けた場合に、2キャラクタ分のデータについて全て真のWstrb成分を生成し、第二バスリクエスト送信部2032に送信する。
第二バスリクエスト送信部2032は、リクエストパケット逆変換部2031からの転送情報をもとに、第二バスへのリクエスト形式に変換し、前記リクエストパケット逆変換部2031により取得したライトストローブを含むリクエストをDRAMコントローラB204へ第二バス205を介して送信する。
【0025】
〔レスポンス送信処理〕
続いて、バスマスタからのリクエストに対するDRAMからのレスポンスの送信処理について説明する。第二バスレスポンス受信部2035は第二バス205を介して、DRAMコントローラB204からのレスポンスを受信する。レスポンスは、エラーか否かを示すステータス情報(RespSt)、読み出しデータ(Rdata)、及び転送長や転送のプライオリティーを示す転送属性情報(RespAtrb)を有する。
レスポンスパケット変換部2036は、第二バスレスポンス受信部2035が受信したレスポンスをパケットに変換する。本実施形態においてリクエストを変換したパケットを図3(b)に示す。パケットはヘッダー及びデータ部を有する。ヘッダー及びデータ共に32bit単位の要素に分割され、各要素について1bitのデータイネーブルキャラクタのフラグを付与されて複数の33bitのキャラクタを有するパケットとなっている。
ヘッダーは、転送の種類を示す識別子(Type)やステータス(RespSt)を含むキャラクタを有する。また、データ部は読み出しデータ(Rdata)を含むキャラクタを有する。レスポンスパケット変換部2036の動作は、リクエストパケット変換部1031と同様であり、異なる点は、図4のステップS401において第2バスレスポンス受信部2035からのレスポンスに応じて処理を開始する点、図4のステップS403、404がない点であるので、ここでは説明を省略する。
レスポンスパケット送信部2037は、パケットに変換されたレスポンスをパラレル−シリアル変換し、シリアルバス300へ送信する。パラレル−シリアル変換の動作は、リクエストパケット送信部1032の動作と同様である。パラレル−シリアル変換されたキャラクタはクロックとともにシリアルバス300を介して、受信側のASIC_A100に送信される。
【0026】
〔レスポンス受信処理〕
続いて、ASIC_A100によるレスポンスの受信処理について説明する。レスポンスパケット受信部1035はシリアルバス300を介してASIC_B200から送信されたシリアルデータ内のスタートビットを検出し、スタートビットに続く33bitのシリアルデータをキャラクタに変換し、レスポンスパケット逆変換部1036に転送する。
レスポンスパケット逆変換部1036は、キャラクタに応じてヘッダー処理、データ部の処理を行う。レスポンスパケット逆変換部1036の動作はリクエストパケット逆変換部2031の動作と同様であり、違いはWstrbの処理(図7のステップS703、706)がないだけであるので説明を省略する。
第一バスレスポンス送信部1037は、レスポンストパケット逆変換部1036からの転送情報をもとに、第一バスへのレスポンス形式に変換し、レスポンスに対応するリクエストを発行した第一バスマスタへ第一バス105を介して送信する。
【0027】
以上説明したように本実施形態によると、有効データ情報(ライトストローブ)を含むデータを効率的に転送することができる。
【0028】
また、上述の実施形態の説明のように集積回路(チップ)間の転送が好ましいが、同一集積回路内でのデータ転送にあっても本発明を適用できる。また、上述の実施形態においては、64bitのデータ単位でデータイネーブルキャラクタを生成するという規則したが、任意のビット数単位でデータイネーブルキャラクタを生成してもよ。ただし、第2のビット数としてのキャラクタのビット数は、部分有効情報に対応するデータの第1のビット数以下である必要がある。
また、上述の実施形態においては、レスポンス側には有効データ情報を含まない構成としたが、リクエスト側と同じように有効データ情報を含む構成でもよい。
また、上述の実施形態においては、転送情報としてアドレス等を含んでいるが、データと有効データ情報のみを含む構成でもよい。また、本発明は出力データをパケット化して出力する技術であれば広く適用できる。
また、上述の実施形態では詳細を省略しているが、データ転送装置が転送するデータはCPU(Central Processing Unit)やDMAC(Direct Memory Access Controller)その他の周辺機器、外部デバイスなどから供給される。データ転送機能の起動はCPUが所定のプログラムに従って行えばよい。CPUは図1のASIC_A/Bの中に組み込まれていてもよいし、ASIC外にあってもよい。

【特許請求の範囲】
【請求項1】
データと、当該データについてバイト単位で有効であるか否かを示す有効情報と、を含むパケットを受信する受信手段と、
前記有効情報のうちの第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子と、前記第1のビット数分のデータと、をセットとして含むパケットを送信する送信手段と、を備えるデータ転送装置であって、
前記送信手段は前記データのうち、前記第1のビット数分のデータが全て有効である際には、当該第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子の送信を省略することを特徴とするデータ転送装置。
【請求項2】
パケットを受信するパケット受信手段と、
前記パケットに含まれている第1の有効情報に基づいて第2の有効情報を生成する生成手段と、
前記生成手段で生成した第2の有効情報と前記パケットに含まれるデータとを送信する送信手段と、を備えるデータ転送装置であって、
前記生成手段は、前記受信手段の受信したパケットの含む識別子が前記パケットに含まれる第1のビット数分のデータに対応する部分有効情報が無い事を示していると、当該識別子に対応する第1のビット数分のデータが全て有効であることを示す第2の有効情報を生成することを特徴とするデータ転送装置。
【請求項3】
前記生成手段は、前記受信手段の受信したパケットの含む識別子が前記パケットに含まれる第1のビット数分のデータに対応する部分有効情報が有る事を示していると、当該部分有効情報に基づいて第2の有効情報を生成することを特徴とする請求項2に記載のデータ転送装置。
【請求項4】
所定長の複数のキャラクタを有するパケットを用いてデータ転送を行うデータ転送装置であって、
データと、当該データについてバイト単位で有効であるか否かを示す有効情報と、を含む信号をバスから受信する受信手段と、
前記バスから取得した有効情報のうちの第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子とを含むイネーブルキャラクタと、前記受信手段の受信したデータのうちの第1のビット数分のデータを含むデータキャラクタ、とを生成する生成手段と、
前記生成手段の生成したイネーブルキャラクタとデータキャラクタとをセットとして含むパケットを送信する送信手段と、を備え、
前記生成手段は前記バスから受信した有効情報が所定のパターンであると前記イネーブルキャラクタの生成を省略することを特徴とするデータ転送装置。
【請求項5】
データを受信する受信手段と、
前記データについて第1のビット数毎に有効情報を生成する生成手段と、
前記生成手段で生成した有効情報と前記有効情報の有無を示す識別子と前記データとを送信する送信手段と、を備えるデータ転送装置であって、
前記生成手段は、前記データのうち第1のビット数分のデータが全て有効である際に、当該第1のビット数分のデータに対応する前記有効情報の生成を省略することを特徴とするデータ転送装置。
【請求項6】
前記生成手段は前記有効情報の有無を示す識別子を第2のビット数毎に生成することを特徴とする請求項3乃至5のいずれか1項に記載のデータ転送装置。
【請求項7】
所定長の複数のキャラクタを有するパケットを受信する受信手段と、
受信したパケットに含まれるそれぞれのキャラクタがデータキャラクタであるか、イネーブルキャラクタであるかを判別する判別手段と、
前記判別手段の判別したキャラクタがイネーブルキャラクタであると当該イネーブルキャラクタから所定数のデータキャラクタに対応する有効情報を抽出し、前記判別手段の判別したキャラクタがデータキャラクタであり且つ所定数連続していると当該所定数連続しているデータキャラクタに含まれるデータは全て有効であることを示す有効情報を生成する変換手段と、
前記変換手段による有効情報と前記パケットに含まれるデータとをバスに送信する送信手段とを有することを特徴とするデータ転送装置。
【請求項8】
前記送信手段は、前記判別手段がイネーブルキャラクタであると判別すると、当該イネーブルキャラクタに含まれる部分有効情報に基づいて、当該イネーブルキャラクタに後続して前記受信手段の受信する第1のビット数分のデータキャラクタに対応する有効情報を生成する請求項7に記載のデータ転送装置。
【請求項9】
データと、当該データについてバイト単位で有効であるか否かを示す有効情報と、を含む信号を受信する受信工程と、
前記有効情報のうちの第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子と、前記第1のビット数分のデータと、をセットとして含むパケットを送信する送信工程と、を有するデータ転送方法であって、
前記送信工程において前記データのうち、前記第1のビット数分のデータが全て有効である際には、当該第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子の送信を省略することを特徴とするデータ転送方法。
【請求項10】
パケットを受信するパケット受信工程と、
前記パケットに含まれている第1の有効情報に基づいて第2の有効情報を生成する生成工程と、
前記生成工程で生成した第2の有効情報と前記パケットに含まれるデータとを送信する送信工程と、を有するデータ転送方法であって、
前記生成工程において、前記受信工程で受信したパケットの含む識別子が前記パケットに含まれる第1のビット数分のデータに対応する部分有効情報が無い事を示していると、当該識別子に対応する第1のビット数分のデータが全て有効であることを示す第2の有効情報を生成することを特徴とするデータ転送方法。
【請求項11】
所定長の複数のキャラクタを有するパケットを用いてデータ転送を行うデータ転送方法であって、
データと、当該データについてバイト単位で有効であるか否かを示す有効情報と、を含む信号をバスから受信する受信工程と、
前記バスから取得した有効情報のうちの第1のビット数分のデータに対応する部分有効情報と、当該部分有効情報が有ることを示す識別子とを含むイネーブルキャラクタと、前記受信工程で受信したデータのうちの第1のビット数分のデータを含むデータキャラクタ、とを生成する生成工程と、
前記生成工程で生成したイネーブルキャラクタとデータキャラクタとをセットとして含むパケットを送信する送信工程と、を有し、
前記生成工程において前記バスから受信した有効情報が所定のパターンであると前記イネーブルキャラクタの生成を省略することを特徴とするデータ転送方法。
【請求項12】
データを受信する受信工程と、
前記データについて第1のビット数毎に有効情報を生成する生成工程と、
前記生成工程で生成した有効情報と前記有効情報の有無を示す識別子と前記データとを送信する送信工程と、を有するデータ転送方法であって、
前記生成工程は、前記データのうち第1のビット数分のデータが全て有効である際に、当該第1のビット数分のデータに対応する前記有効情報の生成を省略することを特徴とするデータ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−238158(P2012−238158A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−106403(P2011−106403)
【出願日】平成23年5月11日(2011.5.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】