JP2006065591A - 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法 - Google Patents

受信フレーム処理装置、通信処理装置、および受信フレーム処理方法 Download PDF

Info

Publication number
JP2006065591A
JP2006065591A JP2004247433A JP2004247433A JP2006065591A JP 2006065591 A JP2006065591 A JP 2006065591A JP 2004247433 A JP2004247433 A JP 2004247433A JP 2004247433 A JP2004247433 A JP 2004247433A JP 2006065591 A JP2006065591 A JP 2006065591A
Authority
JP
Japan
Prior art keywords
processor
frame
received frame
program
cache
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
JP2004247433A
Other languages
English (en)
Inventor
Akihito Inoshita
明史 井ノ下
Hiroyoshi Suzuki
弘喜 鈴木
Takeo Matsuura
健夫 松浦
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004247433A priority Critical patent/JP2006065591A/ja
Publication of JP2006065591A publication Critical patent/JP2006065591A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 キャッシュ上の命令コードやデータを有効に活用すること
【解決手段】 プロセッサ12に具備されたキャッシュ121内に保持された命令コードまたはデータを推定するキャッシュ内データ推定手段21と、受信フレームがプロセッサ12で処理される際にプロセッサ12が使用する命令コードまたはデータを特定する受信フレーム解析手段20と、フレーム処理時の命令コードまたはデータがキャッシュ121にヒットする確率を計算するヒット確率計算手段22と、プロセッサ12に送信するフレームの順序を制御する送信制御手段23を備え、フレームを受信するとキャッシュ121にヒットする確率が高いフレームから順にプロセッサ12に送信することで、キャッシュ121上のデータを有効に利用でき処理速度が向上する。
【選択図】 図2

Description

本発明は、ネットワークインタフェースを通じてイーサネット(登録商標)などのフレームを受信処理する装置において、フレームをプロセッサに送信する受信フレーム処理装置、通信処理装置、および受信フレーム処理方法に関するものである。
通信の広帯域化に伴いネットワークインタフェースを備えた装置のプロセッサ負荷におけるネットワーク処理の割合が増加している。フレームの到着は不定期であるため、フレームの受信は割込みをもってプロセッサに通知するのが一般的であるが、割込み処理は、割込み起動時点までに動作中であったプロセスの状態を待避(コンテクストスイッチング)する必要がありオーバヘッドが発生し、プロセッサの負荷が増加する。プロセッサの負荷を低減する取り組みとして、プロセッサに通知する割込みを減らす方法がある。
従来の受信フレーム処理装置としては、割込み回数を減らすために、受信フレーム数又は受信データ量の閾値を設定し、フレーム受信量が閾値を超過すると割込みを出力し、1回の割込みで複数のフレームをまとめてプロセッサに対して出力しているものがあった(例えば、特許文献1参照)。
この場合、フレームの受信量が閾値に到達しないといつまでたっても割込みが上がらないので、プロセッサへのフレーム出力が長時間遅れることが無いように時間の閾値を設定し、受信フレームの待ち時間が時間閾値を超過すると割込みを上げるようにしている。また、受信フレームがリアルタイム応答に対する優先度が高いか否かを識別し、リアルタイム応答に対する優先度が高いフレームが到着すると直ちに割込みを出力し、遅延ゼロでリアルタイムフレームをプロセッサに出力することが出来るようにしている。
図10は、前記特許文献1に記載された従来の受信フレーム処理装置におけるリアルタイム応答に対する優先度の高いフレームを処理する場合のフローチャートを示すものである。
図10において、フレームを受信するとステップ1214においてリアルタイム応答に対する優先度の高いフレームであるか否かを判定する。もし、リアルタイムパケットであれば、ステップ1215において直ちにプロセッサに対して割込みを通知する一方、リアルタイムパケットでなければ、受信量が閾値を超過もしくはタイムアウトが発生した際に、割込みを出力していた。
特開2001-14243号公報(図8等)
しかしながら、ネットワーク上には異なるアプリケーションや、異なるプロトコルの各種データが不連続で流れているため、このような各種データを受信して、受信フレームとしてそのままプロセッサへ送信すると、頻繁に処理ソフトウェアの切替えが発生することになり、キャッシュメモリ(以下、キャッシュという)へのミスヒットが多発し、プロセッサの処理能力が低下するという問題がある。
また、割込み回数を減らしてプロセッサの負荷を低減する従来の方法では、キャッシュ上の命令コードやデータを有効に活用できる仕組みが無かった。
本発明は、このような従来の課題を解決するもので、キャッシュ上の命令コードやデータを有効に活用できる受信フレーム処理装置、通信処理装置、および受信フレーム処理方法を提供することを目的とする。
前記従来の課題を解決するために、本発明では、プロセッサのキャッシュに保持された命令コードまたはデータを推定すると共に、受信フレームがプロセッサで処理される際にプロセッサが使用する命令コードまたはデータを特定して、フレーム処理時の命令コードまたはデータがキャッシュにヒットする確率を計算して、キャッシュにヒットする確率が高いフレームから順にプロセッサに送信する、構成を採る。
本発明によれば、キャッシュ上の命令コードやデータを参照する確率が高まるため、キャッシュミスでメインメモリにアクセスすることによる処理速度の低下を防ぐことが出来る。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1における受信フレーム処理装置を内蔵する通信処理装置の構成図である。
図1において、この通信処理装置は、キャッシュ121を有するプロセッサ12と、メインメモリ13と、ネットワークインタフェース10と、受信フレーム処理装置11とを、バス14を介し接続して有している。
ネットワークインタフェース10は、この通信処理装置が接続されているLAN等のネットワークよりフレームを受信するものである。
受信フレーム処理装置11は、受信したフレームを格納するとともに、受信フレームに関する情報に基づきプロセッサ12に対して送信する順番を入れ替えるもので、図2にて詳述する。
プロセッサ12は、受信フレームを処理するプログラムを動作させ、メインメモリ13より命令コード及びデータの呼び出し処理等をするものである。メインメモリ13から呼び出された命令コード及びデータの一部はプロセッサ上のキャッシュ121に格納され、次回以降同様の命令コード及びデータが参照される場合はアクセススピードの速いキャッシュ121上のデータを参照する。
尚、この受信フレーム処理装置11は、ハードウェア回路で実現してもよいし、受信フレーム処理装置11自身がプロセッサを備えプログラムにより実現することも可能である。また、キャッシュ121は、メインメモリ13より高速に動作するメモリであり、プロセッサ内部の内部キャッシュ(L1キャッシュ)の他、プロセッサの外部に備えられる外部キャッシュ(L2キャッシュやL3キャッシュ)を対象にしても良い。
図2は、本発明の実施の形態1における受信フレーム処理装置11の構成図である。
図2において、本実施の形態1の受信フレーム処理装置11は、受信フレーム解析手段20と、キャッシュ内データ推定手段21と、ヒット確率計算手段22と、送信制御手段23とを有している。
受信フレーム解析手段20は、ヘッダ及びペイロード解析手段201と、プログラムテーブル202とを有し、受信フレームのヘッダ及びペイロードの情報からフレームに含まれる通信プロトコルを識別すると、事前に登録されているプログラムテーブル202からプロセッサ12が受信フレームをその通信プロトコルに応じて処理する際に呼び出すプログラムの使用“1”/未使用“0”を示すビット列を呼び出してヒット確率計算手段22に渡すものである。
キャッシュ内データ推定手段21は、受信フレーム処理装置11が最後にプロセッサ12に送信したフレームを記憶し、プログラムテーブル202より最後に送信したフレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列を呼び出して、ヒット確率計算手段22に渡すものである。
ヒット確率計算手段22は、2つのビット列のプログラムの使用ビットの重畳度を計算し、そのプログラム重畳度を前記キャッシュにヒットする確率とみなすものである。
キャッシュヒット率の計算は、例えば、ビット列をN次元のベクトルとみなしベクトルの内積をとり、内積の結果をNで割った値が1に近いものをプログラム重畳度が高いと判定することが考えられる。キャッシュヒット率を計算したら、その結果とともに、受信フレームを送信制御手段23に渡す。
送信制御手段23は、フレームをそのバッファ(図示せず)に記憶し並び替えてプロセッサ12に送信するものである。つまり、送信待ちのフレームがある場合、プロセッサ12のキャッシュ121にヒットする確率の高いものからプロセッサ12に送信できるようにフレームを並び替えて、プロセッサ12から送信の指示があるとプロセッサ12に対してフレームを送信するものである。
図3は、本発明の実施の形態1における受信フレーム処理装置11が備えるプログラムテーブル202の一例である。
プログラムテーブル202は、プロセッサ12のキャッシュ121に保持された命令コードやデータを推定するために、プロセッサ12がアプリケーション毎に受信フレームを処理する際に呼び出すプログラム群のプログラム1〜m(mは、自然数)と、その際に使用する通信プロトコル#1〜#n(n)は、自然数)とを対応付けて記憶させたものである。
ここで、各プログラム1〜mが、各通信プロトコル#1〜#nを使用している場合は“1”、各通信プロトコル#1〜#nを使用していない場合は“0”のビットを設定する。
例えば、プログラム1の場合には、通信プロトコル#1、#2、#4、#5、#nを使用し、プログラム2の場合であれば、通信プロトコル#3、#4、#5を使用していることを示している。
プログラム1〜mは、ある一連の作業をグループ化(モジュール化)して独立させたもののことを示しており、ここでは一例として1つのプログラムに含まれるサブプログラム、サブルーチンを挙げている。
サブルーチンの中には、プロセッサ12上のオペレーションシステムが提供するものや、ユーザが関数を定義したものも含まれる。また、テーブルを構成するプログラムは、フレームの処理に関する全プログラムを網羅する場合の他に、予め指定した種別のフレームについては送信順の制御から除外、例えば、プロセッサ12が共通的に使用するプログラム(サブルーチン)を除外したり、さらには、リアルタイム処理が必要なイベントフレームを処理するプログラムを除外するテーブル構成としたり、サイズの大きいプログラムのみをピックアップしたテーブル構成としたり、通信プロトコルを処理する際のシステムコールの種類を対応付けたテーブルとしても良い。
そして、このプログラムテーブル202より、各通信プロトコル#1〜#nは、使用するプログラム、すなわちビット“1”の重なりが大きいほどキャッシュ121上の同種の命令コードやデータを使用する確率、つまりキャッシュヒット率が高くなるといえる。尚、プログラムテーブル202の縦軸は通信プロトコルではなく、通信装置で処理されるアプリケーションにて、プログラムテーブル202を構成しても良い。
次に、動作を説明する。
図4は、本発明の実施の形態1における受信フレーム処理装置11の処理手順を示すフローチャートである。
まず、ステップ1100により、受信フレーム解析手段20のヘッダ及びペイロード解析手段201がフレームを受信の有無を判定し、受信フレームありの場合は、ステップ1200へ進む一方、受信フレーム無しの場合は、ステップ2000を実行する。
受信フレーム有りの場合、次のステップ1200により、ヘッダ及びペイロード解析手段201は、まず、受信フレームのヘッダ及びペイロードの情報を解析して、受信フレームの通信プロトコルを特定する。
次に、ヘッダ及びペイロード解析手段201は、ステップ1300により、受信フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列を、プログラムテーブル202(図3参照)より呼び出す。
そして、キャッシュ内データ推定手段21は、ステップ1400により、送信制御手段23がプロセッサ12に対し最後に送信したフレームを記憶しているか否かを判定し、記憶しているフレームがある場合は、ステップ1600に進む一方、記憶しているフレームがない場合は、ステップ1500へ進む。
キャッシュ内データ推定手段21は、プロセッサ12に最後に送信したフレームを記憶していない場合は、まだ、プロセッサ12にフレームを送信していないということなので、ステップ1500により、先ほど受信したフレームを記憶フレームとして、ステップ2000の処理へ進む。
これに対し、送信制御手段23が最後にプロセッサ12に送信したフレームを記憶している場合、キャッシュ内データ推定手段21は、ステップ1600により、記憶フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列を、プログラムテーブル202より呼び出して、ヒット確率計算手段22へ渡す。
ヒット確率計算手段22は、ステップ1700の処理により、ヘッダ及びペイロード解析手段201からの受信フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列と、キャッシュ内データ推定手段21から渡された記憶フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列とから、使用プログラムの重畳度、すなわち使用“1”の重畳度を計算して、送信制御手段23へ出力する。
そして、送信制御手段23は、ステップ1800の処理により、受信フレーム処理装置11内における送信待ちフレームの有無を判定し、送信待ちフレームがある場合は、ステップ1900へ進む一方、送信待ちフレームがない場合は、ステップ2000へ進む。
送信待ちフレームがある場合、送信制御手段23は、ステップ1900の処理により、プログラム重畳度の高い順でプロセッサ12にフレームを送信できるように、送信待ちのフレームを並び替える。
次に、送信制御手段23は、ステップ2000の処理により、プロセッサ12からの送信指示の有無を判定し、プロセッサ12からの送信指示がある場合は、ステップ2100へ進む一方、送信指示がない場合は、ステップ1100へ戻り、フレームの受信処理を繰り返す。
そして、プロセッサ12から送信制御手段23へ送信指示があった場合、送信制御手段23は、ステップ2100の処理により、プログラム重畳度の高い順番にプロセッサ12に対してフレームを一括送信する。
最後に、キャッシュ内データ推定手段21は、ステップ2200の処理により、送信制御手段23がプロセッサ12に最後に送信したフレームを記憶する。
図5は、図4のステップ1900に示した送信制御手段23による送信フレームのプログラム重畳度の高い順に並び替える詳細な方法を示すフローチャートである。
ここでは、常に直前のフレームに対してプログラム重畳度が最も高くなるように並び替える方法を示している。
まず、ステップ1901により、送信制御手段23は、送信待ちで蓄積しているフレームの先頭からの番号を示すNを1で初期化する。なお、N=0の場合は、N−1番目フレームは、記憶フレームを示すことになる。
次に、ステップ1902により、送信制御手段23は、受信フレームがN−1番目フレームに対して計算したプログラム重畳度と、N番目フレームがN−1番目フレームに対して計算したプログラム重畳度とを比較し、N−1番目フレームに対する受信フレームのプログラム重畳度が、N−1番目フレームに対するN番目フレームのプログラム重畳度より低い場合はステップ1903へ、それが高い場合はステップ1906へ進む。
つまり、N−1番目フレームに対する受信フレームのプログラム重畳度が、N−1番目フレームに対するN番目フレームのプログラム重畳度より低い場合は、まず、ステップ1903により、送信制御手段23は、N番目のフレームの通信プロトコルの使用プログラムを示すビット列をプログラムテーブル202から呼び出す。
ステップ1904により、送信制御手段23は、受信フレームと、N番目のフレームとの間でプログラム重畳度を計算する。
そして、ステップ1905により、送信制御手段23は、Nをインクリメントして、ステップ1901へ進む。
一方、N−1番目フレームに対する受信フレームのプログラム重畳度が、N−1番目フレームに対するN番目フレームのプログラム重畳度より高い場合は、送信制御手段23は、ステップ1906により、受信フレームをN番目に格納する。
そして、ステップ1907により、送信制御手段23は、N+1番目以降に蓄積されたフレームがある場合は、ステップ1908へ、フレームがない場合は、図4のステップ2000へ進む。
ステップ1908では、送信制御手段23は、N+1番目以降の全てのフレームについて、新しく格納されたN番目のフレームとの間でプログラム重畳度を計算する。
そして、ステップ1909により、送信制御手段23は、プログラム重畳度を再計算した結果、N+1番目フレームのプログラム重畳度が最も高かった場合は、図4のステップ2000を実行し、他にプログラム重畳度が高いフレームがある場合は、ステップ1910へ進む。
次に、ステップ1910により、送信制御手段23は、再計算したプログラム重畳度が最も高いフレームをN+1番目に格納する。
そして、ステップ1911により、送信制御手段23は、Nをインクリメントしてステップ1907へ戻る。
このように、複数のフレームを蓄積して一括してプロセッサ12に送信する場合や、ネットワークのサービス品質保証等の制約で意図せず複数のフレームが蓄積された場合において、プロセッサ12上のキャッシュ121にヒットする確率の高いフレームから送信することができ、アクセス速度の速いキャッシュ121上のデータを有効に活用することで処理速度を向上できる。
図6(A)、(B)は、本発明の実施の形態1における送信制御方法を例示した図である。
本実施の形態1では、受信フレーム処理装置11の送信制制御手段23は、常に直前のフレームとのプログラム重畳度を計算して、プログラム重畳度が1.00に近いほどキャッシュヒット率が高いものと判断して、受信フレームを直前のフレームとのプログラム重畳度が大きいものから並び替える。
図6(A)において、記憶フレームAは、送信制御手段23が最後にプロセッサ12に送信したフレームとしてキャッシュ内データ推定手段21が記憶しているフレームである。そして、送信制御手段23は、フレームB、C、D、Eの順に蓄積しており、受信フレームFが入力された場合の動作を述べる。
プロセッサ12に送信する順番は、プログラム重畳度が高いフレームからであるが、送信制御手段23が、このプログラム重畳度を計算する際に、常に直前のフレームとのプログラム重畳度を計算するようにする。
すると、各フレームA〜Eのプログラム重畳度は、図6(A)に示すようになり、記憶フレームAは、最後にプロセッサ12に送信したフレームで、直前のフレームが存在しないので、プログラム重畳度は“1.00”、フレームBは、直前のフレームである記憶フレームAとのプログラム重畳度は“0.98”、フレームCは、直前のフレームであるフレームBとのプログラム重畳度は“0.90”、フレームDは、直前のフレームであるフレームCとのプログラム重畳度は“0.95”、フレームEは、直前のフレームであるフレームDとのプログラム重畳度は“0.92”となる。
そして、受信フレームFが入力されると、まず、ヒット確率計算手段22は、キャッシュ内データ推定手段21からプログラムの使用“1”/未使用“0”を示すビット列を受信して、送信制御手段23から最後にプロセッサ12へ送信された記憶フレームAに対するプログラム重畳度を計算し、プログラム重要度をキャッシュヒット確率とみなして、送信制御手段23へ出力する。
送信制御手段23は、最後にプロセッサへ送信した記憶フレームAに対する受信フレームFのプログラム重畳度を、その記憶フレームAに近いフレームBのプログラム重畳度から順に比較をして、受信フレームFの挿入位置を決定する。
つまり、例えば、記憶フレームAに対する受信フレームFのプログラム重畳度が“0.85”であった場合、記憶フレームAに対するフレームBのプログラム重畳度は、図6(A)に示すように“0.98”であるので、受信フレームFのプログラム重畳度は、フレームBのプログラム重畳度より低いので、次はフレームBとプログラム重畳度を比較する。
フレームBとプログラム重畳度を比較した結果、フレームBに対する受信フレームFのプログラム重畳度が、例えば、“0.87”である場合、フレームBに対するフレームCのプログラム重畳度は、図6に示すように、“0.90”であるので、次はフレームCとのプログラム重畳度を計算する。
フレームCとプログラム重畳度を比較した結果、フレームCに対する受信フレームFのプログラム重畳度が、例えば、“0.97”である場合、フレームCに対するフレームDのプログラム重畳度は、図6に示すように、“0.95”であるので、受信フレームFは、フレームDより、フレームCに対しプログラム重畳度が高いことがわかる。
送信制御手段23は、受信フレームFは、フレームDより、フレームCに対すうるプログラム重畳度が高いことがわかると、フレームCの次で、フレームDの前に、受信フレームFを入れるように送信待ちの順序を制御する。
その結果、図6(B)に示すように、プロセッサ12へ送信する順番は、記憶フレームA、フレームB、フレームC,受信フレームF、フレームD、フレームEという順に並び替えると共に、受信フレームFの次のフレームDについては、新たに受信フレームFに対するフレーム重畳度を計算して設定するようにする。なお、図6(B)では、受信フレームFに対するフレームDのフレーム重畳度は、“0.90”と再設定される。
このように、送信制御手段23は、キャッシュ121において常に直前のフレームとのプログラム重畳度を比較してプログラム重畳度が高いところが見つかると、それ以降のフレームも再度プログラム重畳度を計算しなおして、常に直前のフレームとのプログラム重畳度が高い順に並べ替える。
従って、本実施の形態1によれば、ヒット確率計算手段22は、ヘッダ及びペイロード解析手段201からの受信フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列と、キャッシュ内データ推定手段21から渡された記憶フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列とから、使用プログラムの重畳度を計算して、送信制御手段23は、プログラム重畳度の高い順に送信待ちのフレームを並び替えてプロセッサ12に送信するようにしたため、複数のフレームを蓄積して一括してプロセッサ12に送信する場合や、ネットワークのサービス品質保証等の制約で意図せず複数のフレームが蓄積された場合においても、プロセッサ12上のキャッシュ121にヒットする確率の高いフレームから送信することができ、アクセス速度の速いキャッシュ上のデータを有効に活用することで処理速度を向上できる。
また、キャッシュ内データ推定手段21は、最後にプロセッサ12に送信したフレームを記憶し、最後に送信したフレーム処理の為にプロセッサ12が使用した命令コードまたはデータがキャッシュ121内に保持されているとみなすので、キャッシュ121上に保持された命令コードやデータを受信フレームから予測することが出来るため、プロセッサ12側からの通知を不要とし構成を簡素化できる。
また、受信フレーム解析手段20は、受信フレームのヘッダ及びペイロード解析手段201と、プロセッサ12が呼び出すプログラム群の中からフレーム処理時に呼び出すプログラムを処理内容毎に対応付けて記憶させたプログラムテーブル202とを備え、受信フレームの内容から呼び出すプログラムを特定することで、使用する命令コードおよびデータを特定することにより、使用する命令コードおよびデータを予測することができ、処理を簡素化できる。
また、プログラムテーブル202は、通信プロトコル毎に各通信プロトコルと、プロセッサ12が呼び出すプログラムとを対応付けて記憶し、ヘッダ及びペイロードの情報から通信プロトコル毎の命令コードまたはデータを解析して、通信プロトコルを特定し、通信プロトコルの種別から使用する命令コードまたはデータを特定することにより、キャッシュ121におけるヒット率向上を図ることができる。
また、プログラムテーブル202は、アプリケーション毎にプロセッサ12が呼び出すプログラムを対応付けて記憶し、ヘッダ及びペイロードの情報からアプリケーション毎の命令コードまたはデータを解析して、アプリケーションを特定し、アプリケーションの種別から使用する命令コードまたはデータを特定することにより、キャッシュ121におけるヒット率向上を図ることができる。
また、一のプログラムを読み出す割合であるプログラム重畳度の割合が大きいほど、キャッシュ121にヒットする確率が高いものとみなし、送信制御手段23は、プロセッサ12に対し送信待ちのフレームを、常に直前のフレームに対するプログラム重畳度が高い順に並び替えるようにしたため、常に直前の受信フレームのプログラムと、受信フレームの処理に必要なプログラムとの重なりから、キャッシュ121上のデータのヒット率を近似的に計算して、より確実にキャッシュ121上の命令コードやデータを有効に活用することができる。
なお、本実施の形態1において、あらかじめプログラムテーブル202に通信プロトコルと、プログラム(サブルーチン)の対応表を設定しているが、プロセッサ12の種類に応じてテーブルの変更を可能なようにしても良い。
(実施の形態2)
次に、別の実施の形態として、蓄積された送信待ちフレームのプログラム重畳度計算を行う対象フレームを、最後にプロセッサ12に送信したフレームとする実施の形態2について述べる。
なお、本実施の形態2の受信フレーム処理装置11の構成図、およびその処理手順を示すフローチャートは、それぞれ実施の形態1の図2、図4と同じであるので、それらを参照して説明する。
図7(A),(B)は、本発明の実施の形態2における送信制御方法を例示した図である。
前記実施の形態1では、常に直前のフレームとの間でプログラム重畳度を算出していたが、本実施の形態2では、常に最後に送ったフレームとのプログラム重畳度を計算する。
図7(A)において、記憶フレームAは、最後にプロセッサ12に送信したフレームとして送信制御手段23に記憶されたフレームであり、フレームB、C、D、Eが送信制御手段23に蓄積されている時に、受信フレームFが入力された場合の動作を述べる。
送信制御手段23からプロセッサ12に送信する順番は、プログラム重畳度が高いフレームからであるが、このプログラム重畳度を計算する際に、本実施の形態2では、図7(A)に示すように、常に、最後に送信したフレームとのプログラム重畳度を計算するようにする。
つまり、フレームB、C、D、Eも、それぞれの、最後にプロセッサ12に記憶フレームAを送信したときに、記憶フレームAに対するプログラム重畳度が計算されており、フレームB、C、D、Eそれぞれの記憶フレームAに対するプログラム重畳度は、図7(A)に示すように、“0.98”、“0.90”、“0.83”、“0.80”であるとする。
このような状態で、受信フレームFが入力されると、まず、記憶フレームAに対する受信フレームFプログラム重畳度が計算する。その結果、記憶フレームAに対する受信フレームFのプログラム重畳度が、例えば、“0.85”であるとする。
すると、送信制御手段23は、記憶フレームAに対する各フレームB、C、D、E、Fのプログラム重畳度を比較して、記憶フレームAに対する受信フレームFのプログラム重畳度“0.85”が、記憶フレームAに対するフレームDのプログラム重畳度“0.83”より、大きいことがわかる。
そのため、送信制御手段23は、フレームB、C、D、Eが記憶フレームAに対して計算したプログラム重畳度と比較し、単純にプログラム重畳度が高い順に並べ替える。
その結果、本実施の形態2の場合、図7(B)に示すように、フレームB、フレームC、受信フレームF、フレームD、フレームEのプログラム重畳度が高い順に並べ替えられることになる。
従って、本実施の形態2によれば、実施の形態1と同様に、ヒット確率計算手段22が受信フレームと記憶フレームの使用プログラムの重畳度を計算して、送信制御手段23がプログラム重畳度の高い順に送信待ちのフレームを並び替えてプロセッサ12に送信するようにしたため、複数のフレームを蓄積して一括してプロセッサ12に送信する場合や、ネットワークのサービス品質保証等の制約で意図せず複数のフレームが蓄積された場合においても、プロセッサ12上のキャッシュ121にヒットする確率の高いフレームから送信することができ、アクセス速度の速いキャッシュ上のデータを有効に活用することで処理速度を向上できる。
また、一のプログラムを読み出す割合であるプログラム重畳度の割合が大きいほど、キャッシュ121にヒットする確率が高いものとみなし、送信制御手段23は、プロセッサ12に対し送信待ちの複数の受信フレームを、常にプロセッサ12に最後に送信したフレームに対するプログラム重畳度が高い順に並び替えるようにしたので、前回プロセッサ12が処理したプログラムと、受信フレームの処理に必要なプログラムとの重なりから、キャッシュ121上のデータのヒット率を近似的に計算でき、処理を簡素化して、キャッシュ121上の命令コードやデータを有効に活用することができる。
なお、本実施の形態2において、同一通信プロトコルはプロセッサ12上での処理が類似であることから、同一通信プロトコルのフレームを連続でプロセッサ12に送信するように並び替えるだけという簡素化した実装方法も考えられる。
(実施の形態3)
別の実施の形態として、複数のフレームをまとめて一括でプロセッサ12に通知する手段として、割込みを用いた方法について述べる。
図8は、本発明の実施の形態3の受信フレーム処理装置11の構成図である。図8において、図2と同じ構成要素については同じ符号を用い、説明を省略する。
図8において、この実施の形態3の受信フレーム処理装置11は、図2に示す実施の形態1の受信フレーム処理装置11に対し、新たに、割込み条件判定手段80と、割込み生成手段81とを追加している。
割込み条件判定手段80は、受信フレーム数やタイマ値による割込み条件を満たしているか否かを判定するものである。
割込み生成手段81は、割込み条件を満たしている場合、プロセッサ12に対して割込みを通知する。
割込みの条件については、受信フレーム数が決められた閾値を上回ったとき、タイマが一定の時間経過したとき、または受信フレーム数とタイマの組合せ、または複数のタイマの組合せ等が考えられる。
また、割込み閾値を通信プロトコル毎に複数設定、例えば、通信プロトコルの種別によって割込みの条件を変えるようにしてもよい。割込み閾値を通信プロトコル毎に変えることで、リアルタイム処理が必要とされるプロトコルなどはフレームの送信制御を行わずに、直ちにプロセッサ12に送信するといったことや、遅延が許容されるプロトコルなどはプロセッサ12の処理に余裕があるときのみプロセッサ12に送信するといった制御が可能となる。
図9では割込み条件として受信フレーム数と、タイマとを組合せた場合の例を取り上げて説明する。
図9は、本発明の実施の形態3における受信フレーム処理装置11の処理手順を示すフローチャートである。
まず、ステップ3100により、割込み条件判定手段80は、プロセッサ12への割込み条件をクリアする。ここでは、受信フレーム数及びタイマ値を0にセットする。
次に、ステップ3200により、割込み条件判定手段80は、割込み条件を判定するタイマ値を始動する。
そして、ヘッダ及びペイロード解析手段201は、ステップ3300により、受信フレームの有無を判定し、受信フレームありの場合はステップ3400へ進む一方、受信フレーム無しの場合は、ステップ4300へ進む。
次に、ヘッダ及びペイロード解析手段201は、ステップ3400により、受信フレームのヘッダ情報を参照して、通信プロトコルを識別する
次に、ステップ3500により、割込み条件判定手段80は、ヘッダ及びペイロード解析手段201からの受信フレーム有りの通知を受けて、受信フレーム数カウンタをインクリメントする。
そして、ステップ3600により、キャッシュ内データ推定手段21は、受信フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列をプログラムテーブル202より呼び出して、ヒット確率計算手段22に渡す。
ステップ3700により、キャッシュ内データ推定手段21は、前回プロセッサ12へ送信したフレームを記憶しているか否かを判定し、記憶されているフレームがある場合は、ステップ3900へ進む一方、記憶されているフレームがない場合は、ステップ3800へ進む。
ステップ3800では、記憶されているフレームがない場合であるので、割込み条件判定手段80は、受信したフレームを記憶フレームとする。
これに対し、ステップ3900では、記憶されているフレームがある場合であるので、キャッシュ内データ推定手段21は、記憶フレームの通信プロトコルに対応するプログラムの使用“1”/未使用“0”を示すビット列をプログラムテーブル202より呼び出す。
そして、ステップ4000により、キャッシュ内データ推定手段21は、受信フレームと、記憶フレームの呼び出した2つのビット列の使用プログラムの重畳度を計算する。
そして、ステップ4100により、送信制御手段23は、受信フレーム処理装置11内における送信待ちフレームの有無を判定し、送信待ちフレームがある場合はステップ4200へ進む一方、送信待ちフレームがない場合は、ステップ4300へ進む。
つまり、送信制御手段23は、送信待ちフレームがある場合、ステップ4200により、プログラム重畳度の高い順にプロセッサ12に送信できるように送信待ちのフレームを並び替える。なお、プログラム重畳度の高い順に送信待ちのフレームを並び替える手法は、前述の実施の形態1,2と同じであり、実施の形態1の図6(A),(B)に示すように、常に直前のフレームとの間でプログラム重畳度を算出して、プログラム重畳度の高い順に送信待ちのフレームを並び替えても良いし、実施の形態2の図7(A),(B)に示すように、常に最後に送ったフレームとのプログラム重畳度を計算して、プログラム重畳度の高い順に送信待ちのフレームを並び替えても良い。
そして、ステップ4300により、割込み条件判定手段80は、受信フレーム数、及びタイマによる割込み条件の判定を行う。つまり、割込み条件判定手段80は、受信フレーム数及びタイマ値が、予め設定した閾値を超えている場合は、割込み生成手段81へその通知を行い、ステップ4400へ進む一方、受信フレーム数及びタイマ値が、閾値を越えていない場合は、ステップ3300へ戻り、受信フレームの有無の判断から行う。
そして、割込み条件判定手段80から受信フレーム数及びタイマ値が予め設定した閾値を超えたことを示す通知が、割込み生成手段81へ出力されると、ステップ4400により、割込み生成手段81は、割込み信号を生成し、プロセッサ12に対して割込みをかけ、その割込み信号出力を送信制御手段23へ通知する。
これにより、送信制御手段23は、割込み生成手段81による割込みにより、保持している複数の受信フレームをまとめてプロセッサ12へ送信することができる。
そして最後に、ステップ4500により、キャッシュ内データ推定手段21は、プロセッサ12に最後に送信したフレームを記憶する。
このように、本実施の形態3によれば、割込み条件判定手段80と、割込み生成手段81とを設け、受信フレーム数及びタイマ値が予め設定した閾値を超えた場合のみ、プロセッサ12に対して割込みをかけて、複数の送信待ちの受信フレームをまとめて一つの割込みによりプロセッサ12に対し送信するようにしたため、割込み回数を減らしつつも、キャッシュ121上のデータにヒットする確率の高いフレームから送信することで、処理速度を向上させることができる。
また、予め指定した種別のフレームについては送信順の制御から除外することにより、例えば、リアルタイム処理などが必要なフレームについては送信制御させずに直ちにプロセッサ12に送信するなどの処理をすることできる。
また、通信プロトコルの種別によって割込みの条件を変えるように、要求される処理量に合わせてプロセッサ12が処理可能な割込み閾値を設定することにより、割込み閾値を通信プロトコル毎に変えることで、リアルタイム処理が必要とされるプロトコルなどはフレームの送信制御を行わずに、直ちにプロセッサ12に送信するといったことや、遅延が許容されるプロトコルなどはプロセッサ12の処理に余裕があるときのみプロセッサ12に送信するといった制御が可能となる等、プロセッサ12の負荷を考慮して、通信プロトコル毎に最適な割込み閾値を設定することができ、プロセッサ12のリソースを最大限活用できる。
なお、割込みが通知された後のプロセッサ12へのフレームの送信は、受信フレーム処理装置11側から送信する他に、プロセッサ12側からフレームを読み出すことも考えられる。その場合においてもプロセッサ12が読み出す順番は、プログラム重畳度の高いものから読み出すように処理される。
このように、本実施の形態3によれば、割込み条件判定手段80と、割込み生成手段81とを設け、受信フレーム数及びタイマ値が予め設定した閾値を超えたか場合のみ、プロセッサ12に対して割込みをかけるようにしたので、割込み回数を減らしつつも、キャッシュ121上のデータにヒットする確率の高いフレームから送信することで、処理速度を向上させることができる。
尚、上記実施の形態3の説明では、割込み条件判定手段80は、受信フレーム数及びタイマ値が予め設定した閾値を超えたか場合のみ、割込み生成手段81により、プロセッサ12に対して割込みをかけるように説明したが、本発明ではこれに限らず、受信フレーム数、またはタイマ値のいずれか一方が予め設定した閾値を超えた場合に、プロセッサ12に対して割込みをかけるようにしても勿論良い。
本発明にかかる受信フレーム処理装置、通信処理装置、および受信フレーム処理方法は、キャッシュ上の命令コードやデータを有効に活用できる、という効果を有し、ネットワークよりフレームを受信する全ての受信フレーム処理装置、例えば、無線LAN機能を有する携帯電話やPDA、LAN機能を有するパーソナルコンピュータ、LAN機能を有しておりネットワークを介してデータを受信してリアルタイム処理をするイベントドリブンなリアルタイムOSが組み込まれたデジタル家電の通信処理部の受信フレーム処理装置や、そのような通信処理装置、受信フレーム処理方法において有用である。
本発明を内蔵する通信処理装置の構成図 実施の形態1における受信フレーム処理装置の構成図 実施の形態1における受信フレーム処理装置プログラムテーブルを示す図 実施の形態1における受信フレーム処理装置の動作を説明するためのフローチャート 実施の形態1における受信フレーム処理装置の動作を説明するためのフローチャート 実施の形態1における受信フレーム処理装置の送信制御方法を示す図 実施の形態2における受信フレーム処理装置の送信制御方法を示す図 実施の形態3における受信フレーム処理装置の構成図 実施の形態3における受信フレーム処理装置の動作を説明するためのフローチャート 従来の受信フレーム処理装置の動作を示すフローチャート
符号の説明
10 ネットワークインタフェース
11 受信フレーム処理装置
12 プロセッサ
121 キャッシュ
13 メインメモリ
20 受信フレーム解析手段
201 ヘッダ及びペイロード解析手段
202 プログラムテーブル
21 キャッシュ内データ推定手段
22 ヒット確率計算手段
23 送信制御手段
80 割込み条件判定手段
81 割込み生成手段

Claims (12)

  1. プロセッサのキャッシュに保持された命令コードまたはデータを推定するキャッシュ内データ推定手段と、
    受信フレームがプロセッサで処理される際に前記プロセッサが使用する命令コードまたはデータを特定する受信フレーム解析手段と、
    フレーム処理時の命令コードまたはデータが前記キャッシュにヒットする確率を計算するヒット確率計算手段と、
    前記プロセッサに送信するフレームの順序を制御する送信制御手段と、を備え、
    フレームを受信すると前記キャッシュにヒットする確率が高いフレームから順に前記プロセッサに送信する、
    ことを特徴とする受信フレーム処理装置。
  2. 請求項1記載の受信フレーム処理装置において、
    前記キャッシュ内データ推定手段は、
    最後にプロセッサに送信したフレームを記憶し、最後に送信したフレーム処理の為に前記プロセッサが使用した命令コードまたはデータが前記キャッシュに保持されているものとみなす、
    ことを特徴とする受信フレーム処理装置。
  3. 請求項1または請求項2記載の受信フレーム処理装置において、
    前記受信フレーム解析手段は、
    受信フレームのヘッダ及びペイロード解析手段と、
    前記プロセッサが呼び出すプログラム群の中からフレーム処理時に呼び出すプログラムを処理内容毎に対応付けて記憶させたプログラムテーブルと、を備え、
    受信フレームの内容から呼び出すプログラムを特定することで、使用する命令コードおよびデータを特定する、
    ことを特徴とする受信フレーム処理装置。
  4. 請求項3記載の受信フレーム処理装置において、
    前記プログラムテーブルは、
    通信プロトコル毎に各通信プロトコルと、前記プロセッサが呼び出すプログラムを対応付けて記憶し、ヘッダ及びペイロードの情報から通信プロトコルを特定し、前記通信プロトコルの種別から使用する命令コードまたはデータを特定する、
    ことを特徴とする受信フレーム処理装置。
  5. 請求項3記載の受信フレーム処理装置において、
    前記プログラムテーブルは、
    アプリケーション毎に各アプリケーションと、前記プロセッサが呼び出すプログラムを対応付けて記憶し、ヘッダ及びペイロードの情報からアプリケーションを特定し、前記アプリケーションの種別から使用する命令コードまたはデータを特定する、
    ことを特徴とする受信フレーム処理装置。
  6. 請求項5記載の受信フレーム処理装置において、
    前記送信制御手段は、
    前記プロセッサに対し送信待ちのフレームを、常に直前のフレームに対するプログラム重畳度が最も高くなるようにフレームを並び替える、
    ことを特徴とする受信フレーム処理装置。
  7. 請求項5記載の受信フレーム処理装置において、
    送信制御手段は、
    前記プロセッサに対し送信待ちのフレームを、常にプロセッサに最後に送信したフレームに対するプログラム重畳度が最も高くなるようにフレームを並び替える、
    ことを特徴とする受信フレーム処理装置。
  8. 請求項1〜7いずれかに記載の受信フレーム処理装置において、
    前記送信制御手段は、
    予め指定した種別のフレームについては、送信順の制御から除外する、
    ことを特徴とする受信フレーム処理装置。
  9. 請求項1〜8いずれかに記載の受信フレーム処理装置において、
    さらに、割込み条件が所定の閾値を超えるか否かを判定する割込み条件判定手段と、
    前記割込み条件が所定の閾値を超えた場合、前記プロセッサに割込みをかける割込み生成手段と、を新たに備えて、
    複数の受信フレームをまとめて一つの割込みとしてプロセッサに通知する、
    ことを特徴とする受信フレーム処理装置。
  10. 請求項9記載の受信フレーム処理装置において、
    前記割込み条件判定手段は、通信プロトコルの種別によって割込みの条件を変える、
    ことを特徴とする受信フレーム処理装置。
  11. 請求項1〜10いずれかに記載の受信フレーム処理装置と、
    キャッシュを内蔵し、前記受信フレーム処理装置からデータを受信して処理するプロセッサと、
    前記プロセッサが処理する際に使用するメインメモリと、
    を有する通信処理装置。
  12. プロセッサのキャッシュに保持された命令コードまたはデータを推定するステップと、
    受信フレームがプロセッサで処理される際にプロセッサが使用する命令コードまたはデータを特定するステップと、
    フレーム処理時の命令コードまたはデータが前記キャッシュにヒットする確率を計算するステップと、
    前記プロセッサに送信するフレームの順序を制御するステップと、を備え、
    フレームを受信すると前記キャッシュにヒットする確率が高いフレームから順にプロセッサに送信することを特徴とする受信フレーム処理方法。
JP2004247433A 2004-08-26 2004-08-26 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法 Pending JP2006065591A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004247433A JP2006065591A (ja) 2004-08-26 2004-08-26 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004247433A JP2006065591A (ja) 2004-08-26 2004-08-26 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法

Publications (1)

Publication Number Publication Date
JP2006065591A true JP2006065591A (ja) 2006-03-09

Family

ID=36112039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004247433A Pending JP2006065591A (ja) 2004-08-26 2004-08-26 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法

Country Status (1)

Country Link
JP (1) JP2006065591A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612936A (zh) * 2021-08-05 2021-11-05 中国大恒(集团)有限公司北京图像视觉技术分公司 一种csi相机高帧率图像采集方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612936A (zh) * 2021-08-05 2021-11-05 中国大恒(集团)有限公司北京图像视觉技术分公司 一种csi相机高帧率图像采集方法

Similar Documents

Publication Publication Date Title
US7178018B2 (en) Network interface sharing methods and apparatuses that support kernel mode data traffic and user mode data traffic
US10003544B2 (en) Method and apparatus for priority flow and congestion control in ethernet network
US10826830B2 (en) Congestion processing method, host, and system
JP4703063B2 (ja) ネットワーク輻輳を緩和する方法およびシステム
US6981084B2 (en) Apparatus and method for packet ingress interrupt moderation
US11870698B2 (en) Congestion control method and apparatus, communications network, and computer storage medium
CN112995048B (zh) 数据中心网络的阻塞控制与调度融合方法及终端设备
CN111835649A (zh) 一种数据发送方法、装置及相关组件
US20230047532A1 (en) Retransmission timeout determining method and related apparatus
US20180076934A1 (en) Scalable receive window auto-tuning
WO2019192318A1 (zh) 流量平滑方法、服务器及转发设备
US9298652B2 (en) Moderated completion signaling
JP2006065591A (ja) 受信フレーム処理装置、通信処理装置、および受信フレーム処理方法
JP2009194504A (ja) コンピュータ装置およびパケット受信制御方法
CN116761211B (zh) 基于多径传输的数据包调度方法、装置、设备及存储介质
US8606960B2 (en) Method and apparatus for improving packet processing
CN112996044B (zh) 一种5g通信虚拟化网元网络拥塞的控制方法和系统
JP4995304B2 (ja) パケット転送装置の制御方法及び制御装置
US20230108537A1 (en) Systems and Methods for Link State Flooding Transmitter-Based Flow Control
CN114840337A (zh) 一种云主机收包处理方法、装置、设备及介质
US7996845B2 (en) Methods and apparatus to control application execution resource with a variable delay