JP2002247039A - ネットワークインターフェース装置 - Google Patents

ネットワークインターフェース装置

Info

Publication number
JP2002247039A
JP2002247039A JP2001088785A JP2001088785A JP2002247039A JP 2002247039 A JP2002247039 A JP 2002247039A JP 2001088785 A JP2001088785 A JP 2001088785A JP 2001088785 A JP2001088785 A JP 2001088785A JP 2002247039 A JP2002247039 A JP 2002247039A
Authority
JP
Japan
Prior art keywords
data
bus
packet
input
nic
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
JP2001088785A
Other languages
English (en)
Inventor
Kiyotoshi Yoshii
清敏 吉井
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.)
Xaxon R & D Corp
Original Assignee
Xaxon R & D Corp
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 Xaxon R & D Corp filed Critical Xaxon R & D Corp
Priority to JP2001088785A priority Critical patent/JP2002247039A/ja
Publication of JP2002247039A publication Critical patent/JP2002247039A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】動画像等の大容量データをコンピュータ端末等
で送受信する際のCPU負荷を低減し、高速で効率的な
データ送受信方法を提供する。 【解決手段】本発明では、ホストCPUとのI/Oを行
なうためのバスとは別に、入出力ポートPnを少なくと
も1つ設けたことを第1の特徴とする。また、Pnのそ
れぞれと対応する所定の識別子をあらかじめ定義したテ
ーブルを記憶する記憶手段と、受信したパケットのヘッ
ダに記述された識別子から前記テーブルによって出力す
る手段Pを選択するローカルCPUを搭載、することに
よりパケット毎に出力先をバスまたはPnの中から一つ
以上選択して受信データの振り分けを行なう、ことを特
徴とする。

Description

【発明の詳細な説明】 【発明の属する技術分野】
【0001】本発明は、イーサネット(登録商標)を始
めとするパケットデータを送受信するネットワークのた
めのネットワークインターフェース装置に関する。
【従来の技術】
【0002】コンピュータをイーサネット等のネットワ
ークに接続する場合、ネットワークインターフェース装
置(NIC)が用いられる。
【0003】NICは、PCIバス(PERIPHER
AL COMPONENTS INTERCONNEC
T BUS)を始めとするコンピュータのI/Oバスに
接続されて使用され、バスコントローラ、MAC(ME
DIA ACCESS CONTROLLER)、送受
信FIFO(FIRST−IN FIRST−OUT)
バッファメモリ、等からなる。(図4)
【0004】以下、図4を参照して従来のNICのデー
タ送受信手順について説明する。
【0005】データ送信時においてはホストCPUがア
プリケーションソフトウェアの要求を受けて、まずメイ
ンメモリ上にアプリケーションが構成したデータに所定
のパケットヘッダを付加してパケットデータを生成し、
バス経由でNICに受け渡す。NICはFIFOバッフ
ァメモリを仲介してMACを経由してイーサネット等の
ネットワークに出力する。
【0006】データ受信時においてはネットワークから
MAC及びFIFOバッファメモリに一旦蓄えられた
後、(この後、更にNIC上に大容量バッファメモリを
搭載してそこへ蓄積する場合もある)、前記バスを経由
してメインメモリ上にデータが展開され、ホストCPU
が所定のパケットヘッダを削除する等の処理をしたの
ち、アプリケーションに受信データとして引き渡され
る。
【0007】ところで、インターネット等で標準的な通
信プロトコルとして普及しているTCP/IP,UDP
/IP等のプロトコルは、OSI標準参照モデル(7階
層モデル)と呼ばれるプロトコルスタックによってパケ
ットヘッダが処理されている。(図5)
【0008】OSIモデルにおけるレイヤ3において
は、IPプロトコルヘッダにバージョン番号と呼ばれる
4ビットのデータが付加されており、IPv4と呼ばれ
る2000年2月現在で広く普及しているIP手順では
この数値は4である。また、今後の普及が期待されてい
るIPv6であれば6など、このバージョン番号を参照
することによりパケットデータが基準としているプロト
コルのバージョンが判別できるようになっている。
【0009】レイヤ4においては、TCPまたはUDP
と呼ばれるプロトコルが広く普及しており、これらはコ
ネクション毎にポート番号という識別子を用いてコネク
ションを識別する。ポート番号はレイヤ4のパケットヘ
ッダに記述のためのフィールドが用意されている。(図
3)
【0010】TCPはパケットの構成順序が保証される
ため、ファイルの転送など、UDPは順序保証はないが
高速であるため高速性の要求されるある種の動画などの
伝送に使用される。
【発明が解決しようとする課題】
【0011】大容量の通信帯域(通信におけるデータ容
量)を必要とする典型的なデータ例は動画像データであ
る。例えば、ハイビジョンクラスの動画像をリアルタイ
ムで受信するためには約1.5ギガビット/秒の通信速
度が必要である。以下、動画像データを例に挙げて説明
するが、他のデータにおいてもほぼ同様に考えることが
できる。
【0012】これらの大容量データは受信の際、ネット
ワーク上を流れるパケットを前記の手順に従いホストC
PUがメインメモリ上に展開し、その後直ちに表示装置
に転送され、動画像として視覚化されることになる。
【0013】このような場合、従来の方法では、NIC
において受信したデータをバスを介してメインメモリに
転送し、メインメモリから再度バスを介して表示装置に
転送されるので、図6のようにバスを2回経由するこ
と、およびメインメモリを大量に消費するという無駄が
ある。
【0014】前記の従来の方法における動画像の出力手
段の一例としては、AGP(ACCELERATED
GRAPHICS PORT)バスに接続されるグラフ
ィックスボードなどが市販化されている。
【0015】一方、送信においても同様に、画像データ
の入力手段を経て入力されたデータは、バス経由でメイ
ンメモリに一旦展開され、再度バス経由でNICに転送
され、NICからネットワークに出力されるので、バス
を2回経由すること、およびメインメモリを大量に消費
するという無駄があるのは受信手順と同様である。
【0016】前記の従来の方法における動画像の入力手
段の一例としては、PCIバスに接続される画像キャプ
チャボードなどが市販化されている。
【0017】本発明においては、バス経由でやり取りさ
れるデータ量を最小化することによって前記の送受信手
順における無駄を最小化し、動画像等の大容量データを
効率よく、入出力手段からNICへ相互に転送する手段
を提供することを目的とする。
【発明を解決するための手段】
【0018】本発明では、ホストCPUとのI/Oを行
なうためのバスとは別に、入出力ポートPnを少なくと
も1つ設けたことを第1の特徴とする。
【0019】一方、ここで問題になるのはバスへの入出
力と、Pnへの入出力をどのようにして識別し、振り分
けるかである。
【0020】本発明では、この問題を解決する為に、P
nのそれぞれと対応する所定の識別子をあらかじめ定義
したテーブルを記憶する記憶手段と、受信したパケット
のヘッダに記述された識別子から前記テーブルによって
出力する手段Pを選択するローカルCPUを搭載、する
ことによりパケット毎に出力先をバスまたはPnの中か
ら一つ以上選択して受信データの振り分けを行なう、こ
とを特徴とする。
【発明の実施の形態】
【0021】図1に本発明によるNICの1実施形態を
例示する。以下、本図に従って説明する。なお、以下は
説明の為動画像を扱う場合の例を挙げたが、動画像以外
のデータについても同様に応用できる。
【0022】本発明によるNICは、図1に示すよう
に、ホストCPU111とのI/Oを行なうバスコント
ローラ101、送受信データを一時的に保管するローカ
ルメモリ102、送受信データの処理を行なうローカル
CPU103、MAC104およびMACインターフェ
ース105、動画像入出力のためのポートPn(n=
1,2,...)およびポートコントローラ106、か
らなる。
【0023】101、105、および106は、それぞ
れの装置間のインターフェースと、それぞれの装置間の
メモリ転送(DMA(DIRECT MEMORY A
CCESS)を含む)を行なうためのものである。
【0024】まず、ローカルメモリ102上に図2に示
すようなデータタイプ識別子毎に入出力手段Pnに対応
したテーブル201を構成する。なお、メモリの代わり
に専用のレジスタを構成してもよい。
【0025】このテーブルは、対応したデータタイプを
出力するポートには1、出力しないポートには0を例え
ば記述する。
【0026】このテーブルへの書き込みは、請求項3に
記載のステップを伴うコンピュータプログラムにより実
現可能である。
【0027】第1の実施形態においては、テーブル20
1にはパケットヘッダにおけるバージョン番号と、それ
に対応する入出力ポートを対応付けて記述しておく。例
えば、P1にはバージョン番号=4、P2にはバージョ
ン番号=6などとする。対応付ける入出力ポートはバス
でもよい。
【0028】第2の実施形態においては、テーブル20
1にはパケットヘッダにおけるポート番号と、それに対
応する入出力ポートを対応付けて記述しておく。例え
ば、P1にはポート番号=560、P2にはポート番号
=562などとする。これも対応付ける入出力ポートは
バスでもよい。
【0029】次に受信について説明する。イーサネット
等に接続されたMACはデータリンクを確立し、送られ
てきたパケットデータをデシリアライズしてローカルメ
モリ102に受信データのパケットを展開する。このパ
ケットデータは例えば図3のような構成をしている。
【0030】第1の実施形態においては、ローカルCP
U103はローカルメモリ102に展開されたパケット
データを参照して、パケットヘッダ中のバージョン番号
を取得し、テーブル201を参照して出力ポートを決定
する。
【0031】また、第2の実施形態においては、同様に
パケットヘッダ中のポート番号を取得し、テーブル20
1を参照して出力ポートを決定する。
【0032】出力ポートがテーブル102において未定
義であったり、あるいは出力ポートとしてバスが指定さ
れた場合、ローカルCPUは従来方法と同じようにパケ
ットデータをバスを通してメインメモリに転送する。こ
の場合の転送後の処理はホストCPUが引き継いで行な
うことになる。
【0033】一方、出力ポートとしてバスではないPn
が指定された場合、ローカルCPUはパケットデータを
指定されたPnに転送する。ここで、同時にバスに並行
出力するよう指定することも可能であるが、特にそのよ
うな指定がされていない場合、該データパケットはバス
には出力されず、Pnにのみ出力されることになり、バ
スのデータ転送負荷、ホストCPUの負荷、並びにメイ
ンメモリの使用量が軽減されることになる。
【0034】次に、送信について説明する。ポートPn
から入力された動画像等のデータは、ポートコントロー
ラ106を経由してローカルメモリ102に展開され
る。
【0035】ローカルCPU103は、テーブル201
を参照し、ポートPnに対して指定されたデータタイプ
識別子を取得する。
【0036】第1の実施形態においては、データタイプ
識別子はパケットヘッダ中のバージョン番号を意味して
いるのでローカルCPU103は該当するバージョンの
パケットをローカルメモリ102上に構成し、Pnから
入力されたデータをパケットに流し込んでMAC経由で
ネットワークに出力する。
【0037】なお、送信時には送信相手のアドレス、ポ
ート番号、送信元のアドレスなどの情報が必要である
が、これらは予めローカルメモリ102ないしは専用レ
ジスタにホストCPUを使って記述しておく。この手順
は、請求項3に記載のステップを伴うコンピュータプロ
グラムにより実現できる。
【0038】なお、上記においては第1の実施形態とし
てパケットヘッダのバージョン番号、第2の実施形態と
してパケットヘッダのポート番号を例示したが、それ以
外のパケットヘッダ情報を利用してテーブル201を定
義しても良い。
【実施例】
【0039】ここでは、具体例としてパソコンのPCI
バスに接続して使用するNICであって、ビデオ(リア
ルタイム動画)及び音声入出力ポートを持つNICを想
定する。なお、ネットワークとしてイーサネット、伝送
手順としてTCP/IPを想定して説明する。
【0040】また、P1をビデオ信号入出力、P2を音
声信号入出力とし、例として第2の実施形態を想定して
ポート番号560はP1で入出力、ポート番号562は
P2及びBUS113で入出力を行なうと定義する。こ
の場合のテーブル201の記述例は図2の右欄(Exa
mple Value)のようになる。
【0041】P1に入力されたビデオ信号は、ポートコ
ントローラ106によってデジタル変換され、ビットス
トリームデータとしてローカルメモリ102上に展開さ
れる。
【0042】ローカルCPU103は、テーブル201
を参照してポート番号560を取得し、TCP/IPパ
ケットを構成してポート番号560をヘッダにセットす
る。
【0043】MACインターフェース105は、パケッ
トが構成されたことを示すローカルCPUからの通知
(フラグ)を受けてローカルメモリからパケットデータ
を読み出し、MAC104を経由してネットワークに出
力する。
【0044】一方、上記手順によりネットワークに出力
されたパケットを受信した側は、MAC104からMA
Cインターフェース105を経由してローカルメモリに
パケットを再現する。
【0045】パケットが再現されたことをMACインタ
ーフェースからの通知(フラグ)により検出したローカ
ルCPU103は、パケット中のポート番号を取得し、
テーブル201を参照して出力すべきポート=P1を決
定する。
【0046】ポートを決定したローカルCPUは該ポー
トのポートコントローラ106にパケットデータを処理
するよう所定のフラグによって通知し、通知を受けたP
1に対するポートコントローラは該パケットデータをロ
ードしてアナログ変換し、ポートP1に出力する。
【発明の効果】
【0047】本発明によれば、NICとホストCPUの
間のI/O(バス)の転送量を減らすことが可能で、ま
た、メインメモリの使用量も削減できる。
【0048】更に、ホストCPUがNICとメインメモ
リ間のデータ転送に直接関わらなくなることにより動画
像などの大容量データの送受信時にホストCPUの付加
を大幅に下げることができる。この様子を図6(従来
図)、および図7(本発明による改良図)に示す。
【0049】
【図面の簡単な説明】
【図1】 本発明によるNICのブロック図である。
【図2】 ポートPnとデータタイプ識別子の関連付け
を定義するテーブルの模式図である。
【図3】 パケットデータの一例である。
【図4】 従来のNICのブロック図である。
【図5】 プロトコルスタックの模式図である。
【図6】 従来のNICによる動画像データの入出力フ
ローを示した模式図である。
【図7】 本発明によるNICによる動画像データの入
出力フローを示した模式図である。
【符号の説明】
101 バスコントローラ 102 ローカルメモリ 103 ローカルCPU 104 MAC(MEDIA ACCESS CON
TROLLER) 105 MACインターフェース 106 ポートコントローラ 111 ホストCPU 112 メインメモリ(ホストメモリ) 113 バス(I/Oバス) 201 テーブル

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】ネットワークの送受信手段と、そのための
    データ入出力手段、ホストCPUとのI/Oバス(以下
    単に「バス」という)、及びプロセッサ(以下、「ロー
    カルCPU」という)から成るネットワークインターフ
    ェース装置(以下「NIC」という)であって、前記バ
    スとは異なる入出力手段Pを少なくとも1つ備え(n個
    の入出力手段がある場合、これをP1、P2、...P
    nとする)、Pnのそれぞれと対応する所定の識別子を
    あらかじめ定義したテーブルを記憶する記憶手段と、前
    記ローカルCPUは受信したパケットのヘッダに記述さ
    れた識別子から前記テーブルによって出力する手段Pを
    選択、することによりパケット毎に出力先をバスまたは
    Pnの中から一つ以上選択して受信データの振り分けを
    行なう、ことを特徴とするNIC。
  2. 【請求項2】前記入出力手段Pのいずれか一から入力さ
    れたデータを、前記ローカルCPUは前記テーブルによ
    り定義された所定の識別子を付加してパケットデータと
    して構成し、前記パケットデータ送受信手順並びにその
    ためのデータ入出力手段を用いてネットワークに出力す
    る、ことを特徴とする請求項1のNIC。
  3. 【請求項3】前記テーブルの現状の設定値を前記バスを
    通して読み出すステップ、読み出した設定値を表示する
    ステップ、表示に基づいてユーザに設定を変更させるス
    テップおよびそのためのユーザからの入力手段、ユーザ
    が変更した値を再度前記テーブルに書き出すステップ、
    からなるコンピュータプログラムを搭載したシステム、
    及び前記プログラムを記録した記録媒体。
  4. 【請求項4】前記識別子は、IP(INTERNET
    PROTOCOL)における「バージョン番号」(IP
    パケットにおける最初のロングワード(32ビット長)
    フィールドにおけるLSB(LEAST SIGNIF
    ICANT BIT)4ビット分)、または、TCP/
    IPまたはUDP/IPないしはそれらに順ずるプロト
    コルにおけるポート番号、であることを特徴とする請求
    項1または2のNIC。
  5. 【請求項5】前記NICには、受信したデータが暗号化
    されていた場合に復号化する手段、および送信データを
    暗号化する手段を備えることを特徴とする請求項1、2
    または4に記載のNIC。
JP2001088785A 2001-02-19 2001-02-19 ネットワークインターフェース装置 Pending JP2002247039A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001088785A JP2002247039A (ja) 2001-02-19 2001-02-19 ネットワークインターフェース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001088785A JP2002247039A (ja) 2001-02-19 2001-02-19 ネットワークインターフェース装置

Publications (1)

Publication Number Publication Date
JP2002247039A true JP2002247039A (ja) 2002-08-30

Family

ID=18943823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001088785A Pending JP2002247039A (ja) 2001-02-19 2001-02-19 ネットワークインターフェース装置

Country Status (1)

Country Link
JP (1) JP2002247039A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074312A (ja) * 2004-09-01 2006-03-16 Kawasaki Microelectronics Kk ネットワークインターフェースデバイスおよびネットワーク端末
JP2009532949A (ja) * 2006-03-31 2009-09-10 フリースケール セミコンダクター インコーポレイテッド 通信バス上の受信装置用のメッセージバッファリング方法、およびユニット

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074312A (ja) * 2004-09-01 2006-03-16 Kawasaki Microelectronics Kk ネットワークインターフェースデバイスおよびネットワーク端末
JP2009532949A (ja) * 2006-03-31 2009-09-10 フリースケール セミコンダクター インコーポレイテッド 通信バス上の受信装置用のメッセージバッファリング方法、およびユニット

Similar Documents

Publication Publication Date Title
TWI406133B (zh) 資料處理設備及資料傳送方法
US6847645B1 (en) Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
US9807134B2 (en) Method and device for filtering media packets
US7945699B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
JP4477613B2 (ja) AXIプロトコルを適用したNoCシステム
US8001278B2 (en) Network packet payload compression
US20080037568A1 (en) Method and Apparatus for Translating Data Packets From One Network Protocol to Another
US8495241B2 (en) Communication apparatus and method therefor
JP2006325054A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
US5864553A (en) Multiport frame exchange system
WO2021147045A1 (zh) 一种基于PCIe的数据传输方法及装置
US8086879B2 (en) Powering on devices via intermediate computing device
US20090080419A1 (en) Providing consistent manageability interface to a management controller for local and remote connections
US6041286A (en) Apparatus for and method of accurately obtaining the cycle time of completion of transmission of video frames within an isochronous stream of data transmitted over an IEEE 1394 serial bus network
JP3988475B2 (ja) 送信装置、受信装置およびそれらの方法
JP2002247039A (ja) ネットワークインターフェース装置
JPH04108242A (ja) 通信制御装置のデータ転送方式
US20050044261A1 (en) Method of operating a network switch
US7496679B2 (en) Packet communication apparatus
JP2004336437A (ja) 映像受信回路および映像受信装置
JP6976786B2 (ja) 通信装置および通信装置の制御方法
JP2003289315A (ja) パケット転送装置およびパケット転送方法
KR100296704B1 (ko) 네트워크 기반 멀티미디어 컴퓨터 및 이를 이용한 가변 구조제어 방법
KR100198789B1 (ko) 수신 연결망 인터페이스의 구조
JPH1093580A (ja) データ処理装置の制御方法およびデータ処理装置