JP6828961B2 - データ転送装置、及びデータ転送方法 - Google Patents

データ転送装置、及びデータ転送方法 Download PDF

Info

Publication number
JP6828961B2
JP6828961B2 JP2018038838A JP2018038838A JP6828961B2 JP 6828961 B2 JP6828961 B2 JP 6828961B2 JP 2018038838 A JP2018038838 A JP 2018038838A JP 2018038838 A JP2018038838 A JP 2018038838A JP 6828961 B2 JP6828961 B2 JP 6828961B2
Authority
JP
Japan
Prior art keywords
control information
data
fifo buffer
packet
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.)
Active
Application number
JP2018038838A
Other languages
English (en)
Other versions
JP2019153967A (ja
Inventor
直人 桐生
直人 桐生
嘉史 小川
嘉史 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2018038838A priority Critical patent/JP6828961B2/ja
Publication of JP2019153967A publication Critical patent/JP2019153967A/ja
Application granted granted Critical
Publication of JP6828961B2 publication Critical patent/JP6828961B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Description

本発明はデータ転送装置、及びデータ転送方法に関し、特に制御情報を含むデータを転送するためのデータ転送装置、及びデータ転送方法に関する。
入力されたデータをFIFO(First In, First Out)バッファに一時的に格納した後、所定のタイミングでFIFOバッファに格納されているデータを転送するデータ転送装置が知られている。
特許文献1には、システム全体の処理能力を高めることができる受信用のFIFO装置に関する技術が開示されている。特許文献1に開示されているFIFO装置では、FIFOバッファに書き込むパケットの先頭アドレスをラッチし、パケット末端に配置されたエラー情報が入力されるまで、FIFOバッファに書き込まれたパケットの読み出しを禁止している。そして、書き込んだパケットがエラーパケットである場合、ラッチしていた先頭アドレスに書き込みアドレスを戻すことで、パケットの上書きを行い、パケットを破棄している。
特開2002−344539号公報
特許文献1に開示されているFIFO装置では、パケットの制御情報を保持する機能がないためパケットの制御情報を管理することができない。このため、パケットの先頭から制御処理を行うことができず、パケットの制御処理を柔軟に実施することができないという問題がある。
上記課題に鑑み本発明の目的は、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することにある。
本発明の一態様にかかるデータ転送装置は、所定のパケット長を有するパケットに含まれるデータを格納する第1のFIFOバッファと、前記パケットの制御情報を格納する第2のFIFOバッファと、前記データを前記第1のFIFOバッファに格納するタイミング、及び前記制御情報を前記第2のFIFOバッファに格納するタイミングを制御する入力制御部と、前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、前記出力制御部は、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する。
本発明の一態様にかかるデータ転送方法は、所定のパケット長を有するパケットに含まれるデータを第1のFIFOバッファに格納するタイミングと、前記パケットの制御情報を第2のFIFOバッファに格納するタイミングと、を制御する第1のステップと、前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する第2のステップと、を備え、前記第2のステップにおいて、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御する。
本発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
実施の形態1にかかるデータ転送装置を示すブロック図である。 実施の形態2にかかるデータ転送装置が備える入力制御部の構成例を示すブロック図である。 実施の形態2にかかるデータ転送装置が備える入力制御部の詳細な構成例を示す図である。 実施の形態2にかかるデータ転送装置が備える出力制御部の構成例を示すブロック図である。 図4に示す出力制御部が備える制御情報カウント部の詳細な構成例を示す図である。 図4に示す出力制御部が備える読み出しイネーブル信号生成部の詳細な構成例を示す図である。 図4に示す出力制御部が備えるデータ処理部の詳細な構成例を示す図である。 実施の形態2にかかるデータ転送装置に供給されるデータの一例を説明するための図である。 実施の形態2にかかるデータ転送装置の動作を説明するためのタイミングチャートである。
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。
図1は、実施の形態1にかかるデータ転送装置を示すブロック図である。図1に示すように、本実施の形態にかかるデータ転送装置1は、入力制御部10、FIFO部20、及び出力制御部30を備える。FIFO部20は、データ用FIFOバッファ21と制御情報用FIFOバッファ22とを備える。
本実施の形態にかかるデータ転送装置1は、所定のパケット長を有するパケットを入力制御部10において入力し、この入力したパケットをFIFO部20に一時的に保持する。そして、出力制御部30において、FIFO部20に格納されているパケットを所定のタイミングで読み出して出力する。
データ転送装置1が転送するパケットは所定のパケット長を有する。この所定のパケット長は可変であり、データ転送装置1は可変長のパケットを転送することができる。パケットには、データと制御情報とが含まれている。具体的には、図1に示す入力パケットI_DATAには、データと制御情報とが含まれている。
入力制御部10には、入力パケットI_DATA、入力パケットI_DATAの末端を示すラスト情報I_LAST、入力パケットI_DATAが有効データであるか否かを示す有効信号I_VALID、及びパケットI_DATAの制御情報I_CTRL_INFOが供給される。ここで、制御情報I_CTRL_INFOは、入力パケットI_DATAに含まれている制御情報とは異なる制御情報である。つまり、パケットの制御情報は、入力パケットI_DATAに含まれている制御情報と、外部から供給される制御情報I_CTRL_INFOとがある。入力パケットI_DATAに含まれている制御情報は、入力パケットI_DATAの途中または末端に配置されている。
入力制御部10は、データ用FIFOバッファ21にデータwDATAおよびデータ書き込みイネーブル信号D_wenaを出力する。また、入力制御部10は、制御情報用FIFOバッファ22に制御情報C_wDATAおよび制御情報書き込みイネーブル信号C_wenaを出力する。制御情報書き込みイネーブル信号C_wenaは、出力制御部30にも供給される。
データ用FIFOバッファ21は、データ書き込みイネーブル信号D_wenaが活性状態(例えば、ハイレベル)のときに、データwDATAを格納する。また、制御情報用FIFOバッファ22は、制御情報書き込みイネーブル信号C_wenaが活性状態のときに、制御情報C_wDATAを格納する。
本実施の形態にかかるデータ転送装置1において、入力制御部10は、データ用FIFOバッファ21にデータwDATAを格納するタイミング、及び制御情報用FIFOバッファ22に制御情報C_wDATAを格納するタイミングを制御している。
出力制御部30には、入力制御部10から制御情報書き込みイネーブル信号C_wenaが供給される。また、出力制御部30は、データ用FIFOバッファ21にデータ読み出しイネーブル信号D_renaを、制御情報用FIFOバッファ22に制御情報読み出しイネーブル信号C_renaをそれぞれ出力する。
データ用FIFOバッファ21は、出力制御部30から活性状態のデータ読み出しイネーブル信号D_renaが供給されると、出力制御部30にデータrDATAを出力する。制御情報用FIFOバッファ22は、出力制御部30から活性状態の制御情報読み出しイネーブル信号C_renaが供給されると、出力制御部30に制御情報C_rDATAを出力する。
出力制御部30は、データ用FIFOバッファ21からデータrDATAを読み出し、制御情報用FIFOバッファ22から制御情報C_rDATAを読み出す。そして、制御情報C_rDATAを用いて、データrDATAの出力を制御して、制御後のデータである出力データO_DATAを出力する。
このとき、出力制御部30は、データ用FIFOバッファ21からデータrDATAを読み出すタイミングと、制御情報用FIFOバッファ22から制御情報C_rDATAを読み出すタイミングとを調整して、パケット(データrDATA)の先頭からデータの出力を制御している。
ここで、出力制御部30は、制御情報用FIFOバッファ22に制御情報が格納されているか否かを判定可能に構成されている。例えば、出力制御部30は、入力制御部10から供給された制御情報書き込みイネーブル信号C_wenaを用いて、制御情報用FIFOバッファ22に制御情報が格納されているか否かを判定することができる。
つまり、制御情報用FIFOバッファ22は、制御情報書き込みイネーブル信号C_wenaが活性状態のときに制御情報C_wDATAを格納する。よって、出力制御部30は、この制御情報書き込みイネーブル信号C_wenaが活性状態となった際に、制御情報用FIFOバッファ22に制御情報が格納されていると判定することができる。
出力制御部30は、制御情報用FIFOバッファ22に制御情報が格納されていると判定した場合、データ用FIFOバッファ21に格納されているデータrDATA、及び制御情報用FIFOバッファ22に格納されている制御情報C_rDATAを読み出す。そして、読み出した制御情報C_rDATAを用いて、読み出したデータrDATAの出力を制御する。
具体的には、出力制御部30は、入力された制御情報書き込みイネーブル信号C_wenaに基づいて、制御情報用FIFOバッファ22に制御情報が格納されているか否かを判定する。そして、制御情報用FIFOバッファ22に制御情報が格納されていると判定した場合、データ用FIFOバッファ21に格納されているデータrDATAを読み出すためのデータ読み出しイネーブル信号D_renaを生成する。更に、制御情報用FIFOバッファ22に格納されている制御情報C_rDATAを読み出すための制御情報読み出しイネーブル信号C_renaを生成する。このとき、出力制御部30は、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとを同時に活性状態とする。
上述のように、本実施の形態にかかるデータ転送装置1では、パケットに含まれるデータをデータ用FIFOバッファ21に格納し、パケットの制御情報を制御情報用FIFOバッファ22に格納している。そして、データ用FIFOバッファ21および制御情報用FIFOバッファ22からデータrDATAおよび制御情報C_rDATAをそれぞれ読み出す際に、データ用FIFOバッファ21からデータrDATAを読み出すタイミングと、制御情報用FIFOバッファ22から制御情報C_rDATAを読み出すタイミングとを調整している。よって、パケット(データrDATA)の先頭からデータの出力を制御することができるので、パケットの制御処理を柔軟に実施することができる。
したがって、本実施の形態にかかる発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
<実施の形態2>
次に、本発明の実施の形態2について説明する。以下で説明する実施の形態2では、実施の形態1で説明したデータ転送装置1(図1参照)の具体的な構成例を示している。
図2は、図1に示したデータ転送装置1が備える入力制御部10の構成例を示すブロック図である。図2に示すように、入力制御部10は、制御情報生成部11と書き込みイネーブル信号生成部12とを備える。
実施の形態1で説明した場合と同様に、入力制御部10には、入力パケットI_DATA、入力パケットI_DATAの末端を示すラスト情報I_LAST、入力パケットI_DATAが有効データであるか否かを示す有効信号I_VALID、及びパケットI_DATAの制御情報I_CTRL_INFOが供給される。
図8に、データ転送装置1に供給されるデータの一例を示す。図8に示すように、入力パケットI_DATAのパケット長は可変である。図8では入力パケットI_DATAのパケット長をnバイト(nは2以上の整数)としている。また、各々のパケットのデータ幅は8ビットであるものとする。入力パケットI_DATAには、入力パケットI_DATAが有効データであるか否かを示す有効信号I_VALID(1ビット)が付加されている。入力パケットI_DATAが有効である場合は有効信号I_VALIDがハイレベルになり、入力パケットI_DATAが供給されない場合(無効な場合)は、有効信号I_VALIDがロウレベルになる。また、入力パケットI_DATAには、入力パケットI_DATAの末端を示すラスト情報I_LAST(1ビット)が付加されている。
更に、入力パケットI_DATAには制御情報が付加されている。図8に示す例では、パケットの制御情報は、入力パケットI_DATAに付加されている制御情報I_CTRL_INFO、及び入力パケットI_DATAに含まれている制御情報PORT_INFOである。
制御情報I_CTRL_INFOは外部から付加される制御情報であり、例えば入力パケットI_DATAのエラー情報(1ビット)である。図8に示すように、制御情報I_CTRL_INFOは、最後のパケットと同じタイミングで入力パケットI_DATAに付加される。換言すると、制御情報I_CTRL_INFOは、パケットの末端に配置されている。
また、制御情報PORT_INFOは、入力パケットI_DATAに含まれている制御情報であり、パケットの転送先(ポート)を示す情報である。図8に示す例では、制御情報PORT_INFOは、入力パケットI_DATAの2バイト目の第7ビットに含まれている。以下で示す例では、制御情報PORT_INFOがロウレベルの場合はポートP1にパケットを転送し、制御情報PORT_INFOがハイレベルの場合はポートP2にパケットを転送するものとする。
また、FIFO部20のメモリ容量の一例を挙げると、例えば、データ用FIFOバッファ21の容量を2048×9ビット、制御情報用FIFOバッファ22の容量を32×2ビットとすることができる。制御情報用FIFOバッファ22の容量は、データ用FIFOバッファ21の容量を最小パケット長で割った容量を必要とする。例えば、最小パケット長を64とした場合は、2048/64=32ビットとなる。
図2に示すように、入力制御部10は、入力パケットI_DATA(8ビット)とラスト情報I_LAST(1ビット)とをまとめて、データwDATA(9ビット)として出力する。このとき、入力パケットI_DATAに含まれている制御情報PORT_INFOは、制御情報生成部11に供給される。また、制御情報生成部11には、外部から制御情報I_CTRL_INFOが供給される。制御情報生成部11は、これらの制御情報、つまり、制御情報PORT_INFOと制御情報I_CTRL_INFOと保持し、保持しているこれらの制御情報をまとめて、制御情報C_wDATAとして出力する。また、制御情報生成部11は、ラスト情報I_LASTが供給されると、保持している制御情報PORT_INFOおよび制御情報I_CTRL_INFOをリセットする。
入力制御部10は、入力された有効信号I_VALIDをデータ書き込みイネーブル信号D_wenaとして出力する。また、有効信号I_VALIDは、書き込みイネーブル信号生成部12にも供給される。書き込みイネーブル信号生成部12には、ラスト情報I_LASTも供給される。書き込みイネーブル信号生成部12は、有効信号I_VALIDとラスト情報I_LASTとを用いて、制御情報書き込みイネーブル信号C_wenaを生成する。
具体的には、書き込みイネーブル信号生成部12は、制御情報PORT_INFOおよび制御情報I_CTRL_INFOのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、活性状態の制御情報書き込みイネーブル信号C_wenaを生成する。これにより、制御情報PORT_INFOおよび制御情報I_CTRL_INFOのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、制御情報用FIFOバッファ22に制御情報PORT_INFOおよび制御情報I_CTRL_INFOを格納することができる。
図8に示した例では、制御情報PORT_INFOは入力パケットI_DATAの2バイト目に含まれており、制御情報I_CTRL_INFOは入力パケットI_DATAの最後に付加される。よって、この場合は、時間軸上最も遅く入力される制御情報が入力されたタイミングは、制御情報I_CTRL_INFOが入力されたタイミングである。
書き込みイネーブル信号生成部12は、有効信号I_VALIDとラスト情報I_LASTとを入力しているので、制御情報I_CTRL_INFOが入力されたタイミングを把握することができる。よって、書き込みイネーブル信号生成部12は、制御情報I_CTRL_INFOが入力されたタイミング(ラスト情報I_LASTが活性状態となるタイミング)に、活性状態の制御情報書き込みイネーブル信号C_wenaを生成することができる。
図3は、入力制御部10の更に詳細な構成例を示す図であり、制御情報生成部11および書き込みイネーブル信号生成部12の具体的な構成例を示している。
図3に示すように、制御情報生成部11は、ラッチ回路14、15を備える。ラッチ回路14は、入力パケットI_DATAに含まれている制御情報PORT_INFOを入力して保持する。そして、ラッチ回路14は、保持している制御情報PORT_INFOをクロック信号I_CLKに同期して出力する。また、ラッチ回路14は、ラスト情報I_LASTが供給されると、保持している制御情報PORT_INFOをリセットする。ラッチ回路15は、外部から供給された制御情報I_CTRL_INFOを入力して保持する。そして、ラッチ回路15は、保持している制御情報I_CTRL_INFOをクロック信号I_CLKに同期して出力する。また、ラッチ回路15は、ラスト情報I_LASTが供給されると、保持している制御情報I_CTRL_INFOをリセットする。ラッチ回路14から出力された制御情報PORT_INFOとラッチ回路15から出力された制御情報I_CTRL_INFOは、まとめて制御情報C_wDATAとして出力される。
書き込みイネーブル信号生成部12は、カウンタ16およびセレクタ17を備える。カウンタ16は、有効信号I_VALIDが供給されると、クロック信号I_CLKと同期してカウントアップする。カウンタ16のカウント値L_countは、入力パケットI_DATAのパケット位置に対応している。また、カウンタ16は、ラスト情報I_LASTが供給されると、カウンタ16のカウント値L_countをリセットする。
セレクタ17には、ラスト情報I_LAST、カウンタ16のカウント値L_count、及び位置情報CTRL_POSが供給される。ここで、位置情報CTRL_POSは、入力パケットI_DATAに含まれている制御情報PORT_INFOの位置を示す情報である。本実施の形態に示す例では、図8に示したように、制御情報PORT_INFOは入力パケットI_DATAの2バイト目に含まれているので、位置情報CTRL_POSは固定値“2”となる。セレクタ17は、カウンタ16のカウント値L_countと位置情報CTRL_POSの値とを比較することで、制御情報PORT_INFOが入力されたタイミングを判定することができる。具体的には、カウンタ16のカウント値L_countが“2”である場合に、制御情報PORT_INFOが入力されたと判定することができる。
また、セレクタ17には、ラスト情報I_LASTが供給される。本実施の形態に示す例では、図8に示したように、制御情報I_CTRL_INFOは入力パケットI_DATAの最後に付加されるので、ラスト情報I_LASTが供給されるタイミングは、制御情報I_CTRL_INFOが供給されるタイミングと対応している。よって、セレクタ17は、制御情報PORT_INFOが供給されるタイミング、及び制御情報I_CTRL_INFOが供給されるタイミングを把握することができる。
したがって、セレクタ17は、制御情報PORT_INFOおよび制御情報I_CTRL_INFOのうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、活性状態(“1”)の制御情報書き込みイネーブル信号C_wenaを出力することができる。つまり、セレクタ17は、制御情報I_CTRL_INFOが入力されたタイミングで、活性状態(“1”)の制御情報書き込みイネーブル信号C_wenaを出力する。
なお、上記に示した例では、制御情報I_CTRL_INFOが入力パケットI_DATAの最後に付加されていたので、制御情報I_CTRL_INFOの位置を示す情報としてラスト情報I_LASTを用いることができた。しかし、制御情報I_CTRL_INFOが入力パケットI_DATAの途中に付加されている場合は、制御情報I_CTRL_INFOの位置を示す情報を別途セレクタ17に供給する必要がある。
次に、出力制御回路30の構成例について説明する。図4は、出力制御部30の構成例を示すブロック図である。図4に示すように、出力制御回路30は、制御情報カウント部31、読み出しイネーブル信号生成部32、及びデータ処理部33を備える。
制御情報カウント部31は、制御情報書き込みイネーブル信号C_wena及び制御情報読み出しイネーブル信号C_renaを用いて、制御情報用FIFOバッファ22に制御情報が格納されているか否かを判定する。そして、制御情報用FIFOバッファ22に制御情報が格納されている場合、制御情報が格納されていることを示すdata_exist信号を読み出しイネーブル信号生成部32に出力する。
読み出しイネーブル信号生成部32は、制御情報が格納されていることを示すdata_exist信号が供給されると、データ用FIFOバッファ21に格納されているデータrDATAを読み出すためのデータ読み出しイネーブル信号D_renaを生成する。更に、制御情報用FIFOバッファ22に格納されている制御情報C_rDATAを読み出すための制御情報読み出しイネーブル信号C_renaを生成する。このとき、読み出しイネーブル信号生成部32は、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとを同時に活性状態とする。
データ処理部33は、データ用FIFOバッファ21から読み出されたデータrDATAを、制御情報用FIFOバッファ22から読み出された制御情報C_rDATAを用いて制御して出力する。このとき、データ処理部33は、制御情報C_rDATAを用いてデータrDATAの先頭からデータrDATAの出力を制御する。
本実施の形態では、制御情報C_rDATAに含まれる制御情報PORT_INFOは、データrDATAの出力ポートを示すポート情報であり、データ処理部33は、データ用FIFOバッファ21から読み出されたデータrDATAをポート情報に応じた出力ポート(O_P1_DATAまたはO_P2_DATA)に出力する。
また、本実施の形態では、制御情報C_rDATAに含まれる制御情報I_CTRL_INFOは、データrDATAのエラー情報であり、データ処理部33は、エラー情報がエラーを示す場合、データ用FIFOバッファ21から読み出されたデータrDATAを無効にする。図4に示す例では、データ処理部33は、エラー情報がエラーを示す場合、データ用FIFOバッファ21から読み出されたデータrDATAをエラー出力ポートO_Err_DATAに出力している。なお、エラー処理は、エラー出力ポートO_Err_DATAにデータを出力する以外に、マスク処理やダミーパケットの送信などを用いてもよい。
図5は、図4に示す出力制御部30が備える制御情報カウント部31の詳細な構成例を示す図である。図5に示すように、制御情報カウント部31は、カウンタ35、セレクタ36、及びフリップフロップ回路FF1を備える。カウンタ35は、入力制御部10から制御情報書き込みイネーブル信号C_wenaが供給されるとカウントアップを行い、制御情報読み出しイネーブル信号C_renaが供給されるとカウントダウンを行う。つまり、カウンタ35のカウント値data_countは、制御情報用FIFOバッファ22に格納されている制御情報の量に対応している。カウンタ35のカウント値data_countは、セレクタ36に供給される。
セレクタ36は、カウンタ35のカウント値data_countに応じて、制御情報が格納されていることを示すdata_exist信号を出力する。具体的には、セレクタ36は、カウント値data_countが“0”であれば“0”(ロウレベル)を出力し、カウント値data_countが“1”以上であれば“1”(ハイレベル)を出力する。また、フリップフロップ回路FF1は、data_exist信号を1クロック遅延したdata_exist_1d信号を生成する。
図6は、図4に示す出力制御部30が備える読み出しイネーブル信号生成部32の詳細な構成例を示す図である。図6に示すように、読み出しイネーブル信号生成部32は、論理積回路AND1、AND2、論理和回路OR1〜OR3、及びフリップフロップ回路FF2、FF3を備える。
AND1は、読み出しデータrDATAの最後を示すrLAST信号とdata_exist信号とを入力し、これらの信号の論理積演算結果を出力する。AND2は、data_exist信号、data_exist_1d信号を反転した信号、及びデータ読み出しイネーブル信号D_renaを反転した信号を入力し、これらの信号の論理積演算結果を出力する。フリップフロップ回路FF2は、AND2の出力のタイミングを調整する。OR1は、AND1の出力とフリップフロップ回路FF2の出力の論理和演算結果を出力する。OR2は、OR1の出力とフリップフロップ回路FF3の出力の論理和演算結果を出力する。OR3は、OR1の出力とフリップフロップ回路FF3の出力の論理和演算結果を出力する。フリップフロップ回路FF3は、OR3の出力をラッチし、rLAST信号がハイレベルとなったときにリセットする。
読み出しイネーブル信号生成部32は、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとを生成する。このとき、制御情報読み出しイネーブル信号C_renaを生成する方法には、出力制御部30がデータrDATAをデータ用FIFOバッファ21から読み出している場合(読み出し動作中)と、読み出し動作中ではない場合との2つのパターンがある。
まず、読み出し動作中の場合について説明する。読み出し動作中の場合は、データ読み出しイネーブル信号D_renaがハイレベルなので、AND2の出力はロウレベルになる。よって、制御情報読み出しイネーブル信号C_renaはロウレベルの状態を維持する。その後、読み出し動作が終了するタイミングで、読み出しデータrDATAの最後を示すrLAST信号が立ち上がる。これにより、ハイレベルのrLAST信号がAND1に供給される。このタイミングでdata_exist信号がロウレベルである場合は、AND1およびAND2の出力はロウレベルの状態を維持するので、データ読み出しイネーブル信号D_renaおよび制御情報読み出しイネーブル信号C_renaはロウレベルを維持する。一方、rLAST信号が立ち上がった際にdata_exist信号がハイレベルの状態である場合は、AND1がハイレベルの信号をOR1に出力する。これにより、OR1の出力およびOR2の出力がハイレベルになるので、データ読み出しイネーブル信号D_renaおよび制御情報読み出しイネーブル信号C_renaが同一のタイミングでハイレベルになる。
また、OR1の出力がハイレベルになるので、OR3の出力もハイレベルになり、フリップフロップ回路FF3はハイレベルの信号をラッチする。このため、OR2にはフリップフロップ回路FF3からハイレベルの信号が供給され続けるので、データ読み出しイネーブル信号D_renaはハイレベルの状態を維持する。この状態は、データ用FIFOバッファ21からデータrDATAを読み出す動作が終了するまで、つまりrLAST信号がフリップフロップ回路FF3に供給されるまで継続される。
次に、読み出し動作中ではない場合について説明する。読み出し動作中ではない場合は、rLAST信号がハイレベルにならないので、AND1の出力はロウレベルの状態となる。一方、AND2は、data_exist信号がハイレベル、data_exist_1d信号がロウレベル、データ読み出しイネーブル信号D_renaがロウレベルの場合、ハイレベルの信号をフリップフロップ回路FF2に出力する。フリップフロップ回路FF2は、AND2から出力されたハイレベルの信号のタイミングを調整した後、OR1にハイレベルの信号を出力する。これにより、OR1の出力およびOR2の出力がハイレベルになるので、データ読み出しイネーブル信号D_renaおよび制御情報読み出しイネーブル信号C_renaが同一のタイミングでハイレベルになる。
また、OR1の出力がハイレベルになるので、OR3の出力もハイレベルになり、フリップフロップ回路FF3はハイレベルの信号をラッチする。このため、OR2にはフリップフロップ回路FF3からハイレベルの信号が供給され続けるので、データ読み出しイネーブル信号D_renaはハイレベルの状態を維持する。この状態は、データ用FIFOバッファ21からデータrDATAを読み出す動作が終了するまで、つまりrLAST信号がフリップフロップ回路FF3に供給されるまで継続される。
図7は、図4に示す出力制御部30が備えるデータ処理部33の詳細な構成例を示す図である。図7に示すように、データ処理部33は、ラッチ回路41およびセレクタ42を備える。
ラッチ回路41は、制御情報用FIFOバッファ22から読み出された制御情報C_rDATAを、データrDATAの末端が読み出されるまで、つまり、読み出しデータrDATAの最後を示すrLAST信号が読み出されるまでラッチする。
セレクタ42は、データ用FIFOバッファ21から読み出されたデータrDATAの出力先を、ラッチ回路41でラッチしていた制御情報lat_CTRL_DATAを用いて切り替える。このとき、セレクタ42は、制御情報lat_CTRL_DATAを用いて、データrDATAの先頭からデータrDATAの出力先を切り替える。
制御情報lat_CTRL_DATAには、データrDATAの出力ポートを示す制御情報PORT_INFO、及びデータrDATAのエラー情報である制御情報I_CTRL_INFOが含まれている。
セレクタ42は、制御情報I_CTRL_INFOがエラーを示す場合、データrDATAをエラー出力ポートO_Err_DATAに出力する。また、セレクタ42は、制御情報I_CTRL_INFOが正常を示す場合は、データrDATAを制御情報PORT_INFOが示すポートに出力する。具体的には、セレクタ42は、制御情報PORT_INFOがポートP1を示す場合、データrDATAを出力ポートO_P1_DATAに出力する。また、セレクタ42は、制御情報PORT_INFOがポートP2を示す場合、データrDATAを出力ポートO_P2_DATAに出力する。
次に、本実施の形態にかかるデータ転送装置の動作について、図9に示すフローチャートを用いて詳細に説明する。
本実施の形態にかかるデータ転送装置1は、基本的にクロックの立ち上がりに同期して動作するものとし、クロックの立ち上がりを順番にt1、t2、・・・、t25と示している。図9に示す例では、タイミングt1〜t3でパケットD1が入力され、タイミングt4〜t10でパケットD2が入力され、タイミングt11〜t14でパケットD3が入力される。パケット中の2バイト目の第7ビット目には制御情報PORT_INFOが含まれている。また、外部からパケットのエラー情報である制御情報I_CTRL_INFOが供給される。以下に示す例では、パケットD1がポートP1に出力され、パケットD2がポートP2に出力され、パケットD3がエラーである場合を示している。
まず、タイミングt1で、パケットD1の先頭のパケットが入力制御部10に入力される。このとき、有効信号I_VALIDがハイレベルになるので、データ書き込みイネーブル信号D_wenaもハイレベルになる。よって、データ用FIFOバッファ21にデータwDATA(パケットD1)が書き込まれる。
また、入力制御部10のカウンタ16(図3参照)は、パケットD1が入力されている間、カウント値L_countを順次カウントアップする。カウント値L_countが“1”となるタイミングt2では、ラッチ回路14がポート情報である制御情報PORT_INFOをラッチする。また、タイミングt3で時間軸上最も遅い制御情報I_CTRL_INFOが入力されるので、制御情報書き込みイネーブル信号C_wenaがハイレベルになる。
つまり、本実施の形態では、時間軸上最も遅い制御情報I_CTRL_INFOが入力されるタイミングは、パケットの末端に対応している。よって、図3に示すセレクタ17は、パケットD1の末端を示すラスト情報I_LAST(ハイレベル)が供給されると(タイミングt3)、ハイレベルの制御情報書き込みイネーブル信号C_wenaを制御情報用FIFOバッファ22に出力する。これにより、制御情報用FIFOバッファ22に制御情報C_wDATAが書き込まれる。
また、タイミングt3に制御情報書き込みイネーブル信号C_wenaが立ち上がるので、図5に示すカウンタ35は、タイミングt4においてカウント値data_countをカウントアップする。これによりカウント値data_countが“1”となるので、制御情報が格納されていることを示すdata_exist信号がタイミングt4で立ち上がる。
図6に示す読み出しイネーブル信号生成部32は、data_exist信号がハイレベルになると、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとを立ち上げる。データ読み出しイネーブル信号D_renaはタイミングt5〜t7の間、ハイレベルになり、制御情報読み出しイネーブル信号C_renaはタイミングt5においてハイレベルになる。よって、タイミングt6〜t8の間、データ用FIFOバッファ21に格納されているデータrDATAが読み出される。また、タイミングt6において、制御情報用FIFOバッファ22に格納されている制御情報C_rDATAが読み出される。
本実施の形態にかかるデータ転送装置1では、タイミングt5において、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとを同時に立ち上げている。よって、データrDATAの読み出し開始のタイミングと、制御情報C_rDATAの読み出し開始のタイミングとをそろえることができる。よって、パケットD1(データrDATA)の先頭からデータの出力を制御することができる。
図7に示すデータ処理部33のセレクタ42は、制御情報I_CTRL_INFO(lat_Err)が正常であり、制御情報PORT_INFO(lat_Port)がポートP1を示すので、タイミングt6〜t8において、パケットD1(データrDATA)を出力ポートO_P1_DATAに出力する。
次に、パケットD2の動作について説明する。パケットD2では、パケットD1の末端を示すラスト情報I_LASTが立ち上がった後のタイミングt4〜t10に、データ用FIFOバッファ21にデータwDATA(パケットD2)が書き込まれる。また、タイミングt10にパケットD2の末端を示すラスト情報I_LASTが立ち上がるので、制御情報書き込みイネーブル信号C_wenaが立ち上がり、制御情報用FIFOバッファ22に制御情報C_wDATAが書き込まれる。なお、パケットD2の書き込み動作については、パケットD1の書き込み動作と同様である。
その後、タイミングt11では、読み出し動作が行われておらず、また、data_exist信号がハイレベルになるので、データ読み出しイネーブル信号D_renaと制御情報読み出しイネーブル信号C_renaとが立ち上がる。よって、タイミングt13〜t19の間、データ用FIFOバッファ21に格納されているデータrDATAが読み出される。また、タイミングt13において、制御情報用FIFOバッファ22に格納されている制御情報C_rDATAが読み出される。パケットD2では、制御情報PORT_INFO(lat_Port)がポートP2を示すので、タイミングt13〜t19において、パケットD2(データrDATA)が出力ポートO_P2_DATAに出力される。なお、パケットD2の読み出し動作については、パケットD1の読み出し動作と同様である。
次に、パケットD3の動作について説明する。パケットD3の動作についても、基本的にはパケットD1、D2の動作と同様である。パケットD1、D2の動作と異なる点は、パケットD3の制御情報I_CTRL_INFOがエラーを示す点、及びパケットD3の書き込みが終了するタイミングt14において、パケットD2の読み出し動作が終了していない点である。
パケットD3では、パケットD2の末端を示すラスト情報I_LASTが立ち上がった後のタイミングt11〜t14に、データ用FIFOバッファ21にデータwDATA(パケットD3)が書き込まれる。また、タイミングt14にパケットD3の末端を示すラスト情報I_LASTが立ち上がるので、制御情報書き込みイネーブル信号C_wenaが立ち上がり、制御情報用FIFOバッファ22に制御情報C_wDATAが書き込まれる。なお、パケットD3の書き込み動作については、パケットD1、D2の書き込み動作と同様である。
タイミングt14に制御情報書き込みイネーブル信号C_wenaが立ち上がると、図5に示すカウンタ35は、タイミングt15においてカウント値data_countをカウントアップする。これによりカウント値data_countが“1”となるので、制御情報が格納されていることを示すdata_exist信号がタイミングt15で立ち上がる。しかしながら、タイミングt15ではパケットD2の読み出しが終了していないため、データ読み出しイネーブル信号D_renaがハイレベルの状態となっている。このため、読み出しデータrDATAの最後を示すrLAST信号が立ち上がるまで、パケットD3の制御情報C_rDATAの読み出しが禁止される。
その後、タイミングt19にrLAST信号が立ち上がると、制御情報読み出しイネーブル信号C_renaが立ち上がる。これにより、タイミングt20において、制御情報用FIFOバッファ22に格納されている制御情報C_rDATAが読み出される。
パケットD3においても、タイミングt20において、データrDATAの読み出し開始のタイミングと、制御情報C_rDATAの読み出し開始のタイミングとをそろえることができる。よって、パケットD3(データrDATA)の先頭からデータの出力を制御することができる。
また、パケットD3では、制御情報I_CTRL_INFOがエラーを示すので、タイミングt20〜t23において、パケットD3(データrDATA)がエラー出力ポートO_Err_DATAに出力される。
以上で説明した本実施の形態にかかる発明により、パケットの制御処理を柔軟に実施することが可能なデータ転送装置、及びデータ転送方法を提供することができる。
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
1 データ転送装置
10 入力制御部
11 制御情報生成部
12 書き込みイネーブル信号生成部
20 FIFO部
21 データ用FIFOバッファ
22 制御情報用FIFOバッファ
30 出力制御部
31 制御情報カウント部
32 読み出しイネーブル信号生成部
33 データ処理部

Claims (8)

  1. 所定のパケット長を有するパケットに含まれるデータを格納する第1のFIFOバッファと、
    前記パケットの制御情報を格納する第2のFIFOバッファと、
    前記データを前記第1のFIFOバッファに格納するタイミング、及び前記制御情報を前記第2のFIFOバッファに格納するタイミングを制御する入力制御部と、
    前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、
    前記出力制御部は、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御
    前記パケットの制御情報には、前記パケットに含まれている第1の制御情報と、外部から供給される第2の制御情報と、が含まれており、
    前記入力制御部は、入力される前記第1及び第2の制御情報のうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、前記第1及び第2の制御情報を前記第2のFIFOバッファに格納する、
    データ転送装置。
  2. 前記入力制御部は、前記第1の制御情報と前記第2の制御情報とをラッチするラッチ回路を備え、
    前記入力制御部は、前記第1及び第2の制御情報のうち時間軸上最も遅く入力される制御情報が入力されたタイミングで、前記ラッチ回路にラッチしている前記第1及び第2の制御情報を前記第2のFIFOバッファに格納する、
    請求項に記載のデータ転送装置。
  3. 所定のパケット長を有するパケットに含まれるデータを格納する第1のFIFOバッファと、
    前記パケットの制御情報を格納する第2のFIFOバッファと、
    前記データを前記第1のFIFOバッファに格納するタイミング、及び前記制御情報を前記第2のFIFOバッファに格納するタイミングを制御する入力制御部と、
    前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、
    前記出力制御部は、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御し、
    前記出力制御部は、前記第2のFIFOバッファに前記制御情報が格納されているか否かを判定可能に構成されており、前記第2のFIFOバッファに前記制御情報が格納されていると判定した場合、前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する、
    データ転送装置。
  4. 前記出力制御部は、前記入力制御部が前記第2のFIFOバッファに前記制御情報を書き込む際に出力する制御情報書き込みイネーブル信号を入力可能に構成されており、
    前記出力制御部は、入力された前記制御情報書き込みイネーブル信号に基づいて、前記第2のFIFOバッファに前記制御情報が格納されているか否かを判定し、前記第2のFIFOバッファに前記制御情報が格納されていると判定した場合、前記第1のFIFOバッファに格納されているデータを読み出すためのデータ読み出しイネーブル信号、及び前記第2のFIFOバッファに格納されている制御情報を読み出すための制御情報読み出しイネーブル信号を生成する、
    請求項に記載のデータ転送装置。
  5. 前記出力制御部は、前記第2のFIFOバッファに前記制御情報が格納されていると判定した場合、前記データ読み出しイネーブル信号と前記制御情報読み出しイネーブル信号とを同時に活性状態とする、請求項に記載のデータ転送装置。
  6. 所定のパケット長を有するパケットに含まれるデータを格納する第1のFIFOバッファと、
    前記パケットの制御情報を格納する第2のFIFOバッファと、
    前記データを前記第1のFIFOバッファに格納するタイミング、及び前記制御情報を前記第2のFIFOバッファに格納するタイミングを制御する入力制御部と、
    前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、
    前記出力制御部は、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御し、
    前記制御情報は前記データの出力ポートを示すポート情報であり、
    前記出力制御部は、前記第1のFIFOバッファから読み出したデータを前記ポート情報に応じたポートに出力する、
    データ転送装置。
  7. 所定のパケット長を有するパケットに含まれるデータを格納する第1のFIFOバッファと、
    前記パケットの制御情報を格納する第2のFIFOバッファと、
    前記データを前記第1のFIFOバッファに格納するタイミング、及び前記制御情報を前記第2のFIFOバッファに格納するタイミングを制御する入力制御部と、
    前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する出力制御部と、を備え、
    前記出力制御部は、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御し、
    前記制御情報は前記データのエラー情報であり、
    前記出力制御部は、前記エラー情報がエラーを示す場合、前記第1のFIFOバッファから読み出したデータを無効にする、
    データ転送装置。
  8. 所定のパケット長を有するパケットに含まれるデータを第1のFIFOバッファに格納するタイミングと、前記パケットの制御情報を第2のFIFOバッファに格納するタイミングと、を制御する第1のステップと、
    前記第1のFIFOバッファに格納されているデータ、及び前記第2のFIFOバッファに格納されている制御情報を読み出し、前記読み出した制御情報を用いて前記読み出したデータの出力を制御する第2のステップと、を備え、
    前記第2のステップにおいて、前記第1のFIFOバッファから前記データを読み出すタイミングと前記第2のFIFOバッファから前記制御情報を読み出すタイミングとを調整して、前記パケットの先頭から前記データの出力を制御
    前記パケットの制御情報には、前記パケットに含まれている第1の制御情報と、外部から供給される第2の制御情報と、が含まれており、
    入力される前記第1及び第2の制御情報のうち、時間軸上最も遅く入力される制御情報が入力されたタイミングで、前記第1及び第2の制御情報を前記第2のFIFOバッファに格納する、
    データ転送方法。
JP2018038838A 2018-03-05 2018-03-05 データ転送装置、及びデータ転送方法 Active JP6828961B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018038838A JP6828961B2 (ja) 2018-03-05 2018-03-05 データ転送装置、及びデータ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018038838A JP6828961B2 (ja) 2018-03-05 2018-03-05 データ転送装置、及びデータ転送方法

Publications (2)

Publication Number Publication Date
JP2019153967A JP2019153967A (ja) 2019-09-12
JP6828961B2 true JP6828961B2 (ja) 2021-02-10

Family

ID=67947238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018038838A Active JP6828961B2 (ja) 2018-03-05 2018-03-05 データ転送装置、及びデータ転送方法

Country Status (1)

Country Link
JP (1) JP6828961B2 (ja)

Also Published As

Publication number Publication date
JP2019153967A (ja) 2019-09-12

Similar Documents

Publication Publication Date Title
KR100942953B1 (ko) 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치
US7269754B2 (en) Method and apparatus for flexible and programmable clock crossing control with dynamic compensation
KR100568546B1 (ko) 메모리 시스템, 반도체 메모리 장치, 및 이 시스템과장치의 출력 데이터 스트로우브 신호 발생 방법
JP4998519B2 (ja) 非同期インタフェース回路及び非同期データ転送方法
US6816955B1 (en) Logic for providing arbitration for synchronous dual-port memory
JP4980703B2 (ja) 制御システムの出力値を更新する数値制御の制御システムにおけるシリアルデータ転送
JP5433593B2 (ja) メモリインターフェイスのタイミング調整回路および方法
CN111512261A (zh) 具有指针偏移的异步缓冲器
JP6828961B2 (ja) データ転送装置、及びデータ転送方法
JP6004463B2 (ja) 記憶装置及びその制御方法
JP2015103262A (ja) 半導体装置
KR101092995B1 (ko) 반도체 메모리 장치와 그의 구동 방법
JP4502792B2 (ja) データバッファ回路
JP2009026370A (ja) 同期型記憶装置及びその制御方法
WO2012117530A1 (ja) 信号遅延装置、信号遅延装置の制御方法
JP2006164070A5 (ja)
JP4389459B2 (ja) データバッファ装置
JP2021067712A (ja) 情報処理装置、情報処理方法及びプログラム
JP2009163285A (ja) 出力ポート、マイクロコンピュータ、及びデータ出力方法
JP6493044B2 (ja) マルチプロセッサシステム
JP4993892B2 (ja) メモリ・コントローラ
JP5546356B2 (ja) メモリ装置及び信号処理装置
JP2015053095A (ja) メモリ、メモリシステムおよびメモリの制御方法
JP4149345B2 (ja) データ転送制御装置および該データ転送制御装置を備えるデータ駆動型プロセッサ
JP4549073B2 (ja) メモリ制御回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210114

R150 Certificate of patent or registration of utility model

Ref document number: 6828961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150