JP2014194619A - バッファ回路及び半導体集積回路 - Google Patents

バッファ回路及び半導体集積回路 Download PDF

Info

Publication number
JP2014194619A
JP2014194619A JP2013070336A JP2013070336A JP2014194619A JP 2014194619 A JP2014194619 A JP 2014194619A JP 2013070336 A JP2013070336 A JP 2013070336A JP 2013070336 A JP2013070336 A JP 2013070336A JP 2014194619 A JP2014194619 A JP 2014194619A
Authority
JP
Japan
Prior art keywords
register
data
received data
write
output
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
JP2013070336A
Other languages
English (en)
Other versions
JP6094321B2 (ja
Inventor
Tatsushi Kojima
龍志 小島
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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2013070336A priority Critical patent/JP6094321B2/ja
Priority to US14/222,367 priority patent/US9003083B2/en
Publication of JP2014194619A publication Critical patent/JP2014194619A/ja
Application granted granted Critical
Publication of JP6094321B2 publication Critical patent/JP6094321B2/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】サイズが小さく、レイテンシィの低いバッファ回路の実現。
【解決手段】レジスタ列41と、複数の受信データを転送順序に並び替えてレジスタ列に格納し、揃った時に1つの転送データとして出力するように制御する制御回路42と、を有し、制御回路は、レジスタ列が複数の受信データを出力するとき、レジスタ列を、各レジスタの格納データを前段のレジスタに格納するように制御し、レジスタ列が新たに新受信データを格納するとき、転送順序に応じて書込レジスタを決定し、レジスタ列を、書込レジスタの格納データを書込レジスタの後段のレジスタに格納し、書込レジスタに新受信データを格納するように制御する
バッファ回路。
【選択図】図6

Description

開示の技術は、バッファ回路及び半導体集積回路に関する。
内部のローカルバスのバスプロトコルと異なるバスプロトコルの周辺デバイスを接続する場合、プロトコル変換回路を設けて、異なるプロトコル間での通信を行う。高速のローカルバスから低速の周辺デバイスのデータを読み取る場合、プロトコルが異なるため、周辺デバイスは、転送データを分割してデータ転送するが、ローカルバスへは1つの転送データとして出力する。しかも、分割データが順不同に転送される場合があり、分割データを並び替える。
このような転送データの並び替えを行う一般のバッファ回路は、転送データの最大総データ量に比べて大きなサイズの容量を有しており、容量が有効に使用されない。
また、並び替えを実現する際に、ローカルバスへの出力におけるレイテンシィが高くなっていた。
特開平7−58780号公報
実施形態によれば、転送データの最大総データ量と同じサイズの、ローカルバスへの出力におけるレイテンシィが小さいバッファ回路が実現される。
第1の態様のバッファ回路は、複数段のレジスタを有するレジスタ列と、制御回路と、を有する。制御回路は、複数の受信データをあらかじめ定められた転送順序に並び替えて前記レジスタ列に格納し、複数の受信データが揃った時に1つの転送データとして順次出力するようにレジスタ列を制御する。制御回路は、レジスタ列が複数の受信データを出力するとき、レジスタ列を、各レジスタの格納データを前段のレジスタに格納するように制御する。制御回路は、レジスタ列が新たに新受信データを格納するとき、転送順序に応じて書込レジスタを決定し、レジスタ列を、書込レジスタの格納データを書込レジスタの後段のレジスタに格納し、書込レジスタに新受信データを格納するように制御する。
第1の態様によれば、サイズが小さく、レイテンシィの低いバッファ回路が提供される。
図1は、プロトコル変換回路の例を示す図である。 図2は、複数の異なるインターフェースを有する周辺デバイスとの通信を行うためのインタフェースモジュールをローカルバスに接続したLSIシステムの構成を示す図である。 図3は、AXIローカルバスとPCI Expressインタフェースモジュールとのブリッジ回路について説明する図である。 図4は、順不同に入力されるデータをバッファリングし整列させるバッファ回路を示す図であり、(A)が構成例を示し、(B)が各データバッファのデータ格納状況の例を示す。 図5は、実施形態のバッファ回路の基本動作を説明する図である。 図6は、実施形態のバッファ回路の構成を示す図である。 図7は、各レジスタの回路例を示す図であり、ここでは3個のレジスタのみを示す。 図8は、選択・ラッチ信号生成回路を示す図であり、(A)の回路例を示し、(B)はその真理値表を示す。 図9は、実施形態のバッファ回路において、周辺デバイスから転送された分割データをTAG番号順にレジスタ列に格納する動作および転送データが揃った後順に出力する動作を説明する図である。 図10は、実施形態のバッファ回路において、周辺デバイスから転送された分割データをTAG番号順にレジスタ列に格納する動作および転送データが揃った後順に出力する動作を説明する図である。 図11は、実施形態のバッファ回路において、周辺デバイスから転送された分割データをTAG番号順にレジスタ列に格納する動作および転送データが揃った後順に出力する動作を説明する図である。 図12は、図9から図11に対応したタイムチャートである。
実施形態を説明する前に、順不同で入力する複数の受信データを、1つの転送データとして順次出力するように、あらかじめ定められた転送順序に並び替えて格納する一般的なバッファ回路について説明する。
LSI(大規模半導体集積回路)等に搭載されるシステムでは、プロトコル変換回路を設けて、内部のローカルバスのバスプロトコルと異なるバスプロトコルの周辺デバイスを接続する場合がある。
図1は、プロトコル変換回路の例を示す図である。
図1のプロトコル変換回路1は、システム側内部のAXIローカルバスプロトコルと周辺デバイスのPCI Expressプロトコルの間の変換を行う。例えば、プロトコル変換回路1は、システム側のAXI(Advanced eXtensible Interface)ローカルバスからの読み出し(Read)要求(サイズを持つデータ要求)に対して、PCI ExpressのRead要求に変換する動作を行う。しかし、要求サイズの上限値の制限やバス特有の制限事項により、1回のAXI Read要求を複数のPCI Express Readに分割要求する必要がある。また、分割要求されたPCI ExpressバスではReadデータを要求順序通りに応答することが規定されていないため、分割したデータが順不同に転送される。しかし、AXIのReadデータとしては順序通りの1つのデータで返す必要があるため、分割データを並び替える必要があった。
ここでは、AXIローカルバスとPCI Expressとの変換の例を示したが、これは一例であり様々なバスプロトコル変換が行われる。以下、PCI Expressを例として説明を行う。
LSI等に踏査される大規模システムにおいては、PCI Express、USB(Universal Serial Bus)、SATA(Serial Advanced Technology Attachment)、Ethernet(登録商標)などの様々なインタフェースモジュールをローカルバスに接続して異なる種類の周辺デバイスとの通信を行うのが一般的である。
図2は、複数の異なるインターフェースを有する周辺デバイスとの通信を行うためのインタフェースモジュールをローカルバスに接続したLSIシステムの構成を示す図である。
システム10は、ローカルバス11と、ローカルバス11に接続されるCPU12、メモリ(Memory)13および制御回路14等を有する。ローカルバス11は、さらにブリッジ回路15A−15Cを介してインタフェースモジュール18に接続される。インタフェースモジュール18は、図1に示したようなプロトコル変換回路16A−16Cを、周辺デバイス19A−19Cのバスプロトコルに応じて複数有する回路である。
上記のように、ローカルバスとインタフェースモジュールを接続するには異なるバス仕様になるためデータの整合性を合わせる。そのため、ブリッジ回路15A−15Cを用意して、各周辺デバイスのローカルバスに接続できるようにする。
図3は、AXIローカルバス11とPCI Expressインタフェースモジュール16Aとのブリッジ回路15Aについて説明する図である。
ブリッジ回路15Aは、ブリッジ制御部31と、分割処理部32と、バッファ回路33と、を有する。ブリッジ回路15Aは、Readのデータ転送ではRead要求(リクエスト)Aの発行に対して、周辺デバイスにReadリクエストを発行し、それに応じた周辺デバイスからのReadデータを受領し、ローカルバスに出力する。ブリッジ制御部31は、各部の制御を行う。
例えば、ローカルバス11にてPCI Expressインタフェースモジュール16Aへ1度に256バイト(Byte)のRead要求を行う場合、PCI Expressの周辺デバイス19Aへの転送要求では128Byteの2回のReadに分割して行うように要求する場合がある。
2回またはそれ以上に分割されたRead転送は、転送順が規定されておらず、装置におけるReadタイミングの関係で、順不同で応答される場合が起こる。この場合、転送する分割データにタグを付して分割データの順序が分かるようにしている。
一方、PCI Expressインタフェースモジュール16Aおよびブリッジ回路15Aからローカルバス11に出力する転送データは、元の256Byteの要求に対しては1回のデータとして応答する。そのため、ブリッジ回路15Aにて正しい順序に整列する制御が要求される。
図3に示すように、ブリッジ回路15Aは、Readのデータ転送では、Read要求Aの発行に対して、分割処理部32で、周辺デバイスに対する複数のRead要求#0-#3を発行する。周辺デバイスは、これに応じてReadデータ#0-#3をインタフェースモジュール16Aおよびブリッジ回路15Aに出力し、ブリッジ回路15AはReadデータ#0-#3を受領するが、受領順序はRead要求の順番通りではない。そのため、ブリッジ回路15Aにおいて、Read要求とReadデータの順序を対応付け、順番通りに並び替える。バッファ回路33は、この並び替えに利用される。図3では、Readデータ#3, #2, #0, #1の順で転送され、バッファ回路33でReadデータ#A-0, #A-1, #A-2, #A-3の順に並び替え、この順に出力する。
ここでは、整列する総データ量(read要求A)の最大値は決まっているが、分割された各データ量(データ#0, #1, #2, #3)の大きさは状況により可変量となるものとする。
例えば、128Byteの総データ量で、分割数が1の場合は128Byteの1つのデータとなり、分割数が4の場合では、14Byte、64Byte、32Byte、18Byteなどの異なる大きさのデータが入力されることになり、それらの順序を整列する。このとき、分割された各データには順序を識別するTAG番号(#0,#1,#2…)が付与されており、これを利用して、分割データ間の順序を識別する。さらに、それぞれの分割データ内のデータ列は、順序が守られているものとする。
上記の要求を満たすには、順不同に入力されるデータをバッファリングし整列させる機構が必要となる。
図4は、順不同に入力されるデータをバッファリングし整列させるバッファ回路を示す図であり、(A)が構成例を示し、(B)が各データバッファのデータ格納状況の例を示す。
図4のバッファ回路は、TAG番号に応じた最大分割数分の4個のデータバッファ33A−33Dを有し、入力バス34を介して、入力されたデータを、TAG番号に応じそれぞれのデータバッファへ格納する。この複数のデータバッファに振り分けられたデータを、バッファ番号0、1、2、3の順序で出力バス35に出力することにより、整列されたデータとして出力する。
4個のデータバッファ33A−33Dは、最大総データ量のサイズを持つため、図4のバッファ回路では、データバッファの容量を「総データ量×分割段数」分必要となる。例えば、全体で128Byteの転送を、32Byteの順不同の4つのデータが入力される場合では、128Byte×4段=512Byteのバッファを準備する必要があり、転送量よりも大きな容量のバッファとなる。そのため、図4の(B)に示すように、4個のデータバッファ33A−33Dは、最大総データ量のサイズを持つ転送データがすべて格納された状態でも、大きな空き領域を有し、データバッファ33A−33Dの容量が有効に使用されない。
また、この制御においては、入力データTag3、Tag2、Tag0、Tag1をTag番号に応じたバッファ3,2,0,1へ格納し、出力するデータをバッファの若い番号から格納された情報量ずつ読み出すことで並び替えを実現する。このようなデータバッファからの読み出し制御を実現するには、各バッファデータ格納量の把握とバッファデータの切り替えを行う。そのため、制御にはデータ処理時間または組み合わせ回路による制御遅延が、必要となるためデータ転送のレイテンシとなり転送効率の妨げとなる。
このように、周辺デバイスからの転送順にバッファ回路に格納し、ローカルバスには順序を考慮して出力する場合、出力する格納位置を判定する処理を行うことになる。そのため、ローカルバスへの出力におけるレイテンシィが生じる。
実施形態は、ローカルバスへの出力におけるレイテンシィが小さいことが要求されるバッファ回路である。そのため、実施形態のバッファ回路は、システムに要求された転送順序で、言い換えればローカルバスに出力する順序でバッファ回路に格納し、データ出力制御を簡易化して、レイテンシィを小さくし、高速化を実現する。そして、このようなバッファ回路で、バッファのサイズを小さく、例えば、最大総データ量のサイズとしたバッファ回路である。
図5は、実施形態のバッファ回路の基本動作を説明する図である。
図5の(A)に示すように、実施形態のバッファ回路は、総転送データ量分のサイズのバッファ回路であり、レジスタ列と、レジスタ列の制御回路と、を有する。制御回路は、複数の受信データをあらかじめ定められた転送順序に並び替えてレジスタ列に格納し、複数の受信データが揃った時に1つの転送データとして順次出力するように制御を行う。
レジスタ列は、複数段のレジスタを有し、各レジスタは、出力信号に応じて後段のレジスタの格納データを格納し、書き込み信号に応じて入力バスからのデータを格納し、既データシフト信号に応じて前段のレジスタの格納データを格納する。
制御回路は、各受信データをタグ番号に従って順に初段レジスタから格納する。制御回路は、タグ番号と対応し、各受信データを格納している後端レジスタの位置を示す後端ポインタを記憶するポインタレジスタを有する。制御回路は、新たに新受信データを格納する時には、新受信データのタグ番号と対応する後端ポインタから新受信データを格納する書込レジスタの位置を決定する。これにより、バッファ内では先頭位置から前詰めで整列されたデータが格納される動作となり、バッファの量は総転送データ量と同じでよい。
そして、制御回路は、書込レジスタに書き込み信号を、このスタより後段のレジスタに既データシフト信号を出力し、複数の受信データが揃った時に、すべてのレジスタに、出力信号を出力する。実施形態のバッファ回路は、このような構成および機能を有するので、データのセレクタ制御などを伴わず、データ転送のレイテンシを抑えることができる。
図5の(B)は、16段のレジスタで形成されるレジスタ列41に、先頭から分割番号(=TAG) 0, 2, 3のデータが格納されている状況を示している。TAG0のデータは0−2番のレジスタに、TAG2のデータは3−5番のレジスタに、TAG3のデータは6−9番のレジスタに、格納されている。後端ポインタwp0、wp2、wp3は、格納されているTAG 0, 2, 3のデータの後端位置(後端+1)を示し、wp1はTAG1のデータが入力された時にTAG1のデータを格納すべき位置を示す。したがって、wp0=3、wp1=3、wp2=6、wp3=10である。
図5の(B)の状態で、TAG1のデータが転送された場合には、TAG1のデータは、TAG0のデータとTAG2のデータの間、wp1=3で示す3番のレジスタに格納される。
図5の(C)に示すように、TAG1のデータの長さが1の場合には、wp1=3が示す3番のレジスタにTAG1のデータが格納され、wp2およびwp3は1ずつ増加する(後にずれる)。wp0=3は変化しない。
もしTAG1のデータの長さが2以上の場合には、上記の動作を長さ分繰り返す。したがって、TAG1のデータの長さが5であれば、TAG1のデータの格納が終了した時点で、wp0=3、wp1=8、wp2=11、wp3=15となる。
また、転送データがすべてレジスタ列41に格納された後レジスタ列41から格納したデータを出力する場合には、後端ポインタwp0、wp2、wp2、wp3の値を1減じながら(−1しながら)、各レジスタのデータを初段方向に1段ずつシフトする。
後端ポインタwp0、wp2、wp2、wp3は、リセット時にはすべて初段のレジスタを示しており、前側(初段側)の(番号の小さい)後端ポインタの示す位置が後側に移動した場合には、それより後側の後端ポインタはすべて同じ数だけ後側にシフトする。
次に実施形態のバッファ回路の具体的な構成例を説明する。
図6は、実施形態のバッファ回路の構成を示す図である。
実施形態のバッファ回路は、レジスタ列41と、制御回路42と、を有する。
レジスタ列41は、N個のレジスタ(Reg)51-0, 51-1, …, 51-N-2, 51-N-1と、後段から前段のレジスタへのデータパス52と、すべてのレジスタに共通に接続される入力データバス53と、前段から後段のレジスタへのデータパス54と、を有する。レジスタ列41は、さらに各レジスタへの、入力データの書き込みを指示する新データ書き込み信号パス55、既格納データの後方へのシフトを指示する後方シフト信号パス56と、出力信号パス57と、を有する。
各レジスタは、データバス幅のデータが格納できる。例えば、データバス幅が64bit(8Byte)で、総転送データ量が128Byteの場合には、各レジスタは64bit(8Byte)のデータを保持し、レジスタ列は16段のレジスタ51-0〜51-15により形成される。
制御回路42は、ポインタレジスタ61-0、61-1、…、61-M-1と、位置判定回路62と、新データ書き込みパルス(NW)発生回路63と、後方シフトパルス(BS)発生回路64と、2個のANDゲート65、66と、出力パルス(OE)発生回路67と、を有する。
ポインタレジスタ61-0、61-1、…、61-M-1は、図5で説明した各データの後端ポインタwp0、wp1、…、wpM-1を記憶する。
位置判定回路62は、入力が要求された新データのTAG番号と一致するポインタレジスタの番号を探し、それに対応する後端ポインタの値および新データの長さを、新データ書き込みパルス(NW)発生回路63および後方シフトパルス(BS)発生回路64に出力する。
新データ書き込みパルス(NW)発生回路63は、位置判定回路62から出力された後端ポインタの値が示すレジスタに対して、入力データの書き込みを指示する新データ書き込み信号NWを出力する。この時、新データ書き込みパルス(NW)発生回路63は、他のレジスタに新データ書き込みパルスNWを出力することはない。
後方シフトパルス(BS)発生回路64は、位置判定回路62から出力された後端ポインタの値に1加えた値以上のすべての値が示すレジスタに対して、既格納データの後方へのシフトを指示する後方シフトパルスBSを出力する。
新データ書き込みパルス(NW)発生回路63および後方シフトパルス(BS)発生回路64は、以上の動作を、新データの長さで示される回数だけ、後端ポインタの値1ずつ増加させながら繰り返す。
2個のANDゲート65、66は、新データ書き込みパルスNWおよび後方シフトパルスBSが、バッファ回路に対して入力要求が出されている時のみ、レジスタ列41に出力されるように制御する。
出力パルス(OE)発生回路67は、バッファ回路に対する出力要求に応じて、出力パルスOEを、レジスタ列41のすべてのレジスタに出力する。なお、出力パルス(OE)発生回路67は、ポインタレジスタに保持されている転送データの最終段の位置、すなわち転送データの長さに対応する回数だけ出力パルスOEを出力する。
したがって、出力パルスOEは、レジスタ列41のすべてのレジスタに共通に出力される。また、新データ書き込みパルスNWおよび後方シフトパルスBSは、レジスタ列41のすべてのレジスタに、NW0〜NW-N-1およびBS0〜BS-N-1が供給される。ただし、BS0が発生されることはない。また、出力パルスOE、新データ書き込みパルスNWおよび後方シフトパルスBSは、同一のレジスタに対して同時に出力されるのは1つのみである。
図7は、各レジスタの回路例を示す図であり、ここではレジスタ51-0, 51-1, 51-2の3個のレジスタのみを示す。
各レジスタは、セレクタ71と、ラッチ72と、選択・ラッチ信号生成回路73と、を有する。セレクタ71は、選択信号S1およびS2に応じて、後段から前段のレジスタへのデータパス52のデータ、入力データバス53のデータおよび前段から後段のレジスタへのデータパス54A、54B、54Cのデータのいずれかを選択してラッチ72に出力する。なお、図7に示すように、初段のレジスタ51-0は、前段から後段のレジスタへのデータパス54の入力はゼロに固定されている。同様に、図6に示したように、最終段のレジスタ51-15は、後段から前段のレジスタへのデータパス52の入力はゼロに固定されている。さらに、ここでは、セレクタ71は、いずれのデータも選択せずに出力がハイインピーダンス状態になる場合があるとして説明する。
ラッチ72は、ラッチ信号Lに応じてセレクタ71の出力をラッチし、次のデータをラッチするまでそのデータを保持する。
選択・ラッチ信号生成回路73は、各レジスタへの、新データ書き込み信号NW、後方シフト信号BSおよび出力信号OEに応じて、選択信号S1およびS2およびラッチ信号Lを生成する。
図8は、選択・ラッチ信号生成回路73を示す図であり、(A)の回路例を示し、(B)はその真理値表を示す。
図8に示すように、出力信号OE=1 (=H: active)の時にはS1=0およびS2=0となり、セレクタは、パス52、すなわち後段のレジスタの出力するデータを選択する。出力信号OE=0 (=L: inactive)の時で、NW=1の時にはS1=0およびS2=1となり、セレクタは、入力データバス53、すなわち新たに転送されたデータを選択する。出力信号OE=0の時で、BS=1の時にはS1=1およびS2=0となり、セレクタは、前段から後段のレジスタへのデータパス54A、54B、54Cのデータを選択する。
また、出力信号OE、新データ書き込みパルスNWおよび後方シフトパルスBSのいずれかがのパルスが出力されると、ラッチ信号Lが発生する。
各レジスタは、出力信号OEに応じて後段のレジスタの格納データを格納し、新データ書き込みパルス(書き込み信号)NWに応じて入力バスからのデータを格納し、後方シフトパルス(既データシフト信号)BSに応じて前段のレジスタの格納データを格納する。
次に、実施形態のバッファ回路の具体的な動作例を説明する。
図9から図11は、実施形態のバッファ回路において、周辺デバイスから転送された分割データをTAG番号順にレジスタ列41に格納する動作および転送データが揃った後順に出力する動作を説明する図である。ここでは、8bit(1byte)幅の総データ量32bit(4byte)転送データを、8bit(1byte)ずつの4分割データとして4段のレジスタ列に格納した後、出力する場合を示し、TAG番号2、0、3、1の順番で転送される場合である。なお、説明を簡単にするため、上記のように各分割データの長さは1であるとして説明および図示するが、長さ2以上でもよい。
図12は、図9から図11に対応したタイムチャートであり、図示の都合で、分割データが連続して到着し、転送データが揃った後直ちに出力するものとして説明する。しかし、これに限定されるものではなく、実際には、分割データは間隔を空けて到着し、転送データが揃った後、ローカルバスから出力が許可されてから出力を行うのが一般的である。また、周辺デバイスからの転送データを格納する動作速度と、転送データをローカルバスに出力する動作速度は、異なってもよい。
図9の(A)は、バッファ回路から格納データの出力が終了し、すべてのレジスタ(ラッチ)に"00"(任意値)が格納された初期化状態を示す。この時、後端レジスタwp0=wp1=wp2=wp3=0である。図12のタイムチャートでは、左端に示される状態であり、4個のレジスタのラッチは、すべて"00"を保持している。
図9の(B)は、次に、TAG=2のデータ"CC"が入力された場合を示す。TAG=2であるから、wp2が選択され、その値が0であるため、NW0を出力し、入力データCCをレジスタ(Reg0)51-0へ格納する。そして、BS1、BS2、BS3を出力し、wp2の値0よりも大きい番号のレジスタ(Reg1,2,3)51-1, 51-2, 51-3は、前段のレジスタのデータを格納、すなわち、Reg1=Reg0、Reg2=Reg1、Reg3=Reg2とする。言い換えれば後方にシフトして格納する。さらに、TAG=2以上のTAG番号の後端レジスタwp2およびwp3を1増加する。
図12では、新データCCが入力され、NW0およびBS1、BS2、BS3が出力され、レジスタ(Reg0)51-0がCCをラッチし、レジスタ(Reg1,2,3)51-1, 51-2, 51-3は、前段のレジスタのデータをラッチする。
図10の(A)は、TAG=0のデータ"AA"が入力された場合を示す。TAG=0であるから、wp0が選択され、その値が0であるため、NW0を出力し、入力データAAをレジスタ(Reg0)51-0へ格納する。そして、BS1、BS2、BS3を出力し、wp0の値0よりも大きい番号のレジスタ(Reg1,2,3)51-1, 51-2, 51-3は、前段のレジスタのデータを格納、すなわち、Reg1=Reg0、Reg2=Reg1、Reg3=Reg2とする。言い換えれば後方にシフトして格納する。さらに、TAG=0以上のTAG番号の後端レジスタwp0、wp1、wp2およびwp3を1増加する。これにより、wp0=1、wp1=1、wp2=2およびwp3=2となる。
図12では、新データAAが入力され、NW0およびBS1、BS2、BS3が出力され、レジスタ(Reg0)51-0がAAをラッチし、レジスタ(Reg1,2,3)51-1, 51-2, 51-3は、前段のレジスタのデータReg0=CC、Reg1=0およびReg2=0をラッチする。
図10の(B)は、TAG=3のデータ"DD"が入力された場合を示す。TAG=3であるから、wp3が選択され、その値が2であるため、NW2を出力し、入力データDDをレジスタ(Reg2)51-2へ格納する。そして、BS3を出力し、wp2の値2よりも大きい番号のレジスタ(Reg3)51-3は、前段のレジスタのデータを格納、すなわち、Reg3=Reg2とする。TAG=3以上のTAG番号の後端レジスタwp3を1増加する。これにより、wp0=1、wp1=1、wp2=2およびwp3=3となる。
図12では、新データDDが入力され、NW2およびBS3が出力され、レジスタ(Reg2)51-2がDDをラッチし、レジスタ(Reg3)51-3は、前段のレジスタのデータReg2=0をラッチする。
図11の(A)は、TAG=1のデータ"BB"が入力された場合を示す。TAG=1であるから、wp1が選択され、その値が1であるため、NW1を出力し、入力データBBをレジスタ(Reg1)51-1へ格納する。そして、BS2およびBS3を出力し、wp1の値1よりも大きい番号のレジスタ(Reg2,3)51-2, 51-3は、前段のレジスタのデータを格納、すなわち、Reg2=Reg1, Reg3=Reg2とする。TAG=1以上のTAG番号の後端レジスタwp1, wp2, wp3を1増加する。これにより、wp0=1、wp1=2、wp2=3およびwp3=4となる。
図12では、新データBBが入力され、NW1、BS2およびBS3が出力され、レジスタ(Reg1)51-1がBBをラッチし、レジスタ(Reg2, 3)51-2, 51-3は、前段のレジスタのデータReg1=CC, Reg2=DDラッチする。
以上のようにして、周辺デバイスからの転送データはすべて揃ったことになるので、次にレジスタ回路からの出力動作を実行する。
図11の(B)は、出力要求が出された場合を示す。出力要求に応じて、すべてのレジスタ51-0, 51-1, 51-2, 51-3に対して出力信号OEが出力され、各レジスタは後段のデータを格納する。これにより、後方から前方への保持データのシフトが行われ、初段のレジスタ(Reg0)51-0からして出力する。すなわち、Reg0=Reg1、Reg1=Reg2、Reg2=Reg3、Reg3=00(任意値)とする。そして、後端ポインタwp0, wp1, wp2, wp3を−1する。ポインタの下限は0である。
図12では、出力信号OEが出力され、Reg0=Reg1=BB、Reg1=Reg2=CC、Reg2=Reg3=DD、Reg3=00(任意値)となる。
以下、図11の(B)の動作をさらに3回行うと、初段のレジスタ(Reg0)51-0からDDが出力されてすべての転送データの出力が完了する。そして、図11の(C)に示すように、すべてのレジスタで後方から前方への保持データのシフトが行われ、Reg0=Reg1=00、Reg1=Reg2=00、Reg2=Reg3=00、Reg3=00(任意値)とする。そして、後端ポインタwp0, wp1, wp2, wp3を−1すると、ポインタの下限は0であるからすべて0となる。このようにして初期状態になる。
以上の通り、レジスタ回路からのデータの出力は、初段レジスタから順に行うので、データの選択や組み合わせ回路を経由することがなく、レイテンシィは低い。
なお、図8から図19の説明では、各分割データの長さは1であるとしたが、長さ2以上でもよく、その場合にはそれぞれの分割データのバッファ回路への格納動作を長さ分だけ繰り返す。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
40 バッファ回路
41 レジスタ列
42 制御回路
51−0〜51−N−1 レジスタ
52 後段から前段のレジスタへのデータパス
53 入力データバス
54 前段から後段のレジスタへのデータパス
61−0〜61−M−1 後端ポインタレジスタ

Claims (7)

  1. 複数段のレジスタを有するレジスタ列と、
    複数の受信データをあらかじめ定められた転送順序に並び替えて前記レジスタ列に格納し、前記複数の受信データが揃った時に1つの転送データとして順次出力するように前記レジスタ列を制御する制御回路と、を備え、
    前記制御回路は、前記レジスタ列が前記複数の受信データを出力するとき、前記レジスタ列を、各レジスタの格納データを前段のレジスタに格納するように制御し、
    前記制御回路は、前記レジスタ列が新たに新受信データを格納するとき、前記転送順序に応じて書込レジスタを決定し、前記レジスタ列を、前記書込レジスタの格納データを前記書込レジスタの後段のレジスタに格納し、前記書込レジスタに前記新受信データを格納するように制御する
    ことを特徴とするバッファ回路。
  2. 前記レジスタ列の各レジスタは、出力信号に応じて後段のレジスタの格納データを格納し、書き込み信号に応じて入力バスからのデータを格納し、既データシフト信号に応じて前段のレジスタの格納データを格納し、
    前記制御回路は、
    各受信データを前記各受信データに付されたタグ番号に従って順に初段レジスタから格納し、
    タグ番号と対応し、各受信データを格納している後端レジスタの位置を示す後端ポインタを記憶するポインタレジスタを有し、
    新たに新受信データを格納する時には、新受信データのタグ番号と対応する前記後端ポインタから新受信データを格納する書込レジスタの位置を決定し、前記書込レジスタに前記書き込み信号を出力し、前記書込レジスタより後段のレジスタに前記既データシフト信号を出力し、
    前記複数の受信データが揃った時に、前記レジスタ列のすべてのレジスタに、前記出力信号を出力することを特徴とする請求項1記載のバッファ回路。
  3. 各レジスタは、
    後段のレジスタの格納データ、前段のレジスタの格納データおよび前記入力バスから入力されるデータのいずれかを選択するセレクタと、
    前記セレクタの出力をラッチするラッチ回路と、を備えることを特徴とする請求項2記載のバッファ回路。
  4. 初段のレジスタの前記セレクタは、前段のレジスタの格納データを選択することが無いように制御され、
    最終段のレジスタの前記セレクタは、後段のレジスタの格納データとして初期値が入力されることを特徴とする請求項3記載のバッファ回路。
  5. 前記書込レジスタへの新受信データの格納および前記書込レジスタより後段のレジスタへの前段のデータの格納は、並列に同時に行い、
    前記すべてのレジスタへの後段のレジスタの格納データの格納は、並列に同時に行うことを特徴とする請求項1から4のいずれか1項記載のバッファ回路。
  6. ローカルバスと、
    前記ローカルバスに接続された周辺デバイスとのインターフェース回路と、を備える半導体集積回路であって、
    前記インターフェース回路は、バッファ回路を備え、
    前記バッファ回路は、
    複数段のレジスタを有するレジスタ列と、
    複数の受信データをあらかじめ定められた転送順序に並び替えて前記レジスタ列に格納し、前記複数の受信データが揃った時に1つの転送データとして順次出力するように前記レジスタ列を制御する制御回路と、を備え、
    前記制御回路は、前記レジスタ列が前記複数の受信データを出力するとき、前記レジスタ列を、各レジスタの格納データを前段のレジスタに格納するように制御し、
    前記制御回路は、前記レジスタ列が新たに新受信データを格納するとき、前記転送順序に応じて書込レジスタを決定し、前記レジスタ列を、前記書込レジスタの格納データを前記書込レジスタの後段のレジスタに格納し、前記書込レジスタに前記新受信データを格納するように制御する
    ことを特徴とする半導体集積回路。
  7. 前記レジスタ列の各レジスタは、出力信号に応じて後段のレジスタの格納データを格納し、書き込み信号に応じて入力バスからのデータを格納し、既データシフト信号に応じて前段のレジスタの格納データを格納し、
    前記制御回路は、
    各受信データを前記各受信データに付されたタグ番号に従って順に初段レジスタから格納し、
    タグ番号と対応し、各受信データを格納している後端レジスタの位置を示す後端ポインタを記憶するポインタレジスタを有し、
    新たに新受信データを格納する時には、新受信データのタグ番号と対応する前記後端ポインタから新受信データを格納する書込レジスタの位置を決定し、前記書込レジスタに前記書き込み信号を出力し、前記書込レジスタより後段のレジスタに前記既データシフト信号を出力し、
    前記複数の受信データが揃った時に、前記レジスタ列のすべてのレジスタに、前記出力信号を出力することを特徴とする請求項6記載の半導体集積回路。
JP2013070336A 2013-03-28 2013-03-28 バッファ回路及び半導体集積回路 Expired - Fee Related JP6094321B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013070336A JP6094321B2 (ja) 2013-03-28 2013-03-28 バッファ回路及び半導体集積回路
US14/222,367 US9003083B2 (en) 2013-03-28 2014-03-21 Buffer circuit and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070336A JP6094321B2 (ja) 2013-03-28 2013-03-28 バッファ回路及び半導体集積回路

Publications (2)

Publication Number Publication Date
JP2014194619A true JP2014194619A (ja) 2014-10-09
JP6094321B2 JP6094321B2 (ja) 2017-03-15

Family

ID=51621983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070336A Expired - Fee Related JP6094321B2 (ja) 2013-03-28 2013-03-28 バッファ回路及び半導体集積回路

Country Status (2)

Country Link
US (1) US9003083B2 (ja)
JP (1) JP6094321B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022086294A (ja) * 2020-11-30 2022-06-09 日本電波工業株式会社 伝送回路

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216669B2 (en) * 2016-02-23 2019-02-26 Honeywell International Inc. Bus bridge for translating requests between a module bus and an axi bus
GB202107393D0 (en) * 2021-05-24 2021-07-07 Nordic Semiconductor Asa Data bus communications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04250583A (ja) * 1991-01-25 1992-09-07 Nec Corp 情報収集装置
JP2005267415A (ja) * 2004-03-19 2005-09-29 Nec Corp 順序制御回路

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2125607A1 (en) 1993-06-30 1994-12-31 David Thielen Method and system for buffering transient data
JP4923849B2 (ja) 2006-08-21 2012-04-25 富士通株式会社 無線受信装置
US8244938B2 (en) 2010-11-23 2012-08-14 International Business Machines Corporation Sliding write window mechanism for writing data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04250583A (ja) * 1991-01-25 1992-09-07 Nec Corp 情報収集装置
JP2005267415A (ja) * 2004-03-19 2005-09-29 Nec Corp 順序制御回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022086294A (ja) * 2020-11-30 2022-06-09 日本電波工業株式会社 伝送回路
JP7376459B2 (ja) 2020-11-30 2023-11-08 日本電波工業株式会社 伝送回路

Also Published As

Publication number Publication date
JP6094321B2 (ja) 2017-03-15
US20140297906A1 (en) 2014-10-02
US9003083B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
US11609769B2 (en) Configuration of a reconfigurable data processor using sub-files
US11188497B2 (en) Configuration unload of a reconfigurable data processor
US10027433B2 (en) Multiple clock domains in NoC
US9348775B2 (en) Out-of-order execution of bus transactions
CN106021141B (zh) 半导体设备
CN112114875B (zh) 一种超导并行寄存器堆装置
CN112486453B (zh) 一种异步先入先出寄存器以及芯片
WO2017148221A1 (zh) 串行外设接口的传输控制方法、装置及系统
JP6094321B2 (ja) バッファ回路及び半導体集積回路
US20220391695A1 (en) Tensor dropout in a neural network
JP5643896B2 (ja) デイジーチェーン接続されたデバイスのための高速インターフェイス
US20130002315A1 (en) Asynchronous clock adapter
CN110554886B (zh) 数据拆分结构、方法及其片上实现
US11328209B1 (en) Dual cycle tensor dropout in a neural network
CN106024045B (zh) 半导体器件
JP2023500300A (ja) プログラマブルデバイス構成メモリシステム
US20120296623A1 (en) Machine transport and execution of logic simulation
WO2018139344A1 (ja) 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体
US10482208B2 (en) Coding and synthesizing a state machine in state groups
US11200480B2 (en) Counter readout circuit
US8966124B1 (en) Systems, methods, and articles of manufacture to stream data
CN116680230B (zh) 一种硬件加速电路及芯片
CN101692216B (zh) 动态数据流结构中存储-匹配-转发单元电路
RU2686017C1 (ru) Реконфигурируемый вычислительный модуль
US20130212363A1 (en) Machine transport and execution of logic simulation

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170130

R150 Certificate of patent or registration of utility model

Ref document number: 6094321

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees