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

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

Info

Publication number
JP2002176464A
JP2002176464A JP2000372761A JP2000372761A JP2002176464A JP 2002176464 A JP2002176464 A JP 2002176464A JP 2000372761 A JP2000372761 A JP 2000372761A JP 2000372761 A JP2000372761 A JP 2000372761A JP 2002176464 A JP2002176464 A JP 2002176464A
Authority
JP
Japan
Prior art keywords
transmission
data
transmission data
network interface
descriptor
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
JP2000372761A
Other languages
English (en)
Inventor
Atsushi Kitamura
淳 北村
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2000372761A priority Critical patent/JP2002176464A/ja
Publication of JP2002176464A publication Critical patent/JP2002176464A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 通信装置2からネットワークインタフェース
装置1への送信データの転送速度を高めて、送信データ
を高速にネットワーク3へ送信する。 【解決手段】 送信データに関する制御情報を含む送信
ディスクリプタ及び送信データをまとめて通信装置2か
らネットワークインタフェース装置1へ入力し、当該ネ
ットワークインタフェース装置1が入力した送信ディス
クリプタに基づいて入力した送信データをネットワーク
3に対して送信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えばローカルエ
リアネットワーク(LAN:Local Area Network)通信
システムや計算クラスターシステムなどにおけるデータ
転送を行うネットワークインタフェース装置等に関し、
特に、LAN通信システムや計算クラスターシステムな
どを構成する計算機端末において、システムメモリから
ネットワークへ高速にメッセージデータパケットを送信
することを実現するネットワークインタフェース装置に
関する。
【0002】
【従来の技術】近年、例えばLANの伝送速度は100
Mbps(Mega Bit Per Second)が主流となりつつあ
り、LANの伝送速度が向上したことにより、映像や音
声などの大量のマルチメディアデータの高速伝送も可能
となってきた。同時に、近年、パーソナルコンピュータ
(PC:Personal Computer)のパフォーマンスが格段
に向上してきており、CPU(Central Processing Uni
t)の計算速度が高速になり、且つ、メモリの容量もこ
れまでと比較して非常に大きくなっている。
【0003】このような状況に伴い、例えばPCを使っ
て遠隔地間で会議を行うデスクトップ会議システムや遠
隔教育を行うシステムなどの新しいアプリケーションが
現実のものとなってきている。また、最近では、複数の
PCをLANで接続して、大規模な計算を各PC (ノー
ド) に並列/並行・分散して処理させる計算PCクラス
ターシステムが実現されている。ここで、計算PCクラ
スターシステムは、市販のPCとネットワークインタフ
ェース装置を用いることで非常に安価に構成することが
可能な上に、スーパーコンピュータに匹敵する計算パフ
ォーマンスを発揮することができるものであり、現在非
常に注目されている技術である。
【0004】なお、今後もあらゆるアプリケーションか
らネットワークの高速化に対する要求は高まる一方であ
り、1Gbpsの伝送速度を有するLANへの移行が急
速に進められている。更に、IEEE(Institute of E
lectrical and ElectronicsEngineers)により10Gb
psのイーサネット(登録商標)(Ethernet
(登録商標))の標準化作業が既に開始されている。
【0005】また、計算機端末をLANに接続する装
置、即ちネットワークインタフェースカード (NI
C:Network Interface Card)は、計算機端末のホスト
システムからネットワークへ送信データを送出する働き
と、ネットワークから入ってきた受信データを計算機端
末のホストシステムへ転送する働きとを有する。
【0006】ここで、現在のようにLANの伝送速度が
向上してくると、計算機端末のホストシステムとNIC
との間のデータ転送速度がネットワーク間コミュニケー
ションにおけるボトルネックとなる可能性が出てくる。
例えば、計算PCクラスターシステムにおいて、或る計
算機端末のホストシステムからNICへのデータ転送効
率が悪く、メッセージデータパケットを転送する速度が
遅くなるために送信をスムーズに行えないといったこと
が生じ得る。このような場合には、ネットワークのトラ
フィックには余裕があるにも関わらず、ネットワークが
使われない状態が続いたり、また別の計算機端末はメッ
セージデータパケットが来ないために計算処理能力を持
て余すといったことが起こり得る。そして、このような
状況では、ネットワークの高速化や計算機端末のパフォ
ーマンス向上が活かされない。
【0007】現在のNICは、多くの場合、LANコン
トローラと呼ばれるIC(Integrated Circuit)チップ
によって機能する。図9には、従来の代表的なイーサネ
ット用のLANコントローラ61の構成例を示してある
とともに、当該LANコントローラ61と接続されたホ
ストシステム62及びネットワーク63を示してある。
なお、例えばDigital Equipment社や
Intel社などにより市販されているLANコントロ
ーラも同図に示したような構成を有している。
【0008】同図に示したLANコントローラ61に
は、ホストシステム62との間のインタフェース機能を
有した周辺要素相互接続 (PCI:Peripheral Compon
ent Interconnect)バスインターフェース71と、メモ
リに対するアクセスを制御するDMA(Direct Memory
Access)コントローラ72と、データを格納する多目的
レジスタ73と、送信用のデータを格納する送信用先入
れ先出し(FIFO:First In First Out)バッファメ
モリ74と、メディアアクセスを制御するメディアアク
セス制御 (MAC:Media Access Control)コントロ
ーラ75と、ネットワーク63との間のインタフェース
機能を有したSIA(Serial Interface Adapter)イン
タフェース76と、ネットワーク63との間のインタフ
ェース機能を有したMII(Media Independent Interf
ace)インタフェース77と、受信用のデータを格納す
る受信用FIFOバッファメモリ78と、これら各処理
部71〜78を制御するデータ制御部79とが備えられ
ている。
【0009】また、同図に示したホストシステム62に
は、各種の処理を実行するCPU80と、データを格納
するシステムメモリ81とが備えられている。また、L
ANコントローラ61に備えられたSIAインタフェー
ス76やMIIインタフェース77はネットワーク63
と接続されており、PCIバスインタフェース71はホ
ストシステム62に備えられたCPU80やシステムメ
モリ81と接続されている。
【0010】同図に示したように、現在の代表的なLA
Nコントローラ61はほとんどが32ビットのPCIバ
スインタフェース71を備えている。現在、PCIバス
のクロック周波数は33MHzが一般的であり、従っ
て、ホストシステム62とLANコントローラ61との
間の最高データ転送速度は133Mバイト/秒となる。
なお、最近では、64ビット、66MHzのPCIバス
インタフェースを備えたものも現れてきている。
【0011】また、同図に示したように、LANコント
ローラ61は、通常、DMAコントローラ72を備えて
おり、このようなLANコントローラ61はバスマスタ
となり得る。なお、同図の例では、説明の便宜上から一
つのDMAコントローラ72を示したが、一般的には送
信用及び受信用に2チャネル分のDMAコントローラを
備えている。これらのDMAコントローラは各々に独立
して動作し、ホストシステム62中のシステムメモリ8
1との間のデータ転送に用いられる。
【0012】また、同図に示したLANコントローラ6
1では、ネットワーク63から流れてきた受信フレーム
は、SIAインタフェース76若しくはMIIインタフ
ェース77を介して入力された後に、MACコントロー
ラ75により必要な処理を施されて受信用FIFOバッ
ファメモリ78に一時的に格納され、その後、当該メモ
リ78から読み出されてPCIバスインタフェース71
を介してホストシステム62へ転送される。
【0013】また、送信用FIFOバッファメモリ74
は、送信データをネットワーク63へ送出する前に一時
的に格納しておくためのバッファメモリである。そし
て、同図に示したLANコントローラ61では、ホスト
システム62からPCIバスインタフェース71を介し
て転送される送信フレームは、送信用FIFOバッファ
メモリ74に一時的に格納された後に、MACコントロ
ーラ75により必要な処理を施され、その後、SIAイ
ンタフェース76若しくはMIIインタフェース77を
介してネットワーク63へ送信される。
【0014】また、同図に示したLANコントローラ6
1では、送信フレーム及び受信フレームや、ホストシス
テム62からLANコントローラ61に対するコマンド
及びステータスなどの情報を含んだデータストラクチャ
の受け渡しマネージメントは、データ制御部79により
行われる。
【0015】また、同図に示したLANコントローラ6
1では、上記したコマンドやステータスなどの情報を格
納しておくための多目的レジスタ73が用意されてい
る。ここで、多目的レジスタ73は、通常は、コントロ
ール/ステータスレジスタ (CSR:Control/Status R
egsiter))と呼ばれる名で用意され、これはホストシス
テム62のシステムメモリ81上にマッピングされる。
従って、このような構成では、LANコントローラ61
からも、ホストシステム62からも、リード/ライトが
可能となる。
【0016】次に、図9に示した構成において、送信フ
レームをPCのホストシステム62からLANコントロ
ーラ61へ転送する処理について、その最も一般的な機
構の概要を以下で説明する。すなわち、一般に、PCの
ホストシステム62からLANコントローラ61へ送信
フレームを転送するために、送信ディスクリプタと呼ば
れるデータストラクチャが用いられる。
【0017】送信ディスクリプタは、PCの起動時にデ
バイスドライバによってホストシステム62のシステム
メモリ81に複数割り当てられる。ここで、図10に
は、送信ディスクリプタの一般的な構造の一例を示して
あり、この送信ディスクリプタは、送信フレームのサイ
ズ(Size)の情報を格納するサイズフィールド91
と、コマンド(Command)の情報を格納するコマ
ンドフィールド92と、ステータス(Status)の
情報を格納するステータスフィールド93と、送信フレ
ームのバッファアドレス(Buffer Addres
s)の情報を格納するバッファアドレスフィールド94
とから構成されている。
【0018】ステータスフィールド93には、多くの場
合には、送信フレームの転送中に生じたエラーの情報が
セットされる。また、コマンドフィールド92には、通
常では、LANコントローラ61の動作を制御するため
のパラメータが用意される。具体的には、例えば、現在
のフレームの送信後に送信フレームの転送を中断させる
ことを命令するビットや、送信フレームの転送方法にい
くつかのモードがある場合にいずれのモードで転送を実
行すべきであるかを指定するビットなどが用意される。
【0019】またサイズフィールドには、送信フレーム
のサイズの情報がセットされる。また、バッファアドレ
スフィールド94には、ホストシステム62のシステム
メモリ81上に用意された送信フレームの先頭アドレス
を示す情報がセットされる。
【0020】また、図11に示すように、この例では、
送信ディスクリプタはリング構造となっており、同図に
示されるような形式でホストシステム62のシステムメ
モリ81内に連続して割り当てられている。具体的に
は、ホストシステム62のシステムメモリ81では、例
えば“0”〜“n”番目の送信ディスクリプタ101a
〜101dが連続して配置されるとともに、これら各送
信ディスクリプタ101a〜101dにより先頭アドレ
スが示される“0”〜“n”番目の送信フレームの待機
用バッファ(送信待機用バッファ)102a〜102d
が用意される。
【0021】まず、ホストシステム62のデバイスドラ
イバは、上位レベルから送信の要求があると、LANコ
ントローラ61に対して送信コマンド(TX CMD:
Transmit Command)を発生し、同時に、LANコント
ローラ61に対して送信に使用する送信ディスクリプタ
のアドレスを伝える。通常は、LANコントローラ61
のCSR73に対してPCIサイクルのターゲットライ
トサイクルを発生することによって、この命令とアドレ
スがLANコントローラ61へ伝えられる。なお、ター
ゲットとは他の装置により制御されて一方的に処理され
ることを示し、マスタとは自己がトランザクションの主
導を取って処理を実行することを示す。
【0022】LANコントローラ61は、送信ディスク
リプタのアドレスを伝えられると、ホストシステム62
のシステムメモリ81内のそのアドレスから送信ディス
クリプタをリードして多目的レジスタ73へ格納する。
なお、通常は、PCIサイクルのマスタリードサイクル
を実行して送信ディスクリプタをコピーする。
【0023】次に、LANコントローラ61は、リード
した送信ディスクリプタに記載されている内容を参照し
て、バッファアドレスフィールド94で指定されたシス
テムメモリ81内のアドレスからサイズフィールド91
で指定されたサイズのデータを読み込んで送信用FIF
Oバッファメモリ74へ格納する。
【0024】このようにして送信データが送信用FIF
Oバッファメモリ74内に準備されると、LANコント
ローラ61では、MACコントローラ75が当該送信デ
ータをSIAインタフェース76若しくはMIIインタ
フェース77を介してネットワーク63へ送出する。
【0025】また、ネットワーク63への送信データの
送出が完了すると、LANコントローラ61では、デー
タ制御部79が送信ディスクリプタのステータスフィー
ルド93を更新し、当該送信ディスクリプタをホストシ
ステム62のシステムメモリ81へ書き戻した後に割り
込みを発生する。これにより、ホストシステム62のデ
バイスドライバでは、書き戻された送信ディスクリプタ
に基づいて、その送信ディスクリプタが使われた送信処
理が成功したのか或いは失敗したのかを判断することが
できる。また、ホストシステム62のデバイスドライバ
では、その送信ディスクリプタを次の送信のために使っ
てよいことを知る。
【0026】なお、図12には、送信ディスクリプタの
一般的な構造の別の例を示してあり、この送信ディスク
リプタは、例えば図10に示したのと同様なサイズフィ
ールド111及びコマンドフィールド112及びステー
タスフィールド113と、リンク先のアドレスの情報を
格納するリンクアドレス(Link Address)
フィールド114とから構成されている。
【0027】図12に示した送信ディスクリプタは、ホ
ストシステム62のシステムメモリ81上に散在して用
意された送信ディスクリプタの例であり、送信ディスク
リプタの中にリンクアドレスの情報が書き込まれてい
る。ここで、リンクアドレスの情報は、次に使用される
べき送信ディスクリプタのアドレスを指定する。
【0028】つまり、例えば図13に示すように、この
例の送信ディスクリプタはいわゆるチェイン構造となっ
ており、これによって次に使用すべき送信ディスクリプ
タが格納されているシステムメモリ81上のアドレスを
知ることができる。具体的には、同図に示されるよう
に、“0”番目の送信ディスクリプタ121aでは次の
“1”番目の送信ディスクリプタ121bのアドレスが
指定され、“1”番目の送信ディスクリプタ121bで
は次の“2”番目の送信ディスクリプタ121cのアド
レスが指定されるといったように、各送信ディスクリプ
タでは次に使用すべき送信ディスクリプタのアドレスが
指定される。
【0029】また、この例の送信ディスクリプタにはバ
ッファアドレスフィールドが含まれていない。この場
合、図13に示されるように、ホストシステム62のシ
ステムメモリ81では、各送信ディスクリプタ121a
〜121cのすぐ後に続くメモリ領域がそれぞれの送信
フレームを待機するバッファメモリ(送信待機用バッフ
ァ)122a〜122cとなっており、LANコントロ
ーラ61上の送信用FIFOバッファメモリ74には当
該領域から送信フレームが転送される。なお、送信ディ
スクリプタの構造は若干異なっても、基本的な送信フレ
ームの転送処理の手順は、例えば図10に示した送信デ
ィスクリプタを用いた場合について述べたのと同様であ
る。
【0030】
【発明が解決しようとする課題】以上では、従来の技術
として、ネットワークインタフェース装置に使用されて
いる代表的なLANコントローラによる送信フレームの
転送処理の機構について説明した。上記のように、送信
ディスクリプタのテーブルをホストシステムのシステム
メモリ内にエントリしておき、その送信ディスクリプタ
を次々とシステマティックに使用していくことにより、
デバイスドライバの処理が高速化され、ホストシステム
の負担を軽減することができる。
【0031】ところが、これには大きな問題があり、そ
れは、送信ディスクリプタの内容をLANコントローラ
上へコピーし、また書き戻すことによる不効率な転送形
態である。具体的には、例えば図10や図12に示した
二つの送信ディスクリプタの例のうち、いずれのタイプ
の送信ディスクリプタを使用する場合においても、一つ
の送信フレームをLANコントローラへ転送するために
一つの送信ディスクリプタを使用することとなる。つま
り、一つの送信フレームを処理する度に一つの送信ディ
スクリプタの内容をLANコントローラの多目的レジス
タへコピーしなくてはならない。
【0032】なお、コピーの方法としては、デバイスド
ライバによるPCIターゲットライトを用いた方法でも
よいし、一般的にはLANコントローラが必要なときに
PCIマスタリードを実行することになるが、いずれに
しても送信フレーム自体の転送とは別に送信ディスクリ
プタに関するPCIバスオペレーションが実行される。
更に、送信フレームをネットワークへ送出した後にはこ
の送信ディスクリプタをホストシステムのシステムメモ
リへ書き戻すことが必要となる。
【0033】ところで、特にPCIマスタリードのトラ
ンザクションでは概してターゲット側でのデータ準備が
遅く、トランザクションはウェイトサイクルを多く含む
か若しくはリトライされることが多くなる。従って、次
々と送信フレームを送信する場合、送信ディスクリプタ
をコピーするためのPCIバスオペレーションの回数
は、送信フレームをシステムメモリからLANコントロ
ーラへ転送する際の大きなオーバーヘッドとなり得る。
また、送信フレームのサイズが小さい場合には、このよ
うなオーバーヘッドはより一層効率の悪いものとなる。
【0034】具体例として、計算PCクラスターシステ
ムでは構成コストを抑えるために一般に市販されている
NICを使用することが多い。ところが、計算PCクラ
スターシステムでは概して短いメッセージパケットのや
り取りが頻繁に行われる。従って、NICにおけるショ
ートメッセージパケット送信時のオーバーヘッドによる
遅延が計算PCクラスターシステム全体の計算パフォー
マンスに大きく影響してくる。
【0035】そこで、ショートメッセージパケットを如
何に効率良くレイテンシー(遅延)を抑えて送信するか
ということは非常に重要な課題となる。また、今後さら
にLANの伝送速度が向上したとしても、このようなオ
ーバーヘッドによりシステム全体のパフォーマンスは制
限される結果となる。
【0036】なお、ホストシステムからLANコントロ
ーラの送信用FIFOバッファメモリへ送信フレームを
効率的に転送するために、最近では64bit/66M
HzのPCIバスを用いることが考えられる。しかしな
がら、この構成では、LANコントローラの送信用FI
FOバッファメモリへのデータ転送は高速化されるもの
の、送信ディスクリプタをリードすることによるオーバ
ーヘッドはなくならない。
【0037】また、例えば特開平6−168196号公
報や米国特許第5,721,955号公報では、全ての
送信データをホストコンピュータからLANコントロー
ラの送信バッファへ転送し終わる前にネットワークに対
する送信データの送信を開始する方法が開示されてい
る。これは送信パフォーマンスを向上するために非常に
効果的な方法ではあるが、送信バッファへの転送が間に
合わずに空となってしまうアンダーランが発生する危険
性がある。
【0038】また、例えば米国特許第5,729,68
1号公報では、送信パケット情報を保持するパケットフ
ラグメントアレイをそのままLANコントローラへ伝
え、LANコントローラがその情報を基に送信データを
当該LANコントローラの送信バッファへ転送する方法
が開示されている。しかしながら、この方法では、パケ
ットフラグメントアレイをLANコントローラへ伝える
ために余計なPCIバスオペレーションが発生してしま
い、オーバーヘッドが大きくなってしまう。一般的に用
いられるPCのCPUパワーが向上していることと、比
較的短いパケットの送信について適用されることを考慮
すると、この方法は不利である上に、回路が複雑で余計
なメモリも必要となってしまう。
【0039】いずれにしても、これらの文献に記載され
た技術は、上記した送信フレームの転送時における余計
なPCIトランザクションによるオーバーヘッドを軽減
するものではない。以上のように、従来のLANコント
ローラなどのネットワークインタフェース装置では、送
信フレームをホストシステムのシステムメモリからネッ
トワークインタフェース装置へ転送する際にオーバーヘ
ッドが発生してしまい、転送効率が悪いといった不具合
があった。
【0040】本発明は、このような従来の課題を解決す
るためになされたもので、例えば複雑な機構を実装して
回路規模を大きくすることなく容易な構成で送信データ
の転送効率を向上させることができるネットワークイン
タフェース装置や通信装置などを提供することを目的と
する。
【0041】
【課題を解決するための手段】上記目的を達成するた
め、本発明に係るネットワークインタフェース装置で
は、次のようにして、送信データに関する制御情報を含
む送信ディスクリプタ及び送信データを通信装置から入
力し、入力した送信ディスクリプタに基づいて入力した
送信データをネットワークに対して送信する。すなわ
ち、インタフェース手段が、送信ディスクリプタ及び送
信データをまとめて通信装置から入力し、入力した送信
ディスクリプタに基づいて入力した送信データをネット
ワークに対して送信する。
【0042】従って、例えば従来のように送信ディスク
リプタが通信装置から入力された後に送信データが当該
通信装置から入力されてネットワークに対して送信され
るのではなく、送信ディスクリプタと送信データとがま
とめて通信装置から入力されて当該送信データがネット
ワークに対して送信されることで、通信装置からネット
ワークインタフェース装置への送信データの転送速度を
高めることができ、これにより、送信データを高速にネ
ットワークへ送信することができる。
【0043】ここで、送信ディスクリプタに含まれる送
信データに関する制御情報としては、種々な情報が用い
られてもよく、例えば送信データのサイズの情報などが
用いられる。また、送信ディスクリプタや送信データと
しては、種々なデータが用いられてもよい。
【0044】また、ネットワークとしては、種々なネッ
トワークが用いられてもよい。また、ネットワークイン
タフェース装置と通信装置との間で行われるデータの入
出力処理は、例えばネットワークインタフェース装置の
主導により行われてもよく、例えば通信装置の主導によ
り行われてもよい。
【0045】また、例えば通信装置からネットワークイ
ンタフェース装置への送信ディスクリプタ及び送信デー
タの転送処理が完了した後にネットワークインタフェー
ス装置からネットワークに対する送信データの送信処理
が行われてもよく、例えば当該データ転送処理と当該デ
ータ送信処理とが並列して行われてもよい。
【0046】また、本発明に係るネットワークインタフ
ェース装置では、インタフェース手段は、送信データの
サイズが閾値未満である場合に、送信ディスクリプタ及
び送信データをまとめて通信装置から入力する。従っ
て、従来において特に転送速度が遅くなってしまうサイ
ズが小さい送信データについて、通信装置からネットワ
ークインタフェース装置への送信データの転送速度を高
めることができ、これにより、送信データを高速にネッ
トワークへ送信することができる。なお、送信データの
サイズが閾値未満であるか否かは、例えば通信装置から
ネットワークインタフェース装置に対して指示される。
【0047】ここで、送信データのサイズの閾値として
は、例えばシステムの使用状況等に応じて、種々な値が
用いられてもよい。また、送信データのサイズが閾値未
満であるか否かを判定する仕方として、本発明では、例
えば送信データのサイズとして複数のサイズが選択可能
であるような構成において、所定の小さいサイズが選択
される場合に送信データのサイズが閾値未満であると判
定する仕方を用いることを含んでいる。
【0048】また、本発明に係るネットワークインタフ
ェース装置では、一実施形態例として、通信装置が送信
ディスクリプタ及び所定サイズ以下の送信データを格納
するデータ格納領域を複数の送信データサイズに対応し
て有しており、インタフェース手段が、送信データのサ
イズに応じて通信装置が有するいずれかのデータ格納領
域に格納されたデータを通信装置から入力することで、
当該データ格納領域に格納された送信ディスクリプタ及
び送信データを当該通信装置から入力する。
【0049】従って、送信データのサイズに応じて、当
該サイズに対応したデータ格納領域に格納されたデータ
を通信装置から入力することで、当該データ格納領域に
格納された送信ディスクリプタ及び送信データを入力し
て当該送信データをネットワークに対して送信すること
ができる。なお、通信装置のデータ格納領域に格納され
るデータには送信ディスクリプタ及び送信データが含ま
れ、例えばデータ格納領域に送信ディスクリプタ及び送
信データが格納されていない空き領域があってもよい。
【0050】ここで、通信装置が有するデータ格納領域
の数(つまり、本発明に言う複数の送信データサイズの
数)としては、種々な数であってもよい。また、各デー
タ格納領域に格納することが可能な送信データの所定サ
イズとしては、種々なサイズが用いられてもよい。
【0051】なお、具体的に、2つのデータ格納領域を
用いる場合の例を示す。すなわち、例えば、Aサイズ以
下の送信データを格納することが可能な第1データ格納
領域と、B(B>Aとする)サイズ以下の送信データを
格納することが可能な第2データ格納領域とを通信装置
に用意して、Aサイズ以下の送信データについては第1
データ格納領域に送信データを格納して、ネットワーク
インタフェース装置では当該第1データ格納領域から送
信データを入力し、また、Aサイズより大きくBサイズ
以下の送信データについては第2データ格納領域に送信
データを格納して、ネットワークインタフェース装置で
は当該第2データ格納領域から送信データを入力する。
【0052】また、本発明に係るネットワークインタフ
ェース装置では、インタフェース手段は、送信対象とな
る送信データの数に関する情報を通信装置から入力し、
入力した当該情報に基づく数の送信ディスクリプタ及び
送信データの組を通信装置から入力する。
【0053】従って、送信対象となる送信データの数が
予め通信装置から通知されて、当該数の送信ディスクリ
プタ及び送信データの組が通信装置から入力されるた
め、通信装置からネットワークインタフェース装置への
データ転送処理を効率よく行うことができる。
【0054】なお、本発明に係るネットワークインタフ
ェース装置に関して、更に具体的な実施形態例を以下に
示す。すなわち、本発明に係るネットワークインタフェ
ース装置では、一実施形態例として、送信ディスクリプ
タを格納する送信ディスクリプタ格納手段と、送信デー
タを格納する送信データ格納手段と、通信装置からまと
めて入力される送信ディスクリプタ及び送信データのそ
れぞれを分離して、分離した送信ディスクリプタを送信
ディスクリプタ格納手段に格納するとともに分離した送
信データを送信データ格納手段に格納するセレクタ手段
とを備え、インタフェース手段は送信ディスクリプタ格
納手段に格納された送信ディスクリプタに基づいて送信
データ格納手段に格納された送信データをネットワーク
に対して送信する。
【0055】また、本発明に係るネットワークインタフ
ェース装置では、一実施形態例として、ネットワークに
対する送信データの送信状況に関する情報を保持する送
信状況情報保持手段を備え、送信状況通知手段が送信状
況情報保持手段の保持情報に基づいて送信データの送信
状況を通信装置に対して通知する。
【0056】また、本発明に係るネットワークインタフ
ェース装置では、一実施形態例として、送信状況に関す
る情報には、送信データの送信処理が終了したことを示
す情報及び当該送信処理が成功したか否かを示す情報が
含まれる。そして、送信データの送信処理が終了したこ
とを示す情報は例えば当該送信処理が終了した時点で通
信装置に対して通知され、また、当該送信処理が成功し
たか否かを示す情報は例えば通信装置からの要求に応じ
て当該通信装置に対して通知される。
【0057】また、本発明に係るネットワークインタフ
ェース装置では、一実施形態例として、送信状況に関す
る情報には、送信処理が失敗した送信データを特定する
情報が含まれる。そして、送信処理が失敗した送信デー
タを特定する情報は例えば通信装置からの要求に応じて
当該通信装置に対して通知される。
【0058】また、本発明では、以上に示したようなデ
ータ転送を実現することができる通信装置を提供する。
すなわち、本発明に係る通信装置では、送信データに関
する制御情報を含む送信ディスクリプタに基づいて送信
データをネットワークに対して送信するネットワークイ
ンタフェース装置に対して送信ディスクリプタ及び送信
データを出力するに際して、通信手段が、送信ディスク
リプタ及び送信データをまとめてネットワークインタフ
ェース装置に対して出力する。
【0059】また、本発明に係る通信装置では、通信手
段は、送信データのサイズが閾値未満である場合に、送
信ディスクリプタ及び送信データをまとめてネットワー
クインタフェース装置に対して出力する。
【0060】また、本発明に係る通信装置では、送信デ
ィスクリプタ及び所定サイズ以下の送信データを格納す
るデータ格納領域を複数の送信データサイズに対応して
有しており、通信手段は、送信データのサイズに応じて
いずれかのデータ格納領域に格納されたデータをネット
ワークインタフェース装置に対して出力する。
【0061】また、本発明に係る通信装置では、通信手
段は、送信対象となる送信データの数に関する情報をネ
ットワークインタフェース装置に対して出力し、当該数
の送信ディスクリプタ及び送信データの組をネットワー
クインタフェース装置に対して出力する。
【0062】また、本発明では、以上に示したようなデ
ータ転送を実現することができるプログラムを記憶した
記憶媒体を提供する。すなわち、本発明に係る記憶媒体
では、コンピュータに実行させるプログラムを当該コン
ピュータの入力手段が読取可能に記憶しており、当該プ
ログラムは、送信データに関する制御情報を含む送信デ
ィスクリプタに基づいて送信データをネットワークに対
して送信するネットワークインタフェース装置に対して
送信ディスクリプタ及び送信データをまとめて出力する
処理を当該コンピュータに実行させる。
【0063】また、本発明に係る記憶媒体では、前記プ
ログラムは、送信データのサイズが閾値未満である場合
に、送信ディスクリプタ及び送信データをまとめてネッ
トワークインタフェース装置に対して出力する処理を前
記コンピュータに実行させる。
【0064】また、本発明に係る記憶媒体では、前記プ
ログラムは、複数の送信データサイズに対応して設けら
れて送信ディスクリプタ及び所定サイズ以下の送信デー
タを格納するデータ格納領域の中から、送信データのサ
イズに応じていずれかのデータ格納領域に格納されたデ
ータをネットワークインタフェース装置に対して出力す
る処理を前記コンピュータに実行させる。
【0065】また、本発明に係る記憶媒体では、前記プ
ログラムは、送信対象となる送信データの数に関する情
報をネットワークインタフェース装置に対して出力する
処理と、当該数の送信ディスクリプタ及び送信データの
組をネットワークインタフェース装置に対して出力する
処理とを前記コンピュータに実行させる。なお、本発明
では、以上に示したような処理を実行するためのプログ
ラムを提供することも可能である。
【0066】
【発明の実施の形態】本発明に係る実施例を図面を参照
して説明する。なお、以下に示す本実施例では、ホスト
システムのデバイスドライバが送信フレームのサイズを
確認して、送信フレームのサイズが或る値以下であると
判断した場合には送信ディスクリプタと送信データを一
度にバースト転送してLANコントローラによりリード
することにより、送信フレームをホストシステムからL
ANコントローラへ転送するに際して余計なトランザク
ションの発生に起因するオーバーヘッドが生じてしまう
ことをなくす。
【0067】以下では、本発明に係るネットワークイン
タフェース装置をLANコントローラに適用するととも
に、本発明に係る通信装置をホストシステムに適用した
場合の実施例を図面を参照して説明する。
【0068】まず、本発明の第1実施例に係るデータ転
送システムを説明する。図1には、本発明を適用したデ
ータ転送システムの一例として、LANコントローラ1
と、当該LANコントローラ1と接続されたホストシス
テム2と、当該LANコントローラ1と接続されたネッ
トワーク3とを示してある。
【0069】LANコントローラ1には、ホストシステ
ム2との間のインタフェース機能を有した周辺要素相互
接続(PCI)バスインターフェース11と、メモリに
対するアクセスを制御するDMAコントローラ12と、
データを格納する第1の多目的レジスタ13及び第2の
多目的レジスタ14と、送信用のデータを格納する送信
用先入れ先出し(FIFO)バッファメモリ15と、送
信ディスクリプタと送信データの格納先をダイナミック
に切り変える分岐ロジックであるセレクタ16と、メデ
ィアアクセスを制御するメディアアクセス制御(MA
C)コントローラ17と、ネットワーク3との間のイン
タフェース機能を有したSIAインタフェース18と、
ネットワーク3との間のインタフェース機能を有したM
IIインタフェース19と、受信用のデータを格納する
受信用FIFOバッファメモリ20と、これら各処理部
11〜20を制御するデータ制御部21とが備えられて
いる。
【0070】また、ホストシステム2には、各種の処理
を実行するCPU22と、データを格納するシステムメ
モリ23とが備えられている。また、LANコントロー
ラ1に備えられたSIAインタフェース18やMIIイ
ンタフェース19はネットワーク3と接続されており、
PCIバスインタフェース11はホストシステム2に備
えられたCPU22やシステムメモリ23と接続されて
いる。
【0071】ここで、本例のデータ転送システムにより
行われる動作は、ホストシステム2からLANコントロ
ーラ1へ送信データを転送して当該送信データをLAN
コントローラ1からネットワークに対して送信する処理
に係る動作を除いては、例えば図9に示したシステムに
より行われる動作と同様であるため、本例では、当該シ
ステムとは異なる動作について詳しく説明する。
【0072】まず、送信フレームをホストシステム2の
システムメモリ23からLANコントローラ1へ転送す
るために当該ホストシステム2のデバイスドライバによ
って行われる準備動作の一例を示す。なお、デバイスド
ライバは一般にコンピュータに接続される周辺機器を利
用可能にするためのソフトウエアであり、本例では、ホ
ストシステム2のCPU22がシステムメモリ23に格
納されたデバイスドライバのプログラムを実行すること
により、当該デバイスドライバによる動作処理が行われ
る。
【0073】すなわち、まず、LANコントローラ1の
起動時にデバイスドライバがPCIデバイスとしてのコ
ンフィギュレーションを行い、コマンド、レイテンシー
タイマ及びベースアドレスを設定する。そして、デバイ
スドライバは、LANコントローラ1の第1の多目的レ
ジスタ13をシステムメモリ23にマッピングする。こ
のようなマッピングを行うと、第1の多目的レジスタ1
3は、ホストシステム2からもLANコントローラ1か
らもアクセスが可能となる。
【0074】ここで、第1の多目的レジスタ13として
は、一般的にCSRと呼ばれているものが用いられてい
る。図2(a)には、第1の多目的レジスタ13の構成
例を示してあり、この第1の多目的レジスタ13は、コ
マンド(Command)の情報を格納するコマンドフ
ィールド31と、ステータス(Status)の情報を
格納するステータスフィールド32と、様々な目的の情
報を格納するためのレジスタ(Register)であ
るVP(Various Purpose)レジスタフィールド33と
から構成されている。
【0075】コマンドフィールド31は、LANコント
ローラ1に対するコマンドがセットされる領域として用
いられる。ステータスフィールド32は、LANコント
ローラ1の内部の状態などを示すビットがセットされる
領域として用いられる。VPレジスタフィールド33
は、LANコントローラ1によりアクセスすべき32b
itのアドレスなどをセットするための領域として用い
られる。
【0076】また、同図(b)には、コマンドフィール
ド31の構成例を示してあり、このコマンドフィールド
31には、コマンドの内容を示すコマンド(CMD)ビ
ット34と、一度に送信するパケットの数を示すシリア
ルナンバー(SerialNumber)ビット35が
含まれる。また、同図(c)には、ステータスフィール
ド32の構成例を示してあり、このステータスフィール
ド32には、エラーに関する内容を示すエラーステータ
ス(Error Status)ビット36と、連続し
て送信したパケットの数を示すシリアルパケットナンバ
ー(Serial Packets Number)ビ
ット37と、送信に失敗したパケットを示すフェイラパ
ケットインディケータビット38が含まれる。なお、同
図(b)及び同図(c)に示した構成についての詳しい
説明は後述する第2実施例で述べる。
【0077】次に、ホストシステム2のデバイスドライ
バは、システムメモリ23中に、送信ディスクリプタを
格納する領域(送信ディスクリプタ格納領域)と、それ
に続くアドレス位置に送信フレーム待機用のバッファメ
モリの領域(送信待機用バッファ)を確保する。なお、
本例では、送信ディスクリプタはチェイン構造を有して
おり、2チャネル分の領域を用意する。
【0078】図3には、システムメモリ23中に確保さ
れる2チャネル分の送信ディスクリプタ格納領域及び送
信待機用バッファの一例を示してある。具体的には、同
図には、チャネル1(Ch1)のデータを格納する領域
であるCh1データ格納領域41と、チャネル2(Ch
2)のデータを格納する領域であるCh2データ格納領
域42とが示されている。
【0079】また、Ch1データ格納領域41は、1つ
の固定サイズの送信ディスクリプタ格納領域とこれに対
応する1つの固定サイズの送信待機用バッファとを連続
したアドレス位置に並べた組を複数連続したアドレス位
置に並べて構成されており、具体的には、“0”番目の
送信ディスクリプタ格納領域43a、“0”番目の送信
待機用バッファ44a、“1”番目の送信ディスクリプ
タ格納領域43b、“1”番目の送信待機用バッファ4
4b、“2”番目の送信ディスクリプタ格納領域43
c、“2”番目の送信待機用バッファ44c、…といっ
た順序で各領域が連続したアドレス位置に並べられて設
けられている。なお、本例のチャネル1では、送信待機
用バッファの固定サイズとして、3000バイトのサイ
ズを用いている。
【0080】同様に、Ch2データ格納領域42は、1
つの固定サイズの送信ディスクリプタ格納領域とこれに
対応する1つの固定サイズの送信待機用バッファとを連
続したアドレス位置に並べた組を複数連続したアドレス
位置に並べて構成されており、具体的には、“0”番目
の送信ディスクリプタ格納領域45a、“0”番目の送
信待機用バッファ46a、“1”番目の送信ディスクリ
プタ格納領域45b、“1”番目の送信待機用バッファ
46b、“2”番目の送信ディスクリプタ格納領域45
c、“2”番目の送信待機用バッファ46c、…といっ
た順序で各領域が連続したアドレス位置に並べられて設
けられている。なお、本例のチャネル2では、送信待機
用バッファの固定サイズとして、100バイトのサイズ
を用いている。
【0081】このように、本例では、送信フレーム待機
用バッファのメモリ領域として3000バイトを用意し
たチャネル1と100バイトを用意したチャネル2との
2チャネル分を確保する。なお、送信ディスクリプタの
チェインは例えば1チャネル分だけ用意されても構わな
いが、本例のように小さいサイズの送信フレーム用に送
信フレーム待機用バッファの領域が狭いチャネル(つま
り、チャネル2)を別に1チャネル用意しておいた方
が、システムメモリ23の浪費を防ぐことができて好ま
しい。
【0082】上記のようにしてデバイスドライバによっ
て必要なデータ格納領域41、42がホストシステム2
のシステムメモリ23上に確保され、例えばPC等の上
位システムがデータの送信を要求すると、デバイスドラ
イバは、ネットワーク3への送信対象となる送信データ
のサイズを確認し、当該サイズが100バイトより大き
い場合には、チャネル1の送信ディスクリプタチェイン
を用いて送信データの送信処理が実行されるように制御
する一方、当該サイズが100バイト以下である場合に
は、チャネル2の送信ディスクリプタチェインを用いて
送信データの送信処理が実行されるように制御する。
【0083】次に、ホストシステム2のシステムメモリ
23に格納された送信フレームを当該ホストシステム2
からLANコントローラ1へ転送する動作の一例を示
す。なお、図4には、送信フレームをホストシステム2
からLANコントローラ1へ転送する処理の手順の一例
を示してあり、同図を参照して当該処理に係る動作例を
示す。
【0084】すなわち、まず、上述のように、デバイス
ドライバによる準備が済み、上位のソフトウェアから送
信の命令がデバイスドライバに指示されると(ステップ
S1)、デバイスドライバは送信対象となる送信データ
が含まれる送信フレームのサイズを確認する(ステップ
S2)。
【0085】この確認の結果、送信フレームのサイズが
或るサイズ (本例では、100バイト) よりも大きい場
合には、例えば図9に示したシステムを用いて説明した
転送処理のシーケンスと同様な転送シーケンス(以下
で、通常シーケンスと言う)により送信フレームの転送
処理が行われる(ステップS8)。
【0086】つまり、この通常シーケンスでは、まず、
デバイスドライバは、チャネル1のデータ格納領域41
中の各送信ディスクリプタ格納領域43a、43b、…
に必要な値をセットするとともに、当該データ格納領域
41中の各送信待機用バッファ44a、44b、…に送
信対象となる送信フレームを格納する。
【0087】次に、デバイスドライバは、チャネル1の
最初の(本例では、“0番目”の)送信ディスクリプタ
格納領域43aの先頭アドレスをLANコントローラ1
の第1の多目的レジスタ13内のVPレジスタフィール
ド33にライトし、この処理に続けて、コマンドフィー
ルド31に送信コマンド(TX CMD:Transmit Com
mand)に対応したビット値をライトすることで、LAN
コントローラ1に対して送信データの送信命令を発生す
る。なお、これらの処理は、PCIターゲットライトサ
イクルによって実現される。
【0088】すると、LANコントローラ1は、ホスト
システム2から伝えられて第1の多目的レジスタ13内
のVPレジスタフィールドに格納されたアドレスから、
ホストシステムのシステムメモリ23内に用意されたチ
ャネル1の各送信ディスクリプタ格納領域43a、43
b、…に格納された送信ディスクリプタをリードして第
2の多目的レジスタ14に格納する。なお、この場合、
セレクタ16は、ホストシステム2からの送信ディスク
リプタが第2の多目的レジスタ14へ格納されるように
切り替える。
【0089】ここで、LANコントローラ1は、第2の
多目的レジスタ14に格納された送信ディスクリプタの
情報内容に基づいて送信フレームのサイズを知ることが
でき、次に、LANコントローラ1は、改めてPCIマ
スタリードトランザクションの要求を出して、ホストシ
ステム2のシステムメモリ23内に用意されたチャネル
1の各送信待機用バッファ41に格納された送信フレー
ムを当該ホストシステム2から当該LANコントローラ
1へリード転送する。そして、LANコントローラ1に
よりリードされた送信フレームは、送信用FIFOバッ
ファメモリ15に格納され、これにより、転送処理が完
了する(ステップS7)。なお、この場合、セレクタ1
6は、ホストシステム2からの送信フレームが送信用F
IFOバッファメモリ15へ格納されるように切り替え
る。
【0090】一方、上記の確認の結果(ステップS
2)、送信フレームのサイズが或るサイズ (本例で
は、100バイト) 以下である場合には、デバイスド
ライバは、チャネル2のデータ格納領域42中の各送信
ディスクリプタ格納領域45a、45b、…に必要な値
をセットするとともに、当該データ格納領域42中の各
送信待機用バッファ46a、46b、…に送信対象とな
る送信フレームを格納する(ステップS3)。
【0091】その後、デバイスドライバは、チャネル2
の最初の(本例では、“0番目”の)送信ディスクリプ
タ格納領域45aの先頭アドレスをLANコントローラ
1の第1の多目的レジスタ13内のVPレジスタフィー
ルド33にライトし、この処理に続けて直ちに、コマン
ドフィールド31にスモール送信コマンド(S−TXC
MD:Small-Transmit Command)に対応したビット値を
ライトすることで、LANコントローラ1に対して比較
的サイズの小さい送信データの送信命令を発生する(ス
テップS4)。なお、この処理は、デバイスドライバが
コマンドフィールド31にS−TX CMDに対応した
値をPCIターゲットライトアクセスすることにより行
われる。
【0092】ここで、この時点では、LANコントロー
ラ1はホストシステム2に格納された送信ディスクリプ
タにセットされた内容をまだ知らないために実際に送信
するフレームのサイズはわからないが、この転送シーケ
ンスでは、送信命令が発生された場合には必ず、各送信
ディスクリプタに加えて各送信待機用バッファ46a、
46b、…内の100バイト分のデータをホストシステ
ム2からLANコントローラ1へPCIバースト転送し
て、当該送信フレームを送信用FIFOバッファメモリ
15に格納することを行う(ステップS5)。
【0093】つまり、この転送シーケンスでは、ホスト
システム2のシステムメモリ23に格納されたチャネル
2の送信ディスクリプタ及び送信フレームがまとめてL
ANコントローラに入力され、当該LANコントローラ
1では、入力された送信ディスクリプタがセレクタ16
により分離されて第2の多目的レジスタ14へ格納され
るとともに、入力された送信フレームがセレクタ16に
より分離されて送信用FIFOバッファメモリ15へ格
納される。
【0094】また、このように送信フレームの転送処理
が実行されると、LANコントローラ1では、第2の多
目的レジスタ14に格納された各送信ディスクリプタの
ステータスフィールドに転送処理が正常に行われたか否
かを示す値を書き込んで当該ステータスフィールドを更
新することが行われ(ステップS6)、これにより、転
送処理が完了する(ステップS7)。
【0095】次に、LANコントローラ1の第2の多目
的レジスタ14に格納された送信ディスクリプタに基づ
いて、LANコントローラ1の送信用FIFOバッファ
メモリ15に格納された送信フレームをネットワーク3
に対して送信する動作の一例を示す。なお、図5には、
例えば送信ディスクリプタや送信フレームがLANコン
トローラ1に格納された後に、当該送信フレームをLA
Nコントローラ1からネットワーク3に対して送信する
処理の手順の一例を示してあり、同図を参照して当該処
理に係る動作例を示す。
【0096】すなわち、LANコントローラ1では、例
えば送信データが送信用FIFOバッファメモリ15に
転送された後に(ステップS11)、当該転送処理が完
了したことをMACコントローラ17に伝える。する
と、MACコントローラ17は、第2の多目的レジスタ
14に格納されている送信ディスクリプタを参照して送
信フレームのサイズを把握する(ステップS12)。
【0097】ここで、例えばチャネル2の転送処理が行
われた場合には送信用FIFOバッファメモリ15内に
実際に送信するデータ以外の余計なデータが含まれてい
ることもあり得るが、MACコントローラ17は、送信
ディスクリプタを参照することで正確に送信フレームの
サイズだけのデータを送信用FIFOバッファメモリ1
5から読み出すことができ、これにより、送信対象とな
る送信フレームをSIAインタフェース18若しくはM
IIインタフェース19を介してネットワーク3へ送出
する(ステップS13)。
【0098】このようにしてネットワーク3への送信デ
ータの送出処理が終わると、MACコントローラ17は
データ制御部21に対して送信成功の是非を知らせ、こ
れを受けたデータ制御部21は第1の多目的レジスタ1
3のステータスフィールド32内にあるエラーステータ
スビット36に値をセットする(ステップS14)。こ
こで、エラーステータスビット36の値としては、例え
ば送信処理が成功した場合には“01”という値をセッ
トし、送信処理が失敗した場合には“11”という値を
セットする。
【0099】また、本例では、エラーステータスビット
36の下位1ビットのデータを格納する領域がPCIの
割り込み線に直結されており、これにより、ホストシス
テム2のデバイスドライバでは、例えば送信処理が完了
して割り込みが発生したことによって送信処理が終了し
たことを把握することができるとともに、LANコント
ローラ1の第1の多目的レジスタ13内のエラーステー
タスビット36の値をリードすることによって当該送信
処理の成功の是非を把握することができる(ステップS
15)。
【0100】なお、デバイスドライバが送信成功の是非
を知る必要がなければ、デバイスドライバではLANコ
ントローラ1の多目的レジスタ13内のエラーステータ
スビット36の値をリードする必要はなく、この場合に
は、デバイスドライバでは割り込み線を介して送信処理
の終了を示す信号を受けた後に、送信ディスクリプタを
再利用可能にするためにクリーニングするだけでよい。
例えば従来技術では送信成功の是非を知ることが必要で
あるか否かといった要求に関係なく必ず送信ディスクリ
プタにエラーステータスを記述してLANコントローラ
1からホストシステム2へ書き戻していたが、本例で
は、送信成功の是非を知ることが不要である場合には、
このためのトランザクションを省略することが可能であ
る。
【0101】以上のように、本例のようなデータ転送方
法を用いたデータ転送システムでは、例えばチャネル2
を用いた送信フレームの転送処理において、送信ディス
クリプタのコピーに係るオーバーヘッドを発生させるこ
となく、送信フレームをホストシステム2のシステムメ
モリ23からLANコントローラ1へ転送することがで
き、これにより、送信フレームの効率的な転送が可能と
なる。更に、本例では、送信ディスクリプタの書き戻し
に係るPCIトランザクションを省略することも可能と
なっている。
【0102】また、本例では、比較的サイズが小さい
(本例では、100バイト以下のサイズの)送信フレー
ムを送信する場合に、送信待機用バッファのサイズが小
さい送信ディスクリプタチャネル(本例では、チャネル
2)を使用してデータ転送が行われるため、例えばシス
テムメモリ23の使用効率が悪くなるといったことも生
じない。
【0103】また、本例では、例えば比較的小さいサイ
ズの送信フレームをチャネル1のデータ格納領域41に
格納すると空き領域が多くなることが生じ得ることか
ら、所定のサイズ(本例では、100バイト)以下の小
さいサイズの送信フレームについてはチャネル2のデー
タ格納領域42に格納することで、発生する空き領域を
少なくしている。また、チャネル1のデータ格納領域4
1では比較的多くの空き領域が生じる場合もあることか
ら、チャネル1のデータ転送処理では、ホストシステム
2からLANコントローラ1へ送信ディスクリプタを転
送した後に、当該送信ディスクリプタに基づいて必要な
データ分の送信フレームをホストシステム2からLAN
コントローラ1へ転送している。
【0104】次に、本発明の第2実施例として、図2
(b)に示したコマンドフィールド31や同図(c)に
示したステータスフィールド32を用いてデータ転送シ
ステムにより行われる動作の一例を示す。なお、本例の
データ転送システムの構成は、例えば第1実施例の図1
に示したものと同様であるため、その説明を省略する。
【0105】すなわち、図1に示したようなデータ転送
システムでは、例えばロングメッセージパケットを送信
しているときに、複数のショートメッセージパケットの
送信が送信待ちのキューに溜まる場合があり、本例で
は、このような場合に、より一層効率的にショートメッ
セージパケットを送信することを可能とすることを実現
する。ここで、本例では、送信フレームがパケットとし
てネットワーク3に対して送信され、ロングデータパケ
ットとは図3に示したチャネル1の送信待機用バッファ
44a、44b、…に格納される送信フレームを示し、
ショートメッセージパケットとは同図に示したチャネル
2の送信待機用バッファ46a、46b、…に格納され
る送信フレームを示す。
【0106】以下では、100バイトに満たないショー
トメッセージパケットが3つ溜まっている場合を例とし
て、本例のデータ転送システムにより行われる動作例を
示す。このような場合、本例では、図2(b)に示した
ように、LANコントローラ1の第1の多目的レジスタ
13内のコマンドフィールド31には、一度に送信する
パケットの数を示すシリアルナンバービット35を格納
する領域を設けておく。そして、デバイスドライバは、
キューに溜まっている3つのショートメッセージパケッ
トをLANコントローラ1へ転送するに際して、第1の
多目的レジスタ13内のコマンドフィールド31に設け
られたCMDビット34にS−TX CMDを書き込む
のと同時に、溜まっている送信キューの数 (本例で
は、3)をシリアルナンバービット35に書き込む。
【0107】すると、LANコントローラ1では、デー
タ制御部21が第1の多目的レジスタ13内のシリアル
ナンバービット35の値を参照し、この値に基づいて、
チャネル2に関する3つ分の送信ディスクリプタ及び1
00バイトのデータの組を一度にホストシステム2から
LANコントローラ1へバースト転送してリードする。
【0108】ここで、例えば図6に示されるように、本
例のLANコントローラ1では、送信ディスクリプタ4
5a、45b、…及び送信待機用バッファ46a、46
b、…内の送信データの組を連続してホストシステム2
から読み込む場合に、セレクタ16がダイナミックに送
信ディスクリプタ45a、45b、…と送信データとの
それぞれを分離してそれぞれの格納先を第2の多目的レ
ジスタ14と送信用FIFOバッファメモリ15とへ分
別して転送する。このようにすることで、例えば従来の
データ転送方法では6回のPCIトランザクションが発
生していたのに対して、本例のデータ転送方法では、1
回のPCIトランザクションで済ませることが可能であ
り、オーバーヘッドを大幅に減少することができる。
【0109】また、本例では、他の特徴的な構成とし
て、図2(c)に示したように、第1の多目的レジスタ
13内のステータスフィールド32に、連続して送信し
たショートメッセージパケットの数をセットするシリア
ルパケットナンバービット37と、送信にエラーが生じ
たパケットを特定するためのフェイラパケットインディ
ケータビット38を設けてあり、これにより、いずれの
パケットにネットワーク送信時のエラーが生じたかをL
ANコントローラ1からホストシステム2のデバイスド
ライバへ伝えることができるようになっている。
【0110】例えば、2番目などに送信したパケットに
エラーが生じた場合を考えると、第1実施例で述べたよ
うにステータスフィールド32内のエラーステータスビ
ット36の値を用いて送信処理が全体として成功したか
或いは失敗したかを示すだけでは、いずれのパケットが
エラーとなったのかをホストシステム2のデバイスドラ
イバにより特定することができない。そこで、本例で
は、まとめて送信したパケットの数をシリアルナンバー
パケットビット37にセットするとともに、エラーが生
じたパケットに対応したビットをフェイラパケットイン
ディケータビット38にセットする。
【0111】ここで、図7には、ステータスフィールド
32内のフェイラパケットインディケータビット38な
どの値が変更される様子の一例を示してある。同図
(a)には、3つのパケットを連続してまとめて送信し
た場合に、これら3つの中の2番目のパケットの送信処
理にエラーが発生した場合におけるステータスフィール
ド32内のビット列の一例を示してある。この場合、エ
ラーステータスビット36の値は“10”となり、シリ
アルパケットナンバービット37の値は“011”とな
り、フェイラパケットインディケータビット38の値は
“0000010”となり、つまり、3つのパケットを
送信して2番目のパケットにエラーが発生したことが示
されている。
【0112】また、ホストシステム2のデバイスドライ
バは、LANコントローラ1の第1の多目的レジスタ1
3内のステータスフィールド32のビット列を確認する
と、当該ステータスフィールド32内のビット値を全て
“0”にリセットする。ここで、同図(c)にはリセッ
トされたステータスフィールド32内のビット列の一例
を示してあり、全ての値が“0”にセットされている。
【0113】また、同図(b)には、同図(a)に示し
た状態において、ホストシステム2のデバイスドライバ
がステータスフィールド32内のビット列を確認する前
に、更に次のパケット送信があった場合におけるステー
タスフィールド32内のビット列の一例を示してある。
この場合、エラーステータスビット36の値は“10”
となり、シリアルパケットナンバービット37の値は次
に送信されたパケットの数だけ加算されてセットされて
“110”となり、フェイラパケットインディケータビ
ット38の値は当該送信されたパケットの分だけOR演
算されて“0010010”となり、つまり、6つのパ
ケットを送信して2番目及び5番目のパケットにエラー
が発生したことが示されている。
【0114】なお、上記のように、ホストシステム2の
デバイスドライバがLANコントローラ1の第1の多目
的レジスタ13内のステータスフィールド32のビット
列を確認すると、当該ステータスフィールド32内のビ
ット値が全て“0”にリセットされて、ステータスフィ
ールド32内のビット列は同図(c)に示した状態とな
る。
【0115】このように、本例では、ホストシステム2
のデバイスドライバがLANコントローラ1の第1の多
目的レジスタ(CSR)13をリードすることで、エラ
ーが生じた送信メッセージパケットを特定することがで
きるため、エラー発生時に例えばTCP/IP(Transm
ission Control Protocol/Internet Protocol)層レベ
ルの遅延をできるだけ短くすることが可能となる。な
お、第1実施例で述べたように、例えばデバイスドライ
バによりエラー情報を取得する必要がない場合には、デ
バイスドライバにより第1の多目的レジスタ(CSR)
13をリードするトランザクションを省略することが可
能である。
【0116】次に、図8(a)には、従来のデータ転送
システムやデータ転送方法を用いた場合における送信フ
レームの転送シーケンスの一例を示してある一方、同図
(b)には、本発明を適用したデータ転送システムやデ
ータ転送方法を用いた場合における送信フレームの転送
シーケンスの一例を示してあり、同図(a)及び同図
(b)を参照して、本発明を適用したデータ転送システ
ム等により得られる効果を定量的に示す。
【0117】なお、同図(a)や同図(b)に示した転
送シーケンス中には、クロック信号(CLK)や、バス
使用要求信号(REQ#)や、バス使用許可信号(GN
T#)や、送信フレーム信号(FRAME#)や、イニ
シエイタレディ信号(IRDY#)や、デバイスセレク
ト信号(DEVSEL#)や、ターゲットレディ信号
(TRDY#)の波形の一例を示してある。
【0118】すなわち、従来では、同図(a)に示され
るように、送信ディスクリプタのPCIリード転送処理
に係るトランザクション51によりホストシステム2か
らLANコントローラ1へ送信ディスクリプタを転送し
た後に、送信フレームのPCIリード転送処理に係るト
ランザクション53により送信フレームをホストシステ
ム2からLANコントローラ1へリード転送することが
行われていたため、これら2つのトランザクション5
1、53の間に別のデバイスによるトランザクション5
2が行われてしまう可能性もあり、フレームの転送には
非常に時間がかかってしまっていた。
【0119】一方、本発明を適用したデータ転送システ
ム等における例えばチャネル2を用いた転送処理では、
同図(b)に示されるように、送信ディスクリプタに加
えて予め決まったサイズの送信データをもまとめてホス
トシステム2からLANコントローラ1へバースト転送
するトランザクション54が行われるため、送信フレー
ムがLANコントローラ1内に転送されるまでの時間が
短く、低レイテンシーで送信を行うことが可能である。
【0120】また、同図(a)及び同図(b)に示した
例では、本発明を適用した場合の方が従来例と比べて、
およそ25クロック(CLK)のアドバンテージとなっ
ているが、実際には従来のデータ転送システム等におい
てはデータの準備が遅くリトライが重なることもあるた
め、例えば66MHz動作の場合でも1μsec以上の
高速化が見込まれる。つまり、伝送速度が1Gbpsの
ネットワークを用いた場合、本発明を適用したデータ転
送システム等では、100バイト程度のメッセージパケ
ットを十分に送信してしまえるだけの時間を節約するこ
とができることになる。更に、第2実施例で示したよう
に、複数のメッセージデータパケットをまとめてホスト
システム2からLANコントローラ1へ転送するように
すると、本発明に係る転送処理により得られる効果は更
に大きいものとなる。
【0121】このように、本発明を適用したデータ転送
システムやデータ転送方法では、例えば従来のデータ転
送システムやデータ転送方法と比較して、送信データの
送信時におけるオーバーヘッドを大幅に減らすことがで
き、これにより、送信データを高速にホストシステムの
システムメモリからLANコントローラへ転送すること
ができる。
【0122】以上に示したように、本発明の実施例に係
るデータ転送装置やデータ転送方法では、例えば計算機
システムをネットワークに接続するためのネットワーク
インタフェース装置を用いた構成において、ホストシス
テムから当該ネットワークインタフェース装置上へ送信
データを転送するに際して、デバイスドライバのソフト
ウエアは、送信するパケットのサイズの大小によって少
なくとも2つのカテゴリーに分け、送信対象となるパケ
ットのサイズが小さいと判断した場合には、その旨を伝
えるための(通常の送信時とは異なる)S−TX CM
Dをネットワークインタフェース装置に対して発生す
る。そして、このコマンドが発生された場合には、送信
ディスクリプタに加えて一律な或る所定サイズの送信デ
ータを一度のPCIバスオペレーションでホストシステ
ムからバースト転送してネットワークインタフェース装
置にバッファリングする。
【0123】また、本発明の実施例に係るデータ転送シ
ステムやデータ転送方法では、上記のような転送処理を
行うに際して、デバイスドライバがS−TX CMDに
対応するビット値をライトするためのコントロール/ス
テータスレジスタ(CSR)を用いることや、セレクタ
により送信ディスクリプタと送信データとで格納先とな
るメモリを動的に切り変えることを行っている。
【0124】また、本発明の実施例に係るデータ転送シ
ステムやデータ転送方法では、上述のように、送信デー
タを保持するデータ待機領域のサイズが異なる少なくと
も2つの送信ディスクリプタのチャネルを備え、これら
複数のチャネルを適宜切り替えることで、送信データの
転送処理を実行する。
【0125】また、本発明の実施例に係るデータ転送シ
ステムやデータ転送方法では、CSRがネットワークへ
の送信処理が終了したことを示すビットと当該送信処理
が成功したか否かを示すビットから構成されるエラース
テータスビットを備え、当該送信処理が終了したことを
示すビットは割り込み信号線に直結されていて割り込み
信号としてホストシステムへ通達され、また、デバイス
ドライバのソフトウエアは送信処理が成功したか否かを
知る必要がある場合にのみCSRをリードすることで当
該送信処理の成功の是非を確認する。
【0126】また、本発明の実施例に係るデータ転送シ
ステムやデータ転送方法では、CSRは送信命令のコマ
ンドがS−TX CMDである場合に連続して処理する
フレームの数を指定するシリアルナンバーフィールドを
備え、ネットワークインタフェース装置は当該シリアル
ナンバーフィールドの値を確認して、当該シリアルナン
バーフィールドに記述された数のフレーム分の送信ディ
スクリプタと送信データとの組をまとめてホストシステ
ムからバースト転送して取込む。
【0127】また、本発明の実施例に係るデータ転送シ
ステムやデータ転送方法では、CSRは実際にまとめて
送信処理されたフレームの数を示すシリアルパケットナ
ンバーフィールドと、送信処理に失敗したフレームを特
定するためのフェイラパケットインディケータフィール
ドとを備え、デバイスドライバのソフトウェアは送信処
理が成功したか否かを知る必要がある場合にのみ、CS
Rをリードすることでエラーが生じたフレームを特定す
ることができる。
【0128】なお、以上に示した実施例では、ホストシ
ステム2のハードディスク装置(HDD)等にデバイス
ドライバがインストールされた形態などを用いて本発明
に係る各種の処理を実現しており、この場合、デバイス
ドライバが本発明に言うプログラムに相当し、デバイス
ドライバをインストールしたHDD等が本発明に言う記
憶媒体に相当する。また、以上に示した実施例では、デ
バイスドライバがハードウエアをドライブするあらゆる
処理を行っており、本発明に言うプログラムにより行わ
れる各種の処理は、当該デバイスドライバにより行われ
る処理の一部として実装されている。
【0129】ここで、本発明に係るネットワークインタ
フェース装置や通信装置の構成としては、必ずしも以上
に示したものに限られず、種々な構成が用いられてもよ
い。また、本発明の適用分野としては、必ずしも以上に
示したものに限られず、本発明は、種々な分野に適用す
ることが可能なものである。
【0130】一例として、本実施例では、本発明に係る
ネットワークインタフェース装置をLANコントローラ
に適用した場合を示したが、本発明は、種々なネットワ
ークインタフェース装置に適用することが可能なもので
ある。同様に、本実施例では、本発明に係る通信装置を
パーソナルコンピュータ(ホストシステム)に適用した
場合を示したが、本発明は、種々な通信装置に適用する
ことが可能なものである。
【0131】また、本発明に係るネットワークインタフ
ェース装置や通信装置により行われる各種の処理として
は、例えばプロセッサやメモリ等を備えたハードウエア
資源においてプロセッサがROMに格納された制御プロ
グラムを実行することにより制御される構成が用いられ
てもよく、また、例えば当該処理を実行するための各機
能手段が独立したハードウエア回路として構成されても
よい。また、本発明は上記の制御プログラムを格納した
フロッピー(登録商標)ディスクやCD−ROM等のコ
ンピュータにより読み取り可能な記憶媒体や当該プログ
ラム(自体)として把握することもでき、当該制御プロ
グラムを記憶媒体からコンピュータに入力してプロセッ
サに実行させることにより、本発明に係る処理を遂行さ
せることができる。
【0132】
【発明の効果】以上説明したように、本発明に係るネッ
トワークインタフェース装置や通信装置や記憶媒体によ
ると、送信データに関する制御情報を含む送信ディスク
リプタ及び送信データをまとめて通信装置からネットワ
ークインタフェース装置へ入力し、当該ネットワークイ
ンタフェース装置が入力した送信ディスクリプタに基づ
いて入力した送信データをネットワークに対して送信す
るようにしたため、通信装置からネットワークインタフ
ェース装置への送信データの転送速度を高めることがで
き、これにより、送信データを高速にネットワークへ送
信することができる。
【0133】また、本発明に係るネットワークインタフ
ェース装置などによると、送信データのサイズが閾値未
満である場合に、送信ディスクリプタ及び送信データを
まとめて通信装置からネットワークインタフェース装置
へ入力するようにしたため、従来において特に転送速度
が遅くなってしまうサイズが小さい送信データについ
て、通信装置からネットワークインタフェース装置への
送信データの転送速度を高めることができる。
【0134】また、本発明に係るネットワークインタフ
ェース装置などによると、通信装置が送信ディスクリプ
タ及び所定サイズ以下の送信データを格納するデータ格
納領域を複数の送信データサイズに対応して有し、送信
データのサイズに応じて通信装置が有するいずれかのデ
ータ格納領域に格納されたデータを通信装置からネット
ワークインタフェース装置へ入力するようにしたため、
例えば用意された複数のデータ格納領域の中で送信デー
タのサイズに適したデータ格納領域を用いて、通信装置
からネットワークインタフェース装置へのデータ転送処
理やネットワークに対する送信データの送信処理を行う
ことができる。
【0135】また、本発明に係るネットワークインタフ
ェース装置などによると、送信対象となる送信データの
数に関する情報を通信装置からネットワークインタフェ
ース装置へ入力し、入力した当該情報に基づく数の送信
ディスクリプタ及び送信データの組を通信装置からネッ
トワークインタフェース装置へ入力するようにしたた
め、通信装置からネットワークインタフェース装置への
データ転送処理を効率よく行うことができる。
【図面の簡単な説明】
【図1】 本発明の実施例に係るデータ転送システムの
一例を示す図である。
【図2】 第1の多目的レジスタの構成例を示す図であ
る。
【図3】 2チャネル分の送信ディスクリプタ格納領域
及び送信待機用バッファの一例を示す図である。
【図4】 送信フレームをホストシステムからLANコ
ントローラへ転送する処理の手順の一例を示すフローチ
ャート図である。
【図5】 送信フレームをLANコントローラからネッ
トワークに対して送信する処理の手順の一例を示すフロ
ーチャート図である。
【図6】 セレクタによりデータの格納先を切り替える
処理を説明するための図である。
【図7】 ステータスフィールド内のフェイラパケット
インディケータビットなどの値が変更される様子の一例
を示す図である。
【図8】 本発明を適用したデータ転送システムなどに
より得られる効果の一例を説明するための図である。
【図9】 従来の代表的なイーサネット用のLANコン
トローラの構成例を示す図である。
【図10】 送信ディスクリプタの構造の一例を示す図
である。
【図11】 送信ディスクリプタのリング構造の一例を
示す図である。
【図12】 送信ディスクリプタの構造の他の例を示す
図である。
【図13】 送信ディスクリプタのチェイン構造の一例
を示す図である。
【符号の説明】
1・・LANコントローラ、 2・・ホストシステム、
3・・ネットワーク、11・・PCIバスインタフェ
ース、 12・・DMAコントローラ、13、14・・
多目的レジスタ、 15・・送信用FIFOバッファメ
モリ、16・・セレクタ、 17・・MACコントロー
ラ、18・・SIAインタフェース、 19・・MII
インタフェース、20・・受信用FIFOバッファメモ
リ、 21・・データ制御部、22・・CPU、 23
・・システムメモリ、 31・・コマンドフィールド、
32・・ステータスフィールド、 33・・VPレジス
タフィールド、34・・コマンドビット、 35・・シ
リアルナンバービット、36・・エラーステータスビッ
ト、37・・シリアルパケットナンバービット、38・
・フェイラパケットインディケータビット、41、42
・・データ格納領域、43a〜43c、45a〜45c
・・送信ディスクリプタ、44a〜44c、46a〜4
6c・・送信待機用バッファ、

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 送信データに関する制御情報を含む送信
    ディスクリプタ及び送信データを通信装置から入力し、
    入力した送信ディスクリプタに基づいて入力した送信デ
    ータをネットワークに対して送信するネットワークイン
    タフェース装置において、 送信ディスクリプタ及び送信データをまとめて通信装置
    から入力し、入力した送信ディスクリプタに基づいて入
    力した送信データをネットワークに対して送信するイン
    タフェース手段を備えたことを特徴とするネットワーク
    インタフェース装置。
  2. 【請求項2】 請求項1に記載のネットワークインタフ
    ェース装置において、 インタフェース手段は、送信データのサイズが閾値未満
    である場合に送信ディスクリプタ及び送信データをまと
    めて通信装置から入力することを特徴とするネットワー
    クインタフェース装置。
  3. 【請求項3】 請求項1又は請求項2に記載のネットワ
    ークインタフェース装置において、 通信装置は送信ディスクリプタ及び所定サイズ以下の送
    信データを格納するデータ格納領域を複数の送信データ
    サイズに対応して有しており、 インタフェース手段は、送信データのサイズに応じて通
    信装置が有するいずれかのデータ格納領域に格納された
    データを通信装置から入力することを特徴とするネット
    ワークインタフェース装置。
  4. 【請求項4】 請求項1乃至請求項3のいずれか1項に
    記載のネットワークインタフェース装置において、 インタフェース手段は、送信対象となる送信データの数
    に関する情報を通信装置から入力し、入力した当該情報
    に基づく数の送信ディスクリプタ及び送信データの組を
    通信装置から入力することを特徴とするネットワークイ
    ンタフェース装置。
  5. 【請求項5】 送信データに関する制御情報を含む送信
    ディスクリプタに基づいて送信データをネットワークに
    対して送信するネットワークインタフェース装置に対し
    て送信ディスクリプタ及び送信データを出力する通信装
    置において、 送信ディスクリプタ及び送信データをまとめてネットワ
    ークインタフェース装置に対して出力する通信手段を備
    えたことを特徴とする通信装置。
  6. 【請求項6】 請求項5に記載の通信装置において、 通信手段は、送信データのサイズが閾値未満である場合
    に送信ディスクリプタ及び送信データをまとめてネット
    ワークインタフェース装置に対して出力することを特徴
    とする通信装置。
  7. 【請求項7】 請求項5又は請求項6に記載の通信装置
    において、 送信ディスクリプタ及び所定サイズ以下の送信データを
    格納するデータ格納領域を複数の送信データサイズに対
    応して有し、 通信手段は、送信データのサイズに応じていずれかのデ
    ータ格納領域に格納されたデータをネットワークインタ
    フェース装置に対して出力することを特徴とする通信装
    置。
  8. 【請求項8】 請求項5乃至請求項7のいずれか1項に
    記載の通信装置において、 通信手段は、送信対象となる送信データの数に関する情
    報をネットワークインタフェース装置に対して出力し、
    当該数の送信ディスクリプタ及び送信データの組をネッ
    トワークインタフェース装置に対して出力することを特
    徴とする通信装置。
  9. 【請求項9】 コンピュータに実行させるプログラムを
    当該コンピュータの入力手段が読取可能に記憶した記憶
    媒体において、 当該プログラムは、送信データに関する制御情報を含む
    送信ディスクリプタに基づいて送信データをネットワー
    クに対して送信するネットワークインタフェース装置に
    対して送信ディスクリプタ及び送信データをまとめて出
    力する処理を当該コンピュータに実行させることを特徴
    とする記憶媒体。
  10. 【請求項10】 請求項9に記載の記憶媒体において、 前記プログラムは、送信データのサイズが閾値未満であ
    る場合に送信ディスクリプタ及び送信データをまとめて
    ネットワークインタフェース装置に対して出力する処理
    を前記コンピュータに実行させることを特徴とする記憶
    媒体。
  11. 【請求項11】 請求項9又は請求項10に記載の記憶
    媒体において、 前記プログラムは、複数の送信データサイズに対応して
    設けられて送信ディスクリプタ及び所定サイズ以下の送
    信データを格納するデータ格納領域の中から、送信デー
    タのサイズに応じていずれかのデータ格納領域に格納さ
    れたデータをネットワークインタフェース装置に対して
    出力する処理を前記コンピュータに実行させることを特
    徴とする記憶媒体。
  12. 【請求項12】 請求項9乃至請求項11のいずれか1
    項に記載の記憶媒体において、 前記プログラムは、送信対象となる送信データの数に関
    する情報をネットワークインタフェース装置に対して出
    力する処理と、当該数の送信ディスクリプタ及び送信デ
    ータの組をネットワークインタフェース装置に対して出
    力する処理とを前記コンピュータに実行させることを特
    徴とする記憶媒体。
JP2000372761A 2000-12-07 2000-12-07 ネットワークインタフェース装置 Pending JP2002176464A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000372761A JP2002176464A (ja) 2000-12-07 2000-12-07 ネットワークインタフェース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000372761A JP2002176464A (ja) 2000-12-07 2000-12-07 ネットワークインタフェース装置

Publications (1)

Publication Number Publication Date
JP2002176464A true JP2002176464A (ja) 2002-06-21

Family

ID=18842248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000372761A Pending JP2002176464A (ja) 2000-12-07 2000-12-07 ネットワークインタフェース装置

Country Status (1)

Country Link
JP (1) JP2002176464A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102928A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でデバイス・ドライバと入出力装置との間で通信するためのアドレス変換を確立するための方法、コンピュータ・プログラム、および装置(キュー・データ構造および事前変換済みアドレスを使用して入出力装置と通信するための装置および方法)
JP2008102929A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でネットワーク入出力(i/o)アダプタと通信するためにネットワーク・デバイス・ドライバによって使用されるバッファ・データ構造にアクセスするためのアドレス変換を管理するための方法、コンピュータ・プログラム、および装置(キュー・データ構造およびキャッシュされたアドレス変換を使用してネットワーク・アダプタと通信するための装置および方法)
JP2008102930A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でシステム・イメージとローカルに接続された外部記憶装置との間の動作を実行するための方法、コンピュータ・プログラム、および装置(キャッシュされたアドレス変換を使用して入出力アダプタと通信するための装置および方法)
CN111600809A (zh) * 2020-05-15 2020-08-28 北京光润通科技发展有限公司 一种千兆单光口服务器适配器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102928A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でデバイス・ドライバと入出力装置との間で通信するためのアドレス変換を確立するための方法、コンピュータ・プログラム、および装置(キュー・データ構造および事前変換済みアドレスを使用して入出力装置と通信するための装置および方法)
JP2008102929A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でネットワーク入出力(i/o)アダプタと通信するためにネットワーク・デバイス・ドライバによって使用されるバッファ・データ構造にアクセスするためのアドレス変換を管理するための方法、コンピュータ・プログラム、および装置(キュー・データ構造およびキャッシュされたアドレス変換を使用してネットワーク・アダプタと通信するための装置および方法)
JP2008102930A (ja) * 2006-10-17 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム内でシステム・イメージとローカルに接続された外部記憶装置との間の動作を実行するための方法、コンピュータ・プログラム、および装置(キャッシュされたアドレス変換を使用して入出力アダプタと通信するための装置および方法)
US8769168B2 (en) 2006-10-17 2014-07-01 International Business Machines Corporation Method for communicating with a network adapter using a queue data structure and cached address translations
CN111600809A (zh) * 2020-05-15 2020-08-28 北京光润通科技发展有限公司 一种千兆单光口服务器适配器
CN111600809B (zh) * 2020-05-15 2023-11-21 北京光润通科技发展有限公司 一种千兆单光口服务器适配器

Similar Documents

Publication Publication Date Title
US6061687A (en) Linked lists of transfer descriptors scheduled at intervals
US5634015A (en) Generic high bandwidth adapter providing data communications between diverse communication networks and computer system
EP1896965B1 (en) Dma descriptor queue read and cache write pointer arrangement
JP2001142842A (ja) Dmaハンドシェークプロトコル
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
JPH1078934A (ja) パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
JP2002204253A (ja) 非同期転送モードにおけるホスト・プロセッサおよびディジタル信号プロセッサ間転送用インターフェース・ユニット、およびこれを用いたデータ処理システム
JPS62221057A (ja) ポインタアドレスを発生するための装置および方法
JP2001119415A (ja) データ転送制御装置及び電子機器
TW508522B (en) System input/output interface design for scaling
JP2003316731A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7028130B2 (en) Generating multiple traffic classes on a PCI Express fabric from PCI devices
US20030101308A1 (en) Bus system and bus interface for connection to a bus
US5911152A (en) Computer system and method for storing data in a buffer which crosses page boundaries utilizing beginning and ending buffer pointers
JP2003316732A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US7043589B2 (en) Bus system and bus interface
JP2002176464A (ja) ネットワークインタフェース装置
JP4432388B2 (ja) 入出力制御装置
US6378017B1 (en) Processor interconnection
JP5772132B2 (ja) データ転送装置、データ転送方法および情報処理装置
JP2000259523A (ja) データ転送装置、lan通信システム及びデータ転送方法
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
JPH0661074B2 (ja) アクセス制御装置、バスの遊休時間を最小化する方法、dma制御装置、及びdmaデータ転送方法
JPH1063617A (ja) シリアル通信装置