JPH0736805A - 受信フレームデータ処理方式 - Google Patents

受信フレームデータ処理方式

Info

Publication number
JPH0736805A
JPH0736805A JP5177758A JP17775893A JPH0736805A JP H0736805 A JPH0736805 A JP H0736805A JP 5177758 A JP5177758 A JP 5177758A JP 17775893 A JP17775893 A JP 17775893A JP H0736805 A JPH0736805 A JP H0736805A
Authority
JP
Japan
Prior art keywords
address
buffer
header
frame
data
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
JP5177758A
Other languages
English (en)
Inventor
Yukio Shimamoto
幸夫 島本
Toru Horimoto
徹 堀本
Hidemitsu Higuchi
秀光 樋口
Riichi Yasue
利一 安江
Takahisa Miyamoto
貴久 宮本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5177758A priority Critical patent/JPH0736805A/ja
Publication of JPH0736805A publication Critical patent/JPH0736805A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【目的】本発明は、フレームデータ処理方式と通信制御
装置に関し、その目的は、アドレス境界条件を満たして
データ送受信を高速に行なう方式を提供することにあ
る。 【構成】通信プロトコルプログラムとそれが管理するプ
ロトコルバッファと、伝送路を制御する通信コントロー
ラとそれが管理するネットワークバッファを共有させ
て、伝送路からのフレームデータを直接取り込み、アド
レス境界条件の調整をして、通信プロトコルと上位プロ
グラムが参照、引き出しを行なうように構成する。 【効果】ユーザデータの移動を発生させず、ヘッダー情
報の先頭アドレスからの書き込み方の調整で可能とな
り、通信システムのデータ転送速度が向上するという効
果がある。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、通信機能を備えたワー
クステーション及び高速通信システム、特に、ローカル
エリアネットワーク(LAN)に好適なフレームデータ
処理方式と通信制御装置に関する。
【0002】
【従来の技術】従来、AMD社製Am79C900通信
コントローラの仕様に見られるように、LANなどの高
速な伝送路にワークステーションを接続する通信コント
ローラが、ワークステーションのシステム本体内の主記
憶メモリに受信フレームデータを格納する際、フレーム
のデータ構造を考慮せず、一旦、間接的に中間の固定領
域のI/O専用の受信バッファを経由してから、受信プ
ロトコル処理を行なうためのプロトコル処理専用の受信
バッファに転送していた。前者のバッファを通信バッフ
ァ、後者のバッファをプロトコルバッファと呼ぶ。
【0003】この時、プロトコル処理に必要な部分、つ
まり、プロトコルヘッダーとユーザデータのすべてを改
めて、バスやI/Oコントローラによるアドレス境界条
件に適合させるために、通信バッファからプロトコルバ
ッファへのソフトウェアによるデータコピーを行うこと
で、受信処理を実現していた。
【0004】
【発明が解決しようとする課題】しかしながら、上記従
来技術では、フレームデータを高速に処理するための上
位層の通信プロトコルプログラムのことは考慮していな
かった。
【0005】そのため、例えば、LANなどの高速な伝
送路にワークステーションを接続する通信コントローラ
は、ワークステーションのシステム本体内の主記憶メモ
リに受信データを格納する際、一旦、間接的に中間の固
定領域の通信バッファを経由してから、ヘッダー部を解
析するプロトコル処理を行なうためのプロトコルバッフ
ァに転送する必要が生じる。
【0006】特に、途切れの無い連続したデータとして
転送されるストリーム形式のデータフレームの受信の場
合は、バスやI/Oコントローラによるアドレス境界条
件に適合した形式にする必要性から、ヘッダー部とユー
ザデータ部のデータ構造やデータ長などのフレーム構造
の特徴を考慮していないため、プロトコル処理に必要な
ヘッダー部分とプロトコル処理に必要の無いユーザデー
タの両者のすべてを、上位層のプロトコル処理プログラ
ムのバッファへソフトウェアによるデータコピーを行な
うことになる。
【0007】このため、メモリ間を移動するだけの何も
処理を行なわないデータコピーによるユーザデータの転
送時間損失が発生し、その分性能が劣化してしまうとい
う問題がある。
【0008】特に、イーサネット上のTCP/IP(Tr
asmission Control Protocol/Inter-net Protocol)な
どの場合、ヘッダー情報が高々50バイト程度なのに対
して、ユーザデータが数百バイト程度から1460バイ
トに及ぶ事が多い。
【0009】この場合、ユーザデータの転送時間は、ヘ
ッダー情報の転送時間に比べて、数十倍の無処理である
メモリ間転送時間が発生する。
【0010】また、データ転送を高速化する目的で、デ
ータコピー回数を減らすために、プロトコル処理を行な
うための動的なプロトコルバッファに通信コントローラ
のDMA機能などによって直接転送することは、ヘッダ
ー部のデータ構造を考慮していないために、アドレス境
界条件をヘッダー部のデータ構造がまたぐという問題が
存在し、上位層のプロトコルプログラムがヘッダー部の
解析処理を行なうのが不可能となる問題があった。
【0011】本発明では、上記通信システムにおいて、
通信ハードウェアと通信プロトコルを処理するソフトウ
ェア間で、通信バッファとプロトコルバッファを共有
し、アドレス境界条件を満足しながら、DMA機能など
による直接データ転送を行なうことが可能となり、必要
最小限のデータのメモリ間転送だけで、フレームの主体
となっているユーザデータそのものの移動を回避し、高
速に通信制御処理を行うフレームデータ処理方式と通信
制御装置を提供することを目的とする。また、本発明
は、通信ハードウェアに境界条件アドレスを認識させ
て、全くフレームデータのバッファ間の移動を発生させ
ないプロトコル処理を可能とし、データを処理するので
はなく、メモリ間を移動するだけの時間を無くし、高速
に通信制御処理を行うフレームデータ処理方式と通信制
御装置を提供することを目的とする。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、本発明のフレームデータ処理方式と通信制御装置
は、通信プロトコルプログラムと制御プログラムがヘッ
ダー付きのフレームデータを格納するためのフレームデ
ータ格納用バッファとアドレス境界条件調整用バッファ
とバッファ管理用バッファと通信制御テーブル用または
通信制御情報用バッファと、伝送路を制御、管理する機
能を備え、データフレームの送受信を行なう通信コント
ローラとその通信コントローラが管理する通信バッファ
を備える。
【0013】該フレームデータ格納用バッファは、主記
憶上に設け、通信プロトコルと通信コントローラの間で
共有する記憶領域として機能し、通信プロトコルと通信
コントローラの間で無駄なコピーを行なうこと無く伝送
路からのフレームデータを処理できるようにした。
【0014】該フレームデータ格納用バッファは、予
め、システムの初期化の過程で、該バッファの先頭アド
レスが、アドレス境界条件を満たすように一つまたは複
数個確保しておく。
【0015】また、該共有バッファの大きさは、伝送路
の規定で決められているフレームデータの最大サイズよ
りも十分大きなサイズを確保する。
【0016】また、通信コントローラは、伝送路を直接
制御するネットワークコントローラとバスを制御するバ
スコントローラで構成され、該通信コントローラが伝送
路からのフレームデータを主記憶上の該フレームデータ
格納用バッファに直接転送する。
【0017】また、通信コントローラは、伝送路を直接
制御するネットワークコントローラとバスを制御するバ
スコントローラとローカルプロセッサとローカルメモリ
で構成し、伝送路からのフレームデータを通信コントロ
ーラ内部のローカルメモリに一旦蓄えた後、通信コント
ローラが主記憶上の該フレームデータ格納用バッファに
転送を行なう。
【0018】また、上記フレームデータ格納用バッファ
は、ユーザデータを上位層のプロトコルまたはユーザプ
ログラムに引き渡すために使用する。
【0019】当該格納用バッファ領域は、動的な領域に
確保し、フレームデータ格納用バッファの実空間の物理
アドレスを登録した受信記述子を設けることによって、
通信プログラムが確保と解放の管理を行なう。
【0020】また、該バッファが必要となる前に、予め
規定の数量分確保ができ、必要でなくなったときは、該
領域を即座に解放できるようにした。
【0021】また、当該フレームデータ格納用バッファ
の先頭アドレスをバッファ管理用バッファの所定のアド
レス管理領域に記載して接続する。
【0022】新規に、アドレス境界条件調整用バッファ
を確保し、上記のバッファ管理用バッファの先頭アドレ
スをアドレス境界条件調整用バッファの所定のアドレス
管理領域に記載して接続する。
【0023】また、アドレス境界条件調整用バッファに
プロトコルバッファの機能としても共用するフレームデ
ータ格納用バッファ内の上位層プロトコル用のヘッダー
部をデータコピーするようにした。
【0024】また、フレームデータ格納用バッファを管
理するバッファ管理用バッファの先頭アドレスをアドレ
ス境界条件調整用バッファの所定のアドレス管理領域に
記載して接続する。
【0025】更に、アドレス境界条件調整用バッファ内
のヘッダー部の情報を上位層のプロトコルに引き渡す
で、最低一回のユーザプログラムへのユーザデータの移
動だけで済むようにした。
【0026】また、新規に通信制御テーブル用バッファ
を確保して、通信制御テーブル用バッファの所定のアド
レス管理領域に通信制御テーブルの先頭アドレスを記載
して、上位層のプロトコル処理プログラムがアドレス境
界条件の支障がなく通信管理情報を参照できるようにす
る。
【0027】また、アドレス境界条件調整用バッファの
先頭アドレスを通信管理テーブル用バッファの所定のア
ドレス管理領域に記載して接続し、通信管理テーブル用
バッファの先頭アドレスを上位層への受信キューに登録
することによって、通信管理情報とヘッダー部とユーザ
データを共に上位層のプロトコルに引き渡せるようにす
る。
【0028】また、通信制御テーブルの上位層プロトコ
ル処理プログラムへの引き渡し方で、フレームデータ格
納用バッファの使用済みとなった領域の先頭からアドレ
ス境界条件に適合するように通信管理情報テーブルの先
頭アドレスを記載して、新たにバッファを確保すること
無く、上位層プロトコル処理プログラムへ該バッファ内
のユーザデータと共に引き渡すようにした。
【0029】また、受信記述子には、バスとI/Oのア
ドレス境界条件に適合したフレームデータ格納用バッフ
ァの先頭のアドレスにフレームヘッダーとI/Oのアド
レス境界条件の差分を足した、又は、引いたアドレスを
記載する。
【0030】この時、通信コントローラは、受信記述子
に記載されたバスのアドレスの境界条件を識別し、バス
のアドレス境界条件をまたぐアドレスが記載されている
場合は、FIFOによって、バスの境界条件に一致した
転送単位量とは異なるバスの境界条件に適合するアドレ
スまでのデータサイズしか転送しない。
【0031】バスの境界条件に適合するところからは、
規定の境界条件に適合するデータサイズ単位で転送でき
るようにする。
【0032】同時にI/Oコントローラは、バスの境界
条件のアドレスの範囲内のアドレスを無視するようにし
て、受信記述子に記載されているアドレスとは異なる本
来のバスの境界条件に適合したアドレスから転送してき
たデータを格納する。
【0033】つまり、先頭のFIFOで送られてきたデ
ータの一部分にアドレス調整用の埋め合わせデータを補
充して(以下、PADDINGすると呼ぶ)、バスの境
界条件とバスの境界条件の整数倍であるI/Oの境界条
件が一致するようにする。
【0034】上記のような機能を備えた通信コントロー
ラとI/Oコントローラによって、プロトコルヘッダー
部は、I/Oとバスの境界条件に適合し、上位層のプロ
トコル処理プログラムが境界条件合った処理が可能とな
り、ソフトウェアによるデータコピーを一切発生させず
にデータフレームデータ格納用バッファだけを引き渡す
ようにする。
【0035】
【作用】上記手段により本発明は、アドレス境界条件に
適合させて、プロトコルバッファと通信バッファを共有
させることにより、必要最小限の回数のユーザデータの
移動しか発生しないため、高速にデータ通信処理が行う
ことを可能となる。
【0036】また、上記手段によって、本発明は、通信
コントローラからプロトコルバッファへDMA機能など
によって、直接フレーム転送を行なっても、ヘッダー部
と通信管理情報テーブルのアドレス境界条件を適合させ
ることができ、必要最小限の記憶領域の管理と制御処理
だけで、フレームデータを連続してプロトコル処理を行
なうことが可能となる。
【0037】また、上記手段により本発明は、ヘッダー
部のバッファ間のデータ移動だけで、アドレス境界条件
を適合させることができ、そのため、必要最少量のデー
タコピーしか発生しないため、短時間で、受信処理を完
了することが可能となる。
【0038】また、上記手段によって、ユーザデータの
ような大量のデータの移動のために、CPUが使用され
ることを防ぎ、また、バスを大量のデータが絶えず流れ
るようなバスへの集中負荷が減少し、その他のプログラ
ム処理が滞ることを最小限に防ぐことができる。
【0039】又、通信コントローラとI/Oコントロー
ラに境界条件のアドレスの識別転送機能を備えることに
よって、ソフトウェアによるデータコピーによる時間損
失を一切なくすことも可能となる。
【0040】また、上記手段によって、本発明は、プロ
グラム構造を簡略化させ、上位層のプロトコルまたはユ
ーザプログラムへのインタフェースの複雑度を最小限に
押さえることができ、簡単な先頭アドレスなどのキュー
構造で、上位層のプロトコルまたはプログラムがフレー
ムデータから得られる情報を迅速に処理することができ
る。
【0041】
【実施例】以下、本発明の実施例を構成図、フローチャ
ート図を用いて説明する。
【0042】便宜上、本通信装置が扱う通信プロトコル
は、TCP/IP(TransmissionContorol Protocol/Int
ernet Protocol)とIEEE802.3の下位プロトコ
ルとする。
【0043】また、通信コントローラは、例えば、AM
D社製のAm79C900を用いるものとする。また、
CPUは、バス幅が32bitのものを利用した場合を
想定する。
【0044】図1は、本発明の一実施例における通信制
御システムの構成を示すブロック図である。
【0045】通信制御システムは、通信プロトコルの処
理を行なうシステム本体20内のCPU1及び主記憶
2、伝送路3と主記憶2の間でバス5とバスコントロー
ラ6を経由してフレームデータの送受信を行なう通信コ
ントローラ7で構成する。
【0046】CPU1は、フレームデータを主記憶に転
送できるように各種バッファ10、12、13の確保と
解放のバッファ管理部4の機能と通信管理テーブル11
の管理機能を制御し、主記憶2に転送されたフレームデ
ータのプロトコル処理とその上位層に位置するユーザプ
ログラム8とプロトコル処理プログラム9との間の転送
処理とユーザプログラム8の実行を行なう。
【0047】主記憶2は、通信処理を行なうプロトコル
処理プログラム9の保存とフレームデータを一時保存す
るフレームデータ格納用バッファ10とプロトコル処理
プログラムに必要な情報を保存する通信管理テーブル1
1、フレームデータのヘッダー部のアドレス境界条件を
適合させるアドレス境界条件調整用バッファ12、バッ
ファ管理用バッファ13として機能する。
【0048】図2は、本発明の一実施例における通信制
御システムを実現しているプログラム構造である。
【0049】プログラム構造は、送受信処理を行なうド
ライバ21、フレームデータの先頭に付いているヘッダ
ーなどの通信プロトコル処理を行なうプロトコル処理プ
ログラム22、通信機能を利用するアプリケーション層
のユーザプログラム23、システム起動時や終了時のド
ライバ21やプロトコル処理プログラム22の初期化や
終了処理などの管理と受信割込み時などのスケジューリ
ング制御を行なうオペレーティングシステム24、フレ
ームデータや通信管理情報などを保存するバッファやテ
ーブルの領域割当てや解放の直接的な制御を行なうオペ
レーティングシステムの主記憶管理部25で構成する。
【0050】図2に示すようにドライバ21は、通信コ
ントローラ7を制御し、伝送路3と主記憶2の間でフレ
ームデータの受け渡しを行なう。
【0051】図3は、通信コントローラ7とシステム本
体20を初期化した後、伝送路3からデータ受信した時
にデータが流れる処理部の構造を示している。
【0052】初期化時にドライバ21は、初期化部10
0の機能によって、通信コントローラが参照する受信記
述子テーブル41に受信データ転送先の物理アドレスを
設定している。上記物理アドレスは、通信バッファ兼プ
ロトコルバッファになるフレームデータ格納用バッファ
31の先頭アドレスである。
【0053】このように、初期化部100は、受信記述
子テーブル41へ受信フレームデータの転送先を示すア
ドレスの予約登録を行なう記述子登録機能を提供する。
【0054】ドライバ21の受信処理機能部は、プロト
コル処理プログラム22と通信コントローラ7で共有す
るフレームデータ格納用バッファ31とバッファ管理用
バッファ32と通信管理テーブル42とアドレス境界条
件調整用バッファ33と通信コントローラ7からのハー
ドウェア割込み処理部211と受信割込み処理部212
とデータ受信通知部213で構成する。
【0055】また、受信割込み処理部212では、ドラ
イバ21での上位層のプロトコル処理プログラムへデー
タ受信通知部213が、受信データを受信キュー登録部
2131へキュー登録するための処理終了後、受信割込
み処理部212が新たにフレームデータ格納用バッファ
31を確保して、その物理アドレスを上記記述子テーブ
ル41に登録する記述子追加登録機能を有する。
【0056】また、受信割込み処理部は、フレームデー
タ格納用バッファから、上位プロトコルに応じて、ヘッ
ダー部を取り出し、アドレス境界条件調整用バッファに
データコピーを行ない、通信管理テーブルのアドレス
は、別途バッファを確保して、そこに記載する機能を有
する。
【0057】また、上記代案として、受信割込み処理部
は、フレームデータ格納用バッファから、上位プロトコ
ルに応じて、ヘッダー部を取り出し、アドレス境界条件
調整用バッファにデータコピーを行ない、通信管理テー
ブルの先頭アドレスを該フレームデータ格納用バッファ
の先頭アドレスから記載する機能を有する。
【0058】また、受信割込み処理部は、上記の各バッ
ファの先頭アドレスをそれぞれのバッファの所定のアド
レス管理領域に記載して接続し、各バッファを管理制御
する機能を有する。
【0059】図4は、イーサネットなどの伝送路を流れ
るフレームデータ51の構造の一例を示している。
【0060】このフレームデータ5は、先頭に物理アド
レスを示している通信コントローラが参照することにな
るMACヘッダー52、次にプロトコル処理プログラム
が参照処理するプロトコルヘッダー53、その後にユー
ザプログラムが最終的に利用するユーザデータ54とフ
レームデータの終端を示すフレームテイル55で構成し
ている。
【0061】上記フレームデータ51は、MACヘッダ
ー52のみを通信コントローラで処理されるが、そのま
ま、MACヘッダーを付加した状態で、図3におけるシ
ステム本体20の主記憶2のフレームデータ格納用バッ
ファ31に転送される。
【0062】図5及び図6は、プロトコルの一例として
のTCP/IPにおけるIPヘッダーとTCPヘッダー
の構造を示している。
【0063】この両者のヘッダーはプロトコル処理プロ
グラムで処理される。
【0064】それぞれヘッダーの長さは、オプションの
存在状態によって、最低20バイトからの可変長にな
る。
【0065】ヘッダーに記されている情報は、1ビット
単位のフラグや2バイトと4バイトのポート番号やアド
レスや4バイトのフレーム番号まで、多種多様な構造と
なっている。
【0066】MACヘッダーがイーサネットの場合14
バイトであるから、このままMACヘッダーの先頭アド
レスからTCP/IPヘッダーの先頭アドレスを求め
て、ヘッダー部のプロトコル処理を行なうとCPUの種
類に起因するバス幅の違いやバスコントローラの規定の
アドレス境界条件が、適合できなくなり、ヘッダー部内
の各種情報が正しく読み出せなくなる。
【0067】このTCP/IPヘッダーなどのプロトコ
ルヘッダーは、フレームデータが主記憶に転送された後
で、そのプロトコルヘッダー部を境界条件調整用バッフ
ァへデータコピーなどによって転送しなおし、上位層の
プロトコル処理プログラムに当該バッファの先頭アドレ
スを引き渡すことになる。
【0068】図7は、各種バッファと通信管理テーブル
の関連を示している。
【0069】各バッファの先頭アドレスは、オペレーテ
ィングシステムのメモリ管理部の機能によって、アドレ
ス境界条件が適合している。
【0070】図7に示しているように、データを受信し
たとき、通信コントローラは、受信記述子テーブル41
に記載している空きフレームデータ格納用バッファ31
の先頭アドレスを参照して、MACヘッダーからユーザ
データまでをDMA機能で格納する。
【0071】このフレームデータ格納用バッファ31の
先頭アドレスをバッファ管理用バッファ32の所定のア
ドレス管理領域に記載登録することによって、ドライバ
は、バッファ管理を行っている。このバッファ管理する
段階では、ドライバ、又は通信コントローラは、上位層
のプロトコル処理プログラムが正常にヘッダー部の処理
を行なえるようにヘッダー部のアドレス境界条件を適合
させておくことが必要となる。
【0072】以下に、図7におけるヘッダー部のアドレ
ス境界条件を適合させる手順を説明する。
【0073】新たにアドレス境界条件調整用バッファ3
3を確保し、このアドレス境界条件調整用バッファ33
の所定の領域(m_next)にバッファ管理用バッファ32
の先頭アドレスを登録して接続する。
【0074】アドレス境界条件調整用バッファ33の所
定の領域にIP/TCPのヘッダー部のみをデータコピ
ーする。
【0075】該ヘッダー部のデータコピーの完了後、フ
レームデータ格納用バッファに受信したユーザデータの
相対的先頭位置をバッファ管理テーブルの所定の相対ア
ドレス管理領域(m_off)に登録する。ユーザデータが無
いときは、相対的先頭位置をゼロにする。
【0076】更に、通信管理テーブル用バッファ34を
確保して、上記のアドレス境界条件調整用バッファ33
の先頭アドレスを登録(m_next)して接続する。
【0077】その通信管理テーブル用バッファ34の中
に通信管理テーブル42の先頭アドレスを記載する。
【0078】この通信管理テーブル用バッファ34の先
頭アドレスを上位層のプロトコル処理プログラムに通知
する。
【0079】以上の手順で、アドレス境界条件を適合さ
せて、プロトコル処理プログラムに引き渡したことにな
る。
【0080】また、この手順では、以下のような利点が
ある。
【0081】この図7の例のような場合、チェインリス
ト構造の変更による各バッファ間の関連付けは、統一さ
れた構造のバッファを使用するため、バッファ管理制御
と上位層のプロトコル処理プログラムにおけるバッファ
内のデータの読みだし制御が容易になっている。
【0082】アドレス境界条件調整用バッファ33に
は、フレームデータ格納用バッファ内のプロトコルヘッ
ダー部とストリームデータの一部のみをデータコピーで
転送する。このとき、該調整用バッファの先頭アドレス
がアドレス境界条件に適合しているので、上位層のプロ
トコル処理プログラムに引き渡しても処理上の支障が無
い。
【0083】また、アドレス境界条件調整用バッファ3
3の先頭アドレスを通信管理テーブル用バッファ34に
関連付けた構造となっていて、上位層のプロトコル処理
プログラムへのキュー登録は、この通信管理テーブル用
バッファの先頭アドレスの登録だけでよい。
【0084】図8は、図7の代案であって、各種バッフ
ァと通信管理テーブルの関連を示している。
【0085】各バッファの先頭アドレスは、オペレーテ
ィングシステムのメモリ管理部の機能によって、アドレ
ス境界条件が適合している。
【0086】フレームデータ格納用バッファ31の使用
済み領域(MACヘッダー領域)の先頭に通信管理テー
ブル42の先頭アドレスを書き込むことで関連付け、通
信管理テーブル42のアドレス境界条件をフレームデー
タ格納用バッファ31の使用済み領域の再利用すること
によって、アドレス境界条件の適合性を代用する方式で
ある。
【0087】また、フレームデータ格納用バッファ31
の中のユーザデータの相対的先頭位置(m_off)を管理
するバッファ管理用バッファ32の先頭アドレスをアド
レス境界条件調整用バッファ33に接続(m_next)し、
当該調整用バッファ33の先頭アドレスを上位層のプロ
トコル処理プログラムへのキューに登録することにな
る。
【0088】この場合、通信管理テーブルのアドレスを
フレームデータ格納用バッファ31の使用済み領域の先
頭に書き込み、該格納用バッファ31を管理するバッフ
ァ管理用バッファ32の先頭アドレスを該調整用バッフ
ァ33に登録して接続して一連のデータのリンク関係を
形成している。このアドレス境界条件調整用バッファ3
3の先頭アドレスを上位層のプロトコル処理プログラム
へのキューに登録すると上位層のプロトコル処理プログ
ラムが通信管理テーブル42と該調整用バッファ33の
中のヘッダーを参照するようにしている。
【0089】以上のように構成された本実施例の通信制
御装置の動作について、各処理アルゴリズムの一例をP
AD図を用いて説明する。
【0090】図9は、送信記述子テーブルであり、図1
0は、受信記述子テーブルの初期化を行なう処理アルゴ
リズムの一例である。
【0091】図9において、最初に、送信記述子に記載
されているアドレスなどの要素と送信記述子管理テーブ
ルの要素をゼロに設定する。該送信記述子テーブルの要
素には、送信要求が発生する度に、バッファの先頭アド
レスと通信管理情報を設定することになる。
【0092】また、図10において、受信記述子テーブ
ル管理テーブルから受信記述子テーブルの先頭アドレス
を取得する。
【0093】図10において、受信記述子の数だけルー
プして、通信バッファとプロトコルバッファの共有バッ
ファであるフレームデータ格納用バッファを確保し、そ
れぞれの受信記述子にフレームデータ格納用バッファの
アドレスなどの初期値情報を設定する。
【0094】この時、既に該格納用バッファのアドレス
が取得されていて、受信記述子に設定されているとき
は、新たなアドレスを登録しないように次の番号の受信
記述子へ飛び越す。
【0095】この飛び越しは、主記憶上に、どこからも
管理されない記憶領域を生むことを避けるためである。
【0096】図10のように、受信記述子の初期化時に
予めフレームデータ格納用バッファを確保して、その先
頭ポインタのアドレスを受信記述子に登録しておくの
は、本体システムの初期化が完了し、システムが全て立
ち上がったときに、通信コントローラが受信したデータ
を即座にDMA機能などにより、転送できるようにする
ためである。このアドレスがバッファ取得時に論理アド
レスであるならば、実空間の物理アドレスに変換し、そ
の物理アドレスを記述子のアドレス領域に登録する必要
がある。
【0097】また、記述子管理テーブルの各項目の初期
値を設定するのは、記述子とバッファの関係を本体シス
テムが容易に管理でき、対応関係をを保ったまま、上位
層のプログラムにバッファの引渡しが出来るようにする
ためである。
【0098】但し、受信記述子に初期値を設定するの
は、受信記述子にアドレスが登録されていないときであ
る。以下の項目は、記述子にアドレスが取得されている
ときでも、すべて、初期値を設定する。
【0099】通信コントローラがDMA(Direct Memory
Access)機能によって、フレームデータを主記憶に転送
するとき、バス制御権を持っていなければならない。こ
のバス制御権が通信コントローラに有るか無いかを示す
記述子に初期値コードを設定する。
【0100】また、受信記述子にカウントされるエラー
統計情報の初期値は、すべてゼロに設定する。
【0101】また、受信フレームデータのメッセージ長
の記録領域の初期値もゼロに設定する。
【0102】図10の受信記述子の初期化処理によっ
て、システム起動開始後、フレームデータを受信した時
に通信コントローラのDMA機能を用いてフレームデー
タを主記憶内のフレームデータ格納用バッファに転送で
きる。
【0103】図11は、通信コントローラから、本体シ
ステム内のドライバに通知するハードウェア割込みの制
御処理のアルゴリズムの一例である。
【0104】最初に割込み禁止状態を設定する。次に、
システム本体のバスに接続されているどの通信コントロ
ーラからハードウェア割込みが入ったか、また、何のた
めのハードウェア割込みかを調べる。
【0105】異常を示すレジスタのフラグが立っていな
ければ、上記のハードウェア割込みが、フレームデータ
受信通知か、送信終了の割込み通知かどうか判定する。
【0106】フレームデータ受信であるならば、ドライ
バの受信割込み通知処理部を起動する。
【0107】この時、通信コントローラは、ハードウェ
アの制御によって、図10で述べた受信記述子に示され
ている物理アドレス宛にフレームデータを転送してい
る。
【0108】送信終了割込み通知であるならば、ドライ
バの送信終了割込み処理部を起動する。
【0109】正常にドライバの上記の処理が完了する
と、送信記述子がすべて使用されていたために送信待ち
になっているデータが無いか送信キューを検査して、有
るならば、送信終了割込みの延長上で解放された送信記
述子を使用して、フレームデータを作成して送信処理を
行なう。
【0110】最後に割込み禁止状態を解除して、ハード
ウェア割込み制御処理を終了する。
【0111】以上の処理によって、ハードウェア割込み
からフレームデータを通信コントローラと主記憶の間で
転送去れるフレームデータのプロトコル処理を行なう機
会を得るドライバの受信割込み処理または送信終了割込
み処理が行なえる。
【0112】図12は、TCP/IPデータフレームを
受信した場合の受信割込み処理のアルゴリズムの一例で
ある。
【0113】ハードウェア割込みから起動された受信割
込み処理では、受信記述子の数だけループして、すべて
のデータフレーム格納用バッファの中の受信フレームデ
ータの存在を調べる。
【0114】まず、フレームデータの先頭があるかない
かを検査する。
【0115】フレームデータの先頭があることが判る
と、フレームデータの次の処理に移る前に、通信コント
ローラがDMAなどによるフレームデータ転送処理を完
了して、システム本体側にバスの制御権を移してきたか
否か、バスの制御権の判定を行なう。
【0116】システム本体側にバス制御権が移っていれ
ば、フレームデータ格納用バッファの論理アドレスを記
述子管理テーブルから検索して、また、受信メッセージ
長を受信記述子を調べて、MACヘッダーの検査を行な
う。
【0117】正常に受信しているならば、フレームデー
タの終端も正常に受信処理を完了しているか判定する。
【0118】正常に完了していれば、上位層へのプロト
コル種別を判定する。
【0119】この実施例の場合、TCP/IPプロトコ
ルを例にあげているので、上位層のプロトコルとして
は、IP宛か、ARP宛か、RARP宛か、その他のプ
ロトコル宛かが判定できる。
【0120】ARPまたはRARPの時は、ARP受信
処理部を起動する。
【0121】IP宛の場合は、IPの上位層プロトコル
が、TCPルートのフレームデータか、UDPルートの
フレームデータか、ICMPルート、または、その他の
プロトコルのフレームデータか判定する。
【0122】もし、TCPルートであるという判定が完
了すると、図12のAに示すように、アドレス境界条件
調整用バッファを確保し、その次にIPヘッダとTCP
ヘッダーをこのバッファにデータコピーし、MACヘッ
ダー長とIPヘッダー長とTCPヘッダー長の和の分だ
け、バッファ管理用バッファからのオフセット値(m_of
f)に加算して、上位層のユーザプログラムがユーザデー
タを処理できるように更新する。UDP/IPの場合も
同様である。
【0123】ICMPの場合は、ICMPヘッダーのみ
存在するため、ユーザプログラムがユーザデータ処理す
る場合とは異なり、ICMPデータをデータコピーした
後、空のフレームデータ格納用バッファを接続している
形となる。ICMPの場合は、後述の図13で説明す
る。
【0124】その後、各上位層のプロトコル種別に応じ
たヘッダー長の分だけ、新たに確保した、アドレス境界
条件調整用バッファにデータコピーを行なう。
【0125】転送速度が問題となる大量データのファイ
ル転送の場合、TCP/IPやUDP/IPでは、オプ
ションは、殆ど使用することが無く、このオプションが
無い場合は40バイトのデータコピーで済む。
【0126】次に、通信管理テーブルのアドレスをフレ
ームデータ格納用バッファの使用済み領域に書き込む
か、または、新たに確保したアドレス境界条件調整用バ
ッファを接続した通信管理テーブル用バッファ内の該格
納用バッファの先頭アドレスの位置に書き込む。
【0127】それらの処理が完了すると、上位層のプロ
トコル処理プログラムに通知するためのデータ受信通知
処理部を起動する。
【0128】以上の処理において、各バッファの先頭ア
ドレスは、オペレーティングシステムの主記憶管理部の
機能によって、アドレス境界条件が適合しているため、
最小限のデータコピーによって、アドレス境界条件が調
整されたことになり、上位層のプロトコル処理プログラ
ムにヘッダー部が引き渡されても正常に処理できること
になる。
【0129】次に受信通知部の処理が完了して、正常リ
ターンが戻ってきたときの後の処理を説明する。
【0130】上位層への受信通知処理が正常に行なわれ
た後、上位層のプロトコル処理プログラムで、各バッフ
ァが管理され、いずれ各バッファは上位層プロトコルで
解放されるので、新たに確保しない限り、連続して受信
するフレームデータに対して、バッファが不足する。
【0131】そのため、その事態に備えて、初期化処理
の過程で備えたバッファの数に一致するように新たにフ
レームデータ格納用バッファを確保しておき、受信記述
子と受信記述子管理テーブルに追加登録し、更新してお
く。
【0132】一方、先頭フレームの判定が検出できない
場合、通信コントローラからのチェインデータとして、
壊れたフレームデータを受信しているので、このフレー
ムデータに対して、新たにバッファを確保して、受信記
述子と受信記述子テーブルを更新しておく。
【0133】すべての処理が完了すると、次のフレーム
データの受信に備えて受信割込み処理を終了する。
【0134】以上のように、一連の受信割込み処理の中
で、プロトコルヘッダー部のアドレス境界条件の適合を
行なうことによって、上位層のプロトコル処理プログラ
ムは、正常に、プロトコルヘッダーの処理を行なうこと
が可能となる。
【0135】同時に、ユーザデータのデータコピーも発
生すること無く、最小限のプロトコルヘッダーのデータ
コピーのみで済むため、受信処理も高速で行なえる。
【0136】図13のBとCは、プロトコルヘッダーの
アドレス境界条件調整処理のアルゴリズムの一例であ
る。
【0137】受信割込み処理において、データフレーム
のプロトコル種別がIPに属するときは、ICMP系か
否か判定後、アドレス境界条件調整用バッファを確保す
る。図7と図8に示したように、該調整用バッファのア
ドレス管理領域(m_nex)にバッファ管理用バッファの先
頭アドレスを記載して接続する。フレームデータ格納用
バッファに取り込んだフレームデータのTCP/IPヘ
ッダーを該調整用バッファにデータコピーする。バッフ
ァ管理用バッファから該格納用バッファへの相対的位置
関係を示すオフセット値領域(m_off)にフレームデー
タ長からデータコピーした分だけ引いた値を登録する。
【0138】ICMP系フレームであった場合は、IP
ヘッダーとICMPデータを同様にコピーして、該オフ
セット値をゼロに設定する。
【0139】以上の処理によって、プロトコルヘッダー
のみのデータコピーでアドレス境界条件を満たすことが
でき、上位層のプロトコル処理は、正常にヘッダーの処
理を行なえる。
【0140】図14は、データ受信通知処理のアルゴリ
ズムの一例である。
【0141】受信割込み処理で判定したデータフレーム
のプロトコル種別が、プロトコル種別がIPであった場
合、受信キューに登録できるか否か判定する。
【0142】IPキューに登録できないときは、バッフ
ァを解放する。IPキューに登録できるときは、オペレ
ーティングシステムに対して、スケジューラを起動し
て、データ受信通知処理を終了する。
【0143】図15は、アドレス境界条件調整用バッフ
ァの先頭に、通信管理テーブルのアドレスを登録し、I
PヘッダーやTCPヘッダーのようなプロトコルヘッダ
ーと共に、上位層プロトコル処理プログラムに引き渡す
方式における受信記述子と通信管理テーブルと各バッフ
ァとの関連を示す一例である。
【0144】フレームデータ格納用バッファに格納され
た受信フレームのフレームヘッダーであるMACヘッダ
ーを解析し、上位層プロトコルの種別を判定する。この
図に示したようにIPヘッダーが存在することが分かる
と、IPヘッダー長を示す箇所に記載されているIHL
を参照する。更に上位層にあるプロトコルの種別を判定
し、TCPであることが分かると、TCPヘッダー長に
相当するDOを参照し、データコピーすべきヘッダーサ
イズを算出する。フラグメントデータとして転送される
場合は、IPヘッダーのフラグメントフラグとフラグメ
ントオフセットとフラグメントIDを判別する。このフ
ラグメントデータの転送の場合、IPヘッダーに直接ユ
ーザデータが続くので、IPヘッダーのみが、データコ
ピーすべきヘッダーサイズとなる。 次に、アドレス境
界条件調整用バッファの先頭からバスの境界条件に適合
した領域だけ空白領域を作る。これは、通信管理テーブ
ルの所在を示すアドレスを格納するための領域である。
該アドレスは、バスの境界条件に適合しているので、通
信管理テーブルの処理は、境界条件に適合した処理がが
可能となる。この通信管理テーブルの所在を示すアドレ
スを格納するための領域の次のバスの境界条件に適合し
た領域から、IPヘッダー以降のデータコピーすべきサ
イズをフレームデータ格納用バッファから転送する。こ
の処理が完了すると通信管理テーブルのアドレスを該調
整用バッファの先頭領域に登録し、上位層プロトコル処
理プログラムに引き渡す。この一連の処理によって、最
小限のデータコピーのみで構造型データを持つヘッダー
の境界条件の整合が実現し、上位層のプロトコル処理が
正常に行なえる。
【0145】図16は、UDPヘッダーのフレームフォ
ーマットである。UDPプロトコルでは、常に固定的に
定義された8オクテットのみが構造をもつ。従って、U
DPヘッダー長は、常に8オクテットとなる。
【0146】図17から図19までは、ICMPヘッダ
ーのフレームフォーマットの例である。ICMPプロト
コルでは、常に固定的に定義された8オクテットのみが
構造をもつ。従って、ICMPヘッダー長は、常に8オ
クテットとなる。
【0147】図20は、主なデータコピー条件を示した
テーブルである。このテーブルのように、フレームを処
理するプロトコルに応じて、データコピー量が決定でき
る。
【0148】データコピー量を決定するとき、プログラ
ム内でプロトコル種別から判定する。プログラムコーデ
ィング段階で直接的に分岐命令などを用いる方法と、参
照テーブル型データベースを保持して、プロトコルの変
更時や追加時には、ソフトウェアによるテーブルへの登
録更新を行い、柔軟にデータコピーサイズを参照決定す
る方法がある。
【0149】この図20の例では、TCP/IP、UD
P/IP、フラグメント型TCP、UDPとICMPを
取り上げているが、転送処理時間がとくに問題と成る恐
れのあるプロトコルとしているからである。この例で、
その他のプロトコルは、フレームヘッダー以降の総デー
タグラム長をデータコピーするとしたのは、必要以上に
判定条件を分けることを避け、プログラムの判定処理を
簡素化し、処理を高速化するためである。
【0150】図21は、フレームデータ格納用バッファ
にフレームデータを格納する際に通信コントローラとI
/OコントローラのハードウェアをIPヘッダーのよう
なプロトコルヘッダーからアドレス境界条件に適合でき
るように工夫することで、アドレス境界条件調整用バッ
ファを用意すること、当該調整用バッファにプロトコル
ヘッダー部もコピーすること自体が不要になった方式を
示すものである。
【0151】予め、バスとI/Oの境界条件に適合した
フレームデータ格納用バッファの先頭アドレスを確保し
ておく。当該バッファの先頭アドレスにフレームヘッダ
ーであるMACヘッダーとI/Oの境界条件サイズの差
分を付加して受信記述子に登録しておく。
【0152】通信コントローラは、フレームを受信する
と受信記述子を参照して、本来のフレームデータ格納用
バッファの先頭アドレスから差分を付加したアドレスか
らフレームデータを格納し始める。このとき、バスの境
界条件に適合していないアドレスが示されているとき、
通信コントローラは、そのバスの境界条件とバスの境界
条件に適合していないアドレスの差分のみを一回の受信
FIFO動作で格納する。例えば、バスの境界条件が、
32ビットCPUを使用していて、4バイトであったと
き、4倍との整数倍に2バイトずれたアドレスが受信記
述子に記述されていたとする。この時、通信コントロー
ラは、最初の受信FIFO動作で、一回に4バイト転送
できるところを2バイトだけ転送するようにする。
【0153】ところが、I/Oコントローラは、アドレ
スの下位4ビットを無視することによって、2バイトず
れていることを認識できないようにしておくと、本来の
フレームデータ格納用バッファの先頭アドレスに通信コ
ントローラからの2バイトが格納される。このように通
信コントローラが2バイトだけ転送することとI/Oコ
ントローラが本来のアドレスしか認識できないようにし
ておくことで、PADDING処理(アドレス境界条件
調整のためのデータ補完処理)をしたことになる。
【0154】この上記の処理で、アドレスの2バイトの
ずれが吸収できる。以後の通信コントローラからの受信
FIFO処理では、4バイト単位で、4バイトの整数倍
であるバスの境界条件に適合されたアドレスに転送され
る。
【0155】従って、32ビットCPUを持つ場合、ア
ドレスは、4バイトで示すことができるので、このアド
レス領域は、バスの境界条件を満足できることになる。
【0156】この例では、I/Oの境界条件を16バイ
トと仮定している。一方、フレームヘッダーは、イーサ
ネットでは、14バイトである。上記の処理によって、
最初に2バイトだけPADDING処理したことによ
り、仮想的に、16バイトのフレームヘッダーを持つこ
とと等価となり、フレーム内のIPヘッダーは、I/O
の16バイトの境界条件にも一致することになる。
【0157】従って、プロトコルヘッダーであるIPヘ
ッダーは、16バイトのI/Oの境界条件と4バイトの
バスの境界条件を満足して、上位層プロトコル処理プロ
グラムに引き渡されることになる。
【0158】次に、通信管理テーブルの位置を示す先頭
アドレスをIPヘッダーの格納位置から4バイト戻った
ところに記載する。この通信管理テーブルの位置を示す
先頭アドレスは、バスの4バイトの境界条件を満足でき
る位置に記載されたことになる。
【0159】通信管理テーブルは、その先頭アドレスを
フレームデータ格納用バッファの所定の領域に記載する
ことで、接続して管理される。更に、バッファ管理用バ
ッファのリンクチェインエリア(m_next)には、フレー
ムデータ格納用バッファの先頭アドレスを登録して、フ
レームデータと通信管理テーブルを管理する。また、通
信管理テーブルのアドレスを記載したフレームデータ格
納用バッファの位置アドレスを当該バッファに格納して
いるデータの先頭を示すテーブル要素(m_off)に登録
する。
【0160】この時、受信したデータフレームのIPヘ
ッダー以降のデータ長を示すテーブル要素(m_len)に
4バイト加算した値を登録する。
【0161】また、代案として、この通信管理テーブル
のアドレスを上位層プロトコル処理プログラムの前段で
処理する場合などは、通信管理テーブルの先頭アドレス
の格納位置は、固定的に判っているので、格納している
データの先頭を示すテーブル要素(m_off)をIPヘッダ
ーのアドレスにして、受信したデータグラムのデータ長
を示すテーブル要素(m_len)をIPヘッダー以降のデ
ータグラム長とする。
【0162】以上の処理の後、バッファ管理用バッファ
の先頭アドレスを上位層プロトコル処理プログラムに引
き渡して、プロトコルヘッダー以降のデータグラムの処
理を行う。
【0163】上記の一連の処理方法では、境界条件調整
用バッファを確保して、プロトコルヘッダーなどの受信
データグラムを一切データコピーすることもなく、境界
条件に適合させて、プロトコル処理プログラムに引き渡
すことができるので、高速且つ問題なく受信プロトコル
処理が行える。
【0164】
【発明の効果】以上説明してきたように、本発明によっ
て、アドレス境界条件を満たして伝送路とプロトコルの
間でバッファが共有でき、余分なデータ移動が発生せ
ず、通信システム全体のデータ転送速度が向上し、実用
的効果は大きい。
【図面の簡単な説明】
【図1】本発明の通信制御システムの構成を示すブロッ
ク図である。
【図2】本発明の通信制御システムを実現しているプロ
グラム構造図である。
【図3】本発明の通信制御システムがデータ受信したと
きの処理の流れを示す図である。
【図4】イーザネットなどの伝送路を流れるフレームデ
ータの構造の一例を示す図である。
【図5】本発明を説明するためのプロトコルの一例のI
Pヘッダーのフォーマットである。
【図6】本発明を説明するためのプロトコルの一例のT
CPヘッダーのフォーマットである。
【図7】本発明のドライバで使用する各種バッファと通
信管理テーブルの関連を示す図である。
【図8】本発明のドライバで使用する各種バッファと通
信管理テーブルの関連を示す図である。
【図9】本発明の送信記述子テーブルの初期化処理アル
ゴリズムの一例を示す図である。
【図10】本発明の受信記述子テーブルの初期化処理ア
ルゴリズムの一例を示す図である。
【図11】本発明のハードウェア割込み制御処理のアル
ゴリズムの一例を示す図である。
【図12】本発明の受信割込み処理のアルゴリズムの一
例を示す図である。
【図13】本発明の受信割込み処理のアルゴリズムの一
例を示す図である。
【図14】本発明のデータ受信通知処理のアルゴリズム
の一例を示す図である。
【図15】本発明のドライバで使用する各種バッファと
受信記述子と通信管理テーブルの関連と上位層プロトコ
ル処理プログラムへの引渡し方を示す図である。
【図16】本発明を説明するためのプロトコルの一例の
UDPヘッダーのフォーマットである。
【図17】本発明を説明するためのプロトコルの一例の
ICMPヘッダーのフォーマットである。
【図18】本発明を説明するためのプロトコルの一例の
ICMPヘッダーのフォーマットである。
【図19】本発明を説明するためのプロトコルの一例の
ICMPヘッダーのフォーマットである。
【図20】本発明のドライバが参照するプロトコル種別
とプロトコル種別に応じたヘッダーの形式と対応するデ
ータコピーサイズのテーブルを示す図である。
【図21】本発明のドライバで使用する各種バッファと
受信記述子と通信管理テーブルの関連と上位層プロトコ
ル処理プログラムへの引渡し方を示す図である。
【符号の説明】
1…システムプロセッサ、 2…主記憶部、 3…伝送路、 4…バッファ主記憶管理部、 5…システムバス、 6…バスI/Oコントローラ、 7…通信コントローラ、 8…ユーザプログラム、 9…プロトコル処理プログラム、 10…フレームデータ格納用バッファ、 11…通信管理テーブル、 12…境界条件調整用バッファ、 13…バッファ管理用バッファ、 20…システム本体、 21…通信ドライバ、 22…プロトコル処理プログラム、 23…ユーザプログラム、 24…オペレーティングシステム、 25…主記憶管理部、 100…初期化部、 211…ハードウェア割込み処理部、 212…データ受信割込み処理部、 213…データ受信通知部、 2131…受信キュー管理部、 31…フレームデータ格納用バッファ、 32…バッファ管理用バッファ、 33…アドレス境界条件調整用バッファ、 34…通信管理テーブル用バッファ、 41…受信記述子テーブル、 42…通信管理テーブル、 51…フレームデータ、 52…フレームヘッダー、 53…プロトコルヘッダー、 54…ユーザデータ、 55…フレームテイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 樋口 秀光 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マイクロエレクトロニクス 機器開発研究所内 (72)発明者 安江 利一 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マイクロエレクトロニクス 機器開発研究所内 (72)発明者 宮本 貴久 神奈川県横浜市戸塚区吉田町292番地株式 会社日立製作所マイクロエレクトロニクス 機器開発研究所内

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】受信フレーム中のデータグラムに含まれる
    フレームヘッダーの末尾がIOコントローラのアドレス
    境界条件に満たない場合において、 受信フレームを格納するバッファ記憶領域の先頭位置の
    物理アドレスを予め該IOコントローラと主プロセッサ
    のアドレス境界条件に適合した該バッファを準備してお
    き、 フレームヘッダーの格納開始位置アドレスを該IOコン
    トローラの境界条件に満たない分だけオフセットを与え
    て、フレームヘッダーの先頭部から格納し、 上位層プロトコル処理プログラムが処理を行なうフレー
    ムデータのデータグラム内のプロトコルヘッダーの先頭
    アドレスを該IOコントローラと該主プロセッサのアド
    レス境界条件に適合させ、主プロセッサにロードして、 上位層プロトコル処理を行なうことを特徴とする受信フ
    レームデータ処理方式。
  2. 【請求項2】受信フレーム中のデータグラムに含まれる
    プロトコルヘッダーの先頭部以降のデータグラムを予め
    確保しておいたバッファ記憶領域に格納し、 当該記憶領域に格納したプロトコルヘッダーの先頭の物
    理アドレスをアドレス境界条件に適合した論理アドレス
    に再割付けして、 該論理アドレスで、主プロセッサにロードし、 上位層プロトコル処理プログラムの処理を行なうことを
    特徴とする受信フレームデータ処理方式。
  3. 【請求項3】受信フレーム中のデータグラムをバッファ
    記憶領域に格納し、主プロセッサにロードする際に、 プロトコルヘッダーの先頭の物理アドレスがアドレス境
    界条件からずれている分だけ該プロセッサのレジスタの
    上位ビット側にずらして設定し、 該レジスタの下位ビット側には、続くバッファ記憶領域
    のアドレスから詰めて設定し、 上位層プロトコル処理プログラムの処理を行なうことを
    特徴とする受信フレームデータ処理方式。
  4. 【請求項4】受信フレーム中のデータグラムに含まれる
    プロトコルヘッダーの先頭部以降のデータグラムを予め
    確保しておいた、バッファ記憶領域に格納する時、 プロトコルヘッダー部の格納先頭アドレスをIOコント
    ローラや主プロセッサのアドレス境界条件に適合させ
    て、該記憶領域の該アドレスから主プロセッサにロード
    して、 上位層プロトコル処理プログラムの処理を行なうことを
    特徴とする受信フレームデータ処理方式。
  5. 【請求項5】受信したフレームデータのフレームヘッダ
    部とプロトコルヘッダー部を参照し、その参照情報に従
    って、プロトコルヘッダー部以降のデータグラムをすべ
    てソフトウェアによるデータコピーで、プロトコル処理
    用のバッファに複写して、 上位層プロトコル処理プログラムの処理を行なうことを
    特徴とする受信フレームデータ処理方式。
  6. 【請求項6】受信したフレームデータのフレームヘッダ
    部とプロトコルヘッダー部を参照し、その参照情報に従
    って、フレームデータの分解を行ない、 プロトコルヘッダー部以降のデータグラムの一部のヘッ
    ダー情報をソフトウェアによるデータコピーで、プロト
    コル処理用のバッファに複写して、 上位層プロトコル処理プログラムの処理を行なうことを
    特徴とする受信フレームデータ処理方式。
  7. 【請求項7】受信フレーム中のデータグラムに含まれる
    フレームヘッダーの末尾がIOコントローラのアドレス
    境界条件に満たない場合において、 受信フレームを格納するバッファ記憶領域の先頭位置の
    物理アドレスを予め該IOコントローラと主プロセッサ
    のアドレス境界条件に適合した該バッファを準備してお
    くことを特徴とする記憶領域確保装置。
  8. 【請求項8】フレームヘッダーの格納開始位置アドレス
    を該IOコントローラの境界条件に満たない分だけオフ
    セットを与えて、フレームヘッダーの先頭部から格納
    し、 上位層プロトコル処理プログラムが処理を行なうフレー
    ムデータのデータグラム内のプロトコルヘッダーの先頭
    アドレスを該IOコントローラと該主プロセッサのアド
    レス境界条件に適合させることを特徴とする記憶領域管
    理装置。
  9. 【請求項9】通信ドライバ内で、上位層のプロトコル処
    理プログラムが必要最少限のプロトコル処理だけを行な
    えるように、フレームデータの分解を行ない、それぞれ
    の処理に応じたバッファへ分離格納することを特徴とす
    るフレームデータ分配装置。
  10. 【請求項10】通信ドライバ内で、一つまたは複数のバ
    ッファをフレームデータ種別に応じて、確保し、フレー
    ムデータの構成要素と対応付けることを特徴とするバッ
    ファ分配装置。
  11. 【請求項11】一つまたは複数のヘッダー情報を空間的
    にデータの前方に持つフレームまたは時間的にデータよ
    りも先にヘッダー情報が取得できる通信プロトコルとハ
    ードウェアとソフトウェアを制御するCPUによるプロ
    トコル処理プログラムとアダプタのコントローラで構成
    する通信システムであって、 受信フレーム中のデータグラムに含まれるフレームヘッ
    ダーの末尾がIOコントローラのアドレス境界条件に満
    たない場合において、 受信フレームを格納するバッファ記憶領域の先頭位置の
    物理アドレスを予め該IOコントローラと主プロセッサ
    のアドレス境界条件に適合した該バッファを準備してお
    き、 フレームヘッダーの格納開始位置アドレスを該IOコン
    トローラの境界条件に満たない分だけオフセットを与え
    て、フレームヘッダーの先頭部から格納し、 上位層プロトコル処理プログラムが処理を行なうフレー
    ムデータのデータグラム内のプロトコルヘッダーの先頭
    アドレスを該IOコントローラと該主プロセッサのアド
    レス境界条件に適合させ、主プロセッサにロードして、 上位層プロトコル処理を行なうことを特徴とする受信フ
    レームデータ処理方式を用いた通信制御装置。
  12. 【請求項12】一つまたは複数のヘッダー情報を空間的
    にデータの前方に持つフレームまたは時間的にデータよ
    りも先にヘッダー情報が取得できる通信プロトコルとハ
    ードウェアとソフトウェアを制御するCPUによるプロ
    トコル処理プログラムとアダプタのコントローラで構成
    する通信システムにおいて、 当該フレームの格納領域の先頭の物理アドレスが境界条
    件に適合するように、予め確保しておいた記憶手段の領
    域に、該物理アドレスを示すディスクリプタ情報に従っ
    て、アダプタ上のコントローラの制御で該フレームを先
    頭から格納し、 格納し終えた時点で、上位システム側のCPUが、受信
    割込みを受けて、格納した当該フレームのヘッダー情報
    を先頭から順に処理して、 別途確保したバッファまたはテーブルに更に上位プロト
    コルが必要とする情報を格納して、 その所在アドレスまたは管理情報を該領域の先頭から上
    書きして、 境界条件を保持しながら、最低限の必要なバッファへの
    データコピー量に抑制することを特徴としたフレームデ
    ータ処理方式を用いた通信制御装置。
  13. 【請求項13】ネットワークまたは外部の接続機器から
    先頭にヘッダー付いたフレームの形式で受信処理を行な
    うシステムにおいて、 ネットワークまたは外部の接続機器から受信データを最
    大フレームサイズよりも大きなシステム内の受信バッフ
    ァ領域にDMA転送形式で取り込み、 境界条件に適合した当該バッファの先頭アドレスから該
    フレームの先頭を境界条件に適合させて一括して格納
    し、 ヘッダーに記載されている情報の階層プロトコル処理を
    順次行い、 未使用になったバッファのヘッダー部の領域に上位のプ
    ロトコル処理に引き渡すことになったデータ格納情報付
    きの通信管理情報または当該データ格納情報のみの管理
    テーブルを格納しているアドレスなどの情報を境界条件
    に適合した型の構造体で上書きして、 境界条件を保持しながら、該バッファ領域を再利用し、 その領域の先頭アドレスを上位プロトコルに引き渡し
    て、 更に該管理情報から当該プロトコルが必要とする情報の
    位置アドレス情報を取り出して、 メモリ間のデータコピーを最小限に押さえるか、また
    は、まったく発生させずに、受信データを処理すること
    を特徴としたフレームデータ処理方式を用いた通信制御
    装置。
  14. 【請求項14】ネットワークまたは外部の接続機器から
    先頭にヘッダー付いたフレームの形式で受信処理を行な
    うシステムにおいて、 ネットワークまたは外部の接続機器から受信データを最
    大フレームサイズよりも大きなシステム内の受信バッフ
    ァ領域AにDMA転送形式で取り込み、 境界条件に適合した当該受信バッファ領域の先頭アドレ
    スから該フレームの先頭を境界条件に適合させて一括し
    て格納し、 ヘッダー順にプロトコル処理を行い、 上位のプロトコル処理プログラムに引き渡すことになっ
    た通信管理情報を不用になった受信バッファ領域に格納
    したフレームのヘッダー部に当たる領域に通信管理情報
    の管理テーブルを格納しているアドレスを境界条件に適
    合した型の構造体で上書きして、 該受信バッファ領域の先頭アドレスを更に確保した境界
    条件調整用バッファに登録して接続して、 当該バッファの先頭アドレスを上位プロトコル処理プロ
    グラムに引き渡して、 該バッファから該プロトコルが必要とする情報を取り出
    し、 メモリ間のデータコピーを最小限に抑制して、 受信データを処理することを特徴とするフレームデータ
    処理方式を用いた通信制御装置。
  15. 【請求項15】受信記述子テーブルに記載したフレーム
    データ格納用バッファの先頭アドレスがアドレス境界条
    件に適合していないときに通信コントローラまたはI/
    Oコントローラまたは両者がDMAでフレームデータを
    フレームデータ格納用バッファに転送する時に、 フレームデータの不要になったヘッダー部を調整用パッ
    ドの代わりに使い、 フレームデータを書き込むアドレスを調整し、 プロトコルヘッダーの先頭アドレスがアドレス境界条件
    に適合するようにして、 プロトコルヘッダーの先頭アドレスをバッファ管理用バ
    ッファに登録して、 リンクチェインした形で、上位プロトコル処理プログラ
    ムにバッファ管理用バッファの先頭アドレスを通知し
    て、 ヘッダー情報とユーザデータを引き渡すことを特徴とす
    るフレームデータ処理方式を用いた通信制御装置。
JP5177758A 1993-07-19 1993-07-19 受信フレームデータ処理方式 Pending JPH0736805A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5177758A JPH0736805A (ja) 1993-07-19 1993-07-19 受信フレームデータ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5177758A JPH0736805A (ja) 1993-07-19 1993-07-19 受信フレームデータ処理方式

Publications (1)

Publication Number Publication Date
JPH0736805A true JPH0736805A (ja) 1995-02-07

Family

ID=16036619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5177758A Pending JPH0736805A (ja) 1993-07-19 1993-07-19 受信フレームデータ処理方式

Country Status (1)

Country Link
JP (1) JPH0736805A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408372B1 (en) 1999-08-25 2002-06-18 Mitsubishi Denki Kabushiki Kaisha Data processing control device
JP2006222864A (ja) * 2005-02-14 2006-08-24 Mitsubishi Electric Corp ネットワーク接続装置
JP2013115576A (ja) * 2011-11-28 2013-06-10 Fujitsu Ltd 受信データ処理方法、通信装置、及びプログラム
CN115442267A (zh) * 2022-08-20 2022-12-06 西安翔腾微电子科技有限公司 一种基于arinc664协议的icmp方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408372B1 (en) 1999-08-25 2002-06-18 Mitsubishi Denki Kabushiki Kaisha Data processing control device
JP2006222864A (ja) * 2005-02-14 2006-08-24 Mitsubishi Electric Corp ネットワーク接続装置
JP4646650B2 (ja) * 2005-02-14 2011-03-09 三菱電機株式会社 ネットワーク接続装置
JP2013115576A (ja) * 2011-11-28 2013-06-10 Fujitsu Ltd 受信データ処理方法、通信装置、及びプログラム
CN115442267A (zh) * 2022-08-20 2022-12-06 西安翔腾微电子科技有限公司 一种基于arinc664协议的icmp方法
CN115442267B (zh) * 2022-08-20 2023-11-10 西安翔腾微电子科技有限公司 一种基于arinc664协议的icmp方法

Similar Documents

Publication Publication Date Title
USRE45070E1 (en) Receive processing with network protocol bypass
CA2124452C (en) Method and apparatus for processing data within stations of a communication network
US6757768B1 (en) Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
CN102427446B (zh) 分组合并
US6038607A (en) Method and apparatus in a computer system having plural computers which cause the initiation of functions in each other using information contained in packets transferred between the computers
JP4264866B2 (ja) 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
EP1430658B1 (en) Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
US6871237B2 (en) System for controlling data transfer protocol with a host bus interface
US5860022A (en) Computer system and method of issuing input/output commands therefrom
US7561573B2 (en) Network adaptor, communication system and communication method
US11966777B2 (en) Level two first-in-first-out transmission
US7136355B2 (en) Transmission components for processing VLAN tag and priority packets supported by using single chip's buffer structure
JP2002508868A (ja) 中継データベースへの中央処理装置のハードウェア支援によるアクセス
US20050135395A1 (en) Method and system for pre-pending layer 2 (L2) frame descriptors
US20020174316A1 (en) Dynamic resource management and allocation in a distributed processing device
US7457845B2 (en) Method and system for TCP/IP using generic buffers for non-posting TCP applications
US20040054822A1 (en) Transferring interrupts from a peripheral device to a host computer system
US9584637B2 (en) Guaranteed in-order packet delivery
US6842797B1 (en) USB adapter for burst mode communications
EP3058684B1 (en) Network interface
US7552232B2 (en) Speculative method and system for rapid data communications
US6279052B1 (en) Dynamic sizing of FIFOs and packets in high speed serial bus applications
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US6850999B1 (en) Coherency coverage of data across multiple packets varying in sizes