JP5906078B2 - データ転送装置及びデータ転送方法 - Google Patents

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

Info

Publication number
JP5906078B2
JP5906078B2 JP2011278698A JP2011278698A JP5906078B2 JP 5906078 B2 JP5906078 B2 JP 5906078B2 JP 2011278698 A JP2011278698 A JP 2011278698A JP 2011278698 A JP2011278698 A JP 2011278698A JP 5906078 B2 JP5906078 B2 JP 5906078B2
Authority
JP
Japan
Prior art keywords
transfer
attribute information
request
combination
attribute
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.)
Active
Application number
JP2011278698A
Other languages
English (en)
Other versions
JP2013130953A (ja
JP2013130953A5 (ja
Inventor
大介 白石
大介 白石
宙馬 長尾
宙馬 長尾
昭好 桃井
昭好 桃井
豪 平岡
豪 平岡
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 JP2011278698A priority Critical patent/JP5906078B2/ja
Priority to US13/715,746 priority patent/US9268725B2/en
Publication of JP2013130953A publication Critical patent/JP2013130953A/ja
Publication of JP2013130953A5 publication Critical patent/JP2013130953A5/ja
Application granted granted Critical
Publication of JP5906078B2 publication Critical patent/JP5906078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

本発明は、パケットを使用してデータ転送を行うデータ転送装置及びデータ転送方法に関する。
パケットを使用してデータ転送を行う技術が様々な分野に適用されている。TCP/IP(Transmission Control Protocol/Internet Protocol)はインターネット上のデータ転送をパケットベースで行う技術である。また、PCI EXPRESS(登録商標)は集積回路間のデータ転送をパケットベースで行う技術である。また、NoC(Network On Chip)は集積回路内のデータ転送をパケットベースで行う技術である。パケットベースでデータ転送を行うメリットは、アドレスやデータ等の転送に必要な様々な情報を少ない信号線で転送できることにある。例えば、PCI Expressでは、2対の差動線路のみで、データ転送を行うことができる。また、転送レートを上げやすいというメリットがある。しかし、パケットベースの転送方式においては、様々な情報を時間軸上に展開して送信するため、非パケットベースの転送方式に比べて転送に要するサイクル数が多いという問題点がある。そのため、パケット構造を工夫し、必要最低限の情報のみを転送することで、転送に要するサイクル数を減らし、転送効率を上げる技術が提案されている。例として、非特許文献1に開示されているRFC1144に規定されているV.Jacobsonのヘッダー圧縮方式がある。V.Jacobsonのヘッダー圧縮方式では、直前の転送のパケットとこれから転送を行おうとしているパケットとの比較を行い、差分のあった情報だけを転送することで、パケットを圧縮し転送効率の向上を図っている。
RFC 1144 Compressing TCP/IP Headers February 1990
非特許文献1のような従来技術では、直前の転送制御内容との差分しか考慮されないために、直前の転送制御内容とだけ差分が大きくそれ以前の転送制御内容との差分が小さい転送について、パケットが効率良く圧縮されず、転送効率が上がらないという課題がある。
本発明に係るデータ転送装置は、集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、前記受信手段により受信された複数の転送要求を保持する第1保持手段と、属性情報の組合せを第1識別子と対応付けて保持する第2保持手段と、前記第1保持手段が保持している転送要求のうち、前記第2保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求を優先するように並び替えて送信する送信手段とを有し、前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか2つの属性の組合せであり、前記送信手段は、前記第1保持手段から優先して送信する転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第1識別子を前記転送要求の属性情報の組合せの代わりに送信することを特徴とする。
本発明によれば、複数の転送制御内容との差分を考慮してパケットを圧縮することができ、効率良くパケットを圧縮し転送効率を向上させることができる。
システムの構成を示す。 本発明の一実施形態におけるバスブリッジの構成を示す。 パケットのフォーマットを示す。 本発明の一実施形態におけるパケット識別子を示す。 シリアルバスのフォーマットを示す。 従来例及び本発明の第一実施形態におけるタイミングチャートを示す。 チップ間通信システムの構成を示す概略図である。 AXIバスプロトコルを示す図である。 履歴保持部が保持するテーブルを示す。
<実施形態1>
以下、図面を参照しながら本発明の実施形態1について詳細に説明する。
図7は、本発明の実施形態1のデータ転送装置を備えるチップ間通信システムの構成例を示す。CPU901、ROM902、RAM903は第1バス909に接続され、PCI906、USB907、IDE908は第2バス910に接続されている。そして第1バス909と第2バス910はブリッジ904とブリッジ905を介して接続されている。この構成は汎用のコンピュータにおける2チップセットの構成で代表的な構成であり、ブリッジ904を備えるチップとブリッジ905を備えるチップとを備える。
CPU901はROM902のプログラムをRAM903に展開し、RAMからプログラムを読み込んで実行する。第2バスに接続されているPCI906、USB907、IDE908は各種周辺機器(不図示)との接続を制御する制御部である。
ブリッジ904はCPU又はDMAC(不図示)によって第1バス909のプロトコルに従って送信されるデータ転送要求(リードリクエスト、ライトリクエスト等)を、チップ間接続によってブリッジ905へ転送する。なお、ライトリクエストの際はRAM903のデータや不図示のレジスタの値などを包含している。ブリッジ905はブリッジ904から取得したデータを第2バス910のプロトコルに従って、各種周辺回路に転送する。また、データ転送要求は転送対象のデータの転送に用いるデータ伝達方式の種類(バースト長、排他属性、セキュリティ情報、キャッシュ利用の有無)を示す属性情報を含む。例えば、CPU又はDMAC(不図示)からPCI906、USB907、IDE908へのリードアクセスで読み出すデータ(リスポンス時)やライトアクセスで書込むデータをこの属性情報の示すデータ転送の種類で転送する。
ここで、リクエストに対するリスポンス(リードデータ、リクエスト完了通知等)は、リクエストの送り先からリクエスト送信元へ伝達される。その場合はブリッジ905とブリッジ904を通過し、リクエストの場合と逆のプロトコル変換をなされるので説明は省略する。
図1はASIC_A100とASIC_B200がシリアルバス300で接続されているシステムの構成を示す。(ASICはApplication Specific Integrated Circuitの略称である。)シリアルバス300上では、パケットによるデータ転送が行われる。ASIC_A100は第1バスマスタA101、第1バスマスタB102、第1ブリッジ103、DRAMコントローラA104を有しており、各モジュールは、第1バス105によって接続されている。第1バス105は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。
第1バスマスタA101及び第1バスマスタB102は第1バス105を介して、第1ブリッジ103とDRAMコントローラA104との間でデータ転送を行う。DRAMコントローラA104はDRAM I/F A107を介してDRAM_A106との間でデータ転送を行う。第1ブリッジ103は第1バス105からの転送をシリアルバス300の転送に変換して、接続先のASIC_B200内の第2ブリッジ203へ転送を行う。一方、ASIC_B200は第2バスマスタA201、第2バスマスタB202、第2ブリッジ203、DRAMコントローラB204を有しており、各モジュールは、第2バス205によって接続されている。第2バス205は、アドレスやデータ等がそれぞれ専用線で接続されているパラレルバスである。
第2ブリッジ203はシリアルバス300からの転送を第2バスの転送に変換して、第2バスを介してDRAMコントローラB 204に転送する。第2バスマスタA 201及び第2バスマスタ B202は第2バス 205を介して、DRAMコントローラB 204との間でデータ転送を行う。DRAMコントローラB204はDRAM_I/F_B 207を介してDRAM_B 206との間でデータ転送を行う。なお、第1バスマスタA・Bや第2バスマスタA・Bは図7に示すCPU901や、各種周辺機器との接続を制御するPCI906、USB907、IDE908、また不図示のDMACなどバスマスタとしてリクエストを出力する構成であればよい。
図2は本実施形態の転送方式を実現するための第1ブリッジ103及び第2ブリッジ203の構成図である。以下にブリッジのそれぞれの処理について説明する。
〔リクエスト送信処理〕
まず、第1ブリッジ103によるデータ転送要求(ライトリクエスト、リードリクエスト等、以下単にリクエストと称す)の送信処理について説明する。第1バスリクエスト受信部1030は第1バス 105を介して、第1バスマスタA 101や第1バスマスタB 102からのリクエストを受信する。リクエストは、転送先のアドレス(Address)、Write転送かRead転送かを示すフラグ、書き込みデータ(Wdata)、ストローブ(Wstrb)及び転送属性情報(ReqAtrb 0/1)を有する。
転送属性情報(ReqAtrb 0/1)は、転送長や転送の優先度等の転送の種類を示す情報を含んでいる。リクエスト送信要求保持部1036(第1保持手段)には、第1バスリクエスト受信部1030が第1バスから受信し、リクエストパケット変換部1031によりパケットに変換される前の転送情報(転送制御内容)を複数保持することが可能である。なお、本実施形態ではリクエスト送信要求保持部1036(および後述のレスポンス要求保持部2037)はFIFOキュー(以降、単にキューと称す)を備えており、リクエストパケット変換部1031により複数の転送要求を受け付けた順序が識別可能な構成になっている。また、転送情報は転送属性を含むものが例に挙げられるが、以降の説明では簡便のため転送属性を転送情報として扱って説明する。
ここで、リクエストパケット変換部1031はキューの任意の段から転送情報を取得しパケット化できる構成となっている。また、リクエスト送信履歴保持部1037(第2保持手段)には、直前に送信したパケットの転送属性情報(ReqAtrb 0/1)が保持される。リクエストパケット変換部1031は、受信したリクエストを1つ以上のパケットに変換する。
ここで、リクエストパケット変換部1031が変換したパケットを図3(a)及び図3(b)に示す。パケットはヘッダー部(以降、単にヘッダーと称す)及びデータ部(以降、簡便のためにデータと称す。なお、厳密にはデータ部はデータを格納するフィールドとして用意されているだけであって、データそのものではないこともある。)によって構成される。ヘッダー及びデータ共に複数の所定長(32Bit)のキャラクタによって構成される。ヘッダーは、パケットの種類を示す識別子(Type)や転送属性情報(ReqAtrb 0/1)や転送先のアドレス(Address)を有する。また、データは書き込みデータ(Wdata)やストローブ(Wstrb)によって構成され、Write転送時に生成される。
以下、リクエストパケット変換部1031におけるパケット変換処理について詳細に説明する。リクエストパケット変換部1031は、第1バスからのリクエストをパケットに変換する。その際に、リクエストパケット変換部1031は、リクエスト送信要求保持部1036に保持されている各転送の転送属性情報(ReqAtrb 0/1)とリクエスト送信履歴保持部1037に保持されている転送属性情報(ReqAtrb 0/1)とを比較する。
比較した結果、リクエスト要求保持部1036に保持されている転送属性情報についてリクエスト送信履歴保持部1037に保持している転送属性情報(ReqAtrb 0/1)と一致するものがなければ、リクエストパケット変換部1031はリクエスト送信要求保持部1036に保持している転送要求をFIFO順にパケットに変換する。この際、図3(a)に示すように転送属性情報(ReqAtrb 0/1)がパケットに付加される。この時の識別子は転送属性情報(ReqAtrb 0/1)がそのまま付加されていることを示す識別子となり、Read転送であれば“00000”、Write転送であれば“01000”となる。なお、1〜3ビット目がリクエスト送信履歴と一致したことを示す第1識別子に相当し、4ビット目がリードであるかライトであるかを示し、5ビット目が第1識別子を付加しているか否かを示す第2識別子に相当する。また、リクエスト送信履歴保持部1037の転送属性情報(ReqAtrb 0/1)を更新する。
一方でリクエストパケット変換部1031はが比較した結果、リクエスト要求保持部1036に保持されている転送属性情報についてリクエスト送信履歴保持部1037に保持している転送属性情報(ReqAtrb 0/1)と一致するものが存在した場合、リクエストパケット変換部1031は一致した転送情報のうち、最先で受け付けた転送要求の転送情報をパケットに変換する。この際、図3(b)に示すように転送属性情報(ReqAtrb 0/1)をパケットに付加しない代わりに、転送属性情報(ReqAtrb 0/1)が付加されていないことを示す識別子を付加する。識別子は、例えば、Read転送であれば“10000”、Write転送であれば“11000”となる。本実施形態のリクエストパケット変換部1031は直前に送信したパケットの転送属性情報(ReqAtrb 0/1)と一致する転送を優先的にパケットに変換して送信するように制御する。
リクエスト送信要求保持部1036に2つの転送情報が存在し、第1バス105から最初に受信した転送情報についての比較が不一致であり、二番目に受信した転送情報についての比較は一致した場合、リクエストパケット変換部1031は二番目に受信した転送情報を優先してパケットに変換する。そのため、第一バスから受信した順番に従ってパケットに変換する場合に比べて、1キャラクタ少ないパケットとなる。リクエストパケット送信部1032は、パケットに変換されたリクエストをパラレルーシリアル変換し、シリアルバス300へ送信する。なお、識別子のビット数は転送属性情報のビット数よりも小さいことが好ましい。
パラレル―シリアル変換の例を図5に示す。図5において“N”は非転送期間(NOP)を示し、“S”はスタートビットを示す。また、数字はキャラクタ内のBit位置を示す。パラレル―シリアル変換は、32Bit単位のキャラクタごと行われる。32Bit単位のキャラクタにキャラクタの先頭を示す2Bitのスタートビットが付加され、まず、2Bitのスタートビットが送信される。その後32Bit単位のキャラクタの最上位Bitから順に1Bitずつ送信が行われる。パラレル―シリアル変換されたキャラクタはクロックとともにシリアルバス300を介して、受信側のASIC_B 200に送信される。
〔リクエスト受信処理〕
続いて、第2ブリッジ203によるリクエストの受信処理について説明する。リクエストパケット受信部2030はシリアルバス300を介してASIC_A 100から送信された、キャラクタを受信し、シリアル―パラレル変換する。シリアル―パラレル変換は、32Bit単位のキャラクタごと行われる。まず、2Bitのスタートビットの認識を行う。2Bitのスタートビットが認識されたならば、後続の32Bitのシリアルデータを受信しパラレルデータに変換し32Bitのキャラクタを生成し、複数の32Bitのキャラクタによってパケットを生成する。
リクエスト受信履歴保持部2036には、直前に受信したパケットの転送属性情報(ReqAtrb 0/1)が保持される。リクエストパケット逆変換部2031は、転送の種類を示す識別子(Type)によってパケットから第2バスへのリクエスト形式への変換を行う。
パケットの識別子が、転送属性情報(ReqAtrb 0/1)が付加されていることを示しているならば、受信したパケットから転送属性情報(ReqAtrb 0/1)を抽出し、第2バスへのリクエスト形式に変換する。そして、抽出した転送属性情報(ReqAtrb 0/1)をリクエスト受信履歴保持部2036に保持する。
一方、パケットの種類を示す識別子が、転送属性情報(ReqAtrb 0/1)が付加されていないことを示しているならば、直前に受信したパケットの転送属性情報(ReqAtrb 0/1)を参照して、第2バスへのリクエスト形式に変換する。第2バスリクエスト送信部2032は、第2バスへのリクエスト形式に変換されたリクエストをDRAMコントローラB 204へ第2バス 205を介して送信する。
〔レスポンス送信処理〕
続いて、第2ブリッジ203によるレスポンスの送信処理について説明する。第2バスレスポンス受信部2033は第2バス 205を介して、DRAMコントローラB 204からのレスポンスを受信する。レスポンスは、エラーか否かを示すステータス情報(RespSt)、読み出しデータ(Rdata)、及び転送長や転送のプライオリティーを示す転送属性情報(RespAtrb 0/1)によって構成される。
レスポンス送信要求保持部2037には、第2バスレスポンス受信部2033が第2バスから受信し、レスポンスパケット変換部2034によりパケットに変換される前の転送が少なくとも2個以上保持することが可能である。また、レスポンス送信履歴保持部2038には、直前に送信したパケットの転送属性情報(RespAtrb 0/1)が保持される。レスポンスパケット変換部2034は、第2バス 205からのレスポンスをパケットに変換する。その際に、レスポンス送信要求保持部2037に保持されている各転送の転送属性情報(RespAtrb 0/1)とレスポンス送信履歴保持部2038に保持されている直前に送信したパケットの転送属性情報(RespAtrb 0/1)を比較する。
比較した結果、直前に送信したパケットの転送属性情報(RespAtrb 0/1)と一致する転送が存在しない場合、レスポンスパケット変換部2034はレスポンス送信要求保持部2037に保持される最も古い転送をパケットに変換する。この際、図3(c)に示すように転送属性情報(RespAtrb 0/1)がパケットに付加される。この時の転送の識別子は転送属性情報(RespAtrb 0/1)が付加されていることを示す識別子となり、Read転送であれば“00100”、Write転送であれば“01100”となる。また、レスポンス送信履歴保持部2038の転送属性情報(RespAtrb 0/1)を更新する。
一方、直前に送信したパケットの転送属性情報(RespAtrb 0/1)と一致する転送がレスポンス送信要求保持部に存在した場合、レスポンスパケット変換部2034は一致した転送要求のうち、最も古い転送要求をパケットに変換する。この際、図3(d)に示すように転送属性情報(RespAtrb 0/1)をパケットに付加しない代わりに、転送属性情報(RespAtrb 0/1)が付加されていないことを示す識別子を付加する。識別子は、例えば、Read転送であれば“10100”、Write転送であれば“11100”となる。本実施形態のレスポンスパケット変換部2034は直前に送信したパケットの転送属性情報(ReqAtrb 0/1)と一致する転送を優先してパケットに変換する。
レスポンス送信要求保持部2037に2つの転送情報が存在し、第2バス205から最初に受信した転送情報の比較が不一致であり、二番目に受信した転送情報の比較は一致した場合、レスポンスパケット変換部2034は二番目に受信した転送情報を優先してパケットに変換する。そのため、第2バス205から受信した順番に従ってパケットに変換する場合に比べて、1キャラクタ少ないパケットとなる。レスポンスパケット送信部2035は、パケットに変換されたレスポンスをパラレル―シリアル変換し、シリアルバス300へ送信する。パラレル―シリアル変換の動作は、リクエストパケット送信部1032の動作と同じであるため、ここでは説明を省略する。パラレル―シリアル変換されたキャラクタはクロックとともにシリアルバス300を介して、受信側のASIC_A 100に送信される。
〔レスポンス受信処理〕
続いて、第1ブリッジ103によるレスポンスの受信処理について説明する。レスポンスパケット受信部1033はシリアルバス300を介してASIC_B 200から送信された、キャラクタを受信し、シリアル―パラレル変換する。シリアル―パラレル変換の動作は、リクエストパケット受信部2030の動作と同じであるため、ここでは説明を省略する。
レスポンス受信履歴保持部1038には、直前に受信したパケットの転送属性情報(RespAtrb 0/1)が保持される。レスポンスパケット逆変換部1034は、転送の種類を示す識別子(Type)によってパケットから第1バス 105へのレスポンス形式への変換を行う。パケットの種類を示す識別子が、転送属性情報(RespAtrb 0/1)が付加されているパケットを示しているならば、受信したパケットから転送属性情報(RespAtrb 0/1)を抽出し、第1バス 105へのレスポンス形式に変換する。また、抽出した転送属性情報(RespAtrb 0/1)をレスポンス受信履歴保持部1038に保持する。一方、パケットの種類を示す識別子が、転送属性情報(RespAtrb 0/1)が付加されていないパケットを示している場合、直前に受信したパケットの転送属性情報(RespAtrb 0/1)を参照して、第1バス 105へのレスポンス形式に変換する。第1バスレスポンス送信部1035は、第1バス 105へのレスポンス形式に変換されたレスポンスを対応するリクエストを発行したマスタへ第1バス 105を介して送信する。
〔AXI〕
図8は集積回路内で用いられるバスのプロトコルであるAXI(Advanced eXtensible Interface)バスの制御信号および、アドレス/データ/属性情報を示す。
AXIバスプロトコルは、5つのチャネルと呼ばれる転送路を有する。各チャネルは、リードのアドレスを運ぶリードアドレスチャネル、ライトのアドレスを運ぶライトアドレスチャネル、リードの応答・データを運ぶリードデータチャネル、ライトのデータを運ぶライトデータチャネル、ライトのレスポンスを運ぶライト応答チャネルである。それぞれのチャネルは転送のやり取り・タイミングを司るValid,Ready信号によってハンドシェークを行い、一連の転送の手続きを行う。また、それぞれのチャネルには、データ転送の基本情報となるアドレスやデータ以外に、転送の属性情報として、転送タイプを示すxBURST,転送長を示すxLEN、アトミック転送を示すxLOC、キャッシュの制御情報を示すxCACHE、転送のセキュリティ情報を示すxPROT、転送のデータ幅のサイズxSIZE、転送の優先度を示すxQOS、転送領域区間を示すxBURST、ユーザの任意の情報を運ぶxUSER信号が規定されている。
〔履歴保持部〕
図9に示すテーブルは各送信履歴保持部(1037、2038)、受信履歴保持部(2036、1038)が保持する転送情報(属性情報)の例を示す。図9の例では4つの組合せを保持しているが、上述したように本実施形態の各履歴保持部は属性情報の組合せを少なくとも1つ保持していればよい。
例えば、パケット変換部(1031、2034)は、送信要求部(1036、2037)転送要求が受け付けてリクエストパケット変換部1031でパケットに変換する転送要求する際に、送信履歴保持部(1037、2038)に保持されていない属性情報を変換する度に送信履歴保持部(1037、2038)に属性情報を追加するように構成する。このように構成すると、同様の属性情報を重複して保持しないので効率がよい。また、4つの組合せを保持している状態で新たに属性情報を追加する場合には、一番古いものを削除するように構成すればよい。レスポンス側のレスポンス送信要求保持部2037、レスポンスパケット変換部2034およびレスポンス送信履歴保持部2038も同様に動作するので説明は省略する。なお、リクエストパケット変換部2031においてテーブルに属性情報を追加するアルゴリズムをリクエストパケット変換部1031のアルゴリズムと統一させておけば、各履歴保持部の保持しているテーブルの一貫性を保つ処理をしなくて済む。
第1バス(AXI)、第2バス(AXI)の属性情報は、排他制御属性(LOCK)、キャッシュの属性(CACHE)、セキュリティ属性(PORT)、データサイズ(SIZE)、リクエストタイプ(BURST)、送信元(ID)等を有する。
排他制御属性(LOCK)は、受信装置側でシステムバスを独占的に使用する手続きを行った上で転送を行うか否かを示す。排他制御属性(LOCK)信号として、バスロックを行う転送を行うかどうかを示す“Lock”ビットと、システム性能の向上を図るための排他転送を行うかどうかを示す“Exclusive”ビットと、について各々1ビットで表現している。
キャッシュ属性(CACHE)は、受信装置がデータの転送先までの経路において転送内容のバッファリングを許可するか否かを示す。キャッシュ属性(CACHE)には4ビット割り当てられ、キャッシュ可能かどうかを示すビット、バッファリングが可能かどうかを示すビット、キャッシュミスした際にWriteThrough やWriteBack などといったキャッシュシステム自身に指示を出すフィールド(2ビット)がある。
セキュリティ属性は、セキュリティレベルの高いスレーブにデータが受信されるように手続きを行った上で転送を行うか否かを示す。
リクエストタイプ(BURST)は転送のタイプを示し、INCR(連続アドレス転送)/FIXED(アドレス固定)/WRAP(キャッシュミスの際のアドレッシング)の3つを2ビットにエンコードして表現している。
データサイズはデータサイズの示す単位でデータ転送を行うことを示す。例えば、物理的なデータ幅が128ビットだとしても、8bit/16bit/../128bitの様に、どのデータ幅分を転送に使用しているかを示す。なお、説明を簡単にするために送信履歴保持部がテーブルを保持している例について説明しているが、同等の情報であればテーブル形式にする必要はない。
以上のように実施形態1では、第1ブリッジ103(又は第2ブリッジ203)はリクエストパケットの生成を行う際に、送信要求保持部1036(又はレスポンス送信要求保持部2037)に保持している転送属性情報(ReqAtrb 0/1)のうちそれまでに送信したパケットの転送属性情報で履歴保持部1037(又は2038)に保持している属性情報と一致する転送を優先してパケットに変換して送信する。一致する転送があった場合、転送属性情報(ReqAtrb 0/1)をパケットに付加せず、転送に必要なキャラクタ数を削減している。これにより、直前に受信した転送と転送属性情報(ReqAtrb 0/1)が一致せず2個前以前の転送と一致しているような転送であっても、効率的に情報を圧縮し、転送の効率を高めることができる。
図6(a)に従来例におけるリクエストパケット送信に要するサイクル数を、図6(b)に本発明におけるリクエストパケット送信の要するサイクル数を示す。図中の数字は転送に要するサイクル数を示すものとする。図6(a)及び(b)の例では第1バスマスタA101からのリクエスト(図中のA − 1〜A − 4)と第1バスマスタB102からのリクエスト(図中のB − 1〜B − 4)が交互に第1ブリッジ103に送信される例である。なお、全ての転送は64BitのSingle Write転送とする。この例において、第1バスマスタA 101から発行される転送属性情報(ReqAtrb 0/1)と第1バスマスタB102から発行される転送属性情報(ReqAtrb 0/1)は異なっているものとする。図6(a)の例においては、パケット生成の際にキャラクタの削減が行われず、各マスタからの全のパケットは3キャラクタのヘッダー及び3キャラクタのデータによって構成され、全部で6キャラクタのパケットとなる。よって、各マスタから4つのWrite転送を行うのに、6(キャラクタ数)*4(各マスタあたりの転送数)*2(マスタ数)=48キャラクタ必要になる。各キャラクタの転送には34サイクルかかるため、従来例の転送には48*34=1632サイクル必要になる。本発明によれば、各マスタからの2転送目以降のパケット生成の際に、キャラクタの削減が行われる。そのため、キャラクタの削減が行われないパケットのキャラクタ数が6キャラクタであるのに対して、各マスタからの2転送目以降の転送のキャラクタ数は5キャラクタに削減できる。よって、各マスタから4つのWrite転送を行うのに必要なキャラクタ数は、6(1転送目のキャラクタ数)*2(マスタ数)+5(2転送目以降のキャラクタ数)*3(各マスタからの総転送数 ― 1)*2(マスタ数)=42キャラクタとなる。各キャラクタの転送には34サイクルかかるため、本発明の転送には42*34=1428サイクル必要になる。従来例では、同じ転送に1632サイクル必要になるため、本発明では従来例よりも204サイクル転送に必要なサイクル数を削減できる。
上述の実施形態ではリクエスト送信要求保持部1036やレスポンス送信要求保持部2037のキューが2段である構成について説明したが、キューの段数はそれ以上設けてもよい。
また、上述の実施形態では、集積回路間(チップ間、モジュール間)におけるデータ転送について説明したが、本発明は同一集積回路(同一チップ、同一モジュール)内におけるデータ転送にも適用することもできる。
ただし、チップ間の転送は、チップ内の転送に比べて、データを転送する能力が低く、システムのボトルネックとなる可能性が高い。チップ内の転送では、「属性情報」、「アドレス」、「データ」についてそれぞれに物理的に信号線が存在し、同時・並列的に転送することができる。一方、チップ間の転送では、製品のコストを下げようとすると共通の信号線を利用してすることになり(チップのIOピンはコスト上昇を招くため)、時系列に転送するので、上述の実施形態による転送効率の向上はチップ内転送に比べて顕著である。
さらに、アドレスの上位又は下位について変動しないことが予め分かっている部分があることが予め分かっている場合は属性情報テーブルに上位(又は下位)アドレス情報を含ませて、属性情報と変動のないアドレスの一部分(上位又は下位数ビット分)を一緒に圧縮するように構成してもよい。例えば、ソフトウェアのアドレスマップの特性やバスの規格を考慮すると、あるモジュールにアクセスする場合には常に上位4ビットは固定の”0000”となることが考えられる。その場合は、テーブルに上位アドレス比較値を入れておけば変動のないアドレスビット数分さらにデータ転送効率がよくなる(下位アドレスについても同様)。この場合、変動のないアドレス部分を識別子で置換する場合には、属性情報の組合せが一致することだけを確かめて置換するようにしてもよい。
また、上述の実施形態では属性情報の組合せが保持しているものと一致しない場合は、一致していないことを示す識別子を付加するだけであるが、属性情報の組合せが一致しなくても変動しないアドレス部分を置換するように構成してもよい。その場合には複合側は常に変動しないアドレス部分を付加する構成を設ければよい。
また、上述の実施形態ではバスプロトコルとしてAXIを挙げて説明したが、本発明はデータ、アドレス、属性情報を組み合わせて転送するプロトコルであれば広く効果を発揮することができる。なお、複数の転送内容を1つの属性情報として複数のビット数で表現している場合でも本発明は適用できる。

Claims (4)

  1. 集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、
    前記受信手段により受信された複数の転送要求を保持する第1保持手段と、
    属性情報の組合せを第1識別子と対応づけて保持する第2保持手段と、
    前記第1保持手段が保持している転送要求のうち、前記第2保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求を優先するように並び替えて送信する送信手段とを有し、
    前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか2つの属性の組合せであり、前記送信手段は、前記第1保持手段が保持している複数の転送要求のうち優先して送信する転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第1識別子を前記転送要求の属性情報の組合せの代わりに送信することを特徴とするデータ転送装置。
  2. 前記送信手段は、前記第1識別子を含めたか否かを示す第2識別子を転送要求に付加して送信することを特徴とする請求項1に記載のデータ転送装置。
  3. 前記送信手段は、前記第1識別子を含めずに転送要求を送信した場合に、当該転送要求に含まれる属性情報を前記第2保持手段に保持させることを特徴とする請求項1又は2に記載のデータ転送装置。
  4. 集積回路間のデータ転送の種類を示す属性情報を含む転送要求を受信する受信手段と、
    前記受信手段により受信された複数の転送要求を保持する第1保持手段と、
    属性情報の組合せを第1識別子と対応づけて保持する第2保持手段と、
    を備えるデータ転送装置によるデータ転送方法であって、
    前記属性情報の組合せは、排他制御属性、キャッシュ属性、セキュリティ属性、リクエストタイプ属性、データサイズ属性のうち少なくとも何れか2つの属性の組合せであり、
    前記第1保持手段が保持している転送要求のうち、前記第2保持手段に保持されている属性情報の組合せと一致する属性情報の組合せを含む転送要求について、当該転送要求に含まれる属性情報の組合せと一致する属性情報の組合せに対応づけられている第1識別子を前記転送要求の属性情報の組合せの代わりに含めて優先的に送信するように並び替えて送信することを特徴とするデータ転送方法。
JP2011278698A 2011-12-20 2011-12-20 データ転送装置及びデータ転送方法 Active JP5906078B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011278698A JP5906078B2 (ja) 2011-12-20 2011-12-20 データ転送装置及びデータ転送方法
US13/715,746 US9268725B2 (en) 2011-12-20 2012-12-14 Data transferring apparatus and data transferring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011278698A JP5906078B2 (ja) 2011-12-20 2011-12-20 データ転送装置及びデータ転送方法

Publications (3)

Publication Number Publication Date
JP2013130953A JP2013130953A (ja) 2013-07-04
JP2013130953A5 JP2013130953A5 (ja) 2014-12-25
JP5906078B2 true JP5906078B2 (ja) 2016-04-20

Family

ID=48611393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011278698A Active JP5906078B2 (ja) 2011-12-20 2011-12-20 データ転送装置及びデータ転送方法

Country Status (2)

Country Link
US (1) US9268725B2 (ja)
JP (1) JP5906078B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6920920B2 (ja) * 2017-08-09 2021-08-18 オムロンヘルスケア株式会社 データ送信装置およびデータ受信装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
JPH10173659A (ja) * 1996-12-05 1998-06-26 Uniden Corp 送信装置、受信装置、パケット伝送システム、及びパケット信号伝送方法
US6032197A (en) * 1997-09-25 2000-02-29 Microsoft Corporation Data packet header compression for unidirectional transmission
EP1081910B1 (en) * 1999-08-06 2005-08-31 Matsushita Electric Industrial Co., Ltd. Data transmission and reception apparatus
US6751710B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method
US6725343B2 (en) * 2000-10-05 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
US6925537B2 (en) * 2001-06-11 2005-08-02 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US7162546B2 (en) * 2001-12-27 2007-01-09 Intel Corporation Reordering unrelated transactions from an ordered interface
JP2003338830A (ja) * 2002-03-12 2003-11-28 Matsushita Electric Ind Co Ltd メディア送信方法、メディア受信方法、メディア送信装置及びメディア受信装置
DE10213839B4 (de) * 2002-03-27 2016-11-03 Advanced Micro Devices, Inc. DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
US7480303B1 (en) * 2005-05-16 2009-01-20 Pericom Semiconductor Corp. Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
JP4662273B2 (ja) * 2006-03-24 2011-03-30 富士通株式会社 通信装置、方法及びプログラム
US20110149848A1 (en) * 2009-08-17 2011-06-23 Qualcomm Incorporated Header compression for relay nodes
US8799550B2 (en) * 2010-07-16 2014-08-05 Advanced Micro Devices, Inc. System and method for increased efficiency PCI express transaction

Also Published As

Publication number Publication date
JP2013130953A (ja) 2013-07-04
US20130159574A1 (en) 2013-06-20
US9268725B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
US9672143B2 (en) Remote memory ring buffers in a cluster of data processing nodes
KR100675850B1 (ko) AXI 프로토콜을 적용한 NoC 시스템
US9411775B2 (en) iWARP send with immediate data operations
WO2016202114A1 (zh) 一种数据传输方法、装置及存储介质
US8473658B2 (en) Input output bridging
US9678891B2 (en) Efficient search key controller with standard bus interface, external memory interface, and interlaken lookaside interface
US7277975B2 (en) Methods and apparatuses for decoupling a request from one or more solicited responses
US20160011994A1 (en) Multi-processor with efficient search key processing
US9594706B2 (en) Island-based network flow processor with efficient search key processing
CN116795763B (zh) 基于axi协议的数据分组传输的方法、片上系统和芯片
US9112736B2 (en) Data transfer apparatus, data transfer method, and inter-chip communication system
JP3988475B2 (ja) 送信装置、受信装置およびそれらの方法
JP5906078B2 (ja) データ転送装置及びデータ転送方法
US11636061B2 (en) On-demand packetization for a chip-to-chip interface
JP2013130952A (ja) データ転送装置及びデータ転送方法
US9632959B2 (en) Efficient search key processing method
JP5800565B2 (ja) データ転送装置及びデータ転送方法
EP1049292A2 (en) System and method for network monitoring
JP5865067B2 (ja) データ転送装置及びデータ転送方法
JP4519090B2 (ja) 送信装置、受信装置およびそれらの方法
JP2018173856A (ja) 情報処理装置およびその制御方法
JP2010147729A (ja) 通信制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160318

R151 Written notification of patent or utility model registration

Ref document number: 5906078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151