JP5499346B2 - 半導体装置およびそれを用いた通信装置 - Google Patents

半導体装置およびそれを用いた通信装置 Download PDF

Info

Publication number
JP5499346B2
JP5499346B2 JP2010101873A JP2010101873A JP5499346B2 JP 5499346 B2 JP5499346 B2 JP 5499346B2 JP 2010101873 A JP2010101873 A JP 2010101873A JP 2010101873 A JP2010101873 A JP 2010101873A JP 5499346 B2 JP5499346 B2 JP 5499346B2
Authority
JP
Japan
Prior art keywords
bank
address
data
packet buffer
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010101873A
Other languages
English (en)
Other versions
JP2011232918A (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 JP2010101873A priority Critical patent/JP5499346B2/ja
Publication of JP2011232918A publication Critical patent/JP2011232918A/ja
Application granted granted Critical
Publication of JP5499346B2 publication Critical patent/JP5499346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、パケットデータを一時的に保存して適宜出力する技術に関し、特に、大容量の汎用DRAM(Dynamic Random Access Memory)をパケットバッファメモリとして制御する半導体装置およびそれを用いた通信装置に関する。
近年、ネットワークの高速化が進んでおり、それに伴ってパケットデータを一時的に保存するルータ、スイッチなどの通信装置の高機能化も進んでいる。一般に、このような通信装置においては、転送先を決めるまでパケットデータ(以下、単にデータとも呼ぶ。)を一時的に保存するために、パケットバッファメモリを有する必要がある。
これは、品質情報に基づいた優先順位に従ってデータを出力する必要があるため、ネットワークによっては通信速度が異なるのでデータをバッファリングする必要があるため、複数のネットワークからのデータを受信する必要があるため、などの理由による。
ネットワークの高速化に伴って、パケットバッファメモリの更なる大容量化が求められており、低コスト、大容量の汎用DRAMをパケットバッファメモリの一部として組み込んだパケットバッファシステムが開発されている。
パケットバッファシステムは、ネットワーク上に配置されたルータ、スイッチなどの通信装置に使用される特性上、外部から高レートで、かつ、ある一定範囲の可変長データのWrite要求およびRead要求がランダムに入力されるといった特徴を有している。
たとえば、パケットバッファシステムにデータのWrite要求が入力されると、パケットバッファメモリの空きアドレスを抽出し、空きアドレスに対応するパケットバッファメモリの領域に、Write要求があった対象データを書き込む。このとき、将来、そのデータが読み出される場合に備えて、データを書き込んだアドレスを登録しておく。
また、パケットバッファシステムにデータのRead要求が入力されると、過去に、そのRead対象データを書き込んだ時に登録したアドレスを抽出し、そのアドレスに対応するパケットバッファメモリの領域からRead対象データを読み出す。
一方、一般的な汎用DRAMをパケットバッファメモリとして使用し、メモリ空間を複数のバンクで構成することにより、あるバンクに対するアクセスの最中であっても、他のバンクであれば同時にアクセスが可能である。これに関連する技術として、下記の特許文献1に開示された発明がある。
特許文献1は、メモリインタフェース速度の向上を図ることを目的とする。パケット分割部は、パケットデータをセグメントに分割するセグメント分割と、パケット品質情報の検出処理とを行なう。メモリ管理部は、アドレス管理テーブルを有し、パケット品質情報毎に、パケットデータの格納状態を管理する。セグメント/リクエスト情報分割部は、セグメントを、複数のメモリに書き込み/読み出し可能なアクセス単位のデータに分割し、アクセス単位毎の書き込みリクエストおよび読み出しリクエストを生成する。メモリアクセス制御部は、生成された書き込みリクエストまたは読み出しリクエストの内、バンク制約が生じてアクセス禁止となったバンクを回避して、アクセス可能なバンクに対応する書き込みリクエストまたは読み出しリクエストを抽出して、複数のメモリに対して書き込み/読み出しアクセスを行なう。
特開2009−157680号公報
上述のように、汎用DRAMをパケットバッファメモリとして使用し、メモリ空間を複数のバンクで構成することにより、異なるバンクに対して同時にアクセスすることが可能になる。また、データのWrite要求とデータのRead要求とが同時に入力された場合でも、パケットバッファメモリのWriteアドレスを制御することでバンクの衝突を回避することができる。たとえば、各バンク毎に空きアドレスを管理しておき、バンク衝突が発生したときに、Read要求が入っていないバンクのアドレスをWriteアドレスとして使用するようにすればよい。
しかしながら、このような方法では、状況によってパケットバッファシステム自体が管理するアドレスを無駄に消費してしまうといった新たな問題が発生する。後で詳細に説明するが、パケットバッファメモリにおいては、バンクという概念とは別に、メモリ空間を、パケットバッファメモリに格納する必要がある最小データサイズ以上のセグメントと呼ばれる単位で分割しており、その各セグメントに対してアドレスが割り付けられている。
あるバンクに対してWrite要求があったデータの書き込みを行なっているときに、同じバンクに対するRead要求があると、バンク衝突を回避し、且つ、要求を滞りなく処理するためには、そのバンクに対するデータ書き込みを中断して、Readを開始すると共に、並行して、別のバンクに残りのデータを書き込む必要がある。すなわち、本来であれば、1アドレス(1セグメント)にデータを書き込めた場合であっても、2アドレスを消費してしまい、アドレスを無駄に消費してしまうことになる。
本発明は、上記問題点を解決するためになされたものであり、その目的は、バンク衝突を回避しつつ、アドレスの無駄な消費を防止するようにパケットデータの書き込みおよび読み出しを制御することが可能な半導体装置およびそれを用いた通信装置を提供することである。
本発明の一実施例によれば、複数のバンクによって構成されるパケットバッファメモリに対するパケットデータの読み出しおよび書き込みを制御する半導体装置が提供される。BANK回避部は、読み出し要求の対象アドレスを一定期間蓄積し、書き込み要求が発生したときにそのデータサイズと蓄積された対象アドレスとに基づいて、バンク衝突を回避可能なバンク候補を選択する。アドレス管理部は、パケットバッファメモリの空きアドレスをバンク毎に管理し、BANK回避部によって選択されたバンク候補の中から選択したバンクの空きアドレスをBANK回避部に出力する。リンクドリスト部は、データを書き込んだときのパケットバッファメモリのアドレスを登録する。そして、BANK回避部は、アドレス管理部から受けた空きアドレスにデータを書き込み、書き込んだアドレスをリンクドリスト部に登録する。
本発明の一実施例によれば、BANK回避部が読み出し要求の対象アドレスを一定期間蓄積し、書き込み要求が発生したときにそのデータサイズと蓄積された対象アドレスとに基づいて、バンク衝突を回避可能なバンク候補を選択するので、アドレスの無駄な消費を防止するようにパケットデータの書き込みおよび読み出しを制御することが可能となる。
一般的な通信装置の構成およびWrite要求時における動作を説明するための図である。 一般的な通信装置のRead要求時における動作を説明するための図である。 汎用DRAMをパケットバッファとして使用してメモリ空間を複数のバンクで構成したときの問題点を説明するための図である。 パケットバッファとして汎用DRAMを使用してバンク衝突の問題を解決するための方法の一例を示す図である。 パケットバッファメモリ14をバンク構成にしたときのメモリ空間を説明するための図である。 最小データサイズのデータのRead要求がある場合と、最大データサイズのデータのWrite要求がある場合とのバンクの占有時間を説明するための図である。 バンク0のデータのRead要求があった後に、バンク1のデータのRead要求がある場合のバンク衝突の回避を説明するための図である。 バンク衝突が複数回発生する場合を示す図である。 本発明の第1の実施の形態における通信装置の構成およびRead要求時における動作を説明するための図である。 本発明の第1の実施の形態における通信装置のWrite要求時における動作を説明するための図である。 BANK回避部15の内部構成を示すブロック図である。 Bank選抜ロジック31の動作を説明するためのタイミングチャートである。 Bank選抜ロジック31から出力されたバンク候補に空きアドレスがない場合を示す図である。 本発明の第2の実施の形態におけるBank選抜ロジック31の動作を説明するためのタイミングチャートである。 本発明の第3の実施の形態におけるBank選抜ロジック31の動作を説明するためのタイミングチャートである。
図1は、一般的な通信装置(パケットバッファシステム)の構成およびWrite要求時における動作を説明するための図である。この通信装置は、通信装置全体の制御を行なう制御部11と、アドレス管理部12と、リンクドリスト部13と、パケットバッファメモリ14とを含む。パケットバッファメモリ14は、汎用DRAMなどによって構成される。
まず、制御部11がデータのWrite要求を受けると(1)、未使用の空きアドレスを管理するアドレス管理部12に空きアドレスを要求する(2)。アドレス管理部12は、空きアドレス要求を受けると、空きアドレスを検索して、空きアドレス(X)を返信する(3)。
制御部11は、アドレス管理部12から空きアドレス(X)を受けると、パケットバッファメモリ14の空きアドレス(X)にデータを書き込み(4)、将来、そのデータが読み出されるのに備えて、リンクドリスト部13に空きアドレス(X)を追加的に登録しておく(5)。
図2は、一般的な通信装置のRead要求時における動作を説明するための図である。まず、制御部11がデータのRead要求を受けると(1)、過去にそのRead対象データを書き込んだときに登録したアドレスをリンクドリスト部13に要求する(2)。
そして、制御部11は、リンクドリスト部13から対象アドレス(X)が返信されると(3)、対象アドレス(X)に対応するパケットバッファメモリ14の領域からRead対象データを読み出す(4)。そのとき、制御部11は、データ読み出しによってその対象アドレス(X)が開放されるので、以降の書き込みのために空きアドレスとしてアドレス管理部12に返還する(5)。
パケットバッファシステムとして重要な点は、上述の図1〜図2に示す処理を繰り返すことで滞ることなく要求を処理してゆくことであり、その処理レートの高さがパケットバッファの性能を表わす大きな指標となっている。それは、処理が滞ることがネットワークを流れるパケットの破棄を意味するからである。
図3は、汎用DRAMをパケットバッファとして使用してメモリ空間を複数のバンクで構成したときの問題点を説明するための図である。図3に示すように、汎用DRAMを用いて8バンク構成とした場合、たとえばバンク0とバンク4とに同時にアクセスすることが可能となる。しかしながら、バンク0にアクセス中に、バンク0に同時にアクセスすることはできない。したがって、パケットバッファメモリとして汎用DRAMを用いる場合、いかにしてRead要求があるバンクとWrite要求があるバンクとが衝突しないようにして、要求を滞りなく処理するかが重要となる。
図4は、パケットバッファとして汎用DRAMを使用してバンク衝突の問題を解決するための方法の一例を示す図である。図4(a)は、アドレス管理部12が空きアドレスをまとめて管理する場合を示している。この場合、制御部11からの空きアドレス要求に対して空きアドレスを返信することになるが、Write要求とRead要求との衝突を回避することはできない。
図4(b)は、アドレス管理部12が空きアドレスをバンク毎に管理する場合を示している。図2を用いて説明したように、パケットバッファメモリ14からのデータ読み出しは、過去にリンクドリスト部13に登録されたアドレスを使用しなければならない。
それに対して、パケットバッファメモリ14へのデータ書き込みは、アドレス管理部12にある空きアドレスをWriteアドレスとして使用するため、アドレス管理部12内で各バンク毎に空きアドレスを管理しておき、バンク衝突が発生したときにRead要求が入っていないバンクの空きアドレスをWriteアドレスとして使用すれば、バンク衝突を回避することができる。
しかしながら、この方法は、別の問題点を生み出すことになる。図5〜図8は、パケットバッファメモリ14をバンク構成にしたときに発生する問題点を説明するための図である。図5は、パケットバッファメモリ14をバンク構成にしたときのメモリ空間を説明するための図である。
図5(a)に示すように、パケットバッファメモリ14においては、バンクという概念とは別に、メモリ空間を、パケットバッファメモリ14に格納する必要がある最小データサイズ以上のセグメントと呼ばれる単位で分割しており、その各セグメントに対してアドレスが割り付けられている。
また、図5(b)に示すように、1セグメントを最小データサイズのデータが7個分だけ入るサイズとする。上述のように、Read要求およびWrite要求のそれぞれは、最小データサイズから、ある最大データサイズまでの範囲の、可変長のデータサイズのデータの処理を要求する。そのため、バンクの占有時間は、パケットバッファメモリ14の入出力性能が固定であれば、その要求するデータサイズが相対的に小さければ短く、データサイズが大きければ長くなる。
図6は、最小データサイズのデータのRead要求がある場合と、最大データサイズのデータのWrite要求がある場合とのバンクの占有時間を説明するための図である。図6(a)に示すように、バンク0(B0)から最小データサイズのデータを読み出すときに、そのバンク0を占有している時間はTとなる。また、バンク1(B1)に最大データサイズのデータを書き込むときに、そのバンク1を占有している時間は7×Tとなる。
図6(b)に示すように、パケットバッファメモリ14が8バンク構成の場合には、バンク0からのデータ読み出しと、バンク1へのデータ書き込みとを同時に行うことができる。
図7は、バンク0のデータのRead要求があった後に、バンク1のデータのRead要求がある場合のバンク衝突の回避を説明するための図である。Read要求およびWrite要求はランダムに入力されるので、図7(a)に示すように、最初のバンク0に対するRead要求がT時間で完了した後、次のRead要求が、たとえばデータ書き込み中のバンク1に対して行なわれる場合が考えられる。
このとき、一旦バンク1へのデータ書き込みを中断して、バンク1からのデータ読み出しのためにバンク1を開放すると共に、アドレス管理部12から新たに別のバンクの空きアドレスを取得して残りのデータを書き込む必要がある(図7(a)においては、バンク2にデータが書き込まれる。)。このような場合には、図7(b)に示すように、本来1アドレスに書き込むことが可能なサイズのデータを書き込むのに、2アドレスが必要となってしまう。
図8は、バンク衝突が複数回発生する場合を示す図である。図8(a)に示すように、最初のバンク0に対するRead要求がT時間で完了した後、次のRead要求がデータ書き込み中のバンク1に対して行なわれると、データ書き込みがバンク2に変更される。さらに、バンク1からのデータ読み出しが完了した後、バンク2に対するRead要求があると、データ書き込みがバンク3に変更される。そして、さらにその後、バンク3に対するRead要求があると、データ書き込みがバンク4に変更される。
このように、バンク衝突が繰り返されると、図8(b)に示すように、本来1アドレスに書き込むことが可能なサイズのデータを書き込むのに、4つのアドレスが必要となってしまう。すなわち、いくつ無駄にアドレスが消費されるかは、場合によって異なることになる。
空きアドレスを管理するアドレス管理部12やリンクドリスト部13にもアドレスを記憶するといった機能を有しているため、メモリ構造を有している。そのため、アドレスが無駄に消費されると、その部分に多くのコストを支払う結果となってしまう。
本発明の実施の形態における通信装置は、このようなバンク衝突によって発生する無駄なアドレスの消費を防止するものであり、以下にその詳細を説明する。
(第1の実施の形態)
図9は、本発明の第1の実施の形態における通信装置の構成およびRead要求時における動作を説明するための図である。この通信装置は、通信装置全体の制御を行なう制御部11と、未使用の空きアドレスを管理するアドレス管理部12と、データを書き込んだときにそのアドレスを登録するリンクドリスト部13と、パケットバッファメモリ14と、BANK回避部15とを含む。
まず、制御部11が図示しないネットワークプロセッサなどからデータのRead要求を受けると(1)、過去にそのRead対象データを書き込んだときに登録したアドレスをリンクドリスト部13に要求する(2)。
そして、制御部11は、リンクドリスト部13から対象アドレス(X)が返信されると(3)、対象アドレス(X)をBANK回避部15に出力する。なお、この対象アドレス(X)にはバンクに関する情報も含まれるものとする。
BANK回避部15は、制御部11から入力された対象アドレス(X)を一定期間蓄積した後(4)、対象アドレス(X)に対応するパケットバッファメモリ14の領域からRead対象データを読み出す(5)。
そして、BANK回避部15は、データ読み出しによってその対象アドレス(X)が開放されるので、以降の書き込みのために空きアドレスとしてアドレス管理部12に返還する(6)。
図10は、本発明の第1の実施の形態における通信装置のWrite要求時における動作を説明するための図である。まず、制御部11が図示しないネットワークプロセッサなどからデータのWrite要求を受ける(1)。このとき、制御部11は、Write要求以外に、データサイズ情報とそれに対応するデータとを入力する。
そして、制御部11は、データサイズ情報をBANK回避部15に出力する。BANK回避部15は、制御部11からデータサイズ情報を受けると、蓄積されているReadアドレス情報とデータサイズ情報とから衝突の回避が可能なバンクを選択し(2)、空きアドレス要求と共にそのバンク候補をアドレス管理部12に出力する(3)。
アドレス管理部12は、BANK回避部15から空きアドレス要求を受けると、バンク候補の中から最適なバンクの空きアドレス(X)を選択して、空きアドレス(X)をBANK回避部15に返信する(4)。
BANK回避部15は、アドレス管理部12から空きアドレス(X)を受けると、パケットバッファメモリ14の空きアドレス(X)にデータを書き込み(5)、将来、そのデータが読み出されるのに備えて、リンクドリスト部13に空きアドレス(X)を追加的に登録しておく(6)。
図11は、BANK回避部15の内部構成を示すブロック図である。このBANK回避部15は、フリップフロップ(以下、FFと呼ぶ。)21〜30と、BANK選抜ロジック31とを含む。
FF21〜28は、制御部11から受けたRead対象アドレスを、パケットバッファメモリ14が最小データサイズを処理できる一定時間間隔に同期して順次シフトする。FF21〜27の出力を、それぞれStage6〜0とする。FF28の出力は、Read対象アドレスとしてパケットバッファメモリ14に入力されると共に、対象アドレス(X)としてアドレス管理部12に返還される。なお、図11においては、Read対象アドレスをシフトするFFの段数を、バンク数と同じ8個としているが、これに限られるものではなく、バンク数よりも少なくてもよいし、バンク数よりも多くてもよい。要するに、Read対象アドレスを一定期間蓄積できればよい。
FF29は、制御部11から受けたWrite要求のデータサイズ情報を保持してBank選抜ロジック31に出力する。また、FF30は、アドレス管理部12から受けた空きアドレス(X)を保持してパケットバッファメモリ14にWriteアクセスアドレスとして出力する。
図12は、Bank選抜ロジック31の動作を説明するためのタイミングチャートである。T0〜T7において、FF21〜FF27は、Read要求があったバンクの情報を順次シフトする。図12においては、B0,B1,B4,B2,B1,B2,B3の順にRead要求があるものとする。なお、図12においては、最小データサイズのRead要求が連続して発生した場合を示しているが、データサイズが最小データサイズよりも大きい場合には、同じバンクに対して連続したRead要求が発生することになる。
T6において、Write要求を受けると、Bank選抜ロジック31は、FF29からWriteデータサイズ情報“4”を受ける。そして、T7において、Writeデータサイズ情報の“4”に対応して、Bank選抜ロジック31は、Stage0〜3の4つのバンク情報(B0,B1,B4,B2)以外の4つバンク(B3,B5,B6,B7)を、バンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T8において、BANK回避部15は、アドレス管理部12から受けたバンク3の空きアドレスに対するデータ書き込みを開始する。たとえば、アドレス管理部12は、空きアドレスが最も多いバンクを選択するようにしてもよいし、それ以外の方法でバンクを選択するようにしてもよい。
また、T8において、BANK回避部15に最初にRead要求があったバンク0からのデータ読み出しが行なわれ、それ以降のRead要求が順次処理される。
同様にして、T11において、2番目のWrite要求のデータサイズ情報の“7”に対応して、Bank選抜ロジック31は、Stage0〜6の7つのバンク情報(B1,B2,B3,B7,B6,B4,B0)以外のバンク5をバンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T12において、Bank選抜部31は、アドレス管理部12から受けたバンク5の空きアドレスに対するデータ書き込みを開始する。
同様にして、T18において、3番目のWrite要求のデータサイズ情報の“1”に対応して、Bank選抜ロジック31は、Stage0のバンク情報(B3)以外のバンクをバンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T19において、Bank選抜部31は、アドレス管理部12から受けたバンク2の空きアドレスに対するデータ書き込みを開始する。
以上説明したように、本実施の形態における通信装置によれば、BANK回避部15がRead対象アドレスを一定時間蓄積し、Write要求のデータサイズ情報に応じた段数のStage情報に基づいてデータを書き込むバンクを選択するようにしたので、バンク衝突を回避することが可能となる。
また、パケットデータを同じセグメントに書き込むことができるので、アドレスを無駄に消費することを防止でき、早期のアドレスの枯渇を防止することが可能となる。
また、書き込むデータサイズが小さいほど、データを書き込むバンクの候補数が多くなるため、アドレス管理部12によるデータを書き込むバンクの選択に柔軟性を持たせることが可能となる。
(第2の実施の形態)
本発明の第2の実施の形態における通信装置は、第1の実施の形態において説明した通信装置の全体のアドレスが枯渇する最終局面に関するものであるが、通信装置の構成およびBANK回避部15の内部構成は、図9〜図11に示す第1の実施の形態と同様であり、図11に示すBank選抜ロジック31にdisable信号が入力される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
図13は、Bank選抜ロジック31から出力されたバンク候補に空きアドレスがない場合を示す図である。アドレスが枯渇する最終局面においては、必ず最初に空きアドレスが枯渇するバンクが発生することになる。図13は、アドレス管理部12がBank選抜ロジック31からバンク候補としてバンク5のみを受けたときに、最初にバンク5の空きアドレスが枯渇しており、他のバンクには空きアドレスがある場合を示している。
このとき、アドレス管理部12は、disable信号をBank選抜ロジック31に出力し、Bank選抜ロジック31の機能を無効とする。
図14は、本発明の第2の実施の形態におけるBank選抜ロジック31の動作を説明するためのタイミングチャートである。T9において、あるバンクの空きアドレスが枯渇して、アドレス管理部12からのdisable信号がBank選抜ロジック31に入力される。
T10において、Bank選抜ロジック31がWrite要求およびデータサイズ情報“7”を受けるが、disable信号が入力されているためこのデータサイズ情報を無効とし、Stage0のバンク情報のみを参照する。そして、そのバンク以外のバンクをバンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T12においては、バンク1以外のバンク3の空きアドレスに対してデータ書き込みが行なわれる。また、T13においては、バンク2以外のバンク4の空きアドレスに対してデータ書き込みが行なわれる。T14〜T18においても同様の処理が行なわれる。
以上説明したように、本実施の形態における通信装置によれば、disable信号が入力されると、Bank選抜ロジック31がStage0のバンク情報のみを参照して、バンク候補を選択するようにしたので、アドレスが無駄に消費されるといった問題が復活するものの、Readするバンク以外のバンクに空きアドレスがある限りWrite要求を継続して処理することが可能となる。
(第3の実施の形態)
第1の実施の形態においては、図示しないネットワークプロセッサなどからWrite要求と共にデータサイズ情報が入力される場合について説明した。本発明の第3の実施の形態における通信装置においては、BANK回避部15内においてデータサイズをカウントし、それに応じてバンク候補を選択するものである。
なお、本実施の形態における通信装置の構成およびBANK回避部15の内部構成は、図9〜図11に示す第1の実施の形態と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
図15は、本発明の第3の実施の形態におけるBank選抜ロジック31の動作を説明するためのタイミングチャートである。T6〜T9において、Write要求と共にWrite対象データが入力される。また、T9において、Writeデータサイズ情報として“4”が計算される。
T13において、Writeデータサイズ情報の“4”に対応して、Bank選抜ロジック31は、Stage0〜3の4つのバンク情報(B3,B7,B6,B4)以外の4つバンク(B0,B1,B2,B5)を、バンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T14において、BANK回避部15は、アドレス管理部12から受けたバンク2の空きアドレスに対するデータ書き込みを開始する。
同様にして、T17において、2番目のWrite要求のデータサイズ情報の“7”に対応して、Bank選抜ロジック31は、Stage0〜6の7つのバンク情報(B0,B3,B5,B2,B1,B7,B6)以外のバンク4をバンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T18において、Bank選抜部31は、アドレス管理部12から受けたバンク4の空きアドレスに対するデータ書き込みを開始する。
同様にして、T24において、3番目のWrite要求のデータサイズ情報の“1”に対応して、Bank選抜ロジック31は、Stage0のバンク情報(B4)以外のバンクをバンク候補として選択する。そして、アドレス管理部12に対して空きアドレス要求を出力すると共に、そのバンク候補を出力する。
T25において、Bank選抜部31は、アドレス管理部12から受けたバンク2の空きアドレスに対するデータ書き込みを開始する。
このように、衝突回避可能なバンク候補の選択タイミング、Writeレーテンシを調整することで、データサイズ情報がどの位置に入ってもバンク衝突を回避することができる。具体的には、第1の実施の形態において説明したタイミングよりも、さらに6ステージ分だけ処理を遅らすことで対応可能となる。
以上説明したように、本実施の形態における通信装置によれば、BANK回避部15内でWriteデータサイズ情報を生成し、そのデータサイズ情報に応じた段数のStage情報に基づいてデータを書き込むバンクを選択するようにしたので、第1の実施の形態において説明した効果と同様の効果を奏することが可能となる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
11 制御部、12 アドレス管理部、13 リンクドリスト部、14 パケットバッファメモリ、15 BANK回避部、21〜30 FF、31 BANK選抜ロジック。

Claims (6)

  1. 複数のバンクによって構成されるパケットバッファメモリに対するパケットデータの読み出しおよび書き込みを制御する半導体装置であって、
    読み出し要求の対象アドレスを一定期間蓄積し、書き込み要求が発生したときにそのデータサイズと蓄積された前記対象アドレスとに基づいて、バンク衝突を回避可能なバンク候補を選択する選択手段と、
    前記パケットバッファメモリの空きアドレスをバンク毎に管理し、前記選択手段によって選択されたバンク候補の中から選択したバンクの空きアドレスを前記選択手段に出力するアドレス管理手段と、
    データを書き込んだときの前記パケットバッファメモリのアドレスを登録するアドレス登録手段とを含み、
    前記選択手段は、前記アドレス管理手段から受けた空きアドレスにデータを書き込み、書き込んだアドレスを前記アドレス登録手段に登録し、
    前記選択手段は、
    前記読み出し要求の対象アドレスを順次シフトして保持する複数段の保持手段と、
    前記データサイズに対応する段数の前記保持手段に保持される対象アドレスに対応するバンク以外のバンクを前記バンク候補として選択するバンク選択手段とを含む、半導体装置。
  2. 前記アドレス管理手段は、空きアドレスがなくなったバンクが発生したときに、前記バンク選択手段に通知し、
    前記バンク選択手段は、前記アドレス管理手段から通知があったときに、前記保持手段の1つに保持される対象アドレスに対応するバンク以外のバンクを前記バンク候補として選択する、請求項記載の半導体装置。
  3. 前記半導体装置はさらに、書き込み要求が発生したときにそのデータサイズをカウントする制御手段を含む、請求項1記載の半導体装置。
  4. パケットデータを蓄積して出力する通信装置であって、
    複数のバンクによって構成され、前記パケットデータを蓄積するパケットバッファメモリと、
    読み出し要求の対象アドレスを一定期間蓄積し、書き込み要求が発生したときにそのデータサイズと蓄積された前記対象アドレスとに基づいて、バンク衝突を回避可能なバンク候補を選択する選択手段と、
    前記パケットバッファメモリの空きアドレスをバンク毎に管理し、前記選択手段によって選択されたバンク候補の中から選択したバンクの空きアドレスを前記選択手段に出力するアドレス管理手段と、
    データを書き込んだときの前記パケットバッファメモリのアドレスを登録するアドレス登録手段とを含み、
    前記選択手段は、前記アドレス管理手段から受けた空きアドレスにデータを書き込み、書き込んだアドレスを前記アドレス登録手段に登録し、
    前記選択手段は、
    前記読み出し要求の対象アドレスを順次シフトして保持する複数段の保持手段と、
    前記データサイズに対応する段数の前記保持手段に保持される対象アドレスに対応するバンク以外のバンクを前記バンク候補として選択するバンク選択手段とを含む、通信装置。
  5. 前記アドレス管理手段は、空きアドレスがなくなったバンクが発生したときに、前記バンク選択手段に通知し、
    前記バンク選択手段は、前記アドレス管理手段から通知があったときに、前記保持手段の1つに保持される対象アドレスに対応するバンク以外のバンクを前記バンク候補として選択する、請求項4記載の通信装置。
  6. 前記通信装置はさらに、書き込み要求が発生したときにそのデータサイズをカウントする制御手段を含む、請求項4記載の通信装置。
JP2010101873A 2010-04-27 2010-04-27 半導体装置およびそれを用いた通信装置 Active JP5499346B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010101873A JP5499346B2 (ja) 2010-04-27 2010-04-27 半導体装置およびそれを用いた通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010101873A JP5499346B2 (ja) 2010-04-27 2010-04-27 半導体装置およびそれを用いた通信装置

Publications (2)

Publication Number Publication Date
JP2011232918A JP2011232918A (ja) 2011-11-17
JP5499346B2 true JP5499346B2 (ja) 2014-05-21

Family

ID=45322181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010101873A Active JP5499346B2 (ja) 2010-04-27 2010-04-27 半導体装置およびそれを用いた通信装置

Country Status (1)

Country Link
JP (1) JP5499346B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012169010A (ja) * 2011-02-15 2012-09-06 Nec Corp メモリシステム、バッファメモリ制御方法およびバッファメモリ制御プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3936550B2 (ja) * 2001-05-14 2007-06-27 富士通株式会社 パケットバッファ
JP5205956B2 (ja) * 2007-12-27 2013-06-05 富士通株式会社 メモリ制御装置

Also Published As

Publication number Publication date
JP2011232918A (ja) 2011-11-17

Similar Documents

Publication Publication Date Title
JP4369660B2 (ja) バンク衝突回避機能を備える動的ランダムアクセスメモリシステム
US10248350B2 (en) Queue management method and apparatus
US10740006B2 (en) System and method for enabling high read rates to data element lists
US8225026B2 (en) Data packet access control apparatus and method thereof
US20150046642A1 (en) Memory command scheduler and memory command scheduling method
KR20200099586A (ko) 비-균일 레이턴시들을 가진 메모리 요청들을 스케줄링하는 방법
US10152434B2 (en) Efficient arbitration for memory accesses
JP5205956B2 (ja) メモリ制御装置
EP3089045A1 (en) Multi-bank memory with one read port and one or more write ports per cycle
JP6146128B2 (ja) データ処理装置
JP2016195375A (ja) 複数のリンクされるメモリリストを利用する方法および装置
US9785367B2 (en) System and method for enabling high read rates to data element lists
JP2011060162A (ja) メモリ制御装置
JP2011095852A (ja) キャッシュメモリ制御回路
US11119924B2 (en) Interface device including ports and a cache memory, and control method thereof
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP5752666B2 (ja) デジタル信号処理用のメモリアクセス
TW202215246A (zh) 自我調整記憶體事務排程
JP5499346B2 (ja) 半導体装置およびそれを用いた通信装置
JP5391449B2 (ja) 記憶装置
US10146434B1 (en) FIFO systems and methods for providing access to a memory shared by multiple devices
US20120203982A1 (en) Fifo buffer and method of controlling fifo buffer
CN102073604B (zh) 一种同步动态存储器读写控制方法、装置和系统
JP2006253790A (ja) パケット伝送装置及びパケット伝送方法
WO2024001414A1 (zh) 报文的缓存方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140218

R150 Certificate of patent or registration of utility model

Ref document number: 5499346

Country of ref document: JP

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