(57)【要約】【課題】送信側クロックと受信側クロックが異なる多ビットデータ転送において、ビットスキューを考慮することなく、動的にクロック周波数が変化する場合にも対応可能な、低コストで多ビットのデータを転送するデータ転送装置を提供すること。【解決手段】データ転送装置は、送信状態情報と受信状態情報の値が同じ場合に送信側クロックに同期して送信データを入力して保持する送信データ保持手段と、送信状態変化情報の値を元に保持された送信データを受信側クロックに同期して取得する受信データ保持手段と、送信データ保持手段が送信データを入力した時点で送信状態情報の値を変更して保持する送信状態情報保持手段と、受信データ保持手段が送信データを取得した時点で受信状態情報と送信状態変化情報の値を変更して保持し送信状態情報と受信状態情報の値が異なる場合に受信側クロックに同期して送信状態変化情報の値を変更して保持する受信状態情報保持手段を有することを特徴とする。【選択図】      図１
2014045423.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックに同期して送信データを送信する送信手段から、第２のクロックに同期して受信データを受信する受信手段に、前記送信データを転送する、データ転送装置であって、
送信状態情報の値と受信状態情報の値が同じ場合に、前記送信手段から、前記第１のクロックに同期して前記送信データを入力して保持する、送信データ保持手段と、
送信状態変化情報の値を元にして、前記送信データ保持手段に保持された前記送信データを、前記第２のクロックに同期して転送データとして取得して保持し、前記転送データを前記受信データとして出力する、受信データ保持手段と、
前記送信データ保持手段が前記送信手段から前記送信データを入力した時点で、前記送信状態情報の値を変更して保持する、送信状態情報保持手段と、
前記受信データ保持手段が前記送信データ保持手段に保持された前記送信データを前記転送データとして取得した時点で、前記受信状態情報の値と前記送信状態変化情報の値を変更して保持し、前記送信状態情報の値と前記受信状態情報の値が異なる場合に、前記第２のクロックに同期して、前記送信状態変化情報の値を変更して保持する、受信状態情報保持手段と
を有することを特徴とする、データ転送装置。
【請求項２】
前記送信データ、前記送信状態情報、前記受信状態情報、及び、前記送信状態変化情報は２つの値をとるデジタルデータであることを特徴とする、請求項１に記載のデータ転送装置。
【請求項３】
前記送信データ保持手段は、前記送信手段から、送信データ有効情報をさらに入力し、前記送信状態情報の値と前記受信状態情報の値が同じ場合に、前記送信データ有効情報の値を元にして、前記入力した送信データの保持を維持する
ことを特徴とする、請求項１または２に記載のデータ転送装置。
【請求項４】
第１のクロックに同期して送信される送信データを、第２のクロックに同期して受信される受信データとして転送する、データ転送方法であって、
送信状態情報の値と受信状態情報の値が同じ場合に、前記第１のクロックに同期して前記送信データを入力して保持し、前記送信状態情報の値を変更する、送信データ保持ステップと、
前記送信状態情報の値と前記受信状態情報の値が異なる場合に、前記第２のクロックに同期して、送信状態変化情報の値を変更するステップと、
前記送信状態変化情報の値を元にして、前記保持された送信データを、前記第２のクロックに同期して転送データとして取得して保持し、前記受信状態情報の値と前記送信状態変化情報の値を変更する、受信データ保持ステップと、
前記保持された転送データを前記受信データとして出力する、受信データ出力ステップと
を有することを特徴とする、データ転送方法。
【請求項５】
前記送信データ、前記送信状態情報、前記受信状態情報、及び、前記送信状態変化情報は２つの値をとるデジタルデータであることを特徴とする、請求項４に記載のデータ転送方法。
【請求項６】
送信データ有効情報をさらに入力し、前記送信状態情報の値と前記受信状態情報の値が同じ場合に、前記送信データ有効情報の値を元にして、前記入力した送信データの保持を維持するステップ
をさらに有することを特徴とする、請求項４または５に記載のデータ転送方法。
【請求項７】
第１のクロックに同期して送信される送信データを、第２のクロックに同期して受信される受信データとして転送する、データ転送プログラムであって、
送信状態情報の値と受信状態情報の値が同じ場合に、前記第１のクロックに同期して前記送信データを入力して保持し、前記送信状態情報の値を変更する、送信データ保持処理と、
前記送信状態情報の値と前記受信状態情報の値が異なる場合に、前記第２のクロックに同期して、送信状態変化情報の値を変更する処理と、
前記送信状態変化情報の値を元にして、前記保持された送信データを、前記第２のクロックに同期して転送データとして取得して保持し、前記受信状態情報の値と前記送信状態変化情報の値を変更する、受信データ保持処理と、
前記保持された転送データを前記受信データとして出力する、受信データ出力処理と
をコンピュータに行わせることを特徴とする、データ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信側から受信側にデータを転送するデータ転送装置、データ転送方法及びプログラムに関し、特に、送信側クロックと受信側クロックが非同期の転送システムにおいて、多ビットのデジタルデータを転送する転送装置、転送方法及びプログラムに関する。
【背景技術】
【０００２】
送信側から受信側にデジタルデータを転送するシステムにおいて、送信側で用いられるクロックと受信側で用いられるクロックが非同期の場合、転送するデータのクロック乗り換え処理が必要である。
【０００３】
送信側システムには送信用の動作クロックに従って同期動作を行う送信用フリップフロップが設けられ、受信側システムには受信用の動作クロックに従って同期動作を行う受信用フリップフロップが設けられる。
【０００４】
フリップフロップの動作にはセットアップ時間及びホールド時間があり、クロックの立ち上がり前後の所定の期間は入力信号を一定の値に維持する必要がある。
【０００５】
しかしながら、非同期クロックのデータ転送システムではこの期間内で入力信号の値が変化することがあり、この変化によりフリップフロップの出力信号が発振して不安定になることがある。この状態はメタステーブル状態と呼ばれる。メタステーブル状態が発生すると、これ以降の論理回路へのデジタルデータの転送が正常に行われないおそれがある。
【０００６】
メタステーブル状態の発生を抑制するために、受信側システムにレジスタを２段重ねた構成が提案されている（例えば、特許文献１参照）。最初のレジスタでメタステーブル状態が発生しても、２段目のレジスタでメタステーブル状態が除去された信号が内部のロジックに供給される。
【０００７】
また、複数のビットデータを並列に伝送する並列伝送路では、各伝送路のデータ遅延量が相違する。この相違はスキューと呼ばれる。スキューにより受信側ではデータ取り込みのタイミングが信号の変化点を越えることがあり、これにより誤ったデータビットを受信するおそれがある。
【０００８】
このスキューの影響を排除するために、最大遅延量と最小遅延量を有するような２本の制御用伝送路を設け、制御用伝送路のそれぞれに同相かつ同周波数で変化する信号を送り、取り込んだ伝送路信号が不一致になる期間を検出し、不一致期間でない期間にデータ処理を行う構成が提案されている（例えば、特許文献２参照）。
【０００９】
クロック周波数が変化しない状況下においてのみ、クロック周波数の違いを考慮し、データ間スキューを考慮してデータ転送を実施可能な仕組みが存在する（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４２９０４１２号公報
【特許文献２】特許第４４０８０２２号公報
【特許文献３】特開２００４−１１０７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
送信側装置のクロックと受信側装置のクロックが非同期であるデータ転送システムにおいては、受信側装置でのメタステーブル状態の発生を抑制しつつスキューの影響を回避するように多ビットのデータを転送する必要がある。
【００１２】
図７は、関連技術における非同期クロック間データ転送装置の構成を示す。
【００１３】
メタステーブル状態の発生を抑制するために単ビットでデータを転送する場合は、特許文献１の開示するデータ転送装置のように、受信側装置が２段に重ねたレジスタの構成を備える。一方、多ビットでデータを転送する場合は、図７に示されるように、デュアルポートメモリを使用したＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）１０１を送信側クロック領域１１１と受信側クロック領域１１２にまたがるように配置する。このデュアルポートメモリ型ＦＩＦＯ１０１には送信側から送信データ１１３が書き込まれ、所定のタイミングで送信側クロック領域１１１から受信側クロック領域１１２に渡されたデータが受信データ１１４として読み出されて受信側に出力される。
【００１４】
解決しようとする第１の課題は、多ビットのデータ転送ではデータ間スキューの影響を受けるため、必ずしも正しいデータを受信できないことである。
【００１５】
送信側のデータ変化と受信側クロックの立ち上がりが同時に発生した場合、受信側はデータ変化前のデータ、データ変化後のデータもしくは、メタステーブル状態の３つの状態のいずれかの状態をとる。多ビットのデータの場合は、各ビットのスキューの違いによりビット毎に異なった前述の３状態のいずれかの状態となるため、正しいデータを受信できない。すなわち、特許文献１の開示するデータ転送装置はスキューの違いによる誤送信を検出できない。
【００１６】
また、多ビットでデータ転送をする場合に、図７に示されるデュアルポートメモリを使用するＦＩＦＯを配置した場合、非同期クロック間データ転送装置は図７で示されるデュアルポートメモリの大きさのメモリが必要になる。特許文献２に開示される、最小遅延量と最大遅延量とをもつ制御用伝送路から取り込んだ伝送路信号が不一致となる期間を検出する非同期データ転送装置は、図７に示されるデュアルポートメモリの大きさの回路を必要とする。通常、デュアルポートメモリは大型の電子部品である。このため、解決しようとする第２の課題として、メタステーブル状態への対策を講じると、受信側の回路面積が増加するという問題がある。この回路面積の増大は転送装置の小型化の障害であり、また装置の製造コストを引き上げる要因の一つである。
【００１７】
解決しようとする第３の課題は、クロック周波数の動的な変化に対応可能とすることである。
【００１８】
クロック周波数は、消費電力に多大な影響を与えるため、クロック周波数が動的に変化することは当然発生しうる。
【００１９】
特許文献３の開示するデータ転送装置は、転送データをラッチする複数の転送ユニットを有しており、各転送ユニットを巡回的に切替えながら送信許可信号と受信許可信号を外部に出力すると共にデータをラッチする。該データ転送装置は送信側で送信許可信号と同期させてデータを送信し、受信側で受信許可信号と同期させてデータを受信する。特許文献３が開示するデータ転送装置は、スキューによる誤動作を複数の転送ユニットに配分して回避するが、転送装置の規模が大きく製造コストが莫大になるという問題がある。
【００２０】
本発明は上述した点に鑑みてなされたもので、送信側クロックと受信側クロックが異なる多ビットデータ転送において、クロック周波数の動的変化に対応可能であり、正確にデータ転送を実現しつつ、小さな回路面積を有し、コストを抑制したデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記の目的を達成するため、本発明のデータ転送装置は、第１のクロックに同期して送信データを送信する送信手段から第２のクロックに同期して受信データを受信する受信手段に送信データを転送するデータ転送装置であって、送信状態情報の値と受信状態情報の値が同じ場合に送信手段から第１のクロックに同期して送信データを入力して保持する送信データ保持手段と、送信状態変化情報の値を元にして送信データ保持手段に保持された送信データを第２のクロックに同期して転送データとして取得して保持し転送データを受信データとして出力する受信データ保持手段と、送信データ保持手段が送信手段から送信データを入力した時点で送信状態情報の値を変更して保持する送信状態情報保持手段と、受信データ保持手段が送信データ保持手段に保持された送信データを転送データとして取得した時点で受信状態情報の値と送信状態変化情報の値を変更して保持し送信状態情報の値と受信状態情報の値が異なる場合に第２のクロックに同期して送信状態変化情報の値を変更して保持する受信状態情報保持手段とを有することを特徴とする。
【００２２】
また、本発明のデータ転送方法は、第１のクロックに同期して送信される送信データを第２のクロックに同期して受信される受信データとして転送するデータ転送方法であって、送信状態情報の値と受信状態情報の値が同じ場合に第１のクロックに同期して送信データを入力して保持し送信状態情報の値を変更する送信データ保持ステップと、送信状態情報の値と受信状態情報の値が異なる場合に第２のクロックに同期して送信状態変化情報の値を変更するステップと、送信状態変化情報の値を元にして保持された送信データを第２のクロックに同期して転送データとして取得して保持し受信状態情報の値と送信状態変化情報の値を変更する受信データ保持ステップと、保持された転送データを受信データとして出力する受信データ出力ステップとを有することを特徴とする。
【００２３】
さらに、本発明のデータ転送プログラムは、第１のクロックに同期して送信される送信データを第２のクロックに同期して受信される受信データとして転送するデータ転送プログラムであって、送信状態情報の値と受信状態情報の値が同じ場合に第１のクロックに同期して送信データを入力して保持し送信状態情報の値を変更する送信データ保持処理と、送信状態情報の値と受信状態情報の値が異なる場合に第２のクロックに同期して送信状態変化情報の値を変更する処理と、送信状態変化情報の値を元にして保持された送信データを第２のクロックに同期して転送データとして取得して保持し受信状態情報の値と送信状態変化情報の値を変更する受信データ保持処理と、保持された転送データを受信データとして出力する受信データ出力処理とをコンピュータに行わせることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、受信状態情報保持部の内部でメタステーブル状態が発生するような条件下であっても、メタステーブル状態の影響が抑えられ、送信状態情報保持部の変化が検知可能である。また、メタステーブル状態が発生した場合でも、安定した多ビットデータ送信が可能である。さらに、第１のクロック及び第２のクロックが動的に変化する場合にも対応可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態に係るデータ転送装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係るデータ転送装置における動作の一例を説明するタイムチャートである。
【図３】本発明の第１の実施形態に係るデータ転送装置における動作の別の例を説明するタイムチャートである。
【図４】本発明の第１の実施形態に係るデータ転送装置における動作の一例を説明する表である。
【図５】本発明の第２の実施形態に係るデータ転送装置の構成の一例を示すブロック図である。
【図６】本発明の第２の実施形態に係るデータ転送装置における動作の一例を説明するタイムチャートである。
【図７】関連技術における多ビットデータ転送システムの構成を示すブロック図である。
【図８】本発明の第１の実施形態に係るデータ転送装置の動作を説明するためのクロック周波数が動的に変化する場合のタイムチャートである。
【発明を実施するための形態】
【００２６】
発明を実施するための最良の形態について図面を参照して詳細に説明する。ただし、本発明は以下に示す実施形態に限定されない。
［第１の実施形態］
［構成］
図１は、本発明の第１の実施形態に係るデータ転送装置２０１の構成の一例を示すブロック図である。
【００２７】
図１において、データ転送装置２０１の中央に引かれた中心線について左側は、送信側クロックに従って動作する送信側クロック領域２１１である。また、中央線について右側は、受信側クロックに従って動作する受信側クロック領域２１２である。
【００２８】
送信側クロック領域２１１はデータ送信部２０２からデータ転送装置２０１に入力される送信データ（２１３）を送信データ保持部２１５において保持し、受信側クロック領域へ該データを転送する（２１９）。また、入力された送信データの状態を示す送信状態情報を制御し、送信状態情報保持部２１６を介して受信側クロック領域２１２に渡す（２２０）。
【００２９】
送信データ保持部２１５は、送信状態情報保持部２１６から送信データの状態についての送信状態情報を参照する（２２２）。送信データ保持部２１５はさらに、受信状態情報保持部２１８から受信データの状態についての受信状態情報を参照し（２２４）、該送信状態情報と該受信状態情報とを比較する。送信状態と受信状態が同じ状態であると判定されるとデータの転送が完了し、送信側に新たな送信データが入力可能であると判断される。このとき送信側クロック領域２１１は、データ送信部２０２から送信データを取り込む（２１３）。さらに、送信データ保持部２１５は、送信データを取り込む（２１３）時期を示す時期情報を送信状態情報保持部２１６に通知する（２２１）。
【００３０】
送信状態情報保持部２１６は、送信データ保持部２１５から通知された時期情報（２２１）に従って、送信データの送信状態情報を０から１もしくは１から０に変更する。変更した送信状態情報は送信データ保持部２１５に通知され（２２２）、さらに受信状態情報保持部２１８に通知される（２２０）。
【００３１】
受信側クロック領域２１２は、送信データ保持部２１５から転送されたデータを受信データ保持部２１７に取り込む（２１９）。処理時期の調整により、このデータ受信はデータ間スキューやメタステーブル状態の影響を受けない。取り込まれた受信信号は、受信側クロックに同期した信号としてデータ受信部２０３に出力される（２１４）。
【００３２】
受信状態情報保持部２１８には送信状態情報保持部２１６から送信状態情報が通知される（２２０）。受信状態情報保持部２１８は該送信状態情報の変化を検出し、検出された送信状態変化情報を受信データ保持部２１７に通知する（２２３）。さらに受信状態情報保持部２１８は、受信状態情報保持部２１８に保持される受信データの受信状態情報を送信データ保持部２１５に通知する（２２４）。
【００３３】
受信データ保持部２１７は、送信状態情報保持部２１６からの送信状態情報の変化について、検出された送信状態変化情報を受信状態情報保持部２１８から通知され（２２３）、該送信状態変化情報の値を元にした時期に、送信データ保持部２１５から送信データを取り込む（２１９）。受信データ保持部２１７は、さらに、受信したデータを受信側クロックに同期した信号として、データ受信部２０３に出力する（２１４）。
［動作］
次に、本発明の第１の実施形態に係るデータ転送装置の動作の一例をタイムチャートとして図２及び３に示す。
【００３４】
さらに、送信側クロック周波数及び、受信側クロック周波数が変化した場合の動作例を図８に示す。
【００３５】
図２及び３において、送信データ入力と付されたデータは図１においてデータ送信部２０２から送信データ保持部２１５へ入力される送信データ入力２１３に該当する。送信状態情報は図１において送信状態情報保持部２１６から参照される状態情報であり、２２２及び２２０に示される参照動作により参照される情報に該当する。送信データ保持部と付されたデータは、図１において送信データ保持部２１５から受信データ保持部２１７へ移動する（送信データ転送２１９）前に送信データ保持部２１５に保持されるデータに該当する。受信状態情報は図１において受信状態情報保持部２１８から参照される状態情報であり、２２４に示される参照動作により参照される情報に該当する。受信データ保持部と付されたデータは、図１において受信データ保持部２１７からデータ受信部２０３へ出力される（受信データ出力２１４）前に受信データ保持部２１７に保持されるデータに該当する。送信状態変化情報は図１において受信状態情報保持部２１８から参照される状態情報であり、２２３に示される参照動作により参照される情報に該当する。
【００３６】
次に、図２を参照して、図１に示されるデータ転送装置２０１の動作の一例を説明する。
【００３７】
図２は送信クロックが受信クロックよりも速い場合のタイミングチャートの例を示し、図３は送信クロックが受信クロックよりも遅い場合のタイミングチャートの例を示す。
【００３８】
図２及び３において、送信側と受信側はそれぞれのクロックの立ち上がりをトリガとして、状態情報の値の比較及び該比較の結果を元にした状態情報の値及び保持値の変更或いは維持を行う。
【００３９】
状態情報の値及び保持値のそれぞれにおいては、値の変更時の立ち上がり或いは立下りがセットアップ時間及びホールド時間を考慮した形状で表される。
【００４０】
図２において、タイミングＴＩＭ１で、受信側の動作として受信状態情報が０に変わる。このとき、送信状態情報の値及び送信状態変化情報の値は０であるとする。
【００４１】
タイミングＴＩＭ２において、送信側の動作として送信状態情報と受信状態情報の値が比較される。このとき、これらの状態情報の値は同じ値である。このため受信データ保持部２１７が転送された送信データを保持したと判断され、送信データ入力のＤＡＴＡ１が送信データとして送信データ保持部２１５に保持される。このとき、送信状態情報は０から１に変更される。
【００４２】
タイミングＴＩＭ３において、送信側の動作として送信データ入力の値を変更する。
【００４３】
タイミングＴＩＭ４において、受信側の動作として送信状態情報と受信状態情報の値が比較される。このとき、これらの状態情報の値は互いに異なる値をとる。このため、送信データ保持部２１５に新たな送信データが保持されたと判断される。このとき、送信状態変化情報は０から１に変更される。
【００４４】
タイミングＴＩＭ５において、受信側の動作として送信状態変化情報が参照される。送信状態変化情報の値は１である。このとき送信データ保持部２１５に保持される送信データのＤＡＴＡ１が、受信データ保持部２１７に受信データとして保持される。さらに送信状態変化情報の値が１から０に、受信状態情報の値が０から１に変更される。
【００４５】
上記のように、送信データ保持部２１５に保持される送信データがデータ送信部２０２から入力され受信クロックで１サイクル以上の時間が経過してから、送信データ保持部２１５に保持された送信データＤＡＴＡ１が受信データ保持部２１７に保持される。このため、データ間スキュー及びメタステーブル状態の影響が排除され正確なデータが保持される。
【００４６】
タイミングＴＩＭ６において、送信側の動作として送信状態情報の値と受信状態情報の値が同じ値（１）であるので受信データ保持部２１７が送信データＤＡＴＡ１を保持したと判断され、送信データ入力のＤＡＴＡ２が送信データとして送信データ保持部２１５に保持される。このとき、送信状態情報の値は１から０に変更される。
【００４７】
タイミングＴＩＭ７において、送信側の動作として送信データ入力の値を変更する。
【００４８】
タイミングＴＩＭ８において、受信側の動作として送信状態情報の値（０）と受信状態情報の値（１）とが異なるので送信データ保持部２１５に新たな送信データが保持されたと判断され、送信状態変化情報の値が０から１に変更される。
【００４９】
タイミングＴＩＭ９において、受信側の動作として送信状態変化情報の値が１であるので送信データ保持部２１５に保持される送信データのＤＡＴＡ２が受信データ保持部２１７に受信データとして保持される。さらに送信状態変化情報の値が１から０に、受信状態情報の値が１から０に変更される。
【００５０】
さらにタイミングＴＩＭ１０において、送信側の動作として送信状態情報の値と受信状態情報の値とが同じである。この動作は上記のタイミングＴＩＭ２と同じである。
【００５１】
以下、この動作を繰り返す。
【００５２】
図３は、受信側クロックが送信側クロックよりも速い場合のタイミングチャートを示す。
【００５３】
図３においても送信状態情報の値を変更した時点から送信データ保持部２１５に保持された送信データが受信データ保持部２１７に受信データに保持されるまでは、送信状態変化情報の値が０から１に変更されて再び０に戻るまで、すなわち受信クロックの１サイクル以上の時間が経過する。このためデータ間スキュー及びメタステーブル状態の影響が排除され、データ転送の誤りを抑制することができる。
【００５４】
図４は、送信データの移動と状態情報の値を併記する。
【００５５】
送信側クロックの立ち上がりのタイミングで、送信状態情報の値と受信状態情報の値が比較される。両者の値が同じである（この場合は０）とき、データ送信部２０２から、送信データＤＡＴＡ１が送信データ保持部２１５に移動する。データの移動に伴い、送信状態情報の値を０から１に変更する。
【００５６】
次に、受信側クロックの立ち上がりのタイミングで送信状態情報の値（１）と受信状態情報の値（０）が比較され、両者の値が互いに異なる（この場合は１と０）場合は送信状態変化情報の値を０から１に変更する。
【００５７】
受信側クロックの立ち上がりのタイミングで送信状態変化情報の値が参照され、この値が１のときは送信データ保持部２１５に保持された送信データＤＡＴＡ１が受信データ保持部２１７に移動する。データの移動に伴い受信状態情報の値を０から１に変更し、送信状態変化情報の値を１から０に戻す。
【００５８】
次に、送信側クロックの立ち上がりのタイミングで送信状態情報の値と受信状態情報の値が比較される。両者の値が同じである（この場合は１）とき、データ送信部２０２から送信データＤＡＴＡ２が送信データ保持部２１５に移動する。データの移動に伴い送信状態情報の値を１から０に変更する。
【００５９】
受信側クロックの立ち上がりのタイミングで送信状態情報の値（０）と受信状態情報の値（１）が比較され、これらの値が互いに異なる（この場合は０と１）場合は送信状態変化情報の値を０から１に変更する。
【００６０】
受信側クロックの立ち上がりのタイミングで送信状態変化情報の値が参照され、この値が１のときは送信データ保持部２１５に保持された送信データＤＡＴＡ２が受信データ保持部２１７に移動する。データの移動に伴い受信状態情報の値を１から０に変更し、送信状態変化情報の値を１から０に戻す。
【００６１】
以下、この処理を繰り返す。
【００６２】
本実施形態によれば、送信データ保持部２１５は送信状態情報の値と受信状態情報の値を参照し、転送された送信データが受信データ保持部２１７に保持されたと判断したときに、データ送信部２０２から次の送信データを取り込む。
【００６３】
送信データ入力を取り込むタイミングは、送信側クロックが動的に変化した場合でも、送信側クロックに同期して、送信状態情報と受信状態情報の双方の値を確認する構成であるため、送信側のクロック周波数変化の影響を受けず、送信側クロック周波数の動的な変化に対応可能となる。
【００６４】
受信状態情報保持部２１８は送信状態情報の変化を検知して、送信状態変化情報の値を反転する。
【００６５】
受信データ保持部２１７は送信状態変化情報の値を参照して、送信データ保持部２１５に新たな情報が保持されていると判断したときに送信データ保持部２１５からデータを取り込む（送信データ転送）。取り込んで保持された送信データは、受信クロックの動作に同期して適宜データ受信部２０３に受信データとして出力される。
【００６６】
受信状態情報保持部２１８は、例えばレジスタを２段重ねた構造を有してもよい。この構造により送信状態情報の値の変化を検知する。レジスタの２段目の出力は、受信状態情報の値として送信データ保持部２１５へフィードバックされる。
【００６７】
受信状態情報保持部２１８で生成される送信状態変化情報の値は、受信側クロックに同期して変化する。送信状態情報の値の変化を検知してから受信データ保持部２１７が送信データを取り込むまでには、受信側クロックの少なくとも１サイクル分の時間が経過する。
【００６８】
上記の動作により、受信側クロックの立ち上がり（例えば、ＴＩＭ４）が送信状態情報の値の変更のタイミング（ＴＩＭ２）に近接する場合、受信状態情報保持部２１８では検出信号にメタステーブル状態が発生することがあるが、発生したとしても受信データ保持部２１７が送信状態変化情報を参照するのはこの時点よりも受信側クロックの１サイクル以降である。このためメタステーブル状態は収束し、送信状態情報の値の変更を検出する動作においてメタステーブル状態の影響は排除される。
【００６９】
メタステーブル状態が送信状態情報が変化する方向に収束する場合は、この受信側クロックの１サイクルの期間中のクロックの立ち上がり時に変化が検出されるのでメタステーブル状態の影響は抑制される。また、メタステーブル状態が送信状態情報が変化しない方向に収束する場合でも、このサイクルの１サイクル後のクロックの立ち上がり時に変化が検出されるのでメタステーブル状態の影響が排除される。このようにして、メタステーブル状態が発生した場合でも多ビットデータが安定して転送される。
【００７０】
また、送信データ保持部２１５から送信データが出力されるタイミングで送信状態情報の値が反転する。これにより、受信データ保持部２１７はデータ間スキューの影響を受けずに多ビットのデータを受信する。
【００７１】
受信側クロック周波数が動的に変化した場合でも、受信側クロックにて１サイクルの期間が補償される、検知信号生成の構成には変化がないため、受信側クロック周波数の動的な変化に対応可能となる。
［第２の実施形態］
次に、本発明の第２の実施形態に係るデータ転送装置について、図５及び６を参照して説明する。
【００７２】
本実施形態に係るデータ転送装置について、第１の実施形態に係るデータ転送装置と重複する構成要件には同じ参照番号を付して説明を省略する。
【００７３】
図５は、本実施形態に係るデータ転送装置５０１の構成の一例を示すブロック図である。
【００７４】
本実施形態に係るデータ転送装置５０１は、データ送信部２０２から送信データ有効５１１が入力されデータ送信部２０２に送信データ応答５１２を出力する送信データ保持部５１５を含む。
【００７５】
データ送信部２０２が送信データ保持部５１５に送信データ有効信号（５１１）を入力することにより、送信データの変更が入力されるまで送信データ保持部５１５に保持されている送信データの保持が維持される。
【００７６】
また、送信データ応答信号（５１２）が送信データ保持部５１５からデータ送信部２０２に返すことにより、送信データが送信データ保持部５１５に保持されていることをデータ送信部２０２に通知する。
【００７７】
上記の、送信データ有効信号５１１及び送信データ応答信号５１２を用いた動作は、送信データの変化が断続的である場合、特に受信側クロックにゲーテッドクロックを用いて受信間隔が一定でない場合などにデータ転送装置の不要な動作を抑制する。
【００７８】
本発明の第２の実施形態に係るデータ転送装置の動作の一例をタイムチャートとして図６に示す。
【００７９】
図６において、送信データ入力と付されたデータは図５における送信データ入力２１３に該当する。送信状態情報は図５において送信状態情報保持部２１６から参照される状態情報であり、２２２及び２２０に示される参照動作により参照される情報に該当する。送信データ保持部と付されたデータは、図５において送信データ保持部５１５から受信データ保持部２１７へ移動する前に送信データ保持部５１５に保持されるデータに該当する。受信状態情報は、図５において受信状態情報保持部２１８から参照される状態情報であり、２２４に示される参照動作により参照される情報に該当する。送信データ有効は図５の５１１に該当し、送信データ応答は図５の５１２に該当する。
【００８０】
なお図６における送信側クロックと受信側クロックは、第１の実施形態の図２における送信側クロックと受信側クロックと同じであるとする。すなわち図６において受信側の動作であるＴＩＭ１とＴＩＭ４のタイミングのそれぞれは、図２におけるＴＩＭ１とＴＩＭ５に対応する。
【００８１】
図６において、タイミングＴＩＭ１で、受信側の動作として受信状態情報が０に変わる。このとき、送信状態情報の値及び送信状態変化情報の値は０であるとする。
【００８２】
タイミングＴＩＭ２で、送信側の動作として送信状態情報と受信状態情報の値が比較される。このとき、両者の状態は同じ値０を有するので受信データ保持部２１７が転送された送信データを保持したと判断され、送信データ入力のＤＡＴＡ１が送信データとして送信データ保持部５１５に保持される。このとき送信状態情報は０から１に変更される。さらに、送信データ有効の値が１であるため送信データ入力のデータが更新済みであると判断され、送信データ応答を１に変更してデータ送信部２０２に返す。
【００８３】
タイミングＴＩＭ３においては、送信側の動作として、図２では次の送信データ入力の値がデータ送信部２０２に入りデータ転送装置５０１への入力を待つ状態になるが、本実施形態においては送信データ有効が参照され、この値が１であるためデータの変化はないと送信データ保持部５１５に通知されている。すなわち、データ送信部２０２ではＤＡＴＡ１が維持されており、送信データ保持部でもＤＡＴＡ１の保持が維持される。このとき、送信データ有効は０に変更される。
【００８４】
タイミングＴＩＭ４で、受信側の動作として送信データ保持部５１５に保持された送信データが受信データ保持部２１７に転送され、受信状態情報が０から１に変更される。
【００８５】
タイミングＴＩＭ５で、送信側の動作としてデータ送信部２０２の保持する送信データが更新される、なおこのとき、送信データの保持が維持されるため、送信データ有効が０から１に変更される。
【００８６】
タイミングＴＩＭ６では、送信側の動作として送信状態情報と受信状態情報の値が比較される。このとき、両者の状態は同じ値１を有するので送信データ入力のＤＡＴＡ２が送信データとして送信データ保持部５１５に保持される。このとき、送信状態情報は１から０に変更される。
【００８７】
タイミングＴＩＭ７において、送信側の動作として送信データ有効が参照されてこの値が１であるためデータの変化はないと送信データ保持部５１５に通知されており、送信データ保持部５１５でＤＡＴＡ２の保持が維持される。このとき、送信データ有効は０に変更される。
【００８８】
以下、この動作を繰り返す。
【００８９】
本実施形態に係るデータ転送装置によれば、転送される送信データが継続的に順次変化せずデータの変化が間欠的に発生する場合において、データ変化の発生時に送信データを転送するようデータ送信側で転送処理が制御される。
【００９０】
送信データが変化しない場合に、同一データを繰り返し転送するという不要な動作が抑制される。これにより、送信用及び受信用のフリップフロップの不要な同期動作の発生が抑圧される。従って、転送データの転送中の誤りの発生が抑制され転送装置の動作に必要な電力が削減され、運用コストを抑えた転送処理を行うデータ転送装置が提供される。
【００９１】
本発明に係るデータ転送装置は、送信側クロックと受信側クロックが異なるような送信側から受信側に多ビットのデジタルデータを転送するデータ転送システムにおいて、送信側及び受信側のそれぞれのフリップフロップの過渡特性に起因するメタステーブル状態の影響を抑圧し多ビットのデータ間スキューの影響を排除して信頼性の高いデータ転送を行うデータ転送装置であって、これらの処理が少ない構成要素で実行される。
【００９２】
第１の効果は、これにより、小さな面積の実装回路によりデータの転送処理が実行され、転送システムの製造コストが抑えられることである。
【００９３】
関連技術におけるデュアルポートメモリを使用したＦＩＦＯでは、デュアルポートメモリの回路面積が大きく製造コストの増大が不可避であった。
【００９４】
これに対して本発明に係るデータ転送装置は、データ送受信に使用されるデータビット幅が２倍であるレジスタと、送受信の状態情報に使用される３つのレジスタと、２つの排他論理和回路を含む。これにより、関連技術におけるＦＩＦＯよりもはるかに低コストで安定したデータ転送を行う転送装置が提供される。
【００９５】
第２の効果は、本発明に係るデータ転送装置は、送信側クロックと受信側クロックの速度差によらず、いずれが他方よりもクロック速度が大きい場合であっても、調整処理を追加することなくデータ転送システムに対応することである。
【００９６】
本発明では、送信側の状態と受信側の状態を１ビットの信号により送信側と受信側で互いに通知しているため、メタステーブル状態及びデータ間スキューの発生を回避してそれらによる影響を受けない。
【００９７】
第３の効果は、送信側クロック周波数と受信側クロック周波数のいずれが動的に変化しても対応できることである。
【００９８】
その理由は、送信側は送信データ入力を取り込むタイミングが送信側クロックに同期して、送信状態情報と受信状態情報の双方の値を確認する構成であり、受信側は受信側クロックにて１サイクル期間を補償する構成であるためである。
【産業上の利用可能性】
【００９９】
本発明は、送信側クロックと受信側クロックが異なる装置の多ビットデータ転送処理に好適に適用される。送信側クロックおよび受信側クロックがどのような周波数であっても、且つ動的に周波数変化が発生しても、本発明に係るデータ転送装置は対応可能であるため、クロックの動作にあわせた装置ごとの調整は不要である。
【符号の説明】
【０１００】
１０１    デュアルポートメモリ型ＦＩＦＯ
１１１    送信側クロック領域
１１２    受信側クロック領域
１１３    送信データ
１１４    受信データ
２０１、５０１    データ転送装置
２０２    データ送信部
２０３    データ受信部
２１１    送信側クロック領域
２１２    受信側クロック領域
２１５、５１５    送信データ保持部
２１６    送信状態情報保持部
２１７    受信データ保持部
２１８    受信状態情報保持部
【図１】
2014045423.tif 000003
【図２】
2014045423.tif 000004
【図３】
2014045423.tif 000005
【図４】
2014045423.tif 000006
【図５】
2014045423.tif 000007
【図６】
2014045423.tif 000008
【図７】
2014045423.tif 000009
【図８】
2014045423.tif 000010