(57)【要約】回路装置は、ＦＩＦＯ回路の現在の記憶容量を検出すると共に種々のオプションで反応するように構成されるＣＰＵを使用して、ＵＡＲＴチップの前記ＦＩＦＯ回路を通るデータを処理することにより、ＣＰＵ効率を改善する。１つの実施例において、回路装置は、ＦＩＦＯ回路と、Ｎビット変数のバイナリ信号を生成するように構成される演算論理ユニット（ＡＬＵ）とを有する汎用非同期送受信器（ＵＡＲＴ）チップを含み、前記バイナリ信号は、前記ＦＩＦＯ回路の現在の記憶容量の関数として変化する。当該回路装置は、更に、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通るデータフローを制御するように構成される前記ＵＡＲＴチップに通信的に結合される制御回路を含む。
2004520777.tif 000002
【特許請求の範囲】
【請求項１】
ＦＩＦＯ回路と、Ｎビット変数のバイナリ信号を生成するように構成される演算論理ユニットとを含み、前記バイナリ信号は前記ＦＩＦＯ回路の現在の記憶容量の関数として変化する、汎用非同期送受信器チップと、
前記汎用非同期送受信器チップと通信的に結合されており、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通るデータフローを制御するように構成される、制御回路と、
を有する回路装置。
【請求項２】
前記ＦＩＦＯ回路は、シリアルデータを前記ＦＩＦＯ回路と通信するように構成されるシリアル通信回路と、パラレルデータを前記ＦＩＦＯ回路と通信するように構成されるパラレルデータ出力回路とを含む請求項１に記載の回路装置。
【請求項３】
前記制御回路はＣＰＵを含む請求項１に記載の回路装置。
【請求項４】
前記ＣＰＵは、前記汎用非同期送受信器チップに対して、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通る前記データフローをいつ制御するかを決定するようにポーリングするようにプログラムされている請求項３に記載の回路装置。
【請求項５】
前記ＣＰＵは、前記汎用非同期送受信器チップに対して、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通る前記データフローを直ちに制御するか否かを決定するようにポーリングするようにプログラムされている請求項３に記載の回路装置。
【請求項６】
前記ＣＰＵは、前記汎用非同期送受信器チップに対して、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記汎用非同期送受信器チップの次のポールにプロンプトを出すのに用いられる前もってプログラムされていたパラメータを調整するようにポーリングするようにプログラムされている請求項３に記載の回路装置。
【請求項７】
前記Ｎビット変数のバイナリ信号は、前記ＦＩＦＯ回路のエンプティレジスタの位置の正確な数を示す請求項１に記載の回路装置。
【請求項８】
前記Ｎビット変数のバイナリ信号は、前記ＦＩＦＯ回路のフルレジスタの位置の正確な数を示す請求項１に記載の回路装置。
【請求項９】
前記Ｎビット変数のバイナリ信号は、前記ＦＩＦＯ回路によって提供される閾値インジケータに対して相対的なレジスタ位置の正確な数を示す請求項１に記載の回路装置。
【請求項１０】
前記ＦＩＦＯ回路によって提供される前記閾値インジケータは、前記ＦＩＦＯ回路のフル位置の数が閾値レベルを越えたかどうか示す請求項９に記載の回路装置。
【請求項１１】
前記ＦＩＦＯ回路によって提供される前記閾値インジケータは、前記ＦＩＦＯ回路のエンプティ位置の数が閾値レベルを越えたかどうか示す請求項９に記載の回路装置。
【請求項１２】
前記汎用非同期送受信器チップは、前記モード選択データによって選択可能な複数のサイズのうちの１つを有する拡張可能なＦＩＦＯ回路を含む請求項１に記載の集積回路装置。
【請求項１３】
前記汎用非同期送受信器チップは、前記モード選択データによりイネーブルされるように構成されているフロー制御回路を含む請求項１に記載の集積回路装置。
【請求項１４】
前記汎用非同期送受信器は、前記モード選択データによって選択可能な複数のサイズのうちの１つを有する拡張可能なＦＩＦＯ回路を含み、前記汎用非同期送受信器は、前記モード選択データによりイネーブルされ、前記ＦＩＦＯ回路の少なくとも１つのフロー状態状況を示すように構成されているフロー制御回路を含む請求項１に記載の集積回路装置。
【請求項１５】
ＦＩＦＯ回路と、Ｎビット変数のバイナリ信号を生成する演算論理手段とを含み、前記バイナリ信号は前記ＦＩＦＯ回路の現在の記憶容量の関数として変化する、汎用非同期送受信器チップと、
前記汎用非同期送受信器チップと通信的に結合されており、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通るデータフローを制御するように構成される手段と、
を有する回路装置。
【請求項１６】
ＣＰＵとＦＩＦＯ回路を有する汎用非同期送受信器チップとを含む回路装置中で使用するための、前記ＦＩＦＯ回路を通じてデータを伝える方法であって、
前記汎用非同期送受信器チップ内で、前記ＦＩＦＯ回路の現在の記憶容量の関数として変化するＮビット変数のバイナリ信号を演算的に生成するステップと、
前記汎用非同期送受信器チップに通信的に結合される前記ＣＰＵを使用して、前記Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通るデータフローを制御するステップと、
を有する方法。
【請求項１７】
Ｎは２未満でない請求項１６に記載の方法。
【請求項１８】
前記バイナリ信号は前記ＦＩＦＯ回路の閾値記憶レベルに対して相対的に変化する請求項１６に記載の方法。
【請求項１９】
前記Ｎビット変数のバイナリ信号は、前記ＦＩＦＯ回路の閾値記憶レベルに対して相対的な範囲内の数を識別し、前記範囲は、前記閾値記憶レベルより上と前記閾値記憶レベルより下との内何れか１つである請求項１６に記載の方法。
【請求項２０】
前記Ｎビット変数のバイナリ信号は、前記ＦＩＦＯ回路の閾値記憶レベルに対して相対的な範囲内の数を識別し、前記範囲は前記閾値記憶レベルを横移動する、請求項１６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本装置は、一般にデータ通信回路に、また、特に、種々のＣＰＵ及び周辺機器において用いられる、改良されたデータハンドリング機能性を有する汎用非同期送受信器（ＵＡＲＴ）に関する。
【０００２】
【従来の技術】
大部分のデジタル回路は、より効果的な処理を提供するために、並行してデータを処理する。多くのデジタル装置は、更に、多くの場合電話又はＬＡＮ線を介して中継局に結合されているリモートサイトから装置へ、また、装置から、データを持ってくるためにシリアルポートを使用する。汎用非同期送受信器（ＵＡＲＴ）は、デジタルデータのパラレル−シリアル変換を実行するデジタル装置である。ＵＡＲＴは、受信されたデータをローカルＣＰＵ等のパラレルＩ／Ｏ装置と、ＰＯＴＳモデム、イーサネット（Ｒ）装置及び他の通信装置等のシリアルＩ／Ｏ装置との間で変換することによってパラレル形式とシリアル形式との間で通信する。大部分の従来のＵＡＲＴ装置は選択されたボーレートで動作するようにプログラムされることができる。そして、より新しい世代のＵＡＲＴは、かなりの部分で、より大きいＦＩＦＯ深度及び改良されたフロー制御（例えば内部ＦＩＦＯがフル又はエンプティになるために必要とされる再試行及び待機がより少ない）のため、技術が進むにつれてより効率的に通信を取り扱う。
【０００３】
ＵＡＲＴ装置は典型的に、２つのソフトウェアモード、つまり、ポーリングモード又は割込みモードのどちらか１つにおいて動作する。ポーリングモードにおいて、ソフトウェアは内部レジスタを周期的にモニタして、読み取り動作又は書き込み動作が必要であるかどうか決定する。割込みモードにおいて、ソフトウェアは割込みイベントが特定のレジスタに対する読み取り又は書き込みを起動させるのを待つ。これらのアプリケーションにおいて使用される大部分のソフトウェア監視機能は、シリアル通信ポートデータを含む受信及び送信ＦＩＦＯと関連している。通常、それぞれのＦＩＦＯに対して、データを受信又は送信する時であることをソフトウェアに知らせるトリガーレベルが規定される。あいにく、トリガーレベルに到達するのとソフトウェアを用いてＣＰＵにＦＩＦＯのデータを読み取る又は送信するようプロンプトを出すのとの間の待ち時間は、プロセスにおいてデータを失うほどまでに高いということがありえる。
【０００４】
【発明が解決しようとする課題】
本発明の種々の態様は、ＵＡＲＴチップのＦＩＦＯ回路を通るデータフローを制御する際のＣＰＵ効率を改善する労力を容易にすることを目的とする。本発明は多くの実施態様及びアプリケーションにおいて例証され、その幾つかは下で要約される。
【０００５】
【課題を解決するための手段】
本発明のある実施例によれば、回路装置は、ＦＩＦＯ回路と、Ｎビット変数のバイナリ信号を生成するように構成される演算論理ユニット（ＡＬＵ）とを有する汎用非同期送受信器（ＵＡＲＴ）チップを含み、前記バイナリ信号は、ＦＩＦＯ回路の現在の記憶容量の関数として変化する。該回路装置は、更に、Ｎビット変数のバイナリ信号を読み取って、応答して、前記ＦＩＦＯ回路を通るデータフローを制御するように構成されているＵＡＲＴチップに通信的に結合される制御回路を含む。
【０００６】
本発明の他の特定の実施態様は、ＣＰＵを用いて、ＦＩＦＯ回路を通るデータフローをいつ制御するべきかについて決定して、又は、ＦＩＦＯ回路を通るデータフローを直ちに制御するべきか否かを決定することによって、ＦＩＦＯ回路の記憶容量の様々なレベルに対応してＦＩＦＯ回路を通るデータフローを制御することを伴う。他の実施態様例において、ＣＰＵは、前にプログラムされた用いられたパラメータを調整して、ＦＩＦＯ回路記憶容量レベルに応答して、ＵＡＲＴチップの次のポーリングのプロンプトを出す。
【０００７】
上記の概要は、本発明の各例示の実施例又はあらゆる実施態様を説明することは目的としない。以下の図及び詳細な説明は、これらの実施例をより詳細に例証する。
【０００８】
本発明は、添付の図面と関連する以下の本発明の種々の実施例の詳細な説明を考慮することにより、より十分に理解される。
【０００９】
【発明の実施の形態】
本発明は種々の変形例及び代替様式に従うが、それの詳細は図面の例として示され、詳細に後述される。しかし、当然のことながら、本発明を説明された特定の実施例に限定することは意図されない。反対に、添付の請求項によって規定される本発明の精神及び範囲内に含まれる全ての変形例、等価物及び代替物をカバーすることが意図される。
【００１０】
本発明は、概して、ＦＩＦＯ回路の現在の記憶容量を検出するように構成されるＣＰＵ装置を使用しているＵＡＲＴチップのＦＩＦＯ回路を通るデータを処理する際のＣＰＵ効率を改善することと、種々のオプションで、前記の検出された現在の記憶容量に反応することとを目的とする。本発明の１つの実施例において、前記ＣＰＵは、ＦＩＦＯ回路から読み取るべき又はＦＩＦＯ回路に書き込むべきバイトの正確な数をリアルタイムで決定する。本発明の種々の実施例は、特に、ＦＩＦＯレジスタの読み取り及び書き込みの間の受信及び送信ステータスビットのＣＰＵによる監視の撤廃から利するようなアプリケーションに役立つ。本発明はこのような装置に限られていないが、本発明の種々の態様の認識は、本出願を用いて行う種々の例の議論により最も良く得られる。
【００１１】
本発明のある実施例によれば、回路装置は、ＦＩＦＯ回路及び当該ＦＩＦＯ回路の現在の記憶容量をモニタする監視回路を有する汎用非同期送受信器（ＵＡＲＴ）チップを含む。回路装置は、また、ＦＩＦＯ回路の現在の記憶容量情報を処理して、当該現在の記憶容量情報に応答して、ＦＩＦＯ回路を通るデータフローを制御する制御回路を含む。一つの特定の例において、監視回路は、ＦＩＦＯ回路の送信／受信ＦＩＦＯレジスタのエンプティ又はフルのレジスタ位置の数を示すＮビット変数バイナリ信号を生成する演算論理ユニット（ＡＬＵ）を含む。前記制御回路は、ＵＡＲＴチップに対してポーリングしてバイナリ信号を読み取るＣＰＵを含み、前記バイナリ信号は、ＦＩＦＯ回路の送信／受信ＦＩＦＯの記憶容量の指示として用いられる。
【００１２】
他の特定の実施例において、回路装置は、特別な閾値（又はトリガー）レベルインジケータを有する受信及び／又は送信ＦＩＦＯを含む。閾値レベルからＭバイトの範囲内まで（Ｍバイト少ない又は多い）満たされたＦＩＦＯに応答して、チップ内のＡＬＵは、閾値レベルより少ない又は多いＦＩＦＯ位置の正確な数を示しているＮビット信号を生成する。Ｎビット信号が、ＦＩＦＯの何らかの中間レベルにおけるレベルと比較したフル／エンプティ量を示す正又は負のバイナリ数を表すように実現されることができるか、又は、ＦＩＦＯが完全にフルな状態、ＦＩＦＯがオーバーフローした状態又はＦＩＦＯがエンプティな状態と比較してフル／エンプティ量を示すバイナリ数を表すように実現されることができることが理解されるであろう。
【００１３】
中間レベルのＦＩＦＯインジケータの使用を含むそのような１つの実施態様において、深度６４バイトの受信ＦＩＦＯは、１６バイトでフルとなる閾値（又はトリガー）レベルを有し、Ｎビットの特別な閾値レベルインジケータを有し、ここで、当該受信ＦＩＦＯが１６バイト閾値の８バイト以内まで満たされていることをＣＰＵに指示するときに、Ｎは４に等しい。よって、ＣＰＵが９バイトを記憶するときにＣＰＵがＦＩＦＯをポーリングすることになっている場合、４ビットの特別閾値レベルインジケータは７（１６−９）を表すときには「０１１１」となる。この例では、受信ＦＩＦＯがまもなく閾値に到達するとＣＰＵが認識することに応答し、ＣＰＵは、９バイトの一部又は全てを読み取ることにより直ちにＦＩＦＯをオフロードすることができる。又は、すばやく実行されることができる差し迫った他のタスクがある場合、ＦＩＦＯがフル又はオーバーフローになる充分前にＣＰＵが前記タスクを遂行し、その後直ちに、ＦＩＦＯのバイトの一部又は全てのタスクを読み取るタスクに戻ることができる。ＣＰＵは連続的にＦＩＦＯ回路の記憶容量に関する情報を受け取っているので、該ＣＰＵは、能動的にＦＩＦＯ回路を通じて流れているデータをモニタして制御すると共に、より賢明にそのタスクを遂行するようにプログラムされることができる。
【００１４】
図をここで参照すると、図１は、本発明の実施例によって構成されるＵＡＲＴチップを含む集積回路装置の構成１０のブロック図である。この実施例において、装置１０は、モデム１２から受信される又はモデム１２へ送信されるシリアルデータ１４を処理するように構成される。シリアルデータ１４は、選択されたクロックレイトでＵＡＲＴチップ２０のＦＩＦＯ回路２２を通過する。装置１０は、アドレス、データ、及び、パラレルデータバス３０を介してＵＡＲＴチップ２０と通信するための制御信号を提供するメモリ管理機構（図示せず）を有するＣＰＵ ４０を更に含む。ＣＰＵ ４０及びＵＡＲＴチップ２０は、両方ともクロック回路５０からのクロック信号に応答する。
【００１５】
この例では、ＦＩＦＯ回路２２は、入って来るシリアルデータを通信するシリアル通信回路２２Ａを含み、ＣＰＵ ４０から来るパラレルデータを通信するパラレルデータ出力回路（図示せず）を含む。ＵＡＲＴチップ２０は、更に、ＦＩＦＯ回路２２の現在の記憶容量の関数として変化するＮビット変数のバイナリ信号を生成するＡＬＵ ２４を含む。Ｎビットインジケータ回路６０は、ＡＬＵ ２４からのバイナリ信号を受け取って、ＣＰＵ ４０にＦＩＦＯ回路２２の記憶状況状態を伝送する。ＣＰＵ ４０が応答する記憶状況状態は、ＦＩＦＯ回路のエンプティ／フル送信レジスタ位置の正確な数、ＦＩＦＯ回路のエンプティ／フル受信レジスタ位置の正確な数、ＦＩＦＯ回路２２によって提供される閾値インジケータ（図示せず）と関連する送信／受信レジスタ位置の正確な数、又は、ＦＩＦＯ回路のエンプティ／フル位置の数が閾値を越えたかどうか、を含む。
【００１６】
ＣＰＵ ４０は、一般にＮビットインジケータ回路６０によって示される状況状態のいずれかの関数として、ＦＩＦＯ回路２２を通じて流れているデータを制御する。１つの実施例において、バイトの数がプログラムされたトリガーレベルに到達した後に増加した場合であっても、ＣＰＵ ４０はＦＩＦＯ回路２２の受信ＦＩＦＯに含まれるバイトの正確な数を読み取る。本発明により、トリガーイベントに到達した後の追加のシリアルバイトを受信又は送信する高ＣＰＵ待ち時間を伴うシステムのＣＰＵは、ここで、付加シリアルバイトが読み取り又は送信可能かどうかを決定するようインジケータ回路６０を検査するようにプログラム可能である。
【００１７】
他の実施例において、ＣＰＵ ４０は、ＣＰＵ ４０が読み取るバイナリ信号をＡＬＵ ２４が生成するようにＵＡＲＴチップ２０をポーリングし、応答して、いつＦＩＦＯ回路２２を通るデータフローを制御するべきかについて決定するか、直ちにＦＩＦＯ回路を通るデータフローを制御するべきか否か決定するか、又は、ＵＡＲＴチップの次のポーリングにプロンプトを出すのに用いられる、前にプログラムされたパラメータを調整する。
【００１８】
さらにもう一つの実施例も、また、ＣＰＵ待ち時間の問題の解決を目的とする。従来は、予め定められたトリガーレベル（Ｎ）が受信ＦＩＦＯにおいて到達されるときに、ＵＡＲＴは割込みを生成することができる。割込みハンドラルーチン待ち時間（ＣＰＵが割込みを処理するまでにかかる時間）が大きい場合、更にいくつかの（Ｍ）記号がＦＩＦＯによって受信されることができる。ＵＡＲＴ ＦＩＦＯは、従来の如く、読み取りにＣＰＵにＮバイトだけを許可するように構成されるのではなく、ＦＩＦＯレベルが「リアルタイム」でＣＰＵが利用できるため、ＣＰＵがＮ＋Ｍ記号を読むことができるようにすることを許可する。この機能性は、また、従来型のハードウェアステートマシンロジックを使用して実現されることができる。
【００１９】
図２をここで参照すると、回路装置１００は、本発明の実施例による、図１のようなＵＡＲＴチップ２０の拡大された実施態様を示す。この実施例において、装置１００はシリアル通信回路２２Ａを通じてデータを処理する送信ＦＩＦＯ １０２及び受信ＦＩＦＯ １１２を含む。ＦＩＦＯ １０２及びＦＩＦＯ １１２は、読み取り及び書き込みポインタ１０４及び１１４の組に演算操作を実行することによってＣＰＵ ４０にＦＩＦＯ回路２２の現在の記憶容量を提供する。演算論理ユニット１０６及び１１６はそれぞれ、読み取り及び書き込みポインタ１０４及び１１４の位置の関数としてＮビット変数のバイナリ信号を生成する。この実施例において、ＣＰＵ ４０は送信制御レジスタ１０８及び受信制御レジスタ１１８からパラレルバス３０を介してＡＬＵ １０６及び１１６からＦＩＦＯ回路２２の現在の記憶容量を受信する。ＦＩＦＯ １０２及びＦＩＦＯ １１２の記憶容量レベルが変化するにつれて、ＣＰＵ ４０は制御レジスタ１０８及び１１８から変化の指示を受信する。前述のように、ＣＰＵ ４０はＦＩＦＯ回路２２の検出された記憶レベルによって（例えば、制御レジスタ１０８及び１１８の記憶容量の量によって）、ＦＩＦＯ回路２２を通るデータフローを制御するための種々の選択肢を有する。
【００２０】
他の実施例において、ＣＰＵ ４０は制御レジスタ１０８を介してＡＬＵ １０６からＮビット変数バイナリ信号を受け取ると、即座に、ＦＩＦＯ １０２の記憶容量を検出する。この例では、送信ＦＩＦＯ １０２は深さ６４バイトであり、閾値は３２バイトである。ＦＩＦＯ １０２の現在の記憶容量に応答して、ＡＬＵ１０６は、閾値を上回るときには正の数を、記憶容量が閾値を下回るときは負の数を、記憶レベルが閾値と等しいときにはゼロを生成し、これらのそれぞれはＦＩＦＯ １０２の記憶状況状態を示す。この例では、ＦＩＦＯ １０２が３８バイトであるときに、閾値を６バイト（すなわち０１１０）上回っており、ＣＰＵ ４０はＦＩＦＯ １０２に３８バイトと書き込むことによって応答する。関連した例において、ＦＩＦＯ １０２が３１バイトであるときに、レベルは閾値を下回っており（すなわち−１）、ＣＰＵ ４０はＦＩＦＯ １０２に３１バイトと書き込むことによって応答する。関連した実施例において、ＣＰＵ ４０は、ＦＩＦＯ １０２に書き込む前にＦＩＦＯ １０２がトリガーレベルに到達するまで待つことによって応答する。
【００２１】
上記の実施例のいずれとも、上記の動作を含むために市販のＵＡＲＴ装置を修正することによって実現されることができる。このような市販の部品及びそれらの動作モードに関する他のディテールのためには、ＵＡＲＴ部品番号ＳＣＣ２６９１ＡＣ１Ａ２８及びＳＣ２６Ｃ９２Ａ１Ａ については、製品明細Ｎｏ．８５３−１５８５−２３０６１（１／３１／００）及びＮｏ．８５３−１０７８−１９９７１（９／４／９８）を参照することができる。これらの各々は、Ｐｈｉｌｉｐｓ Ｓｅｍｉｃｏｎｄｕｃｔｏｒから市販されており、それぞれの仕様及び関連したデータは参照により本願に組み込まれている。種々の実施例において、上記のＵＡＲＴ装置は、単一の集積チップとして形成され、ディスクリート部品を使用して構成される。
【００２２】
従って、本発明は送受信ＦＩＦＯレジスタの現在の記憶容量レベルを受け取ることに応答してＦＩＦＯ回路を通るデータフローを制御することによって、ＵＡＲＴチップのＦＩＦＯ回路を通るデータの処理において改良されたＣＰＵ効率を達成する。本発明は、幾つかの特定の実施例を参照して説明されたが、当業者は、請求項に記載される本発明の精神及び範囲から離れることなく前記実施例を変更することが可能であることを認識するであろう。
【図面の簡単な説明】
【図１】図１は、本発明の実施例による、汎用非同期送受信器（ＵＡＲＴ）チップを含む集積回路装置の配置のブロック図である。
【図２】図２は、本発明の他の実施例による図１の回路ブロックのうちの１つの図である。
【図１】
2004520777.tif 000003
【図２】
2004520777.tif 000004
【国際公開パンフレット】
2004520777.tif 000005
2004520777.tif 000006
2004520777.tif 000007
2004520777.tif 000008
2004520777.tif 000009
2004520777.tif 000010
2004520777.tif 000011
2004520777.tif 000012
2004520777.tif 000013
2004520777.tif 000014
2004520777.tif 000015
2004520777.tif 000016
【国際公開パンフレット（コレクトバージョン）】
2004520777.tif 000017
【国際調査報告】
2004520777.tif 000018
2004520777.tif 000019
2004520777.tif 000020