JP2015001986A - データ転送装置、バッファリング回路及びバッファリング方法 - Google Patents

データ転送装置、バッファリング回路及びバッファリング方法 Download PDF

Info

Publication number
JP2015001986A
JP2015001986A JP2013124533A JP2013124533A JP2015001986A JP 2015001986 A JP2015001986 A JP 2015001986A JP 2013124533 A JP2013124533 A JP 2013124533A JP 2013124533 A JP2013124533 A JP 2013124533A JP 2015001986 A JP2015001986 A JP 2015001986A
Authority
JP
Japan
Prior art keywords
data
bank
memory
write
written
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.)
Pending
Application number
JP2013124533A
Other languages
English (en)
Inventor
義博 北原
Yoshihiro Kitahara
義博 北原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013124533A priority Critical patent/JP2015001986A/ja
Priority to EP14169458.8A priority patent/EP2814033A1/en
Priority to US14/299,011 priority patent/US20140369142A1/en
Publication of JP2015001986A publication Critical patent/JP2015001986A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Dram (AREA)

Abstract

【課題】メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することができるデータ転送装置を提供する。
【解決手段】データ転送装置2は、第1バンク第1メモリ311及び第1バンク第2メモリ312を有する第1バンク31と、第2バンク第1メモリ321及び第2バンク第2メモリ322を有する第2バンク32と、制御回路70とを有する。第1バンク31及び第2バンク32はそれぞれ、基準周期で書き込み及び読み出しが行われ、且つ互いに逆相で書き込み状態と読み出し状態とに交互に変化する。制御回路60は、入力されるデータ群を第1バンク31及び第2バンク32に順次記憶し、記憶したデータ群を順に読み出すように制御する。
【選択図】図8

Description

本発明は、データ転送装置、バッファリング回路及びバッファリング方法に関する。
複数のバンクを有するメモリを使用してFIFO(First In First Out)を形成することが知られている。複数のバンクを有するFIFOでは、書き込みをしているバンクと異なるバンクに記憶されるデータを読み出すことにより、書き込み及び読み出しが非同期に実行される。
また、クロック信号の1周期の間でRAM(Random Access Memory)などのメモリに記憶されたデータの読み出し及びメモリへのデータの書き込みを行うようにした記憶方法が知られている。この記憶方法では、メモリにクロック信号の1周期の少なくとも1/2の周期で書き込み期間と読み出し期間が変わるタイミング信号を供給することにより、クロック信号の1周期の間でデータの読み出し及びデータの書き込みを実行している。
特開2001−307475号公報 特開平6−301590号公報
しかしながら、従来のFIFOでは、メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することが難しいという問題がある。そこで、メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することができるデータ転送装置を提供することを目的とする。
上記課題を解決するために、データ転送装置は、第1バンクと、第2バンクと、制御回路とを有する。データ転送装置は、データ周期で転送されてくるデータ群を順に書き込んで記憶し、記憶した順に読み出して出力する。入力データクロック乗換回路は、データ周期で入力される2つのデータを、データ周期の2倍の基準周期ごとに結合して、上位データと下位データとを含む2倍長データとして出力する。第1バンクは、基準周期で書き込み及び読み出しが行われる第1バンク第1メモリと第1バンク第2メモリとを有し、基準周期ごとに書き込み状態と読み出し状態とに交互に変化する。第2バンクは、基準周期で書き込み及び読み出しが行われる第2バンク第1メモリと第2バンク第2メモリとを有し、第1バンクと逆相で書き込み状態と読み出し状態とに交互に変化する。出力データクロック乗換回路は、第1バンク及び第2バンクに記憶された2倍長データを基準周期で読み出し、上位データ及び下位データに分けてデータ周期で出力する。制御回路は、入力されるデータ群を第1バンク及び第2バンクに順次記憶し、記憶したデータ群を順に読み出すように制御する。
入力されたデータ群をデータ周期の2場の基準周期ごとに第1バンク及び第2バンクに順次記憶し、記憶したデータ群を順に読み出すように制御するため、第1バンク及び第2バンクの書き込み時間の2倍のデータ周期を有するデータが書き込まれる。
データ転送装置の一例の回路ブロック図である。 (a)は図1に示すデータ転送装置の入力データクロック乗換回路の内部回路ブロック図であり、(b)は(a)に示す入力データクロック乗換回路のタイムチャートを示す図である。 図1に示すデータ転送装置のタイミング調整回路の内部回路ブロック図である。 図1に示すデータ転送装置の出力データクロック乗換回路の内部回路ブロック図である。 図1に示すデータ転送装置の制御回路の内部回路ブロック図である。 図1に示すデータ転送装置のタイムチャートを示す図である。 (a)は図6に示すタイムチャートの第1の書き込み状態を示す図であり、(b)は図6に示すタイムチャートの第2の書き込み状態を示す図であり、(c)は図6に示すタイムチャートの第3の書き込み状態を示す図であり、(d)は図6に示すタイムチャートの第4の書き込み状態を示す図である。 データ転送装置の他の例の回路ブロック図である。 図8に示すデータ転送装置の制御回路の内部回路ブロック図である。 (a)は図9に示す制御回路のデータ情報FIFOキュー群の内部回路ブロック図であり、(b)は(a)に示すデータ情報FIFOキュー群に記憶されるデータの一例を示す図である。 図8に示すデータ転送装置の書き込みポインタの内部回路ブロック図である。 図8に示すデータ転送装置の読み出しポインタの内部回路ブロック図である。 (a)は図8に示すデータ転送装置の書き込み状態のタイムチャートを示す図であり、(b)は(a)に示すタイムチャートの第1の書き込み状態を示す図であり、(c)は(a)に示すタイムチャートの第2の書き込み状態を示す図であり、(d)は(a)に示すタイムチャートの第3の書き込み状態を示す図であり、(e)は(a)に示すタイムチャートの第4の書き込み状態を示す図である。 (a)は図8に示すデータ転送装置に入力されるデータ群の一例を示す図であり、(b)は(a)に示すデータ群の書き込み状態の一例を示す図であり、(c)は(a)に示すデータ群の書き込み状態の他の例を示す図であり、(d)は図8に示すデータ転送装置に入力されるデータ群の他の例を示す図であり、(e)は(d)に示すデータ群の書き込み状態の一例を示す図であり、(f)は(d)に示すデータ群の書き込み状態の他の例を示す図である。 図8に示すデータ転送装置のタイムチャートの一例を示す図である。 図8に示すデータ転送装置のタイムチャートの一例を示す図である。 図8に示すデータ転送装置のタイムチャートの他の例を示す図である。 図8に示すデータ転送装置のタイムチャートの他の例を示す図である。
以下図面を参照して、本発明に係るデータ転送装置について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
図1は、データ転送装置の一例の回路ブロック図である。
データ転送装置1は、入力データクロック乗換回路10と、タイミング調整回路20と、バッファ30と、出力選択回路40と、出力データクロック乗換回路50と、制御回路60とを有する。
図2(a)は入力データクロック乗換回路10の内部回路ブロック図であり、図2(b)は入力データクロック乗換回路10のタイムチャートを示す図である。
入力データクロック乗換回路10は、第1ラッチ回路11と、第2ラッチ回路12と第3ラッチ回路13と、分周回路14とを有する。第1〜第3ラッチ回路11〜13はそれぞれ8byteのデータバス幅を有するデータをラッチし、入力されるクロック信号に応じてラッチしたデータを出力する。分周回路14は、入力データのクロック周期に応じた入力側クロック信号が入力され、入力されたクロック信号の周期の2倍の周期である出力側クロック信号として出力する。出力側クロック信号は、不図示の配線を介してタイミング調整回路20及び制御回路60に提供され、タイミング調整回路20及び制御回路60で基準クロックとして使用される。すなわち、タイミング調整回路20及び制御回路60で使用されるクロック信号の周期は、入力されたデータのクロックの2倍の周期となる。本明細書では、入力されたデータのクロックの2倍の周期を基準周期と称する。
第1ラッチ回路11は、入力側クロック信号で8byteのデータバス幅を有する入力データをラッチして、ラッチしたデータを入力側クロック信号に応じて出力する。第2ラッチ回路12は、第1ラッチ回路11から出力される8byteのデータバス幅を有するデータを、入力側クロック信号の2倍の周期である出力側クロック信号に応じて上位データUp_W_Dataとして出力する。第3ラッチ回路13は、8byteのデータバス幅を有する入力データを入力側クロック信号の2倍の周期を有する出力側クロック信号に応じて下位データLw_W_Dataとして出力する。
入力データクロック乗換回路10は、8byteのデータバス幅を有する入力データを16byteのデータバス幅を有する出力データとして入力データのデータレートの半分のデータレートで出力する。
図2(b)に示す例では、入力側クロックの偶数の周期でラッチされたデータは、上位データUp_W_Dataとして出力され、入力側クロックの奇数の周期でラッチされたデータは、下位データLw_W_Dataとして出力される。
第1データ群A1〜A5の先頭のデータA1は上位データUp_W_Dataとして出力され、第2のデータA2は下位データLw_W_Dataとして出力される。そして、第1データ群A1〜A5の末尾のデータA5は、上位データUp_W_Dataとして出力される。
一方、第2データ群B1〜B4及び第3データ群C1〜C3の先頭のデータB1及びC1はそれぞれ下位データLw_W_Dataとして出力され、第2のデータB2及びC2はそれぞれ上位データUp_W_Dataとして出力される。第1データ群の先頭のデータA1は偶数のサイクルであるサイクル0で到達するのに対し、第2データ群及び第3データ群の先頭のデータB1及びC1はそれぞれ奇数のサイクルであるサイクル7及び11で到達するためである。
入力データクロック乗換回路10は、データ周期で入力される2つのデータを、データ周期の2倍の基準周期ごとに結合して、上位データUp_W_Dataと下位データLw_W_Dataとを含む2倍長データとして出力する。
図3は、タイミング調整回路20の内部回路ブロック図である。
タイミング調整回路20は、第1遅延回路21と、第2遅延回路22と、第3遅延回路23と、遅延選択回路24とを有する。
第1遅延回路21は、入力される上位データUp_W_Dataを下位データLw_W_Dataとすると共に、入力される下位データLw_W_Dataを基準周期1サイクルに相当する時間遅延させて上位データUp_W_Dataとして出力する。第1遅延回路21から出力されるデータは、遅延選択回路24の第2入力端子Din1に第1遅延データとして入力される。第2遅延回路22は、入力される上位データUp_W_Data及び下位データLw_W_Dataをそれぞれ基準周期1サイクルに相当する時間遅延させて出力する。第2遅延回路22から出力されるデータは、遅延選択回路24の第3入力端子Din2に第2遅延データとして入力される。第3遅延回路23は、第1遅延回路21から出力される上位データUp_W_Data及び下位データLw_W_Dataをそれぞれ、基準周期1サイクルに相当する時間更に遅延させて出力する。第3遅延回路23から出力されるデータは、遅延選択回路24の第4入力端子Din3に第3遅延データとして入力される。第3遅延データの下位データLw_W_Dataは、入力される上位データUp_W_Dataを基準周期1サイクルに相当する時間に遅延させたデータである。第3遅延データの上位データUp_W_Dataは、入力される下位データLw_W_Dataを基準周期2サイクルに相当する時間遅延させたデータである。
遅延選択回路24の第1入力端子Din0には、入力データクロック乗換回路10から出力されるデータが入力される。遅延選択回路24の第2入力端子Din1には、第1遅延回路21から出力される第1遅延データが入力される。遅延選択回路24の第3入力端子Din2には、第2遅延回路22から出力される第2遅延データが入力される。遅延選択回路24の第4入力端子Din3には、第3遅延回路23から出力される第3遅延データが入力される。遅延選択回路24は、制御回路60から入力される遅延選択信号に基づいて、第1入力端子Din0、第2入力端子Din1、第3入力端子Din2又は第4入力端子Din3の入力されるデータの何れか1つのデータを出力端子Doutから出力する。
バッファ30は、第1バンク31と第2バンク32とを有する。第1バンク31は、第1バンク第1メモリ311と、第1バンク第2メモリ312とを有する。第2バンク32は、第2バンク第1メモリ321と、第2バンク第2メモリ322とを有する。
第1バンク第1メモリ311、第1バンク第2メモリ312、第2バンク第1メモリ321及び第2バンク第2メモリ322はそれぞれ、8byteのデータバス幅を有する入力データを記憶可能なRAMである。
第1バンク第1メモリ311は、書き込みイネーブル端子WEに書き込みイネーブル信号が入力されるときに、タイミング調整回路20から出力される上位データUp_W_Dataをアドレス入力端子Adrsで指定されるアドレスに書き込む。第1バンク第2メモリ312は、書き込みイネーブル端子WEに書き込みイネーブル信号が入力されるときに、タイミング調整回路20から出力される下位データLw_W_Dataをアドレス入力端子Adrsで指定されるアドレスに書き込む。第2バンク第1メモリ321は、書き込みイネーブル端子WEに書き込みイネーブル信号が入力されるときに、タイミング調整回路20から出力される上位データUp_W_Dataをアドレス入力端子Adrsで指定されるアドレスに書き込む。第2バンク第2メモリ322は、書き込みイネーブル端子WEに書き込みイネーブル信号が入力されるときに、タイミング調整回路20から出力される下位データLw_W_Dataをアドレス入力端子Adrsで指定されるアドレスに書き込む。
第1バンク第1メモリ311及び第1バンク第2メモリ312の書き込みイネーブル端子WEには、データ継続信号Data_Write_Enable_Up及びData_Write_Enable_Lwがそれぞれ入力される。第2バンク第1メモリ321及び第2バンク第2メモリ322の書き込みイネーブル端子WEには、第1バンク第1メモリ311及び第1バンク第2メモリ312の書き込みイネーブル端子WEに入力される信号の反転信号が入力される。第2バンク32に配置されるメモリの書き込みイネーブル端子WEに反転信号が入力されるので、第1バンク31に配置されるメモリへの書き込みがイネーブルのとき、第2バンク32に配置されるメモリへの書き込みはディセーブルである。また、第1バンク31に配置されるメモリへの書き込みがディセーブルのとき、第2バンク32に配置されるメモリへの書き込みはイネーブルである。
第1バンク第1メモリ311及び第2バンク第1メモリ321はそれぞれ、アドレス入力端子Adrsで指定されるアドレスに記憶されるデータを上位データUp_R_Dataとして読み出す。第1バンク第2メモリ312及び第2バンク第2メモリ322はそれぞれ、アドレス入力端子Adrsで指定されるアドレスにタイミング調整回路20に記憶されるデータを下位データLw_R_Dataとして読み出す。
第1バンク31は、基準周期で書き込み及び読み出しが行われる第1バンク第1メモリ311と第1バンク第2メモリ312とを有し、基準周期ごとに書き込み状態と読み出し状態とに交互に変化する。第2バンク32は、基準周期で書き込み及び読み出しが行われる第2バンク第1メモリ321と第2バンク第2メモリ322とを有し、第1バンク31と逆相で書き込み状態と読み出し状態とに交互に変化する。
出力選択回路40は、出力選択端子SELに入力される信号に基づいて、第1データ入力端子Din0に入力されるデータ又は第2データ入力端子Din1に入力されるデータの何れか一方のデータを出力する。第1データ入力端子Din0には、第1バンク第1メモリ311及び第1バンク第2メモリ312から出力されるデータが入力される。第2データ入力端子Din1には、第2バンク第1メモリ321及び第2バンク第2メモリ322から出力されるデータが入力される。
出力選択回路40の出力選択端子SELは、制御回路60の第1読み出しイネーブル端子RE1及び第2読み出しイネーブル端子RE2からの出力信号をバッファリングした信号が入力される。出力選択回路40は、第1バンク31に配置されるメモリが書き込みディセーブルのときに読み出されるデータを選択する。また、出力選択回路40は、第1バンク31に配置されるメモリが書き込みイネーブルのときに第2バンク32に配置されるメモリから読み出されるデータを選択する。第1バンク31に配置されるメモリが書き込みイネーブルのとき、第2バンク32に配置されるメモリは書き込みディセーブルである。したがって、出力選択回路40は、第2バンク32に配置されるメモリが書き込みディセーブルのときに読み出されるデータを選択する。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Up/Lwに基づいて、第1バンク第1メモリ311及び第1バンク第2メモリ312の双方又は何れか一方に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Up/Lwの双方が1であり且つ第1バンク31が選択されているとき、第1バンク第1メモリ311及び第1バンク第2メモリ312の双方に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Upのみが1であり且つ第1バンク31が選択されているとき、第1バンク第1メモリ311に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Lwのみが1であり且つ第1バンク31が選択されているとき、第1バンク第2メモリ312に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Up/Lwに基づいて、第2バンク第1メモリ321及び第2バンク第2メモリ322の一方のメモリの双方又は何れか一方に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Up/Lwの双方が1であり且つ第2バンク32が選択されているとき、第2バンク第1メモリ321及び第2バンク第2メモリ322の双方に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Upのみが1であり且つ第2バンク32が選択されているとき、第2バンク第1メモリ321に記憶されるデータを読み出す。出力選択回路40は、読み出しイネーブル信号Data_Read_Enable_Lwのみが1であり且つ第2バンク32がに配置されるメモリが書き込みイネーブルのとき、第2バンク第2メモリ322に記憶されるデータを読み出す。
図4は、出力データクロック乗換回路50の内部回路ブロック図である。
出力データクロック乗換回路50は、第1ラッチ回路51と、第2ラッチ回路52と第3ラッチ回路53と、分周回路54と、出力データ選択回路55とを有する。第1〜第3ラッチ回路51〜53はそれぞれ8byteのデータバス幅を有するデータをラッチし、入力されるクロック信号に応じてラッチしたデータを出力する。分周回路54は、入力データのクロック周期に応じた入力側クロック信号が入力され、入力されたクロック信号の周期の2倍の周期を有するクロック信号を出力側クロック信号として出力する。
第1ラッチ回路51は、出力選択回路40から出力される上位データUp_R_Dataを入力側クロック信号の2倍の周期を有する出力側クロック信号に応じてラッチして、出力データ選択回路55の第1データ入力端子Din0に出力する。第2ラッチ回路52は、出力選択回路40から出力される下位データLw_R_Dataを入力側クロック信号の2倍の周期を有する出力側クロック信号に応じてラッチして、第3ラッチ回路53に出力する。第3ラッチ回路53は、第2ラッチ回路52から下位データLw_R_Data出力されるデータを入力側クロック信号に応じてラッチして、出力データ選択回路55の第2データ入力端子Din1に出力する。
出力データ選択回路55は、選択信号端子SELに入力される入力側クロック信号に応じて第1データ入力端子及Din0及び第2データ入力端子及Din1に入力されるデータを入力側クロック信号1サイクルごとに交互に出力する。出力データ選択回路55は、第1バンク第1メモリ311、第1バンク第2メモリ312、第2バンク第1メモリ321及び第2バンク第2メモリ322に記憶されるデータを、基準周期の半分の周期で順次出力する。
出力データクロック乗換回路50は、第1バンク第1メモリ311、第1バンク第2メモリ312、第2バンク第1メモリ321及び第2バンク第2メモリ322に記憶された2倍長データを基準周期で読み出し、上位データ及び下位データに分けてデータ周期で出力する。
図5は、制御回路60の内部回路ブロック図である。
制御回路60は、書き込みバンク切替スイッチ61と、書き込み制御回路62と、読み出し制御回路63と、データ長保持FIFOキュー64と、書き込みポインタ65と、読み出しポインタ66とを有する。制御回路60は、第1バンクアドレス選択回路67と、第2バンクアドレス選択回路68とを更に有する。
書き込みバンク切替スイッチ61は、トグル動作して、基準周期1サイクルごとに0と1とを順次出力する。書き込みバンク切替スイッチ61が0を出力するサイクルでは、第1バンク31が書き込みバンクとして選択され、書き込みバンク切替スイッチ61が1を出力するサイクルでは、第2バンク32が書き込みバンクとして選択される。
書き込み制御回路62は、入力データクロック乗換回路10からのデータと、書き込みバンク切替スイッチ61からの信号が入力される。書き込み制御回路62は、入力データクロック乗換回路10からのデータに基づいて、入力されるデータ群のデータ長を決定して、データ長に対応するデータ長情報をデータ長保持FIFOキュー64に出力する。例えば、入力されるデータ群がIPパケットである場合には、書き込み制御回路62は、IPヘッダを読み込んで、データ長を決定する。
バッファ30にデータ群を書き込む間、書き込み制御回路62は、第2バンク第2メモリにデータが書き込まれたか否かを判定する。第2バンク第2メモリにデータが書き込まれたと判定したときに、書き込み制御回路62は、書き込みポインタ65にインクリメント信号を出力する。
書き込み制御回路62は、データ群の先頭のデータが書き込まれたバンク及びメモリ、並びに決定したデータ群のデータ長に基づいて、データ群の末尾のデータが書き込まれるバンク及びメモリを決定する。次いで、書き込み制御回路62は、次に到達するデータ群の先頭のデータを書き込むバンク及びメモリを決定する。
データ群の末尾のデータが第1バンク第1メモリ311に書き込まれると決定されるとき、次のデータ群の先頭のデータは第1バンク第2メモリ312に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクを示し、先頭データ書き込みメモリ信号Begin_W_Positionは第2メモリを示す。データ群の末尾のデータが第1バンク第2メモリ312に書き込まれると決定されるとき、次のデータ群の先頭のデータは第2バンク第1メモリ321に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Begin_W_Bankは第2バンクを示し、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリを示す。
データ群の末尾のデータが第2バンク第1メモリ321に書き込まれると決定されるとき、次のデータ群の先頭のデータは第2バンク第2メモリ322に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Begin_W_Bankは第2バンクを示し、先頭データ書き込みメモリ信号Begin_W_Positionは第2メモリを示す。データ群の末尾のデータが第2バンク第2メモリ322に書き込まれると決定されるとき、次のデータ群の先頭のデータは第1バンク第1メモリ311に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクを示し、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリを示す。
書き込み制御回路62は、次に到達するデータ群の先頭のデータを書き込むバンクが第1バンク又は第2バンクの何れかであるかを示す先頭データ書き込みバンク信号Begin_W_Bankを記憶する。また、書き込み制御回路62は、次に到達するデータ群の先頭のデータを書き込むメモリが第1メモリ又は第2メモリの何れかであるかを示す先頭データ書き込みメモリ信号Begin_W_Positionを記憶する。
書き込み制御回路62は、次に到達するデータ群の先頭のデータが入力されると、書き込みバンク切替スイッチ61の出力信号と、先頭データ書き込みバンク信号Begin_W_Bankとを比較する。書き込みバンク切替スイッチ61の出力信号選択するバンクと、先頭データ書き込みバンク信号Begin_W_Bankが示すバンクとが一致するとき、書き込み制御回路62は、バンク一致信号を生成し記憶する。書き込みバンク切替スイッチ61の出力信号選択するバンクと、先頭データ書き込みバンク信号Begin_W_Bankが示すバンクとが一致しないとき、書き込み制御回路62は、バンク不一致信号を生成し記憶する。
次いで、書き込み制御回路62は、入力データクロック乗換回路10が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Begin_W_Positionとを比較する。書き込み制御回路62は、入力データクロック乗換回路10が割り当てた先頭のデータ位置が上位データであり、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリが第1メモリであるとき、両者は一致していると判定する。また、書き込み制御回路62は、入力データクロック乗換回路10が割り当てた先頭のデータ位置が下位データであり、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリが第2メモリであるとき、両者は一致していると判定する。一方、書き込み制御回路62は、入力データクロック乗換回路10が割り当てた先頭のデータ位置が上位データであり、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリが第2メモリであるとき、両者は一致していないと判定する。また、書き込み制御回路62は、入力データクロック乗換回路10が割り当てた先頭のデータ位置が下位データであり、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリが第1メモリであるとき、両者は一致していないと判定する。
入力データクロック乗換回路10が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリとが一致するとき、書き込み制御回路62は、メモリ一致信号を生成し記憶する。入力データクロック乗換回路10が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Begin_W_Positionが示すメモリとが一致しないとき、書き込み制御回路62は、メモリ不一致信号を生成し記憶する。
書き込み制御回路62は、タイミング調整回路20にタイミング選択信号を出力して、入力データクロック乗換回路10から出力されるデータに適当な遅延時間を付加する。書き込み制御回路62が入力データクロック乗換回路10から出力されるデータに適当な遅延時間を付加することによって、データ群の先頭のデータを書き込み可能なバンク及びメモリと一致するまで、入力されたデータ群は待機する。
書き込み制御回路62は、データ群のデータ長と書き込まれるデータ群の先頭のデータのデータ位置とから、入力されたデータ群を書き込む期間である書き込み期間を演算する。書き込まれるデータ群の先頭のデータが上位データUp_W_Dataに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間は、データ長の半分に相当するサイクル数になる。また、書き込まれるデータ群の先頭のデータが下位データLw_W_Dataに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間はデータ長の半分に1を加算した値に相当するサイクル数になる。また、データ群のデータ長が奇数である場合、データ群の先頭のデータが上位データUp_W_Data又は下位データLw_W_Dataに割り当てられるかにかかわらず、書き込み期間はデータ長の半分に1を加算した値に相当するサイクル数になる。例えば、書き込まれるデータ群の先頭のデータが上位データUp_W_Dataに割り当てられ、データ長が8である場合、書き込み期間は基準周期4サイクルに相当する期間となる。書き込まれるデータ群の先頭のデータが下位データLw_W_Dataに割り当てられ、データ長が8である場合、書き込み期間は基準周期5サイクルに相当する期間となる。データ長が11である場合、書き込み期間は基準周期6サイクルに相当する期間となる。
書き込み制御回路62がバンク一致信号及びメモリ一致信号を記憶しているとき、書き込み制御回路62は、タイミング調整回路20が第1入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力する。また、書き込み制御回路62は、演算した書き込み期間に相当する期間に亘って、データ継続信号Data_Write_Enable_Up/Lwを出力する。
書き込み制御回路62がバンク一致信号及びメモリ不一致信号を記憶しているとき、書き込み制御回路62は、タイミング調整回路20が第2入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力する。また、書き込み制御回路62は、演算した書き込み期間に相当する期間に亘って、データ継続信号Data_Write_Enable_Up/Lwを出力する。
書き込み制御回路62がバンク不一致信号及びメモリ一致信号を記憶しているとき、書き込み制御回路62は、基準周期1サイクルに相当する時間待機する。次いで、書き込み制御回路62は、タイミング調整回路20が第3入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力すると共に、データ継続信号Data_Write_Enable_Up/Lwを出力する。
書き込み制御回路62がバンク不一致信号及びメモリ不一致信号を記憶しているとき、書き込み制御回路62は、基準周期1サイクルに相当する時間待機する。次いで、書き込み制御回路62は、タイミング調整回路20が第4入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力すると共に、データ継続信号Data_Write_Enable_Up/Lwを出力する。
読み出し制御回路63は、データ長保持FIFOキュー64からデータ有信号が入力され且つ読み出しOK信号OKが読み出しイネーブル状態になったときに、読み出し制御を開始する。読み出しイネーブル信号REは、出力先がビジーのときにディセーブル状態を示す1が入力され、出力先がビジーでないときにイネーブル状態を示す0が入力される。
読み出し制御回路63は、直前に記憶されたデータ群の末尾のデータが記憶されるバンク及びメモリに基づいて、読み出すデータ群の先頭のデータのバンク、メモリ及びアドレスを決定する。直前に記憶されたデータ群の末尾のデータが第1バンク第1メモリ311に記憶されていた場合、読み出すデータ群の先頭のデータは、第1バンク第2メモリ312の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第1バンク第2メモリ312に記憶されていた場合、読み出すデータ群の先頭のデータは、第2バンク第1メモリ321の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第2バンク第1メモリ321に記憶されていた場合、読み出すデータ群の先頭のデータは、第2バンク第2メモリ322の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第2バンク第2メモリ322に記憶されていた場合、読み出すデータ群の先頭のデータは、第1バンク第1メモリ311の次のアドレスに記憶されていると決定される。
次いで、読み出し制御回路63は、書き込みバンク切替スイッチ61の出力信号に基づいて、読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されているか否かを判定する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていると判定された場合、読み出し制御回路63は、基準周期1サイクルの間、待機した後に、読み出しを開始する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていないと判定された場合、読み出し制御回路63は、読み出しを開始する。読み出しイネーブル信号Data_Read_Enable_Up/Lwが1であり且つ第2バンク32が書き込みバンクとして選択されているとき、第1読み出しイネーブル端子RE1から出力される信号が1になる。すなわち、読み出しイネーブル信号Data_Read_Enable_Upが1であり且つ第2バンク32が書き込みバンクとして選択されているとき、第1読み出しイネーブル端子RE1(Up)から出力される信号が1になる。また、読み出しイネーブル信号Data_Read_Enable_Lwが1であり且つ第2バンク32が書き込みバンクとして選択されているとき、第1読み出しイネーブル端子RE1(Lw)から出力される信号が1になる。読み出しイネーブル信号Data_Read_Enable_Up/Lwが1であり且つ第1バンク31が書き込みバンクとして選択されているとき、第2読み出しイネーブル端子RE2から出力される信号が1になる。すなわち、読み出しイネーブル信号Data_Read_Enable_Upが1であり且つ第1バンク31が書き込みバンクとして選択されているとき、第2読み出しイネーブル端子RE2(Up)から出力される信号が1になる。また、読み出しイネーブル信号Data_Read_Enable_Lwが1であり且つ第1バンク31が書き込みバンクとして選択されているとき、第2読み出しイネーブル端子RE2(Lw)から出力される信号が1になる。
バッファ30に記憶されるデータ群を読み出す間、読み出し制御回路63は、第2バンク第2メモリ322にデータが読み出されたか否かを判定する。第2バンク第2メモリ322にデータが読み出されたと判定したときに、書き込み制御回路62は、読み出しポインタ66にインクリメント信号を出力する。
読み出し制御回路63は、データ長保持FIFOキュー64に記憶されるデータ群のデータ長情報に基づいて、バッファ30に記憶されたデータ群を読み出す期間である読み出し期間を演算する。読み出し制御回路63は、読み出し期間が終了すると、読み出しを終了する。読み出し制御回路63は、読み出しが終了したとき、末尾のデータが記憶されていたバンク及びメモリを記憶する。
データ長保持FIFOキュー64は、書き込み制御回路62が決定したデータ群のデータ長を示すデータ長情報を順次記憶する。書き込みポインタ65は、書き込み制御回路62からインクリメント信号が入力されたときに、書き込みアドレスをインクリメントする。読み出しポインタ66は、読み出し制御回路63からインクリメント信号が入力されたときに、読み出しアドレスをインクリメントする。書き込みポインタ65及び読み出しポインタ66は書き込みアドレス及び読み出しアドレスが最大アドレスに達した後に、先頭のアドレスにラップアラウンドする。
第1バンクアドレス選択回路67は、書き込みバンク切替スイッチ61から出力される信号に基づいて、書き込みポインタ65から出力される書き込みアドレス、及び読み出しポインタ66から出力される読み出しアドレスの何れか一方を選択する。第1バンクアドレス選択回路67は、書き込みバンク切替スイッチ61が0を出力して、第1バンク31を書き込みバンクとして選択するとき、書き込みポインタ65から出力される書き込みアドレスを出力する。第1バンクアドレス選択回路67は、書き込みバンク切替スイッチ61が1を出力して、第2バンク32を書き込みバンクとして選択するとき、読み出しポインタ66から出力される読み出しアドレスを出力する。
第2バンクアドレス選択回路68は、書き込みバンク切替スイッチ61から出力される信号に基づいて、書き込みポインタ65から出力される書き込みアドレス、及び読み出しポインタ66から出力される読み出しアドレスの何れか一方を選択する。第2バンクアドレス選択回路68は、書き込みバンク切替スイッチ61が0を出力して、第1バンク31を書き込みバンクとして選択するとき、読み出しポインタ66から出力される読み出しアドレスを出力する。第2バンクアドレス選択回路68は、書き込みバンク切替スイッチ61が1を出力して、第2バンク32を書き込みバンクとして選択するとき、書き込みポインタ65から出力される書き込みアドレスを出力する。
制御回路60は、入力データクロック乗換回路10に入力されるデータ群を第1バンク31及び第2バンク32に順次記憶し、記憶したデータ群を順に読み出して出力データクロック乗換回路50から出力するように制御する。制御回路60は、第1バンク31及び第2バンク32において直前に記憶されたデータ群の末尾データの記憶位置に続けて順にデータ群を書き込む。
図6は、データ転送装置1のタイムチャートを示す図である。図6において、1サイクルは基準周期に対応し、「Up/Lw_Data」は入力データクロック乗換回路10から出力されるデータを示す。「0.5τWait」は第1遅延回路21から出力される第1遅延データを示し、「0.5τWait_Sel」の直線は第1遅延回路21から出力される第1遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「1τWait」は第2遅延回路22から出力される第2遅延データを示し、「1τWait_Sel」の直線は第2遅延回路22から出力される第2遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「1.5τWait」は第3遅延回路23から出力される第3遅延データを示し、「1.5τWait_Sel」の直線は第3遅延回路23から出力される第3遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「W_Bank」は書き込みバンク切替スイッチ61から出力されるデータを示し、「Wp」は書き込みポインタ65から出力される書き込みアドレスデータを示す。「Up/Lw_W_Data」はバッファ30に書き込まれるデータを示し、「Begin_W_Bank」は書き込み制御回路62から出力される先頭データ書き込みバンク信号を示す。「Begin_W_Position」は書き込み制御回路62から出力される先頭データ書き込みメモリ信号を示す。
図7(a)〜7(d)はそれぞれ、図6に示すデータが書き込まれるバルク及びメモリを示す図である。図7(a)〜7(d)において、「Bank1」の「Up」及び「Lw」はそれぞれ、第1バンク第1メモリ311及び第1バンク第2メモリ312を示す。「Bank2」の「Up」及び「Lw」はそれぞれ、第2バンク第1メモリ321及び第2バンク第2メモリ322を示す。
図6に示すタイムチャートでは、データ転送装置1は、第1データ群A1〜A5と、第2データ群B1〜B7と、第3データ群C1〜C4と、第4データ群D1〜D3が入力される。
サイクル1において、第1データ群A1〜A5の先頭のデータA1及び第2のデータA2が入力データクロック乗換回路10から出力される。第1データ群A1〜A5の先頭のデータA1が入力されると、書き込み制御回路62は、先頭のデータA1に記憶される情報に基づいて、第1データ群A1〜A5のデータ長を5と決定する。
サイクル1では、データ転送装置はデータを全く記憶していない。このため、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクを示す0であり、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリを示す0である。サイクル1では、「W_Bank」は0であり、先頭データ書き込みバンク信号Begin_W_Bankと一致するので、書き込み制御回路62はバンク一致信号を生成し記憶する。また、先頭のデータA1のメモリ位置は第1メモリであり、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリを示すので、書き込み制御回路62はメモリ一致信号を生成し記憶する。書き込み制御回路62はバンク一致信号及びメモリ一致信号を記憶するので、タイミング調整回路20が第1入力端子Din0に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路20が第1入力端子Din0に入力されるデータを出力するようにタイミング選択信号を出力するので、入力データクロック乗換回路10から出力されるデータが書き込まれる。書き込み制御回路62は、書き込み期間を3サイクルと演算する。
図7(a)に示すように、第1データ群A1〜A5の先頭のデータA1は第1バンク31の第1バンク第1メモリ311のアドレス0に書き込まれ、第2のデータA2は第1バンク31の第1バンク第2メモリ312のアドレス0に書き込まれる。第1データ群A1〜A5の第3のデータA3は第2バンク32の第2バンク第1メモリ321のアドレス0に書き込まれ、第4のデータA4は第2バンク32の第2バンク第2メモリ322のアドレス0に書き込まれる。第1データ群A1〜A5の末尾のデータA5は第1バンク31の第1バンク第1メモリ311のアドレス1に書き込まれる。
サイクル5において、第2データ群B1〜B7の先頭のデータB1及び第2のデータB2が入力データクロック乗換回路10から出力される。第2データ群B1〜B7の先頭のデータB1が入力されると、書き込み制御回路62は、先頭のデータB1に記憶される情報に基づいて、第2データ群B1〜B7のデータ長を7と決定する。
第1データ群A1〜A5の末尾のデータA5は第1バンク31の第1バンク第1メモリ311のアドレス1に記憶されるので、第2データ群B1〜B7の先頭のデータは、第1バンク31の第1バンク第2メモリ312のアドレス1に書き込まれることになる。したがって、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクに対応する0を示し、先頭データ書き込みメモリ信号Begin_W_Positionは第2メモリに対応する1を示す。サイクル5では「W_Bank」は0であり、先頭データ書き込みバンク信号Begin_W_Bankと一致するので、書き込み制御回路62はバンク一致信号を生成し記憶する。先頭のデータB1のメモリ位置は第1メモリであるが、先頭データ書き込みメモリ信号Begin_W_Positionは第2メモリを示すので、書き込み制御回路62はメモリ不一致信号を生成し記憶する。書き込み制御回路62はバンク一致信号及びメモリ不一致信号を記憶するので、タイミング調整回路20が第2入力端子Din1に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路20が第2入力端子Din1に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ30には「0.5τWait」で示される第1遅延データが書き込まれる。書き込み制御回路62は、書き込み期間を4サイクルと演算する。
図7(b)に示すように、第2データ群B1〜B7の先頭のデータB1は第1バンク31の第1バンク第2メモリ312のアドレス1に書き込まれ、第2のデータB2は第2バンク32の第2バンク第1メモリ321のアドレス1に書き込まれる。第2データ群B1〜B7の末尾のデータB7は第2バンク32の第2バンク第2メモリ322のアドレス2に書き込まれる。
サイクル12において、第3データ群C1〜C4の先頭のデータC1及び第2のデータC2がデータ転送装置1から出力される。第3データ群C1〜C4の先頭のデータC1が入力されると、書き込み制御回路62は、先頭のデータC1に記憶される情報に基づいて、第3データ群C1〜C4のデータ長を4と決定する。
第2データ群B1〜B7の末尾のデータB7は第2バンク32の第2バンク第2メモリ322のアドレス2に記憶されるので、第3データ群C1〜C4の先頭のデータは、第1バンク31の第1バンク第1メモリ311のアドレス3に記憶されることになる。したがって、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクに対応する0を示し、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリに対応する0を示す。サイクル12では「W_Bank」は1であり、先頭データ書き込みバンク信号Begin_W_Bankと一致しないので、書き込み制御回路62はバンク不一致信号を生成し記憶する。先頭のデータC1のメモリ位置は第1メモリであり、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリであるので、書き込み制御回路62はメモリ一致信号を生成し記憶する。書き込み制御回路62はバンク不一致信号及びメモリ一致信号を記憶するので、タイミング調整回路20が第3入力端子Din2に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路20が第3入力端子Din2に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ30には「1τWait」で示される第2遅延データが書き込まれる。書き込み制御回路62は、書き込み期間を2サイクルと演算する。
図7(c)に示すように、第3データ群C1〜C4の先頭のデータC1は第1バンク31の第1バンク第1メモリ311のアドレス3に書き込まれ、第2のデータC2は第1バンク31の第1バンク第2メモリ312のアドレス3に書き込まれる。第3データ群C1〜C4の末尾のデータC4は第2バンク32の第2バンク第2メモリ322のアドレス3に書き込まれる。
サイクル17において、第4データ群D1〜D3の先頭のデータD1がデータ転送装置1から出力される。第4データ群D1〜D3の先頭のデータD1が入力されると、書き込み制御回路62は、先頭のデータD1に記憶される情報に基づいて、第4データ群D1〜D3のデータ長を3と決定する。
第3データ群C1〜C4の末尾のデータC4は第2バンク32の第2バンク第2メモリ322のアドレス3に記憶されるので、第4データ群D1〜D3の先頭のデータは、第1バンク31の第1バンク第1メモリ311のアドレス4に書き込まれることになる。したがって、先頭データ書き込みバンク信号Begin_W_Bankは第1バンクに対応する0を示し、先頭データ書き込みメモリ信号Begin_W_Positionは第2メモリに対応する1を示す。サイクル17では「W_Bank」は1であり、先頭データ書き込みバンク信号Begin_W_Bankと一致しないので、書き込み制御回路62はバンク不一致信号を生成し記憶する。先頭のデータC1のメモリ位置は第2メモリであり、先頭データ書き込みメモリ信号Begin_W_Positionは第1メモリを示す0なので、書き込み制御回路62はメモリ不一致信号を生成し記憶する。書き込み制御回路62はバンク不一致信号及びメモリ一致信号を記憶するので、タイミング調整回路20が第4入力端子Din3に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路20が第4入力端子Din3に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ30には「1.5τWait」で示される第3遅延データが書き込まれる。書き込み制御回路62は、書き込み期間を2サイクルと演算する。
図7(d)に示すように、第4データ群D1〜D3の先頭のデータD1は第1バンク31の第1バンク第1メモリ311のアドレス4に書き込まれ、第2のデータD2は第1バンク31の第1バンク第2メモリ312のアドレス4に書き込まれる。第4データ群D1〜D3の末尾のデータD3は第2バンク32の第2バンク第1メモリ321のアドレス4に書き込まれる。
データ転送装置1では、第1バンク第1メモリ311、第1バンク第2メモリ312、第2バンク第1メモリ321及び第2バンク第2メモリ322の順にアドレスごとに、入力されるデータを順次バッファ内部のメモリに記憶していく。データ転送装置1は、4つのメモリの全てのメモリにデータを記憶した後に次のアドレスに移るため、メモリ領域を有効に活用できる。
データ転送装置1では、書き込み制御回路62が、入力データクロック乗換回路10から出力されるデータと、バッファ30に次に書き込まれるバッファ及びメモリとを比較して、タイミング調整回路20を介してデータを適宜遅延させる。このため、データ転送装置1では、入力データクロック乗換回路10から出力されるデータが遅延されることがあるため、レイテンシ性能が低下するという問題がある。
次いで、データ転送装置1におけるレイテンシ性能の低下という問題が生じないデータ転送装置について説明する。
図8は、データ転送装置の他の例の回路ブロック図である。
データ転送装置2は、入力データクロック乗換回路10がタイミング調整回路20を介さずにバッファ30に接続されることが、データ転送装置1と相違する。また、データ転送装置2は、制御回路60の代わりに制御回路70が配置されることが、データ転送装置1と相違する。
図9は、制御回路70の内部回路ブロック図である。
制御回路70は、書き込みバンク切替スイッチ71と、書き込み制御回路72と、読み出し制御回路73と、データ情報FIFOキュー群74と、書き込みポインタ75と、読み出しポインタ76とを有する。制御回路70は、第1バンクアドレス選択回路77と、第2バンクアドレス選択回路78とを更に有する。
書き込みバンク切替スイッチ71、第1バンクアドレス選択回路77及び第2バンクアドレス選択回路78はそれぞれ、書き込みバンク切替スイッチ61、第1バンクアドレス選択回路67及び第2バンクアドレス選択回路68と同一の構成及び機能を有する。
書き込み制御回路72は、入力データクロック乗換回路10からのデータが入力される。書き込み制御回路72は、決定したデータ群のデータ長から、入力されたデータ群を書き込む期間である書き込み期間を演算する。入力されるデータ群の先頭のデータが上位データUp_W_Dataに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間は、データ長の半分に相当するサイクル数になる。また、入力されるデータ群の先頭のデータが下位データLw_W_Dataに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間はデータ長の半分に1を加算した値に相当するサイクル数になる。また、データ群のデータ長が奇数である場合、データ群の先頭のデータが上位データUp_W_Data又は下位データLw_W_Dataに割り当てられるかにかかわらず、書き込み期間はデータ長の半分に1を加算した値に相当するサイクル数になる。書き込み制御回路72は、演算した書き込み期間に相当する期間に亘って、データ継続信号Data_Write_Enableを出力する。
バッファ30にデータ群を書き込む間、書き込み制御回路72は、第1バンク第2メモリ312又は第2バンク第2メモリ322にデータが書き込まれたか否かを判定する。データ群の先頭のデータが第1バンク31に書き込まれたときに第2バンク第2メモリ322にデータが書き込まれたと判定したときに、書き込み制御回路72は、書き込みポインタ75にインクリメント信号を出力する。また、データ群の先頭のデータが第1バンク32に書き込まれたときに第1バンク第2メモリ312にデータが書き込まれたと判定したときに、書き込み制御回路72は、書き込みポインタ75にインクリメント信号を出力する。
書き込み制御回路72は、入力データクロック乗換回路10からデータが入力されると、書き込み開始信号Queue_Writeを基準周期1サイクルに亘ってデータ情報FIFOキュー群74に出力する。
書き込み制御回路72は、データ群の末尾のデータを書き込むときに、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれるか否かを判定する。書き込み制御回路72は、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれていないと判定したときに、書き込みポインタ75にインクリメント信号を出力する。
書き込み制御回路72は、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれていると判定したときに、データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるか否かを判定する。書き込み制御回路72は、データ群の末尾のデータに連続して次のデータ群の先頭のデータがないと判定したときに、書き込みポインタ75にインクリメント信号を出力する。
書き込み制御回路72は、データ群の末尾のデータに連続して次のデータ群の先頭のデータがあると判定したときに、書き込みポインタ75に第2メモリインクリメント選択信号Lw_WP+1_selを出力する。同時に、書き込み制御回路72は、書き込みポインタ75にインクリメント信号を出力する。
読み出し制御回路73は、データ情報FIFOキュー群74からデータ有信号が入力され且つ読み出しOK信号OKがイネーブル状態になったときに、読み出し制御を開始する。まず、読み出し制御回路73は、読み出しキュー信号Read_Queueをデータ情報FIFOキュー群74に出力する。
次いで、読み出し制御回路73は、データ長情報、バンク内開始位置情報及び開始バンク位置情報がデータ情報FIFOキュー群74から入力される。データ長情報は読み出すデータ群のデータ長に対応し、バンク内開始位置情報は読み出すデータ群の先頭のデータが記憶されるメモリに対応し、開始バンク位置情報は読み出すデータ群の先頭のデータが記憶されるバンクに対応する。読み出し制御回路73は、データ情報FIFOキュー群74から入力されるデータ長情報に基づいて、バッファ30に記憶されたデータ群を読み出す期間である読み出し期間を演算する。
次いで、読み出し制御回路73は、読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されているか否かを判定する。このとき、読み出し制御回路73は、書き込みバンク切替スイッチ71の出力信号、及びデータ情報FIFOキュー群74から入力される開始バンク位置情報に基づいて判定する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていると判定された場合、読み出し制御回路73は、基準周期1サイクルの間待機した後に、読み出しを開始する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていないと判定された場合、読み出し制御回路73は読み出しを開始する。読み出しイネーブル信号Data_Read_Enableが1であり且つ第2バンク32が書き込みバンクとして選択されているとき、第1読み出しイネーブル端子RE1から出力される信号が1になる。読み出しイネーブル信号Data_Read_Enableが1であり且つ第1バンク31が書き込みバンクとして選択されているとき、第2読み出しイネーブル端子RE2から出力される信号が1になる。
バッファ30に記憶されるデータ群を読み出す間、読み出し制御回路73は、第1バンク第2メモリ312又は第2バンク第2メモリ322に記憶されたデータが読み出されたか否かを判定する。データ群の先頭のデータが第1バンク31から読み出したときに第2バンク第2メモリ322に記憶されたデータが読み出されたと判定したときに、読み出し制御回路73は、読み出しポインタにインクリメント信号を出力する。また、データ群の先頭のデータが第2バンク32から読み出したときに第1バンク第2メモリ312に記憶されたデータが読み出されたと判定したときに、読み出し制御回路73は、読み出しポインタにインクリメント信号を出力する。
読み出し制御回路73は、データ群の末尾のデータを読み出すときに、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれているか否かを判定する。読み出し制御回路73は、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれていないと判定したときに、読み出しポインタ76にインクリメント信号を出力する。
読み出し制御回路73は、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれていると判定したときに、次のデータ群の先頭のデータが記憶されるメモリを判定する。ここで、読み出し制御回路73は、次のデータ群の先頭のデータが先のデータ群の末尾のデータが記憶されていたバンクの第2メモリに記憶されている否かを判定する。すなわち、読み出し制御回路73は、データ群の末尾のデータが第1バンク第1メモリ311に書き込まれていると判定したときに、次のデータ群の先頭のデータが第1バンク第2メモリ312に記憶されている否かを判定する。また、読み出し制御回路73は、データ群の末尾のデータが第2バンク第1メモリ321に書き込まれていると判定したときに、次のデータ群の先頭のデータが第2バンク第2メモリ322に記憶されている否かを判定する。読み出し制御回路73は、次のデータ群の先頭のデータがデータ群の末尾のデータが記憶されていたバンクの第2メモリに記憶されていないと判定したときに、読み出しポインタ76にインクリメント信号を出力する。
読み出し制御回路73は、次のデータ群の先頭のデータがデータ群の末尾のデータが記憶されていたバンクの第2メモリに記憶されていると判定したときに、読み出しポインタ76に第2メモリインクリメント選択信号Lw_RP+1_selを出力する。同時に、読み出し制御回路73は、読み出しポインタ76にインクリメント信号を出力する。
図10(a)は、データ情報FIFOキュー群74の内部回路ブロック図であり、図10(b)はデータ情報FIFOキュー群74に記憶されるデータの一例を示す図である。
データ情報FIFOキュー群74は、データ長保持レジスタアレイ741と、バンク内データ書き込み開始位置保持アレイ742と、データ書き込み開始バンク保持アレイ743とを有する。データ情報FIFOキュー群74は、キュー書き込み制御部744と、キュー書き込みポインタ745と、キュー読み出し制御部746と、キュー読み出しポインタ747と、データ群有無検出部748とを更に有する。
データ長保持レジスタアレイ741は、データ転送装置2に入力されるデータ群それぞれのデータ長に対応するデータ長情報を記憶する。バンク内データ書き込み開始位置保持アレイ742は、データ転送装置2に入力されるデータ群それぞれの先頭のデータが書き込まれるメモリに対応するバンク内書き込み開始位置情報を記憶する。データ書き込み開始バンク保持アレイ743は、データ転送装置2に入力されるデータ群それぞれの先頭のデータが書き込まれるバンクに対応する開始バンク位置情報を記憶する。
キュー書き込み制御部744は、データ長保持レジスタアレイ741、バンク内データ書き込み開始位置保持アレイ742及びデータ書き込み開始バンク保持アレイ743への情報の書き込みを制御する。キュー書き込み制御部744は、キュー書き込み信号Queue_Writeがデータ書き込み制御回路72から入力されると、各アレイでの書き込みを開始する。
キュー書き込み制御部744は、入力データクロック乗換回路10からのデータに基づいて、入力されるデータ群のデータ長を決定して、データ長に対応するデータ長情報をデータ長保持レジスタアレイ741に出力する。
キュー書き込み制御部744は、入力データクロック乗換回路10からのデータに基づいて、データ群の先頭のデータが上位データUp_W_Data又は下位データLw_W_Dataの何れのデータとして入力されているかを判定する。次いで、キュー書き込み制御部744は、判定結果に基づいて、データ群の先頭のデータが書き込まれるメモリに対応するバンク内開始位置情報をバンク内データ書き込み開始位置保持アレイ742に出力する。
キュー書き込み制御部744は、書き込みバンク切替スイッチ61からの信号に基づいて、データ群の先頭のデータが第1バンク31又は第2バンク32の何れのバンクに記憶されるかを判定する。キュー書き込み制御部744は、判定結果に基づいて、データ群の先頭のデータが書き込まれるバンクに対応する開始バンク位置情報をデータ書き込み開始バンク保持アレイ743に出力する。
キュー書き込み制御部744は、各アレイへの書き込み処理を終了すると、インクリメント信号をキュー書き込みポインタ745に出力する。
キュー書き込みポインタ745は、キュー書き込み制御部744から入力されるインクリメント信号に基づいて、各アレイのキュー書き込みアドレスをインクリメントする。なお、各アレイのアドレス数は、データ転送装置2が記憶可能なデータ群の数に対応する。
キュー読み出し制御部746は、データ長保持レジスタアレイ741、バンク内データ書き込み開始位置保持アレイ742及びデータ書き込み開始バンク保持アレイ743への情報からの読み出しを制御する。キュー読み出し制御部746は、キュー読み出し信号Queue_Readがデータ読み出し制御回路73から入力されると、所定のアドレスに記憶されるデータ長情報、バンク内開始位置情報及び開始バンク位置情報を読み出し制御回路73に出力する。
データ長情報、バンク内開始位置情報及び開始バンク位置情報を読み出し制御回路73に出力すると、キュー読み出し制御部746は、インクリメント信号をキュー読み出しポインタ747に出力する。キュー読み出しポインタ747は、キュー読み出し制御部746から入力されるインクリメント信号に基づいて、各アレイのキュー読み出しアドレスをインクリメントする。
データ群有無検出部748は、キュー書き込み制御部744から入力されるキュー書き込みアドレスと、キュー読み出し制御部746から入力されるキュー読み出しアドレスとに基づいて、読み出すデータ群があるか否かを判定する。キュー書き込みアドレスとキュー読み出しアドレスとが一致する場合、データ群有無検出部748は、読み出すデータ群がないと判定する。一方、キュー書き込みアドレスとキュー読み出しアドレスとが一致しない場合、データ群有無検出部748は、読み出すデータ群があると判定して、データ有信号を読み出し制御回路73に出力する。
図11は、書き込みポインタ75の内部回路ブロック図である。
書き込みポインタ75は、第1インクリメント部751と、第1選択部752と、ラッチ部753と、第2インクリメント部754と、第2選択部755とを有する。
第1インクリメント部751は、書き込みアドレスをインクリメントしたアドレスを第1選択部752に出力する。第1選択部752は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、インクリメント信号に基づいて選択する。インクリメント信号が入力されないとき、第1選択部752は、インクリメントされていないアドレスを選択して、ラッチ部753に出力する。インクリメント信号を入力されるとき、第1選択部752は、第1インクリメント部751でインクリメントされたアドレスを選択して、ラッチ部753に出力する。ラッチ部753が入力されたアドレスを基準周期1サイクルごとに書き込みアドレスとして出力する。ラッチ部753から出力される書き込みアドレスは、上位データ書き込みアドレス信号WP_Upとして、第1バンク第1メモリ311及び第2バンク第1メモリ321に出力される。
第2インクリメント部754は、書き込みアドレスをインクリメントしたアドレスを第2選択部755に出力する。第2選択部755は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、第2メモリインクリメント選択信号Lw_WP+1_selに基づいて選択する。第2メモリインクリメント選択信号Lw_WP+1_selが入力されないとき、第2選択部755は、インクリメントされていないアドレスを選択する。第2メモリインクリメント選択信号Lw_WP+1_selを入力されるとき、第2選択部755は、第1インクリメント部751でインクリメントされたアドレスを選択する。第2選択部755から出力される書き込みアドレスは、下位データ書き込みアドレス信号WP_Lwとして、第1バンク第2メモリ312及び第2バンク第2メモリ322に出力される。
図12は、読み出しポインタ76の内部回路ブロック図である。
読み出しポインタ76は、第1インクリメント部761と、第1選択部762と、ラッチ部763と、第2インクリメント部764と、第2選択部765とを有する。
第1インクリメント部761は、読み出しアドレスをインクリメントしたアドレスを第1選択部762に出力する。第1選択部762は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、インクリメント信号に基づいて選択する。インクリメント信号が入力されないとき、第1選択部762は、インクリメントされていないアドレスを選択して、ラッチ部763に出力する。インクリメント信号を入力されるとき、第1選択部762は、第1インクリメント部761でインクリメントされたアドレスを選択して、ラッチ部763に出力する。ラッチ部763が入力されたアドレスを基準周期1サイクルごとに読み出しアドレスとして出力する。ラッチ部763から出力される読み出しアドレスは、上位データ読み出しアドレス信号RP_Upとして、第1バンク第1メモリ311及び第2バンク第1メモリ321に出力される。
第2インクリメント部764は、読み出しアドレスをインクリメントしたアドレスを第2選択部765に出力する。第2選択部765は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、第2メモリインクリメント選択信号Lw_RP+1_selに基づいて選択する。第2メモリインクリメント選択信号Lw_RP+1_selが入力されないとき、第2選択部765は、インクリメントされていないアドレスを選択する。第2メモリインクリメント選択信号Lw_WP+1_selを入力されるとき、第2選択部765は、第2インクリメント部764でインクリメントされたアドレスを選択する。第2選択部765から出力される読み出しアドレスは、下位データ読み出しアドレス信号RP_Lwとして、第1バンク第2メモリ312及び第2バンク第2メモリ322に出力される。
制御回路70は、入力データクロック乗換回路10に入力されるデータ群を第1バンク31及び第2バンク32に順次記憶し、記憶したデータ群を順に読み出して出力データクロック乗換回路50から出力するように制御する。制御回路70は、第1バンク31及び第2バンク32において直前に記憶されたデータ群の末尾データが記憶されるアドレス位置よりも後のアドレス位置で、入力データクロック乗換回路10から出力される2倍長データを書き込む。制御回路70は、入力データクロック乗換回路10から出力される2倍長データを書き込むとき、書き込みバンク切替スイッチ71から出力される信号に基づいて、書き込み可能な第1バンク31又は第2バンク32から順にデータ群を記憶する。
図13(a)は、データ転送装置2のタイムチャートを示す図であり、図13(b)〜13(e)はそれぞれ、図13(a)に示すデータが書き込まれるバルク及びメモリを示す図である。図13(a)において、1サイクルは基準周期に対応し、「Up/Lw_Data」は入力データクロック乗換回路10から出力されるデータを示す。「W_Bank」は書き込みバンク切替スイッチ61から出力されるデータを示し、「Wp_Up/Lw」は書き込みポインタ75から出力される第1メモリと第2メモリの書き込みアドレスデータを示す。図13(b)〜13(e)において、「Bank1」の「Up」及び「Lw」はそれぞれ、第1バンク第1メモリ311及び第1バンク第2メモリ312を示す。「Bank2」の「Up」及び「Lw」はそれぞれ、第2バンク第1メモリ321及び第2バンク第2メモリ322を示す。
図13(a)に示すタイムチャートでは、データ転送装置2は、第1データ群A1〜A5と、第2データ群B1〜B7と、第3データ群C1〜C4と、第4データ群D1〜D3が入力される。
データ転送装置2では、データ群がそれぞれ書き込まれた後に、書き込みアドレスがインクリメントされるので、直前に記憶されたデータの末尾のデータが書き込まれたバンク及びメモリにかかわらず、書き込みイネーブルのバンクのメモリに書き込みできる。データ転送装置2では、書き込みイネーブルのバンクのメモリに書き込みできるので、レイテンシ性能の低下という問題が生じない。
図14(a)はデータ転送装置2に入力されるデータ群の一例を示す図である。図14(b)は図14(a)に示すデータ群が第1バンク31から記憶される例を示す図であり、図14(c)は図14(a)に示すデータ群が第2バンク32から記憶される例を示す図である。図14(d)はデータ転送装置2に入力されるデータ群の他の例を示す図である。図14(e)は図14(d)に示すデータ群が第1バンク31から記憶される例を示す図であり、図14(f)は図14(d)に示すデータ群が第2バンク32から記憶される例を示す図である。
図14(b)及び14(c)に示すように、奇数のデータを含むデータ群を記憶するとき、データ転送装置2は、バンクに含まれる一方のメモリのみにデータを記憶して、他方のメモリは空き状態になる。また、図14(b)及び14(c)に示す例では、書き込み期間のサイクル数は奇数であるので、一方のバンクのメモリのみにデータを記憶し、他方のバンクのメモリは空き状態となる。
図14(d)では、データ群の末尾のデータが第1バンク第1メモリ311又は第2バンク第1メモリ321に書き込まれ且つデータ群の末尾のデータに連続して次のデータ群の先頭のデータがある例が示される。
図14(e)に示す例では、第1データ群A1〜A5の末尾のデータA5は、第1バンク第1メモリ311のアドレス1に書き込まれ、第2データ群B1〜B9の先頭のデータB1は、第1バンク第2メモリ312のアドレス2に書き込まれる。すなわち、第2データ群B1〜B9の先頭のデータB1が書き込まれるアドレスは、第1データ群A1〜A5の末尾のデータA5が書き込まれたアドレス1の次のアドレスであるアドレス2である。
図14(f)に示す例では、第1データ群A1〜A5の末尾のデータA5は、第2バンク第1メモリ321のアドレス1に書き込まれ、第2データ群B1〜B9の先頭のデータB1は、第2バンク第2メモリ322のアドレス2に書き込まれる。すなわち、第2データ群B1〜B9の先頭のデータB1が書き込まれるアドレスは、第1データ群A1〜A5の末尾のデータA5が書き込まれたアドレス1の次のアドレスであるアドレス2である。
図15A及び15Bは、第1データA1〜A9の末尾のデータA9と第2データB1〜B5の先頭のデータとが連続していない場合のタイムチャートを示す図である。図16A及び16Bは、第1データA1〜A9の末尾のデータA9と第2データB1〜B5の先頭のデータとが連続している場合のタイムチャートを示す図である。
図15A及び15Bに示すタイムチャートでは、第1データA1〜A9の末尾のデータA9が第1バンク第1メモリ311に記憶されるものの、第1データA1〜A9の末尾のデータA9と第2データB1〜B5の先頭のデータB1とが連続していない。この場合、書き込み制御回路72は、書き込みポインタ75に第2メモリインクリメント選択信号Lw_WP+1_selを出力しないので、第2データB1〜B5の先頭のデータB1は第2バンク第2メモリ322に書き込まれる。
一方、図16A及び16Bに示すタイムチャートでは、第1データA1〜A9の末尾のデータA9が第1バンク第1メモリ311に記憶され、且つ第1データA1〜A9の末尾のデータA9と第2データB1〜B5の先頭のデータB1とが連続している。この場合、書き込み制御回路72は、書き込みポインタ75に第2メモリインクリメント選択信号Lw_WP+1_selを出力して、第2データB1〜B5の先頭のデータB1は第1バンク第2メモリ312に書き込まれる。
図15A及び15Bに示すタイムチャートでは、第1データA1〜A9の末尾のデータA9は第1バンク第1メモリ311のアドレス2に記憶され、第2データB1〜B5の先頭のデータB1は第2バンク第2メモリ322のアドレス3に記憶される。この場合、読み出し制御回路73は、読み出しポインタ76に第2メモリインクリメント選択信号Lw_RP+1_selを出力しない。読み出し制御回路73が第2メモリインクリメント選択信号Lw_RP+1_selを出力しないので、データ転送装置2は、第1データA1〜A9の末尾のデータA9を読み出した次のサイクルで、第2データB1〜B5の先頭のデータB1を読み出す。
図16A及び16Bに示すタイムチャートでは、第1データA1〜A9の末尾のデータA9は第1バンク第1メモリ311のアドレス2に記憶され、第2データB1〜B5の先頭のデータB1は第1バンク第2メモリ312のアドレス3に記憶される。この場合、読み出し制御回路73は、読み出しポインタ76に第2メモリインクリメント選択信号Lw_RP+1_selを出力する。読み出し制御回路73が第2メモリインクリメント選択信号Lw_RP+1_selを出力するので、データ転送装置2は、第1データA1〜A9の末尾のデータA9を読み出したサイクルで、第2データB1〜B5の先頭のデータB1を読み出す。
データ転送装置1及び2は、入力データクロック乗換回路10と、バッファ30とを有する。入力データクロック乗換回路10は、入力されるデータ群に含まれるデータを上位データ及び下位データに順次に割り当てることによりデータ幅を2倍にして、入力されるデータの2倍の周期である基準周期1サイクルごとに上位データ及び下位データを出力する。バッファは、第1メモリ311、321及び第2メモリ312、322をそれぞれ有する第1バンク及び第2バンクを有する。データ転送装置1及び2は、上位データ及び下位データを第1メモリ311、321及び第2メモリ312、322にそれぞれ書き込むので、第1バンク及び第2バンクのメモリの書き込み時間の2倍のクロック周期を有するデータを書き込むことができる。
また、データ転送装置1及び2では、第1バンク31が書き込み状態であるときに第2バンク32は読み出し状態になり、第2バンク32が書き込み状態であるときに第1バンク31は読み出し状態になる。データ転送装置では、何れか一方のメモリが書き込み状態のとき他方のメモリは読み出し状態になるので、データ転送装置は書き込みと読み出しが同時に実行できる。
データ転送装置1及び2は、データを記憶するバッファリング回路として使用してもよい。
1、2 データ転送装置
10 入力データクロック乗換回路
20 タイミング調整回路
30 バッファ
40 出力選択回路
50 出力データクロック乗換回路
60、70 制御回路

Claims (10)

  1. データ群を順に書き込んで記憶し、記憶した順に読み出して出力するデータ転送装置であって、
    基準周期で書き込み及び読み出しが行われる第1バンク第1メモリと第1バンク第2メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第1バンクと、
    前記基準周期で書き込み及び読み出しが行われる第2バンク第1メモリと第2バンク第2メモリとを有し、前記第1バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第2バンクと、
    入力されるデータ群を前記第1バンク及び前記第2バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
    を有することを特徴とするデータ転送装置。
  2. 前記基準周期の半分の周期であるデータ周期で入力される2つのデータを、前記基準周期ごとに結合して、上位データと下位データとを含む2倍長データとして出力する入力データクロック乗換回路と、
    前記第1バンク及び前記第2バンクに記憶された前記2倍長データを前記基準周期で読み出し、前記上位データ及び下位データに分けて前記データ周期で出力する出力データクロック乗換回路と、
    を更に有する、請求項1に記載のデータ転送装置。
  3. 前記制御回路は、前記第1バンク及び前記第2バンクにおいて直前に記憶されたデータ群の末尾データが記憶されるアドレス位置よりも後のアドレス位置で、前記入力データクロック乗換回路が前記2倍長データを出力するときに書き込み可能な前記第1バンク又は前記第2バンクから順にデータ群を書き込む、請求項2に記載のデータ転送装置。
  4. 前記制御回路は、前記第1バンクへの書き込みを可能にする第1バンク書き込みイネーブル信号と前記第2バンクへの書き込みを可能にする第2バンク書き込みイネーブル信号とを前記基準周期1サイクルごとに交互に出力する書き込みバンク切替スイッチと、前記第1バンク及び第2バンクの書き込みアドレス位置をインクリメントする書き込みポインタとを有し、
    前記制御回路は、データ群の先頭のデータを受信したときに、前記第1バンク書き込みイネーブル信号及び前記第2バンク書き込みイネーブル信号に基づいて、前記第1バンク又は第2バンクの何れが書き込みイネーブル状態であるかを判定し、
    前記第1バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第1バンク第1メモリに書き込み、
    前記第1バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第1バンク第2メモリに書き込み、
    前記第2バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第2バンク第1メモリに書き込み、
    前記第2バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第2バンク第2メモリに書き込み、
    前記先頭のデータが書き込まれたバンク及びメモリをそれぞれ記憶し、
    書き込みポインタは、前記データ群の末尾のデータを書き込んだ後に、書き込みアドレスをインクリメントして、末尾のデータを書き込んだアドレスの次のアドレスを次のデータ群の書き込み開始アドレスとする、請求項1に記載のデータ転送装置。
  5. 前記制御回路は、データ群の末尾のデータを書き込むときに、データ群の末尾のデータが前記第1バンク第1メモリ又は第2バンク第1メモリに書き込まれるか否かを判定すると共に、前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるか否かを判定し、
    データ群の末尾のデータが前記第1バンク第1メモリに書き込まれ且つ前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるときに、前記第1バンク第2メモリに前記次のデータ群の先頭のデータを書き込み、
    データ群の末尾のデータが前記第2バンク第1メモリに書き込まれ且つ前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるときに、前記第2バンク第2メモリに前記次のデータ群の先頭のデータを書き込む、請求項4に記載のデータ転送装置。
  6. 前記制御回路は、前記第1バンク及び前記第2バンクにおいて直前に記憶されたデータ群の末尾データの記憶位置に続けて順にデータ群を書き込む、請求項2に記載のデータ転送装置。
  7. 前記制御回路は、直前に記憶されたデータ群の末尾データが前記第1バンク第1メモリに記憶されたとき、データ群の先頭のデータを前記第1バンク第2メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第1バンク第2メモリに記憶されたとき、データ群の先頭のデータを前記第2バンク第1メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第2バンク第1メモリに記憶されたとき、データ群の先頭のデータを前記第2バンク第2メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第2バンク第2メモリに記憶されたとき、データ群の先頭のデータを前記第1バンク第1メモリに書き込む、請求項6に記載のデータ転送装置。
  8. 前記上位データを下位データとし且つ前記下位データを前記基準周期1サイクルに相当する時間遅延させて上位データとした第1遅延データを出力する第1遅延回路と、前記上位データ及び前記下位データを前記基準周期1サイクルに相当する時間遅延させた第2遅延データを出力する第2遅延回路と、前記上位データを前記基準周期1サイクルに相当する時間遅延させて下位データとし且つ前記下位データを前記基準周期2サイクルに相当する時間遅延させて上位データとした第3遅延データを出力する第3遅延回路と、を有するタイミング調整回路を更に有し、
    前記制御回路は、直前に記憶されたデータ群の先頭のデータが書き込まれたバンク及びメモリ並びに直前に記憶されたデータ群のデータ長に基づいてデータ群の先頭のデータが書き込まれるバンク及びメモリを決定し、
    データ群の先頭のデータが第1バンク第1メモリに書き込まれると決定したとき、前記上位データ及び前記下位データを、前記タイミング調整回路から出力し、
    データ群の先頭のデータが第1バンク第2メモリに書き込まれると決定したとき、前記第1遅延データを、前記タイミング調整回路から出力し、
    データ群の先頭のデータが第2バンク第1メモリに書き込まれると決定したとき、前記第2遅延データを、前記タイミング調整回路から出力し、
    データ群の先頭のデータが第2バンク第2メモリに書き込まれると決定したとき、前記第3遅延データを、前記タイミング調整回路から出力する、請求項7に記載のデータ転送装置。
  9. 基準周期で書き込み及び読み出しが行われる第1バンク第1メモリと第1バンク第2メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第1バンクと、
    前記基準周期で書き込み及び読み出しが行われる第2バンク第1メモリと第2バンク第2メモリとを有し、前記第1バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第2バンクと、
    入力されるデータ群を前記第1バンク及び前記第2バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
    を有することを特徴とするバッファリング回路。
  10. 基準周期で書き込み及び読み出しが行われる第1バンク第1メモリと第1バンク第2メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第1バンクと、
    前記基準周期で書き込み及び読み出しが行われる第2バンク第1メモリと第2バンク第2メモリとを有し、前記第1バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第2バンクと、
    入力されるデータ群を前記第1バンク及び前記第2バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
    を有することを特徴とするバッファリング回路を使用するバッファリング方法において、
    前記第1バンクへの書き込みを可能にする第1バンク書き込みイネーブル信号と前記第2バンクへの書き込みを可能にする第2バンク書き込みイネーブル信号とを前記基準周期1サイクルごとに交互に出力し、
    データ群の先頭のデータを受信したときに、前記第1バンク書き込みイネーブル信号及び前記第2バンク書き込みイネーブル信号に基づいて、前記第1バンク又は第2バンクの何れのメモリが書き込みイネーブル状態であるかを判定し、
    前記第1バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第1バンク第1メモリに書き込み、
    前記第1バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第1バンク第2メモリに書き込み、
    前記第2バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第2バンク第1メモリに書き込み、
    前記第2バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第2バンク第2メモリに書き込み、
    前記先頭のデータが書き込まれたバンク及びメモリをそれぞれ記憶し、
    前記データ群の末尾のデータを書き込んだ後に、書き込みアドレスをインクリメントして、末尾のデータを書き込んだアドレスの次のアドレスを次のデータ群の書き込み開始アドレスとする、
    ことを特徴とするバッファリング方法。
JP2013124533A 2013-06-13 2013-06-13 データ転送装置、バッファリング回路及びバッファリング方法 Pending JP2015001986A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013124533A JP2015001986A (ja) 2013-06-13 2013-06-13 データ転送装置、バッファリング回路及びバッファリング方法
EP14169458.8A EP2814033A1 (en) 2013-06-13 2014-05-22 Data transfer device, buffering circuit, and buffing method
US14/299,011 US20140369142A1 (en) 2013-06-13 2014-06-09 Data transfer device, buffering circuit, and buffering method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013124533A JP2015001986A (ja) 2013-06-13 2013-06-13 データ転送装置、バッファリング回路及びバッファリング方法

Publications (1)

Publication Number Publication Date
JP2015001986A true JP2015001986A (ja) 2015-01-05

Family

ID=50828710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013124533A Pending JP2015001986A (ja) 2013-06-13 2013-06-13 データ転送装置、バッファリング回路及びバッファリング方法

Country Status (3)

Country Link
US (1) US20140369142A1 (ja)
EP (1) EP2814033A1 (ja)
JP (1) JP2015001986A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020154738A (ja) * 2019-03-20 2020-09-24 日本電気株式会社 クロック乗せ換え回路、方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085732A (ja) * 2005-11-04 2006-03-30 Nec Electronics Corp バスシステム及びバスシステムを含む情報処理システム
JP2011008489A (ja) * 2009-06-25 2011-01-13 Seiko Epson Corp 集積回路システム、データ書き込み方法、データ読み出し方法
WO2011058659A1 (ja) * 2009-11-16 2011-05-19 富士通株式会社 Fifoバッファ及びfifoバッファの制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371877A (en) * 1991-12-31 1994-12-06 Apple Computer, Inc. Apparatus for alternatively accessing single port random access memories to implement dual port first-in first-out memory
JPH06301590A (ja) 1993-04-16 1994-10-28 Sony Corp 記憶方法及び装置
JP3920002B2 (ja) 2000-04-20 2007-05-30 Necエレクトロニクス株式会社 メモリバンク制御方法
US7082071B2 (en) * 2001-08-23 2006-07-25 Integrated Device Technology, Inc. Integrated DDR/SDR flow control managers that support multiple queues and MUX, DEMUX and broadcast operating modes
US6795360B2 (en) * 2001-08-23 2004-09-21 Integrated Device Technology, Inc. Fifo memory devices that support all four combinations of DDR or SDR write modes with DDR or SDR read modes
JP4492938B2 (ja) * 2004-05-26 2010-06-30 ルネサスエレクトロニクス株式会社 半導体記憶装置及びその動作方法
KR100782495B1 (ko) * 2006-10-20 2007-12-05 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 데이터 라이트 및 리드방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085732A (ja) * 2005-11-04 2006-03-30 Nec Electronics Corp バスシステム及びバスシステムを含む情報処理システム
JP2011008489A (ja) * 2009-06-25 2011-01-13 Seiko Epson Corp 集積回路システム、データ書き込み方法、データ読み出し方法
WO2011058659A1 (ja) * 2009-11-16 2011-05-19 富士通株式会社 Fifoバッファ及びfifoバッファの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020154738A (ja) * 2019-03-20 2020-09-24 日本電気株式会社 クロック乗せ換え回路、方法及びプログラム

Also Published As

Publication number Publication date
US20140369142A1 (en) 2014-12-18
EP2814033A1 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
KR101145784B1 (ko) 반도체 메모리 장치 및 그를 포함하는 메모리 시스템
JP2007335076A5 (ja)
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
US7099231B2 (en) Interleaving memory blocks to relieve timing bottleneck in a multi-queue first-in first-out memory system
JP2011060162A (ja) メモリ制御装置
JP6468971B2 (ja) 半導体メモリ、メモリシステム
WO2012079436A1 (zh) 一种存储器接口访问控制方法及装置
KR100498233B1 (ko) 선입선출 메모리 회로 및 그 구현 방법
JP2015001986A (ja) データ転送装置、バッファリング回路及びバッファリング方法
JP2019046042A (ja) 伝送装置および伝送方法
JP5360594B2 (ja) Dma転送装置及び方法
US20120203982A1 (en) Fifo buffer and method of controlling fifo buffer
US20100054272A1 (en) Storage device capable of accommodating high-speed network using large-capacity low-speed memory
JP3559299B2 (ja) バッファメモリ装置
JP6493044B2 (ja) マルチプロセッサシステム
JP4940894B2 (ja) 同期型メモリ回路
JP4060270B2 (ja) 送信装置と受信装置の間においてビデオのライン・データを遅延させる装置および方法
JP4549073B2 (ja) メモリ制御回路
JP2005346637A (ja) 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP2006012235A (ja) 記憶装置
JP2010244408A (ja) メモリコントローラおよびメモリインターフェース方法
JP2023045362A (ja) 演算処理装置およびメモリアクセス方法
JP2011248846A (ja) メモリ装置及び信号処理装置
JP4776947B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170328