JP2008252748A - Receiving frame processor and receiving frame processing system - Google Patents
Receiving frame processor and receiving frame processing system Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering 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
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の負荷が高くなってしまうという問題があった。また、他にも、空いているバッファのうちから適切なサイズのバッファを選択するための仕組みが必要になるといった問題があった。
本発明は、以上の点に鑑みてなされたもので、メモリ使用効率を向上させ、フレームのレイテンシを小さくし、かつ、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
受信フレーム処理装置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
また、ネットワーク2とシステムバス3とでクロック(動作周波数)が異なる場合が多いため、異なるクロックドメイン間でフレームをやりとりするための緩衝用メモリとしても小容量メモリ11が利用される。
In addition, since the clock (operating frequency) is often different between the
また、ネットワーク2から受信したフレームは、フレーム処理部12に出力されて解析され、フレーム長やフレーム間隔などが検出・測定される。なお、小容量メモリ11に格納するフレームは、フレーム処理部12を介さずに直接ネットワーク2から受信するような構成にしてもよい。
The frame received from the
フレーム処理部12で解析されたフレームに関する情報は、主制御部13に出力される。主制御部13では、取得したフレームに関する情報、特に、フレーム長やフレームの受信間隔と、レジスタ部15に格納されている各種制御情報・ステータス情報とに基づき、システムメモリ4におけるフレームの格納方法を決定する。すなわち、次に出力するフレームを、直前に出力したフレームと同じバッファに格納するのか、別のバッファに格納するのかを決定する。なお、主制御部13には、カウンタ21も接続されており、フレームの受信間隔などの測定は、このカウンタ21を利用することができるように構成されている。
Information about the frame analyzed by the
主制御部13は、決定したフレームの格納方法に基づき、小容量メモリ11に一時的に格納されているフレームを、DMA制御部14、システムバス3を介してシステムメモリ4の所定のバッファに出力する。
Based on the determined frame storage method, the
また、主制御部13には割り込み制御部16も接続されている。割り込み制御部16は、図示しない割り込みコントローラなどに接続されており、所定のタイミングで、割り込みコントローラを介してCPU5に対して割り込みの発生を通知する。なお、図示しない割り込みコントローラを介さずに、割り込みコントローラを内蔵したCPU5に直接割り込みの発生を通知する場合もある。
An
システムメモリ4には、図2に示すように、受信フレーム処理装置1から受信したフレームを格納するためのバッファ群42の領域と、バッファ群42に関する情報を格納するためのバッファ管理情報群41の領域とが予め確保されている。図2は、システムメモリ4の構成を説明する概略図である。なお、バッファ管理情報群41と、バッファ群42との領域は、受信フレーム処理装置1とCPU5との間で共有されている。
As shown in FIG. 2, the
バッファ群42は、複数のバッファ42a〜42dから構成されており、各バッファ42a〜42dには受信フレーム処理装置1から受信したフレームが格納される。バッファ管理情報群41は、バッファ群42に含まれるバッファと同じ個数のバッファ管理情報41a〜41dから構成されており、各バッファ管理情報41a〜41dには、対応するバッファ42a〜42dに関する各種情報(所有権、格納モード、格納されているフレームの位置、など)が格納されている。
The
ここで、バッファの所有権とは、対応するバッファのアクセス権(更新権)が受信フレーム処理装置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
また、格納モードとは、対応するバッファに複数のフレームを格納できるモード(以下、パックモードと示す)なのか、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
まず、対応するバッファ42aの格納モードがパックモードかアンパックモードかを示すモード情報410が先頭に書き込まれる。続いて、バッファ42aに格納されているフレームについて、開始オフセット値411aと終了オフセット値411bとが書き込まれる。フレームが複数格納されている場合は、格納された順に、それぞれのフレームについて開始オフセット値412a,413a,414aと終了オフセット値412b,413b,414bとが書き込まれる。最後に、対応するバッファ42aの所有権を有するのが受信フレーム処理装置1であるかCPU5であるかを示す所有ビット415が書き込まれる。
First,
なお、当該バッファ42aに格納されるフレーム数が2個、または3個の場合、これ以降はフレームが格納されていないことを示す仕組みが設けられている。例えば、フレームが格納されない部分の開始オフセット値(格納されるフレーム数が2個の場合は3個目のフレームの開始オフセット値413a、格納されるフレーム数が3個の場合は4個目のフレームの開始オフセット値414a)に0などの予め定められた値が書き込まれる。
Note that when the number of frames stored in the
次に、受信するフレームが可変長である場合について、図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
更に、当該フレームの先頭部分が含まれているか否かを示すフレーム先頭ビット417と、当該フレームの末尾部分が含まれているか否かを示すフレーム末尾ビット418が書き込まれる。フレームの長さがバッファの長さより大きい場合、フレームが複数のバッファに分割されて格納されることになる。しかし、CPU5がフレームを用いて処理を行う場合にはフレーム全体にアクセスする必要があるため、フレーム先頭ビット417とフレーム末尾ビット418とを参照して、フレームが格納されたバッファを識別する。
Further, a
例えば、フレーム先頭ビット417とフレーム末尾ビット418の両方がオンの場合、当該バッファ42aには1つのフレーム全体が格納されていると識別される。また、例えば、フレーム先頭ビット417はONであるが、フレーム末尾ビット418はOFFの場合、当該バッファ42aにはフレームの一部分が格納されており、続くバッファ42b以降にフレームの残り部分が格納されていると識別される。
For example, when both the
バッファ管理情報41aの最後には、当該バッファ42aの所有権の所在を示す所有ビット415が書き込まれる。
At the end of the
格納モードがパックモードであり、対応するバッファ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
バッファ管理情報41aには、対応するバッファ42aの格納モードがアンパックモードであることを示すモード情報410が先頭に書き込まれる。続いて、フレーム管理情報43において、バッファ42aに格納されているフレームに関する情報の記載位置を特定するために、フレーム管理情報群43の先頭アドレス419(以下、フレーム情報先頭アドレスと示す)が書き込まれる。
In the
図5には、対応するバッファ42aに3つの可変長フレームが格納されている例を示しており、各フレームはフレーム管理情報43a〜43cとしてフレーム管理情報群43に格納されている。この場合、バッファ管理情報41aのフレーム情報先頭アドレス419には、フレーム管理情報43aの先頭のアドレスが書き込まれる。
FIG. 5 shows an example in which three variable length frames are stored in the
フレーム情報43a〜43cには、格納されているフレームの長さ416と、当該フレーム管理情報の所有権を有するのが受信フレーム処理装置1であるかCPU5であるかを示す、フレーム管理所有ビット417と、当該フレームがバッファ42aに格納されている最後のフレームであるか否かを示す終端ビット418とが書き込まれる。図5に示す例の場合、バッファ42aには3つのフレームが格納されているので、フレーム情報43a,43bの終端ビット418はOFFであり、フレーム情報43cの終端ビットはONと書き込まれる。
The
バッファ管理情報41aの最後には、当該バッファ42aの所有権の所在を示す所有ビット415が書き込まれる。
At the end of the
なお、アンパックモードでも、図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
次に、上述した受信フレーム処理装置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
なお、このステップS1と同時に、CPU5は、システムメモリ4内からバッファ群42やバッファ管理情報群41のための領域を確保し、所有権を受信フレーム処置装置1にセットする。この作業と各設定値の書き込みが終わった時点で、CPU5が、レジスタ部15のある場所に書き込みを行うことで、受信フレーム処置装置1に動作開始の合図を送る。動作開始の合図を受け取った受信フレーム処置装置1は、主制御部13によってカウンタ21などをリセットして、動作を開始する。
At the same time as step S 1, the
次に、ステップS2において、システムメモリ4のバッファ管理情報群41から最初のバッファ管理情報41aを参照し、対応するバッファ42aのアドレスを取得する。続いて、ステップS3において、ネットワーク2からフレームの到着を待機する。
Next, in step S2, the first
フレームが到着すると、ステップ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
次に、ステップS5に進み、主制御部13において、ステップS4で算出したフレーム間隔と、予め設定されている閾値Tthとを比較する。ここで、閾値Tthは受信したフレームの格納モードを切り替えるために用いる値であり、ネットワーク速度、ネットワークの最小フレームギャップ、単位時間当たりのCPU5の処理の負荷が最も大きくなるフレームサイズ、CPU5の処理時間、などから決定される。閾値Tthはレジスタ部15などに格納されており、必要に応じて適宜再設定可能になされている。
In step S5, the
ステップ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
なお、本ステップは、通常、小容量メモリ11がネットワーク2からフレームを受信している最中に実行される。すなわち、小容量メモリ11は、ネットワーク2からフレームを受信しつつ、受信したフレームを逐次主制御部13,DMA制御部14を介してシステムバス3に出力する。
This step is usually executed while the small-
一方、ステップ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
ステップS6において、システムメモリ4の適切なバッファへフレームの転送を開始し、所定時間が経過すると、ネットワーク2から小容量メモリ11へのフレームの書き込みが終了する(ステップS9)。ステップS9においては、当該フレームと、当該フレームの直後に到着するフレーム(以下、次フレームと示す)との間のフレーム間隔を測定するために、小容量メモリ11でのフレームの受信が終了した時点で、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。
In step S6, frame transfer to an appropriate buffer in the
続いて、ステップS10において、システムメモリ4の適切なバッファへフレームの転送が終了すると、フレームを格納したバッファの対応するバッファ管理情報に受信ステータス(正常にフレームが転送された、フレームの転送中にエラーが発生した、などを識別する情報)を書き込む。
Subsequently, in step S10, when the frame transfer to the appropriate buffer of the
続いて、ステップ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
ステップ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
ステップ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
受信フレーム処理装置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
図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
まず、受信フレーム処理装置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
フレーム0が受信フレーム処理装置1に到着し、ステップS4において時間t0sに受信を開始すると、フレーム間隔が測定される。ここで、フレーム0は最初に受信フレーム処理装置1に到着するフレームであり、前フレームが存在しないため、フレーム間隔はゼロとなる。次に、ステップS5において、ステップS4で算出したフレーム間隔(=ゼロ)と、予め設定されている閾値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
ステップS9においては、当該フレーム(=フレーム0)と、次フレーム(=フレーム1)との間のフレーム間隔(=Tg10)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。
In step S9, a counter for a frame interval timer provided in the
続いて、ステップS10において、バッファ42aへフレーム0の転送が終了すると、バッファ管理情報41aに受信ステータスを書き込む。続いて、ステップS11において、フレーム0が書き込まれたバッファ42aに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42aにはフレーム0を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム1)が到着するのを待機する。
In step S10, when the transfer of
図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
続いてステップS2に戻り、バッファ管理情報群41から次のバッファ管理情報42bを参照し、次フレーム(=フレーム1)の格納先としてバッファ42bのアドレスを取得して、次フレームの到着を待機する(ステップS3)。
Subsequently, returning to step S2, the next
フレーム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
ステップS9においては、当該フレーム(=フレーム1)と、次フレーム(=フレーム2)との間のフレーム間隔(=Tg21)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。
In step S9, a counter for a frame interval timer provided in the
続いて、ステップS10において、バッファ42bへフレーム1の転送が終了すると、バッファ管理情報41bに受信ステータスを書き込む。続いて、ステップS11において、フレーム1が書き込まれたバッファ42bに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42bにはフレーム1を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム2)が到着するのを待機する。
In step S10, when the transfer of frame 1 to the
図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
フレーム2が受信フレーム処理装置1に到着し、ステップS4において時間t2sに受信を開始すると、フレーム間隔Tg21が測定される。ステップS5において、ステップS4で算出したフレーム間隔Tg21と、予め設定されている閾値Tthとを比較する。ここでは、Tg21<Tthであるので、ステップS6へ進み、フレームの格納先としてアドレスを取得しているバッファ42bに対し、受信したフレーム2を転送開始する。すなわち、フレーム2はフレーム1と同じバッファ42bに格納される。
所定時間が経過して時間t2eになると、ネットワーク2からフレーム2の受信が終了する(ステップS9)。ステップS9においては、当該フレーム(=フレーム2)と、次フレーム(=フレーム3)との間のフレーム間隔(=Tg32)を測定するために、カウンタ21に設けられたフレーム間隔タイマ用のカウンタが主制御部13によってリセットされ、直ちにフレーム間隔の測定を開始する。
When the predetermined time elapses and time t2e is reached, reception of
続いて、ステップS10において、バッファ42bへフレーム2の転送が終了すると、バッファ管理情報41bに受信ステータスを書き込む。続いて、ステップS11において、フレーム2が書き込まれたバッファ42bに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42bにはフレーム2を格納した後にも空き容量があるので、ステップS12に進み、次フレーム(=フレーム3)が到着するのを待機する。
In step S10, when the transfer of
図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
続いてステップS2に戻り、バッファ管理情報群41から次のバッファ管理情報42cを参照し、次フレーム(=フレーム3)の格納先としてバッファ42cのアドレスを取得して、次フレームの到着を待機する(ステップS3)。
Subsequently, returning to step S2, the next
フレーム3が受信フレーム処理装置1に到着し、ステップS4において時間t3sに受信を開始すると、フレーム間隔が測定される。フレーム3と前フレーム(=フレーム2)とのフレーム間隔はTg32であるが、ステップS15においてフレーム間隔タイマ用のカウンタがリセットされているため、フレーム間隔はゼロとなる。
When
次に、ステップ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
ステップ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
続いて、ステップS10において、バッファ42cへフレーム3の転送が終了すると、バッファ管理情報41cに受信ステータスを書き込む。続いて、ステップS11において、フレーム3が書き込まれたバッファ42cに空き容量があるか否かを判定する。図7の例の場合、図8に示すように、バッファ42cにはフレーム3を格納した後にも空き容量があるので、ステップS12に進み、次フレームが到着するのを待機する。
In step S10, when the transfer of the
このようにして、受信フレーム処理装置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
図9に示すように、全てのフレーム0〜3をアンパックモードでバッファ42a〜42dに格納した場合、使用済みのバッファ(=バッファ42a〜42d)においてフレームが格納されていない未使用のメモリ領域の総和は、図8に示すように、本実施の形態における使用済みのバッファ(=バッファ42a〜42c)においてフレームが格納されていない未使用のメモリ領域の総和より大きい。図9は、受信したフレームを全てアンパックモードでバッファ群42に格納する際の格納位置を説明する概略図である。
As shown in FIG. 9, when all the
これより、本実施の形態の受信フレーム処理装置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
ここで、図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
図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
11 and 12, the timing of writing a frame from the
図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
一方、本実施の形態においては、フレーム0はアンパックモードでバッファ42aに書き込まれ、フレーム1以降は別のバッファ42b,42cに書き込まれる。従って、図12に示すように、フレーム0のレイテンシTl0は、小容量メモリ11がネットワーク2からフレーム0の受信を完了した時点(=t0e)から、タイムアウトの閾値Tthが経過して、バッファ42aの所有権がCPU5に譲渡される時点(=t0be)までの間の経過時間となる。
On the other hand, in the present embodiment,
これより、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
また、パックモードでフレームを格納する場合、アンパックモードでフレームを格納する場合に比べてフレーム管理情報の量が多くなることなどから、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
このように、本実施の形態においては、予め設定された閾値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
(第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
例えば、バッファ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
図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
また、複数のバッファにまたがって格納されるフレームの全体を処理するために、CPU5は該フレームが格納されている全部のバッファのアドレスを取得したり、前後関係を構築したりするために、処理の負荷が大きくなってしまう。
Further, in order to process the entire frame stored across a plurality of buffers, the
そこで、本実施の形態では、次フレームを格納しようとしているバッファの空き容量が次フレームのフレーム長よりも小さい場合には、フレームの格納先を次バッファに切り替えることで、フレームが複数のバッファにまたがって格納される割合を低減する。 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の処理の負荷をより低減することができる。 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
ある一のフレームをバッファに格納した時点で、該バッファの空き容量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
一方、ステップ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
一方、本実施の形態においては、図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の処理の負荷をより低減することができる。 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
パックモードでバッファが管理されている場合、一つのフレームの受信を完了した時点、もしくはバッファへの書き込みが完了した時点で割り込みを発生させても、当該バッファの所有権はCPU5に譲渡されていないため、割り込みを発生させたフレーム全体を処理できない。しかし、CPU5は割り込みが発生するとこれに応答する必要があるため、CU5に無駄な処理をさせ、結果として処理の負荷を増大させてしまうことになる。
When the buffer is managed in the pack mode, the ownership of the buffer is not transferred to the
また、フレーム単位で割り込みを発生させると、フレームの到着頻度が高い場合には割り込み発生頻度も高くなる。すると、割り込みの回数の増加に伴い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
そこで、本実施の形態では、フレーム単位でなくバッファ単位に割り込みを発生させる(バッファの所有権が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
本実施の形態における受信フレーム処理装置の構成は、図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
図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
全てのフレームをアンパックモードでバッファに格納する場合、このうち無効な割り込みは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
これに対し、本実施の形態では、図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
これは、計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
このように、本実施の形態においては、バッファ単位に割り込みを発生させることで、割り込みの発生回数、及び、無駄な割り込みの発生を抑制し、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
(第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
図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
一方、本実施の形態においては、図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
続くステップ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
一方、ステップ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
このように、本実施の形態においては、複数のバッファの所有権がCPU5に返却された場合に割り込みを発生させることで、割り込みの発生回数を更に抑制し、CPU5の処理の負荷をより低減することができる。また、割り込みの発生回数を更に抑制することで、CPU5の占有率を下げることができ、CPU5が他の処理を行うことができるようになるため、CPU5の処理効率が向上する効果も更に期待できる。
As described above, in the present embodiment, when the ownership of a plurality of buffers is returned to the
(第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
バッファ返却数が設定数より大きい場合、ステップ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
続いて、第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
受信フレーム処理装置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
このように、本実施の形態においては、第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…受信フレーム処理装置、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)
前記バッファ領域は複数のバッファから構成されており、第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.
システムメモリと、
ネットワークから可変長のフレームを受信し、システムバスを介して前記システムメモリ上に設けられ前記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.
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)
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)
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 |
-
2007
- 2007-03-30 JP JP2007094209A patent/JP2008252748A/en not_active Abandoned
-
2008
- 2008-03-27 US US12/056,537 patent/US20080240157A1/en not_active Abandoned
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 |