JP2014107793A - カウンタ装置およびカウント方法 - Google Patents

カウンタ装置およびカウント方法 Download PDF

Info

Publication number
JP2014107793A
JP2014107793A JP2012260907A JP2012260907A JP2014107793A JP 2014107793 A JP2014107793 A JP 2014107793A JP 2012260907 A JP2012260907 A JP 2012260907A JP 2012260907 A JP2012260907 A JP 2012260907A JP 2014107793 A JP2014107793 A JP 2014107793A
Authority
JP
Japan
Prior art keywords
carry
fifo
counter
data
adder
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
JP2012260907A
Other languages
English (en)
Other versions
JP5974863B2 (ja
Inventor
Hideo Emoto
秀夫 江本
Yoshimi Toyoda
好美 豊田
Chie Nagaza
智恵 永座
Masami Sekido
雅美 関戸
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
Fujitsu Telecom Networks Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Telecom Networks 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, Fujitsu Telecom Networks Ltd filed Critical Fujitsu Ltd
Priority to JP2012260907A priority Critical patent/JP5974863B2/ja
Publication of JP2014107793A publication Critical patent/JP2014107793A/ja
Application granted granted Critical
Publication of JP5974863B2 publication Critical patent/JP5974863B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

【課題】 小さい容量のFIFOを用いることができるカウンタ装置およびカウント方法を提供する。
【解決手段】 カウンタ装置は、カウント値の下位ビットをカウントする第1カウンタと、前記第1カウンタのカウントが終了した場合に発生するキャリーを中継するFIFOと、前記FIFOによって中継された前記キャリーに応じて前記カウント値の上位ビットをカウントする第2カウンタと、を備え、前記FIFOのデータ量がしきい値を超えている場合に前記キャリーが発生した場合には、当該キャリーは前記第1カウンタに仮書き込みされ、前記FIFOのデータ量が前記しきい値以下であってかつキャリーが発生していない場合に、前記第1カウンタにキャリーが仮書き込みされている場合には、当該仮書き込みされているキャリーが前記FIFOに送られる。
【選択図】 図2

Description

本発明は、カウンタ装置およびカウント方法に関する。
伝送装置において、例えばユーザ毎の帯域を保証するためにカウンタを用いてデータ量の観測が行われている。例えば、全カウント値の下位ビットをカウントする高速カウンタと、該高速カウンタとは別個に設けられ全カウント値の上位ビットをカウントする低速カウンタとを備えたカウンタ回路(特許文献1参照)が開示されている。
特開2008−160353号公報
しかしながら、例えば、異なるユーザのカウントが連続すると、異なるユーザに対して外部メモリへの書き込み(キャリー)が発生する可能性があり、外部メモリ(低速カウンタ相当)用のFIFOに大きな容量が必要となる。
本発明は上記課題に鑑みなされたものであり、小さい容量のFIFOを用いることができるカウンタ装置およびカウント方法を提供することを目的とする。
上記課題を解決するために、明細書開示のカウンタ装置は、カウント値の下位ビットをカウントする第1カウンタと、前記第1カウンタのカウントが終了した場合に発生するキャリーを中継するFIFOと、前記FIFOによって中継された前記キャリーに応じて前記カウント値の上位ビットをカウントする第2カウンタと、を備え、前記FIFOのデータ量がしきい値を超えている場合に前記キャリーが発生した場合には、当該キャリーは前記第1カウンタに仮書き込みされ、前記FIFOのデータ量が前記しきい値以下であってかつキャリーが発生していない場合に、前記第1カウンタにキャリーが仮書き込みされている場合には、当該仮書き込みされているキャリーが前記FIFOに送られる。
明細書開示のカウンタ装置およびカウント方法によれば、小さい容量のFIFOを用いることができる。
実施例1に係る伝送装置の構成を説明するためのブロック図である。 カウンタ装置の詳細な構成を説明するためのブロック図である。 (a)は加算器の真理値表であり、(b)は参照加算器の真理値表であり、(c)および(d)は内部メモリの割り当てであり、(e)および(f)はFIFOの割り当てであり、(g)は外部メモリの割り当てである。 カウンタ装置の動作の一例を表すフローチャートである。 カウンタ装置の動作の一例を表すフローチャートである。 実施例2に係るカウンタ装置の詳細な構成を説明するためのブロック図である。 (a)は加算器の真理値表であり、(b)は参照加算器の真理値表であり、(c)および(d)は内部メモリの割り当てであり、(e)および(f)はFIFOの割り当てであり、(g)は外部メモリの割り当てである。 カウンタ装置の動作の一例を表すフローチャートである。 カウンタ装置の動作の一例を表すフローチャートである。 実施例3に係るカウンタ装置の詳細な構成を説明するためのブロック図である。 調停器の真理値表である。 調停器による調停処理を表すフロー図である。 実施例4に係るカウンタ装置の詳細な構成を説明するためのブロック図である。
以下、図面を参照しつつ、実施例について説明する。
図1は、実施例1に係る伝送装置100の構成を説明するためのブロック図である。図1を参照して、伝送装置100は、フォーマット変換部10、出力側帯域制御部20、宛先決定部30、入力側帯域制御部40、装置内フォーマット変換部50、外部メモリ60、CPU70などを備える。伝送装置100は、一例として、伝送装置の回線インタフェースボードに搭載される。
一例として、フォーマット変換部10、出力側帯域制御部20、宛先決定部30、入力側帯域制御部40および装置内フォーマット変換部50は、FPGA(Field−programmable gate array)によって構成されている。外部メモリ60は、RAM(Random Access Memory)、フラッシュメモリなどである。CPU70は、中央演算処理装置(Central Processing Unit)である。
フォーマット変換部10は、外部機器から受け取った信号のフォーマットを、処理に適したフォーマットに変換する。出力側帯域制御部20は、統計情報をカウントする機能を有し、パケット優先制御を行う。出力側帯域制御部20は、カウンタ装置80において統計情報をカウントする。宛先決定部30は、中継判定データベースとして機能し、パケットの宛先決定処理を行う。入力側帯域制御部40は、統計情報をカウントする機能を有する。装置内フォーマット変換部50は、他のパッケージの処理に適したフォーマットへの変換処理を行う。
図2は、カウンタ装置80の詳細な構成を説明するためのブロック図である。図2を参照して、カウンタ装置80は、内部メモリ81、加算器82、FIFO(First−in First−out)83、位相調整器84、加算器85、位相調整器86、参照加算器87などを備える。カウンタ装置80は、カウント値を内部メモリ81および外部メモリ60に分割して書き込むことによって、各ユーザの統計情報をカウントする。カウンタ装置80は、外部メモリ60にカウント値を書き込む際、当該カウント値を、FIFO83を介して外部メモリ60に書き込む。
ここで、内部メモリ81は、高いアクセス速度を実現できるが、必要な容量を確保することが困難であるという性質を有している。一方、外部メモリ60は、容量を大きくできるがアクセス速度が低いため、やはり必要な帯域を確保することが困難であるという性質を有している。そこで、本実施例に係るカウンタ装置80は、カウント値の下位ビットを内部メモリ81に書き込み、当該カウント値の上位ビットを外部メモリ60に書き込む。具体的には、カウンタ装置80は、内部メモリ81のカウントが終了した場合に発生するキャリーを外部メモリ60に書き込む。この場合、アクセス速度の高い内部メモリ81(高速カウンタ)において、変化の多い下位ビットのカウントが行われ、アクセス速度の低い外部メモリ60(低速カウンタ)において、変化の少ない上位ビットのカウントが行われる。それにより、全体として必要なアクセス速度が確保される。
一例として、1item 64ビットのカウントについて、外部メモリ60が32ビットを担い、内部メモリ81が残りの32ビットを担う場合について検討する。カウントに必要な帯域を296Mpps(Mega Packet Per Second)とする。また、内部メモリ81の容量が940×32K=30080Kbitであるとする。この場合、内部メモリ81は、192K item×32bit×4(送信、廃棄)=24576K<30080Kbitであるため、内部メモリ81の容量は足りることになる。アクセス速度は、(74Mpps×4item)/65K(≒216)=4.56Kpps(4item)<200MHz(2item)となる。すなわち、十分なアクセス速度が得られることになる。このように、内部メモリ81にて下位ビットのカウントを行うことにより、カウントに必要な帯域を確保するとともに、外部メモリ60のアクセスが下位カウンタからの桁上げ要因のみとなることにより、アクセス速度の制限を回避することができる。
ここで、例えば、異なるユーザのカウントが連続すると、異なるユーザに対して外部メモリ60への書き込み(キャリー)が発生する可能性がある。この場合、外部メモリ60用のFIFO83には大きな容量が必要となる。そこで、本実施例においては、FIFO83の容量に対するデータ格納量にしきい値を設ける。FIFO83のデータ格納量がしきい値を超えているときにキャリーが発生した場合には、当該キャリーは、FIFO83ではなく内部メモリ81に書き込まれる。また、内部メモリ81に仮書き込みがされた記として、後述するdata(MSB)を「01」とする。一方、FIFO83がしきい値を超えておらず、かつ、キャリーが発生していない場合に、data(MSB)が「01」であれば、FIFO83へ書き込みを行い、data(MSB)を「00」にする。このようにdata(MSB)を用いることによって、比較的小さい容量のFIFO83を効率よく用いることができる。以下、カウンタ装置80の動作の詳細について説明する。
カウンタ装置80には、統計情報として、アドレス値addとカウント値cntとが入力される。アドレス値addは、ユーザの識別のための情報である。カウント値は、パルス数などである。アドレス値addは、内部メモリ81および位相調整器84に入力される。内部メモリ81は、アドレス値addを受け取ると、当該アドレス値に対応するアドレスのデータを加算器82に入力する。当該データには、データdata(値LSB)とdata(MSB)とが含まれる。なお、値LSBは、内部メモリ81に書き込まれている現時点での下位ビットのカウント値である。また、加算器82は、FIFO83の格納量がしきい値を超えているか否かを表す情報(full)をFIFO83から受け取る。位相調整器84は、位相(遅延量)を調整し、アドレス値addをFIFO83に入力する。
加算器82は、データdata(値LSB)とカウント値cntとの加算の結果から、キャリーの発生の有無を判断する。加算器82は、キャリーの発生の有無、data(MSB)、情報(full)などに応じて、内部メモリ81に加算結果を入力し、data(MSB)を更新し、FIFO83にキャリーを送る。FIFO83は、アドレス値addを外部メモリ60および位相調整器86に送るとともに、キャリーを加算器85に送る。なお、位相調整器84によって位相(遅延量)が調整されているため、各信号は同期している。
外部メモリ60は、アドレス値addに対応するアドレスのデータdataG(値MSB)を加算器85に入力する。値MSBは、外部メモリ60に書き込まれている現時点での上位ビットのカウント値である。加算器85は、キャリーとデータdataGとを足し合わせて外部メモリ60に対して出力する。一方、位相調整器86は、位相(遅延量)を調整してアドレス値addを外部メモリ60に対して出力する。それにより、外部メモリ60において、アドレス値addに対応するアドレスに加算器85の加算結果が書き込まれる。なお、位相調整器86によって位相(遅延量)が調整されているため、各信号は同期している。
内部メモリ81および外部メモリ60に書き込まれているカウント値を参照する場合には、参照アドレス(参照_add)が内部メモリ81およびFIFO83に入力される。この場合、内部メモリ81から、参照アドレスの参照データ(値LSB)が参照加算器87に入力される。内部メモリ81にキャリーが仮書き込みされている場合には、当該キャリーも参照加算器87に入力される。外部メモリ60からは、参照アドレスの参照データ(値MSB)が参照加算器87に入力される。参照加算器87は、下記式に従ってカウント値を出力する。
カウント値=(MSB+キャリー)×2(N+C))+LSB
カウンタ装置80の全ビット数Mは、一例として、64ビットである。内部メモリ81のカウンタ桁数N+Cは、一例として、32ビットである。1カウントのデータ数Cは、一例として、16ビットである。外部メモリ60のビット幅(M−N−C)は、一例として、32ビットである。
図3(a)は、加算器82の真理値表である。図3(a)において、carryが「1」の場合、キャリーが発生していることを意味し、carryが「0」の場合、キャリーが発生していないことを意味する。「内部メモリからの入力」のdata(MSB)が「00」であれば、内部メモリ81にキャリーが仮書き込まれていないことを意味し、data(MSB)が「01」であれば、内部メモリ81にキャリーが仮書き込みされていることを意味する。情報「full」が「1」の場合、FIFO83におけるデータ格納量がしきい値を超えていることを意味し、情報「full」が「0」の場合、FIFO83におけるデータ格納量がしきい値以下であることを意味する。「FIFOに出力」のcarryは、FIFO83に入力されるキャリーの値を意味する。「内部メモリに出力」のdata(MSB)は、内部メモリ81に書き込まれ、かつ、内部メモリ81にキャリーが仮書き込みされているか否かを識別するための値を意味する。
図3(b)は、参照加算器87の真理値表である。図3(b)は、参照加算器87がカウント値を出力する際の式を表している。図3(c)および図3(d)は、内部メモリ81の割り当てである。内部メモリ81には、キャリーに2ビットが割り当てられている。また、カウント値LSBとして、(N+C)ビットが割り当てられている。図3(e)および図3(f)は、FIFO83の割り当てである。FIFO83には、キャリーに2ビットが割り当てられ、残りのビットにアドレス情報が割り当てられている。図3(g)は、外部メモリ60の割り当てである。カウント値MSBとして、(M−(N+C))ビットが割り当てられている。
図4および図5は、カウンタ装置80の動作の一例を表すフローチャートである。以下、図2〜図5を参照しつつ、カウンタ装置80の動作について説明する。まず、カウンタ装置80には、統計情報として、アドレス値addとカウント値cntとが入力される(ステップS1)。次に、加算器82は、内部メモリ81のデータを読み込む(ステップS2)。具体的には、加算器82は、アドレス値addに対応するアドレスのデータを内部メモリ81から読み込む。当該データには、data(MSB)と、データdata´とが含まれる。
次に、加算器82は、ステップS1で入力されたカウント値cntにデータdata´を加算する(ステップS3)。次に、加算器82は、carryが「1」であるか否かを判定する(ステップS4)。すなわち、加算器82は、キャリーが発生しているか否かを判定する。ステップS4で「No」と判定された場合、加算器82は、data(MSB)が「01」であるか否かを判定する(ステップS5)。すなわち、加算器82は、内部メモリ81にキャリーが仮書き込みされているか否かを判定する。
ステップS5において「No」と判定された場合、加算器82は、内部メモリ81に、アドレス値addに対応するアドレスにデータを書き込む(ステップS6)。当該データには、data(MSB)=「00」と、データdata´+カウント値cntとが含まれる。この場合、内部メモリ81にはキャリーが仮書き込みされず、データdata+カウント値cntが値LSBとして書き込まれる。その後、フローチャートの実行が終了する。この場合、外部メモリ60にもキャリーが書き込まれない。
ステップS5において「Yes」と判定された場合、加算器82は、FIFO83の情報(full)が「0」であるか否かを判定する(ステップS7)。すなわち、加算器82は、FIFO83のデータ格納量がしきい値以下であるか否かを判定する。ステップS7で「No」と判定された場合、加算器82は、内部メモリ81に対し、アドレス値addに対応するアドレスにデータを書き込む(ステップS8)。当該データには、data(MSB)=「01」と、データdata´+カウント値cntとが含まれる。data(MSB)が「01」に設定されているのは、ステップS5で既にキャリーが仮書き込みされていることが確認されているからである。その後、フローチャートの実行が終了する。この場合、外部メモリ60にはキャリーが書き込まれない。
ステップS7において「Yes」と判定された場合、加算器82は、ステップS8と同様に、内部メモリ81に、アドレス値addに対応するアドレスにデータを書き込む(ステップS9)。当該データには、data(MSB)=「01」と、データdata´+カウント値cntとが含まれる。data(MSB)が「01」に設定されているのは、ステップS5で既にキャリーが仮書き込みされていることが確認されているからである。
次に、加算器82は、FIFO83に、データを入力する(ステップS10)。当該データには、キャリー(=01)と、アドレス値addとが含まれる。FIFO83は、外部メモリ60に書き込み可能か否かを判定する(ステップS11)。ステップS11で「No」と判定された場合には、ステップS11が再度実行される。ステップS11で「Yes」と判定された場合には、加算器85は、外部メモリ60のデータを読み込む(ステップS12)。具体的には、加算器85は、アドレス値addに対応するアドレスのデータを外部メモリ60から読み込む。当該データには、データdataGが含まれる。
次に、加算器85は、データdataGにキャリー(=01)を加算する(ステップS13)。このキャリー(=01)は、内部メモリ81に仮書き込みされた値である。次に、加算器85は、外部メモリ60に、アドレス値addに対応するアドレスにデータを書き込む(ステップS14)。当該データには、データdataG+「01」が含まれる。一方、ステップS11で「Yes」と判定された場合、ステップS12〜S14と並行して、加算器82は、内部メモリ81のデータを読み込む(ステップS15)。具体的には、加算器82は、アドレス値addに対応するアドレスのデータを内部メモリ81から読み込む。当該データには、data(MSB)=「01」と、データdata´´とが含まれる。次に、内部メモリ81は、キャリー値をクリアする(ステップS16)。具体的には、FIFO83は、内部メモリ81のアドレス値addに対応するアドレスにデータを書き込む。当該データには、data(MSB)=「00」とデータdata´´が含まれる。すなわち、内部メモリ81へのキャリーの仮書き込みが解消する。ステップS14およびステップS16の実行後、フローチャートの実行が終了する。
ステップS4において「Yes」と判定された場合、加算器82は、data(MSB)が「01」であるか否かを判定する(ステップS17)。すなわち、加算器82は、内部メモリ81にキャリーが仮書き込みされているか否かを判定する。ステップS17において「No」と判定された場合、加算器82は、FIFO83の情報(full)が「0」であるか否かを判定する(ステップS18)。すなわち、加算器82は、FIFO83のデータ格納量がしきい値以下であるか否かを判定する。ステップS18で「Yes」と判定された場合、ステップS9〜S16が実行される。それにより、内部メモリ81へのキャリーの仮書き込みが解消する。
ステップS18で「No」と判定された場合、加算器82は、内部メモリ81に、アドレス値addに対応するアドレスにデータを書き込む(ステップS19)。当該データには、data(MSB)=「01」と、データdata´+カウント値cntとが含まれる。すなわち、内部メモリ81には、キャリーが仮書き込みされる。その後、フローチャートの実行が終了する。この場合、外部メモリ60にはキャリーが書き込まれない。
ステップS17で「Yes」と判定された場合、加算器82は、内部メモリ81に、アドレス値addに対応するアドレスにデータを書き込む(ステップS20)。当該データには、data(MSB)=「10」と、データdata´+カウント値cntとが含まれる。すなわち、既にキャリーが仮書き込みされている内部メモリ81にキャリーがさらに仮書き込みされる。次に、加算器82は、FIFO83に、データを入力する(ステップS21)。当該データには、data(MSB)=「10」と、アドレス値addとが含まれる。
FIFO83は、外部メモリ60に書き込み可能か否かを判定する(ステップS22)。ステップS22で「No」と判定された場合には、ステップS22が再度実行される。ステップS22で「Yes」と判定された場合には、加算器85は、外部メモリ60のデータを読み込む(ステップS23)。具体的には、加算器85は、アドレス値addに対応するアドレスのデータを内部メモリ81から読み込む。当該データには、データdataGが含まれる。
次に、加算器85は、データdataGにキャリー(=10)を加算する(ステップS24)。このキャリー(=10)は、内部メモリ81に仮書き込みされた値である。次に、加算器85は、外部メモリ60に、アドレス値addに対応するアドレスにデータを書き込む(ステップS25)。当該データには、データdataG+「10」が含まれる。一方、ステップS22で「Yes」と判定された場合、ステップS23〜S25と並行して、加算器85は、内部メモリ81のデータを読み込む(ステップS26)。具体的には、加算器85は、アドレス値addに対応するアドレスのデータを内部メモリ81から読み込む。当該データには、data(MSB)=「10」と、データdata´´とが含まれる。次に、内部メモリ81は、キャリー値をクリアする(ステップS27)。具体的には、FIFO83は、内部メモリ81のアドレス値addに対応するアドレスにデータを書き込む。当該データには、data(MSB)=「00」とデータdataが含まれる。すなわち、内部メモリ81へのキャリーの仮書き込みが解消する。ステップS25およびステップS27の実行後、フローチャートの実行が終了する。
本実施例によれば、FIFO83にしきい値が設けられていることから、FIFO83のデータ格納量が多くなっているか否かを判定することができる。FIFO83のデータ格納量がしきい値を超えている場合にキャリーが発生した場合には、FIFO83ではなく内部メモリ81にキャリーが仮書き込みされることから、FIFO83にキャリーが入力されない。この構成により、小さな容量のFIFO83を用いることができる。内部メモリ81に書き込みがされた記として、data(MSB)が「01」とされる。
また、FIFO83のデータ格納量がしきい値を超えておらず、かつ、キャリーが発生していない場合にdata(MSB)が「01」であれば、仮書き込みされているキャリーがFIFO83に書き込まれる。すなわち、FIFO83のデータ格納量が少ない場合には、既に内部メモリ81に仮書き込みされているキャリーがFIFO83を介して外部メモリ60に入力される。この構成により、内部メモリ81を有効活用できるとともに、小さな容量のFIFO83を用いることができる。内部メモリ81の仮書き込みが解消された記として、data(MSB)が「00」とされる。
また、本実施例によれば、内部メモリを有効活用できることから、外部メモリの増設を抑制することができる。それにより、消費電力、デバイスコスト、およびパッケージの実装面積の削減を図ることができる。
なお、本実施例においては、内部メモリ81および加算器82が第1カウンタとして機能し、加算器85および外部メモリ60が第2カウンタとして機能する。
実施例1においては、FIFO83に1段階のしきい値が設定されていたが、それに限られない。FIFO83に複数段階にわたってしきい値が設定されていてもよい。図6は、実施例2に係るカウンタ装置80aの詳細な構成を説明するためのブロック図である。図6を参照して、FIFO83に第1のしきい値に加えて、第2のしきい値(<第1のしきい値)が設定されている。情報(full)は、FIFO83の格納量が第1のしきい値を超えているか否かを表す。情報(pre_full)は、FIFO83の格納量が第2のしきい値を超えているか否かを表す。
図7(a)は、加算器82の真理値表である。図7(a)の真理値表が図3(a)の真理値表と異なっている点は、情報「pre_full」が追加されている点である。情報「pre_full」が「1」の場合、FIFO83におけるデータ格納量が第2のしきい値を超えていることを意味し、情報「pre_full」が「0」の場合、FIFO83におけるデータ格納量が第2のしきい値以下であることを意味する。なお、情報「pre_full」が「1」であり、情報「full」が「0」であれば、FIFO83におけるデータ格納量が第2のしきい値を超えて第1のしきい値以下であることを意味する。図7(b)〜図7(g)は、図3(b)〜図3(g)と同じである。
図8および図9は、カウンタ装置80aの動作の一例を表すフローチャートである。図8および図9のフローチャートにおいては、ステップS31が新たに追加され、ステップS18の変わりにステップS32が実行される。ステップS31は、ステップS5で「Yes」と判定された場合に実行され、情報「pre_full」が「0」であるか否かを判定する。ステップS31で「No」と判定された場合には、ステップS7が実行される。ステップS31で「Yes」と判定された場合には、ステップS9が実行される。また、ステップS32は、ステップS17で「No」と判定された場合に実行され、情報「pre_full」が「0」であるか否かを判定する。ステップS32で「Yes」と判定された場合、ステップS9が実行される。ステップS32で「No」と判定された場合、ステップS19が実行される。
本実施例においては、キャリーが発生していない場合には、FIFO83のデータ格納量が第1のしきい値を超えていなければ、内部メモリ81に仮書き込みされているキャリーがFIFO83を介して外部メモリ60に書き込まされる。キャリーが発生している場合には、FIFO83のデータ格納量が第2のしきい値以下でなければ、内部メモリ81に仮書き込みされているキャリーが外部メモリ60に書き込まれない。このような構成とすることで、内部メモリ81およびFIFO83を効率よく用いることができる。
実施例1,2では、内部メモリが1つ設けられていたが、複数設けられていてもよい。図10は、実施例3に係るカウンタ装置80bの詳細な構成を説明するためのブロック図である。図10を参照して、カウンタ装置80bは、2つの内部メモリ81a,81bが設けられ、2つの加算器82a,82bが設けられ、2つのFIFO83a,83b、および2つの位相調整器84a,84b、が設けられている。また、図2のカウンタ装置80と同様に、加算器85、位相調整器86および参照加算器87が設けられている。さらに、調停器88およびFIFO89が設けられている。
内部メモリ81a、加算器82a、FIFO83a、および位相調整器84aは、カウンタAとして、図2のカウンタ装置80の内部メモリ81、加算器82、FIFO83、および位相調整器84と同様の機能を果たす。また、内部メモリ81b、加算器82b、FIFO83b、および位相調整器84bは、カウンタBとして、図2のカウンタ装置80の内部メモリ81、加算器82、FIFO83、および位相調整器84と同様の機能を果たす。FIFO83a,83bの出力値は、調停器88に入力される。調停器88は、いずれかの出力値を優先してFIFO89に入力する。FIFO89に入力された値は、外部メモリ60に入力される。
カウンタ装置80bの全ビット数Mは、一例として64ビットである。内部メモリ81a,81bのカウンタ桁数N+Cは、一例として32ビットである。1カウントのデータ数Cは、一例として16ビットである。外部メモリ60のビット幅(M−N−C)は、一例として32ビットである。加算器82a,82bの真理値表は、実施例1の加算器82の真理値表と同様である。内部メモリ81a,81bの割り当ては、実施例1の内部メモリ81の割り当てと同様である。FIFO83a,83bの割り当ては、実施例1のFIFO83の割り当てと同様である。
図11は、調停器88の真理値表である。図11において、「valid」は有効を意味し、「invalid」は無効を意味する。「carry」は、2ビットで表されたキャリーを意味する。carry(clear)において、「valid」は内部メモリ81の仮書き込みが解消することを意味し、「invalid」は内部メモリ81の仮書き込みが解消しないことを意味する。「PR」は、カウンタAおよびカウンタBのいずれかが優先されることを意味する。「参照address」が「valid」であれば、内部メモリ81a,81bおよび外部メモリ60に書き込まれている値が参照される。
カウンタAおよびカウンタBは、図2のカウンタ装置80の内部メモリ81、加算器82、FIFO83、および位相調整器84と同様の機能を果たすため、一例として、図4および図5のフローチャートに従って動作する。調停器88は、図11の真理値表に従って、FIFO89に出力するカウンタを選択する。それにより、複数のキャリーが同時に発生した場合においても、カウントの取りこぼしを抑制することができる。
図12は、調停器88による調停処理を表すフロー図である。図12を参照して、カウンタAに統計情報が入力されると、内部メモリ81aでカウントされ、キャリーがFIFO83aに書き込まれる。一方、カウンタBに統計情報が入力されると、内部メモリ81bでカウントされ、キャリーがFIFO83bに書き込まれる。FIFO83aおよびFIFO83bの出力値は、調停器88にて優先順位が決定され、優先順位に従ってFIFO89に入力される。また、カウンタAに書き込まれているカウント値が参照される場合には、調停器88に参照アドレスが入力される。この場合には、調停器88は、FIFO83a,83bの出力値および参照アドレスの優先順位を決定する。
なお、本実施例においては、内部メモリ81aおよび加算器82a、または、内部メモリ81bおよび加算器82bが第1カウンタとして機能し、加算器85および外部メモリ60が第2カウンタとして機能する。
実施例3においては、FIFO83a,83bに1段階のしきい値が設定されていたが、それに限られない。実施例2と同様に、FIFO83a,83bに複数段階にわたってしきい値が設定されていてもよい。図13は、実施例4に係るカウンタ装置80cの詳細な構成を説明するためのブロック図である。図13を参照して、FIFO83a,83bに第1のしきい値に加えて、第2のしきい値(<第1のしきい値)が設定されている。情報(full)は、FIFO83a,83bの格納量が第1のしきい値を超えているか否かを表す。情報(pre_full)は、FIFO83a,83bの格納量が第2のしきい値を超えているか否かを表す。
加算器82a,82bの真理値表は、実施例2の加算器82の真理値表と同様である。内部メモリ81a,81bの割り当ては、実施例2の内部メモリ81の割り当てと同様である。FIFO83a,83bの割り当ては、実施例2のFIFO83の割り当てと同様である。また、調停器88の真理値表は、図11と同様である。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 フォーマット変換部
20 出力側帯域制御部
30 宛先決定部
40 入力側帯域制御部
50 装置内フォーマット変換部
60 外部メモリ
70 CPU
80 カウンタ装置
81 内部メモリ
82 加算器
83 FIFO
84 位相調整器
85 加算器
86 位相調整器
87 参照加算器
88 調停器
89 FIFO
100 伝送装置

Claims (6)

  1. カウント値の下位ビットをカウントする第1カウンタと、
    前記第1カウンタのカウントが終了した場合に発生するキャリーを中継するFIFOと、
    前記FIFOによって中継された前記キャリーに応じて前記カウント値の上位ビットをカウントする第2カウンタと、を備え、
    前記FIFOのデータ量がしきい値を超えている場合に前記キャリーが発生した場合には、当該キャリーは前記第1カウンタに仮書き込みされ、
    前記FIFOのデータ量が前記しきい値以下であってかつキャリーが発生していない場合に、前記第1カウンタにキャリーが仮書き込みされている場合には、当該仮書き込みされているキャリーが前記FIFOに送られることを特徴とするカウンタ装置。
  2. 前記第1カウンタは、前記第1カウンタにキャリーが仮書き込みされているか、当該仮書き込みが解消したか、を識別するためのデータを格納することを特徴とする請求項1記載のカウンタ装置。
  3. 前記FIFOには、前記しきい値よりも小さい他のしきい値が設けられ、
    キャリーが発生していない場合で、前記FIFOのデータ量が前記しきい値を超えていなければ、前記仮書き込みされているキャリーが前記FIFOに送られ、
    キャリーが発生している場合には、前記FIFOのデータ量が前記他のしきい値以下であれば、当該キャリーは前記第1カウンタに仮書き込みされることを特徴とする請求項1または2記載のカウンタ装置。
  4. 前記第1カウンタは複数設けられ、
    前記複数の第1カウンタから前記FIFOに送られるキャリーの優先順位を決定する調停部を備えることを特徴とする請求項1〜3のいずれか一項に記載のカウンタ装置。
  5. カウント値の下位ビットをカウントする第1カウンタと、前記第1カウンタのカウントが終了した場合に発生するキャリーを中継するFIFOと、前記FIFOによって中継された前記キャリーに応じて前記カウント値の上位ビットをカウントする第2カウンタと、を備えるカウンタ装置において、
    前記FIFOのデータ量がしきい値を超えている場合に前記キャリーが発生した場合には、当該キャリーを前記第1カウンタに仮書き込みし、
    前記FIFOのデータ量が前記しきい値以下であってかつキャリーが発生していない場合に、前記第1カウンタにキャリーが仮書き込みされている場合には、当該仮書き込みされているキャリーを前記FIFOに送ることを特徴とするカウント方法。
  6. 前記FIFOには、前記しきい値よりも小さい他のしきい値が設けられ、
    キャリーが発生していない場合で、前記FIFOのデータ量が前記しきい値を超えていなければ、前記仮書き込みされているキャリーが前記FIFOに送られ、
    キャリーが発生している場合には、前記FIFOのデータ量が前記他のしきい値以下であれば、当該キャリーは前記第1カウンタに仮書き込みされることを特徴とする請求項5記載のカウント方法。
JP2012260907A 2012-11-29 2012-11-29 カウンタ装置およびカウント方法 Expired - Fee Related JP5974863B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012260907A JP5974863B2 (ja) 2012-11-29 2012-11-29 カウンタ装置およびカウント方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012260907A JP5974863B2 (ja) 2012-11-29 2012-11-29 カウンタ装置およびカウント方法

Publications (2)

Publication Number Publication Date
JP2014107793A true JP2014107793A (ja) 2014-06-09
JP5974863B2 JP5974863B2 (ja) 2016-08-23

Family

ID=51028904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012260907A Expired - Fee Related JP5974863B2 (ja) 2012-11-29 2012-11-29 カウンタ装置およびカウント方法

Country Status (1)

Country Link
JP (1) JP5974863B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166349A1 (ja) * 2019-02-13 2020-08-20 ソニーセミコンダクタソリューションズ株式会社 受光装置、ヒストグラム生成方法、および測距システム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6051026A (ja) * 1983-08-03 1985-03-22 Yokogawa Hewlett Packard Ltd カウンタ
JPH0199321A (ja) * 1987-10-13 1989-04-18 Fujitsu Ltd 多段カウンタ回路
JPH04239819A (ja) * 1991-01-24 1992-08-27 Oki Electric Ind Co Ltd 同期式カウンタ
JPH06152628A (ja) * 1992-11-02 1994-05-31 Fujitsu Ltd セルバッファリング装置
JPH08124376A (ja) * 1994-10-27 1996-05-17 Fujitsu Ltd Fifoメモリ
JPH0983569A (ja) * 1995-09-08 1997-03-28 Sony Corp データ多重化装置及びデータ多重化方法
JP2001216257A (ja) * 2000-02-01 2001-08-10 Hitachi Ltd データ通信用fifoの制御方法
US20060265526A1 (en) * 2004-07-08 2006-11-23 Cisco Technology, Inc. Maintaining counters and updating a secondary counter storage
JP2008160353A (ja) * 2006-12-22 2008-07-10 International Manufacturing & Engineering Services Co Ltd 高速プログラマブル同期カウンタ回路およびカウント方法
US20080165914A1 (en) * 2007-01-10 2008-07-10 Broadcom Corporation System and Method for Managing Counters

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6051026A (ja) * 1983-08-03 1985-03-22 Yokogawa Hewlett Packard Ltd カウンタ
JPH0199321A (ja) * 1987-10-13 1989-04-18 Fujitsu Ltd 多段カウンタ回路
JPH04239819A (ja) * 1991-01-24 1992-08-27 Oki Electric Ind Co Ltd 同期式カウンタ
JPH06152628A (ja) * 1992-11-02 1994-05-31 Fujitsu Ltd セルバッファリング装置
JPH08124376A (ja) * 1994-10-27 1996-05-17 Fujitsu Ltd Fifoメモリ
JPH0983569A (ja) * 1995-09-08 1997-03-28 Sony Corp データ多重化装置及びデータ多重化方法
JP2001216257A (ja) * 2000-02-01 2001-08-10 Hitachi Ltd データ通信用fifoの制御方法
US20060265526A1 (en) * 2004-07-08 2006-11-23 Cisco Technology, Inc. Maintaining counters and updating a secondary counter storage
JP2008160353A (ja) * 2006-12-22 2008-07-10 International Manufacturing & Engineering Services Co Ltd 高速プログラマブル同期カウンタ回路およびカウント方法
US20080165914A1 (en) * 2007-01-10 2008-07-10 Broadcom Corporation System and Method for Managing Counters

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166349A1 (ja) * 2019-02-13 2020-08-20 ソニーセミコンダクタソリューションズ株式会社 受光装置、ヒストグラム生成方法、および測距システム

Also Published As

Publication number Publication date
JP5974863B2 (ja) 2016-08-23

Similar Documents

Publication Publication Date Title
US20220269633A1 (en) Mapping high-speed, point-to-point interface channels to packet virtual channels
US20110040923A1 (en) Data packet access control apparatus and method thereof
US11539623B2 (en) Single field for encoding multiple elements
WO2020142867A1 (zh) 一种流量整形方法及相关设备
US11693690B2 (en) Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11588745B2 (en) Early credit return for credit-based flow control
US20220278924A1 (en) Flow control for a multiple flow control unit interface
US10951551B2 (en) Queue management method and apparatus
US20230195348A1 (en) Method of organizing a programmable atomic unit instruction memory
US20220070106A1 (en) Reduced sized encoding of packet length field
US11392527B2 (en) Ordered delivery of data packets based on type of path information in each packet
US20220070115A1 (en) Optional path ordering in packet-based network
US11935600B2 (en) Programmable atomic operator resource locking
JP2021119386A (ja) データ転送装置およびデータ転送方法
JP5974863B2 (ja) カウンタ装置およびカウント方法
WO2022086716A1 (en) Deferred communications over a synchronous interface
KR20170072645A (ko) 프로세서 및 프로세서에서 데이터를 처리하는 방법
CN108984441B (zh) 一种保持数据传送一致性的方法及系统
US10228852B1 (en) Multi-stage counters
CN116635824A (zh) 桶式处理器中的线程调度控制及存储器分割
US11520718B2 (en) Managing hazards in a memory controller
JP2010114724A (ja) ネットワークスイッチ装置、ネットワークスイッチ方法及びネットワークスイッチプログラム
US20150150009A1 (en) Multple datastreams processing by fragment-based timeslicing
US20150279437A1 (en) Packet processing apparatus and packet processing method
TWI831474B (zh) 電子裝置以及控制方法用以管理封包緩衝的可用指標

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150729

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20151127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160704

R150 Certificate of patent or registration of utility model

Ref document number: 5974863

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees