JP2006033010A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2006033010A
JP2006033010A JP2004204168A JP2004204168A JP2006033010A JP 2006033010 A JP2006033010 A JP 2006033010A JP 2004204168 A JP2004204168 A JP 2004204168A JP 2004204168 A JP2004204168 A JP 2004204168A JP 2006033010 A JP2006033010 A JP 2006033010A
Authority
JP
Japan
Prior art keywords
transmission
reception
network
buffer
area
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.)
Withdrawn
Application number
JP2004204168A
Other languages
English (en)
Inventor
Yoshihiro Tate
義宏 舘
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004204168A priority Critical patent/JP2006033010A/ja
Publication of JP2006033010A publication Critical patent/JP2006033010A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 送受信バッファ全体のサイズが極めて小さい場合であっても受信を行うことが可能な半導体集積回路を提供する。
【解決手段】 このネットワークコントローラ2は、送受信バッファ11と、プロトコル処理部12と、ネットワーク受信処理部13と、ネットワーク送信処理部14と、ホスト要求受信処理部15と、ホスト応答出力処理部16とを具備する。送信時において、ネットワーク受信処理部13は、送受信バッファ11内の受信用領域の容量が所定の閾値以上である場合には、送受信バッファ11内に送信用領域を確保する。ホスト要求受信処理部15は、送信データを上位レイヤから受け取って送受信バッファ11内の送信用領域に書き込み、プロトコル処理部12は、送信データにプロトコル処理を行って送信フレームを作成し、ネットワーク送信処理部14は、作成された送信フレームをネットワークN上に送信する。
【選択図】 図2

Description

本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路に関する。
現在、コンピュータ等の機器において、ホストCPU等で構成される上位レイヤとEthernet(登録商標)等のネットワークとの間の通信を行うための半導体集積回路が用いられている。
このような半導体集積回路においては、上位レイヤがネットワークへ送信するための送信データ又は送信パケット、並びにネットワークから受信した受信パケット又は受信データを格納するための送受信兼用の送受信バッファが用いられることがある。
このように、送受信兼用の送受信バッファを用いた場合、送信データ又は送信パケットが多くなり送信用の領域が多くなると、受信用の領域が不足し、受信が行えなくなってしまう可能性がある。
上記のような問題を解決するものとして、双方向の通信を行う端末装置に備えられ、双方向通信の際にデータを一時的に蓄えるべく、端末装置側からの発信パケットを蓄える送信用バッファと、外部からの着信パケットを蓄える受信用バッファとを含む通信バッファを制御するための方法であって、上記発信パケットを蓄える送信用バッファの最大値を制限することにより、上記受信用バッファにあてがうことができるバッファを確保することを特徴とする通信バッファの制御方法が知られている(例えば、特許文献1参照)。
しかしながら、特許文献1に掲載された通信バッファの制御方法は、通信バッファ全体のサイズが極めて小さい場合については考慮されておらず、通信バッファ全体のサイズが極めて小さい場合に通信バッファ全体の使用率が高くなった状況下においては、適切な動作が得られないことが考えられる。
特開平10−178454号公報
そこで、上記の点に鑑み、本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、送受信バッファ全体のサイズが極めて小さい場合であっても受信を行うことが可能な半導体集積回路を提供することを目的とする。
以上の課題を解決するため、本発明に係る半導体集積回路は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、上位レイヤからネットワークへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、ネットワークから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信バッファを具備し、受信時において、送受信バッファ内に受信用領域を確保し、ネットワークから受信した受信フレーム、受信パケット、又は、受信データを送受信バッファ内の受信用領域内に書き込み、送受信バッファ内の受信用領域内に書き込まれた受信フレーム、受信パケット、又は、受信データを上位レイヤに送り、送信時において、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に、送受信バッファ内に送信用領域を確保し、上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って送受信バッファ内の送信用領域に書き込み、送受信バッファ内の送信用領域内に書き込まれた送信データ、送信パケット、又は、送信フレームをネットワーク上に送信することを特徴とする。
この半導体集積回路において、送受信バッファに格納されている送信データ、送信パケット、若しくは、送信フレーム、並びに、受信フレーム、受信パケット、若しくは、受信データに所定のプロトコル処理を行うためのプロトコル処理部と、受信時において、送受信バッファ内に受信用領域を確保し、ネットワークから受信フレーム、受信パケット、又は、受信データを受信して送受信バッファに書き込み、送信時において、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に送受信バッファ内に送信用領域を確保するためのネットワーク受信処理部と、送受信バッファに格納されている送信フレーム、送信パケット、又は、送信データをネットワーク上に送信するためのネットワーク送信処理部と、上位レイヤから送信要求を受けた場合に、送受信バッファ内の受信用領域の容量が所定の閾値以上であるか否かをネットワーク受信処理部に問い合わせ、送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って送受信バッファ内の送信用領域に書き込むホスト要求受信処理部と、送受信バッファ内の受信用領域内に格納されている受信フレーム、受信パケット、又は、受信データを上位レイヤに送るためのホスト応答出力処理部とを更に具備することとしても良い。
また、プロトコル処理部が、TCP/IP(Transmission Control Protocol/Internet Protocol)階層モデルのトランスポート層、インターネット層、又は、ネットワークインタフェース層のプロトコル処理を行うこととしても良い。
また、ARP(Address Resolution Protocol)メッセージ又はTCP制御セグメントを格納するための送信用バッファを更に具備することとしても良い。
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図1は、本発明の第1の実施形態としてのネットワークコントローラを用いたコンピュータの概要を示すブロック図である。このコンピュータ1は、ネットワークNに接続された本発明の一実施形態としてのネットワークコントローラ2と、CPU3と、メモリ4と、表示部5と、入力部6と、HDD(ハードディスクドライブ)7と、インタフェース回路8とを具備する。
図5は、TCP/IP階層モデルの各レイヤとISO(International Organization for Standardization)で制定されたOSI(Open Systems Interconnection)参照モデルの各レイヤとのおおよその対応関係を示す図である。
本実施形態においては、ネットワークNは、Ethernet(登録商標)であるものとし、ネットワークコントローラ2は、TCP/IP階層モデルのネットワークインタフェース層、インターネット層、及び、トランスポート層を担うものとする。
また、CPU3、メモリ4、表示部5、入力部6、HDD7、及び、インタフェース回路8は、TCP/IP階層モデルのアプリケーション層を担うものとする。例えば、HDD7には、ウェブブラウザプログラム、メールクライアントプログラム等が記録されており、CPU3は、メモリ4を作業領域として使用しながら、これらのプログラムを実行する。
図2は、ネットワークコントローラ2の内部構成を示す図である。図2に示すように、ネットワークコントローラ2は、送受信バッファ11と、プロトコル処理部12と、ネットワーク受信処理部13と、ネットワーク送信処理部14と、ホスト要求受信処理部15と、ホスト応答出力処理部16とを具備する。これらの送受信バッファ11、プロトコル処理部12、ネットワーク受信処理部13、ネットワーク送信処理部14、ホスト要求受信処理部15、及び、ホスト応答出力処理部16は、バスBによって相互に接続されている。
送受信バッファ11は、上位レイヤ(CPU3等)からネットワークNへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、ネットワークNから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信兼用のバッファメモリである。
プロトコル処理部12は、TCP/IP階層モデルのネットワークインタフェース層、インターネット層、及び、トランスポート層のプロトコル処理を行う。本実施形態においては、具体的には、プロトコル処理部12は、送受信バッファ11に格納されている送信データをTCPセグメント、IPパケット、Ethernet(登録商標)フレームに順次変換し、送受信バッファ11に書き込む。また、プロトコル処理部12は、送受信バッファ11に格納されているEthernet(登録商標)フレーム(ネットワークNから受信したEthernet(登録商標)フレーム)を、IPパケット、TCPセグメント、受信データに順次変換し、送受信バッファ11に書き込む。なお、プロトコル処理部12は、TCPレベルの再送制御、順序制御(複数のTCPセグメントが順序通りに到着しなかった場合に、正しい順序に整列する)、誤り訂正等も行う。
ネットワーク受信処理部13は、ネットワークNからEthernet(登録商標)フレームを受信して送受信バッファ11に書き込む。なお、ネットワーク受信処理部13は、送受信バッファ11の内の受信用に割り当てられてい領域の容量を管理する。
ネットワーク送信処理部14は、プロトコル処理部12によって生成され送受信バッファ11に格納されているEthernet(登録商標)フレームをネットワークN上に送信する。
ホスト要求受信処理部15は、CPU3等からの送信要求(送信リクエスト)、送信データ等を受け取る。
ホスト応答出力処理部16は、ネットワークNから受信した受信データ等をCPU3等に出力する。
なお、ネットワークコントローラ2は、半導体集積回路として構成することとしても良い。
次に、ネットワークコントローラ2の動作について、詳細に説明する。
まず、受信時におけるネットワークコントローラ2の動作について説明する。受信時において、ネットワーク受信処理部13は、送受信バッファ11内に受信領域を適宜確保しながら、ネットワークNからEthernet(登録商標)フレームを受信して、送受信バッファ11内の受信領域に書き込む。送受信バッファ11内に書き込まれたEthernet(登録商標)フレームは、プロトコル処理部12によって、IPパケット、TCPセグメント、受信データに順次変換され、ホスト応答出力処理部16によって上位レイヤ(CPU3等)に出力される。
次に、送信時におけるネットワークコントローラ2の動作について説明する。送信時において、まず、上位レイヤ(CPU3等)は、送信リクエストをネットワークコントローラ2内のホスト要求受信処理部15に送る。
ホスト要求受信処理部15は、送信リクエストを受けると、ネットワーク受信処理部13に、送受信バッファ11の内の受信用に割り当てられている領域の容量を問い合わせる。
ネットワーク受信処理部13は、ホスト要求受信処理部15から問い合わせを受けると、送受信バッファ11の内の受信用に割り当てられている領域の容量(現に受信用に使用されている領域の容量、今から受信するために予め確保されている領域の容量を含む)が所定の閾値以上であるか否かをチェックする。
そして、送受信バッファ11の内の受信用に割り当てられている領域の容量が所定の閾値以上である場合には、ネットワーク受信処理部13は、送受信バッファ11内に送信用の領域を確保するとともに、送信が可能である旨をホスト応答出力処理部16を介して上位レイヤに通知する。一方、送受信バッファ11の内の受信用に割り当てられている容量が所定の閾値以上でない場合には、ネットワーク受信処理部13は、送信が可能でない旨をホスト応答出力処理部16を介して上位レイヤに通知する。
上位レイヤは、送信が可能である旨の通知をホスト応答出力処理部16から受けると、送信データをホスト要求受信処理部15に送り、ホスト要求受信処理部15は、送信データを送受信バッファ11内の送信用に確保された領域に書き込む。
送受信バッファ11に送信データが書き込まれると、プロトコル処理部12が、送受信バッファ11に格納されている送信データをTCPセグメント、IPパケット、Ethernet(登録商標)フレームに順次変換し、ネットワーク送信処理部14が、このEthernet(登録商標)フレームをネットワークN上に送信する。
このように、ネットワークコントローラ2によれば、受信時において、送受信バッファ11内の領域を適宜確保しながら、ネットワークNからEthernet(登録商標)フレームを受信することができる。また、ネットワークコントローラ2によれば、送信時において、送受信バッファ11の内の受信用に割り当てられている領域の容量が所定の閾値以上である場合に、送受信バッファ11内に送信用の領域を確保して送信処理を行い、送受信バッファ11の内の受信用に割り当てられている領域の容量が所定の閾値以上でない場合には送信処理を行わない。これにより、送受信バッファ11内の受信用の領域を優先して確保し、受信処理を優先して行うことができる。これは、送受信バッファ11全体の容量が小さい場合に、特に有効である。
なお、所定の閾値を受信データの量等により動的に変更することとしても良い。
また、送受信バッファ11の内の送信用に割り当てられている領域の容量については、特に制御する必要がなく、管理不要である。
次に、本発明の第2の実施形態について説明する。
図3は、本発明の第2の実施形態としてのネットワークコントローラ10の内部構成を示す図である。図2に示すように、ネットワークコントローラ10は、送受信バッファ11と、プロトコル処理部12と、ネットワーク受信処理部13と、ネットワーク送信処理部14と、ホスト要求受信処理部15と、ホスト応答出力処理部16と、ARP用バッファ17とを具備する。これらの送受信バッファ11、プロトコル処理部12、ネットワーク受信処理部13、ネットワーク送信処理部14、ホスト要求受信処理部15、ホスト応答出力処理部16、及び、送信専用バッファ17は、バスBによって相互に接続されている。
送信専用バッファ17は、ARP(Address Resolution Protocol)メッセージ等の送信専用のバッファメモリである。
なお、ネットワークコントローラ10は、半導体集積回路として構成することとしても良い。
先に説明したネットワークコントローラ2においては、送受信データが送受信バッファ11全体の容量に対して大量にある場合に、送信処理がロックされてしまうことが生じ得る。
例えば、あるリモートホストとの間で通信を行う場合に、送受信バッファ11の容量限界(フリーエリアが約0となる)まで受信用及び送信用領域を確保した上で送信しようとすることが考えられる。この場合に、そのリモートホストのMAC(Media Access Control)アドレスが不明であると、ARP(Address Resolution Protocol)メッセージをネットワーク上にブロードキャスト送信する必要がある。しかしながら、送受信バッファ11の容量限界まで受信用及び送信用領域が確保されてしまっており、ARPメッセージ送信用の領域を送受信バッファ11内に確保することができないので、ARPメッセージのブロードキャスト送信を行うことができず、送信処理がロックされてしまうこととなる。または、送信処理がキャンセルされてしまい、送受信バッファ11内の既に確保済みの送信用領域を開放しなければならなくなる。
ネットワークコントローラ10は、このような問題が生ずることを防止することを可能とするものである。すなわち、ネットワークコントローラ10においては、送受信バッファ11の容量限界まで受信用及び送信用領域を確保した上で送信しようとする場合に、リモートホストのMAC(Media Access Control)アドレスが不明であるとき、送信専用バッファ17内にARPメッセージを作成し、ネットワークN上にブロードキャスト送信することができる。
図4は、ARPメッセージのフォーマットを示す図である。図4に示すように、ARPメッセージは、ハードウェア種別(2バイト)、上位プロトコル(2バイト)、HLEN(Hardware address LENgth:1バイト)、PLEN(Protocol address LENgth:1バイト)、動作(2バイト)、送信元MACアドレス(6バイト)、送信元IPアドレス(4バイト)、あて先MACアドレス(6バイト)、あて先IPアドレス(4バイト)の計28バイトである。従って、送信専用バッファ17の容量は、28バイトあれば良い。
なお、ARP要求が重複した場合には、待ち行列につないで、順次処理すれば良い。
また、送信専用バッファ17は、ARPメッセージ送信用に限らず、TCPの制御セグメント(データを含まず、ACK、SYN、又は、FINフラグとオプションのみを含むセグメント)の送信用として使用することとしても良い。
また、送受信バッファ11と送信専用バッファ17とを1個のRAMで構成することとしても良い。
本発明は、上位レイヤとネットワークとの間の通信を行うための半導体集積回路において利用可能である。この回路は、コンピュータ、PDA、携帯電話装置等において利用可能である。
第1の実施形態に係るネットワークコントローラを用いた装置の図。 図1のネットワークコントローラ2の内部構成を示す図。 第2の実施形態に係るネットワークコントローラの構成を示す図。 ARPメッセージのフォーマットを示す図。 OSI参照モデルとTCP/IP階層モデルとの対応関係を示す図。
符号の説明
1 コンピュータ、2 ネットワークコントローラ、3 CPU、4 メモリ、5 表示部、6 入力部、7 HDD、8 インタフェース回路、11 送受信バッファ、12 プロトコル処理部、13 ネットワーク受信処理部、14 ネットワーク送信処理部、15 ホスト要求受信処理部、16 ホスト応答出力処理部、17 送信専用バッファ

Claims (4)

  1. 上位レイヤとネットワークとの間の通信を行うための半導体集積回路であって、
    前記上位レイヤから前記ネットワークへ送信するための送信データ、送信パケット、若しくは、送信フレーム、並びに、前記ネットワークから受信した受信フレーム、受信パケット、若しくは、受信データを格納するための送受信バッファを具備し、
    受信時において、前記送受信バッファ内に受信用領域を確保し、前記ネットワークから受信した受信フレーム、受信パケット、又は、受信データを前記送受信バッファ内の受信用領域内に書き込み、前記送受信バッファ内の受信用領域内に書き込まれた受信フレーム、受信パケット、又は、受信データを前記上位レイヤに送り、
    送信時において、前記送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に、前記送受信バッファ内に送信用領域を確保し、前記上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って前記送受信バッファ内の送信用領域に書き込み、前記送受信バッファ内の送信用領域内に書き込まれた送信データ、送信パケット、又は、送信フレームを前記ネットワーク上に送信することを特徴とする、半導体集積回路。
  2. 前記送受信バッファに格納されている送信データ、送信パケット、若しくは、送信フレーム、並びに、受信フレーム、受信パケット、若しくは、受信データに所定のプロトコル処理を行うためのプロトコル処理部と、
    受信時において、前記送受信バッファ内に受信用領域を確保し、前記ネットワークから受信フレーム、受信パケット、又は、受信データを受信して前記送受信バッファに書き込み、送信時において、前記送受信バッファ内の受信用領域の容量が前記所定の閾値以上である場合に前記送受信バッファ内に送信用領域を確保するためのネットワーク受信処理部と、
    前記送受信バッファに格納されている送信フレーム、送信パケット、又は、送信データを前記ネットワーク上に送信するためのネットワーク送信処理部と、
    前記上位レイヤから送信要求を受けた場合に、前記送受信バッファ内の受信用領域の容量が所定の閾値以上であるか否かを前記ネットワーク受信処理部に問い合わせ、前記送受信バッファ内の受信用領域の容量が所定の閾値以上である場合に前記上位レイヤから送信データ、送信パケット、又は、送信フレームを受け取って前記送受信バッファ内の送信用領域に書き込むホスト要求受信処理部と、
    前記送受信バッファ内の受信用領域内に格納されている受信フレーム、受信パケット、又は、受信データを前記上位レイヤに送るためのホスト応答出力処理部と、
    を更に具備する請求項1記載の半導体集積回路。
  3. 前記プロトコル処理部が、TCP/IP(Transmission Control Protocol/Internet Protocol)階層モデルのトランスポート層、インターネット層、又は、ネットワークインタフェース層のプロトコル処理を行う、請求項2記載の半導体集積回路。
  4. ARP(Address Resolution Protocol)メッセージ又はTCP制御セグメントを格納するための送信用バッファを更に具備する、請求項2又は3記載の半導体集積回路。
JP2004204168A 2004-07-12 2004-07-12 半導体集積回路 Withdrawn JP2006033010A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004204168A JP2006033010A (ja) 2004-07-12 2004-07-12 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004204168A JP2006033010A (ja) 2004-07-12 2004-07-12 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2006033010A true JP2006033010A (ja) 2006-02-02

Family

ID=35898894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004204168A Withdrawn JP2006033010A (ja) 2004-07-12 2004-07-12 半導体集積回路

Country Status (1)

Country Link
JP (1) JP2006033010A (ja)

Similar Documents

Publication Publication Date Title
US7363572B2 (en) Editing outbound TCP frames and generating acknowledgements
US6973030B2 (en) Method and apparatus for controlling multiple logical data flow in a variable data rate environment
US7685287B2 (en) Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US7356034B2 (en) Terminal device, method for processing communication data inside the terminal device, and program for implementing the method
US8495241B2 (en) Communication apparatus and method therefor
US7761587B2 (en) Apparatus and method for transmitting packet IP offload
JP4244159B2 (ja) 受信装置、通信システムおよびプログラム
US8943214B2 (en) Communication apparatus
JP2006114973A (ja) 無線基地局及び無線端末装置
US9762511B2 (en) Communication device
JP2006033010A (ja) 半導体集積回路
JP6618330B2 (ja) 通信装置及びその方法、コンピュータプログラム
JP2007189383A (ja) Tcp/ip通信中継方法及びtcp/ip通信中継装置
JP2005074928A (ja) データ処理システム、データ処理装置、及びデータ受信プログラム
JP6873953B2 (ja) 通信装置、通信装置の制御方法およびプログラム
JP6976786B2 (ja) 通信装置および通信装置の制御方法
JP2009130891A (ja) 情報処理装置及びフレーム中継方法
JP4321390B2 (ja) 半導体集積回路
JP2020178182A (ja) 通信装置、通信装置の制御方法およびプログラム
JP2006109016A (ja) 送受信装置、送受信制御方法、プログラム、およびメモリ
JP2005044047A (ja) 端末装置及びデータ送信方法
WO2017022365A1 (ja) データ通信装置、データ通信方法、およびプログラム
JP2006032995A (ja) 通信支援装置
JP2006270476A (ja) パケット振り分け装置
JP2008245302A (ja) 送信端末及びデータ送信方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071002