Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7740081B2 - Switching device and method for controlling switching device - Google Patents
[go: Go Back, main page]

JP7740081B2 - Switching device and method for controlling switching device - Google Patents

Switching device and method for controlling switching device

Info

Publication number
JP7740081B2
JP7740081B2 JP2022045419A JP2022045419A JP7740081B2 JP 7740081 B2 JP7740081 B2 JP 7740081B2 JP 2022045419 A JP2022045419 A JP 2022045419A JP 2022045419 A JP2022045419 A JP 2022045419A JP 7740081 B2 JP7740081 B2 JP 7740081B2
Authority
JP
Japan
Prior art keywords
information
cache
memory
control unit
packet
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.)
Active
Application number
JP2022045419A
Other languages
Japanese (ja)
Other versions
JP2023139733A (en
Inventor
孝夫 松井
Original Assignee
エフサステクノロジーズ株式会社
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 エフサステクノロジーズ株式会社 filed Critical エフサステクノロジーズ株式会社
Priority to JP2022045419A priority Critical patent/JP7740081B2/en
Publication of JP2023139733A publication Critical patent/JP2023139733A/en
Application granted granted Critical
Publication of JP7740081B2 publication Critical patent/JP7740081B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、スイッチ装置およびスイッチ装置の制御方法に関する。 The present invention relates to a switch device and a control method for the switch device.

ハイブリッドIP通信システムにおいて、IPパケット通信装置のローカル構成管理装置は、ローカルIPパケット転送テーブルを生成し、生成したローカルIPパケット転送テーブルをキャッシュ情報として保持する(例えば、特許文献1参照)。また、ネットワークシステムに含まれるキャッシュサーバは、自動キャッシュ更新動作またはリンク先読み動作等を行うのに適した経路を求め、求めた経路を使用して自動キャッシュ更新動作またはリンク先読み動作等を行う(例えば、特許文献2参照)。自立ネットワークにおいてパケットのルーティングを制御するルーティング制御システムは、フォワーディング情報ベース(FIB)を、RAMとデータパケットプロセッサのキャッシュとに記憶する(例えば、特許文献3参照)。 In a hybrid IP communication system, a local configuration management device of an IP packet communication device generates a local IP packet forwarding table and stores the generated local IP packet forwarding table as cache information (see, for example, Patent Document 1). A cache server included in the network system determines a route suitable for performing automatic cache update operations or link prefetch operations, and performs automatic cache update operations or link prefetch operations using the determined route (see, for example, Patent Document 2). A routing control system that controls packet routing in an autonomous network stores a forwarding information base (FIB) in RAM and the cache of a data packet processor (see, for example, Patent Document 3).

特開2000-244565号公報Japanese Patent Application Laid-Open No. 2000-244565 特開2002-44138号公報Japanese Patent Application Laid-Open No. 2002-44138 特表2017-510197号公報Special Publication No. 2017-510197

例えば、フォワーディング情報ベース(以下、FIB)の一部をキャッシュに記憶する場合、FIBを取得する時間が削減可能である。しかしながら、取得したいFIBがキャッシュに記憶されていない場合、キャッシュミスを判定した後にRAMにアクセスしてFIBが取得されるため、FIBの取得効率が低下し、パケットの中継性能が低下する。さらに、例えば、RAMへのアクセスが続くことで、FIBのアクセス要求を保持するリクエストキューが満杯になった場合、後続のパケットが破棄されるため、パケットの中継性能がさらに低下する。 For example, if part of the forwarding information base (hereinafter referred to as FIB) is stored in the cache, the time required to obtain the FIB can be reduced. However, if the desired FIB is not stored in the cache, a cache miss is detected and then RAM is accessed to obtain the FIB, which reduces the efficiency of FIB acquisition and packet relay performance. Furthermore, for example, if the request queue holding FIB access requests becomes full due to continued access to RAM, subsequent packets will be discarded, further reducing packet relay performance.

1つの側面では、本発明は、パケットの転送経路情報を保持するキャッシュのキャッシュミスを減らすことで、パケットの中継性能の低下を抑制することを目的とする。 In one aspect, the present invention aims to prevent a decline in packet relay performance by reducing cache misses in a cache that holds packet forwarding path information.

一つの観点によれば、スイッチ装置は、パケットの転送制御機能の少なくとも一部が仮想スイッチから転送制御回路にオフロードされたスイッチ装置であって、前記転送制御回路は、メモリに保持されたパケットの転送経路情報のうちの少なくともいずれかの転送経路情報を保持するキャッシュと、受信したパケットの転送経路を、前記キャッシュに保持された転送経路情報を使用して決定する経路制御部と、受信したパケットに対応する転送経路情報が前記キャッシュに保持されていない場合、前記対応する転送経路情報を含む複数の転送経路情報を前記メモリから読み出して前記キャッシュに格納するプリフェッチ制御部と、を有する。 According to one aspect, the switch device is a switch device in which at least a portion of the packet forwarding control function is offloaded from the virtual switch to a forwarding control circuit, and the forwarding control circuit has a cache that holds at least some of the forwarding path information for packets held in memory, a route control unit that determines the forwarding path of a received packet using the forwarding path information held in the cache, and a prefetch control unit that, if the forwarding path information corresponding to the received packet is not held in the cache, reads multiple pieces of forwarding path information including the corresponding forwarding path information from the memory and stores the read information in the cache.

パケットの転送経路情報を保持するキャッシュのキャッシュミスを減らすことで、パケットの中継性能の低下を抑制することができる。 By reducing cache misses in the cache that holds packet forwarding route information, it is possible to prevent a decline in packet relay performance.

一実施形態におけるスイッチ装置を含む情報処理装置の一例を示すブロック図である。1 is a block diagram illustrating an example of an information processing device including a switch device according to an embodiment. 図1のスイッチ装置の動作の一例を示す動作シーケンス図である。2 is an operation sequence diagram showing an example of the operation of the switch device of FIG. 1; FIG. 図1のスイッチ装置の動作の別の例を示す動作シーケンス図である。1. FIG. 5 is an operational sequence diagram showing another example of the operation of the switch device of FIG. 別の実施形態におけるスイッチ装置を含む情報処理装置の一例を示すブロック図である。FIG. 10 is a block diagram illustrating an example of an information processing device including a switch device according to another embodiment. 図4のメモリおよびキャッシュに保持されるFIB情報の一例を示す説明図である。5 is an explanatory diagram showing an example of FIB information stored in the memory and cache of FIG. 4. FIG. 図4の中継制御部の一例を示すブロック図である。FIG. 5 is a block diagram showing an example of a relay control unit in FIG. 4 . 図6のパケット変換部の一例を示すブロック図である。FIG. 7 is a block diagram showing an example of a packet conversion unit in FIG. 6 . 図6のプリフェッチ制御部の一例を示すブロック図である。FIG. 7 is a block diagram illustrating an example of a prefetch control unit in FIG. 6 . 図8のプリフェッチ制御部の発行履歴キューの更新動作の一例を示す説明図である。9 is an explanatory diagram showing an example of an update operation of an issuance history queue of the prefetch control unit of FIG. 8; 図6のメタテーブル生成部により生成されるメタテーブルの一例を示す説明図である。7 is an explanatory diagram illustrating an example of a metatable generated by the metatable generating unit of FIG. 6; FIG. 図6のFIB制御部の一例を示すブロック図である。FIG. 7 is a block diagram showing an example of an FIB control unit in FIG. 6. 図6の中継制御部の動作の一例を示す説明図である。FIG. 7 is an explanatory diagram showing an example of the operation of the relay control unit of FIG. 6; 図6の中継制御部の動作の別の例を示す説明図である。FIG. 7 is an explanatory diagram showing another example of the operation of the relay control unit of FIG. 6 .

以下、図面を参照して、実施形態が説明される。 Embodiments are described below with reference to the drawings.

図1は、一実施形態におけるスイッチ装置を含む情報処理装置の一例を示す。図1に示すスイッチ装置300は、サーバ100に搭載されるCPU(Central Processing Unit)200により実現される仮想スイッチ310および転送制御回路320を有する。 Figure 1 shows an example of an information processing device including a switch device in one embodiment. The switch device 300 shown in Figure 1 has a virtual switch 310 and a transfer control circuit 320 implemented by a CPU (Central Processing Unit) 200 installed in the server 100.

例えば、スイッチ装置300は、ネットワークスイッチである。なお、サーバ100は、情報処理装置の一例であり、CPU200は、演算処理装置の一例である。なお、他のコンピュータ装置が、サーバ100の代わりに適用されてもよく、他のプロセッサが、CPU200の代わりに適用されてもよい。 For example, the switch device 300 is a network switch. The server 100 is an example of an information processing device, and the CPU 200 is an example of an arithmetic processing device. Other computer devices may be used in place of the server 100, and other processors may be used in place of the CPU 200.

スイッチ装置300は、パケットPCKTの転送制御機能の少なくとも一部を仮想スイッチ310から転送制御回路320(すなわち、ハードウェア)にオフロードすることにより構築される。特に限定されないが、転送制御回路320は、サーバ100に搭載されるFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)等のロジックデバイスにより実現される。 The switch device 300 is constructed by offloading at least a portion of the packet PCKT transfer control function from the virtual switch 310 to the transfer control circuit 320 (i.e., hardware). Although not limited to this, the transfer control circuit 320 is implemented by a logic device such as an FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) mounted on the server 100.

CPU200は、プログラムを実行することにより、仮想スイッチ310および仮想マシン210として動作可能である。例えば、仮想スイッチ310は、パケットPCKTの仮想マシン210等への転送を制御する機能のうち、パケットPCKTの転送経路の決定に使用される転送経路情報をメモリ400に登録または更新する機能を有する。特に限定されないが、例えば、転送経路情報は、フォワーディング情報ベース(FIB)でもよい。 By executing a program, the CPU 200 can operate as a virtual switch 310 and a virtual machine 210. For example, the virtual switch 310 has a function of controlling the forwarding of packets PCKT to virtual machines 210, etc., and a function of registering or updating in memory 400 forwarding path information used to determine the forwarding path of packets PCKT. While not particularly limited, the forwarding path information may be, for example, a forwarding information base (FIB).

例えば、メモリ400は、サーバ100に搭載されるSDRAM(Synchronous Dynamic Random Access Memory)等である。例えば、転送経路情報は、パケットPCKTまたはパケットPCKTを受信する図示しないポートに対応して、メモリ400およびキャッシュ340に保持される。 For example, memory 400 is a Synchronous Dynamic Random Access Memory (SDRAM) mounted on server 100. For example, transfer path information is stored in memory 400 and cache 340 in correspondence with packets PCKT or ports (not shown) that receive packets PCKT.

転送制御回路320は、プリフェッチ制御部330、キャッシュ340および経路制御部350を有する。プリフェッチ制御部330は、受信したパケットPCKTに対応する転送経路情報を含む複数の転送経路情報をメモリ400から読み出す複数の読み出し要求を発行し、メモリ400から転送される複数の転送経路情報をキャッシュ340に格納する。 The transfer control circuit 320 has a prefetch control unit 330, a cache 340, and a route control unit 350. The prefetch control unit 330 issues multiple read requests to read multiple pieces of transfer path information from the memory 400, including the transfer path information corresponding to the received packet PCKT, and stores the multiple pieces of transfer path information transferred from the memory 400 in the cache 340.

例えば、プリフェッチ制御部330は、転送制御回路320が受信したパケットPCKTに対応する転送経路情報がキャッシュ340に保持されていない場合、複数の読み出し要求をメモリ400に発行する。また、プリフェッチ制御部330は、転送制御回路320が受信したパケットPCKTに対応する転送経路情報がキャッシュ340に保持されている場合、複数の読み出し要求のメモリ400への発行を抑止する。これにより、プリフェッチ制御部330による無駄なプリフェッチを抑制することができる。 For example, if the cache 340 does not hold transfer path information corresponding to the packet PCKT received by the transfer control circuit 320, the prefetch control unit 330 issues multiple read requests to the memory 400. Furthermore, if the cache 340 holds transfer path information corresponding to the packet PCKT received by the transfer control circuit 320, the prefetch control unit 330 refrains from issuing multiple read requests to the memory 400. This makes it possible to prevent unnecessary prefetching by the prefetch control unit 330.

キャッシュ340は、プリフェッチ制御部330がメモリ400からプリフェッチした複数の転送経路情報および経路制御部350がメモリ400から読み出した転送経路情報を保持する。そして、キャッシュ340は、メモリ400に保持された複数の転送経路情報の少なくとも一部を保持する。 Cache 340 stores multiple pieces of transfer path information prefetched from memory 400 by prefetch control unit 330 and transfer path information read from memory 400 by path control unit 350. Cache 340 also stores at least a portion of the multiple pieces of transfer path information stored in memory 400.

経路制御部350は、受信したパケットPCKTの転送経路をキャッシュ340に保持された転送経路情報を使用して決定する。経路制御部350は、受信したパケットPCKTに対応する転送経路情報がキャッシュ340に保持されていない場合、受信したパケットPCKTに対応する転送経路情報をメモリ400から読み出す読み出し要求をメモリ400に発行する。 The route control unit 350 determines the forwarding route for the received packet PCKT using the forwarding route information stored in the cache 340. If the forwarding route information corresponding to the received packet PCKT is not stored in the cache 340, the route control unit 350 issues a read request to the memory 400 to read the forwarding route information corresponding to the received packet PCKT from the memory 400.

例えば、受信したパケットPCKTに対応する転送経路情報が読み出し要求に応答してキャッシュ340に格納されるまで、キャッシュ340は、当該パケットPCKTに対応する転送経路情報に対してキャッシュミス状態である。経路制御部350は、当該パケットPCKTの転送経路を決定するときに、キャッシュ340がキャッシュミス状態の場合、メモリ400に読み出し要求を発行する。 For example, until the forwarding path information corresponding to the received packet PCKT is stored in cache 340 in response to a read request, cache 340 is in a cache miss state for the forwarding path information corresponding to that packet PCKT. When determining the forwarding path for that packet PCKT, if cache 340 is in a cache miss state, route control unit 350 issues a read request to memory 400.

この実施形態では、プリフェッチ制御部330は、受信したパケットPCKT以外のパケットPCKTに対応する転送経路情報をメモリ400からプリフェッチしてキャッシュ340に格納する。これにより、経路制御部350がパケットPCKTの転送経路を決定するときにキャッシュ340がキャッシュミス状態である頻度を低減することができる。この結果、スイッチ装置300によるパケットPCKTの中継性能の低下を抑制することができる。 In this embodiment, the prefetch control unit 330 prefetches from the memory 400 forwarding path information corresponding to packets PCKT other than the received packet PCKT and stores it in the cache 340. This reduces the frequency with which the cache 340 is in a cache miss state when the path control unit 350 determines the forwarding path for the packet PCKT. As a result, it is possible to suppress a decrease in the relay performance of the packet PCKT by the switch device 300.

図2は、図1のスイッチ装置300の動作シーケンスの一例を示す。すなわち、図2は、スイッチ装置300の制御方法の一例を示す。図2では、転送制御回路320が受信するパケットPCKT1、PCKT2の転送経路の決定に使用される転送経路情報は、互いに同じであるとする。また、パケットPCKT1、PCKT2の転送経路の決定に使用される転送経路情報は、パケットPCKT1を受信する前に仮想スイッチ310からメモリ400に登録または更新されているとする(図2(a))。 Figure 2 shows an example of the operation sequence of the switch device 300 in Figure 1. That is, Figure 2 shows an example of a control method for the switch device 300. In Figure 2, it is assumed that the forwarding path information used to determine the forwarding paths of packets PCKT1 and PCKT2 received by the forwarding control circuit 320 is the same. It is also assumed that the forwarding path information used to determine the forwarding paths of packets PCKT1 and PCKT2 has been registered or updated in memory 400 by the virtual switch 310 before receiving packet PCKT1 (Figure 2(a)).

また、図2は、転送制御回路320がパケットPCKT(PCKT1、PCKT2)を受信した場合のプリフェッチ制御部330の動作を示す。プリフェッチ制御部330は、例えば、サーバ100の外部からのパケットPCKT1の受信に基づいて、パケットPCKT1に対応する転送経路情報がキャッシュ340に保持されていないことを判定する(キャッシュミス、図2(b)、(c))。 Figure 2 also shows the operation of the prefetch control unit 330 when the transfer control circuit 320 receives packets PCKT (PCKT1, PCKT2). For example, based on receiving packet PCKT1 from outside the server 100, the prefetch control unit 330 determines that the transfer path information corresponding to packet PCKT1 is not held in the cache 340 (cache miss, Figures 2(b) and 2(c)).

プリフェッチ制御部330は、キャッシュミスの判定に基づいて、パケットPCKT1に対応する転送経路情報と、他の転送経路情報とをメモリ400からキャッシュ340に転送するための複数のメモリアクセス要求MREQをメモリ400に発行する(図2(d))。メモリ400は、複数のメモリアクセス要求MREQに応答して複数の転送経路情報をキャッシュ340に転送する(図2(e))。メモリアクセス要求MREQは、読み出し要求の一例である。 Based on the determination of a cache miss, the prefetch control unit 330 issues multiple memory access requests MREQ to the memory 400 to transfer the transfer path information corresponding to packet PCKT1 and other transfer path information from the memory 400 to the cache 340 (Figure 2(d)). In response to the multiple memory access requests MREQ, the memory 400 transfers the multiple pieces of transfer path information to the cache 340 (Figure 2(e)). The memory access requests MREQ are an example of a read request.

このように、プリフェッチ制御部330は、受信したパケットPCKT1に対応する転送経路情報に加えて、他の少なくとも1つの転送経路情報をプリフェッチする。これにより、パケットPCKT1に対応する転送経路情報がキャッシュヒット状態になるだけでなく、他の少なくとも1つの転送経路情報をキャッシュヒット状態にすることができる。 In this way, the prefetch control unit 330 prefetches at least one other piece of transfer path information in addition to the transfer path information corresponding to the received packet PCKT1. This not only puts the transfer path information corresponding to packet PCKT1 into a cache hit state, but also allows at least one other piece of transfer path information to be in a cache hit state.

なお、図2では、プリフェッチ制御部330は、複数のメモリアクセス要求MREQをメモリ400に発行している。しかしながら、メモリ400がバースト転送機能を有する場合、プリフェッチ制御部330は、バースト転送用の1つのメモリアクセス要求MREQをメモリ400に発行してもよい。 Note that in FIG. 2, the prefetch control unit 330 issues multiple memory access requests MREQ to the memory 400. However, if the memory 400 has a burst transfer function, the prefetch control unit 330 may issue a single memory access request MREQ for burst transfer to the memory 400.

なお、図2にはプリフェッチ制御部330による転送経路情報のプリフェッチ動作を示しているが、実際には、図1の経路制御部350は、受信したパケットPCKT1の転送動作を実施する。経路制御部350は、受信したパケットPCKT1に対応する転送経路情報がキャシュ340に格納されている場合、キャッシュ340から読み出した転送経路情報に基づいてパケットPCKTの転送経路を決定する。そして、経路制御部350は、決定した転送経路にパケットPCKT1を転送する。 Note that while Figure 2 shows the prefetch operation of forwarding path information by the prefetch control unit 330, in reality, the route control unit 350 in Figure 1 performs the forwarding operation of the received packet PCKT1. If the forwarding path information corresponding to the received packet PCKT1 is stored in the cache 340, the route control unit 350 determines the forwarding path of the packet PCKT based on the forwarding path information read from the cache 340. The route control unit 350 then forwards the packet PCKT1 to the determined forwarding path.

一方、受信したパケットPCKT1に対応する転送経路情報がキャシュ340に格納されていない場合、経路制御部350は、受信したパケットPCKT1に対応する転送経路情報をメモリ400からキャッシュ340に転送させるメモリアクセス要求をメモリ400に発行する。 On the other hand, if the forwarding path information corresponding to the received packet PCKT1 is not stored in the cache 340, the path control unit 350 issues a memory access request to the memory 400 to transfer the forwarding path information corresponding to the received packet PCKT1 from the memory 400 to the cache 340.

この後、プリフェッチ制御部330は、例えば、サーバ100の外部からのパケットPCKT2の受信に基づいて、パケットPCKT2に対応する転送経路情報がキャッシュ340に保持されていることを検出する(キャッシュヒット、図2(f)、(g))。このため、プリフェッチ制御部330は、パケットPCKT2に対応する転送経路情報をメモリ400からキャッシュ340に転送するためのメモリアクセス要求MREQを発行しない。これにより、プリフェッチ制御部330による無駄なプリフェッチを抑制することができる。 After this, the prefetch control unit 330 detects, for example, based on receiving packet PCKT2 from outside the server 100, that the transfer path information corresponding to packet PCKT2 is held in the cache 340 (cache hit, Figures 2(f) and (g)). Therefore, the prefetch control unit 330 does not issue a memory access request MREQ to transfer the transfer path information corresponding to packet PCKT2 from memory 400 to the cache 340. This makes it possible to suppress unnecessary prefetching by the prefetch control unit 330.

図3は、図1のスイッチ装置300の動作シーケンスの別の例を示す。すなわち、図3は、スイッチ装置300の制御方法の別の例を示す。図3においても、転送制御回路320が受信するパケットPCKT1、PCKT2の転送経路の決定に使用される転送経路情報は、互いに同じであるとする。また、図3においても、パケットPCKT1、PCKT2の転送経路の決定に使用される転送経路情報は、パケットPCKT1を受信する前に仮想スイッチ310からメモリ400に登録または更新されているとする(図3(a))。 Figure 3 shows another example of the operation sequence of the switch device 300 of Figure 1. That is, Figure 3 shows another example of a control method for the switch device 300. In Figure 3 as well, it is assumed that the same forwarding path information is used to determine the forwarding paths of packets PCKT1 and PCKT2 received by the forwarding control circuit 320. Also in Figure 3 as well, it is assumed that the forwarding path information used to determine the forwarding paths of packets PCKT1 and PCKT2 is registered or updated in memory 400 by the virtual switch 310 before receiving packet PCKT1 (Figure 3(a)).

図3は、転送制御回路320がパケットPCKT(PCKT1、PCKT2)を受信した場合の経路制御部350の動作を示す。経路制御部350は、例えば、サーバ100の外部からパケットPCKT1を受信する(図3(b))。経路制御部350は、受信したパケットPCKT1に対応する転送経路情報がキャッシュ340に保持されていないことを検出する(キャッシュミス、図3(c))。 Figure 3 shows the operation of the route control unit 350 when the transfer control circuit 320 receives packets PCKT (PCKT1, PCKT2). For example, the route control unit 350 receives packet PCKT1 from outside the server 100 (Figure 3(b)). The route control unit 350 detects that the transfer route information corresponding to the received packet PCKT1 is not held in the cache 340 (cache miss, Figure 3(c)).

このため、経路制御部350は、パケットPCKT1に対応する転送経路情報をメモリ400からキャッシュ340に転送するためのメモリアクセス要求MREQをメモリ400に発行する(図3(d))。メモリ400は、メモリアクセス要求MREQに応答して、パケットPCKT1に対応する転送経路情報をキャッシュ340に転送する(図3(e))。 As a result, the route control unit 350 issues a memory access request MREQ to the memory 400 to transfer the forwarding route information corresponding to the packet PCKT1 from the memory 400 to the cache 340 (Figure 3(d)). In response to the memory access request MREQ, the memory 400 transfers the forwarding route information corresponding to the packet PCKT1 to the cache 340 (Figure 3(e)).

経路制御部350は、パケットPCKT1に対応してメモリ400からキャッシュ340に転送される転送経路情報を受信する(図3(f))。そして、経路制御部350は、受信した転送経路情報に基づいて、パケットPCKT1の転送経路を決定する。図3に示す例では、パケットPCKT1の転送経路は、仮想マシン210のいずれかを含む。このため、経路制御部350は、仮想マシン210のいずれかにパケットPCKT1を転送する(図3(g))。なお、経路制御部350は、パケットPCKT1に対応する転送経路情報がキャッシュ340に保持されていない場合、メモリアクセス要求MREQをメモリ400に発行した後、パケットPCKT1を保留またはキャンセルしてもよい。 The route control unit 350 receives forwarding path information corresponding to packet PCKT1 to be forwarded from memory 400 to cache 340 (FIG. 3(f)). Then, based on the received forwarding path information, the route control unit 350 determines the forwarding path for packet PCKT1. In the example shown in FIG. 3, the forwarding path for packet PCKT1 includes one of the virtual machines 210. Therefore, the route control unit 350 forwards packet PCKT1 to one of the virtual machines 210 (FIG. 3(g)). Note that if the forwarding path information corresponding to packet PCKT1 is not held in cache 340, the route control unit 350 may suspend or cancel packet PCKT1 after issuing a memory access request MREQ to memory 400.

この後、経路制御部350は、例えば、サーバ100の外部からパケットPCKT2を受信する(図3(h))。経路制御部350は、受信したパケットPCKT2に対応する転送経路情報がキャッシュ340に保持されていることを検出する(キャッシュヒット、図3(i))。 After this, the route control unit 350 receives packet PCKT2, for example, from outside the server 100 (Figure 3(h)). The route control unit 350 detects that the forwarding route information corresponding to the received packet PCKT2 is stored in the cache 340 (cache hit, Figure 3(i)).

このため、経路制御部350は、パケットPCKT2に対応する転送経路情報をキャッシュ340から読み出す(図3(j))。そして、経路制御部350は、キャッシュ340から読み出した転送経路情報に基づいて、パケットPCKT2の転送経路を決定する。図3に示す例では、パケットPCKT2の転送経路は、仮想マシン210のいずれかを含むため、経路制御部350は、仮想マシン210のいずれかにパケットPCKT2を転送する(図3(k))。 For this reason, the route control unit 350 reads the forwarding path information corresponding to packet PCKT2 from the cache 340 (Figure 3(j)). Then, the route control unit 350 determines the forwarding path for packet PCKT2 based on the forwarding path information read from the cache 340. In the example shown in Figure 3, the forwarding path for packet PCKT2 includes one of the virtual machines 210, so the route control unit 350 forwards packet PCKT2 to one of the virtual machines 210 (Figure 3(k)).

以上、この実施形態では、プリフェッチ制御部330は、受信したパケットPCKTに対応する転送経路情報に加えて、他の転送経路情報をメモリ400からプリフェッチしてキャッシュ340に格納する。これにより、経路制御部350がパケットPCKTの転送経路を決定するときにキャッシュ340がキャッシュミス状態である頻度を低減することができる。 As described above, in this embodiment, the prefetch control unit 330 prefetches other transfer path information from the memory 400 and stores it in the cache 340, in addition to the transfer path information corresponding to the received packet PCKT. This reduces the frequency with which the cache 340 is in a cache miss state when the path control unit 350 determines the transfer path for the packet PCKT.

キャッシュ340のヒット率が向上するため、経路制御部350による転送経路情報の取得に掛かるレイテンシを短縮することができる。この結果、スイッチ装置300によるパケットPCKTの中継性能の低下を抑制することができる。 By improving the hit rate of the cache 340, the latency required for the route control unit 350 to obtain forwarding route information can be reduced. As a result, the degradation of the packet PCKT relay performance of the switch device 300 can be suppressed.

また、プリフェッチ制御部330は、受信したパケットPCKTに対応する転送経路情報がキャッシュ340に保持されている場合、メモリ400にメモリアクセス要求MREQを発行しない。これにより、プリフェッチ制御部330による無駄なプリフェッチを抑制することができる。 Furthermore, if the transfer path information corresponding to the received packet PCKT is held in the cache 340, the prefetch control unit 330 does not issue a memory access request MREQ to the memory 400. This makes it possible to prevent unnecessary prefetching by the prefetch control unit 330.

図4は、別の実施形態におけるスイッチ装置を含む情報処理装置の一例を示す。上述した実施形態と同様の要素については、同じ符号を付し、詳細な説明は省略する。図4に示すスイッチ装置300Aは、サーバ100Aに搭載されるCPU200Aが実行するプログラムにより実現される仮想スイッチ310Aと、ハードウェアにより実現される中継制御部320Aとを有する。 Figure 4 shows an example of an information processing device including a switch device in another embodiment. Elements similar to those in the above-described embodiment are given the same reference numerals and detailed description will be omitted. The switch device 300A shown in Figure 4 has a virtual switch 310A implemented by a program executed by a CPU 200A installed in a server 100A, and a relay control unit 320A implemented by hardware.

例えば、スイッチ装置300は、ネットワークスイッチである。なお、サーバ100Aは、情報処理装置の一例であり、CPU200Aは、演算処理装置の一例である。なお、他のコンピュータ装置が、サーバ100Aの代わりに適用されてもよく、他のプロセッサが、CPU200Aの代わりに適用されてもよい。 For example, the switch device 300 is a network switch. The server 100A is an example of an information processing device, and the CPU 200A is an example of an arithmetic processing device. Other computer devices may be used in place of the server 100A, and other processors may be used in place of the CPU 200A.

仮想スイッチ310Aは、CPU200Aが実行するプログラムにより実現される。スイッチ装置300Aは、パケットPCKTの転送制御機能の少なくとも一部を、ソフトウェアで実現される仮想スイッチ310Aからハードウェアで実現される中継制御部320Aにオフロードすることにより構築される。特に限定されないが、中継制御部320Aは、サーバ100Aに搭載されるFPGAまたはASIC等のロジックデバイスにより実現される。 The virtual switch 310A is implemented by a program executed by the CPU 200A. The switch device 300A is constructed by offloading at least a portion of the packet PCKT transfer control function from the software-implemented virtual switch 310A to the hardware-implemented relay control unit 320A. Although not limited to this, the relay control unit 320A is implemented by a logic device such as an FPGA or ASIC mounted on the server 100A.

特に限定されないが、例えば、スイッチ装置300Aは、分散仮想マルチレイヤスイッチのオープンソース実装であるOVS(Open vSwitch;登録商標)アクセラレーションとしてサーバ100Aに実装される。例えば、仮想スイッチ310Aは、OVS/DPDK(Data Plane Development Kit)を使用して構築されてもよい。DPDKは、高速パケット処理用ライブラリである。 For example, but not limited to, the switch device 300A is implemented on the server 100A as OVS (Open vSwitch; registered trademark) acceleration, an open-source implementation of a distributed virtual multi-layer switch. For example, the virtual switch 310A may be built using OVS/DPDK (Data Plane Development Kit). DPDK is a library for high-speed packet processing.

CPU200Aは、プログラムを実行することにより、仮想スイッチ310A、仮想マシン210および仮想ネットワークインタフェースカードVNICとして動作可能である。以下では、仮想ネットワークインタフェースカードVNICは、単にVNICとも称される。 By executing programs, the CPU 200A can operate as a virtual switch 310A, a virtual machine 210, and a virtual network interface card VNIC. Hereinafter, the virtual network interface card VNIC will also be referred to simply as a VNIC.

中継制御部320Aは、プリフェッチ制御部330A、キャッシュ340、FIB(Forwarding Information Base)制御部350Aおよび内部ポートIPTを有し、外部ポートEPTに接続される。なお、サーバ100Aは、複数の外部ポートEPTを有してもよい。中継制御部320Aの内部ポートIPTは、仮想スイッチ310AのVNICまたは仮想マシン210のVNICに接続される。中継制御部320Aは、転送制御回路の一例である。FIB制御部350Aは、経路制御部の一例である。 The relay control unit 320A has a prefetch control unit 330A, a cache 340, a FIB (Forwarding Information Base) control unit 350A, and an internal port IPT, and is connected to an external port EPT. Note that the server 100A may have multiple external ports EPT. The internal port IPT of the relay control unit 320A is connected to the VNIC of the virtual switch 310A or the VNIC of the virtual machine 210. The relay control unit 320A is an example of a forwarding control circuit. The FIB control unit 350A is an example of a route control unit.

プリフェッチ制御部330Aは、受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されていない場合、受信したパケットPCKTに対応するFIB情報を含む複数のFIB情報をメモリ400から読み出す。プリフェッチ制御部330Aは、メモリ400から読み出された複数のFIB情報は、キャッシュ340に格納される。例えば、FIB情報は、後述するKEY情報およびACTION情報を含む。FIB情報については、図6で説明される。 If the FIB information corresponding to the received packet PCKT is not stored in the cache 340, the prefetch control unit 330A reads multiple pieces of FIB information, including the FIB information corresponding to the received packet PCKT, from the memory 400. The prefetch control unit 330A stores the multiple pieces of FIB information read from the memory 400 in the cache 340. For example, the FIB information includes KEY information and ACTION information, which will be described later. The FIB information is described in FIG. 6.

FIB制御部350Aは、例えば、外部ポートEPTまたは内部ポートIPTを介して受信したパケットPCKTの転送経路をキャッシュ340に保持されたFIB情報を使用して決定する。FIB制御部350Aは、受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されていない場合、受信したパケットPCKTに対応するFIB情報をメモリ400から読み出す。FIB制御部350Aは、メモリ400から読み出したFIB情報を使用してパケットPCKTの転送経路を決定し、メモリ400から読み出したFIB情報をキャッシュ340に格納する。 The FIB control unit 350A determines the forwarding path of a packet PCKT received via, for example, the external port EPT or the internal port IPT, using the FIB information stored in the cache 340. If the FIB information corresponding to the received packet PCKT is not stored in the cache 340, the FIB control unit 350A reads the FIB information corresponding to the received packet PCKT from the memory 400. The FIB control unit 350A determines the forwarding path of the packet PCKT using the FIB information read from the memory 400, and stores the FIB information read from the memory 400 in the cache 340.

図5は、図4のメモリ400およびキャッシュ340に保持されるFIB情報の一例を示す。メモリ400およびキャッシュ340は、例えば、FIB制御部350Aが受信するパケットPCKT毎にFIB情報を保持する複数の記憶領域を有する。 Figure 5 shows an example of FIB information stored in the memory 400 and cache 340 of Figure 4. The memory 400 and cache 340 have, for example, multiple storage areas that store FIB information for each packet PCKT received by the FIB control unit 350A.

FIB情報は、KEY情報が格納されるKEY領域とACTION情報が格納されるACTION領域とを含む。KEY情報は、パケットPCKTに依存しない共通部分と、パケットPCKTに固有の固有部分とを含む。例えば、固有部分には、パケットプロトコルまたはパケットタイプ等の情報が格納される。共通部分には、固有部分に格納されるパケットプロトコル等の情報に対応する情報が格納される。 The FIB information includes a KEY area where KEY information is stored and an ACTION area where ACTION information is stored. The KEY information includes a common part that is independent of the packet PCKT and a unique part that is specific to the packet PCKT. For example, the unique part stores information such as the packet protocol or packet type. The common part stores information that corresponds to the packet protocol and other information stored in the unique part.

ACTION情報は、コードCODEおよび複数のデータ領域DT(DT1、DT2、...)を含む。例えば、コードCODEは、図11に示すマッチアクション部353Aが選択可能なACTION情報の数に対応するビット数を有する。コードCODEの各ビットは、複数のACTION情報のそれぞれに割り当てられる。各データ領域DTには、コードCODEにおいて、例えば"1"にセットされたビットに対応するACTION情報がそれぞれ格納される。特に限定されないが、複数のデータ領域DTには、コードCODEにおいて"1"にセットされたビット順にACTION情報が格納される。 The ACTION information includes a code CODE and multiple data areas DT (DT1, DT2, ...). For example, the code CODE has a number of bits corresponding to the number of ACTION information selectable by the match action unit 353A shown in FIG. 11. Each bit of the code CODE is assigned to one of the multiple ACTION information. Each data area DT stores ACTION information corresponding to bits set to "1" in the code CODE. Although not limited to this, the ACTION information is stored in the multiple data areas DT in the order of the bits set to "1" in the code CODE.

これにより、コードCODEのビット値により、有効なデータ領域DTを検出することができ、有効なデータ領域DTに入っているACTION情報の仕様を判別することができる。マッチアクション部353Aが選択可能な複数のACTION情報は、パケットPCKTのヘッダに格納される転送制御情報またはパケットPCKTの転送先で使用するパケットPCKTの制御情報である。例えば、データ領域に格納されるACTION情報として、パケットPCKTの転送元アドレスの設定、パケットPCKTの転送先アドレスの設定またはパケットPCKTのドロップの指示等がある。 This makes it possible to detect a valid data area DT based on the bit value of the code CODE, and to determine the specifications of the ACTION information contained in the valid data area DT. The multiple ACTION information that the match action unit 353A can select is transfer control information stored in the header of the packet PCKT, or packet PCKT control information used at the destination of the packet PCKT. For example, ACTION information stored in the data area may include setting the source address of the packet PCKT, setting the destination address of the packet PCKT, or an instruction to drop the packet PCKT.

図6は、図4の中継制御部320Aの一例を示す。中継制御部320Aは、図4に示したプリフェッチ制御部330A、キャッシュ340およびFIB制御部350Aに加えて、パケット変換部321A、メタテーブル生成部322AおよびレジスタREG0を有する。 Figure 6 shows an example of the relay control unit 320A of Figure 4. In addition to the prefetch control unit 330A, cache 340, and FIB control unit 350A shown in Figure 4, the relay control unit 320A also has a packet conversion unit 321A, a meta table generation unit 322A, and a register REG0.

パケット変換部321Aは、中継制御部320Aが受信するパケットPCKTからパケットPCKTの識別に使用する論理ポート番号LPT-IDを生成し、生成した論理ポート番号LPT-IDをパケットPCKTとともにメタテーブル生成部322Aに出力する。また、パケット変換部321Aは、生成した論理ポート番号LPT-IDをプリフェッチ要求PRREQ0としてプリフェッチ制御部330Aに出力する。パケット変換部321Aの例は、図7に示される。 The packet conversion unit 321A generates a logical port number LPT-ID used to identify the packet PCKT from the packet PCKT received by the relay control unit 320A, and outputs the generated logical port number LPT-ID along with the packet PCKT to the meta table generation unit 322A. The packet conversion unit 321A also outputs the generated logical port number LPT-ID to the prefetch control unit 330A as a prefetch request PRREQ0. An example of the packet conversion unit 321A is shown in Figure 7.

メタテーブル生成部322Aは、中継制御部320Aが受信するパケットPCKTから例えば、パケットヘッダに格納する情報を抜き出して、パケットPCKT毎にメタテーブルを生成する。メタテーブルには、論理ポート番号LPT-IDが含まれる。 The meta table generation unit 322A extracts information to be stored in the packet header, for example, from the packet PCKT received by the relay control unit 320A, and generates a meta table for each packet PCKT. The meta table includes the logical port number LPT-ID.

メタテーブル生成部322Aは、プリフェッチ制御部330Aからマッチ情報PRMCHを受信した場合、受信するパケットPCKTに対応して生成したメタテーブルにマッチ情報PRMCHを格納する。また、メタテーブル生成部322Aは、FIB制御部350Aから発行済み情報PROKを受信した場合、受信するパケットPCKTに対応して生成したメタテーブルに発行済み情報PROKを格納する。 When the meta table generation unit 322A receives match information PRMCH from the prefetch control unit 330A, it stores the match information PRMCH in the meta table generated corresponding to the received packet PCKT. Furthermore, when the meta table generation unit 322A receives issued information PROK from the FIB control unit 350A, it stores the issued information PROK in the meta table generated corresponding to the received packet PCKT.

そして、メタテーブル生成部322Aは、生成したメタテーブルに含まれるメタテーブル情報MTINFを、受信したパケットPCKTとともにFIB制御部350Aに出力する。メタテーブル生成部322Aにより生成されるメタテーブルMTTBLについては、図10で説明される。 The meta table generation unit 322A then outputs the meta table information MTINF contained in the generated meta table to the FIB control unit 350A along with the received packet PCKT. The meta table MTTBL generated by the meta table generation unit 322A is described in Figure 10.

FIB制御部350Aは、キャッシュ340またはメモリ400において、受信したパケットPCKTに対応するFIB情報を保持している領域を示すアドレスを、メタテーブル情報MTINFに基づいて計算する。 The FIB control unit 350A calculates the address indicating the area in the cache 340 or memory 400 that holds the FIB information corresponding to the received packet PCKT based on the meta table information MTINF.

FIB制御部350Aは、受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されている場合、キャッシュ340からFIB情報を読み出す。FIB制御部350Aは、受信したパケットPCKTに対応するFIB情報がメモリ400に保持されている場合、メモリ400からFIB情報を読み出す。 If FIB information corresponding to the received packet PCKT is stored in cache 340, FIB control unit 350A reads the FIB information from cache 340. If FIB information corresponding to the received packet PCKT is stored in memory 400, FIB control unit 350A reads the FIB information from memory 400.

そして、FIB制御部350Aは、読み出したFIB情報に含まれるKEY情報と、パケットPCKTに含まれるKEY情報とが一致するか否かを判定する。FIB制御部350Aは、KEY情報が一致する場合、キャッシュ340またはメモリ400から読み出したACTION情報にしたがって、パケットヘッダを生成し、生成したパケットヘッダを含むパケットPCKTを転送先に転送する。 The FIB control unit 350A then determines whether the KEY information included in the read FIB information matches the KEY information included in the packet PCKT. If the KEY information matches, the FIB control unit 350A generates a packet header according to the ACTION information read from the cache 340 or memory 400, and forwards the packet PCKT including the generated packet header to the forwarding destination.

また、FIB制御部350Aは、書き込みアクセス要求UPDTをレジスタREG0を介して仮想スイッチ310A(CPU200A)から受信した場合、メモリ400およびキャッシュ340に保持されているFIB情報の更新処理を実施する。仮想スイッチ310Aは、FIB情報をメモリ400に書き込む場合、書き込みアクセス要求UPDTを示すデータをレジスタREG0に書き込む(REG-WR)。 Furthermore, when the FIB control unit 350A receives a write access request UPDT from the virtual switch 310A (CPU 200A) via register REG0, it performs an update process on the FIB information stored in the memory 400 and cache 340. When writing FIB information to memory 400, the virtual switch 310A writes data indicating the write access request UPDT to register REG0 (REG-WR).

図7は、図6のパケット変換部321Aの一例を示す。パケット変換部321Aは、レジスタREG1、REG2およびセレクタSEL1、SEL2を有する。レジスタREG1、REG2が保持する値は、図4の仮想スイッチ310Aにより設定される。この場合、レジスタREG1、REG2が保持する値は、図6のレジスタREG0を介して設定されてもよい。 Figure 7 shows an example of the packet conversion unit 321A of Figure 6. The packet conversion unit 321A has registers REG1 and REG2 and selectors SEL1 and SEL2. The values held in registers REG1 and REG2 are set by the virtual switch 310A of Figure 4. In this case, the values held in registers REG1 and REG2 may also be set via register REG0 of Figure 6.

レジスタREG1は、外部ポートEPTおよび内部ポートIPTのそれぞれに対応する物理ポートIDの生成に使用するオフセット値PORT-ID-OFSTを保持する。セレクタSEL1は、例えば、パケットPCKTを受信した外部ポートEPTまたは内部ポートIPTの識別番号にオフセット値PORT-ID-OFSTを加えることで物理ポートIDを生成し、生成した物理ポートIDをセレクタSEL2に出力する。すなわち、セレクタSEL1は、パケットPCKTを受信した外部ポートEPTまたは内部ポートIPTに対応する物理ポートID(番号で示される)を選択する。 Register REG1 holds the offset value PORT-ID-OFST used to generate the physical port IDs corresponding to the external port EPT and internal port IPT. Selector SEL1 generates a physical port ID, for example, by adding the offset value PORT-ID-OFST to the identification number of the external port EPT or internal port IPT that received the packet PCKT, and outputs the generated physical port ID to selector SEL2. In other words, selector SEL1 selects the physical port ID (indicated by a number) that corresponds to the external port EPT or internal port IPT that received the packet PCKT.

レジスタREG2は、物理ポートID毎に値PORT-MAPx(xは0からn+1のn個の整数のいずれか)を保持する。例えば、値PORT-MAPxのxは、物理ポートIDの番号に対応する。 Register REG2 holds the value PORT-MAPx (where x is one of n integers from 0 to n+1) for each physical port ID. For example, the x in the value PORT-MAPx corresponds to the number of the physical port ID.

セレクタSEL2は、物理ポートIDの番号に対応する値PORT-MAPxを論理ポート番号LPT-IDとして図6のパケット変換部321Aに出力する。また、セレクタSEL2は、論理ポート番号LPT-IDをプリフェッチ要求PRREQ0としてプリフェッチ制御部330Aに出力する。なお、論理ポート番号LPT-IDおよびプリフェッチ要求PRREQ0は、中継制御部320Aが受信したパケットPCKTのそれぞれに対応して割り当てられる。 Selector SEL2 outputs the value PORT-MAPx corresponding to the physical port ID number as the logical port number LPT-ID to the packet conversion unit 321A in FIG. 6. Selector SEL2 also outputs the logical port number LPT-ID to the prefetch control unit 330A as the prefetch request PRREQ0. The logical port number LPT-ID and prefetch request PRREQ0 are assigned to each packet PCKT received by the relay control unit 320A.

論理ポート番号LPT-IDは、中継制御部320Aが受信したパケットPCKTを識別するパケット識別情報の一例である。パケット変換部321Aは、パケット識別情報を生成する識別情報生成部の一例である。 The logical port number LPT-ID is an example of packet identification information that identifies the packet PCKT received by the relay control unit 320A. The packet conversion unit 321A is an example of an identification information generation unit that generates packet identification information.

図8は、図6のプリフェッチ制御部330Aの一例を示す。プリフェッチ制御部330Aは、プリフェッチ判定部331A、アドレス計算部332A、発行履歴キュー333AおよびレジスタREG3を有する。 Figure 8 shows an example of the prefetch control unit 330A in Figure 6. The prefetch control unit 330A has a prefetch determination unit 331A, an address calculation unit 332A, an issuance history queue 333A, and a register REG3.

プリフェッチ判定部331Aは、図7のパケット変換部321Aから発行されるプリフェッチ要求PRREQ0(すなわち、論理ポート番号LPT-ID)に基づいて発行履歴キュー333Aを参照する。そして、プリフェッチ判定部331Aは、メモリ400からFIB情報をプリフェッチするか否かを判定する。発行履歴キュー333Aは、アドレス計算部332Aが過去に発行したプリフェッチ要求PRREQ1の所定数を保持する。 The prefetch determination unit 331A references the issuance history queue 333A based on the prefetch request PRREQ0 (i.e., the logical port number LPT-ID) issued by the packet conversion unit 321A in Figure 7. The prefetch determination unit 331A then determines whether to prefetch FIB information from the memory 400. The issuance history queue 333A holds a predetermined number of prefetch requests PRREQ1 previously issued by the address calculation unit 332A.

プリフェッチ判定部331Aは、受信したプリフェッチ要求PRREQ0に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されていない場合、プリフェッチ要求PRREQ0をアドレス計算部332Aに出力する。また、プリフェッチ判定部331Aは、プリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されておらず、発行履歴キュー333Aが満杯の場合、消去指示ERSを発行履歴キュー333Aに出力する。発行履歴キュー333Aは、消去指示ERSに基づいて、最古のプリフェッチ要求PRREQ1を消去する。 If a prefetch request PRREQ1 corresponding to the received prefetch request PRREQ0 is not held in the issuance history queue 333A, the prefetch determination unit 331A outputs the prefetch request PRREQ0 to the address calculation unit 332A. Furthermore, if the prefetch request PRREQ1 is not held in the issuance history queue 333A and the issuance history queue 333A is full, the prefetch determination unit 331A outputs an erase instruction ERS to the issuance history queue 333A. The issuance history queue 333A erases the oldest prefetch request PRREQ1 based on the erase instruction ERS.

プリフェッチ判定部331Aは、受信したプリフェッチ要求PRREQ0に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されている場合、プリフェッチ要求PRREQ0のアドレス計算部332Aへの出力を抑止する。そして、プリフェッチ判定部331Aは、マッチ情報PRMCHを出力する。プリフェッチ判定部331Aは、受信したパケットPCKTに対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されている場合、プリフェッチ要求PRREQ1のメモリ400への発行を抑止する発行抑止部の一例である。 If a prefetch request PRREQ1 corresponding to the received prefetch request PRREQ0 is held in the issuance history queue 333A, the prefetch determination unit 331A suppresses the output of the prefetch request PRREQ0 to the address calculation unit 332A. The prefetch determination unit 331A then outputs match information PRMCH. The prefetch determination unit 331A is an example of an issuance suppression unit that suppresses the issuance of the prefetch request PRREQ1 to memory 400 if a prefetch request PRREQ1 corresponding to the received packet PCKT is held in the issuance history queue 333A.

マッチ情報PRMCHは、中継制御部320Aが受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されていること(すなわち、キャッシュヒット状態)を示す保持情報の一例である。例えば、論理値1のマッチ情報PRMCHは、プリフェッチ要求PRREQ0に対応するデータがキャッシュヒット状態であることを示す。論理値0のマッチ情報PRMCHは、プリフェッチ要求PRREQ0に対応するデータがキャッシュミス状態であることを示す。 The match information PRMCH is an example of retention information that indicates that the FIB information corresponding to the packet PCKT received by the relay control unit 320A is retained in the cache 340 (i.e., a cache hit state). For example, match information PRMCH with a logical value of 1 indicates that the data corresponding to the prefetch request PRREQ0 is in a cache hit state. Match information PRMCH with a logical value of 0 indicates that the data corresponding to the prefetch request PRREQ0 is in a cache miss state.

マッチ情報PRMCHは、メタテーブルMTTBLに格納される。例えば、論理値1のマッチ情報PRMCHは、受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されていることを示す(キャッシュヒット状態)。例えば、論理値0のマッチ情報PRMCHは、受信したパケットPCKTに対応するFIB情報がキャッシュ340に保持されていないことを示す(キャッシュミス状態)。 The match information PRMCH is stored in the meta table MTTBL. For example, match information PRMCH with a logical value of 1 indicates that the FIB information corresponding to the received packet PCKT is held in the cache 340 (cache hit state). For example, match information PRMCH with a logical value of 0 indicates that the FIB information corresponding to the received packet PCKT is not held in the cache 340 (cache miss state).

このように、プリフェッチ制御部330Aは、発行履歴キュー333Aに保持されているプリフェッチ要求PRREQ1に基づいて、受信したパケットPCKTに対応するFIB情報がキャッシュヒット状態かキャッシュミス状態かを判定することができる。プリフェッチ制御部330Aは、受信したパケットPCKTに対応するメタテーブルMTTBLに、キャッシュヒット状態かキャッシュミス状態かを示すマッチ情報PRMCHを格納する。これにより、FIB制御部350Aは、メタテーブルMTTBLに保持されたメタテーブル情報MTINFを参照することで、キャッシュ340のキャッシュヒットまたはキャッシュミスを判定することができる。 In this way, the prefetch control unit 330A can determine whether the FIB information corresponding to the received packet PCKT is in a cache hit state or a cache miss state based on the prefetch request PRREQ1 held in the issuance history queue 333A. The prefetch control unit 330A stores match information PRMCH, which indicates whether the state is a cache hit or a cache miss, in the meta table MTTBL corresponding to the received packet PCKT. This allows the FIB control unit 350A to determine whether the cache 340 is in a cache hit or a cache miss by referencing the meta table information MTINF held in the meta table MTTBL.

アドレス計算部332Aは、プリフェッチ判定部331Aからのプリフェッチ要求PRREQ0(すなわち、論理ポート番号LPT-ID)をインデックスとしてベースアドレスBASE-ADRSに加算する加算器ADDを有する。そして、アドレス計算部332Aは、加算により得たアドレスを含むアクセス長LENmax分のメモリ400の記憶領域にアクセスするプリフェッチ要求PRREQ1を発行する。 The address calculation unit 332A has an adder ADD that adds the prefetch request PRREQ0 (i.e., the logical port number LPT-ID) from the prefetch determination unit 331A to the base address BASE-ADRS as an index. The address calculation unit 332A then issues a prefetch request PRREQ1 that accesses a storage area in memory 400 with an access length of LENmax, including the address obtained by the addition.

プリフェッチ要求PRREQ1は、アクセス長LENmaxに対応して複数回発行されてもよく、メモリ400がバースト機能を有する場合、アクセス長LENmaxに対応するバースト長が設定されてもよい。アドレス計算部332Aは、プリフェッチ要求PRREQ1を生成する要求生成部の一例である。 The prefetch request PRREQ1 may be issued multiple times corresponding to the access length LENmax, and if the memory 400 has a burst function, a burst length corresponding to the access length LENmax may be set. The address calculation unit 332A is an example of a request generation unit that generates the prefetch request PRREQ1.

なお、アドレス計算部332Aがプリフェッチ要求PRREQ1を出力する場合、FIB制御部350Aは、メモリ400にプリフェッチ要求を発行したことを示す発行済み情報PROKをメタテーブル生成部322Aに出力する。例えば、論理値1の発行済み情報PROKは、メモリ400にプリフェッチ要求を発行したことを示し、プリフェッチ要求に対応するデータが、この後にキャッシュヒット状態になることを示す。論理値0の発行済み情報PROKは、メモリ400にプリフェッチ要求を発行していないことを示し、プリフェッチ要求に対応するデータがキャッシュミス状態であることを示す。 When the address calculation unit 332A outputs a prefetch request PRREQ1, the FIB control unit 350A outputs issued information PROK, indicating that a prefetch request has been issued to the memory 400, to the meta table generation unit 322A. For example, issued information PROK with a logical value of 1 indicates that a prefetch request has been issued to the memory 400, and indicates that the data corresponding to the prefetch request will subsequently be in a cache hit state. Issued information PROK with a logical value of 0 indicates that a prefetch request has not been issued to the memory 400, and indicates that the data corresponding to the prefetch request is in a cache miss state.

発行履歴キュー333Aは、プリフェッチ要求PRREQ1を保持する複数のエントリを有する。発行履歴キュー333Aは、プリフェッチ要求PRREQ1を保持するプリフェッチ要求保持部の一例である。上述したように、発行履歴キュー333Aは、プリフェッチ判定部331Aから消去指示ERSを受けた場合、最古のプリフェッチ要求PRREQ1を消去する。発行履歴キュー333Aの更新動作の例は、図9で説明される。 The issuance history queue 333A has multiple entries that hold prefetch requests PRREQ1. The issuance history queue 333A is an example of a prefetch request holding unit that holds prefetch requests PRREQ1. As described above, when the issuance history queue 333A receives a delete instruction ERS from the prefetch determination unit 331A, it deletes the oldest prefetch request PRREQ1. An example of the update operation of the issuance history queue 333A is described in Figure 9.

図9は、図8のプリフェッチ制御部330Aの発行履歴キュー333Aの更新動作の一例を示す。図9では、説明を分かりやすくするため、プリフェッチ要求PRREQ0(LPT-ID)およびプリフェッチ要求PRREQ1は、8桁の数字で示される。また、図9では、発行履歴キュー333Aが4個のエントリを有し、エントリ番号が小さいほど、保持した時期が古いとする。特に限定されないが、発行履歴キュー333Aは、例えば、16個または32個のエントリを有してもよい。 Figure 9 shows an example of the update operation of the issuance history queue 333A of the prefetch control unit 330A in Figure 8. For ease of explanation, in Figure 9, prefetch request PRREQ0 (LPT-ID) and prefetch request PRREQ1 are represented by eight-digit numbers. Also, in Figure 9, the issuance history queue 333A has four entries, and the smaller the entry number, the older the entry was held. Although not particularly limited, the issuance history queue 333A may have, for example, 16 or 32 entries.

(例1)は、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されておらず、エントリに空きがある場合の動作を示す。(例2)は、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されており、エントリが満杯の場合の動作を示す。(例3)は、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されておらず、エントリが満杯の場合の動作を示す。 (Example 1) shows the operation when the prefetch request PRREQ1 corresponding to the prefetch request PRREQ0 (LPT-ID) is not held in the issuance history queue 333A and there are free entries. (Example 2) shows the operation when the prefetch request PRREQ1 corresponding to the prefetch request PRREQ0 (LPT-ID) is held in the issuance history queue 333A and the entries are full. (Example 3) shows the operation when the prefetch request PRREQ1 corresponding to the prefetch request PRREQ0 (LPT-ID) is not held in the issuance history queue 333A and the entries are full.

(例1)では、アドレス計算部332Aは、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1を発行する。FIB制御部350Aは、プリフェッチ要求PRREQ1が発行されたことを示す発行済み情報PROKをメタテーブル生成部322Aに発行する。 In Example 1, the address calculation unit 332A issues a prefetch request PRREQ1 corresponding to the prefetch request PRREQ0 (LPT-ID). The FIB control unit 350A issues issued information PROK to the meta table generation unit 322A, indicating that the prefetch request PRREQ1 has been issued.

プリフェッチ制御部330Aは、発行履歴キュー333Aの空いているエントリ3にプリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1(=66667777)を格納することで、新規登録する。 The prefetch control unit 330A newly registers the prefetch request PRREQ1 (=66667777) corresponding to the prefetch request PRREQ0 (LPT-ID) by storing it in the available entry 3 of the issuance history queue 333A.

(例2)では、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1(=22223333)が発行履歴キュー333Aのエントリ1に保持されている。この場合、アドレス計算部332Aは、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1の発行を抑止する。プリフェッチ判定部331Aは、マッチ情報PRMCHを発行する。 In (Example 2), prefetch request PRREQ1 (=22223333) corresponding to prefetch request PRREQ0 (LPT-ID) is held in entry 1 of the issuance history queue 333A. In this case, the address calculation unit 332A suppresses the issuance of prefetch request PRREQ1 corresponding to prefetch request PRREQ0 (LPT-ID). The prefetch determination unit 331A issues match information PRMCH.

プリフェッチ制御部330Aは、プリフェッチ要求PRREQ1(=44445555、66667777)を、エントリ2、3からエントリ1、2にシフトする。そして、発行履歴キュー333Aは、空いたエントリ3にプリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1(=22223333)を格納することで、発行履歴を更新する。 The prefetch control unit 330A shifts the prefetch request PRREQ1 (=44445555, 66667777) from entries 2 and 3 to entries 1 and 2. The issuance history queue 333A then updates the issuance history by storing the prefetch request PRREQ1 (=22223333) corresponding to the prefetch request PRREQ0 (LPT-ID) in the now-empty entry 3.

(例3)では、アドレス計算部332Aは、プリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1を発行する。FIB制御部350Aは、プリフェッチ要求PRREQ1が発行されたことを示す発行済み情報PROKをメタテーブル生成部322Aに発行する。 In Example 3, the address calculation unit 332A issues a prefetch request PRREQ1 corresponding to the prefetch request PRREQ0 (LPT-ID). The FIB control unit 350A issues issued information PROK to the meta table generation unit 322A, indicating that the prefetch request PRREQ1 has been issued.

プリフェッチ制御部330Aは、発行履歴キュー333Aのエントリに空きがないため、エントリ0に保持している最古プリフェッチ要求PRREQ1(=01234567)を発行履歴キュー333Aから追い出す。そして、プリフェッチ制御部330Aは、エントリ1、2、3に保持されているプリフェッチ要求PRREQ1(=44445555、66667777、22223333)をエントリ0、1、2にシフトする。そして、発行履歴キュー333Aは、空いたエントリ0にプリフェッチ要求PRREQ0(LPT-ID)に対応するプリフェッチ要求PRREQ1(=88889999)を格納することで、新規登録する。 Because there are no free entries in the issuance history queue 333A, the prefetch control unit 330A expels the oldest prefetch request PRREQ1 (=01234567) held in entry 0 from the issuance history queue 333A. The prefetch control unit 330A then shifts the prefetch requests PRREQ1 (=44445555, 66667777, 22223333) held in entries 1, 2, and 3 to entries 0, 1, and 2. The issuance history queue 333A then newly registers the prefetch request PRREQ1 (=88889999) corresponding to the prefetch request PRREQ0 (LPT-ID) by storing it in the now-empty entry 0.

図10は、図6のメタテーブル生成部322Aにより生成されるメタテーブルMTTBLの一例を示す。メタテーブルMTTBLは、メタテーブル生成部322AによりパケットPCKT毎に生成される。各メタテーブルMTTBLは、パケットプロトコルに依存しない共通部分と、パケットプロトコル毎に異なる固有部分とを含むm+1個のエントリを有する。メタテーブルMTTBLのサイズは、パケットPCKTに依存せずに固定である。 Figure 10 shows an example of a meta table MTTBL generated by the meta table generation unit 322A of Figure 6. The meta table MTTBL is generated for each packet PCKT by the meta table generation unit 322A. Each meta table MTTBL has m+1 entries, including a common part that is independent of the packet protocol and a unique part that differs for each packet protocol. The size of the meta table MTTBL is fixed and does not depend on the packet PCKT.

例えば、共通部分は、論理ポート番号LPT-IDが格納されるエントリと、発行済み情報PROKおよびマッチ情報PRMCHが格納されるエントリを含む。例えば、固有部分は、パケットプロトコル毎に情報が格納される複数のエントリを有する。 For example, the common part includes an entry that stores the logical port number LPT-ID and an entry that stores issued information PROK and match information PRMCH. For example, the unique part has multiple entries that store information for each packet protocol.

例えば、メタテーブル生成部322Aは、仮想スイッチ310Aが受信してパケット変換部321Aにより変換されたパケットPCKTのパケットプロトコルに応じた情報をパケットPCKTから抽出する。ここで、メタテーブル生成部322Aが生成するメタテーブルMTTBLは、共通部分および固有部分の少なくともいずれかに、例えば、パケットプロトコルに対応するKEY情報を含む。 For example, the meta table generation unit 322A extracts information corresponding to the packet protocol of the packet PCKT received by the virtual switch 310A and converted by the packet conversion unit 321A from the packet PCKT. Here, the meta table MTTBL generated by the meta table generation unit 322A includes, for example, KEY information corresponding to the packet protocol in at least one of the common part and the unique part.

そして、メタテーブル生成部322Aは、抽出した情報をメタテーブル情報MTINFとしてメタテーブルMTTBLに格納することで、メタテーブルMTTBLを生成する。この際、メタテーブル生成部322Aは、パケットプロトコルに固有な情報を、固有部分の予め決められた位置のエントリに格納する。そして、メタテーブル生成部322Aは、生成したメタテーブルMTTBLをFIB制御部350Aに出力する。なお、FIB制御部350Aには、メタテーブルMTTBLとともにパケットPCKTが転送される。 The meta table generation unit 322A then stores the extracted information in the meta table MTTBL as meta table information MTINF, thereby generating the meta table MTTBL. At this time, the meta table generation unit 322A stores information specific to the packet protocol in an entry at a predetermined position in the specific part. The meta table generation unit 322A then outputs the generated meta table MTTBL to the FIB control unit 350A. Note that the packet PCKT is transferred to the FIB control unit 350A along with the meta table MTTBL.

図11は、図6のFIB制御部350Aの一例を示す。FIB制御部350Aは、レジスタREG3、アドレス計算部351A、リクエストキュー352A、セレクタSEL3、アービタARB0、ARB1、ARB2およびマッチアクション部353Aを有する。 Figure 11 shows an example of the FIB control unit 350A in Figure 6. The FIB control unit 350A has a register REG3, an address calculation unit 351A, a request queue 352A, a selector SEL3, arbiters ARB0, ARB1, and ARB2, and a match action unit 353A.

レジスタREG3は、キャッシュ340またはメモリ400にアクセスするときのアクセス長LENと、ベースアドレスBASE-ADRSとを保持する。例えば、アクセス長LENは、メタテーブル生成部322Aから受信するメタテーブル情報MTINFに基づいて、パケットPCKT毎に設定される。 Register REG3 holds the access length LEN and base address BASE-ADRS when accessing the cache 340 or memory 400. For example, the access length LEN is set for each packet PCKT based on the metatable information MTINF received from the metatable generation unit 322A.

アドレス計算部351Aは、アクセス長LENがパケットPCKT毎に固有であることを除き、図8に示したアドレス計算部332Aと同一または同様の構成を有する。アドレス計算部351Aの加算器ADDは、パケットPCKTに対応してメタテーブル生成部322Aから受信するメタテーブル情報MTINFに含まれる論理ポート番号LPT-IDをインデックスとしてベースアドレスBASE-ADRSに加算する。 The address calculation unit 351A has the same or similar configuration as the address calculation unit 332A shown in FIG. 8, except that the access length LEN is unique for each packet PCKT. The adder ADD of the address calculation unit 351A adds the logical port number LPT-ID included in the metatable information MTINF received from the metatable generation unit 322A corresponding to the packet PCKT as an index to the base address BASE-ADRS.

アドレス計算部351Aは、キャッシュ340またはメモリ400からFIB情報を読み出すために、加算により得たアドレスを含むアクセス長LEN分のメモリアクセス要求REQ0を発行する。メモリアクセス要求REQ0は、メタテーブル情報MTINFを含む。なお、メタテーブル生成部322Aから受信するメタテーブル情報MTINFに発行済み情報PROKまたはマッチ情報PRMCHが含まれる場合、メモリアクセス要求REQ0は、発行済み情報PROKまたはマッチ情報PRMCHを含む。 To read FIB information from the cache 340 or memory 400, the address calculation unit 351A issues a memory access request REQ0 for the access length LEN, including the address obtained by the addition. The memory access request REQ0 includes metatable information MTINF. Note that if the metatable information MTINF received from the metatable generation unit 322A includes issued information PROK or match information PRMCH, the memory access request REQ0 includes issued information PROK or match information PRMCH.

リクエストキュー352Aは、アドレス計算部351Aが発行するメモリアクセス要求REQ0を保持する複数のエントリを有する。メモリアクセス要求REQ0は、メタテーブル情報MTINFを含む。リクエストキュー352Aは、エントリに保持したメモリアクセス要求REQ0を、保持した順にメモリアクセス要求REQ1としてセレクタSEL3に出力する。リクエストキュー352Aは、メモリアクセス要求REQ0に対応するメモリアクセス要求MREQに応答してメモリ400から出力されるFIB情報に基づいて、保持している当該メモリアクセス要求REQ0を消去する。 The request queue 352A has multiple entries that hold memory access requests REQ0 issued by the address calculation unit 351A. The memory access requests REQ0 include metatable information MTINF. The request queue 352A outputs the memory access requests REQ0 held in the entries to the selector SEL3 as memory access requests REQ1 in the order they were held. The request queue 352A erases the memory access requests REQ0 that it holds based on the FIB information output from the memory 400 in response to the memory access request MREQ corresponding to the memory access request REQ0.

セレクタSEL3は、メモリアクセス要求REQ1に発行済み情報PROK=1またはマッチ情報PRMCH=1が含まれる場合、メモリアクセス要求REQ1をキャッシュ読み出しアクセス要求CREQRとしてキャッシュ340に出力する。セレクタSEL3は、メモリアクセス要求REQ1に発行済み情報PROK=0およびマッチ情報PRMCH=0が含まれる場合、メモリアクセス要求REQ1をメモリ読み出しアクセス要求MREQ0RとしてアービタARB0に出力する。 If the memory access request REQ1 contains issued information PROK=1 or match information PRMCH=1, the selector SEL3 outputs the memory access request REQ1 to the cache 340 as a cache read access request CREQR. If the memory access request REQ1 contains issued information PROK=0 and match information PRMCH=0, the selector SEL3 outputs the memory access request REQ1 to the arbiter ARB0 as a memory read access request MREQ0R.

このように、FIB制御部350Aは、メモリアクセス要求REQ1に含まれる発行済み情報PROKまたはマッチ情報PRMCHに基づいて、キャッシュ340がキャッシュヒット状態であるか否かを判定することができる。そして、FIB制御部350Aは、キャッシュ340がキャッシュヒット状態である場合、キャッシュ340に対するキャッシュ読み出しアクセス要求CREQRを発行する。FIB制御部350Aは、キャッシュ340がキャッシュミス状態である場合、メモリ400に対するメモリ読み出しアクセス要求MREQ0Rを発行する。メモリ読み出しアクセス要求MREQ0Rは、メモリ400に対する読み出し要求の一例である。 In this way, the FIB control unit 350A can determine whether the cache 340 is in a cache hit state based on the issued information PROK or match information PRMCH included in the memory access request REQ1. If the cache 340 is in a cache hit state, the FIB control unit 350A issues a cache read access request CREQR to the cache 340. If the cache 340 is in a cache miss state, the FIB control unit 350A issues a memory read access request MREQ0R to the memory 400. The memory read access request MREQ0R is an example of a read request to the memory 400.

アービタARB0は、メモリ読み出しアクセス要求MREQ0R、プリフェッチ要求PRREQ1およびFIB情報の更新データの書き込みアクセス要求UPDTを調停する。アービタARB0は、調停により選択したメモリ読み出しアクセス要求MREQ0R、プリフェッチ要求PRREQ1または書き込みアクセス要求UPDTに含まれる情報に基づいて、メモリアクセス要求MREQを生成し、メモリ400に出力する。メモリアクセス要求MREQは、メモリ400においてFIB情報を保持する記憶領域を示すアドレスを含む。メモリアクセス要求MREQは、メモリ400に対する読み出し要求の一例である。また、アービタARB0は、調停によりプリフェッチ要求PRREQ1を選択した場合、発行済み情報PROK=1を図6のメタテーブル生成部322Aに出力する。 The arbiter ARB0 arbitrates among the memory read access request MREQ0R, the prefetch request PRREQ1, and the write access request UPDT for update data of FIB information. Based on the information contained in the memory read access request MREQ0R, the prefetch request PRREQ1, or the write access request UPDT selected through arbitration, the arbiter ARB0 generates a memory access request MREQ and outputs it to the memory 400. The memory access request MREQ includes an address indicating the storage area in the memory 400 that holds the FIB information. The memory access request MREQ is an example of a read request to the memory 400. Furthermore, if the arbiter ARB0 selects the prefetch request PRREQ1 through arbitration, it outputs the issued information PROK=1 to the meta table generation unit 322A in FIG. 6.

メモリ読み出しアクセス要求MREQ0Rまたはプリフェッチ要求PRREQ1に基づいてアービタARB0が生成するメモリアクセス要求MREQは、メモリ400からFIB情報を読み出す読み出し要求の一例である。書き込みアクセス要求UPDTに基づいてアービタARB0が生成するメモリアクセス要求MREQは、メモリ400にFIB情報を書き込む書き込み要求の一例である。 The memory access request MREQ generated by the arbiter ARB0 based on the memory read access request MREQ0R or the prefetch request PRREQ1 is an example of a read request to read FIB information from the memory 400. The memory access request MREQ generated by the arbiter ARB0 based on the write access request UPDT is an example of a write request to write FIB information to the memory 400.

アービタARB1は、書き込みアクセス要求UPDTに含まれるFIB情報およびメモリ400から読み出されるFIB情報を調停する。アービタARB1は、調停により選択したFIB情報をキャッシュ340に書き込むキャッシュ書き込みアクセス要求CREQWを生成し、キャッシュ340に出力する。キャッシュ書き込みアクセス要求CREQWは、書き込みアクセス要求UPDTに含まれるFIB情報またはメモリ400から読み出されるFIB情報をキャッシュ340に書き込む書き込み要求の一例である。 The arbiter ARB1 arbitrates between the FIB information included in the write access request UPDT and the FIB information read from memory 400. The arbiter ARB1 generates a cache write access request CREQW to write the FIB information selected through arbitration to cache 340, and outputs it to cache 340. The cache write access request CREQW is an example of a write request to write the FIB information included in the write access request UPDT or the FIB information read from memory 400 to cache 340.

アービタARB0、ARB1は、FIB情報を含む書き込みアクセス要求UPDTを仮想スイッチ310Aから受信した場合、FIB情報をメモリ400に格納するとともにキャッシュ340に格納する格納制御部の一例である。メモリ400に格納するFIB情報(更新データまたは新規登録データ)をキャッシュ340にも格納することで、対応するFIB情報を予めヒット状態にすることができる。これにより、FIB制御部350AによるFIB情報の取得に掛かるレイテンシを短縮することができる。 Arbiters ARB0 and ARB1 are an example of a storage control unit that, when a write access request UPDT including FIB information is received from virtual switch 310A, stores the FIB information in memory 400 and also in cache 340. By storing the FIB information (update data or newly registered data) stored in memory 400 in cache 340 as well, the corresponding FIB information can be set to a hit state in advance. This reduces the latency required for FIB control unit 350A to obtain FIB information.

アービタARB2は、メモリ400から読み出されるFIB情報およびキャッシュ340から読み出されるFIB情報を調停する。アービタARB2は、調停により選択したFIB情報のいずれかをマッチアクション部353Aに出力する。 Arbiter ARB2 arbitrates between the FIB information read from memory 400 and the FIB information read from cache 340. Arbiter ARB2 outputs one of the FIB information selected through arbitration to match action unit 353A.

マッチアクション部353Aは、FIB制御部350Aが受信したパケットPCKTに対応するメタテーブルMTTBLに含まれるKEY情報と、キャッシュ340またはメモリ400から読み出されたFIB情報に含まれるKEY情報とを比較する。ここで、KEY情報の比較は、例えば、メタテーブルMTTBLに含まれるパケットプロトコルに対応する所定のKEY情報について行われる。
マッチアクション部353Aは、KEY情報の比較により、パケットPCKTに含まれるFIB情報が正しいか否かを判定する。
The match action unit 353A compares the KEY information included in the meta table MTTBL corresponding to the packet PCKT received by the FIB control unit 350A with the KEY information included in the FIB information read from the cache 340 or the memory 400. Here, the comparison of the KEY information is performed, for example, on predetermined KEY information corresponding to the packet protocol included in the meta table MTTBL.
The match action unit 353A compares the KEY information to determine whether the FIB information included in the packet PCKT is correct.

マッチアクション部353Aは、KEY情報同士が一致する場合、パケットPCKTが有効であると判定し、FIB情報に含まれるACTION情報にしたがって、パケットヘッダの生成動作等を実施する。そして、マッチアクション部353Aは、生成したパケットヘッダを含むパケットPCKTを転送先に転送する。なお、マッチアクション部353Aは、KEY情報同士が一致しない場合、パケットPCKTの転送を抑止する。 If the KEY information matches, the match action unit 353A determines that the packet PCKT is valid and performs operations such as generating a packet header in accordance with the ACTION information included in the FIB information. The match action unit 353A then forwards the packet PCKT including the generated packet header to the forwarding destination. Note that if the KEY information does not match, the match action unit 353A prevents the forwarding of the packet PCKT.

図12は、図6の中継制御部320Aの動作の一例を示す。すなわち、図12は、スイッチ装置300Aの制御方法の一例を示す。図12に示す動作は、図9の(例1)に対応する動作であり、プリフェッチ要求PRREQ0(LPT-ID)=66667777が発行履歴キュー333Aに保持されておらず、エントリに空きがある場合の動作を示す。 Figure 12 shows an example of the operation of the relay control unit 320A in Figure 6. That is, Figure 12 shows an example of a control method for the switch device 300A. The operation shown in Figure 12 corresponds to (Example 1) in Figure 9, and shows the operation when the prefetch request PRREQ0 (LPT-ID) = 66667777 is not held in the issuance history queue 333A and there is a free entry.

プリフェッチ制御部330Aは、発行履歴キュー333Aに保持された過去のプリフェッチ要求PRREQ1を参照して、プリフェッチ要求PRREQ0=66667777のキャッシュミスを判定する。プリフェッチ制御部330Aは、発行履歴キュー333Aのエントリに空きがあるため、プリフェッチ要求PRREQ0=66667777をエントリに格納する。そして、プリフェッチ制御部330Aは、FIB制御部350Aを介して発行済み情報PROKをメタテーブル生成部322Aに格納する。 The prefetch control unit 330A references the past prefetch request PRREQ1 held in the issuance history queue 333A and determines that the prefetch request PRREQ0=66667777 is a cache miss. Because there is free entry in the issuance history queue 333A, the prefetch control unit 330A stores the prefetch request PRREQ0=66667777 in the entry. The prefetch control unit 330A then stores the issued information PROK in the meta table generation unit 322A via the FIB control unit 350A.

発行済み情報PROKは、プリフェッチ要求PRREQ0=66667777に対応するパケットPCKTに基づいてメタテーブル生成部322Aが生成したメタテーブルMTTBLに格納される。メタテーブル生成部322Aは、生成したメタテーブルMTTBL(発行済み情報PROKを含む)をFIB制御部350Aに出力する。FIB制御部350Aは、発行済み情報PROKを含むメタテーブルMTTBLに基づいて、キャッシュ読み出しアクセス要求CREQRをキャッシュ340に出力する。 The issued information PROK is stored in the meta table MTTBL generated by the meta table generation unit 322A based on the packet PCKT corresponding to the prefetch request PRREQ0=66667777. The meta table generation unit 322A outputs the generated meta table MTTBL (including the issued information PROK) to the FIB control unit 350A. The FIB control unit 350A outputs a cache read access request CREQR to the cache 340 based on the meta table MTTBL including the issued information PROK.

アービタARB0は、プリフェッチ要求PRREQ1を調停により選択し、メモリアクセス要求MREQとしてメモリ400に出力する。メモリ400は、メモリアクセス要求MREQの応答RSPとしてFIB情報を出力する。アービタARB1は、メモリ400から読み出されるFIB情報を調停により選択し、選択したFIB情報をキャッシュ340に書き込む。これにより、中継制御部320Aが受信したパケットPCKTに対応するFIB情報がキャッシュ340に書き込まれる。 The arbiter ARB0 selects the prefetch request PRREQ1 through arbitration and outputs it to the memory 400 as a memory access request MREQ. The memory 400 outputs the FIB information as a response RSP to the memory access request MREQ. The arbiter ARB1 selects the FIB information read from the memory 400 through arbitration and writes the selected FIB information to the cache 340. As a result, the FIB information corresponding to the packet PCKT received by the relay control unit 320A is written to the cache 340.

なお、実際には、プリフェッチ制御部330Aは、複数のプリフェッチ要求PRREQ1(メモリアクセス要求MREQ)をメモリ400に出力し、メモリ400からの複数の応答RSPに対応する複数のFIB情報がキャッシュ340に格納される。また、複数のプリフェッチ要求PRREQ1に対応する複数のプリフェッチ要求PRREQ0(LPT-ID)が発行履歴キュー333Aに格納される。 In reality, the prefetch control unit 330A outputs multiple prefetch requests PRREQ1 (memory access requests MREQ) to the memory 400, and multiple FIB information corresponding to multiple responses RSP from the memory 400 is stored in the cache 340. Also, multiple prefetch requests PRREQ0 (LPT-ID) corresponding to the multiple prefetch requests PRREQ1 are stored in the issue history queue 333A.

ここで、中継制御部320AがパケットPCKTを受信してからキャッシュ読み出しアクセス要求CREQRを出力する時間は、中継制御部320AがパケットPCKTを受信してからキャッシュ書き込みアクセス要求CREQWを出力する時間より長い。換言すれば、受信したパケットに対応してメモリ400から読み出されるFIB情報は、キャッシュ読み出しアクセス要求CREQRがキャッシュ340に出力される前にキャッシュ340に書き込まれる。そして、キャッシュ340は、キャッシュ読み出しアクセス要求CREQRに対応するFIB情報に含まれるKEY情報およびACTION情報を出力する。 Here, the time from when the relay control unit 320A receives the packet PCKT to when it outputs the cache read access request CREQR is longer than the time from when the relay control unit 320A receives the packet PCKT to when it outputs the cache write access request CREQW. In other words, the FIB information read from the memory 400 corresponding to the received packet is written to the cache 340 before the cache read access request CREQR is output to the cache 340. The cache 340 then outputs the KEY information and ACTION information included in the FIB information corresponding to the cache read access request CREQR.

図13は、図6の中継制御部320Aの動作の別の例を示す。すなわち、図13は、スイッチ装置300Aの制御方法の一例を示す。図13に示す動作は、図9の(例2)に対応する動作であり、プリフェッチ要求PRREQ0(LPT-ID)=22223333が発行履歴キュー333Aに保持され、エントリが満杯である場合の動作を示す。 Figure 13 shows another example of the operation of the relay control unit 320A in Figure 6. That is, Figure 13 shows one example of a control method for the switch device 300A. The operation shown in Figure 13 corresponds to (Example 2) in Figure 9, and shows the operation when a prefetch request PRREQ0 (LPT-ID) = 22223333 is held in the issuance history queue 333A and the entries are full.

プリフェッチ制御部330Aは、発行履歴キュー333Aに保持された過去のプリフェッチ要求PRREQ1を参照して、プリフェッチ要求PRREQ0=22223333のキャッシュヒット状態を判定する。プリフェッチ制御部330Aは、プリフェッチ要求PRREQ1=22223333を発行履歴キュー333Aのエントリ1からエントリ3に移動する。そして、プリフェッチ制御部330Aは、FIB制御部350Aを介してマッチ情報PRMCHをメタテーブル生成部322Aに格納する。 The prefetch control unit 330A references the past prefetch request PRREQ1 held in the issuance history queue 333A to determine the cache hit status of the prefetch request PRREQ0=22223333. The prefetch control unit 330A moves the prefetch request PRREQ1=22223333 from entry 1 to entry 3 in the issuance history queue 333A. The prefetch control unit 330A then stores the match information PRMCH in the meta table generation unit 322A via the FIB control unit 350A.

マッチ情報PRMCHは、プリフェッチ要求PRREQ0=22223333に対応するパケットPCKTに基づいてメタテーブル生成部322Aが生成したメタテーブルMTTBLに格納される。メタテーブル生成部322Aは、生成したメタテーブルMTTBL(マッチ情報PRMCHを含む)をFIB制御部350Aに出力する。FIB制御部350Aは、マッチ情報PRMCHを含むメタテーブルMTTBLに基づいて、キャッシュ読み出しアクセス要求CREQRをキャッシュ340に出力する。 The match information PRMCH is stored in the meta table MTTBL generated by the meta table generation unit 322A based on the packet PCKT corresponding to the prefetch request PRREQ0 = 22223333. The meta table generation unit 322A outputs the generated meta table MTTBL (including the match information PRMCH) to the FIB control unit 350A. The FIB control unit 350A outputs a cache read access request CREQR to the cache 340 based on the meta table MTTBL including the match information PRMCH.

そして、キャッシュ340は、キャッシュ読み出しアクセス要求CREQRに対応するFIB情報に含まれるKEY情報およびACTION情報を出力する。なお、中継制御部320Aが受信したパケットPCKTに対応するFIB情報は、キャッシュ340に既に保持されているため(キャッシュヒット状態)、メモリアクセス要求MREQは、メモリ400に出力されない。 Then, the cache 340 outputs the KEY information and ACTION information contained in the FIB information corresponding to the cache read access request CREQR. Note that since the FIB information corresponding to the packet PCKT received by the relay control unit 320A is already held in the cache 340 (cache hit state), the memory access request MREQ is not output to the memory 400.

以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、プリフェッチ制御部330Aは、受信したパケットPCKTに対応するFIB情報に加えて、他のFIB情報をメモリ400からプリフェッチしてキャッシュ340に格納する。これにより、FIB制御部350AがパケットPCKTの転送経路を決定するときにキャッシュ340がキャッシュミス状態である頻度を低減することができる。キャッシュ340のヒット率を向上できるため、FIB制御部350AによるFIB情報の取得に掛かるレイテンシを短縮することができ、スイッチ装置300AによるパケットPCKTの中継性能の低下を抑制することができる。 As described above, this embodiment can also achieve the same effects as the above-described embodiments. For example, the prefetch control unit 330A prefetches other FIB information from the memory 400 in addition to the FIB information corresponding to the received packet PCKT and stores it in the cache 340. This reduces the frequency with which the cache 340 experiences a cache miss when the FIB control unit 350A determines the forwarding path for the packet PCKT. Because the hit rate of the cache 340 can be improved, the latency required for the FIB control unit 350A to obtain FIB information can be reduced, and a decrease in the relay performance of the packet PCKT by the switch device 300A can be suppressed.

さらに、この実施形態では、プリフェッチ制御部330Aは、受信したプリフェッチ要求PRREQ0に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されている場合、メモリ400へのプリフェッチ要求PRREQ1の発行を抑止する。これにより、アービタARB0による無駄な調停動作を抑制することができ、メモリ400およびキャッシュ340が無駄にアクセスされることを抑制することができる。この結果、FIB制御部350AによるFIB情報の取得効率を向上することができ、FIBの取得に掛かるレイテンシを短縮することができる。 Furthermore, in this embodiment, if a prefetch request PRREQ1 corresponding to the received prefetch request PRREQ0 is held in the issuance history queue 333A, the prefetch control unit 330A suppresses the issuance of the prefetch request PRREQ1 to the memory 400. This prevents unnecessary arbitration operations by the arbiter ARB0 and prevents unnecessary access to the memory 400 and cache 340. As a result, the efficiency with which the FIB control unit 350A acquires FIB information can be improved, and the latency required for FIB acquisition can be reduced.

プリフェッチ制御部330Aは、発行履歴キュー333Aに保持されているプリフェッチ要求PRREQ1に基づいて、受信したパケットPCKTに対応するFIB情報がキャッシュヒット状態かキャッシュミス状態かを判定することができる。 The prefetch control unit 330A can determine whether the FIB information corresponding to the received packet PCKT is in a cache hit state or a cache miss state based on the prefetch request PRREQ1 held in the issuance history queue 333A.

プリフェッチ制御部330Aは、受信したプリフェッチ要求PRREQ0に対応するプリフェッチ要求PRREQ1が発行履歴キュー333Aに保持されている場合、メタテーブルMTTBLにマッチ情報PRMCH=1を格納する。FIB制御部350Aは、プリフェッチ制御部330Aが出力したプリフェッチ要求PRREQ1をアービタARB0により選択した場合、メタテーブルMTTBLに発行済み情報PROK=1を格納する。 If the prefetch request PRREQ1 corresponding to the received prefetch request PRREQ0 is held in the issuance history queue 333A, the prefetch control unit 330A stores match information PRMCH=1 in the meta table MTTBL. If the prefetch request PRREQ1 output by the prefetch control unit 330A is selected by the arbiter ARB0, the FIB control unit 350A stores issued information PROK=1 in the meta table MTTBL.

これにより、FIB制御部350Aは、メタテーブルMTTBLに保持されたメタテーブル情報MTINFを参照することで、キャッシュ340のキャッシュヒットまたはキャッシュミスを判定することができる。そして、FIB制御部350Aは、判定結果に基づいて、キャッシュ340に対するキャッシュ読み出しアクセス要求CREQRまたはメモリ400に対するメモリ読み出しアクセス要求MREQ0Rを発行することができる。すなわち、メモリ400からのFIB情報の読み出しを、プリフェッチ制御部330AとFIB制御部350Aとの両方により実施することができる。 As a result, the FIB control unit 350A can determine whether there is a cache hit or a cache miss in the cache 340 by referencing the meta table information MTINF stored in the meta table MTTBL. Then, based on the determination result, the FIB control unit 350A can issue a cache read access request CREQR to the cache 340 or a memory read access request MREQ0R to the memory 400. In other words, reading of FIB information from the memory 400 can be performed by both the prefetch control unit 330A and the FIB control unit 350A.

メモリ400に格納するFIB情報(更新データまたは新規登録データ)をキャッシュ340にも格納することで、対応するFIB情報を予めヒット状態にすることができる。これにより、FIB制御部350AによるFIB情報の取得に掛かるレイテンシをさらに短縮することができる。 By storing the FIB information (update data or newly registered data) stored in memory 400 in cache 340 as well, the corresponding FIB information can be set to a hit state in advance. This further reduces the latency required for the FIB control unit 350A to obtain FIB information.

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。 The features and advantages of the embodiments will be apparent from the above detailed description. It is intended that the claims encompass the features and advantages of the above-described embodiments without departing from the spirit and scope of the claims. Furthermore, any improvements and modifications will be readily apparent to those skilled in the art. Therefore, it is not intended that the scope of the inventive embodiments be limited to those described above, and appropriate improvements and equivalents within the scope of the disclosed embodiments may be utilized.

100、100A サーバ
200、200A CPU
210 仮想マシン
300、300A スイッチ装置
310、310A 仮想スイッチ
320 転送制御回路
321A パケット変換部
322A メタテーブル生成部
320A 中継制御部
330、330A プリフェッチ制御部
331A プリフェッチ判定部
332A アドレス計算部
333A 発行履歴キュー
340 キャッシュ
350 経路制御部
351A アドレス計算部
352A リクエストキュー
353A マッチアクション部
350A FIB制御部
400 メモリ
ADD 加算器
ARB0、ARB1、ARB2 アービタ
CREQR キャッシュ読み出しアクセス要求
CREQW キャッシュ書き込みアクセス要求
ERS 消去指示
LEN アクセス長
LPT-ID 論理ポート番号
MREQ メモリアクセス要求
MREQ0R メモリ読み出しアクセス要求
MTINF メタテーブル情報
PCKT パケット
PRMCH マッチ情報
PROK 発行済み情報
PRREQ0、PRREQ1 プリフェッチ要求
REG0、REG1、REG2、REG3 レジスタ
REQ0、REQ1 メモリアクセス要求
SEL1、SEL2、SEL3 セレクタ
UPDT 書き込みアクセス要求
100, 100A Server 200, 200A CPU
210 Virtual machine 300, 300A Switch device 310, 310A Virtual switch 320 Transfer control circuit 321A Packet conversion unit 322A Meta table generation unit 320A Routing control unit 330, 330A Prefetch control unit 331A Prefetch determination unit 332A Address calculation unit 333A Issue history queue 340 Cache 350 Route control unit 351A Address calculation unit 352A Request queue 353A Match action unit 350A FIB control unit 400 Memory ADD Adder ARB0, ARB1, ARB2 Arbiter CREQR Cache read access request CREQW Cache write access request ERS Erase instruction LEN Access length LPT-ID Logical port number MREQ Memory access request MREQ0R Memory read access request MTINF Metatable information PCKT Packet PRMCH Match information PROK Issued information PRREQ0, PRREQ1 Prefetch request REG0, REG1, REG2, REG3 Register REQ0, REQ1 Memory access request SEL1, SEL2, SEL3 Selector UPDATE Write access request

Claims (7)

パケットの転送制御機能の少なくとも一部が仮想スイッチから転送制御回路にオフロードされたスイッチ装置であって、
前記転送制御回路は、
メモリに保持されたパケットの転送経路情報のうちの少なくともいずれかの転送経路情報を保持するキャッシュと、
受信したパケットの転送経路を、前記キャッシュに保持された転送経路情報を使用して決定する経路制御部と、
受信したパケットに対応する転送経路情報が前記キャッシュに保持されていない場合、前記対応する転送経路情報を含む複数の転送経路情報を前記メモリから読み出して前記キャッシュに格納するプリフェッチ制御部と、
を有するスイッチ装置。
A switch device in which at least a part of a packet forwarding control function is offloaded from a virtual switch to a forwarding control circuit,
The transfer control circuit
a cache that holds at least one piece of packet forwarding route information held in a memory;
a route control unit that determines a transfer route for a received packet using the transfer route information stored in the cache;
a prefetch control unit that, when transfer path information corresponding to a received packet is not held in the cache, reads out a plurality of pieces of transfer path information including the corresponding transfer path information from the memory and stores the read information in the cache;
A switch device having:
前記プリフェッチ制御部は、
前記メモリから前記複数の転送経路情報を読み出すプリフェッチ要求を生成して前記メモリに発行する要求生成部と、
前記要求生成部が生成したプリフェッチ要求を保持するプリフェッチ要求保持部と、
前記受信したパケットに対応する転送経路情報に対応する読み出し要求が前記プリフェッチ要求保持部に保持されている場合、対応する読み出し要求の前記メモリへの発行を抑止する発行抑止部と、
を有する請求項1に記載のスイッチ装置。
The prefetch control unit
a request generation unit that generates a prefetch request to read the plurality of pieces of transfer path information from the memory and issues the request to the memory;
a prefetch request holding unit that holds the prefetch request generated by the request generating unit;
an issuance inhibiting unit that inhibits issuance of a corresponding read request to the memory when a read request corresponding to transfer path information corresponding to the received packet is held in the prefetch request holding unit;
The switch device according to claim 1 , further comprising:
前記転送制御回路は、
受信したパケットを識別するパケット識別情報を生成する識別情報生成部と、
受信したパケットに含まれる情報のうち前記経路制御部で使用する情報と、前記パケット識別情報とを含むメタテーブルをパケット毎に生成するメタテーブル生成部と、を有し、
前記プリフェッチ制御部は、前記プリフェッチ要求保持部に保持された読み出し要求に対応するメタテーブルに、対応する転送経路情報が前記キャッシュに保持されていることを示す保持情報を格納する
請求項2に記載のスイッチ装置。
The transfer control circuit
an identification information generation unit that generates packet identification information for identifying a received packet;
a meta table generating unit that generates, for each packet, a meta table including information to be used in the route control unit among information included in the received packet and the packet identification information;
The switch device according to claim 2 , wherein the prefetch control unit stores, in a meta table corresponding to a read request held in the prefetch request holding unit, holding information indicating that corresponding transfer path information is held in the cache.
前記経路制御部は、
受信したパケットに対応するメタテーブルに含まれる前記パケット識別情報に基づいて、受信したパケットの転送経路情報が保持された前記キャッシュの記憶領域を求め、
受信したパケットに対応するメタテーブルに前記保持情報が格納されている場合、求めた前記キャッシュの記憶領域から転送経路情報を読み出す読み出し要求を前記キャッシュに発行し、
受信したパケットに対応するメタテーブルに前記保持情報が格納されていない場合、受信したパケットに対応する転送経路情報を前記メモリから読み出す読み出し要求を前記メモリに発行し、前記メモリから読み出された転送経路情報を前記キャッシュに格納する
請求項3に記載のスイッチ装置。
The route control unit
determining a storage area of the cache in which transfer path information of the received packet is held, based on the packet identification information included in the meta table corresponding to the received packet;
If the held information is stored in a meta table corresponding to the received packet, a read request is issued to the cache to read the transfer path information from the determined storage area of the cache;
4. The switch device according to claim 3, wherein if the retained information is not stored in a meta table corresponding to the received packet, a read request is issued to the memory to read from the memory the transfer path information corresponding to the received packet, and the transfer path information read from the memory is stored in the cache.
前記プリフェッチ制御部は、前記メモリに読み出し要求を発行した場合、前記メモリに読み出し要求を発行したことを示す発行済み情報を前記メタテーブルに格納し、
前記経路制御部は、
受信したパケットに対応するメタテーブルに前記発行済み情報が格納されている場合、前記求めたキャッシュの記憶領域から転送経路情報を読み出す読み出し要求を前記キャッシュに発行する
請求項4に記載のスイッチ装置。
when the prefetch control unit issues a read request to the memory, it stores issued information indicating that the read request has been issued to the memory in the meta table;
The route control unit
5. The switch device according to claim 4, wherein if the issued information is stored in a meta table corresponding to the received packet, a read request is issued to the cache to read the transfer path information from the determined storage area of the cache.
前記経路制御部は、
前記メモリに保持された転送経路情報の更新データを前記仮想スイッチから受信した場合、受信した更新データを前記メモリに格納するとともに前記キャッシュに格納する格納制御部を有する請求項1ないし請求項5のいずれか1項に記載のスイッチ装置。
The route control unit
6. A switch device according to claim 1, further comprising a storage control unit that, when receiving update data for forwarding path information held in the memory from the virtual switch, stores the received update data in the memory and also stores it in the cache.
パケットの転送制御機能の少なくとも一部が仮想スイッチから転送制御回路にオフロードされたスイッチ装置の制御方法であって、
前記転送制御回路が、
受信したパケットの転送経路を、メモリに保持されたパケットの転送経路情報のうちの少なくともいずれかの転送経路情報を保持するキャッシュに保持された転送経路情報を使用して決定し、
受信したパケットに対応する転送経路情報が前記キャッシュに保持されていない場合、前記対応する転送経路情報を含む複数の転送経路情報を前記メモリから読み出して前記キャッシュに格納する
スイッチ装置の制御方法。
A control method for a switch device in which at least a part of a packet forwarding control function is offloaded from a virtual switch to a forwarding control circuit, comprising:
The transfer control circuit
determining a transfer route for the received packet using transfer route information held in a cache that holds at least any of the transfer route information for the packet held in the memory;
When transfer path information corresponding to a received packet is not held in the cache, a plurality of pieces of transfer path information including the corresponding transfer path information are read from the memory and stored in the cache.
JP2022045419A 2022-03-22 2022-03-22 Switching device and method for controlling switching device Active JP7740081B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022045419A JP7740081B2 (en) 2022-03-22 2022-03-22 Switching device and method for controlling switching device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022045419A JP7740081B2 (en) 2022-03-22 2022-03-22 Switching device and method for controlling switching device

Publications (2)

Publication Number Publication Date
JP2023139733A JP2023139733A (en) 2023-10-04
JP7740081B2 true JP7740081B2 (en) 2025-09-17

Family

ID=88204817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022045419A Active JP7740081B2 (en) 2022-03-22 2022-03-22 Switching device and method for controlling switching device

Country Status (1)

Country Link
JP (1) JP7740081B2 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004023450A (en) 2002-06-17 2004-01-22 Nec Corp Router device
JP2004503010A (en) 2000-06-30 2004-01-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing device having cache memory and method of using such device
JP2007060514A (en) 2005-08-26 2007-03-08 Fujitsu Ltd Routing device
JP2007286990A (en) 2006-04-19 2007-11-01 Nec Corp Cache memory device, cache memory control method to be used for the same and program therefor
WO2008155833A1 (en) 2007-06-20 2008-12-24 Fujitsu Limited Cache memory controller and cache memory control method
WO2014030387A1 (en) 2012-08-22 2014-02-27 三菱電機株式会社 Cache memory controller and method for controlling cache memory
US20160380865A1 (en) 2015-06-26 2016-12-29 Intel Corporation Netflow collection and export offload using network silicon
JP2020017911A (en) 2018-07-27 2020-01-30 日本電気株式会社 Information processing apparatus, information processing method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147216A (en) * 1994-11-17 1996-06-07 Hitachi Ltd Data processing device
JPH08320825A (en) * 1995-05-25 1996-12-03 Hitachi Ltd Data processing device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503010A (en) 2000-06-30 2004-01-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing device having cache memory and method of using such device
JP2004023450A (en) 2002-06-17 2004-01-22 Nec Corp Router device
JP2007060514A (en) 2005-08-26 2007-03-08 Fujitsu Ltd Routing device
JP2007286990A (en) 2006-04-19 2007-11-01 Nec Corp Cache memory device, cache memory control method to be used for the same and program therefor
WO2008155833A1 (en) 2007-06-20 2008-12-24 Fujitsu Limited Cache memory controller and cache memory control method
US20100106913A1 (en) 2007-06-20 2010-04-29 Fujitsu Limited Cache memory control apparatus and cache memory control method
WO2014030387A1 (en) 2012-08-22 2014-02-27 三菱電機株式会社 Cache memory controller and method for controlling cache memory
US20160380865A1 (en) 2015-06-26 2016-12-29 Intel Corporation Netflow collection and export offload using network silicon
JP2020017911A (en) 2018-07-27 2020-01-30 日本電気株式会社 Information processing apparatus, information processing method, and program

Also Published As

Publication number Publication date
JP2023139733A (en) 2023-10-04

Similar Documents

Publication Publication Date Title
CN117609110B (en) Caching method, cache, electronic device and readable storage medium
US5490261A (en) Interlock for controlling processor ownership of pipelined data for a store in cache
TWI651620B (en) Data processing system and method for processing multiple transactions
US6728839B1 (en) Attribute based memory pre-fetching technique
JP2018133086A (en) Hybrid memory module and operation method for the same
JP2001297035A (en) Information processing device
JP2009098934A (en) Processor and cache memory
JP2000250808A (en) Method for operating processor for prefetching structure data
CN114238167B (en) Information prefetching method, processor, electronic device
KR20030024895A (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
JP2000242545A (en) Apparatus and method for processing a memory access request in a data processing system
JP2002278834A (en) Cache memory device and data processing device including the same
US6973547B2 (en) Coherence message prediction mechanism and multiprocessing computer system employing the same
EP0669579B1 (en) Coherence index generation for use by an input/output adapter
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
KR102482516B1 (en) memory address conversion
EP2339472B1 (en) Arithmetic processing unit, information processing device, and cache memory control method
US9086976B1 (en) Method and apparatus for associating requests and responses with identification information
US20070288694A1 (en) Data processing system, processor and method of data processing having controllable store gather windows
US7447844B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
US7032079B1 (en) System and method for accelerating read requests within a multiprocessor system
JP4577729B2 (en) System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache
JP7740081B2 (en) Switching device and method for controlling switching device
JP2001092801A (en) Multiprocessor device
JP2006031710A (en) Data processing system, method and cache system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240906

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20240910

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20241018

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250725

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250818

R150 Certificate of patent or registration of utility model

Ref document number: 7740081

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150