添付の図面に関して以下に記載する詳細な説明は、様々な構成の説明として意図されており、本明細書で説明する概念が実践され得る唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解を与える目的で、具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることが当業者に明らかとなろう。いくつかの事例では、そのような概念を不明瞭にすることを回避するために、よく知られている構造および構成要素がブロック図の形態で示される。
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に常駐することができ、構成要素は、1つのコンピュータ上に局在されてよく、かつ/または2つ以上のコンピュータ間に分散されてよい。加えて、これらの構成要素は、様々なデータ構造がその上に記憶された様々なコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステムの中の、分散システムの中の、かつ/またはインターネットなどのネットワークにわたる、別の構成要素と相互作用する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号によるようなローカルプロセスおよび/またはリモートプロセスによって、信号を介して他のシステムと通信し得る。
その上、「または」という用語は、排他的な「または」ではなく包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈から明白でない限り、「XはAまたはBを採用する」という句は、自然包括的並べ替えのうちのいずれかを意味するものとする。すなわち、「XはAまたはBを採用する」という句は、以下の事例、すなわち、「XはAを採用する」、「XはBを採用する」、または「XはAとBの両方を採用する」のうちのいずれかによって満たされる。加えて、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明白でない限り、一般に「1つまたは複数の」を意味するものと解釈されるべきである。
概要
本発明のいくつかの態様は、電話、モバイルコンピューティングデバイス、アプライアンス、自動車電子装置、アビオニクスシステムなどのモバイル装置の下位構成要素である電子デバイスを接続するために展開され得る、MIPIアライアンスによって指定されるC-PHYインターフェースに適用可能であり得る。モバイル装置の例は、モバイルコンピューティングデバイス、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)電話、ラップトップ、ノートブック、ネットブック、スマートブック、携帯情報端末(PDA)、衛星ラジオ、全地球測位システム(GPS)デバイス、スマートホームデバイス、インテリジェント照明、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレーヤ(たとえば、MP3プレーヤ)、カメラ、ゲーム機、エンターテインメントデバイス、車両構成要素、アビオニクスシステム、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、ヘルストラッカーまたはフィットネストラッカー、アイウェアなど)、アプライアンス、センサー、セキュリティデバイス、自動販売機、スマートメーター、ドローン、マルチコプター、または同様に機能する任意の他のデバイスを含む。
C-PHYインターフェースは、帯域幅が制限されたチャネルを介して高いスループットを提供できる高速シリアルインターフェースである。C-PHYインターフェースは、ディスプレイおよびカメラを含む周辺機器にアプリケーションプロセッサを接続するために展開され得る。C-PHYインターフェースは、データを符号化して、3本のワイヤのセット上で送信されるシンボルにし、そうしたセットは、3つ組、またはワイヤの3つ組と呼ばれることがある。シンボル送信区間ごとに、3つ組のワイヤ上で異なる位相をなして3相信号が送信され、ここで、各ワイヤ上の3相信号の位相は、シンボル送信区間の中で送信されるシンボルによって規定される。各3つ組は、通信リンク上にレーンを提供する。シンボル送信区間は、単一のシンボルがその中で3つ組のシグナリング状態を制御する時間の区間として規定され得る。各シンボル送信区間の中で、3つ組の1本のワイヤは駆動されないが、残りの2本のワイヤは、差動的に駆動される2本のワイヤのうちの一方が第1の電圧レベルを呈し、かつ差動的に駆動される他方のワイヤが、第1の電圧レベルとは異なる第2の電圧レベルを呈するように、差動的に駆動される。駆動されないワイヤは浮いていてよく、第1の電圧レベルと第2の電圧レベルとの間の中間レベル電圧におけるまたはその近くの第3の電圧レベルを呈するように駆動および/または終端されてよい。一例では、駆動されない電圧が0Vであって、駆動される電圧レベルは+Vおよび-Vであってよい。別の例では、駆動されない電圧が+1/2Vであって、駆動される電圧レベルは+Vおよび0Vであってよい。連続的に送信されるシンボルの各ペアの中で異なるシンボルが送信され、ワイヤの異なるペアは異なるシンボル区間の中で差動的に駆動され得る。
本明細書で開示するいくつかの態様は、次世代C-PHYクロックレートにおけるシンボル取込みおよびシンボル復号を可能にするために、開ループハーフレートクロック復元回路を使用する、C-PHYレシーバ回路の中のクロック復元回路を提供する。一例では、クロック復元方法は、3ワイヤバスの中のワイヤのペアのシグナリング状態の差分を表す3つの差分信号のうちの1つにおける遷移に応答して遷移パルスを生成することと、連続的に送信されるシンボルのペア間の各境界において生成される1つまたは複数の遷移パルスを合成することによって、連続的に送信されるシンボルのペア間の各境界において合成信号の中に単一パルスを提供することと、合成信号の中の各パルスに応答してクロック信号のシグナリング状態が変化するような合成信号を用いて遅延フリップフロップをクロッキングすることとを含む。3ワイヤバス上で連続的に送信されるシンボル間の境界において、1つまたは複数の差分信号における遷移が発生し得る。
C-PHYインターフェースを採用する装置の例
図1は、本明細書で開示するいくつかの態様に従って適合され得る装置100の一例を示す。装置100は、1つまたは複数の通信リンクを実施するためにC-PHY3相プロトコルを採用し得る。装置100は、1つまたは複数のASICの中またはSoCの中に実装され得る複数の回路またはデバイス104、106、および/または108を有する処理回路102を含んでよい。一例では、装置100は通信デバイスであってよく、処理回路102は、ASIC104の中に設けられたプロセッサ112、1つまたは複数の周辺デバイス106、ならびに装置がアンテナ124を通じて無線アクセスネットワーク、コアアクセスネットワーク、インターネット、および/または別のネットワークと通信することを可能にするトランシーバ108を含んでよい。
ASIC104は、1つもしくは複数のプロセッサ112、1つもしくは複数のモデム110、オンボードメモリ114、バスインターフェース回路116、および/または他の論理回路もしくは機能を有してよい。処理回路102は、処理回路102の上に設けられたオンボードメモリ114またはプロセッサ可読ストレージ122の中に常駐するソフトウェアモジュールを1つまたは複数のプロセッサ112が実行することを可能にするアプリケーションプログラミングインターフェース(API)レイヤを提供し得る、オペレーティングシステムによって制御されてよい。ソフトウェアモジュールは、オンボードメモリ114または他のプロセッサ可読ストレージ122の中に記憶された命令およびデータを含んでよい。ASIC104は、そのオンボードメモリ114、プロセッサ可読ストレージ122、および/または処理回路102の外部にあるストレージにアクセスし得る。オンボードメモリ114、プロセッサ可読ストレージ122は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュカード、または処理システムおよびコンピューティングプラットフォームの中で使用され得る任意のメモリデバイスを含んでよい。処理回路102は、装置100および/または処理回路102を構成し動作させるために使用される動作パラメータおよび他の情報を維持できるローカルデータベースまたは他のパラメータストレージを含んでよく、実装してよく、またはそれらへのアクセスを有してもよい。ローカルデータベースは、レジスタ、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、ソフトディスクまたはハードディスクなどを使用して実装され得る。処理回路102はまた、構成要素の中でも、アンテナ124、ディスプレイ126などの外部デバイス、スイッチ128もしくはボタン130および/または一体型もしくは外部キーパッド132などのオペレータ制御装置に、動作可能に結合され得る。ユーザインターフェースモジュールは、専用の通信リンクを通じて、または1つもしくは複数のシリアルデータ相互接続を通じて、ディスプレイ126、外部キーパッド132などとともに動作するように構成され得る。
処理回路102は、いくつかのデバイス104、106、および/または108が通信することを可能にする、1つまたは複数のバス118a、118b、120を提供し得る。一例では、ASIC104は、回路、カウンタ、タイマー、制御論理、および構成可能な他の回路またはモジュールの組合せを含む、バスインターフェース回路116を含んでよい。一例では、バスインターフェース回路116は、通信仕様または通信プロトコルに従って動作するように構成され得る。処理回路102は、装置100の動作を構成および管理する電力管理機能を含んでよく、またはそれを制御し得る。
図2は、通信リンク220を通じてデータおよび制御情報を交換できる複数のICデバイス202および230を含む装置200のいくつかの態様を示す。通信リンク220は、互いに極めて近接して配置されるか、または装置200の異なる部分に物理的に配置される、1対のICデバイス202と230とを接続するために使用され得る。一例では、通信リンク220は、ICデバイス202および230を担持するチップキャリア、基板、または回路基板の上に設けられてよい。別の例では、第1のICデバイス202は、フリップフォン(flip-phone)のキーパッド部分に配置されてよく、第2のICデバイス230は、フリップフォンのディスプレイ部分に配置されてよい。別の例では、通信リンク220の一部分は、ケーブル接続または光接続を含んでよい。
通信リンク220は、複数のチャネル222、224、および226を含んでよい。1つまたは複数のチャネル226は双方向であってよく、半二重モードおよび/または全二重モードで動作し得る。1つまたは複数のチャネル222および224は単方向であってよい。通信リンク220は非対称であってよく、1つの方向においてより大きい帯域幅を提供する。本明細書で説明する一例では、第1のチャネル222は順方向チャネル222と呼ばれることがあり、第2のチャネル224は逆方向チャネル224と呼ばれることがある。ICデバイス202と230の両方がチャネル222上で送信および受信するように構成される場合でも、第1のICデバイス202はホストシステムまたはトランスミッタとして指定されてよく、第2のICデバイス230はクライアントシステムまたはレシーバとして指定されてよい。一例では、順方向チャネル222は、第1のICデバイス202から第2のICデバイス230にデータを通信するとき、より高いデータレートで動作してよく、逆方向チャネル224は、第2のICデバイス230から第1のICデバイス202にデータを通信するとき、より低いデータレートで動作してよい。
ICデバイス202および230は各々、プロセッサ206、236、コントローラ、または他の処理および/もしくはコンピューティング回路もしくはデバイスを含んでよい。一例では、第1のICデバイス202は、ワイヤレストランシーバ204およびアンテナ214を通じてワイヤレス通信を確立および維持することを含む、装置200のコア機能を実行してよく、第2のICデバイス230は、ディスプレイコントローラ232を管理するかまたは動作させるユーザインターフェースをサポートしてよく、カメラコントローラ234を使用してカメラまたはビデオ入力デバイスの動作を制御してよい。ICデバイス202および230のうちの1つまたは複数によってサポートされる他の特徴は、キーボード、音声認識構成要素、および他の入力デバイスまたは出力デバイスを含んでよい。ディスプレイコントローラ232は、液晶ディスプレイ(LCD)パネル、タッチスクリーンディスプレイ、インジケータなどのディスプレイをサポートする回路およびソフトウェアドライバを含んでよい。記憶媒体208および238は、それぞれのプロセッサ206および236ならびに/またはICデバイス202および230の他の構成要素によって使用される命令およびデータを維持するように適合された、一時的記憶デバイスおよび/または非一時的記憶デバイスを含んでよい。各プロセッサ206、236、ならびにその対応する記憶媒体208および238と、他のモジュールおよび回路との間の通信は、1つもしくは複数の内部バス212および242ならびに/または通信リンク220のチャネル222、224、および/もしくは226によって容易にされ得る。
逆方向チャネル224は順方向チャネル222と同じ方法で動作させられてよく、順方向チャネル222および逆方向チャネル224は、同等の速度または異なる速度で送信することが可能であってよく、ここで、速度はデータ転送レート、シンボル送信レート、および/またはクロッキングレートとして表現され得る。順方向データレートおよび逆方向データレートは、適用例に応じて、実質的に同じであってよく、または桁数が異なってもよい。いくつかの適用例では、単一の双方向チャネル226は、第1のICデバイス202と第2のICデバイス230との間の通信をサポートし得る。たとえば、順方向チャネル222および逆方向チャネル224が同じ物理接続を共有し、かつ半二重方式で動作するとき、順方向チャネル222および/または逆方向チャネル224は、双方向モードで動作するように構成可能であり得る。一例では、通信リンク220は、業界規格または他の規格に従って、第1のICデバイス202と第2のICデバイス230との間で制御情報、コマンド情報、および他の情報を通信するように動作させられてよい。
図2の通信リンク220は、C-PHYのためのMIPIアライアンス仕様に従って実装されてよく、複数の信号ワイヤ(M本のワイヤとして示される)を含む有線バスを提供し得る。M本のワイヤは、モバイルディスプレイデジタルインターフェース(MDDI)などの高速デジタルインターフェースの中でN相符号化データを搬送するように構成され得る。M本のワイヤは、チャネル222、224、および226のうちの1つまたは複数におけるN相極性符号化を容易にし得る。物理レイヤドライバ210および240は、通信リンク220上での送信のためにN相極性符号化データを生成するように構成または適合され得る。N相極性符号化の使用は、高速データ転送を提供し、N相極性符号化データリンクにおいて、より少数のドライバがアクティブであるので他のインターフェースの半分以下の電力しか消費しないことがあり得る。
物理レイヤドライバ210および240は、通常、N相極性符号化のために構成されるとき、通信リンク220上での遷移ごとに複数のビットを符号化することができる。一例では、3相符号化と極性符号化との組合せは、フレームバッファを用いずに毎秒80フレームのワイドビデオグラフィックスアレイ(WVGA)LCDドライバICをサポートするために使用されてよく、表示リフレッシュのために810Mbpsでピクセルデータを配送する。
図3は、図2に示す通信リンク220のいくつかの態様を実施するために使用され得る3ワイヤ3相極性エンコーダを示す図300である。3ワイヤ3相符号化の例は、本発明のいくつかの態様の説明を簡略化するために選択されるにすぎない。3ワイヤ3相エンコーダのために開示される原理および技法は、MワイヤN相極性エンコーダの他の構成に適用され得る。
3ワイヤ3相極性符号化方式における3本のワイヤの各々に対して規定されるシグナリング状態は、非駆動状態、正駆動状態、および負駆動状態を含んでよい。正駆動状態および負駆動状態は、信号ワイヤ318a、318b、および/もしくは318cのうちの2本の間に電圧差を与えることによって、かつ/または2本の信号ワイヤ318a、318b、および/もしくは318cの中で異なる方向に電流が流れるように、直列に接続された信号ワイヤ318a、318b、および/もしくは318cのうちの2本を通じて電流を駆動することによって取得され得る。非駆動状態は、信号ワイヤ318a、318b、または318cのドライバの出力を高インピーダンスモードに置くことによって実現され得る。代替または追加として、駆動される信号ワイヤ318a、318b、および/または318cの上で与えられる正の電圧レベルと負の電圧レベルとの間の実質的に中間にある電圧レベルに、「駆動されない」信号ワイヤ318a、318b、または318cを受動的または能動的に到達させることによって、信号ワイヤ318a、318b、または318cの上で非駆動状態が取得され得る。通常、駆動されない信号ワイヤ318a、318b、または318cを通る有効な電流フローはない。3ワイヤ3相極性符号化方式に対して規定されるシグナリング状態は、3つの電圧状態または電流状態(+1、-1、および0)を使用して示されてよい。
3ワイヤ3相極性エンコーダは、信号ワイヤ318a、318b、および318cのシグナリング状態を制御するためにラインドライバ308を採用し得る。ラインドライバ308は、単位レベルの電流モードドライバまたは電圧モードドライバとして実装され得る。いくつかの実装形態では、各ラインドライバ308は、対応する信号ワイヤ318a、318b、および318cの出力状態を決定する信号のセット316a、316b、および316cを受信し得る。一例では、信号のセット316a、316b、および316cの各々は、ハイのとき、信号ワイヤ318a、318b、および318cを、それぞれ、より高いレベルまたはより低いレベルの電圧に向かって駆動するプルアップ回路およびプルダウン回路をアクティブ化するプルアップ信号(PU信号)およびプルダウン信号(PD信号)を含む、2つ以上の信号を含んでよい。この例では、PU信号とPD信号の両方がローであるとき、信号ワイヤ318a、318b、および318cは中間レベルの電圧に終端されてよい。
MワイヤN相極性符号化方式における各送信シンボル区間の間、少なくとも1本の信号ワイヤ318a、318b、または318cは中レベル/非駆動(0)の電圧状態または電流状態にあり、正駆動(+1の電圧状態または電流状態)信号ワイヤ318a、318b、または318cの本数は、負駆動(-1の電圧状態または電流状態)信号ワイヤ318a、318b、または318cの本数に等しく、その結果、レシーバに流れる電流の合計は常に0である。シンボルごとに、少なくとも1本の信号ワイヤ318a、318b、または318cのシグナリング状態は、先行する送信区間の中で送信されたワイヤ状態から変化する。
動作においては、マッパ302が、16ビットデータ310を受信し得、それを7つのシンボル312にマッピングし得る。3ワイヤ例では、7つのシンボルの各々が、1つのシンボル区間に対して信号ワイヤ318a、318b、および318cの状態を規定する。7つのシンボル312は、シンボルの時間限定されたシーケンス314を各信号ワイヤ318a、318b、および318cに提供するパラレルシリアル変換器304を使用して直列化され得る。シンボルのシーケンス314は、通常、送信クロックを使用して時間限定される。3ワイヤ3相エンコーダ306は、マッパによって生成された7つのシンボルのシーケンス314を、一度に1シンボル受信し、各シンボル区間に対して各信号ワイヤ318a、318b、および318cの状態を算出する。3ワイヤ3相エンコーダ306は、現在の入力シンボル314ならびに信号ワイヤ318a、318b、および318cの以前の状態に基づいて、信号ワイヤ318a、318b、および318cの状態を選択する。
MワイヤN相符号化の使用は、シンボル当たりのビットが整数でない、複数のシンボルの中でいくつかのビットが符号化されることを許容する。3ワイヤ通信リンクの例では、同時に駆動され得る2本のワイヤの3つの利用可能な組合せ、および駆動されるワイヤのペア上での極性の2つの可能な組合せがあり、6つの可能な状態を生み出す。現在の状態から各遷移が発生するので、6つの状態のうちの5つが、あらゆる遷移において利用可能である。各遷移において少なくとも1本のワイヤの状態が変化することが必要とされる。5つの状態を伴うと、シンボル当たりlog2(5)≒2.32ビットが符号化され得る。したがって、シンボル当たり2.32ビットを搬送する7つのシンボルが16.24ビットを符号化できるので、マッパは、16ビットワードを受け取ってよく、それを7つのシンボルに変換してよい。言い換えれば、5つの状態を符号化する7つのシンボルの組合せは、57(78,125)通りの並べ替えを有する。したがって、16ビットの216(65,536)通りの並べ替えを符号化するために、7つのシンボルが使用され得る。
図4は、循環状態図450に基づく、3相変調データ符号化方式を使用して符号化された信号に対するタイミングチャート400の一例を含む。たとえば、ワイヤまたはコネクタが、循環状態図450によって規定される3つの位相状態S1、S2、およびS3のうちの1つにある、シグナリング状態のシーケンスの中で情報が符号化され得る。各状態は、他の状態から120°の位相シフトだけ隔てられてよい。一例では、データは、ワイヤまたはコネクタ上での位相状態の回転の方向に符号化され得る。信号における位相状態は、時計回り方向452および452'または反時計回り方向454および454'に回転し得る。たとえば、時計回り方向452および452'では、位相状態は、S1からS2への遷移、S2からS3への遷移、およびS3からS1への遷移のうちの1つまたは複数を含むシーケンスの中で進んでよい。反時計回り方向454および454'では、位相状態は、S1からS3への遷移、S3からS2への遷移、およびS2からS1への遷移のうちの1つまたは複数を含むシーケンスの中で進んでよい。3本の信号ワイヤ318a、318b、および318cは、同じ信号の異なるバージョンを搬送し、ここで、バージョンは互いに対して120°だけ位相シフトされてよい。各シグナリング状態は、ワイヤもしくはコネクタ上での異なる電圧レベル、および/またはワイヤもしくはコネクタを通る電流フローの方向として、表されてよい。3ワイヤシステムにおけるシグナリング状態のシーケンスの各々の間、各信号ワイヤ318a、318b、および318cは、他のワイヤとは異なるシグナリング状態にある。3本よりも多い信号ワイヤ318a、318b、および318cが3相符号化システムにおいて使用されるとき、2本以上の信号ワイヤ318a、318b、および/または318cが、各シグナリング区間において同じシグナリング状態にあり得るが、あらゆるシグナリング区間の中で少なくとも1本の信号ワイヤ318a、318b、および/または318c上に各状態が存在する。
情報は各位相遷移410における回転の方向に符号化されてよく、3相信号は各シグナリング状態に対して方向を変化させ得る。駆動されない信号ワイヤ318a、318b、および/または318cが、回転の方向にかかわらず、回転する3相信号の中のあらゆるシグナリング状態において変化するので、回転の方向は、位相遷移の前および後にどの信号ワイヤ318a、318b、および/または318cが「0」状態にあるのかを考慮することによって決定され得る。
符号化方式はまた、能動的に駆動される2本の信号ワイヤ318a、318b、および/または318cの極性408に情報を符号化し得る。3ワイヤ実装形態ではいつでも、信号ワイヤ318a、318b、318cのうちの厳密に2本が、反対方向の電流を用いて、かつ/または電圧差を用いて駆動される。一実装形態では、データは、2ビット値412を使用して符号化されてよく、ここで、1つのビットは位相遷移410の方向に符号化され、第2のビットは、現在の状態に対する極性408に符号化される。
タイミングチャート400は、位相回転方向と極性の両方を使用するデータ符号化を示す。曲線402、404、および406は、複数の位相状態に対して、それぞれ、3本の信号ワイヤ318a、318b、および318c上で搬送される信号に関係する。最初に、位相遷移410は時計回り方向であり、位相遷移410の回転が時間414において、最上位ビットのバイナリ「0」によって表されるように反時計回り方向に切り替わるまで、最上位ビットはバイナリ「1」にセットされる。最下位ビットは、各状態での信号の極性408を反映する。
本明細書で開示するいくつかの態様によれば、1ビットのデータが、3ワイヤ3相符号化システムにおける回転すなわち位相変化に符号化されてよく、追加のビットが、駆動される2本のワイヤの極性に符号化されてよい。現在の状態から、可能な状態のうちのいずれかへの遷移を可能にすることによって、3ワイヤ3相符号化システムの各遷移において追加の情報が符号化されてよい。位相ごとに3つの回転位相および2つの極性が与えられると、3ワイヤ3相符号化システムでは6つの状態が利用可能である。したがって、現在のいかなる状態からも5つの状態が利用可能であり、シンボル(遷移)ごとに符号化されたlog2(5)≒2.32ビットがあり得、このことにより、マッパ302が16ビットワードを受け取りそれを7つのシンボルに符号化することが可能になる。
図5は、3ワイヤ3相デコーダ500のいくつかの態様を示す図である。差動レシーバ502a、502b、502c、およびワイヤ状態デコーダ504は、互いに対して、3本の伝送線路(たとえば、図3に示す信号ワイヤ318a、318b、および318c)の状態のデジタル表現522を提供するように、また以前のシンボル期間の中で送信された状態と比較して3本の伝送線路の状態における変化を検出するように構成される。デマッパ508によって処理されるべき7つのシンボル516のセットを取得するために、連続する7つの状態がシリアルパラレル変換器506によって組み立てられる。デマッパ508は、出力データ520を提供するために先入れ先出し(FIFO)レジスタ510の中にバッファリングされ得る16ビットのデータ518を生成する。
ワイヤ状態デコーダ504は、信号ワイヤ318a、318b、および318c上で受信された位相符号化信号からシンボル514のシーケンスを抽出し得る。シンボル514は、本明細書で開示するように、位相回転と極性との組合せとして符号化されている。ワイヤ状態デコーダは、信号ワイヤ318a、318b、および318cからワイヤ状態を確実に取り込むために使用され得るクロック526を抽出するCDR回路524を含んでよい。各シンボル境界において信号ワイヤ318a、318b、および318cのうちの少なくとも1つの上で遷移が発生し、CDR回路524は、1つまたは複数の遷移の発生に基づいてクロック526を生成するように構成され得る。すべての信号ワイヤ318a、318b、および318cに対する時間が安定化されるように、またそれによって、復号目的のために現在のワイヤ状態が取り込まれることを保証するように、クロックのエッジが遅延されてよい。
図6は、可能な遷移が各状態から示される、3本のワイヤの可能なシグナリング状態602、604、606、612、614、616を示す状態図600である。3ワイヤ3相通信リンクの例では、6つの状態および30通りの状態遷移が利用可能である。状態図600の中の可能なシグナリング状態602、604、606、612、614、および616は、図4の循環状態図450に示される状態を含むとともにそれを拡張する。状態要素628の例に示すように、状態図600の中の各シグナリング状態602、604、606、612、614、および616は、それぞれ、A、B、およびCとラベル付けされている、信号ワイヤ318a、318b、318cの電圧シグナリング状態を規定する。たとえば、シグナリング状態602(+x)では、ワイヤA=+1、ワイヤB=-1、かつワイヤC=0であり、差動レシーバ502a(A-B)=+2、差動レシーバ502b(B-C)=-1、かつ差動レシーバ502c(C-A)=-1という出力を生み出す。レシーバの中の位相変化検出回路によって行われる遷移決定は、-2、-1、0、+1、および+2の電圧状態を含む、差動レシーバ502a、502b、502cによって生成される5つの可能なレベルに基づく。
状態図600の中の遷移は、集合{000、001、010、011、100}の中の3ビットバイナリ値のうちの1つを有する反転(Flip)シンボル、回転(Rotate)シンボル、極性(Polarity)シンボル(たとえば、FRPシンボル626)によって表され得る。FRPシンボル626の回転ビット622は、次の状態への遷移に関連する位相回転の方向を示す。FRPシンボル626の極性ビット624は、次の状態への遷移が極性の変化を伴うとき、バイナリ1にセットされる。FRPシンボル626の反転ビット620がバイナリ1にセットされると、回転値および極性値は無視されてよく、かつ/または0にされてよい。反転は、極性の変化しか伴わない状態遷移を表す。したがって、反転が発生するとき、3相信号の位相は回転していると見なされず、反転が発生するとき、極性ビットは冗長である。FRPシンボル626は、遷移ごとのワイヤ状態変化に対応する。状態図600は、正極性シグナリング状態602、604、606を含む内側の円608、および負極性シグナリング状態612、614、616を包含する外側の円618に分割され得る。
3相インターフェースにおけるジッタ
3相トランスミッタは、高レベルの電圧、低レベルの電圧、および中間レベルの電圧を送信チャネル上に与えるドライバを含む。このことは、変動するいくつかの遷移を連続するシンボル区間の間にもたらす。低電圧から高電圧への遷移および高電圧から低電圧への遷移は、フルスイング遷移と呼ばれることがあり、低電圧から中間電圧への遷移および高電圧から中間電圧への遷移は、ハーフスイング遷移と呼ばれることがある。異なるタイプの遷移は、異なる立上り時間または立下り時間を有することがあり、レシーバにおいて異なるゼロ交差をもたらすことがある。これらの差異は、リンク信号完全性性能に影響を及ぼすことがある「符号化ジッタ」をもたらす場合がある。
図7は、C-PHY3相トランスミッタの出力における遷移変動性のいくつかの態様を示すタイミング図700である。信号遷移時間の変動性は、3相シグナリングにおいて使用される異なる電圧レベルおよび/または電流レベルの存在に起因することがある。タイミング図700は、単一の信号ワイヤ318a、318b、または318cから受信される信号における遷移時間を示す。第1のシンボルSymn702は、第2のシンボルSymn+1 724が第2のシンボル区間の中で送信される時間722において終了する第1のシンボル区間の中で送信される。第2のシンボル区間は、第3のシンボルSymn+2 706が第3のシンボル区間の中で送信される時間726において終了してよく、第3のシンボル区間は第4のシンボルSymn+3 708が第4のシンボル区間の中で送信されるときに終了する。第1のシンボル702によって決定される状態から第2のシンボル704に対応する状態への遷移は、信号ワイヤ318a、318b、または318cにおける電圧がしきい値電圧718および/または720に達するのにかかる時間に起因する遅延712の後に検出可能であり得る。しきい値電圧は、信号ワイヤ318a、318b、または318cの状態を決定するために使用され得る。第2のシンボル704によって決定される状態から第3のシンボル706に対する状態への遷移は、信号ワイヤ318a、318b、または318cにおける電圧がしきい値電圧718および/または720のうちの1つに達するのにかかる時間に起因する遅延714の後に検出可能であり得る。第3のシンボル706によって決定される状態から第4のシンボル708に対する状態への遷移は、信号ワイヤ318a、318b、または318cにおける電圧がしきい値電圧718および/または720に達するのにかかる時間に起因する遅延716の後に検出可能であり得る。遅延712、714、および716は、デバイス製造プロセスおよび動作条件の相違に部分的に起因し得る異なる持続時間を有してよく、そのことは、3つの状態および/または異なる遷移マグニチュードに関連する異なる電圧レベルまたは電流レベルの間の遷移に対して不均等な影響を生み出すことがある。これらの差異は、C-PHY3相レシーバにおけるジッタおよび他の問題の原因となり得る。
図8は、C-PHYインターフェース800においてレシーバの中に設けられ得るCDR回路のいくつかの態様を示す。差動レシーバ802a、802b、および802cは、3つ組の中の信号ワイヤ318a、318b、および318cの異なる各ペアのシグナリング状態を比較することによって差分信号810a、810b、810cのセットを生成するように構成される。図示の例では、第1の差動レシーバ802aは、A信号ワイヤ318aおよびB信号ワイヤ318bのシグナリング状態の差分を表すAB差分信号810aを提供し、第2の差動レシーバ802bは、B信号ワイヤ318bおよびC信号ワイヤ318cのシグナリング状態の差分を表すBC差分信号810bを提供し、第3の差動レシーバ802cは、C信号ワイヤ318cおよびA信号ワイヤ318aのシグナリング状態の差分を表すCA差分信号810cを提供する。それに応じて、差動レシーバ802a、802b、および802cのうちの少なくとも1つの出力が各シンボル区間の終了において変化するので、遷移検出回路804は位相変化の発生を検出するように構成され得る。
連続的に送信されるシンボルのいくつかのペアの間の遷移は単一の差動レシーバ802a、802b、または802cによって検出可能であり得るが、他の遷移は差動レシーバ802a、802b、および802cのうちの2つ以上によって検出され得る。一例では、状態すなわち2本のワイヤの相対的な状態は、遷移の後に変化しない場合があり、対応する差動レシーバ802a、802b、または802cの出力も、位相遷移の後に変化しない場合がある。したがって、クロック生成回路806は、位相遷移がいつ発生したのかを決定するために、遷移検出回路804、ならびに/またはすべての差動レシーバ802a、802b、および802cの出力を監視するための他の論理を含んでよい。クロック生成回路は、検出された位相遷移に基づいて受信クロック信号808を生成し得る。
3つ組の中の3本のワイヤのシグナリング状態の変化は、異なる時間において検出されることがあり、そのことは、結果として差分信号810a、810b、810cが、異なる時間において安定した状態を呈することになる。差分信号810a、810b、810cの状態は、各信号ワイヤ318a、318b、および/または318cのシグナリング状態が、シンボル送信区間に対してその規定された状態に遷移した後、安定性に達している前に切り替わり得る。そのような変動性の結果が図8のタイミング図820に示される。
シグナリング状態変化検出のタイミングは、発生しているシグナリング状態変化のタイプに従って変わることがある。マーカー822、824、および826は、遷移検出回路804に提供される差分信号810a、810b、810cにおける遷移の発生を表す。マーカー822、824、および826は、例示の明快だけのためにタイミング図820の中で異なる高さが割り当てられ、マーカー822、824、および826の相対的な高さは、電圧レベルもしくは電流レベル、極性、またはクロック生成もしくはデータ復号のために使用される重み付け値への特定の関係を示すものではない。タイミング図820は、3本の信号ワイヤ318a、318b、および318c上の位相および極性における、送信されるシンボルに関連する遷移のタイミングの影響を示す。タイミング図820の中で、いくつかのシンボル間の遷移は、シンボルがその間に確実に取り込まれ得る可変の取込みウィンドウ830a、830b、830c、830d、830e、830f、および/または830g(一括して、シンボル取込みウィンドウ830)をもたらし得る。検出される状態変化の数およびそれらの相対的なタイミングは、クロック信号808上にジッタをもたらす場合がある。
C-PHY通信リンクのスループットは、信号遷移時間における持続時間および変動性によって影響を受けることがある。たとえば、検出回路における変動性は、製造プロセス許容差、電圧源および電流源の変動および安定性、ならびに動作温度によって、かつ信号ワイヤ318a、318b、および318cの電気的特性によって、引き起こされることがある。検出回路における変動性はチャネル帯域幅を制限することがある。
図9は、いくつかの連続するシンボル間での第1のシグナリング状態から第2のシグナリング状態への遷移のいくつかの例を表すタイミング図900および920を含む。タイミング図900および920に示すシグナリング状態遷移は例示のために選択され、MIPIアライアンスC-PHYインターフェースでは他の遷移および遷移の組合せが発生する場合がある。タイミング図900および920は、3つ組のワイヤ上での信号レベル間の立上り時間および立下り時間の差異に起因して、各シンボル区間境界において複数のレシーバ出力遷移がその中で発生し得る、3ワイヤ3相通信リンクの一例に関する。図8も参照しながら、第1のタイミング図900は、遷移の前および後の3つ組の信号ワイヤ318a、318b、および318cのシグナリング状態(A、B、およびC)を示し、第2のタイミング図920は、信号ワイヤ318a、318b、および318cの間の差分を表す差分信号810a、810b、810cを提供する差動レシーバ802a、802b、および802cの出力を示す。多くの場合、差動レシーバ802a、802b、および802cのセットは、2本の信号ワイヤ318a、318b、および318cに対して異なる組合せを比較することによって遷移を取り込むように構成され得る。一例では、これらの差動レシーバ802a、802b、および802cは、それらのそれぞれの入力電圧の差分を(たとえば、減算によって)決定することによって出力を生成するように構成され得る。
タイミング図900および920に示す例の各々では、-z状態616(図8参照)を表す初期シンボルが、異なるシンボルに遷移する。タイミング図902、904、および906に示すように、信号Aは最初に+1状態にあり、信号Bは0状態にあり、信号Cは-1状態にある。したがって、差動レシーバ出力に対してタイミング図922、932、938に示すように、差動レシーバ802a、802bは最初に+1差分924を計測し、差動レシーバ802cは-2差分926を計測する。
タイミング図902、922に対応する第1の例では、-z状態616を表すシンボルから-xシグナリング状態612を表すシンボルに遷移が発生し(図6参照)、差動レシーバ802aが+1差分924から-2差分930に遷移し、差動レシーバ802bが+1差分924、928にとどまり、差動レシーバ802cが-2差分926から+1差分928に遷移して、信号Aは-1状態に遷移し、信号Bは+1状態に遷移し、信号Cは0状態に遷移する。
タイミング図904、932に対応する第2の例では、-zシグナリング状態616を表すシンボルから+zシグナリング状態606を表すシンボルに遷移が発生し、2つの差動レシーバ802aおよび802bが+1差分924から-1差分936に遷移し、差動レシーバ802cが-2差分926から+2差分934に遷移して、信号Aは-1状態に遷移し、信号Bは0状態にとどまり、信号Cは+1状態に遷移する。
タイミング図906、938に対応する第3の例では、-zシグナリング状態616を表すシンボルから+xシグナリング状態602を表すシンボルに遷移が発生し、差動レシーバ802aが+1差分924から+2差分940に遷移し、差動レシーバ802bが+1差分924から-1差分942に遷移し、差動レシーバ802cが-2差分926から-1差分942に遷移して、信号Aは+1状態にとどまり、信号Bは-1状態に遷移し、信号Cは0状態に遷移する。
これらの例は、0、1、2、3、4、および5レベルにわたる差分値における遷移を示す。典型的な差動またはシングルエンドのシリアルトランスミッタのために使用されるプリエンファシス技法が、2レベル遷移に対して開発されたが、MIPIアライアンスC-PHY3相信号上で使用される場合には、いくらかの悪影響を持ち込む場合がある。詳細には、遷移中に信号を過度に駆動するプリエンファシス回路は、1または2レベルにわたる遷移中にオーバーシュートを引き起こすことがあり、エッジ敏感回路において誤ったトリガを発生させることがある。
図10は、単一のシンボル区間1002を含む複数のシンボル区間のオーバーレイとして生成されるバイナリアイパターン1000を示す。信号遷移領域1004は、2つのシンボル間の境界における不確定性の時間期間を表し、ここで、変動する信号立上り時間は信頼性が高い復号を妨げる。シンボルがその中で安定しており確実に受信および復号され得る時間期間を表す「アイ開口」内の、アイマスク1006によって規定される領域の中で、状態情報が確実に決定され得る。アイマスク1006はゼロ交差がその中で発生しない領域をマスクオフし、アイマスクは、最初の信号ゼロ交差に後続する、シンボル区間境界における後続のゼロ交差の影響に起因する複数のクロッキングを防止するために、デコーダによって使用される。
受信データの中に現れる頻繁な遷移を使用して受信データタイミング信号を再作成するクロックデータ復元回路を使用するシステムの設計、適合、および構成の間、周期的サンプリングの概念および信号の表示が有用である。シリアライザ/デシリアライザ(SERDES)技術に基づく通信システムは、バイナリアイパターン1000を利用して、バイナリアイパターン1000のアイ開口に基づいてデータを確実に復元するための能力を判定するための基礎とし得るシステムの一例である。
3ワイヤ3相エンコーダなどのMワイヤN相符号化システムは、あらゆるシンボル境界において少なくとも1つの遷移を有する信号を符号化し得、レシーバは、保証されたそれらの遷移を使用してクロックを復元し得る。レシーバは、シンボル境界における最初の信号遷移の直前に、信頼できるデータを必要とすることがあり、そのシンボル境界に相関する複数の遷移のいかなる発生も同じく確実にマスクできなければならない。M本のワイヤ(たとえば、3つ組のワイヤ)上で搬送される信号の間の、立上り時間および立下り時間のわずかな差異に起因して、また受信される信号ペアの組合せの間の、信号伝搬時間のわずかな差異(たとえば、図6の差動レシーバ802a、802b、および802cのA-B出力、B-C出力、およびC-A出力)に起因して、複数のレシーバ遷移が発生することがある。
図11は、C-PHY3相信号に対して生成されるマルチレベルアイパターン1100の一例を示す。マルチレベルアイパターン1100は、複数のシンボル区間1102のオーバーレイから生成され得る。マルチレベルアイパターン1100は、固定のトリガおよび/またはシンボルとは無関係のトリガ1110を使用して生成され得る。マルチレベルアイパターン1100は、差動レシーバ802a、802b、802c、すなわち、N相レシーバ回路(図8参照)によって測定される複数の電圧レベルに起因し得る、数が増えた電圧レベル1120、1122、1124、1126、1128を含む。本例では、マルチレベルアイパターン1100は、差動レシーバ802a、802b、および802cに提供される3ワイヤ3相符号化信号における可能な遷移に対応し得る。3つの電圧レベルは、差動レシーバ802a、802b、および802cに、正極性と負極性の両方に対して強い電圧レベル1126、1128、および弱い電圧レベル1122、1124を生成させ得る。通常、いかなるシンボルにおいても1本の信号ワイヤ318a、318b、および318cだけが駆動されず、差動レシーバ802a、802b、および802cは、0状態(ここでは、0ボルト)出力を生み出さない。強いレベルおよび弱いレベルに関連する電圧は、0ボルトレベルを基準にして均等に離間される必要はない。たとえば、弱い電圧レベル1122、1124は、駆動されない信号ワイヤ318a、318b、および318cによって達せられる電圧レベルを含み得る電圧の比較を表す。受信デバイスにおいてデータが取り込まれるときの、信号のすべての3つのペアが同時に考慮に入れられるので、マルチレベルアイパターン1100は、差動レシーバ802a、802b、および802cによって生み出される波形を重ね合わせてよい。差動レシーバ802a、802b、および802cによって生み出される波形は、信号の3つのペアの比較(A-B、B-C、およびC-A)を表す差分信号810a、810b、810cを表す。
C-PHY3相デコーダの中で使用されるドライバ、レシーバ、および他のデバイスは、3本のワイヤから受信される信号の間に相対的な遅延を持ち込み得る異なるスイッチング特性を示すことがある。3つ組の信号ワイヤ318a、318b、318cの3つの信号の間の、立上り時間および立下り時間のわずかな差異に起因して、また信号ワイヤ318a、318b、318cから受信される信号のペアの組合せの間の、信号伝搬時間のわずかな差異に起因して、各シンボル区間境界1108および/または1114において複数のレシーバ出力遷移が観測され得る。マルチレベルアイパターン1100は、各シンボル区間境界1108および1114の近くの遷移における相対的な遅延として、立上り時間および立下り時間における分散を取り込み得る。立上り時間および立下り時間における分散は、3相ドライバの異なる特性に起因し得る。立上り時間および立下り時間の差異はまた、任意の所与のシンボルに対してシンボル区間1102の持続時間の実効的な短縮または伸長をもたらし得る。
信号遷移領域1104は、変動する信号立上り時間が、信頼性が高い復号を妨げる、時間または期間の不確定性を表す。シンボルがその中で安定しており確実に受信および復号され得る時間期間を表す「アイ開口」1106の中で、状態情報が確実に決定され得る。一例では、アイ開口1106は、信号遷移領域1104の終了1112において始まり、シンボル区間1102のシンボル区間境界1114において終わるものと決定され得る。図11に示す例では、アイ開口1106は、信号遷移領域1104の終了1112において始まり、信号ワイヤ318a、318b、318cのシグナリング状態ならびに/または3つの差動レシーバ802a、802b、および802cの出力が次のシンボルを反映するように変化し始めた時間1116において終わるものと決定され得る。
N相符号化のために構成される通信リンク220の最大速度は、受信信号に対応するアイ開口1106と比較した信号遷移領域1104の持続時間によって制限され得る。シンボル区間1102にとっての最小期間は、たとえば、図5に示すデコーダ500の中のCDR回路524に関連する、厳しくされた設計マージンによって制約され得る。異なるシグナリング状態遷移が、2本以上の信号ワイヤ318a、318b、および/または318cに対応する信号遷移時間の異なる変動に関連することがあり、それによって、受信デバイスの中の差動レシーバ802a、802b、および802cの出力を、差動レシーバ802a、802b、および802cの入力が変化し始めるシンボル区間境界1108を基準にして異なる時間および/またはレートで変化させることがある。信号遷移時間の間の差異は、2つ以上の差分信号810a、810b、810cにおけるシグナリング遷移の間のタイミングスキューをもたらし得る。CDR回路は、差分信号810a、810b、810cの間のタイミングスキューを受け入れるための遅延回路および他の回路を含んでよい。
図12は、3ワイヤ3相インターフェース用のCDR回路1200の一例を提供する。図示したCDR回路1200は、多くの異なるタイプのクロック復元回路にとって共通であるいくつかの特徴および機能要素を含む。CDR回路1200は、たとえば、図8の差動レシーバ802a、802b、および802cによって生成された差分信号810a、810b、810cから導出され得る差分信号1202、1204、1206を受信する。CDR回路1200の中で、各差分信号1202、1204、1206は、出力信号1230a~1230fを生成するためにDフリップフロップのペア1210a、1210b、1210cをクロッキングする。出力信号1230a~1230fは、対応する差分信号1202、1204、1206上で遷移が検出されるとパルスを搬送する。Dフリップフロップ上のクロック入力部に提供される立上りエッジは、Dフリップフロップを通じて論理1をクロッキングする。インバータ1208a、1208b、1208cは、Dフリップフロップの対応する各ペア1210a、1210b、1210cの中のDフリップフロップのうちの一方に差分信号1202、1204、1206の反転バージョンを提供するために使用され得る。したがって、Dフリップフロップの各ペア1210a、1210b、1210cは、対応する差分信号1202、1204、1206の中で検出される立上りエッジおよび立下りエッジに応答してパルスを生成する。
たとえば、AB差分信号1202が、Dフリップフロップの第1のペア1210aの第1のDフリップフロップ1232に提供され、インバータ1208aは、Dフリップフロップの第1のペア1210aの第2のDフリップフロップ1234にAB差分信号1202の反転バージョンを提供する。Dフリップフロップは、最初にリセット状態にある。AB差分信号1202上の立上りエッジが第1のDフリップフロップ1232を通じて論理1をクロッキングし、第1のフリップフロップの出力(r_AB)1230aを論理1状態に遷移させる。AB差分信号1202上の立下りエッジが第2のDフリップフロップ1234を通じて論理1をクロッキングし、第2のフリップフロップの出力(f_AB)1230bを論理1状態に遷移させる。
出力信号1230a~1230fがORゲート1212などの論理に提供され、そうした論理はレシーバクロック(RxCLK)信号1222の働きをし得る出力信号を生成する。RxCLK信号1222は、差分信号1202、1204、1206のうちのいずれかのシグナリング状態において遷移が発生すると論理1状態に遷移する。RxCLK信号1222がプログラマブル遅延回路1214に提供され、プログラマブル遅延回路1214は、Dフリップフロップのペア1210a、1210b、1210cの中のDフリップフロップをリセットするリセット信号(rb信号1228)を駆動する。図示の例では、Dフリップフロップがロー信号によってリセットされるときにはインバータ1216が含められてよい。Dフリップフロップがリセットされると、ORゲート1212の出力が論理0状態に戻り、RxCLK信号1222上のパルスが終結される。この論理0状態がプログラマブル遅延回路1214およびインバータ1216を通じて伝搬すると、Dフリップフロップにおけるリセット条件が解放される。Dフリップフロップがリセット条件にある間、差分信号1202、1204、1206上での遷移は無視される。
プログラマブル遅延回路1214は、通常、差分信号1202、1204、1206上での最初の遷移の発生と最後の遷移の発生との間のタイミングスキューの差分を超える持続時間を有する遅延を生み出すように構成される。プログラマブル遅延回路1214は、RxCLK信号1222上のパルスの持続時間(すなわち、パルス幅)を構成する。プログラマブル遅延回路1214は、プロセッサまたは他の制御論理および/もしくは構成論理によってSet信号1226がアサートされるときに構成されてよい。
RxCLK信号1222はまた、差分信号1202、1204、1206のシグナリング状態を取り込む3つのフリップフロップのセット1220に提供され、RxCLK信号1222上で発生する各パルスに対して安定した出力シンボル1224を提供し得る。遅延または位置合わせ論理1218が、差分信号1202、1204、1206のセットのタイミングを調整し得る。たとえば、遅延または位置合わせ論理1218は、RxCLK信号1222上のパルスを基準にして差分信号1202、1204、1206のタイミングを調整して、差分信号1202、1204、1206が安定しているときにフリップフロップ1220が差分信号1202、1204、1206のシグナリング状態を取り込むことを保証するために使用され得る。遅延または位置合わせ論理1218は、プログラマブル遅延回路1214に対して構成された遅延に基づいて、差分信号1202、1204、1206の中のエッジを遅延させ得る。
プログラマブル遅延回路1214は、差分信号1202、1204、1206における遷移時間の、起こり得る大きい変動を受け入れるように、CDR回路1200の中で構成され得る。一例では、プログラマブル遅延回路1214は、通常、差分信号1202、1204、1206上での最初の遷移の発生と最後の遷移の発生との間のタイミングスキューの持続時間を超える最小遅延期間を与えるように構成される。プログラマブル遅延回路1214によって与えられる遅延時間は、CDR回路1200の遅延ループの中の論理ゲートの個数を考慮に入れるように計算され、論理ゲートおよび/またはプログラマブル遅延回路1214に影響を及ぼし得る、予想または観測されるPVT分散を考慮に入れる、最小遅延時間に制約される。CDR回路1200の信頼できる動作のために、プログラマブル遅延回路1214によって与えられる最大遅延時間はシンボル区間よりも長くなくてよい。より高速なデータレートにおいて、タイミングスキュー、およびCDR回路1200の遅延ループによって与えられる遅延時間は、シンボル区間1102の比率として増大する。アイ開口1106は、シンボル区間1102と比較して小さくなる場合があり、アイ開口1106はもっと高い周波数において閉じる場合がある。プログラマブル遅延回路1214によって与えられる遅延時間が、アイ開口1106によって占有されるシンボル区間1102のパーセンテージをシンボルの信頼できる取込みをサポートできるしきい値サイズ未満に低減するとき、最大シンボル送信レートが制限される場合がある。
図13は、CDR回路1200の動作のいくつかの態様を示すタイミング図1300である。本図は、プログラマブル遅延回路1214が構成され、Set信号1226が非アクティブとなった後の動作に関する。CDR回路1200はエッジ検出器として動作する。C-PHY3相符号化は、単位区間(UI:unit interval)1302ごとに単一のシグナリング状態遷移をもたらす。3つ組の各ワイヤの状態の差異、および/または3つ組の送信特性は、2本以上のワイヤ上で異なる時間において遷移を出現させることがある。差分信号1202、1204、1206における遷移の発生の時間の最大差分は、スキュー時間(tskew)1304と呼ばれることがある。CDR回路1200に関連する他の遅延は、Dフリップフロップのペア1210a、1210b、1210cを通る伝搬遅延(tck2q)1314、立上りエッジがORゲート1212を通過することに関連する伝搬遅延(tOR_0)1306、立下りエッジがORゲート1212を通過することに関連する伝搬遅延(tOR_1)1308、プログラマブル遅延回路1214ならびにドライバおよび/またはインバータ1216によって導入される遅延を合成するプログラマブル遅延(tpgm)1310、ならびにDフリップフロップのペア1210a、1210b、1210cによるrb信号1228の受信の時間とフリップフロップ出力がクリアされる時間との間の遅延に対応するリセット遅延(trst)1312を含む。
ループ遅延(tloop1320)は次のように規定され得る。
tloop = tck2q + tOR_1 + tpgm + trst + tOR_0 + tpgm
tloop1320とUI1302との間の関係が、CDR回路1200の動作の信頼性を決定し得る。この関係は、UI1302に対して直接の影響を有する、送信のために使用されるクロック周波数、およびプログラマブル遅延回路1214の動作における変動性によって影響を受ける。
いくつかのデバイスでは、プログラマブル遅延回路1214の動作は、製造プロセス、回路電源電圧、およびダイ温度(PVT)条件の相違を含む、動作条件の相違によって悪影響を受けることがある。構成された値に対してプログラマブル遅延回路1214によって与えられる遅延時間は、デバイス間で、かつ/またはデバイス内の回路間で、著しく変わることがある。従来のシステムでは、ワーストケースのPVT影響の下でさえ、信号遷移領域1104の終了1112の後、かつ次のシンボルへの遷移領域の開始の前に、クロックエッジが発生することを保証するために、CDR回路1200の公称動作条件は、概して、すべてのPVT条件の下でアイ開口1106の中央のどこかでクロックエッジを生成するための設計によって設定される。送信周波数が高くなり、かつUI1302と比較して差分信号1202、1204、1206のタイミングスキューが大きいとき、アイ開口1106内のクロックエッジを保証するCDR回路1200を設計する際に、難しさが生じる場合がある。たとえば、典型的な遅延回路は、すべてのPVT条件にわたって2倍に変化する遅延値を生み出す場合がある。
図14は、不十分な遅延を与えるプログラマブル遅延回路1214の影響を示すタイミング図1400である。この例では、観測されるtskew1404にとってtloop1406は短すぎ、1つのUI1402の中で複数のクロックパルス1408、1410が生成される。すなわち、ループ遅延tloop1406はtskew1404と比較して十分に大きくはなく、差分信号1202、1204、1206上で、後に発生する遷移はマスクされない。図示の例では、差分信号1206のうちの1つにおける第2の遷移1414が、差分信号1202のうちの別の差分信号において最初に発生した遷移1412に応答してパルス1408が生成された後に検出され得る。この例では、復元されるクロック周波数は、3相インターフェース上でシンボルを送信するために使用されるクロック周波数の2倍であり得る。
図15は、長すぎる遅延を与えるプログラマブル遅延回路1214の影響を示すタイミング図1500である。この例では、持続時間の観測されるスキューtskew1504があり、tloop1506はUI1502よりも長い。CDR回路1200は、第1のUI1502の中で最初に発生する遷移1514に応答してクロックパルス1508を生成し得るが、第2のUI1512の中で遷移1516、1518が発生するとき、rb信号1228がアクティブである場合がある。図示の例では、第2のUI1512の中の遷移1516、1518はマスクされ、第2のUI1512に対応する予想されるパルス1510は抑制される。この例では、復元されるクロック周波数は、3相インターフェース上でシンボルを送信するために使用されるクロック周波数の半分であり得る。
図14および図15の例によって示すように、CDR回路1200は次の制約を受けることがある。
tskew < tloop < UI
経験的実証が、tloop1320、1406、1506が極めてPVTに敏感であることを示唆する。CDR回路1200に対するtloop1320は次のように言い換えられてよい。
tloop = tck2q + tOR_1 + trst + tOR_0 + (tpgm + tpgm)
PVT相違に敏感な多数の遅延に起因して、ループ時間は、より高いシンボルレートにおける信頼性に影響されやすく、2倍のtpgm遅延および6入力ORゲート1212に関連する大きい遅延が、CDR回路1200によって復元可能なクロック信号の最大周波数を制限する場合がある。PVTの潜在的な相違の範囲を受け入れるように、プログラマブル遅延回路1214によって与えられる遅延を大きくすることは、CDR回路1200によって復元可能なクロック信号の最大周波数をさらに制限するように働く。
C-PHY1.2仕様およびC-PHY2.0仕様を含む、C-PHYにとってのより最近の実装形態および提案される仕様は、レシーバにおいてクロック信号を復元するための、従来のCDR回路の能力を超えることができるシンボル送信クロック信号の周波数を規定する。シンボル送信クロック信号は、シンボル送信のレートを制御するために使用され、UI1302の持続時間を決定する。シンボル送信クロック信号の周波数が高められると、UI1302の持続時間は短縮される。CDR回路1200の中のループ遅延によって導入される制約は、CDR回路1200によってサポートされ得るUI1302の最小持続時間を制限し、そのことは、CDR回路1200によってサポートされ得るシンボル送信クロック信号の最大周波数を制限する。高度なデバイス技術を使用しても、CDR回路1200の中のループ遅延はいくつかのPVT条件の下で300ピコ秒を超える場合があり、そのことは、従来のC-PHY適用を毎秒2.5ギガシンボルという最大シンボル送信レートに制限し得る。いくつかの実装形態では、CDR回路1200の中のループ遅延によって導入される、UI1302の持続時間に対する制約は、もっと後の世代のC-PHY仕様に準拠することになるC-PHYインターフェースにおける使用にとって従来のCDR回路1200を無効にさせる場合がある。
シンボル送信クロックの周波数を高めるための能力は、C-PHYトランスミッタおよびC-PHYレシーバの中の回路の能力によって制限され得る。多くの実装形態では、論理ゲートに対して規定されるスイッチング時間が、シンボル送信クロックの最大周波数を制限することがあり、かつ/またはより高いクロック周波数でシンボルを送信もしくは受信するために使用される回路の中のゲートのレベル数を制限することがある。一例では、レシーバ回路の論理回路を通る伝搬時間が、レシーバによってサポートされ得る最小UI、および/またはシンボルがその間に確実にサンプリングされ得る時間のウィンドウを制約する場合がある。別の例では、高速なシンボル送信クロック信号の生成および分配は、達成するのが困難である場合があり、かつ/または集積回路設計を複雑にする場合がある。
本開示のいくつかの態様によれば、増大および/または最大化されたシンボル送信レートは、ハーフレートシンボル送信クロックを使用して達成され得る。従来のC-PHYデータパスは、フルレートシンボル送信クロックを使用して動作し、それによって、それぞれ、トランスミッタのシンボルクロック信号またはレシーバのシンボルクロック信号の単一のタイプのエッジ上で、データが送信およびサンプリングされる。シンボルクロック信号におけるタイミングに対して使用されるエッジのタイプは、実装形態において採用される回路設計に基づいて立上りエッジまたは立下りエッジであってよい。データスループットはC-PHYインターフェースのシンボルレートによって決定され、ここで、シンボルレートはC-PHYバス上で送信される秒当たりのシンボル数として表現され得る。従来のC-PHY仕様によれば、以下の通りである。
シンボルレート=シンボルクロック周波数
データスループットは、C-PHYバス上で送信される秒当たりのビット数として測定され得る。一例では、連続的に送信されるシンボル間の遷移において、ほぼ2.32ビットが符号化され得、その結果、
データスループット=2.32*(シンボルクロック周波数)
である。
本開示のいくつかの態様に従って実装されるC-PHYインターフェースは、C-PHYデータパスにおけるタイミングを制御するためにハーフレートシンボルクロック信号を使用することによって、C-PHYインターフェースのデータスループットを高めることができる。一例では、トランスミッタは、シンボル送信クロック信号の立上りエッジおよび立下りエッジにおいてシンボルを送信することができる。別の例では、レシーバは、周波数がシンボル送信クロック信号の周波数の半分であるハーフレートシンボルクロック信号を生成することができ、生成されたクロック信号の立上りエッジと立下りエッジとを使用して、C-PHYインターフェースを通じて送信されたシンボルを取り込むことができる。本開示いくつかの態様による、ハーフレートシンボルクロック信号の使用は、以下のことをもたらす。
シンボルレート=2*(シンボルクロック周波数)
データスループットは、C-PHYバス上で送信される秒当たりのビット数として測定される。連続的に送信されるシンボル間の遷移において2.32ビットが符号化されるとき、以下の通りである。
データスループット=4.64*(シンボルクロック周波数)
一例では、従来のC-PHYインターフェースにおいて10GHzのフルレートシンボルクロック信号を使用して取得されるデータスループットは、本開示のいくつかの態様に従って実装されたC-PHYインターフェースにおいて5GHzのハーフレートシンボルクロック信号を使用して取得され得る。
図16は、C-PHYインターフェースを通じて送信されるシグナリングからハーフレートシンボルクロック信号1650を提供するように構成されるクロック復元回路1640を示す。差分信号1602、1604、1606における遷移時間の変動をマスクするために、複数の遅延回路1616、1618、1620、1644が使用される。遅延回路1616、1618、1620は、差分信号1602、1604、1606の中で検出された遷移を表す遷移パルスを生成およびマージするパルスマージ回路1600の中に設けられる。図17は、パルスマージ回路1600およびクロック復元回路1640に関連するタイミングを示すタイミング図1700である。
パルスマージ回路1600は、3つ組のワイヤA、B、およびCのワイヤのペアのシグナリング状態の差分を表す差分信号1602、1604、1606を受信する。差分信号1602、1604、1606は、図8に示す差分信号810a、810b、810cを生成する差動レシーバ802a、802b、および802cなどの、差動レシーバまたは比較器から受信され得る。パルスマージ回路1600は、差分信号1602、1604、1606の中で発生する遷移に応答して遷移パルス1704、1706、1708を生成するために、3つの排他的ORゲート1608、1610、1612、ならびに対応する遅延回路1616、1618、および1620を使用する。図示したタイミング図1700の例では、AB差分信号1602、BC差分信号1604、およびCA差分信号1606における遷移は、図示したシンボル境界1710a、1710b、1710c、1710dの各々において発生する。差分信号1602、1604、1606における遷移は、異なる時間において発生する場合があり、その結果、最初に発生する遷移と最後に発生する遷移との間でスキュー1702が観測され得る。図示の例では、最初に発生する遷移は、AB差分信号1602上の図示した第1のシンボル境界1710aにおいて観測され、図示した第1のシンボル境界1710aにおいて最後に発生する遷移は、CA差分信号1606上で観測される。遷移の間の関係は、各シンボル境界1710a、1710b、1710c、1710dにおいて異なる場合がある。動作においては、1つまたは複数のシンボル境界1710a、1710b、1710c、1710dにおいて、差分信号1602、1604、1606のうちの1つの上では遷移が発生しない場合がある。
第1の排他的ORゲート1608は、AB差分信号1602、およびAB遅延回路1616によって提供されるAB差分信号1602の遅延したバージョンを受信し、AB遅延回路1616によって導入される遅延の持続時間によって制御される持続時間を有するパルス1704を含むAB_p信号1622を提供する。第2の排他的ORゲート1610は、BC差分信号1604、およびBC遅延回路1618によって提供されるBC差分信号1604の遅延したバージョンを受信し、BC遅延回路1618によって導入される遅延の持続時間によって制御される持続時間を有するパルス1706を含むBC_p信号1624を提供する。第3の排他的ORゲート1612は、CA差分信号1606、およびCA遅延回路1620によって提供されるCA差分信号1606の遅延したバージョンを受信し、CA遅延回路1620によって導入される遅延の持続時間によって制御される持続時間を有するパルス1708を含むCA_p信号1626を提供する。AB_p信号1622、BC_p信号1624、およびCA_p信号1626は、AB_p信号1622、BC_p信号1624、およびCA_p信号1626の中のパルス1704、1706、1708に対応する合成されたパルス1714を含むeg_pulse信号1630を提供するORゲート1614に提供される。いくつかの事例では、パルス1704、1706、1708のうちの2つ以上が、時間的に重複することがあり、合成されたパルス1714の中でマージされ得る。
eg_pulse信号1630は、クロック復元回路1640の中の遅延フリップフロップ(DFF1642)をクロッキングする。eg_pulse信号1630の中の各立上りエッジは、DFF1642のD入力部から出力部(Q)まで通して、反転された遅延ハーフレートシンボルクロック信号1648をクロッキングする。DFF1642の出力部は、ハーフレートシンボルクロック信号1650(rclk)を提供する。遅延回路1616、1618、および1620は、予想または観測されるPVT条件の下でDFF1642をクロッキングするのに十分な持続時間を有するパルス1704、1706、1708を提供するように構成され得る。たとえば、パルス1704、1706、1708の持続時間は、クロックパルスにとっての最小持続時間に基づいて構成されてよい。
クロック復元回路1640は、各シンボル境界1710a、1710b、1710c、1710dにおいて状態を変化させるハーフレートシンボルクロック信号1650を提供するように構成される。たとえば、反転された遅延ハーフレートシンボルクロック信号1648は、第1のシンボル境界1710aにおいて論理1状態にあるが、ハーフレートシンボルクロック信号1650は論理0にある。第1の差分パルス1704に対応する、合成されたパルス1714の中の第1の立上りエッジは、DFF1642のQ出力部まで通して論理1レベルをクロッキングし、ハーフレートシンボルクロック信号1650を論理1状態に遷移させる。遅延回路1644とインバータ1646との組合せは、ハーフレートシンボルクロック信号1650における遷移を遅延させ、反転された遅延ハーフレートシンボルクロック信号1648を立上り遅延1720の後に論理0状態に遷移させる。第1のシンボル境界1710aに対応する差分パルス1706、1708がハーフレートシンボルクロック信号1650の状態に対して影響を有しないように、立上り遅延1720の持続時間はeg_pulse信号1630の中の追加のエッジをマスクするように構成される。
第2のシンボル境界1710bに対応する、合成されたパルスの中の第1の立上りエッジは、DFF1642のQ出力部まで通して、反転された遅延ハーフレートシンボルクロック信号1648の論理0レベルをクロッキングし、ハーフレートシンボルクロック信号1650を論理0状態に遷移させる。第2のシンボル境界1710bに対応する差分パルスがハーフレートシンボルクロック信号1650の状態に対して影響を有しないように、立下り遅延1722の持続時間はeg_pulse信号1630の中の追加のエッジをマスクするように構成される。遅延回路1644は、立上り遅延1720および立下り遅延1722の持続時間を整合させることを行うように構成される。立上り遅延1720および立下り遅延1722の持続時間を整合させるとともにシンボル境界1710a、1710b、1710c、1710dにおいて追加のパルスをマスクする必要によって、遅延回路1644の構成が制約される。
クロック復元回路1640の最大動作周波数および対応する最小UIは、クロック復元回路1640およびパルスマージ回路1600に関連するタイミング制約によって決定され得る。タイミング制約は次のように定められてよい。
clk_q + rise_dly >スキュー
clk_q + fall_dly >スキュー
clk_q + rise_dly + DFF_setup < 1UI
clk_q + fall_dly + DFF_setup < 1UI
rise_dly = fall_dly
多くの実装形態では、rise_dlyおよびfall_dlyの持続時間制約を整合させることは二重の遅延セルを必要とし、2つの遅延セルの固有の遅延は極めて大きい場合がある。いくつかの事例では、遅延回路1644の中の遅延セルは、より新しいC-PHY実装形態に対して全遅延を大きくかつ不適当にさせる遅延持続時間に関連する。
図18は、C-PHYインターフェースを通じて送信されるシグナリングから高周波数ハーフレートシンボルクロック信号1850を提供するように構成されるCDR回路1840を示す。遅延回路1816、1818、1820は、差分信号1802、1804、1806の中で検出された遷移を表す遷移パルスを生成およびマージするパルスマージ回路1800の中に設けられる。図19は、パルスマージ回路1800およびCDR回路1840に関連するタイミングを示すタイミング図1900である。
パルスマージ回路1800は、3つ組のワイヤA、B、およびCのワイヤのペアのシグナリング状態の差分を表す差分信号1802、1804、1806を受信する。差分信号1802、1804、1806は、図8に示す差分信号810a、810b、810cを生成する差動レシーバ802a、802b、および802cなどの、差動レシーバまたは比較器から受信され得る。パルスマージ回路1800は、差分信号1802、1804、1806の中で発生する遷移に応答して遷移パルス1904、1906、1908を生成するために、3つの排他的ORゲート1808、1810、1812、ならびに対応する遅延回路1816、1818、および1820を使用する。図示したタイミング図1900の例では、AB差分信号1802、BC差分信号1804、およびCA差分信号1806における遷移は、図示したシンボル境界1910a、1910b、1910c、1910dの各々において発生する。
差分信号1802、1804、1806における遷移は、異なる時間において発生する場合があり、その結果、最初に発生する遷移と最後に発生する遷移との間でタイミングスキュー1902が観測され得る。図示の例では、最初に発生する遷移は、AB差分信号1802上の図示した第1のシンボル境界1910aにおいて観測され、図示した第1のシンボル境界1910aにおいて最後に発生する遷移は、CA差分信号1806上で観測される。遷移の間の関係は、各シンボル境界1910a、1910b、1910c、1910dにおいて異なる場合がある。動作においては、1つまたは複数のシンボル境界1910a、1910b、1910c、1910dにおいて、差分信号1802、1804、1806のうちの1つの上では遷移が発生しない場合がある。
第1の排他的ORゲート1808は、AB差分信号1802、およびAB遅延回路1816によって提供されるAB差分信号1802の遅延したバージョンを受信し、AB遅延回路1816によって導入される遅延の持続時間によって制御される持続時間を有するパルス1904を含むAB_p信号1822を提供する。第2の排他的ORゲート1810は、BC差分信号1804、およびBC遅延回路1818によって提供されるBC差分信号1804の遅延したバージョンを受信し、BC遅延回路1818によって導入される遅延の持続時間によって制御される持続時間を有するパルス1906を含むBC_p信号1824を提供する。第3の排他的ORゲート1812は、CA差分信号1806、およびCA遅延回路1820によって提供されるCA差分信号1806の遅延したバージョンを受信し、CA遅延回路1820によって導入される遅延の持続時間によって制御される持続時間を有するパルス1908を含むCA_p信号1826を提供する。AB_p信号1822、BC_p信号1824、およびCA_p信号1826は、eg_pulse信号1830を提供するORゲート1814に提供される。
遅延回路1816、1818、1820の各々は、対応する差分信号1802、1804、1806に関して測定されたタイミングスキュー1902の持続時間を超える遅延を与えるように構成および/または較正され得る。たとえば、AB遅延回路1816によって与えられる遅延の持続時間は、AB差分信号1802における遷移とBC差分信号1804および/またはCA差分信号1806における遷移との間のタイミングスキュー1902の持続時間を超えるように構成または調整されてよい。得られるパルス1904、1906、および/または1908は重複し、その結果、ORゲート1814は、各シンボル境界1910a、1910b、1910c、1910dに対して、合成されたパルス1914をeg_pulse信号1830の中に提供する。遅延回路1816、1818、1820は、タイミング、およびPVT条件における分散に関連する他の相違を受け入れるように、再構成および/または再較正され得る。
eg_pulse信号1830は、CDR回路1840の中の遅延フリップフロップ(DFF1842)をクロッキングする。eg_pulse信号1830の中の各立上りエッジは、DFF1842のD入力部から出力部(Q)まで通して、ハーフレートシンボルクロック信号1850(rclk)の反転バージョン(rclk_inv信号1846)をクロッキングする。DFF1842の出力部は、ハーフレートシンボルクロック信号1850を提供する。遅延回路1816、1818、および1820は、予想または測定されるPVT条件に対してスキュー1702の持続時間を超えるのに十分な最小持続時間を有するパルス1904、1906、1908を提供するように構成され得る。
CDR回路1840は、各シンボル境界1910a、1910b、1910c、1910dにおいて状態を変化させるハーフレートシンボルクロック信号1850を提供するように構成される。たとえば、rclk_inv信号1846は第1のシンボル境界1910aにおいて論理1状態にあるが、ハーフレートシンボルクロック信号1850は論理0状態にある。eg_pulse信号1830の中の合成されたパルス1914の立上りエッジは、DFF1842のQ出力部まで通して論理1レベルをクロッキングし、ハーフレートシンボルクロック信号1850を論理1状態に遷移させる。インバータ1844は、最小の遅延を伴ってハーフレートシンボルクロック信号1850からrclk_inv信号1846を生成する。
差分信号1802、1804、1806の間のスキューを受け入れるために使用される遅延マスクは、パルスマージ回路1800の中に設けられCDR回路1840の外部にある。したがって、CDR回路1840は事実上、そのクロック信号に提供される信号の中のエッジに応答して極めて急速に切り替わることができる開ループ回路である。CDR回路1840の最大動作周波数および対応する最小UIは、次のタイミング制約によって決定され得る。
dly >スキュー、かつ
dly +スキュー< 1UI
ただし、dlyは、遅延回路1816、1818、および1820によって与えられる最大遅延の持続時間を表す。
CDR回路1840は、C-PHYプロトコルに従って3ワイヤバス上で送信される信号の中で符号化されたデータを復号するために使用される1つまたは複数の回路を含んでよく、またはそれに結合されてもよい。たとえば、ハーフレートシンボルクロック信号1850は、各シンボル境界1910a、1910b、1910c、1910dにおいて3つの差分信号1802、1804、1806を表すシンボルの取込みを制御するために使用され得る。一例では、3つの差分信号1802、1804、1806の状態を規定する未加工のシンボルが取り込まれてよい。別の例では、3つの差分信号1802、1804、1806の状態に基づいてFRPシンボルが生成され取り込まれてよい。
図示の例では、CDR回路1840は、差分信号1802、1804、1806を遅延させるかまたは別のやり方で位置合わせして、ハーフレートシンボルクロック信号1850またはハーフレートシンボルクロック信号1850の派生物のエッジにおける取込みを可能にするために使用され得る、タイミング回路を含む。位置合わせされた差分信号は、ハーフレートシンボルクロック信号1850の立上りエッジと立下りエッジの両方においてシンボルストリーム1854から未加工シンボルを取り込むように構成されるレジスタのセット1856への、3ビット未加工シンボルのシンボルストリーム1854を生成するために使用され得る。一例では、レジスタのセット1856は、ハーフレートシンボルクロック信号1850における立上りエッジから導出されるタイミングに基づいてシンボルストリーム1854からシンボルを取り込む第1のレジスタ、およびrclk_inv信号1846における立上りエッジから導出されるタイミングに基づいてシンボルストリーム1854からシンボルを取り込む第2のレジスタを含んでよい。レジスタのセット1856は、1つもしくは複数の3ビットシフトレジスタを含んでよく、かつ/またはレジスタのセット1856の中の様々なレジスタから組み立てられているシンボルのシーケンス1860を提供する先入れ先出し(FIFO)バッファとして編成されてよい。
処理回路および方法の例
図20は、本明細書で開示する1つまたは複数の機能を実行するように構成され得る処理回路2002を採用する装置2000のためのハードウェア実装形態の一例を示す。本開示の様々な態様によれば、本明細書で開示するような要素、または要素の任意の部分、または要素の任意の組合せは、処理回路2002を使用して実装され得る。処理回路2002は、本明細書で開示するクロック復元技法をサポートするいくつかのデバイス、回路、および/または論理を含んでよい。
処理回路2002は、ハードウェアとソフトウェアモジュールとのいくつかの組合せによって制御される1つまたは複数のプロセッサ2004を含んでよい。プロセッサ2004の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明する様々な機能性を実行するように構成された他の好適なハードウェアを含む。1つまたは複数のプロセッサ2004は、特定の機能を実行するとともにソフトウェアモジュール2016のうちの1つによって構成、増強、または制御され得る専用プロセッサを含んでよい。1つまたは複数のプロセッサ2004は、初期化中にロードされたソフトウェアモジュール2016の組合せを通じて構成されてよく、動作中に1つまたは複数のソフトウェアモジュール2016のローディング(loading)またはアンローディング(unloading)によってさらに構成されてよい。
図示の例では、処理回路2002は、バス2010によって概略的に表されるバスアーキテクチャを用いて実装され得る。バス2010は、処理回路2002の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでよい。一例では、バス2010は1つまたは複数のプロセッサ2004およびプロセッサ可読記憶媒体2006を含む様々な回路を互いににリンクさせる。プロセッサ可読記憶媒体2006は、メモリデバイスおよび大容量記憶デバイスを含んでよく、本明細書でコンピュータ可読媒体および/またはプロセッサ可読媒体と呼ばれることがある。バス2010はまた、タイミングソース、タイマー、周辺機器、電圧調整器、および電力管理回路などの、様々な他の回路をリンクさせ得る。バスインターフェース2008は、バス2010と1つまたは複数のトランシーバ2012との間のインターフェースを提供し得る。トランシーバ2012は、処理回路によってサポートされるネットワーキング技法ごとに設けられてよい。いくつかの事例では、複数のネットワーキング技法が、トランシーバ2012の中に見られる回路構成または処理モジュールの一部または全部を共有し得る。各トランシーバ2012は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置2000の性質に応じて、ユーザインターフェース2018(たとえば、キーパッド、ディスプレイ、スピーカー、マイクロフォン、ジョイスティック)も設けられてよく、直接またはバスインターフェース2008を通じてバス2010に通信可能に結合され得る。
プロセッサ2004は、バス2010を管理することと、プロセッサ可読記憶媒体2006を含み得るコンピュータ可読媒体の中に記憶されたソフトウェアの実行を含み得る、一般的な処理とを担当し得る。この点で、プロセッサ2004を含む処理回路2002は、本明細書で開示する方法、機能、および技法のうちのいずれかを実施するために使用され得る。プロセッサ可読記憶媒体2006は、ソフトウェアを実行するときにプロセッサ2004によって操作されるデータを記憶するために使用されてよく、ソフトウェアは、本明細書で開示する方法のうちのいずれか1つを実施するように構成され得る。
処理回路2002の中の1つまたは複数のプロセッサ2004は、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるものとする。ソフトウェアは、プロセッサ可読記憶媒体2006の中または別の外部プロセッサ可読媒体の中に、コンピュータ可読形態をなして常駐し得る。プロセッサ可読記憶媒体2006は、非一時的コンピュータ可読媒体を含んでよい。非一時的プロセッサ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、ROM、PROM、消去可能PROM(EPROM)、EEPROM、レジスタ、リムーバブルディスク、ならびにコンピュータによってアクセスされ得るとともに読み取られ得るソフトウェアおよび/または命令を記憶するための任意の他の好適な媒体を含む。プロセッサ可読記憶媒体2006はまた、例として、搬送波、伝送線路、ならびにコンピュータによってアクセスされ得るとともに読み取られ得るソフトウェアおよび/または命令を送信するための任意の他の好適な媒体を含んでよい。プロセッサ可読記憶媒体2006は、処理回路2002の中に、プロセッサ2004の中に、処理回路2002の外部に存在してよく、または処理回路2002を含む複数のエンティティにわたって分散されてもよい。プロセッサ可読記憶媒体2006は、コンピュータプログラム製品の中で具現され得る。例として、コンピュータプログラム製品は、パッケージング材料の中にコンピュータ可読媒体を含んでよい。特定の適用例および全体的なシステム
に課される全体的な設計制約に応じて、本開示全体にわたって提示される説明した機能を実装する最善の方法を、当業者は認識されよう。
プロセッサ可読記憶媒体2006は、本明細書でソフトウェアモジュール2016と呼ばれることがある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどの中に維持および/または編成されるソフトウェアを維持し得る。ソフトウェアモジュール2016の各々は、処理回路2002上にインストールまたはロードされ1つまたは複数のプロセッサ2004によって実行されるとき、1つまたは複数のプロセッサ2004の動作を制御するランタイムイメージ2014に寄与する、命令およびデータを含んでよい。実行されたとき、いくつかの命令は、本明細書で説明するいくつかの方法、アルゴリズム、およびプロセスに従って、処理回路2002に機能を実行させ得る。
ソフトウェアモジュール2016のうちのいくつかは、処理回路2002の初期化中にロードされてよく、これらのソフトウェアモジュール2016は、本明細書で開示する様々な機能の実行を可能にするように処理回路2002を構成し得る。たとえば、いくつかのソフトウェアモジュール2016は、プロセッサ2004の内部デバイスおよび/または論理回路2022を構成してよく、トランシーバ2012、バスインターフェース2008、ユーザインターフェース2018、タイマー、数理コプロセッサなどの外部デバイスへのアクセスを管理し得る。ソフトウェアモジュール2016は、割込みハンドラおよびデバイスドライバと相互作用し、かつ処理回路2002によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含んでよい。リソースは、メモリ、処理時間、トランシーバ2012へのアクセス、ユーザインターフェース2018などを含んでよい。
処理回路2002の1つまたは複数のプロセッサ2004は多機能であってよく、それによって、ソフトウェアモジュール2016のいくつかはロードされ、異なる機能または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ2004は、追加として、たとえば、ユーザインターフェース2018、トランシーバ2012、およびデバイスドライバからの入力に応答して開始されるバックグラウンドタスクを管理するように適合され得る。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ2004は、マルチタスク環境を提供するように構成されてよく、それにより、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ2004によってサービスされる1組のタスクとして実施される。一例では、マルチタスク環境は、異なるタスク間でプロセッサ2004の制御を受け渡す時分割プログラム2020を使用して実装されてよく、それによって、各タスクは、任意の未処理動作の完了時に、かつ/または割込みなどの入力に応答して、1つまたは複数のプロセッサ2004の制御を時分割プログラム2020に戻す。タスクが1つまたは複数のプロセッサ2004の制御を有するとき、処理回路は事実上、制御しているタスクに関連する機能によって対処される目的に対して特化される。時分割プログラム2020は、オペレーティングシステム、ラウンドロビンベースで制御を転送するメインループ、機能の優先度付けに従って1つもしくは複数のプロセッサ2004の制御を割り振る機能、および/または1つもしくは複数のプロセッサ2004の制御を処理機能に提供することによって外部イベントに応答する割込み駆動型メインループを含んでよい。
図21は、3ワイヤC-PHYインターフェースに結合された受信デバイスにおいて実施され得るクロック復元方法のフローチャート2100である。ブロック2102において、受信デバイスは、1つまたは複数の遷移パルスを含む合成信号を生成し得る。各遷移パルスは、3ワイヤバスの中のワイヤのペアのシグナリング状態の差分を表す差分信号における遷移に応答して生成される。ブロック2104において、受信デバイスは、その出力としてクロック信号を提供するように構成される遅延フリップフロップに、合成信号を提供し得る。合成信号の中のパルスは、クロック信号を第1の状態に駆動させる。ブロック2106において、受信デバイスは、リセット信号を遅延フリップフロップに提供し得る。リセット信号は、遅延が追加されずに第1の状態からの遷移を伝えながら、第1の状態への遷移を遅延させることによって、クロック信号から導出される。リセット信号が第1の状態に遷移すると、第1の状態からクロック信号が駆動される。
受信デバイスは、第1の差分信号および第1の差分信号の遅延したバージョンに対して排他的ORゲート関数を実行することによって、第1の差分信号に対する遷移パルスを生成し得る。受信デバイスは、遅延フリップフロップに対して規定された最小クロックパルス持続時間に基づく持続時間を有する対応する遷移パルスを提供するように、少なくとも1つのパルス生成回路を構成し得る。受信デバイスは、3ワイヤバスの動作条件に基づいて少なくとも1つのパルス生成回路を較正し得る。受信デバイスは、第1の状態への遷移に適用される、所望の継続時間の遅延を与えるように、非対称の遅延を構成し得る。一例では、ロー論理状態からハイ論理状態への遷移を遅延させるように構成された立上りエッジ遅延回路として、非対称の遅延回路が実装される。立上りエッジ遅延回路は、遅延が追加されずにハイ論理状態からロー論理状態への遷移を伝えるようにさらに構成され得る。
様々な実装形態では、クロック信号の中で提供されるタイミング情報に基づいて3ワイヤバスのシグナリング状態における遷移からシンボルを復号するように構成されたワイヤ状態デコーダに、クロック信号が提供されてよい。
図22は、処理回路2202を採用する装置2200のためのハードウェア実装形態の一例を示す図である。処理回路2202は、通常、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含み得る、少なくとも1つのプロセッサ2216を有する。処理回路2202は、バス2220によって概略的に表されるバスアーキテクチャを用いて実装され得る。バス2220は、処理回路2202の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでよい。バス2220は、プロセッサ2216、モジュールまたは回路2204、2206、および2208、コネクタまたはワイヤ2214の異なるペア間の、シグナリング状態の差分を表す差分信号2222を生成する差分レシーバ回路2212、ならびにプロセッサ可読記憶媒体2218によって表される、1つまたは複数のプロセッサおよび/またはハードウェアモジュールを含む、様々な回路を互いにリンクさせる。バス2220はまた、タイミングソース、周辺機器、電圧調整器、および電力管理回路などの、様々な他の回路をリンクさせてよく、それらは当技術分野においてよく知られており、したがって、これ以上説明されない。
プロセッサ2216は、プロセッサ可読記憶媒体2218上に記憶されたソフトウェアの実行を含む、一般的な処理を担当する。ソフトウェアは、プロセッサ2216によって実行されたとき、任意の特定の装置に対して上記で説明した様々な機能を処理回路2202に実行させる。プロセッサ可読記憶媒体2218はまた、C-PHYバスとして構成され得るコネクタまたはワイヤ2214を介して送信されたシンボルから復号されるデータを含む、ソフトウェアを実行するときにプロセッサ2216によって操作されるデータを記憶するために使用され得る。処理回路2202は、モジュール2204、2206、および2208のうちの少なくとも1つをさらに含む。モジュール2204、2206、および2208は、プロセッサ可読記憶媒体2218の中に常駐する/記憶された、プロセッサ2216の中で動作するソフトウェアモジュール、プロセッサ2216に結合された1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであってよい。モジュール2204、2206、および/または2208は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含んでよい。
一構成では、装置2200は、C-PHYインターフェースプロトコルによるデータ通信のために構成されてよい。装置2200は、差分信号2222のシグナリング状態における遷移に応答して遷移パルスを生成するように構成されたモジュールおよび/または回路2208、3ワイヤバスのシグナリング状態における遷移からシンボルを復号するのに使用可能なクロック信号を生成するように構成されているモジュールおよび/または回路2206、ならびに遷移パルスおよび/または受信クロックを生成する際に使用される遅延持続時間を構成するための構成モジュールおよび/または回路2204を含んでよい。
一例では、装置2200は、複数のパルス生成回路、第1の論理回路、および遅延フリップフロップを有する。パルス生成回路の各々は、3ワイヤバスの中のワイヤのペアのシグナリング状態の差分を表す差分信号2222における遷移に応答して遷移パルスを生成するように構成される。第1の論理回路は、複数のパルス生成回路から受信される1つまたは複数の遷移パルスを合成することによって、連続的に送信されるシンボルのペア間の各境界において合成信号の中に単一パルスを提供するように構成される。遅延フリップフロップは、クロック復元装置によって出力されるクロック信号のシグナリング状態を変化させることによって、合成信号の中の各パルスに応答する。シンボルは、C-PHYプロトコルに従って3ワイヤバス上で連続的に送信され得る。
各パルス生成回路は、3つの差分信号のうちの1つを遅延させることによって、遅延した差分信号を提供するように構成された、遅延回路と、3つの差分信号のうちの1つおよび遅延した差分信号に対して排他的OR関数を実行することによって遷移パルスを提供するように構成された、第2の論理回路とを有してよい。遅延回路は、3つの差分信号のうちの2つの間のスキューの持続時間を超える遅延を与えるように構成され得る。遅延回路は、PVT条件の相違を受け入れる遅延を与えるように構成可能であってよい。遷移パルスは、構成可能な持続時間を有してよい。遅延フリップフロップは、その入力としてクロック信号の反転を受信し得る。一例では、クロック信号における立上りエッジは、3ワイヤバスから第1のシンボルを取り込むために使用され得、クロック信号の反転における立上りエッジは、3ワイヤバスから第2のシンボルを取り込むために使用され得る。別の例では、クロック信号における立下りエッジは、3ワイヤバスから第1のシンボルを取り込むために使用され得、クロック信号の反転における立下りエッジは、3ワイヤバスから第2のシンボルを取り込むために使用され得る。別の例では、クロック信号における立上りエッジは、3ワイヤバスから第1のシンボルを取り込むために使用され得、クロック信号における立下りエッジは、3ワイヤバスから第2のシンボルを取り込むために使用され得る。
プロセッサ可読記憶媒体2218は非一時的記憶媒体であってよく、プロセッサ2216によって実行されたとき、処理回路2202に、3ワイヤバスの中のワイヤのペアのシグナリング状態の差分を表す3つの差分信号のうちの1つにおける遷移に応答して遷移パルスを生成することと、連続的に送信されるシンボルのペア間の各境界において生成される1つまたは複数の遷移パルスを合成することによって、連続的に送信されるシンボルのペア間の各境界において合成信号の中に単一パルスを提供することと、合成信号の中の各パルスに応答してクロック信号のシグナリング状態が変化するように合成信号を用いて遅延フリップフロップをクロッキングすることとをさせる、命令および/またはコードを記憶し得る。3ワイヤバス上で連続的に送信されるシンボル間の境界において、1つまたは複数の差分信号における遷移が発生し得る。
いくつかの実装形態では、命令は、処理回路2202に、3つの差分信号のうちの1つを遅延させることによって、遅延した差分信号を提供することと、遷移パルスを取得するために、3つの差分信号のうちの1つおよび遅延した差分信号に対して排他的OR関数を実行することとをさせてよい。命令は、処理回路2202に、3つの差分信号のうちの2つの間のスキューの持続時間を超える持続時間だけ3つの差分信号のうちの1つを遅延させてよい。命令は、処理回路2202に、PVT条件の相違を受け入れる持続時間だけ3つの差分信号のうちの1つを遅延させてよい。遷移パルスは、構成可能な持続時間を有することができる。命令は、処理回路2202に、遅延フリップフロップにクロック信号の反転を入力として提供することと、3ワイヤバスから第1のシンボルを取り込むためにクロック信号における立上りエッジを使用することと、3ワイヤバスから第2のシンボルを取り込むためにクロック信号における立下りエッジを使用することとをさせてよい。
開示するプロセスにおけるステップの特定の順序または階層が、例示的な手法の例示であることが理解される。設計選好に基づいて、プロセスにおけるステップの特定の順序または階層が並べ替えられてよいことが理解される。さらに、いくつかのステップは、組み合わせられてよく、または省略されてもよい。添付の方法の請求項は、様々なステップの要素を例示的な順序で提示し、提示された特定の順序または階層に限定されることは意図されない。
前述の説明は、本明細書で説明した様々な態様を任意の当業者が実践することを可能にするために提供される。これらの態様への様々な変更は当業者には容易に明らかであり、本明細書で定義される一般原理は他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に示される態様に限定されるものではなく、請求項の文言に矛盾しない最大の範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」を意味するものではなく、「1つまたは複数の」を意味するものである。別段に明記されていない限り、「いくつか」という用語は1つまたは複数を指す。当業者に知られているかまたは後で知られることになる、本開示全体にわたって説明した様々な態様の要素に対するすべての構造的および機能的な均等物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。その上、本明細書に開示するものはいずれも、そのような開示が特許請求の範囲において明示的に記載されているかどうかにかかわらず、公に供されるものではない。特許請求の範囲のいかなる要素も、要素が「ための手段(means for)」という句を使用して明確に記載されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。