JP2013250956A - データ転送装置、データ転送方法、及びプログラム - Google Patents

データ転送装置、データ転送方法、及びプログラム Download PDF

Info

Publication number
JP2013250956A
JP2013250956A JP2012127533A JP2012127533A JP2013250956A JP 2013250956 A JP2013250956 A JP 2013250956A JP 2012127533 A JP2012127533 A JP 2012127533A JP 2012127533 A JP2012127533 A JP 2012127533A JP 2013250956 A JP2013250956 A JP 2013250956A
Authority
JP
Japan
Prior art keywords
packet
data
transfer
data transfer
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012127533A
Other languages
English (en)
Inventor
Mitsuhiro Inagaki
光洋 稲垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012127533A priority Critical patent/JP2013250956A/ja
Publication of JP2013250956A publication Critical patent/JP2013250956A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】 データの転送先に応じて適応的にデータの符号化の有無を制御することが困難であった。
【解決手段】 データ転送装置は、受信したデータをパケットに変換して転送するデータ転送装置であって、データの転送先アドレスを取得し、転送先アドレスの値に応じて、データと転送先アドレスとの少なくともいずれかを含む第1のパケットと、第1のパケットに誤り検出符号または誤り訂正符号を付加した第2のパケットとの、いずれかを転送する。
【選択図】 図3

Description

本発明は、パケットを使用してデータ転送を行うデータ転送装置、データ転送方法、及びプログラムに関する。
パケットを使用してデータ転送を行う技術が様々な分野に適用されている。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)は、インターネット上のデータ転送をパケットベースで行う技術である。また、PCI−Express(Peripheral Component Interconnect−Express)は、集積回路間のデータ転送をパケットベースで行う技術である。また、NoC(Network On Chip)は集積回路内のデータ転送をパケットベースで行う技術である。
パケットベースでデータ転送を行うメリットは、少ない信号線数で、アドレスやデータ等の転送に必要な様々な情報を転送できることにある。例えば、PCI−Expressでは、2対の差動線路のみを用いてデータ転送を行うことができる。また、パケットベースのデータ転送は、転送レートを上げやすいというメリットもある。しかしながら、パケットベースの転送方式においては、様々な情報を時間軸上に展開して送信するため、最低限必要な情報以外の情報もパケットに付加される。このため、転送効率が低下するという問題点がある。
一方、データ転送の高速化やデータ転送路上のノイズに応じて、多くの場合に、パケットベースの転送方式において誤り検出符号や誤り訂正符号を用いるようになっている。このような符号として、例えば、CRC(Cyclic Redundancy Check)やECC(Error Checking and Correction)が用いられる。パケットベースの全てのデータ転送に対して、このような誤り検出訂正のための符号を付加すると、誤り耐性を向上させることができるが、符号化が不要な転送に対しても符号を付加することにより転送効率が低下するという課題があった(特許文献1)。これに対し、特許文献2において、データ転送効率を向上させるために、画像や音声といった転送データの種類(ヘッダの情報)に応じて、誤り検出符号の付加の有無を制御する技術が提案されている。また、特許文献2においては送信済みパケットの制御フィールドと、新たに送信するパケットの制御フィールドとが一致するときに、制御フィールドを一致フラグに置き換える技術が提案されている。
特開平10−173659号公報 特開2009−182628号公報
特許文献2に記載の手法では、データの種別を識別するヘッダを余計に付加するため、それによる転送効率の低下が生じるという課題があった。また、同一の種類のデータを送信する場合、符号化を行うか否かを、転送先のチップ内の接続先デバイスに応じて適切に制御することが出来ないという課題があった。
本発明は上記課題に鑑みなされたものであり、ヘッダ情報を新たに付加することなく、データの転送先に応じて適応的にデータの符号化の有無を制御可能とする技術を提供することを目的とする。
上記目的を達成するため、本発明によるデータ転送装置は、受信したデータをパケットに変換して転送するデータ転送装置であって、前記データの転送先アドレスを取得する取得手段と、前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第1のパケットと前記第1のパケットに誤り検出符号または誤り訂正符号を付加した第2のパケットとのいずれかを転送する転送手段と、を有する。
本発明によれば、ヘッダに対する付加情報なしに、転送データに対する符号化を、転送先に応じて適応的に制御可能とするデータ転送技術を提供することができる。
システムの構成例を示す図。 バスブリッジの構成例を示す図。 データ変換送信部の構成例を示す図。 データ受信変換部の構成例を示す図。 第1のアドレス情報保持部の初期化動作を示すフローチャート。 第2のアドレス情報保持部の初期化動作を示すフローチャート。 転送先アドレスの範囲の例を示す図。 データの送信動作を示すフローチャート。 データの受信動作を示すフローチャート。 パケットのフォーマット例を示す図。 シリアルバスに送出される信号の例を示す図。 データ転送に要するサイクル数に関する、従来例と実施形態との比較図。
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
<<実施形態1>>
(システム構成)
図1は、2つの特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)第1のASIC100と第2のASIC200が、シリアルバス300で接続されるシステムの構成例を示す図である。シリアルバス300上では、パケットによるデータ転送が行われる。
第1のASIC100は、例えば、第1バス105に対する第1のバスマスタ101及び第2のバスマスタ102、第1バス−シリアルバスブリッジ103、第1のDRAMコントローラ104を有し、各モジュールは第1バス105によって接続される。第1バス105は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。第1のバスマスタ101及び第2のバスマスタ102は、第1バス105を介して、第1バス−シリアルバスブリッジ103と第1のDRAMコントローラ104との間でデータ転送を実行させる。第1のDRAMコントローラ104は第1のDRAMインタフェース107を介して第1のDRAM106との間でデータ転送を行う。
第1バス−シリアルバスブリッジ103は、第1バス105からのデータをシリアルバス300へのデータ形式に変換し、接続先の第2のASIC200内のシリアルバス−第2バスブリッジ203へ転送を行う。また、第1バス−シリアルバスブリッジ103は、シリアルバス300からのデータを第1バス105のデータ形式に変換し、パラレルデータとして第1バス105へ送出する能力をも有する。このように、第1バス−シリアルバスブリッジ103は、受信した経路(バス)に対応する信号を、送出先の経路に対応する信号へと変換して出力する機能部である。
一方、第2のASIC200は、例えば、第2バス205に対する第3のバスマスタ201及び第4のバスマスタ202、シリアルバス−第2バスブリッジ203、第2のDRAMコントローラ204、LCDコントローラ208を有する。そして、各モジュールは、第2バス205によって接続される。なお、LCDは液晶ディスプレイ(Liquid Crystal Display)である。第2バス205は、アドレスやデータ等がそれぞれ専用線で接続されるパラレルバスである。
シリアルバス−第2バスブリッジ203は、シリアルバス300からのデータを第2バスのデータ形式に変換し、第2バスを介して第2のDRAMコントローラ204及びLCDコントローラ208に転送する。また、シリアルバス−第2バスブリッジ203は、第2バス205からのデータをシリアルバス300のデータ形式に変換し、パケットとしてシリアルバス300へ送出する能力をも有する。このように、シリアルバス−第2バスブリッジ203は、第1バス−シリアルバスブリッジ103と同様に、受信した経路に対応する信号を、送出先の経路に対応する信号へと変換して出力する機能部である。
第3のバスマスタ201及び第4のバスマスタ202は、第2バス205を介して、シリアルバス−第2バスブリッジ203と、第2のDRAMコントローラ204と、LCDコントローラ208との間で、データ転送を実行させる。第2のDRAMコントローラ204は第2のDRAMインタフェース207を介して第2のDRAM206との間でデータ転送を行う。LCDコントローラ208はLCDインタフェース210を介してLCD_209との間でデータ転送を行う。
(バスブリッジの構成)
図2は、本実施形態の転送方式を実行するための、第1バス−シリアルバスブリッジ103とシリアルバス−第2バスブリッジ203との構成例を示す図である。第1バス−シリアルバスブリッジ103とシリアルバス−第2バスブリッジ203とは、それぞれデータ変換送信部400及びデータ受信変換部500を1つずつ有する。そして、第1バス−シリアルバスブリッジ103とシリアルバス−第2バスブリッジ203とがそれぞれ有するデータ変換送信部400及びデータ受信変換部500は、それぞれ同様の構成を有する。以下では、データ変換送信部400及びデータ受信変換部500の回路構成の詳細と処理シーケンスとについて説明する。
(データ変換送信部の回路構成)
図3は、データ変換送信部400の構成例を示す図である。データ変換送信部400は、例えば、パラレルデータ受信部401、パケット変換部402、パケット送信部403、符号付加部404、第1のアドレスデコード/比較部405、第1のアドレス情報保持部406、及び信号選択部407を有する。本実施形態のデータ変換送信部400は、上述の各手段を用いて、誤り検出符号を付加すべきパケットと、付加すべきでないパケットとを、パケットの宛先のアドレスに応じて分類する。なお、本実施形態では、符号付加部404は誤り検出符号を付加する機能部として説明するが、それに限られず、誤り訂正符号を付加する機能部であってもよい。また、符号付加部404は、パケットに誤り検出や誤り訂正用の系列を付加するのみならず、転送データやヘッダを用いて任意の符号化を施したパケットを生成してもよい。
パラレルデータ受信部401は、パラレルバスからのデータ(アドレス、転送データなど)を受信し、一時的に格納しておく記憶回路である。パケット変換部402は、パラレルデータ受信部401に格納されたパラレルバスからのデータをパケットに変換する。符号付加部404は、例えば、転送データとヘッダとの少なくともいずれかに対する誤り検出符号を、パケット変換部402から出力されたパケットに付加し、信号選択部407へ出力する。信号選択部407へは、パケット変換部402からの符号が付加されていない第1のパケットと、符号付加部404からの符号が付加された第2のパケットとが入力される。そして、信号選択部407は、第1のアドレスデコード/比較部405からの符号の付加の有無を示す切替信号に応じて、これらのパケットのいずれを出力するかを選択する。
なお、符号付加部404がパケットに誤り検出符号を付加すると、例えばペイロード長が変化する場合があるため、これに応じてパケットのヘッダにおける転送データ長などの情報を更新してもよい。また、本実施形態では、一度、アドレスなどの情報を含めたパケットを生成してから符号を付加しているが、転送データを符号化した後に、アドレスなどの情報を取得してヘッダ部分を付加し、パケットを生成してもよい。また、このときに、ヘッダ部分に対する符号を別途用意してもよく、ヘッダ部分の付加の際に、それに対応する符号をも付加してパケットを生成してもよい。
送信側の第1のアドレス情報保持部406は、符号を付加すべき宛先アドレスの範囲と付加する必要のない宛先アドレスの範囲とを含む、予め設定される情報を保持するための回路である。なお、後述するが、このアドレスの範囲の情報は転送先チップとの間で共有される。第1のアドレスデコード/比較部405は、パラレルデータ受信部401で受信したデータに含まれる転送先アドレスをデコードして取得する。そして、第1のアドレスデコード/比較部405は、取得した転送先アドレスと第1のアドレス情報保持部406に格納されたアドレスの範囲とを比較し、比較結果に基づいて、信号選択部407に対して符号の付加の有無を示す切替信号を出力する。パケット送信部403は、パケット化されたデータをシリアルバス300へ1ビット単位で出力する。
(データ受信変換部の回路構成)
図4は、データ受信変換部500の構成例を示す図である。データ受信変換部500は、パケット受信部501、パケット逆変換部502、パラレルデータ送信部503、誤り検出部504、第2のアドレスデコード/比較部505、第2のアドレス情報保持部506、マスク部507、及び割り込み生成部508を有する。なお、データ変換送信部400において誤り検出符号を用いる場合は、誤り検出部504が用いられるが、誤り訂正符号を用いる場合は、誤り検出部504を、誤り訂正復号を実行する機能部に置き換えてもよい。
パケット受信部501は、送信元デバイスと接続されたシリアルバス300からパケットを受信し、そのパケットをパケット逆変換部502へ出力する。パケット逆変換部502は、受信したパケットデータを、ASIC内部のバスであるパラレルバス(第1バス105又は第2バス205)のデータ形式に変換する。パラレルデータ送信部503は、パケット逆変換部502の出力結果であるパラレルバスへ出力すべきデータを、一時格納した後にパラレルバスへ出力する。
誤り検出部504は、受信したパケットに含まれる誤り検出符号に基づきエラー検出結果を出力する。第2のアドレスデコード/比較部505はパケットに含まれるアドレスをデコードして取得し、取得したアドレスと、第2のアドレス情報保持部506で保持される予め設定された転送先アドレスの範囲の情報とを比較する。そして、処理しているパケットに誤り検出符号が付加されているかどうかを判定し、判定結果をマスク部507へ出力する。マスク部507は、誤り検出部504が出力したエラー検出結果をマスクするか否かを選択する。マスクされたエラー検出結果はその後使用されない。割り込み生成部508は、マスク部507の出力結果に応じて割り込み信号を生成し、割り込みコントローラ(不図示)へ通知する。
(第1のアドレス情報保持部の初期化処理)
続いて、第1のアドレス情報保持部406の初期化処理について、図5を参照して説明する。パラレルデータ受信部401は、第1バス105を介して、第1のバスマスタ101や第2のバスマスタ102からの転送先アドレスの範囲の設定命令を受信する(S600)。この設定命令には転送先アドレスの範囲が含まれ、転送先アドレスの範囲は、例えば図7に示すような形式を有する。この転送先アドレスの範囲には、転送先アドレスの範囲毎に符号を付加するか否かを指定する情報が格納される。
なお、図7の例では、符号の付加の有無によらず、転送先アドレスの候補が転送先のアドレスの範囲として格納されるが、符号化すべきアドレスの範囲のみ、または符号化しないアドレスの範囲のみを格納してもよい。そして、符号化すべきアドレスの範囲のみが含まれる場合、信号選択部407は、転送先アドレスがその範囲に含まれる場合は符号化した第2のパケットを、転送先アドレスがその範囲に含まれない場合は符号化しない第1のパケットを、それぞれ選択してもよい。また、符号化しないアドレスの範囲のみが含まれる場合、信号選択部407は、転送先アドレスがその範囲に含まれる場合は符号化しない第1のパケットを、転送先アドレスがその範囲に含まれない場合は符号化した第2のパケットを、それぞれ選択してもよい。
なお、符号を付加するかの判断(分類)については、例えば、以下のようにする。すなわち、LCDコントローラ208へ転送する画像データについては、符号を付加せず、DRAMコントローラ204へ画像データを転送する際には符号を付加する。すなわち、LCD209での表示は、画像データにビットエラーレベルの誤りがあったとしても、人間の視覚特性上感知されにくいため、符号を付加しなくてもよい。また、DRAM206へ格納される画像データは、様々な画像処理を施されたり、他の処理に応用されたりする場合があることから、これらの格納後の処理への影響を十分に抑えるため、符号を付加してもよい。同様に、音声の記録・再生装置においては、音声データをDRAMに格納する場合は誤り検出符号を付加し、音声再生系(例えばスピーカ)に転送する場合は誤り検出符号を付加しなくてもよい。すなわち、人間の知覚へ情報を提示する出力系に直接データを転送する場合は符号を付加せず、それ以外の場合には符号を付加してもよい。
また、一連の処理(例えばパイプライン処理)において、後段に続くステージの数が少ないステージへ処理結果を転送する場合は、誤りがあっても波及する処理が多くないため、符号を付加しないようにしてもよい。その場合、符号を付加するかを判定するノードは、自ノードで実行する処理が一連の処理におけるいずれの段の処理であるかを判定してもよい。なお、この判定のために、ノードは、一連の処理におけるいずれの段の処理を実行するかを示す値を格納するレジスタを保持していてもよい。
図7の例においては、LCDコントローラ208を特定するアドレスの範囲0x8000_0000から0x8FFF_FFFFが、誤り検出符号の付加の対象でない転送先アドレスの範囲である。一方、第2のDRAMコントローラ204を特定するアドレスの範囲0x0000_0000から0x7FFF_FFFFが、誤り検出符号の付加の対象となる転送先アドレスの範囲である。パラレルデータ受信部401は、受信した設定命令を第1のアドレス情報保持部406に送信し、第1のアドレス情報保持部406に転送先アドレスの範囲の情報を設定する(S601)。ここで、データ変換送信部400は、第1のアドレス情報保持部406に転送先アドレスの範囲の情報が設定されたことを確認する処理を実行してもよい。
第1のアドレス情報保持部406への転送先アドレスの範囲の設定の後、パケット送信部403は、シリアルバス300を介して、データ受信変換部500へ転送先アドレスの範囲の設定パケットを送信する(S602)。受信側の処理ついては後述する。そして、データ受信変換部500から転送先アドレスの範囲の設定処理の終了を通知されると(S603でYes)、データ変換送信部400は、第1のバスマスタ101や第2のバスマスタ102へ転送先アドレスの範囲の設定完了を通知する(S604)。
(第2のアドレス情報保持部の初期化処理)
続いて、第2のアドレス情報保持部506の初期化処理について、図6を参照しながら説明する。パケット受信部501は、シリアルバス300を介して、データ変換送信部400から転送先アドレスの範囲の設定パケットを受信する(S700)。パケット受信部501は、受信した設定パケットを、第2のアドレス情報保持部506に入力し、第2のアドレス情報保持部506に転送先アドレスの範囲の情報を設定する(S701)。ここで、データ受信変換部500は、第2のアドレス情報保持部506に転送先アドレスの範囲の情報が設定されたことを確認してもよい。その後、データ受信変換部500は、データ変換送信部400へ、転送先アドレスの範囲の設定完了を通知する(S702)。
(データ送信処理)
続いて、データ送信処理について図8を参照して説明する。パラレルデータ受信部401は、第1バス105を介して、第1のバスマスタ101や第2のバスマスタ102からのデータ転送要求(リクエスト)を受信する(S800)。リクエストは、例えば、アドレス、属性情報、及び転送すべきデータを含む。本実施形態では、リクエストは、転送先のアドレス(Address)、Write転送かRead転送かを示すフラグ、書き込みデータ(Wdata)、ストローブ(Wstrb)、及び属性情報(ReqAtrb0/1)を含むものとする。なお、Write転送は、転送先へデータを書き込むためのデータ転送の種別であり、Read転送は、転送先からデータを読み出すためのデータ転送の種別である。また、属性情報(ReqAtrb0/1)は、例えば、パケットサイズや転送の優先度等を示す情報を含む。
パケット変換部402は、受信したリクエスト(パラレルデータ受信部の受信結果)をパケットに変換する(S801)。変換により得られるパケットの例を、図10(a)及び図10(b)に示す。パケットは、ヘッダとデータとを含み、ヘッダ及びデータは、共に複数の32ビット単位のキャラクタによって構成される。ヘッダは、パケットの種類を示す識別子(Type)や属性情報(ReqAtrb0/1)や転送先のアドレス(Address)を含む。また、データは、書き込みデータ(Wdata)やストローブ(Wstrb)によって構成され、Write転送時にのみ生成される。Read転送時は転送先の装置へデータを要求するのであって、その装置へ送信するデータはないため、データ部分は例えば空となる。
続いて、第1のアドレスデコード/比較部405は転送先アドレスをチェックし、第1のアドレス情報保持部406に保持される転送先アドレスの範囲と比較する(S802)。そして、第1のアドレスデコード/比較部405は、切替信号を信号選択部407へ出力し、信号選択部407に、パケット変換部402からの第1のパケットと、符号付加部404からの第2のパケットとのいずれかを選択させる(S802、S803)。
具体的には、第1のアドレスデコード/比較部405は、デコードで取得した転送先アドレスが符号を付加しないアドレスの範囲に含まれる場合、パケット変換部402からの第1のパケットの選択を指示する切替信号を信号選択部407へ出力する。図7の例では、デコードで取得した転送先アドレスが0x0000_0000から0x7FFF_FFFFの範囲に含まれる場合、第1のアドレスデコード/比較部405は、パケット変換部402からの第1のパケットを選択するべき旨の切替信号を出力する。一方、第1のアドレスデコード/比較部405は、デコードで取得した転送先アドレスが符号を付加するアドレスの範囲に含まれる場合、符号付加部404からの第2のパケットの選択を指示する切替信号を信号選択部407へ出力する。このとき、符号を付加した第2のパケットは例えば図10(a)のようになり、符号を付加しない第1のパケットは例えば図10(b)のようになる。
信号選択部407は、上述のように、切替信号に従って出力すべき信号を選択し、選択した信号をパケット送信部403へ出力する。パケット送信部403は、パケット化したリクエストを、例えば図10の各パケットの左上のビットから、1ビット単位でシリアルバス300へ送出する(S804)。
送出される信号の例を図11に示す。図11において、「N」は非転送期間(NOP)を示し、「S」はスタートビットを示す。また、丸で囲まれた数字はパケットに含まれる各キャラクタ内のビット位置を示す。信号は32ビット単位のキャラクタごとに区切って送出される。信号の送出においては、まず、2ビットのスタートビットが送信され、その後に続いて、32ビット単位のキャラクタが最上位ビットから順に1ビットずつ送信される。具体的には、スタートビット2ビットの後、図10の各パケットにおける横方向に連続する32ビットのキャラクタを、左のビットから右のビットへ続けて送信する。その後、次のキャラクタを送信する前に、再度スタートビットを送信し、パケットの次の行の32ビットのキャラクタを同様に送信する。これをパケットの終端まで繰り返す。このようにして、パケットは、クロックに応じて、シリアルバス300を介して、受信側の第2のASIC200に送信される。
(データ受信処理)
続いて、データ受信処理について図9を参照して説明する。パケット受信部501は、第1のASIC100からシリアルバス300を介してデータが受信されるのを待ち受ける(S900)。なお、データの受信においては、まず、2ビットのスタートビットを認識し、後続の32ビットのシリアルデータを受信して32ビットのキャラクタを生成し、それをパケットの末尾まで繰り返すことにより、パケット全体を受信する。受信したパケットは、パケット逆変換部502、誤り検出部504、及び第2のアドレスデコード/比較部505に入力される。パケット逆変換部502は、データ転送の種類を示す識別子(Type)に応じて、パケットから第2バスへのリクエスト形式の信号への変換を行う(S901)。例えば、パケットの種類を示す識別子が、属性情報(ReqAtrb0/1)が付加されているパケットを示す場合、受信したパケットから属性情報(ReqAtrb0/1)を抽出し、それを用いて、パケットを第2バスへのリクエスト形式の信号に変換する。パラレルデータ送信部503は、第2バスへの信号形式に変換されたリクエストを出力し、第2のDRAMコントローラ204へ第2バス205を介して送信する(S901)。また、誤り検出部504において誤り検出処理が行われる(S902)。
なお、図9の例では、誤り検出処理(S902)は、パケットの逆変換処理及びリクエストの送出(S901)の後に実行されるように記載されているが、これに限られない。例えば、パケットの逆変換処理及びリクエストの送出と並行して、またはそれより先に誤り検出処理が実行されてもよい。なお、誤り検出部504は、受信したパケットに対して誤り検出処理を実行し、受信キャラクタに誤りが含まれていると判断した場合、割り込み生成部508に対してエラーを検出したことを報告する。
誤り検出部504による誤り検出結果の報告は、転送先アドレスに応じて、マスク部507でマスク(無効化)されるべきかが判定される。具体的には、第2のアドレスデコード/比較部505は、アドレス情報をデコードして取得し、取得した転送先アドレスと第2のアドレス情報保持部506に保持されている転送先アドレスの範囲の情報とを比較する(S903)。そして、第2のアドレスデコード/比較部505は、転送先アドレスが符号化を行わないアドレスの範囲に含まれている場合、誤り検出部504からの報告をマスクするように、マスク部507に制御信号を送信する。一方、第2のアドレスデコード/比較部505は、転送先アドレスが符号化を行うアドレスの範囲に含まれている場合、誤り検出部504からの報告をマスクしないように、マスク部507に制御信号を送信する。すなわち、送信元において符号化されていない場合の報告を無効化し、送信元で符号化されている場合は報告を無効化しないように、マスク部507を制御する信号を、マスク部507へ送信する。
マスク部507は、この制御信号に従って、転送先アドレスが、符号化を行わないアドレスの範囲に含まれている場合は、誤り検出の結果をマスクして無効化する(S904)。一方、割り込み生成部508は、マスクされた報告を受信した場合、又はエラーが検出されていない場合の報告を受信した場合(S905でNo)は、何も行わない。一方、割り込み生成部508は、エラー検出の報告を受信すると(S905でYes)、割り込み信号を出力し、S902のリクエストの送出を無効化する(S906)。
(リクエスト送受信時の、符号付加の有無に関する選択処理の有効化と無効化)
リクエスト送受信時において、符号付加の有無に関する選択処理を有効とするか否かは、Write転送時とRead転送時で異なる。Write転送時は、送信されるリクエストに、書き込みデータ(Wdata)やストローブ(Wstrb)といったデータが含まれる。このようなデータは、符号化が必要でない場合に符号化せず、データ転送効率を向上させることができる。このため、符号付加の有無に関する選択処理を有効としてもよい。一方、Read転送時には、送信されるリクエストには転送データは含まれず、アドレス(Address)が主要なデータとなる。アドレス(Address)はデータ誤りが発生するとトランザクションに支障をきたすため、常に誤り検出符号を付加してもよい。常に符号を付加する場合は、符号付加の要否の選択は不要であるため、このようなRead転送時には、符号付加の有無に関する選択処理を無効化してもよい。
(レスポンスの送信処理及び受信処理)
リクエストに対する応答信号(レスポンス)の送信処理及び受信処理の場合のデータ変換送信部400とデータ受信変換部500の内部構成及び処理内容は、リクエストの送信処理と受信処理の場合と同様である。そのため、詳細な回路構成及び動作の説明を省略し、リクエストパケットの構成要素と、符号付加の有無の判定条件について説明する。
(レスポンス及びレスポンスパケットの構成)
レスポンスは、例えば、エラーか否かを示すステータス情報(RespSt)、読み出しデータ(Rdata)、及びパケットサイズや転送のプライオリティーを示す属性情報(RespAtrb0/1)を含む。レスポンスパケットの例を図10(c)及び図10(d)に示す。パケットはヘッダとデータとを含み、ヘッダとデータは、共に複数の32ビット単位のキャラクタによって構成される。ヘッダは、例えば、パケットの種類を示す識別子(Type)、ステータス(RespSt)、属性情報(RespAtrb0/1)を含む。また、データは読み出しデータ(Rdata)によって構成され、Read転送時にのみ生成される。Write転送時は、転送元の装置からデータを受信して書き込むだけであり、転送元の装置へ送信するデータはないため、データ部分は例えば空となる。
(レスポンス送受信時の、符号の付加の有無の選択処理の有効化と無効化)
レスポンス送受信時において、符号付加の有無に関する選択処理を有効とするかどうかは、Write転送時とRead転送時で異なる。Write転送時には、レスポンスには読み出しデータ(Rdata)は含まれず、エラーか否かを示すステータス情報(RespSt)が主要なデータとなる。ステータス情報(RespSt)はバスシステムの動作においては重要な情報なので、全ての転送に対して誤り検出符号を付加して転送する。一方、Read転送時には、レスポンスには読み出しデータ(Rdata)が含まれる。読み出しデータに対しては、場合によっては符号を付加する必要がない。このため、符号付加の有無の判定を有効とし、不要な場合は符号を付加せずに、転送効率を向上させることが可能となる。
本実施形態によれば、誤り検出符号を付加する必要のないパケットに対しては誤り検出符号を付加せず、また、符号付加の有無を示すビットを付加することもないため、データの転送効率を向上させることが可能となる。また、転送先アドレスに応じて符号化の有無を決定するため、同一種類のデータに対しても、転送先のチップ内の接続先デバイスに応じて、符号化を行うか否かを適切に制御することが可能となる。例えば、画像データを転送する際に、通常のデータとして転送先チップ内のメモリ領域へ書き込む場合には符号化するが、そのまま表示系デバイスに出力する場合には符号化しないという制御が可能になる。
図12(a)に従来例におけるリクエストパケット送信に要するサイクル数を、図12(b)に本実施形態によるリクエストパケット送信の要するサイクル数を、それぞれ示す。図中の数字は転送に要するサイクル数を示す。図12(a)及び図12(b)の例では、第1のバスマスタ101からのリクエスト(図中のA1からA4)と第2のバスマスタ102からのリクエスト(図中のB1からB4)が、交互に第1バス−シリアルバスブリッジ103に送信される。なお、全ての転送は64ビットのSingle Write転送とする。この例において、第1のバスマスタ101から発行されるアドレスは、常に誤り検出符号を付加する必要のない転送先を示し、第2のバスマスタ102からから発行されるアドレスは、常に誤り検出符号を付加する必要がある転送先を示すものとする。図12(a)の例においては、各マスタからの全パケットは3キャラクタのヘッダ及び3キャラクタのデータ、及び1キャラクタの誤り検出符号によって構成され、全部で7キャラクタのパケットであるとする。
このとき、2つのそれぞれのマスタから4つのWrite転送を行う場合、転送すべきキャラクタ数は、7(キャラクタ数)×4(各マスタあたりのパケット数)×2(マスタ数)=56キャラクタとなる。各キャラクタの転送にはスタートビットを含めて34サイクルかかるため、従来例では、転送に56×34=1904サイクル必要になる。
一方、本実施形態によれば、各マスタからのパケットについて、誤り検出符号を付加する必要のないパケットには誤り検出符号を付加せず、さらに、誤り検出符号を付加しないことを示す情報ビットを付加する必要もない。このため、第1のバスマスタ101から発行されるリクエストには、誤り検出符号が常に付加されず、7キャラクタのうち、1キャラクタ分は送信しないこととなる。一方、第2のバスマスタ102から発行されるリクエストには、誤り検出符号が常に付加される。このため、図12(b)に示すように、各マスタからの4つのWrite転送のうち、第1のバスマスタ101からの4つのWrite転送について、誤り検出符号が付加されず1キャラクタずつ省略される。したがって、第1のバスマスタ101からの4つのWrite転送に関しての、転送キャラクタ数は、6(キャラクタ数)×4(各マスタあたりのパケット数)=24キャラクタとなる。一方第2のバスマスタ102からの4つのWrite転送の転送キャラクタ数は従来例と変わらず、7(キャラクタ数)×4(各マスタあたりのパケット数)=28キャラクタとなる。すなわち、合計では24+28=52キャラクタとなり、本実施形態では、転送に52×34=1768サイクルが必要となる。したがって、従来例と比して、本実施形態では、転送に必要なサイクル数を136サイクル分だけ削減することができる。
また、全てのパケットにおいて誤り検出符号を付加する必要がない場合は、サイクル数を最大限に削減することができる。全てのパケットに誤り検出符号を付加する必要がない場合の例を図12(c)に示す。図12(c)では、合計8つのWrite転送に対して必要な全キャラクタ数は、6(キャラクタ数)×8(2つのマスタに対する全パケット数)=48キャラクタである。この場合、転送に48×34=1632サイクルが必要である。このように、従来例と比して、本実施形態では、転送に必要なサイクル数を最大272サイクル分だけ削減することができる。
<<実施形態2>>
実施形態1記載のリクエスト送受信時において、Write転送時は、リクエストに書き込みデータ(Wdata)やストローブ(Wstrb)といったデータが含まれ、符号付加の有無に関する選択処理をすると説明した。しかしながら、実施形態1のリクエストパケットの構造では、アドレスとデータをパッキングして送信するため、データに符号を付加しないだけでなく、データ以外の部分、例えば、アドレスを含むヘッダ部分にも符号を付加せずに送信する場合がある。
このため、ヘッダ部分にはすべてのパケットで誤り検出符号を付加すると同時に、データ部分に対しては符号付加の有無に関する選択処理を有効化するようにしてもよい。例えば、リクエストパケットにおいて、ヘッダパケットとデータパケットとを明示的に分離することで、データパケットのみに対して符号付加の有無に関する選択処理を有効化することが可能となる。このようにすることにより、パケット中の重要な部分(例えば、データ部分以外のヘッダ部分)については常に符号化による保護を行うと共に、データ部分については場合に応じて符号化を行わないようにして転送効率を向上させることができる。
(リクエスト送受信時の符号付加の有無に関する選択処理の有効化と無効化)
Write転送時、まずリクエストパケットが、データパケットであるか、ヘッダパケットであるかを判別する。リクエストパケットがヘッダパケットである場合、符号付加の有無に関する選択処理を無効化し、全てのヘッダパケットに対し誤り検出符号を付加する。一方、リクエストパケットがデータパケットである場合、符号付加の有無に関する選択処理を有効化し、場合によって符号を付加しないことにより、データ転送を効率化する。Read転送時は、実施形態1と同様に、符号付加の有無に関する選択処理を無効化し、全てのパケットに対し誤り検出符号を付加する。なお、レスポンスの送受信時の処理は、実施形態1と同様である。
なお、Write転送時には、書き込むデータが存在するため、データ部分については転送先アドレスに応じて符号の付加を伴わない第1のパケットと、第2のパケットとから転送するパケットを決定する。しかしながら、Read転送時には、データが存在しないため、常に符号化を伴う第2のパケットが転送されてもよい。さらに、相手方の装置からWrite転送の要求を受けた時の応答のデータ転送においても、常に符号化を伴う第2のパケットを転送してもよい。
また、上述の説明では、符号化を伴わない第1のパケットと、それに対応する符号化を伴う第2のパケットとを生成し、その後転送するパケットを選択するとしたが、これに限られない。例えば、転送先アドレスが、符号化を伴わないデータ転送を行うべきアドレスの範囲に含まれていた場合は、第2のパケットの生成を省略してもよい。
また、アドレスを含むヘッダに対する符号とデータに対する符号とを分離し、ヘッダ部分に対する符号は必ずパケットに付加し、データに対する符号をパケットに付加するかのみを転送先アドレスに応じて切り替えてもよい。この場合、符号を付加しない第1のパケットであっても、ヘッダ部分については符号が付加されていてもよい。
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (13)

  1. 受信したデータをパケットに変換して転送するデータ転送装置であって、
    前記データの転送先アドレスを取得する取得手段と、
    前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第1のパケットと前記第1のパケットに誤り検出符号または誤り訂正符号を付加した第2のパケットとのいずれかを転送する転送手段と、
    を有することを特徴とするデータ転送装置。
  2. 前記転送手段は、前記転送先アドレスの値が符号を付加しないアドレスとして予め設定されるアドレスの範囲に含まれる場合に、前記第1のパケットを転送する、
    ことを特徴とする請求項1に記載のデータ転送装置。
  3. 前記転送手段は、前記転送先アドレスの値が符号を付加すべきアドレスとして予め設定されるアドレスの範囲に含まれる場合に、前記第2のパケットを転送する、
    ことを特徴とする請求項1又は2に記載のデータ転送装置。
  4. 予め設定される、符号を付加すべきアドレスの範囲と、符号を付加しないアドレスの範囲の少なくともいずれかを含む情報を、転送先の装置へ送信する送信手段をさらに有する、
    ことを特徴とする請求項1から3のいずれか1項に記載のデータ転送装置。
  5. 転送先アドレスからデータを読み出すためのデータ転送を行う場合、前記転送手段は前記第2のパケットを転送する、
    ことを特徴とする請求項1から4のいずれか1項に記載のデータ転送装置。
  6. 転送先の装置からのデータを書き込むためのデータ転送に対する、応答のためのデータ転送を行う場合、前記転送手段は前記第2のパケットを転送する、
    ことを特徴とする請求項1から5のいずれか1項に記載のデータ転送装置。
  7. 前記第1のパケットは、前記データを含むデータパケットと、ヘッダを含むヘッダパケットとを含み、
    前記転送手段は、前記ヘッダパケットに対しては当該ヘッダパケットの前記第1のパケットに対応する前記第2のパケットを転送し、前記データパケットに対しては、前記転送先アドレスに応じて前記第1のパケットと前記第2のパケットとのいずれかを転送する、
    ことを特徴とする請求項1から6のいずれか1項に記載のデータ転送装置。
  8. 前記第1のパケットは、当該パケットに含まれる前記データに対しては誤り検出符号または誤り訂正符号を付加せず、ヘッダの部分に対しては誤り検出符号または誤り訂正符号を付加したパケットである、
    ことを特徴とする請求項1から6のいずれか1項に記載のデータ転送装置。
  9. パケットを受信し、当該パケットに含まれるデータの転送先までに経る経路に応じた信号の形式に当該パケットを変換して転送するデータ転送装置であって、
    前記パケットから転送先アドレスを取得する取得手段と、
    信号の形式を変換された前記データを送出する要求を前記経路へ送信する送信手段と、
    前記転送先アドレスと、前記パケットに対する誤り検出の結果に応じて、前記要求を無効化する信号を出力する出力手段と、
    を有することを特徴とするデータ転送装置。
  10. 前記出力手段は、前記転送先アドレスが予め設定される誤り検出符号または誤り訂正符号を付加すべきアドレスの範囲に含まれると共に、前記結果が誤りを検出したことを示す場合、前記要求を無効化する信号を出力する、
    ことを特徴とする請求項9に記載のデータ転送装置。
  11. 受信したデータをパケットに変換して転送するデータ転送装置におけるデータ転送方法であって、
    取得手段が、前記データの転送先アドレスを取得する取得工程と、
    転送手段が、前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第1のパケットと前記第1のパケットに誤り検出符号または誤り訂正符号を付加した第2のパケットとのいずれかを転送する転送工程と、
    を有することを特徴とするデータ転送方法。
  12. パケットを受信し、当該パケットに含まれるデータの転送先までに経る経路に応じた信号の形式に当該パケットを変換して転送するデータ転送装置におけるデータ転送方法であって、
    取得手段が、前記パケットから転送先アドレスを取得する取得工程と、
    送信手段が、信号の形式を変換された前記データを送出する要求を前記経路へ送信する送信工程と、
    出力手段が、前記転送先アドレスと、前記パケットに対する誤り検出の結果に応じて、前記要求を無効化する信号を出力する出力工程と、
    を有することを特徴とするデータ転送方法。
  13. コンピュータを、受信したデータをパケットに変換して転送するデータ転送装置における、
    前記データの転送先アドレスを取得する取得手段と、
    前記転送先アドレスの値に応じて、前記データと前記転送先アドレスとの少なくともいずれかを含む第1のパケットと前記第1のパケットに誤り検出符号または誤り訂正符号を付加した第2のパケットとのいずれかを転送する転送手段と、
    として機能させるためのプログラム。
JP2012127533A 2012-06-04 2012-06-04 データ転送装置、データ転送方法、及びプログラム Pending JP2013250956A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012127533A JP2013250956A (ja) 2012-06-04 2012-06-04 データ転送装置、データ転送方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012127533A JP2013250956A (ja) 2012-06-04 2012-06-04 データ転送装置、データ転送方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2013250956A true JP2013250956A (ja) 2013-12-12

Family

ID=49849520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012127533A Pending JP2013250956A (ja) 2012-06-04 2012-06-04 データ転送装置、データ転送方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2013250956A (ja)

Similar Documents

Publication Publication Date Title
JP6433146B2 (ja) 情報処理装置、システム、情報処理方法、コンピュータプログラム
CN101594306B (zh) 为分组报头提供前缀
KR102516027B1 (ko) 헤더 처리 장치, 프로세서 및 전자장치
JP2016533608A (ja) カメラ制御インターフェースのスレーブデバイス間通信
JP3584789B2 (ja) データ転送制御装置及び電子機器
JP6069897B2 (ja) データ伝送装置、およびデータ伝送方法
JP2013034133A (ja) 送信装置、送受信システムおよび制御方法
US8634090B2 (en) Data transfer apparatus, data transmitting and receiving apparatus, and image forming apparatus
TW201728182A (zh) 音頻-視頻資料的發送方法、接收方法和音頻-視頻資料的傳輸系統
US10489350B2 (en) Data compression with inline compression metadata
US8621314B2 (en) Transmitting and receiving system and method, and non-transitory computer readable medium
JP2013250956A (ja) データ転送装置、データ転送方法、及びプログラム
WO2022247195A1 (zh) 数据存储器、数据存储、读取方法、芯片及计算机设备
US8750423B2 (en) Receiving apparatus, data transfer apparatus, data receiving method and non-transitory computer readable recording medium
JP2009058994A (ja) 画像処理装置及びその制御方法
JP6398241B2 (ja) パケット生成装置及びプログラム
JP6897126B2 (ja) 画像形成システム及び画像形成装置
US9760514B1 (en) Multi-packet processing with ordering rule enforcement
KR100498492B1 (ko) 데이타 형태에 따른 데이타 처리 방법 및 장치
JP2016146605A (ja) 車載通信装置
US9268725B2 (en) Data transferring apparatus and data transferring method
JP5364641B2 (ja) 情報処理装置
CN114500679B (zh) can协议转换方法、装置、电子设备和存储介质
US7080187B2 (en) Bug segment decoder
WO2018105197A1 (ja) イーサネットスイッチ