JP2011199461A - データ通信装置 - Google Patents

データ通信装置 Download PDF

Info

Publication number
JP2011199461A
JP2011199461A JP2010062205A JP2010062205A JP2011199461A JP 2011199461 A JP2011199461 A JP 2011199461A JP 2010062205 A JP2010062205 A JP 2010062205A JP 2010062205 A JP2010062205 A JP 2010062205A JP 2011199461 A JP2011199461 A JP 2011199461A
Authority
JP
Japan
Prior art keywords
bus
data
host interface
amount
clock
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
JP2010062205A
Other languages
English (en)
Inventor
Masato Morioka
真人 森岡
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2010062205A priority Critical patent/JP2011199461A/ja
Publication of JP2011199461A publication Critical patent/JP2011199461A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

【課題】調停回路を用いずに、バスクロックを適切に選択することができる。
【解決手段】ホストインターフェースがバスに接続されているデータ通信装置において、前記バスに転送されるデータのデータ量を検出する検出部と、前記検出されたデータ量に基づいて、前記バスのクロック数を変更する変更部と、を有するデータ通信装置を提供する。また、前記バスに接続されているバッファメモリを有し、複数の前記ホストインターフェースが前記バスに接続され、前記検出部は、前記ホストインターフェース毎のデータ量を検出し、該検出された前記ホストインターフェース毎のデータ量に基づいて、前記ホストインターフェース毎の前記バッファメモリのサイズの割り当てを行う割り当て部を有してもよい。
【選択図】図1

Description

データを送受信するデータ通信装置に関する。
組み込み機器等に利用されるCPU(Central Processing Unit)を搭載したシステムオンチップ(SoC)には、例えばイーサネット(登録商標)、PCI−EXPRESS、USB、SDIOなどのホストインターフェースが複数実装されている。また、これらのホストインターフェースは常に送受信を行っているわけでも無いため、送受信用のバッファメモリとしてバス上にメモリを共有して使用し、メモリの削減と使用効率をあげているのが一般的である。
バス上のバスクロックは、ホストインターフェースが転送に要する時間とバッファメモリ上のデータをCPUなどが処理するのに要する時間に応じて決める必要がある。即ち、ホストインターフェースからデータを送信する場合、バッファメモリにCPUなどが送信データを書き込む時間とホストインターフェース機能ブロックがバッファメモリからデータを読み出してホストへ送信する時間に合わせる必要がある。
ホストインターフェースの転送レートが小さい場合は、バスクロックは遅くなり、転送レートが高い場合は、バスクロックは速くなる。ここで、必要以上に遅いバスクロックを使用すると、バス上の転送処理が追いつかなくなりホストインターフェースの転送性能(スループット)が落ちてしまう。また、必要以上に速いバスクロックを使用すると転送性能は落ちないものの、消費電力が大きくなってしまう。
そこで、動作しているホストインターフェース機能ブロックに応じてバスクロックを変更する技術が既に知られている(例えば、特許文献1参照)。
この技術では、バス上に調停回路を設け、ホストインターフェース機能ブロックが動作する際にバスを使用する要求を調停回路に送る。調停回路は優先順位等を考慮してホストインターフェース機能ブロックにバスの使用を許可する。その際に使用を許可したホストインターフェース機能ブロックに応じたクロック数に変更する。
しかし、特許文献1記載の技術ではバスを使用するホストインターフェース機能ブロック自身がバスを使用する要求を出す必要がある。SoCの様にCPUやDMAコントローラなどを含めてバス上に多くの回路が存在する場合、各回路からの要求信号を調停するには調停回路自体が大規模なものになってしまい、かつ動作速度も遅くなる。
そこで、本発明は、調停回路を用いずに、バスクロックを適切に選択するデータ通信装置を提供することを目的とする。
前記目的を達成するため、ホストインターフェースがバスに接続されているデータ通信装置において、前記バスに転送されるデータのデータ量を検出する検出部と、前記検出されたデータ量に基づいて、前記バスのクロック数を変更する変更部と、を有するデータ通信装置を提供する。
本発明のデータ通信装置であれば、調停回路を用いずに、バスクロックを適切に選択することができる。
本実施例のデータ通信装置の機能構成例を示した図。 IPヘッダのフォーマットの一例を示した図。 TLPヘッダのフォーマットの一例を示した図。 クロック生成部の機能構成例を示した図。 変更部が保持しているテーブル表の一例を示した図。 バスクロックの選択を模式的に示した図。 検出部がホストインターフェース毎にデータ量を検出する場合の図。 バッファメモリの割り当てについて模式的に示した図。
[実施形態1]
本実施例のデータ通信装置は、例えば、1以上のホストインターフェース(以下では、「ホストインターフェース群25」という場合もある。)を搭載するシステムオンチップであるとして説明する。図1に実施形態1のデータ通信装置の機能構成例を示す。図1の例では、バス10に、CPU12、DMAコントローラ14、バッファメモリ16、パケット監視部21、クロック生成部26、ホストインターフェース群25とが接続されている。この例では、ホストインターフェース群25は、USB(Universal Serial Bus)20、イーサネット(登録商標)22、PCIe(PCI Express)24であるが、他のホストインターフェースでもよい。以下の説明では、ホストインターフェース群のうちの1つを単に、ホストインターフェース25という場合もある。また、パケット監視部21は、割り当て部23、検出部18、変更部19とで構成されている。また、「データ」とは、「パケット」や「フレーム」などを意味するが、以下の説明では、「データ」を「パケット」であるとして説明する。また、バス10のクロックをバスクロックという場合もある。
CPU12は、各装置の制御やデータの計算・加工を行なうものである。
DMAコントローラ14とは、データ通信装置上にある各種の装置やメモリがCPU12を介すことなくデータ転送を行なうDMA転送において、通信の制御を行なうものである専用LSIである。
クロック生成部26は、バス10のバスクロックを生成する。クロック生成部26の詳細については、後述する。
ホストインターフェース群25のうちの1つからパケット(以下、「送信用パケット」という。)が送信される場合には、CPU12またはDMAコントローラ14で該送信用パケットが作成される。図1の例では、CPU12およびDMAコントローラ14の両方を記載しているが、どちらか片方を備えておけばよい。
バッファメモリ16は、ホストインターフェース群25が、データの送受信の際に使用されるものである。以下、具体的に説明する。
CPU12または、DMAコントローラ14により作成された送信パケットは、バッファメモリ16に一旦、蓄積される。そして、送信用パケットが送信準備されると、ホストインターフェース群25は、バッファメモリ16から、送信用パケットを読み出して、外部機器に送信する。
また、外部機器からパケット(以下、「受信用パケット」という。)を受信する場合には、ホストインターフェース25で受信したデータは一端、バッファメモリ16に蓄積される。その後、CPU12やDMAコントローラ14により受信データが処理される。このようにして、送信用データまたは受信用データは、バス10上を流れる。
ここで、本実施例のパケット監視部21は、バス上を流れるパケットのヘッダを監視する。詳細には、本実施例のパケット監視部21中の検出部18は、バス上を流れるパケットのヘッダを監視する。イーサネット(登録商標)に出力されるパケットのIPヘッダのフォーマットの一例を図2に示す。また、PCI−ExpressのTLPヘッダのフォーマットの一例を図3に示す。
図2のαに示すように、IPヘッダには、パケット長(つまり、パケットのデータ量)が格納されている。また、図3のβに示すように、TLPヘッダには、データペイロード長(つまり、データ量)が格納されている。
検出部18は、バスに転送されるパケット(データ)のヘッダ情報(つまり、図2記載のIPヘッダや図3記載のTLPヘッダ)を監視することで、データ量を検出する。ヘッダを識別する手法例として、例えば、ヘッダ部分に識別子(フラグ)を用いて判別する方法や、バス10上を転送される際に使用される転送元アドレスあるいは、転送先アドレスからヘッダ位置を判断する方法がある。
そして、変更部19は、検出したデータ量に基づいて、バスのクロック数を変更する。変更の手法の説明の前に、まず、クロック生成部26の詳細について説明する。
図4に、クロック生成部26の機能構成例を示す。図4の例では、逓倍回路262、文周回路264、クロックセレクタ266とで構成されている。まず、外部から逓倍回路262に、基準クロックが入力される。そして、逓倍回路262は、基準クロックのN(Nは自然数)倍の周波数を生成する。逓倍回路262とは、例えば、PLL(Phase−locked−loop)により構成される。そして、分周回路264が逓倍回路262に接続されており、分周回路264は、複数(M,...,M,..,M)の分周比により分周クロックf,...,f,..,fを生成する。そして、f,...,f,..,fをクロックソース(つまり、生成されるバス10のクロック数)とする。クロック生成部26はクロック選択信号のタイミングを微小な幅のクロックが生成されないように制御されているので、微小な幅のクロックが生成されなくなる。クロック選択信号とは、変更部19が、クロックを選択するための信号である。クロック生成部26の構成は、図4の例に限られない。
変更部19は、検出部18により、検出されたデータ量に基づいて、バス10のクロック数を変更する。具体的に簡略化して説明すると、変更部19は、検出されたデータ量が多ければ、クロック数を大きく変更し、検出されたデータ量が少なければ、クロック数を小さく変更する。このように、変更することで、バス上のパケットを適切に走行させつつ、無駄な消費電力を削減することができる。
変更部19の具体的な変更手法について説明する。検出部18が検出したデータ量に基づいて、クロック選択信号を生成する。ここで、クロック選択信号の生成手法例について説明する。変更部19は、図5に示すテーブル表を保持している。本実施例のテーブル表は、パケットのデータ合計量が対応付けられているものである。図5に示すテーブル表は、データ量D(n=1、...、N)とクロック選択信号αとが対応付けられている。
そして、検出部18が、バス上を流れているパケットのデータの合計量Dを求める。そして、変更部19は、図5に示すテーブル表を用いて、検出部18により検出されたデータの合計量Dと対応するクロック数のクロック選択信号αを生成して、クロック生成部26に送信する。合計量Dが、テーブル表にない場合には、合計量Dに最も近いデータ量Dを選択すればよい。
クロック生成部26は、受信したクロック選択信号αに基づいて、クロック数を選択する。クロックセレクタ266が、クロック選択信号α(n=1、...、N)を受信すると、クロック選択信号αに対応したクロックfを出力する。
ここで、上記データ量Dとクロックfとの関係について、D<・・・D・・・<Dとし、f<・・・f・・・<fとする。つまり、上述したように、変更部19は、検出されたデータ量が多ければ、クロック数を大きく変更し、検出されたデータ量が少なければ、クロック数を小さく変更する。
図6に、バス上のパケットの合計データ量が変化した場合のタイムチャートを示す。図6のXは、パケットが流される構成部(例えば、イーサネット(登録商標))について示し、図6のYは、クロック数の高低について示す。図6中の状態Aは、パケットが流れていない状態(アイドル状態)である。状態Aでは、バス上を流れているデータのデータ量は少ないため、変更部19は、クロック数を低く設定する。
次に、図6中の状態Bは、イーサネット(登録商標)22に転送するパケットがバス10上を流れている状態である。状態Bの場合には、アイドル状態(状態A)と比較して、バス10上を流れるデータ量が多くなるため、変更部19は、クロック生成部26に対して、クロック数を多く変更する。
図6中の状態Cでは、イーサネット(登録商標)22、PCIe24など、どの箇所にもパケットを送信していない状態(アイドル状態)である。状態Cでは、バス上を流れているデータのデータ量は少ないため、状態A同様、変更部19は、クロック数を低く変更する。
次に図6中の状態Dでは、イーサネット(登録商標)22用のパケットおよびPCIe24用のパケットがバス上を流れるようになった状態である。状態Dでは、状態Bと比較して、バス10上を流れるデータの合計データ量が多くなる。従って、変更部19は、クロック数を状態Bよりも多く変更させる。
図6中の状態Eでは、PCIe用のパケットの処理が終了し、PCIe用のパケットがバス10上を流れず、イーサネット(登録商標)22に転送するパケットのみがバス10上を流れている状態である。状態Dは、状態Bと比較して、バス10上を流れるデータ量が同じであることから、変更部19は、クロック数をBの状態に戻す。
また、状態Fは、イーサネット(登録商標)22に転送するパケットの処理が終了し、該パケットが、バス10上を流れていない状態である。つまり、状態Fのデータ量と、状態Aのデータ量とは等しいので、変更部19は、状態Aと同じクロック数に変更する。
このようにして、検出部18が、バス10上を流れるデータの合計データ量を検出する。そして、変更部19が、検出されたデータ量に応じて、バス10のクロック数を変更する。従って、調停回路を用いずに、ホストインターフェースの転送性能を落とさずに、適切にバス10上をパケット等のデータを流しつつ、かつ、データ通信装置の消費電力を低減できる。
また、ホストインターフェース群25の中には、USB20のように、パケット中のデータサイズ情報を持たないものもある。この場合には、検出部18は、最大パケットサイズの規定を利用して、判断できる。
[実施形態2]
この実施形態2では、バッファメモリ16を更に有効に利用するデータ通信装置について説明する。
検出部18は、ホストインターフェース毎のデータ量を検出する。また、検出部18は、ホストインターフェース毎のデータ量の比率を検出しても良い。図7に、検出部18による、ホストインターフェース毎のデータ量の検出例を示す。図7の例では、検出部18は、USB20用のデータ量はDであると検出し、イーサネット(登録商標)22用のデータ量はDであると検出し、PCIe24用のデータ量はDであると検出する。
このように、検出部18は、動的に、ホストインターフェース毎の、バス10上を流れるデータ(パケット)のデータ量を検出する。そして、割り当て部23は、検出されたホストインターフェース毎のデータ量(図7参照)または、ホストインターフェース毎のデータ量の比率に基づいて、前記ホストインターフェース毎のバッファメモリのサイズの割り当てを行う。
検出部18が、バス10上を流れるデータ(パケット)のデータ量を検出する場合には、割り当て部23は、ホストインターフェース毎のデータ比率を求める。また、検出部18が、ホストインターフェース毎のデータ量の比率を、直接、検出した場合には、割り当て部23は、該直接検出されたデータ量の比率を用いる。
図8に、バッファメモリの割り当ての変化について、模式的に示す。図8Aの例では、D=0であり、D=Dの場合を示す。この場合には、図8Aに示すように、割り当て部23は、バッファメモリ16の全メモリサイズのうち、1/2をイーサネット(登録商標)22用のデータ用のサイズに割り当て、1/2をPCIe24用のデータ用のサイズに割り当てる。
次に、図8Bに示すように、D=0のままであり、データ量Dが減少したとする。この場合には、図8Bに示すように、データ量Dの比率が、データ量Dの比率より小さくなる。従って、データ量D用のメモリサイズを、データ量D用のメモリサイズよりも小さくする。
このように、ホストインターフェース毎のバス10上のデータ量の比率を求め、割り当て部23が、該比率に応じたバッファメモリのサイズの割り当てを行う。従って、バッファメモリの使用効率を向上させることができる。
[実施形態3]
この実施形態3のデータ通信装置では、CPU12のクロック数(CPUコアクロック数)を制御する。また、この実施形態3では、クロック生成部28が、CPUのクロックを生成しているとする。
CPU12のクロック数の変更については、大略、実施形態1で説明したバス10のクロック数の変更と同じであり、簡単に説明する。
検出部18は、バスに転送されるパケット(データ)のヘッダ情報(つまり、図2記載のIPヘッダや図3記載のTLPヘッダ)を監視することで、データ量を検出する。ヘッダを識別する手法例として、例えば、ヘッダ部分に識別子(フラグ)を用いて判別する方法や、バス10上を転送される際に使用される転送元アドレスあるいは、転送先アドレスからヘッダ位置を判断する方法がある。
そして、変更部19は、検出したデータ量に基づいて、CPU12のクロック数を変更する。具体的に簡略化して説明すると、変更部19は、検出されたデータ量が多ければ、クロック数を大きく変更し、検出されたデータ量が少なければ、クロック数を小さく変更する。このように、CPU12のクロック数を変更することで、CPU12を適切に機能させつつ、無駄な消費電力を削減することができる。
変更部19の具体的な変更手法について説明する。検出部18が検出したデータ量に基づいて、クロック選択信号β(図5のカッコ書き)を生成する。クロック選択信号とは、変更部19が、CPU12のクロック数を選択するための信号である。
ここで、クロック選択信号βの生成手法例について説明する。変更部19は、図5に示すテーブル表を保持している。本実施例のテーブル表は、パケットのデータ合計量が対応付けられているものである。図5に示すテーブル表は、データ量D(n=1、...、N)とクロック選択信号βとが対応付けられている。
そして、検出部18が、バス上を流れているパケットのデータの合計量Dを求める。そして、変更部19は、図5に示すテーブル表を参照して、検出部18により検出されたデータの合計量Dと対応するクロック数のクロック選択信号βを生成して、クロック生成部26に送信する。合計量Dが、テーブル表にない場合には、合計量Dに最も近いデータ量Dを選択すればよい。
クロック生成部26は、受信したクロック選択信号βに基づいて、クロック数を選択する。クロックセレクタ266が、クロック選択信号β(n=1、...、N)を受信すると、クロック選択信号βに対応したクロック数fを出力する。
ここで、上記データ量Dについて、D<・・・D・・・<Dとし、f<・・・f・・・<fとする。つまり、上述したように、変更部19は、検出されたデータ量が多ければ、クロック数を大きく変更し、検出されたデータ量が少なければ、クロック数を小さく変更する。
また、タイムチャートについては、図6と同様なので、説明は省略する。
このようにして、検出部18が、バス10上を流れるデータの合計データ量を検出する。そして、変更部19が、検出されたデータ量に応じて、CPU12のクロック数を変更する。従って、適切にCPU12を機能させつつ、データ通信装置の消費電力を低減できる。
上記では、実施形態1では、バスクロックの変更について説明し、実施形態2では、バッファメモリ16のメモリ割り当ての変更について説明し、実施形態3では、CPU12のクロック数の変更について説明した。これらの実施形態1〜3のうちの少なくとも1を選択して、本実施例のデータ通信装置を実施できる。
また、図1には記載していないが、バス10上には、複数のマスタとなる回路が存在しているため、通常のアービター回路も接続されるようにしても良い。
また、図1には記載していないが、バス10上には、タイマや割り込みコントローラなどの小規模な回路(周辺回路)も接続しても良い。
10・・・バス
12・・・CPU
14・・・DMAコントローラ
16・・・バッファメモリ
21・・・パケット監視部
25・・・ホストインターフェース群
26・・・クロック生成部
特開2006‐72597号公報

Claims (5)

  1. ホストインターフェースがバスに接続されているデータ通信装置において、
    前記バスに転送されるデータのデータ量を検出する検出部と、
    前記検出されたデータ量に基づいて、前記バスのクロック数を変更する変更部と、を有するデータ通信装置。
  2. 前記バスに接続されているバッファメモリを有し、
    複数の前記ホストインターフェースが前記バスに接続され、
    前記検出部は、前記ホストインターフェース毎のデータ量を検出し、該検出された前記ホストインターフェース毎のデータ量に基づいて、前記ホストインターフェース毎の前記バッファメモリのサイズの割り当てを行う割り当て部を有することを特徴とする請求項1記載のデータ通信装置。
  3. CPUを有し、
    前記変更部は、前記検出されたデータ量に基づいて、前記CPUのクロック数を変更させることを特徴とする請求項1または2記載のデータ通信装置。
  4. 複数のホストインターフェースがバスに接続されているデータ通信装置において、
    前記バスに接続されているバッファメモリと、
    前記ホストインターフェース毎のデータ量または、前記ホストインターフェース毎のデータ量の比率を検出する検出部と、
    前記検出された、前記ホストインターフェース毎のデータ量または前記ホストインターフェース毎のデータ量の比率に基づいて、前記バッファメモリのサイズの割り当てを行う割り当て部を有することを特徴とするデータ通信装置。
  5. CPUを有し、
    前記検出されたデータ量に基づいて、前記CPUのクロック数を変更させる変更部を有することを特徴とする請求項4記載のデータ通信装置。










JP2010062205A 2010-03-18 2010-03-18 データ通信装置 Pending JP2011199461A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010062205A JP2011199461A (ja) 2010-03-18 2010-03-18 データ通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010062205A JP2011199461A (ja) 2010-03-18 2010-03-18 データ通信装置

Publications (1)

Publication Number Publication Date
JP2011199461A true JP2011199461A (ja) 2011-10-06

Family

ID=44877137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010062205A Pending JP2011199461A (ja) 2010-03-18 2010-03-18 データ通信装置

Country Status (1)

Country Link
JP (1) JP2011199461A (ja)

Similar Documents

Publication Publication Date Title
US11704274B2 (en) System, apparatus and method for extended communication modes for a multi-drop interconnect
US9128920B2 (en) Interrupt handling systems and methods for PCIE bridges with multiple buses
EP2761386B1 (en) Managing sideband segments in on-die system fabric
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP5460143B2 (ja) データ処理装置、データ処理方法およびプログラム
WO2013032712A1 (en) Integrating intellectual property (ip) blocks into a processor
US20180367504A1 (en) System, Apparatus And Method For Tunneling And/Or Multiplexing Via A Multi-Drop Interconnect
US20190121765A1 (en) System, Apparatus And Method For Hardware-Based Bi-Directional Communication Via Reliable High Performance Half-Duplex Link
CN109062834B (zh) 基于dma的spi通讯方法、电子设备、存储介质、装置
JP6254331B2 (ja) ネットワークオンチップトポロジー内のトンネリング
TW201717039A (zh) 用於通用序列匯流排2.0頻寬保留之方法及系統
KR101844812B1 (ko) 고속 레인에서 가기능정지를 이용한 emi 완화
US8588234B2 (en) Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval
JP6092351B2 (ja) クロスダイ・インタフェース・スヌープ又はグローバル観測メッセージの順序付け
US20080082708A1 (en) Token hold off for chipset communication
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
US20220006883A1 (en) System, apparatus, and method for packet-based network transport including a unified adapter layer
JP2011199461A (ja) データ通信装置
US20200233829A1 (en) Multi-lane system power management interface
JP2012205142A (ja) データ転送装置、データ転送方法および情報処理装置
JP2011040965A (ja) データリンク層処理回路および通信回路
KR20100137326A (ko) 버스 시스템 및 그 제어 장치
CN112585593A (zh) 链路层数据打包和封包流控制方案
US7979766B2 (en) Architecture for a message bus
JP2023071593A (ja) 電力意識的な入/出力(i/o)バッファ割り当て