JP2012039266A - 通信制御装置及び方法 - Google Patents

通信制御装置及び方法 Download PDF

Info

Publication number
JP2012039266A
JP2012039266A JP2010175735A JP2010175735A JP2012039266A JP 2012039266 A JP2012039266 A JP 2012039266A JP 2010175735 A JP2010175735 A JP 2010175735A JP 2010175735 A JP2010175735 A JP 2010175735A JP 2012039266 A JP2012039266 A JP 2012039266A
Authority
JP
Japan
Prior art keywords
unit
transfer
communication
data
communication control
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.)
Granted
Application number
JP2010175735A
Other languages
English (en)
Other versions
JP5729938B2 (ja
JP2012039266A5 (ja
Inventor
Motoharu Suzuki
基治 鈴木
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 JP2010175735A priority Critical patent/JP5729938B2/ja
Priority to US13/188,022 priority patent/US8842547B2/en
Publication of JP2012039266A publication Critical patent/JP2012039266A/ja
Publication of JP2012039266A5 publication Critical patent/JP2012039266A5/ja
Application granted granted Critical
Publication of JP5729938B2 publication Critical patent/JP5729938B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0847Transmission error
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Abstract

【課題】効率的なプロトコル処理を実現する通信制御装置を提供することにより、所定の通信プロトコルにしたがって外部装置からデータを受信する際の、通信処理の効率を向上する。
【解決手段】他機器との間で無線または有線による通信を行う通信制御装置は、他機器から受信した信号から受信データを生成する通信部と、通信部から主記憶部と主記憶部とは異なるバスに接続された補助記憶部とへDMAによるデータ転送を行う転送部とを有する。通信制御部は、転送部を用いて主記憶部へ受信データを転送する第1転送処理を実行し、この第1転送処理の実行中に、当該受信データのうちのヘッダを含む一部のデータを転送部を用いて補助記憶部へ転送する第2転送処理を実行する。そして、第2転送処理による補助記憶部へのデータの転送が終了すると、補助記憶部に記憶されたデータを用いてヘッダ解析が行われる。
【選択図】図5

Description

本発明は、通信制御装置および方法に関する。
近年、様々な機器を、有線/無線ネットワークに直接に接続する機会が増加している。そのような機器の例として、携帯端末、プリンタ、カメラ、コピー機、ディスプレイ、ビデオ機器、音響装置等がある。これらの機器に搭載されるメインCPUは、パーソナルコンピュータに搭載されるメインCPUと比較して低処理能力である場合が多い。そのような機器資源を利用し、ネットワークにおいて標準的に使用されているTCP/UDP/IPといったインターネット標準プロトコルを実現しようとした場合には、次の2つの方法が考えられる。
第一の方法はTCP/IPのプロトコルスタックをメインCPUで実行する方法である。この場合、メインCPUは通信処理とアプリケーション処理との少なくとも2つを実行する必要があるため、両者を同時に実行するような場合、どちらかもしくは両方の処理スピードが低下する可能性がある。第二の方法は、メインCPUから通信処理を独立させる方法である。詳細には、TOE(TCP/IPオフロードエンジン)といったプロトコル処理に特化した補助的デバイスを利用する方法や、メインCPUとは独立したサブCPUでプロトコルスタックを実行するといった方法がある。この方法は、メインCPUから通信処理を分離させているため、アプリケーション処理と通信処理の各々が他の処理に与え得る処理能力への影響が小さい。
特許文献1には、TOEについて記載されている。特許文献1では、アプリケーションを実行するアプリCPUとのインターフェイスを持ち、アプリCPUから入力されるアプリケーションデータを優先的に送信する調停機能を持たせたTCP/IPエンジンが記載されている。また、アプリCPUとTCP/IPエンジンとの間におけるアプリケーションデータの受け渡しにDMA(Direct Memory Access)を使用する方法が記載されている。
また、特許文献2には、通信処理におけるデータ処理方法が記載されている。特許文献2では、受信したデータパケットをヘッダとデータに分離し、それぞれ別の領域にコピーして扱う方法が記載されている。また、特許文献3には、通信制御装置に適用できる集積回路装置が記載されている。特許文献3では、受信パケットを解析し、解析結果を元に当該パケットをメモリ上のどのエリアにコピーするか決定し、決定したエリアへ当該パケットをDMAにより転送することが記載されている。
特開2003−143221号公報 特開2005−137022号公報 特開2006−050503号公報
ネットワークからヘッダ部とデータ部を含むパケットを受信した場合、まずパケットの解析を行うために当該パケットを受信バッファへコピーするのが一般的である。ここで、受信パケットのうち解析対象がヘッダ部のみである場合に、ヘッダ部からデータ部までのすべてを受信バッファへコピーし終えてから解析を開始すると、解析を開始するまでに無駄な待ち時間が発生することになる。このことは通信のスループットを低下させる可能性がある。
受信バッファへのパケットのコピーを、CPU等の解析機能を有するデバイスとは独立したデバイス、例えばDMAC(Direct Memory Access Controller)で実行することにより、コピー処理終了前に解析を実行することはできる。すなわち、DMACでパケットのコピーを行っている間であっても、DMAによるヘッダ部のコピー終了後に当該ヘッダ部の解析をCPUが行うようにすることで、解析処理とデータ部のコピー処理を並列させることが出来る。しかし、ヘッダ部とデータ部をすべて同じメモリ上にある受信バッファへコピーした場合には、以下の課題が発生する。すなわち、データ部のコピーを行うためのDMAによるメモリアクセスと、ヘッダ解析のためのCPUによるメモリアクセスが競合するため処理効率が低下する可能性がある。
本発明は、上記の課題に鑑みてなされたものであり、所定の通信プロトコルにしたがって外部装置からデータを受信する際の、通信処理の効率を向上することを目的とする。
上記の目的を達成するための本発明の一態様による通信制御装置は以下の構成を備える。すなわち、
他機器との間で無線または有線による通信を行う通信制御装置であって、
他機器から受信した信号から受信データを生成する通信手段と、
前記通信手段から第1記憶手段と前記第1記憶手段とは異なるバスに接続された第2記憶手段とへDMAによるデータ転送を行う転送手段と、
前記転送手段を用いて前記第1記憶手段へ前記受信データを転送する第1転送処理を実行し、前記第1転送処理の実行中に、当該受信データのうちのヘッダを含む一部のデータを前記転送手段を用いて前記第2記憶手段へ転送する第2転送処理を実行する制御手段と、
前記第2転送処理による前記第2記憶手段への前記一部のデータの転送が終了すると、前記第2記憶手段に記憶された前記一部のデータを用いてヘッダ解析を行う解析手段とを備える。
本発明によれば、所定の通信プロトコルにしたがって外部装置からデータを受信する際の、通信処理の効率が向上する。
実施形態によるシステム構成例を示す図。 第一実施形態における通信制御装置の構成例を示すブロック図。 第一実施形態における通信制御部の機能構成例を示すブロック図。 第一実施形態における通信制御部の処理を表したフローチャート。 第一実施形態における通信制御装置のデータフロー図。 DMA転送部の使用時におけるバス動作の一例を示す図。
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。なお、以後の説明では、有線規格にEthernet(登録商標) II、無線規格にIEEE802.11を例に挙げて説明するが、本発明が適用できる範囲はこれに留まるわけではないことを先に述べておく。
[第1実施形態]
図1は、本実施形態にかかる通信制御装置103を適用したシステム例を示す図である。電子機器101は、通信制御装置103と主制御装置102を収容している。主制御装置102は、電子機器101のアプリケーションを制御するための装置である。主制御装置102は、電子機器101が例えばテレビであれば表示のためのアプリケーションを、プリンタであれば印刷のためのアプリケーションを、カメラであれば撮像のためのアプリケーションを担う。
通信制御装置103は、主制御装置102では行わない電子機器101の通信に係る処理を担う。なお、本実施形態では、通信制御装置103が無線通信と有線通信の両方を使用できるものとして説明する。アンテナ104は無線通信のための外部インターフェイスの例であり、ケーブルソケット105は有線通信のための外部インターフェイスの例である。各通信インターフェイスは、各通信媒体を介して他機器とネットワークを構築する。たとえば、無線通信の場合には、アンテナ104から、大気106を介して、無線通信機器108との無線ネットワークが構築される。有線通信の場合には、ケーブルソケット105に接続されたケーブル107を介して、他の有線通信機器109との有線ネットワークが構築される。
図2は、電子機器101の内部構成例を表したブロック図である。図2において、主記憶部201は、主制御装置102と通信制御装置103それぞれがアクセス可能な記憶部である。データ送信に際しては、主制御装置102は、通信相手に送信したいデータを主記憶部201に格納し、通信制御装置103は、主記憶部201に格納されたデータを所定のプロトコル処理により通信パケット化して、通信相手に送信する。また、主記憶部201は、通信制御装置103が、無線通信機器108または有線通信機器109より受信したデータに所定のプロトコル処理を施した後、主制御装置102へ送信する際にも使用される。
メインバス202は、主制御装置102と通信制御装置103と主記憶部201とを接続しているバスである。通信制御部203は、通信制御装置103全体の状態監視や制御を行う。通信制御部203の詳細な動作については後述する。ローカルバス204には、通信制御装置103に存在する各種モジュールが接続される。補助記憶部205は、通信制御装置103が各種処理を実行するために必要となるワークメモリとして使用される。なお、主記憶部201はメインバス202に、補助記憶部205はローカルバス204に接続されている。すなわち、主記憶部201と補助記憶部205とはそれぞれ異なるバスに接続された記憶部である。ただし、本発明はこのような構成に限られるものではない。たとえば、複数のバスマスタが複数のバススレーブに対して同時アクセスができるクロスバースイッチバスを適用することも可能であり、その場合は、必ずしも補助記憶部205と主記憶部201がそれぞれ別々のバスに接続されている構成とはならない。
無線通信部206は、通信相手と無線通信を実行するために必要となる媒体アクセス制御や物理層に係る処理を実行する。無線通信部206は、通信制御部203からの制御情報を元に動作し、通信相手との送受信データを後述のDMAバス209を使用して送受信する。データの受信時において、無線通信部206は受信した信号から、DMA部208により転送が可能な受信データを生成する。無線通信部206の状態変化時には、通信制御部203に割り込み信号線210を介して割り込み信号が送信され、これにより状態変化の発生が無線通信部206から通信制御部203に通知される。
有線通信部207は、通信相手と有線通信を実行するために必要となる媒体アクセス制御や物理層に係る処理を実行する。有線通信部207は、通信制御部203からの制御情報を元に動作し、通信相手との送受信データを後述のDMAバス209を使用して送受信する。データの受信時において、有線通信部207は受信した信号から、DMA部208により転送が可能な受信データを生成する。有線通信部207の状態変化時には、通信制御部203に割り込み信号線211を介して割り込み信号が送信され、これにより状態変化の発生が有線通信部207から通信制御部203に通知される。
DMA部208は、主記憶部201または補助記憶部205から読み出したデータを無線通信部206または有線通信部207に転送する。また、DMA部208は、無線通信部206または有線通信部207から読み出した受信データを主記憶部201へDMAにより転送する第1転送処理と、当該受信データを補助記憶部205にDMA転送する第2転送処理とを行うことができる。なお、後述するように、第2転送処理は、第1転送処理による受信データの転送中に実行され、当該受信データの一部のデータ(ヘッダ解析に必要な部分を含む)を補助記憶部205にDMA転送する。DMAバス209は、有線通信部207または無線通信部206とDMA部208との間で行われるDMAによるデータの送受信時に使用される。
割り込み信号線210は、無線通信部206から通信制御部203へ割り込み信号を伝送する。無線通信部206は、外部よりデータを受信した場合や、異常を検知した場合に、通信制御部203へ割り込み信号をアサートするのに割り込み信号線210を使用する。同様に、割り込み信号線211は、有線通信部207から、通信制御部203へ割り込み信号を伝送する信号線である。有線通信部207は、外部よりデータを受信した場合や、異常を検知した場合に、通信制御部203への割り込み信号をアサートするのに割り込み信号線211を使用する。
割り込み信号線212は、DMA部208から、通信制御部203へ割り込み信号を伝送するための信号線である。DMA部208は、DMA処理が終了した場合や処理途中にバスアクセスエラー等の異常を検知した場合に、通信制御部203への割り込み信号をアサートするのに割り込み信号線212を使用する。
割り込み信号線213は、主制御装置102から通信制御部203への割り込み信号を伝送する信号線である。主制御装置102は、通信制御部203に対して命令をセットしたい場合等に、割り込み信号線213を用いて通信制御部203への割り込み信号をアサートする。割り込み信号線214は、通信制御部203から主制御装置102へ割り込み信号を伝送する信号線である。通信制御部203において主制御装置102によってセットされた命令が終了したときや処理しきれないエラーが発生した場合に、通信制御部203は割り込み信号線214を用いて主制御装置102への割り込み信号をアサートする。
演算部215は、内部にレジスタと加算器を具備する。演算部215は、メインバス202に接続され、メインバス202に流れるデータの加算値をレジスタに格納する。すなわち、演算部215は、加算開始時のデータをレジスタに取り込むと、以降のデータをレジスタに格納されている値に加算して当該レジスタを更新していく処理を行う。演算部215は、誤り検出のために用いられるものであり、より具体的にはTCPヘッダのチェックサム算出のために用いられる。
本実施形態では、主記憶部201はLSIの外部に具備されるDRAMであり、補助記憶部205はLSI内部に具備されたオンチップRAMとする。すなわち、主記憶部201は補助記憶部205と比較し、記憶容量に優位性があるが、アクセス速度に不利があるものとする。逆に言えば、補助記憶部205は主記憶部201よりも低い記憶容量であるが、通信制御部203によるアクセス速度に優位性がある。
次に通信制御部203の詳細な構成、動作について説明する。図3は、本実施形態の通信制御部203に実装されている各種機能をブロックとして表したものである。命令処理部301は、主制御装置102から受信した各種命令を解析し、解析結果を元にどのような処理を行うべきかを決定する。
通信上位層処理部302は、例えば、OSI参照モデルでいうところのトランスポート層(第四層)よりも上位レイヤであるプロトコルについて処理を行う。トランスポート層処理部303は、OSI参照モデルにおけるトランスポート層(第四層)に該当するプロトコルの処理を実行する。本実施形態では、TCPのプロトコルに対応しているものとする。ネットワーク層処理部304は、OSI参照モデルにおけるネットワーク層(第三層)に該当するプロトコルの処理を実行する。本実施形態では、IPプロトコルに対応しているものとする。
無線制御部305は、無線通信部206の初期設定や各種コマンド発行を行う。有線制御部306は、有線通信部207の初期設定や各種コマンド発行を行う。DMA制御部307は、DMA部208に対して転送の開始処理や転送モードの設定等を行う。
状態検知部308は、無線通信部206と有線通信部207とDMA部208と主制御装置102からの割り込み信号を受信することにより各種状態を検知する。なお、状態の検知はこのような割り込み信号を使用した構成に限られるものではなく、周知の種々の構成を用いることができる。たとえば、無線通信部206と有線通信部207とDMA部208と主制御装置102のそれぞれで状態を示すレジスタを用意しておく。そして、状態検知部308が定期的もしくは不定期に該当レジスタを監視することにより、上述したような割り込み信号を使用しなくても状態監視が実現可能となる。
通信制御装置103が主制御装置102に対して各種情報を送信する場合、通知部309は、送信すべき情報があることを主制御装置102への割り込み信号線214を使用して通知する。ただし、主制御装置102の構成よっては必ずしも割り込み信号線は必要ない。状態検知部308に関して上述したように主制御装置102が定期的に通信制御部203の状態を確認する動作をする場合には、割り込み信号の送信は不要である。本発明では、送信すべき情報が存在することの通知をいずれの方法で実施しても良い。
ローカルバス接続部310は、ローカルバス204のプロトコルに則った動作を行い、通信制御装置103内の各種機能部にアクセスするのに使用される。なお、通信制御装置103内の各種機能部から、通信制御部203へアクセスができるように構成されていても良い。メインバス接続部311は、メインバスのプロトコルに則った動作を行い、通信制御装置103の外部にある各種機能部にアクセスするのに使用される。なお、通信制御装置103の外部にある各種機能部から、通信制御部203へアクセス可能なように構成されていても良い。
例えば無線を使用してWeb閲覧をするようなときは、無線接続からIP、TCP、HTTPといった各レイヤそれぞれで接続されなければならない。接続状態監視部312は上記の例のように各レイヤにおいての接続プロトコルや接続状態を監視する機能を備える。
次に、本実施形態の通信制御部203による処理手順について詳細に説明する。図4A、図4Bは、通信制御装置103がTCP/IPパケットを無線または有線を介して受信した場合における、通信制御部203の一連の処理手順をフローチャートで表したものである。
まず、通信制御部203の状態検知部308は、信号線210,211からの割り込み信号により、無線通信部206または有線通信部207からの受信通知を検知する(ステップ401)。その後、通信制御部203のDMA制御部307は、DMA部208を起動する(ステップ402)。すると、DMA部208は、無線通信部206もしくは有線通信部207からの受信データを主記憶部201と補助記憶部205へコピーすることを開始する。なお、DMA部208は、補助記憶部205にはパケットのうちヘッダ情報に係る部分を転送し、主記憶部201には当該パケットの全体を転送する。たとえば、本実施形態では、データ転送の開始部分から、TCPヘッダまでが補助記憶部205にコピーされるものとする。従って、主記憶部201への転送が終了する前に補助記憶部205への転送は終了する。さらに、DMA部208は、演算部215に対して、コピー対象のデータの加算演算の開始を要求する。なお、加算演算は主記憶部201へのデータ転送開始直後から、DMAバス209を通るデータ全てを加算対象として計算するものとして説明する。しかし、通信制御部203がDMAバス209を通るデータのうち、ヘッダ情報またはデータ部のどちらであるかを把握できる場合は、必ずしもヘッダ情報に対して加算演算を行う必要は無い。
通信制御部203は、DMA部208から補助記憶部205へのヘッダのコピーが完了したことを検知するまで待機する(ステップ403、404)。補助記憶部205へのヘッダのコピーが終了すると、DMA部208は通信制御部203に対して補助記憶部205へのヘッダの転送完了を通知する。ヘッダの転送完了が通知された通信制御部203は、受信インターフェイスに応じて、すなわち有線または無線に応じて部分データ(ヘッダ)に対する解析処理を変更する(ステップ405)。この処理の切り替え後、以下に述べるEthernet(登録商標)II フレームのヘッダよりも前に付加されている、通信インターフェイスに依存するヘッダ処理を行う。即ち、通信制御部203は、受信インターフェイスが有線である時に、有線通信部207を使用する際に必要になるヘッダがある場合に、そのヘッダ解析を行う(ステップ407)。同様に、通信制御部203は、受信インターフェイスが無線である時に、無線通信部206を使用する際に必要になるヘッダがある場合に、そのヘッダ解析を行う(ステップ406)。なお、通信インターフェイスに依存するヘッダが存在しない場合はステップ406、407は省略しても良い。
次に、Ethernet(登録商標) IIフレームのヘッダ解析を行う(ステップ408)。ここでは特に上位層であるネットワーク層のプロトコルの特定処理を行うことになる。例えばEthernet(登録商標)IIでは、タイプフィールドに上位層のプロトコルタイプを識別するための情報が入っている。通信制御部203は、このプロトコルタイプ(本実施形態では、IPか否か)に基づいて処理の分岐を行う(ステップ409)。なお、ステップ409で上位プロトコルが判断できない場合や、通信制御部203ではそれ以上処理が出来ないプロトコルと判断した場合は、この段階でステップ412に処理が進む。そして、通信制御部203は、主記憶部201へのDMA転送が終わっていることを確認した上で、主制御装置102にデータ受信を通知する(ステップ412、413、414)。
ステップ409のヘッダ解析によりIPパケットだと分かった場合は、通信制御部203はIPヘッダの解析と処理を行う(ステップ410)。ここで行われる解析には、次に列挙する項目の解析が含まれる。すなわち、IPバージョン、IPヘッダ長とデータ長、宛先IPアドレス、IPヘッダチェックサムが挙げられる。さらにIPフラグメントされている場合は、ここでリアセンブル処理が行われる。詳細なリアセンブル処理方法については割愛するが、ここではまだ主記憶部201にデータが全て転送完了していなくてもリアセンブルが行えるよう、アドレスポインタ管理によるリアセンブル処理を行うのが良い。
次に、上位プロトコル種別によって処理が分岐する(ステップ411)。上位プロトコルがTCPではなかった場合は、通信制御部203での受信パケットに対するこれ以上の処理は出来ない。したがって、通信制御部203は、DMA部208による主記憶部201への転送完了を待ち(ステップ412,414)、主制御装置102に受信通知を行う(ステップ413)。TCPであった場合は、通信制御部203は、更にTCPヘッダの解析・処理を行う(ステップ415)。TCPヘッダの解析・処理手順については詳細な説明を割愛するが、IPヘッダと同様にTCPヘッダも補助記憶部205にすでに格納されているので、TCPヘッダ内にあるデータ長とチェックサム以外の解析については可能な状態である。そこで、データ長とチェックサム以外の項目に対し、必要な解析と処理から実行する。例えば、その解析の時点で自分宛ではない場合や誤りがあることが分かった場合は、DMA転送を中止させるといったことが可能である。
そして、TCPチェックサム判定のために次の準備をしておく。まず、通信制御部203は、TCPチェックサム演算用のTCP擬似ヘッダを作成し、その加算値を求めておく(ステップ416)。TCP擬似ヘッダにTCPデータ部の情報は必要ないため、主記憶部201へのDMA転送が終了していなくともTCP擬似ヘッダの準備は可能である。次に、通信制御部203は、演算部215で加算処理を行ってしまっている、TCPチェックサム演算対象領域以外の領域の加算値を求める(ステップ417)。演算部215はメインバス202に現れるデータの最初から加算処理を行っている。そのため、無線通信部206または有線通信部207にかかる情報やIPヘッダといった、TCPチェックサム演算対象領域ではない情報の加算が行われている状態である。従って、通信制御部203は、その差分をとるためにこれら対象外領域の加算を行っておく。
TCPヘッダ内にあるデータ長とチェックサム以外の解析・処理が終了した段階で、もし主記憶部201へのDMA転送が終了していない場合は、通信制御部203は、当該DMA転送が終了するまで待機する(ステップ418、426)。他方、通信制御部203は、DMA転送が終了したことを検知した場合は、演算部215の加算演算処理も終了しているので、その結果を確認する(ステップ419)。
そして、通信制御部203は、
・TCP擬似ヘッダの加算結果(ステップ416)と、
・TCPチェックサム演算対象領域以外の領域の加算結果(ステップ417)と、
・演算部215の加算結果(ステップ419)と
を元にTCPチェックサムを求め、受信時のデータ誤りが発生していないかチェックを行う(ステップ420)。チェックサムの結果より誤りがあるか否かの判断で処理が分岐する(ステップ421)。誤りが無いのであれば、通信制御部203は、受信したTCPパケットは有効パケットであるとして扱う(ステップ422)。誤りが発生している場合は、通信制御部203は、受信したパケットを破棄する(ステップ423)。
こうして1つのパケットを受信してからの一連の処理が終わると、通信制御部203は、TCPデータサイズが主制御装置102から要求された所定サイズに達したかどうかを判断する(ステップ424)。通信制御部203は、TCPデータサイズが所定サイズに達したと判断すると、主制御装置102が用意した受信バッファにTCPデータを格納し、通知を行う(ステップ425)。その後、TCPを使用した通信を終了する。他方、まだ所定のサイズに達していないと判断された場合は、引き続き受信処理を継続するべく、処理をステップ401に戻す。
次に、データ受信時における通信制御装置103の各機能ブロック間で送受信される制御情報について説明する。図5は、有線通信機器109からTCP/IPデータを有線を介して受信する時の、DMA部208、通信制御部203、有線通信部207、演算部215、および有線通信機器109の間でやり取りされるデータや制御情報を示した図である。ここで、DMA部208、通信制御部203、有線通信部207、有線通信機器109はすべてリセット解除や初期化がされており、正常動作状態であるものとする。
まず、有線通信機器109より、有線通信を介してTCP/IPパケットが送信されると(501)、有線通信部207は、受信処理を開始する(502)。正常に受信が行われると、有線通信部207は、通信制御部203に、受信したことを通知するために割り込み信号を送信する(503)。なお、この送信は、割り込み信号線211を使用して行われる。割り込み信号線211からの割り込み信号を受信した通信制御部203は、有線通信部207に割り込み通知要因の問合せを行う(504)。割り込み通知要因が、データの受信によるものであると分かった場合、通信制御部203は、有線通信部207が受信したデータを主記憶部201と補助記憶部205に転送するようにDMA部208に命令をセットする(505)。ここでセットされる命令は、主記憶部201の転送先アドレスと転送データサイズ、補助記憶部205の転送先アドレスと転送データサイズである。なお、これらのセットされる内容の一部またはすべてが予めDMA部208に事前に決定されていても良い。たとえば、補助記憶部205のサイズが1パケット分のヘッダ情報しか入らないサイズである場合は、補助記憶部205へのアドレスは固定となる。従って、そのようなアドレスをDMA部208が事前に把握している場合、外部からの設定は不要となる。またパケットが特定のプロトコルと決まっている場合、ヘッダ部の最大長も決まっているので、その最大長を常に補助記憶部205へ格納する仕組みにDMA部208がなっていれば、サイズ設定も不要となる。こうして、通信制御部203はDMA部208による受信データの転送を制御する。また、有線通信部207に割り込み要因確認を行った際に受信データサイズが分からないような場合は、転送データサイズではなく、転送先の空きサイズを設定しても良い。なお、補助記憶部205への転送データサイズは、少なくともパケットの先頭からTCPヘッダまでのデータサイズに相当するものとする。
DMA部208は、命令がセットされると同時に演算部215に対して加算演算開始の命令をセットする(506)。たとえば、DMA部208の内部に演算部215が実装されている場合は、通信制御部203からDMA部208にセットした命令を元に演算部215にも演算の開始を命令セットするように構成することができる。また、DMA部208と別に演算部215を具備した場合には、DMA部208へ命令をセットする前に演算部215に演算開始命令をセットする方法が容易である。
データ転送命令を受信したDMA部208は、有線通信部207から主記憶部201へのデータ転送(第1転送処理)を開始する(507)。また、DMA部208は、有線通信部207から補助記憶部205へのデータ転送(第2転送処理)も開始する(507)。さらに、同時に演算部215がメインバス202に転送されるデータをスヌープして行う加算演算を開始する(508)。
ここで、演算部215がどのように演算を行うかについて、図6を用いて説明する。図6の(A)は一般的なバス構成のデータ書き込み時における動作について示すタイムチャートである。600はバスクロックである。601はアドレスバス、602はデータバス、603はリクエスト信号、604は応答信号である。まず、バスにアクセスするもの(以後バスマスタ)は、書き込みアドレスをアドレスバス601にセットし、書き込む値をデータバス602にセットした状態でリクエスト信号603をバスに対して送信する。書き込みアドレスを受け取った、バスからアクセスをうけるもの(以後バススレーブ)は、書き込みが完了したときに応答信号604を返す。応答信号を受け取ったバスマスタは、次のアクセスができるようになる。
図6の(B)は一般的なバスのデータ読み出し時における動作について説明するタイムチャートである。605はバスクロックである。606はアドレスバス、607はリクエスト信号、608は応答信号、609はデータバスである。まず、バスマスタは読み出しアドレスをアドレスバス606にセットし、リクエスト信号607を送信する。読み出しアドレスを受け取ったバススレーブは、バスマスタに渡すデータをデータバス609にセットし、そのセットが終わったことを告げるため、応答信号608を送信する。応答信号を受け取ったバスマスタは、応答信号608のアサートからバスに規定されたサイクル数以内にデータバス609上の値を読むことによりデータ読み出し動作は完了する。
図6の(A)または図6の(B)のバスをスヌープして加算演算を行う演算部215は次の動作を行う。例えば、演算部215がDMAバス209に接続している場合は、DMAバス209はデータ受信時に、図6の(B)の読み出し動作を行うので、図6の(B)の矢印の位置、すなわち応答信号608の直後でデータをスヌープすると良い。また、図2のように演算部215がメインバス202に接続している場合は、データ受信時に図6の(A)の書き込み動作を行うので、図6の(A)の矢印の位置、すなわちリクエスト信号603の直後でデータバス602をスヌープすると良い。
図5に戻り説明を続ける。DMA部208は、有線通信部207から補助記憶部205への、受信データの所定サイズ分のコピー(データ転送)を終了すると(509)、これを通信制御部203に通知する(510)。ここで、所定サイズとは、データ転送の開始部分からTCPヘッダまでのデータサイズである。補助記憶部205への所定サイズのデータのコピーが完了した旨の通知を受けた通信制御部203は、補助記憶部205にコピーされたデータにアクセスし、ヘッダの解析を始める(511)。図示の例では、有線通信部207からのデータのみを処理しているため、無線通信からのデータ受信か有線通信からのデータ受信かの判断は必要ない。そこで有線通信部207にかかるヘッダ情報とその続きにEthernet(登録商標) IIのフレーム構成となっていることを前提に解析を始める。なお、有線通信部207にかかるヘッダ情報とは、有線通信部207の状態監視や制御に必要な情報であるが、フォーマットは通信制御部203が解析可能であればどのような型でも良いし、必要なければ使用しなくとも良い。
有線通信部207にかかるヘッダ情報の解析に続いて、データリンク層の解析を行い、さらにネットワーク層の解析を行う。例えばIP通信であればIPヘッダの解析を行い、そしてトランスポート層の種別を判定し所定のプロトコル解析を行う。図4A、図4Bのフローチャートで説明したように、本例では、TCPパケット受信を例にしているので、TCPヘッダのデータ長、チェックサム以外について解析を行う。
また、TCPヘッダのチェックサムを解析するために、以下の処理を行う。演算部215はDMA部208の転送と同時に演算を開始しているため、ステップ417で説明したように、TCPチェックサム演算に必要ではないデータの加算値(以後、不要加算値)を予め用意しておく(512)。また、ステップ416で説明したように、TCPチェックサム演算に必要となるTCP擬似ヘッダをDMA部208から主記憶部201へのデータ転送が終わる前に用意しておき、合わせて擬似ヘッダの総和も計算しておく(513)。主記憶部201へのDMA転送が終了したときに(514)、DMA部208は、通信制御部203にDMA転送が終了したことを通信制御部203に通知する(515)。DMA転送が終了するのとほぼ同時に演算部215の演算結果が求められているので(516)、通信制御部203は、その加算演算結果を参照する(517)。そして、先に求めた不要加算値と擬似ヘッダサム値と演算結果を元にチェックサムを求めて誤りの有無を判定し(518)、最終的に受信したパケットが有効であったか否か判断をする(519)。
以上、有線通信部207からTCP/IPパケットを受信した場合について説明したが、無線通信部206からTCP/IPパケットを受信した場合についても同様である。すなわち、無線通信部206からの受信通知を受け、それを元にDMA転送を開始するまでは同様の手順でよい。異なるのは補助記憶部205で解析を行う最初の部分が有線通信部207に係る情報ではなく、無線通信部206にかかる情報に置き換わる点である。この情報の処理が終了すれば、後の処理手順は有線通信の場合と同様で良い。
また、上記は全てTCP/IPパケットが来ることを想定している場合の受信方法であり、具体的には、データ長が1500bytes前後(Ethernet(登録商標)のMTUに相当)が予想される場合の受信方法である。しかし、例えば無線を使用してTCP/IPパケットを使用した通信を行う場合、まず無線区間での接続設定等を行う必要がある。この段階でも無線通信部206と通信制御部203との間で各種データのやり取りが必要である。このとき、TCP/IPのパケットよりもデータ長の長いデータは来ないことが分かっている。またシステムによっては、主制御装置102が必要とするデータではないことも分かっている。このような場合は主記憶部201に受信したデータを格納する必要がないので、通信制御部203はDMA部208による主記憶部201への受信データのDMA転送を禁止する。すなわち、通信制御部203は、DMA部208に対して補助記憶部205のみへの受信データのDMA転送を指示することにより、必要のない転送を禁止することができる。これにより、消費電力を削減できる。このDMA部208へ、どのように指示をするかは、接続状態監視部312を具備することにより実現できる。接続状態監視部312により接続処理の進行状態から実際の接続状態まで管理し、その状態に応じて受信が予想される受信データの種別、サイズに応じてDMA部208への転送方法を指定することにより可能となる。
以上説明したように、本実施形態によれば、通信制御装置において、ネットワークからデータを受信したときの処理の効率が向上する。すなわち、本実施形態によれば、受信データとその一部のデータが、それぞれDMAにより第1記憶装置である主記憶部201と第2記憶装置である補助記憶部205へ同時にコピーされる。そして、通信制御部203は、主記憶部201への受信データのDMA転送を実行中に、補助記憶部205に記憶された上記一部のデータを用いて当該受信データのヘッダ解析を行うことができる。ここで、主記憶部201と補助記憶部205はそれぞれ別々のバスに接続されている。すなわち、ヘッダ解析の際には、主記憶部201とは独立した補助記憶部205にコピーされたヘッダのデータが用いられるので、メモリアクセスの集中が防止され、処理速度が向上する。なお、第2転送処理はヘッダ部分のみについて行われるので、第2転送処理を終えた後に第1転送処理をおこなうようにして、第1転送処理とヘッダ解析を同時に行うように構成することも可能である。
また、受信データのうち必要となるヘッダのサイズだけ抽出して補助記憶部205へコピーするようにしたため、補助記憶部205のメモリサイズを低減することが可能となる。また、必要最低限の転送サイズに留めるため、転送に必要となる消費電力も削減できる。さらに、通信制御部203が高速にアクセスすることができる補助記憶部205にヘッダデータが記憶されるため、ヘッダ解析処理を高速に行うことができる。このように、上記実施形態によれば、所定の通信プロトコルにしたがって外部装置からデータを受信する際の、通信処理の効率を向上することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (6)

  1. 他機器との間で無線または有線による通信を行う通信制御装置であって、
    他機器から受信した信号から受信データを生成する通信手段と、
    前記通信手段から第1記憶手段と前記第1記憶手段とは異なるバスに接続された第2記憶手段とへDMAによるデータ転送を行う転送手段と、
    前記転送手段を用いて前記第1記憶手段へ前記受信データを転送する第1転送処理を実行し、前記第1転送処理の実行中に、当該受信データのうちのヘッダを含む一部のデータを前記転送手段を用いて前記第2記憶手段へ転送する第2転送処理を実行する制御手段と、
    前記第2転送処理による前記第2記憶手段への前記一部のデータの転送が終了すると、前記第2記憶手段に記憶された前記一部のデータを用いてヘッダ解析を行う解析手段とを備えることを特徴とする通信制御装置。
  2. 前記第1転送処理によって前記第1記憶手段へ転送される前記受信データのチェックサムの値を得るために前記受信データについて加算演算を行う加算手段と、
    前記第2記憶手段に転送された前記ヘッダに含まれるチェックサムの情報と、前記第1転送処理による前記第1記憶手段への前記受信データの転送が終了した後の前記加算手段による加算演算の結果とに基づいて誤りの有無を判定する判定手段とを更に備えることを特徴とする請求項1に記載の通信制御装置。
  3. 前記通信手段は、無線通信部と有線通信部とを具備し、
    前記解析手段は、前記一部のデータが前記無線通信部と前記有線通信部のいずれにおいて受信されたものであるかに応じて、前記ヘッダに対する解析処理を変更することを特徴とする請求項1または2に記載の通信制御装置。
  4. 前記制御手段は、他機器との間で無線通信の接続設定のための通信が行なわれている場合には、前記第1転送処理の実行を禁止し、前記第2転送処理では、前記受信データの全体を前記第2記憶手段へ前記転送手段を用いて転送することを特徴とする請求項1または2に記載の通信制御装置。
  5. 前記第2記憶手段は、前記第1記憶手段よりも記憶容量が小さいが、前記解析手段からのアクセス速度が前記第1記憶手段より速いことを特徴とする請求項1乃至4のいずれか1項に記載の通信制御装置。
  6. 他機器との間で無線または有線による通信を行う通信装置の通信制御方法であって、
    通信手段が、他機器から受信した信号から受信データを生成する通信工程と、
    前記通信手段から第1記憶手段と前記第1記憶手段とは異なるバスに接続された第2記憶手段とへDMAによるデータ転送を行う転送手段が、前記第1記憶手段へ前記受信データを転送する第1転送工程と、
    前記転送手段が、前記第1転送工程の実行中に、前記受信データのうちのヘッダを含む一部のデータを前記第2記憶手段へ転送する第2転送工程と、
    解析手段が、前記第2転送工程による前記第2記憶手段への前記一部のデータの転送が終了すると、前記第2記憶手段に記憶された前記一部のデータを用いてヘッダ解析を行う解析工程とを有することを特徴とする通信制御装置の制御方法。
JP2010175735A 2010-08-04 2010-08-04 通信装置およびその制御方法 Expired - Fee Related JP5729938B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010175735A JP5729938B2 (ja) 2010-08-04 2010-08-04 通信装置およびその制御方法
US13/188,022 US8842547B2 (en) 2010-08-04 2011-07-21 Communication control apparatus and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010175735A JP5729938B2 (ja) 2010-08-04 2010-08-04 通信装置およびその制御方法

Publications (3)

Publication Number Publication Date
JP2012039266A true JP2012039266A (ja) 2012-02-23
JP2012039266A5 JP2012039266A5 (ja) 2013-09-12
JP5729938B2 JP5729938B2 (ja) 2015-06-03

Family

ID=45556106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010175735A Expired - Fee Related JP5729938B2 (ja) 2010-08-04 2010-08-04 通信装置およびその制御方法

Country Status (2)

Country Link
US (1) US8842547B2 (ja)
JP (1) JP5729938B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015014967A (ja) * 2013-07-05 2015-01-22 富士通コンポーネント株式会社 通信装置、および通信システム並びに通信方法
JP2016187167A (ja) * 2015-03-27 2016-10-27 アンリツ株式会社 通信障害監視装置、通信障害監視方法及び通信システム
JP2018097429A (ja) * 2016-12-08 2018-06-21 キヤノン株式会社 通信装置、その制御方法、およびプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146641A (ja) * 1986-12-10 1988-06-18 Nec Corp 受信装置
JPH06216970A (ja) * 1993-01-21 1994-08-05 Hitachi Ltd 通信制御アダプタ及び通信管理方式
JPH06266535A (ja) * 1993-01-12 1994-09-22 Hitachi Ltd 加算システムおよび加算部を備える通信システム
JP2001197092A (ja) * 2000-01-12 2001-07-19 Yokogawa Electric Corp サムチェック装置
JP2005102037A (ja) * 2003-09-26 2005-04-14 Renesas Technology Corp パケット通信装置
US20080043732A1 (en) * 2006-08-17 2008-02-21 P.A. Semi, Inc. Network direct memory access
JP2010109746A (ja) * 2008-10-30 2010-05-13 Toshiba Corp データ受信装置、データ受信方法、及びデータ受信プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010076328A (ko) * 2000-01-19 2001-08-11 이정태 티씨피/아이피를 하드웨어적으로 처리하는 장치 및 그동작방법
US7321599B1 (en) * 2002-07-30 2008-01-22 Otc Wireless, Inc. Wired protocol to wireless protocol converter
KR100492490B1 (ko) * 2002-10-31 2005-06-02 크로스반도체기술 주식회사 IPv4/IPv6 변환에 있어서 TCP 세그먼트/UDP 데이터그램의체크섬 계산 장치 및 방법
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US7826457B2 (en) * 2004-05-11 2010-11-02 Broadcom Corp. Method and system for handling out-of-order segments in a wireless system via direct data placement
US7596144B2 (en) * 2005-06-07 2009-09-29 Broadcom Corp. System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146641A (ja) * 1986-12-10 1988-06-18 Nec Corp 受信装置
JPH06266535A (ja) * 1993-01-12 1994-09-22 Hitachi Ltd 加算システムおよび加算部を備える通信システム
JPH06216970A (ja) * 1993-01-21 1994-08-05 Hitachi Ltd 通信制御アダプタ及び通信管理方式
JP2001197092A (ja) * 2000-01-12 2001-07-19 Yokogawa Electric Corp サムチェック装置
JP2005102037A (ja) * 2003-09-26 2005-04-14 Renesas Technology Corp パケット通信装置
US20080043732A1 (en) * 2006-08-17 2008-02-21 P.A. Semi, Inc. Network direct memory access
JP2010109746A (ja) * 2008-10-30 2010-05-13 Toshiba Corp データ受信装置、データ受信方法、及びデータ受信プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015014967A (ja) * 2013-07-05 2015-01-22 富士通コンポーネント株式会社 通信装置、および通信システム並びに通信方法
JP2016187167A (ja) * 2015-03-27 2016-10-27 アンリツ株式会社 通信障害監視装置、通信障害監視方法及び通信システム
JP2018097429A (ja) * 2016-12-08 2018-06-21 キヤノン株式会社 通信装置、その制御方法、およびプログラム

Also Published As

Publication number Publication date
US20120033557A1 (en) 2012-02-09
JP5729938B2 (ja) 2015-06-03
US8842547B2 (en) 2014-09-23

Similar Documents

Publication Publication Date Title
US7428690B2 (en) Packet communication apparatus
JP5207198B2 (ja) パケットを送受信する装置、プログラムおよびその方法
WO2020143237A1 (zh) 一种dma控制器和异构加速系统
WO2022032984A1 (zh) 一种mqtt协议仿真方法及仿真设备
JP5729938B2 (ja) 通信装置およびその制御方法
US8279790B2 (en) Packet buffering based at least in part upon packet receipt time interval weighted moving average
US10877911B1 (en) Pattern generation using a direct memory access engine
Schelten et al. A high-throughput, resource-efficient implementation of the RoCEv2 remote DMA protocol and its application
JP4098910B2 (ja) パケット転送制御装置及びパケット転送方法
KR20120012354A (ko) 부하 절감형 toe 네트워크 장치
WO2009125664A1 (ja) 通信プロトコル処理回路及び通信プロトコル処理方法ならびに通信端末
JP2012027577A (ja) バス間接続装置,画像処理装置
JP7027145B2 (ja) 通信装置、通信装置の制御方法およびプログラム
US8898716B2 (en) Method and apparatus for designing a communication mechanism between embedded cable modem and embedded set-top box
US11102150B2 (en) Communication apparatus and control method for communication apparatus
JP3606145B2 (ja) データ転送制御装置及び電子機器
JP2014168144A (ja) 通信方法及びスイッチングハブ
JP7423223B2 (ja) 通信装置
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
US20230179545A1 (en) Packet forwarding apparatus with buffer recycling and associated packet forwarding method
JP4519090B2 (ja) 送信装置、受信装置およびそれらの方法
JP6567476B2 (ja) データ処理装置
JP2013090200A (ja) 通信装置におけるメモリ管理方法、通信装置及びプログラム
JP2022179413A (ja) 元データパケットを使用するサービス状態レプリケーションのための方法及びシステム
JP2013110586A (ja) 通信システム、通信装置及び通信方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

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: 20150309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150407

R151 Written notification of patent or utility model registration

Ref document number: 5729938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees