(57)【要約】【課題】  誤動作を防止することができると共に、回路規模を削減することが可能なデータ転送回路を提供すること。【解決手段】  ライトポインタ５４は、ＦＩＦＯ５２のどの領域までデータを書込んだかを示す。また、リードポインタ５５は、ＦＩＦＯ５２のどの領域までデータを読出したかを示す。ライトポインタ５４およびリードポインタ５５は、ホットワンコードを用いたカウンタにより構成される。したがって、ポインタの値において“１”のビットが１つだけの場合のみデータの値を有効と判断できるようになり、誤動作を防止することが可能となる。また、冗長データを付加した値で表現することにより、デコード回路が不要となり、回路規模を削減することが可能となる。【選択図】        図３
2005210212.tif 000002
【特許請求の範囲】
【請求項１】
非同期ブロック間でデータ転送を行なうデータ転送回路であって、
先入れ先出しメモリと、
前記先入れ先出しメモリのどの領域までデータを書込んだかを示すライトポインタと、
前記先入れ先出しメモリのどの領域までデータを読出したかを示すリードポインタとを含み、
前記ライトポインタおよび前記リードポインタの少なくとも一方は、冗長データを付加して値を表現する、データ転送回路。
【請求項２】
前記ライトポインタおよび前記リードポインタの少なくとも一方は、ホットワンコードを用いて値を表現する、請求項１記載のデータ転送回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルＡＴＡ（AT Attachment）などのシリアル通信技術に関し、特に、非同期ブロック間におけるデータ転送を誤動作なく行なうことを可能にしたデータ転送回路に関する。
【背景技術】
【０００２】
一般に、シリアル通信は、同期転送と非同期転送とに分けることができる。同期転送は、クロックの周期および位相が一致するブロック間の転送であり、ＦＩＦＯ（First In First Out）が使用されることが多い。ＦＩＦＯのライト側にはライトポインタが設けられ、リード側にはリードポインタが設けられる。ＦＩＦＯの値をリード可能か否かの判定は、ライトポインタとリードポインタとの比較によって行なわれる。
【０００３】
ライトポインタがリードポインタよりも進んでいる場合は、ＦＩＦＯの値をリードすることが可能である。同期転送の場合には、後述するようにポインタの値が確定している期間にポインタの比較を行なうため、誤動作の可能性はない。
【０００４】
一方、このようなＦＩＦＯを非同期転送に適用した場合、ポインタの書換えのタイミングと、ポインタの比較のタイミングとが非同期となるため、後述するように変更途中のポインタ値を読出してしまい誤動作する可能性がある。
【０００５】
このような問題点を解決するための第１の技術として、多数決回路を用いたものがある。たとえば、ＲＸ（受信）側の１０ビットデータ４つを１ブロックとし、データ長を４０ビットにしてＴＸ（送信）側に転送する。このとき、ＲＸ系クロックで４クロックにわたってデータを不変とする。
【０００６】
ＴＸ側においては、転送されたデータを２段のレジスタで受ける。このとき、変更途中のデータを受取る可能性があるのは、４クロックのうち１クロックのみである。したがって、１段目のレジスタの値と２段目のレジスタの値とを比較すると、４クロックのうち少なくとも３クロックにわたって値が一致するので、多数決によって正しい値を決定することができる。正しいデータはＦＩＦＯに入れられ、それ以降の処理に使用される。
【０００７】
また、第２の技術として、バリッドビットによるハンドシェークを用いたものがある。非同期転送にＦＩＦＯを利用する場合、ＦＩＦＯの各データにバリッドビットを付加し、ライト時にはライト完了後にバリッドビットを立て、リード時にはリード完了後にバリッドビットを下ろす。このバリッドビットの操作によってハンドシェークを行ない、データを転送する。
【０００８】
これに関連する技術として、特開２００１−９４６１２号公報に開示された発明がある。この特開２００１-９４６１２号公報に開示された蓄積データ量監視回路においては、ＦＩＦＯのライトクロックとリードクロックとが同速度、非同期である場合に、ライトアドレスとリードアドレスとをグレイコードで生成することにより、ＦＩＦＯの蓄積データ量の監視を正確に行なうものである。
【特許文献１】特開２００１−９４６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した多数決回路を用いた技術においては、４クロックにわたるデータの多数決によって正しい値を決定することができる。しかしながら、４０ビット幅でデータを２段分保持するレジスタと、その比較回路が必要となるため、回路規模が大きくなるといった問題点があった。
【００１０】
また、バリッドビットによるハンドシェークを用いた技術においては、ＦＩＦＯの各データに付加されたバリッドビットの操作によってデータを正しく転送することができる。しかしながら、データごとにバリッドビットが必要となるため、それを実現するための回路規模が大きくなるといった問題点があった。
【００１１】
さらには、上述した特開２００１−９４６１２号公報に開示された蓄積データ量監視回路においては、ライトアドレスとリードアドレスとをグレイコードで生成することにより、ＦＩＦＯの蓄積データ量の監視を正確に行なうことができる。たとえば、８状態を表現するのに３ビットのグレイコードカウンタが必要になるが、グレイコードカウンタを用いた回路においては８状態を表現するのに３ビットのグレイコードをデコードし、８ビットの信号線として使用することが多い。したがって、デコード回路が必要になって回路規模が大きくなると共に、デコード回路による速度の低下といった問題点が発生する。
【００１２】
本発明は、上記問題点を解決するためになされたものであり、その目的は、誤動作を防止することができると共に、回路規模を削減することが可能なデータ転送回路を提供することである。
【課題を解決するための手段】
【００１３】
本発明のある局面に従えば、非同期ブロック間でデータ転送を行なうデータ転送回路であって、先入れ先出しメモリと、先入れ先出しメモリのどの領域までデータを書込んだかを示すライトポインタと、先入れ先出しメモリのどの領域までデータを読出したかを示すリードポインタとを含み、ライトポインタおよびリードポインタの少なくとも一方は、冗長データを付加して値を表現する。
【発明の効果】
【００１４】
本発明のある局面によれば、ライトポインタおよびリードポインタの少なくとも一方は、冗長データを付加して値を表現するので、ポインタの値において“１”のビットが１つだけの場合のみデータの値を有効と判断できるようになり、誤動作を防止することが可能となった。また、冗長データを付加した値で表現することにより、デコード回路が不要となり、回路規模を削減することが可能となった。
【発明を実施するための最良の形態】
【００１５】
まず、ＦＩＦＯを同期転送および非同期転送に用いた場合のタイミングチャートについて説明する。
【００１６】
図１（ａ）は、ＦＩＦＯを同期転送に用いた場合を示している。ライトポインタは受信クロック（RX clock）に同期し、リードポインタは送信クロック（TX clock）に同期してカウントを行なう。同期転送の場合には、受信クロックと送信クロックとが同期しているので、図１（ａ）に示すようにポインタの値が確定している期間にポインタの比較が行なわれるため、誤動作する可能性はない。
【００１７】
図１（ｂ）は、ＦＩＦＯを非同期転送に用いた場合を示している。非同期転送の場合には、受信クロックと送信クロックとが非同期であるため、図１（ｂ）に示すように変更途中のポインタの値が読出されてしまい誤動作する可能性がある。たとえば、図１（ｂ）に示すように、ライトポインタの値が“０００１”から“００１０”に変化する場合、リードポインタの値が“００００”か“００１１”となる可能性があるため、この期間に比較が行なわれると誤動作することになる。
【００１８】
図２は、本発明の実施の形態におけるトランシーバおよびレシーバの概略構成を示すブロック図であり、一例としてシリアルＡＴＡのトランシーバおよびレシーバを示す。トランシーバ１は、Ｐ／Ｓ（Parallel/Serial）変換回路１１と、ＰＬＬ回路１２と、差動トランシーバ１３とを含む。Ｐ／Ｓ変換回路１１は、１０ビットのパラレルデータ（３００ＭＨｚ）を１ビットのシリアルデータ（１．５ＧＨｚ）に変換して差動トランシーバ１３に出力する。ＰＬＬ回路１２は、３００ＭＨｚの送信クロック（TX clock）を生成してＰ／Ｓ変換回路１１に出力する。
【００１９】
レシーバ２は、ＲＸブロックと、ＴＸブロックとを含む。ＲＸブロックは、差動レシーバ２１と、データ抽出部２２と、ＰＬＬ回路２３と、Ｓ／Ｐ変換回路２４とを含む。また、ＴＸブロックは、ＰＬＬ回路３１と、データ転送回路４１とを含む。
【００２０】
データ抽出部２２は、差動レシーバ２１から出力された信号からデータを抽出してＰＬＬ回路２３およびＳ／Ｐ変換回路２４に出力する。ＰＬＬ回路２３は、データ抽出部２２から出力されたシリアルデータから３００ＭＨｚの受信クロック（Recovered Clock）を生成してＳ／Ｐ変換回路２４およびデータ転送回路４１に出力する。Ｓ／Ｐ変換回路２４は、ＰＬＬ回路２３からの受信クロックを受け、１ビットのシリアルデータ（１．５ＧＨｚ）を１０ビットのパラレルデータ（３００ＭＨｚ）に変換してデータ転送回路４１に出力する。
【００２１】
ＰＬＬ回路３１は、３００ＭＨｚの送信クロック（TX clock）を生成してデータ転送回路４１に出力する。シリアルＡＴＡにおいては、送信クロックと受信クロックとの位相が異なり、周波数差が最大±０．７８％だけ許容される仕様となっている。したがって、ＰＬＬ回路３１によって生成される送信クロックは、ＰＬＬ回路２３によって生成される受信クロックとが非同期となる。データ転送回路４１は、Ｓ／Ｐ変換回路２４から出力されるパラレルデータをバッファリングし、外部へ出力する。
【００２２】
図３は、本発明の実施の形態におけるデータ転送回路４１の内部構成を示すブロック図である。データ転送回路４１は、フリップフロップ（以下、ＦＦと略す。）５１および５３と、ＦＩＦＯ５２と、ライトポインタ５４と、リードポインタ５５とを含む。
【００２３】
ＦＦ５１は、Ｓ／Ｐ変換回路２４から出力されるパラレルデータを受け、ＦＩＦＯ５２へ出力する。このＦＦ５１は、ＰＬＬ回路２３から出力される受信クロックに同期して動作する。ＦＦ５３は、ＦＩＦＯ５２から出力されるパラレルデータを受け、外部へ出力する。このＦＦ５３は、ＰＬＬ回路３１から出力される送信クロックに同期して動作する。
【００２４】
ＦＩＦＯ５２は、ライトポインタ５４によって示される領域に、ＦＦ５１から出力されるデータを順次バッファリングする。そして、リードポインタ５５によって示される領域からデータを読出し、ＦＦ５３へ出力する。
【００２５】
ライトポインタ５４は、ホットワンコードを用いたカウンタによって構成され、ＦＩＦＯ５２のどの領域までデータを書込んだかを示す。また、リードポインタ５５も、ホットワンコードを用いたカウンタによって構成され、ＦＩＦＯ５２のどの領域からデータを読出すかを示す。
【００２６】
図４は、ライトポインタ５４およびリードポインタ５５によって用いられるホットワンコードの一例を示す図である。図４は、１６進のホットワンコードを示しており、１６個のビット列の中で“１”であるビットが必ず１つだけである。したがって、読出したポインタの値において“１”のビットが１つだけの場合のみデータの値が有効であり、ビットが変化する途中でポインタの値が読出されて、“１”のビットが０または２つの場合にはデータが無効とされる。
【００２７】
なお、本実施の形態においてはライトポインタおよびリードポインタにホットワンコードを用いた場合を説明したが、これ以外の冗長データを付加した表現方法を用いてライトポインタおよびリードポインタを構成するようにしてもよい。
【００２８】
以上説明したように、本実施の形態におけるデータ転送回路によれば、ライトポインタ５４およびリードポインタ５５を、ホットワンコードを用いたカウンタにより構成するようにしたので、ポインタの値において“１”のビットが１つだけの場合のみデータの値を有効と判断できるようになり、誤動作を防止することが可能となった。
【００２９】
また、ホットワンコードを用いることによって、デコード回路が不要となり、回路規模を削減することができると共に、デコード回路による速度の低下を防止することが可能となった。
【００３０】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００３１】
【図１】ＦＩＦＯを同期転送および非同期転送に用いた場合のタイミングチャートである。
【図２】本発明の実施の形態におけるトランシーバおよびレシーバの概略構成を示すブロック図である。
【図３】本発明の実施の形態におけるデータ転送回路４１の内部構成を示すブロック図である。
【図４】ライトポインタ５４およびリードポインタ５５によって用いられるホットワンコードの一例を示す図である。
【符号の説明】
【００３２】
１  トランシーバ、２  レシーバ、１１  Ｐ／Ｓ変換回路、１２，２３，３１  ＰＬＬ回路、１３  差動トランシーバ、２１  差動レシーバ、２２  データ抽出部、２４  Ｓ／Ｐ変換回路、４１  データ転送回路、５１，５３  ＦＦ、５２  ＦＩＦＯ、５４  ライトポインタ、５５  リードポインタ。
【図１】
2005210212.tif 000003
【図２】
2005210212.tif 000004
【図３】
2005210212.tif 000005
【図４】
2005210212.tif 000006