(57)【特許請求の範囲】
【請求項１】
ディジタル信号プロセッサにより外部デバイスと通信するのための双方向通信ポートであって、
送信モードにおいて第１制御ライン上で第１クロックを前記外部デバイスに送信し、かつ前記第１クロックと同期して複数のデータ・ライン上でデータ・ワードを前記外部デバイスに送信する第１送信手段と、
前記送信モードにおいて、前記外部デバイスからの第１承認信号を第２制御ライン上で受信する第１受信手段と、
受信モードにおいて、前記第２制御ライン上で第２クロックを受信し、かつ前記第２クロックと同期して、前記外部デバイスからのデータ・ワードを前記複数のデータ・ライン上で受信する第２受信手段と、
前記受信モードにおいて、前記第１制御ライン上に第２承認信号を送信する第２送信手段と、
前記送信モードおよび前記受信モード間で切り替えを行なう切り替え手段と、を備えることを特徴とする双方向通信ポート。
【請求項２】
請求項１記載の双方向通信ポートにおいて、前記第１送信手段が、各々ｍビットのデータ・ワードを送信する手段を含み、前記データ・ワードの各々を、ｎビットの一連のｍ／ｎニブルとして、ｎ本のデータ・ライン上で送信し、ここでｎは少なくとも４であり、前記第２受信手段が、各々ｎビットの一連のｍ／ｎニブルとして、前記ｎ本のデータ・ライン上で各々ｍビットのデータ・ワードを受信する手段を含むことを特徴とする双方向通信ポート。
【請求項３】
請求項２記載の双方向通信ポートにおいて、前記データ・ワードを８本のデータ・ライン上で受信することを特徴とする双方向通信ポート。
【請求項４】
請求項１記載の双方向通信ポートにおいて、前記第１送信手段が、各々ｍビットのデータ・ワードを送信する手段を含み、前記データ・ワードの各々を、一連のｍ／８バイトとして前記データ・ライン上で送信し、前記第２受信手段が、各々ｍビットのデータ・ワードを受信する手段を含み、前記データ・ワードの各々を一連のｍ／８バイトとして、前記データ・ライン上で受信することを特徴とする双方向通信ポート。
【請求項５】
請求項４記載の双方向通信ポートにおいて、前記第１送信手段が、前記外部デバイスに送信するデータ・ワードの一時的格納のために送信バッファを含み、前記第２受信手段が、前記外部デバイスから受信したデータ・ワードの一時的格納のために受信バッファを含むことを特徴とする双方向通信ポート。
【請求項６】
請求項５記載の双方向通信ポートにおいて、
前記送信するデータ・ワードが、複数のパックされたバイトを含み、
前記送信バッファが、前記送信モードにおいて、前記データ・ライン上での複数のバイトの送信のために、前記データ・ワードを前記複数のバイトにアンパックする手段を含むことを特徴とする双方向通信ポート。
【請求項７】
請求項５記載の双方向通信ポートにおいて、前記受信バッファが、前記受信モードにおいて、前記データ・ライン上で受信した複数のバイトをパックする手段を含むことを特徴とする双方向通信ポート。
【請求項８】
請求項１記載の双方向通信ポートにおいて、前記双方向通信ポートが、前記第１および第２制御ライン、ならびに前記データ・ラインの前記外部デバイスへの二点間接続を利用することを特徴とする双方向通信ポート。
【請求項９】
請求項１記載の双方向通信ポートにおいて、前記第１および第２制御ラインおよび前記データ・ラインが、複数のデバイスの接続のためにバスを構成することを特徴とする双方向通信ポート。
【請求項１０】
請求項１記載の双方向通信ポートにおいて、前記第１受信手段が、所定数の前記データ・ワードの送信終了付近において前記第１承認信号をサンプリングし、前記第１承認信号がアサートされたときに、次のデータ・ワードを送信する手段を含むことを特徴とする双方向通信ポート。
【請求項１１】
請求項１記載の双方向通信ポートにおいて、前記切り替え手段が、前記受信モードにおいて前記第１クロックをアサートすることによって送信要求を発生し、前記受信モードから前記送信モードに切り替える手段を含むことを特徴とする双方向通信ポート。
【請求項１２】
請求項１記載の双方向通信ポートにおいて、前記切り替え手段が、更に、前記受信モードにおいて受信したデータ・ワードをカウントする手段を含み、前記第１クロックをアサートする手段が、所定数のデータ・ワードを受信し終えたときに前記送信要求を発生することを特徴とする双方向通信ポート。
【請求項１３】
請求項１記載の双方向通信ポートにおいて、前記切り替え手段が、前記送信モードにおいて、前記第２クロックのアサートに応答して、前記送信モードから前記受信モードに切り替える手段を含むことを特徴とする双方向通信ポート。
【請求項１４】
請求項１記載の双方向通信ポートにおいて、前記第１受信手段が、データ・ワードの送信中に、前記第１承認信号における遷移に応答し、前記通信ポートの前記外部デバイスへの接続を確認する手段を含むことを特徴とする双方向通信ポート。
【請求項１５】
請求項１記載の双方向通信ポートにおいて、前記第１承認信号がタイムアウト期間にわたってアサートされなかった場合に、前記第１受信手段がエラー状態を示す手段を含むことを特徴とする双方向通信ポート。
【請求項１６】
請求項１記載の双方向通信ポートにおいて、前記第２受信手段が、所定時間にわたる前記第２クロックの状態不変に応答して、エラー状態を示す手段を含むことを特徴とする双方向通信ポート。
【請求項１７】
請求項１記載の双方向通信ポートであって、更に、送信方向を示す第３制御ラインをアサートする手段を備えることを特徴とする双方向通信ポート。
【請求項１８】
請求項１記載の双方向通信ポートであって、更に、第３制御ライン上でフレーム同期信号をアサートする手段を備えることを特徴とする双方向通信ポート。
【請求項１９】
ディジタル信号プロセッサであって、
ディジタル信号計算を実行するコア・プロセッサと、
前記ディジタル信号計算のために命令およびデータ値を格納するメモリと、
前記コア・プロセッサおよび前記メモリを相互接続するメモリ・バスと、
前記メモリ・バスに結合され、外部デバイスと通信する双方向通信ポートであって、
送信モードにおいて第１制御ライン上で第１クロックを前記外部デバイスに送信し、かつ前記第１クロックと同期して複数のデータ・ライン上でデータ・ワードを前記外部デバイスに送信する第１送信手段と、
前記送信モードにおいて、前記外部デバイスからの第１承認信号を第２制御ライン上で受信する第１受信手段と、
受信モードにおいて、前記第２制御ライン上で第２クロックを受信し、かつ前記第２クロックと同期して、前記外部デバイスからのデータ・ワードを前記複数のデータ・ライン上で受信する第２受信手段と、
前記受信モードにおいて、前記第１制御ライン上に第２承認信号を送信する第２送信手段と、
前記送信モードおよび前記受信モード間で切り替えを行なう切り替え手段と、から成る、該双方向通信ポートと、
を備えることを特徴とするディジタル信号プロセッサ。
【請求項２０】
請求項１９記載のディジタル信号プロセッサにおいて、前記第１送信手段が、ｍビットのデータ・ワードを送信する手段を含み、前記データ・ワードの各々を、一連のｍ／８バイトとして前記データ・ライン上で送信し、前記第２受信手段が、各々ｍビットのデータ・ワードを受信する手段を含み、前記データ・ワードの各々を、一連のｍ／８バイトとして前記データ・ライン上で受信することを特徴とするディジタル信号プロセッサ。
【請求項２１】
請求項２０記載のディジタル信号プロセッサにおいて、前記第１送信手段が、前記外部デバイスに送信する前記データ・ワードの一時的格納のために送信バッファを含み、前記第２受信手段が、前記外部デバイスから受信した前記データ・ワードの一時的格納のために受信バッファを含むことを特徴とするディジタル信号プロセッサ。
【請求項２２】
請求項２１記載のディジタル信号プロセッサにおいて、
前記送信するデータ・ワードが、複数のパックされたバイトを含み、
前記送信バッファが、前記送信モードにおいて、前記データ・ライン上における複数のバイトの送信のために、前記データ・ワードを前記複数のバイトにアンパックする手段を含み、前記受信バッファが、前記受信モードにおいて、前記データ・ライン上で受信した複数のバイトをパックする手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２３】
請求項１９記載のディジタル信号プロセッサにおいて、前記第１受信手段が、所定数の前記データ・ワードの送信終了付近において、前記第１承認信号をサンプリングし、前記第１承認信号がアサートされたときに、次のデータ・ワードを送信する手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２４】
請求項１９記載のディジタル信号プロセッサにおいて、前記切り替え手段が、前記受信モードにおいて前記第１クロックをアサートすることにより、送信要求を発生し、前記受信モードから前記送信モードに切り替える手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２５】
請求項１９記載のディジタル信号プロセッサにおいて、前記切り替え手段が、前記送信モードにおいて、前記第２クロックのアサートに応答し、前記送信モードから前記受信モードに切り替える手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２６】
請求項１９記載のディジタル信号プロセッサにおいて、前記第１受信手段が、データ・ワードの送信中前記第１承認信号における遷移に応答して、前記通信ポートの前記外部デバイスへの接続を確認する手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２７】
請求項１９記載のディジタル信号プロセッサにおいて、前記第１承認信号がタイムアウト期間にわたってアサートされなかった場合には、前記第１受信手段がエラー状態を示す手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２８】
請求項１９記載のディジタル信号プロセッサにおいて、前記第２受信手段が、所定時間にわたる前記第２クロックの状態不変に応答して、エラー状態を示す手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項２９】
請求項２０記載のディジタル信号プロセッサにおいて、前記第１送信手段が、前記第２受信手段においてタイミング・スキューを補正するために使用される一連のトレーニング・バイトを送信する手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項３０】
請求項２０記載のディジタル信号プロセッサにおいて、前記第２受信手段が、前記外部デバイスから一連のトレーニング・バイトを受信する手段と、前記トレーニング・バイトに関してタイミング遅延を変化させる手段と、前記データ・ワードの受信において使用する最適なタイミング遅延を選択する手段とを含むことを特徴とするディジタル信号プロセッサ。
【請求項３１】
請求項１９記載のディジタル信号プロセッサにおいて、前記双方向通信ポートが、更に、送信方向を示す第３制御ラインをアサートする手段を備えることを特徴とするディジタル信号プロセッサ。
【請求項３２】
請求項１９記載のディジタル信号プロセッサにおいて、前記双方向通信ポートが、更に、第３制御ライン上でフレーム同期信号を送信する手段を含むことを特徴とするディジタル信号プロセッサ。
【請求項３３】
ディジタル信号プロセッサおよび外部デバイス間における双方向通信方法であって、
（ａ）前記ディジタル信号プロセッサが、送信モードにおいて、第１制御ライン上で第１クロックを前記外部デバイスに送信し、前記第１クロックに同期して複数のデータ・ライン上でデータ・ワードを前記外部デバイスに送信するステップと、
（ｂ）前記ディジタル信号プロセッサが、前記送信モードにおいて、第２制御ライン上で前記外部デバイスからの第１承認信号を受信するステップと、
（ｃ）前記ディジタル信号プロセッサが、受信モードにおいて、前記第２制御ライン上で第２クロックを受信し、前記第２クロックと同期して、前記複数のデータ・ライン上で前記外部デバイスからのデータ・ワードを受信するステップと、
（ｄ）前記ディジタル信号プロセッサが、前記受信モードにおいて、前記第１制御ライン上で第２承認信号を送信するステップと、
から成ることを特徴とする方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、ディジタル信号プロセッサに関し、更に特定すれば、ディジタル信号プロセッサ間、ならびにディジタル信号プロセッサおよび外部デバイス間の高速二点間通信用双方向通信ポート(high speed, point-to-point communication)に関するものである。
（発明の背景）
ディジタル信号コンピュータ即ちディジタル信号プロセッサ（ＤＳＰ）は、例えば、高速フーリエ変換、ディジタル・フィルタ、画像処理および音声認識のような、ディジタル信号処理用途の処理能力を最適化するために設計された特殊目的コンピュータである。ディジタル信号プロセッサの用途は、通常、リアル・タイム動作、高割込率、および集中的数値計算によって特徴付けられる。加えて、ディジタル信号プロセッサの用途では、メモリ・アクセス動作を集中的に行い、大量のデータ入力および出力を必要とする場合が多い。したがって、ディジタル信号プロセッサの設計は、汎用コンピュータとは全く異なる場合もある。
【０００２】
ディジタル信号プロセッサのアーキテクチャにおいて、高速数値計算を行なうために用いられてきた手法の１つにハーバード・アーキテクチャ（Ｈａｒｖａｒｄ  ａｒｃｈｉｔｅｃｕｔｕｒｅ）がある。これは、別個の独立したプログラムおよびデータ・メモリを利用し、２つのメモリに同時アクセスを可能としたものである。このアーキテクチャは、命令およびオペランドを単一クロック・サイクルにおいてメモリから取り込むことを可能にする。現在のアーキテクチャは、計算ユニットおよびメモリを単一の集積回路、即ち、チップ上に集積し、自蔵式の高性能ディジタル信号プロセッサを実現している。
【０００３】
ＤＳＰチップの重要な一面に、外部通信がある。ＤＳＰは大量のデータを処理するので、ＤＳＰチップの内部メモリおよび計算ユニットへのデータ転送ならびに内部メモリおよび計算ユニットからのデータ転送を効率的かつ高速に行なう必要がある。ＤＳＰチップは通常並列外部バスを含み、ホスト・コンピュータ、外部メモリ、および、例えば、アナログ／ディジタル変換器のようなその他の外部デバイスとの通信を行なう。また、外部バスは、マルチプロセッサ構成またはクラスタにおける２つ以上のＤＳＰチップを相互接続し、計算能力を高めるためにも用いることができる。このバス・アーキテクチャは、デバイス間において情報を高速で転送する機能をもたらす。
【０００４】
外部バスによって得られる能力にも関わらず、マルチプロセッサ構成におけるディジタル信号プロセッサ間、またはディジタル信号プロセッサとアナログ／ディジタル変換器のような外部デバイスとの間において、高速二点間通信が頻繁に求められている。二点間通信リンクを用いれば、別の動作に必要となり得る外部バスを用いずに、通常ＤＳＰの計算に伴う大量のデータ転送が可能となる。
【０００５】
二点間データ伝送の公知手法の１つに、シリアル通信があり、この場合データは単一データ・ライン上で直列に伝送される。この技法は、ケーブル敷設およびＤＳＰチップへの接続に関しては効率的であるが、データを転送可能な速度に限界がある。
【０００６】
パラレル・データ転送技法は、最高の速度が得られる。しかしながら、多数の通信ポートが必要となる場合、ＤＳＰチップへの接続数が過度に多くなるので、各ポート毎に必要な導体数を極力抑えなければならない。
【０００７】
ディジタル信号プロセッサ用二点間通信システムが、１９９７年４月８日にＤｏｕｇｌａｓ  Ｇａｒｄｅ  ｅｔ  ａｌ．（ダグラス・ガードその他）に付与された米国特許第５，６１９，７２０号に開示されている。開示された通信ポートは、双方向であり、４本のデータ・ライン上で一度に４ビットのニブルを転送する。この手法は非常に満足できる処理能力をもたらすが、伝送の方向を変更するためには、ディジタル信号プロセッサの外部バス上において外部デバイスとの通信が必要となる。この手法は、遅延を生ずる場合もあり、比較的複雑である。
【０００８】
したがって、高速二点間通信装置の改良が求められている。その通信装置は、必要な導体数が少なくなければならず、最少のオーバーヘッドで大量のデータを高速転送でき、しかも伝送方向を簡単に変更可能でなければならない。
（発明の概要）
本発明をより良く理解するために、図面を参照する。図面はこの言及により本願にも含まれるものとする。
【０００９】
本発明の第１の態様によれば、外部デバイスとの通信のための双方向通信ポートを、ディジタル信号プロセッサ内に設ける。双方向通信ポートは、送信モードにおいて第１制御ライン上で第１クロックを外部デバイスに送信し、かつ第１クロックと同期して複数のデータ・ライン上でデータ・ワードを外部デバイスに送信する第１送信手段と、送信モードにおいて、外部デバイスからの第１承認信号（ａｃｋｎｏｗｌｅｄｇｅ  ｓｉｇｎａｌ）を第２制御ライン上で受信する第１受信手段とを含む。更に、通信ポートは、受信モードにおいて、第２制御ライン上で第２クロックを受信し、かつ第２クロックと同期して、外部デバイスからのデータ・ワードを複数のデータ・ライン上で受信する第２受信手段と、受信モードにおいて、第１制御ライン上に第２承認信号を送信する第２送信手段とを含む。更に、通信ポートは、送信モードおよび受信モード間で切り替えを行なう切り替え手段を含む。通信ポートは、ディジタル信号プロセッサ間の高速通信、またはディジタル信号プロセッサおよび外部デバイス間の通信に用いることができる。
【００１０】
一実施形態では、第１送信手段は、各々ｍビットのデータ・ワードを送信する手段を含み、データ・ワードの各々を、一連のｍ／８バイトとして８本のデータ・ライン上に送信する。第２受信手段は、各々ｍビットのデータ・ワードを受信する手段を含み、データ・ワードの各々を、一連のｍ／８バイトとして８本のデータ・ライン上で受信する。
【００１１】
切り替え手段は、受信モードにおいて第１クロックをアサート（ａｓｓｅｒｔ）することにより、送信要求を発生し、受信モードから送信モードに切り替える手段を含む。更に、切り替え手段は、送信モードにおいて、第２クロックのアサートに応答し、送信モードから受信モードに切り替える手段を含む。
【００１２】
第１送信手段は、所定数のデータ・ワードの送信に続いて、検証バイト（ｖｅｒｉｆｉｃａｔｉｏｎ  ｂｙｔｅ）を送信する手段を含む。検証バイトは、チェックサム・バイトで構成することができる。第２受信手段は、所定数のデータ・バイトの受信に続いて、検証バイトを受信する手段と、検証バイトに応答して受信したデータ・バイトにおけるエラーを識別する手段とを含む。
【００１３】
第１受信手段は、データ・ワードの送信中第１承認信号における遷移に応答して、通信ポートの外部デバイスへの接続を確認する手段を含む。更に、第１受信手段は、タイムアウト期間に対する第１承認信号のディアサートに応答し、不良状態を示す手段を含む。更に、第２受信手段は、所定時間にわたる第２クロックの状態不変に応答して、不良状態を示す手段を含む。
【００１４】
双方向通信ポートは、第３制御ラインを含むこともできる。一構成では、第３制御ラインは、通信ポートの送信方向を示す。別の構成では、第３制御ラインは、フレーム同期に用いられる。
【００１５】
本発明の別の態様によれば、ディジタル信号プロセッサおよび外部デバイス間における双方向通信方法を提供する。ディジタル信号プロセッサは、送信モードにおいて、第１制御ライン上で第１クロックを外部デバイスに送信し、第１クロックに同期して複数のデータ・ライン上でデータ・ワードを外部デバイスに送信する。ディジタル信号プロセッサは、送信モードにおいて、第２制御ライン上で外部デバイスからの第１承認信号を受信する。ディジタル信号プロセッサは、受信モードにおいて、第２制御ライン上で第２クロックを受信し、第２クロックと同期して、複数のデータ・ライン上で外部デバイスからのデータ・ワードを受信する。ディジタル信号プロセッサは、受信モードにおいて、第１制御ライン上で第２承認信号を送信する。
（詳細な説明）
本発明によるディジタル信号プロセッサ（ＤＳＰ）１０のブロック図を図１に示す。ＤＳＰ１０の主要な構成要素は、計算ブロック１２および１４、メモリ１６、制御ブロック２４、リンク・ポート２６、外部ポート２８、ＤＲＡＭコントローラ３０、命令整合バッファ（ＩＡＢ：ｉｎｓｔｒｕｃｔｉｏｎ  ａｌｉｇｎｍｅｎｔ  ｂｕｆｆｅｒ）３２、ならびに一次命令デコーダ３４である。計算ブロック１２および１４、命令整合バッファ３２、一次命令デコーダ３４、ならびに制御ブロック２４は、コア・プロセッサを構成し、ＤＳＰ１０の主な計算およびデータ処理機能を実行する。外部ポート２８は、外部アドレス・バス５８および外部データ・バス６８を通じた外部通信を制御する。リンク・ポート２６は、通信ポート３６を介した外部通信を制御する。ＤＳＰは、単一のモノリシック集積回路として構成することが好ましく、０．３５ミクロン・ゲート、四金属、ＳＲＡＭ  ＣＭＯＳプロセスを用いて製造することが好ましい。好適な実施形態では、周波数４１．５ＭＨｚの外部クロック（図示せず）を内部で４倍し、１６６ＭＨｚの内部クロックを供給する。
【００１６】
メモリ１６は、３つの独立した大容量メモリ・バンク４０、４２および４４を含む。好適な実施形態では、メモリ・バンク４０、４２および４４は、各々３２ビット・ワード６４Ｋ分の容量を有する。以下で論ずるが、メモリ・バンク４０、４２および４４の各々は、１２８ビット・データ・バスを有することが好ましい。単一のクロック・サイクルにおいて、各々３２ビットの連続整合データ・ワードを４つまで各メモリ・バンクに、または各メモリ・バンクから転送することができる。
【００１７】
ＤＳＰ１０のエレメントは、効率的な高速動作のために、バスによって相互接続されている。バスの各々は、二進情報の並列転送のために多数のラインを含む。第１アドレス・バス５０（ＭＡ０）は、メモリ・バンク４０（Ｍ０）および制御ブロック２４を相互接続する。第２アドレス・バス５２（ＭＡ１）は、メモリ・バンク４２（Ｍ１）および制御ブロック２４を相互接続する。第３アドレス・バス５４（ＭＡ２）は、メモリ・バンク４４（Ｍ２）および制御ブロック２４を相互接続する。アドレス・バス５０、５２および５４の各々は、好ましくは、１６ビット幅とする。外部アドレス・バス５６（ＭＡＥ）は、外部ポート２８および制御ブロック２４を相互接続する。外部アドレス・バス５６は、外部ポート２８を介して、外部アドレス・バス５８に相互接続されている。外部アドレス・バス５６および５８の各々は、好ましくは、３２ビット幅とする。第１データ・バス６０（ＭＤ０）は、メモリ・バンク４０、計算ブロック１２および１４、制御ブロック２４、リンク・ポート２６、ＩＡＢ３２ならびに外部ポート２８を相互接続する。第２データ・バス６２（ＭＤ１）は、メモリ・バンク４２、計算ブロック１２および１４、制御ブロック２４、リンク・ポート２６、ＩＡＢ３２、および外部ポート２８を相互接続する。第３データ・バス６４（ＭＤ２）は、メモリ・バンク４４、計算ブロック１２および１４、制御ブロック２４、リンク・ポート２６、ＩＡＢ３２、および外部ポート２８を相互接続する。データ・バス６０、６２および６４は、外部ポート２８を介して外部データ・バス６８に接続されている。データ・バス６０、６２および６４の各々は、好ましくは、１２８ビット幅とし、外部データ・バス６８は、好ましくは、６４ビット幅とする。
【００１８】
第１アドレス・バス５０および第１データ・バス６０は、データのメモリ・バンク４０への転送およびメモリ・バンク４０からの転送のためのバスを構成する。第２アドレス・バス５２および第２データ・バス６２は、データのメモリ・バンク４２への転送およびメモリ・バンク４２からの転送のための第２バスを構成する。第３アドレス・バス５４および第３データ・バス６４は、データのメモリ・バンク４４への転送およびメモリ・バンク４４からの転送のための第３バスを構成する。メモリ・バンク４０、４２および４４の各々は、別個のバスを有するので、メモリ・バンク４０、４２および４４には同時にアクセスすることができる。ここで用いる場合、「データ」とは、二進ワードのことを言い、ＤＳＰ１０の動作に関連する命令またはオペランドのいずれかを表わすことができる。代表的な動作モードでは、プログラム命令がメモリ・バンクの１つに格納され、オペランドがその他の２つのメモリ・バンクに格納される。このように、少なくとも１つの命令および２つのオペランドを、単一のクロック・サイクルにおいて、計算ブロック１２および１４に供給することができる。以下で説明するが、メモリ・ブロック４０、４２および４４の各々は、単一のクロック・サイクルにおいて、多数のデータ・ワードの読み取りおよび書き込みが可能となるように構成されている。単一のクロック・サイクルにおける各メモリ・バンクからの多数のデータ・ワードの同時転送は、命令キャッシュやデータ・キャッシュを必要とせずに行われる。
【００１９】
制御ブロック２４は、プログラム・シーケンサ７０、第１整数ＡＬＵ７２（ＪＡＬＵ）、第２整数ＡＬＵ７４（Ｋ  ＡＬＵ）、第１ＤＭＡアドレス発生器７６（ＤＭＡＧ  Ａ）、第２ＤＭＡアドレス発生器７８（ＤＭＡＧ  Ｂ）、およびブランチ・ターゲット・バッファ８０を含む。整数ＡＬＵ７２および７４は、異なる時点において、整数ＡＬＵ命令を実行し、データ・アドレスを発生する。プログラムの実行中、プログラム・シーケンサ７０は、命令シーケンスのメモリ位置に応じて、アドレス・バス５０、５２、５４および５６の１つの上で一連の命令アドレスを供給する。通常、メモリ・バンク４０、４２または４４の１つが、命令シーケンスの格納のために用いられる。整数ＡＬＵ７２および７４の各々は、命令によって要求されるオペランドの位置に応じて、アドレス・バス５０、５２、５４および５６の１つの上にデータ・アドレスを供給する。例えば、命令シーケンスがメモリ・バンク４０に格納されており、必要なオペランドがメモリ・バンク４２および４４に格納されていると仮定する。この場合、プログラム・シーケンサは、命令アドレスをアドレス・バス５０上に供給し、アクセスされた命令を命令整合バッファ３２に供給する。これについては以下で説明する。整数ＡＬＵ７２および７４は、例えば、アドレス・バス５２および５４上にそれぞれ、オペランドのアドレスを出力することができる。整数ＡＬＵ７２および７４が発生したアドレスに応答して、メモリ・バンク４２および４４は、データ・バス６２および６４上に、それぞれ、計算ブロック１２および１４のいずれかまたは双方に向けてオペランドを供給する。メモリ・バンク４０、４２および４４は、命令およびオペランドの格納に関しては、相互交換可能である。
【００２０】
プログラム・シーケンサ７０および整数ＡＬＵ７２および７４は、外部ポート２８を介して、外部メモリ（図示せず）にアクセスすることができる。所望の外部メモリ・アドレスをアドレス・バス５６上に置く。外部アドレスは、外部ポート２８を介して、外部アドレス・バス５８に結合される。外部メモリは、要求されたデータ・ワードまたは複数のデータ・ワードを外部データ・バス６８上に供給する。外部データは、外部ポート２８ならびにデータ・バス６０、６２および６４の１つを通じて、計算ブロック１２および１４の一方または双方に供給される。ＤＲＡＭコントローラ３０は、外部メモリを制御する。
【００２１】
先に示したように、メモリ・バンク４０、４２および４４は各々、好ましくは、各々３２ビット・ワード６４ｋ分の容量を有する。各メモリ・バンクは、１２８ビット幅のデータ・バスに接続することができる。代替実施形態では、各データ・バスは６４ビット幅としてもよく、クロック・フェーズ１およびクロック・フェーズ２の各々において６４ビットを転送することにより、事実上１２８ビットのバス幅が得られる。単一のクロック・サイクルにおいて、各メモリ・バンク内で多数のデータ・ワードにアクセスすることができる。即ち、データは、各々３２ビットの単一ワード、二重ワード、または四重ワード（ｑｕａｄ  ｗｏｒｄ）としてアクセスすることができる。二重および四重アクセスでは、メモリにおいてデータを整合しなければならない。四重データ・アクセスの代表的な用途は、高速フーリエ変換（ＦＦＴ）および複素ＦＩＲフィルタである。また、四重アクセスは、倍精度演算にも役立つ。好ましくは、命令を四重ワードとしてアクセスする。しかしながら、以下で論ずるように、命令をメモリ内で整合する必要はない。
【００２２】
四重ワード転送を用いると、各々３２ビットの４つの命令および８つのオペランドを、単一クロック・サイクルにおいて計算ブロック１２および１４に供給することができる。転送されるデータ・ワード数、およびデータ・ワードを転送する計算ブロックまたは複数のブロックは、命令内の制御ビットによって選択される。単一、二重、または四重データ・ワードは、計算ブロック１２、または計算ブロック１４、あるいは双方に転送することができる。二重および四重データ・ワード・アクセスは、単一クロック・サイクルにおいて数個のオペランドを計算ブロック１２および１４に転送可能にすることにより、多くの用途において、ＤＳＰ１０の処理能力向上をもたらす。各クロック・サイクル毎に多数の命令にアクセスすることができるので、各サイクル毎に多数の演算を実行することができ、これによって処理能力が向上する。計算ブロック１２および１４が必要とするよりも速くオペランドを供給することができれば、メモリ・サイクルが残り、コア・プロセッサからサイクルを盗むことなく、ＤＭＡアドレス発生器７６および７８がこれら未使用サイクルを使用し、その間に新たなデータをメモリ・バンク４０、４２および４４に供給することが可能となる。最後に、多数のデータ・ワードにアクセスすることができるので、２つ以上の計算ブロックを利用し、これらにオペランドを供給し続けることが可能となる。単一または二重データ・ワードにアクセスすることができるので、四重データ・ワードのみがアクセスされる構成と比較すると、電力消費が低減する。
【００２３】
リンク・ポート２６のブロック図を図２に示す。図２の例では、ディジタル信号プロセッサは、４つの双方向リンク・ポート、即ち、通信ポート１３２、１３４、１３６および１３８を含む。尚、ディジタル信号プロセッサは、本発明の範囲内において、あらゆる数の双方向通信ポートでも含み得ることは理解されよう。バス９０、９２および９４が、バス・バッファ１１０に結合されている。バス９０は、データ・バス６０（図１）およびアドレス・バス５０を含む。バス９２は、データ・バス６２およびアドレス・バス５２を含む。そしてバス９４は、データ・バス６４およびアドレス・バス５４を含む。バス・バッファ１１０は、データ・バス６０、６２および６４を、それぞれ、リンク・ポート・データ・バス１２０、１２２および１２４に結合する。また、バス・バッファ１１０は、アドレス・バス５０、５２および５４を、それぞれ、リンク・ポート・アドレス・バス１１２、１１４および１１６にも結合する。アドレス・バス１１２、１１４および１１６は、中央制御ロジック１３０に入力される。
【００２４】
データ・バス１２０、１２２および１２４は、リンク・ポート１３２、１３４、１３６および１３８に接続されている。更に具体的には、データ・バス１２０は、出力バス１２０ａおよび入力バス１２０ｂに別れ、データ・バス１２２は出力バス１２２ａおよび入力バス１２２ｂに別れ、データ・バス１２４は出力バス１２４ａおよび入力バス１２４ｂに別れる。出力バス１２０ａ、１２２ａおよび１２４ａは、それぞれ、リンク・ポート１３２、１３４、１３６および１３８内の出力バッファ１４２、１４４、１４６および１４８に接続されている。入力バス１２０ｂ、１２２ｂおよび１２４ｂは、それぞれ、リンク・ポート１３２、１３４、１３６および１３８内の入力バッファ１５２、１５４、１５６および１５８に接続されている。出力バッファ１４２および入力バッファ１５２は、リンク・ポート１３２のデータ経路１６２に接続されている。同様に、出力バッファ１４４および入力バッファ１５４は、リンク・ポート３４のデータ経路１６４に接続され、出力バッファ１４６および入力バッファ１５６はリンク・ポート１３６のデータ経路１６６に接続され、出力バッファ１４８および入力バッファ１５８はリンク・ポート１３８のデータ経路１６８に接続されている。図２の例では、各データ経路１６２、１６４、１６６および１６８のポートは、８本のデータ・ラインを有する。尚、本発明の範囲内において、異なる数のデータ・ライン、通常では、４本以上も利用可能であることは理解されよう。データ経路１６２、１６４、１６６および１６８は双方向である。送信するデータは、それぞれの出力バッファ１４２、１４４、１４６および１４８に保持され、受信データはそれぞれの入力バッファ１５２、１５４、１５６および１５８に保持される。
【００２５】
本発明による双方向通信ポートを用いた２つのディジタル信号プロセッサ間における相互接続のブロック図を図３に示す。ディジタル信号プロセッサ１８０は、リンク・ポート１８２を介して、ディジタル信号プロセッサ１８８のリンク・ポート１８６に相互接続されている。リンク・ポート相互接続部は、データ・ラインＬｘＤＡＴおよび２本の制御ラインを含む。以下で論ずるが、場合によっては、任意に第３の制御ラインを用いる場合もあり得る。図３の例では、リンク・ポートは８本のデータ・ラインを有するので、１バイトが並列に転送される。制御ラインは、第１制御ラインＬｘＣＬＫＡおよび第２制御ラインＬｘＣＬＫＢを含む。
【００２６】
双方向データ伝送に好適なプロトコルについて、図３および図４のタイミング図を参照しながら説明する。制御ラインＬｘＣＬＫＡおよびＬｘＣＬＫＢは、ハンドシェーク対を形成し、非同期データ転送を可能とする。この場合、送信機は、一方のクロック・ライン上にクロックまたはストローブ（ｓｔｒｏｂｅ）を供給し、受信機は他方のクロック・ライン上に承認信号を供給する。１本の制御ラインが各ディジタル信号プロセッサに割り当てられている。ディジタル信号プロセッサは、一方の制御ラインを駆動し、他方の制御ライン上で受信を行なう。ＤＳＰが送信しているとき、制御ラインはストローブとして駆動される。ＤＳＰが受信しているとき、同じ制御ラインが、承認信号として駆動される。
【００２７】
図３および図４の例では、リンク・ポートが送信する３２ビット・ワードは、４バイトを含み、四重ワードは１６バイトを含む。図４に示すように、各クロック・サイクル毎に、２バイトが送信される。クロックの立ち上がりエッジおよび立ち下がりエッジ双方が、データを送信するために用いられる。クロックの立ち上がりエッジ上で、第１バイトが８データ・ライン上で送信され、クロックの立ち下がりエッジ上で第２バイトが送信される。受信機は、その受信バッファ内に別のワードを受け入れる用意ができたときに、承認信号をアサートする。送信機は、各四重ワード送信の終了時近くに、即ち、各１６バイトの後に、承認信号をサンプリングする。その時点で承認信号をディアサートすると、送信機は新たなワードを送信しない。最終的に承認信号を再度アサートすると、送信機は、以下で述べるように、４サイクル待ち、受信機が送信方向を変更していないことを確認する。次いで、送信機は、次の四重ワードの送信を開始する。送信バッファが空の場合、クロック信号は、バッファが再度満たされるまで、承認信号の状態には無関係に高に留まる。
【００２８】
リンク・ポートは双方向通信を可能とし、データ転送方向を変更することができる。プログラマは、受信機が送信方向の変更を要求する前に、送信するデータのパケット・サイズを制御する。一例では、２５６ワードのパケットまたは無限サイズのパケットを選択することも可能である。２５６ワードのパケットを選択した場合、２５６ワードを送信した後、送信方向が変化する場合がある。無限サイズのパケットを選択した場合、送信機は、それが終了するまで、送信し続ける。
【００２９】
リンク・ポートが現在受信中であり、送信するデータを有する場合、即ち、方向を変更したい場合、受信ワード・カウンタが示す、選択したパケット・サイズのパケットを受信した後に、その承認信号をディアサートする。送信機が四重ワードの終端において送信を停止すると、受信機は送信モードに切り替え、そのＬｘＣＬＫラインを用い、承認信号の代わりにストローブを送ることによって、データを送信し始める。送信方向を切り替えた後、以前の送信機が承認信号を駆動し、新たな送信機がチェックする。次いで、新たな送信機がデータを送信する。
【００３０】
図４に示すように、デバイスＡはＬｘＣＬＫＡラインを駆動し、デバイスＢはＬｘＣＬＫＢラインを駆動する。デバイスＡは、四重データ・ワードａ０〜ａ１５を送信し、ＬｘＣＬＫＡラインは、デバイスＡによって駆動されるストローブ信号を搬送し、ＬｘＣＬＫＢラインは、デバイスＢによって駆動される承認信号を搬送する。以下で論ずるが、デバイスＡは、検証バイトおよび未使用バイト、または検証バイトおよびトレーニング・バイト（図示せず）を送信することも可能である。デバイスＢは、四重データ・ワードの送信中、ＬｘＣＬＫＢライン上の承認信号をディアサートする。四重データ・ワードａ０〜ａ１５（および四重データ・ワードに関連するあらゆる付加バイト）の送信完了後、デバイスＢはＬｘＣＬＫＢラインをストローブとしてトグル（ｔｏｇｇｌｅ）することにより、送信を開始することができる。四重データ・ワードａ０〜ａ１５で２５６ワード・パケットまたはその他の選択したパケット・サイズが完成し、送信方向を変更できると仮定する。デバイスＢは四重データ・ワードｂ０〜ｂ１５およびあらゆる関連バイトを送信し、デバイスＡはＬｘＣＬＫＡライン上の四重データ・ワードｂ０〜ｂ１５を承認する。あるいは、四重データ・ワードａ０〜ａ１５の送信完了後、デバイスＢは、ＬｘＣＬＫＢライン上の承認信号をアサートし、デバイスＡは送信を継続することができる。
【００３１】
送信方向は、現在受信中のデバイスによって制御される。現在受信中のデバイスは、そのＬｘＣＬＫライン上の承認信号をアサートし、追加のデータを受信する準備ができていることを示すことができる。あるいは、現在受信中のデバイスは、そのＬｘＣＬＫラインをストローブとしてトグルし始め、送信方向を変更しようとしていることを示すことができる。現在送信中のデバイスは、現在受信中のデバイスからのＬｘＣＬＫラインを検査することによって、送信し続けるかまたは方向を変更するかについて判定を行なう。現在受信中のデバイスからのＬｘＣＬＫラインが、４サイクルというような、所定の待ち時間にわたってアサートされたままである場合、現在送信中のデバイスは承認信号を認識し、送信し続ける。現在受信中のデバイスからのＬｘＣＬＫラインがトグルされた場合、現在送信中のデバイスは送信方向の変更を認識し、送信モードから受信モードに変更する。所定の待ち時間は、ラインＬｘＣＬＫ上において現在受信中のデバイスからの承認信号およびストローブ間で区別を行なうのに十分であれば、いずれの時間とすることも可能である。
【００３２】
本発明の双方向リンク・ポートは、任意の制御ラインＬｘＤＩＲを含むこともでき、２つの異なる機能を（異なる時点で）行なうことができる。第１構成では、ＬｘＤＩＲラインは、リンク・ポートの送信方向を示す。ＤＳＰチップ外部で駆動回路を用いる場合、方向制御信号を利用し、例えば、比較的長い距離にわたる送信、または光ファイバ上での送信を行なうことも可能である。方向制御信号の状態は、送信の方向を示す。
【００３３】
第２の構成では、ＬｘＤＩＲラインは、多元チャネル送信におけるフレーム同期に用いられる。受信モードでは、フレーム同期信号をアサートして低とし、フレーム／バッファの終了を意味することができる。フレーム同期信号は、四重ワードの終端において、ライン・クロックの立ち上がりエッジ上でサンプリングする。論理「１」から論理「０」への遷移は、バッファの終了を意味する。これは、最後の１つを含む、これまでに受信されたバイトが完全なバッファであることを意味するものとして解釈される。送信モードでは、フレーム同期信号はバッファの終了を意味し、リンク・ポート上で駆動されている現ＤＭＡの最後のバイトの直前で、アサートされ低となる。送信フレーム同期信号は、新たなＤＭＡブロックが送信を開始するとき、ディアサートされる。
【００３４】
リンク・ポート１３２の出力バッファ１４２および入力バッファ１５２のブロック図を図５に示す。出力バス１２０ａ，１２２ａおよび１２４ａから選択した１つが、出力バス・マルチプレクサ２２０によって、内部レジスタ２２２に接続される。内部レジスタ２２２の出力は、外部レジスタ２２４の入力に接続されている。外部レジスタ２２４の出力は、送信制御ロジック２３０を介して、データ経路１６２に接続されている。ＬｘＣＬＫＡおよびＬｘＣＬＫＢ制御ラインは、送信制御ロジック２３０に接続されている。出力マルチプレクサ２３４が、適切なバスのために制御ラインを選択し、選択した制御ラインを送信制御ロジック２３０に供給する。
【００３５】
入力バッファ１５２において、データ経路１６２は受信制御ロジック２５０を介して外部レジスタ２５２に結合されている。外部レジスタ２５２の出力は、内部レジスタ２５４の入力に結合され、内部レジスタ２５４の出力は入力バス・マルチプレクサ２５６に結合されている。入力バス・マルチプレクサ２５６は、内部レジスタ２５４の出力を、入力バス１２０ｂ、１２２ｂおよび１２４ｂから選択した１つに結合する。入力マルチプレクサ２６０は、制御信号を選択し、選択した制御信号を受信制御ロジック２５０に供給する。ＬｘＣＬＫＡおよびＬｘＣＬＫＢ制御ラインは、受信制御ロジック２５０に接続されている。制御レジスタ２６２は、入力および出力バッファの動作を制御するための制御情報を収容する。
【００３６】
リンク・ポートが送信している場合、内部レジスタ２２２は内部メモリ・データまたはＤＭＡデータを受け入れる。外部レジスタ２２４は、最上位バイトを先頭として、四重データ・ワードのバイトへのアンパック（ｕｎｐａｃｋｉｎｇ）を行う。レジスタ２２２および２２４は、二段階先入れ先出し（ＦＩＦＯ）を形成する。満杯状態が通知されるまでは、内部メモリまたはＤＭＡコントローラによって、２回の書き込みがバッファに対して行われる。各データ・ワードをアンパックし送信する毎に、ＦＩＦＯ内の次の位置が使用可能となり、新たな要求を行なうことができる。レジスタが空になると、クロックはディアサート（ｄｅａｓｓｅｒｔ）される。
【００３７】
リンク・ポートが受信している場合、外部レジスタ２５２を用い、最上位バイトを先頭として、受信データをパックする。データは、外部レジスタ２５２から内部レジスタ２５４に渡され、その後内部メモリまたはＤＭＡコントローラに転送される。レジスタ２５２および２５４によって形成されるバッファは、リンク・ポート入力には、深さ８ワードのＦＩＦＯであるかのように見える。全ての位置が満たされるまでは、ＤＭＡコントローラがバッファにサービスしない場合、承認信号をディアサートする。内部レジスタ２５４がＤＭＡコントローラまたは内部メモリによってアクセスされると、深さ２ワードのＦＩＦＯのように見える。受信ハンドシェークが、受信制御ロジック２５０によって確立される。これについては以下で説明する。
【００３８】
中央制御ロジック１３０のブロック図を図６に示す。中央制御ロジックは、バス選択およびアドレシングを制御する。各リンク・ポートは３つのレジスタを有し、これらはグローバル・メモリ・マップにマッピングされる。即ち、入力バッファ内部レジスタ２５４（読み取りのみ）、出力バッファ内部レジスタ２２２（書き込みのみ）、および制御レジスタ２６２（読み取りおよび書き込み）にマッピングされる。リンク・ポート・アドレス・バス１１２、１１４および１１６上のアドレスは、アドレス・レジスタ３１０、３１２および３１４にそれぞれラッチされる。アドレス・レジスタ３１０、３１２および３１４の出力は、それぞれ、デコーディング・ユニット３２０、３２２および３２４に結合されている。デコーディング・ユニットは、受け取ったアドレスに応じて４つのリンク・ポートの各々において、出力バッファ内部レジスタ２２２、入力バッファ内部レジスタ２５４および制御レジスタ２６２にイネーブル信号を発生する。デコーディング・ユニット３２０、３２２および３２４の追加出力が、優先度ロジック・ユニット３４０、３４２、３４４および３４６に供給され、１つが各リンク・ポートに対応する。優先度ロジック・ユニットの出力は、リンク・ポートの各々における出力バス・マルチプレクサ２２０および入力バス・マルチプレクサ２５６に、選択信号を供給する。
【００３９】
送信制御ロジック２３０（図５）のブロック図を図７に示す。リンク・ポート・データ経路１６２は、送信制御ロジック２３０を通過し、送信エラーを検出するエラー・ユニット４１０に結合されている。ＬｘＣＬＫＡおよびＬｘＣＬＫＢ制御ラインは、制御ユニット４２０に結合されている。バイト・カウンタ４２４は、送信バイトをカウントし、カウントを制御ユニット４２０に供給する。エラー・ユニット４１０は、検証バイトを発生する。これについては以下で説明する。
【００４０】
受信制御ロジック２５０（図５）のブロック図を図８に示す。リンク・ポート・データ経路１６２は、受信制御ロジック２５０を通過し、受信エラーを検出するエラー・ユニット４５０に結合されている。制御ラインＬｘＣＬＫＡおよびＬｘＣＬＫＢは制御ユニット４６０に結合されている。バイト・カウンタ４６４は、受信バイトをカウントし、カウントを制御ユニット４６０に供給する。エラー・ユニット４５０は、受信データ・バイトからローカル検証バイトを発生し、このローカル検証バイトを受信した検証バイトと比較し、エラー状態を判定する。これについては、以下で説明する。
【００４１】
以上、１つのデバイスを通信チャネルの各終端に接続する二点間通信に関連付けて、本発明の双方向リンク・ポートについて説明した。本発明の更に別の特徴によれば、３つ以上のデバイスのリンク・ポートをバス構成で接続することも可能である。この双方向リンク・ポートのバス構成は、二点間モードで動作することができる。この場合、バスに接続した１つのディジタル信号プロセッサが送信を行い、別のデバイスが受信を行ない、他のデバイスは全て、三状態のバスに接続されている。同報通信モードでは、１つのディジタル信号プロセッサが、リンク・ポート・バスに接続されている他のデバイスにデータを同報通信する。同報通信モードでは、承認信号は、ワイヤ・オアされているので、バスに接続されているいずれのデバイスでも承認信号をディアサートすることができる。リンク・ポートをバス構成で用いる場合、リンク・ポート・バス上のどのデバイスが送信し、どのデバイスまたはデバイス群が受信しているのかを確定するためには、外部バス５８，６８（図１）を通じたデバイス間の通信が必要となる。
【００４２】
本発明の別の特徴によれば、リンク・ポートは、フロー・スルー構成で動作することができる。再度図２を参照すると、データは、例えば、１つの外部デバイスからリンク・ポート１３２によって受信され、リンク・ポート１３４に受け渡されて、第２の外部デバイスに送信することができる。即ち、データ経路１６２上で受信したデータを、リンク・ポート１３２の入力バッファ１５２からリンク・ポート１３４の出力バッファ１４４に転送し、データ経路１６４上に伝送する。
【００４３】
本発明の別の特徴によれば、リンク・ポートは、ＤＳＰの内部メモリ１６（図１）へおよび内部メモリ１６からのＤＭＡ転送、または外部バス５６、６８を通じた外部メモリへのおよび外部メモリからのＤＭＡ転送にも用いることができる。本発明の双方向リンク・ポートは、１つ以上のエラー検出機構を含むことができる。第１のエラー検出機構では、所定数のデータ・バイトに続いて、検証バイトを送信することができる。例えば、検証バイトは、１６バイトの各四重ワードの後に送信することができる。検証バイトは、従来のチェックサム計算を用いて、送信されたデータ・バイトに基づいて計算すればよい。受信機は、受信したデータ・バイトについて同じ計算を行い、ローカル検証バイトを発生する。ローカル検証バイトを、受信した検証バイトと比較する。ローカル検証バイトが受信した検証バイトと一致しない場合、エラー状態が示される。受信機は、例外割込（ｅｘｃｅｐｔｉｏｎ  ｉｎｔｅｒｒｕｐｔ）を発生し、および／またはその承認信号をディアサートすることができる。
【００４４】
別のエラー検出機構によれば、受信機は、各四重ワード送信の間、一次的に承認信号をディアサートする。送信機が送信中に承認信号において遷移を検出しない場合、受信機の不良が指示され、例外割込を発生する。この機構は、承認信号の永続的にアサートされている状態をチェックする。別のエラー検出機構では、送信機はタイムアウトを利用して、承認信号が永続的にディアサートされているエラー状態を検出することができる。受信機からの承認信号が、プログラム可能なタイムアウト期間にわたってディアサートされたままとなっている場合、受信機エラーが指示され、例外割込を発生する。同様に、受信機は、送信機から受信するクロック信号に対して、タイムアウトを利用することも可能である。受信機において、プログラム可能なタイムアウト期間にわたってクロック状態が変化しない場合、送信機エラーが指示され、例外割込を発生する。これらの機構は、送信機および受信機間の接続性（ｃｏｎｎｅｃｔｉｖｉｔｙ）をチェックする。接続性のソフトウエアによるチェックも実現可能である。また、タイマが割込ルーチンを周期的に起動し、メッセージを受信機に送ることも可能である。このメッセージは、宛先のデバイスに割込、送信機にメッセージを返送させることによって、接続を検証する。
【００４５】
本発明の双方向リンク・ポートは、高データ転送速度を対象に設計されている。一例では、リンク・ポートは１００ＭＨｚクロックを用い、その結果２００ＭＨｚのデータ速度となる。何故なら、各クロック・サイクル毎に２バイトが転送されるからである。リンク・ポートを相互接続するためには、リボン同軸ケーブルを用いることができる。これらのクロック周波数では、データ・ラインに対するクロック・スキュー、およびデータ・ライン間のスキューが、データ送信においてエラーを生ずる可能性がある。本発明の双方向リンク・ポートの更に別の特徴によれば、トレーニング・シーケンスをデータと共に送信し、タイミング・スキューの補正を可能とすることができる。即ち、各四重ワードに続いて、トレーニング・バイトを送信することができる。したがって、１６バイトの各四重ワードの後に、検証バイトおよびトレーニング・バイトが続く場合もある。トレーニング・バイトは、受信機にはわかっている所定パターンに応じて、適宜変更することができる。受信機には、各受信データ信号のタイミング遅延を±ｐΔの量だけ変化させる回路が備えられており、Δは、例えば、ｂｃ２００ピコ秒とし、ｐは０、１、２、３等とすることができる。ｐΔのタイミング遅延は、トレーニング・バイトを受信するときに導入する。タイミング遅延は、エラーが発生するまで、トレーニング・バイトの連続に応じて延長していく。トレーニング・バイトの内容は受信機にはわかっているので、エラーを検出することができる。こうして、エラーが発生するまで、逆極性のタイミング遅延が、連続するトレーニング・バイトに導入される。正しいタイミングは、エラーを生ずる正および負タイミング遅延にわたる範囲の中心として確定すればよい。データ・バイトの受信には、正しい遅延が用いられる。トレーニング・シーケンスは、必要なだけ繰り返すことができる。
【００４６】
受信制御ロジック２５０の制御ユニット４６０（図８）の動作について、図９Ａおよび図９Ｂのフロー・チャートを参照しながら説明する。以下では、リンク・ポートは、送信機および受信機を有し、その一方がリンク・ポートの制御を行なうものとして説明する。ステップ５１０において受信機がイネーブル（ｅｎａｂｌｅ）状態にあると判定された場合、ステップ５１２においてプログラムされている転送速度をチェックし、ステップ５１４または５１６において、必要であれば変更する。送信機が支配側（リンク・ポートの制御を行なう）であるとステップ５２０で判定された場合、受信機は待機する。それ以外の場合、ステップ５２２において、受信機のバッファをセットし、ステップ５２４において、制御レジスタ２６２または入力バッファの内部レジスタ２５４が他の資源（ｒｅｓｏｕｒｃｅ）によってアクセスされたか否かについて判定を行なう。制御レジスタまたは入力バッファの内部レジスタがアクセスされた場合、ステップ５２６において適切な選択信号を制御ロジックに送る。ステップ５３０において受信機に問題が検出された場合、ステップ５３２において承認信号をディアサートし、それ以上の動作を中止する。受信機に問題が検出されない場合、ステップ５３４において承認信号をアサートする。次に、ステップ５３６において、受信機はアクティブなクロック入力を探す。アクティブなクロック入力が検出された場合、ステップ５４０においてデータ経路１６２上のバイトを外部レジスタ２５２（図５）にラッチする。ステップ５４２において、１６バイトを受信し終えたか否かについて判定を行なう。未だ１６バイトを受信していない場合、プロセスはステップ５２４に戻り、追加のバイトを受信する。１６バイトを受信し終えた後、プロセスはステップ５５０（図９Ｂ）に進み、検証バイトの処理を行なう。ステップ５３６においてアクティブなクロック入力が検出されない場合、ステップ５４６において、既定のタイムアウト期間が経過したか否かについて判定を行なう。タイムアウト期間が経過していない場合、プロセスはステップ５３６に戻り、アクティブなクロック入力を探す。タイムアウト期間が経過した後、ステップ５４８において接続性エラー割込を発生する。
【００４７】
次に図９Ｂを参照すると、ステップ５５０において、ローカル検証バイトを、受信した検証バイトと比較し、ステップ５５２において内部レジスタを駆動する（ｃｌｏｃｋ）。ステップ５５４において、ＤＭＡまたは割込をイネーブルするか否かについて判定を行なう。ＤＭＡをイネーブルする場合、ステップ５５６においてＤＭＡ要求信号ＤＭＡＲをＤＭＡコントローラに送る。割込をイネーブルする場合、ステップ５５８において割込要求信号を発生する。ステップ５６０において、受信ステータスを制御レジスタ２６２に送る。ステップ５６２において、所定のタイム・スロットにおいて承認信号をディアサートし、接続性チェックを行なう。
【００４８】
ステップ５６４において、プログラムされている受信パケットのサイズをチェックする。図９Ｂの例では、パケット・サイズは２５６ワード、または無限のワード数であると仮定する。パケット・サイズを２５６ワードに選択した場合、ステップ５６６において、完全なパケットが受信されたか否かについて判定を行なう。完全なパケットが受信されていた場合、ステップ５７２において、現在受信中のリンク・ポート内の送信機が、送信するデータを有するか否かについて判定を行なう。現在受信中のリンク・ポート内の送信機が、送信するデータを有する場合、ステップ５７４において承認信号をディアサートし、プロセスはステップ５６８に進み、送信モードに変更する。ステップ５７０において４サイクル遅延を開始し、次いでプロセスはステップ５２０に戻り、受信機が再度アクティブになるまで待つ。完全なパケットが未だ受信されていないとステップ５６６において判定された場合、または現在受信中のリンク・ポートが送信するデータを有していないとステップ５７２において判定された場合、プロセスはステップ５２４（図９Ａ）に戻り、別の四重データ・ワードを受信する。受信機が無限サイズのパケットを受信するようにプログラムされているとステップ５６４において判定された場合、ステップ５７６において、クロック遷移が送信機から受信されているか否かについて判定を行なう。クロック遷移が受信されている場合、プロセスはステップ５２４に戻り、別の四重データ・ワードを受信する。クロック遷移が受信されていないとステップ５７６において判定された場合、ステップ５７２において、現在受信中のリンク・ポート内の送信機が、送信するデータを有するか否かについて判定を行なう。ステップ５７２から、プロセスは前述のように進んでいく。
【００４９】
送信制御ロジック２３０内の制御ユニット４２０（図７）の動作について、図１０Ａおよび図１０Ｂのフロー・チャートを参照しながら説明する。ステップ６１０において、送信機をイネーブルするか否かについて判定を行なう。送信機をイネーブルする場合、ステップ６１２において、プログラムされている転送速度を判定し、ステップ６１４またはステップ６１６において、必要に応じてクロックを変更する。ステップ６２０において、送信機または受信機のどちらが支配側かについて判定を行なう。受信機が支配側である場合、送信機は待機状態に留まる。送信機が支配側である場合、ステップ６２２において送信機のバッファをセットし、ＤＭＡをイネーブルする場合、ステップ６２４において、ＤＭＡ要求信号ＤＭＡＲをアサートする。
【００５０】
ステップ６２６において、制御レジスタ２６２または出力バッファの内部レジスタ２２２がアサートされているか否かについて判定を行なう。制御レジスタまたは内部レジスタがアサートされている場合、ステップ６２８において、適切なクロック信号を制御ロジックに送る。それ以外の場合、プロセスはステップ６３０に進み、送信機に問題があるか否かについて判定を行なう。ステップ６３０において問題が識別された場合、ステップ６３２においてクロック信号をディアサートする。それ以外の場合、送信機は、ステップ６３４において、承認信号がアサートされているか否かについて判定を行なう。
【００５１】
承認信号がアサートされている場合、ステップ６４０において、いずれかのデータを送信することができるか否かについて判定を行なう。データを送信することができない場合、ステップ６４２においてクロック信号を高レベルに保持する。ステップ６４４において、４クロック・サイクルに等しい時間が経過したか否かについて判定を行なう。４クロック・サイクルが経過していない場合、プロセスはステップ６３４に戻る。４クロック・サイクルが経過した後、プロセスはステップ６２６に進む。ステップ６４０においてデータを送信することができる場合、ステップ６５２においてクロック信号をアサートすることにより、データ・ラインに１バイト送信する。次いで、ステップ６５４において、１６バイトを送信し終えたか否かについて判定を行なう。１６バイトを送信し終えていない場合、プロセスはステップ６２６に戻り、四重ワードにおける次のバイトを送信する。１６バイトの四重ワードを送信し終えたなら、プロセスはステップ６６０（図１０Ｂ）に進む。
【００５２】
承認信号がアサートされていないとステップ６３４において判定された場合、ステップ６３６においてデータ・ラインを現状態にしておく。次いで、ステップ６４６において、承認ライン上に遷移があるか否かについて判定を行なう。承認ライン上に遷移がある場合、プロセスはステップ６５０に進み、受信モードに変更する。承認ラインに遷移がないとステップ６４６において判定された場合、ステップ６４８において、所定のタイムアウト期間が経過したか否かについて判定を行なう。タイムアウト期間が経過していない場合、プロセスはステップ６３４に戻る。タイムアウト期間が経過したとステップ６４８で判定された場合、エラー割込を発生する。
【００５３】
次に図１０Ｂを参照すると、ステップ６６０において検証バイトを送信し、ステップ６６２において、受信機からの承認信号が四重データ・ワードの送信中にディアサートされたか否かについて判定を行なうことにより、接続性をチェックする。ステップ６６４において、新たなデータ・ワードが内部レジスタ２２２において送信のために得られるか否かについて判定を行なう。新たなデータ・ワードが内部レジスタ２２２内にある場合、ステップ６６６においてこの新たなワードを外部レジスタ２２４に移動し、ＤＭＡをイネーブルする場合、ステップ６６８においてＤＭＡ要求信号ＤＭＡＲをＤＭＡコントローラに送る。次に、ステップ６７０において、送信ステータスを制御レジスタ２６２に送る。ステップ６７２において、承認ライン上に遷移があるか否かについて判定を行なう。承認ライン上に遷移がある場合、ステップ６５０において支配側ライン（ｄｏｍｉｎａｔｏｒ  ｌｉｎｅ）を変更して受信モードを示し、ステップ６７６において４クロック・サイクル遅延を開始する。４クロック・サイクル遅延に続いて、プロセスはステップ６２０に戻り、送信機が再びアクティブになるまで待つ。承認ライン上に遷移があるとステップ６７２において判定された場合、ステップ６８０において、承認信号がアサートされているか否かについて判定を行なう。承認信号がアサートされている場合、プロセスはステップ６２６（図１０Ａ）に戻る。承認信号がアサートされていない場合、ステップ６８２において、タイムアウト期間が経過したか否かについて判定を行なう。タイムアウト期間が経過していない場合、プロセスはステップ６７２に戻る。タイムアウト期間が経過したとステップ６８２において判定された場合、エラー割込を発生する。
【００５４】
以上、現時点において本発明の好適な実施形態であると考えられるものについて示しかつ説明したが、添付した特許請求の範囲に規定する本発明の範囲から逸脱することなく、種々の変更や修正も可能であることは当業者には明白であろう。
【図面の簡単な説明】
【図１】  本発明によるディジタル信号プロセッサのブロック図である。
【図２】  図１に示すリンク・ポートのブロック図である。
【図３】  本発明による双方向通信ポートを用いた、２つのディジタル信号プロセッサ間の相互接続を示すブロック図である。
【図４】  本発明の双方向通信ポートの動作を示すタイミング図である。
【図５】  リンク・ポートの入力バッファおよび出力バッファのブロック図である。
【図６】  図２に示す中央制御ロジックのブロック図である。
【図７】  図５に示す送信制御ロジックのブロック図である。
【図８】  図５に示す受信制御ロジックのブロック図である。
【図９Ａ】  図８の受信制御ロジックの動作のフロー・チャートを示す。
【図９Ｂ】  図８の受信制御ロジックの動作のフロー・チャートを示す。
【図１０Ａ】  図７の送信制御ロジックの動作のフロー・チャートを示す。
【図１０Ｂ】  図７の送信制御ロジックの動作のフロー・チャートを示す。
【図１】
0004267818.tif 000002
【図２】
0004267818.tif 000003
【図３】
0004267818.tif 000004
【図４】
0004267818.tif 000005
【図５】
0004267818.tif 000006
【図６】
0004267818.tif 000007
【図７】
0004267818.tif 000008
【図８】
0004267818.tif 000009
【図９】
0004267818.tif 000010
0004267818.tif 000011
【図１０】
0004267818.tif 000012
0004267818.tif 000013