[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008252748A - Receiving frame processor and receiving frame processing system - Google Patents

Receiving frame processor and receiving frame processing system Download PDF

Info

Publication number
JP2008252748A
JP2008252748A JP2007094209A JP2007094209A JP2008252748A JP 2008252748 A JP2008252748 A JP 2008252748A JP 2007094209 A JP2007094209 A JP 2007094209A JP 2007094209 A JP2007094209 A JP 2007094209A JP 2008252748 A JP2008252748 A JP 2008252748A
Authority
JP
Japan
Prior art keywords
frame
buffer
cpu
received
stored
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.)
Abandoned
Application number
JP2007094209A
Other languages
Japanese (ja)
Inventor
Takanobu Muraguchi
貴信 村口
Fumio Sudo
文夫 須藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007094209A priority Critical patent/JP2008252748A/en
Priority to US12/056,537 priority patent/US20080240157A1/en
Publication of JP2008252748A publication Critical patent/JP2008252748A/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a receiving frame processor which can enhance memory use efficiency, reduce the latency of a frame, and can decrease a load of a CPU, and a receiving frame processing system. <P>SOLUTION: The receiving frame processor receives a frame of a variable length from a network 2, and transfers the frame to a buffer group 42 provided on a system memory 4 as a shared area to a CPU 5. The buffer group 42 is configured of a plurality of buffers, and when the buffer group 42 receives a second frame before a certain time period passes after the buffer group 42 has transferred a first frame to a first buffer, the buffer group 42 transfers the second frame to the first buffer. Further, when the buffer group 42 receives the second frame before a certain time period or longer passes after the buffer group 42 has transferred the first frame to the first buffer, the buffer group 42 transfers the second frame to a second buffer after the right of ownership of the first buffer is granted to the CPU 5. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、受信フレーム処理装置および受信フレーム処理システムに関し、特に、ネットワークから受信した可変長のフレームを処理する、受信フレーム処理装置および受信フレーム処理システムに関する。   The present invention relates to a received frame processing apparatus and a received frame processing system, and more particularly to a received frame processing apparatus and a received frame processing system for processing a variable-length frame received from a network.

イーサネット(登録商標)やIEEE1394、USBといった通信方式では、可変長のフレームを単位としたデータの送受信により通信を行っている。一般的に、コンピュータシステム(以下、単にシステムと示す)がネットワークからデータを取り込む際には、受信したフレームをシステムメモリに設けられたバッファに一時的に格納し、バッファから必要なフレームを所定の規則に従って読み出す方式を用いている。   In communication systems such as Ethernet (registered trademark), IEEE 1394, and USB, communication is performed by transmitting and receiving data in units of variable-length frames. In general, when a computer system (hereinafter simply referred to as a system) captures data from a network, the received frame is temporarily stored in a buffer provided in the system memory, and a necessary frame is stored in the buffer from a predetermined frame. A method of reading according to the rules is used.

従来の代表的なバッファ管理方法としては、1つのバッファに1つのフレームのみを格納する管理方法(以下、アンパックモードと示す)と、1つのバッファに1つ以上のフレームを格納する管理方法(以下、パックモードと示す)とが挙げられる。   As a conventional typical buffer management method, a management method for storing only one frame in one buffer (hereinafter referred to as an unpack mode) and a management method for storing one or more frames in one buffer (hereinafter referred to as an unpacking mode) , Indicated as pack mode).

従来のアンパックモードでは、バッファごとに1つのフレームのみを格納し、空き容量があったとしても次のフレームを詰めて格納することをしない。従って、バッファメモリの使用効率が低下してしまうという問題があった。   In the conventional unpacking mode, only one frame is stored for each buffer, and even if there is free space, the next frame is not packed and stored. Therefore, there is a problem that the use efficiency of the buffer memory is lowered.

従来のアンパックモードでも、バッファサイズを小さくすることで、バッファメモリの使用効率を向上させることは可能である。しかし、バッファサイズが小さくなることによってバッファ数が増えるために、逆にバッファ管理領域は大きくなってしまうという別の問題が発生する。   Even in the conventional unpacking mode, it is possible to improve the use efficiency of the buffer memory by reducing the buffer size. However, since the number of buffers increases as the buffer size decreases, another problem arises that the buffer management area increases.

また、従来のパックモードでは、1つのバッファに1つ以上のフレームを詰めて格納する。そのため、フレームを格納中のバッファは、十分な空き容量がある場合には開放されない(システム側に所有権が譲渡されない)。従って、特に、フレームの受信間隔が長い場合には、フレームを受信してから処理するまでの遅延時間(以下、レイテンシと示す)が大きくなってしまうという問題があった。   In the conventional pack mode, one buffer is packed and stored in one buffer. Therefore, the buffer that stores the frame is not released when there is sufficient free space (ownership is not transferred to the system side). Therefore, particularly when the frame reception interval is long, there is a problem that a delay time (hereinafter referred to as latency) from reception of a frame to processing becomes large.

従来のパックモードでも、システム側でタイムアウト処理を行い、フレーム受信が一定時間発生しない時点で、バッファの所有権を無視して強制的にバッファに格納されているフレームの内容を読み込むことでレイテンシを小さくすることは可能ではある。しかし、その際は、システム側で、タイムアウトの機構を用意する必要があり、所有権を取得していないバッファから読み取ったフレーム箇所をシステム側で記憶しておく必要がある。   Even in the conventional pack mode, the system performs a time-out process, and when frame reception does not occur for a certain period of time, it ignores the ownership of the buffer and forcibly reads the contents of the frame stored in the buffer to reduce latency. It is possible to make it smaller. However, in that case, it is necessary to prepare a time-out mechanism on the system side, and it is necessary to store the frame portion read from the buffer for which ownership is not acquired on the system side.

さらに、次回、所有権がシステム側に譲渡されたときに、同じバッファを読み込む際は、すでに読み取ったフレームについては、読み飛ばす等の処理が必要となる。バッファの所有権に関わらずシステム側からバッファを読み出すことでパックモードであっても、レイテンシを小さくすることは可能であるが、システム側での処理が複雑になってしまうという別の問題が発生する。   Furthermore, when the same buffer is read next time the ownership is transferred to the system side, it is necessary to perform processing such as skipping the already read frame. Regardless of the ownership of the buffer, it is possible to reduce the latency even in the packed mode by reading the buffer from the system side, but there is another problem that the processing on the system side becomes complicated To do.

更に、従来のバッファ管理技術では、割り込みの発生によってフレームの到着をシステムに通知する場合、フレーム毎に割り込みを発生させることが多い。フレームの受信毎に割り込みを発生させると、フレームの受信頻度が高くなるにともない、割り込み頻度が高くなり、CPUの負荷が高くなるという問題もあった。   Further, in the conventional buffer management technique, when a system notifies the arrival of a frame when an interrupt occurs, an interrupt is often generated for each frame. If an interrupt is generated each time a frame is received, the interrupt frequency increases and the CPU load increases as the frame reception frequency increases.

また、従来、可変長のフレームを扱う受信フレーム処理装置として、長さの異なる複数のバッファを具備しておき、受信したフレームの長さに応じて格納するバッファを切り替える受信フレーム処理装置が提案されている(例えば、特許文献1参照)。   Conventionally, as a reception frame processing apparatus that handles a variable-length frame, a reception frame processing apparatus that has a plurality of buffers having different lengths and switches a buffer to be stored according to the length of the received frame has been proposed. (For example, refer to Patent Document 1).

特許文献1に記載された提案によれば、1つのバッファに1つのフレームを格納することを前提として、事前に受信するフレームの長さを予測してバッファの長さと個数とを準備しておく。しかしながら、実際に受信したフレームの長さが準備されたバッファの長さと大きく異なる場合、例えば、長いフレームを受信することを予測しての長いバッファを多数用意しておいたにも関わらず、短いフレームを多数受信した場合、長いバッファに短いフレームを格納することとなり、バッファメモリの使用効率が低下してしまうという問題があった。また、短いバッファを多数準備する場合、バッファ数が増加するために、バッファの情報を格納してバッファを管理するためのメモリ領域が増大してしまうという問題があった。   According to the proposal described in Patent Document 1, on the premise that one frame is stored in one buffer, the length and the number of buffers are prepared by predicting the length of a frame to be received in advance. . However, if the length of the actually received frame is significantly different from the length of the prepared buffer, for example, it is short despite having prepared a number of long buffers in anticipation of receiving long frames. When a large number of frames are received, a short frame is stored in a long buffer, and there is a problem in that the use efficiency of the buffer memory is lowered. Further, when a large number of short buffers are prepared, the number of buffers increases, and there is a problem that a memory area for storing buffer information and managing the buffers increases.

更に、異なるサイズの連続したフレームを受信した際に、それぞれのフレーム格納場所が、システムメモリ上で飛び飛びの位置に分散してしまう。フレームがシステムメモリ上に連続して配置される場合と比較して、フレームが飛び飛びの位置に配置された場合には、CPUのキャッシュが効率よく機能せず、CPUの負荷が高くなってしまうという問題があった。また、他にも、空いているバッファのうちから適切なサイズのバッファを選択するための仕組みが必要になるといった問題があった。
特開2002−185466号公報
Furthermore, when consecutive frames of different sizes are received, the respective frame storage locations are scattered at positions that are skipped on the system memory. Compared to the case where the frames are continuously arranged on the system memory, the CPU cache does not function efficiently and the load on the CPU becomes high when the frames are arranged at skipped positions. There was a problem. Another problem is that a mechanism for selecting a buffer of an appropriate size from among the free buffers is required.
JP 2002-185466 A

本発明は、以上の点に鑑みてなされたもので、メモリ使用効率を向上させ、フレームのレイテンシを小さくし、かつ、CPUの負荷を低減することができる、受信フレーム処理装置および受信フレーム処理システムを提供することを目的とする。   The present invention has been made in view of the above points. A reception frame processing device and a reception frame processing system capable of improving memory use efficiency, reducing frame latency, and reducing the load on the CPU. The purpose is to provide.

本発明の一形態に係る受信フレーム処理装置は、ネットワークから可変長のフレームを受信し、システムメモリ上に設けられCPUとの共有領域であるバッファ領域に前記フレームを転送する受信フレーム処理装置であって、前記バッファ領域は複数のバッファから構成されており、第1のフレームを第1のバッファに転送してから一定時間が経過する前に第2のフレームを受信した場合には、前記第2のフレームを前記第1のバッファに転送し、前記第1のフレームを前記第1のバッファに転送してから一定時間以上経過した後に前記第2のフレームを受信した場合には、前記第1のバッファの所有権を前記CPUに譲渡した後に前記第2のフレームを第2のバッファに転送することを特徴とする。   A received frame processing apparatus according to an aspect of the present invention is a received frame processing apparatus that receives a variable-length frame from a network and transfers the frame to a buffer area that is provided on a system memory and is a shared area with a CPU. The buffer area is composed of a plurality of buffers, and when the second frame is received before a predetermined time has passed since the first frame was transferred to the first buffer, The first frame is transferred to the first buffer, and the second frame is received after a lapse of a predetermined time after the first frame is transferred to the first buffer. The second frame is transferred to the second buffer after the ownership of the buffer is transferred to the CPU.

メモリ使用効率を向上させ、フレームのレイテンシを小さくし、かつ、CPUの負荷を低減することができる。   The memory use efficiency can be improved, the frame latency can be reduced, and the load on the CPU can be reduced.

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

(第1の実施の形態)
始めに、本発明の第1の実施の形態に係わる受信フレーム処理装置1の構成について、図1を用いて説明する。図1は、本発明の実施の形態に係わる受信フレーム処理装置1の構成を説明するブロック図である。
(First embodiment)
First, the configuration of the reception frame processing apparatus 1 according to the first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram illustrating a configuration of a reception frame processing apparatus 1 according to an embodiment of the present invention.

本実施の形態の受信フレーム処理装置1は、図1に示すように、イーサネット(登録商標)などの通信方式を使用して可変長フレームを通信するネットワーク2、及び、コンピュータシステムとの間でデータを送受信するためのシステムバス3と電気的に接続されている。システムバス3には、受信フレーム処理装置1を介してネットワーク2から受信したフレームや、各種データを格納するためのシステムメモリ4と、これらのフレーム、データを用いて各種処理を行うCPU5とも接続されている。   As shown in FIG. 1, the received frame processing apparatus 1 according to the present embodiment uses a communication method such as Ethernet (registered trademark) to communicate data with a network 2 and a computer system. Are electrically connected to the system bus 3 for transmitting and receiving the data. The system bus 3 is also connected to a frame received from the network 2 via the received frame processing device 1 and a system memory 4 for storing various data, and a CPU 5 for performing various processes using these frames and data. ing.

受信フレーム処理装置1では、ネットワーク2から受信したフレームが、フレーム処理部12を介して小容量メモリ11に一時的に格納される。この小容量メモリ11は、一般的にFIFOなどで構成されており、主にシステムバス3を経由してシステムメモリ4へバースト転送(フレームを連続的にシステムバス3に送り出す転送方法)を行うためのバッファとして利用される。ネットワーク2から到着したフレームがあっても、システムバス3が混んでいる状態では、すぐにフレームをシステムメモリ4に転送できない。このような場合に、一度、小容量メモリ11にフレームを一時的に格納し、バースト転送を行う。   In the reception frame processing device 1, a frame received from the network 2 is temporarily stored in the small capacity memory 11 via the frame processing unit 12. The small-capacity memory 11 is generally composed of a FIFO or the like, and mainly performs burst transfer to the system memory 4 via the system bus 3 (transfer method for continuously sending frames to the system bus 3). Used as a buffer for Even if there is a frame arriving from the network 2, the frame cannot be immediately transferred to the system memory 4 when the system bus 3 is busy. In such a case, once the frame is temporarily stored in the small-capacity memory 11, burst transfer is performed.

また、ネットワーク2とシステムバス3とでクロック(動作周波数)が異なる場合が多いため、異なるクロックドメイン間でフレームをやりとりするための緩衝用メモリとしても小容量メモリ11が利用される。   In addition, since the clock (operating frequency) is often different between the network 2 and the system bus 3, the small capacity memory 11 is also used as a buffer memory for exchanging frames between different clock domains.

また、ネットワーク2から受信したフレームは、フレーム処理部12に出力されて解析され、フレーム長やフレーム間隔などが検出・測定される。なお、小容量メモリ11に格納するフレームは、フレーム処理部12を介さずに直接ネットワーク2から受信するような構成にしてもよい。   The frame received from the network 2 is output to the frame processing unit 12 and analyzed, and the frame length, the frame interval, and the like are detected and measured. The frame stored in the small capacity memory 11 may be directly received from the network 2 without going through the frame processing unit 12.

フレーム処理部12で解析されたフレームに関する情報は、主制御部13に出力される。主制御部13では、取得したフレームに関する情報、特に、フレーム長やフレームの受信間隔と、レジスタ部15に格納されている各種制御情報・ステータス情報とに基づき、システムメモリ4におけるフレームの格納方法を決定する。すなわち、次に出力するフレームを、直前に出力したフレームと同じバッファに格納するのか、別のバッファに格納するのかを決定する。なお、主制御部13には、カウンタ21も接続されており、フレームの受信間隔などの測定は、このカウンタ21を利用することができるように構成されている。   Information about the frame analyzed by the frame processing unit 12 is output to the main control unit 13. In the main control unit 13, the frame storage method in the system memory 4 is determined based on the acquired frame information, in particular, the frame length and the frame reception interval, and various control information / status information stored in the register unit 15. decide. That is, it is determined whether the frame to be output next is stored in the same buffer as the frame output immediately before or in a different buffer. Note that a counter 21 is also connected to the main control unit 13 so that the counter 21 can be used for measurement of frame reception intervals and the like.

主制御部13は、決定したフレームの格納方法に基づき、小容量メモリ11に一時的に格納されているフレームを、DMA制御部14、システムバス3を介してシステムメモリ4の所定のバッファに出力する。   Based on the determined frame storage method, the main control unit 13 outputs the frames temporarily stored in the small capacity memory 11 to a predetermined buffer of the system memory 4 via the DMA control unit 14 and the system bus 3. To do.

また、主制御部13には割り込み制御部16も接続されている。割り込み制御部16は、図示しない割り込みコントローラなどに接続されており、所定のタイミングで、割り込みコントローラを介してCPU5に対して割り込みの発生を通知する。なお、図示しない割り込みコントローラを介さずに、割り込みコントローラを内蔵したCPU5に直接割り込みの発生を通知する場合もある。   An interrupt control unit 16 is also connected to the main control unit 13. The interrupt control unit 16 is connected to an interrupt controller (not shown) or the like, and notifies the CPU 5 of the occurrence of an interrupt via the interrupt controller at a predetermined timing. In some cases, the interrupt occurrence is directly notified to the CPU 5 incorporating the interrupt controller without using an interrupt controller (not shown).

システムメモリ4には、図2に示すように、受信フレーム処理装置1から受信したフレームを格納するためのバッファ群42の領域と、バッファ群42に関する情報を格納するためのバッファ管理情報群41の領域とが予め確保されている。図2は、システムメモリ4の構成を説明する概略図である。なお、バッファ管理情報群41と、バッファ群42との領域は、受信フレーム処理装置1とCPU5との間で共有されている。   As shown in FIG. 2, the system memory 4 includes an area of a buffer group 42 for storing frames received from the reception frame processing device 1, and a buffer management information group 41 for storing information about the buffer group 42. An area is secured in advance. FIG. 2 is a schematic diagram illustrating the configuration of the system memory 4. The areas of the buffer management information group 41 and the buffer group 42 are shared between the reception frame processing device 1 and the CPU 5.

バッファ群42は、複数のバッファ42a〜42dから構成されており、各バッファ42a〜42dには受信フレーム処理装置1から受信したフレームが格納される。バッファ管理情報群41は、バッファ群42に含まれるバッファと同じ個数のバッファ管理情報41a〜41dから構成されており、各バッファ管理情報41a〜41dには、対応するバッファ42a〜42dに関する各種情報(所有権、格納モード、格納されているフレームの位置、など)が格納されている。   The buffer group 42 includes a plurality of buffers 42a to 42d, and frames received from the reception frame processing device 1 are stored in the buffers 42a to 42d. The buffer management information group 41 is composed of the same number of buffer management information 41a to 41d as the buffers included in the buffer group 42, and each buffer management information 41a to 41d includes various information about the corresponding buffers 42a to 42d ( Ownership, storage mode, stored frame location, etc.).

ここで、バッファの所有権とは、対応するバッファのアクセス権(更新権)が受信フレーム処理装置1とCPU5とのどちらにあるのかを表わす情報である。バッファの所有権を有する側が、当該バッファと対応するバッファ管理情報に対するアクセス権(更新権)を持っており、当該バッファ及びバッファ管理情報に対する処理が完了すると、もう一方の側に所有権が譲渡される。このようにして、受信フレーム処理装置1とCPU5とは、システムメモリ4を介して互いに情報を送受信する仕組みになっている。   Here, the ownership of the buffer is information indicating whether the access right (update right) of the corresponding buffer is in the reception frame processing device 1 or the CPU 5. The side that owns the buffer has the access right (update right) to the buffer management information corresponding to the buffer, and when the processing for the buffer and the buffer management information is completed, the ownership is transferred to the other side. The In this way, the reception frame processing device 1 and the CPU 5 are configured to transmit and receive information to and from each other via the system memory 4.

また、格納モードとは、対応するバッファに複数のフレームを格納できるモード(以下、パックモードと示す)なのか、1つのフレームしか格納できないモード(以下、アンパックモードと示す)なのかを表わす情報である。   The storage mode is information indicating whether the mode can store a plurality of frames in the corresponding buffer (hereinafter referred to as pack mode) or the mode in which only one frame can be stored (hereinafter referred to as unpack mode). is there.

バッファ管理情報41aは、様々な表わし方が可能であるが、例えば次のように具体的に表わすことができる。まず、受信するフレームがすべて固定長であり、オフセット値として別の箇所に格納されている場合について、図3を用いて説明する。図3は、フレームが固定長の場合のバッファ管理情報の具体例を説明する図である。図3は、1つのバッファにフレームを最大4つまで格納できる場合を示している。   The buffer management information 41a can be expressed in various ways, for example, as follows. First, the case where all the frames to be received have a fixed length and are stored in different locations as offset values will be described with reference to FIG. FIG. 3 is a diagram for explaining a specific example of buffer management information when a frame has a fixed length. FIG. 3 shows a case where up to four frames can be stored in one buffer.

まず、対応するバッファ42aの格納モードがパックモードかアンパックモードかを示すモード情報410が先頭に書き込まれる。続いて、バッファ42aに格納されているフレームについて、開始オフセット値411aと終了オフセット値411bとが書き込まれる。フレームが複数格納されている場合は、格納された順に、それぞれのフレームについて開始オフセット値412a,413a,414aと終了オフセット値412b,413b,414bとが書き込まれる。最後に、対応するバッファ42aの所有権を有するのが受信フレーム処理装置1であるかCPU5であるかを示す所有ビット415が書き込まれる。   First, mode information 410 indicating whether the storage mode of the corresponding buffer 42a is the packed mode or the unpacked mode is written at the head. Subsequently, the start offset value 411a and the end offset value 411b are written for the frame stored in the buffer 42a. When a plurality of frames are stored, the start offset values 412a, 413a, and 414a and the end offset values 412b, 413b, and 414b are written for each frame in the stored order. Finally, an ownership bit 415 indicating whether the received frame processing device 1 or the CPU 5 has ownership of the corresponding buffer 42a is written.

なお、当該バッファ42aに格納されるフレーム数が2個、または3個の場合、これ以降はフレームが格納されていないことを示す仕組みが設けられている。例えば、フレームが格納されない部分の開始オフセット値(格納されるフレーム数が2個の場合は3個目のフレームの開始オフセット値413a、格納されるフレーム数が3個の場合は4個目のフレームの開始オフセット値414a)に0などの予め定められた値が書き込まれる。   Note that when the number of frames stored in the buffer 42a is two or three, a mechanism is provided to indicate that no frames are stored thereafter. For example, the start offset value of the portion in which no frame is stored (the start offset value 413a of the third frame when the number of stored frames is two, and the fourth frame when the number of stored frames is three A predetermined value such as 0 is written in the start offset value 414a).

次に、受信するフレームが可変長である場合について、図4と図5とを用いて説明する。図4は、フレームが可変長で格納モードがアンパックモードの場合のバッファ管理情報の具体例を説明する図であり、図5は、フレームが可変長で格納モードがパックモードの場合のバッファ管理情報の具体例を説明する図である。   Next, a case where a received frame has a variable length will be described with reference to FIGS. FIG. 4 is a diagram illustrating a specific example of buffer management information when the frame is variable length and the storage mode is unpacked mode. FIG. 5 is a buffer management information when the frame is variable length and the storage mode is packed mode. It is a figure explaining the specific example of.

格納モードがアンパックモードであり、対応するバッファ42aに1つのフレームしか格納されていない場合、図4に示すように、バッファ管理情報41aには、対応するバッファ42aの格納モードがアンパックモードであることを示すモード情報410が先頭に書き込まれる。続いて、バッファ42aに格納されているフレームのフレーム長416が書き込まれる。   When the storage mode is the unpacking mode and only one frame is stored in the corresponding buffer 42a, as shown in FIG. 4, the buffer management information 41a indicates that the storage mode of the corresponding buffer 42a is the unpacking mode. Is written at the top. Subsequently, the frame length 416 of the frame stored in the buffer 42a is written.

更に、当該フレームの先頭部分が含まれているか否かを示すフレーム先頭ビット417と、当該フレームの末尾部分が含まれているか否かを示すフレーム末尾ビット418が書き込まれる。フレームの長さがバッファの長さより大きい場合、フレームが複数のバッファに分割されて格納されることになる。しかし、CPU5がフレームを用いて処理を行う場合にはフレーム全体にアクセスする必要があるため、フレーム先頭ビット417とフレーム末尾ビット418とを参照して、フレームが格納されたバッファを識別する。   Further, a frame head bit 417 indicating whether or not the head portion of the frame is included and a frame tail bit 418 indicating whether or not the tail portion of the frame is included are written. When the frame length is larger than the buffer length, the frame is divided and stored in a plurality of buffers. However, when the CPU 5 performs processing using a frame, it is necessary to access the entire frame, so the buffer in which the frame is stored is identified with reference to the frame head bit 417 and the frame end bit 418.

例えば、フレーム先頭ビット417とフレーム末尾ビット418の両方がオンの場合、当該バッファ42aには1つのフレーム全体が格納されていると識別される。また、例えば、フレーム先頭ビット417はONであるが、フレーム末尾ビット418はOFFの場合、当該バッファ42aにはフレームの一部分が格納されており、続くバッファ42b以降にフレームの残り部分が格納されていると識別される。   For example, when both the frame head bit 417 and the frame end bit 418 are on, it is identified that the entire frame is stored in the buffer 42a. For example, when the frame start bit 417 is ON but the frame end bit 418 is OFF, a part of the frame is stored in the buffer 42a, and the rest of the frame is stored after the subsequent buffer 42b. Is identified.

バッファ管理情報41aの最後には、当該バッファ42aの所有権の所在を示す所有ビット415が書き込まれる。   At the end of the buffer management information 41a, an ownership bit 415 indicating the ownership of the buffer 42a is written.

格納モードがパックモードであり、対応するバッファ42aに複数のフレームが格納されている可能性がある場合、システムメモリ4にはフレーム管理情報群43を格納する領域が設けられており、バッファ42aに関する情報は、図5に示すように、バッファ管理情報41aとフレーム管理情報群43とに格納される。   When the storage mode is the pack mode and there is a possibility that a plurality of frames are stored in the corresponding buffer 42a, the system memory 4 is provided with an area for storing the frame management information group 43. The information is stored in the buffer management information 41a and the frame management information group 43 as shown in FIG.

バッファ管理情報41aには、対応するバッファ42aの格納モードがアンパックモードであることを示すモード情報410が先頭に書き込まれる。続いて、フレーム管理情報43において、バッファ42aに格納されているフレームに関する情報の記載位置を特定するために、フレーム管理情報群43の先頭アドレス419(以下、フレーム情報先頭アドレスと示す)が書き込まれる。   In the buffer management information 41a, mode information 410 indicating that the storage mode of the corresponding buffer 42a is the unpacking mode is written at the head. Subsequently, in the frame management information 43, a head address 419 of the frame management information group 43 (hereinafter referred to as a frame information head address) is written in order to specify a description position of information relating to the frame stored in the buffer 42a. .

図5には、対応するバッファ42aに3つの可変長フレームが格納されている例を示しており、各フレームはフレーム管理情報43a〜43cとしてフレーム管理情報群43に格納されている。この場合、バッファ管理情報41aのフレーム情報先頭アドレス419には、フレーム管理情報43aの先頭のアドレスが書き込まれる。   FIG. 5 shows an example in which three variable length frames are stored in the corresponding buffer 42a. Each frame is stored in the frame management information group 43 as frame management information 43a to 43c. In this case, the head address of the frame management information 43a is written in the frame information head address 419 of the buffer management information 41a.

フレーム情報43a〜43cには、格納されているフレームの長さ416と、当該フレーム管理情報の所有権を有するのが受信フレーム処理装置1であるかCPU5であるかを示す、フレーム管理所有ビット417と、当該フレームがバッファ42aに格納されている最後のフレームであるか否かを示す終端ビット418とが書き込まれる。図5に示す例の場合、バッファ42aには3つのフレームが格納されているので、フレーム情報43a,43bの終端ビット418はOFFであり、フレーム情報43cの終端ビットはONと書き込まれる。   The frame information 43a to 43c includes a frame management ownership bit 417 indicating the length 416 of the stored frame and whether the received frame processing device 1 or the CPU 5 has ownership of the frame management information. And a termination bit 418 indicating whether or not the frame is the last frame stored in the buffer 42a. In the example shown in FIG. 5, since three frames are stored in the buffer 42a, the end bit 418 of the frame information 43a and 43b is OFF, and the end bit of the frame information 43c is written ON.

バッファ管理情報41aの最後には、当該バッファ42aの所有権の所在を示す所有ビット415が書き込まれる。   At the end of the buffer management information 41a, an ownership bit 415 indicating the ownership of the buffer 42a is written.

なお、アンパックモードでも、図5に示すようなバッファ管理情報を用いることができる。例えば、バッファ42aがアンパックモードで可変長フレームが格納されている場合、フレーム情報43aには、格納されているフレームの長さ416と、当該フレーム管理情報の所有権を有するのが受信フレーム処理装置1であるかCPU5であるかを示す、フレーム管理所有ビット417と、当該フレームがバッファ42aに格納されている最後のフレームであるか否かを示す終端ビット418とが書き込まれる。図5に示す例の場合、バッファ42aには1つのフレームが格納されているので、フレーム情報43aの終端ビットはONと書き込まれる。   Note that the buffer management information shown in FIG. 5 can also be used in the unpack mode. For example, when the variable length frame is stored in the buffer 42a in the unpack mode, the received frame processing device has the stored frame length 416 and the ownership of the frame management information in the frame information 43a. A frame management possession bit 417 indicating whether the frame is 1 or the CPU 5 and a termination bit 418 indicating whether the frame is the last frame stored in the buffer 42a are written. In the example shown in FIG. 5, since one frame is stored in the buffer 42a, the end bit of the frame information 43a is written as ON.

次に、上述した受信フレーム処理装置1における受信フレーム処理方法(受信したフレームをバッファ群42に格納する方法)について、図6を用いて説明する。図6は、本発明の第1の実施の形態に係わる受信フレームの処理手順を説明するフローチャートである。   Next, a received frame processing method (a method for storing received frames in the buffer group 42) in the above-described received frame processing apparatus 1 will be described with reference to FIG. FIG. 6 is a flowchart for explaining a received frame processing procedure according to the first embodiment of the present invention.

まず、ステップS1において、受信フレーム処理装置1の各部を初期化する。この初期化の具体的な作業としては、例えば、CPU5によって各種設定値が書き込まれる作業が挙げられる。   First, in step S1, each part of the reception frame processing device 1 is initialized. As a specific work of this initialization, for example, a work in which various setting values are written by the CPU 5 can be cited.

なお、このステップS1と同時に、CPU5は、システムメモリ4内からバッファ群42やバッファ管理情報群41のための領域を確保し、所有権を受信フレーム処置装置1にセットする。この作業と各設定値の書き込みが終わった時点で、CPU5が、レジスタ部15のある場所に書き込みを行うことで、受信フレーム処置装置1に動作開始の合図を送る。動作開始の合図を受け取った受信フレーム処置装置1は、主制御部13によってカウンタ21などをリセットして、動作を開始する。   At the same time as step S 1, the CPU 5 secures an area for the buffer group 42 and the buffer management information group 41 from the system memory 4 and sets the ownership to the reception frame processing device 1. When this operation and the writing of each set value are finished, the CPU 5 writes a location in the register unit 15 to send a signal to start the operation to the reception frame processing device 1. The reception frame processing device 1 that has received the operation start signal resets the counter 21 and the like by the main control unit 13 and starts the operation.

次に、ステップS2において、システムメモリ4のバッファ管理情報群41から最初のバッファ管理情報41aを参照し、対応するバッファ42aのアドレスを取得する。続いて、ステップS3において、ネットワーク2からフレームの到着を待機する。   Next, in step S2, the first buffer management information 41a is referred to from the buffer management information group 41 of the system memory 4, and the address of the corresponding buffer 42a is acquired. Subsequently, in step S3, a frame arrival from the network 2 is waited.

フレームが到着すると、ステップS4に進んでフレームの受信を開始する。本ステップにおいては、受信したフレームは逐次小容量メモリ11に書き込まれる。また、当該フレームと、直前に受信したフレーム(以下、前フレームと示す)との間の時間間隔(具体的には、前フレームの受信終了時から、当該フレームの受信開始時までの時間、以下、フレーム間隔と示す)を、フレーム処理部12で算出する。なお、当該フレームがネットワーク2から最初に受信するフレームであり、前フレームが存在しない場合、フレーム間隔はゼロとする。   When the frame arrives, the process proceeds to step S4 to start receiving the frame. In this step, the received frames are sequentially written into the small capacity memory 11. Also, the time interval between the frame and the frame received immediately before (hereinafter referred to as the previous frame) (specifically, the time from the end of reception of the previous frame to the start of reception of the frame, the following The frame processing unit 12 calculates the frame interval). If the frame is the first frame received from the network 2 and there is no previous frame, the frame interval is set to zero.

次に、ステップS5に進み、主制御部13において、ステップS4で算出したフレーム間隔と、予め設定されている閾値Tthとを比較する。ここで、閾値Tthは受信したフレームの格納モードを切り替えるために用いる値であり、ネットワーク速度、ネットワークの最小フレームギャップ、単位時間当たりのCPU5の処理の負荷が最も大きくなるフレームサイズ、CPU5の処理時間、などから決定される。閾値Tthはレジスタ部15などに格納されており、必要に応じて適宜再設定可能になされている。   In step S5, the main control unit 13 compares the frame interval calculated in step S4 with a preset threshold value Tth. Here, the threshold value Tth is a value used to switch the storage mode of the received frame, and the network speed, the minimum frame gap of the network, the frame size at which the processing load of the CPU 5 per unit time is the largest, and the processing time of the CPU 5 , Etc. The threshold value Tth is stored in the register unit 15 or the like, and can be reset as appropriate.

ステップS5において、フレーム間隔が閾値Tth未満であると判定された場合、主制御部13は受信したフレームをパックモードで格納することを決定する。この場合、ステップS6に進み、フレームの格納先としてアドレスを取得しているバッファに対し、受信したフレームを転送開始する。具体的には、主制御部13の制御に従って、小容量メモリ11に書き込まれたフレームをDMA制御部14を介してシステムバス3に出力し、システムメモリ4に準備されたバッファに書き込む。   If it is determined in step S5 that the frame interval is less than the threshold value Tth, the main control unit 13 determines to store the received frame in the pack mode. In this case, the process proceeds to step S6, and the transfer of the received frame is started to the buffer whose address is acquired as the frame storage destination. Specifically, under the control of the main control unit 13, the frame written in the small capacity memory 11 is output to the system bus 3 via the DMA control unit 14 and is written in the buffer prepared in the system memory 4.

なお、本ステップは、通常、小容量メモリ11がネットワーク2からフレームを受信している最中に実行される。すなわち、小容量メモリ11は、ネットワーク2からフレームを受信しつつ、受信したフレームを逐次主制御部13,DMA制御部14を介してシステムバス3に出力する。   This step is usually executed while the small-capacity memory 11 is receiving a frame from the network 2. That is, the small capacity memory 11 receives the frame from the network 2 and sequentially outputs the received frame to the system bus 3 via the main control unit 13 and the DMA control unit 14.

一方、ステップS5において、フレーム間隔が閾値Tth以上であると判定された場合、主制御部13は受信したフレームをアンパックモードで格納することを決定する。この場合、ステップS7に進み、バッファ管理情報41aの必要な部分を更新し、所有権をCPU5に返却する。続いてステップS8に進み、システムメモリ4のバッファ管理情報群41から次のバッファ管理情報41bを参照し、対応するバッファ42bのアドレスを取得してステップS6に進む。   On the other hand, when it is determined in step S5 that the frame interval is equal to or greater than the threshold Tth, the main control unit 13 determines to store the received frame in the unpacked mode. In this case, the process proceeds to step S7, where a necessary part of the buffer management information 41a is updated, and the ownership is returned to the CPU 5. Subsequently, the process proceeds to step S8, the next buffer management information 41b is referred to from the buffer management information group 41 of the system memory 4, the address of the corresponding buffer 42b is acquired, and the process proceeds to step S6.

ステップS6において、システムメモリ4の適切なバッファへフレームの転送を開始し、所定時間が経過すると、ネットワーク2から小容量メモリ11へのフレームの書き込みが終了する(ステップS9)。ステップS9においては、当該フレームと、当該フレームの直後に到着するフレーム(以下、次フレームと示す)との間のフレーム間隔を測定するために、小容量メモリ11でのフレームの受信が終了した時点で、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。   In step S6, frame transfer to an appropriate buffer in the system memory 4 is started, and when a predetermined time has elapsed, writing of the frame from the network 2 to the small capacity memory 11 is completed (step S9). In step S9, in order to measure the frame interval between the frame and the frame that arrives immediately after the frame (hereinafter, referred to as the next frame), when reception of the frame in the small capacity memory 11 is completed Thus, the counter for the frame interval timer provided in the counter 21 is reset by the main control unit 13, and the measurement of the frame interval is started immediately.

続いて、ステップS10において、システムメモリ4の適切なバッファへフレームの転送が終了すると、フレームを格納したバッファの対応するバッファ管理情報に受信ステータス(正常にフレームが転送された、フレームの転送中にエラーが発生した、などを識別する情報)を書き込む。   Subsequently, in step S10, when the frame transfer to the appropriate buffer of the system memory 4 is completed, the reception status (during the frame transfer is successful, the frame has been transferred normally) is stored in the buffer management information corresponding to the buffer storing the frame. Information that identifies an error etc.) is written.

続いて、ステップS11において、当該フレームが書き込まれたバッファに空き容量があるか否かを判定する。ステップS11において、バッファ境界に達しておらず、当該バッファに空き容量があると判定された場合、ステップS12に進み、次フレームが到着するのを待機する。   Subsequently, in step S11, it is determined whether or not there is free space in the buffer in which the frame is written. If it is determined in step S11 that the buffer boundary has not been reached and the buffer has free space, the process proceeds to step S12 and waits for the next frame to arrive.

一方、ステップS11において、バッファ境界に達しており、当該バッファに空き容量がないと判定された場合、ステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。続いてステップS2に戻り、システムメモリ4のバッファ管理情報群41から次のバッファ管理情報を参照し、対応するバッファのアドレスを取得して、次フレームの到着を待機する。   On the other hand, if it is determined in step S11 that the buffer boundary has been reached and there is no free space in the buffer, the process proceeds to step S13, where necessary portions of the buffer management information corresponding to the buffer are updated, and ownership is granted. Return to CPU5. Subsequently, returning to step S2, the next buffer management information is referred to from the buffer management information group 41 of the system memory 4, the address of the corresponding buffer is obtained, and the arrival of the next frame is awaited.

ステップS12において、フレームが到着した場合、ステップS4に戻ってフレームの受信を開始する。一方、フレームが到着しない場合、ステップS14に進み、ステップS9において測定を開始したフレーム間隔タイマがタイムアウトしたか否かを判定する。具体的には、その時点でのフレーム間隔タイマの値と閾値Tthとを比較し、タイマの値が閾値Tth以上の場合にタイムアウトしたものと判定する。   In step S12, when the frame arrives, the process returns to step S4 to start receiving the frame. On the other hand, when the frame does not arrive, the process proceeds to step S14, and it is determined whether or not the frame interval timer that started the measurement in step S9 has timed out. Specifically, the value of the frame interval timer at that time is compared with a threshold value Tth, and if the timer value is equal to or greater than the threshold value Tth, it is determined that a timeout has occurred.

ネットワーク2から受信するフレームの受信間隔が長い場合、パックモードでバッファにフレームを格納していると、バッファのメモリを使い切ってしまうまで当該バッファの所有権がCPU5の譲渡されないためにフレームのレイテンシが低下してしまう。そこで、フレーム間隔タイマを用い、一定時間フレームが受信されない場合にはタイムアウトとしてサインを発生させることで、バッファの所有権をCPU5に譲渡してフレームのレイテンシを向上させることができる。   When the reception interval of frames received from the network 2 is long, if the frame is stored in the buffer in the pack mode, the ownership of the buffer is not transferred to the CPU 5 until the buffer memory is used up. It will decline. Therefore, by using a frame interval timer and generating a sign as a timeout when a frame is not received for a certain period of time, the ownership of the buffer can be transferred to the CPU 5 to improve the frame latency.

ステップS14において、フレーム間隔タイマがタイムアウトしていないと判定された場合、ステップS12に戻り、次フレームの到着を待機する。一方、ステップS14において、フレーム間隔タイマがタイムアウトしたと判定された場合、ステップS15に進み、フレーム間隔タイマ用のカウンタを主制御部13によってリセットする。続いてステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。   If it is determined in step S14 that the frame interval timer has not timed out, the process returns to step S12 and waits for the arrival of the next frame. On the other hand, if it is determined in step S14 that the frame interval timer has timed out, the process proceeds to step S15, where the main control unit 13 resets the counter for the frame interval timer. In step S13, a necessary part of the buffer management information corresponding to the buffer is updated, and the ownership is returned to the CPU 5.

受信フレーム処理装置1が動作中は、上述のステップS2〜ステップS15の処理が繰り返し実行され、ネットワーク2から受信したフレームをシステムメモリ4のバッファ群42の適切なバッファに書き込んでいく。   While the reception frame processing device 1 is in operation, the processes in steps S2 to S15 described above are repeatedly executed, and the frames received from the network 2 are written into appropriate buffers in the buffer group 42 of the system memory 4.

図6のフローチャートを用いて説明した受信フレーム処理方法を、図7及び図8に示す具体的な例を用いて更に詳しく説明する。図7は、ネットワーク2からフレームを受信している状況の一例を説明するタイムチャートである。図7において、横軸は受信フレーム処理装置1が動作開始してからの経過時間tを示している。また、図8は、受信したフレームをバッファ群42に格納する際の格納位置を説明する概略図である。   The received frame processing method described with reference to the flowchart of FIG. 6 will be described in more detail using specific examples shown in FIGS. FIG. 7 is a time chart for explaining an example of a situation in which a frame is received from the network 2. In FIG. 7, the horizontal axis indicates an elapsed time t after the reception frame processing device 1 starts operating. FIG. 8 is a schematic diagram for explaining the storage position when the received frame is stored in the buffer group 42.

まず、受信フレーム処理装置1が動作を開始し、初期化(ステップS1)が完了すると、システムメモリ4のバッファ管理情報群41から最初のバッファ管理情報41aを参照し、最初に到着するフレームの格納先として、対応するバッファ42aのアドレスを取得する(ステップS2)。続いて、ステップS3において、ネットワーク2からフレームの到着を待機する。   First, when the reception frame processing device 1 starts operation and initialization (step S1) is completed, the first buffer management information 41a is referred to from the buffer management information group 41 of the system memory 4, and the first arriving frame is stored. First, the address of the corresponding buffer 42a is acquired (step S2). Subsequently, in step S3, a frame arrival from the network 2 is waited.

フレーム0が受信フレーム処理装置1に到着し、ステップS4において時間t0sに受信を開始すると、フレーム間隔が測定される。ここで、フレーム0は最初に受信フレーム処理装置1に到着するフレームであり、前フレームが存在しないため、フレーム間隔はゼロとなる。次に、ステップS5において、ステップS4で算出したフレーム間隔(=ゼロ)と、予め設定されている閾値Tthとを比較する。 Frame 0 arrives at the received frame processing device 1 starts the reception time t 0 s in step S4, the frame interval is measured. Here, the frame 0 is a frame that first arrives at the reception frame processing apparatus 1, and since there is no previous frame, the frame interval is zero. Next, in step S5, the frame interval (= zero) calculated in step S4 is compared with a preset threshold value Tth.

ここでは、0<Tthであるので、ステップS6へ進み、フレームの格納先としてアドレスを取得しているバッファ42aに対し、受信したフレーム0を転送開始する。所定時間が経過して時間t0eになると、ネットワーク2からフレーム0の受信が終了する(ステップS9)。 Here, since 0 <Tth, the process proceeds to step S6, and the transfer of the received frame 0 is started to the buffer 42a that has acquired the address as the frame storage destination. When the predetermined time elapses and time t0e is reached, reception of frame 0 from the network 2 ends (step S9).

ステップS9においては、当該フレーム(=フレーム0)と、次フレーム(=フレーム1)との間のフレーム間隔(=Tg10)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。 In step S9, a counter for a frame interval timer provided in the counter 21 to measure the frame interval (= Tg10 ) between the frame (= frame 0) and the next frame (= frame 1). Is reset by the main control unit 13 and immediately starts measurement of the frame interval.

続いて、ステップS10において、バッファ42aへフレーム0の転送が終了すると、バッファ管理情報41aに受信ステータスを書き込む。続いて、ステップS11において、フレーム0が書き込まれたバッファ42aに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42aにはフレーム0を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム1)が到着するのを待機する。   In step S10, when the transfer of frame 0 to the buffer 42a is completed, the reception status is written in the buffer management information 41a. Subsequently, in step S11, it is determined whether or not there is free space in the buffer 42a in which the frame 0 is written. In the case of the example of FIG. 7, as shown in FIG. 8, the buffer 42a has free space even after storing frame 0, so the process proceeds to step S12 and waits for the arrival of the next frame (= frame 1). .

図7の例ではすぐに次フレーム(=フレーム1)が到着しないので、ステップS14に進み、ステップS9において測定を開始したフレーム間隔タイマがタイムアウトしたか否かを判定する。図7の例では、フレーム0の受信を終了してからTthが経過してもフレーム1が到着しないため、時間t=t0e+Tthの時点でフレーム間隔タイマがタイムアウトしたと判定され、ステップS15に進んでフレーム間隔タイマ用のカウンタを主制御部13によってリセットする。続いてステップS13に進み、バッファ管理情報41aの必要な部分を更新し、バッファ42aの所有権をCPU5に返却する。 In the example of FIG. 7, since the next frame (= frame 1) does not arrive immediately, the process proceeds to step S14, and it is determined whether or not the frame interval timer that has started measurement in step S9 has timed out. In the example of FIG. 7, since frame 1 does not arrive even after Tth has elapsed since the reception of frame 0 has ended, it is determined that the frame interval timer has timed out at time t = t 0e + Tth, and the process proceeds to step S15. Then, the main controller 13 resets the counter for the frame interval timer. In step S13, a necessary part of the buffer management information 41a is updated, and the ownership of the buffer 42a is returned to the CPU 5.

続いてステップS2に戻り、バッファ管理情報群41から次のバッファ管理情報42bを参照し、次フレーム(=フレーム1)の格納先としてバッファ42bのアドレスを取得して、次フレームの到着を待機する(ステップS3)。   Subsequently, returning to step S2, the next buffer management information 42b is referred from the buffer management information group 41, the address of the buffer 42b is acquired as the storage destination of the next frame (= frame 1), and the arrival of the next frame is awaited. (Step S3).

フレーム1が受信フレーム処理装置1に到着し、ステップS4において時間t1sに受信を開始すると、フレーム間隔が測定される。フレーム1と前フレーム(=フレーム0)とのフレーム間隔はTg10であるが、ステップS15においてフレーム間隔タイマ用のカウンタがリセットされているため、フレーム間隔はゼロとなる。 When frame 1 arrives at reception frame processing apparatus 1 and reception starts at time t 1 s in step S4, the frame interval is measured. The frame interval between frame 1 and the previous frame (= frame 0) is Tg10 , but the frame interval timer becomes zero because the counter for the frame interval timer is reset in step S15.

次に、ステップS5において、ステップS4で算出したフレーム間隔(=ゼロ)と、予め設定されている閾値Tthとを比較する。ここでは、0<Tthであるので、ステップS6へ進み、フレームの格納先としてアドレスを取得しているバッファ42bに対し、受信したフレーム1を転送開始する。所定時間が経過して時間t1eになると、ネットワーク2からフレーム1の受信が終了する(ステップS9)。 Next, in step S5, the frame interval (= zero) calculated in step S4 is compared with a preset threshold value Tth. Here, since 0 <Tth, the process proceeds to step S6, and the transfer of the received frame 1 is started to the buffer 42b which has acquired the address as the frame storage destination. When the predetermined time has elapsed and time t 1e is reached, reception of frame 1 from the network 2 ends (step S9).

ステップS9においては、当該フレーム(=フレーム1)と、次フレーム(=フレーム2)との間のフレーム間隔(=Tg21)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。 In step S9, a counter for a frame interval timer provided in the counter 21 in order to measure the frame interval (= T g21 ) between the frame (= frame 1) and the next frame (= frame 2). Is reset by the main control unit 13 and immediately starts measurement of the frame interval.

続いて、ステップS10において、バッファ42bへフレーム1の転送が終了すると、バッファ管理情報41bに受信ステータスを書き込む。続いて、ステップS11において、フレーム1が書き込まれたバッファ42bに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42bにはフレーム1を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム2)が到着するのを待機する。   In step S10, when the transfer of frame 1 to the buffer 42b is completed, the reception status is written in the buffer management information 41b. Subsequently, in step S11, it is determined whether or not there is a free capacity in the buffer 42b in which the frame 1 is written. In the case of the example of FIG. 7, as shown in FIG. 8, since the buffer 42b has free space after storing frame 1, the process proceeds to step S12 and waits for the arrival of the next frame (= frame 2). .

図7の例ではすぐに次フレーム(=フレーム2)が到着しないので、ステップS14に進み、ステップS9において測定を開始したフレーム間隔タイマがタイムアウトしたか否かを判定する。図7の例では、フレーム1の受信を終了してからTthが経過する前にフレーム2が到着するため(t2s<t1e+Tth)、ステップS14からステップS12、ステップS4に進む。 In the example of FIG. 7, since the next frame (= frame 2) does not arrive immediately, the process proceeds to step S14, and it is determined whether or not the frame interval timer that started the measurement in step S9 has timed out. In the example of FIG. 7, since the frame 2 arrives before Tth elapses after the reception of the frame 1 ends (t 2s <t 1e + Tth), the process proceeds from step S14 to step S12 and step S4.

フレーム2が受信フレーム処理装置1に到着し、ステップS4において時間t2sに受信を開始すると、フレーム間隔Tg21が測定される。ステップS5において、ステップS4で算出したフレーム間隔Tg21と、予め設定されている閾値Tthとを比較する。ここでは、Tg21<Tthであるので、ステップS6へ進み、フレームの格納先としてアドレスを取得しているバッファ42bに対し、受信したフレーム2を転送開始する。すなわち、フレーム2はフレーム1と同じバッファ42bに格納される。 Frame 2 arrives at the reception frame processing apparatus 1 starts the reception time t 2s in step S4, the frame interval T g21 is measured. In step S5, the frame interval Tg21 calculated in step S4 is compared with a preset threshold value Tth. Here, since T g21 <Tth, the process proceeds to step S6, and the transfer of the received frame 2 is started to the buffer 42b that has acquired the address as the frame storage destination. That is, frame 2 is stored in the same buffer 42b as frame 1.

所定時間が経過して時間t2eになると、ネットワーク2からフレーム2の受信が終了する(ステップS9)。ステップS9においては、当該フレーム(=フレーム2)と、次フレーム(=フレーム3)との間のフレーム間隔(=Tg32)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。 When the predetermined time elapses and time t2e is reached, reception of frame 2 from network 2 ends (step S9). In step S9, in order to measure the frame interval (= Tg32 ) between the frame (= frame 2) and the next frame (= frame 3), a counter for the frame interval timer provided in the counter 21 Is reset by the main control unit 13 and immediately starts measurement of the frame interval.

続いて、ステップS10において、バッファ42bへフレーム2の転送が終了すると、バッファ管理情報41bに受信ステータスを書き込む。続いて、ステップS11において、フレーム2が書き込まれたバッファ42bに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42bにはフレーム2を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム3)が到着するのを待機する。   In step S10, when the transfer of frame 2 to the buffer 42b is completed, the reception status is written in the buffer management information 41b. Subsequently, in step S11, it is determined whether or not there is a free space in the buffer 42b in which the frame 2 is written. In the case of the example of FIG. 7, as shown in FIG. 8, since the buffer 42b has free space even after the frame 2 is stored, the process proceeds to step S12 and waits for the arrival of the next frame (= frame 3). .

図7の例ではすぐに次フレーム(=フレーム3)が到着しないので、ステップS14に進み、ステップS9において測定を開始したフレーム間隔タイマがタイムアウトしたか否かを判定する。図7の例では、フレーム2の受信を終了してからTthが経過してもフレーム3が到着しないため、時間t=t2e+Tthの時点でフレーム間隔タイマがタイムアウトしたと判定され、ステップS15に進んでフレーム間隔タイマ用のカウンタを主制御部13によってリセットする。続いてステップS13に進み、バッファ管理情報41bの必要な部分を更新し、バッファ42bの所有権をCPU5に返却する。 In the example of FIG. 7, since the next frame (= frame 3) does not arrive immediately, the process proceeds to step S14, and it is determined whether or not the frame interval timer that started the measurement in step S9 has timed out. In the example of FIG. 7, since the frame 3 does not arrive even after Tth has elapsed since the reception of the frame 2 has ended, it is determined that the frame interval timer has timed out at the time t = t 2e + Tth, and the process proceeds to step S15. Then, the main controller 13 resets the counter for the frame interval timer. In step S13, a necessary part of the buffer management information 41b is updated, and the ownership of the buffer 42b is returned to the CPU 5.

続いてステップS2に戻り、バッファ管理情報群41から次のバッファ管理情報42cを参照し、次フレーム(=フレーム3)の格納先としてバッファ42cのアドレスを取得して、次フレームの到着を待機する(ステップS3)。   Subsequently, returning to step S2, the next buffer management information 42c is referred to from the buffer management information group 41, the address of the buffer 42c is acquired as the storage destination of the next frame (= frame 3), and the arrival of the next frame is awaited. (Step S3).

フレーム3が受信フレーム処理装置1に到着し、ステップS4において時間t3sに受信を開始すると、フレーム間隔が測定される。フレーム3と前フレーム(=フレーム2)とのフレーム間隔はTg32であるが、ステップS15においてフレーム間隔タイマ用のカウンタがリセットされているため、フレーム間隔はゼロとなる。 When frame 3 arrives at reception frame processing apparatus 1 and reception starts at time t3s in step S4, the frame interval is measured. The frame interval between the frame 3 and the previous frame (= frame 2) is Tg32 . However, since the counter for the frame interval timer is reset in step S15, the frame interval becomes zero.

次に、ステップS5において、ステップS4で算出したフレーム間隔(=ゼロ)と、予め設定されている閾値Tthとを比較する。ここでは、0<Tthであるので、ステップS6へ進み、フレームの格納先としてアドレスを取得しているバッファ42cに対し、受信したフレーム3を転送開始する。所定時間が経過して時間t3eになると、ネットワーク2からフレーム3の受信が終了する(ステップS9)。 Next, in step S5, the frame interval (= zero) calculated in step S4 is compared with a preset threshold value Tth. Here, since 0 <Tth, the process proceeds to step S6, and the transfer of the received frame 3 is started to the buffer 42c that has acquired the address as the frame storage destination. When the predetermined time elapses and time t3e is reached, reception of frame 3 from network 2 ends (step S9).

ステップS9においては、当該フレーム(=フレーム3)と、次フレームとの間のフレーム間隔を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。   In step S9, in order to measure the frame interval between the frame (= frame 3) and the next frame, the counter for the frame interval timer provided in the counter 21 is reset by the main control unit 13 and immediately. Start frame interval measurement.

続いて、ステップS10において、バッファ42cへフレーム3の転送が終了すると、バッファ管理情報41cに受信ステータスを書き込む。続いて、ステップS11において、フレーム3が書き込まれたバッファ42cに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42cにはフレーム3を格納した後にも空き容量があるので、ステップS12に進み、次フレームが到着するのを待機する。   In step S10, when the transfer of the frame 3 to the buffer 42c is completed, the reception status is written in the buffer management information 41c. Subsequently, in step S11, it is determined whether or not there is a free space in the buffer 42c in which the frame 3 is written. In the case of the example of FIG. 7, as shown in FIG. 8, the buffer 42c has free space even after the frame 3 is stored, so the process proceeds to step S12 and waits for the arrival of the next frame.

このようにして、受信フレーム処理装置1が動作中は、上述のステップS2〜ステップS15の処理が繰り返し実行され、ネットワーク2から受信したフレームをシステムメモリ4のバッファ群42の適切なバッファに書き込んでいく。すなわち、図7の例では、フレーム0はバッファ42aに、フレーム3はバッファ42cにそれぞれアンパックモードで格納され、フレーム1,2はバッファ42bにパックモードで格納される(図8参照)。   In this way, while the received frame processing device 1 is operating, the above-described steps S2 to S15 are repeatedly executed, and the frame received from the network 2 is written into an appropriate buffer in the buffer group 42 of the system memory 4. Go. That is, in the example of FIG. 7, frame 0 is stored in the buffer 42a, frame 3 is stored in the buffer 42c in the unpacked mode, and frames 1 and 2 are stored in the buffer 42b in the packed mode (see FIG. 8).

図9に示すように、全てのフレーム0〜3をアンパックモードでバッファ42a〜42dに格納した場合、使用済みのバッファ(=バッファ42a〜42d)においてフレームが格納されていない未使用のメモリ領域の総和は、図8に示すように、本実施の形態における使用済みのバッファ(=バッファ42a〜42c)においてフレームが格納されていない未使用のメモリ領域の総和より大きい。図9は、受信したフレームを全てアンパックモードでバッファ群42に格納する際の格納位置を説明する概略図である。   As shown in FIG. 9, when all the frames 0 to 3 are stored in the buffers 42a to 42d in the unpacking mode, unused memory areas in which no frames are stored in the used buffers (= buffers 42a to 42d). As shown in FIG. 8, the sum is larger than the sum of unused memory areas in which frames are not stored in the used buffers (= buffers 42a to 42c) in this embodiment. FIG. 9 is a schematic diagram for explaining the storage position when all received frames are stored in the buffer group 42 in the unpacked mode.

これより、本実施の形態の受信フレーム処理装置1では、従来のアンパックモードでフレームをバッファに格納する受信フレーム処理装置よりメモリ使用効率が向上していることがわかる。   From this, it can be seen that the reception frame processing device 1 of the present embodiment has improved memory use efficiency compared to the reception frame processing device that stores frames in the buffer in the conventional unpacking mode.

一方、図10に示すように、全てのフレーム0〜3をパックモードでバッファ42aに格納した場合、使用済みのバッファ(=バッファ42a)においてフレームが格納されていない未使用のメモリ領域の総和は、図8に示すように、本実施の形態における使用済みのバッファ(=バッファ42a〜42c)においてフレームが格納されていない未使用のメモリ領域の総和より小さい。図10は、受信したフレームを全てパックモードでバッファ群42に格納する際の格納位置を説明する概略図である。   On the other hand, as shown in FIG. 10, when all the frames 0 to 3 are stored in the buffer 42a in the pack mode, the sum of the unused memory areas in which no frames are stored in the used buffer (= buffer 42a) is As shown in FIG. 8, the used buffer (= buffers 42a to 42c) in the present embodiment is smaller than the sum of unused memory areas in which no frames are stored. FIG. 10 is a schematic diagram for explaining a storage position when all received frames are stored in the buffer group 42 in the pack mode.

ここで、図11と図12を用い、レイテンシの観点で本実施の形態の受信フレーム処理装置1と、全てパックモードでバッファ群42にフレームを格納する従来の受信フレーム処理装置とを比較してみる。   Here, FIG. 11 and FIG. 12 are used to compare the received frame processing apparatus 1 of the present embodiment with the conventional viewpoint that stores frames in the buffer group 42 in the pack mode from the viewpoint of latency. View.

図11は、パックモードにおけるフレーム0のレイテンシを説明するタイムチャートであり、図12は、本実施の形態におけるフレーム0のレイテンシを説明するタイムチャートである。ここで、レイテンシとは、小容量メモリ11でフレームの末尾を受信完了してから、システムメモリ4内へのフレームのコピーがすべて完了し、さらにバッファの所有権がCPU5に譲渡された時点までの時間をいう。(所有権の移動という観点からみた場合、レイテンシは、システムメモリ4にフレームの転送が完了してからバッファの所有権がCPU5に移動するまでの時間と言うこともできる。)
図11と図12においては、ネットワーク2から受信フレーム処理装置1の小容量メモリ11にフレームを書き込むタイミングを上段に、受信フレーム処理装置1からシステムメモリ4のバッファ管理情報群41及びバッファ群42にフレームや各種情報を書き込むタイミングを下段に示している。
FIG. 11 is a time chart for explaining the latency of frame 0 in the pack mode, and FIG. 12 is a time chart for explaining the latency of frame 0 in the present embodiment. Here, the latency is from the time when the end of the frame is completely received by the small-capacity memory 11 until the copying of the frame into the system memory 4 is completed and the ownership of the buffer is transferred to the CPU 5. Say time. (From the viewpoint of transfer of ownership, latency can also be said to be the time from the completion of frame transfer to the system memory 4 until the transfer of ownership of the buffer to the CPU 5.)
11 and 12, the timing of writing a frame from the network 2 to the small capacity memory 11 of the reception frame processing device 1 is set to the upper stage, and the buffer management information group 41 and the buffer group 42 of the system memory 4 are received from the reception frame processing device 1. The timing for writing frames and various information is shown in the lower part.

図11に示すように、全てのフレームをパックモードでバッファ群42に格納する場合、フレーム0〜フレーム3の4つのフレームは全て1つのバッファ42aに書き込まれるため、フレーム3の書き込みが終了するまでバッファ42aの所有権がCPU5に譲渡されない。従って、フレーム0のレイテンシTl0´は、小容量メモリ11がネットワーク2からフレーム0の受信を完了した時点(=t0e)から、フレーム3が受信フレーム処理装置1からバッファ42aに書き込まれ、更に、対応するフレーム管理情報41aに受信ステータスなどの情報が書き込まれ、バッファ42aの所有権がCPU5に譲渡される時点(=t3be´)までの間の経過時間となる。 As shown in FIG. 11, when all the frames are stored in the buffer group 42 in the pack mode, all four frames 0 to 3 are written to one buffer 42a, so that the writing of the frame 3 is completed. The ownership of the buffer 42a is not transferred to the CPU 5. Accordingly, the latency T 10 ′ of the frame 0 is written in the buffer 42a from the received frame processing device 1 from the time when the small-capacity memory 11 completes the reception of the frame 0 from the network 2 (= t 0e ). This is the elapsed time from when the information such as the reception status is written in the corresponding frame management information 41a and the ownership of the buffer 42a is transferred to the CPU 5 (= t 3be ′ ).

一方、本実施の形態においては、フレーム0はアンパックモードでバッファ42aに書き込まれ、フレーム1以降は別のバッファ42b,42cに書き込まれる。従って、図12に示すように、フレーム0のレイテンシTl0は、小容量メモリ11がネットワーク2からフレーム0の受信を完了した時点(=t0e)から、タイムアウトの閾値Tthが経過して、バッファ42aの所有権がCPU5に譲渡される時点(=t0be)までの間の経過時間となる。 On the other hand, in the present embodiment, frame 0 is written in the buffer 42a in the unpacked mode, and frames 1 and after are written in the other buffers 42b and 42c. Therefore, as shown in FIG. 12, the latency T 10 of the frame 0 is determined by the time-out threshold Tth after the small-capacity memory 11 completes the reception of the frame 0 from the network 2 (= t 0e ). This is the elapsed time until the time when the ownership of 42a is transferred to the CPU 5 (= t 0be ).

これより、Tl0<Tl0´であり。本実施の形態の受信フレーム処理装置1では、従来のパックモードでフレームをバッファに格納する受信フレーム処理装置よりレイテンシが小さくなっていることがわかる。また、レイテンシがバッファ42a〜42dのサイズに依存しないため、バッファ42a〜42dのサイズを大きくしてバッファ群42に含まれるバッファの数を少なくすることができる。これにより、バッファ管理情報群41に含まれるバッファ管理情報の数も削減されるため、バッファ管理情報群41に割り当てるメモリ領域を低減することができ、メモリ使用効率を向上させることができる。 Therefore , T 10 <T 10 ′ . It can be seen that the received frame processing apparatus 1 of the present embodiment has a lower latency than the received frame processing apparatus that stores frames in the buffer in the conventional pack mode. Since the latency does not depend on the sizes of the buffers 42a to 42d, the size of the buffers 42a to 42d can be increased to reduce the number of buffers included in the buffer group 42. As a result, the number of buffer management information included in the buffer management information group 41 is also reduced, so that the memory area allocated to the buffer management information group 41 can be reduced and the memory usage efficiency can be improved.

また、パックモードでフレームを格納する場合、アンパックモードでフレームを格納する場合に比べてフレーム管理情報の量が多くなることなどから、CPU5の処理量が増え、負荷が大きくなる。本実施の形態の受信フレーム処理装置1では、パックモードとアンパックモードを混在させているので、全てをパックモードで処理する場合に比べてCPUの負荷を低減することができる。   Further, when frames are stored in the packed mode, the amount of frame management information is larger than when frames are stored in the unpacked mode. Therefore, the processing amount of the CPU 5 is increased and the load is increased. In the received frame processing apparatus 1 according to the present embodiment, the pack mode and the unpack mode are mixed, so that the load on the CPU can be reduced as compared with the case where all are processed in the pack mode.

このように、本実施の形態においては、予め設定された閾値Tthよりもフレームの到着間隔が短い場合にはパックモードで、フレームの到着間隔が長い場合にはアンパックモードでフレームをバッファに格納するようにしたので、全てのフレームをアンパックモードで格納する場合よりもメモリ使用効率を向上させることができ、また、全てのフレームをパックモードで格納する場合よりも、メモリ使用効率を向上させることができ、フレームのレイテンシを小さくし、CPUの負荷を低減させることができる。   Thus, in this embodiment, the frame is stored in the buffer in the packed mode when the frame arrival interval is shorter than the preset threshold value Tth, and in the unpacked mode when the frame arrival interval is long. As a result, the memory usage efficiency can be improved as compared with the case where all the frames are stored in the unpacked mode, and the memory usage efficiency can be improved as compared with the case where all the frames are stored in the packed mode. The latency of the frame can be reduced and the load on the CPU can be reduced.

なお、本実施の形態においては、ネットワーク2からフレームの受信を終了した際に、受信ステータスなどの情報をフレーム管理情報に書き込んでから次のフレームを書き込むバッファのアドレスを読み出す順番で処理を行うように説明したが、処理の順番を逆にし、バッファのアドレスを読み出してから受信ステータスなどの情報を書き込むようにしてもよい。   In this embodiment, when reception of a frame from the network 2 is finished, information such as reception status is written in the frame management information and then processing is performed in the order of reading out the address of the buffer in which the next frame is written. As described above, the processing order may be reversed, and information such as the reception status may be written after reading the buffer address.

(第2の実施の形態)
次に、本発明の第2の実施の形態に係わる受信フレーム処理装置について、具体的に説明する。
(Second Embodiment)
Next, a reception frame processing apparatus according to the second embodiment of the present invention will be specifically described.

上述した第1の実施の形態では、ある一のフレームと、次フレームとのフレーム間隔が一定時間を超える場合、及び、バッファの空き容量がなくなった場合に、一のフレームを格納したバッファの所有権をCPU5に譲渡し、次のバッファに次フレームを格納するようにしたが、本実施の形態では、バッファの空き容量が、次フレームのフレーム長よりも小さい場合にも、一のフレームを格納したバッファの所有権をCPU5に譲渡し、次のバッファに次フレームを格納するようにしたものである。   In the first embodiment described above, when the frame interval between a certain frame and the next frame exceeds a certain time, and when the buffer has run out of space, the ownership of the buffer storing the one frame is owned. The right is transferred to the CPU 5 and the next frame is stored in the next buffer. However, in this embodiment, one frame is stored even when the free space of the buffer is smaller than the frame length of the next frame. The ownership of the buffer is transferred to the CPU 5, and the next frame is stored in the next buffer.

例えば、バッファ42aにフレーム0を格納した時点でバッファの空き容量がLaである状況で、フレーム0の受信を完了してから閾値Tthを経過する前にフレーム長がLf(>La)のフレーム1が受信フレーム処理装置1に到着した場合、上述した第1の実施の形態では、図13に示すように、フレーム1がバッファ42aとバッファ42bとにまたがって格納されることになる。図13は、受信フレームが複数のバッファにまたがって格納される例を説明する概略図である。   For example, in a situation where the buffer free space is La when frame 0 is stored in the buffer 42a, frame 1 whose frame length is Lf (> La) before the threshold Tth elapses after reception of frame 0 is completed. Arrives at the reception frame processing device 1, in the first embodiment described above, as shown in FIG. 13, the frame 1 is stored across the buffer 42a and the buffer 42b. FIG. 13 is a schematic diagram illustrating an example in which a received frame is stored across a plurality of buffers.

図13のようにフレーム1が複数のバッファ42a,42bにまたがって格納されている場合、詳しくは、フレーム1の一部分であるフレーム1−0がバッファ42aに格納され、フレーム1の残り部分であるフレーム1−1がバッファ42bに格納されている場合、フレーム1を受信した時点でバッファ42aの所有権をCPU5に譲渡しても、バッファ42bの所有権は受信フレーム処理装置が保有しているため、CPU5はフレーム1の全体を処理できない。従って、フレーム1のように複数のバッファにまたがって格納されるフレームのレイテンシは、1つのバッファに格納されるフレームよりも大きくなってしまう。   When frame 1 is stored across a plurality of buffers 42a and 42b as shown in FIG. 13, in detail, frame 1-0, which is a part of frame 1, is stored in buffer 42a and is the remaining part of frame 1. When the frame 1-1 is stored in the buffer 42b, even if the ownership of the buffer 42a is transferred to the CPU 5 when the frame 1 is received, the ownership of the buffer 42b is retained by the reception frame processing device. The CPU 5 cannot process the entire frame 1. Accordingly, the latency of a frame stored across a plurality of buffers such as frame 1 is larger than that of a frame stored in one buffer.

また、複数のバッファにまたがって格納されるフレームの全体を処理するために、CPU5は該フレームが格納されている全部のバッファのアドレスを取得したり、前後関係を構築したりするために、処理の負荷が大きくなってしまう。   Further, in order to process the entire frame stored across a plurality of buffers, the CPU 5 performs processing in order to obtain the addresses of all the buffers in which the frame is stored and to construct a context. Will increase the load.

そこで、本実施の形態では、次フレームを格納しようとしているバッファの空き容量が次フレームのフレーム長よりも小さい場合には、フレームの格納先を次バッファに切り替えることで、フレームが複数のバッファにまたがって格納される割合を低減する。   Therefore, in this embodiment, when the free space of the buffer for storing the next frame is smaller than the frame length of the next frame, the frame is stored in a plurality of buffers by switching the frame storage destination to the next buffer. Reduce the rate of storage across.

本実施の形態における受信フレーム処理装置の構成は、図1を用いて説明した第1の実施の形態の受信フレーム処理装置1と同様であるため、ここでは受信フレーム処理方法についてのみ説明し、同一の構成要素については、同一の符号を付して説明を省略する。   Since the configuration of the reception frame processing apparatus in the present embodiment is the same as that of the reception frame processing apparatus 1 of the first embodiment described with reference to FIG. 1, only the reception frame processing method will be described here and the same. About the component of these, the same code | symbol is attached | subjected and description is abbreviate | omitted.

図6を用いて説明した第1の実施の形態の受信フレーム処理方法では、フレームの受信を開始し(ステップS4)、フレーム間隔を閾値Tthと比較した後(ステップS5)、フレーム間隔が閾値Tth未満である場合には該フレームを格納予定であるバッファにフレームを転送する(ステップS6)。   In the received frame processing method according to the first embodiment described with reference to FIG. 6, frame reception is started (step S4), the frame interval is compared with the threshold value Tth (step S5), and then the frame interval is set to the threshold value Tth. If it is less than the frame, the frame is transferred to the buffer where the frame is to be stored (step S6).

一方、本実施の形態においては、図14に示すように、フレーム間隔を閾値Tthと比較した後(ステップS5)、バッファの空き容量と受信中のフレームのフレーム長とを比較し(ステップS21)、バッファの空き容量がフレーム長以上である場合に初めて該フレームを格納予定であるバッファにフレームを転送する(ステップS6)。図14は、本発明の第2の形態に係わる受信フレームの処理手順を説明するフローチャートである。   On the other hand, in the present embodiment, as shown in FIG. 14, after comparing the frame interval with the threshold value Tth (step S5), the buffer free space is compared with the frame length of the frame being received (step S21). When the buffer free space is equal to or longer than the frame length, the frame is transferred to the buffer where the frame is to be stored for the first time (step S6). FIG. 14 is a flowchart for explaining the processing procedure of the received frame according to the second embodiment of the present invention.

ステップS21において、バッファの空き容量がフレーム長未満であると判定された場合には、フレーム間隔が閾値Tth以上である場合と同様にステップS7に進み、バッファ管理情報の必要な部分を更新して所有権をCPU5に返却する。続いてステップS8に進み、システムメモリ4のバッファ管理情報群41から次のバッファ管理情報を参照し、対応するバッファのアドレスを取得してステップS6に進む。   If it is determined in step S21 that the free space of the buffer is less than the frame length, the process proceeds to step S7 as in the case where the frame interval is equal to or greater than the threshold Tth, and the necessary portion of the buffer management information is updated. The ownership is returned to the CPU 5. Subsequently, the process proceeds to step S8, the next buffer management information is referred to from the buffer management information group 41 of the system memory 4, the corresponding buffer address is acquired, and the process proceeds to step S6.

このように、本実施の形態においては、受信中のフレームのフレーム長が該フレームを格納しようとしているバッファの空き容量より大きい場合に、次バッファに切り替えて格納することで、フレームが複数のバッファをまたがって格納される割合を低減することができるので、フレームのレイテンシをより小さくし、CPUの処理の負荷をより低減することができる。   As described above, in this embodiment, when the frame length of the frame being received is larger than the free capacity of the buffer in which the frame is to be stored, the frame is stored in a plurality of buffers by switching to the next buffer and storing it. Since the rate of storage across the frames can be reduced, the frame latency can be further reduced, and the processing load on the CPU can be further reduced.

(第3の実施の形態)
次に、本発明の第3の実施の形態に係わる受信フレーム処理装置について、具体的に説明する。
(Third embodiment)
Next, a reception frame processing apparatus according to the third embodiment of the present invention will be specifically described.

上述した第1の実施の形態では、ある一のフレームと、次フレームとのフレーム間隔が一定時間を超える場合、及び、バッファの空き容量Laがなくなった場合に、一のフレームを格納したバッファの所有権をCPU5に譲渡し、次のバッファに次フレームを格納するようにしたが、本実施の形態では、バッファの空き容量Laが、ネットワーク規格の仕様上の最小フレームサイズLminより小さい場合にも、一のフレームを格納したバッファの所有権をCPU5に譲渡し、次のバッファに次フレームを格納するようにしたものである。   In the first embodiment described above, when the frame interval between a certain frame and the next frame exceeds a certain time, and when the buffer free space La runs out, the buffer storing the one frame is stored. Although the ownership is transferred to the CPU 5 and the next frame is stored in the next buffer, in the present embodiment, even when the free space La of the buffer is smaller than the minimum frame size Lmin in the specifications of the network standard. The ownership of the buffer storing one frame is transferred to the CPU 5, and the next frame is stored in the next buffer.

ある一のフレームをバッファに格納した時点で、該バッファの空き容量Laがネットワーク規格の仕様上の最小フレームサイズLminより小さく、かつ、一のフレームと次フレームとのフレーム間隔が閾値Tthよりも小さい場合、第1の実施の形態においては、次フレームはパックモードでバッファに格納されるため、次フレームはフレーム長にかかわらず該バッファと次のバッファとにまたがって格納されることになる。複数のバッファにまたがって格納されたフレームのレイテンシは、1つのバッファに格納されたフレームのレイテンシよりも大きくなり、CPUの処理の負荷は増大する。   When a certain frame is stored in the buffer, the free space La of the buffer is smaller than the minimum frame size Lmin in the specifications of the network standard, and the frame interval between one frame and the next frame is smaller than the threshold Tth. In this case, in the first embodiment, since the next frame is stored in the buffer in the pack mode, the next frame is stored across the buffer and the next buffer regardless of the frame length. The latency of a frame stored across a plurality of buffers becomes larger than the latency of a frame stored in one buffer, and the processing load on the CPU increases.

そこで、本実施の形態では、次フレームを格納しようとしているバッファの空き容量がネットワーク規格の仕様上の最小フレームサイズLminより小さい場合には、フレームの格納先を次バッファに切り替えることで、フレームが複数のバッファにまたがって格納される割合を低減する。   Therefore, in this embodiment, when the free space of the buffer for storing the next frame is smaller than the minimum frame size Lmin in the specifications of the network standard, the frame is stored by switching the frame storage destination to the next buffer. Reduce the rate of storage across multiple buffers.

本実施の形態における受信フレーム処理装置の構成は、図1を用いて説明した第1の実施の形態の受信フレーム処理装置1と同様であるため、ここでは受信フレーム処理方法についてのみ説明し、同一の構成要素については、同一の符号を付して説明を省略する。   Since the configuration of the reception frame processing apparatus in the present embodiment is the same as that of the reception frame processing apparatus 1 of the first embodiment described with reference to FIG. 1, only the reception frame processing method will be described here and the same. About the component of these, the same code | symbol is attached | subjected and description is omitted.

図6を用いて説明した第1の実施の形態の受信フレーム処理方法では、システムメモリ4の適切なバッファへフレームの転送が終了し、フレームを格納したバッファの対応するバッファ管理情報に受信ステータスを書き込んだ後(ステップS10)、当該フレームが書き込まれたバッファに空き容量があるか否かを判定し(ステップS11)。バッファ境界に達しておらず当該バッファに空き容量があると判定された場合には次フレームが到着するのを待機する(ステップS12)。   In the received frame processing method according to the first embodiment described with reference to FIG. 6, the transfer of the frame to an appropriate buffer in the system memory 4 is completed, and the reception status is displayed in the buffer management information corresponding to the buffer storing the frame. After writing (step S10), it is determined whether or not the buffer in which the frame is written has a free space (step S11). If it is determined that the buffer boundary has not been reached and there is free space in the buffer, it waits for the next frame to arrive (step S12).

一方、ステップS11において、バッファ境界に達しており、当該バッファに空き容量がないと判定された場合、ステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。続いてステップS2に戻り、システムメモリ4のバッファ管理情報群41から次のバッファ管理情報を参照し、対応するバッファのアドレスを取得して、次フレームの到着を待機する。   On the other hand, if it is determined in step S11 that the buffer boundary has been reached and there is no free space in the buffer, the process proceeds to step S13, where necessary portions of the buffer management information corresponding to the buffer are updated, and ownership is granted. Return to CPU5. Subsequently, returning to step S2, the next buffer management information is referred to from the buffer management information group 41 of the system memory 4, the address of the corresponding buffer is obtained, and the arrival of the next frame is awaited.

一方、本実施の形態においては、図15に示すように、バッファへフレームの転送が終了してバッファ管理情報に受信ステータスを書き込んだ後(ステップS10)、当該フレームが書き込まれたバッファに空き容量があるか否か、及び、バッファの空き容量Laが最小フレームサイズLminよりも小さいか否かを判定する(ステップS31)。バッファ境界に達しておらず当該バッファに最小フレームサイズLmin以上の空き容量があると判定された場合には次フレームが到着するのを待機する(ステップS12)。図15は、本発明の第3の形態に係わる受信フレームの処理手順を説明するフローチャートである。   On the other hand, in this embodiment, as shown in FIG. 15, after the frame transfer to the buffer is completed and the reception status is written in the buffer management information (step S10), the free space is stored in the buffer in which the frame is written. And whether or not the free space La of the buffer is smaller than the minimum frame size Lmin is determined (step S31). If it is determined that the buffer boundary has not been reached and the buffer has a free space equal to or larger than the minimum frame size Lmin, it waits for the next frame to arrive (step S12). FIG. 15 is a flowchart for explaining the processing procedure of the received frame according to the third embodiment of the present invention.

ステップS31において、当該フレームが書き込まれたバッファに空き容量がない(=バッファ境界に達した)、もしくは、バッファの空き容量Laが最小フレームサイズLminよりも小さいと判定された場合、ステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。続いてステップS2に戻り、システムメモリ4のバッファ管理情報群41から次のバッファ管理情報を参照し、対応するバッファのアドレスを取得して、次フレームの到着を待機する。   If it is determined in step S31 that there is no free space in the buffer in which the frame is written (= the buffer boundary has been reached) or the free space La of the buffer is smaller than the minimum frame size Lmin, the process proceeds to step S13. The necessary part of the buffer management information corresponding to the buffer is updated, and the ownership is returned to the CPU 5. Subsequently, returning to step S2, the next buffer management information is referred to from the buffer management information group 41 of the system memory 4, the address of the corresponding buffer is obtained, and the arrival of the next frame is awaited.

このように、本実施の形態においては、ある一のフレームを格納したバッファの空き容量が、ネットワーク規格の仕様上の最小フレームサイズよりも小さい場合、次フレームの格納先を次バッファに切り替えることで、フレームが複数のバッファをまたがって格納される割合を低減することができるので、フレームのレイテンシをより小さくし、CPUの処理の負荷をより低減することができる。   As described above, in this embodiment, when the free space of the buffer that stores a certain frame is smaller than the minimum frame size in the specifications of the network standard, the storage destination of the next frame is switched to the next buffer. Since the rate at which a frame is stored across a plurality of buffers can be reduced, the latency of the frame can be further reduced and the processing load on the CPU can be further reduced.

また、該フレームをバッファに格納した後、該フレームを格納したバッファの空き容量Laとネットワーク規格の仕様上の最小フレームサイズLminとをただちに比較し、La<Lminの場合、次フレームの格納先を次バッファに切り替えて次フレームの到着を待機することで、該フレームを格納したバッファの所有権がCPUに早く返却されるため、該フレームのレイテンシをより小さくすることができる。   After the frame is stored in the buffer, the free space La of the buffer storing the frame is immediately compared with the minimum frame size Lmin according to the network standard specifications. If La <Lmin, the storage location of the next frame is determined. By switching to the next buffer and waiting for the arrival of the next frame, the ownership of the buffer storing the frame is quickly returned to the CPU, so that the latency of the frame can be further reduced.

(第4の実施の形態)
次に、本発明の第4の実施の形態に係わる受信フレーム処理装置について、具体的に説明する。
(Fourth embodiment)
Next, a reception frame processing apparatus according to the fourth embodiment of the present invention will be specifically described.

上述した第1の実施の形態では、受信フレーム処理装置1からCPU5に対して割り込みを発生させるタイミングに関しては明言していないが、通常は一つのフレームの受信を完了した時点、もしくはシステムメモリ4に一つのフレームを転送完了した時点で割り込みを発生させる。本実施の形態では、一つのバッファの所有権が受信フレーム処理装置からCPU5に譲渡された時点で割り込みを発生させる。   In the first embodiment described above, the timing at which an interrupt is generated from the reception frame processing device 1 to the CPU 5 is not specified, but normally, when reception of one frame is completed, or in the system memory 4 An interrupt is generated when transfer of one frame is completed. In this embodiment, an interrupt is generated when ownership of one buffer is transferred from the reception frame processing device to the CPU 5.

パックモードでバッファが管理されている場合、一つのフレームの受信を完了した時点、もしくはバッファへの書き込みが完了した時点で割り込みを発生させても、当該バッファの所有権はCPU5に譲渡されていないため、割り込みを発生させたフレーム全体を処理できない。しかし、CPU5は割り込みが発生するとこれに応答する必要があるため、CU5に無駄な処理をさせ、結果として処理の負荷を増大させてしまうことになる。   When the buffer is managed in the pack mode, the ownership of the buffer is not transferred to the CPU 5 even if an interrupt is generated when reception of one frame is completed or writing to the buffer is completed. Therefore, the entire frame that generated the interrupt cannot be processed. However, since the CPU 5 needs to respond to an interrupt when it occurs, it causes the CU 5 to perform useless processing, resulting in an increase in processing load.

また、フレーム単位で割り込みを発生させると、フレームの到着頻度が高い場合には割り込み発生頻度も高くなる。すると、割り込みの回数の増加に伴いCPU5の処理の負荷も増大してしまう。   In addition, when an interrupt is generated on a frame basis, the frequency of occurrence of an interrupt increases when the arrival frequency of the frame is high. As a result, the processing load on the CPU 5 increases as the number of interrupts increases.

そこで、本実施の形態では、フレーム単位でなくバッファ単位に割り込みを発生させる(バッファの所有権がCPU5に譲渡された時点で割り込みを発生させる)ことで、CPU5が応答してもフレーム全体を処理することができない割り込み(以下、無駄な割り込みと示す)の発生を抑制し、CPU5の処理の負荷を低減する。   Therefore, in the present embodiment, an interrupt is generated not in units of frames but in units of buffers (when the ownership of the buffer is transferred to the CPU 5), the entire frame is processed even if the CPU 5 responds. The occurrence of interrupts that cannot be performed (hereinafter referred to as useless interrupts) is suppressed, and the processing load on the CPU 5 is reduced.

本実施の形態における受信フレーム処理装置の構成は、図1を用いて説明した第1の実施の形態の受信フレーム処理装置1と同様であるため、ここでは受信フレーム処理方法についてのみ説明し、同一の構成要素については、同一の符号を付して説明を省略する。   Since the configuration of the reception frame processing apparatus in the present embodiment is the same as that of the reception frame processing apparatus 1 of the first embodiment described with reference to FIG. 1, only the reception frame processing method will be described here and the same. About the component of these, the same code | symbol is attached | subjected and description is omitted.

本実施の形態における受信フレーム処理方法は、図6を用いて説明した第1の実施の形態の受信フレーム処理方法のステップS7,ステップS13において、バッファの所有権をCPU5に返却した後に、割り込み制御部16から割り込みコントローラなどを介してCPU5に割り込みを発生させる。   The received frame processing method in this embodiment is the same as that in step S7 and step S13 of the received frame processing method of the first embodiment described with reference to FIG. The CPU 5 generates an interrupt from the unit 16 via an interrupt controller or the like.

図7の例において、フレーム単位で割り込みを発生させる場合、フレーム0〜3の4つのフレームがそれぞれバッファ42a〜42dに格納された時点で割り込みを発生させる。これは、計4回の割り込みを発生させることになる。   In the example of FIG. 7, when an interrupt is generated in units of frames, the interrupt is generated when four frames 0 to 3 are stored in the buffers 42a to 42d, respectively. This will generate a total of four interrupts.

全てのフレームをアンパックモードでバッファに格納する場合、このうち無効な割り込みは0回である。しかし、全てのフレームをパックモードでバッファに格納する場合は、フレーム0〜2が格納された時点で発生した割り込みは、バッファ42aの所有権がCPU5に譲渡されていないため、それぞれのフレームが処理できず、無効な割り込みである。すなわち、計4回の割り込みのうち3回の割り込みが無効な割り込みである。   When all the frames are stored in the buffer in the unpacked mode, the number of invalid interrupts is zero. However, when all the frames are stored in the buffer in the pack mode, the interrupt generated when the frames 0 to 2 are stored is not transferred to the CPU 5 because the ownership of the buffer 42a is transferred. It is not possible and is an invalid interrupt. That is, out of a total of 4 interrupts, 3 interrupts are invalid interrupts.

これに対し、本実施の形態では、図7の例において、フレーム0を格納したバッファ42aの所有権がCPU5に返却された時点(=図12におけるt0be)と、フレーム1,2を格納したバッファ42bの所有権がCPU5に返却された時点(=図12におけるt2be)と、フレーム3を格納したバッファ42cの所有権がCPU5に返却された時点(=図12におけるt3be)で割り込みを発生させる。 On the other hand, in the present embodiment, in the example of FIG. 7, when the ownership of the buffer 42a storing the frame 0 is returned to the CPU 5 (= t 0be in FIG. 12), the frames 1 and 2 are stored. Interrupts are made when the ownership of the buffer 42b is returned to the CPU 5 (= t 2be in FIG. 12) and when the ownership of the buffer 42c storing the frame 3 is returned to the CPU 5 (= t 3be in FIG. 12). generate.

これは、計3回の割り込みを発生させることになり、このうち無効な割り込みは0回である。すなわち、割り込みの発生回数を1回減らすことができ、また、バッファ42bのようにパックモードでフレームを格納しても無駄な割り込みを発生させることがない。   This will generate a total of three interrupts, of which zero are invalid. That is, the number of occurrences of interrupts can be reduced by one, and no unnecessary interrupts are generated even if frames are stored in the pack mode as in the buffer 42b.

このように、本実施の形態においては、バッファ単位に割り込みを発生させることで、割り込みの発生回数、及び、無駄な割り込みの発生を抑制し、CPU5の処理の負荷を低減することができる。また、割り込みの発生回数を抑制することで、CPU5の占有率を下げることができ、CPU5が他の処理を行うことができるようになるため、CPU5の処理効率が向上する効果も期待できる。   As described above, in the present embodiment, by generating an interrupt for each buffer, it is possible to suppress the number of occurrences of interrupts and generation of useless interrupts, and to reduce the processing load of the CPU 5. In addition, by suppressing the number of occurrences of interrupts, the occupation ratio of the CPU 5 can be reduced, and the CPU 5 can perform other processes. Therefore, an effect of improving the processing efficiency of the CPU 5 can be expected.

(第5の実施の形態)
次に、本発明の第5の実施の形態に係わる受信フレーム処理装置について、具体的に説明する。
(Fifth embodiment)
Next, a reception frame processing apparatus according to the fifth embodiment of the present invention will be specifically described.

上述した第4の実施の形態では、一つのバッファの所有権がCPU5に返却される都度、割り込みを発生させるが、本実施の形態では、二つ以上の所定数のバッファの所有権がCPU5に返却された時点で割り込みを発生させるようにしたものである。これにより、フレームの受信頻度が高い場合に、CPU5の処理の負荷を更に低減する効果が期待できる。   In the fourth embodiment described above, an interrupt is generated each time ownership of one buffer is returned to the CPU 5, but in this embodiment, ownership of two or more predetermined number of buffers is assigned to the CPU 5. An interrupt is generated when it is returned. Thereby, when the frame reception frequency is high, an effect of further reducing the processing load of the CPU 5 can be expected.

図6を用いて説明した第4の実施の形態の受信フレーム処理方法では、ステップS7、及びステップS13において、バッファの所有権をCPU5に返却した後に、割り込み制御部16から割り込みコントローラなどを介してCPU5に割り込みを発生させ、それぞれステップS8、及びステップS2に進んで、フレームを格納するバッファのアドレスをバッファ管理情報から読み込む。   In the received frame processing method of the fourth embodiment described with reference to FIG. 6, after the ownership of the buffer is returned to the CPU 5 in step S7 and step S13, the interrupt control unit 16 passes through the interrupt controller or the like. An interrupt is generated in the CPU 5, and the process proceeds to step S8 and step S2, respectively, and the address of the buffer storing the frame is read from the buffer management information.

一方、本実施の形態においては、図16に示すように、ステップS7、及びステップS13において、バッファの所有権をCPU5に返却した後に、CPU5に所有権を返却したバッファ数(以下、バッファ返却数と示す)に1を足す(ステップS41,S44)。図16は、本発明の第5の形態に係わる受信フレームの処理手順を説明するフローチャートである。ここで、バッファ返却数とは、直前の割り込みが発生した後にCPU5に所有権を返却したバッファの数であり、例えばカウンタ21で計測される。   On the other hand, in the present embodiment, as shown in FIG. 16, after returning the ownership of the buffer to the CPU 5 in step S7 and step S13, the number of buffers that returned the ownership to the CPU 5 (hereinafter, the number of buffer returns). 1) is added (steps S41 and S44). FIG. 16 is a flowchart for explaining the processing procedure of the received frame according to the fifth embodiment of the present invention. Here, the buffer return number is the number of buffers whose ownership has been returned to the CPU 5 after the occurrence of the previous interrupt, and is measured by the counter 21, for example.

続くステップS42、もしくはステップS45において、バッファ返却数が設定数より大きい場合、それぞれステップS43,S46に進み、割り込み制御部16から割り込みコントローラなどを介してCPU5に割り込みを発生させ、バッファ返却数をリセットした後、それぞれステップS8,S2に進んで、フレームを格納するバッファのアドレスをバッファ管理情報から読み込む。   In the subsequent step S42 or step S45, if the buffer return number is larger than the set number, the process proceeds to steps S43 and S46, respectively, and an interrupt is generated from the interrupt control unit 16 to the CPU 5 via the interrupt controller or the like to reset the buffer return number. After that, the process proceeds to steps S8 and S2, respectively, and the address of the buffer storing the frame is read from the buffer management information.

一方、ステップS42、もしくはステップS45において、バッファ返却数が設定数以下である場合、割り込みは発生させず、それぞれステップS8,S2に進んで、フレームを格納するバッファのアドレスをバッファ管理情報から読み込む。   On the other hand, if the number of buffer returns is equal to or less than the set number in step S42 or step S45, no interrupt is generated and the process proceeds to steps S8 and S2, respectively, and the address of the buffer storing the frame is read from the buffer management information.

なお、設定数、すなわち割り込みを発生させるバッファ数は、受信フレーム処理装置のコンフィギュレーション時やレジスタ部15などで、システムに応じた値に設定可能である。   Note that the set number, that is, the number of buffers for generating an interrupt, can be set to a value according to the system at the time of configuration of the reception frame processing apparatus or the register unit 15.

このように、本実施の形態においては、複数のバッファの所有権がCPU5に返却された場合に割り込みを発生させることで、割り込みの発生回数を更に抑制し、CPU5の処理の負荷をより低減することができる。また、割り込みの発生回数を更に抑制することで、CPU5の占有率を下げることができ、CPU5が他の処理を行うことができるようになるため、CPU5の処理効率が向上する効果も更に期待できる。   As described above, in the present embodiment, when the ownership of a plurality of buffers is returned to the CPU 5, an interrupt is generated to further suppress the number of occurrences of the interrupt and further reduce the processing load on the CPU 5. be able to. Further, by further reducing the number of occurrences of interrupts, the occupancy rate of the CPU 5 can be reduced and the CPU 5 can perform other processing, so that the effect of improving the processing efficiency of the CPU 5 can be further expected. .

(第6の実施の形態)
次に、本発明の第6の実施の形態に係わる受信フレーム処理装置について、具体的に説明する。本実施の形態の受信フレーム処理装置の構成は、図1を用いて説明した第1の実施の形態の受信フレーム処理装置1と同様であるため、ここでは受信フレーム処理方法についてのみ説明し、同一の構成要素については、同一の符号を付して説明を省略する。
(Sixth embodiment)
Next, a reception frame processing apparatus according to the sixth embodiment of the present invention will be specifically described. Since the configuration of the reception frame processing apparatus of this embodiment is the same as that of the reception frame processing apparatus 1 of the first embodiment described with reference to FIG. 1, only the reception frame processing method will be described here and the same. About the component of these, the same code | symbol is attached | subjected and description is abbreviate | omitted.

本実施の形態の受信フレーム処理方法は、上述した第1〜第3,第5の実施の形態を組み合わせたものである。具体的な方法を図17を用いて説明する。図17は、本発明の第6の形態に係わる受信フレームの処理手順を説明するフローチャートである。   The received frame processing method of this embodiment is a combination of the first to third and fifth embodiments described above. A specific method will be described with reference to FIG. FIG. 17 is a flowchart for explaining the processing procedure of the received frame according to the sixth embodiment of the present invention.

まず、第1の実施の形態と同様に、装置の各部を初期化し(ステップS1)、最初のフレームを格納するバッファのアドレスをバッファ管理情報から読み込む(ステップS2)。続くステップS3において、フレームが到着すると、フレームの受信を開始し、フレーム間隔を取得する(ステップS4)。   First, as in the first embodiment, each unit of the apparatus is initialized (step S1), and the address of the buffer storing the first frame is read from the buffer management information (step S2). In the subsequent step S3, when a frame arrives, reception of the frame is started and a frame interval is acquired (step S4).

続くステップS5において、フレーム間隔が予め設定した閾値より小さい場合、第2の実施の形態と同様に、ステップS21に進み、バッファの空き容量と受信中のフレームのフレーム長とを比較し、空き容量がフレーム長以上である場合にステップS6に進んでフレームの転送を開始する。   In the subsequent step S5, if the frame interval is smaller than the preset threshold value, the process proceeds to step S21 as in the second embodiment, and the free space of the buffer is compared with the frame length of the frame being received. If the frame length is equal to or longer than the frame length, the process proceeds to step S6 to start frame transfer.

一方、ステップS5においてフレーム間隔が閾値以上の場合、もしくはステップS21においてバッファの空き容量がフレーム長未満である場合、ステップS7に進んで該バッファの対応するバッファ管理情報を更新し、該バッファの所有権をCPU5に返却する。続いて、第5の実施の形態と同様に、ステップS41に進み、バッファ返却数に1を加え、設定数と比較する(ステップS42)。   On the other hand, if the frame interval is greater than or equal to the threshold value in step S5, or if the free space of the buffer is less than the frame length in step S21, the process proceeds to step S7 to update the buffer management information corresponding to the buffer and The right is returned to the CPU 5. Subsequently, as in the fifth embodiment, the process proceeds to step S41, where 1 is added to the buffer return number, and the set number is compared (step S42).

バッファ返却数が設定数より大きい場合、ステップS43に進んで割り込みを発生させ、バッファ返却数をリセットしてステップS8に進んでフレームの格納先となる次のバッファのアドレスを読み込む。一方、バッファ返却数が設定数以下である場合、割り込みを発生させずにステップS8に進む。続いてステップS6に進み、フレームの転送を開始する。   When the buffer return number is larger than the set number, the process proceeds to step S43 to generate an interrupt, the buffer return number is reset, and the process proceeds to step S8 to read the address of the next buffer as the frame storage destination. On the other hand, if the buffer return number is less than or equal to the set number, the process proceeds to step S8 without generating an interrupt. In step S6, frame transfer is started.

第1の実施の形態と同様に、フレームの転送を開始した後(ステップS6)、フレームの受信を終了すると、フレーム間隔タイマのカウンタをリセットし、直ちにフレーム間隔の測定を開始する(ステップS9)。続いて、フレームの転送を終了すると、バッファ管理情報に受信ステータスなどを書き込む(ステップS10)。   As in the first embodiment, after frame transfer is started (step S6), when frame reception is completed, the frame interval timer counter is reset and frame interval measurement is started immediately (step S9). . Subsequently, when the frame transfer is completed, the reception status and the like are written in the buffer management information (step S10).

次に、第3の実施の形態と同様に、ステップS31に進み、当該フレームが書き込まれたバッファに空き容量があるか否か、及び、バッファの空き容量Laが最小フレームサイズLminよりも小さいか否かを判定する。バッファ境界に達しておらず当該バッファに最小フレームサイズLmin以上の空き容量があると判定された場合には次フレームが到着するのを待機する(ステップS12)。   Next, as in the third embodiment, the process proceeds to step S31, and whether or not the buffer in which the frame is written has free space and whether or not the free space La of the buffer is smaller than the minimum frame size Lmin. Determine whether or not. If it is determined that the buffer boundary has not been reached and the buffer has a free space equal to or larger than the minimum frame size Lmin, it waits for the next frame to arrive (step S12).

ステップS31において、当該フレームが書き込まれたバッファに空き容量がない(=バッファ境界に達した)、もしくは、バッファの空き容量Laが最小フレームサイズLminよりも小さいと判定された場合、ステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。   If it is determined in step S31 that there is no free space in the buffer in which the frame is written (= the buffer boundary has been reached) or the free space La of the buffer is smaller than the minimum frame size Lmin, the process proceeds to step S13. The necessary part of the buffer management information corresponding to the buffer is updated, and the ownership is returned to the CPU 5.

続いて、第5の実施の形態と同様に、ステップS44に進み、バッファ返却数に1を加え、設定数と比較する(ステップS45)。バッファ返却数が設定数より大きい場合、ステップS46に進んで割り込みを発生させ、バッファ返却数をリセットしてステップS2に進んでフレームの格納先となる次のバッファのアドレスを読み込む。一方、バッファ返却数が設定数以下である場合、割り込みを発生させずにステップS2に進む。   Subsequently, as in the fifth embodiment, the process proceeds to step S44, where 1 is added to the buffer return number, and the set number is compared (step S45). When the buffer return number is larger than the set number, the process proceeds to step S46 to generate an interrupt, the buffer return number is reset, and the process proceeds to step S2 to read the address of the next buffer as the frame storage destination. On the other hand, if the buffer return number is less than or equal to the set number, the process proceeds to step S2 without generating an interrupt.

以下、第1の実施の形態と同様に、ステップS12において、フレームが到着した場合、ステップS4に戻ってフレームの受信を開始する。一方、フレームが到着しない場合、ステップS14に進み、ステップS9において測定を開始したフレーム間隔タイマがタイムアウトしたか否かを判定する。   Hereinafter, as in the first embodiment, when a frame arrives in step S12, the process returns to step S4 to start receiving the frame. On the other hand, when the frame does not arrive, the process proceeds to step S14, and it is determined whether or not the frame interval timer that started the measurement in step S9 has timed out.

ステップS14において、フレーム間隔タイマがタイムアウトしていないと判定された場合、ステップS12に戻り、次フレームの到着を待機する。一方、ステップS14において、フレーム間隔タイマがタイムアウトしたと判定された場合、ステップS15に進み、フレーム間隔タイマ用のカウンタを主制御部13によってリセットする。続いてステップS13に進み、当該バッファに対応するバッファ管理情報の必要な部分を更新し、所有権をCPU5に返却する。   If it is determined in step S14 that the frame interval timer has not timed out, the process returns to step S12 and waits for the arrival of the next frame. On the other hand, if it is determined in step S14 that the frame interval timer has timed out, the process proceeds to step S15, where the main control unit 13 resets the counter for the frame interval timer. In step S13, a necessary part of the buffer management information corresponding to the buffer is updated, and the ownership is returned to the CPU 5.

受信フレーム処理装置1が動作中は、上述した各ステップの処理が繰り返し実行され、ネットワーク2から受信したフレームをシステムメモリ4のバッファ群42の適切なバッファに書き込んでいく。   While the reception frame processing device 1 is in operation, the processing of each step described above is repeatedly executed, and the frame received from the network 2 is written into an appropriate buffer in the buffer group 42 of the system memory 4.

このように、本実施の形態においては、第1〜第3,及び第5の実施の形態を組み合わせることで、それぞれの効果を重畳させることができ、特に、CPUの処理の負荷をよりいっそう低減することができる。

As described above, in the present embodiment, by combining the first to third and fifth embodiments, the respective effects can be superimposed, and in particular, the processing load on the CPU is further reduced. can do.

本発明の実施の形態に係わる受信フレーム処理装置1の構成を説明するブロック図。The block diagram explaining the structure of the received frame processing apparatus 1 concerning embodiment of this invention. システムメモリ4の構成を説明する概略図。FIG. 3 is a schematic diagram illustrating a configuration of a system memory 4. フレームが固定長の場合のバッファ管理情報の具体例を説明する図。The figure explaining the specific example of buffer management information in case a frame is fixed length. フレームが可変長で格納モードがアンパックモードの場合のバッファ管理情報の具体例を説明する図。The figure explaining the specific example of buffer management information in case a frame is variable length and storage mode is unpacking mode. フレームが可変長で格納モードがパックモードの場合のバッファ管理情報の具体例を説明する図。The figure explaining the specific example of buffer management information in case a frame is variable length and storage mode is pack mode. 本発明の第1の実施の形態に係わる受信フレームの処理手順を説明するフローチャート。4 is a flowchart for explaining a received frame processing procedure according to the first embodiment of the present invention; ネットワーク2からフレームを受信している状況の一例を説明するタイムチャート。4 is a time chart for explaining an example of a situation in which a frame is received from the network 2; 受信したフレームをバッファ群42に格納する際の格納位置を説明する概略図。FIG. 4 is a schematic diagram for explaining a storage position when a received frame is stored in a buffer group. 受信したフレームを全てアンパックモードでバッファ群42に格納する際の格納位置を説明する概略図。Schematic explaining the storage position when all the received frames are stored in the buffer group 42 in the unpack mode. 受信したフレームを全てパックモードでバッファ群42に格納する際の格納位置を説明する概略図。Schematic explaining the storage position when all received frames are stored in the buffer group 42 in the pack mode. パックモードにおけるフレーム0のレイテンシを説明するタイムチャート。The time chart explaining the latency of the frame 0 in pack mode. 本実施の形態におけるフレーム0のレイテンシを説明するタイムチャート。4 is a time chart for explaining the latency of frame 0 in the present embodiment. 受信フレームが複数のバッファにまたがって格納される例を説明する概略図。Schematic explaining an example in which a received frame is stored across a plurality of buffers. 本発明の第2の形態に係わる受信フレームの処理手順を説明するフローチャート。The flowchart explaining the process procedure of the received frame concerning the 2nd form of this invention. 本発明の第3の形態に係わる受信フレームの処理手順を説明するフローチャート。The flowchart explaining the processing procedure of the received frame concerning the 3rd form of this invention. 本発明の第5の形態に係わる受信フレームの処理手順を説明するフローチャート。The flowchart explaining the processing procedure of the received frame concerning the 5th form of this invention. 本発明の第6の形態に係わる受信フレームの処理手順を説明するフローチャート。The flowchart explaining the processing procedure of the received frame concerning the 6th form of this invention.

符号の説明Explanation of symbols

1…受信フレーム処理装置、2…ネットワーク、3…システムバス、4…システムメモリ、5…CPU、11…小容量メモリ、12…フレーム処理部、13…主制御部、14…DMA制御部、15…レジスタ部、16…割り込み制御部、21カウンタ   DESCRIPTION OF SYMBOLS 1 ... Reception frame processing apparatus, 2 ... Network, 3 ... System bus, 4 ... System memory, 5 ... CPU, 11 ... Small capacity memory, 12 ... Frame processing part, 13 ... Main control part, 14 ... DMA control part, 15 ... Register, 16 ... Interrupt controller, 21 counter

Claims (5)

ネットワークから可変長のフレームを受信し、システムメモリ上に設けられCPUとの共有領域であるバッファ領域に前記フレームを転送する受信フレーム処理装置であって、
前記バッファ領域は複数のバッファから構成されており、第1のフレームを第1のバッファに転送してから一定時間が経過する前に第2のフレームを受信した場合には、前記第2のフレームを前記第1のバッファに転送し、前記第1のフレームを前記第1のバッファに転送してから一定時間以上経過した後に前記第2のフレームを受信した場合には、前記第1のバッファの所有権を前記CPUに譲渡した後に前記第2のフレームを第2のバッファに転送することを特徴とする、受信フレーム処理装置。
A reception frame processing device that receives a variable-length frame from a network and transfers the frame to a buffer area that is provided on a system memory and is a shared area with a CPU,
The buffer area is composed of a plurality of buffers, and when the second frame is received before a predetermined time has elapsed since the first frame was transferred to the first buffer, the second frame Is transferred to the first buffer, and when the second frame is received after a lapse of a predetermined time from the transfer of the first frame to the first buffer, A received frame processing apparatus, wherein the second frame is transferred to a second buffer after the ownership is transferred to the CPU.
前記第1のフレームを格納した後の前記第1のバッファの空き容量が、前記第2のフレームの長さよりも小さい場合、前記第1のバッファの所有権を前記CPUに譲渡した後に前記第2のフレームを前記第2のバッファに転送することを特徴とする、請求項1に記載の受信フレーム処理装置。   If the free space of the first buffer after storing the first frame is smaller than the length of the second frame, the ownership of the first buffer is transferred to the CPU and then the second buffer is transferred. The received frame processing device according to claim 1, wherein the frame is transferred to the second buffer. 前記第1のフレームを格納した後の前記第1のバッファの空き容量が、前記ネットワークの規格の仕様上のフレームの最小長さよりも小さい場合、前記第1のバッファの所有権を前記CPUに譲渡した後に前記第2のフレームを前記第2のバッファに転送することを特徴とする、請求項1叉は請求項2に記載の受信フレーム処理装置。   When the free capacity of the first buffer after storing the first frame is smaller than the minimum frame length according to the specifications of the network standard, the ownership of the first buffer is transferred to the CPU. The received frame processing apparatus according to claim 1 or 2, wherein the second frame is transferred to the second buffer after the transmission. 前記CPUに一定数の前記バッファの所有権を譲渡した時点で割り込みを発生させることを特徴とする、請求項1乃至請求項3のいずれか一項に記載の受信フレーム処理装置。   4. The received frame processing device according to claim 1, wherein an interrupt is generated when ownership of a certain number of the buffers is transferred to the CPU. 5. CPUと、
システムメモリと、
ネットワークから可変長のフレームを受信し、システムバスを介して前記システムメモリ上に設けられ前記CPUとの共有領域であるバッファ領域に前記フレームを転送するネットワークコントローラと
から構成される受信フレーム処理システムであって、
前記バッファ領域は複数のバッファから構成されており、第1のフレームを第1のバッファに転送してから一定時間が経過する前に第2のフレームを受信した場合には、前記第2のフレームを前記第1のバッファに転送し、前記第1のフレームを前記第1のバッファに転送してから一定時間以上経過した後に前記第2のフレームを受信した場合には、前記第1のバッファの所有権を前記CPUに譲渡した後に前記第2のフレームを第2のバッファに転送することを特徴とする、受信フレーム処理システム。
CPU,
System memory,
A received frame processing system comprising: a network controller which receives a variable-length frame from a network and transfers the frame to a buffer area which is provided on the system memory via a system bus and which is a shared area with the CPU. There,
The buffer area is composed of a plurality of buffers, and when the second frame is received before a predetermined time has elapsed since the first frame was transferred to the first buffer, the second frame Is transferred to the first buffer, and when the second frame is received after a lapse of a predetermined time from the transfer of the first frame to the first buffer, A received frame processing system, wherein the second frame is transferred to a second buffer after ownership is transferred to the CPU.
JP2007094209A 2007-03-30 2007-03-30 Receiving frame processor and receiving frame processing system Abandoned JP2008252748A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007094209A JP2008252748A (en) 2007-03-30 2007-03-30 Receiving frame processor and receiving frame processing system
US12/056,537 US20080240157A1 (en) 2007-03-30 2008-03-27 Received frame processing device, received frame processing system and received frame processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007094209A JP2008252748A (en) 2007-03-30 2007-03-30 Receiving frame processor and receiving frame processing system

Publications (1)

Publication Number Publication Date
JP2008252748A true JP2008252748A (en) 2008-10-16

Family

ID=39794236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007094209A Abandoned JP2008252748A (en) 2007-03-30 2007-03-30 Receiving frame processor and receiving frame processing system

Country Status (2)

Country Link
US (1) US20080240157A1 (en)
JP (1) JP2008252748A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9307267B2 (en) * 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
US20230030241A1 (en) * 2021-07-29 2023-02-02 International Business Machines Corporation Intersystem processing employing buffer summary groups
US12008413B2 (en) 2021-07-29 2024-06-11 International Business Machines Corporation Vector processing employing buffer summary groups

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5303347A (en) * 1991-12-27 1994-04-12 Digital Equipment Corporation Attribute based multiple data structures in host for network received traffic
US6266702B1 (en) * 1998-09-28 2001-07-24 Raytheon Company Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data

Also Published As

Publication number Publication date
US20080240157A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
TWI416334B (en) Method, bus interface device and processor for transmitting data transfer requests from a plurality of clients as packets on a bus
US7624221B1 (en) Control device for data stream optimizations in a link interface
US8730248B2 (en) Multi-graphics processor system, graphics processor and data transfer method
JP2007183692A (en) Data processor
JP2006217476A (en) Communication method, communication system, and cable/radio bridge apparatus
US20050038946A1 (en) System and method using a high speed interface in a system having co-processors
JP4749002B2 (en) Data transfer apparatus, image processing apparatus, and data transfer control method
JP2008252748A (en) Receiving frame processor and receiving frame processing system
JP5233360B2 (en) MEMORY CONTROL DEVICE, MEMORY CONTROL DEVICE CONTROL METHOD, AND INFORMATION PROCESSING DEVICE
US8230137B2 (en) Network processor, reception controller and data reception processing method performing direct memory access transfer
JP4700392B2 (en) Information processing apparatus, computer control method, and program
US8842547B2 (en) Communication control apparatus and control method
JP2009188508A (en) Data transmission and reception device
JP2005303787A (en) Packet-generating apparatus
JP5772132B2 (en) Data transfer apparatus, data transfer method, and information processing apparatus
US20140281091A1 (en) Method and apparatus for identifying cause of interrupt
JP2009205366A (en) Channel device, information processing system, and data transfer method
US10002092B2 (en) Arithmetic processing unit, and method of controlling arithmetic processing unit
JP3674207B2 (en) Peripheral device and buffer control method in half-duplex communication system
JPH09204311A (en) Information processing system
JP5587530B2 (en) Engine / processor linkage system and linkage method
JP2002176464A (en) Network interface device
JP2018173856A (en) Information processor and method for controlling the same
JP6822670B2 (en) Computer equipment, data transfer control equipment, and methods
TW202422352A (en) Electronic apparatus and control method for managing available pointers of packet buffer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090917

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20100205