(57)【特許請求の範囲】
【請求項１】
データネットワークの物理的リンクに接続された物理層回路と、
上記物理層回路と通信するメディアアクセスコントローラ（ＭＡＣ）であって、ハードウェアが削減されたＭＡＣとを備えたネットワークインターフェースアダプタであって、
上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ハードウェアＭＡＣは、
クライアントコンピュータからデータを受信し、上記データを上記物理的リンクに送信する前に当該データを一時的に記憶する送信バッファと、
上記物理的リンクからデータを受信し、上記データを上記クライアントコンピュータに送る前に当該データを一時的に記憶する受信バッファと、
上記送信バッファ及び上記受信バッファに接続されたレジスタインターフェースであって、ステータスレジスタを含む複数のデータレジスタを有するレジスタインターフェースとを有し、上記ステータスレジスタは、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つの割り込みビットを有し、上記ステータスレジスタは、上記データネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶し、上記ステータスレジスタは上記クライアントコンピュータから読み出し可能であり、
上記ソフトウェアＭＡＣは、上記クライアントコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記クライアントコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成されたネットワークインターフェースアダプタ。
【請求項２】
上記物理層回路は上記ハードウェアが削減されたＭＡＣを含む請求項１記載のネットワークインターフェースアダプタ。
【請求項３】
上記ハードウェアＭＡＣは、上記物理層回路の媒体非依存型インターフェース（ＭＩＩ）と通信する少なくとも１つの信号線をさらに備えた請求項１記載のネットワークインターフェースアダプタ。
【請求項４】
上記ハードウェアＭＡＣは、上記物理層回路から上記レジスタインターフェースにネットワーク状態を伝達する少なくとも１つのネットワーク状態信号線をさらに備えた請求項１記載のネットワークインターフェースアダプタ。
【請求項５】
上記ハードウェアＭＡＣは、上記物理的リンクから受信されたデータの有効性を伝達する少なくとも１つの有効性信号線をさらに備えた請求項１記載のネットワークインターフェースアダプタ。
【請求項６】
上記送信バッファ及び上記受信バッファは、先入れ先出し（ＦＩＦＯ）バッファをそれぞれ備えた請求項１記載のネットワークインターフェースアダプタ。
【請求項７】
クライアントコンピュータをネットワークに接続するネットワークインターフェースアダプタを備えたシステムであって、
上記ネットワークインターフェースアダプタは、
上記ネットワークの物理的リンクに接続された物理層回路と、
上記物理層回路と通信するメディアアクセスコントローラ（ＭＡＣ）であって、ハードウェアが削減されたＭＡＣとを有し、
上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ハードウェアＭＡＣは、
上記クライアントコンピュータからデータを受信し、上記データを上記物理的リンクに送信する前に当該データを一時的に記憶する送信バッファと、
上記物理的リンクからデータを受信し、上記データを上記クライアントコンピュータに送る前に当該データを一時的に記憶する受信バッファと、
上記送信バッファ及び上記受信バッファに接続されたレジスタインターフェースとを有し、上記レジスタインターフェースは、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つのビットを含むステータスレジスタを有し、上記ステータスレジスタは、上記ネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶し、上記ステータスレジスタは上記クライアントコンピュータから読み出し可能であり、
上記ソフトウェアＭＡＣは、上記クライアントコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記クライアントコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成されたシステム。
【請求項８】
上記物理層回路と上記ハードウェアが削減されたＭＡＣとはそれぞれ、別個のチップを構成する請求項７記載のシステム。
【請求項９】
上記ハードウェアＭＡＣは、上記物理層回路の媒体非依存型インターフェース（ＭＩＩ）と通信する少なくとも１つの信号線をさらに備えた請求項７記載のシステム。
【請求項１０】
上記ハードウェアＭＡＣは、上記物理層回路から上記レジスタインターフェースにネットワーク状態を伝達する少なくとも１つのネットワーク状態信号線をさらに備えた請求項７記載のシステム。
【請求項１１】
上記ハードウェアＭＡＣは、上記物理的リンクから受信されたデータの有効性を伝達する少なくとも１つの有効性信号線をさらに備えた請求項７記載のシステム。
【請求項１２】
ＰＨＹ回路と通信するメディアアクセスコントローラ（ＭＡＣ）であってかつハードウェアが削減されたＭＡＣを備えたシステムであって、
上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ソフトウェアＭＡＣは、ホストコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記ホストコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成され、
上記ハードウェアＭＡＣは、
少なくとも１つの送信データ線に接続された送信バッファであって、上記ホストコンピュータからデータを受信することと、上記データを上記送信データ線を介してデータネットワークの物理的リンクに送信する前に当該データを一時的に記憶することとに適応された送信バッファと、
少なくとも１つの受信データ線に接続された受信バッファであって、上記受信データ線を介してデータネットワークの物理的リンクからデータを受信することと、上記データを上記ホストコンピュータに送る前に当該データを一時的に記憶することとに適応された受信バッファと、
上記受信レジスタに接続されたデータレジスタを含む、複数の通信レジスタからなるアレーとを備え、上記データレジスタからの読み出しを繰り返すことにより、上記受信バッファからデータが読み出され、
上記アレーは、上記データネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶するステータスレジスタを含み、上記ステータスレジスタは上記ホストコンピュータから読み出し可能であり、上記ステータスレジスタはさらに、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つの割り込みビットを含むシステム。
【請求項１３】
上記システムは、上記アレーと、上記データネットワークへの接続部との間に接続されたラッチをさらに備え、
上記ラッチは、データフレームを受信する際のエラーを識別するエラー信号を記憶し、
上記ラッチは、上記データフレームを受信するのに十分な時間期間にわたって上記エラー信号を保持する請求項１２記載のシステム。
【請求項１４】
上記データレジスタへの書き込みを繰り返すことにより、上記送信バッファ内にデータが記憶される請求項１２記載のシステム。
【請求項１５】
上記送信バッファは、上記ＰＨＹ回路を介して上記データネットワークに接続された請求項１２記載のシステム。
【請求項１６】
上記アレーは、上記ＰＨＹ回路の動作を制御する少なくとも１つの信号を記憶する媒体非依存インターフェースレジスタをさらに備え、上記信号は、上記データネットワークへの読み出し及び書き込みアクセスの間に上記ＰＨＹ回路を制御するために上記媒体非依存インターフェースレジスタから送られる請求項１５記載のシステム。
【請求項１７】
上記複数の通信レジスタからなるアレーは、上記ホストコンピュータのプロセッサによって実行されるネットワーク通信ソフトウェアによって読み出し可能であり、
上記データネットワークから読み出されたデータはフレームで受信され、
上記プロセッサは、受信されたデータフレーム内に記憶されたフレームチェックデータに従って、上記受信されたデータフレームを解析する請求項１２記載のシステム。
【請求項１８】
ハードウェアが削減されたメディアアクセスコントローラ（ＭＡＣ）を備えたシステムであって、
上記ハードウェアが削減されたＭＡＣは、データネットワークからデータを受信して上記データをホストコンピュータに送る前に当該データを一時的に記憶するように接続された受信バッファを有し、上記ハードウェアが削減されたＭＡＣはＰＨＹ回路と通信し、上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ソフトウェアＭＡＣは、上記ホストコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記ホストコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成され、
上記ハードウェアＭＡＣは複数の通信レジスタをさらに有し、上記通信レジスタは、上記受信バッファに接続されたデータレジスタを有し、上記データレジスタからの読み出しを繰り返すことにより、上記受信バッファからデータが読み出され、
上記通信レジスタは、少なくとも１つの割り込みビットを記憶するように適応されたステータスレジスタをさらに有し、上記割り込みビットは、上記データネットワークから受信されかつ上記ホストコンピュータを宛先とするデータの存在を示すように設定され、上記割り込みビットは上記ホストコンピュータにより読み出し可能であり、読み出されるべきデータの存在を示し、上記ステータスレジスタは、上記データネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶するシステム。
【請求項１９】
上記受信バッファは、上記ＰＨＹ回路を介して上記データネットワークに接続された請求項１８記載のシステム。
【請求項２０】
上記通信レジスタは、上記ＰＨＹ回路の動作を制御する少なくとも１つの信号を記憶する媒体非依存インターフェースレジスタをさらに含み、上記ホストコンピュータからの信号は、上記データネットワークからデータが読み出されるときに、上記ＰＨＹ回路を制御するために上記媒体非依存インターフェースレジスタから送られる請求項１９記載のシステム。
【請求項２１】
上記通信レジスタは、上記受信バッファに記憶されたバイト数を示す値を記憶するバイト計数レジスタを含み、上記バイト計数レジスタは、上記受信バッファからデータが読み出されたときにデクリメントされる請求項１８記載のシステム。
【請求項２２】
上記ホストコンピュータに常駐するソフトウェアは、上記バイト計数レジスタに記憶された値を検査することと、上記バイト計数レジスタが非ゼロ値を記憶しているとき、上記データレジスタからデータを読み出すこととを含む一連のステップを実行する請求項２１記載のシステム。
【請求項２３】
上記ＰＨＹ回路を介するデータ転送は上記割り込みビットを設定し、
上記割り込みビットは、少なくとも１バイトのデータ幅を有するデータバスを介して、上記ホストコンピュータに読み出される請求項１９記載のシステム。
【請求項２４】
上記ホストコンピュータ上で動作し、データをフレームフォーマットから抽出するソフトウェアをさらに備えた請求項１８記載のシステム。
【請求項２５】
上記ステータスレジスタは、上記ＰＨＹ回路によって設定可能な複数のビットであって、上記データネットワーク上のエラーを識別する複数のビットをさらに含む請求項１９記載のシステム。
【請求項２６】
上記複数のビットは、上記データネットワーク上において不適当な時点で搬送波信号を感知したことを示す搬送波感知ビットを含む請求項２５記載のシステム。
【請求項２７】
上記搬送波感知ビットは、上記ホストコンピュータのプロセッサ内で実行される上記ソフトウェアＭＡＣによって直接的に読み出される請求項２６記載のシステム。
【請求項２８】
ハードウェアが削減されたメディアアクセスコントローラ（ＭＡＣ）を備えたシステムであって、上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ハードウェアＭＡＣは複数の通信レジスタを含み、上記通信レジスタは、データレジスタと、ステータスレジスタと、媒体非依存インターフェースレジスタと、バイト計数レジスタとを有し、
上記データレジスタは受信バッファに接続され、上記データレジスタからの読み出しを繰り返すことにより、データネットワークから受信されたデータが読み出され、
上記ステータスレジスタは少なくとも１つの割り込みビットを含み、上記割り込みビットは、上記データネットワークから受信されかつホストコンピュータを宛先とするデータの存在を示すように設定され、上記割り込みビットは上記ホストコンピュータにより読み出し可能であり、上記ステータスレジスタは、上記データネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶し、
上記媒体非依存インターフェースレジスタは、上記ハードウェアが削減されたＭＡＣに接続されたＰＨＹ回路の動作を制御する少なくとも１つの信号を記憶し、上記ホストコンピュータからの信号は、上記データネットワークからデータが読み出されるときに、上記ＰＨＹ回路を制御するために上記媒体非依存インターフェースレジスタから送られ、
上記バイト計数レジスタは、上記ホストコンピュータに転送するために上記ハードウェアＭＡＣに記憶されたバイト数を示す値を記憶し、上記バイト計数レジスタは、上記ハードウェアＭＡＣからデータが読み出されたときにデクリメントされ、
上記ソフトウェアＭＡＣは、上記ホストコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記ホストコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成されたシステム。
【請求項２９】
上記ステータスレジスタは、上記ＰＨＹ回路によって設定可能な複数のビットであって、上記データネットワーク上のエラーを識別する複数のビットをさらに含む請求項２８記載のシステム。
【請求項３０】
上記複数のビットは、上記データネットワーク上において不適当な時点で搬送波信号を感知したことを示す搬送波感知ビットを含む請求項２９記載のシステム。
【請求項３１】
上記搬送波感知ビットは、上記ホストコンピュータのプロセッサ内で実行される上記ソフトウェアＭＡＣによって直接的に読み出される請求項３０記載のシステム。
【請求項３２】
ネットワークと、
上記ネットワークに接続されたクライアントコンピュータと、
上記クライアントコンピュータを上記ネットワークに接続するネットワークインターフェースアダプタとを備えた装置であって、
上記ネットワークインターフェースアダプタは、ハードウェアが削減されたメディアアクセスコントローラ（ＭＡＣ）を有し、
上記ハードウェアが削減されたＭＡＣは、物理的インターフェースを介して上記ネットワークに接続され、上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ハードウェアＭＡＣは、
上記物理的インターフェースと上記クライアントコンピュータとの間の通信をバッファリングするメモリと、
上記ネットワークインターフェースアダプタと上記クライアントコンピュータとの間の通信を処理するレジスタインターフェースとを有し、上記レジスタインターフェースはデータレジスタとステータスレジスタとを備え、上記ステータスレジスタは、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つの割り込みビットを有し、上記ステータスレジスタは、上記ネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶し、上記ステータスレジスタは上記クライアントコンピュータから読み出し可能であり、
上記ソフトウェアＭＡＣは、上記クライアントコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記クライアントコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成された装置。
【請求項３３】
上記通信は、上記ハードウェアＭＡＣと、上記クライアントコンピュータ上で実行される上記ソフトウェアＭＡＣとの間における、命令、ステータス情報、又はエラー情報の通信を含む請求項３２記載の装置。
【請求項３４】
上記バッファリングするメモリは、送信バッファリングのメモリと受信バッファリングのメモリとを備えた請求項３２記載の装置。
【請求項３５】
コンピュータネットワークと、
上記コンピュータネットワークに接続されたクライアントコンピュータと、
上記クライアントコンピュータを上記コンピュータネットワークに接続するネットワークインターフェースアダプタとを備えたシステムであって、
上記ネットワークインターフェースアダプタは、ハードウェアが削減されたメディアアクセスコントローラ（ＭＡＣ）を有し、
上記ハードウェアが削減されたＭＡＣは、物理的インターフェースを介して上記コンピュータネットワークに接続され、上記ハードウェアが削減されたＭＡＣは、ソフトウェアＭＡＣとハードウェアＭＡＣとを含み、
上記ハードウェアＭＡＣは、
上記物理的インターフェースと上記クライアントコンピュータとの間の通信をバッファリングするメモリと、
上記ネットワークインターフェースアダプタと上記クライアントコンピュータとの間の通信を処理するレジスタインターフェースとを有し、上記レジスタインターフェースはデータレジスタとステータスレジスタとを備え、上記ステータスレジスタは、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つの割り込みビットを有し、上記ステータスレジスタは、上記コンピュータネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶し、上記ステータスレジスタは上記クライアントコンピュータから読み出し可能であり、
上記ソフトウェアＭＡＣは、上記クライアントコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記クライアントコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成されたシステム。
【請求項３６】
上記通信は、上記ハードウェアＭＡＣと、上記クライアントコンピュータ上で実行される上記ソフトウェアＭＡＣとの間における、命令、ステータス情報、又はエラー情報の通信を含む請求項３５記載のシステム。
【請求項３７】
上記バッファリングするメモリは、送信バッファリングのメモリと受信バッファリングのメモリとを備えた請求項３５記載のシステム。
【請求項３８】
送信バッファにより、ホストコンピュータからのデータを受信し、上記データを送信データ線を介してデータネットワークの物理的リンクに送信する前に当該データを一時的に記憶することと、
受信バッファにより、データを受信し、上記データをコンピュータに送る前に当該データを一時的に記憶することと、
上記受信バッファに接続されたデータレジスタからの読み出しを繰り返すことにより、上記受信バッファからデータを読み出させることと、
レジスタインターフェースのステータスレジスタを用いて、上記データネットワークの物理的リンクにおけるデータ衝突を識別するデータを記憶することとを含む方法であって、上記レジスタインターフェースはさらにデータレジスタを有し、上記ステータスレジスタは、読み出し動作及び書き込み動作の少なくとも一方における割り込み状態を示す少なくとも１つの割り込みビットを有し、
上記送信バッファ、受信バッファ、及びレジスタインターフェースは、ハードウェアが削減されたメディアアクセスコントローラ（ＭＡＣ）として提供され、
上記ハードウェアが削減されたＭＡＣはさらに、ソフトウェアＭＡＣを有し、
上記ソフトウェアＭＡＣは、上記ホストコンピュータのメモリに記憶され、上記ソフトウェアＭＡＣは、上記ホストコンピュータのプロセッサによって実行されたとき、検出されたエラー状態に対してエラー処理機能を実行することを含む１つ又は複数のメディアアクセス制御通信機能を上記プロセッサに実行させるように構成された方法。
【請求項３９】
上記送信バッファは、ＰＨＹ回路を介して上記データネットワークに接続される請求項３８記載の方法。
【請求項４０】
上記データレジスタ及び上記ステータスレジスタは、複数の通信レジスタからなるアレーに含まれる請求項３８記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータとネットワークとの間でのアダプタ及びインターフェース、接続法に関する。特定の一例として、本発明はコンピュータと、IEEE802.3ないしその拡張版の如くの業界規格プロトコルに準拠して機能するコンピュータネットワークとの間でのアダプタと通信方法について説明する。
【０００２】
【従来の技術】
本発明は、以後、クライアントコンピュータを称するコンピュータをネットワークに接続するに当って利用するアダプタに関する。本発明を説明するに当っては、一般に「イーサネット」(登録商標。以後、同様)として知られている、現に使われている最も一般的なネットワーク構成のうちの１つに対応して設計された特定の実装を参照する。この種のネットワークでは、一般に、IEEE802.3規格、またはその修正規格或いはその拡張版に準拠している。簡単に説明すれば、これらの全てのネットワークは、必ずしも正確な名称ではないが、IEEE802.3ネットワークと呼ばれている。これらのネットワークでは、そのために開発されているアダプタないしネットワークインターフェースコントローラと同様に、本発明を理解する上での骨組を構成している。
【０００３】
ローカルエリアネットワークにおけるクライアントコンピュータは、同軸ケーブルや、シールド無しのより対線或いはシールドされたより対線の如くの物理的リンクを介して接続されているのが通常である。情報は、プロトコルにより定義される多数のデータ構造のうちのいずれか１つと、最小フレーム長から最大フレーム長までの範囲にわたるデータ量とを有するフレームを単位として、クライアントコンピュータにより物理的リンク上に送信される。IEEE802.3プロトコルの最も簡単な形態では、一度に一台のクライアントコンピュータだけが情報を個別の物理的リンクを介して送信できるようにしている。二台のクライアントコンピュータが同時に、或いは、異なったメッセージ信号の間で干渉が起こるほど時間的に密接して物理的リンクにデータを送信するようなことでもあれば、送信データは汚損してしまい、廃棄しなければならなくなる。このような事態を衝突と言うが、クライアントコンピュータの方で検出されるべきである。IEEE802.3ネットワークでは、物理的リンクへのアクセスを制御するのに搬送波感知多重アクセス／衝突検出(carrier sense multiple access/collision detection)(CSMA/CD)を利用している。従って、クライアントコンピュータが物理的リンクへメッセージを送るに先立って、クライアントコンピュータが物理的リンクに搬送波信号があるかどうかを先ず検出する。物理的リンクに搬送波信号があれば、その搬送波信号がなくなり物理的リンクが使えるようになるまで、クライアントコンピュータはメッセージ送信を待機することになる。
【０００４】
他方、クライアントコンピュータが物理的リンクが使えると判断して始めて、物理的リンクへ、そしてネットワークへとメッセージ送信ができるようになる。クライアントコンピュータは物理的リンクを監視して、その物理的リンクを介してメッセージを送信する際に生じる可能性のあるすべての衝突を検出する。送信側コンピュータは送信後でも、その後のメッセージ送信が続行して目的地に到達するまで送信側コンピュータが待機している間でさえ、衝突が発生しているかどうかを監視し続けるのである。その過程で衝突が検出されると、クライアントコンピュータは、少なくとも最小フレーム長に相当する時間間隔だけ送信が続行できるように、時折「妨害シーケンス」を呼ばれている信号を送信し続ける。その後、クライアントコンピュータは所定のランダム時間だけ休止して、データをもう一度送信するために物理的リンクへのアクセスを得るように試みる。このように物理的リンクへのアクセスを試行するクライアントコンピュータは、全て同じようにバックオフ・アルゴリズムを実行しているが、待機時間はクライアントコンピュータごとに異なっていると共に、ランダムに割り当てられているから、一方のクライアントコンピュータが物理的リンクへアクセスでき、待機している他方のコンピュータはその後でネットワークにアクセスできると言った具合になっている。
【０００５】
情報は一般には、イーサネットまたはその他のCSMA/CDネットワークでの送受信に適するように纏め上げられている。図１は、イーサネット用フレームのためのデータフレームの構造を示し、図２は、IEEE802.3規格で規定のフレームのためのデータフレームの構造を示している。両方のネットワークでは、受信側にフレームが送られていることを知らせるのに、「１」と「０」が交互するパターンからなるプリアンブル(preamble)を利用している。イーサネット用フレームにおけるプリアンブル(図１)には、IEEE802.3ネットワークで定義付けられているフレームバイト・フィールドの先頭に相当する余分のバイトが含まれている。フレームバイトの先頭(図２におけるＳＯＦ)は「１」ビットが二つ続いて終わっており、物理的リンクと接続したステーションのフレーム受信と同期を取るのに使われる。
【０００６】
これらのネットワークでの情報のフレーム構造にはメッセージの宛先アドレスと送信元アドレスとが含まれている。宛先アドレスは一台の相手方コンピュータ(ユニキャスト)、一群のコンピュータ(マルチキャスト)、ネットワークにある全てのコンピュータ(ブロードキャスト)の何れであってもよい。送信元アドレスは特定の送信側コンピュータである。また、イーサネット用フレームには、メッセージを受信する上層アプリケーションのプロトコルを識別する種類フィールドが含まれている。このフィールドは、IEEE802.3ネットワーク用のフレームにはなく、その代わりに、メッセージにおけるデータのバイト数を表す長さフィールドで置き換えられている。両方のフレーム構造には、可能な長さ範囲内の任意長のデータフィールドが備わっており、その後に、４バイトの巡回冗長検査値であるフレームチェックシーケンス（ＦＣＳ）が続いている。ＦＣＳは送信側のコンピュータによって生成され、損傷を受けたフレームを検査するために受信側の装置によって再計算される。
【０００７】
CSMA/CDネットワークを介してデータフレームを送受信しているクライアントコンピュータは、搬送波感知、衝突検出、そしてその他のデータ送受信制御を実行するためにネットワークインターフェースコントローラを利用している。データ送信の制御には、フレーム・フォーマットの生成とＦＣＳバイトの算出とが含まれている。他方、データ受信制御には、フレームの検出と、メッセージがそのコンピュータ宛のものかどうかを判定する宛先アドレス調査と、フレームが有効なものかどうかを判定するＣＲＣないしその他のフレーム検査手順とが含まれている。フレームに対してその他の解析が行われることもあり、また、データフレームないし受信動作にエラーがあれば、斯かる解析が行われなければならないこともある。例えば、送信中にエラーが検出された場合は、情報が再送信されなければならない場合がある。これら全ての処理は従来公知であって、クライアントコンピュータをローカル・エリアCSMA/CDネットワークにリンクするアダプタないしコントローラによって実行されている。
【０００８】
ネットワークインターフェースコントローラは、特定用途向け集積回路(ＡＳＩＣ)の如くの集積回路として実現している。米国特許第5,872,920号に開示されているＡＳＩＣでのイーサネットコントローラの構成例を図３に概略的に示す。ネットワークコントローラＡＳＩＣ１０はホスト側コンピュータシステムのバス２０と、ネットワークの物理的リンク３０の一部をなすより対線ないし同軸ケーブルとのインターフェースを取る。物理的インターフェースからの情報の送受信はトランシーバ４０により行われるか、または、アタッチメント装置型インターフェース４２を介して行われる。エンコーダ（符号化器）４４は、物理的リンク３０を介して送信される情報を符号化し、デコーダ（復号化器）４６は、この物理的リンク３０から受信された情報を復号化する。一般に、IEEE802.3ネットワークではマンチェスター型符号化器、復号化器が使われている。
【０００９】
コントローラ５０はマイクロコントローラやその他のプロセッサでもよいが、このコントローラ５０は、一般に、適当な送信制御プログラム５２と受信制御プログラム５４、または、状態機械(state machine)を利用して送受信動作を制御するＡＳＩＣ１０内の中心部として使われている。これらのプログラムで、CSMA/CDネットワークからデータを送受信するのに必要な種々のデータ制御動作を処理しており、例えば物理的媒体上での衝突によるエラー状態を処理して必要に応じてそのデータを再送信することもそのデータ制御動作に含まれている。IEEE802.3規格の如く該当する規格を実現するのに望まれている機能の大部分は、このコントローラ５０において実行されている。このコントローラ５０に対して入出力するデータは送信側ＦＩＦＯ５６と受信側ＦＩＦＯ５８によりバッファされる。ホストコンピュータのバス２０へのデータ送信を含むホストコンピュータとの通信は、ホスト側インターフェース６０によって管理される。EEPROM６２に保存されているデータセットないしプログラムを書き換えるか、または更新することでホスト側インターフェース６０をアップデートする手段も使われている。これらの回路についてのもっと詳しい説明や機能などについては、本願明細書の一部をなすものとしてここに挙げる前掲の米国特許第5,872,920号に開示されている。
【００１０】
尚、図３に示したネットワークインターフェースコントローラは一つのＡＳＩＣとして実装されたものとして示したが、それ以外の構成も周知である。例えば、特定のネットワークの物理的な構成(磁気ドライブ装置やデジタル/アナログ回路、アナログ/デジタル回路などを含む)は大いに変化することから、エンコーダやデコーダ、トランシーバ、さては物理的リンクに対するその他のインターフェースなどを専用チップに組み込むのが望ましい。このアーキテクチャは、より大きな柔軟性を可能にする別個のＰＨＹチップとして実装されてもよく、これは多くの場合、より集積化された単チップ型のネットワークインターフェースコントローラを利用するよりも費用対効果を大きくする。別個のＰＨＹチップを提供する実装では、第二のチップ、すなわち媒体アクセスコントローラ（ＭＡＣ）チップ上に、他の態様のネットワークコントローラを設けることが一般的である。図３に示したネットワークコントローラのＭＡＣは、コントローラ又はプロセッサ５０をそのプログラムとともに含み、バッファメモリを含み、さらに、多くの場合にホスト側インターフェース６０を含む。
【００１１】
【発明が解決しようとする課題】
図３に示したＡＳＩＣ１０の如くの集積回路が他のネットワークインターフェースコントローラにおいて得られる機能を増大するのに、多大な努力が払われている。例えば、付加的な機能と柔軟性をネットワークインターフェースに組み込むことができれば、ネットワークの通信規格の改善策や修正事項に対応させることができる。現今、基本IEEE802.3技術の高速化版が注目されている。
【００１２】
【課題を解決するための手段】
本発明の好ましい実施の形態により、低コストであってかつネットワークに対して互換性を有するコンピュータに良好に利用できる、簡単化されたコントローラが得られる。本発明は、比較的簡単なインターフェース構造を提供すると共に、ホストコンピュータのプロセッサでもっと沢山のネットワークインターフェース制御機能が実行できるようにすることで、ネットワークインターフェースを低コストにして、高度に柔軟なものにしている。
【００１３】
本発明のある一面では、少なくとも一つの送信データ線と接続した送信バッファを有するコンピュータ通信システムを提供している。送信バッファにはホストコンピュータからのデータを受信して、そのデータを送信データ線を介してデータネットワークの物理的リンクへ送信するに先だって一時的に記憶するようになっている。受信バッファも少なくとも一本の受信データ線に接続してあって、この受信データ線を介してデータネットワークの物理的リンクからデータを受信すると共に、そのデータをコンピュータに提供するに先立って一時的に記憶するようになっている。また、通信レジスタのアレーが設けられている。このアレーは、受信バッファと接続したデータ・レジスタを備え、データ・レジスタからくり返して読み取ることでデータが受信バッファから読み出される。また、このアレーには、ネットワークの物理的リンクにおけるデータの衝突を識別するデータを記憶するステータス・レジスタも備わっており、このステータス・レジスタはホストコンピュータから読み出される。また、このステータス・レジスタには、読出し動作と書込み動作の内の少なくとも一方における割り込み状態を表す少なくとも一つのビットが含まれている。
【００１４】
本発明の別の面では、データネットワークからデータを受信してそのデータをホストコンピュータに提供するに先立って一時的に保存するように接続した受信バッファを含む媒体アクセスコントローラを備えたコンピュータ通信システムを提供している。媒体アクセスコントローラは、受信バッファと接続したデータ・レジスタを含む通信レジスタを有しており、このデータ・レジスタから繰り返して読み出すことでデータが受信バッファから読み出される。この通信レジスタは、少なくとも一つの割込みビットを記憶するステータス・レジスタを備えている。割込みビットは、データネットワークから受信した、ホストコンピュータ宛のデータがあることを示すべく設定されているものであって、この割込みビットは、読み出すべきデータがあることを示すためにホストコンピュータにより読み出される。
【００１５】
本発明のまた別の面によれば、複数の通信レジスタを含む媒体アクセスコントローラを備えたコンピュータ通信システムが提供されている。好ましくは、この通信レジスタは、受信バッファと接続されたデータ・レジスタを含むのが望ましく、これによりデータ・レジスタから繰り返して読み出すことでデータネットワークから受信したデータを読み出すことができる。ステータス・レジスタには少なくとも一つの割込みビットが記憶されていて、この割込みビットはデータネットワークから受信した、ホストコンピュータ宛のデータがあることを示すように設定されており、ホストコンピュータにより読み出されるようになっている。媒体非依存型インターフェースレジスタも備わっていて、このレジスタには媒体アクセスコントローラと接続したＰＨＹ回路の動作を制御する少なくとも一つの信号が記憶されており、ホストコンピュータからの信号が、データネットワークからデータが読み出されるに伴ってＰＨＹ回路を制御すべくこの媒体非依存型インターフェース・レジスタから送られるようになっている。バイト計数レジスタには、ホストコンピュータへの転送に備えて媒体アクセスコントローラに保存のバイト数を表す値が記憶されており、媒体アクセスコントローラからデータが読み出される都度、このバイト計数レジスタの値が減っていく。
【００１６】
コンピュータとネットワークとの間の通信は従来よりネットワークインターフェースコントローラ(ＮＩＣ)またはアダプタを介して行われている。本発明の好ましい実施の形態では、削減されたハードウェアでこのネットワークインターフェースコントローラを実現している。本発明によるアダプタの好ましい面を実現することで、従来のコントローラに比して低コストで、低電力消費型のネットワークインターフェース接続を、コンピュータにもたらすことができる。本発明により、前述のアダプタを、技術変化に対応できる、或いは、特殊用途での解決策に対応するように容易に変えられるようにすることが可能である。
【００１７】
本発明の特に好ましい実施の形態では、ホスト・クライアントコンピュータにおいて、ハードウェアが削減されたＭＡＣに対して、ソフトウェアで実現された大部分のＭＡＣ機能を提供している。より好ましくは、クライアントコンピュータで行われるこのＭＡＣ機能は、クライアントコンピュータにおけるプロセッサにおけるソフトウェアで実現するのが望ましく、特にこのＭＡＣ機能がパソコンのアーキテクチャにおける主プロセッサにおいて実現されるようにするのがもっと望ましい。好ましいＭＡＣ実装のハードウェア部では、ＰＨＹとクライアントコンピュータとの間の通信をバッファするメモリを設けている。本発明に係るＭＡＣの好ましい実施形態のハードウェアはまた、ＭＡＣのハードウェア部と、クライアントコンピュータで実装されたＭＡＣのソフトウェア部との間でのレジスタ駆動型通信のためのレジスタインターフェースを含む。ＭＡＣ機能の大部分をホストコンピュータにあってはソフトウェアで実装することにより、低コスト、低電力消費型にして、柔軟性の大きい好ましいＭＡＣが得られる。
【００１８】
また、本発明は、クライアントないしその他のコンピュータと、IEEE802.3規格に準拠して動作するローカルエリアネットワークの如くのネットワークとの間のインターフェースを提供することもできるものである。本発明の別の面では、IEEE802.3ネットワークを介してコンピュータと一台か、それ以上の他のコンピュータとの間で情報の送受信を行う方法をも提供している。尚、IEEE802.3規格なる用語は、本願明細書においては広義的な意味で用いており、ギガビット・イーサネットを含む現に計画中のネットワークや、今後開発されるその他の修正規格などによるネットワークなどを含む、CSMA/CDネットワークを包含するように用いている。本発明者らは、本発明によるこれらの局面は、他のプロトコルを利用する他のネットワークとインターフェースをとって通信する場合でも利点をもたらすものと確信している。ここで説明する例と説明の大部分は、IEEE802.3ネットワークについてはよく知られていること、また、今のところではIEEE802.3ネットワークとイーサネットネットワークが流行っていることから、IEEE802.3ネットワークを利用して通信を行う場合についてなされている。しかしながら、本発明を説明するに当って用いた特定の用途は、本発明の範囲を限定すべく意図したものではない。
【００１９】
同様なことから、本発明の説明は、現に利用されているIEEE802.3規格プロトコルの枠内で行うものとする。但し、このIEEE802.3規格は更に進展するだろうし、また、後継版に引き継がれることもあるだろう。本発明の大部分はこのようネットワークにも適用しても、利点が損なわれることはないものと思われる。
【００２０】
【発明の実施の形態】
図４は、ネットワークとの間で情報の送受信を行うクライアントコンピュータ７０のアーキテクチャの概略図を示す。データネットワークには、クライアントコンピュータに対して送受信される実際のデータ信号を搬送するより対線ないし同軸ケーブルの如くの物理的リンクを含んでいる。クライアントコンピュータ７２は、図４にあってはＰＨＹ７２の如くのネットワークモデルの物理層を介してこの物理的リンクと接続してある。ＰＨＹには、物理的リンクへ信号を入れたり、その物理的リンクから信号を取出したりするための磁気回路が備わっていてもよい。また、このＰＨＹ７２には、アナログ/デジタル変換器やデジタル/アナログ変換器、受信した或いは供給されたクロック信号に応じて物理的リンクからの信号を復元する位相同期検出回路などの支援回路類が備わっている。一般に、ＰＨＹ７２には図３に示した如くの符号化及び復号化回路も備わっているのが通常である。
【００２１】
一般に、ＰＨＹ７２は、特定のネットワークプロトコルないし定義に適応されている。従って、ＰＨＹ７２の実施形態は、図４のアーキテクチャの異なったアプリケーション間で著しく変化する可能性があるが、ただし変化するにしてもよく知られ、また理解されたやり方で変化する。ＰＨＹ７２は、個別のチップとしてであるか、それともＡＳＩＣ内に設けられるコアとしてであるかに関わらず、異なるネットワーク環境における多数の形式で商業的に入手可能である。
【００２２】
図４に示したネットワークモデルの次の高次レベルは媒体アクセスコントローラ、即ちＭＡＣ７４である。このＭＡＣ７４は広範囲の機能を実現しているが、一般にはデータがネットワークモデルのおけるより上位の階層で直ちに利用できる形になっているように、ＰＨＹ７２から提供されたデータビットのストリームを先ず解析してフォーマット設定する役目をなす。このＭＡＣ７４は、クライアントコンピュータ７０のオペレーティング・システム７６とインターフェースをとり、ネットワークからの受信データを記憶する。一般にこのＭＡＣ７４はクライアントコンピュータにあってオペレーティング・システム７６と通信するアプリケーションプログラム７８に応答して、送信するメッセージ又は情報に対するリクエストを生成する。
【００２３】
ＭＡＣの機能には、沢山の異なった様相の通信が含まれている。例えば、ネットワークからのデータは４ビットパラレル・フォーマットでＰＨＹ７２から送られることがある。この場合、ＭＡＣはこの４ビットパラレルデータを、クライアントコンピュータに適したバイトないしワード、例えば８ビットバイトか３２ビットワードに再フォーマット設定するのが望ましい。ＭＡＣに含まれるその他の様相の通信には、アドレス認識、フレーム認識、フレーム解析、衝突やその他のネットワーク上のエラーの検出と管理が含まれている。本願明細書の従来技術のセクションで説明し、図３にも示したように、従来ではこのＭＡＣ７４は、単一の集積回路上で種々の機能を行うようになっている。そのような従来のＭＡＣでは、これらの機能を実行する状態機械ないしプログラムを実行することのできるプロセッサないしその他の形式の論理装置が備わっている。
【００２４】
本発明の好ましい実施形態は、簡単化されたＭＡＣ、少なくとも回路の観点からして簡単化されたＭＡＣを提供する。大抵の実装にあっては、本発明の実施の形態は、簡単化されたハードウェアＭＡＣと、好ましくはホストプロセッサ内にある、相補的なソフトウェアＭＡＣとを含むものであって、これらのハードウェアＭＡＣ及びソフトウェアＭＡＣは、互いに組み合わさって、図３に示したＭＡＣによって実行されるものより多くの機能ではないにしてもその大部分の機能を提供する。言うまでもないことではあるが、本発明の一実施の形態によりＭＡＣを実現すると、ＭＡＣ機能が足りない状態で、本発明の様相を実践することになることが考えられる。図３に示したＭＡＣとは異なって、本発明の好ましい様相によるＭＡＣでは、最小限の回路群を備えて、クライアントコンピュータ７０のプロセッサにおいて大部分のＭＡＣ機能を実行することができるのである。この場合、本発明によるＭＡＣには、パソコンや類似のクライアントコンピュータのマイクロプロセッサにより実行されるべきソフトウェアとして実現されるその他の様相のＭＡＣ機能と共に、バッファメモリと通信レジスタセットとを備えている。
【００２５】
図５は、本発明によるネットワークインターフェース・アダプタ７９の特に好ましいハードウェア構成を示す。図示のように、アダプタは、ターゲットのネットワークの物理的リンクに適当なＰＨＹ７２と、ハードウェアが削減されたＭＡＣとを備えている。ハードウェアが削減されたＭＡＣには、データがＰＨＹ７２に対して送受信されるに伴ってそのデータをバッファするメモリを備えており、このメモリとしては、１フレームのデータを受信するのに要する全時間だけにわたって発生する受信エラー信号を記憶するラッチが挙げられる。図示した特に好ましいＭＡＣの残りのハードウェアの様相には、命令、ステータス情報、エラー情報の送受信を取り扱い、アダプタとクライアントコンピュータとの間でのデータ送受信を促進する一群のレジスタが含まれている。従って、図示のバス・レジスタ・インターフェース８０には、大部分の通信機能がクライアントコンピュータにおいて、好ましくはクライアントコンピュータのプロセッサにおいて行われるように、完全ではあるが比較的最小限の通信用及びデータ用レジスタが備わっているのが望ましい。
【００２６】
図５において、上の二本の線はＰＨＹ７２における媒体非依存型インターフェース(ＭＩＩ)との通信のための信号線である。信号線MDCKは、インターフェース８０からＰＨＹ７２にデータクロック信号を供給するものであり、ＰＨＹ７２のＭＩＩに対するデータの読出しと書込みに利用する。信号線MDIOは、バス・レジスタ・インターフェース８０とＰＨＹ７２との間でのＭＩＩ通信のためのシリアルデータ線である。MDIOを介して送受信される命令やその他の情報の種類は、既に知られているプロトコルであり、産業界で標準化されている媒体非依存型インターフェースの要件に準拠するものである。
【００２７】
図５においてその次の二本の線は、ＰＨＹ７２からバス・レジスタ・インターフェース８０へのネットワーク状態を送信するものである。線COLは、ＰＨＹ７２から物理的リンクを介してデータを送信しているときに、当該物理的リンクで衝突が検出された場合に信号が送信される信号線である。線CRSは、メッセージが受信されているときに物理的リンクに搬送波信号(搬送波感知)があることを示す信号が供給される信号線である。COL線とCRS線上の信号はインターフェース８０内のコマンド/ステータス・レジスタ内に保存されるので、ホスト・クライアントコンピュータはエラー状態を検出して、適切なエラー処理機能を実行できるようになっている。
【００２８】
図５においてまた次の二本の線はＰＨＹ７２からバス・レジスタ・インターフェースへの、物理的リンクから受信したデータの有効性を表す情報の送信路である。線RXERでは、データ受信時でのエラーを表す信号が搬送される。この線RXERを介して送られる信号は、少なくとも１フレームのデータ送信に掛る時間に比べると比較的短寿命の信号になっていることもある。従って、この線に沿ってラッチ８２を設けて、そのフレームのデータの送信が終わった後にバス・レジスタ・インターフェース８０にＰＨＹ７２から発するエラー信号が記憶されるのを確実にするために、当該エラー信号がそのラッチ８２に保存されるようにするのが望ましい。線TXERは、物理的リンクへのデータ送信について同様な機能を行うものである。ＰＨＹ７２とその後の物理的リンクへのデータ送信においてエラーが発生することが分かっている場合、インターフェース８０によりこの線TXERを介して信号が送られる。例えば、線TXERは、ＭＡＣの送信バッファ８８にアンダーフロー・エラーが発生したことを示すのに利用することができる。
【００２９】
図示の実施の形態にあっては、バス・レジスタ・インターフェース８０が８ビット・バイト単位でデータを記憶する。ＰＨＹ７２に対して送受信されるデータは４パラレルビットとして編成されている。従って、ＰＨＹからの４ビットデータを、適当に構築したレジスタ８４において８ビットデータに再フォーマット設定するのが望ましい。このレジスタ８４としては、４ビット・パラレル・シフトレジスタとして示してある。このレジスタ８４からの出力は受信バッファ８６に送られるが、このバッファ８６は、物理的リンクから受信したデータをバッファリングし、その後、当該データは読み出されてバス・レジスタ・インターフェース８０を介してクライアントコンピュータへ送られる。クライアントコンピュータからのデータは８ビット・バイトであって、送信バッファ８８に供給されるが、この送信バッファ８８は、レジスタ９０に供給するに先立ってそのデータをバッファリングする。レジスタ９０は、８ビットデータを連続する４ビットデータアイテムにフォーマット設定して、そのデータアイテムをＰＨＹ７２に供給するものである。
【００３０】
受信バッファ８６と送信バッファ８８とは、好ましくはクライアントコンピュータにおけるレイテンシを吸収するのに適当なサイズのＦＩＦＯ(先入れ先出しメモリ)であるのが望ましい。図５に示したアダプタの役割が、クライアントコンピュータの好ましいマイクロプロセッサにより行われる複数のタスクの内の一つだけであるから、プロセッサが物理的リンクへ送信中、または、当該物理的リンクから受信中のデータを処理する準備が整っていないような事態があり得る。従って、送信側ＦＩＦＯと受信側ＦＩＦＯとは、一般的なレイテンシ遅延時間(latency delay)を吸収するのに充分なサイズであるのが望ましいのである。実地では、適当なバッファのサイズとしては、大凡１パケット相当のサイズ、または、約２０００バイト程度のサイズである。バッファの適当なサイズは、システム設計に従って選定することができる。データを受信するか、送信する必要のあるレートは、アダプタを介して通信する特定のネットワークによって変わるので、バッファのサイズにしても、用途に応じて著しく変わる。
【００３１】
図６に、クライアントコンピュータ１００を一群のより対線１０４を介してネットワーク１０２に接続するアダプタ７９を示す。図示のアダプタ７９は、図５に示した構造を有しているのが望ましく、特に、図５に示したバッファメモリとバス・レジスタ・インターフェース８０とを含む、ハードウェアが削減されたＭＡＣ１０６を構成しているのが望ましい。ハードウェアが削減されたＭＡＣ１０６は、バス１１０を介してクライアントコンピュータ１００のプロセッサ１０８と接続するのが望ましい。また、バス１１０は、レイテンシを最小限にするために所望速度でＭＡＣ１０６に対してデータの出し入れを行うために充分な速度で動作する３２ビット以上のバスであるのが望ましい。ＭＡＣ１０６を、ＰＣＩバスまたは、好ましい実施の形態としてはＰＣバス、カードバス、或いは、PCMCIAカードをノートブック型コンピュータないしその他の携帯型コンピュータに接続するのに適したその他のバスの如くの適当なバスに接続することにより、適当なバス速度が得られる。これらのバスを典型的に実装するだけでも、プロセッサ１０８上で走るソフトウェアとしてＭＡＣ機能の大部分の実装を可能にするのに充分高速になる。アダプタ７９としては、特に携帯型コンピュータで本発明を利用する場合に大きさが小さく、電力消費も少ないのが望ましいのである。
【００３２】
ネットワーク１０２の物理的リンクとの間で情報の送受信が行われる際に、クライアントコンピュータのオペレーティング・システム１１４の少なくとも一部とＭＡＣのソフトウェア部１１６の一部とは、メモリ１１２において利用可能であるものと期待される。図示したメモリ１１２は、部分的にはプロセッサ１０８内に備わり、また部分的には、DRAMのアレー、もしくは、例えばディスクドライブ、フラッシュメモリまたはソリッドステートメモリを含む揮発性の低いメモリのアレーに備わっていてもよい。他の実施の形態としては、図示のメモリ１１２は、それ自体全てがプロセッサ１０８の内部、もしくは外部に備わっていてもよい。このメモリがどのような形で実現されているかに関わらず、ＭＡＣ１１６のソフトウェア部は、ＭＡＣ１０６内の通信レジスタ８０をアドレス指定することにより、プロセッサ１０８内のオペレーティング・システム１１４を介してＭＡＣのハードウェア部と通信できるのが望ましい。
【００３３】
バス・レジスタ・インタフェース８０における通信レジスタは、好ましいレジスタ・アドレス・スキームを利用することでアドレス指定される。図７に示した実施の形態では、合計８個のレジスタを含む最小レジスタ装置をアドレス指定するのに３ビットアドレス信号を利用している。図示のように、４個の下位レジスタに４個のデータ・レジスタを設けているが、次の２個のレジスタとアドレスとは、受信側ＦＩＦＯ８６から読み出すのに使われるバイトの数を記憶するバイト計数レジスタに使うのが望ましい。データ・レジスタについてはその詳細なところを図８に示す。このデータ・レジスタから繰り返して読出しを行うと、受信側ＦＩＦＯ８６からデータが取り出せ、また、このデータ・レジスタに繰り返して書込みを行うと、送信側ＦＩＦＯ８８にネットワーク１０２へ送信すべきデータを書き込むことができる。バイト計数レジスタの詳細なところについては、図９にそれを示す。読取り動作では複数の前記バイト計数レジスタが使用され、このレジスタにより、ネットワーク１０２から受信されるべき残りのデータの有無とその量を示す。受信バッファにデータが書き込まれるにつれて、バイト計数レジスタに記憶されている値が増加するが、受信バッファ８６からデータが読み出される都度、バイト計数レジスタに記憶されている値は減少する。
【００３４】
尚、ネットワークから受信するデータにはエラーデータが含まれていることもあれば、適切なフレームデータが含まれていることもある。従って、ネットワークから受信すべきデータが別に残っているかどうかを判定するのに、転送されたデータそのものを拠所とするのは一般には望ましくないことである。
【００３５】
図１０と図１１とは、書込み動作と読出し動作のためのコマンド/ステータス・レジスタをそれぞれ示しており、両レジスタは同一アドレスを有しているが、その定義は書込み動作と読出し動作とで異なっている。ビット０は、アダプタからクライアントコンピュータのオペレーティング・システムに対する書込み動作での割り込みを可能とするものとなっている。コマンド/ステータス・レジスタのビット７は、アダプタをリセットすべくクライアントコンピュータにより設定される。このビットは、アダプタのリセットと共に自動的にクリアーする。
【００３６】
ＭＡＣソフトウェア１１６がアダプタを読み取っていると、コマンド/ステータス・レジスタ(図１１)は、割込み待機ビットとしてビット０を利用して、ホスト・クライアントコンピュータに読出しが終わるまで待機するように通知する。このＭＡＣソフトウェア１１６はコマンド／ステータス・レジスタを読み取って、割込みに伴ってどんな処理が求められているのか、また、読み出すべきデータ(ＢＣ)があるかどうか、処理すべきエラー(ＣＯ、ＣＲＳ)があるかどうかなどを判定する。いったん割込みビットが読み出されると、それがリセットされる。残りのビット１〜３はＰＨＹからの搬送波感知、衝突検出、受信データ有効信号に割り当てられている。バイト計数値ビットＢＣがゼロでない場合、ＭＡＣソフトウェアは受信バッファ８６からデータを読み出すべくデータ・レジスタの読出し動作を開始する。ＣＯＬビットとＣＲＳビットの何れかが有効であれば、ＭＡＣソフトウェア１１６が呼び出されて、バックオフ・アルゴリズムを実行するか(ＣＯＬ)、間違ったデータを受信バッファから書き出してその間違った受信データを破棄するかのいずれかにより、エラー状態を処理する。
【００３７】
図１２は、好ましいバス・レジスタ・インターフェース８０における最後の位置を占めるＭＩＩレジスタでのビットの定義を示している。このＭＩＩ、もしくは、削減されかつ媒体に依存しないインターフェース(ＲＭＩＩ)は、ＰＨＹの動作を制御、監視するのにＭＡＣソフトウェア１１６により利用される。ＭＩＩ情報の伝送は、ＭＩＩレジスタのＭＤビットとＭＤＩＯ線(図５)とＰＨＹのＭＤＩＯピンとを介してそれぞれシリアルに行われる。
【００３８】
ＭＡＣソフトウェア１１６は、アダプタ７９の大部分の動作を制御する。一般に、ＭＡＣソフトウェアは、割込みとデータ転送を処理する低位部(lower level piece)と、より高度ではあるが即時性の低い動作を行う高位部とを含むものとみなすことができる。受信動作は割込みで開始し、割込み動作はＭＡＣソフトウェア１１６の低位部により処理される。オペレーティング・システム１１４がアダプタ７９から割込みを受け取ると、そのオペレーティング・システムはＭＡＣソフトウェアの低位部を呼び出すことになる。
【００３９】
低位部は、コマンド／ステータス・レジスタを読み出して割込み待機ビット(interrupt pending bit)をクリアーする。データがあれば、この低位部は、先ずバイト計数レジスタ(図９)におけるバイト計数値を検査するループを開始する。バイト計数値がゼロであれば、低位部はループを終えてスタンバイ状態へ復帰するが、バイト計数値がゼロでない場合では、データ・レジスタ(図８)からデータが読み出される。このループは、バイト計数値がゼロになるまで実行され、その後、低位部はループを終了し、別の割込みが検出されるまでスタンバイ状態に戻る。
【００４０】
低位部により読み出されたデータはプロセッサ内のバッファか、DRAMに記憶される。ネットワークを編成しまた通信を実行する際に使用するIEEE802.3プロトコル又は他のプロトコルに関連したフレーム定義やその他の処理に応じて、更なる処理が必要になる。例えば、IEEE802.3ネットワークでのデータ・パケットの処理では、プロセッサ１０８がフレームのプリアンブルを検出したり、フレームが有効長であるかどうかを判定するためにフレーム長を検査することがある。プロセッサは、フレームが有効かどうかを判定するに当りＦＣＳデータを利用してフレームを評価する。例えば、ＦＣＳデータがＣＲＣデータであれば、そのデータが有効かどうかを判定するのにプロトコルにより定義付けられている検査多項式(check polynomial)を利用してそのデータに対して多項式除算を行う。これら全ての機能はＭＡＣソフトウェア１１６の高位部が実行する。ＭＡＣソフトウェアは、パケットのアドレスがホスト・クライアントコンピュータに関連したものであるかどうかを検出するためにフィルタリングを行うこともある。
【００４１】
更に、ＭＡＣソフトウェアは、ネットワークプロトコルに従ってネットワーク統計情報を追跡する。この統計情報には、うまく送信できたフレーム数と間違ったフレームの送信頻度とが含まれる。これらの統計情報は、簡易型ネットワーク管理プロトコル（simple network management protocol）に準拠したソフトウェアの如くのネットワーク管理ソフトウェアが利用する。
【００４２】
ネットワークにデータを書込む動作は、ＭＡＣソフトウェア１１６とアダプタ７９との共同作業でもある。ネットワークに供給すべきデータは、ＭＡＣソフトウェアの高位部により適当なフレームにフォーマット設定され、低位部が、巡回冗長検査(ＣＲＣ)データの如くのＦＣＳデータを演算して、このＦＣＳデータとフレームに付加する。データのフレームはＭＡＣソフトウェアの低位部に送られ、そこでデータ・レジスタに、ひいてはアダプタの送信側ＦＩＦＯ８８に書き込まれる。ＭＡＣソフトウェア１１６の低位部は、バッファＦＩＦＯ８８からネットワークにデータが安全に転送されることを確実にするために、送信時にアダプタを監視する。例えば、ＦＩＦＯが満杯で、余分のデータを受信できないとか、ＦＩＦＯが完全に空になっている(アンダーフロー状態にある)かどうかを調べるために、低位部がＦＩＦＯを検査する。また、この低位部は、衝突が起こっているかどうかを判定するためにコマンド/ステータス・レジスタのＣＯＬビットを監視する。
【００４３】
ＭＡＣソフトウェア１１６の高位部は、イーサネットネットワークないしIEEE802.3ネットワークのよく知られている機能を実行する。これらの機能については、従来型のネットワークインターフェースコントローラのプロセッサにおいてソフトウェアまたは状態機械として従来より実現されている。従って、これらの機能をホスト・クライアントコンピュータのマイクロプロセッサないしその他のプロセッサで実行することは、当業者に周知のことである。従って、これらの機能についてはここでは詳細に説明しないものとする。
【００４４】
本発明によるアダプタの取付については、例えば、ターゲットのネットワークに適したＰＨＹも含むPCMCIAカード内に、ハードウェアが削減されたＭＡＣを設けることによって行われる。ホストコンピュータには対応するドライバ・ソフトウェアを、ホストコンピュータのオペレーティング・システムがＭＡＣソフトウェアにアクセスできるようにホストコンピュータにインストールする。
【００４５】
当業者にはここで説明した以外の設計や変形例が想到しうるところである。例えば、図５に示したハードウェアが削減されたＭＡＣは、ＡＳＩＣ内で実装されるコアとして実装してもよく、或いは、ＰＨＹ内に実装してもよい。また、ハードウェアが削減されたＭＡＣは、システム内で個別のコアとしてチップ上に実現してもよく、その場合、システム内で実現したＭＡＣのソフトウェア部はチップのプロセッサに設ける。本発明によれば、ネットワークインターフェース・アダプタに柔軟なアーキテクチャが得られる。従って、本願発明者らは、本発明によるアダプタは、種々のネットワークプロトコルの環境で如何様にも利用できるものと期待する次第である。また、バス・レジスタ・インターフェースには、本発明のハードウェアが削減されたＭＡＣを構築するのに種々の組合せのレジスタで構成することもできる。当該技術において通常の技能を有する者は、本願発明の基本的な教示内容を変更することなく、ここに記載した特定の実施形態に対する多数の変形及び変更が可能であることを理解するであろう。従って、本発明の範囲は、ここに記載した特定の実施形態に限定されるものではなく、むしろ、本発明の範囲は、特許請求の範囲から決定されるべきものである。
【図面の簡単な説明】
【図１】  イーサネットネットワークのフレーム構造を示す。
【図２】  IEEE802.3規格によるネットワークのフレーム構造を示す。
【図３】  チップ上で高度な機能を提供するネットワークインターフェース制御チップを示す。
【図４】  本発明の一面でのアーキテクチャを示す図である。
【図５】  本発明によるネットワークコントローラの実施の形態を示す。
【図６】  クライアントコンピュータをネットワークに接続する図５のネットワークインターフェースコントローラを示す。
【図７】  図５の制御機内に設けた好ましいレジスタセットにおけるレジスタのアドレスと機能を示す。
【図８】  図７のレジスタセットにおけるイーサネットデータ・レジスタの構造と機能を示す。
【図９】  図７のレジスタセットにおけるバイト計数レジスタの構造と機能を示す。
【図１０】  書込み動作のための図７のレジスタセットにおけるコマンド/ステータス・レジスタの構造と機能を示す。
【図１１】  読出し動作のための図７のレジスタセットにおけるコマンド/ステータス・レジスタの構造と機能を示す。
【図１２】  図７のレジスタセットにおけるＭＩＩ(媒体非依存型インターフェース)の構造と機能を示す。
【符号の説明】
１０  ＡＳＩＣ                    ２０  バス
３０  物理的リンク                ４０  トランシーバ
４１  ＡＵＩ                      ４４  エンコーダ
４６  デコーダ                    ５２  送信側制御プログラム
５４  受信側制御プログラム        ５６  送信側ＦＩＦＯ
５８  受信側ＦＩＦＯ              ６０  ホスト側インターフェース
６２  EEPROM                      ７０  クライアントコンピュータ
７２  ＰＨＹ                      ７９  アダプタ
８０  バス・レジスタ・インターフェース
【図１】
0004554863.tif 000002
【図２】
0004554863.tif 000003
【図３】
0004554863.tif 000004
【図４】
0004554863.tif 000005
【図５】
0004554863.tif 000006
【図６】
0004554863.tif 000007
【図７】
0004554863.tif 000008
【図８】
0004554863.tif 000009
【図９】
0004554863.tif 000010
【図１０】
0004554863.tif 000011
【図１１】
0004554863.tif 000012
【図１２】
0004554863.tif 000013