WO2011111210A1 - データブロック読出制御装置 - Google Patents
データブロック読出制御装置 Download PDFInfo
- Publication number
- WO2011111210A1 WO2011111210A1 PCT/JP2010/054141 JP2010054141W WO2011111210A1 WO 2011111210 A1 WO2011111210 A1 WO 2011111210A1 JP 2010054141 W JP2010054141 W JP 2010054141W WO 2011111210 A1 WO2011111210 A1 WO 2011111210A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- identifier
- signal
- line
- unit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Abstract
データブロック読出制御装置は、振分単位に従って複数の受信バッファに振り分けて格納される複数のデータブロックのそれぞれに対応する振分単位を示す複数の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、識別子列における各振分単位の識別子の先頭位置を検出する検出部と、少なくとも、各振分単位の識別子の先頭位置及びデータブロック読出ルールとに基づいて、複数の受信バッファの一つから読み出すべきパケットを決定する決定部と、決定されたパケットを複数の受信バッファの一つから読み出す読出部とを含む。識別子は複数の受信バッファに格納されるデータブロックの振分単位の全てを表すために要求される最小数のビットで表現される。
Description
本発明は、データブロック読出制御装置に関する。
従来、到来した複数の種別のパケットを種別毎に複数の受信バッファに格納し、予め定められた優先制御内容に従って、パケットを複数の受信バッファから読み出す技術がある。
例えば、パケットベースのトランザクションでは、トランザクションのストールによってデッドロックが生じないように、各パケットに付与された優先度を元にしたパケットフォワードの順序付けルールが適用される。このルールに従って決定された順序でパケットがフォワードされる場合には、例えば、パケットのタイプ毎に設けられた複数の受信バッファと、パケット到来順序を保持/参照する機構とが用意される。
パケット到来順序は、パケット到来順でパケットのフォワードを行うために用意される。一方、複数の受信バッファは、優先度に従ったパケット間追い越しフォワードのために用意される。パケット間追い越しフォワードとは、優先度に従って、或るタイプのパケットを、当該パケットより先に到来した他のタイプのパケットよりも先にフォワードすることをいう。
パケット到来順序は、パケット到来順でパケットのフォワードを行うために用意される。一方、複数の受信バッファは、優先度に従ったパケット間追い越しフォワードのために用意される。パケット間追い越しフォワードとは、優先度に従って、或るタイプのパケットを、当該パケットより先に到来した他のタイプのパケットよりも先にフォワードすることをいう。
図9は、従来技術の一つであるパケット読出制御装置を示す。図9に示すパケット読出制御装置は、パケットが到来した順序情報を保持及び参照するために、パケット毎に到来順を示す順序情報としてのタグを生成し、記録していた。
具体的には、図9に示すパケット読出制御装置では、受信パケットが到来すると、受信パケット内のタイプ識別子に従って、パケットのタイプ(ここでは、“A”,“B”及び“C”)毎に用意された複数の受信バッファ(FIFO: First In First Out)の一つに受信パケットが格納される。
一方、受信パケットが到来すると、受信トリガが発生するとともに、受信パケット中のタイプ識別子がタグ生成回路に入力される。タグ生成回路では、受信トリガを契機に、受信順序タグ生成カウンタが、タイプ識別子に対応する受信順序タグを生成する。受信順序タグは、タイプ識別子に従って、パケットタイプ毎に用意された複数のタグバッファ(FIFO)の一つに格納される。
調停回路は、各タグバッファの先頭に格納されているタグ値を読み出し、各タグ値が示す受信順序を参照し、各タグ値に対応するパケット、すなわち各受信バッファの先頭に格納されているパケットの受信順(到来順)を確認する。一方、調停回路は、予め定められた優先制御内容、すなわちパケットタイプ間における順序付けルール(読み出しルール)に従って、読み出しを行うパケットを決定し、読出指示が受信バッファに与えられる。これによって、パケットが受信バッファから読み出され、フォワードされる。
しかしながら、上述した従来技術には以下の問題があった。すなわち、パケット毎に順序を示すタグを生成し、タグバッファに記録すると、タグバッファ自体の回路量が大きくなる。
例えば、3つの受信バッファがあり、各受信バッファは16個のパケットを格納できると仮定する。一方、各受信バッファが最大格納数である16個のパケットを格納している場合において、パケット毎に生成される各タグ値が各パケットの到来順序を示すには、タグ値が各受信バッファの最大格納数の和、すなわち48(16×3=48)通りの値を表現することが要求される。この場合、48通りのタグ値を表現する最小のビット数は6ビットとなる。
例えば、3つの受信バッファがあり、各受信バッファは16個のパケットを格納できると仮定する。一方、各受信バッファが最大格納数である16個のパケットを格納している場合において、パケット毎に生成される各タグ値が各パケットの到来順序を示すには、タグ値が各受信バッファの最大格納数の和、すなわち48(16×3=48)通りの値を表現することが要求される。この場合、48通りのタグ値を表現する最小のビット数は6ビットとなる。
従って、タグバッファに要求される最小容量は、288ビットとなる(6(タグ値)×16(パケット最大格納数)×3(受信バッファ数)=288[bit])。
本発明の態様の一つの目的は、データブロックの到来順序情報の記録に要求される容量を削減可能なデータブロック読出制御装置を提供することである。
本発明の態様の一つは、データブロック読出制御装置である。パケット読出制御装置は、振分単位毎に用意された複数の受信バッファに振り分けて格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、
前記識別子列における各振分単位の識別子の先頭位置を検出する検出部と、
少なくとも、前記各識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定する決定部と、
前記決定部で決定されたデータブロックを前記複数の受信バッファの一つから読み出す読出部とを含み、
前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックに対応する振分単位の全てを表すために要求される最小数のビットで表現される。
前記識別子列における各振分単位の識別子の先頭位置を検出する検出部と、
少なくとも、前記各識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定する決定部と、
前記決定部で決定されたデータブロックを前記複数の受信バッファの一つから読み出す読出部とを含み、
前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックに対応する振分単位の全てを表すために要求される最小数のビットで表現される。
本発明の態様の一つによれば、データブロックの到来順序情報の記録に要求される容量を削減することができる。
以下、図面を参照して本発明の実施形態について説明する。以下の実施形態における構成は例示であり、本発明は実施の形態の構成に限定されない。
<実施形態1>
図1は、実施形態1におけるデータブロック読出装置の構成例を示す図である。実施形態1では、データブロック読出装置として、データブロックとしてのパケットの振分単位間での送出順序を制御するためのパケット読出装置について説明する。実施形態1の例では、パケット読出装置1は、振分単位である複数のパケットタイプとして、タイプ“P”,タイプ“N”及びタイプ“C”の三つのパケットタイプ(パケット種別)のパケットの送出順序を制御する。
図1は、実施形態1におけるデータブロック読出装置の構成例を示す図である。実施形態1では、データブロック読出装置として、データブロックとしてのパケットの振分単位間での送出順序を制御するためのパケット読出装置について説明する。実施形態1の例では、パケット読出装置1は、振分単位である複数のパケットタイプとして、タイプ“P”,タイプ“N”及びタイプ“C”の三つのパケットタイプ(パケット種別)のパケットの送出順序を制御する。
一つ目のパケットタイプであるタイプ“P”は、完了通知の返信が要求されない処理のリクエストを含む“posted”である。二つ目のパケットタイプであるタイプ“N”は、完了通知の返信が要求される処理のリクエストを含む“non-posetd”である。三つ目のパケットタイプであるタイプ“C”は、処理の完了通知を含む“completion”である。以下、パケットタイプを区別することなく説明する場合には、単に「パケット」と表記し、パケットタイプを特定する必要がある場合には、タイプ“P”,すなわち“posted”のパケットを“Pパケット”と表記し、タイプ“N”,“non-posetd”のパケットを“Nパケット”と表記し、タイプ“C”,すなわち“completion”のパケットを“Cパケット”と表記する。
パケット読出装置1には、タイプ“P”,タイプ“N”及びタイプ“C”の各パケットを転送するためのチャネル(伝送路)が設けられている。チャネルを流れる各タイプのパケットに対し、パケット間でのパケットフォワードの順序付けルール(読出ルール)が適用される。実施形態1の例では、P、C、Nの順でフォワード(転送)の優先順位が予め決定されており、優先順位に従ってパケットが転送される。
図1において、パケット読出装置1は、受信バッファ群10と、パケット読出制御装置20とを備える。
受信バッファ群10は、振り分け単位であるパケットタイプ毎に用意された複数の受信バッファを備える。ここでは、受信バッファ群10は、パケットタイプ“P”,“N”及び“C”に対応する受信バッファ11,12,13を備えている。各受信バッファ11,12,13は、FIFOであり、それぞれ、最大16個の固定長又は可変長のパケットを格納することができる。
パケット読出制御装置20は、パケット書込制御部としての受信バッファ書込制御回路21と、順序バッファとしてのオーダーバッファ22と、検出部としての先頭位置検出回路23と、決定部としての調停回路24と、パケット読出制御部としての受信バッファ読出制御回路25とを備えている。
図1において、パケット読出装置1の受信部26では、1つずつ到来したパケットが受信される。受信部26は、受信バッファ群10,受信バッファ書込制御回路21,オーダーバッファ22に接続されている。
受信バッファ群10には、受信部26で受信されたパケットが入力され、パケットは、振分単位であるパケットタイプに従い、受信バッファ11,12,13のいずれかに振り分けて格納される。受信バッファ11には、Pパケットが格納される。受信バッファ12には、Nパケットが格納される。受信バッファ13には、Cパケットが格納される。
また、受信バッファ群10の受信バッファ11~13の蓄積量を監視する監視部16が設けられている。監視部16には、受信バッファ書込制御回路から出力されるパケットの書込命令と、受信バッファ読出制御回路25から出力される受信バッファ読出命令とが入力される。監視部16は、例えば、受信バッファ群10をなす複数の受信バッファ(受信バッファ11~13)毎に用意されたカウンタ(初期値“0”)を有している。受信バッファ書込制御回路21からの書込命令の入力時には、監視部16は、当該書込命令でパケットの書込が指定された受信バッファを特定し、当該受信バッファに対応するカウンタの値に1を加算する。一方、受信バッファ読出制御回路21からの受信バッファ読出命令の入力時には、当該受信バッファ読出命令でパケットの読出が指定された受信バッファを特定し、当該受信バッファに対応するカウンタの値から1を減じる。受信バッファ書込制御回路21及びオーダーバッファ22には、受信部26が有する図示しないエンコーダでエンコードされる、パケット内のタイプ識別子が入力される。
タイプ識別子はパケットタイプを示す情報であり、複数の受信バッファ11~13に格納されるパケットの振分単位、すなわち、受信バッファ11~13に格納されるパケットの全てのパケットタイプを表すために要求されるビット数で表現されている。本実施形態では、パケットタイプは、“P”,“N”及び“C”の3種類であるため、タイプ識別子は2ビットで表現される。具体的には、Pパケットにはビット値“01”が割り当てられ、Nパケットにはビット値“10”が割り当てられ、Cパケットには“11”が割り当てられる。ビット値“00”は、パケットタイプが未割り当てである“non”として扱われる。
また、受信バッファ書込制御回路21及びオーダーバッファ22には、受信部26でのパケット受信“有効”を示すパケット受信valid信号(Pkt_Rcv_Val)が入力される。パケット受信valid信号は、受信トリガとして受信バッファ書込制御回路21及びオーダーバッファ22で用いられる。
受信バッファ書込制御回路21は、受信されたパケットのタイプ識別子が入力され、且つパケット受信valid信号を受け取ると、パケット受信valid信号をトリガとして、タイプ識別子の内容を参照し、タイプ識別子に対応する受信バッファへのパケットの書込命令を受信バッファ群10に与える。
受信バッファ群10では、受信バッファ書込制御回路21からのパケットの書込命令に応じて、受信部26から入力されたパケットを、タイプ識別子に対応する受信バッファに格納する。このようにして、受信部26で受信されたパケットが、タイプ識別子に応じて受信バッファ11~13のいずれかに振り分けられる。
オーダーバッファ22は、複数ステージ(複数段)を有するシフタ型バッファである。オーダーバッファ22は、直列接続された複数のステージを構成する記憶領域としてのフリップフロップ(FF)を含むFF群221と、カウンタ(Count)222と、書込/読出制御部(Write/Read制御部)223とを備える。
FF群221は、受信バッファ群10のパケット最大格納数に等しい数のFFを含む。この例では、受信バッファ群10のパケットの最大格納数48(3タイプ×16パケット)に等しい48個のフリップフロップFF_01~FF_48が直列に接続されている。図1では、FF_48が先頭で、FF_01が末尾となっている。
具体的には、各FFの入力側には、セレクタ2235が接続されており、セレクタ2235の入力端子の一つには、受信部26からのタイプ識別子が流れる信号線L2が接続される。また、セレクタ2235の入力端子の他の一つは、次ステージのFFの出力端子と接続される。但し、最後尾のステージに位置するFF_01の入力側に設けられたセレクタ2235の入力端子の他の一つには、未割り当てを示す“non”が入力されるようになっている。
これによって、各FFの入力端子には、セレクタ2235によって、信号線L2からのタイプ識別子(“P”,“N”,“C”)と、次ステージのFFの保持内容(“P”,“N”,“C”又は“non”。但し、FF_01は“non”のみ)との一方が入力される。
書込/読出制御部223は、各セレクタ2235の動作を制御することで、FF群221に対し、パケット読出装置1に到来した有効なパケットのタイプ識別子をパケットの到来順(受信順)で格納することができる。また、書込/読出制御部223は、セレクタ2235の動作制御を通じて、受信バッファ群10から読み出されたパケットのタイプ識別子をFF群221から消去することもできる。よって、FF群221は、受信バッファ群10に格納されている各パケットのタイプ識別子を到来順(受信順)で保持することができる。また、書込/読出制御部223は、受信バッファ群10に格納されているパケットのタイプ識別子をFF群221に前詰めで格納する。書込/読出制御部223の詳細構成は後述する。
図2は、図1に示したオーダーバッファ22の詳細構成例を示す図である。図2において、カウンタ222は、FF群221に格納されるタイプ識別子の数、すなわち、受信バッファ群で保持されているパケットの数を示すカウンタ値(初期値“00”)を保持する。また、カウンタ値は、FF群221に対するタイプ識別子の書込位置を指定するために用いられる。
カウンタ222には、有効なパケットが受信部26で受信されたことを示すパケット受信valid信号(Pkt_Rcv_Val)と、受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)とが入力される。パケット読出開始信号(Rd_Start)は、受信バッファ群10からのパケットの読出開始を指示する信号である。
カウンタ222は、パケット受信valid信号(Pkt_Rcv_Val)の入力をトリガとして、カウンタ値に1を加算する。これに対し、カウンタ222は、パケット読出開始信号(Rd_Start)の入力をトリガとして、カウント値から1を減じる。従って、カウント値は、FF群221に格納されているタイプ識別子の数、すなわち、受信バッファ群10で保持されているパケットの数を示す。
書込/読出制御部223には、上述したパケット受信valid信号(Pkt_Rcv_Val),パケット読出開始信号(Rd_Start),カウンタ222のカウンタ値,及び受信バッファ読出制御回路25からのクリアライン位置信号(Clear_LINE)が入力される。クリアライン位置信号は、受信バッファ10から読み出されるパケットのタイプ識別子を保持するFFを指定する値(“01”~“48”)を含んでいる。
パケット受信valid信号は、受信部26と接続された信号線L1を流れる。受信部26からのタイプ識別子(Type_ID)は、信号線L2を流れる。受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)は、信号線L3を流れる。受信バッファ読出制御回路25からのクリアライン位置(Clear_LINE)は、信号線L4を流れる。
書込/読出制御部223は、セレクタ2231と、デコーダ2232と、FF群221のステージ数(FFの数。実施形態1の例では48)と同数のAND回路2233と、FF群221のステージ数と同数のAND回路2234と、減算器2236と、シフト制御部2237と、FF群221のステージ数と同数のAND回路2238とを備えている。
パケット受信valid信号が流れる信号線L1は、各AND回路2233の一方の入力端子に接続されている。また、信号線L1はカウンタ222に接続されており、カウンタ222は、パケット受信valid信号(Pkt_Rcv_Val)の受信を契機として、カウンタ222で保持されるカウンタ値に1を加算する。
カウンタ222の出力端子は、セレクタ2231及び減算器2236に接続されている。減算器2236は、カウンタ222のカウンタ値から1を減じる。減算器2236は、セレクタ2231に接続されている。
セレクタ2231は、カウンタ222からのカウンタ値と減算器2236によってカウンタ値から1を減じた値(減算値)との一方をデコーダ2232に出力する。セレクタ2231は、信号線L3を流れるパケット読出開始信号(Rd_Start)の入力がない場合には、カウンタ222からのカウンタ値を選択してデコーダ2233に入力する。これに対し、セレクタ2231は、パケット読出開始信号が信号線L3に入力されると、入力されたパケット読出開始信号を選択条件として、減算器2236からの出力をデコーダ2232に出力する。セレクタ2231の作用については後述する。
なお、信号線L3は、カウンタ222に接続されており、カウンタ222は、パケット読出開始信号(Rd_Start)の受信を契機として、カウンタ222が保持するカウンタ値から1を減算する。
デコーダ2232は、各AND回路2233の他方の入力端子と接続される複数の出力端子を備える。デコーダ2232は、セレクタ2231から入力されるカウンタ値又はカウンタ値の減算値に対応する出力端子からオン信号を出力し、残りの出力端子からオフ信号を出力する。各AND回路2233は、FF群221をなすFF_48~FF_01と対応づけられている。例えば、デコーダにカウンタ値“0”が入力された場合には、FF_48に対応するAND回路2233_48のみにオン信号が与えられ、残りのAND回路2233にはオフ信号が与えられる。
各AND回路2233は、AND回路2233自身が有する双方の入力端子への入力がオンとなることを条件にオン信号を出力する。当該オン信号は、AND回路2233と対応するFFに対するタイプ識別子の書込イネーブル信号(WriteEN_X(01≦X≦48))として機能する。書込イネーブル信号は、FF群221をなす各FFの入力側に設けられたセレクタ2235に対する、信号線L2を流れるタイプ識別子(Type_ID)の選択条件となる。
FF_48~FF_02の入力側に設けられた各セレクタ2235は、信号線を介して次ステージのFFに接続されている。一方、FF_01の入力側に設けられたセレクタ2235には、未割り当てを示す “non”(“00”)が入力される。
これによって、各セレクタ2235は、信号線L2を流れるタイプ識別子と、次ステージのFFの保持内容(但し、FF_01対応のセレクタ2235は“non”)との一方を選択し、先頭側のFFに出力する。
これによって、各セレクタ2235は、信号線L2を流れるタイプ識別子と、次ステージのFFの保持内容(但し、FF_01対応のセレクタ2235は“non”)との一方を選択し、先頭側のFFに出力する。
また、セレクタ2235には、その後段に位置するFFの出力信号が入力されるようになっている。
各セレクタ2235が、次ステージのFFの保持内容又は“non”を選択する選択条件は、以下に説明する回路構成によって実現される。すなわち、パケット読出開始信号(Rd_Start)が流れる信号線L3は、各AND回路2238の一方の入力端子に夫々接続されている。
信号線L4を流れるクリアライン位置(Clear_LINE)は、シフト制御部2237に入力される。シフト制御部2237は、各AND回路2238の他方の入力端子に接続されており、クリアライン位置(“01”~“48”)に応じて、各AND回路2238に対するオン信号の出力を制御する。複数のAND回路2238は、FF群221をなすFFのステージ数と同数のAND回路からなり、各FFに対応づけられている。
実施形態1の例では、シフト制御部2237は、クリアライン位置に応じて、当該クリアライン位置のFF及び当該クリアライン位置より後段のFFに対応するAND回路2238にオン信号を入力し、当該クリアラインより前のFFに対応するAND回路2238があれば、当該AND回路2238にオフ信号を入力するように動作する。
例えば、ラインクリア位置が“48”である場合には、シフト制御部2237は、AND回路2238の全てにオン信号を出力する。ラインクリア位置が“47”である場合には、シフト制御部2237は、ラインクリア位置より前に位置するFF_48に対応するAND回路2238(2238_48)にオフ信号を入力し、残りのAND回路2238にはオン信号を入力する。同様の動作が、他のラインクリア位置“46”~“01”についても行われる。ラインクリア位置が最後尾である“01”の場合には、シフト制御部2237は、FF_01に対応するAND回路2238に対してオン信号を入力し、残りのAND回路2238にはオフ信号を入力する。
各AND回路2238は、パケット読出開始信号(Rd_Start)が入力され、且つシフト制御部2237からオン信号が入力された場合にオン信号を出力する。AND回路2238のオン信号は、シフト命令信号(Shift_X(01≦X≦48))として機能する。
各AND回路2238の出力端子は、FF群221をなす各FFに対応づけられた複数のAND回路2234の一方の入力端子に夫々接続されている。各AND回路2234の他方の入力端子には、同一のFFに対応するAND回路2233から出力された書込イネーブル信号(WriteEN_X)の反転信号が入力される。よって、各AND回路2234は、書込イネーブル信号がオフであり、且つシフト命令信号がオンである場合にオン信号を出力する。
AND回路2234から出力されるオン信号は、AND回路2234と対応するFFの入力側に位置するセレクタ2235に対する、次ステージのFFの保持内容又は“non”の選択条件となる。
よって、各FF_48~FF_01では、対応するAND回路2233から書込イネーブル信号が出力される一方で、AND回路2234がオフのときには、信号線L2を流れるタイプ識別子が当該FFに書き込まれる。これに対し、FFに対応するAND回路2233がオフ(書込イネーブル信号なし)で対応するAND回路2234がオンのときには、当該FFに対し、次ステージのFFの保持内容又は“non”が書き込まれる。
以上説明した書込/読出制御部223は、以下のように動作する。オーダーバッファ22の初期リセット直後は、FF群221の全てのFF_48~FF_01に“non”が保持された初期化状態にされる。また、初期化状態では、カウンタ値は初期値“00”とされる。このとき、デコーダ2232からは、カウンタ値“00”に応じてFF_48に対応するAND回路2233_48にオン信号が入力され、残りのAND回路2233にはオフ信号が入力された状態となる。
このような状態において、受信部26からパケット受信valid信号とタイプ識別子とが出力されたと仮定する。すると、信号線L1を流れるパケット受信valid信号によって、AND回路2233_48がオンとなり、書込イネーブル信号(WriteEN_48)がAND回路2233_48から出力される。この時点で、信号線L3及びL4に対するパケット読出開始信号及びラインクリア位置はオフ(入力なし)であるので、FF_48に対応するAND回路2234_48はオフである。よって、FF_48に対応するセレクタ2235は、信号線L2を流れるタイプ識別子を選択してFF_48に入力する。これによって、FF_48がタイプ識別子を保持する。
一方、カウンタ222は、パケット受信valid信号の入力に応じて、カウンタ値“00”に1を加算する。よって、カウンタ値は“01”となり、デコーダ2232は、FF_47に対応するAND回路2233(2233_47)のみにオン信号を入力し、残りのAND回路2233にはオフ信号を入力する状態となる。
その後、さらに、受信部26からのパケット受信valid信号及びタイプ識別子が信号線L1及び信号線L2にそれぞれ入力されたと仮定する。すると、パケット受信valid信号によって、AND回路2233_47がオンとなり、書込イネーブル信号(WriteEN_47)が出力される。この時点で、信号線L3及びL4に対するパケット読出開始信号及びラインクリア位置はオフ(入力なし)であるので、FF_47に対応するAND回路2234_47はオフである。よって、FF_47に対応するセレクタ2235は、信号線L2を流れるタイプ識別子を選択してFF_47に入力する。FF_48及びFF_46~FF01は、書込イネーブル信号及びAND回路2234の出力が共にオフであるので、保持内容を維持し続ける。これによって、FF_48及びFF_47がタイプ識別子を保持した状態となる。
一方、カウンタ222は、パケット受信valid信号の入力に応じて、カウンタ値“01”に1を加算する。よって、カウンタ値は“02”となる。
その後、FF_48に保持されたタイプ識別子を有するパケットの、受信バッファ群10からのパケット読出開始信号(Rd_Start)が受信バッファ読出制御回路25から信号線L3に入力され、続いて、FF_48の保持内容を消去するためのラインクリア位置“48”が受信バッファ読出制御回路25から信号線L3に入力されたと仮定する。
この場合、パケット読出開始信号及びシフト制御部2237の、クリアライン位置“48”に応じた出力により、全てのAND回路2238がオンとなり、シフト命令信号(Shift_X)を出力する。この時点で、各AND回路2233からの書込イネーブル信号はオフであるので、全てのAND回路2234がオンとなる。すると、FF_48~FF02に対応するセレクタ2235は、次ステージのFFの保持内容を選択して、対応するFFに保持させる。よって、FF_47~FF01の保持内容が前詰めにシフトし、FF_48の保持内容が消去される。また、FF_01に対応するセレクタ2235は、“non”をFF_01に保持させる。
その後、例えば、FF_48に保持されたタイプ識別子を有するパケットのパケット読出開始信号及びラインクリア位置が信号線L3及びL4に入力される一方で、パケット受信valid信号及びタイプ識別子が信号線L1及びL2に入力されたと仮定する。
この場合、上述したFF_47~FF_01の保持内容の前詰めシフトでFF_48の保持内容が消去される。このとき、カウンタ222のカウンタ値は“01”なのだが、ここで、カウンタ値“01”に応じた位置にタイプ識別子が書き込まれると、FF_48が空いているにも拘わらず、FF_47にタイプ識別子が書き込まれることになる。このため、パケット読出開始信号が入力されている間は、セレクタ2231は、減算器2236からの減算値、すなわちカウンタ値“01”から1を減じた減算値“00”を選択してデコーダ2232に入力する。これによって、FF_48に対するタイプ識別子の書込イネーブル信号(WriteEN_48)が発生し、FF_48にタイプ識別子が書き込まれる。一方、カウンタ222のカウンタ値は、パケット読出開始信号によって1減算されるが("01"→"00")、パケット受信valid信号によって1加算された状態となる("00"→"01")。
以上説明したように、複数のタイプ識別子が、パケット読出装置1へのパケットの到来順でFF群221に格納されることによって、FF群221は、受信バッファ群10に格納された複数のパケットに対応するタイプ識別子が到来順で並べられた識別子列を保持することになる。すなわち、FF群221の先頭から末尾に向かって受信時刻の古い順で、受信したパケットの各々に対応するタイプ識別子が保持される。これによって、FF群221の先頭側に位置する識別子程、到来順の古いパケットを示すことになる。
また、書込/読出制御部223は、タイプ識別子を先頭詰めでFF群221に格納する。すなわち、書込/読出制御部223は、タイプ識別子の書込に際して、カウンタ222からのカウンタ値を参照し、受信部26から転送されてくるタイプ識別子を、カウンタ値又は減算値に応じた位置に書き込む。
これによって、受信パケットに対応する複数のタイプ識別子がFF_48を先頭として連続して後続のFF群に格納される。このように、識別子列が先頭詰めでFF群221に格納されることによって、タイプ識別子を保持するFFのステージ位置が、パケットの到来順序を示すことになる。
或るパケットが受信バッファ群10から読み出された場合、書込/読出制御部223は、受信バッファ読出制御回路25からのパケット読出開始信号及びクリアライン位置を受けて、受信バッファ群10から読み出されたパケットに対応するタイプ識別子を、当該タイプ識別子を保持しているFFから消去するとともに、当該仮想チャネル識別子が消去されたFFの直後から末尾までの各FFに保持されたタイプ識別子を1つずつ先頭側にシフトさせる。このようにして、書込/読出制御部223は、タイプ識別子をFFから消去するときに、後続のFFの保持内容をシフトさせて、先頭詰め状態が維持されるように、タイプ識別子の書込制御を行う。
以下、受信バッファ群10から読み出すべきパケットを決定するための構成要素である、先頭位置検出回路23,調停回路24及び受信バッファ読出制御回路25の詳細について説明する。
先頭位置検出回路23は、先頭P位置検出回路231と、先頭N位置検出回路232と、先頭C位置検出回路233とを含んでいる。FF群221に含まれる各FFの出力端子には、各FFが保持するタイプ識別子をデコードするデコーダ224が接続されている。デコーダ224は、P,N,Cに対応する三つの出力ライン(Pライン,Nライン,Cライン)を有している。各Pライン(P01ライン~P48ライン)は、先頭P位置検出回路231に接続され、各Nライン(N01ライン~N48ライン)は、先頭N位置検出回路232に接続され、各Cライン(C01ライン~C48ライン)は、先頭C位置検出回路233に接続されている。
デコーダ224は、対応するFFの保持内容をデコードし、デコード結果が“P”であればPラインのみにオン信号を出力し、残りのNライン及びCラインにはオフ信号を出力する。また、デコード結果が“N”であれば、デコーダ224は、Nラインのみにオン信号を出力し、残りのPライン及びCラインにはオフ信号を出力する。また、デコード結果が“C”であれば、デコーダ224は、Cラインのみにオン信号を出力し、残りのPライン及びNラインにはオフ信号を出力する。また、FFの保持内容が“non”であれば、デコーダ224はPライン,Nライン及びCラインの全てにオフ信号を出力する。
例えば、FF_48に接続されたデコーダ224は、FF_48に対応するPライン(P48ライン),Nライン(N48ライン),Cライン(C48ライン)を有する。P48ラインは、先頭P位置検出回路231に接続され、N48ラインは、先頭N位置検出回路232に接続され、C48ラインは、先頭C位置検出回路233に接続されている。
FF_48に接続されたデコーダ224は、FF_48が保持するタイプ識別子が“P”である場合には、P48ラインをオンに設定し(オン信号を出力)、残りのN48ライン及びC48ラインをオフに設定する(オフ信号を出力する)。また、デコーダ224は、FF_48が保持するタイプ識別子が“N”である場合に、N48ラインをオンに設定し、P48ライン及びC48ラインをオフにする。さらに、デコーダ224は、FF_48が保持するタイプ識別子が“C”である場合にC48ラインをオンに設定し、P48ライン及びN48ラインをオフにする。このような動作が、他のFF_47~01に接続されたデコーダ224でも行われる。但し、FFの保持内容が“non”である場合には、デコーダ224は全ての出力ラインをオフにする。
図3は、先頭位置検出回路23の構成例を示す。先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233として、例えば、プライオリティエンコーダを適用することができる。先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233は、ほぼ同様の構成を備えているので、例として先頭位置P位置検出回路231について説明する。
図3に示す例では、先頭P位置検出回路231は、プライオリティエンコーダとして、P47ライン~P01ライン(FF_47~FF_01)に対応するN個(実施形態1の例ではN=47)のAND回路2311_47~2311_01(但し、図3では、2311_47~2311_45のみを例示)と、信号検出回路2312とを備えている。以下、AND回路2311_47~2311_01を区別することなく説明する場合には、AND回路2311と表記する。
P48ラインは、直接に信号検出回路2312に接続されている。残りのP47~P01ラインは、対応するAND回路2311_47~2311_01の入力端子に接続されている。また、各Pラインを流れるオン/オフ信号は、自身のライン番号より小さいライン番号に対応する各AND回路2231が有する反転入力端子に入力される。
例えば、P48ラインを流れるオン/オフ信号は、P47~P01ラインに対応するAND回路2311_47~2311_01が有する反転入力端子に夫々入力される。また、P47ラインを流れるオン/オフ信号は、P46~P01ラインに対応するAND回路2311_46~2311_01が有する反転入力端子にそれぞれ接続される。このように、各AND回路2311は、対応するPライン番号より大きいライン番号を有する各Pラインからのオン/オフ信号の反転信号が入力されるための1以上の反転入力端子を有している。従って、各AND回路2311は、対応するPラインからオン信号が入力され、且つ当該AND回路2311が有する全ての反転入力端子に対してオフ信号が入力される場合にのみオン信号を出力する。言い換えれば、各AND回路2311は、AND回路2311に対応するFFがタイプ識別子“P”を保持する先頭のFFである場合にのみ、オン状態となる。
上述したように、P48ラインは、信号検出回路に接続されている。また、AND回路2311_47~2311_01の出力端子は、信号線を介して信号検出回路2312に接続されている。ここで、P48ライン,及びAND回路2311_47~2311_01と信号検出回路とを夫々結ぶ複数の信号線を、説明のために「入力ライン48~01(IL48~01)」と呼ぶ。
信号検出回路2312では、入力ラインIL48~01のオン/オフ(0/1)を、入力ラインIL48~01までを大きい番号順で並べた48ビットのビット列として認識することができる。上述したAND回路2311_47~2311_01の回路構成によって、入力ラインIL48~01のいずれか一つのみがオンとなり、残りの入力ラインはオフとなる。このため、信号検出回路2312は、入力ラインIL48を先頭として、48ビットのビット列からオン(“1”)となっているビットの位置を検出し、検出された位置を、FF群221においてタイプ識別子“P”を最も先頭側で保持するFFに対応するPライン番号(P_LINE_NUM)として出力する。
先頭N位置検出回路232は、先頭P位置検出回路231におけるPラインがNラインであることを除けば、先頭P位置検出回路231と同じ構成を有する。すなわち、AND回路2311_47~2311_01に相当するAND回路2321_47~2321_01と、信号検出回路2312に相当する信号検出回路2322とを備えている。信号検出回路2322は、信号検出回路2312と同様の処理を行い、FF群221において、タイプ識別子“N”を最も先頭側で保持するFFに対応するNライン番号(N_LINE_NUM)を出力する。
同様に、先頭C位置検出回路233は、先頭P位置検出回路231におけるPラインがCラインであることを除けば、先頭P位置検出回路231と同じ構成を有する。すなわち、AND回路2311_47~2311_01に相当するAND回路2331_47~2331_01と、信号検出回路2312に相当する信号検出回路2332とを備えている。信号検出回路2332は、信号検出回路2312と同様の処理を行い、FF群221において、タイプ識別子“C”を最も先頭側で保持するFFに対応するCライン番号(C_LINE_NUM)を出力する。
以上のように、先頭P位置検出回路231,先頭N位置検出回路232及び先頭C位置検出回路233のそれぞれは、出力がオン状態の出力ラインのうち最も先頭の出力ラインの番号、すなわち、最も先頭よりのFFのステージ位置を、Pパケット,Nパケット,Cパケットの先頭位置として検出する。
図4は、各識別子の先頭位置検出動作の例を示す。例えば、図4に示すように、FF_48~FF_43に対し、複数のタイプ識別子が先頭から順に“C”,“N”,“N”,“P”,“P”,“C”の順序で保持されていると仮定する。
この場合、先頭P位置検出回路231は、タイプ識別子”P”を保持する最も先頭のFF48に対応するPライン番号“45”を検出する。同様に、先頭N位置検出回路232は、タイプ識別子”N”を保持する最も先頭のFF47に対応するNライン番号“47”を検出し、先頭C位置検出回路233は、タイプ識別子”C”を保持する最も先頭のFF48に対応するCライン番号“48”を検出する。このように、先頭位置検出回路23により、P,N,Cそれぞれのパケットタイプに関して、到来時刻の最も古いパケットのFF群221における位置、すなわち、Pパケット,Nパケット,Cパケットの先頭位置が検出される。
先頭P位置検出回路231は、仮想チャネル識別子“P”の先頭位置を示すPライン番号を示すP_LINE_NUM信号を出力する。先頭N位置検出回路232は、仮想チャネル識別子“N”の先頭位置を示すNライン番号を示すN_LINE_NUM信号を出力する。先頭C位置検出回路231は、仮想チャネル識別子“C”の先頭位置を示すCライン番号を示すC_LINE_NUM信号を出力する。各検出部231,232,233は、出力すべきラインがない、すなわち読み出すパケットが無い場合には、“0”を出力する。
調停回路24には、先頭位置検出回路23からの出力信号、つまりP_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号が入力される。調停回路24では、先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233からそれぞれ受け取る出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号)によって、P,N,Cの各パケットの有無と、P,N,Cの各パケットタイプ間の到来順序を知ることができる。調停回路24では、さらに、パケットタイプ間でのフォワード順序付けルールを考慮して、受信バッファ群10から読み出すべきパケット、すなわちパケット読出を実行すべき受信バッファを決定する調停処理を行う。
本実施形態では、調停回路24は、P,C,Nの到来順序を認識し、フォワード順序付けルールに従って、P,C,Nの優先順位で、読み出すべきパケットのパケットタイプ(パケット読出を実行すべき受信バッファ)を決定する。但し、調停処理で使用されるフォワード順序付けルールは、上記した優先順位に加えて、或いは優先順位に代えて、他の条件となるルールが用いられるようにしても良い。要は、調停回路24の利用する調停ルールは、1以上の条件を用いて適宜設定可能である。
調停回路24は、パケットを読み出す受信バッファを決定すると、パケットの読出要求(REQ)と、読出対象のパケットタイプを示す信号(Type)とを受信バッファ読出制御回路25へ出力する。
ここで、先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233からそれぞれ出力される出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号)は、調停回路24だけでなく、調停回路24によって出力制御されるセレクタ27にも入力される。
調停回路24は、調停処理によってパケット読出を実行すべき受信バッファを決定すると、セレクタ27に対し、決定した受信バッファに対応する出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号のいずれか)の選択を指示する制御信号を与える。セレクタ27は、制御信号に従った出力信号を選択し、選択した出力信号を読出対象のパケットに対応するタイプ識別子のライン番号(格納位置:ODR_Rd_LINE)として、受信バッファ読出制御回路25に出力する。これによって、読出が決定されたパケットのタイプ識別子を格納するFFに対応するライン番号(ODR_Rd_LINE)が受信バッファ読出制御回路25に入力される。
受信バッファ読出制御回路25は、受信バッファ読み出しの開始タイミング制御を行なう。受信バッファ読出制御回路25は、調停回路24からパケットの読出要求(REQ)を受け取ると、調停回路24が出力したパケットタイプを示す信号(Type)で示される、調停回路24が指定したパケットタイプに対応する受信バッファ(11~13のいずれか)を特定し、特定した受信バッファに対する受信バッファ読出命令を発行する。
受信バッファ読出制御回路25が出力する受信バッファ読出命令は、受信バッファ群10の読出回路(セレクタ11A)に入力され、受信バッファ読出命令に対応する受信バッファからのパケットがセレクタ11Aにより選択され、送出先へ向けて出力される。
受信バッファ読出制御回路25は、読出命令の出力とあわせ、パケット読出開始信号(Rd_Start)を出力する。パケット読出開始信号(Rd_Start)は、上述したように、信号線L3を介してオーダーバッファ22のカウンタ222及び書込/読出制御部223に入力される。また、受信バッファ読出制御回路25は、パケット読出開始信号(Rd_Start)とともに、読出対象のパケットに対応するタイプ識別子を保持したFFの保持内容のクリアライン位置(Clear_LINE)を出力する。クリアライン位置は、信号線L4を通じてオーダーバッファ22の書込/読出制御部223に入力される。これによって、書込/読出制御部223は、上述したようなパケット読出開始信号及びクリアライン位置の入力時における動作を行い、クリアライン位置に応じたFFより後段の各FFに保持されたタイプ識別子又は“non”を夫々1つずつ先頭側にシフトさせることによって、クリアライン位置のFFに保持されたタイプ識別子を消去する。また、最後尾のFF_01に“non”が書き込まれる。
図5は、オーダーバッファ(FF群221)のクリア動作の例を示す。例えば、パケットの読出前において、FF群221の48ステージ(FF_48)~43ステージ(FF_43)までに、タイプ識別子が先頭からC,N,P,N,P,Cで格納されていたと仮定する(FF_01~FF_42までは“non”と仮定する)。
ここで、調停回路24による調停によって、FF_46のタイプ識別子“P”に対応するパケットが受信バッファ11から読み出されたと仮定する。すると、書込/読出制御部223には、受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)と、FF_46(P46ライン)のクリアライン位置とが入力される。すると、書込/読出制御部223は、図5に示すように、パケット読出開始信号及びクリアライン位置に応じて、FF_45~FF_43の保持内容“N”,“P”,“C”及びFF_42~FF_01の保持内容“non”を先頭側のステージへシフトさせることによって、FF_46に保持された“P”を消去する。そして、末尾のFF_01には“non”を格納する。これによって、到来時刻の最も古いパケットは、常に先頭ステージ(48ステージ)から検査すれば良い状態が保たれる。
なお、上記の書込/読出制御部223の動作において説明したように、FF群221に対するタイプ識別子のクリア動作とFF群221に対するタイプ識別子の書込が同時に行われる場合には、書込/読出制御部223は、FF群221に対するシフト動作を先に行って、受信バッファから読み出されたパケットのクリア識別子を消去し、その後、FF群221に新たに書き込まれるクリア識別子を、「クリア動作が無い時の位置+1」に相当する書込位置のFFに保持させる。
実施形態1によると、受信バッファ群10に格納されている各パケット内のタイプ識別子が、パケットの到来順で、オーダーバッファ22が有するFF群221での物理的なステージ位置に格納される。すなわち、パケットの振分単位の識別子であるタイプ識別子がパケットの到来順に並べられた識別子列が、オーダーバッファ221に格納される。
そして、識別子列における各パケットの識別子(タイプ識別子P,N,C)の先頭位置が先頭位置検出回路23で検出されることによって、調停回路24は、P,N,Cの各パケットの到来順を認識でき、フォワード順序付けルールや送信先のBUSY状態を考慮して、次に読み出すべきパケットを決定することができる。
ここで、オーダーバッファ22のFF群221に要求される容量は、2ビット(タイプ識別子のビット数)×16(各受信バッファのパケット最大格納数)×3(受信バッファ数)=96[bit]となる。よって、図9に比べて要求される容量を大幅に削減することができる。これによって、到来順序情報を記憶する回路量を削減することができる。
<実施形態2>
次に、実施形態2について説明する。実施形態2は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
次に、実施形態2について説明する。実施形態2は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
振分単位(実施形態1の例ではパケットのタイプ数)の数が2のn乗(n=1,2,3,・・・)、すなわち(2,4,8,16・・・)である場合において、実施形態1で説明したように、未割り当ての識別子“non”を含めると、識別子のビット数を、「振分単位数+1bit」としなければならない。このため、未割り当てを示す“non”を用いなくても、実施形態1と同様のパケットの読出順序制御が可能な実施形態を、実施形態2として説明する。
図6は、実施形態2に係るデータブロック読出装置(パケット読出装置1A)の構成例を示す。パケット読出装置1Aは、実施形態1で説明したパケット読出装置1における受信バッファ群10及びパケット読出制御装置20に相当する、受信バッファ群10Aと、パケット読出制御装置20Aとを備えている。
実施形態2は、以下の点で実施形態1と異なっている。すなわち、実施形態1では、パケットタイプ数は、“P”,“N”及び“C”の三つであったが、実施形態4では、パケットタイプ“X(eXtended Type)”が追加されて、パケットタイプが四種類となっている。
このため、受信バッファ群10Aは、Pパケット,Nパケット及びCパケットを夫々保持する受信バッファ11~13に加えて、タイプ“X”のパケット(Xパケットと称する)を保持するための受信バッファ14をさらに備えている。各受信バッファ11~14には、最大12個のパケットが蓄積される。
実施形態2における受信部26は、到来したパケットに含まれる識別子を、2ビットのタイプ識別子にエンコードする。このとき、タイプ“P”,“N”,“C”,“X”の夫々は、タイプ識別子を示す2ビット“00”,“01”,“10”,“11”に夫々エンコードされる。
エンコードされたタイプ識別子及びパケット受信valid信号は、実施形態1と同様に受信バッファ書込制御回路21に入力される。受信バッファ書込制御回路21は、タイプ識別子に従って、受信部26から送出されるパケットを受信バッファ11~14のいずれかに保持させる。なお、タイプ識別子及びパケット受信valid信号は、信号線L1及びL2を介して、実施形態1のオーダーバッファ22に相当するオーダーバッファ22Aに入力される点は、実施形態1と同様である。
オーダーバッファ22Aは、以下の点で実施形態1のオーダーバッファ22と異なっている。第1に、未割り当ての識別子“non”の発生源が省略されており、FF群221における末尾のFF_01には、“non”が入力されないようになっている。すなわち、書込/読出制御部223からFF_01へのタイプ識別子の書込イネーブル信号が発行された場合に、信号線L2を流れるタイプ識別子がFF_01に書き込まれるようになっている。書込/読出制御部223は、実施形態1とほぼ同様の構成(図2)を備えている。
また、各FF_48~FF01の出力端子に接続された各デコーダ224は、実施形態1と異なり、タイプ識別子“P”,“N”,“C”及び“X”に応じた四つの出力端子を有している。四つの出力端子は、デコーダ224の後段に設けられた四つのAND回路(AND回路群226)における、一方の入力端子に接続されている。
デコーダ224は、対応するFFに保持されたタイプ識別子のデコードを行う。デコーダ224は、デコード結果に従い、FFに保持されたタイプ識別子に対応する出力端子のみにオン信号を出力し、残りの出力端子にはオフ信号を出力する。
これにより、AND回路群226は、デコード結果が“P”のときにオン信号が入力されるAND回路(AND回路226_1と表記)と、デコード結果が“N”のときにオン信号が入力されるAND回路(AND回路226_2と表記)と、デコード結果が“C”のときにオン信号が入力されるAND回路(AND回路226_3と表記)と、デコード結果が“X”のときにオン信号が入力されるAND回路(AND回路226_4と表記)とからなる。
オーダーバッファ22Aには、カウンタ222のカウンタ値が入力される有効範囲選択部225が追加されている(有効範囲選択部225の詳細は後述)。有効範囲選択部225の出力端子は、各デコーダの後段に設けられた各AND回路群226_1~226_4の他方の出力端子に接続されている。
各AND回路群226におけるAND回路226_1~226_3の出力端子は、実施形態1で説明したPライン,Nライン,Cラインを介して、先頭位置検出回路23Aの先頭P位置検出回路231,先頭N位置検出回路232,先頭C位置検出回路233に夫々接続されている。
また、各AND回路226_4の出力端子は信号線を介して、先頭位置検出回路23Aに設けられた先頭X位置検出回路234に接続されている。先頭X位置検出回路234と各AND回路226_4とを結ぶ複数の信号線は、各デコーダ224によるデコード結果“X”を先頭X位置検出回路234に伝達するためのXライン(X48~X01ライン)として機能する。
先頭X位置検出回路234は、FF群221におけるタイプ識別子“X”の先頭格納位置を検出するため回路であり、図3に示した先頭P位置検出回路231とのほぼ同様の構成を備えている。すなわち、図示しないが、図3に示した先頭P位置検出回路231が有する複数のAND回路2311及び信号検出回路2312と同様のAND回路群及び信号検出回路を備えており、これらのAND回路群及び信号検出回路とX48~X01ラインとの結線状態は、先頭P位置検出回路と同様となっている。従って、先頭X位置検出回路234の信号検出回路(図示せず)は、FF群221において最も先頭側でタイプ識別子“X”を保持するFFのステージ数を示すX_LINE_NUM信号を出力することができる。
X_LINE_NUM信号は、P_LINE_NUM信号,N_LINE_NUM信号,C_LINE_NUM信号と同様に、調停回路24及びセレクタ27に入力される。
X_LINE_NUM信号は、P_LINE_NUM信号,N_LINE_NUM信号,C_LINE_NUM信号と同様に、調停回路24及びセレクタ27に入力される。
調停回路24は、実施形態1と同様の手法、すなわち、フォワード順序付けルールに従って、パケットの読出を実行する受信バッファを決定する。例えば、調停回路24は、優先順位がP,C,N,Xであるフォワード順序付けルールに従って、パケットの読出を実行すべき受信バッファを決定し、セレクタ27に対する制御信号を出力することができる。
有効範囲選択部225は、FF群221の有効なステージを規定する。すなわち、有効範囲選択部225は、各AND回路群226のAND回路226_1~226_4と接続される複数の(実施形態2の例では48本)の制御ラインCL(CL48~CL01)を有している。有効範囲選択部225は、カウンタ222から入力されるカウンタ値に応じた出力ラインにオン信号を出力し、残りの出力ラインにはオフ信号を出力する。
ここで、カウンタ値の初期値が“00”であると仮定すると、カウンタ値が“01”のとき(すなわち、FF_48のみがタイプ識別子を保持するとき)は、CL48のみにオン信号を出力する。カウンタ値が“02”のとき(すなわち、FF_48及びFF_47にタイプ識別子が保持されているとき)は、CL48及びCL47にオン信号を出力する。このように、有効範囲選択部225は、カウンタ値から求まる、タイプ識別子を保持するFFと対応する制御ラインCLにのみオン信号を出力し、残りの制御ラインCLはオフとする。
従って、タイプ識別子を保持していないFFに対応する制御ラインCLはオフとなるので、制御ラインCLがオフであるAND回路群226の出力はオフとなる。従って、制御ラインCLがオンである、すなわちタイプ識別子を保持しているFFに対応するAND回路群226のみから、デコーダ224からのオン信号が先頭位置検出回路23Aに入力される。
以上の説明を除き、実施形態2の構成及び動作は、実施形態1と同様であるので説明を省略する。
実施形態2におけるパケット読出装置1Aによれば、オーダーバッファ22Aに格納される識別子の中に、“non”を含めることなく、実施形態1で説明したパケット読出装置1と同様のパケット読出制御を実行することができる。このため、振分単位数(実施形態2の例ではパケットタイプ数)が4である場合には、識別子2ビット幅に設定することができる。また、振分単位数(パケット単位数)を2にする場合には、1ビット幅(0又は1)にすることができる。すなわち、識別子のビット幅を振分単位数に対して必要最小限のビット幅にすることができる。
なお、実施形態2の構成例において、振分単位(パケットタイプ数)が2にされる場合には、受信部26におけるエンコード処理で、パケットタイプに応じてエンコード結果が“0”又は“1”となるように設定され、受信バッファ書込制御回路21がタイプ識別子(“0”または“1”)に従って受信バッファ群10A中の二つの受信バッファにパケットを振り分けて格納するための設定が施される。さらに、各デコーダ224が、FFの保持内容のデコード結果が“0”か“1”かに応じて、対応する出力ラインのみにオン信号を出力し、残りをオフにする動作を行うための設定が施される。
実施形態2の構成は、振分単位数が上述したような2や4と異なる2のn乗である場合にも適用が可能である。
<実施形態3>
次に、実施形態3について説明する。実施形態3は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
次に、実施形態3について説明する。実施形態3は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
実施形態3では、実施形態1のパケット読出制御回路20を基本構成として、パケットタイプ毎に先頭位置を検出する際の、別の方法について説明する。実施形態1では、FF群221をなす全てのFFにデコーダ224が設けられ、各FFで保持されるパケットタイプが検査されていた。実施形態3では、FF群221に設けられるデコーダ224の数を減らす方法について説明する。図7は、実施形態3におけるデータブロック読出装置(パケット読出装置1B)の構成例を示す図である。図7において、受信バッファ群10Bは、実施形態1で説明したPパケット,Nパケット及びCパケットを夫々保持する受信バッファ11,12及び13を備えている、但し、実施形態3では、受信バッファ群10Bに格納可能なパケットの総数は、実施形態1(48個)と等しいが、各受信バッファ11~13における最大格納数が実施形態1と異なっている。
実施形態3の例では、受信バッファ11の最大格納数は15個,受信バッファ12の最大格納数は16個,受信バッファ13の最大格納数は17個であり、各受信バッファ11~13は最大格納数を上限として、固定長又は可変長のパケットを格納することができる。
また、パケット読出装置1Bでは、FF群221の出力側に設けられるデコーダ224が、後述する検査範囲の決定方法に従って決められた検査範囲に属するステージのFFのみに設けられている。
実施形態3では、以下の検査範囲の決定手法で、デコーダ224が設けられるFFのステージ数が絞られている。検査範囲の決定にあたり、パケットタイプ数(振分単位数)がn、それぞれのパケットタイプに対応する各受信バッファの最大格納数がS1 ... Sn(nは0より大きい整数)としたとき、最大格納数が最も小さい受信バッファの最大格納数は、「1」とみなす。この最大格納数「1」に残りの受信バッファの最大格納数の和を加えた数が算出される。そして、算出された数が、各パケットタイプの先頭位置を検査する検査範囲のステージ数とされ、FF群221の先頭(FF_48)から、検査範囲のステージ数に属する各FFの出力側にデコーダ224が設けられている。図8は、実施形態3におけるFF群221の検査範囲の決定方法を示す。実施形態3の例では、上述したように、受信バッファ11,12及び13のパケットの最大格納数は、夫々15個,16個,17個であり、受信バッファ群10Bで格納可能なパケットの総数は、受信バッファ11~13の各最大格納数の和である48(15+16+17=48)である。従って、FF群221が有すべきFFの数(オーダーバッファステージ数)は、受信バッファ群10Bで格納可能なパケットの総数と等しい48[ステージ]である。
これに対し、各パケットタイプの先頭位置を検査する範囲(検査範囲)となるステージ数は、以下のようにして決定される。すなわち、受信バッファ11~13の最大格納数の中で最も小さい最大格納数は、受信バッファ11の最大格納数“15”[個]である。この最大格納数“15”を“1”とみなしたときの全ての受信バッファ11~13の最大格納数の合計値を求める。すなわち、“1”と見なされた受信バッファ11の最大格納数と、残りの受信バッファ12及び13の最大格納数“16”及び“17”とが加算され、加算結果“34”が得られる。この加算結果“34”が、検査範囲となるステージ数として決定される。理由は、以下の通りである。
もし、17個のCパケット及び16個のNパケットに対応するタイプ識別子(計33個)がFF群221に格納されている場合には、先頭ステージ(FF_48)から33ステージ(FF_16)までを使用していることになる。この場合、パケットの送信側は、Cパケット及びNパケットの送信を控える。このため、次に受信有効とされるパケットは必ずPパケットとなる。よって、先頭ステージ(FF_48)から34ステージ(FF_15)までの間には、先頭に受信したPパケットの識別子“P”が必ず格納されることになる。
従って、FF_48からFF_15までの保持内容を検査すれば、P,N,Cの全てのタイプ識別子の先頭位置を検出することができる。従って、実施形態3では、図7に示したように、検査範囲(先頭から34ステージまで)に相当するFF_48~FF_15の出力側にのみ、デコーダ224が設けられている。
この検査範囲の決定手法では、各受信バッファの最大受信可能数が2以上で、且つ全ての受信バッファの最大受信可能数が等しい場合に、検査が必要なステージ数(検査範囲)は最も小さくなる。
例えば、実施形態1のように、全ての受信バッファ11~13の最大格納数がそれぞれ16[個]である場合には、受信バッファのいずれか一つの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値を求める。すると、1+16+16=33となり、実施形態3の例よりも検査範囲が小さくなる。
実施形態3によれば、FFの保持内容をデコードするデコーダ224は、検査範囲に属するFF_48~FF_15のみに設けられる。これによって、デコーダ224の数、及び各デコーダ224と先頭位置検出回路23とのライン数を減らすことができる。よって、パケット読出制御装置の回路量の削減を図ることができる。
実施形態1~3に示した構成は、適宜組み合わせることができる。また、実施形態1~3で説明した構成は、複数の受信バッファからのパケット(データブロック)読出しに関して、パケット(データブロック)の到来順と、受信バッファ間の優先順位を考慮するようなパケット読出装置(データブロック読出装置)に適用することができる。
実施形態1~3では、データブロックがパケットである例について説明したが、データブロックの形式は“パケット”に限定されず、“フレーム”,“データグラム”,“セル”,“ファイル”,“ページ”などと呼ばれる様々なデータブロックの単位であって、振分単位として適用可能な識別子が付与されるものであれば良い。
また、実施形態1~3では、振分単位がパケットタイプである例について説明したが、振分単位は、データブロックに関わる様々な単位(属性種別)を適用することができる。また、振分単位は、同種類のデータブロックの転送先を示す識別子であっても良い。例えば、振分単位は、データブロックの転送先の識別子(チャネル種別)であっても良い。この場合、チャネルは実チャネルでも仮想チャネルであってもよい。或いは、振分単位は、データブロックの宛先を示すアドレスであっても良い。
L1~L4・・・信号線
1・・・パケット読出制御装置
10・・・受信バッファ群
11,12,13・・・受信バッファ
11A・・・セレクタ
16・・・監視部
20・・・パケット読出回路
21・・・受信バッファ書込制御回路
22・・・オーダーバッファ
23・・・先頭位置検出回路
24・・・調停回路
25・・・受信バッファ読出制御回路
26・・・受信部
27・・・セレクタ
221・・・フリップフロップ群(FF群)
222・・・カウンタ
223・・・書込/読出制御部
224・・・デコーダ
225・・・有効範囲選択部
226・・・AND回路群
231・・・先頭P位置検出回路
232・・・先頭N位置検出回路
233・・・先頭C位置検出回路
2231・・・セレクタ
2232・・・デコーダ
2233,2234,2238・・・AND回路群
2237・・・シフト制御部
1・・・パケット読出制御装置
10・・・受信バッファ群
11,12,13・・・受信バッファ
11A・・・セレクタ
16・・・監視部
20・・・パケット読出回路
21・・・受信バッファ書込制御回路
22・・・オーダーバッファ
23・・・先頭位置検出回路
24・・・調停回路
25・・・受信バッファ読出制御回路
26・・・受信部
27・・・セレクタ
221・・・フリップフロップ群(FF群)
222・・・カウンタ
223・・・書込/読出制御部
224・・・デコーダ
225・・・有効範囲選択部
226・・・AND回路群
231・・・先頭P位置検出回路
232・・・先頭N位置検出回路
233・・・先頭C位置検出回路
2231・・・セレクタ
2232・・・デコーダ
2233,2234,2238・・・AND回路群
2237・・・シフト制御部
Claims (7)
- 振分単位毎に用意された複数の受信バッファに格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、
前記識別子列における各振分単位の識別子の先頭位置を検出する検出部と、
少なくとも、前記各振分単位の識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定する決定部と、
前記決定部で決定されたデータブロックを前記複数の受信バッファの一つから読み出す読出部とを含み、
前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックに対応する振分単位の全てを表すために要求される最小数のビットで表現される
データブロック読出制御装置。 - 前記順序バッファは、前記識別子列を形成する複数の振分単位の識別子のそれぞれが格納される、少なくとも前記複数の受信バッファで格納可能なデータブロックの総数と等しい数の複数の記憶領域を有し、
前記検出部は、前記複数の記憶領域の保持内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
請求項1に記載のデータブロック読出装置。 - 前記複数の受信バッファに保持される複数のデータブロックに対応する振分単位の識別子を前記複数の記憶領域に先頭詰めで格納する制御を行う書込/読出制御部をさらに含み、
前記検出部は、前記複数の記憶領域の保持内容を前記順序バッファの先頭側から検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
請求項2に記載のデータブロック読出制御装置。 - 前記振分単位の数が2のn乗(n=1,2,3,・・・)の場合には、前記最小数ビットが採り得る値の全てに前記振分単位の全てが割り当てられ、
前記振分単位の数が2のn乗より1少ない場合には、前記最小数ビットが採り得る値の一つが振分単位の未割り当てを示す識別子として用いられ、
前記書込/読出制御部は、前記複数の格納領域に前記振分単位の識別子が先頭詰めで格納されるとともに、前記振分単位の識別子が格納されていない各格納領域が前記振分単位の未割り当てを示す識別子で満たされるように、前記複数の記憶領域に対する前記振分単位の識別子の格納制御を行う
請求項3に記載のデータブロック読出制御装置。 - 前記複数の受信バッファに対する前記データブロックの最大格納数が夫々異なる場合に、前記検出部は、先頭の記憶領域から連続する、データブロックの最大格納数が最も小さい前記複数の受信バッファの一つの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値に等しい数の記憶領域の記憶内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
請求項2に記載のデータブロック読出制御装置。 - 前記複数の受信バッファにおける前記データブロックの最大格納数が等しい場合に、前記検出部は、先頭の記憶領域から連続する、前記複数の受信バッファのいずれか一つのデータブロックの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値に等しい数の記憶領域の記憶内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
請求項2に記載のデータブロック読出制御装置。 - 振分単位毎に用意された複数の受信バッファに格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を順序バッファに格納し、
前記識別子列における各振分単位の識別子の先頭位置を検出し、
少なくとも、前記各振分単位の識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定し、
前記決定されたパケットを前記複数の受信バッファの一つから読み出すことを含み、
前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックの種別の全てを表すために要求される最小数のビットで表現される
データブロック読出制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/054141 WO2011111210A1 (ja) | 2010-03-11 | 2010-03-11 | データブロック読出制御装置 |
JP2012504236A JP5316696B2 (ja) | 2010-03-11 | 2010-03-11 | データブロック読出制御装置 |
EP10847440A EP2547048A1 (en) | 2010-03-11 | 2010-03-11 | Data block read-out control device |
US13/609,788 US8898406B2 (en) | 2010-03-11 | 2012-09-11 | Data block read-out control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/054141 WO2011111210A1 (ja) | 2010-03-11 | 2010-03-11 | データブロック読出制御装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/609,788 Continuation US8898406B2 (en) | 2010-03-11 | 2012-09-11 | Data block read-out control apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011111210A1 true WO2011111210A1 (ja) | 2011-09-15 |
Family
ID=44563052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/054141 WO2011111210A1 (ja) | 2010-03-11 | 2010-03-11 | データブロック読出制御装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8898406B2 (ja) |
EP (1) | EP2547048A1 (ja) |
JP (1) | JP5316696B2 (ja) |
WO (1) | WO2011111210A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111208953A (zh) * | 2020-04-16 | 2020-05-29 | 广东睿江云计算股份有限公司 | 一种分布式存储方法及其装置 |
CN117527714B (zh) * | 2024-01-04 | 2024-03-15 | 柏科数据技术(深圳)股份有限公司 | 数据报文的读取方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02117241A (ja) * | 1988-10-27 | 1990-05-01 | Mitsubishi Electric Corp | データ交換装置 |
JPH05227210A (ja) * | 1992-02-12 | 1993-09-03 | Fujitsu Ltd | バッファ制御回路 |
JPH11298521A (ja) * | 1998-04-15 | 1999-10-29 | Matsushita Electric Ind Co Ltd | サーバ装置 |
JP2000286867A (ja) * | 1999-01-29 | 2000-10-13 | Oki Electric Ind Co Ltd | 通信装置およびシェーピング処理方法 |
JP2005518578A (ja) * | 2001-10-15 | 2005-06-23 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム |
JP2005210606A (ja) * | 2004-01-26 | 2005-08-04 | Ntt Communications Kk | パケットの優先制御を行う通信装置及び優先制御方法並びにプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03182140A (ja) * | 1989-12-11 | 1991-08-08 | Mitsubishi Electric Corp | 共通バッファ形交換装置 |
JP3227133B2 (ja) * | 1994-07-21 | 2001-11-12 | 富士通株式会社 | Atm交換機 |
JP3578953B2 (ja) * | 1999-12-22 | 2004-10-20 | 三菱電機株式会社 | セルスケジューリング装置及びセルスケジューリング方法 |
US7889762B2 (en) * | 2006-01-19 | 2011-02-15 | Intel-Ne, Inc. | Apparatus and method for in-line insertion and removal of markers |
US8255599B2 (en) * | 2006-03-28 | 2012-08-28 | Integrated Device Technology Inc. | Packets transfer device having data absorbing buffers with elastic buffer capacities |
-
2010
- 2010-03-11 JP JP2012504236A patent/JP5316696B2/ja not_active Expired - Fee Related
- 2010-03-11 WO PCT/JP2010/054141 patent/WO2011111210A1/ja active Application Filing
- 2010-03-11 EP EP10847440A patent/EP2547048A1/en not_active Withdrawn
-
2012
- 2012-09-11 US US13/609,788 patent/US8898406B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02117241A (ja) * | 1988-10-27 | 1990-05-01 | Mitsubishi Electric Corp | データ交換装置 |
JPH05227210A (ja) * | 1992-02-12 | 1993-09-03 | Fujitsu Ltd | バッファ制御回路 |
JPH11298521A (ja) * | 1998-04-15 | 1999-10-29 | Matsushita Electric Ind Co Ltd | サーバ装置 |
JP2000286867A (ja) * | 1999-01-29 | 2000-10-13 | Oki Electric Ind Co Ltd | 通信装置およびシェーピング処理方法 |
JP2005518578A (ja) * | 2001-10-15 | 2005-06-23 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム |
JP2005210606A (ja) * | 2004-01-26 | 2005-08-04 | Ntt Communications Kk | パケットの優先制御を行う通信装置及び優先制御方法並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20130007383A1 (en) | 2013-01-03 |
JP5316696B2 (ja) | 2013-10-16 |
JPWO2011111210A1 (ja) | 2013-06-27 |
US8898406B2 (en) | 2014-11-25 |
EP2547048A1 (en) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8243737B2 (en) | High speed packet FIFO input buffers for switch fabric with speedup and retransmit | |
US20050248970A1 (en) | Distributed content addressable memory | |
JP2019091333A (ja) | データ転送装置、演算処理装置及びデータ転送方法 | |
US20130250954A1 (en) | On-chip router and multi-core system using the same | |
US20010023469A1 (en) | Distributed type input buffer switch system for transmitting arbitration information efficiently and method for processing input data using the same | |
JP5332430B2 (ja) | 共有メモリシステム | |
JP5316696B2 (ja) | データブロック読出制御装置 | |
JP4316349B2 (ja) | パケット転送経路制御装置および制御プログラム | |
JP2010211322A (ja) | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 | |
US8363653B2 (en) | Packet forwarding method and device | |
US20120198173A1 (en) | Router and many-core system | |
JP5847887B2 (ja) | オンチップルータ及びそれを用いたマルチコアシステム | |
JPH10322347A (ja) | ネットワーク通信装置 | |
US6990095B2 (en) | Self-routing data switching system | |
US8073999B2 (en) | Data input-output control apparatus | |
JP3255113B2 (ja) | パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体 | |
US6282203B1 (en) | Packet data transmitting apparatus, and method therefor | |
JP2020005017A (ja) | 動的可変容量メモリ装置及び記憶容量動的可変方法 | |
EP1043913A2 (en) | Apparatus and method for switching data packets | |
US20210144105A1 (en) | Circuit for a buffered transmission of data | |
JP2002164914A (ja) | パケット交換装置 | |
JPH11234333A (ja) | ゲートウェイ装置 | |
JP2003298601A (ja) | パケット並替装置、オーバーフロー処理方法、プログラム、及び記憶媒体 | |
JP2584841B2 (ja) | パケット交換制御装置 | |
JP3434787B2 (ja) | Hdlcフレーム変換回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10847440 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012504236 Country of ref document: JP Ref document number: 2010847440 Country of ref document: EP |