JP5391449B2 - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP5391449B2
JP5391449B2 JP2009121890A JP2009121890A JP5391449B2 JP 5391449 B2 JP5391449 B2 JP 5391449B2 JP 2009121890 A JP2009121890 A JP 2009121890A JP 2009121890 A JP2009121890 A JP 2009121890A JP 5391449 B2 JP5391449 B2 JP 5391449B2
Authority
JP
Japan
Prior art keywords
data
packet
segments
speed memory
selector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009121890A
Other languages
English (en)
Other versions
JP2010088102A (ja
JP2010088102A5 (ja
Inventor
久 岩本
泰斗 黒田
祐二 矢野
一成 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009121890A priority Critical patent/JP5391449B2/ja
Priority to US12/550,723 priority patent/US20100054272A1/en
Publication of JP2010088102A publication Critical patent/JP2010088102A/ja
Publication of JP2010088102A5 publication Critical patent/JP2010088102A5/ja
Application granted granted Critical
Publication of JP5391449B2 publication Critical patent/JP5391449B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]

Description

本発明は、ルータ、スイッチなどの通信端末で使用される、パケットを一時的に保存する記憶装置に関し、特に、大容量の低速メモリを用いつつネットワークの高速化にも対応可能な記憶装置および記憶装置のコントロール手法に関する。
近年、ネットワークの高速化が進んでおり、ルータ、スイッチなどの通信端末も高速化に対応する必要がある。一般に、ルータやスイッチなどの通信端末においては、転送先を決定するまでデータをメモリなどの記憶装置に一時的に保存しておく必要がある。そのため、ネットワークの高速化に伴ってネットワークプロセッサおよびパケットバッファのデータ転送レートが上がり、パケットバッファとして使用されるメモリの容量もより大きなものが必要となる。たとえば、10GビットErthenetの場合、10Gb/sのデータ転送レートのネットワークプロセッサと、10Gb/sのデータ転送レートおよび2.5Gbの容量を有するパケットバッファとが必要となる。
このように、ネットワークの高速化に対応するためには高速で大容量のメモリが必要になる。しかしながら、高速メモリは高価であるため、高速メモリと低速メモリとの階層化によってネットワークの高速化に対応する技術が開発されている。
階層化されたメモリ制御の一例として、データ書き込み時に高速メモリ(FIFO(First In First Out))に設けられたキューごとにデータを蓄積し、蓄積されたデータが所定量となったときに、データを塊でキューから低速メモリに転送する方法がある。データ読み出し時には、高速メモリの各キューに蓄積されるデータ量が少なくなると低速メモリからデータを塊で読み出し、高速メモリに設けられたキューに転送する。これに関連する技術として、下記の特許文献1〜4に開示された発明がある。
特許文献1に開示された発明は、IPルータなどのパケット転送装置において、ルーティングテーブルの検索を、大規模なエントリに対応して高速かつ経済的に行なうものである。第一のメモリには、ツリーの上段部分を格納し、第二のメモリには、下段部分を格納する。第二のメモリの最上段のノードには、ルートに相当するノードから当該最上段のノードに至る上段部分の経路上のノードの有するアドレス情報を格納する。検索すべき宛先アドレスに基づき、ツリーの上段部分を検索し、この検索結果に基づき、ツリーの下段部分の最上段ノードを検索する。そして、検索すべき宛先アドレスがこの最上位ノードが有するアドレス未満のときには、当該最上位ノードに格納された上段部分の経路上のノードの有するアドレス情報を参照し、当該検索すべき宛先アドレス以下となる最も下流のノードが有するアドレスを次ホップルータのアドレスとして決定する。
特許文献2に開示された発明は、ネットワークハードウェア内のメモリの使用量を抑制しつつ、通信の高速化を図るものである。通信システムのホストコンピュータは、NIC上に仮想的な通信経路の確立時において、コネクションごとに、通信先端末との間の応答時間であるRTTを測定する。その結果、ホストコンピュータは、RTTが所定の閾値より大きいと判定された場合には、ホストコンピュータ内のOS再送バッファへ送信データの格納を開始し、NICに送信データの転送を開始する。また、RTTが所定の閾値より小さいと判定された場合には、NICへ送信データの転送を開始し、その転送された送信データをNIC内のNIC再送バッファに格納させることを開始する。
特許文献3に開示された発明は、バースト通信が起きた場合であっても、固定レート通
信の転送遅延を防止することができるルーティング装置を提供するものである。ルーティング装置のキャッシュメモリを固定レート通信のエントリを登録する領域と、固定レート通信以外の通信のエントリを登録する領域とに分ける。入力データが固定レート通信であるかどうかを判定し、その判定結果に基づいて、各領域を別々に更新する。これにより、バースト通信が発生しても、固定レート通信の領域のエントリは削除されず、固定レート通信のデータを安定的に高速転送することができる。
特許文献4に開示された発明は、再送データが送信バッファの輻輳に起因する遅延を回避できるようにするものである。メディアアクセス制御(MAC)構成がデータブロック再送のための送信待ち時間を短縮する。複数のデータブロックが受信され、一時的に第1のメモリ(例えば、待ち行列、バッファ)に格納される。その後、複数のデータブロックは送信される。送信された各データブロックの受信が成功したか、またはデータブロックの受信が成功しなかったために再送が必要かについて、判定が行われる。送信されたデータブロックのうち再送が必要な各データブロックには標識が付けられ、第1のメモリよりも高い優先順位をもつ第2のメモリに格納される。標識付きのデータブロックは、第1のメモリ位置に格納されたデータブロックを送信する前に再送される。
特開2005−117208号公報 特開2008−005315号公報 特開2007−060514号公報 特開2006−166479号公報
しかしながら、上述の階層化されたメモリ制御においては、キュー数に応じて必要となる高速メモリのサイズが大きくなるため、システムのコストが増加するといった問題があった。このような問題点は、上述の特許文献1〜4に開示された発明を用いたとしても解決することができない。
また、ネットワーク機器に用いられるパケットバッファのようなアプリケーションにおいては、外部から入力されるパケットのデータ量が可変である。そのため、固定長でデータを入出力するためには、それを制御するためのコントローラが必要となり、デバイスが高価になるといった問題もあった。
また、ネットワーク機器に用いられるパケットバッファはFIFO方式であり、入力したパケットを順番に出力するだけであれば、アドレス情報は不要である。ただし、優先順位を設けるためには複数のFIFOの列を設ける必要がある。しかしながら、一般的なパケットバッファにおいては、アドレス情報を格納するメモリとアドレス情報を読み出して出力するための制御回路とがコントローラに設けられるため、デバイスが高価になるといった問題もあった。
また、ネットワーク機器が1つの入力データを複数のパートに出力する場合、その入力データをコピーして出力する必要がある。そのため、同じデータをメモリに複数回書き込む必要があり、外部から入力されるデータをメモリに書き込む時間が少なくなってしまうといった問題があった。また、同じデータをメモリに複数回書き込むため、メモリの空き容量が枯渇する可能性が高くなるといった問題もあった。さらには、アドレス情報を書き込むメモリと、実際のパケットのデータを書き込むメモリとに複数回アクセスする必要があり、消費電力が大きくなるといった問題もあった。
本発明は、上記問題点を解決するためになされたものであり、その目的は、ネットワークの高速化に対応しつつ、高速メモリの容量を削減することが可能な記憶装置を提供することである。
本発明の一実施例によれば、大容量低速メモリに接続され、ネットワークを介して受信したパケットを複数のセグメントに分けて記憶する記憶装置が提供される。記憶装置は、小容量高速メモリと、パケットの最初の所定数のセグメントを小容量高速メモリに書き込み、それ以降のセグメントを大容量低速メモリに書き込むセレクタとを含む。
本発明の別の実施例によれば、大容量低速メモリに接続され、ネットワークを介して受信したパケットを複数のセグメントに分けて記憶する記憶装置が提供される。記憶装置は、小容量高速メモリと、パケットのセグメントを所定数ずつ大容量低速メモリに書き込み、最後の端数のセグメントを小容量高速メモリに書き込むセレクタとを含む。
本発明のさらに別の実施例によれば、大容量低速メモリに接続され、ネットワークを介して受信したパケットを複数のセグメントに分けて記憶する記憶装置が提供される。記憶装置は、小容量高速メモリと、パケットのセグメント数が所定数以上の場合、パケットの所定数のセグメントを大容量低速メモリに書き込んだ後、最後の端数のセグメントをページモードで大容量低速メモリに書き込み、パケットのセグメント数が所定数未満の場合、当該パケットを小容量高速メモリに書き込むセレクタとを含む。
本発明のさらに別の実施例によれば、ネットワークを介して受信したパケットのデータを外部のメモリに記憶する記憶装置が提供される。コマンドコントローラは、ネットワークプロセッサから書き込みコマンドおよびキュー番号を受け、パケットのデータの書き込みを制御する。アドレス生成部は、DRAMまたはSRAMの空きアドレスを取得してメモリ管理部に出力し、コマンドコントローラが受けたキュー番号に対応するポインタの値を更新して空きアドレスにリンクさせる。メモリ管理部は、アドレス生成部から出力された空きアドレスに応じてDRAMまたはSRAMにパケットのデータを書き込む。
本発明の一実施例によれば、パケットの最初の所定数のセグメントを小容量高速メモリに書き込み、それ以降のセグメントを大容量低速メモリに書き込むので、キュー数が増えた場合でも高速メモリの容量を削減することが可能となる。
本発明の別の実施例によれば、パケットのセグメントを所定数ずつ大容量低速メモリに書き込み、最後の端数のセグメントを小容量高速メモリに書き込むので、キュー数が増えた場合でも高速メモリの容量を削減することが可能となる。
本発明のさらに別の実施例によれば、パケットのセグメント数が所定数以上の場合、パケットの所定数のセグメントを大容量低速メモリに書き込んだ後、最後の端数のセグメントをページモードで大容量低速メモリに書き込み、パケットのセグメント数が所定数未満の場合、当該パケットを小容量高速メモリに書き込むので、高速メモリの容量をさらに削減することが可能となる。
本発明のさらに別の実施例によれば、アドレス生成部が、DRAMまたはSRAMの空きアドレスを取得してメモリ管理部に出力し、コマンドコントローラが受けたキュー番号に対応するポインタの値を更新して空きアドレスにリンクさせる。したがって、ネットワークプロセッサはキュー番号のみをコマンドコントローラに出力すればよいため、ネットワークプロセッサによる制御を簡略化することが可能となる。
大容量低速メモリを用いてパケットを蓄積する一般的な通信端末の構成例を示すブロック図である。 図1に示すパケットバッファ(大容量低速メモリ)2にパケットのデータが蓄積されるところを示す図である。 階層化されたメモリを用いてパケットを蓄積する一般的な通信端末の構成例を示すブロック図である。 図3に示す小容量高速メモリ3にパケットのデータが蓄積されるところを示す図である。 本発明の第1の実施の形態における記憶装置を用いた通信端末のデータ転送の概念を説明するための図である。 本発明の第1の実施の形態における記憶装置の概略構成を示すブロック図である。 本発明の第1の実施の形態における記憶装置の構成をさらに詳細に説明するためのブロック図である。 本発明の第1の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。 本発明の第1の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。 本発明の第1の実施の形態における記憶装置を用いた通信端末の一例を示す図である。 本発明の第2の実施の形態における記憶装置を用いた通信端末のデータ転送の概念を説明するための図である。 本発明の第2の実施の形態における記憶装置20の構成例を示すブロック図である。 本発明の第2の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。 本発明の第2の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。 本発明の第3の実施の形態における記憶装置による大容量低速メモリ2からのデータ読み出しの動作を説明するためのタイミングチャートである。 本発明の第3の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。 本発明の第3の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。 本発明の第4の実施の形態における記憶装置の基本的な概念を説明するための図である。 本発明の第4の実施の形態における記憶装置の概略構成を示すブロック図である。 本発明の第4の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。 本発明の第4の実施の形態における記憶装置のパケットのデータの読み出しを説明するためのタイミングチャートである。 キュー#0〜#nと実際のパケットのデータが格納されるメモリとの対応を示す図である。 本発明の第5の実施の形態における記憶装置の基本的な概念を説明するための図である。 本発明の第5の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。 キュー#0〜#nと実際のマルチキャストのパケットのデータが格納されるメモリとの対応を示す図である。 本発明の第6の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。
図1は、大容量低速メモリを用いてパケットを蓄積する一般的な通信端末の構成例を示すブロック図である。この通信端末は、ネットワークプロセッサ1と、大容量低速メモリによって構成されるパケットバッファ2とを含む。
図2は、図1に示すパケットバッファ(大容量低速メモリ)2にパケットのデータが蓄積されるところを示す図である。パケットのデータ(以下、単にデータとも呼ぶ。)A〜Dが順番にパケットバッファ2に蓄積される。そして、パケットの転送先が決まると、蓄積されているデータが順番に読み出され、データa〜dとして出力される。パケットを蓄積するパケットバッファ2は、大容量低速メモリのみであるので、キューごとにパケットを蓄積して読み出すといった制御が困難になることが多い。
図3は、階層化されたメモリを用いてパケットを蓄積する一般的な通信端末の構成例を示すブロック図である。図3(a)は、ネットワークプロセッサ1内に小容量高速メモリ3が搭載された場合の構成例を示している。また、図3(b)は、ネットワークプロセッサ1とパケットバッファ(大容量低速メモリ)2との間に小容量高速メモリ3が設けられた場合の構成例を示している。
メモリが階層化されている場合、データ書き込み時に小容量高速メモリ3に設けられたキューごとにデータを蓄積し、蓄積されたデータが所定量となったときに、データを塊でキューからパケットバッファ2に転送する。また、データ読み出し時には、小容量高速メモリ3の各キューに蓄積されるデータ量が少なくなるとパケットバッファ2からデータを塊で読み出し、小容量高速メモリ3に設けられたキューに転送する。
図4は、図3に示す小容量高速メモリ3にパケットのデータが蓄積されるところを示す図である。図4に示すように、キューQ0〜Qnにデータが順番に蓄積され、蓄積された順番にデータが読み出される。キューごとにデータを固めるのは、キューに蓄積されたデータは順番を逆にできないためである。キュー数が多くなると、小容量高速メモリ3の容量が大きくなるといった問題がある。
(第1の実施の形態)
図5は、本発明の第1の実施の形態における記憶装置を用いた通信端末のデータ転送の概念を説明するための図である。本実施の形態においては、パケットの最初の3セグメントを小容量高速メモリ3に書き込み、そのパケットのそれ以降のセグメントを順次大容量低速メモリ2に蓄積する。ここで、セグメントとは、小容量高速メモリ3のデータ幅に相
当する量のデータを指しており、図5における“A”,“B”,…のそれぞれが1セグメントである。パケットのデータ長は可変であるため、1つのパケットはデータ長に応じて1つまたは複数のセグメントによって構成されることになる。
本実施の形態においては、キュー番号に関係なく、パケットの最初の3セグメントを小容量高速メモリ3に書き込む。これによって、パケットの読み出し時には必ず最初の3セグメントが小容量高速メモリ3から読み出され、その間に4セグメント目以降のデータが大容量低速メモリ2から順次読み出されることになり、どのキューからパケットを読み出す場合でもパケット間に無駄な時間が発生するのを防止することができる。
なお、以下の説明においては、パケットの最初の3セグメントを高速メモリ3に書き込むこととするが、パケットの最初の幾つかのセグメントを高速メモリ3に書き込めばよく、3セグメントに限定されるものではない。高速メモリ3に書き込むセグメントの数が大容量低速メモリ2の書き込み速度(読み出し速度)に依存することは、以下の説明によって容易に理解されるであろう。
図6は、本発明の第1の実施の形態における記憶装置の概略構成を示すブロック図である。この記憶装置10は大容量低速メモリ2に接続され、小容量高速メモリ3と、入力バッファ11と、セレクタ12とを含む。
入力バッファ11は、受信したデータを一時的に記憶してセレクタ12に出力する。セレクタ12は入力バッファ11からデータを受けると、パケットの最初の3セグメントを小容量高速メモリ3に書き込み、そのパケットのそれ以降のセグメントを大容量低速メモリ2に書き込む。なお、パケットが3セグメント以下の場合には、小容量高速メモリ3への書き込みのみが行なわれ、大容量低速メモリ2への書き込みは行なわれない。
図7は、本発明の第1の実施の形態における記憶装置の構成をさらに詳細に説明するためのブロック図である。この記憶装置10は、主に大容量低速メモリ2および小容量高速メモリ3にデータを書き込む部分(以下、書き込み部と呼ぶ。)と、主に大容量低速メモリ2および小容量高速メモリ3からデータを読み出して出力する部分(以下、読み出し部と呼ぶ。)とに大別される。
書き込み部は、入力バッファ11と、セレクタ12と、カウンタ13と、バッファ14−1〜14−4とを含む。また、読み出し部は、セレクタ16と、バッファ17−1〜17−4と、カウンタ18と、出力バッファ19とを含む。なお、バッファ15は、セレクタ12から小容量高速メモリ3にデータが書き込まれる際、および小容量高速メモリ3からデータが読み出されてセレクタ16に転送される際に使用される。
大容量低速メモリ2は、小容量高速メモリ3と比較して、データ書き込み(データ読み出し)に4倍の時間を要する。したがって、小容量高速メモリ3と同じ転送速度でデータ書き込み(データ読み出し)を行なえるようにするために、小容量高速メモリ3のデータ幅の4倍のデータ幅を有している。ここでは、大容量低速メモリ2が4つのメモリチップで構成され、それぞれ別々のタイミングでデータ書き込み/データ読み出しが行なわれるものとする。
なお、大容量低速メモリ2および小容量高速メモリ3のアクセス制御は、ネットワークプロセッサ1によって行なわれるものとする。
入力バッファ11は、ネットワークプロセッサ1からパケットのデータを受けると、そのデータを一時的に記憶する。入力バッファ11は、クロック信号に同期してデータを順
次セレクタ12に出力する。
カウンタ13は、ネットワークプロセッサ1からパケットの始まりを示すSTART0信号を受けると、カウント値をリセットし、クロック信号に同期してカウントアップを開始する。そして、カウンタ13は、カウント値をセレクタ12に出力する。また、カウンタ13は、ネットワークプロセッサ1からパケットの終わりを示すEND0信号を受けると、パケットが終了したことをセレクタ12に通知する。
セレクタ12は、カウンタ13から出力されるカウント値を参照して、入力バッファ11から転送されるデータのうち、最初の3セグメント分のデータをバッファ15を介して小容量高速メモリ3に書き込む。そして、セレクタ12は、4セグメント目以降のデータをバッファ14−1、14−2、14−3、14−4の順に書き込む。なお、セレクタ12は、カウンタ13からパケット終了の通知を受けると、その時点でデータの書き込みを終了する。
バッファ14−1〜14−4は、セレクタ12からデータを受けると、それぞれ大容量低速メモリ2内の対応するメモリにデータを書き込む。
バッファ17−1〜17−4は、それぞれ大容量低速メモリ2内の対応するメモリからデータを読み出し、セレクタ16にデータを出力する。
カウンタ18は、ネットワークプロセッサ1からパケットの始まりを示すSTART1信号を受けると、カウント値をリセットし、クロック信号に同期してカウントアップを開始する。そして、カウンタ18は、カウント値をセレクタ16に出力する。また、カウンタ18は、ネットワークプロセッサ1からパケットの終わりを示すEND1信号を受けると、パケットが終了したことをセレクタ16に通知する。
セレクタ16は、カウンタ18から出力されるカウント値を参照して、最初の3セグメント分のデータをバッファ15を介して小容量高速メモリ3から読み出し、出力バッファ19にデータを出力する。そして、セレクタ16は、4セグメント目以降のデータをバッファ17−1、17−2、17−3、17−4の順に読み出し、出力バッファ19にデータを出力する。なお、セレクタ16は、カウンタ18からパケット終了の通知を受けると、その時点でデータの読み出しを終了する。
出力バッファ19は、セレクタ16から受けたデータを一時的に記憶し、クロック信号に同期してデータを順次出力する。
図8は、本発明の第1の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。なお、図8において、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、ネットワークプロセッサ1から出力された最初のパケットの最初のセグメントのデータa0が入力バッファ11に記憶される。このとき、カウンタ13は、ネットワークプロセッサ1からSTART0信号を受け、カウント値をリセットしてカウントアップを開始する。
T2において、入力バッファ11に記憶されるデータa0が、セレクタ12およびバッファ15を介して小容量高速メモリ3に書き込まれる。T3〜T4において同様の動作が行なわれ、3セグメント分のデータa0〜a2が小容量高速メモリ3に書き込まれる。
次に、T5において、入力バッファ11に記憶されるデータa3がセレクタ12を介してバッファ14−1に転送され、大容量低速メモリ2への書き込みが開始される。このデータa3の書き込みが、T5〜T8の4サイクルで行なわれる。同様にして、データa4〜a6がそれぞれバッファ14−2〜14−4に転送され、それぞれ4サイクルで大容量低速メモリ2に書き込まれる。
T9において、バッファ14−1に記憶されるデータa3の大容量低速メモリ2への書き込みが終了しているので、入力バッファ11に記憶されるデータa7がセレクタ12を介してバッファ14−1に転送され、大容量低速メモリ2への書き込みが開始される。このデータa7の書き込みが、T9〜T12の4サイクルで行なわれる。同様に、データa8〜a9がそれぞれバッファ14−2〜14−3に転送され、それぞれ4サイクルで大容量低速メモリ2に書き込まれる。
T10において、カウンタ13は、ネットワークプロセッサ1からEND0信号を受け、パケットの終了をセレクタ12に通知する。T11において、ネットワークプロセッサ1から出力された次のパケットのデータb0が入力バッファ11に記憶される。このとき、カウンタ13は、ネットワークプロセッサ1からSTART0信号を受け、カウント値をリセットしてカウントアップを開始する。
T12において、入力バッファ11に記憶されるデータb0が、セレクタ12およびバッファ15を介して小容量高速メモリ3に書き込まれる。T13〜T14において同様の動作が行なわれ、3セグメント分のデータb0〜b2が小容量高速メモリ3に書き込まれる。
次に、T15において、入力バッファ11に記憶されるデータb3がセレクタ12を介してバッファ14−1に転送され、大容量低速メモリ2への書き込みが開始される。このデータb3の書き込みが、T15〜T18の4サイクルで行なわれる。同様に、データb4がバッファ14−2に転送され、4サイクルで大容量低速メモリ2に書き込まれる。
T17〜T20において、3パケット分のデータc0、d0、e0〜e1が順次小容量高速メモリ3に書き込まれる。
図9は、本発明の第1の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。なお、図9においても、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、セレクタ16は、バッファ15を介して小容量高速メモリ3から最初のパケットの最初のセグメントのデータa0を読み出す。また、バッファ17−1は、大容量低速メモリ2からデータa3の読み出しを開始する。
T2において、セレクタ16は、小容量高速メモリ3から読み出したデータa0を出力バッファ19に書き込む。T3〜T4において同様の動作が行なわれ、3セグメント分のデータa0〜a2が出力バッファ19に書き込まれる。
次に、T5において、大容量低速メモリ2からのデータa3の読み出しが終了しているので、セレクタ16はバッファ17−1に記憶されるデータa3を読み出して出力バッフ
ァ19に書き込む。また、このサイクルで、大容量低速メモリ2からのデータa7の読み出しが開始される。T6〜T11において同様の動作が行なわれ、データa4〜a9が順次出力バッファ19に書き込まれる。
T10において、カウンタ18は、ネットワークプロセッサ1からEND1信号を受け、パケットの終了をセレクタ16に通知する。T11において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、セレクタ16は、バッファ15を介して小容量高速メモリ3から2番目のパケットの最初のセグメントのデータb0を読み出す。また、バッファ17−1は、大容量低速メモリ2からデータb3の読み出しを開始する。
T12において、セレクタ16は、小容量高速メモリ3から読み出したデータb0を出力バッファ19に書き込む。T13〜T14において同様の動作が行なわれ、3セグメント分のデータb0〜b2が出力バッファ19に書き込まれる。
次に、T15において、大容量低速メモリ2からのデータb3の読み出しが終了しているので、セレクタ16はバッファ17−1に記憶されるデータb3を読み出して出力バッファ19に書き込む。T16において同様の動作が行なわれ、データb4が出力バッファ19に書き込まれる。
T16〜T19において、3パケット分のデータc0、d0、e0〜e1が順次小容量高速メモリ3から読み出され、出力バッファ19に順次データが書き込まれる。
図10は、本発明の第1の実施の形態における記憶装置を用いた通信端末の一例を示す図である。本実施の形態における記憶装置10は、ネットワークプロセッサ1と、標準メモリ(大容量低速メモリ)2との間に設けられ、上述の動作を行なう。標準メモリとして、DRAM(Dynamic Random Access Memory)が使用可能であるが、小容量高速メモリ3と比較して大容量の書き込み可能なデバイスであればよく、特にDRAMに限定されるものではない。
以上説明したように、本実施の形態における記憶装置10によれば、キュー番号に関係なく、パケットの最初の幾つかのセグメントを小容量高速メモリ3に書き込み、それ以降のセグメントを大容量低速メモリ2に書き込むようにしたので、データ読み出し時にどのキューからデータを読み出す場合でもパケット転送に無駄な時間が発生するのを防止することが可能となった。
また、キュー番号に関係なく、パケットの最初の幾つかのセグメントを小容量高速メモリ3に記憶するのみであるので、高速メモリの容量を増加させずに高速でパケット転送を行なうことができる。また、キュー数の増加に伴って高速メモリの容量が増加するのを防止することができる。したがって、システム全体のコストの削減が可能となった。
また、大容量低速メモリ2に書き込まれたデータが小容量高速メモリ3に転送されたり、小容量高速メモリ3に書き込まれたデータが大容量低速メモリ2に転送されたりすることがなく、データ読み出し時に直接大容量低速メモリ2および小容量高速メモリ3からデータが読み出されるので、システム全体の消費電力を削減することが可能となった。
また、パケットの最初のセグメントが小容量高速メモリ3から読み出されるので、読み出し時におけるレイテンシを短くすることが可能となった。
さらには、パケットの最初の幾つかのセグメントを小容量高速メモリ3に書き込み、そ
れ以降のセグメントを大容量低速メモリ2に書き込めばよいので、メモリのアクセス制御を簡略化することが可能となった。大容量低速メモリ2および小容量高速メモリ3からデータを読み出す場合も同様に、メモリのアクセス制御を簡略化することが可能となった。
(第2の実施の形態)
図11は、本発明の第2の実施の形態における記憶装置を用いた通信端末のデータ転送の概念を説明するための図である。本実施の形態においては、パケットの最初の4セグメントが揃ったときに大容量低速メモリ2にデータを書き込む。それ以降、セグメントが4つ揃うごとに同様の動作を行なう。そして、パケットの終わりに発生する端数のセグメント(4に満たないセグメント)を小容量高速メモリ3に書き込む。図11においては、パケットの最初の8つのセグメント“A”〜“H”が大容量低速メモリ2に書き込まれ、端数のセグメントである“I”および“J”が小容量高速メモリ3に書き込まれる。
図12は、本発明の第2の実施の形態における記憶装置20の構成例を示すブロック図である。図7に示す第1の実施の形態における記憶装置と比較して、小容量高速メモリ3の構成が異なる点、セレクタ12および16の機能が異なる点、およびセレクタ2(21,22)が追加されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態における小容量高速メモリの参照符号を3’とし、セレクタの参照符号を12’および16’として説明する。
小容量高速メモリ3’は、最大3つのセグメントを同時に書き込む必要があるため、第1の実施の形態における小容量高速メモリ3のデータ幅の3倍のデータ幅を有する。本実施の形態において、小容量高速メモリ3’は、3つのメモリチップによって構成されるものとする。
バッファ14−1〜14−4は、それぞれ少なくとも2セグメントのデータを記憶する容量を有しており、一方の領域からデータを読み出しているときに、他方の領域にデータを書き込むことが可能である。
セレクタ12’は、カウンタ13から出力されるカウント値を参照して、入力バッファ11から転送されるデータをバッファ14−1、14−2、14−3、14−4の順に書き込む。それ以降、同様の動作を繰り返す。
セレクタ2(21)は、カウンタ13から出力されるカウント値を参照して、バッファ14−1〜14−4に4つのセグメントのデータが記憶された時点でそれらのデータを大容量低速メモリ2に書き込む。また、セレクタ2(21)は、カウンタ13からパケット終了の通知を受けると、カウンタ13から出力されるカウント値を参照して、その時点でバッファ14−1〜14−4に記憶される端数のセグメントのデータを小容量高速メモリ3’に書き込む。
セレクタ2(22)は、カウンタ18からパケット開始の通知を受けると、大容量低速メモリ2から4つのセグメントのデータを読み出し、それぞれのデータをバッファ17−1〜17−4に書き込む。また、セレクタ2(22)は、カウンタ13から出力されるカウント値を参照して、次の4つのセグメントのデータ転送が必要となった時点で大容量低速メモリ2から4つのセグメントのデータを読み出し、それぞれのデータをバッファ17−1〜17−4に書き込む。また、セレクタ2(22)は、カウンタ18からパケット終了の通知を受けると、カウンタ13から出力されるカウント値を参照して、端数のセグメントを小容量高速メモリ3’から読み出し、バッファ17−1〜17−3の中の対応するバッファに書き込む。
セレクタ16’は、カウンタ18から出力されるカウント値を参照して、バッファ17−1〜17−4から出力されるデータを選択的に出力バッファ19に出力する。
図13は、本発明の第2の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。なお、図13においても、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、ネットワークプロセッサ1から出力された最初のパケットの最初のセグメントのデータa0が入力バッファ11に記憶される。このとき、カウンタ13は、ネットワークプロセッサ1からSTART0信号を受け、カウント値をリセットしてカウントアップを開始する。
T2において、入力バッファ11に記憶されるデータa0が、セレクタ12’を介してバッファ14−1に書き込まれる。T3〜T5において同様の動作が行なわれ、4セグメント分のデータa0〜a3が順次バッファ14−1〜14−4に書き込まれる。
T5において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータa0〜a3の大容量低速メモリ2への書き込みを開始する。このデータa0〜a3の書き込みが、T5〜T8の4サイクルで行なわれる。
T6において、入力バッファ11に記憶されるデータa4が、セレクタ12’を介してバッファ14−1に書き込まれる。T7〜T9において同様の動作が行なわれ、4セグメント分のデータa4〜a7が順次バッファ14−1〜14−4に書き込まれる。
T9において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータa4〜a7の大容量低速メモリ2への書き込みを開始する。このデータa4〜a7の書き込みが、T9〜T12の4サイクルで行なわれる。
T10において、入力バッファ11に記憶されるデータa8が、セレクタ12’を介してバッファ14−1に書き込まれる。T11において同様の動作が行なわれ、2セグメント分のデータa8〜a9がバッファ14−1〜14−2に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。
T12において、セレクタ2(21)は、バッファ14−1〜14−2に記憶されるデータa8〜a9を小容量高速メモリ3’に書き込む。また、T12において、入力バッファ11に記憶されるデータb0が、セレクタ12を介してバッファ14−1に書き込まれる。T13〜T15において同様の動作が行なわれ、4セグメント分のデータb0〜b3が順次バッファ14−1〜14−4に書き込まれる。
T15において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータb0〜b3の大容量低速メモリ2への書き込みを開始する。このデータb0〜b3の書き込みが、T15〜T18の4サイクルで行なわれる。
T16において、入力バッファ11に記憶されるデータb4が、セレクタ12’を介してバッファ14−1に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。
T17において、セレクタ2(21)は、バッファ14−1に記憶されるデータb4を小容量高速メモリ3’に書き込む。
T18〜T19において同様の動作が行なわれ、セレクタ2(21)は、データc0およびd0を小容量高速メモリ3’に書き込む。
T19において、入力バッファ11に記憶されるデータe0が、セレクタ12’を介してバッファ14−1に書き込まれる。T20において同様の動作が行なわれ、2セグメント分のデータe0〜e1がバッファ14−1〜14−2に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。
T21において、セレクタ2(21)は、バッファ14−1〜14−2に記憶されるデータe0〜e1を小容量高速メモリ3’に書き込む。
図14は、本発明の第2の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。なお、図14においても、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、大容量低速メモリ2に記憶される最初のパケットの4つのセグメントのデータa0〜a3の読み出しが開始される。
T5において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータa0〜a3をそれぞれバッファ17−1〜17−4に書き込む。このとき、セレクタ16’は、バッファ17−1に記憶されるデータa0を出力バッファ19に転送する。また、セレクタ2(22)は、大容量低速メモリ2に記憶されるデータa4〜a7の読み出しを開始する。
T6〜T8において、セレクタ16’は、バッファ17−2〜17−4に記憶されるデータa1〜a3を順次出力バッファ19に転送する。
T9において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータa4〜a7をそれぞれバッファ17−1〜17−4に書き込む。このとき、セレクタ16’は、バッファ17−1に記憶されるデータa4を出力バッファ19に転送する。
T10〜T12において、セレクタ16’は、バッファ17−2〜17−4に記憶されるデータa5〜a7を順次出力バッファ19に転送する。また、T10において、カウンタ18は、ネットワークプロセッサ1からEND1信号を受け、パケットの終了をセレクタ16’およびセレクタ2(22)に通知する。
T11において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、大容量低速メモリ2に記憶される次のパケットの4つのセグメントのデータb0〜b3の読み出しが開始される。
T12において、セレクタ2(22)は、端数のデータa8およびa9を小容量高速メモリ3’から読み出し、バッファ17−1および17−2に書き込む。T13において、セレクタ16’は、バッファ17−1に記憶されるデータa8を出力バッファ19に転送する。T14において、セレクタ16’は、バッファ17−2に記憶されるデータa9を出力バッファ19に転送する。
T15において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータb0〜b3をそれぞれバッファ17−1〜17−4に書き込む。このとき、セレクタ16’は、バッファ17−1に記憶されるデータb0を出力バッファ19に転送する。
T16〜T18において、セレクタ16’は、バッファ17−2〜17−4に記憶されるデータb1〜b3を順次出力バッファ19に転送する。また、T16において、カウンタ18は、ネットワークプロセッサ1からEND1信号を受け、パケットの終了をセレクタ16’およびセレクタ2(22)に通知する。
T18において、セレクタ2(22)は、端数のデータb4を小容量高速メモリ3’から読み出し、バッファ17−1に書き込む。T19において、セレクタ16’は、バッファ17−1に記憶されるデータb4を出力バッファ19に転送する。
T20〜T23において同様の動作が行なわれ、セレクタ16’が、データc0、d0、e0〜e1を順次出力バッファ19に転送する。
以上説明したように、本実施の形態における記憶装置20によれば、キュー番号に関係なく、パケットのセグメントを4つずつ大容量低速メモリ2に書き込み、そのパケットの最後の端数のセグメントのみを小容量高速メモリ3’に書き込むようにしたので、第1の実施の形態において説明した効果と同様の効果を奏することが可能となった。
(第3の実施の形態)
本発明の第3の実施の形態における記憶装置は、第2の実施の形態における記憶装置20と比較して、大容量低速メモリ2のページモードを使用する点が異なる。パケットのセグメント数が4を超えるものについては、5番目以降のセグメントを(端数のセグメントを含めて)ページモードで大容量低速メモリ2に書き込む。また、パケットのセグメント数が3以下のものについては、小容量高速メモリ3’に書き込む。
図15は、本発明の第3の実施の形態における記憶装置による大容量低速メモリ2からのデータ読み出しの動作を説明するためのタイミングチャートである。なお、信号名の前に付加されている“/”は、アクティブロウであることを示している。
図15に示すように、/RAS信号が最初にロウレベル(以下、Lレベルと略す。)になったときに、ロウアドレス“Xa”が取り込まれる。そして、/CAS信号がLレベルになったときにカラムアドレス“Yb”が取り込まれた後、クロック信号(ext./CLK,ext.CLK)に同期してDQS信号が入力されると、D/Q信号にデータが出力される。
図15においては、カラムアドレス“Yb”に対応して4セグメント分のデータq0〜q3が高速で読み出さ、カラムアドレス“Yc”に対応して4セグメント分のデータq4〜q7が高速で読み出されるところを示している。2回目のロウアドレスが取り込まれるときに、プリチャージ(/PRE)が行なわれている。なお、図15に示すDRAMの制御信号は、ネットワークプロセッサ1によって生成される。
本発明の第3の実施の形態における記憶装置は、図12に示す第2の実施の形態における記憶装置と比較して、セレクタ2(21)およびセレクタ2(22)の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるセレクタ2の参照符号を21’および22’として説明する。
なお、バッファ14−1〜14−4は、それぞれ少なくとも2セグメントのデータを記憶する容量を有しており、一方の領域からデータを読み出しているときに、他方の領域にデータを書き込むことが可能である。
また、バッファ17−1〜17−4も、それぞれ少なくとも2セグメントのデータを記憶する容量を有しており、一方の領域からデータを読み出しているときに、他方の領域にデータを書き込むことが可能である。
図16は、本発明の第3の実施の形態における記憶装置のデータ書き込み時の動作を説明するためのタイミングチャートである。なお、図16においても、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、ネットワークプロセッサ1から出力された最初のパケットの最初のセグメントのデータa0が入力バッファ11に記憶される。このとき、カウンタ13は、ネットワークプロセッサ1からSTART0信号を受け、カウント値をリセットしてカウントアップを開始する。
T2において、入力バッファ11に記憶されるデータa0が、セレクタ12’を介してバッファ14−1に書き込まれる。T3〜T5において同様の動作が行なわれ、4セグメント分のデータa0〜a3が順次バッファ14−1〜14−4に書き込まれる。
T5において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータa0〜a3の大容量低速メモリ2への書き込みを開始する。このデータa0〜a3の書き込みが、T5〜T8の4サイクルで行なわれる。
T6において、入力バッファ11に記憶されるデータa4が、セレクタ12’を介してバッファ14−1に書き込まれる。T7〜T9において同様の動作が行なわれ、4セグメント分のデータa4〜a7が順次バッファ14−1〜14−4に書き込まれる。
T9において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータa4〜a7をページモードで大容量低速メモリ2に書き込む。このデータa4〜a7の書き込みは、1サイクルで完了する。
T10において、入力バッファ11に記憶されるデータa8が、セレクタ12’を介してバッファ14−1に書き込まれる。T11において同様の動作が行なわれ、2セグメント分のデータa8〜a9がバッファ14−1〜14−2に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。このとき、セレクタ2(21)は、バッファ14−1〜14−2に記憶されるデータa8〜a9をページモードで小容量高速メモリ3’に書き込む。
T12において、入力バッファ11に記憶されるデータb0が、セレクタ12を介してバッファ14−1に書き込まれる。T13〜T15において同様の動作が行なわれ、4セグメント分のデータb0〜b3が順次バッファ14−1〜14−4に書き込まれる。
T15において、セレクタ2(21)は、バッファ14−1〜14−4に記憶されるデータb0〜b3の大容量低速メモリ2への書き込みを開始する。このデータb0〜b3の書き込みが、T15〜T18の4サイクルで行なわれる。
T16において、入力バッファ11に記憶されるデータb4が、セレクタ12’を介し
てバッファ14−1に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。
T17において、セレクタ2(21)は、バッファ14−1に記憶されるデータb4を小容量高速メモリ3’に書き込む。
T18〜T19において同様の動作が行なわれ、セレクタ2(21)は、データc0およびd0を小容量高速メモリ3’に書き込む。
T19において、入力バッファ11に記憶されるデータe0が、セレクタ12を介してバッファ14−1に書き込まれる。T20において同様の動作が行なわれ、2セグメント分のデータe0〜e1がバッファ14−1〜14−2に書き込まれたときに、ネットワークプロセッサ1からEND0信号が出力される。
T21において、セレクタ2(21)は、バッファ14−1〜14−2に記憶されるデータe0〜e1を小容量高速メモリ3’に書き込む。
図17は、本発明の第3の実施の形態における記憶装置のデータ読み出し時の動作を説明するためのタイミングチャートである。なお、図17においても、a0〜a9によって1つのパケットが構成され、同様にb0〜b4、c0、d0、e0〜e1のそれぞれによって1つのパケットが構成される。
まず、T1において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、大容量低速メモリ2に記憶される最初のパケットの4つのセグメントのデータa0〜a3の読み出しが開始される。
T4において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータa0〜a3をそれぞれバッファ17−1〜17−4に書き込む。
T5において、セレクタ2(22)は、大容量低速メモリ2に記憶されるデータa4〜a7をページモードで読み出す。このデータa4〜a7の読み出しは、1サイクルで完了する。T6において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータa4〜a7をそれぞれバッファ17−1〜17−4に書き込む。
また、T5〜T8において、セレクタ16’は、バッファ17−1〜17−4に記憶されるデータa0〜a3を順次出力バッファ19に転送する。
T7において、セレクタ2(22)は、大容量低速メモリ2に記憶される端数のデータa8〜a9をページモードで読み出す。また、T8において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータa8〜a9をそれぞれバッファ17−1〜17−2に書き込む。
T9〜T12において、セレクタ16’は、バッファ17−1〜17−4に記憶されるデータa4〜a7を順次出力バッファ19に転送する。
T11において、カウンタ18は、ネットワークプロセッサ1からSTART1信号を受け、カウント値をリセットしてカウントアップを開始する。このとき、大容量低速メモリ2に記憶される次のパケットの4つのセグメントのデータb0〜b3の読み出しが開始される。
T13〜T14において、セレクタ16’は、バッファ17−1〜17−2に記憶される端数のデータa8およびa9を出力バッファ19に転送する。
また、T14において、セレクタ2(22)は、大容量低速メモリ2から読み出したデータb0〜b3をそれぞれバッファ17−1〜17−4に書き込む。
T15〜T18において、セレクタ16’は、バッファ17−1〜17−4に記憶されるデータb0〜b3を順次出力バッファ19に転送する。また、T15において、セレクタ2(22)は、端数のデータb4を大容量低速メモリ2からページモードで読み出し、バッファ17−1に書き込む。T19において、セレクタ16’は、バッファ17−1に記憶されるデータb4を出力バッファ19に転送する。
T18〜T20において、セレクタ2(22)は、データc0、d0、e0〜e1を小容量高速メモリ3’から読み出し、順次バッファ17−1〜17−2に書き込む。そして、T20〜T23において、セレクタ16’が、データc0、d0、e0〜e1を順次出力バッファ19に転送する。
以上説明したように、本実施の形態における記憶装置20によれば、パケットのセグメント数が4を超えるものについては、端数のセグメントもページモードで大容量低速メモリ2に書き込むようにしたので、第2の実施の形態における記憶装置と比較して、小容量高速メモリ3’の容量をさらに削減することが可能となった。
(第4の実施の形態)
図18は、本発明の第4の実施の形態における記憶装置の基本的な概念を説明するための図である。パケットのデータを入力する場合、記憶装置30は、外部からパケットのデータとそのデータを格納するキュー番号のみを入力し、対応するキューにそのデータを格納する。また、パケットのデータを出力する場合、記憶装置30は、外部からキュー番号のみを入力し、そのキュー番号に対応するキューからパケットのデータを読み出して外部に出力する。
図18においては、各キューに記載されている1つの四角形が1つのセグメントを示している。たとえば、キュー#0には2つのパケットが格納されており、右から4つのセグメントと、それに続く3つのセグメントがそれぞれ1つのパケットを構成している。右から4つ目および7つ目のセグメントに記載されている“E”は、1つのパケットの中の最後のセグメントであることを示している。
図19は、本発明の第4の実施の形態における記憶装置の概略構成を示すブロック図である。この記憶装置30は、図示しない大容量低速メモリ(DRAM)と、小容量高速メモリ(SRAM)とに接続されており、コマンドコントローラ31と、パケット長カウンタ32と、パケット長管理部33と、パケット長格納部34と、アドレス生成部35と、格納先検出部36と、メモリ管理部37と、データコントローラ38と、データFIFO39〜43とを含む。なお、実際のパケットのデータは、図示しないDRAMまたはSRAMに格納され、アドレス生成部35がキューとしての機能を有している。
アドレス生成部35は、空きアドレス格納部51と、リンクリスト格納部52と、先頭/末尾ポインタ格納部53とを含む。空きアドレス格納部51は、DRAMおよびSRAMのアドレスのうち、実際のデータが記憶されていない空きアドレスを格納する。
先頭/末尾ポインタ格納部53は、キュー#0〜#nのそれぞれに対応する先頭ポインタと末尾ポインタとを格納する。先頭ポインタは、対応するキューの何番目のセグメントが先頭であるかを示す情報である。また、末尾ポインタは、対応するキューの何番目のセグメントが末尾であるかを示す情報である。したがって、キューからデータが読み出される場合には、先頭ポインタが更新される。また、キューにデータを書き込む場合には、末尾ポインタが更新される。
リンクリスト格納部52は、各キューの各セグメントに対応する、実際のデータが格納されるDRAMまたはSRAMのアドレス、すなわちリンクリストを格納する。
メモリ管理部37は、DRAMコントローラ61と、SRAMコントローラ62とを含む。DRAMコントローラ61は、アドレス生成部35から出力されるアドレスに従ってDRAMに対するアクセスを制御する。また、SRAMコントローラ62は、アドレス生成部35から出力されるアドレスに従ってSRAMに対するアクセスを制御する。
コマンドコントローラ31は、ネットワークプロセッサからコマンドとキュー番号とを受け、コマンドに対応した制御を行なう。なお、コマンドコントローラ31に入力されるDEND信号は、パケットのデータをキューに書き込むときに、パケットのデータの終了を通知するための信号である。
(パケットのデータの書き込み)
コマンドコントローラ31は、ネットワークプロセッサからパケットの書き込みコマンドおよびキュー番号を受けると、書き込みコマンドを受けたことをパケット長カウンタ32、アドレス生成部35およびデータFIFO39に通知する。
データFIFO39は、一定のレイテンシをおいてデータ(D)の入力を開始する。このとき、パケット長カウンタ32は、データFIFO39に入力されたデータ数のカウントを開始する。
格納先検出部36は、パケット長カウンタ32の値を参照しており、パケット長カウンタ32の値が更新されてパケットのデータが入力されたことを検知すると、アドレス生成部35に対してデータの格納先アドレスを生成するよう指示する。
アドレス生成部35は、先頭/末尾ポインタ格納部53に格納されるキュー番号に対応する末尾ポインタの値を読み出し、リンクリスト格納部52を参照して末尾ポインタに対応するセグメントが格納されるDRAMまたはSRAMのアドレスを取得する。そして、空きアドレス格納部51にアクセスしてそのアドレスの次のアドレスが空いているか否かを判定する。そのアドレスが空いていれば、空きアドレス格納部51にそのアドレスを出力させる。また、そのアドレスが空いていなければ、空きアドレス格納部51にアクセスしてDRAMまたはSRAMの空いているアドレスを出力させる。
DRAMコントローラ61またはSRAMコントローラ62は、アドレス生成部35から出力されたアドレスに従ってDRAMまたはSRAMに対するデータの書き込みを行なう。このとき、データFIFO39に格納されたデータは、データFIFO40またはデータFIFO41に順次転送され、DRAMまたはSRAMに出力される。
また、アドレス生成部35は、DRAMまたはSRAMへのデータ書き込みに応じて、先頭/末尾ポインタ格納部53に格納される末尾ポインタの値を更新すると共に、末尾ポインタの値にデータを書き込んだDRAMまたはSRAMのアドレスをリンクさせてリンクリスト格納部52を更新する。
以上の処理を繰り返すことにより、パケットのデータがDRAMまたはSRAMに順次格納される。コマンドコントローラ31は、DEND信号によってパケットのデータ書き込みが終了したことを検知すると、その旨をパケット長カウンタ32およびデータFIFO39に通知する。パケット長カウンタ32は、書き込んだパケットのパケット長をパケット長管理部33に通知する。
パケット長管理部33は、パケット長カウンタ32から受けたパケット長をパケット長格納部34に格納することによって、各キューに格納されるパケットごとのパケット長を管理する。
図20は、本発明の第4の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。T1において、コマンドコントローラ31が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットのデータの書き込みを開始する。
T2以降において、有効なデータが入力されると、データFIFO39がパケットのデータ(D0〜DF)を格納し、データFIFO40またはデータFIFO41を介してDRAMまたはSRAMに順次データを出力する。
T3において、コマンドコントローラ31がDEND信号を受けると、パケットのデータ書き込みが終了したことをパケット長カウンタ32およびデータFIFO39に通知する。パケット長管理部33は、パケット長カウンタ32から受けたパケット長をパケット長格納部34に格納する。
T4において、コマンドコントローラ31が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#1)を受けると、パケットのデータの書き込みを開始する。以下、同様の処理が行なわれる。
(パケットのデータの読み出し)
コマンドコントローラ31は、ネットワークプロセッサからパケットの読み出しコマンドおよびキュー番号を受けると、読み出しコマンドを受けたことをパケット長管理部33およびアドレス生成部35に通知する。
パケット長管理部33は、先頭/末尾ポインタ格納部53にアクセスしてキュー番号に対応する先頭ポインタの値を読み出し、パケット長格納部34からそのパケットのパケット長を取得する。
また、アドレス生成部35は、先頭/末尾ポインタ格納部53にアクセスしてキュー番号に対応する先頭ポインタの値を読み出し、リンクリスト格納部52にアクセスして先頭ポインタの値に対応するセグメントの格納先アドレスをメモリ管理部37に出力する。
DRAMコントローラ61またはSRAMコントローラ62は、アドレス生成部35から出力されたアドレスに従ってDRAMまたはSRAMからのデータ読み出しを行なう。DRAMまたはSRAMから読み出されたデータは、順次データFIFO42またはデータFIFO43に格納される。
このとき、アドレス生成部35は、先頭ポインタの値を更新すると共に、リンクリスト格納部52にアクセスして次のセグメントに対応するアドレスをメモリ管理部37に出力する。データが読み出されたアドレスについては、次のデータ書き込みで使用できるように空きアドレス格納部51に追加する。
また、データコントローラ38は、データFIFO42またはデータFIFO43に格納されたデータを読み出して、順次ネットワークプロセッサに出力する。なお、データコントローラ38から出力されるQ信号は、パケットのデータを示している。QST信号は、パケットのデータの出力開始を示す信号である。また、QEND信号は、パケットのデータの出力終了を示す信号である。
アドレス生成部35、メモリ管理部37およびデータコントローラ38は、パケット長管理部53によって取得されたパケット長だけ上述の処理を繰り返すことにより、ネットワークプロセッサに対して1つのパケットのデータが出力される。
図21は、本発明の第4の実施の形態における記憶装置のパケットのデータの読み出しを説明するためのタイミングチャートである。T1において、コマンドコントローラ31が、ネットワークプロセッサから読み出しコマンド(Rd)およびキュー番号(#0)を受けると、パケットのデータの読み出しを開始する。
T2において、コマンドコントローラ31が、ネットワークプロセッサから次の読み出しコマンド(Rd)およびキュー番号(#1)を受けるが、この処理は最初の読み出しコマンドの処理が終了した後に行なわれる。
T3において、データコントローラ38が、QST信号を出力してネットワークプロセッサにキュー#0に対応する読み出しデータの出力開始を通知する。T4以降において、データコントローラ38は、データFIFO42またはデータFIFO43に格納される有効なデータ(Q0〜QB)をネットワークプロセッサに対して出力する。
T5において、データコントローラ38が、QEND信号を出力してネットワークプロセッサに読み出しデータの出力終了を通知する。
T6において、データコントローラ38が、QST信号を出力してネットワークプロセッサにキュー#1に対応する読み出しデータの出力開始を通知する。そして、T7以降において、同様の処理が行なわれる。
図22は、キュー#0〜#nと実際のパケットのデータが格納されるメモリとの対応を示す図である。図22の左側がキュー#0〜#nを示し、図22の右側が実際のパケットのデータが格納されるメモリを示している。たとえば、キュー#0に格納される3つのパケット(1〜3)が、メモリ上ではそれぞれ不連続の領域に格納されるところを示している。
このように、キューにおいてメモリのアドレスのみを管理することにより、各キューのメモリサイズを可変とすることができ、DRAMやSRAMの容量を有効に利用することができる。
ここで、書き込みまたは読み出し時に用いるデータFIFOのバースト長は固定ではなく可変としている。ネットワーク機器の場合、外部から入出力されるデータはパケットもしくはフレームであり、パケットもフレームもデータを受け取るまでデータ長が分からない。そのためデータを一時的に蓄えるデータFIFOを可変長に対応させることでコントロールが容易となる。
以上の説明においては、記憶装置30がDRAMまたはSRAMにパケットのデータを書き込むとしたが、第1〜第3の実施の形態において説明したように、パケットの端数のセグメントをSRAMに書き込み、それ以外の大部分のセグメントをDRAMに書き込むようにしてもよい。
以上説明したように、本実施の形態における記憶装置によれば、キュー番号を受けてパケットのデータの書き込みおよび読み出しを行なうようにしたので、ネットワークプロセッサによる制御を簡略化することが可能となった。
また、外部のメモリに対してはパケットのデータの書き込みおよび読み出しのみを行なうので、メモリに対するアクセス回数を減らすことができ、消費電力を削減することが可能となった。
(第5の実施の形態)
図23は、本発明の第5の実施の形態における記憶装置の基本的な概念を説明するための図である。パケットのデータを入力する場合、記憶装置30’は、外部からパケットのデータとそのデータを格納するキュー番号のみを入力し、対応するキューにそのデータを格納する。また、パケットのデータを出力する場合、記憶装置30は、外部からキュー番号のみを入力し、そのキュー番号に対応するキューからパケットのデータを読み出して外部に出力する。
図18に示す本発明の第1の実施の形態における記憶装置30と異なる点は、1つのポートから入力されたパケットのデータを複数のポートに出力できるようにした点である。図23においては、たとえば、キュー#0の右から7つ目のセグメントに“E&M”が記載されており、1つのパケットの中の最後のセグメントであることを示すと共に、2つ目のパケットがマルチキャストなどのような複数のポートに出力されるパケットであることを示している。
本発明の第5の実施の形態における記憶装置30’は、図19に示す第4の実施の形態における記憶装置の概略構成と比較して、アドレス生成部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるアドレス生成部の参照番号を35’として説明する。
図24は、本発明の第5の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。T1において、コマンドコントローラ31が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットのデータの書き込みを開始する。
T2以降において、有効なデータが入力されると、データFIFO39がパケットのデータ(D0〜DF)を格納し、データFIFO40またはデータFIFO41を介してDRAMまたはSRAMに順次データを出力する。
T3において、コマンドコントローラ31が、ネットワークプロセッサからマルチキャストコマンドおよびキュー番号(#1)を受けると、現在書き込み中のパケットのデータをキュー#1に格納するために、アドレス生成部35’は、キュー#1の末尾ポインタの値をキュー#0の末尾ポインタの値と同様に更新すると共に、キュー#1のリンクリストをキュー#0のリンクリストと同様に更新して、同じパケットのデータにリンクさせるようにリンクリスト格納部52を更新する。
T4において、コマンドコントローラ31が、ネットワークプロセッサからマルチキャストコマンドおよびキュー番号(#2)を受けると、現在書き込み中のパケットのデータをキュー#2に格納するために、アドレス生成部35’は、キュー#2の末尾ポインタの値をキュー#0の末尾ポインタの値と同様に更新すると共に、キュー#2のリンクリストをキュー#0のリンクリストと同様に更新して、同じパケットのデータにリンクさせるようにリンクリスト格納部52を更新する。
T5において、コマンドコントローラ31がDEND信号を受けると、パケットのデータ書き込みが終了したことをパケット長カウンタ32およびデータFIFO39に通知する。パケット長管理部33は、パケット長カウンタ32から受けたパケット長をパケット長格納部34に格納する。
T6において、コマンドコントローラ31が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットのデータの書き込みを開始する。以下、同様の処理が行なわれる。
図25は、キュー#0〜#nと実際のマルチキャストのパケットのデータが格納されるメモリとの対応を示す図である。図25の左側がキュー#0〜#nを示し、図25の右側が実際のマルチキャストのパケットのデータが格納されるメモリを示している。たとえば、キュー#0に格納される3つのパケット(1〜3)が、メモリ上ではそれぞれ不連続の領域に格納されるところを示している。これら3つのパケットはマルチキャストのパケットであり、キュー#1およびキュー#2に格納される3つのパケットのポインタが、それぞれパケット(1〜3)が格納されるアドレスにリンクされるところを示している。
なお、マルチキャストのパケットを読み出す場合には、そのパケットが幾つのキューによって共有されているかの情報を保持しておき、マルチキャストパケットが読み出された回数が共有するキューの数と一致したときに、マルチキャストのパケットが格納されるDRAMまたはSRAMのアドレスを開放するようにすればよい。
以上説明したように、本実施の形態における記憶装置によれば、マルチキャストのパケットをキューに書き込む場合には、パケットのデータを外部のメモリに1回だけ書き込み、各キューのポインタをそのパケットを書き込んだアドレスにリンクさせるようにしたので、第4の実施の形態において説明した効果に加えて、外部のメモリに対するアクセスの回数をさらに減らすことができ、消費電力をさらに削減することが可能となった。
また、マルチキャストのパケットを外部のメモリに1回だけ書き込むようにしたので、メモリの空き容量が不足するのを防止することが可能となった。
(第6の実施の形態)
本発明の第4の実施の形態における記憶装置は、1つのコマンドで1つのパケットのデータの書き込みまたは読み出しを行なうものであった。本発明の第6の実施の形態における記憶装置は、1つの書き込みコマンドで一定量のデータのみの書き込みを行なうものである。
本発明の第6の実施の形態における記憶装置は、図19に示す第4の実施の形態における記憶装置の概略構成と比較して、コマンドコントローラの機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、本実施の形態におけるコマンドコントローラの参照番号を31”として説明する。
図26は、本発明の第6の実施の形態における記憶装置のパケットのデータの書き込みを説明するためのタイミングチャートである。なお、図26においては、パケットの40セグメントのデータが書き込まれる毎に、ネットワークプロセッサから書き込みコマンドが発行される。
T1において、コマンドコントローラ31”が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットの最初の40セグメント分のデータの書き込みを開始する。
T2以降において、有効なデータが入力されると、データFIFO39がパケットのデータ(D0〜D39)を格納し、データFIFO40またはデータFIFO41を介してDRAMまたはSRAMに順次データを出力する。
T3において、コマンドコントローラ31”が、ネットワークプロセッサから再度書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットの次の40セグメント分のデータの書き込みを開始する。
T4以降において、有効なデータが入力されると、データFIFO39がパケットのデータ(D0〜D39)を格納し、データFIFO40またはデータFIFO41を介してDRAMまたはSRAMに順次データを出力する。
T5において、コマンドコントローラ31”が、ネットワークプロセッサから書き込みコマンド(Wt)およびキュー番号(#0)を受けると、パケットの残りのセグメントのデータの書き込みを開始する。図26においては、D40〜D45が端数のセグメントを示している。
T6において、コマンドコントローラ31”がDEND信号を受けると、パケットのデータ書き込みが終了したことをパケット長カウンタ32およびデータFIFO39に通知する。パケット長管理部33は、パケット長カウンタ32から受けたパケット長をパケット長格納部34に格納する。
なお、図26においては、最後の端数のセグメントを書き込む場合に、ネットワークプロセッサが記憶装置に書き込みコマンドを発行して一定量よりも短いデータを外部のメモリに書き込むようにしたが、ネットワークプロセッサが最後の書き込みコマンドを発行せずに、最後の一定量のデータに追加する形で、一定量のデータよりも長いデータとして外部のメモリに書き込むようにしてもよい。
以上説明したように、本実施の形態における記憶装置によれば、1つの書き込みコマンドで一定量のデータのみの書き込みを行なうようにしたので、第4の実施の形態において説明した効果と同様の効果を奏することが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 ネットワークプロセッサ、2 大容量低速メモリ、3,3’ 小容量高速メモリ、10,20,30 記憶装置、11 入力バッファ、12,12’,16,16’,21,22 セレクタ、13,18 カウンタ、14−1〜14−4,15,17−1〜17−4 バッファ、19 出力バッファ、31 コマンドコントローラ、32 パケット長カウンタ、33 パケット長管理部、34 パケット長格納部、35 アドレス生成部、36 格納先検出部、37 メモリ管理部、38 データコントローラ、39〜43 データFIFO、51 空きアドレス格納部、52 リンクリスト格納部、53 先頭/末尾ポインタ格納部、61 DRAMコントローラ、62 SRAMコントローラ。

Claims (2)

  1. 第1の記憶手段に接続され、ネットワークを介して受信したパケットを複数のセグメントに分けて記憶する記憶装置であって、
    前記第1の記憶手段よりも高速にアクセスが可能な第2の記憶手段と、
    前記パケットの最初の所定数のセグメントを前記第2の記憶手段に書き込み、それ以降のセグメントを前記第1の記憶手段に書き込む書込手段とを含み、
    前記セグメントの1個のサイズは、前記第2の記憶手段において1回のアクセスで読み出しまたは書き込みを行うことが可能なデータサイズであり、
    前記第1の記憶手段へのアクセスにかかる時間において前記第2の記憶手段でのアクセス可能な回数nに対して前記パケットのサイズがnセグメントより大きい場合に、前記パケットの先頭からnセグメント分のデータを前記第2の記憶手段に格納し、続く残りのセグメント分のデータを前記第1の記憶手段に格納する制御を行い、前記第1の記憶手段へのアクセスと前記第2の記憶手段へのアクセスとを並行して行う、記憶装置。
  2. 前記書込手段は、
    書き込むセグメントの数をカウントする第1のカウント手段と、
    前記第1の記憶手段に書き込むセグメントを記憶する第1の複数のバッファ手段と、
    前記第1のカウント手段のカウント値を参照して、前記第2の記憶手段と前記第1の複数のバッファ手段に出力する第1の選択手段とを含み、
    前記記憶装置は、前記第1の記憶手段と前記第2の記憶手段との其々から格納された前記セグメントのデータの読み出し制御を行う読出手段をさらに含み、
    前記読出手段は、
    読み出すセグメントの数をカウントする第2のカウント手段と、
    前記第1の記憶手段から読み出されたセグメントを記憶する第2の複数のバッファ手段と、
    前記第2のカウント手段のカウント値を参照して、前記パケットの最初のnセグメントを前記第2の記憶手段から読み出して順次出力し、それ以降のセグメントを前記第2の複数のバッファ手段から読み出して順次出力する第2の選択手段とを含む、請求項1に記載の記憶装置。
JP2009121890A 2008-09-02 2009-05-20 記憶装置 Expired - Fee Related JP5391449B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009121890A JP5391449B2 (ja) 2008-09-02 2009-05-20 記憶装置
US12/550,723 US20100054272A1 (en) 2008-09-02 2009-08-31 Storage device capable of accommodating high-speed network using large-capacity low-speed memory

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008224977 2008-09-02
JP2008224977 2008-09-02
JP2009121890A JP5391449B2 (ja) 2008-09-02 2009-05-20 記憶装置

Publications (3)

Publication Number Publication Date
JP2010088102A JP2010088102A (ja) 2010-04-15
JP2010088102A5 JP2010088102A5 (ja) 2012-03-22
JP5391449B2 true JP5391449B2 (ja) 2014-01-15

Family

ID=41725368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009121890A Expired - Fee Related JP5391449B2 (ja) 2008-09-02 2009-05-20 記憶装置

Country Status (2)

Country Link
US (1) US20100054272A1 (ja)
JP (1) JP5391449B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089127A1 (en) * 2013-09-23 2015-03-26 Kuljit S. Bains Memory broadcast command
JP2015186233A (ja) 2014-03-26 2015-10-22 富士通株式会社 パケット処理装置、及びパケット処理方法
JP5835821B1 (ja) * 2014-06-10 2015-12-24 日本電信電話株式会社 統計情報メモリシステム、ネットワーク機器、および統計情報蓄積方法
JP6802762B2 (ja) * 2017-06-27 2020-12-16 日立オートモティブシステムズ株式会社 処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05227211A (ja) * 1992-02-17 1993-09-03 Fujitsu Ltd パケット交換システム
JPH07264242A (ja) * 1994-03-22 1995-10-13 Hitachi Ltd パケットスイッチ及びそのパケットスイッチを用いた並列計算機システム
JPH08194643A (ja) * 1995-01-19 1996-07-30 Fanuc Ltd メモリ制御方式
JP2002304353A (ja) * 2001-04-05 2002-10-18 Sony Corp 情報提供装置、通信システムおよび通信方法
FR2838899B1 (fr) * 2002-04-19 2004-08-27 Cit Alcatel Dispositif de routage a traitement parallele
KR100945762B1 (ko) * 2002-05-10 2010-03-09 인터디지탈 테크날러지 코포레이션 무선 링크 제어 재전송을 지원하기 위해 프로토콜 데이터 단위의 재전송의 순위 지정을 하는 시스템 및 방법
JP2004206252A (ja) * 2002-12-24 2004-07-22 Fujitsu Ltd メモリコントローラ
US20050021558A1 (en) * 2003-06-11 2005-01-27 Beverly Harlan T. Network protocol off-load engine memory management
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
JP4757109B2 (ja) * 2006-06-23 2011-08-24 富士通株式会社 データ通信プログラム
JP4417935B2 (ja) * 2006-07-28 2010-02-17 株式会社東芝 ネットワークを介して外部と通信を行う情報処理装置、情報処理方法および情報処理プログラム
JP2009020684A (ja) * 2007-07-11 2009-01-29 Kawasaki Microelectronics Kk 端末装置

Also Published As

Publication number Publication date
JP2010088102A (ja) 2010-04-15
US20100054272A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
CN110806986B (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
US7315550B2 (en) Method and apparatus for shared buffer packet switching
CN108366111B (zh) 一种用于交换设备的数据包低时延缓存装置与方法
US10248350B2 (en) Queue management method and apparatus
JP5205956B2 (ja) メモリ制御装置
US7822915B2 (en) Memory controller for packet applications
JP7074839B2 (ja) パケット処理
CN107783727B (zh) 一种内存设备的访问方法、装置和系统
WO2011015055A1 (zh) 一种存储管理的方法和系统
JP5391449B2 (ja) 記憶装置
CN105516023A (zh) 一种报文转发方法和装置
CN105577985A (zh) 一种数字图像处理系统
EP1508225B1 (en) Method for data storage in external and on-chip memory in a packet switch
CN114153758B (zh) 具有帧计数功能的跨时钟域数据处理方法
CN102571535B (zh) 一种数据延迟装置、方法及通信系统
JP4252379B2 (ja) 可変長フレームバッファ装置
US8073999B2 (en) Data input-output control apparatus
US9544229B2 (en) Packet processing apparatus and packet processing method
JP5748288B2 (ja) パケットバッファ装置およびパケットバッファ制御方法
JP5499346B2 (ja) 半導体装置およびそれを用いた通信装置
US20240143169A1 (en) Method for Improving Message Storage Efficiency of Network Chip, Device, and Storage medium
JP6938399B2 (ja) 通信装置、通信方法およびプログラム
JP2011239326A (ja) 半導体装置およびそれを用いた通信装置
JP2012253598A (ja) 半導体装置およびそれを用いた通信装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130925

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees