JP5054716B2 - Communication protocol processing circuit, information processing apparatus, and communication protocol processing method - Google Patents

Communication protocol processing circuit, information processing apparatus, and communication protocol processing method Download PDF

Info

Publication number
JP5054716B2
JP5054716B2 JP2009037913A JP2009037913A JP5054716B2 JP 5054716 B2 JP5054716 B2 JP 5054716B2 JP 2009037913 A JP2009037913 A JP 2009037913A JP 2009037913 A JP2009037913 A JP 2009037913A JP 5054716 B2 JP5054716 B2 JP 5054716B2
Authority
JP
Japan
Prior art keywords
communication information
information
update
sequence processing
communication
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.)
Expired - Fee Related
Application number
JP2009037913A
Other languages
Japanese (ja)
Other versions
JP2010193364A (en
Inventor
重喜 平
伸浩 横井
拓郎 森
和志 仲川
与一 中本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009037913A priority Critical patent/JP5054716B2/en
Publication of JP2010193364A publication Critical patent/JP2010193364A/en
Application granted granted Critical
Publication of JP5054716B2 publication Critical patent/JP5054716B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To implement a consistent communication protocol process, while achieving a high-speed throughput which is close to an improving communication media band. <P>SOLUTION: A plurality of transmission packet creation parts that create transmission packets, transmission packet analysis parts that analyze the transmission packets, and sequence processing parts that control communication information to decide the measures for the transmission packets and the transmissions of the packets are respectively included and respectively processed in parallel. Moreover, a contention arbitration part that arbitrates memory accesses by a plurality of sequence processing parts and creation requests, and the like, of the transmission packets is included. The contention arbitration part includes a register that shows the memory area where the respective sequence processing parts temporarily occupy, and the respective sequence processing parts temporarily monopolize the communication information control memory area and release it. <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

本願明細書に開示される技術は、通信プロトコルを処理する技術に関し、特に、高速な通信スループットを容易に実現する通信プロトコル処理技術に関する。   The technology disclosed in the present specification relates to a technology for processing a communication protocol, and more particularly, to a communication protocol processing technology for easily realizing high-speed communication throughput.

インターネットを利用した通信サービス及び通信トラフィックは年々増えており、それを実現するための通信メディアや通信端末においてもその帯域及び処理能力は向上している。現在、通信メディアの帯域はおおむね年率2倍、通信端末(その中で主要な処理を行う汎用プロセッサ)の処理能力はおおむね年率1.5倍の伸び率で向上している。一例としては、多くのPC(Personal Computer)が標準的に備えたネットワークのインターフェイスは、以前は帯域100Mbpsの100BASEであったが、現在は帯域1Gbpsの1000BASEとなっている。そして今後は帯域10Gbpsの10GBASEが採用されていく見込みである。   Communication services and communication traffic using the Internet are increasing year by year, and the bandwidth and processing capability of communication media and communication terminals for realizing the communication service are also improved. Currently, the bandwidth of communication media is increasing at an annual rate of approximately twice, and the processing capability of communication terminals (general-purpose processors that perform main processing) is increasing at an annual rate of approximately 1.5 times. As an example, the network interface provided by many PCs (Personal Computers) as a standard has previously been 100BASE with a bandwidth of 100 Mbps, but now has 1000BASE with a bandwidth of 1 Gbps. In the future, 10GBASE with a bandwidth of 10 Gbps is expected to be adopted.

インターネット或いはその技術に基づいたネットワークを利用して通信相手と通信するには、通信端末は、Ethernet(登録商標、以下同じ)のような物理データリンク層の通信プロトコルだけではなく、ネットワーク層(いわゆるIP(Internet Protocol))、トランスポート層(いわゆるUDP(User Datagram Protocol)又はTCP(Transmission Control Protocol))及びアプリケーション層の通信プロトコルも処理する必要がある。通信端末において、物理データリンク層の通信プロトコルは専用ハードウェアにて処理されるのが一般的である。一方、それ以外のいわゆるTCP/IPと呼ばれる通信プロトコルは汎用プロセッサによってソフトウェア的に処理されるのが一般的である。   In order to communicate with a communication partner using the Internet or a network based on the technology, a communication terminal is not only a physical data link layer communication protocol such as Ethernet (registered trademark, the same applies hereinafter), but also a network layer (so-called IP (Internet Protocol), transport layer (so-called UDP (User Datagram Protocol) or TCP (Transmission Control Protocol)) and application layer communication protocols also need to be processed. In communication terminals, the physical data link layer communication protocol is generally processed by dedicated hardware. On the other hand, other communication protocols called TCP / IP are generally processed in software by a general-purpose processor.

現在、汎用プロセッサにてソフトウェア的に通信プロトコルを処理するPCは、それらの通信プロトコルを1Gbpsのスループットで処理すること、ひいては1GbpsのEthernetの帯域を高効率に利用することが困難になっている。今後、通信メディア帯域と汎用プロセッサ処理能力の伸び率が前述のトレンド通り進むと、通信メディアの帯域と通信端末の処理スループットの差は更に広がり、通信端末による通信メディアの利用効率は更に悪くなる見込みである。   Currently, it is difficult for a PC that processes communication protocols in software using a general-purpose processor to process these communication protocols with a throughput of 1 Gbps, and thus to efficiently use a 1 Gbps Ethernet bandwidth. In the future, if the growth rate of the communication media bandwidth and general-purpose processor processing capacity progresses according to the above-mentioned trend, the difference between the communication media bandwidth and the processing throughput of the communication terminal will further widen, and the use efficiency of the communication media by the communication terminal will further deteriorate It is.

通信プロトコルを専用ハードウェアにて処理する技術は、例えば、特許文献1に記載されている。特許文献1に記載された通信制御プロセッサは、それぞれ固有のプロトコル処理を行う複数の通信制御部と、パケットデータのフィールドを判別してパケットデータを対応する通信制御部に渡すプロトコル判別部から成る。これによって、機能的に複数の通信プロトコルで通信することができる。
特開平5−292147号公報
A technique for processing a communication protocol with dedicated hardware is described in Patent Document 1, for example. The communication control processor described in Patent Document 1 includes a plurality of communication control units that perform unique protocol processing, and a protocol determination unit that determines a field of packet data and passes the packet data to a corresponding communication control unit. Thereby, it is possible to communicate functionally with a plurality of communication protocols.
Japanese Patent Laid-Open No. 5-292147

例えば、一プロトコルによる通信メディア帯域の向上に追随する高速なスループットが要求される通信サービスを実現する場合、上記背景技術によれば次の問題が発生する。前提とした一プロトコルの通信に対して、上記背景技術では一つの通信制御部及びプロトコル判別部が全ての受信パケットデータを処理し、残りの通信制御部はその間パケットデータを処理することがなくアイドル状態である。このため、処理動作を続ける一つの通信制御部又はプロトコル判別部が処理のボトルネックとなり、高速なスループットの達成が困難である。   For example, when realizing a communication service that requires high-speed throughput that follows the improvement of the communication media bandwidth according to one protocol, the following problems occur according to the above background art. In contrast to the assumed one-protocol communication, in the above background art, one communication control unit and protocol discriminating unit process all received packet data, and the remaining communication control units do not process packet data during that time and are idle. State. For this reason, one communication control unit or protocol discriminating unit that continues the processing operation becomes a bottleneck of processing, and it is difficult to achieve high-speed throughput.

高速なスループットに達成するために、ボトルネック箇所の動作クロックの周波数を向上させるのが一案である。しかしながら、半導体の素子遅延及び消費電力が大きな問題となるため、動作クロックの周波数を安易に向上することはできない。実際、従来技術の動作クロックの周波数を向上させることによって、10Gbps又はそれ以上の通信スループットを達成するのは困難な見込みである。   In order to achieve high throughput, it is one idea to improve the frequency of the operation clock at the bottleneck. However, since the element delay and power consumption of the semiconductor are serious problems, the frequency of the operation clock cannot be easily improved. In fact, it is likely to be difficult to achieve communication throughput of 10 Gbps or higher by improving the frequency of the prior art operating clock.

本発明が解決しようとする課題は、向上していく通信メディア帯域に近い高速なスループットを達成し、首尾一貫性(コヒーレンシ)を損なわずに通信プロトコルを処理する、半導体の素子遅延及び消費電力の実現上の問題が比較的小さな、回路及び装置を提供することである。   The problem to be solved by the present invention is to achieve a high-speed throughput close to an increasing communication media band, and to process a communication protocol without impairing coherency. The realization problem is to provide circuits and devices that are relatively small.

本願で開示する代表的な発明は、複数の送信パケット生成部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、メモリには、通信情報が格納され、通信情報は、送信パケット生成部が生成及び出力すべきパケットを識別するための情報を含み、競合調停部には、通信情報の参照及び更新が複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、各送信パケット生成部は、各シーケンス処理部からの命令に基づいて、パケットを生成及び出力し、各シーケンス処理部は、通信情報を参照して、送信パケット生成部が生成及び出力すべきパケットを判断し、生成及び出力すべきパケットの生成及び出力を送信パケット生成部に命令し、通信情報を、生成及び出力を命令したことを識別するための情報に更新し、通信情報を参照及び更新する前に、競合調停部に格納された情報に基づいて、通信情報の参照及び更新が他のシーケンス処理部によって排他的に制御されているか否かを判定し、通信情報の参照及び更新が他のシーケンス処理部によって排他的に制御されている場合、排他的な制御が解除されるまで通信情報の参照及び更新を待ち、通信情報の参照及び更新が他のシーケンス処理部によって排他的に制御されていない場合、競合調停部に格納された情報を更新することによって通信情報の参照及び更新の排他的な制御を開始した後、通信情報の参照及び更新を実行し、通信情報の参照及び更新が終了した後、競合調停部に格納された情報を更新することによって通信情報の参照及び更新の排他的な制御を解除することを特徴とする。   A representative invention disclosed in the present application includes a plurality of transmission packet generation units, a plurality of sequence processing units, a contention arbitration unit, and a memory, and communication information is stored in the memory. Whether the transmission packet generator includes information for identifying a packet to be generated and output, and whether or not the contention arbitration unit is exclusively controlled by any of a plurality of sequence processing units to refer to and update communication information. Each transmission packet generation unit generates and outputs a packet based on a command from each sequence processing unit, and each sequence processing unit refers to communication information to transmit packet generation unit Judges the packet to be generated and output, instructs the transmission packet generator to generate and output the packet to be generated and output, and identifies that the communication information is instructed to generate and output Whether the reference and update of the communication information is exclusively controlled by another sequence processing unit based on the information stored in the contention arbitration unit before the communication information is referred to and updated. If the reference and update of the communication information is exclusively controlled by another sequence processing unit, the communication information reference and update are waited until the exclusive control is released. And the update of the information stored in the contention arbitration unit is started by starting the exclusive control of the reference and update of the communication information by updating the information stored in the contention arbitration unit. After the reference and update are executed and the reference and update of the communication information are completed, the exclusive control of the reference and update of the communication information is released by updating the information stored in the contention arbitration unit. The features.

本発明の一実施形態によれば、半導体の素子遅延及び消費電力の問題を比較的小さく抑えながら、向上していく通信メディア帯域に近い高速なスループットを容易に達成することができる。さらに、本発明の一実施形態によれば、並列化した箇所同士で高効率に通信情報を排他制御することによって、首尾一貫性を持たせて通信プロトコルを処理することができる。   According to an embodiment of the present invention, it is possible to easily achieve a high-speed throughput close to a communication media band that is being improved while keeping the problems of semiconductor device delay and power consumption relatively small. Furthermore, according to an embodiment of the present invention, it is possible to process communication protocols with consistency by performing exclusive control of communication information with high efficiency between parallel parts.

向上していく通信メディア帯域に近い高速なスループットを達成容易とするために、本発明の実施形態の通信プロトコル処理回路では、処理論理量が比較的多く回路の素子遅延が深くなりがちな箇所が並列化される。具体的には、後述するように、本発明の実施形態の通信プロトコル処理回路は、送信パケットを生成する送信パケット生成部と、受信パケットを解析する受信パケット解析部と、通信情報を管理して受信パケットに対する対応及びパケットの送信を決定するシーケンス処理部と、を複数備え、それぞれを低周波にて動作させることによって、並列処理させる。   In order to easily achieve a high-speed throughput close to the improved communication media bandwidth, the communication protocol processing circuit according to the embodiment of the present invention has a portion where the processing logic amount is relatively large and the element delay of the circuit tends to be deep. Parallelized. Specifically, as described later, the communication protocol processing circuit according to the embodiment of the present invention manages a transmission packet generation unit that generates a transmission packet, a reception packet analysis unit that analyzes a reception packet, and communication information. A plurality of sequence processing units that determine the correspondence to the received packet and the transmission of the packet are provided, and each is operated in parallel at a low frequency.

更に、本発明の実施形態の通信プロトコル処理回路は、並列化された箇所同士で高効率に排他制御する機構を備える。具体的には、後述するように、本発明の実施形態の通信プロトコル処理回路は、複数のシーケンス処理部による通信情報管理用メモリアクセス及び送信パケットの生成要求等の調停を行う競合調停部を備える。その競合調停部はそれぞれのシーケンス処理部が一時独占している通信情報管理用メモリの領域を示すレジスタを備え、それぞれのシーケンス処理部は通信情報管理用メモリの領域の一時独占及びその解除を行う。   Furthermore, the communication protocol processing circuit according to the embodiment of the present invention includes a mechanism for performing exclusive control with high efficiency between parallel parts. Specifically, as will be described later, the communication protocol processing circuit according to the embodiment of the present invention includes a contention arbitration unit that arbitrates communication information management memory access and transmission packet generation requests by a plurality of sequence processing units. . The contention arbitration unit includes a register indicating the area of the communication information management memory temporarily occupied by each sequence processing unit, and each sequence processing unit performs temporary monopolization and release of the communication information management memory area. .

以下、本発明の実施形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明の実施形態の通信装置及び通信プロトコル処理回路の構成を示したブロック図である。   FIG. 1 is a block diagram showing a configuration of a communication apparatus and a communication protocol processing circuit according to an embodiment of the present invention.

通信プロトコル処理回路は通信装置の中に備えるべきものであるが、図1では説明の便宜上、通信装置を通信ホスト装置101と通信プロトコル処理回路102とに分けて記載している。   The communication protocol processing circuit should be provided in the communication device. In FIG. 1, for convenience of explanation, the communication device is divided into the communication host device 101 and the communication protocol processing circuit 102.

まず通信ホスト装置101について説明する。通信ホスト装置101単体は公知技術で実現可能である。通信ホスト装置101は、通信プロトコル処理回路102を介してネットワーク104に接続され、ネットワーク104を介して一つ以上の通信相手(図示省略)との間の通信サービスを実現する。   First, the communication host device 101 will be described. The communication host device 101 alone can be realized by a known technique. The communication host device 101 is connected to the network 104 via the communication protocol processing circuit 102 and implements a communication service with one or more communication partners (not shown) via the network 104.

具体的には、通信ホスト装置101は、能動的に、又は、通信相手からネットワーク104を介して受信したパケットを通信プロトコル処理回路102が解析した結果に基づいて受動的に、通信相手及び通信サービスを指定して通信を開始する旨を通信プロトコル処理回路102に初期設定する。その通信サービスの実行中、通信ホスト装置101は、ホストメモリ112に格納された送信対象データを送信する旨を通信プロトコル処理回路102に指示し、また通信相手から受信したパケットから抽出したデータをホストメモリ112に格納する旨を通信プロトコル処理回路102に指示する。   Specifically, the communication host device 101 actively or passively determines the communication partner and the communication service based on the result of the communication protocol processing circuit 102 analyzing the packet received from the communication partner via the network 104. Is specified in the communication protocol processing circuit 102 to start communication. During the execution of the communication service, the communication host device 101 instructs the communication protocol processing circuit 102 to transmit the transmission target data stored in the host memory 112, and the host extracts the data extracted from the packet received from the communication partner. The communication protocol processing circuit 102 is instructed to store in the memory 112.

これと並行して、通信ホスト装置101は、ホスト周辺インターフェイス113及びホストバス114を介してストレージ装置103から送信対象データを読み出してホストメモリ112に格納し、ホストメモリ112に格納された受信抽出データを読み出してストレージ装置103に格納する。更にその通信サービスの最後に、通信ホスト装置101は、能動的又は受動的に、通信を終了する旨を通信プロトコル処理回路102に指示する。通信ホスト装置101が行うこれらの判断及び制御は、ホストプロセッサ111が実行するソフトウェアプログラム(図示省略)によって実現される。   In parallel with this, the communication host device 101 reads the transmission target data from the storage device 103 via the host peripheral interface 113 and the host bus 114, stores it in the host memory 112, and the received extracted data stored in the host memory 112. Is stored in the storage apparatus 103. Further, at the end of the communication service, the communication host device 101 instructs the communication protocol processing circuit 102 to end the communication actively or passively. These determinations and controls performed by the communication host device 101 are realized by a software program (not shown) executed by the host processor 111.

次に、本発明の主要な特徴である通信プロトコル処理回路102の詳細を説明する。通信プロトコル処理回路102は、通信制御部121、ホスト一時バッファ部122、ネットワーク一時バッファ部123、DMA制御部124、ネットワークインターフェイス125、複数の送信パケット生成部131〜133、及び複数の受信パケット解析部141〜143から成る。図2には、一例として、3個の送信パケット生成部131〜133及び3個の受信パケット解析部141〜143を示すが、これらの数は3に限定されない。   Next, details of the communication protocol processing circuit 102, which is a main feature of the present invention, will be described. The communication protocol processing circuit 102 includes a communication control unit 121, a host temporary buffer unit 122, a network temporary buffer unit 123, a DMA control unit 124, a network interface 125, a plurality of transmission packet generation units 131 to 133, and a plurality of reception packet analysis units. 141-143. FIG. 2 shows three transmission packet generation units 131 to 133 and three reception packet analysis units 141 to 143 as an example, but the number of these is not limited to three.

通信制御部121は、競合調停部151、通信情報管理用メモリ152、アップロード命令キュー153、ダウンロード命令キュー154、受信パケット解析格納結果キュー155及び送信パケット生成命令キュー156から成る。ホスト一時バッファ部122は、複数のホスト一時バッファ用メモリ161〜163から成り、ネットワーク一時バッファ部123は、複数のネットワーク一時バッファ用メモリ171〜173から成る。   The communication control unit 121 includes a contention arbitration unit 151, a communication information management memory 152, an upload command queue 153, a download command queue 154, a received packet analysis storage result queue 155, and a transmission packet generation command queue 156. The host temporary buffer unit 122 includes a plurality of host temporary buffer memories 161 to 163, and the network temporary buffer unit 123 includes a plurality of network temporary buffer memories 171 to 173.

図1には、ホスト一時バッファ部122が第1のホスト一時バッファ用メモリ161から第12のホスト一時バッファ用メモリ163までの12個のホスト一時バッファ用メモリを備える例を示す(ただし、第3のホスト一時バッファ用メモリから第11のホスト一時バッファ用メモリまでの図示は省略する)。しかし、ホスト一時バッファ用メモリの数は12に限定されない。ネットワーク一時バッファ用メモリ171〜173についても同様である。   FIG. 1 shows an example in which the host temporary buffer unit 122 includes 12 host temporary buffer memories from the first host temporary buffer memory 161 to the twelfth host temporary buffer memory 163 (however, the third (The illustration from the host temporary buffer memory to the eleventh host temporary buffer memory is omitted). However, the number of host temporary buffer memories is not limited to twelve. The same applies to the network temporary buffer memories 171 to 173.

図2は、本発明の実施形態の通信プロトコル処理回路102内の通信制御部121の詳細構成を示したブロック図である。   FIG. 2 is a block diagram illustrating a detailed configuration of the communication control unit 121 in the communication protocol processing circuit 102 according to the embodiment of this invention.

図2において、図1と同一の符号は、図1に示したものと同一のものを表している。通信制御部121は、図1に示した競合調停部151等に加えて、複数のシーケンス処理部201〜203及びタイマ291を備える。図2には、通信制御部121が第1のシーケンス処理部201から第9のシーケンス処理部203までの9個のシーケンス処理部を備える例を示す(ただし、第3のシーケンス処理部から第8のシーケンス処理部までの図示は省略する)。しかし、シーケンス処理部の数は9に限定されない。   2, the same reference numerals as those in FIG. 1 represent the same elements as those shown in FIG. The communication control unit 121 includes a plurality of sequence processing units 201 to 203 and a timer 291 in addition to the contention arbitration unit 151 and the like illustrated in FIG. FIG. 2 shows an example in which the communication control unit 121 includes nine sequence processing units from the first sequence processing unit 201 to the ninth sequence processing unit 203 (however, the third sequence processing unit to the eighth sequence The illustration up to the sequence processing unit is omitted). However, the number of sequence processing units is not limited to nine.

通信制御部121内の競合調停部151は、複数の一時独占通信情報エントリレジスタ211〜221、通信情報エントリオフセットレジスタ231及び通信情報エントリサイズレジスタ232を備える。図2には、競合調停部151が第1の一時独占通信情報エントリレジスタ211から第9の一時独占通信情報エントリレジスタ221までの10個のシーケンス処理部を備える例を示す(ただし、第3の一時独占通信情報エントリレジスタから第8の一時独占通信情報エントリレジスタまでの図示は省略する)。しかし、一時独占通信情報エントリレジスタの数は10に限定されない。   The contention arbitration unit 151 in the communication control unit 121 includes a plurality of temporary exclusive communication information entry registers 211 to 221, a communication information entry offset register 231, and a communication information entry size register 232. FIG. 2 shows an example in which the contention arbitration unit 151 includes ten sequence processing units from the first temporary exclusive communication information entry register 211 to the ninth temporary exclusive communication information entry register 221 (however, the third (The illustration from the temporary exclusive communication information entry register to the eighth temporary exclusive communication information entry register is omitted). However, the number of temporary exclusive communication information entry registers is not limited to ten.

通信制御部121内の通信情報管理用メモリ152、アップロード命令キュー153、ダウンロード命令キュー154、受信パケット解析格納結果キュー155及び送信パケット生成命令キュー156はそれぞれ、複数の通信情報エントリ241〜243、複数のアップロード命令エントリ251〜253、複数のダウンロード命令エントリ261〜263、複数の受信パケット解析格納結果エントリ271〜273及び複数の送信パケット生成命令エントリ281〜283を保持する。   The communication information management memory 152, the upload command queue 153, the download command queue 154, the received packet analysis storage result queue 155, and the transmission packet generation command queue 156 in the communication control unit 121 each include a plurality of communication information entries 241 to 243, a plurality of Upload command entries 251 to 253, a plurality of download command entries 261 to 263, a plurality of received packet analysis storage result entries 271 to 273, and a plurality of transmission packet generation command entries 281 to 283.

図2には、第1の通信情報エントリ241から第10000の通信情報エントリ243、第1のアップロード命令エントリ251から第3のアップロード命令エントリ253、第1のダウンロード命令エントリ261から第5のダウンロード命令エントリ263、第1の受信パケット解析格納結果エントリ271から第6の受信パケット解析格納結果エントリ273、及び、第1の送信パケット生成命令エントリ281から第5の送信パケット生成命令エントリ283を示す(ただし、第3から第9999の通信情報エントリ、第3から第4のダウンロード命令エントリ、第3から第5の受信パケット解析格納結果エントリ及び第3から第4の送信パケット生成命令エントリの図示は省略する)。しかし、上記のエントリの数は、図2に示した例に限定されない。   FIG. 2 shows the first communication information entry 241 to the 10,000th communication information entry 243, the first upload command entry 251 to the third upload command entry 253, and the first download command entry 261 to the fifth download command. An entry 263, a first received packet analysis storage result entry 271 to a sixth received packet analysis storage result entry 273, and a first transmission packet generation instruction entry 281 to a fifth transmission packet generation instruction entry 283 are shown (however, The third to 9999th communication information entries, the third to fourth download command entries, the third to fifth received packet analysis storage result entries, and the third to fourth transmission packet generation command entries are not shown. ). However, the number of entries is not limited to the example shown in FIG.

通信プロトコル処理回路102の送受信動作について説明する。通信プロトコル処理回路102が送受信動作に至る前に、ホストプロセッサ111で実行されるソフトウェアプログラムによって通信情報エントリオフセットレジスタ231及び通信情報エントリサイズレジスタ232に所定の値が予め設定される。具体的には、ホストプロセッサ111からの各レジスタへの書き込み要求を、ホストバス114及びDMA制御部124を介して通信制御部121が受け取り、その書き込み要求に従って通信制御部121が各レジスタに値を書き込む。   A transmission / reception operation of the communication protocol processing circuit 102 will be described. Before the communication protocol processing circuit 102 performs a transmission / reception operation, predetermined values are set in advance in the communication information entry offset register 231 and the communication information entry size register 232 by a software program executed by the host processor 111. Specifically, the communication control unit 121 receives a write request from the host processor 111 to each register via the host bus 114 and the DMA control unit 124, and the communication control unit 121 assigns a value to each register according to the write request. Write.

これらの値は、通信情報エントリの番号に対応する通信情報管理用メモリ152の領域のアドレスを表す。具体的には、通信情報エントリオフセットレジスタ231に設定された値をA、通信情報エントリサイズレジスタ232に設定された値をBとおくと、通信情報管理用メモリ152における第Nの通信情報エントリに対応する格納アドレスはA+B×(N−1)からA+B×N−1までである。   These values represent the address of the area of the communication information management memory 152 corresponding to the number of the communication information entry. More specifically, if the value set in the communication information entry offset register 231 is A and the value set in the communication information entry size register 232 is B, the Nth communication information entry in the communication information management memory 152 is set. Corresponding storage addresses are from A + B × (N−1) to A + B × N−1.

また、ホストプロセッサ111で実行されるソフトウェアプログラムによって、通信相手、通信サービス、及び、ホストメモリ112内の送信対象データの格納領域に関する情報が通信情報エントリとして設定される。   In addition, information regarding a communication partner, a communication service, and a storage area of data to be transmitted in the host memory 112 is set as a communication information entry by a software program executed by the host processor 111.

一つないし複数の通信情報エントリが一つの通信サービスに割り当てられる。各通信情報エントリ241〜243は、そのエントリの有効フラグ、通信ホスト装置101自身のネットワークアドレス(例えば物理アドレス又はIPアドレス)、通信相手のネットワークアドレス、通信ホスト装置101自身のサービス番号(例えばUDP又はTCPのポート番号)、通信相手のサービス番号、通信状態、通信処理状態、ホストメモリ112内の送信対象データを格納している領域のアドレス(メモリアドレス)、ホストメモリ112内の受信抽出データを格納すべき領域のアドレス、送信済データ長、応答確認済データ長、及び、受信済データ長等を含む。これらの情報に基づいて、次に生成及び送信すべきパケットの有無や、そのパケットの種別、そのパケットのペイロード部分に埋め込む送信対象データのホストメモリ112内の格納領域アドレスやその領域全体のサイズ、そのうち送信済みのデータ長などを特定することができる。また、受信すべきパケットの有無や、そのパケットの種別、そのパケットのペイロード部分から抽出する受信データのホストメモリ112内の格納領域アドレスやその領域全体のサイズ、そのうち受信済みのデータ長なども特定することができる。   One or more communication information entries are assigned to one communication service. Each communication information entry 241 to 243 includes a valid flag of the entry, a network address (for example, a physical address or an IP address) of the communication host device 101, a network address of a communication partner, a service number of the communication host device 101 itself (for example, UDP or (TCP port number), service number of communication partner, communication state, communication processing state, address (memory address) of the area storing the transmission target data in the host memory 112, reception extraction data in the host memory 112 are stored It includes the address of the area to be transmitted, the transmitted data length, the response confirmed data length, the received data length, and the like. Based on these information, whether there is a packet to be generated and transmitted next, the type of the packet, the storage area address of the transmission target data embedded in the payload portion of the packet, the size of the entire area, Of these, the length of transmitted data can be specified. Also, the presence / absence of the packet to be received, the type of the packet, the storage area address of the received data extracted from the payload portion of the packet, the size of the entire area, the length of the received data, etc. are also specified. can do.

また、ホストプロセッサ111で実行されるソフトウェアプログラムによって、第1のシーケンス処理部201が予め起動されている。この第1のシーケンス処理部201は、通信情報管理用メモリ152に格納した通信情報エントリ241〜243及びタイマ291を継続的に参照して、パケット送信の判断、ホストプロセッサ111からの指示の完了の報告、及び、通信異常状態のホストプロセッサ111への割り込み報告を行うシーケンスを実行し続ける。   In addition, the first sequence processing unit 201 is activated in advance by a software program executed by the host processor 111. The first sequence processing unit 201 continuously refers to the communication information entries 241 to 243 and the timer 291 stored in the communication information management memory 152 to determine packet transmission and complete the instruction from the host processor 111. The sequence of reporting and reporting the interrupt to the host processor 111 in a communication abnormal state is continued.

なお、図1及び図2に記載した構成のうち、複数の送信パケット生成部131〜133、複数の受信パケット解析部141〜143及び複数のシーケンス処理部201〜203は、典型的には専用のハードウェアによって実現される。しかし、これらは、汎用のプロセッサがメモリに格納されたプログラムを実行することによって実現されてもよい。   1 and 2, the plurality of transmission packet generation units 131 to 133, the plurality of reception packet analysis units 141 to 143, and the plurality of sequence processing units 201 to 203 are typically dedicated. Realized by hardware. However, these may be realized by a general-purpose processor executing a program stored in a memory.

通信プロトコル処理回路102がパケット送信を決定してから送信するまでの詳細動作について説明する。   A detailed operation from when the communication protocol processing circuit 102 determines packet transmission until transmission is described.

図3は、本発明の実施形態の通信プロトコル処理回路102の送信動作を示したタイミングチャートである。   FIG. 3 is a timing chart illustrating the transmission operation of the communication protocol processing circuit 102 according to the embodiment of this invention.

第1のシーケンス処理部201は、通信情報管理用メモリ152内のそれぞれの通信情報エントリ241〜243を参照(及び必要に応じて更新)して、パケット送信の判断(301)を行う。そして、第1のシーケンス処理部201は、第Xの通信情報エントリ(例えば第1の通信情報エントリ241)に関してパケットを送信する旨を判断すると、アイドル状態となっていた第2のシーケンス処理部202をサブシーケンスとして起動し、第Xの通信情報エントリに関してパケットを送信する旨を指示する。それによって第2のシーケンス処理部202は、第1の送信パケットの生成処理のシーケンス(302)を開始する。   The first sequence processing unit 201 refers to each communication information entry 241 to 243 in the communication information management memory 152 (and updates as necessary), and makes a packet transmission determination (301). When the first sequence processing unit 201 determines that a packet is to be transmitted regarding the Xth communication information entry (for example, the first communication information entry 241), the second sequence processing unit 202 that has been in the idle state. Is started as a subsequence, and an instruction is given to transmit a packet regarding the Xth communication information entry. Thereby, the second sequence processing unit 202 starts the sequence (302) of the first transmission packet generation process.

第2のシーケンス処理部202は、まず第Xの通信情報エントリを参照及び更新して、送信対象データが格納されているホストメモリ112の領域及び送信パケットの種別等を知る。このとき、第2のシーケンス処理部202は、他のシーケンス処理部202が第Xの通信情報エントリを参照及び更新できないように排他制御する。この排他制御のために、第2の一時独占通信情報エントリレジスタ212が使用される。   First, the second sequence processing unit 202 refers to and updates the Xth communication information entry to know the area of the host memory 112 in which the transmission target data is stored, the type of transmission packet, and the like. At this time, the second sequence processing unit 202 performs exclusive control so that other sequence processing units 202 cannot refer to and update the Xth communication information entry. For this exclusive control, the second temporary exclusive communication information entry register 212 is used.

なお、図3及び後述する図4の処理において、各シーケンス処理部は、通信情報エントリを参照及び更新するときに、各シーケンス処理部に対応する一時独占通信情報エントリレジスタを使用して、同様の排他制御を実行する。これらの排他制御については後で詳細に説明する。   3 and FIG. 4 to be described later, each sequence processing unit uses the temporary exclusive communication information entry register corresponding to each sequence processing unit when referring to and updating the communication information entry. Execute exclusive control. These exclusive controls will be described later in detail.

次に、第2のシーケンス処理部202は、ダウンロード(すなわちホストメモリ112からホスト一時バッファ部122へのデータコピー)命令を発行する。ダウンロード命令は、ホストメモリ112に格納された送信対象データの先頭メモリアドレス及びデータ長を含む。これらのアドレス及びデータ長は、第Xの通信情報エントリから取得される。   Next, the second sequence processing unit 202 issues a download (that is, data copy from the host memory 112 to the host temporary buffer unit 122). The download command includes the start memory address and data length of the transmission target data stored in the host memory 112. These addresses and data lengths are obtained from the Xth communication information entry.

発行されたダウンロード命令は、空き状態であったダウンロード命令キュー154内の第1のダウンロード命令エントリ261となり、ホスト一時バッファ部122及びDMA制御部124を介してホストバス114に対して発行される。これによって、ホストメモリ112に格納された第一の送信対象データがホストバス114及びDMA制御部124を介してホスト一時バッファ部122に入力(303)される。ホスト一時バッファ部122は、入力されたデータを、空き状態となっていた第1のホスト一時バッファ用メモリ161に格納する。   The issued download command becomes the first download command entry 261 in the download command queue 154 in the empty state, and is issued to the host bus 114 via the host temporary buffer unit 122 and the DMA control unit 124. As a result, the first transmission target data stored in the host memory 112 is input (303) to the host temporary buffer unit 122 via the host bus 114 and the DMA control unit 124. The host temporary buffer unit 122 stores the input data in the first host temporary buffer memory 161 which is in an empty state.

第1の送信対象データの格納を完了すると、ホスト一時バッファ部122は第1のホスト一時バッファ用メモリ161に格納した旨をホスト一時バッファ部122のエントリ情報(第1のデータエントリ)として通信制御部121に報告する。   When the storage of the first transmission target data is completed, the host temporary buffer unit 122 performs communication control using entry information (first data entry) of the host temporary buffer unit 122 indicating that the data is stored in the first host temporary buffer memory 161. Report to Part 121.

ダウンロード完了の報告を受けると、ダウンロード命令キュー154は第1のダウンロード命令エントリ261を消す。第2のシーケンス処理部202は続いて送信パケット生成命令を発行する。送信パケット生成命令は、送信パケットの種別と、送信パケットのヘッダを構成するネットワークアドレス等の情報と、ホスト一時バッファ部122のエントリ情報(第1のデータエントリ)と、から成る。   When the download completion report is received, the download instruction queue 154 deletes the first download instruction entry 261. The second sequence processing unit 202 subsequently issues a transmission packet generation command. The transmission packet generation command includes a transmission packet type, information such as a network address constituting the header of the transmission packet, and entry information (first data entry) of the host temporary buffer unit 122.

発行された送信パケット生成命令は、空き状態であった送信パケット生成命令キュー156内の第1の送信パケット生成命令エントリ281となり、アイドル状態となっていた第1の送信パケット生成部131に対して発行される。   The issued transmission packet generation instruction becomes the first transmission packet generation instruction entry 281 in the transmission packet generation instruction queue 156 that has been in an empty state, and is sent to the first transmission packet generation unit 131 that has been in the idle state. publish.

送信パケットの生成の命令を受けた第1の送信パケット生成部131は、命令に従って第1の送信パケットの生成及び出力(304)を開始する。第1の送信パケット生成部131は、ホスト一時バッファ部122のエントリ情報(第1のデータエントリ)に対応するデータを渡す旨をホスト一時バッファ部122に指示しながら、まず送信パケットのヘッダを構成する情報から送信パケットのヘッダを生成及び出力する。ホスト一時バッファ部122は、指示されたエントリ情報(第1のデータエントリ)に対応するデータ、すなわち第1のホスト一時バッファ用メモリ161に格納している第1の送信対象データを第1の送信パケット生成部131に渡し、第1の送信パケット生成部131は、次にホスト一時バッファ部122から渡された第1の送信対象データを送信パケットのペイロードとして出力する。   The first transmission packet generation unit 131 that has received the transmission packet generation instruction starts generation and output (304) of the first transmission packet in accordance with the instruction. The first transmission packet generation unit 131 first constructs a header of the transmission packet while instructing the host temporary buffer unit 122 to pass data corresponding to the entry information (first data entry) of the host temporary buffer unit 122. The header of the transmission packet is generated and output from the information to be transmitted. The host temporary buffer unit 122 performs first transmission of data corresponding to the designated entry information (first data entry), that is, first transmission target data stored in the first host temporary buffer memory 161. The first transmission packet generation unit 131 outputs the first transmission target data transferred from the host temporary buffer unit 122 as the payload of the transmission packet.

こうして生成及び出力された第1の送信パケットは、ネットワーク一時バッファ部123に渡される。第1の送信パケットの生成を完了すると、第1の送信パケット生成部131は通信制御部121に完了報告し、アイドル状態に移る。   The first transmission packet generated and output in this manner is transferred to the network temporary buffer unit 123. When the generation of the first transmission packet is completed, the first transmission packet generation unit 131 reports completion to the communication control unit 121 and shifts to an idle state.

送信パケット生成の完了報告を受けると、送信パケット生成命令キュー156はその命令のエントリを消す。その命令を発行した第2のシーケンス処理部202は、続いて通信情報管理用メモリ152内の第Xの通信情報エントリを参照及び更新して、その通信情報エントリにパケット送信した旨を反映する。さらに第2のシーケンス処理部202は、ホスト一時バッファ部122に対して、ホスト一時バッファ部122のエントリ情報(第1のデータエントリ)を消すように指示する。ホスト一時バッファ部122はその指示に従って第1のホスト一時バッファ用メモリ161を空き状態に移行させる。   When the transmission packet generation completion report is received, the transmission packet generation instruction queue 156 deletes the entry of the instruction. The second sequence processing unit 202 that issued the command subsequently refers to and updates the Xth communication information entry in the communication information management memory 152, and reflects that the packet has been transmitted to the communication information entry. Further, the second sequence processing unit 202 instructs the host temporary buffer unit 122 to delete the entry information (first data entry) in the host temporary buffer unit 122. The host temporary buffer unit 122 shifts the first host temporary buffer memory 161 to an empty state in accordance with the instruction.

第1のシーケンス処理部201のサブシーケンスを実行することを指示された第2のシーケンス処理部202は、最後に、その役目を終えてアイドル状態に移る。   The second sequence processing unit 202 instructed to execute the sub-sequence of the first sequence processing unit 201 finally finishes its role and shifts to an idle state.

上記と並行して、ネットワーク一時バッファ部123は、空き状態となっていた第1のネットワーク一時バッファ用メモリ171に、第1の送信パケット生成部131が生成及び出力する第1の送信パケットを格納する。第1の送信パケットの格納を完了すると、ネットワーク一時バッファ部はそれを出力(305)し、ネットワークインターフェイス125を介してネットワーク104へと送信パケットを送信する。その送信が完了すると、ネットワーク一時バッファ部123は、第1のネットワーク一時バッファ用メモリ171を空き状態に移す。   In parallel with the above, the network temporary buffer unit 123 stores the first transmission packet generated and output by the first transmission packet generation unit 131 in the first network temporary buffer memory 171 that is in an empty state. To do. When the storage of the first transmission packet is completed, the network temporary buffer unit outputs it (305), and transmits the transmission packet to the network 104 via the network interface 125. When the transmission is completed, the network temporary buffer unit 123 moves the first network temporary buffer memory 171 to an empty state.

第1のシーケンス処理部201は、第2のシーケンス処理部202に第Xの通信情報エントリ(例えば第1の通信情報エントリ241)に関してパケットを送信する旨を指示した後、さらに通信情報管理用メモリ152内のそれぞれの通信情報エントリ241〜243を参照及び更新してパケット送信の判断を行う。そして第Yの通信情報エントリ(例えば第2の通信情報エントリ242)に関してパケットを送信する旨を判断すると、このとき第2のシーケンス処理部202は実行中であるため、第1のシーケンス処理部201はアイドル状態となっていた第3のシーケンス処理部(図示省略)をサブシーケンスとして起動し、第Yの通信情報エントリに関してパケットを送信する旨を指示する。それによって第3のシーケンス処理部は、第2の送信パケットの生成処理のシーケンス(312)を開始する。   The first sequence processing unit 201 instructs the second sequence processing unit 202 to transmit a packet regarding the Xth communication information entry (for example, the first communication information entry 241), and then further performs communication information management memory. The communication information entries 241 to 243 in 152 are referred to and updated to determine packet transmission. When it is determined that a packet is to be transmitted with respect to the Yth communication information entry (for example, the second communication information entry 242), the second sequence processing unit 202 is being executed at this time. Activates the third sequence processing unit (not shown) in the idle state as a subsequence, and instructs to transmit a packet regarding the Yth communication information entry. Thereby, the third sequence processing unit starts a sequence (312) of the generation process of the second transmission packet.

その後も引き続き、第1のシーケンス処理部201はパケット送信の判断を行い続け、必要に応じてサブシーケンスを起動する。   After that, the first sequence processing unit 201 continues to determine packet transmission and activates a sub-sequence as necessary.

起動された第3のシーケンス処理部は、上記の第2のシーケンス処理部202の場合と同様に、通信情報管理用メモリ152内の第Yの通信情報エントリを参照し、更新し、対応するダウンロード命令及び送信パケット生成命令を発行し、ホスト一時バッファ部122の対応するエントリ情報を消すように指示する。またアップロード命令キュー153及び送信パケット生成命令キュー156の振る舞いも上記と同様である。   The activated third sequence processing unit refers to the Y-th communication information entry in the communication information management memory 152, updates the corresponding download, as in the case of the second sequence processing unit 202 described above. A command and a transmission packet generation command are issued to instruct to delete the corresponding entry information in the host temporary buffer unit 122. The behaviors of the upload command queue 153 and the transmission packet generation command queue 156 are the same as described above.

図3の例では、ダウンロードされた第2の送信対象データのホスト一時バッファ部122への格納、及び、生成された第2の送信パケットのネットワーク一時バッファ部123への格納が実行される時刻には、第Xの通信情報エントリに関するエントリがそれぞれ第1のホスト一時バッファ用メモリ161内及び第1のネットワーク一時バッファ用メモリ171内に存在している。このため、ダウンロードされた第2の送信対象データ及び生成された第2の送信パケットは、それぞれ、空き状態である第2のホスト一時バッファ用メモリ162及び第2のネットワーク一時バッファ用メモリ172に格納される。   In the example of FIG. 3, the downloaded second transmission target data is stored in the host temporary buffer unit 122 and the generated second transmission packet is stored in the network temporary buffer unit 123 at a time when execution is performed. , Entries related to the Xth communication information entry exist in the first host temporary buffer memory 161 and the first network temporary buffer memory 171, respectively. For this reason, the downloaded second transmission target data and the generated second transmission packet are stored in the second host temporary buffer memory 162 and the second network temporary buffer memory 172 which are free, respectively. Is done.

第2の送信パケットが生成される時刻には、第Xの通信情報エントリに関する処理を第1の送信パケット生成部131が実行中である。このため、アイドル状態の第2の送信パケット生成部132が第2の送信パケットを生成する。このように本実施形態の通信プロトコル処理回路102では、複数の機能ブロックが並行動作しながら送信処理を実行する。   At the time when the second transmission packet is generated, the first transmission packet generation unit 131 is executing processing related to the Xth communication information entry. For this reason, the second transmission packet generator 132 in the idle state generates the second transmission packet. As described above, in the communication protocol processing circuit 102 according to this embodiment, a plurality of functional blocks execute transmission processing while operating in parallel.

図3が示す通り、本実施形態の通信プロトコル処理回路102によれば、ネットワーク一時バッファ部123からネットワークインターフェイス125への出力、ひいてはネットワークインターフェイス125からネットワーク104へのパケットの送信は、通信メディア帯域に近い高速なスループットを達成できることがわかる。   As shown in FIG. 3, according to the communication protocol processing circuit 102 of the present embodiment, the output from the network temporary buffer unit 123 to the network interface 125 and the transmission of the packet from the network interface 125 to the network 104 are performed in the communication media band. It can be seen that near high throughput can be achieved.

具体的には、一例として、通信メディアが帯域10Gbpsの10GBASEであり、ネットワーク一時バッファ部123からネットワークインターフェイス125には、32ビット幅のデータが、312.5MHzの動作周波数で出力されると仮定する。この場合、スループットは32ビット×312.5MHz=10,000Mbps=10Gbpsである。この場合、図3が示す通りそれぞれの送信パケット間に微小なマージン時間が存在するものの、通信メディア帯域に近い高速な送信スループットを達成できる。   Specifically, as an example, it is assumed that the communication medium is 10 GBASE with a bandwidth of 10 Gbps, and 32-bit width data is output from the network temporary buffer unit 123 to the network interface 125 at an operating frequency of 312.5 MHz. . In this case, the throughput is 32 bits × 312.5 MHz = 10,000 Mbps = 10 Gbps. In this case, as shown in FIG. 3, although a small margin time exists between the transmission packets, a high-speed transmission throughput close to the communication media band can be achieved.

また、通信制御部121と複数の送信パケット生成部131〜133の動作、及び、通信制御部121と複数の送信パケット生成部131〜133とホスト一時バッファ部122とネットワーク一時バッファ部123との間の接続については、上記の312.5MHzよりも低い周波数で動作させることができる。具体的には、上記と同じくデータ幅を32ビットとしても、3個の送信パケット生成部131〜133を並列に使用しているため、それらを312.5÷3=104.2MHzで動作させても図3のタイミングチャートに示す動作が実現される。   Also, the operations of the communication control unit 121 and the plurality of transmission packet generation units 131 to 133, and between the communication control unit 121, the plurality of transmission packet generation units 131 to 133, the host temporary buffer unit 122, and the network temporary buffer unit 123. For the connection, it is possible to operate at a frequency lower than the above 312.5 MHz. Specifically, even if the data width is set to 32 bits as described above, since the three transmission packet generation units 131 to 133 are used in parallel, they are operated at 312.5 ÷ 3 = 104.2 MHz. The operation shown in the timing chart of FIG. 3 is also realized.

動作周波数を低くすると、処理に要する時間が動作周波数に反比例して増加する。図3においてそれぞれの送信パケットの送信パケット生成部による生成時間が、ネットワークインターフェイス125への出力に要する時間よりも3倍程度長く図示されているのは、そのことを表している。本発明の通信プロトコル回路によれば、処理論理量が比較的多いために回路の素子遅延が深くなりがちなこれらの処理の動作周波数を低くできるため、半導体の素子遅延及び消費電力の実現上の問題を比較的小さくすることができる。   If the operating frequency is lowered, the time required for processing increases in inverse proportion to the operating frequency. In FIG. 3, the generation time of each transmission packet by the transmission packet generation unit is shown to be about three times longer than the time required for output to the network interface 125. According to the communication protocol circuit of the present invention, since the processing logic amount is relatively large, the device operating delay of the circuit, which tends to be deep, can be lowered. The problem can be made relatively small.

さらに、上記の処理によれば、排他制御によって首尾一貫性が維持される。このことについては後に詳細に説明する。   Furthermore, according to the above processing, the consistency is maintained by the exclusive control. This will be described in detail later.

次に、通信プロトコル処理回路102がパケットを受信してから対応処理を行うまでの詳細動作について説明する。   Next, a detailed operation from when the communication protocol processing circuit 102 receives a packet until the corresponding processing is performed will be described.

図4は、本発明の実施形態の通信プロトコル処理回路102の受信動作を示したタイミングチャートである。   FIG. 4 is a timing chart illustrating the reception operation of the communication protocol processing circuit 102 according to the embodiment of this invention.

ネットワークインターフェイス125を介してネットワーク104から第1の受信パケットを受信(401)すると、ネットワーク一時バッファ部123は、空き状態となっていた第7のネットワーク一時バッファ用メモリ(図示省略)に第1の受信パケットを格納する。   When the first received packet is received from the network 104 via the network interface 125 (401), the network temporary buffer unit 123 stores the first packet in the seventh network temporary buffer memory (not shown) that has been vacant. Stores received packets.

第1の受信パケットの受信及び格納を完了すると、ネットワーク一時バッファ部123は、格納した第1の受信パケットを、アイドル状態となっていた第1の受信パケット解析部141へ渡す(402)。ネットワーク一時バッファ部123は、第1の受信パケットを渡し終えると、第7のホスト一時バッファ用メモリを空き状態に移す。   When the reception and storage of the first received packet is completed, the network temporary buffer unit 123 passes the stored first received packet to the first received packet analysis unit 141 that has been in the idle state (402). When the network temporary buffer unit 123 finishes delivering the first received packet, the network temporary buffer unit 123 moves the seventh host temporary buffer memory to an empty state.

第1の受信パケット解析部141は、第1の受信パケットを受け取りながら、第1の受信パケットを解析し、そのパケットのヘッダから必要情報を抽出して通信制御部121に渡し、ペイロードから通信ホスト装置101に渡すべきデータを抽出してホスト一時バッファ部122に渡す(403)。そのパケットの受け取り及び解析が完了すると、第1の受信パケット解析部141は解析結果(すなわちそのパケットの種別)を通信制御部121に報告し、アイドル状態に移る。   The first received packet analysis unit 141 analyzes the first received packet while receiving the first received packet, extracts necessary information from the header of the packet, passes it to the communication control unit 121, and transmits the communication host from the payload. Data to be transferred to the apparatus 101 is extracted and transferred to the host temporary buffer unit 122 (403). When reception and analysis of the packet are completed, the first reception packet analysis unit 141 reports the analysis result (that is, the type of the packet) to the communication control unit 121, and shifts to an idle state.

ホスト一時バッファ部122は、空き状態となっていた第7のホスト一時バッファ用メモリ(図示省略)に第1の受信パケットから抽出したデータを格納する。そのデータの格納を完了すると、ホスト一時バッファ部122は第7のホスト一時バッファ用メモリにデータを格納した旨をホスト一時バッファ部122のエントリ情報(第2のデータエントリ)として通信制御部121に報告する。   The host temporary buffer unit 122 stores the data extracted from the first received packet in a seventh host temporary buffer memory (not shown) that is in an empty state. When the storage of the data is completed, the host temporary buffer unit 122 informs the communication control unit 121 that the data has been stored in the seventh host temporary buffer memory as entry information (second data entry) of the host temporary buffer unit 122. Report.

第1の受信パケット解析部141から通信制御部121に渡されるヘッダ情報及び解析結果、及び、ホスト一時バッファ部122から通信制御部121に渡される格納結果(第2のデータエントリとして格納した旨)は、空き状態であった受信パケット解析格納結果キュー155の第1の受信パケット解析格納結果エントリ271として保持される。受信パケット解析格納結果キュー155に新たなエントリが発生したことを受けて、アイドル状態となっていた第7のシーケンス処理部(図示省略)がその受信パケットの対応(404)を実行するために起動される。   Header information and analysis result passed from the first received packet analysis unit 141 to the communication control unit 121, and storage result passed from the host temporary buffer unit 122 to the communication control unit 121 (that is, stored as a second data entry) Is held as the first received packet analysis storage result entry 271 in the received packet analysis storage result queue 155 that is in an empty state. In response to the occurrence of a new entry in the received packet analysis storage result queue 155, the seventh sequence processing unit (not shown), which has been in an idle state, is activated to execute the response (404) of the received packet. Is done.

第7のシーケンス処理部は、まず受信パケット解析格納結果キュー155が保持している第1の受信パケットの種別を参照して、通信情報管理用メモリ152内の複数の通信情報エントリからその受信パケットに合致するものを探し出す旨を判断する。そして、第7のシーケンス処理部は、受信パケット解析格納結果キュー155が保持しているヘッダ情報を参照し、それに合致する通信情報管理用メモリ152内の第Xの通信情報エントリを探し出す。   The seventh sequence processing unit first refers to the type of the first received packet held in the received packet analysis storage result queue 155, and receives the received packet from a plurality of communication information entries in the communication information management memory 152. It is determined that a search is made for a matching item. Then, the seventh sequence processing unit refers to the header information held in the received packet analysis storage result queue 155 and searches for the Xth communication information entry in the communication information management memory 152 that matches the header information.

そして、第7のシーケンス処理部は、探し出した第Xの通信情報エントリ(例えば、第3の通信情報エントリ(図示省略))を参照(及び必要に応じて更新)して、受信パケット抽出データを格納すべきホストメモリ112の領域を知る。次に、第7のシーケンス処理部は、アップロード(ホスト一時バッファ部122からホストメモリ112へのデータコピー)命令を発行する。このアップロード命令は、ホストメモリ112に格納すべき受信パケット抽出データの先頭メモリアドレスとデータ長とホスト一時バッファ部122のエントリ情報(第2のデータエントリ)とから成る。   Then, the seventh sequence processing unit refers to (and updates as necessary) the Xth communication information entry (for example, the third communication information entry (not shown)) that has been found, and receives the received packet extraction data. Know the area of the host memory 112 to be stored. Next, the seventh sequence processing unit issues an upload (data copy from the host temporary buffer unit 122 to the host memory 112). This upload command includes the top memory address and data length of the received packet extraction data to be stored in the host memory 112, and entry information (second data entry) in the host temporary buffer unit 122.

発行されたアップロード命令は、空き状態であったアップロード命令キュー153内の第1のアップロード命令エントリ251となり、ホスト一時バッファ部122及びDMA制御部124を介してホストバス114に対して発行される。このときホスト一時バッファ部122は、第1の受信パケット抽出データを準備する。これによって、DMA制御部124及びホストバス114を介してホストメモリ112に第1の受信パケット抽出データが格納される(405)。第1の受信パケット抽出データをホストメモリ112に渡し終えると、ホスト一時バッファ部122はアップロード命令に従ってアップロードが完了した旨を通信制御部121に報告する。   The issued upload command becomes the first upload command entry 251 in the upload command queue 153 that has been vacant, and is issued to the host bus 114 via the host temporary buffer unit 122 and the DMA control unit 124. At this time, the host temporary buffer unit 122 prepares first received packet extraction data. As a result, the first received packet extraction data is stored in the host memory 112 via the DMA controller 124 and the host bus 114 (405). When the first received packet extraction data has been passed to the host memory 112, the host temporary buffer unit 122 reports to the communication control unit 121 that the upload has been completed in accordance with the upload command.

アップロードの完了報告を受けると、アップロード命令キュー153は第1のアップロード命令エントリ251を消す。第7のシーケンス処理部は続いて通信情報管理用メモリ152内の第Xの通信情報エントリを参照及び更新して、その第Xの通信情報エントリにパケット受信及びそれに対応した旨を反映する。   Upon receiving the upload completion report, the upload command queue 153 deletes the first upload command entry 251. The seventh sequence processing unit subsequently refers to and updates the Xth communication information entry in the communication information management memory 152, and reflects that the packet has been received and corresponding to the Xth communication information entry.

また第7のシーケンス処理部は、ホスト一時バッファ部122に対して、ホスト一時バッファ部122のエントリ情報(第2のデータエントリ)を消すように指示する。ホスト一時バッファ部122はその指示に従ってエントリ情報を消す。その結果、第7のホスト一時バッファ用メモリは空き状態に移る。   The seventh sequence processing unit instructs the host temporary buffer unit 122 to delete the entry information (second data entry) in the host temporary buffer unit 122. The host temporary buffer unit 122 erases the entry information according to the instruction. As a result, the seventh host temporary buffer memory shifts to an empty state.

受信パケット解析格納結果キュー155のエントリに対して対応処理を実行するために起動された第7のシーケンス処理部は最後にその役目を終えてアイドル状態に移る。その移行を受けて、受信パケット解析格納結果キュー155はそれに対応する受信パケット解析格納結果エントリ271を消す。   The seventh sequence processing unit activated to execute the corresponding process on the entry of the received packet analysis storage result queue 155 finally finishes its role and shifts to the idle state. In response to the transition, the received packet analysis storage result queue 155 deletes the corresponding received packet analysis storage result entry 271.

ネットワークインターフェイス125がネットワーク104から第1の受信パケットを受信した後、第2の受信パケットの受信(411)が始まる。ネットワーク一時バッファ部123は、空き状態となっていた第8のネットワーク一時バッファ用メモリ(図示省略)に第2の受信パケットを格納する。第2の受信パケットの受信及び格納を完了すると、ネットワーク一時バッファ部123は、格納した第2の受信パケットを、アイドル状態となっていた第2の受信パケット解析部142へ渡す(412)。その後、ネットワーク一時バッファ部123は、上記の第1の受信パケットの場合と同様に、以降のパケットの受信の待ち状態となる。   After the network interface 125 receives the first received packet from the network 104, the reception (411) of the second received packet starts. The network temporary buffer unit 123 stores the second received packet in an eighth network temporary buffer memory (not shown) that is in an empty state. When the reception and storage of the second received packet are completed, the network temporary buffer unit 123 passes the stored second received packet to the second received packet analysis unit 142 that has been in the idle state (412). After that, the network temporary buffer unit 123 is in a waiting state for receiving subsequent packets, as in the case of the first received packet.

第2の受信パケットを受け取った第2の受信パケット解析部142の動作は、上記の第1の受信パケットを受け取った第1の受信パケット解析部141の動作と同じである。また、ホスト一時バッファ部122及び受信パケット解析格納結果キュー155の振る舞いも上記と同じである。   The operation of the second received packet analyzing unit 142 that has received the second received packet is the same as the operation of the first received packet analyzing unit 141 that has received the first received packet. The behaviors of the host temporary buffer unit 122 and the received packet analysis storage result queue 155 are also the same as described above.

第2の受信パケット抽出データのホスト一時バッファ部への格納、並びに、ヘッダ情報、解析結果及び格納結果の受信パケット解析格納結果キューへの保持が実行される時刻には、第1の受信パケットに関するエントリがそれぞれ第7のホスト一時バッファ用メモリ内及び第1の受信パケット解析格納結果エントリ271として存在している。このため、第2の受信パケット抽出データは、第8のホスト一時バッファ用メモリ(図示省略)に格納され、ヘッダ情報、解析結果及び格納結果は、第2の受信パケット解析格納結果エントリ272として保持される。   At the time when the second received packet extraction data is stored in the host temporary buffer unit and the header information, the analysis result, and the storage result are held in the received packet analysis storage result queue, the first received packet is related. The entries exist in the seventh host temporary buffer memory and the first received packet analysis storage result entry 271 respectively. Therefore, the second received packet extraction data is stored in an eighth host temporary buffer memory (not shown), and the header information, analysis result, and storage result are held as a second received packet analysis storage result entry 272. Is done.

図4の例では、受信パケット解析格納結果キュー155に第2の受信パケットに関する新たなエントリが発生した時刻に、第7のシーケンス処理部が第1の受信パケットに対応する処理を実行中である。このため、その時刻までアイドル状態となっていた第8のシーケンス処理部(図示省略)が第2の受信パケットに対応する処理(413)のために起動される。第8のシーケンス処理部が実行する、第2の受信パケットに対応する処理(413)は、上記の第7のシーケンス処理部が実行する、第1の受信パケットに対応する処理(404)と同様である。このように本実施形態の通信プロトコル処理回路102では、複数の機能ブロックが並行動作しながら受信処理を行う。   In the example of FIG. 4, the seventh sequence processing unit is executing processing corresponding to the first received packet at the time when a new entry related to the second received packet occurs in the received packet analysis storage result queue 155. . Therefore, the eighth sequence processing unit (not shown) that has been in the idle state until that time is activated for the process (413) corresponding to the second received packet. The process corresponding to the second received packet (413) executed by the eighth sequence processor is the same as the process corresponding to the first received packet (404) executed by the seventh sequence processor described above. It is. As described above, in the communication protocol processing circuit 102 according to the present embodiment, a plurality of functional blocks perform reception processing while operating in parallel.

図4が示す通り、本実施形態の通信プロトコル処理回路102によれば、ネットワークインターフェイス125が受信パケットを連続して受信したとしても、首尾一貫性を損なうことなく受信処理を実行できることがわかる。   As shown in FIG. 4, according to the communication protocol processing circuit 102 of this embodiment, it can be seen that even if the network interface 125 continuously receives received packets, the receiving process can be executed without impairing the consistency.

具体的には、図3を参照して説明した例と同様に、ネットワークインターフェイス125からネットワーク一時バッファ部123には32ビット幅のデータが、312.5MHzの動作周波数で出力されると仮定する。この場合、スループットは32ビット×312.5MHz=10,000Mbps=10Gbpsである。この場合、図4が示す通りそれぞれの受信パケット間に微小なマージン時間が存在するものの、通信メディア帯域に近い高速な送信スループットを達成できる。   Specifically, similarly to the example described with reference to FIG. 3, it is assumed that 32-bit data is output from the network interface 125 to the network temporary buffer unit 123 at an operating frequency of 312.5 MHz. In this case, the throughput is 32 bits × 312.5 MHz = 10,000 Mbps = 10 Gbps. In this case, as shown in FIG. 4, although there is a minute margin time between each received packet, a high-speed transmission throughput close to the communication media band can be achieved.

また、複数の受信パケット解析部141〜143と通信制御部121の動作、及び、複数の受信パケット解析部141〜143と通信制御部121とホスト一時バッファ部122とネットワーク一時バッファ部123との間の接続については、上記の312.5MHzよりも低い周波数で動作させることができる。具体的には、上記と同じくデータ幅を32ビットとしても、3個の受信パケット解析部141〜143を並列に使用しているため、それらを312.5÷3=104.2MHzで動作させても図4のタイミングチャートに示す動作が実現される。   In addition, the operations of the plurality of received packet analysis units 141 to 143 and the communication control unit 121, and between the plurality of reception packet analysis units 141 to 143, the communication control unit 121, the host temporary buffer unit 122, and the network temporary buffer unit 123. For the connection, it is possible to operate at a frequency lower than the above 312.5 MHz. Specifically, even if the data width is set to 32 bits as described above, since the three received packet analysis units 141 to 143 are used in parallel, they are operated at 312.5 ÷ 3 = 104.2 MHz. The operation shown in the timing chart of FIG. 4 is also realized.

動作周波数を低くすると、処理に要する時間が動作周波数に反比例して増加する。図4においてそれぞれの受信パケットの受信パケット解析部による解析時間が、ネットワークインターフェイス125からの入力に要する時間よりも3倍程度長く図示されているのは、そのことを表している。本発明の通信プロトコル回路によれば、処理論理量が比較的多いために回路の素子遅延が深くなりがちなこれらの処理の動作周波数を低くできるため、半導体の素子遅延及び消費電力の実現上の問題を比較的小さくすることができる。   If the operating frequency is lowered, the time required for processing increases in inverse proportion to the operating frequency. In FIG. 4, the analysis time of each received packet by the received packet analysis unit is shown to be about three times longer than the time required for input from the network interface 125. According to the communication protocol circuit of the present invention, since the processing logic amount is relatively large, the device operating delay of the circuit, which tends to be deep, can be lowered. The problem can be made relatively small.

以上説明した通信プロトコル処理回路102の送信動作及び受信動作は、通信プロトコル処理の首尾一貫性を保ちながら、並行して動作する。このような動作は、通信制御部121内の複数のシーケンス処理部201〜203及び競合調停部151が、通信情報管理用メモリ152へのアクセスの競合調停(排他制御)を実行することによって達成される。以下、このような競合調停(排他制御)について説明する。   The transmission operation and the reception operation of the communication protocol processing circuit 102 described above operate in parallel while maintaining the consistency of the communication protocol processing. Such an operation is achieved when the plurality of sequence processing units 201 to 203 and the contention arbitration unit 151 in the communication control unit 121 execute contention mediation (exclusive control) of access to the communication information management memory 152. The Hereinafter, such contention arbitration (exclusive control) will be described.

通信制御部121において最大9個のシーケンス処理が同時に実行される他に、DMA制御部124を介した通信ホスト装置101からのアクセスパスが存在する。これらに対して、第1のシーケンス処理部201には第1の一時独占通信情報エントリレジスタ211が対応付けられ、第2のシーケンス処理部202には第2の一時独占通信情報エントリレジスタ212が対応付けられ、第3〜第8のシーケンス処理部(図示省略)にはそれぞれ第3〜第8の一時独占通信情報エントリレジスタ(図示省略)が対応付けられ、第9のシーケンス処理部203には第9の一時独占通信情報エントリレジスタ213が対応付けられ、通信ホスト装置101からのアクセスパスには第10の一時独占通信情報エントリレジスタ221が対応付けられている。これら複数の一時独占通信情報エントリレジスタ211〜221の値がいずれも有効でない場合、いずれの通信情報エントリ241〜243も一時独占されていないことを意味する。複数のシーケンス処理部201〜203及び通信ホスト装置101による通信情報管理用メモリ152への複数のアクセス要求があった場合、所定のルールに則って調停が行われた結果、複数のアクセス要求のうち一つが選択される。   In addition to the simultaneous execution of up to nine sequence processes in the communication control unit 121, there is an access path from the communication host device 101 via the DMA control unit 124. On the other hand, the first temporary exclusive communication information entry register 211 is associated with the first sequence processing unit 201, and the second temporary exclusive communication information entry register 212 is associated with the second sequence processing unit 202. The third to eighth sequence processing units (not shown) are associated with the third to eighth temporary exclusive communication information entry registers (not shown), respectively. 9 temporary exclusive communication information entry registers 213 are associated with each other, and an access path from the communication host apparatus 101 is associated with a tenth temporary exclusive communication information entry register 221. If none of the values of the plurality of temporary exclusive communication information entry registers 211 to 221 is valid, it means that none of the communication information entries 241 to 243 is temporarily exclusive. When there are a plurality of access requests to the communication information management memory 152 by the plurality of sequence processing units 201 to 203 and the communication host device 101, arbitration is performed according to a predetermined rule. One is selected.

一方、複数のシーケンス処理部201〜203又は通信ホスト装置101による通信情報管理用メモリ152内のいずれかの通信情報エントリの一時独占要求があり、かつ、その通信情報エントリの番号が他の一時独占要求及び一時独占通信情報エントリレジスタ211〜221が保持している有効な値と競合していない場合、その要求元に対応する一時独占通信情報エントリレジスタにその通信情報エントリの番号が有効値として設定される。   On the other hand, there is a temporary monopoly request for one of the communication information entries in the communication information management memory 152 by the plurality of sequence processing units 201 to 203 or the communication host device 101, and the number of the communication information entry is another temporary monopoly. If the request and temporary exclusive communication information entry registers 211 to 221 do not conflict with valid values held therein, the communication information entry number is set as a valid value in the temporary exclusive communication information entry register corresponding to the request source. Is done.

一時独占を要求された通信情報エントリの番号が、一時独占通信情報エントリレジスタ211〜221が保持している有効な値と競合していないが、他の一時独占要求と競合している場合、所定のルールに則って調停が行われた結果、同じ番号の通信情報エントリに対する複数の一時独占要求のうち一つが選択される。そして、一時独占要求の要求元に対応する一時独占通信情報エントリレジスタに、選択された通信情報エントリの番号が有効値として設定される。   The number of the communication information entry requested to be temporarily exclusive does not conflict with a valid value held in the temporary exclusive communication information entry registers 211 to 221, but is determined to conflict with other temporary exclusive requests. As a result of arbitration in accordance with the above rule, one of a plurality of temporary exclusive requests for the communication information entries with the same number is selected. Then, the number of the selected communication information entry is set as a valid value in the temporary exclusive communication information entry register corresponding to the request source of the temporary exclusive request.

一時独占を要求された通信情報エントリの番号が、一時独占通信情報エントリレジスタ211〜221が保持している有効な値と競合している場合、その要求は競合待ち状態となる。   If the number of the communication information entry for which the temporary monopoly is requested conflicts with a valid value held in the temporary monopoly communication information entry registers 211 to 221, the request is in a competition waiting state.

このように、シーケンス処理部201〜203又は通信ホスト装置101が通信情報管理用メモリ152内の通信情報エントリを一時独占すると、競合調停部151は、一時独占通信情報エントリレジスタが保持する番号と、通信情報エントリオフセットレジスタ231と通信情報エントリサイズレジスタ232の値とに基づいて、一時独占している通信情報エントリの格納アドレスを導出し、そのアドレスに対する他のシーケンス処理部201〜203又は通信ホスト装置101からのアクセス要求を競合待ち状態とする。   As described above, when the sequence processing units 201 to 203 or the communication host device 101 temporarily monopolizes the communication information entry in the communication information management memory 152, the contention arbitration unit 151 includes the number held in the temporary exclusive communication information entry register, Based on the values of the communication information entry offset register 231 and the communication information entry size register 232, the storage address of the communication information entry temporarily occupied is derived, and another sequence processing unit 201 to 203 or the communication host device for the address is derived. The access request from 101 is put in a competition wait state.

通信情報エントリを一時独占したシーケンス処理部201〜203又は通信ホスト装置101は、通信情報管理用メモリ152内の独占した通信情報エントリを参照及び更新した後、独占する必要がなくなると、独占の解除を要求する。その結果、解除を要求したシーケンス処理部201〜203又は通信ホスト装置101に対応する一時独占通信情報エントリレジスタは無効値となる。   When the sequence processing units 201 to 203 or the communication host device 101 that temporarily monopolized the communication information entry do not need to monopolize after referring to and updating the monopolized communication information entry in the communication information management memory 152, the monopoly is released. Request. As a result, the temporary exclusive communication information entry register corresponding to the sequence processing units 201 to 203 or the communication host device 101 that has requested cancellation becomes an invalid value.

上記の競合調停(排他制御)の具体例を、図3を参照して説明する。   A specific example of the contention arbitration (exclusive control) will be described with reference to FIG.

以下、図3に示した全ての送信パケットが、同一のサービスに関する(言い換えると、同一の通信情報エントリに関する)パケットである場合を例として説明する。   Hereinafter, a case will be described as an example in which all transmission packets shown in FIG. 3 are packets related to the same service (in other words, related to the same communication information entry).

第1のシーケンス処理部201は、例えば、第1の通信情報エントリ241に関してパケットを送信すると判断すると、第2のシーケンス処理部202を起動し、第1の通信情報エントリ241に関してパケットを送信する旨を指示する。この指示に従って送信されるパケットを、以下、第1の送信パケットと記載する。   For example, when the first sequence processing unit 201 determines to transmit a packet with respect to the first communication information entry 241, the first sequence processing unit 201 activates the second sequence processing unit 202 and transmits a packet with respect to the first communication information entry 241. Instruct. A packet transmitted in accordance with this instruction is hereinafter referred to as a first transmission packet.

この指示を受信した第2のシーケンス処理部202は、第1の一時独占通信情報エントリレジスタ211から第10の一時独占通信情報エントリレジスタ221までを参照して、いずれの一時独占通信情報エントリレジスタにも第1の通信情報エントリ241を識別する番号が登録されていないことを確認する。   Receiving this instruction, the second sequence processing unit 202 refers to the first temporary exclusive communication information entry register 211 to the tenth temporary exclusive communication information entry register 221 to which temporary exclusive communication information entry register. Also, it is confirmed that the number for identifying the first communication information entry 241 is not registered.

いずれかの一時独占通信情報エントリレジスタに第1の通信情報エントリ241を識別する番号が登録されている場合、第1の通信情報エントリ241は、第2のシーケンス処理部202以外のシーケンス処理部によって排他制御されている。言い換えると、第1の通信情報エントリ241は、第2のシーケンス処理部202以外のシーケンス処理部によって独占的に使用されている。この場合、第2のシーケンス処理部202は、第1の通信情報エントリ241を参照も更新もすることができない。このため、第2のシーケンス処理部202は、第1の通信情報エントリ241の排他制御が終了するまでアイドル状態で待機する。   When a number identifying the first communication information entry 241 is registered in any of the temporary exclusive communication information entry registers, the first communication information entry 241 is received by a sequence processing unit other than the second sequence processing unit 202. Exclusive control. In other words, the first communication information entry 241 is exclusively used by sequence processing units other than the second sequence processing unit 202. In this case, the second sequence processing unit 202 cannot refer to or update the first communication information entry 241. For this reason, the second sequence processing unit 202 waits in an idle state until the exclusive control of the first communication information entry 241 is completed.

いずれの一時独占通信情報エントリレジスタにも第1の通信情報エントリ241を識別する番号が登録されていない場合、第2のシーケンス処理部202は、第2のシーケンス処理部202に対応する第2の一時独占通信情報エントリレジスタ212に第1の通信情報エントリ241を識別する番号を登録する。これによって、第1の通信情報エントリ241が排他制御される。言い換えると、第1の通信情報エントリ241を識別する番号が第2の一時独占通信情報エントリレジスタ212に登録されてから削除されるまでの間、第1の通信情報エントリ241は、第2のシーケンス処理部202によって独占的に使用される。その間、第2のシーケンス処理部202以外のシーケンス処理部は、第1の通信情報エントリ241を参照及び更新することが禁止される。   When the number identifying the first communication information entry 241 is not registered in any temporary exclusive communication information entry register, the second sequence processing unit 202 selects the second sequence processing unit 202 corresponding to the second sequence processing unit 202. A number for identifying the first communication information entry 241 is registered in the temporary exclusive communication information entry register 212. As a result, the first communication information entry 241 is exclusively controlled. In other words, the first communication information entry 241 is stored in the second sequence until the number identifying the first communication information entry 241 is registered in the second temporary exclusive communication information entry register 212 and then deleted. Used exclusively by the processing unit 202. Meanwhile, sequence processing units other than the second sequence processing unit 202 are prohibited from referring to and updating the first communication information entry 241.

第2のシーケンス処理部202は、第1の通信情報エントリ241の排他制御を開始した後、第1の通信情報エントリ241を参照及び更新する。具体的には、第1の通信情報エントリ241に含まれる送信パケットの管理情報を更新する。送信パケットの管理情報は、生成が開始された送信パケットを識別する情報、及び、送信が終了した送信パケットを識別する情報を含む。以下の説明では、送信パケットの管理情報を、(A、B)の形式で記載する。この場合、「A」は生成が開始された送信パケットの番号、「B」はネットワーク一時バッファ部123への出力が終了した送信パケットの番号である。送信パケットの管理情報の初期値は(0、0)である。   The second sequence processing unit 202 refers to and updates the first communication information entry 241 after starting exclusive control of the first communication information entry 241. Specifically, the management information of the transmission packet included in the first communication information entry 241 is updated. The transmission packet management information includes information for identifying a transmission packet for which generation has been started and information for identifying a transmission packet for which transmission has ended. In the following description, the management information of the transmission packet is described in the format (A, B). In this case, “A” is the number of the transmission packet that has been generated, and “B” is the number of the transmission packet that has been output to the network temporary buffer unit 123. The initial value of the management information of the transmission packet is (0, 0).

上記のように第1の送信パケットを送信する旨を指示された場合、第2のシーケンス処理部202は、送信パケットの管理情報を参照する。参照された送信パケットの管理情報が(0、0)であった場合、第2のシーケンス処理部202は、送信パケットの管理情報を(1、0)に更新する。(1、0)は、第1の送信パケットの生成が開始されたが、その出力がまだ終了していないことを示す。   When instructed to transmit the first transmission packet as described above, the second sequence processing unit 202 refers to the management information of the transmission packet. When the management information of the referred transmission packet is (0, 0), the second sequence processing unit 202 updates the management information of the transmission packet to (1, 0). (1, 0) indicates that the generation of the first transmission packet has started, but its output has not yet ended.

このように送信パケットの管理情報を参照及び更新した後、第2のシーケンス処理部202は、第2の一時独占通信情報エントリレジスタ212から第1の通信情報エントリ241を識別する番号を削除する。具体的には、第2のシーケンス処理部202は、第2の一時独占通信情報エントリレジスタ212に無効値を登録する。これによって第2の一時独占通信情報エントリレジスタ212から第1の通信情報エントリ241を識別する番号が削除され、その結果、第2のシーケンス処理部202による第1の通信情報エントリ241の排他制御が終了する。   After referring to and updating the management information of the transmission packet in this way, the second sequence processing unit 202 deletes the number for identifying the first communication information entry 241 from the second temporary exclusive communication information entry register 212. Specifically, the second sequence processing unit 202 registers an invalid value in the second temporary exclusive communication information entry register 212. As a result, the number for identifying the first communication information entry 241 is deleted from the second temporary exclusive communication information entry register 212. As a result, the second sequence processing unit 202 performs exclusive control of the first communication information entry 241. finish.

その後、既に説明したように、第2のシーケンス処理部202は、第1の送信対象データのダウンロード(303)及び第1の送信パケットの生成(304)を指示する。   Thereafter, as already described, the second sequence processing unit 202 instructs the download of the first transmission target data (303) and the generation of the first transmission packet (304).

図3の例では、第1の送信対象データのダウンロード及び第1の送信パケットの生成が実行されている間、第1のシーケンス処理部201は、第2の送信パケットを送信する指示、第3の送信パケットを送信する指示、第4の送信パケットを送信する指示、及び、第5の送信パケットを送信する指示を順次発行する。   In the example of FIG. 3, while the download of the first transmission target data and the generation of the first transmission packet are being executed, the first sequence processing unit 201 instructs to transmit the second transmission packet, An instruction for transmitting the fourth transmission packet, an instruction for transmitting the fourth transmission packet, and an instruction for transmitting the fifth transmission packet are sequentially issued.

第2の送信パケットを送信する指示を受けた第3のシーケンス処理部(図示省略)は、上記の第2のシーケンス処理部202と同様、第1の通信情報エントリ241の排他制御を開始し、その内容を参照する。図3の例では、この時点で、送信パケットの管理情報は(1、0)である。第3のシーケンス処理部は、送信パケットの管理情報を(2、0)に更新する。   Upon receiving an instruction to transmit the second transmission packet, the third sequence processing unit (not shown) starts exclusive control of the first communication information entry 241 as with the second sequence processing unit 202 described above. Refer to its contents. In the example of FIG. 3, the management information of the transmission packet is (1, 0) at this time. The third sequence processing unit updates the management information of the transmission packet to (2, 0).

同様に、第4のシーケンス処理部(図示省略)、第5のシーケンス処理部(図示省略)及び第6のシーケンス処理部(図示省略)が、それぞれ、送信パケットの管理情報を(3、0)、(4、0)及び(5、0)に順次更新する。   Similarly, a fourth sequence processing unit (not shown), a fifth sequence processing unit (not shown), and a sixth sequence processing unit (not shown) respectively transmit management information of transmission packets to (3, 0). , (4, 0) and (5, 0) are sequentially updated.

一方、第2のシーケンス処理部202は、第1の送信パケットの生成(304)が終了し、生成された第1の送信パケットのネットワーク一時バッファ部123への出力が終了すると、第1の通信情報エントリ241に含まれる送信パケットの管理情報を参照及び更新する。しかし、その時点で第1の通信情報エントリ241が第6のシーケンス処理部によって排他制御されている場合、第2のシーケンス処理部202はその排他制御が終了するまでアイドル状態で待機する。   On the other hand, when the generation (304) of the first transmission packet ends and the output of the generated first transmission packet to the network temporary buffer unit 123 ends, the second sequence processing unit 202 performs the first communication. The management information of the transmission packet included in the information entry 241 is referred to and updated. However, when the first communication information entry 241 is exclusively controlled by the sixth sequence processing unit at that time, the second sequence processing unit 202 stands by in an idle state until the exclusive control is finished.

第6のシーケンス処理部による排他制御が終了すると、第2のシーケンス処理部202は、第1の通信情報エントリ241の排他制御を開始し、送信パケットの管理情報を参照及び更新する。このとき、参照された送信パケットの管理情報は(5、0)であるため、第2のシーケンス処理部202は、それを(5、1)に更新する。これは、第1から第5の送信パケットの生成が開始され、第1の送信パケットの出力が終了したことを示す。   When the exclusive control by the sixth sequence processing unit ends, the second sequence processing unit 202 starts the exclusive control of the first communication information entry 241 and refers to and updates the management information of the transmission packet. At this time, since the management information of the referenced transmission packet is (5, 0), the second sequence processing unit 202 updates it to (5, 1). This indicates that the generation of the first to fifth transmission packets is started and the output of the first transmission packet is finished.

このように、図3の例では、各シーケンス処理部が通信情報エントリを参照してから、参照された通信情報エントリを更新するまでの間、他のシーケンス処理部がその通信情報エントリを参照も更新もできないように排他制御される。   As described above, in the example of FIG. 3, during the period from when each sequence processing unit refers to the communication information entry to when the referenced communication information entry is updated, other sequence processing units can also refer to the communication information entry. It is controlled exclusively so that it cannot be updated.

ここで、上記のような排他制御が実行されない場合に発生する問題を説明する。   Here, a problem that occurs when the above exclusive control is not executed will be described.

上記のように、第6のシーケンス処理部は、送信パケットの管理情報の値(4、0)を参照し、これを(5、0)に更新する。第1の通信情報エントリ241の排他制御がされていない場合、第2のシーケンス処理部202は、第1の送信パケットの出力が終了すると、第6のシーケンス処理部による参照から更新までの間に、送信パケットの管理情報を参照することができる。その結果、例えば、第6のシーケンス処理部が送信パケットの管理情報(4、0)を参照し、次に第2のシーケンス処理部202が送信パケットの管理情報(4、0)を参照し、次に第6のシーケンス処理部が送信パケットの管理情報を(4、0)から(5、0)に更新する場合がある。   As described above, the sixth sequence processing unit refers to the value (4, 0) of the management information of the transmission packet and updates it to (5, 0). When the exclusive control of the first communication information entry 241 is not performed, the second sequence processing unit 202 ends the output from the reference to the update by the sixth sequence processing unit when the output of the first transmission packet is completed. The management information of the transmission packet can be referred to. As a result, for example, the sixth sequence processing unit refers to the transmission packet management information (4, 0), and then the second sequence processing unit 202 refers to the transmission packet management information (4, 0). Next, the sixth sequence processing unit may update the management information of the transmission packet from (4, 0) to (5, 0).

この場合、第2のシーケンス処理部202は、既に送信パケットの管理情報として(4、0)を参照しているため、それが(5、0)に更新されたことを知らずに、(4、0)から(4、1)に更新する。これによって、実際には既に第5の送信パケットの生成が開始されているにもかかわらず、そのことを示す情報が失われる。このように、通信情報エントリの排他制御を実行しない場合、通信プロトコルの処理の首尾一貫性が失われる場合がある。   In this case, since the second sequence processing unit 202 has already referred to (4, 0) as the management information of the transmission packet, without knowing that it has been updated to (5, 0), (4, Update from 0) to (4, 1). As a result, although the generation of the fifth transmission packet has actually started, information indicating that fact is lost. As described above, when the exclusive control of the communication information entry is not executed, the consistency of the processing of the communication protocol may be lost.

しかし、上記のように通信情報エントリを排他制御することによって、複数の送信パケットの生成を並列に処理した場合でも、通信プロトコル処理の首尾一貫性が維持される。   However, by exclusively controlling the communication information entry as described above, the consistency of the communication protocol processing is maintained even when the generation of a plurality of transmission packets is processed in parallel.

同様に、受信したパケットを処理する場合にも通信情報エントリの排他制御が実行される(図4参照)。この場合、各通信情報エントリは、受信パケットの管理情報を含む。受信パケットの管理情報は、受信パケット解析部が受信したパケットを識別する情報、及び、ホスト一時バッファ部122からホストバス114への出力(すなわちアップロード)が終了したパケットを識別する情報を含む。例えば、受信パケット管理情報が(C、D)の形式で表示される場合、「C」は受信パケット解析部が受信したパケットの番号、「D」はアップロードが終了したパケットの番号である。   Similarly, the exclusive control of the communication information entry is executed when the received packet is processed (see FIG. 4). In this case, each communication information entry includes received packet management information. The received packet management information includes information for identifying a packet received by the received packet analysis unit, and information for identifying a packet that has been output (ie, uploaded) from the host temporary buffer unit 122 to the host bus 114. For example, when the received packet management information is displayed in the format of (C, D), “C” is the number of the packet received by the received packet analysis unit, and “D” is the number of the packet that has been uploaded.

図4の例では、第1の受信パケット解析部141が第1の受信パケットを受信する処理(すなわち、第1の受信パケットのペイロードから抽出されたデータのホスト一時バッファ部への出力)を終了すると、第7のシーケンス処理部(図示省略)が、第1の受信パケットに対応する通信情報エントリを参照及び更新する。例えば、第1の受信パケットによって指定されたポート番号に基づいて、第1の受信パケットとサービスとが対応付けられ、そのサービスに対応する通信情報エントリ(例えば第1の通信情報エントリ241)が特定される。   In the example of FIG. 4, the first received packet analysis unit 141 finishes the process of receiving the first received packet (that is, the output of the data extracted from the payload of the first received packet to the host temporary buffer unit). Then, the seventh sequence processing unit (not shown) refers to and updates the communication information entry corresponding to the first received packet. For example, based on the port number specified by the first received packet, the first received packet is associated with the service, and the communication information entry (for example, the first communication information entry 241) corresponding to the service is specified. Is done.

参照された受信パケットの管理情報が(0、0)であった場合、第7のシーケンス処理部は、受信パケットの管理情報を(1、0)に更新する。(1、0)は、第1の受信パケットが受信されたが、第1の受信パケットから抽出されたデータのアップロードがまだ終了していないことを示す。   When the management information of the received packet referred to is (0, 0), the seventh sequence processing unit updates the management information of the received packet to (1, 0). (1, 0) indicates that the first received packet has been received, but the upload of data extracted from the first received packet has not yet been completed.

図4の例では、第1の受信パケット解析部141が第1の受信パケットを受信した後、その第1の受信パケットからのデータの抽出が終了する前に、第2の受信パケット解析部142が第2の受信パケットを受信することができる。この場合、第8のシーケンス処理部(図示省略)が受信パケットの管理情報を参照し、その値を(2、0)に更新する。   In the example of FIG. 4, after the first received packet analysis unit 141 receives the first received packet, before the extraction of data from the first received packet ends, the second received packet analysis unit 142. Can receive the second received packet. In this case, an eighth sequence processing unit (not shown) refers to the management information of the received packet and updates its value to (2, 0).

その後、第1の受信パケットから抽出されたデータのアップロードが終了すると、第7のシーケンス処理部は、通信情報エントリを参照する。参照された通信情報エントリ内の受信パケットの管理情報が(2、0)であった場合、第7のシーケンス処理部は、その値を(2、1)に更新する。   Thereafter, when the upload of the data extracted from the first received packet is completed, the seventh sequence processing unit refers to the communication information entry. If the management information of the received packet in the referenced communication information entry is (2, 0), the seventh sequence processing unit updates the value to (2, 1).

図4の処理においても、各シーケンス処理部が通信情報エントリを参照してから更新するまでの間に、他のシーケンス処理部がその通信情報エントリを参照も更新もできないように排他制御が実行される。これによって、複数の受信パケットの処理を並列に実行した場合でも、通信プロトコル処理の首尾一貫性が維持される。   Also in the processing of FIG. 4, exclusive control is performed so that other sequence processing units cannot refer to or update the communication information entry between each sequence processing unit referring to the communication information entry and updating it. The Thereby, even when processing of a plurality of received packets is executed in parallel, the consistency of communication protocol processing is maintained.

競合調停(排他制御)の他の具体例を説明する。第1の通信情報エントリ241のフィールドのうち、首尾一貫性を維持するために排他制御すべき情報フィールドには、送信する旨を判断済み(ひいてはダウンロードし、送信し、通信相手に到達しているかもしれない)のデータ長と、通信相手から受信済みで解析・解釈済みの、送信データに対する受信確認応答番号とを含む場合、各シーケンス処理部によるその情報フィールドの参照及び更新を、上記の排他制御と同様に行う。この排他制御は、パケットの送信を命令するシーケンス処理部と、パケットの受信によってその対応処理を判断するシーケンス処理部との間で排他制御を行う。   Another specific example of contention arbitration (exclusive control) will be described. Of the fields of the first communication information entry 241, the information field to be exclusively controlled in order to maintain consistency is already determined to be transmitted (as a result, downloaded, transmitted, and reached the communication partner). Data length) and the reception confirmation response number for transmission data that has been received and analyzed / interpreted from the other end of communication, the reference and update of the information field by each sequence processing unit is excluded from the above The same as the control. In this exclusive control, exclusive control is performed between a sequence processing unit that commands transmission of a packet and a sequence processing unit that determines the corresponding processing by receiving a packet.

上記のように、本実施形態の通信プロトコル回路は、並列化された箇所同士で高効率に通信情報を排他制御することによって、情報破綻させることなく首尾一貫性を維持しながら通信プロトコルを処理することができる。   As described above, the communication protocol circuit according to the present embodiment processes the communication protocol while maintaining consistency without causing information breakdown by performing exclusive control of the communication information with high efficiency between the parallel parts. be able to.

本発明は、通信プロトコル処理を行う回路に限らず、ホスト端末に接続する通信プロトコル処理拡張ボード、通信端末装置、又は通信中継装置にも適用できる。   The present invention is not limited to a circuit that performs communication protocol processing, but can also be applied to a communication protocol processing expansion board, a communication terminal device, or a communication relay device connected to a host terminal.

本発明の実施形態の通信装置及び通信プロトコル処理回路の構成を示したブロック図である。It is the block diagram which showed the structure of the communication apparatus and communication protocol processing circuit of embodiment of this invention. 本発明の実施形態の通信プロトコル処理回路内の通信制御部の詳細構成を示したブロック図である。It is the block diagram which showed the detailed structure of the communication control part in the communication protocol processing circuit of embodiment of this invention. 本発明の実施形態の通信プロトコル処理回路の送信動作を示したタイミングチャートである。6 is a timing chart illustrating a transmission operation of the communication protocol processing circuit according to the embodiment of the present invention. 本発明の実施形態の通信プロトコル処理回路の受信動作を示したタイミングチャートである。5 is a timing chart illustrating a reception operation of the communication protocol processing circuit according to the embodiment of the present invention.

102 通信プロトコル処理回路
121 通信制御部
122 ホスト一時バッファ部
123 ネットワーク一時バッファ部
124 DMA制御部
125 ネットワークインターフェイス
151 競合調停部
102 Communication Protocol Processing Circuit 121 Communication Control Unit 122 Host Temporary Buffer Unit 123 Network Temporary Buffer Unit 124 DMA Control Unit 125 Network Interface 151 Contention Arbitration Unit

Claims (9)

複数の送信パケット生成部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、前記送信パケット生成部が生成及び出力すべきパケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記各送信パケット生成部は、前記各シーケンス処理部からの命令に基づいて、パケットを生成及び出力し、
前記各シーケンス処理部は、
前記通信情報を参照して、前記送信パケット生成部が生成及び出力すべきパケットを判断し、
前記生成及び出力すべきパケットの生成及び出力を前記送信パケット生成部に命令し、
前記通信情報を、前記生成及び出力を命令したことを識別するための情報に更新し、
前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定し、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待ち、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行し、
前記通信情報の参照及び更新が終了した後、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする通信プロトコル処理回路。
A plurality of transmission packet generation units, a plurality of sequence processing units, a contention arbitration unit, and a memory,
Communication information is stored in the memory,
The communication information includes information for identifying a packet to be generated and output by the transmission packet generator,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
Each transmission packet generation unit generates and outputs a packet based on an instruction from each sequence processing unit,
Each of the sequence processing units
With reference to the communication information, the transmission packet generator determines a packet to be generated and output,
Instructing the transmission packet generator to generate and output the packet to be generated and output;
Updating the communication information to information for identifying that the generation and output are instructed;
Before referring to and updating the communication information, it is determined based on the information stored in the contention arbitration unit whether the reference and update of the communication information is exclusively controlled by the other sequence processing unit And
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, waiting for reference and update of the communication information until the exclusive control is released,
When reference and update of the communication information are not exclusively controlled by the other sequence processing unit, exclusive control of reference and update of the communication information by updating information stored in the contention arbitration unit After starting, the communication information is referenced and updated,
After the reference and update of the communication information is completed, the communication protocol processing circuit is configured to release exclusive control of the reference and update of the communication information by updating the information stored in the contention arbitration unit. .
複数の受信パケット解析部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、対応処理を行うべき受信パケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記各受信パケット解析部は、パケットを受信すると、前記受信したパケットを解析し、
前記各シーケンス処理部は、
前記各受信パケット解析部がパケットを受信して解析した後に前記通信情報を参照して、前記受信したパケットの対応処理を判断し、
前記受信したパケットの対応処理を行い、
前記通信情報を、前記パケットが受信されたことを識別するための情報に更新し、
前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定し、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待ち、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行し、
前記通信情報の参照及び更新が終了した後、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする通信プロトコル処理回路。
A plurality of received packet analysis units, a plurality of sequence processing units, a contention arbitration unit, and a memory,
Communication information is stored in the memory,
The communication information includes information for identifying a received packet to be subjected to corresponding processing,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
Each received packet analyzer receives the packet, analyzes the received packet,
Each of the sequence processing units
Each received packet analysis unit receives and analyzes the packet and then refers to the communication information to determine the corresponding processing of the received packet,
The corresponding processing of the received packet is performed,
Updating the communication information to information for identifying that the packet has been received;
Before referring to and updating the communication information, it is determined based on the information stored in the contention arbitration unit whether the reference and update of the communication information is exclusively controlled by the other sequence processing unit And
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, waiting for reference and update of the communication information until the exclusive control is released,
When reference and update of the communication information are not exclusively controlled by the other sequence processing unit, exclusive control of reference and update of the communication information by updating information stored in the contention arbitration unit After starting, the communication information is referenced and updated,
After the reference and update of the communication information is completed, the communication protocol processing circuit is configured to release exclusive control of the reference and update of the communication information by updating the information stored in the contention arbitration unit. .
前記競合調停部は、各々が前記複数のシーケンス処理部に対応する複数のレジスタを含み、
前記各シーケンス処理部は、
前記各シーケンス処理部に対応する前記レジスタに、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を格納することによって、前記通信情報の参照及び更新の排他的な制御を開始し、
前記各シーケンス処理部に対応する前記レジスタから、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を削除することによって、前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする請求項1又は2に記載の通信プロトコル処理回路。
The contention arbitration unit includes a plurality of registers each corresponding to the plurality of sequence processing units,
Each of the sequence processing units
By storing information for identifying that each sequence processing unit exclusively controls reference and update of the communication information in the register corresponding to each sequence processing unit, Start exclusive control of reference and update,
By deleting information for identifying that each sequence processing unit exclusively controls reference and update of the communication information from the register corresponding to each sequence processing unit, 3. The communication protocol processing circuit according to claim 1, wherein exclusive control of reference and update is canceled.
ネットワークに接続される情報処理装置であって、
前記情報処理装置は、前記ネットワークに接続されるインターフェイスと、前記インターフェイスを介して送信されるパケットを生成する複数の送信パケット生成部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、前記送信パケット生成部が生成及び出力すべきパケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記各送信パケット生成部は、前記各シーケンス処理部からの命令に基づいて、パケットを生成し、
前記インターフェイスは、前記各送信パケット生成部が生成したパケットを前記ネットワークに出力し、
前記各シーケンス処理部は、
前記通信情報を参照して、前記送信パケット生成部が生成及び出力すべきパケットを判断し、
前記生成及び出力すべきパケットの生成及び出力を前記送信パケット生成部に命令し、
前記通信情報を、前記生成及び出力を命令したことを識別するための情報に更新し、
前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定し、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待ち、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行し、
前記通信情報の参照及び更新が終了した後、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする情報処理装置。
An information processing apparatus connected to a network,
The information processing apparatus includes an interface connected to the network, a plurality of transmission packet generation units that generate packets transmitted via the interface, a plurality of sequence processing units, a contention arbitration unit, a memory, With
Communication information is stored in the memory,
The communication information includes information for identifying a packet to be generated and output by the transmission packet generator,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
Each transmission packet generation unit generates a packet based on an instruction from each sequence processing unit,
The interface outputs the packet generated by each transmission packet generation unit to the network,
Each of the sequence processing units
With reference to the communication information, the transmission packet generator determines a packet to be generated and output,
Instructing the transmission packet generator to generate and output the packet to be generated and output;
Updating the communication information to information for identifying that the generation and output are instructed;
Before referring to and updating the communication information, it is determined based on the information stored in the contention arbitration unit whether the reference and update of the communication information is exclusively controlled by the other sequence processing unit And
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, waiting for reference and update of the communication information until the exclusive control is released,
When reference and update of the communication information are not exclusively controlled by the other sequence processing unit, exclusive control of reference and update of the communication information by updating information stored in the contention arbitration unit After starting, the communication information is referenced and updated,
An information processing apparatus, wherein after the reference and update of the communication information is completed, exclusive control of the reference and update of the communication information is canceled by updating the information stored in the contention arbitration unit.
ネットワークに接続される情報処理装置であって、
前記情報処理装置は、前記ネットワークに接続されるインターフェイスと、前記インターフェイスを介して受信したパケットを解析する複数の受信パケット解析部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、対応処理を行うべき受信パケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記インターフェイスは、前記ネットワークからパケットを受信し、
前記各受信パケット解析部は、前記インターフェイスが受信したパケットを解析し、
前記各シーケンス処理部は、
前記各受信パケット解析部がパケットを受信して解析した後に前記通信情報を参照して、前記受信したパケットの対応処理を判断し、
前記受信したパケットの対応処理を行い、
前記通信情報を、前記パケットが受信されたことを識別するための情報に更新し、
前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定し、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待ち、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行し、
前記通信情報の参照及び更新が終了した後、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする情報処理装置。
An information processing apparatus connected to a network,
The information processing apparatus includes: an interface connected to the network; a plurality of received packet analysis units that analyze packets received via the interface; a plurality of sequence processing units; a contention arbitration unit; and a memory. Prepared,
Communication information is stored in the memory,
The communication information includes information for identifying a received packet to be subjected to corresponding processing,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
The interface receives packets from the network;
Each received packet analysis unit analyzes a packet received by the interface;
Each of the sequence processing units
Each received packet analysis unit receives and analyzes the packet and then refers to the communication information to determine the corresponding processing of the received packet,
The corresponding processing of the received packet is performed,
Updating the communication information to information for identifying that the packet has been received;
Before referring to and updating the communication information, it is determined based on the information stored in the contention arbitration unit whether the reference and update of the communication information is exclusively controlled by the other sequence processing unit And
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, waiting for reference and update of the communication information until the exclusive control is released,
When reference and update of the communication information are not exclusively controlled by the other sequence processing unit, exclusive control of reference and update of the communication information by updating information stored in the contention arbitration unit After starting, the communication information is referenced and updated,
An information processing apparatus, wherein after the reference and update of the communication information is completed, exclusive control of the reference and update of the communication information is canceled by updating the information stored in the contention arbitration unit.
前記競合調停部は、各々が前記複数のシーケンス処理部に対応する複数のレジスタを含み、
前記各シーケンス処理部は、
前記各シーケンス処理部に対応する前記レジスタに、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を格納することによって、前記通信情報の参照及び更新の排他的な制御を開始し、
前記各シーケンス処理部に対応する前記レジスタから、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を削除することによって、前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする請求項4又は5に記載の情報処理装置。
The contention arbitration unit includes a plurality of registers each corresponding to the plurality of sequence processing units,
Each of the sequence processing units
By storing information for identifying that each sequence processing unit exclusively controls reference and update of the communication information in the register corresponding to each sequence processing unit, Start exclusive control of reference and update,
By deleting information for identifying that each sequence processing unit exclusively controls reference and update of the communication information from the register corresponding to each sequence processing unit, 6. The information processing apparatus according to claim 4, wherein exclusive control of reference and update is canceled.
通信プロトコル処理回路が実行する通信プロトコル処理方法であって、
前記通信プロトコル処理回路は、複数の送信パケット生成部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、前記送信パケット生成部が生成及び出力すべきパケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記通信プロトコル処理方法は、
前記各送信パケット生成部が、前記各シーケンス処理部からの命令に基づいて、パケットを生成及び出力する手順と、
前記各シーケンス処理部が、前記通信情報を参照して、前記送信パケット生成部が生成及び出力すべきパケットを判断する手順と、
前記各シーケンス処理部が、前記生成及び出力すべきパケットの生成及び出力を前記送信パケット生成部に命令する手順と、
前記各シーケンス処理部が、前記通信情報を、前記生成及び出力を命令したことを識別するための情報に更新する手順と、
前記各シーケンス処理部が、前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定する手順と、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記各シーケンス処理部が、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待つ手順と、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記各シーケンス処理部が、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行する手順と、
前記通信情報の参照及び更新が終了した後、前記各シーケンス処理部が、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除する手順と、を含むことを特徴とする通信プロトコル処理方法。
A communication protocol processing method executed by a communication protocol processing circuit,
The communication protocol processing circuit includes a plurality of transmission packet generation units, a plurality of sequence processing units, a contention arbitration unit, and a memory,
Communication information is stored in the memory,
The communication information includes information for identifying a packet to be generated and output by the transmission packet generator,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
The communication protocol processing method includes:
Each transmission packet generation unit generates and outputs a packet based on an instruction from each sequence processing unit;
Each sequence processing unit refers to the communication information, and determines a packet that the transmission packet generation unit should generate and output;
Each sequence processing unit instructs the transmission packet generation unit to generate and output the packet to be generated and output;
The sequence processing unit updates the communication information to information for identifying that the generation and output are instructed;
Before each sequence processing unit refers to and updates the communication information, based on the information stored in the contention arbitration unit, the reference and update of the communication information are exclusively controlled by the other sequence processing unit. A procedure for determining whether or not
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, each sequence processing unit waits for reference and update of the communication information until the exclusive control is released Procedure and
When the reference and update of the communication information are not exclusively controlled by the other sequence processing unit, the sequence processing unit references the communication information by updating the information stored in the contention arbitration unit. And a procedure for performing reference and update of the communication information after starting exclusive control of the update,
After each reference and update of the communication information is completed, each sequence processing unit releases the exclusive control of the reference and update of the communication information by updating the information stored in the contention arbitration unit; And a communication protocol processing method.
通信プロトコル処理回路が実行する通信プロトコル処理方法であって、
前記通信プロトコル処理回路は、複数の受信パケット解析部と、複数のシーケンス処理部と、競合調停部と、メモリと、を備え、
前記メモリには、通信情報が格納され、
前記通信情報は、対応処理を行うべき受信パケットを識別するための情報を含み、
前記競合調停部には、前記通信情報の参照及び更新が前記複数のシーケンス処理部のいずれかによって排他的に制御されているか否かを示す情報が格納され、
前記通信プロトコル処理方法は、
前記各受信パケット解析部が、パケットを受信すると、前記受信したパケットを解析する手順と、
前記各シーケンス処理部が、前記各受信パケット解析部がパケットを受信して解析した後に前記通信情報を参照して、前記受信したパケットの対応処理を判断する手順と、
前記各シーケンス処理部が、前記受信したパケットの対応処理を行う手順と、
前記各シーケンス処理部が、前記通信情報を、前記パケットが受信されたことを識別するための情報に更新する手順と、
前記各シーケンス処理部が、前記通信情報を参照及び更新する前に、前記競合調停部に格納された情報に基づいて、前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されているか否かを判定する手順と、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されている場合、前記各シーケンス処理部が、前記排他的な制御が解除されるまで前記通信情報の参照及び更新を待つ手順と、
前記通信情報の参照及び更新が他の前記シーケンス処理部によって排他的に制御されていない場合、前記各シーケンス処理部が、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を開始した後、前記通信情報の参照及び更新を実行する手順と、
前記通信情報の参照及び更新が終了した後、前記各シーケンス処理部が、前記競合調停部に格納された情報を更新することによって前記通信情報の参照及び更新の排他的な制御を解除する手順と、を含むことを特徴とする通信プロトコル処理方法。
A communication protocol processing method executed by a communication protocol processing circuit,
The communication protocol processing circuit includes a plurality of received packet analysis units, a plurality of sequence processing units, a contention arbitration unit, and a memory,
Communication information is stored in the memory,
The communication information includes information for identifying a received packet to be subjected to corresponding processing,
The contention arbitration unit stores information indicating whether reference and update of the communication information are exclusively controlled by any of the plurality of sequence processing units,
The communication protocol processing method includes:
When each received packet analysis unit receives a packet, a procedure for analyzing the received packet;
Each sequence processing unit refers to the communication information after each received packet analysis unit receives and analyzes the packet, and determines the corresponding processing of the received packet;
Each sequence processing unit performs a procedure for handling the received packet;
Each sequence processing unit updates the communication information to information for identifying that the packet has been received,
Before each sequence processing unit refers to and updates the communication information, based on the information stored in the contention arbitration unit, the reference and update of the communication information are exclusively controlled by the other sequence processing unit. A procedure for determining whether or not
When reference and update of the communication information are exclusively controlled by the other sequence processing unit, each sequence processing unit waits for reference and update of the communication information until the exclusive control is released Procedure and
When the reference and update of the communication information are not exclusively controlled by the other sequence processing unit, the sequence processing unit references the communication information by updating the information stored in the contention arbitration unit. And a procedure for performing reference and update of the communication information after starting exclusive control of the update,
After each reference and update of the communication information is completed, each sequence processing unit releases the exclusive control of the reference and update of the communication information by updating the information stored in the contention arbitration unit; And a communication protocol processing method.
前記競合調停部は、各々が前記複数のシーケンス処理部に対応する複数のレジスタを含み、
前記各シーケンス処理部は、
前記各シーケンス処理部に対応する前記レジスタに、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を格納することによって、前記通信情報の参照及び更新の排他的な制御を開始し、
前記各シーケンス処理部に対応する前記レジスタから、前記各シーケンス処理部が前記通信情報の参照及び更新を排他的に制御していることを識別するための情報を削除することによって、前記通信情報の参照及び更新の排他的な制御を解除することを特徴とする請求項7又は8に記載の通信プロトコル処理方法。
The contention arbitration unit includes a plurality of registers each corresponding to the plurality of sequence processing units,
Each of the sequence processing units
By storing information for identifying that each sequence processing unit exclusively controls reference and update of the communication information in the register corresponding to each sequence processing unit, Start exclusive control of reference and update,
By deleting information for identifying that each sequence processing unit exclusively controls reference and update of the communication information from the register corresponding to each sequence processing unit, 9. The communication protocol processing method according to claim 7, wherein exclusive control of reference and update is canceled.
JP2009037913A 2009-02-20 2009-02-20 Communication protocol processing circuit, information processing apparatus, and communication protocol processing method Expired - Fee Related JP5054716B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009037913A JP5054716B2 (en) 2009-02-20 2009-02-20 Communication protocol processing circuit, information processing apparatus, and communication protocol processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009037913A JP5054716B2 (en) 2009-02-20 2009-02-20 Communication protocol processing circuit, information processing apparatus, and communication protocol processing method

Publications (2)

Publication Number Publication Date
JP2010193364A JP2010193364A (en) 2010-09-02
JP5054716B2 true JP5054716B2 (en) 2012-10-24

Family

ID=42818892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009037913A Expired - Fee Related JP5054716B2 (en) 2009-02-20 2009-02-20 Communication protocol processing circuit, information processing apparatus, and communication protocol processing method

Country Status (1)

Country Link
JP (1) JP5054716B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5149863B2 (en) * 2009-05-15 2013-02-20 株式会社日立製作所 Communication device and communication processing method
JP6019586B2 (en) * 2012-01-10 2016-11-02 株式会社リコー Network communication equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2993728B2 (en) * 1990-02-23 1999-12-27 株式会社日立製作所 Protocol high-speed processing unit
JP2002111774A (en) * 2000-10-02 2002-04-12 Hitachi Ltd Processor and parallel processing system
JP3849578B2 (en) * 2002-05-27 2006-11-22 日本電気株式会社 Communication control device

Also Published As

Publication number Publication date
JP2010193364A (en) 2010-09-02

Similar Documents

Publication Publication Date Title
US10469632B2 (en) Reducing network latency
US20190121781A1 (en) Time sensitive networking device
US7472205B2 (en) Communication control apparatus which has descriptor cache controller that builds list of descriptors
JP5278222B2 (en) Wireless communication apparatus, wireless communication method, and wireless communication program
WO2017000593A1 (en) Packet processing method and device
US8595401B2 (en) Input output bridging
EP1665681B1 (en) Speculative pre-fetch of a protocol control block from an external memory unit
JP2006338538A (en) Stream processor
JP2014175781A (en) Parallel packet processing apparatus, method and program
JP2009218743A (en) Ip protocol processor and its processing method
JP5054716B2 (en) Communication protocol processing circuit, information processing apparatus, and communication protocol processing method
US20160057068A1 (en) System and method for transmitting data embedded into control information
JP2007027951A (en) Dma controller and communication processing apparatus
US8533209B2 (en) Search apparatus, control method for search apparatus, and program
JP2009093418A (en) Host controller device and data transfer control method
JP2015061295A (en) Processing device and processing method
WO2023238326A1 (en) Switch
WO2024001411A1 (en) Multi-thread scheduling method and device
US20230106923A1 (en) Storage system
JP4664211B2 (en) Processing apparatus and control method thereof
JP2008250496A (en) Engine-processor coordination system and method
JP3639317B2 (en) Data transfer control device
JP2007329730A (en) Communication protocol processor
JP6138482B2 (en) Embedded system
CN117178258A (en) Accelerator control system, accelerator control method, and accelerator control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120724

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120727

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees