JP2009157680A - メモリ制御装置 - Google Patents

メモリ制御装置 Download PDF

Info

Publication number
JP2009157680A
JP2009157680A JP2007335671A JP2007335671A JP2009157680A JP 2009157680 A JP2009157680 A JP 2009157680A JP 2007335671 A JP2007335671 A JP 2007335671A JP 2007335671 A JP2007335671 A JP 2007335671A JP 2009157680 A JP2009157680 A JP 2009157680A
Authority
JP
Japan
Prior art keywords
memory
read
bank
write
data
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
JP2007335671A
Other languages
English (en)
Other versions
JP5205956B2 (ja
Inventor
Hidenori Sugai
秀紀 菅井
Hiroshi Tomonaga
博 朝永
Satoshi Nemoto
智 根本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007335671A priority Critical patent/JP5205956B2/ja
Priority to US12/230,252 priority patent/US7904677B2/en
Publication of JP2009157680A publication Critical patent/JP2009157680A/ja
Application granted granted Critical
Publication of JP5205956B2 publication Critical patent/JP5205956B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリインタフェース速度の向上を図る。
【解決手段】パケット分割部11は、パケットデータをセグメントに分割するセグメント分割と、パケット品質情報の検出処理とを行う。メモリ管理部12は、アドレス管理テーブル12aを有し、パケット品質情報毎に、パケットデータの格納状態を管理する。セグメント/リクエスト情報分割部2aは、セグメントを、メモリ3−1〜3−nに書き込み/読み出し可能なアクセス単位のデータに分割し、アクセス単位毎の書き込みリクエストおよび読み出しリクエストを生成する。メモリアクセス制御部20は、生成された書き込みリクエストまたは読み出しリクエストの内、バンク制約が生じてアクセス禁止となったバンクを回避して、アクセス可能なバンクに対応する書き込みリクエストまたは読み出しリクエストを抽出して、メモリ3−1〜3−nに対して書き込み/読み出しアクセスを行う。
【選択図】図1

Description

本発明はメモリ制御装置に関し、特に記憶領域に複数のバンクを持つメモリへのアクセス制御を行うメモリ制御装置に関する。
近年、インターネットの急速な普及に伴って、通信ネットワークは飛躍的に発展しており、特にIP(Internet Protocol)パケットに代表されるデータ通信は、ネットワーク全体のトラフィックの主流となりつつある。また、通信サービスに対する需要の高まりや通信速度の高速化による装置の大容量化などが顕著になってきている。
このような通信ネットワーク上においては、パケット転送を行うためのルータやスイッチが配置され、パケットの通信品質を確保しながら、パケットを転送するためのQoS(Quality of Service)制御が行われている。
QoS制御では、各パケットが持つ品質情報にもとづいて、到着順序とは異なる順序でパケットを出力する制御を行うので、パケットが出力されるまでは、パケットデータを格納するメモリとして、パケットバッファを設けることが必要となる。
このため、大容量かつ高速化が要求されるデータ通信においては、パケットバッファ本体の大容量化およびパケットバッファへの高速アクセスが必須であり、パケットバッファの効率的な使用が求められている。
パケットバッファとしては、通常、DRAM(Dynamic Random Access Memory)が用いられる。DRAMは、メモリセルを独立して動作可能なバンクと呼ばれるブロックを複数持ち(クロック同期型のSDRAM(Synchronous DRAM)に代表されるように、一般的に4バンク構成が標準である)、各バンクは、ロウ(Row)アドレス、カラム(Column)アドレスの2つのアドレスで区切られた構成となっている。
DRAMは構造が簡単で(安価である)、1つのデバイス上に大容量のメモリチップを構成できるため、パケットバッファまたはコンピュータのメインメモリなどに広く採用されている。
DRAMへのアクセス制御を行う場合には、パケットをセグメントと呼ばれる領域に分割し、セグメント単位に書き込みコマンドまたは読み出しコマンドを発生させて、パケットデータの書き込み/読み出しを行う。
また、同一バンクへのアクセス時や、書き込み/読み出しの切り替え時には、待ち時間(ウエイト)が発生するため、アクセスに時間的な制約を持たせることになる。
図16はDRAMインタフェースのタイムチャートを示す図である。DRAMは4つのバンクb1〜b4を持つものとし、各バンクにシリアルにアクセスするインタフェースを示している。
区間T1は、バンクb1〜b4のそれぞれにデータを1度書き込むときの、バンク1周分の書き込みアクセスを示している。また、区間T2は、バンクb1〜b4のそれぞれからデータを1度読み出すときの、バンク1周分の読み出しアクセスを示している。
なお、図中の最小アクセス単位とは、1つのバンクにアクセスする最小アクセス時間であり、1回のアクセスでバンクへデータを書き込むときの書き込みデータ長、または1回のアクセスでバンクからデータを読み出すときの読み出しデータ長に該当する。また、図の例では、書き込みデータd1〜d4までのデータ量、または読み出しデータd11〜d14までのデータ量が、1つのセグメントに該当している。
〔C1〕書き込みコマンドw1により、バンクb1にデータd1を書き込む。
〔S1a〕サイクルC1で、バンクb1にデータd1の書き込みが開始されると、その後、バンクb1にはサイクルC2〜C4まで書き込みアクセスはできず、バンク制約が発生する(バンクb1にアクセスできない時間が発生するということ)。次にバンクb1にアクセス可能なサイクルは、サイクルC5以降となる。
〔C3〕書き込みコマンドw2により、バンクb2にデータd2を書き込む。
〔S2a〕サイクルC3で、バンクb2にデータd2の書き込みが開始されると、その後、バンクb2にはサイクルC4〜C6まで書き込みアクセスはできず、バンク制約が発生する。次にバンクb2にアクセス可能なサイクルは、サイクルC7以降となる(その後、バンクb3、b4の順に書き込みアクセスを行って、バンクb3、b4に対しても同様のバンク制約が発生する)。
〔C11〕読み出しコマンドr1により、バンクb1からデータd11を読み出す。
〔S3a〕サイクルC11で、バンクb1からデータd11の読み出しが開始されると、その後、バンクb1にはサイクルC12〜C14まで読み出しアクセスはできず、バンク制約が発生する。次にバンクb1にアクセス可能なサイクルは、サイクルC15以降となる。
〔C13〕読み出しコマンドr2により、バンクb2からデータd12を読み出す。
〔S4a〕サイクルC13で、バンクb2からデータd12の読み出しが開始されると、その後、バンクb2にはサイクルC14〜C16まで読み出しアクセスはできず、バンク制約が発生する。次にバンクb2にアクセス可能なサイクルは、サイクルC17以降となる(以降同様に、バンクb3、b4の順に読み出しアクセスを行って、バンクb3、b4に対してもバンク制約が発生する)。
〔S5a〕書き込みアクセスから読み出しアクセスへの切り替え時には、書き込み/読み出し切り替え制約が発生する(書き込みから読み出しへ、または読み出しから書き込みへアクセスを切り替える際には、該当のバンクにアクセスできない時間が発生する)。
図17はDRAMインタフェースのタイムチャートを示す図である。4つのDRAM#1〜#4があるとして、各DRAMのバンクにパラレルにアクセスするインタフェースを示している。区間T1aは、書き込みアクセスを示し、区間T2aは、読み出しアクセスを示す。
〔C1〕書き込みコマンドw1により、DRAM#1の任意バンクにデータd1を、DRAM#2の任意バンクにデータd2を、DRAM#3の任意バンクにデータd3を、DRAM#4の任意バンクにデータd4を書き込む。
〔S1b〕サイクルC1で、DRAM#1〜#4にデータd1〜d4の書き込みが開始されると、バンク制約が発生する。
〔C5〕書き込みコマンドw2により、DRAM#1の任意バンクにデータd5を、DRAM#2の任意バンクにデータd6を、DRAM#3の任意バンクにデータd7を、DRAM#4の任意バンクにデータd8を書き込む。なお、任意バンクへの書き込みを行うため、前回の書き込みのときにアクセスしたバンクと同じバンクに対してもアクセスできるように、サイクルC1の書き込み処理で発生したバンク制約が解除された後の、サイクルC5から書き込みを開始している。
〔S2b〕サイクルC5で、DRAM#1〜#4にデータd5〜d8の書き込みが開始されると、バンク制約が発生する。
〔C11〕読み出しコマンドr1により、DRAM#1の該当バンクからデータd11を、DRAM#2の該当バンクからデータd12を、DRAM#3の該当バンクからデータd13を、DRAM#4の該当バンクからデータd14を読み出す。
〔S3b〕サイクルC11で、DRAM#1〜#4にデータd11〜d14の読み出しが開始されると、バンク制約が発生する。
〔C15〕読み出しコマンドr2により、DRAM#1の該当バンクからデータd15を、DRAM#2の該当バンクからデータd16を、DRAM#3の該当バンクからデータd17を、DRAM#4の該当バンクからデータd18を読み出す。なお、前回の読み出しのときにアクセスしたバンクと同じバンクに対してもアクセスできるように、サイクルC11の読み出し処理で発生したバンク制約が解除された後の、サイクルC15から読み出しを開始している。
〔S4b〕サイクルC15で、DRAM#1〜#4にデータd15〜d18の読み出しが開始されると、バンク制約が発生する。
〔S5b〕書き込みから読み出しへアクセスを切り替えたので、書き込み/読み出し切り替え制約が発生する。
従来のメモリアクセス技術として、送信パケットを構成すべきデータの読み出しと、受信パケットに含まれるデータの書き込みとを両立させる技術が提案されている(特許文献1参照)。
特開2002−344502号公報(段落番号〔0033〕、〔0034〕、第1図)
上記のように、DRAMのアクセス制御では、1つのバンクにアクセスすると、そのバンクに再度アクセスするには待ち時間が発生する。したがって、パケットをセグメントに分割する場合、分割方法として例えば、4バンク構成のシリアルインタフェースに対しては、バンクb1→b2→b3→b4までアクセスすると、再びバンクb1からアクセスして1周(巡回)するように、バンクを1周して書き込まれるデータ量、またはバンクを1周して読み出されるデータ量を基準にして、パケットをセグメント単位に分割する。バンク1周分のデータ量で分割した場合、1セグメント=アクセス単位×バンク数となる。
図18はパケットの構成を示す図である。DRAMのバンク数を4とする。パケットデータp1aは、セグメントs1a、s2aから構成される。セグメントs1aは、データd1〜d4で構成され、セグメントs2aは、データd5〜d8で構成される。各データは、アクセス単位と等しいとすると、セグメントs1a、s2aはすべて、1セグメント=アクセス単位×バンク数となっている。
また、パケットデータp2aは、セグメントs11a、s12aから構成される。セグメントs11aは、データd1〜d4で構成され、セグメントs12aは、データd5のみで構成される。パケットデータp2aの構成は、セグメントs11aのみがアクセス単位×バンク数となっている。
図16、図17で上述したような、従来のDRAMアクセス制御では、パケットデータp1aのように、アクセス単位×バンク数となるセグメントのみで構成されるパケットの処理を行う場合には、DRAMへの転送レートは低下しない。
しかし、パケットデータp2aのような、アクセス単位×バンク数となるセグメント(セグメントs11a)以外のセグメント(セグメントs12a)も含むパケットの処理を行う場合には、DRAMへの転送レートは低下することになる。
図19は転送レートの低下が起きる理由を説明するための図である。
〔C1、C3、C5、C7〕書き込みコマンドw1〜w4により、セグメントs11aの書き込み処理として、バンクb1にデータd1を書き込み、バンクb2にデータd2を書き込み、バンクb3にデータd3を書き込み、バンクb4にデータd4を書き込む。また、それぞれの書き込み処理に対してバンク制約が発生する。
〔C9〕書き込みコマンドw5により、セグメントs12aの書き込み処理として、バンクb1にデータd5を書き込む。
〔C11、C13、C15〕セグメント単位での書き込みアクセス処理により、サイクルC11、C13、C15においてもバンクb2〜b4に対する書き込みコマンドが発生するが、実際には、書き込むべきデータは存在しないので、この部分のサイクルはアイドルサイクルとなる。
このように、アクセス単位×バンク数で、パケットデータを余りなく分割できないパケットに対して、セグメント単位で書き込み/読み出し処理を行う場合、アイドルサイクル(無駄な空きアクセス)が発生し、転送レートが低下することになる。
ここで、1個のDRAMへのアクセスインタフェースのクロック速度がS、データバスによる書き込み速度および読み出し速度が共にNの性能を持っているとすると(NはSに比例)、図18のパケットデータp2aを連続疎通させた場合、転送レートはN×5/8まで劣化、すなわちN×5/8までしか転送レートを上げられない(図19からわかるように、パケットデータp2aを構成するデータ数は8で、アイドルサイクルが発生せずに継続して書き込みまたは読み出しが可能なデータ数は5である)。仮にパケットデータp2aが性能上ワーストケースであり、Nが装置保障の実行データレートとすると、クロックスピードはS×8/5まで上昇させる必要がある。
例えば、メモリインタフェースの保証すべき実行データレートを、10Gbpsとし(書き込みおよび読み出しの保証データレートを共に10Gbps)、1つのDRAMに対してデータバス5本を使って、1本のデータバスのクロック速度を200Mbps(=S)とする。
このとき、1つのDRAMに1Gbps(=200Mbps×5)のアクセスができるので、単純にはDRAMは10個となるが、実際には書き込み処理と読み出し処理は、1つのDRAMに同時にはできないので、1つのDRAMに対して、500Mbpsの書き込みアクセスおよび500Mbpsの読み出しアクセスを行うことになり(500Mbps=N)、この場合、書き込みおよび読み出しのデータレートを共に10Gbpsとなるように保証するには、DRAMは20個必要となる(書き込み保証データレート:10Gbps=500Mbps×20、読み出し保証データレート:10Gbps=500Mbps×20、)。
このようなメモリインタフェース状態で、パケットデータp2aを連続疎通させた場合、8サイクルの内、実アクセスは5サイクルなので、書き込み/読み出しの保証すべきレートは500Mbpsであるのに、実際にはそれぞれ500×5/8Mbpsまでしか出せない。
これをデータバスのクロック速度で見れば、実質的には200×5/8Mbpsの低いクロック速度でアクセスしていることになる。このため、アイドルサイクル分も考慮して、目標の10Gbpsのデータレートを出すためには、クロック速度を200×8/5=320Mbpsまで上げる必要がある(なお、上記の数値は、現実的なものではなく、単に説明をわかりやすくするために設定したものである)。
一方、図17で上述した従来のDRAMアクセス制御では、セグメントをアクセス単位×DRAM個数の構成とした場合であるが、図18のパケットデータp2aを疎通させる場合、DRAMの個数が増加することになる。
ここで、装置保障の実行データレートをRとし、DRAMのデータバスによる書き込み速度および読み出し速度が共にQの性能を持っているとすると(QはRに比例)、パケットデータp2aを連続疎通させた場合、転送レートはQ×5/8まで劣化する。このため、DRAMの個数をR/(Q×5/8)個まで増やす必要がある。
例えば、メモリインタフェースの保証すべき実行データレートを、10Gbpsとし(書き込みおよび読み出しの保証データレートを共に10Gbps(=R))、1つのDRAMに対してデータバス5本を使って、1本のデータバスのクロック速度を200Mbpsとする。
このとき、1つのDRAMに500Mbpsの書き込みアクセスおよび500Mbpsの読み出しアクセスを行うので(500Mbps=Q)、書き込みおよび読み出しのデータレートを共に10Gbpsとなるように保証するには、DRAMは20(=10Gbps/500Mbps)個必要となる。
このようなメモリインタフェース状態で、パケットデータp2aを連続疎通させた場合、8データ分のアクセスで5データ分しかアクセスしないので、書き込み/読み出しの保証すべきレートは500Mbpsであるのに、実際にはそれぞれ500×5/8Mbpsまでしか出せない。
したがって、目標の10Gbpsのデータレートを出すためには、DRAMの個数を10Gbps/(500×5/8)Mbps=32個まで増やす必要がある(なお、上記の数値は、現実的なものではなく、単に説明をわかりやすくするために設定したものである)。
上記で説明したように、従来のDRAMのアクセス制御では、実行データレートを保証するために、無駄な空きアクセスが発生することを考慮して、クロック速度やDRAM個数を決定する必要がある(上記では、書き込み/読み出しの切り替え制約については省略したが、実際のメモリインタフェースの設計では、切り替え制約にかかるアイドルサイクルについても考慮して、クロック速度やDRAM個数を決定する)。
しかし、クロック速度には限界が存在するので、実行データレートを保証するのに必要な速度を、必ずしも設定することができるとは限らず、また、DRAM使用数が増えると、コストアップと共にデバイスの入出力数制限やパッケージの実装面積の圧迫、パッケージ上の配線が困難になってしまうなど、装置全体の実現性に影響を与えてしまい、結果として、メモリインタフェース速度を適切に向上させることができないといった問題があった。
本発明はこのような点に鑑みてなされたものであり、書き込み/読み出し効率を向上させ、メモリ個数を削減して、メモリインタフェース速度の向上を図ったメモリ制御装置を提供することを目的とする。
上記課題を解決するために、記憶領域に複数のバンクを持つメモリへのアクセス制御を行うメモリ制御装置が提供される。このメモリ制御装置は、受信したパケットデータをセグメントに分割するセグメント分割と、パケット品質情報の検出処理とを行うパケット分割部と、前記バンクへの格納先のアドレス管理を行うためのアドレス管理テーブルを有し、前記パケット品質情報毎に、前記パケットデータの格納状態を管理するメモリ管理部と、前記セグメントを、前記メモリに書き込み/読み出し可能なアクセス単位のデータに分割し、かつ前記アクセス単位毎の書き込みリクエストおよび読み出しリクエストを生成するセグメント/リクエスト情報分割部と、前記書き込みリクエストにもとづき前記バンクへ前記データを書き込み、前記読み出しリクエストにもとづき前記バンクから前記データを読み出すためのメモリアクセス制御を行うメモリアクセス制御部と、から構成されるメモリ制御部と、を備える。
ここで、メモリアクセス制御部は、生成した書き込みリクエストまたは読み出しリクエストの内、バンク制約が生じてアクセス禁止となったバンクを回避して、アクセス可能なバンクに対応する書き込みリクエストまたは読み出しリクエストを抽出して、メモリに対して書き込み/読み出しアクセスを行う。
本発明のメモリ制御装置は、書き込み/読み出し効率を向上させ、メモリインタフェース速度の向上を図る。
以下、本発明の実施の形態を図面を参照して説明する。図1はメモリ制御装置の原理図である。メモリ制御装置1は、パケット分割部11、メモリ管理部12、スケジューラ13、出力振り分け部14、メモリ制御部2から構成される。また、メモリ制御装置1には、メモリ(DRAM)3−1〜3−nを含むメモリ部3(パケットバッファに該当)が接続される。
パケット分割部11は、受信したパケットデータをセグメント(セグメントデータとも表記する)に分割するセグメント分割と、パケット品質情報の検出処理とを行う。メモリ管理部12は、バンクへの格納先のアドレス管理を行うためのアドレス管理テーブル12aを有し、パケット品質情報毎に、パケットデータの格納状態を管理する。
メモリ制御部2は、セグメント/リクエスト情報分割部2a、メモリアクセス制御部20、セグメント組立部2bから構成される。セグメント/リクエスト情報分割部2aは、セグメントを、メモリ3−1〜3−nに書き込み/読み出し可能なアクセス単位のデータに分割し、アクセス単位毎の書き込みリクエストおよび読み出しリクエストを生成する。メモリアクセス制御部20は、書き込みリクエストにもとづきバンクへデータを書き込み、読み出しリクエストにもとづきバンクからデータを読み出すためのメモリアクセス制御を行う。
スケジューラ13は、メモリ管理部12を介して通知されたパケット品質情報にもとづいて、データの読み出し順を決定し、メモリ管理部12へ送信する。出力振り分け部14は、セグメント組立部2bで再構築された後のセグメントデータを後段の所定の処理部へ送信する。
ここで、メモリアクセス制御部20は、生成した書き込みリクエストまたは読み出しリクエストの内、バンク制約が生じてアクセス禁止となったバンクを回避して、アクセス可能なバンクに対応する書き込みリクエストまたは読み出しリクエストを抽出して、メモリ3−1〜3−nに対して書き込み/読み出しアクセスを行う。
次に各構成要素について詳しく説明する。最初にパケット分割部11について説明する。図2はパケット分割を示す図である。パケット分割部11は、パケットデータをセグメントと呼ばれるブロックに分割してメモリ制御部2へ送信する。
パケットデータp1は、セグメントs1、s2に分割され、パケットデータp2は、セグメントs11、s12に分割されている。また、パケット分割部11は、パケットヘッダからパケット品質情報(QoS−ID、クラス情報など)を認識して、メモリ管理部12へ送信する。
次にメモリ部3およびメモリ管理部12について説明する。図3はメモリ3−1〜3−nの内部領域の構成を示す図であり、図4はセグメントのページ領域を示す図である。メモリ部3は、DRAM#1〜#nで構成される。また、DRAMのメモリサイズは、QoS性能から装置内で滞留するパケットの数にもとづき決定される。
各DRAMは、バンクb0〜b3の4バンクを有する。パケットデータを格納する場合は、各セグメントをページ領域に分けて、ページ単位で格納し、格納結果はメモリ管理部12で管理される。
なお、図3中に示す一番小さな四角枠は、RowアドレスとColumnアドレスで指定される、1ページ分のデータが格納される領域を示している(1つのアクセス単位データまたは複数のアクセス単位データが格納される)。
格納手順としては、異なる番号のDRAMの同一番号のバンクに、同じセグメント内のページ領域のデータを格納していく。例えば、図4のパケットデータp1を例にして説明すると、パケットデータp1は、セグメントs1、s2を持ち、セグメントs1はページP1−1〜P1−6を含み、セグメントs2はページP2−1〜P2−3を含む。
この場合、図3において、パケットデータp1のセグメントs1は、DRAM#1のバンクb0の領域P1−1(s1)にページP1−1は格納され、DRAM#2のバンクb0の領域P1−2(s1)にページP1−2は格納され、DRAM#3のバンクb0の領域P1−3(s1)にページP1−3は格納される。
さらに、DRAM#4のバンクb0の領域P1−4(s1)にページP1−4は格納され、DRAM#5のバンクb0の領域P1−5(s1)にページP1−5は格納され、DRAM#6のバンクb0の領域P1−6(s1)にページP1−6は格納される。このとき、DRAM#7〜#nのバンクb0の領域P1−7(s1)〜P1−n(s1)は空きとなる。
また、セグメントs2は、DRAM#1のバンクb1の領域P2−1(s2)にページP2−1は格納され、DRAM#2のバンクb1の領域P2−2(s2)にページP2−2は格納され、DRAM#3のバンクb1の領域P2−3(s2)にページP2−3は格納される。このとき、DRAM#4〜#nのバンクb1の領域P2−4(s2)〜P2−n(s2)は空きとなる。
図5はアドレス管理テーブル12aの構成を示す図である。メモリ管理部12は、パケット分割部11から送信されたパケット品質情報と、メモリ部3へのパケットデータの格納先のアドレス管理を行うためのアドレス管理テーブル12aを作成して、パケットデータがメモリ部3にどのように格納されているかの状態管理を行う。
アドレス管理テーブル12aは、キューQ#1〜キューQ#nで構成される。ここで、パケット品質情報がQoS−IDとクラス単位を含むものである場合、例えば、QoS−ID=aaとクラス単位=c1のキューは、キューQ#1に対応し、QoS−ID=bbとクラス単位=c2のキューは、キューQ#2に対応するといったように、キューQ#1〜キューQ#nは、パケット品質情報に対応して存在する。
また、1つのキューは、セグメント単位にセグメントテーブル情報(セグメントデータが、メモリ部3にどのように格納されているかを示す情報)を格納する。例えば、図2のパケットデータp1のパケット品質情報に対応するキューがキューQ#2である場合、パケットデータp1のセグメントs1に関するセグメントテーブル情報と、パケットデータp1のセグメントs2に関するセグメントテーブル情報は、キューQ#2のセグメント#1、#2の領域に順に格納される。
一方、図2のパケットデータp2のパケット品質情報に対応するキューがキューQ#1であるならば、パケットデータp2のセグメントs11に関するセグメントテーブル情報と、パケットデータp2のセグメントs12に関するセグメントテーブル情報とは、キューQ#1のセグメント#1、#2の領域に順に格納される。
セグメントテーブル情報は、先頭DRAM番号/バンク番号、Row/Column、セグメント長、セグメントタイプ(先頭、中間、最終)の項目から構成される。先頭DRAM番号/バンク番号は、セグメントが格納されるDRAMの先頭番号と、バンク番号(異なるDRAMの同一番号のバンクに、セグメント内のページは格納されるので、その同一番号)を示す。Row/Columnは、先頭DRAM番号/バンク番号が示す領域のRowアドレス、Columnアドレスを示す。
セグメント長は、1つのセグメントのデータ長である。セグメントタイプは、パケットを構成するセグメントとして、先頭セグメント、中間セグメント、最終セグメントかのいずれかを示す。
例えば、パケットデータp1の場合、セグメントs1、s2の2つのセグメントから構成されるので、セグメントs1は先頭セグメント、セグメントs2は最終セグメントとなる。
ここで、パケットデータp1を、図3で上述したようにメモリ部3に格納した場合のセグメントテーブル情報は、(セグメントs1:先頭DRAM番号/バンク番号=DRAM#1/b0、該当のRowアドレス/Columnアドレス、セグメントs1のセグメント長、先頭)、(セグメントs2:先頭DRAM番号/バンク番号=DRAM#2/b1、該当のRowアドレス/Columnアドレス、セグメントs2のセグメント長、最終)となり、例えば、キューQ#1のセグメント#1、#2に対して、これらのセグメントテーブル情報が各々格納される。
図6はアドレス管理テーブル12aへの格納動作を示す図である。パケットデータp3は、セグメントs31〜s34から構成され、パケットデータp4はセグメントs41、s42から構成される。パケットデータp3、p4は、同じパケット品質情報を持つパケットであるとして、図に示すようなセグメントテーブル情報が同一のキューに格納される。
図7は書き込み/読み出しリクエスト情報を示す図である。書き込みリクエスト情報Rqwは、セグメントデータをメモリ部3のどの領域に書き込むかの情報が記されたリクエスト情報である。また、読み出しリクエスト情報Rqrは、メモリ部3のどの領域からセグメントデータを読み出すかの情報が記されたリクエスト情報である。書き込みリクエスト情報Rqwと読み出しリクエスト情報Rqrは、共に同じ項目を持つ。
メモリ管理部12は、パケットデータをメモリ部3へ書き込む場合、セグメント単位に書き込みリクエスト情報を作成して、メモリ制御部2へ送信する。書き込みリクエスト情報は、先頭DRAM番号/バンク番号、Row/Column、セグメント長、リクエストIDの項目を持つ。
先頭DRAM番号/バンク番号は、セグメントを書き込むべきDRAMの先頭番号およびバンク番号が記され、Row/Columnは、先頭DRAM番号/バンク番号で示される領域のRowアドレス、Columnアドレスが記される。セグメント長は、書き込むべきセグメントのセグメント長が記される。また、セグメント毎にシーケンシャルなリクエストIDを付与する。
一方、メモリ管理部12は、メモリ部3からパケットデータを読み出す場合、セグメント単位に、読み出しリクエスト情報を作成してメモリ制御部2へ送信する。読み出しリクエスト情報は、先頭DRAM番号/バンク番号、Row/Column、セグメント長、リクエストIDの項目を持つ。
先頭DRAM番号/バンク番号は、読み出すべきセグメントが格納されるDRAMの先頭番号およびバンク番号が記され、Row/Columnは、先頭DRAM番号/バンク番号で示される領域のRowアドレス、Columnアドレスが記される。セグメント長は、読み出しセグメントのセグメント長が記される。また、セグメント毎にシーケンシャルなリクエストIDが付与される。
なお、メモリ管理部12における読み出しリクエスト情報の作成までの流れとしては、まず、スケジューラ13が次に読み出すキューを決定して、そのキューのキューIDをメモリ管理部12へ送信する。
メモリ管理部12は、受信したキューIDからアドレス管理テーブル12aを引き、格納されているセグメントテーブル情報を抽出する。そして、シーケンシャルなリクエストIDをセグメントタイプの先頭から最終まで付与して、読み出しリクエスト情報を作成し、メモリ制御部2に送信する。
次にメモリ制御部2について説明する。メモリ制御部2では、パケット分割部11から受信したセグメントデータを、メモリ管理部12から送信された書き込みリクエスト情報にもとづいて、メモリ部3へ書き込む。また、スケジューリング後のセグメントデータを読み出すために、メモリ管理部12から送信された読み出しリクエスト情報にもとづいて、メモリ部3から読み出す。
図8はメモリ制御部2の構成を示す図である。メモリ制御部2は、セグメント/リクエスト情報分割部2a、メモリアクセス制御部20−1〜20−n、セグメント組立部2bから構成される。
メモリアクセス制御部20−1〜20−nは、DRAM個数に対応して設置され、1つのメモリアクセス制御部は、データFiFo(First In First Out memory)21(データメモリに該当)、書き込みリクエストFiFo22(書き込みリクエストメモリに該当)、読み出しリクエストFiFo23(読み出しリクエストメモリに該当)、FiFo選択制御部24(メモリ選択制御部に該当)、メモリIF(interface)部25から構成される。
なお、データFiFo21、書き込みリクエストFiFo22、読み出しリクエストFiFo23はそれぞれ、DRAMバンク数と同じ数分配置される。例えば、4バンク構成のDRAM個数が6個あるならば、メモリアクセス制御部は6個存在し、1つのメモリアクセス制御部内にデータFiFo21は4個配置するので、全体では24個(=4×6)のデータFiFo21が必要となる。書き込みリクエストFiFo22および読み出しリクエストFiFo23についても同様である。
メモリIF部25は、メモリアクセス制御部20−1〜20−nとメモリ部3とのインタフェース制御を行う。例えば、メモリアクセス制御部20−1〜20−nから出力されたコマンドおよびアドレスをメモリ部3のインタフェースに沿ったデータ形式に変換したり、または書き込みデータのDDR(Double Data Rate)化やメモリ部3から読み出しデータの抽出を行う。
次にセグメント/リクエスト情報分割部2aについて説明する。セグメント/リクエスト情報分割部2aは、受信したセグメントデータをDRAMのアクセス単位に分割し、分割したデータにシリアルナンバー(SN)を付与する。そして、受信した書き込みリクエスト情報にもとづいて、後段に位置する該当メモリアクセス制御部内のデータFiFo21へ振り分ける。
また、このとき、アクセス単位に分割されたデータ毎に対応する書き込みリクエストを生成し、書き込みリクエストにシリアルナンバーを付与して、後段に位置する該当メモリアクセス制御部内の書き込みリクエストFiFo22へ振り分ける。
さらに、読み出しリクエスト情報を受信した場合は、アクセス単位に分割されたデータ毎に対応する読み出しリクエストを生成し、読み出しリクエストにシリアルナンバーを付与して、後段に位置する該当メモリアクセス制御部内の読み出しリクエストFiFo23へ振り分ける。
図9はセグメントデータおよび書き込みリクエストの振り分け動作を示す図である。なお、4バンク(バンク#0〜#3)構成のDRAMが6個(DRAM#1〜#6)配置されているとする。セグメント/リクエスト情報分割部2aは、セグメントs1をDRAMアクセス単位であるページ領域P1−1〜P1−6に分割する。
ここで、セグメントs1に対して、セグメント/リクエスト情報分割部2aは、リクエストID=1の書き込みリクエスト情報を受信して、この書き込みリクエスト情報に、先頭DRAM#1、バンク#2、Row/Column=A/Bが記載されていたとする。
この場合、DRAM格納先は、先頭DRAM#1およびバンク#2と認識できるので、ページP1−1をDRAM#1/バンク#2に該当するデータFiFoへ送信する。すなわち、DRAM#1用のメモリアクセス制御部内に配置されているデータFiFo21の中の、バンク#2に対応するデータFiFoへページP1−1を送信するということである。
一方、セグメント/リクエスト情報分割部2aは、ページP1−1の格納先のDRAM#1/バンク#2のRow/Columnアドレスとシリアルナンバー(m)とをページP1−1に対する書き込みリクエスト(書き込みリクエストW1とする)として生成し(書き込みリクエストは、アクセス単位毎に(ページ単位毎に)生成される)、この書き込みリクエストW1をDRAM#1/バンク#2に該当する書き込みリクエストFiFoへ送信する。
すなわち、DRAM#1用のメモリアクセス制御部内に配置されている書き込みリクエストFiFo22の中の、バンク#2に対応する書き込みリクエストFiFoへ書き込みリクエストW1を送信する。
次にページP1−2のDRAM格納先は、DRAM#2およびバンク#2と認識できるので(先頭DRAM番号が#1であったので、次の格納先はDRAM#2とわかる、なお、バンクについては上述したようにすべて同一番号のバンクを用いる)、ページP1−2をDRAM#2/バンク#2に該当するデータFiFoへ送信する。
すなわち、DRAM#2用のメモリアクセス制御部内に配置されているデータFiFo21の中の、バンク#2に対応するデータFiFoへページP1−2を送信する。
そして、セグメント/リクエスト情報分割部2aは、ページP1−2の格納先のDRAM#2/バンク#2のRow/Columnアドレスとシリアルナンバー(m+1)とをページP1−2に対する書き込みリクエスト(書き込みリクエストW2とする)として生成し、この書き込みリクエストW2をDRAM#2/バンク#2に該当する書き込みリクエストFiFoへ送信する。
すなわち、DRAM#2用のメモリアクセス制御部内に配置されている書き込みリクエストFiFo22の中の、バンク#2に対応する書き込みリクエストFiFoへ書き込みリクエストW2を送信する。
以降同様にして、ページP1−3〜P1−6と、これらに対応する書き込みリクエストとが、該当FiFoへ振り分けられる。先頭DRAM番号が#1から始まったので、その後シーケンシャルに、DRAM#2→DRAM#3→DRAM#4→DRAM#5→DRAM#6と振り分けられている。
なお、書き込みリクエスト情報にはセグメント長が記載されているので、そのセグメント長をアクセス単位で割った個数分の書き込みリクエストが、先頭DRAM番号にもとづきシーケンシャルに生成されるものである。
次にセグメント/リクエスト情報分割部2aは、セグメントs2をDRAMアクセス単位であるページ領域P2−1〜P2−3に分割する。セグメントs2に対して、セグメント/リクエスト情報分割部2aは、リクエストID=2の書き込みリクエスト情報を受信して、この書き込みリクエスト情報に、先頭DRAM#3、バンク#3、Row/Column=C/Dが記載されていたとする。
この場合、DRAM格納先は、先頭DRAM#3およびバンク#3と認識できるので、ページP2−1をDRAM#3/バンク#3に該当するデータFiFoへ送信する。すなわち、DRAM#3用のメモリアクセス制御部内に配置されているデータFiFo21の中の、バンク#3に対応するデータFiFoへページP2−1を送信する。
そして、セグメント/リクエスト情報分割部2aは、ページP2−1の格納先のDRAM#3/バンク#3のRow/Columnアドレスとシリアルナンバー(m+6)とをページP2−1に対する書き込みリクエスト(書き込みリクエストW3とする)として生成し、この書き込みリクエストW3をDRAM#3/バンク#3に該当する書き込みリクエストFiFoへ送信する。
すなわち、DRAM#3用のメモリアクセス制御部内に配置されている書き込みリクエストFiFo22の中の、バンク#3に対応する書き込みリクエストFiFoへ書き込みリクエストW3を送信する。
以降同様にして、ページP2−2、P2−3と、これらに対応する書き込みリクエストとが、該当FiFoへ振り分けられる(先頭DRAM番号が#3から始まったので、その後シーケンシャルに、DRAM#4→DRAM#5と振り分けられる)。
図10は読み出しリクエストの振り分け動作を示す図である。セグメント/リクエスト情報分割部2aは、リクエストID=1の読み出しリクエスト情報を受信して、この読み出しリクエスト情報に、先頭DRAM#5、バンク#4、Row/Column=E/Fが記載されていたとする。
この場合、DRAM読み出し先は、先頭DRAM#5およびバンク#4と認識できるので、読み出し先のDRAM#5/バンク#4のRow/Columnアドレスとシリアルナンバー(n)とを読み出しリクエスト(読み出しリクエストR1とする)として生成し(読み出しリクエストは、アクセス単位毎に(ページ単位毎に)生成される)、DRAM#5/バンク#4に該当する読み出しリクエストFiFoへ送信する。
すなわち、DRAM#5用のメモリアクセス制御部内に配置されている読み出しリクエストFiFo23の中の、バンク#4に対応する読み出しリクエストFiFoへ読み出しリクエストR1を送信する。
以降同様にして、読み出しリクエストが該当読み出しFiFoへ振り分けられる。先頭DRAM番号が#5から始まったので、その後シーケンシャルに、DRAM#6→DRAM#1→DRAM#2と振り分けられる。
なお、読み出しリクエスト情報にはセグメント長が記載されているので、そのセグメント長をアクセス単位で割った個数分の読み出しリクエストが、先頭DRAM番号にもとづきシーケンシャルに生成されるものである。リクエストID=2、3の読み出しリクエスト情報にもとづく読み出しリクエストの生成および振り分けについても以降同様にして行われるので説明は省略する。
次にFiFo選択制御部24について説明する。図11はFiFo選択制御部24の構成を示す図である。FiFo選択制御部24は、FiFo選択部24a(メモリ選択部に該当)、リフレッシュ管理部24b、書き込み/読み出し切り替え管理部(以下、W/R切り替え管理部)24c、バンク待ち受け管理部24dから構成される。
FiFo選択部24aは、リフレッシュ管理部24b、W/R切り替え管理部24c、バンク待ち受け管理部24dによって通知された内容にもとづいて、FiFo選択制御を行う。
基本的なFiFo選択制御では、書き込みリクエストFiFo22および読み出しリクエストFiFo23から出力される書き込みリクエストおよび読み出しリクエスト中のシリアルナンバーによって、次に選択すべきリクエストFiFoを決定する。そして、DRAMへアクセスするためのコマンド(書き込みコマンド/読み出しコマンド/リフレッシュコマンド)と、アドレス(バンク番号/Rowアドレス/Columnアドレス)を生成する。
リフレッシュ管理部24bでは、DRAMは内部記憶情報を保持するため、定期的にリフレッシュ(DRAMの記憶素子に電荷を補充してデータ損失を防ぐ動作)を行う必要があるので、一定の時間間隔でリフレッシュ指示をFiFo選択部24aへ送信する。
FiFo選択部24aは、リフレッシュ指示を受信すると、実際のリフレッシュをかけるためのリフレッシュコマンドを該当DRAMへ送信する。ただし、DRAMへの書き込みアクセス中にリフレッシュ指示を受信したときには、書き込みアクセスから読み出しアクセスへ切り替わるまで、リフレッシュ動作を待たせておき(リフレッシュコマンドを出力しないでおき)、書き込みリクエストFiFo22の選択が終了して、書き込みアクセスから読み出しアクセスへ切り替える時に、リフレッシュコマンドをDRAMへ送信する。
同様に、DRAMへの読み出しアクセス中にリフレッシュ指示を受信したときには、読み出しアクセスから書き込みアクセスへ切り替わるまで、リフレッシュ動作を待たせておき(リフレッシュコマンドを出力しないでおき)、読み出しリクエストFiFo23の選択が終了して、読み出しアクセスから書き込みアクセスへ切り替える時に、リフレッシュコマンドをDRAMへ送信する。
W/R切り替え管理部24cは、DRAMへの書き込みアクセスおよび読み出しアクセスを均等にするための制御を行う。制御方法としては、DRAMに対する書き込みコマンド回数と読み出しコマンド回数とをカウントして、カウント値が規定数に達したときには、書き込みから読み出しへ、または読み出しから書き込みへのアクセス切り替えを行うように、切り替え指示をFiFo選択部24aへ出力する。
例えば、DRAMに書き込みアクセスを連続して行っているときに、書き込みアクセス回数が規定数に達した場合は、次のアクセスから読み出しアクセスに切り替えるように切り替え指示を出力する。FiFo選択部24aでは、W/R切り替え管理部24cから書き込み指示を受けている場合には、書き込みリクエストFiFo22を選択し、読み出し指示を受けている場合には、読み出しリクエストFiFo23を選択する。
バンク待ち受け管理部24dは、図16、図17で上述したバンク制約を管理するものであり、各バンクに対して、どのバンクが現在アクセス可能で、どのバンクが現在アクセス禁止かを示すアクセス状態信号をFiFo選択部24aへ送信する。FiFo選択部24aでは、アクセス状態信号を受信すると、各バンクのバンク制約状態を認識し、アクセス禁止でないバンクのリクエストFiFoを選択する。
図12はFiFo選択部24aのアクセス・スケジューリングを示す図である。書き込みリクエストFiFo22の出力先頭位置に、書き込みリクエストFiFo(バンク#0)には、書き込みリクエスト(m+1)が格納され、書き込みリクエストFiFo(バンク#1)には、書き込みリクエスト(m)が格納され、書き込みリクエストFiFo(バンク#2)には、書き込みリクエスト(m+3)が格納され、書き込みリクエストFiFo(バンク#3)には、書き込みリクエスト(m+4)が格納されているとする。なお、括弧内の表記は、書き込みリクエストのシリアルナンバーを示す。
一方、読み出しリクエストFiFo23の出力先頭位置に、読み出しリクエストFiFo(バンク#0)には、読み出しリクエスト(n+3)が格納され、読み出しリクエストFiFo(バンク#1)には、読み出しリクエスト(n)が格納され、読み出しリクエストFiFo(バンク#2)には、読み出しリクエスト(n+1)が格納され、読み出しリクエストFiFo(バンク#3)には、読み出しリクエスト(n+2)が格納されているとする。なお、括弧内の表記は、読み出しリクエストのシリアルナンバーを示す。また、図中、バンク制約時間(バンクアクセス禁止時間)を2アクセス単位分の時間としている。
〔S1〕W/R切り替え管理部24c、バンク待ち受け管理部24dおよびリフレッシュ管理部24bからのスケジューリング通知として、書き込み指示が出され、バンク#0〜#3はすべてアクセス可能状態(OK)であり、リフレッシュ指示はDisable(リフレッシュは行わない)となっている。
書き込みリクエストFiFo(バンク#0〜バンク#3)から読み出させる書き込みリクエストのシリアルナンバーは、m+1、m、m+3、m+4であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーmが格納されている書き込みリクエストFiFo(バンク#1)を選択し、書き込みリクエストFiFo(バンク#1)から書き込みリクエスト(m)を抽出する。
そして、抽出した書き込みリクエスト(m)にもとづいて、書き込みコマンドおよび書き込みアドレス(バンク#1/Row/Column)を生成し、DRAMへ送信する(メモリIF部25を介して、該当のデータをデータFiFo21から読み出して、書き込みコマンドおよび書き込みアドレスを用いて、DRAMへの書き込み処理が行われる)。
なお、図中の、アドレス表記の箇所の例えば、〔m〕とは、シリアルナンバーmのリクエストに関するアドレス(ここでは、バンク#1とバンク#1のRow/Columnアドレス)であることを示す。
〔S2〕スケジューリング通知として、書き込み指示が出される。また、バンク#1はアクセス禁止となり、バンク#0、#2、#3はアクセス可能である。リフレッシュ指示はDisableである。
バンク#0、#2、#3に対応する書き込みリクエストFiFo(バンク#0、#2、#3)から読み出せる書き込みリクエストのシリアルナンバーは、m+1、m+3、m+4であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーm+1が格納されている書き込みリクエストFiFo(バンク#0)を選択し、書き込みリクエストFiFo(バンク#0)から書き込みリクエスト(m+1)を抽出する。そして、抽出した書き込みリクエスト(m+1)にもとづいて、書き込みコマンドおよび書き込みアドレス(バンク#0/Row/Column)を生成し、DRAMへ送信する。
〔S3〕スケジューリング通知として、書き込み指示が出される。また、バンク#0、#1はアクセス禁止となり、バンク#2、#3はアクセス可能である。リフレッシュ指示はDisableである。
バンク#2、#3に対応する書き込みリクエストFiFo(バンク#2、#3)から読み出せる書き込みリクエストのシリアルナンバーは、m+3、m+4であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーm+3が格納されている書き込みリクエストFiFo(バンク#2)を選択し、書き込みリクエストFiFo(バンク#2)から書き込みリクエスト(m+3)を抽出する。そして、抽出した書き込みリクエスト(m+3)にもとづいて、書き込みコマンドおよび書き込みアドレス(バンク#2/Row/Column)を生成し、DRAMへ送信する。
〔S4〕スケジューリング通知として、書き込み指示が出される。バンク#1のバンク制約は解除されてアクセス可能となる、また、バンク#0、#2はアクセス禁止となり、バンク#3はアクセス可能である。リフレッシュ指示はDisableである。
バンク#1、#3に対応する書き込みリクエストFiFo(バンク#1、#3)から読み出せる書き込みリクエストのシリアルナンバーは、m+2、m+4であるので(書き込みリクエストFiFo(バンク#1)の2番目には書き込みリクエスト(m+2)が格納されている)、FiFo選択部24aは、最も番号の若いシリアルナンバーm+2が格納されている書き込みリクエストFiFo(バンク#1)を選択し、書き込みリクエストFiFo(バンク#1)から書き込みリクエスト(m+2)を抽出する。そして、抽出した書き込みリクエスト(m+2)にもとづいて、書き込みコマンドおよび書き込みアドレス(バンク#1/Row/Column)を生成し、DRAMへ送信する。
〔S5〕スケジューリング通知として、書き込み指示から読み出し指示へ切り替わる。バンク#0のバンク制約は解除されてアクセス可能となる、また、バンク#1、#2はアクセス禁止となり、バンク#3はアクセス可能である。リフレッシュ指示はDisableである。
なお、書き込みから読み出しへの切り替えが生じたので、切り替え制約が発生し、FiFo選択部24aは、切り替え制約が終わるまでFiFo選択の動作を停止する。したがって、コマンドおよびアドレスの出力も行わない。
〔S6〕切り替え制約が終了する。スケジューリング通知として、読み出し指示が出される。バンク#2のバンク制約は解除されてアクセス可能となる、また、バンク#1はアクセス禁止となり、バンク#0、#3はアクセス可能である。リフレッシュ指示はEnable(リフレッシュを行う)である。
バンク#0、#2、#3に対応する読み出しリクエストFiFo(バンク#0、#2、#3)から読み出せる読み出しリクエストのシリアルナンバーは、n+3、n+1、n+2であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーn+1が格納されている読み出しリクエストFiFo(バンク#2)を選択し、読み出しリクエストFiFo(バンク#2)から読み出しリクエスト(n+1)を抽出する。
そして、抽出した読み出しリクエスト(n+1)にもとづいて、読み出しコマンドおよび読み出しアドレス(バンク#2/Row/Column)を生成して、DRAMへ送信し、該当データを読み出す(メモリIF部25を介して、読み出しコマンドおよび読み出しアドレスを用いて、DRAMからの読み出し処理が行われる)。
なお、ここでは、リフレッシュ指示がEnableとなったので、本来はDRAMに対してリフレッシュコマンドを送信するのであるが、現在は読み出しアクセスの途中なので、読み出しアクセスが終わるまで、リフレッシュコマンドは出力しない。
〔S7〕スケジューリング通知として、読み出し指示が出される。バンク#2はアクセス禁止となり、バンク#0、#1、#3はアクセス可能である。リフレッシュ指示はEnableである(ステップS6でEnableを受信してから、FiFo選択部24aはリフレッシュコマンドを出していないので、リフレッシュ管理部24bでは、Enableのリフレッシュ指示を継続して出力している)。
バンク#0、#1、#3に対応する読み出しリクエストFiFo(バンク#0、#1、#3)から読み出せる読み出しリクエストのシリアルナンバーは、n+3、n、n+2であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーnが格納されている読み出しリクエストFiFo(バンク#1)を選択し、読み出しリクエストFiFo(バンク#1)から読み出しリクエスト(n)を抽出する。そして、抽出した読み出しリクエスト(n)にもとづいて、読み出しコマンドおよび読み出しアドレス(バンク#1/Row/Column)を生成して、DRAMへ送信し、該当データを読み出す。
〔S8〕スケジューリング通知として、読み出し指示が出される。バンク#1、#2はアクセス禁止となり、バンク#0、#3はアクセス可能である。リフレッシュ指示はEnableである。
バンク#0、#3に対応する読み出しリクエストFiFo(バンク#0、#3)から読み出せる読み出しリクエストのシリアルナンバーは、n+3、n+2であるので、FiFo選択部24aは、最も番号の若いシリアルナンバーn+2が格納されている読み出しリクエストFiFo(バンク#3)を選択し、読み出しリクエストFiFo(バンク#3)から読み出しリクエスト(n+2)を抽出する。そして、抽出した読み出しリクエスト(n+2)にもとづいて、読み出しコマンドおよび読み出しアドレス(バンク#3/Row/Column)を生成して、DRAMへ送信し、該当データを読み出す。
〔S9〕スケジューリング通知として、読み出し指示が出される。バンク#1、#3はアクセス禁止となり、バンク#0、#2はアクセス可能である。リフレッシュ指示はEnableである。
バンク#0、#2に対応する読み出しリクエストFiFo(バンク#0、#2)から読み出せる読み出しリクエストのシリアルナンバーは、n+3、n+4であるので(読み出しリクエストFiFo(バンク#3)の2番目には読み出しリクエスト(n+4)が格納されている)、FiFo選択部24aは、最も番号の若いシリアルナンバーn+3が格納されている読み出しリクエストFiFo(バンク#0)を選択し、読み出しリクエストFiFo(バンク#0)から読み出しリクエスト(n+3)を抽出する。そして、抽出した読み出しリクエスト(n+3)にもとづいて、読み出しコマンドおよび読み出しアドレス(バンク#0/Row/Column)を生成して、DRAMへ送信し、該当データを読み出す。
〔S10〕スケジューリング通知として、読み出し指示から書き込み指示へ切り替わる。バンク#0、#3はアクセス禁止となり、バンク#1、#2はアクセス可能である。FiFo選択部24aは、読み出しアクセスが終了し、書き込みアクセスへ移行することを認識すると、リフレッシュコマンドを該当DRAMへ送信する。したがって、リフレッシュコマンドが出されたことで、リフレッシュ管理部24bは、リフレッシュ指示をDisableとする。
次にセグメント組立部2bについて説明する。DRAMから読み出されるデータは、元の順番どおりに読み出されるものとは限らないので、セグメント組立部2bでは、メモリ部3から送信された読み出しデータを一旦保持し、セグメント/リクエスト情報分割部2aから送信される分割情報にもとづいて、読み出しデータを元の順番に並び替えて、セグメントを組み立てて再構築した後に、セグメントデータを出力する。
図13はセグメント組立部2bの動作を示す図であり、図14は分割情報を示す図である。セグメント組立部2bに対して、時間t1で読み出しデータ(n+1)が到着し、時間t2で読み出しデータ(n)が到着し、時間t3で読み出しデータ(n+2)が到着し、時間t4で読み出しデータ(n+5)が到着し、時間t5で読み出しデータ(n+4)が到着し、時間t6で読み出しデータ(n+3)が到着するものとする。なお、括弧内の表記は読み出しデータのシリアルナンバーである。
一方、セグメント/リクエスト情報分割部2aからセグメント組立部2bに分割情報が送信される。分割情報は、リクエストID、先頭シリアルナンバー、分割数の項目から構成される。
図14に示す、分割情報D1は、リクエストID=1、先頭シリアルナンバー=n、分割数=4となっている。これはリクエストID=1のセグメントに対して、先頭のシリアルナンバーはnであり、このセグメントは4つのデータに分割されていることを示している。
また、分割情報D2は、リクエストID=2、先頭シリアルナンバー=n+4、分割数=2となっている。これはリクエストID=2のセグメントに対して、先頭のシリアルナンバーはn+4であり、このセグメントは2つのデータに分割されていることを示している。
セグメント組立部2bは、読み出しデータを保持する保持メモリ2b−1を有し、保持メモリ2b−1は、シリアルナンバー毎に格納領域が区分けされており、到着した読み出しデータは同一シリアルナンバーの領域に格納されて保持される。
〔t1〕時間t1で到着した読み出しデータ(n+1)は、格納領域(n+1)に格納される。
〔t2〕時間t2で到着した読み出しデータ(n)は、格納領域(n)に格納される。
〔t3〕時間t3で到着した読み出しデータ(n+2)は、格納領域(n+2)に格納される。
〔t4〕時間t4で到着した読み出しデータ(n+5)は、格納領域(n+5)に格納される。
〔t5〕時間t5で到着した読み出しデータ(n+4)は、格納領域(n+4)に格納される。セグメント組立部2bは、分割情報D2から、読み出しデータ(n+4)と読み出しデータ(n+5)は、1つのセグメントを構成することを認識する。ただし、ここでは、このセグメントは、リクエストID=2であるため、リクエストID=1のセグメントが構成されないうちは、リクエストID=2のセグメントを保持しておき、出力は行わない。
〔t6〕時間t6で到着した読み出しデータ(n+3)は、格納領域(n+3)に格納される。セグメント組立部2bは、分割情報D1から、読み出しデータ(n)〜読み出しデータ(n+3)は、リクエストID=1の1つのセグメントを構成することを認識する。そして、リクエストID=1のセグメントデータを出力し、その後、リクエストID=2のセグメントデータも出力する。
このように、セグメント組立部2bでは、セグメント単位ですべてのデータが到着するのを待ち、また、リクエストIDの状態監視を行ってリクエストID順にセグメントデータを出力する。上記のような制御を行って、パケットデータを再構築することにより、到着順序とは異なる順序でパケットを出力するQoS制御を実行した場合でも、パケット読み出し順序を保証することが可能になる。
次にメモリ制御装置1を適用した装置例としてパケットスイッチ装置の構成について示す。図15はパケットスイッチ装置の構成を示す図である。パケットスイッチ装置50は、受信側インタフェースカード51−1〜51−n、スイッチデバイス52、送信側インタフェースカード53−1〜53−nから構成される。
受信側インタフェースカード51−1〜51−nはそれぞれ、物理(PHY)/MAC(Media Access Control)処理部51a、トラフィックマネージャ51bから構成され、トラフィックマネージャ51bに、メモリ制御装置1およびメモリ部3が搭載する。
スイッチデバイス52は、n×nスイッチ52−1〜52−mから構成される。送信側インタフェースカード53−1〜53−nはそれぞれ、MAC/物理(PHY)処理部53a、トラフィックマネージャ53bから構成され、トラフィックマネージャ53bに、メモリ制御装置1およびメモリ部3が搭載する。
受信側インタフェースカード51−1〜51−nにおいて、PHY/MAC処理部51aは、GbE/10GbE(GbE:ギガビットイーサネット(イーサネットは登録商標))の物理層における受信処理および受信MAC処理を行う。トラフィックマネージャ51bは、入力データ処理を行う(QoS制御を含む)。
送信側インタフェースカード53−1〜53−nにおいて、トラフィックマネージャ53bは、出力データ処理を行う(QoS制御を含む)。MAC/PHY処理部53aは、GbE/10GbEの物理層における送信処理および送信MAC処理を行う。スイッチデバイス52のn×nスイッチ52−1〜52−mは、トラフィックマネージャ51bから出力されるデータの中のスイッチング情報にもとづいて、スイッチ処理を行い、該当宛先の送信側インタフェースカードへ送信する。
以上説明したように、アクセス制限を持つメモリ3−1〜3−nに、パケットデータを書き込み、スケジューラ13のQoS制御により読み出し順序を決定して、メモリ3−1〜3−nからデータを読み出す構成のメモリ制御装置1において、受信したパケットデータを一定のアクセス単位に分割してデータFiFo21に格納し、書き込みリクエストを書き込みリクエストFiFo22に格納し、読み出しリクエストを読み出しリクエストFiFo23に格納する。
そして、バンク制約が生じてアクセス禁止となったバンクを回避して、アクセス可能なバンクに対応する書き込みリクエストFiFo22からアクセス単位の書き込みリクエストを抽出し、またはアクセス可能なバンクに対応する読み出しリクエストFiFo23からアクセス単位の読み出しリクエストを抽出して、メモリ3−1〜3−nに対して書き込み/読み出しアクセスを行う構成とした。
これにより、アクセス単位毎に書き込みリクエストおよび読み出しリクエストを、アクセス可能なバンクに対して発生させるので、従来のDRAMアクセス制御のように、無駄な空きアクセスが生じることはなく、バンク制約時のアクセス停止時間と空アクセスを削減することができ、メモリインタフェース速度の向上を図ることが可能になる。また、1つのメモリに対するデータ送受信効率が上がり、実行レートの向上と使用するメモリ個数の削減も可能になる。
メモリ制御装置の原理図である。 パケット分割を示す図である。 メモリの内部領域の構成を示す図である。 セグメントのページ領域を示す図である。 アドレス管理テーブルの構成を示す図である。 アドレス管理テーブルへの格納動作を示す図である。 書き込み/読み出しリクエスト情報を示す図である。 メモリ制御部の構成を示す図である。 セグメントデータおよび書き込みリクエストの振り分け動作を示す図である。 読み出しリクエストの振り分け動作を示す図である。 FiFo選択制御部の構成を示す図である。 FiFo選択部のアクセス・スケジューリングを示す図である。 セグメント組立部の動作を示す図である。 分割情報を示す図である。 パケットスイッチ装置の構成を示す図である。 DRAMインタフェースのタイムチャートを示す図である。 DRAMインタフェースのタイムチャートを示す図である。 パケットの構成を示す図である。 転送レートの低下が起きる理由を説明するための図である。
符号の説明
1 メモリ制御装置
11 パケット分割部
12 メモリ管理部
12a アドレス管理テーブル
13 スケジューラ
14 出力振り分け部
2 メモリ制御部
2a セグメント/リクエスト情報分割部
2b セグメント組立部
20 メモリアクセス制御部
3 メモリ部
3−1〜3−n メモリ

Claims (7)

  1. 記憶領域に複数のバンクを持つメモリへのアクセス制御を行うメモリ制御装置において、
    受信したパケットデータをセグメントに分割するセグメント分割と、パケット品質情報の検出処理とを行うパケット分割部と、
    前記バンクへの格納先のアドレス管理を行うためのアドレス管理テーブルを有し、前記パケット品質情報毎に、前記パケットデータの格納状態を管理するメモリ管理部と、
    前記セグメントを、前記メモリに書き込み/読み出し可能なアクセス単位のデータに分割し、かつ前記アクセス単位毎の書き込みリクエストおよび読み出しリクエストを生成するセグメント/リクエスト情報分割部と、前記書き込みリクエストにもとづき前記バンクへ前記データを書き込み、前記読み出しリクエストにもとづき前記バンクから前記データを読み出すためのメモリアクセス制御を行うメモリアクセス制御部と、から構成されるメモリ制御部と、
    を備え、
    前記メモリアクセス制御部は、生成した前記書き込みリクエストまたは前記読み出しリクエストの内、バンク制約が生じてアクセス禁止となった前記バンクを回避して、アクセス可能な前記バンクに対応する前記書き込みリクエストまたは前記読み出しリクエストを抽出して、前記メモリに対して書き込み/読み出しアクセスを行う、
    ことを特徴とするメモリ制御装置。
  2. 前記メモリアクセス制御部は、
    バンク単位に前記アクセス単位のデータを格納するデータメモリと、
    バンク単位に前記書き込みリクエストを格納する書き込みリクエストメモリと、
    バンク単位に前記読み出しリクエストを格納する読み出しリクエストメモリと、
    前記データを書き込むべき前記バンクに対応する前記書き込みリクエストメモリを選択して、選択した前記書き込みリクエストメモリから前記書き込みリクエストを抽出し、または前記データを読み出すべき前記バンクに対応する前記読み出しリクエストメモリを選択して、選択した前記読み出しリクエストメモリから前記読み出しリクエストを抽出するメモリ選択制御部と、
    を有することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記メモリ選択制御部は、メモリ選択部、書き込み/読み出し切り替え管理部、バンク待ち受け管理部を有し、
    前記書き込み/読み出し切り替え管理部は、前記メモリへ前記データを書き込む場合には、書き込み指示を前記メモリ選択部へ送信し、前記メモリから前記データを読み出す場合には、読み出し指示を前記メモリ選択部へ送信し、
    前記バンク待ち受け管理部は、前記バンク制約を生じている前記バンクを認識し、どの前記バンクがアクセス可能で、どの前記バンクがアクセス禁止かを示すアクセス状態信号をバンク毎に前記メモリ選択部へ送信し、
    前記メモリ選択部は、
    前記書き込み指示を受信した場合、前記アクセス状態信号から、現在アクセス可能な前記バンクを認識し、アクセス可能な前記バンクに対応する前記書き込みリクエストメモリの中から、最も番号の若いシリアルナンバーが付与されている前記書き込みリクエストが格納されている前記書き込みリクエストメモリを選択し、選択した前記書き込みリクエストメモリから前記書き込みリクエストを抽出して、前記書き込みリクエストにもとづき、書き込みコマンドおよび書き込みアドレスを生成し、
    前記読み出し指示を受信した場合、前記アクセス状態信号から、現在アクセス可能な前記バンクを認識し、アクセス可能な前記バンクに対応する前記読み出しリクエストメモリの中から、最も番号の若いシリアルナンバーが付与されている前記読み出しリクエストが格納されている前記読み出しリクエストメモリを選択し、選択した前記読み出しリクエストメモリから前記読み出しリクエストを抽出して、前記読み出しリクエストにもとづき、読み出しコマンドおよび読み出しアドレスを生成する、
    ことを特徴とする請求項2記載のメモリ制御装置。
  4. 前記書き込み/読み出し切り替え管理部は、前記メモリへの書き込みアクセスおよび読み出しアクセスが均等になるように、前記メモリに対する前記書き込みコマンドの回数と前記読み出しコマンドの回数とをカウントし、カウント値がそれぞれ規定数に達したときには、書き込みアクセスから読み出しアクセスへ、または読み出しアクセスから書き込みアクセスへ切り替えることを特徴とする請求項3記載のメモリ制御装置。
  5. 前記メモリ選択制御部は、リフレッシュ管理部をさらに有し、
    前記リフレッシュ管理部は、前記メモリをリフレッシュするためのリフレッシュ指示を一定時間間隔で前記メモリ選択部へ送信し、
    前記メモリ選択部は、
    書き込みアクセス中に、前記リフレッシュ指示を受信した場合は、前記書き込みアクセスから読み出しアクセスへ切り替わるまで、リフレッシュ動作を待たせ、前記書き込みリクエストメモリの選択が終了して、前記書き込みアクセスから前記読み出しアクセスへ切り替える時に、リフレッシュコマンドを前記メモリへ送信し、
    読み出しアクセス中に、前記リフレッシュ指示を受信した場合は、前記読み出しアクセスから前記書き込みアクセスへ切り替わるまで、リフレッシュ動作を待たせ、前記読み出しリクエストメモリの選択が終了して、前記読み出しから前記書き込みアクセスへ切り替える時に、リフレッシュコマンドを前記メモリへ送信する、
    ことを特徴とする請求項2記載のメモリ制御装置
  6. 前記メモリ制御部は、シリアルナンバー毎に格納領域が区分けされ、到着した前記メモリからの読み出しデータを格納して保持する保持メモリを含み、前記読み出しデータの並び替え/組み立てを行って、前記セグメントを出力するセグメント組立部をさらに有し、
    前記セグメント/リクエスト情報分割部は、セグメント単位に付与したリクエストIDと、前記セグメントをアクセス単位に分割した際の分割数と、前記アクセス単位に分割したときに前記データに付与したシリアルナンバーの内、先頭データに付与した先頭シリアルナンバーと、の項目から構成される分割情報を前記セグメント組立部へ送信し、
    前記セグメント組立部は、
    到着した前記読み出しデータを、前記保持メモリの中の、前記読み出しデータに付与されているシリアルナンバーと同じシリアルナンバーを持つ領域に格納し、
    前記分割情報にもとづいて、1セグメントを構成する前記読み出しデータの個数と、先頭に位置する前記読み出しデータとを認識して、セグメント単位にすべての前記読み出しデータが前記保持メモリに格納されるのを待ち、
    1セグメントを構成するすべての前記読み出しデータが前記保持メモリに格納された後は、前記リクエストIDの順に前記セグメントを出力する、
    ことを特徴とする請求項1記載のメモリ制御装置。
  7. 前記アドレス管理テーブルは、異なる前記パケット品質情報毎に対応して設けられる複数のキューに格納されるセグメントテーブル情報で構成され、
    前記セグメントテーブル情報は、前記セグメントの中の前記データが格納されるメモリ番号/バンク番号、前記メモリ番号/バンク番号に該当するメモリ領域のアドレス、セグメント長、前記セグメントが前記パケットデータの先頭、中間、最終のどの位置にあるかを示すセグメントタイプとの項目から構成され、
    前記メモリ管理部は、前記セグメントテーブル情報から、前記メモリ番号/バンク番号、前記アドレス、前記セグメント長、セグメント単位に付与するリクエストIDを含む書き込みリクエスト情報および読み出しリクエスト情報を作成して前記セグメント/リクエスト情報分割部へ送信し、
    前記セグメント/リクエスト情報分割部は、前記書き込みリクエスト情報にもとづき、書き込みデータのアドレスおよび前記書き込みデータに付与したシリアルナンバーを含む前記書き込みリクエストを作成し、前記読み出しリクエスト情報にもとづき、読み出しデータのアドレスおよび前記読み出しデータに付与したシリアルナンバーを含む前記読み出しリクエストを作成することを特徴とする請求項1記載のメモリ制御装置。
JP2007335671A 2007-12-27 2007-12-27 メモリ制御装置 Expired - Fee Related JP5205956B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007335671A JP5205956B2 (ja) 2007-12-27 2007-12-27 メモリ制御装置
US12/230,252 US7904677B2 (en) 2007-12-27 2008-08-26 Memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007335671A JP5205956B2 (ja) 2007-12-27 2007-12-27 メモリ制御装置

Publications (2)

Publication Number Publication Date
JP2009157680A true JP2009157680A (ja) 2009-07-16
JP5205956B2 JP5205956B2 (ja) 2013-06-05

Family

ID=40800035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007335671A Expired - Fee Related JP5205956B2 (ja) 2007-12-27 2007-12-27 メモリ制御装置

Country Status (2)

Country Link
US (1) US7904677B2 (ja)
JP (1) JP5205956B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232918A (ja) * 2010-04-27 2011-11-17 Renesas Electronics Corp 半導体装置およびそれを用いた通信装置
JP2012169010A (ja) * 2011-02-15 2012-09-06 Nec Corp メモリシステム、バッファメモリ制御方法およびバッファメモリ制御プログラム
JP2015219813A (ja) * 2014-05-20 2015-12-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法
JP2016033818A (ja) * 2014-07-30 2016-03-10 ▲ホア▼▲ウェイ▼技術有限公司 データ処理方法、装置、およびシステム
US9544229B2 (en) 2014-03-26 2017-01-10 Fujitsu Limited Packet processing apparatus and packet processing method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397306B1 (en) * 2009-09-23 2013-03-12 Parallels IP Holdings GmbH Security domain in virtual environment
US8208484B2 (en) * 2010-01-11 2012-06-26 Telefonaktiebolaget L M Ericsson (Publ) Forwarding a packet within a router using fragments over an interconnect
US8631213B2 (en) 2010-09-16 2014-01-14 Apple Inc. Dynamic QoS upgrading
US8314807B2 (en) 2010-09-16 2012-11-20 Apple Inc. Memory controller with QoS-aware scheduling
CN102567258B (zh) * 2011-12-29 2014-08-27 中国科学院自动化研究所 多维dma传输装置与方法
US9053058B2 (en) 2012-12-20 2015-06-09 Apple Inc. QoS inband upgrade
US9229896B2 (en) 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002344502A (ja) * 2001-05-14 2002-11-29 Fujitsu Ltd パケットバッファ
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033406A1 (fr) * 1996-03-08 1997-09-12 Ntt Mobile Communications Network Inc. Systeme et procede de transmission atm multiplex a cellules courtes
JPH09251437A (ja) 1996-03-18 1997-09-22 Toshiba Corp 計算機装置及び連続データサーバ装置
JP3979716B2 (ja) 1998-01-06 2007-09-19 富士通株式会社 クロック同期型メモリ装置及びそのスケジューラ回路
US7606249B1 (en) * 2004-12-21 2009-10-20 Extreme Networks, Inc. Methods and systems for caching packets to be written to or read from packet memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002344502A (ja) * 2001-05-14 2002-11-29 Fujitsu Ltd パケットバッファ
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232918A (ja) * 2010-04-27 2011-11-17 Renesas Electronics Corp 半導体装置およびそれを用いた通信装置
JP2012169010A (ja) * 2011-02-15 2012-09-06 Nec Corp メモリシステム、バッファメモリ制御方法およびバッファメモリ制御プログラム
US9544229B2 (en) 2014-03-26 2017-01-10 Fujitsu Limited Packet processing apparatus and packet processing method
JP2015219813A (ja) * 2014-05-20 2015-12-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法
JP2016033818A (ja) * 2014-07-30 2016-03-10 ▲ホア▼▲ウェイ▼技術有限公司 データ処理方法、装置、およびシステム
US9727253B2 (en) 2014-07-30 2017-08-08 Huawei Technologies, Co., Ltd. Data processing method, apparatus, and system

Also Published As

Publication number Publication date
US20090172318A1 (en) 2009-07-02
JP5205956B2 (ja) 2013-06-05
US7904677B2 (en) 2011-03-08

Similar Documents

Publication Publication Date Title
JP5205956B2 (ja) メモリ制御装置
JP4571671B2 (ja) 通信モジュールのメッセージメモリのデータへアクセスする方法および装置
US20110040923A1 (en) Data packet access control apparatus and method thereof
US9841913B2 (en) System and method for enabling high read rates to data element lists
US7684424B2 (en) Memory interleaving in a high-speed switching environment
US7822915B2 (en) Memory controller for packet applications
JP2007325271A (ja) スイッチ、スイッチングする方法及び論理装置
KR20160117108A (ko) 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치
CN109861931B (zh) 一种高速以太网交换芯片的存储冗余系统
WO2003043272A1 (en) Overcoming access latency inefficiency in memories for packet switched networks
US20170147251A1 (en) Queue Management Method and Apparatus
JP2008508826A (ja) FlexRay通信モジュール
US20070086428A1 (en) Network packet storage method and network packet transmitting apparatus using the same
EP1407362A1 (en) Switch fabric with dual port memory emulation scheme
US10884829B1 (en) Shared buffer memory architecture
JP7138190B2 (ja) ネットワークスイッチのキュー
US9785367B2 (en) System and method for enabling high read rates to data element lists
JP2008509463A (ja) メッセージをメッセージメモリに記憶する方法およびメッセージメモリ
JP5391449B2 (ja) 記憶装置
JP4408374B2 (ja) 高速交換環境でパケットを交換するシステム、方法及び論理
Kabra et al. Fast buffer memory with deterministic packet departures
CN113179228A (zh) 一种提高交换机堆叠可靠性的方法、装置、设备及介质
US8073999B2 (en) Data input-output control apparatus
JP5499346B2 (ja) 半導体装置およびそれを用いた通信装置
JP2011239326A (ja) 半導体装置およびそれを用いた通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5205956

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees