JP2011103608A - Packet forwarding apparatus and method - Google Patents

Packet forwarding apparatus and method Download PDF

Info

Publication number
JP2011103608A
JP2011103608A JP2009258414A JP2009258414A JP2011103608A JP 2011103608 A JP2011103608 A JP 2011103608A JP 2009258414 A JP2009258414 A JP 2009258414A JP 2009258414 A JP2009258414 A JP 2009258414A JP 2011103608 A JP2011103608 A JP 2011103608A
Authority
JP
Japan
Prior art keywords
packet
dram
forwarding
bank
input
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.)
Granted
Application number
JP2009258414A
Other languages
Japanese (ja)
Other versions
JP5394897B2 (en
Inventor
Ikuo Furuya
郁夫 古屋
Naoya Hashimoto
直也 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SII Network Systems Inc
Original Assignee
SII Network Systems Inc
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 SII Network Systems Inc filed Critical SII Network Systems Inc
Priority to JP2009258414A priority Critical patent/JP5394897B2/en
Publication of JP2011103608A publication Critical patent/JP2011103608A/en
Application granted granted Critical
Publication of JP5394897B2 publication Critical patent/JP5394897B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To overcome the problem with an apparatus for forwarding packets, wherein a latency to BANK active, read command input, and data output, and a BANK precharge after data transfer are required for accessing data when the apparatus uses a versatile DRAM memory of low bit unit price and large capacity for achieving high-speed access of forwarding information stored in a storage apparatus, and as a result, the transfer efficiency of data is not raised. <P>SOLUTION: By continuously allocating a plurality of input physical ports to a memory BANK, and continuously repeating BANK interleave access to raise the data transfer efficiency of a memory, and a memory band required for reading out forwarding information of the input physical ports is assured. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、パケットの転送処理におけるメモリアクセスに関する。   The present invention relates to memory access in packet transfer processing.

ブリッジ、ルータといった通信装置は、パケットと呼ばれるひとかたまりになったデータの入出力インターフェース(ポート)を複数有する。これらの装置は、パケットごとに、そのパケットが受信されたポートに付随する情報やそのパケットに付与されている制御情報を元に、装置内の多数のデータベースを検索、参照して、そのパケットの処理方法を決定する。処理の中には、パケットの制御情報を変更、加工したり、パケットの流入、流出量を基準に廃棄したり、あるいは、データベースの検索結果に基づいて特定のポートに送信するといった操作が含まれる。これらの処理は、多数のデータベースを検索する必要があり、通信インタフェースが高速になると、データベースを記憶する装置内の記憶装置(メモリ)がボトルネックとなり、処理速度が制限されてしまい、通信インタフェースの伝送速度を完全に使い切れない状態になってしまう。
そのため従来の装置では、データベース検索結果をキャッシュと呼称する一時情報記憶領域に格納し頻繁に到達するパケットについては高速にフォワーディング処理を実現している(例えば特許文献1参照)。
Communication devices such as bridges and routers have a plurality of data input / output interfaces (ports) called a packet. For each packet, these devices search and refer to a large number of databases in the device based on the information attached to the port from which the packet was received and the control information attached to the packet. Determine the processing method. The processing includes operations such as changing or processing packet control information, discarding packets based on the inflow or outflow amount of packets, or sending to specific ports based on database search results. . In these processes, it is necessary to search a large number of databases. When the communication interface becomes high speed, the storage device (memory) in the apparatus storing the database becomes a bottleneck, and the processing speed is limited. The transmission speed is not completely used up.
For this reason, in the conventional apparatus, the database search result is stored in a temporary information storage area called a cache, and forwarding processing is realized at high speed for packets that arrive frequently (see, for example, Patent Document 1).

特開2009−17439JP2009-17439

フォワーディング情報を記憶するための高速アクセス可能なメモリとしてCAMやクロック同期型のSRAMなどがあるが容量が小さく消費電流が大きい、このため大容量が必要な場合にはDRAMの利用が一般的であるがDRAMアクセスにはコマンド入力からデータ転送が開始するまでのレイテンシーとデータ転送後のプリチャージ期間が必要でデータの転送効率が低いという課題がある。   There are high-speed accessible memories for storing forwarding information, such as CAM and clock-synchronized SRAM, but they have a small capacity and a large current consumption. Therefore, when large capacity is required, DRAM is generally used. However, DRAM access has a problem that the latency from the command input to the start of data transfer and the precharge period after the data transfer are required, and the data transfer efficiency is low.

上記課題を解決するために、本発明の一態様によるパケット転送装置は、パケットの入出力インタフェースである入出力ポートと、パケットのフォワーディングに関わる処理を行うパケット処理ブロックと、フォワーディングに関する各種フォワーディング情報を格納するDRAMとで構成され。パケット処理ブロックは、フォワーディングに関連するフィールドを抽出するフィールド抽出部と、抽出したフィールドから該パケットに関連するフォワーディング情報が格納されているアドレスを算出するインデックス計算部と、パケットがいずれの物理ポートから入力したかを抽出する、物理回線番号抽出部と、DRAMへのリード及びライト及びリフレッシュを実施するDRAMアクセス部と、前記DRAMアクセス部へのフォワーディング情報の書き込み及び、メンテナンスを実施する制御部と、パケットのフォワーディング処理を実施するフォワーディング部と、前記DRAMアクセス部内部に、物理回線からDRAM内BANKアドレスに割り当てるBANKマッピング部と、パケットから抽出したフィールドからDRAMアドレスに割り当てるアドレスマッピング部と、フォワーディング情報のライト及びリードデータの一時保管を行うデータ入出力部とを備えたことを特徴とする。パケット転送装置が入力したパケットをフォワーディング処理するために、関連するフォワーディング情報へのリードアクセスは、パケットが入力した物理ポート毎にあらかじめ固定的に割り当てたDRAM内のBANKに対し
て時分割にて実行することにより、DRAMからのリード動作に伴う遅延要因を排除することを特徴とする。
In order to solve the above problems, a packet transfer apparatus according to an aspect of the present invention includes an input / output port that is an input / output interface of a packet, a packet processing block that performs processing related to packet forwarding, and various forwarding information related to forwarding. It consists of DRAM to store. The packet processing block includes a field extraction unit that extracts a field related to forwarding, an index calculation unit that calculates an address in which forwarding information related to the packet is stored from the extracted field, and a packet from which physical port A physical line number extraction unit that extracts whether the input has been performed; a DRAM access unit that performs reading, writing, and refreshing to the DRAM; a control unit that performs writing and maintenance of forwarding information to the DRAM access unit; A forwarding unit that performs packet forwarding processing, a BANK mapping unit that allocates a physical address from a physical line to a BANK address in the DRAM, and a DRAM address from a field extracted from the packet. An address mapping unit that allocates the scan, characterized by comprising a data input-output unit for performing temporary storage of the write and read data forwarding information. In order to process the packet input by the packet transfer device, read access to the related forwarding information is executed in a time-sharing manner for the BANK in the DRAM fixedly allocated in advance for each physical port input by the packet. Thus, the delay factor associated with the read operation from the DRAM is eliminated.

フォワーディングに必要なキャッシュ情報の記憶装置をDRAMメモリで構成し、入力物理ポートをDRAMのBANKに割り振ることで前述のフォワーディング情報をリードするためのデータ転送効率を確保するためのDRAMアクセス手段を提供し、パケット処理速度の向上を実現する   A DRAM access means for ensuring the data transfer efficiency for reading the aforementioned forwarding information by configuring the storage device of the cache information necessary for forwarding with DRAM memory and allocating the input physical port to the BANK of the DRAM is provided. , Improve packet processing speed

本実施形態のパケット転送装置の構成を示す機能ブロック図Functional block diagram showing the configuration of the packet transfer apparatus of the present embodiment 従来のDRAMバースト・リード・アクセスのタイミングを示す。The timing of conventional DRAM burst read access is shown. 基本的な1RANK DIMM構成におけるBANKインタリーブのアクセスタイミングを示す。The access timing of BANK interleaving in a basic 1RANK DIMM configuration is shown. 同実施形態における2RANK DIMM構成におけるアクセスタイミングを示す。The access timing in 2RANK DIMM structure in the embodiment is shown. 本発明における物理ポートとBANKインタリーブへの割り振りを示すブロック図。The block diagram which shows the allocation to the physical port and BANK interleave in this invention. 1GBitレートのイーサネットにおける最小パケット受信周期における本発明のメモリサイクル構成を示すブロック図。The block diagram which shows the memory cycle structure of this invention in the minimum packet receiving period in Ethernet of 1GBit rate. 1GBitレートのイーサネットにおける最小パケット受信周期を示すブロック図。The block diagram which shows the minimum packet receiving period in Ethernet of 1GBit rate.

図1は本実施形態のパケット転送装置の構成を示す機能ブロック図である。パケット転送装置20は、入出力ポート1と、パケット処理ブロック2と、DRAM3で構成され。パケット処理ブロック2は、フィールド抽出部10と、インデックス計算部11と、物理回線番号抽出部12と、DRAMアクセス部13と、制御部16と、フォワーディング部15と、前記DRAMアクセス部内部に、BANKマッピング部13―1と、アドレスマッピング部13―2と、データ入出力部13―3と、を備える。   FIG. 1 is a functional block diagram showing the configuration of the packet transfer apparatus of this embodiment. The packet transfer device 20 includes an input / output port 1, a packet processing block 2, and a DRAM 3. The packet processing block 2 includes a field extraction unit 10, an index calculation unit 11, a physical line number extraction unit 12, a DRAM access unit 13, a control unit 16, a forwarding unit 15, and a BANK inside the DRAM access unit. A mapping unit 13-1, an address mapping unit 13-2, and a data input / output unit 13-3 are provided.

DRAM3はパケットの転送に必要な情報であるフォワーディング情報を保管している。フォワーディング情報の種類としては、ポートに関する情報を記憶するポートデータベース、イーサネット(登録商標)アドレスを記憶するフォワーディング・データベース(Forwarding DataBase,FDB)、バーチャル・ローカル・エリア・ネットワーク(Virtual Local Area Network,VLAN)の情報を記憶するバーチャル・ローカル・エリア・ネットワーク・テーブル、ポートとバーチャル・ローカル・エリア・ネットワークをキーとして検索される情報を記憶するポート・バーチャル・ローカル・エリア・ネットワーク・テーブル、パケット転送のサービスレベルの情報を記憶するクオリティ・オブ・サービス(Quality of Service,QoS)パラメータなどがある。また、DRAM3は複数のフォワーディング情報エントリを有する。これらの情報は64Byte、128Byteといった一定のデータByteを基本としたバウンダリーでDRAM3に記録されている。   The DRAM 3 stores forwarding information that is information necessary for packet transfer. Types of forwarding information include a port database that stores information related to ports, a forwarding database that stores Ethernet (registered trademark) addresses (Forwarding DataBase, FDB), and a virtual local area network (VLAN). Virtual local area network table that stores information on the port, port virtual local area network table that stores information retrieved using the port and virtual local area network as a key, packet forwarding service Quality of Service (QoS) parameters that store level information . The DRAM 3 has a plurality of forwarding information entries. These pieces of information are recorded in the DRAM 3 in a boundary based on certain data bytes such as 64 bytes and 128 bytes.

フィールド抽出部10は、入出力ポート部1にて受信した転送対象のパケットに含まれるフォワーディングに関連するフィールドを抽出する。フォワーディングに関連するフィールドはパケットの一部分(ヘッダ)の中に含まれ、ソースアドレス、デスティネーションアドレス、クオリティ・オブ・サービス(Quality of Service,QoS)等を含んだ制御情報の一部である。インデックス計算部11はフィールド抽出部10で抽出したフォワーディングに関連するフィールドのハッシュ値を計算し、計算したハ
ッシュ値に基づいてインデックスを計算し、インデックス値をDRAMアクセス部13内のアドレスマッピング部13―2に通知する。物理番号抽出部12は、入出力ポートの物理的番号を、受信したパケットより抽出し、DRAMアクセス部13内のBANKマッピング部13―1に通知する。DRAMアクセス部13は、前記BANKマッピング部13―1と、前記アドレスマッピング部13―2と、データ入出力部13―3で構成され、受信パケットに含まれるフォワーディングに関するフィールド及び、物理回線番号に基づくDRAMアドレス情報を生成し、DRAM3のデータ情報をデータ入出力部13―3にて入力及び出力する。ここで入力とは、DRAM3からのリードデータを示し、出力とは、DRAM3へのライトデータを示す。DRAM3は、フォワーディング情報エントリを記憶しており、前記アドレス情報に基づき前記フォワーディング情報をデータ入出力部13―3に対し出力する。フォワーディング部15は、入出力ポート1から受信したパケットに対し、DRAMアクセス部13にて参照したフォワーディング情報に基づき、加工を行い、フォワーディング情報に基づいた指定の入出力ポート1に対し、パケットの転送を行う機能を有する。
The field extraction unit 10 extracts a field related to forwarding included in the transfer target packet received by the input / output port unit 1. A field related to forwarding is included in a part (header) of a packet, and is a part of control information including a source address, a destination address, quality of service (QoS), and the like. The index calculation unit 11 calculates a hash value of a field related to forwarding extracted by the field extraction unit 10, calculates an index based on the calculated hash value, and converts the index value into an address mapping unit 13-in the DRAM access unit 13. 2 is notified. The physical number extraction unit 12 extracts the physical number of the input / output port from the received packet and notifies the BANK mapping unit 13-1 in the DRAM access unit 13. The DRAM access unit 13 includes the BANK mapping unit 13-1, the address mapping unit 13-2, and the data input / output unit 13-3, and is based on a field related to forwarding included in a received packet and a physical line number. DRAM address information is generated, and data information of the DRAM 3 is input and output by the data input / output unit 13-3. Here, the input indicates read data from the DRAM 3 and the output indicates write data to the DRAM 3. The DRAM 3 stores forwarding information entries, and outputs the forwarding information to the data input / output unit 13-3 based on the address information. The forwarding unit 15 processes the packet received from the input / output port 1 based on the forwarding information referred to by the DRAM access unit 13 and transfers the packet to the designated input / output port 1 based on the forwarding information. It has a function to perform.

制御部16は、CPUからDRAMアクセス部13を制御する際の制御モジュールであり、DRAM3内にフォワーディング情報エントリを記憶したり、フォワーディング情報のメンテナンスに関する機能を有する。   The control unit 16 is a control module for controlling the DRAM access unit 13 from the CPU, and has a function related to storing forwarding information entries in the DRAM 3 and maintenance of forwarding information.

DRAMアクセス部13における発明の実施形態を説明する。尚、DRAM3はDIMMでの実装形態とする。DRAMおよびDIMMは一般的なデバイスであるためデバイスアクセスにおける基本的な事項は既知のものとして省略する。またDIMMに関してはレジスタードDIMMを元に実施形態の説明を行う。さらに本発明の説明に際してはDDR2 800(動作周波数400MHz)の64ビットサイズのレジスタードDIMMを例に行う。
図2は従来のDRAMにおけるバーストリードのタイミングである。ここで、DRAMはメモリ動作クロックCK100に同期した動作となる。クロックタイミング100−1の立ち上がりでBANKアクティブコマンド101−1によりBANKをアクティブにした後、tRCD=6CK104の後にリードコマンド101−2が実行されることでリードコマンド入力からリードデータ出力までのCL(キャスレイテンシー)=6CK+1CK106の後にリードデータがDIMMから出力される。DRAMにはAL(アディティブ・レイテンシー)といわれる機能がある。これはメモリの内部ではtRCD時間104の後に実行されるコマンドに対して、これを待たずにコマンドを発行することが可能な機能である。図2においてはAL=4 103でリードコマンドを発行するタイミングとして記載している。アクティブになったBANKメモリからデータ102−1を読み出した後、tRAS=18CK105後にBANKがプリチャージ101−3され、プリチャージ完了のためtRP=6CK109の時間待って次のBANKアクティブ101−4が可能となる。リードデータ102−1はバーストアクセス(最大8サイクル)が基本単位である。アクティブとしたBANKのページ範囲内であればリードコマンドおよびアドレスを連続的に入力することで、連続してデータの読み出しが可能となる。この連続したデータ読み出しは、バーストリードとしてDRAMに備わった機構である。
An embodiment of the invention in the DRAM access unit 13 will be described. Note that the DRAM 3 is mounted in a DIMM. Since DRAMs and DIMMs are general devices, basic items in device access are omitted as known ones. Regarding the DIMM, the embodiment will be described based on the registered DIMM. Further, in the description of the present invention, a DDR2 800 (operating frequency 400 MHz) 64-bit size registered DIMM is taken as an example.
FIG. 2 shows the timing of burst read in a conventional DRAM. Here, the DRAM operates in synchronization with the memory operation clock CK100. After BANK is activated by the BANK active command 101-1 at the rising edge of the clock timing 100-1, CL (cass) from the read command input to the read data output is executed by executing the read command 101-2 after tRCD = 6CK104. Read data is output from the DIMM after (latency) = 6CK + 1CK106. The DRAM has a function called AL (additive latency). This is a function capable of issuing a command without waiting for a command executed after the tRCD time 104 in the memory. In FIG. 2, the timing for issuing a read command with AL = 4 103 is shown. After reading the data 102-1 from the activated BANK memory, BANK is precharged 101-3 after tRAS = 18CK105, and the next BANK active 101-4 is possible after waiting for tRP = 6CK109 to complete the precharge. It becomes. The basic unit of the read data 102-1 is burst access (maximum 8 cycles). If the read command and address are continuously input within the active BANK page range, data can be read continuously. This continuous data reading is a mechanism provided in the DRAM as a burst read.

前記バーストリードを実施することで、DRAMからのフォワーディング情報リード時間の短縮が可能となったが、BANKアクティブから新たにアクティブ可能となるまでの時間=24CK108が必要となることから、リードデータ102−1に必要な転送時間4CKは基本サイクルの24CK数に対して16.6%のデータ転送比率となる。   By performing the burst read, the forwarding information read time from the DRAM can be shortened. However, since the time from the BANK active to the newly active becomes = 24CK108, the read data 102− The transfer time 4CK required for 1 is a data transfer ratio of 16.6% with respect to the number of 24CK in the basic cycle.

図3はDRAMのBANKインタリーブにおけるバーストリードのタイミングである。分割構成されたメモリの各BANKを連続的にアクティブにすることで各BANKからのデータを連続させる、データ転送比率を上げるための一般的な手法である。AL=4 1
03の機能を使用してBANK0からBANK3までを連続してアクティブにしリードコマンドを発生する(111−1から111−7)。この際連続するBANKアクティブの入力はtRRD=6CK113の時間制約を受ける。BANKインタリーブでの連続アクセスにおいては出力されるデータは連続したバイト列(116から119)になる。この場合、データの転送終了を待たずにBANK3アクティブ111−7からtFAW=14CK115時間後にBANK0アクティブ111−9を110−4のCKタイミングで入力可能になる。尚、この場合BANK0のプリチャージに必要な時間tRAS=18CK105およびtRP=6CK109はtFAW=14CK115のタイミング制約時間に含まれる。図3においてBANKインタリーブした場合の4BANK分のデータ転送時間は16CKとなりCK110−5のデータ転送完了までの29CKに対してリードデータの転送比率は55%に上がる。
FIG. 3 shows the burst read timing in the BANK interleaving of the DRAM. This is a general method for increasing the data transfer ratio in which data from each BANK is made continuous by continuously activating each BANK of the memory configured in a divided manner. AL = 4 1
Using the function 03, BANK0 to BANK3 are activated continuously to generate a read command (111-1 to 111-7). At this time, continuous BANK active inputs are subject to the time constraint of tRRD = 6CK113. In continuous access with BANK interleave, the output data is a continuous byte string (116 to 119). In this case, BANK0 active 111-9 can be input at a CK timing of 110-4 after tFAW = 14CK115 hours from BANK3 active 111-7 without waiting for completion of data transfer. In this case, the time tRAS = 18CK105 and tRP = 6CK109 necessary for precharging BANK0 are included in the timing constraint time of tFAW = 14CK115. In FIG. 3, the data transfer time for 4 BANKs when BANK interleaving is 16 CK, and the read data transfer rate increases to 55% with respect to 29 CK until the completion of the data transfer of CK110-5.

図4は本発明における2RANK DIMMの構成でのBANKインタリーブのアクセスタイミングを示す。本構成の場合はRANK1のバーストリード中(133−1から
133−4)にRANK2のBANKアクティブおよびリードコマンド(132−1から
132−4)を発行することでデータリードをRANKの切り替えのため1CK(140
および141)を追加するのみでバーストリードのサイクルを連続されることが可能になる。
本発明における2RANK DIMMの場合は、信号線をバス共有するDIMMの構成を生かしてメモリに書き込むフォワーディング情報はRANK1、RANK2の各メモリデバイスに同時に実施し2重に書き込みを行い、リードサイクルをRANKで分離することで連続したBANKアクセスを実現する。この場合の基本リードサイクル=47CK137におけるデータ転送時間は34CK139となり47CKに対して72%にデータ転送比率が上がる。またリードサイクルの開始13CKの後は連続したデータリードサイクルとしてBANKアクセスが可能となる。RANK毎のtRP=6CK109やtFAW=14CK115はRANKをまたぐことで必要な時間を稼ぐことが可能となりこの時間対応をタイミング設計上無視できる。
FIG. 4 shows the access timing of BANK interleaving in the 2RANK DIMM configuration according to the present invention. In the case of this configuration, by issuing a BANK active and read command (132-1 to 132-4) of RANK2 during a burst read of RANK1 (133-1 to 133-4), 1CK is used to switch the data read to RANK. (140
And 141) can be added to enable continuous burst read cycles.
In the case of the 2RANK DIMM in the present invention, the forwarding information to be written to the memory by making use of the configuration of the DIMM sharing the signal line on the bus is simultaneously written in each of the memory devices RANK1 and RANK2, and the read cycle is performed by RANK. Separation enables continuous BANK access. In this case, the data transfer time in the basic read cycle = 47CK137 is 34CK139, and the data transfer ratio increases to 72% with respect to 47CK. In addition, after the start 13CK of the read cycle, BANK access becomes possible as a continuous data read cycle. TRP = 6CK109 and tFAW = 14CK115 for each RANK can earn necessary time by straddling RANK, and this time correspondence can be ignored in the timing design.

前記の通り、DRAMのBANKインタリーブアクセスを利用することでDRAMのデータ転送比率を向上させることが可能になるが、各物理ポートからの受信パケットに含まれるフィールドから計算されるDRAMアドレスは固有の値を示すためBANKインタリーブの連続アクセスに単純には置き換えられないため図2に示すタイミングが割り込みデータの転送比率を阻害する。   As described above, it is possible to improve the data transfer ratio of the DRAM by using the BANK interleave access of the DRAM, but the DRAM address calculated from the field included in the received packet from each physical port has a unique value. 2 cannot be simply replaced with BANK interleaved continuous access, and the timing shown in FIG. 2 hinders the transfer ratio of interrupt data.

これを解決し受信パケットのフォワーディング情報のDRAM読み出しサイクルが固定化されたBANKインタリーブアクセスとするために、本案では物理ポートより受信された1パケット分のフォワーディング情報をDRAMの1バーストアクセス内に格納するこ
とで1パケットのフォワーディングに必要な情報をBANKの1バーストアクセス(最大8サイクル)でDRAMより読み出す。さらに物理ポートをDRAMに分割構成されたBANKに連続的かつ固定的に割り当てることで、物理ポートに対応したフォワーディング情報のDRAM読み出しのサイクルが時分割的に固定化されたBANKインタリーブによる連続バーストアクセスに置き換えることが可能になる。これによって図3または図4に示すサイクルの連続したタイミングとしてDRAMのタイミングを設計することが実現可能となる。
In order to solve this problem and to make BANK interleave access in which the DRAM read cycle of the forwarding information of the received packet is fixed, in this proposal, forwarding information for one packet received from the physical port is stored in one burst access of the DRAM. As a result, information necessary for forwarding one packet is read from the DRAM by one burst access (maximum 8 cycles) of BANK. Furthermore, by assigning the physical port continuously and fixedly to the BANK divided into DRAMs, the DRAM read cycle of forwarding information corresponding to the physical port is fixed to the continuous burst access by the BANK interleave in which the time division is fixed. It can be replaced. This makes it possible to design the DRAM timing as the continuous timing of the cycle shown in FIG.

図5は本発明におけるBANKインタリーブにおけるアクセス方法を示すブロック図である。複数で構成される入力物理ポート140を連続したメモリBANK141にマッピングすることで図4に示したBANKインタリーブによるフォワーディング情報の読み出しを行う構成が取れる。DRAM3に記憶されているフォワーディング情報は各物理ポート(140−1から140−8)より物理回線番号抽出部12およびBANKマッピング
部13−1でBANK決定され、受信パケットに含まれるアドレス情報をインデックス計算部11およびアドレスマッピング部13−2においてBANK内のアドレスにマッピングする。
FIG. 5 is a block diagram showing an access method in BANK interleaving according to the present invention. By mapping a plurality of input physical ports 140 to continuous memory BANK 141, it is possible to read forwarding information by BANK interleaving shown in FIG. The forwarding information stored in the DRAM 3 is determined by the physical line number extraction unit 12 and the BANK mapping unit 13-1 from each physical port (140-1 to 140-8), and the address information included in the received packet is indexed. The unit 11 and the address mapping unit 13-2 perform mapping to the address in BANK.

本発明は物理ポート単位でシーケンシャルなBANKアクセスを繰り返すことで、結果的に受信パケットのフォワーディングに必要なバーストリードサイズのバウンダリーにキャッシュ化されたフォワーディング情報を物理ポート順に時分割されたBANKリードサイクルを提供することでメモリの高速化アクセスを実現する。   The present invention repeats sequential BANK access in units of physical ports, resulting in a BANK read cycle in which forwarding information cached in a burst read size boundary necessary for forwarding received packets is time-divided in the order of physical ports. By providing this, high-speed access to the memory is realized.

本発明においてはフォワーディング情報の書き込みは装置起動時の初期設定および初期設定外の新規パケット受信の際に実施され、また即時性を伴わない。さらにDRAMのリフレッシュは一般的に78μSに1回発生するタイミングになる。図7は1GBitレー
トの物理ポートにおける最小パケット周期における本発明実施時の収容可能な物理ポート数を試算した図である。DRAMのリード開始に伴うBANKアクティブのコマンドを発生してからリードデータ転送の開始までの13CK148およびリード終了後にリフレッシュまたはメモリ書き込みの期間150を差し引いた時間149をメモリリードに割り当てている。
図6に示すとおり1GBitレートの最小受信パケットサイズ143はイーサネットパケットを例として84Byte=672Bit=672nSとなる。動作周波数400M
HzのDDR2DRAMのクロック周期2.5nSでは図7の268.8CK147とな
る。バーストリードに割り当てる時間は170CK149となり図4におけるBANKインタリーブ時のRANK1およびRANK2の連続データリードサイクル=34CK139として170CK分、すなわち5サイクル分の連続データリードサイクルが実現可能となる。物理ポート数として40ポートに対応できる計算になる。
この場合のリードに関るデータ転送時間はデータ転送期間170CKからRANK間のデータ切り替え1CK(140および141)分を差し引き160CKとなり、これは13CK148と170CK149の総和183CKに対して87%のデータ転送比率になる。
In the present invention, writing of forwarding information is performed at the time of initial setting at the time of starting the apparatus and at the time of receiving a new packet outside the initial setting, and is not accompanied by immediacy. Further, the DRAM refresh is generally performed once every 78 μS. FIG. 7 is a diagram showing a trial calculation of the number of physical ports that can be accommodated at the time of implementation of the present invention in the minimum packet cycle of a physical port of 1 Gbit rate. A memory read is assigned a time 149 obtained by subtracting a refresh or memory write period 150 after the end of reading and 13CK148 from the generation of a BANK active command accompanying the start of reading of the DRAM to the start of read data transfer.
As shown in FIG. 6, the minimum received packet size 143 at the 1 Gbit rate is 84 bytes = 672 bits = 672 nS by taking an Ethernet packet as an example. Operating frequency 400M
In the DDR2 DRAM clock period of 2.5 nS, 268.8CK147 of FIG. 7 is obtained. The time allocated to burst read is 170CK149, and the continuous data read cycle of RANK1 and RANK2 at the time of BANK interleaving in FIG. The calculation can handle 40 ports as the number of physical ports.
In this case, the data transfer time related to the read is 160CK by subtracting 1CK (140 and 141) of data switching between the data transfer period 170CK and RANK, which is a data transfer ratio of 87% with respect to the total 183CK of 13CK148 and 170CK149. become.

1 : 入出力ポート
2 : パケット処理ブロック
3 : DRAM
10: フィールド抽出部
11: インデックス計算部
12: 物理回線番号抽出部
13: DRAMアクセス部
13−1: BANKマッピング部
13−2: アドレスマッピング部
13−3: データ入出力部
15: フォワーディング部
16: 制御部
20: パケット転送装置
100: DRAM動作クロック
100−1: ACT入力タイミング
100−2: READ入力タイミング
100−3: READ実行タイミング
100−4: Precharge(プリチャージ実行タイミング)
100−5: ACT入力タイミング(プリチャージ実行後)
101: コマンド
101−1: ACT(BANK アクティブコマンド)
101−2: READ(リードコマンド)
102: データ
102−1: バーストデータ出力
103: AL(アディティブレイテンシー)
104: tRCD=6CK
105: tRAS=18CK
106: CL=6CK+1CK
107: BANKアクティブからデータ出力までの時間=tRCD+CL+1CK=
13CK
108: BANKアクティブから新たにBANKアクティブ可能となるまでの時間=24
CK
109: tRP=6CK
110: DRAM動作クロック
111: コマンド
111−1: BANK0 ACTコマンド
111−2: BANK0 READコマンド
111−3: BANK1 ACTコマンド
111−4: BANK1 READコマンド
111−5: BANK2 ACTコマンド
111−6: BANK2 READコマンド
111−7: BANK3 ACTコマンド
111−8: BANK3 READコマンド
111−9: BANK0 ACTコマンド
112: データ
114: 基本リードサイクル=29CK
115: tFAW=14CK
116: BANK0 リードデータ 4CK
117: BANK1 リードデータ 4CK
118: BANK2 リードデータ 4CK
119: BANK3 リードデータ 4CK
120: BANK0 リードデータ
121: 10CK
122: 13CK
130: DRAM動作クロック
130−1: RANK1 BANK0 ACTコマンド入力タイミング
130−2: RANK1 BANK1 ACTコマンド入力タイミング
130−3: RANK2 BANK0 ACTコマンド入力タイミング
130−4: RANK1 BANK0 ACTコマンド入力タイミング
130−5: RANK1 BANK0 リードデータ出力タイミング
131: RANK1コマンド
131−1: RANK1 BANK0 ACTおよびREADコマンド
131−2: RANK1 BANK1 ACTおよびREADコマンド
131−3: RANK1 BANK2 ACTおよびREADコマンド
131−4: RANK1 BANK3 ACTおよびREADコマンド
132: RANK2コマンド
131−1: RANK2 BANK0 ACTおよびREADコマンド
131−2: RANK2 BANK1 ACTおよびREADコマンド
131−3: RANK2 BANK2 ACTおよびREADコマンド
131−4: RANK2 BANK3 ACTおよびREADコマンド

133: RANK1データ
133−1: RANK1 BANK0 リードデータ
133−2: RANK1 BANK1 リードデータ
133−3: RANK1 BANK2 リードデータ
133−4: RANK1 BANK3 リードデータ
133−5: RANK1 BANK0 リードデータ
134: RANK2データ
134−1: RANK2 BANK0 リードデータ
134−2: RANK2 BANK3 リードデータ
137: 基本リードサイクル=47CK
139: RANK1およびRANK2の連続データリードサイクル=34CK
140: 1CK
141: 1CK
143: 84Byte=672BIT (672nS 1Gbit/S換算)
144: プリアンブル+SFD(8Byte)
145: 最小パケット(64Byte)
146: フレーム間ギャップ(12Byte)
147: 1パケット間隔 672nS=268.8CK (CK=400MHz=2.5
nS)
148: 1STコマンド発生からリードデータ発生まで 13CK
149: 2RANK構成でのBANKインターリーブバーストリードサイクル
34CK(8Port分)x5サイクル=170CK
149−1: BANK0物理ポート1 バーストアクセス
150: リフレッシュまたはランダムなBANKへのバーストライトサイクル
1: I / O port 2: Packet processing block 3: DRAM
10: Field extraction unit 11: Index calculation unit 12: Physical line number extraction unit 13: DRAM access unit 13-1: BANK mapping unit 13-2: Address mapping unit 13-3: Data input / output unit 15: Forwarding unit 16: Control unit 20: Packet transfer device 100: DRAM operation clock 100-1: ACT input timing 100-2: READ input timing 100-3: READ execution timing 100-4: Precharge (precharge execution timing)
100-5: ACT input timing (after precharge execution)
101: Command 101-1: ACT (BANK active command)
101-2: READ (read command)
102: Data 102-1: Burst data output 103: AL (additive latency)
104: tRCD = 6CK
105: tRAS = 18CK
106: CL = 6CK + 1CK
107: Time from BANK active to data output = tRCD + CL + 1CK =
13CK
108: Time from BANK active until new BANK active becomes possible = 24
CK
109: tRP = 6CK
110: DRAM operation clock 111: Command 111-1: BANK0 ACT command 111-2: BANK0 READ command 111-3: BANK1 ACT command 111-4: BANK1 READ command 111-5: BANK2 ACT command 111-6: BANK2 READ command 111-7: BANK3 ACT command 111-8: BANK3 READ command 111-9: BANK0 ACT command 112: Data 114: Basic read cycle = 29 CK
115: tFAW = 14CK
116: BANK0 read data 4CK
117: BANK1 read data 4CK
118: BANK2 read data 4CK
119: BANK3 read data 4CK
120: BANK0 read data 121: 10CK
122: 13CK
130: DRAM operation clock 130-1: RANK1 BANK0 ACT command input timing 130-2: RANK1 BANK1 ACT command input timing 130-3: RANK2 BANK0 ACT command input timing 130-4: RANK1 BANK0 ACT command input timing 130-5: RANK1 BANK0 read data output timing 131: RANK1 command 131-1: RANK1 BANK0 ACT and READ command 131-2: RANK1 BANK1 ACT and READ command 131-3: RANK1 BANK2 ACT and READ command 131-4: RANK1 BANK3 ACT and READ command 132 : RANK2 command 131-1: RANK2 BA K0 ACT and READ command 131-2: RANK2 BANK1 ACT and READ command 131-3: RANK2 BANK2 ACT and READ command 131-4: RANK2 BANK3 ACT and READ command

133: RANK1 data 133-1. RANK1 BANK0 read data 133-2: RANK1 BANK1 read data 133-3: RANK1 BANK2 read data 133-4: RANK1 BANK3 read data 133-5: RANK1 BANK0 read data 134: RANK2 data 134- 1: RANK2 BANK0 Read data 134-2: RANK2 BANK3 Read data 137: Basic read cycle = 47CK
139: RANK1 and RANK2 continuous data read cycle = 34CK
140: 1CK
141: 1CK
143: 84 Byte = 672 BIT (672 nS 1 Gbit / S conversion)
144: Preamble + SFD (8 bytes)
145: Minimum packet (64 bytes)
146: Inter-frame gap (12 bytes)
147: 1 packet interval 672nS = 268.8CK (CK = 400MHz = 2.5
nS)
148: From 1ST command generation to read data generation 13CK
149: BANK interleaved burst read cycle in 2RANK configuration
34CK (8 Port min) x 5 cycles = 170CK
149-1: BANK0 physical port 1 Burst access 150: Refresh or random burst write cycle to BANK

Claims (6)

パケットの入出力インタフェースである入出力ポートと、前記パケットのフォワーディングに関わる処理を行うパケット処理ブロックと、前記フォワーディングに関する各種フォワーディング情報を格納するDRAMとで構成され、
前記パケット処理ブロックは、前記フォワーディングに関連するフィールドを抽出するフィールド抽出部と、
抽出した前記フィールドから前記パケットに関連する前記フォワーディング情報が格納されているアドレスを算出するインデックス計算部と、
前記パケットがいずれの物理ポートから入力したかを抽出する、物理回線番号抽出部と、
前記DRAMへのリード及びライト及びリフレッシュを実施するDRAMアクセス部と、
前記DRAMアクセス部への前記フォワーディング情報の書き込み及び、メンテナンスを実施する制御部と、
前記パケットの前記フォワーディング処理を実施するフォワーディング部と、
前記DRAMアクセス部内部に、前記物理ポートから前記DRAM内BANKアドレスに割り当てるBANKマッピング部と、
前記パケットから抽出した前記フィールドからDRAMアドレスに割り当てるアドレスマッピング部と、
前記フォワーディング情報のライト及びリードデータの一時保管を行うデータ入出力部と、
を備えたことを特徴とするパケット転送装置。
An input / output port that is an input / output interface of a packet, a packet processing block that performs processing related to forwarding of the packet, and a DRAM that stores various forwarding information related to the forwarding,
The packet processing block includes a field extraction unit that extracts a field related to the forwarding;
An index calculator that calculates an address in which the forwarding information related to the packet is stored from the extracted field;
A physical line number extraction unit for extracting from which physical port the packet is input;
A DRAM access unit for performing read, write, and refresh on the DRAM;
Writing the forwarding information to the DRAM access unit, and a control unit for performing maintenance;
A forwarding unit that performs the forwarding process of the packet;
A BANK mapping unit for assigning a BANK address in the DRAM from the physical port in the DRAM access unit;
An address mapping unit that assigns a DRAM address from the field extracted from the packet;
A data input / output unit for temporarily writing the forwarding information and storing read data;
A packet transfer apparatus comprising:
パケットの入出力インタフェースである入出力ポートと、前記パケットのフォワーディングに関わる処理を行うパケット処理ブロックと、前記フォワーディングに関する各種フォワーディング情報を格納するDRAMとを備えたパケット転送方法であって、
前記フォワーディングに関連するフィールドを前記パケットから抽出するフィールド抽出ステップと、
前記フィールドから前記パケットに関連する前記フォワーディング情報が格納されているアドレスを算出するインデックス計算ステップと、
前記パケットがいずれの物理ポートから入力したかを抽出する物理回線番号抽出ステップと、
前記物理回線抽出ステップにて抽出した前記パケットの前記物理ポート番号を前記DRAMのBANKアドレスに割り当てるステップと、
前記BANKアドレスを巡回並列的に出力するステップと、
前記インデックス計算ステップにて前記フォワーディング情報が格納されている前記アドレスを出力するステップと、
前記BANKアドレスと前記フォワーディング情報が格納されているアドレスから、前記パケットに関する前記フォワーディング情報のリードを行うステップと、
前記DRAMからリードした前記フォワーディング情報から、前記パケットの前記フォワーディング処理を行うステップと、
を備えたことを特徴とするパケット転送方法。
A packet transfer method comprising: an input / output port that is an input / output interface of a packet; a packet processing block that performs processing related to forwarding of the packet; and a DRAM that stores various forwarding information related to the forwarding;
A field extraction step for extracting fields related to the forwarding from the packet;
An index calculating step for calculating an address in which the forwarding information related to the packet is stored from the field;
A physical line number extracting step for extracting from which physical port the packet is input;
Assigning the physical port number of the packet extracted in the physical line extraction step to a BANK address of the DRAM;
Outputting the BANK address cyclically in parallel;
Outputting the address where the forwarding information is stored in the index calculation step;
Reading the forwarding information about the packet from the BANK address and the address where the forwarding information is stored;
Performing the forwarding process of the packet from the forwarding information read from the DRAM;
A packet transfer method comprising:
パケットの入出力インタフェースである入出力ポートの物理番号を、前記パケットのフォワーディング情報が格納されているDRAMのBANKアドレスに固定的に割り当てるステップと、
DRAMのBANKアクセスを巡回並列的にインタリーブ処理するステップと、
を備えたことを特徴とする請求項2に記載のパケット転送方法。
Fixedly assigning a physical number of an input / output port, which is an input / output interface of a packet, to a BANK address of a DRAM storing forwarding information of the packet;
Interleaving the BANK access of DRAM in a cyclic parallel manner;
The packet transfer method according to claim 2, further comprising:
パケットのフォワーディング処理に必要なフォワーディング情報の情報量を固定長にすることで、DRAMの各BANKへのリードサイクル時間を各巡回時に固定化することを特徴とする請求項2に記載のパケット転送方法。   3. The packet transfer method according to claim 2, wherein the read cycle time to each BANK of the DRAM is fixed at each round by fixing the amount of forwarding information necessary for packet forwarding processing to a fixed length. . DRAMのリードサイクルと、DRAMのリフレッシュまたはDRAMのライトサイクルを行うサイクルとを分離したアクセスを特徴とする請求項2に記載のパケット転送方法。   3. The packet transfer method according to claim 2, wherein the DRAM read cycle is separated from a DRAM refresh cycle or a DRAM write cycle. 2RANKのDIMMにおいて書き込みサイクルを2RANKのDRAMに同時に行い、リードアクセスをRANK1、RANK2で分割することを特徴とする請求項2に記載のパケット転送方法。   3. The packet transfer method according to claim 2, wherein a write cycle is simultaneously performed in a 2RANK DRAM in a 2RANK DIMM, and read access is divided by RANK1 and RANK2.
JP2009258414A 2009-11-11 2009-11-11 Packet transfer apparatus and packet transfer method Expired - Fee Related JP5394897B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009258414A JP5394897B2 (en) 2009-11-11 2009-11-11 Packet transfer apparatus and packet transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009258414A JP5394897B2 (en) 2009-11-11 2009-11-11 Packet transfer apparatus and packet transfer method

Publications (2)

Publication Number Publication Date
JP2011103608A true JP2011103608A (en) 2011-05-26
JP5394897B2 JP5394897B2 (en) 2014-01-22

Family

ID=44193747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009258414A Expired - Fee Related JP5394897B2 (en) 2009-11-11 2009-11-11 Packet transfer apparatus and packet transfer method

Country Status (1)

Country Link
JP (1) JP5394897B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780146A (en) * 2022-06-17 2022-07-22 深流微智能科技(深圳)有限公司 Resource address query method, device and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473838B1 (en) * 2000-01-04 2002-10-29 International Business Machines Corporation Data transfer system for multiple network processors using dual DRAM storage
JP2003318947A (en) * 2002-04-23 2003-11-07 Mitsubishi Electric Corp Switch for using multi-layer memory
JP2005051648A (en) * 2003-07-31 2005-02-24 Nippon Telegr & Teleph Corp <Ntt> Table searching apparatus for vpn
JP2009077453A (en) * 2003-04-22 2009-04-09 Agere Systems Inc Method and apparatus for shared multi-bank memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473838B1 (en) * 2000-01-04 2002-10-29 International Business Machines Corporation Data transfer system for multiple network processors using dual DRAM storage
JP2003318947A (en) * 2002-04-23 2003-11-07 Mitsubishi Electric Corp Switch for using multi-layer memory
JP2009077453A (en) * 2003-04-22 2009-04-09 Agere Systems Inc Method and apparatus for shared multi-bank memory
JP2005051648A (en) * 2003-07-31 2005-02-24 Nippon Telegr & Teleph Corp <Ntt> Table searching apparatus for vpn

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780146A (en) * 2022-06-17 2022-07-22 深流微智能科技(深圳)有限公司 Resource address query method, device and system
CN114780146B (en) * 2022-06-17 2022-08-26 深流微智能科技(深圳)有限公司 Resource address query method, device and system

Also Published As

Publication number Publication date
JP5394897B2 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
CN105183662B (en) Storage architecture on a kind of Distributed sharing piece of no cache consistency protocols
TW200949837A (en) Memory systems and methods for controlling the timing of receiving read data
US20050169092A1 (en) Network packet buffer allocation optimization in memory bank systems
JP3678412B2 (en) DRAM data storage and migration for network processors
JP2000242559A (en) Information processor and semiconductor device
KR20210050591A (en) Shared error checking and correction logic for multiple data banks
US7221612B2 (en) SDRAM address mapping optimized for two-dimensional access
TWI298882B (en) Dram and access method
JP5394897B2 (en) Packet transfer apparatus and packet transfer method
JP6468971B2 (en) Semiconductor memory, memory system
JP5348157B2 (en) Information processing apparatus, memory access control apparatus and address generation method thereof
US20040123056A1 (en) Interleaving memory access
EP3627316B1 (en) Real-time data processing and storage apparatus
JP2004295322A (en) Memory access controller
US20100054272A1 (en) Storage device capable of accommodating high-speed network using large-capacity low-speed memory
JP5633562B2 (en) Memory system and memory interface device
US11755235B2 (en) Increasing random access bandwidth of a DDR memory in a counter application
US20150170720A1 (en) Multiple port shared memory
KR100532444B1 (en) Memory device implementing 2N bit prefetch scheme using N bit prefetch structure and 2N bit prefetching method and auto-precharge method
CN114667509A (en) Memory, network equipment and data access method
JP2006215961A (en) Addressing method
JP2019133657A (en) Method for scheduling page size recognition and non-temporary computer readable recording medium
WO2017156747A1 (en) Memory access method and computer system
JP4940894B2 (en) Synchronous memory circuit
WO2023189358A1 (en) Memory control device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130829

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: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131017

R150 Certificate of patent or registration of utility model

Ref document number: 5394897

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees