(57)【要約】  共有バスを介したエラー検出最適化を容易にすることに向けられた様々な態様を開示する。マスタデバイスがスレーブデバイスに結合され、ワードの符号化通信が、制御データバスを介してマスタデバイスとスレーブデバイスとの間で容易にされる。符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化される。プロトコルは、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振る。
2017511044.tif 000002
【特許請求の範囲】
【請求項１】
制御データバスに結合されたプロセッサ
を備え、
前記プロセッサが、前記制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にするように構成され、
前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振る、デバイス。
【請求項２】
前記制御データバスが2ラインバスである、請求項1に記載のデバイス。
【請求項３】
前記プロトコルがカメラ制御インターフェース拡張(CCIe)プロトコルである、請求項1に記載のデバイス。
【請求項４】
前記デバイスが、
ビット割振り方式に従ってビットを割り振るように構成されたビット割振り回路であって、前記ビット割振り方式が、前記符号化通信の前記複数の最下位ビットを割り振る、ビット割振り回路と、
ワードの符号化を容易にするように構成されたエンコーダ回路であって、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するように構成されたプロトコルサブ回路と、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、ワードを符号化するように構成された符号化サブ回路と
を備えるエンコーダ回路と、
前記制御データバスを介して前記符号化通信を送信するように構成された通信回路と
をさらに備える、請求項1に記載のデバイス。
【請求項５】
前記符号化サブ回路が、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化するように構成される、請求項4に記載のデバイス。
【請求項６】
前記エンコーダ回路が、前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するように構成された最適化サブ回路をさらに備える、請求項4に記載のデバイス。
【請求項７】
前記最適化サブ回路が、第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えることを容易にするように構成される、請求項6に記載のデバイス。
【請求項８】
前記符号化サブ回路が、前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化するように構成され、前記ビット割振り回路が、最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にするように構成される、請求項6に記載のデバイス。
【請求項９】
前記符号化サブ回路が、前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化するように構成され、前記ビット割振り回路が、最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にするように構成される、請求項6に記載のデバイス。
【請求項１０】
前記制御データバスを介して前記符号化通信を受信するように構成された通信回路と、
前記符号化通信の復号を容易にするように構成されたデコーダ回路と
をさらに備える、請求項1に記載のデバイス。
【請求項１１】
前記デコーダ回路が、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを検出するように構成されたプロトコルサブ回路と、
前記符号化通信の最適化と、前記最適化に対応するビット割振り方式とを確認するように構成された最適化サブ回路と、
前記ワードフォーマットと前記ビット割振り方式とに従って、前記符号化通信を復号するように構成された復号サブ回路と
を備える、請求項10に記載のデバイス。
【請求項１２】
マスタデバイスをスレーブデバイスに結合するステップと、
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にするステップであって、前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振るステップと
を含む方法。
【請求項１３】
前記制御データバスが2ラインバスである、請求項12に記載の方法。
【請求項１４】
前記プロトコルがカメラ制御インターフェース拡張(CCIe)プロトコルである、請求項12に記載の方法。
【請求項１５】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するステップと、
ビット割振り方式に従ってビットを割り振るステップであって、前記ビット割振り方式が、前記符号化通信の前記複数の最下位ビットを割り振るステップと、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化するステップと、
前記制御データバスを介して前記符号化通信を送信するステップと
をさらに含む、請求項12に記載の方法。
【請求項１６】
前記符号化するステップが、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化するステップを含む、請求項15に記載の方法。
【請求項１７】
前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するステップをさらに備える、請求項15に記載の方法。
【請求項１８】
第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えるステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記符号化するステップが、前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化するステップを含み、前記割り振るステップが、最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にするステップを含む、請求項17に記載の方法。
【請求項２０】
前記符号化するステップが、前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化するステップを含み、前記割り振るステップが、最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にするステップを含む、請求項17に記載の方法。
【請求項２１】
前記制御データバスを介して前記符号化通信を受信するステップと、
前記符号化通信を復号するステップと
をさらに含む、請求項12に記載の方法。
【請求項２２】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを検出するステップと、
前記符号化通信の最適化と、前記最適化に対応するビット割振り方式とを確認するステップと、
前記ワードフォーマットと前記ビット割振り方式とに従って、前記符号化通信を復号するステップと
をさらに含む、請求項21に記載の方法。
【請求項２３】
マスタデバイスをスレーブデバイスに結合するための手段と、
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にするための手段であって、前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振る手段と
を備えるデバイス。
【請求項２４】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するための手段と、
ビット割振り方式に従ってビットを割り振るための手段であって、前記ビット割振り方式が、前記複数の最下位ビットを割り振る手段と、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化するための手段と、
前記制御データバスを介して前記符号化通信を送信するための手段と
をさらに備える、請求項23に記載のデバイス。
【請求項２５】
前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するための手段をさらに備える、請求項24に記載のデバイス。
【請求項２６】
第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えるための手段をさらに備える、請求項25に記載のデバイス。
【請求項２７】
1つまたは複数の命令を記憶している非一時的機械可読記憶媒体であって、前記1つまたは複数の命令が、少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
マスタデバイスをスレーブデバイスに結合すること、および
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にすることであって、前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振ること
を行わせる、非一時的機械可読記憶媒体。
【請求項２８】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定すること、
ビット割振り方式に従ってビットを割り振ることであって、前記ビット割振り方式が、前記複数の最下位ビットを割り振ること、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化すること、および
前記制御データバスを介して前記符号化通信を送信すること
を行わせる命令をさらに備える、請求項27に記載の非一時的機械可読記憶媒体。
【請求項２９】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化すること、ならびに
最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にすること
を行わせる命令をさらに備える、請求項28に記載の非一時的機械可読記憶媒体。
【請求項３０】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化すること、ならびに
最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にすること
を行わせる命令をさらに備える、請求項28に記載の非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2014年2月28日に出願した米国仮特許出願第61/946,647号、および2015年2月27日に出願した米国非仮特許出願第14/634,106号の優先権および利益を主張する。
【０００２】
本開示は、共有バスを介した効率的な動作を可能にすることに関し、より詳細には、共有バスを介したエラー検出最適化を容易にするために、所望のワードフォーマットに従ってビットを割り振ることに関する。
【背景技術】
【０００３】
一般に、共有バスは、複数のデバイスを結合するときに使用され得る。たとえば、Inter-Integrated Circuit(I2C、I2Cとも呼ばれる)は、マザーボード、埋め込みシステム、携帯電話または他の電子デバイスに低速周辺装置を取り付けるために使用されるマルチマスタシリアルシングルエンドバスである。I2Cバスは、シリアルクロックライン(SCL)と、7ビットアドレス指定を用いるシリアルデータライン(SDA)とを含む。I2Cバスは、ノードに関する2つの役割、すなわち、マスタおよびスレーブを有する。マスタノードは、クロックを生成し、スレーブノードとの通信を開始するノードである。スレーブノードは、クロックを受信し、マスタによってアドレス指定されたときに応答するノードである。I2Cバスは、任意の数のマスタノードが存在できることを意味するマルチマスタバスである。加えて、マスタおよびスレーブの役割は、メッセージの間で(STOPが送られた後に)変更される場合がある。I2Cは、メッセージの基本タイプを定義し、それらの各々はSTARTで開始し、STOPで終了する。
【０００４】
カメラの実装形態との関連では、一方向送信を用いて、イメージセンサから画像を取り込み、対応する画像データをベースバンドプロセッサ内のメモリに送信することができ、一方、制御データは、ベースバンドプロセッサとイメージセンサならびに他の周辺デバイスとの間で交換することができる。一例では、ベースバンドプロセッサとイメージセンサ(および/または1つもしくは複数のスレーブノード)との間のそのような制御データのために、カメラ制御インターフェース(CCI)プロトコルが使用される場合がある。別の例では、CCIプロトコルは、イメージセンサとベースバンドプロセッサとの間のI2Cシリアルバスを介して実装される場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エラー検出アルゴリズムは、共有バス通信の精度を改善するために実装されることが多い。しかしながら、そのようなエラーは、従来のエラー検出アルゴリズムによって検出されないことが多い。したがって、共有バス上で通信されたエラーがより正確に検出されるアルゴリズムを実装することが望ましい。
【課題を解決するための手段】
【０００６】
以下では、本開示の1つまたは複数の態様の基本的な理解をもたらすために、そのような態様の簡略化された概要を提示する。本概要は、本開示のすべての企図される特徴の広い概説ではなく、本開示のすべての態様の鍵となる要素または不可欠な要素を特定することも、本開示の任意またはすべての態様の範囲を正確に説明することも意図していない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、簡略化された形態で本開示の1つまたは複数の態様のいくつかの概念を提示することである。
【０００７】
本開示の態様は、共有バスを介したエラー検出最適化を容易にすることに向けられた方法、装置、コンピュータプログラム製品、および処理システムを提供する。一態様では、本開示は、マスタデバイスをスレーブデバイスに結合するステップと、制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にするステップとを含む、方法を提供する。この特定の実装形態では、符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化される。ここで、そのような最大化は、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振るプロトコルを介して達成される。
【０００８】
別の態様では、共有バスを介したエラー検出最適化を容易にするように構成されたデバイスを開示する。デバイスは、制御データバスに結合されたプロセッサを備える。ここで、プロセッサは、制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にするように構成される。この実装形態における符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化される。特に、プロトコルは、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振る。
【０００９】
さらなる態様では、共有バスを介したエラー検出最適化を容易にするように構成された別のデバイスを開示する。この実装形態では、デバイスは、マスタデバイスをスレーブデバイスに結合するための手段と、制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にするための手段とを備える。ここで、符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化される。すなわち、プロトコルは、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振る。
【００１０】
また別の態様では、記憶された1つまたは複数の命令を介して、共有バスを介したエラー検出最適化を容易にするように構成された非一時的機械可読記憶媒体を開示する。ここで、少なくとも1つのプロセッサによって実行されたときに、1つまたは複数の命令は、少なくとも1つのプロセッサに、マスタデバイスをスレーブデバイスに結合すること、および、制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にすることを行わせる。この実装形態では、符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化される。特に、プロトコルは、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振る。
【００１１】
これらの開示する態様および他の開示する態様は、以下の詳細な説明を検討すれば、より十分に理解されるであろう。添付図面とともに本発明の特定の例示的な態様の以下の説明を検討すれば、本発明の他の態様、特徴、および実施形態が当業者に明らかになろう。本発明の特徴は、以下のいくつかの態様および図面に関連して説明され得るが、本発明のすべての態様は、本明細書で説明される有利な特徴のうちの1つまたは複数を含み得る。言い換えれば、1つまたは複数の態様は、いくつかの有利な特徴を有するものとして説明され得るが、そのような特徴のうちの1つまたは複数はまた、本明細書で説明される本発明の様々な態様に従って使用され得る。同様に、例示的な態様は、デバイスの態様、システムの態様、または方法の態様として以下で説明され得るが、そのような例示的な態様は様々なデバイス、システム、および方法において実施され得ることを理解されたい。
【００１２】
様々な特徴、性質、および利点は、同様の参照文字が全体を通じて対応して識別する図面と併せて読まれたとき、以下に記載の詳細な説明から明らかになる場合がある。
【図面の簡単な説明】
【００１３】
【図１】本開示の一態様による例示的なマルチマスタバスを示す図である。
【図２】本開示の一態様による例示的なマスタ/スレーブデバイスのブロック図である。
【図３】ベースバンドプロセッサおよびイメージセンサを有し、画像データバスおよびマルチモード制御データバスを実装するデバイスを示すブロック図である。
【図４】どのようにクロックがCCIeモードでシンボル間遷移内に埋め込まれ、それによって、データ送信のためにI2Cバスにおける2本のライン(すなわち、SDAラインおよびSCLライン)の使用を可能にし得るかを示す図である。
【図５】トランスコーディングされたシンボル内にクロック信号を埋め込むために、送信機においてデータビットをトランスコーディングし、トランスコーディングされたシンボルにするための例示的な方法を示すブロック図である。
【図６】遷移番号と順次シンボルとの間の例示的な変換を示す図である。
【図７】遷移番号と順次シンボルとの間の変換を示す図である。
【図８】最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための方法を示す図である。
【図９】最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための送信機側論理回路を示す図である。
【図１０】最上位ビットから最下位ビットまで、3進数を2進ビットに変換するための方法を示す図である。
【図１１】12桁の3進数を20ビットに変換するための受信機側論理回路を示す図である。
【図１２】ビット19(すなわち、ビットカウントが、ビット0である第1のビットにおいて開始するとき、第20のビット)が、CCIeプロトコルでは大抵使用されず、共有バス上のデバイス間のコマンドのために使用され得ることを、概念的に示す図である。
【図１３】共有バスがI2CモードからCCIeモードへ動作するように切り替え中であることをスレーブデバイスに示すために、共有バスを介してマスタデバイスによって送られ得る、CCIeモードエントリインジケータのための例示的な一般呼出し(general call)を示す図である。
【図１４】CCIeモードからI2Cモードへの遷移をすべてのCCIe可能デバイスに示すために、CCIeマスタデバイス(たとえば、I2Cモードである間に、図1におけるマスタデバイス)によって発行され得る、例示的なCCIe呼出しを示す図である。
【図１５】例示的なCCIeスレーブ識別子(SID)ワードフォーマットを示す図である。
【図１６】例示的なCCIeアドレスワードフォーマットを示す図である。
【図１７】例示的な書込みデータワードフォーマットを示す図である。
【図１８】例示的な読取り指定ワードフォーマットを示す図である。
【図１９】例示的な読取りデータワードフォーマットを示す図である。
【図２０】I2Cの1バイト書込みデータ動作の例示的なタイミング図である。
【図２１】SDAラインおよびSCLラインを介した送信のために、データビットが12シンボルにトランスコーディングされた、例示的なCCIe送信を示す図である。
【図２２】本明細書で開示する符号化方式から得られた第20のビット(ビット19)の例示的なマッピングを示す図である。
【図２３】図22の第20のビット(ビット19)領域の例示的なマッピング内の下位領域の詳細を示す図である。
【図２４】発生し得る様々なシンボルエラー状態を示す図である。
【図２５】送信シンボルシーケンス0321_0321_0321(2進シーケンス0000_0000_0000_0000_0000および3進数0000_0000_00003に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図２６】送信シンボルシーケンス2301_2301_2301(2進シーケンス0100_0000_1101_1111_1000および3進数1111_1111_11113に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図２７】送信シンボルシーケンス3131_3131_3131(2進シーケンス1000_0001_1011_1111_0000および3進数2222_2222_22223に変換する)内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図２８】送信シンボルシーケンス0132_3101_3231内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図２９】送信シンボルシーケンス2030_2120_3021内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図３０】送信シンボルシーケンス3231_0132_3101内の可能性があるエラーを示すテーブル、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す図である。
【図３１】本開示によるマスタ/スレーブデバイスの例示的な構成要素を示すブロック図である。
【図３２】本開示の一態様による例示的な符号化/復号方法を示すフローチャートである。
【図３３】本開示の一態様による例示的なエンコーダ構成要素を示すブロック図である。
【図３４】本開示の一態様による例示的な符号化方法を示すフローチャートである。
【図３５】本開示の一態様による例示的なデコーダ構成要素を示すブロック図である。
【図３６】本開示の一態様による例示的な復号方法を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下の説明では、実施形態の完全な理解を提供するために、具体的な詳細が与えられる。ただし、実施形態はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、回路は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図で示される場合がある。他の例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
【００１５】
《概要》
背景技術において説明したように、従来のエラー検出アルゴリズムの制限のために、共有バス上で通信されるエラーが逃されることが多い。本明細書で開示する態様は、エラー検出最適化を容易にするために、所望のワードフォーマットに従ってビットを割り振ることによって、そのような制限を克服することに向けられる。すなわち、エラー検出最適化を容易にするために、追加のエラー検出ビットが戦略的に割り振られ得る、共有バス通信のための柔軟なワードフォーマットを利用することに向けられた態様を開示する。
【００１６】
次に図1を参照すると、本明細書で開示するエラー検出最適化態様を容易にする、例示的なマルチマスタバスアーキテクチャが提供されている。図示のように、複数のマスタ/スレーブデバイス110、120、130、および140は、共有バス100を介して互いに結合される。ここで、共有バス100はマルチマスタバスであり、マスタ/スレーブデバイス110、120、130、および140のいずれも、マスタデバイスまたはスレーブデバイスとして動作することができることが企図される。この特定の例では、マスタ/スレーブデバイス120は、共有バス100を介して他のマスタ/スレーブデバイス110、130、および140へワード122を送信し、ワード122は、マスタ/スレーブデバイス120によって、エラー検出を最適化するビット割振り方式に従って符号化される。たとえば、そのような方式は、非最適化方式で割り振られるエラー検出ビットの数と比較して、より多数のエラー検出ビットを割り振ることによって、エラー検出を最適化することができる。したがって、ワード122を適切に復号するために、マスタ/スレーブデバイス110、130、および140は、ワード122がエラー検出最適化を用いて符号化されたか否かを検出し、次いで、ワード122が対応するビット割振り方式に基づいて復号されることが企図される。
【００１７】
図2では、本開示の一態様による例示的なマスタ/スレーブデバイスのブロック図が提供されている。図示のように、マスタ/スレーブデバイス200は、エンコーダ構成要素210と、デコーダ構成要素220と、通信構成要素230とを含む、本明細書で開示するエラー検出最適化を実施することを容易にするための様々な構成要素を備える。マスタ/スレーブデバイス200は、たとえば、図1に示すマスタ/スレーブデバイス110、120、130、および140のいずれかを含む、本明細書で説明する任意のマスタ/スレーブデバイスとして構成され得ることが企図される。たとえば、通信構成要素230は、共有バスを介して通信されるワードを送信および受信するように構成されてよく、エンコーダ構成要素210は、追加のエラー検出ビットを含めるためにワードを符号化することによって、エラー検出を最適化するように構成され、デコーダ構成要素220は、これらの追加のエラー検出ビットを含むワードを復号するように構成されることが企図される。
【００１８】
本開示の特定の態様では、マスタ/スレーブデバイス200は、CCIプロトコルに従ってワードを符号化/復号するように構成される。このために、2進数を3進数に変換し、次に3進数が、以前よりも高い速度を可能にするために、I2Cバスを介した送信のためにクロックを埋め込まれたシンボルにトランスコーディングされる、CCIe(カメラ制御インターフェース拡張)と呼ばれるCCIの拡張が開発されていることに留意されたい。例示的な実装形態では、20ビットの2進数が3進数変換器(すなわち、ビット-12xT変換器)に並行して入力される。すべての2進ビットを受信した後、3進数変換器は、対応する3進数を出力する。次いで、出力された数が同様の方法でトランスコーダへ送られる。本明細書で開示するCCIeの一態様では、3進遷移番号-順次シンボル変換がシンボルごとに実施され、この変換には、複数のシンボルを同時に処理するよりも少ないハードウェアリソースが必要となることが望ましい。次に、それらのシンボルがバスを介して送信される。
【００１９】
3進数空間およびシンボルへの変換の使用は、余剰ビットが利用可能になる結果となる。一例では、この余剰ビットは最上位であり、3進数の領域が、さもなければ利用可能ではない他の機能をサポートするために利用可能になる場合がある。たとえば、エラー検出、ホットプラグ機能、および/またはSIDスキャンがすべて、この余剰ビット内に含まれ得る余剰情報のために、容易になり得る。
【００２０】
《例示的な動作環境》
図3は、ベースバンドプロセッサ304およびイメージセンサ306を有し、画像データバス316およびマルチモード制御データバス308を実装するデバイス302を示すブロック図である。図3はカメラデバイス内のマルチモード制御データバス308を示すが、この制御データバス308が様々な異なるデバイスおよび/またはシステム内に実装され得ることは明らかであろう。画像データは、画像データバス316(たとえば、高速差動DPHYリンク)を介して、イメージセンサ306からベースバンドプロセッサ304に送られる場合がある。
【００２１】
一例では、制御データバス308は、2本の線、クロックライン(SCL)およびシリアルデータライン(SDA)を備える、I2Cバスであり得る。クロックラインSCLは、I2Cバス(制御データバス308)を介してすべてのデータ転送を同期させるために使用されるクロックを送るために使用され得る。データラインSDAおよびクロックラインSCLは、I2Cバス(制御データバス308)上ですべてのデバイス312、314、および318に結合される。この例では、制御データが、制御データバス308を介して、ベースバンドプロセッサ304とイメージセンサ306ならびに他の周辺デバイス318、322、および/または324との間で交換され得る。I2Cのための標準クロック(SCL)速度は、最高100KHzである。I2C高速モードにおける標準クロックSCL速度は、最高400KHzであり、I2C高速モードプラス(Fm+)では、最高1MHzである。I2Cバスを介したこれらの動作モードは、カメラの適用例に使用されるとき、カメラ制御インターフェース(CCI)モードと呼ばれる場合がある。
【００２２】
一態様によれば、カメラ動作をサポートするために、改善された(すなわち、1MHzよりも大きい制御データバス送信周波数を用いる)動作モードを、マルチモード制御データバス308を介して実装することができる。I2Cバスを介してのこの改善された動作モードは、カメラの適用例のために使用されるとき、カメラ制御インターフェース拡張(CCIe)モードと呼ばれる場合がある。CCIeモードでは、SCLラインおよびSDAラインは両方とも、それらの2本のラインを介したシンボル間遷移内にクロックが埋め込まれる間に、データを送信するために使用され得る。この例では、ベースバンドプロセッサ304はマスタノード312を含み、イメージセンサ306はスレーブノード314を含み、マスタノード312とスレーブノード314の両方は、制御データバス308に結合された他のレガシーI2Cデバイスの適切な動作に影響を与えることなく、制御データバス308を介してカメラ制御インターフェース拡張(CCIe)モードに従って動作することができる。一態様によれば、制御データバス308を介したこの改善されたモードは、CCIeデバイスとレガシーI2Cスレーブデバイスとの間にいかなるブリッジデバイスを用いることもなく、実装され得る。
【００２３】
I2C互換デバイスとCCIe互換デバイスとが共有制御データバス308に並行して結合されることを可能にするプロトコルが提供される。制御データバス308は、別個の通信プロトコル(たとえば、I2CモードおよびCCIeモード)に従った動作間で動的に切り替えることができる。前記のように、共有制御データバス308への通信および/またはアクセスは、マルチモードマスタデバイス312によって管理される。マスタデバイスは、制御データバス308がその通信プロトコルを第1のプロトコルモード(たとえば、I2Cモード)から第2のプロトコルモード(たとえば、CCIeモード)へ切り替えるべきであることを示すために、エントリ呼出し(entry call)を送信する。同様に、マスタデバイスは、制御データバス308がその通信プロトコルを第2のプロトコルモード(たとえば、CCIeモード)から第1のプロトコルモード(たとえば、I2Cモード)へ切り替えるべきであることを示すために、終了呼出し(exit call)を送信する。共有バス308に結合されたスレーブデバイスは、これらのエントリ呼出しと終了呼出しとを監視して、いつ共有バス308上で動作することができるかを確認する。
【００２４】
《例示的なCCIe符号化技法》
図4は、どのようにクロックがCCIeモードでシンボル間遷移内に埋め込まれ、それによって、データ送信のためにI2Cバスにおける2本のライン(すなわち、SDAラインおよびSCLライン)の使用を可能にし得るかを示す。一例では、このクロックの埋め込みは、遷移クロックトランスコーディングによって達成され得る。たとえば、物理リンク(線)を介して送信されるべきデータ404は、送信されるシンボルが、送信シンボル406のシンボルサイクルまたは遷移ごとに状態を変化させることを保証されるように、トランスコーディングされる。一例では、ビットのシーケンスが3進数に変換され、3進数の各桁が、送信のためにシンボルに変換される。順次シンボルは、3進数の2つの順次の桁が同じであるときでも、異なるように保証される。したがって、元のクロック402は、シンボルサイクルごとのシンボル状態の変化において埋め込まれ得る。受信機は、(送信シンボル406内の)各シンボルにおける状態遷移からクロック情報408を復元し、次に、送信シンボル406のトランスコーディングを逆転させて、元のデータ410を取得する。一例では、各シンボルが桁に変換され、複数の桁が3進数を構成し、次に、3進数が複数のビットに変換される。したがって、元のクロック402は、シンボルサイクルごとのシンボル状態の変化において埋め込まれ得る。これによって、I2Cバスの両方の線(たとえば、図3における制御データバス308、SDAラインおよびSCLライン)がデータ情報を送るために使用されることが可能になる。加えて、クロック信号とデータ信号との間のセットアップ時間および保持時間を有する必要がもはやないので、シンボルレートが倍増され得る。
【００２５】
図5は、トランスコーディングされたシンボル内にクロック信号を埋め込むために、送信機においてデータビットをトランスコーディングし、トランスコーディングされたシンボルにするための例示的な方法を示すブロック図である。送信機502において、データビット504のシーケンスが3進(3進法の)数(すなわち、「遷移番号」)に変換され、次に、3進数が(順次)シンボルに変換され、それらのシンボルがクロックラインSCL512およびデータラインSDA514を介して送信される。
【００２６】
一例では、2進データの元の20ビットが、ビット-遷移番号変換器ブロック508に入力されて、12桁の3進数に変換される。12桁の3進数の各桁は、「遷移番号」を表す。2つの連続する遷移番号は、同じ数であってよい(すなわち、3進数の連続する桁が同じであってよい)。各遷移番号は、2つの連続する順次シンボルが同じ値を有することがないように、遷移-シンボルブロック510において順次シンボルに変換される。順次シンボルごとに遷移が保証されるので、そのような順次シンボル遷移は、クロック信号を埋め込むように働き得る。次に、各順次シンボル516が、2線式物理リンク(たとえば、SCLライン512とSDAライン514とを備えるI2Cバス)を介して送られる。
【００２７】
図6は、遷移番号602と順次シンボル604との間の例示的な変換を示す。遷移番号とも呼ばれる、3進数、3進法の数の個々の桁は、3つの可能な数字または状態、0、1または2のうちの1つを有することができる。3進数の2つの連続する桁において同じ数字が現れる場合があるが、2つの連続する順次シンボルは同じ値を有しない。遷移番号と順次シンボルとの間の変換は、連続する遷移番号が同じである場合でも、順次シンボルが(順次シンボルから順次シンボルへと)常に変化することを保証する。
【００２８】
この変換関数を図7に例示的に記載する。送信機側(TX:TからSへ)702では、遷移番号(T)が順次シンボル(S)に変換され得る。たとえば、現在の順次シンボル(Cs)は、前の順次シンボル(Ps)と、現在の遷移番号(T)の関数である一時遷移番号(Ttmp)とに基づいて、取得され得る。一時遷移番号(Ttmp)は、現在の遷移番号Tを0と比較することによって取得することができ、T=0のとき、一時遷移番号(Ttmp)は3に等しくなり、そうでない場合(Tが0に等しくないとき)、TtmpはTに等しくなる(すなわち、Ttmp=T=0?3:T)。現在の順次シンボルは、現在の順次シンボル(Cs)+前の順次シンボル(Ps)+一時遷移番号(Ttmp)の和として取得され得る(すなわち、Cs=Ps+Ttmp)。
【００２９】
受信機側(RX:SからTへ)704では、変換演算が逆にされて、現在の順次シンボル(Cs)および前の順次シンボル(Ps)から遷移番号が取得される。一時遷移番号(Ttmp)は、現在の順次シンボル(Cs)+4の和-前の順次シンボル(Ps)として取得され得る(すなわち、Ttmp=Cs+4-Ps)。現在の遷移番号(T)は一時遷移番号(Ttmp)に等しいが、一時遷移番号(Ttmp)が3と比較され、Ttmp=3のとき、一時遷移番号(Ttmp)は0に等しくなり、そうでない場合(Ttmpが3に等しくないとき)、TはTtmpに等しくなる(すなわち、T=Ttmp=3?0:T)。
【００３０】
テーブル706は、遷移番号と順次シンボルとの間の変換を示す。
【００３１】
再び図6を参照すると、遷移番号と順次シンボルとの間の変換の一例がその中に示されている。たとえば、第1のサイクル606では、現在の遷移番号(Ta)は2であり、そのためTtmpもまた2であり、前の順次シンボルPsは1であり、新しい現在の順次シンボルCsは現在3である。
【００３２】
第2のサイクル608では、遷移番号(Tb)は1である。遷移番号(Tb)は0に等しくないので、一時遷移番号Ttmpは、1である遷移番号(Tb)値に等しい。現在の順次シンボル(Cs)は、3である前の順次シンボル(Ps)値を、1である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きい4に等しいので、ロールオーバされた数0が現在の順次シンボル(Cs)になる。
【００３３】
第3のサイクル610では、現在の遷移番号(T)は1である。遷移番号Tが1であるので、一時遷移番号Ttmpもまた1である。現在の順次シンボル(Cs)は、0である前の順次シンボル(Ps)値を、1である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きくない1に等しいので、現在の順次シンボル(Cs)は1に等しい。
【００３４】
第4のサイクル612では、現在の遷移番号(T)は0である。遷移番号Tが0であるので、一時遷移番号Ttmpは3である。
【００３５】
現在の順次シンボル(Cs)は、1である前の順次シンボル(Ps)値を、3である一時遷移番号Ttmpに加算することによって、取得される。加算演算の結果が、3よりも大きい4であるので、ロールオーバされた数0が現在の順次シンボル(Cs)になる。
【００３６】
2つの連続する3進数の桁TbおよびTcが同じ数を有する場合でも、この変換は、2つの連続する順次シンボルが異なる状態値を有することを保証することに留意されたい。このため、順次シンボル604内の保証された遷移がクロック信号を埋め込むように働き、それによって、データ送信のためにI2Cバス内のクロックラインSCLを解放することができる。
【００３７】
図5を再び参照すると、受信機520において、このプロセスが逆にされて、トランスコーディングされたシンボルがビットに戻るように変換され、このプロセスにおいて、クロック信号がシンボル遷移から抽出される。受信機520は、2線式物理リンク(たとえば、SCLライン524およびSDAライン526を備えるI2Cバス)を介して、順次シンボル522のシーケンスを受信する。受信された順次シンボル522は、クロック-データ復元(CDR)ブロック528に入力されて、クロックタイミングが復元され、トランスコーディングされたシンボル(S)がサンプリングされる。次に、シンボル-遷移番号変換器ブロック530が、トランスコーディングされた(順次)シンボルを、遷移番号、すなわち、1つの3進数字に変換する。次に、遷移番号-ビット変換器532は、12個の遷移番号を変換して、12桁の3進数から20ビットの元のデータを回復させる。
【００３８】
2線式バスおよび12個の遷移番号について図5および図6に示した例は、n線式システムおよびm個の遷移番号に一般化され得る。T0〜Tm-1の1つのTあたりにr個の可能なシンボル遷移状態がある場合、m個の遷移がrm個の異なる状態を送ることができ、すなわち、r=2n-1個である。したがって、遷移T0...Tm-1は、(2n-1)m個の異なる状態を有することができるデータを含む。
【００３９】
本明細書で説明する本技法を使用して、I2C標準バスが提供し、本明細書でCCIeモードと呼ばれるものを超えて、制御データバス(たとえば、図3における制御データバス308)のリンクレートを高めることができる。一例では、制御データバスに結合されるマスタデバイスおよび/またはスレーブデバイスは、同じ制御データバスを介して、標準I2Cバスを使用して可能であるよりも高いビットレートを達成するために、(図4、図5、図6、および図7に示すような)シンボル送信内にクロック信号を埋め込む送信機および/または受信機を実装することができる。
【００４０】
図8は、最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための方法を示す。3進数の各桁は、受信デバイスに送信されるシンボルにトランスコーディング(変換)され得る。3進数を表すT0、T1...T11を有する12桁の3進数802では、T0は30の桁を表し(かつ、最下位桁であり)、T11は311の桁を表す(かつ、最上位桁である)。受信ビット(たとえば、20ビットのシーケンス)で開始すると、3進数802の最上位桁T11が最初に取得される。次に、次の最上位桁T10が次に取得される。このプロセスは、最下位桁T0が取得されるまで続く。3進数802の桁の各々はまた、「遷移番号」と呼ばれることもある。
【００４１】
図9は、最上位ビットから最下位ビットまで、2進ビットを3進数に変換するための送信機側論理回路を示す。図8および図9は、T11、T10、T9、...、T0の順序で送られる12桁の3進数802を示す。最上位ビットを最初に取得し、送ることによって、関連する論理および回路の複雑さが簡略化される。図8および図9における手法では、最上位の順次シンボルが受信デバイスに最初に送信され、したがって、MSS最優先(MSS first:most significant symbol first)と呼ばれる。本明細書で使用する「最下位シンボル」は、3進数802の最下位桁に対応するトランスコーディングされたシンボルを指す。たとえば、ならびに図6および図7の説明を参照すると、T0が順次シンボルにトランスコーディングされるとき、それは最下位の3進数の桁から発生したので、最下位シンボルである。同様に、本明細書で使用する「最上位シンボル」は、3進数802の最上位桁に対応するトランスコーディングされたシンボルを指す。たとえば、ならびに図6および図7の説明を参照すると、T11が順次シンボルにトランスコーディングされるとき、それは最上位の3進数の桁から発生したので、最上位シンボルである。また、シンボル-遷移番号変換器ブロック530(図5)が、後で、トランスコーディングされた(順次)シンボルを受信し、遷移番号、すなわち、3進数の桁に変換するとき、それは、最上位桁T11が最初に、最下位桁T0が最後になる。
【００４２】
図5に戻って参照すると、20ビットの元のデータが、逆順で3進数に変換され(すなわち、最上位ビットが変換器に最初に供給され)、次に、3進数の各桁(たとえば、各遷移番号)が、逆順で順次シンボルに変換(すなわち、トランスコーディング)され、これらのトランスコーディングされたシンボルが、バス上で逆順に(すなわち、最上位シンボルが最初に)送信される。
【００４３】
図10は、最上位ビットから最下位ビットまで、3進数を2進ビットに変換するための方法を示す。すなわち、この受信機側変換は、図8および図9に示した送信機側変換において実施された動作を逆にする。受信デバイス(たとえば、スレーブデバイス)は、逆順送信を受信し、クロック復元およびシンボルサンプリングを実施して、トランスコーディングされたシンボルを3進数に戻すように変換し、次に、3進数は逆順で受信機側論理回路に供給され、受信機側論理回路は3進数を20ビットの2進の元データに戻すように変換する。
【００４４】
図11は、12桁の3進数を20ビットに変換するための受信機側論理回路を示す。言い換えれば、図5に戻って参照すると、20ビットの元のデータが、逆順で3進数に変換され(すなわち、最上位ビットが変換器に最初に供給され)、次いで、この遷移番号が、逆順で再び順次シンボルに変換(すなわち、トランスコーディング)され、これらのトランスコーディングされたシンボルが、バス上で逆順に送信される。受信デバイス(たとえば、スレーブデバイス)は、逆順送信を受信し、クロック復元およびシンボルサンプリングを実施して、トランスコーディングされたシンボルを3進数に戻すように変換し、次いで、3進数は逆順で図11における回路に供給され、回路は3進数を20ビットの2進の元データに戻すように変換する。
【００４５】
図12は、どのようにビット19(すなわち、ビットカウントが、ビット0である第1のビットにおいて開始するとき、第20のビット)が、CCIeプロトコルでは大抵使用されず、共有バス上のデバイス間のコマンドのために使用され得るかを、概念的に示す。すなわち、本明細書で説明する符号化方式の結果として、余分のビット(すなわち、ビット19)が現在、送信シンボル内で利用可能である。より具体的には、図12は、ビット19(すなわち、第20のビット)を示す。言い換えれば、コンピュータサイエンスにおいて典型的であるように、ビットワイズのカウントは0で開始し、ビット19は第20のビットである。ここで、ビット0〜18は、0000_0000_00003から2221_2201_20013の3進数範囲内で表される。2221_2201_20023から2222_2222_22223の範囲内の3進数は使用されない。したがって、3進数範囲2221_2201_20023から2222_2222_22223を使用して、ビット19(すなわち、第20のビット)を表すことができる。言い換えれば、2221,2201,20023 3進数は、10,000,000,000,000,000,000 2進数(0x80000 16進数)であり、2222_2222_22223 3進数(0x81BF0)は、可能な最大の12桁の3進数である。
【００４６】
《CCIeモードのための例示的なプロトコル》
図13は、共有バスがI2CモードからCCIeモードへ動作するように切り替え中であることをスレーブデバイスに示すために、共有バスを介してマスタデバイスによって送られ得る、CCIeモードエントリインジケータのための例示的な一般呼出しを示す。一般呼出し1302は、I2CモードからCCIeモードへの遷移をすべてのI2C互換デバイスに示すために、共有バスを介してI2Cマスタデバイス(たとえば、SDAラインおよびSCLラインを介して、I2Cモードである間、図3におけるマスタデバイス312)によって発行され得る。
【００４７】
I2Cモードでは、CCIeマスタデバイスは、このI2C一般呼出し1302を、「CCIeモード」バイトまたはインジケータ1304とともに発行する。CCIe互換スレーブデバイスは、一般呼出し1302の受信を肯定応答する。CCIe互換スレーブデバイスは、必要な場合、一般呼出し中に(たとえば、図3における制御データバス308の)SCLラインを低に保持することによって、待機サイクルを挿入することができる。
【００４８】
CCIeモードになると、すべてのCCIe互換デバイスは、CCIeマスタデバイスからの要求に応答することができる。CCIeモードをサポートしない共有制御データバス上のレガシーI2C互換スレーブデバイスの動作状態または任意の機能は、いかなるCCIeトランザクションによっても影響を受けない。
【００４９】
図14は、CCIeモードからI2Cモードへの遷移をすべてのCCIe可能デバイスに示すために、CCIeマスタデバイス(たとえば、I2Cモードである間に、図3におけるマスタデバイス312)によって発行され得る、例示的なCCIe呼出し1402を示す。CCIeマスタデバイスは、CCIe SIDの代わりにこの終了呼出し1402を発行することができる。
【００５０】
CCIeモードで、CCIeモードにおける最後のデータおよび後続するSの後、CCIeマスタは、CCIeモードの終了とI2Cモードへ戻る遷移とを(たとえば、CCIe互換デバイスに)示すために、特殊なCCIe SIDコードである「終了」コード/インジケータ1404を送る。加えて、「終了」コード/インジケータ1404の後、CCIeマスタデバイスは、S(開始ビット)および後続する「一般呼出し」1406を、I2Cプロトコルに従って、I2Cプロトコル内の第2のバイトにおける「終了」コード1408とともに送る。すべてのCCIe対応スレーブは、一般呼出し1404に対して肯定応答しなければならない。
【００５１】
図15は、例示的なCCIeスレーブ識別子(SID)ワードフォーマットを示す。これは、CCIe SIDワードフォーマット1502の一部としての16ビットのスレーブ識別子(SID)1504の使用を示す。そのようなSIDワードフォーマットは、そのワードが制御データバス上に配置されるとき、特定のスレーブデバイスを識別するために使用されることになる。
【００５２】
図16は、例示的なCCIeアドレスワードフォーマット1602を示す。これは、各アドレスワード1606が16ビットのアドレス1604を含むことを示す。アドレスワード1606はまた、2ビットの制御コード1608と、1ビットのエラー検出定数1610とを含む。テーブル1612は、制御コードのための様々な可能な値を示す。
【００５３】
複数のアドレスワードが順次送られ得る。現在の制御コードが「00」である場合、これは、アドレスワードが後続することになることを意味する。制御コードが「01」である場合、次のデータワードは、書込みデータワードである。制御コードが「10」である場合、次のデータワードは、読取り指定データワードである。制御コード「11」は禁止される。
【００５４】
図17は、例示的な書込みデータワードフォーマット1700を示す。これは、各書込みデータワード1700が16ビットの書込みデータ部分1702を含むことを示す。書込みデータワード1700はまた、2ビットの制御コード1704と、1ビットのエラー検出定数1710とを含む。テーブル1714は、制御コードのための様々な可能な値を示す。
【００５５】
複数の書込みデータワードが順次送られ得る。現在の書込みワードの制御コードが「00」(シンボルC0)である場合、データは、前のアドレスに書き込まれるべきである。現在の書込みワードの制御コードが「01」(シンボルC1)である場合、データは、前のアドレス+1に書き込まれるべきである。制御コードが「10」(シンボルE)である場合、次のワードはSIDまたは終了コードになる。
【００５６】
図18は、例示的な読取り指定ワードフォーマット1800を示す。読取り指定データワード1800は、16ビットの読取りデータ値部分1804と、2ビットの制御コード1808と、3ビットのエラー検出定数1810とを含み得る。
【００５７】
最後のアドレスワード1807の後、「読取り指定」(RS)ワード1812が後続する。読取り指定(RS)ワード1812は、後続する読取りデータワードの数を指定する。テーブル1816に示すように、制御コード「00」は、同じアドレスからの読取りワードを示すために使用される。制御コード「01」は、増分アドレスからの読取りワードを示すために使用される。(そこからデータが読み取られている)スレーブデバイスは、「読取り指定」(RS)ワード1804によって指定されるよりも多くのデータワード(CHKワードを含まない)を送らないものとする。スレーブデバイスは、少なくとも1つの読取りワード(CHKワードを含まない)を送るものとする。スレーブデバイスは、「読取り指定」(RS)ワード1804によって指定された数のワードを送る前に、読取り転送を終了することができる。
【００５８】
図19は、例示的な読取りデータワードフォーマット1902を示す。読取りデータワード1902は、16ビットの読取りデータ値部分1904と、2ビットの制御コード1906と、1ビットのエラー検出定数1908とを含み得る。SID1907によってアドレス指定されたスレーブデバイスは、要求するマスタデバイスに戻すためのワードの数を決定する。テーブル1916に示すように、読取りワードが同じアドレスから続く場合、制御コードは「00」(シンボルR0)である。読取りワードが増分アドレスから続く場合、制御コードは「01」(シンボルR1)である。ワードが最後の読取りワードであり、その後、CHKがない場合、制御コードは「10」(シンボルE)である。制御コード「00」は禁止される。
【００５９】
《例示的な共有バスを介したI2C送信対CCIe送信》
図20は、I2Cの1バイト書込みデータ動作の例示的なタイミング図を示す。この例では、共有制御データバス(たとえば、図3における制御データバス308)は、シリアルデータラインSDA2002とシリアルクロックラインSCL2004とを含む。図20に示す送信方式は、「I2Cモード」と呼ばれることがある。SCLライン2004は、マスタデバイスからすべてのスレーブデバイスへクロックを送るために使用されるが、SDAライン2002は、データビットを送信する。I2Cマスタデバイスは、I2Cバス上のどのスレーブデバイスにマスタデバイスがアクセスすることを望むかを示すために、SDAライン2002において7ビットのスレーブID2008を送り、次に、書込み動作を示すために1ビットを送る。そのIDが7ビットのスレーブID2008にマッチするスレーブデバイスのみが、意図されたアクションを引き起こすことができる。I2Cスレーブデバイスがそれ自体のIDを検出するために、マスタデバイスは、SDAライン上で少なくとも8ビット(または、SCLライン上で8個のクロックパルス)を送らなければならない。
【００６０】
I2C規格は、すべてのI2C互換スレーブデバイスが、(たとえば、SCLラインが高である間にSDAライン上の高から低への遷移によって示される)START条件2006を受信すると、それらのバス論理をリセットすることを必要とする。
【００６１】
CCIeプロトコルは、クロック信号をデータ送信内に埋め込みながら、SDAライン2002とSCLライン2004の両方をデータ送信のために使用する。たとえば、データビットは、次にラインを介して送信される複数のシンボルにトランスコーディングされ得る。クロック信号(図20におけるI2CバスではSCLライン)をシンボル送信内に埋め込むことによって、SDAライン2002とSCLライン2004の両方が、データ送信のために使用され得る。
【００６２】
図21は、SDAライン2102およびSCLライン2104を介した送信のために、データビットが12シンボルにトランスコーディングされた、例示的なCCIe送信を示す。図21に示す送信方式は、「CCIeモード」と呼ばれることがある。CCIeモードは、ソース同期であり、プッシュプルドライバによって駆動される。共有制御データバスを介してデータを送出するものはどれもまた、データ内(たとえば、シンボル間遷移内)に埋め込まれたクロック情報を送出する。したがって、制御データバス上のただ1つのデバイスが一度に共有制御データバスを駆動することが可能にされる。
【００６３】
同じバスを介してレガシーI2CデバイスとCCIeデバイスの両方をサポートするために、CCIeモード動作は、同じSTART条件2106、2108、2110を使用し、これによって、レガシーI2CスレーブデバイスがいかなるCCIe動作に反応することも防止される(たとえば、CCIeモード中の開始条件は、レガシーI2Cスレーブデバイスをリセットさせる)。この例では、START条件2106、2108、2110(すなわち、SCLライン2104が高である間に、SDAライン2102上の高から低への遷移によって示される)は、完全なスレーブID(すなわち、完全な7ビット)が送信される前に検出され、したがって、これは、不完全なスレーブID(7ビット未満)である。マスタデバイスが6個のSCLパルスを送り、次に、START条件2106、2108、2110を発行する場合、すべてのレガシーI2Cスレーブデバイスは、データをI2CスレーブIDとして認識する前に、それらのバス論理をリセットする。6ビットシーケンス(たとえば、2つおきのシンボルに対応する)が2つのSTART条件2106、2108、2110の間で送られるので、これらの6ビットシーケンスは、いかなるI2Cスレーブデバイスによっても有効なスレーブIDとして復号されない。したがって、レガシーI2Cスレーブデバイスは、不完全なスレーブIDに作用しないようになる。
【００６４】
このシステムでは、マスタデバイスは、バスへのアクセスを制御する。そのため、制御データバスを介して送信することを望むいかなるデバイスも、たとえば、割込み要求を発行することによって、マスタデバイスにそのようなアクセスを要求しなければならない。割込みを発行するための従来技術の機構は、専用の割込みラインまたは専用の割込みバスに依拠していた。しかしながら、そのような専用の割込みラインまたはバスは、そのような割込みラインまたはバスを収容するために、デバイスが少なくとも1つの追加のピンを含まなければならないことを意味する。そのような専用の割込みピンおよびライン/バスの必要性をなくすために、CCIe内の帯域内割込みのための機構が必要とされる。
【００６５】
帯域内割込みの使用はまた、バス競合または衝突を回避するべきである。たとえば、衝突を回避するために、スレーブデバイスは、マスタデバイスが制御データバスを駆動中である間に、IRQをアサートするために制御データバス(たとえば、SDAライン2102またはSCLライン2104のいずれか)を駆動することが可能にされるべきではない。
【００６６】
《例示的なビット19領域およびチェックサム》
図22は、本明細書で開示する符号化方式から得られた第20のビット(ビット19)の例示的なマッピングを示す。諒解され得るように、利用可能な3進数は、マスタデバイスとスレーブデバイスとの間の特徴および能力を拡張するように働き得る。たとえば、ビット19内で利用可能なこの3進数空間(すなわち、そのビット19が「1」であるデータ領域)は、(a)スレーブ間送信、(b)送信のためのチェックサム、(c)スレーブデバイスへのマスタ動作ハンドオーバ、(d)ハートビートクロックなどを容易にするか、または示すように働き得る。
【００６７】
図23は、図22の第20のビット(ビット19)領域の例示的なマッピング内の下位領域の詳細を示す。
【００６８】
図24は、発生し得る様々なシンボルエラー状態を示す。タイミング図2402は、制御データバス(SDAラインおよびSCLライン)を介した正しい送信と、受信機クロック(RXCLK)とを示す。
【００６９】
受信機クロック(RXCLK)が2つのサイクル2412および2414を消失し、データビット2410が誤って検出されるようになる、クロック消失2404が示されている。同じ転送方向により多くの後続のワードがある場合、ワードデータエラーは、後続するワードにおいて検出される可能性が最も高い。同期(SYNC)消失もまた検出され得る。エラーが最後のワードにおいて発生する場合、マスタデバイスは、タイムアウト検出機能を必要とする。
【００７０】
受信機クロック(RXCLK)が、余剰クロックサイクル2420において検出された余剰シンボル「01」2416および2418を有する、余剰クロック2406が示されている。このエラーは、ワードまたは後続するワードにおいて検出される可能性が最も高い。同期消失もまた検出され得る。
【００７１】
受信機クロック(RXCLK)消失がないが、単一シンボルエラー2422が発生する、シンボルエラー2408が示されている。このエラーは、ワードまたは後続するワードにおいて検出される可能性が最も高い。チェックサムエラーが検出される可能性が最も高い。
【００７２】
《例示的な送信シンボル内のエラー検出》
図25〜図30は、様々なCCIeワードについて発生し得る様々なシンボルエラー状態(すなわち、シンボルスリップなしの単一シンボルエラー)を示す。図示のように、これらのエラーは、以下でさらに説明するように、3ビット(ビット0、1、および2)を使用することによって検出され得る。これらの例は、エラー検出のために3桁の最下位ビット(ビット[2:0])を使用する。
【００７３】
図25は、送信シンボルシーケンス0321_0321_0321内の可能性があるエラーを示すテーブル2500、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])0000_0000_0000_0000_0000の20ビットシーケンス2502が、3進数(T11...T0)0000_0000_00003 2504に変換され、次にこの3進数が、順次シンボル(S11...S0)0321_0321_0321 2506に変換される。この例では、3桁の最下位ビット2508がすべて0(000)である。元の順次シンボル0321_0321_0321 2506のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2510を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「010」への変化を生じる。最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。「0」である最初のシンボルが「2」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル2500は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７４】
図26は、送信シンボルシーケンス2301_2301_2301内の可能性があるエラーを示すテーブル2600、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])0100_0000_1101_1111_1000の20ビットシーケンス2602が、3進数(T11...T0)1111_1111_11113 2604に変換され、次にこの3進数が、順次シンボル(S11...S0)2301_2301_2301 2606に変換される。この例では、3桁の最下位ビット2608がすべて0(000)である。元の順次シンボル2301_2301_2301 2606のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2610を生じる。たとえば、最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。「2」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル2600は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７５】
図27は、送信シンボルシーケンス3131_3131_3131内の可能性があるエラーを示すテーブル2700、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])1000_0001_1011_1111_0000の20ビットシーケンス27502が、3進数(T11...T0)2222_2222_22223 2704に変換され、次にこの3進数が、順次シンボル(S11...S0)3131_3131_3131 2706に変換される。この例では、3桁の最下位ビット2708がすべて0(000)である。元の順次シンボル3131_3131_3131 2706のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2710を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「110」への変化を生じる。「3」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「001」への変化を生じる。テーブル2700は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７６】
図28は、送信シンボルシーケンス0132_3101_3231内の可能性があるエラーを示すテーブル2800、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])0001_1000_1111_0011_1000の20ビットシーケンス2802が、3進数(T11...T0)0120_1201_20123 2804に変換され、次にこの3進数が、順次シンボル(S11...S0)0132_3101_3231 2806に変換される。この例では、3桁の最下位ビット2808がすべて0(000)である。元の順次シンボル0132_3101_3231 2806のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2810を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。最後のシンボル「1」が「2」に変更される場合、これは、3桁の最下位ビットの「000」から「110」への変化を生じる。「0」である最初のシンボルが「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。テーブル2800は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７７】
図29は、送信シンボルシーケンス2030_2120_3021内の可能性があるエラーを示すテーブル2900、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])0100_1010_1101_1010_1000の20ビットシーケンス2902が、3進数(T11...T0)1201_2012_01203 2904に変換され、次にこの3進数が、順次シンボル(S11...S0)2030_2120_3021 2906に変換される。この例では、3桁の最下位ビット2908がすべて0(000)である。元の順次シンボル2030_2120_3021 2906のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル2910を生じる。たとえば、最後のシンボル「1」が「0」に変更される場合、これは、3桁の最下位ビットの「000」から「010」への変化を生じる。「2」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「011」への変化を生じる。テーブル2900は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７８】
図30は、送信シンボルシーケンス3231_0132_3101内の可能性があるエラーを示すテーブル3000、および、そのようなエラーが3桁の最下位ビット内でどのように検出可能であるかを示す。図5、図6、図7、図8、図9および図10に示す方法を使用することによって、(ビット[19:0])0101_1110_1101_0000_1000の20ビットシーケンス3002が、3進数(T11...T0)2012_0120_12013 3004に変換され、次にこの3進数が、順次シンボル(S11...S0)3231_0132_3101 3006に変換される。この例では、3桁の最下位ビット3008がすべて0(000)である。元の順次シンボル3231_0132_3101 3006のシンボルのいずれかにおいて、送信中にエラーが導入される場合、これらは誤ったシンボル3010を生じる。たとえば、最後のシンボル「1」が「3」に変更される場合、これは、3桁の最下位ビットの「000」から「111」への変化を生じる。「3」である最初のシンボルが「0」に変更される場合、これは、3桁の最下位ビットの「000」から「100」への変化を生じる。テーブル3000は、3桁の最下位ビットが既知の定数(たとえば、「000」という固定定数)である限り、任意の単一シンボルの変化が3桁の最下位ビットによってどのように検出可能であるかの様々な他の例を示す。
【００７９】
《例示的なマスタ/スレーブデバイス実装形態》
次に図31を参照すると、本開示によるマスタ/スレーブデバイスの例示的な構成要素が示されている。図示のように、マスタ/スレーブデバイス3114は、制御データバス3150を介して別のマスタ/スレーブデバイス3160に結合される。ここで、マスタ/スレーブデバイス3114または3160のいずれかが、本明細書で開示する前述の態様に従って、マスタまたはスレーブとして動作することができること、ならびに、マスタ/スレーブデバイス3114および3160が、実質的に同様の構成要素を有し得ることが企図される。
【００８０】
この例では、マスタ/スレーブデバイス3114は、バス3102によって概略的に表される内部バスアーキテクチャを用いて実装され得る。バス3102は、マスタ/スレーブデバイス3114の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含む場合がある。バス3102は、(プロセッサ3104によって概略的に表される)1つまたは複数のプロセッサ、メモリ3105、および(コンピュータ可読媒体3106によって概略的に表される)コンピュータ可読媒体を含む様々な回路を互いにリンクさせる。バス3102は、タイミングソース、周辺機器、電圧調整器、および電力管理回路などの様々な他の回路をリンクさせることもできるが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。
【００８１】
特定の実装形態では、制御データバスインターフェース3108は、制御データバス3150とマスタ/スレーブデバイス3114との間のインターフェースを提供し、プロセッサ3104は、制御データバス3150を介した、マスタ/スレーブデバイス3114とマスタ/スレーブデバイス3160との間のワードの符号化通信を容易にするように構成される。ここで、制御データバス3150は2ラインバスであり得ること、および、符号化通信は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコル(たとえば、CCIeプロトコル)に従って符号化され得ることが企図される。前述のように、そのような最大化は、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、複数の最下位ビットを割り振るプロトコルを介して達成され得る。
【００８２】
本開示のさらなる態様では、コンピュータ可読媒体3106は、本明細書で開示するように、制御データバス3150を介したエラー検出最適化を容易にするために、様々な命令3106a、3106b、および/または3106cを含むように構成される。同様に、そのような態様は、代わりに、図示のようにプロセッサ3104を図示の回路3120、3130、および/または3140のうちのいずれかに結合することによって、ハードウェアを介して実装され得る。その上、制御データバス3150を介したエラー検出最適化は、命令3106a、3106b、および/または3106cの任意の組合せ、ならびに、回路3120、3130、および/または3140の任意の組合せによって容易にされ得ることが企図される。
【００８３】
たとえば、エンコーダ/デコーダ命令3106aおよびエンコーダ/デコーダ回路3120は、選択された/検出されたプロトコル(たとえば、CCIeプロトコル)に従ってワードを符号化/復号することに向けられる。前述のように、そのような符号化/復号は、3進数を桁ごとに複数のシンボルに変換して(たとえば、12桁の3進数は12シンボルになる)、前述の「余剰ビット」を生じることを含み得る。
【００８４】
本開示の別の態様では、ビット割振り命令3106bおよびビット割振り回路3130は、所望のワードフォーマット(たとえば、SIDワードフォーマット、アドレスワードフォーマット、書込みデータワードフォーマット、読取り指定ワードフォーマット、または読取りデータワードフォーマット)に従ってビットを割り振ることに向けられる。この目的で、本明細書で開示する様々な企図されたワードフォーマットは、20ビットのワードフォーマットを備え、エラー検出定数を最大化することを容易にするために、3桁の最下位ビットが割り振られる。その上、ビット割振り命令3106bおよび/またはビット割振り回路3130のいずれかは、エラー検出最適化が所望されるか、データ最適化が所望されるかに従って、そのような最大化を容易にするために、柔軟なビット割振り方式を容易にするように構成され得ることが企図される。たとえば、特定の実装形態では、最下位ビットがエラー検出のために割り振られ、第2の最下位ビットおよび第3の最下位ビットの各々が、ワードのデータ部分の追加のエラー検出ビットまたは2桁の最上位ビットのいずれかのために割り振られる。
【００８５】
本開示の別の態様では、通信命令3106cおよび/または通信回路3140は、マスタ/スレーブデバイス3114を制御データバス3150とインターフェースするように構成され得る。特に、通信命令3106cおよび/または通信回路3140のいずれかは、本明細書で開示するエラー検出最適化を容易にするプロトコル(たとえば、CCIeプロトコル)に従って、マスタ/スレーブデバイス3114とマスタ/スレーブデバイス3160との間のワードの符号化通信を容易にするように構成され得る。
【００８６】
図31の残りの要素に戻って参照すると、プロセッサ3104は、バス3102を管理すること、および、コンピュータ可読媒体3106上に記憶されたソフトウェアの実行を含む全体的な処理を担当することを諒解されたい。ソフトウェアは、プロセッサ3104によって実行されるとき、マスタ/スレーブデバイス3114に、任意の特定の装置のための下記で説明する様々な機能を実施させる。コンピュータ可読媒体3106は、ソフトウェアを実行するときにプロセッサ3104によって操作されるデータを記憶するために使用することもできる。
【００８７】
処理システム内の1つまたは複数のプロセッサ3104は、ソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、プロシージャ、機能などを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読媒体3106上に存在することができる。コンピュータ可読媒体3106は、非一時的コンピュータ可読媒体である場合がある。非一時的コンピュータ可読媒体には、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体が含まれる。コンピュータ可読媒体には、例として、搬送波、伝送路、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含まれ得る。コンピュータ可読媒体3106は、マスタ/スレーブデバイス3114の中に、マスタ/スレーブデバイス3114の外部に存在するか、またはマスタ/スレーブデバイス3114を含む複数のエンティティにわたって分散される場合がある。コンピュータ可読媒体3106は、コンピュータプログラム製品内で具現化される場合がある。例として、コンピュータプログラム製品には、パッケージング材料内のコンピュータ可読媒体が含まれ得る。当業者は、特定の適用例および全体的なシステムに課された設計制約全体に応じて、本開示全体にわたって提示された記載の機能を最もよく実装する方法を認識されよう。
【００８８】
次に図32を参照すると、本明細書で開示する態様による、共有バスを介したエラー検出最適化を容易にする例示的な方法を示すフローチャートが提供されている。図示のように、プロセス3200は、本明細書の一態様による、コンピューティングデバイス(たとえば、マスタ/スレーブデバイス3114)内で実施され得る一連の動作を含む。たとえば、プロセス3200は、プロセッサを採用して、コンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を実行して、一連の動作を実施することによって実施され得る。別の実施形態では、少なくとも1つのコンピュータにプロセス3200の動作を実施させるためのコードを備えるコンピュータ可読記憶媒体が企図される。
【００８９】
図示のように、プロセス3200は、動作3210で、マスタデバイスをスレーブデバイスに結合することから開始する。ここで、そのような結合は、制御データバスを介してマスタデバイスとスレーブデバイスとを接続することを含み得ることを諒解されたい。次いで、プロセス3200は動作3220へ進み、そこで、制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信が、(たとえば、所望のプロトコル、所望のワードフォーマットなどを選択して)容易にされる。ここで、符号化通信は、ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、符号化通信の複数の最下位ビットを割り振ることによって、エラー検出定数を最大化することを容易にするために、複数の最下位ビットを割り振るプロトコルに従って符号化されることが企図される。符号化態様と復号態様の両方が企図されるので、プロセス3200は、動作3230で、エンコーダ動作を進めるか、デコーダ動作を進めるかを決定することをさらに含み得る。たとえば、エンコーダとして動作するとき、プロセス3200は動作3240へ進んでよく、そこで、本明細書で開示する態様に従って、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振るプロトコル(たとえば、CCIeプロトコル)に従って、ワードが符号化され、その後、符号化通信が制御データバスを介して送信される動作3242で終了し得る。さもなければ、デコーダとして動作する場合、プロセス3200は動作3250へ進んでよく、そこで、符号化通信が制御データバスを介して受信され、その後、本明細書で開示するエラー検出最適化を容易にするプロトコル(たとえば、CCIeプロトコル)に従って、符号化通信が復号される動作3252で終了し得る。
【００９０】
《例示的なエンコーダ実装形態》
再び図31を参照すると、次に例示的な実装形態について、マスタ/スレーブデバイス3114をエンコーダとして構成するコンテキスト内で説明する。そのような実装形態を容易にするために、エンコーダ/デコーダ回路3120がエンコーダ回路として構成され得ること、および、エンコーダ/デコーダ命令3106aがエンコーダ命令として構成され得ることが企図される。この目的で、図33に図示するように、エンコーダ回路3120およびエンコーダ命令3106aの各々が、複数のサブ構成要素のいずれかを介して、本明細書で開示する態様に従ってワードの符号化を容易にするように構成され得ることがさらに企図される。すなわち、図33に図示するように、エンコーダ回路3120は、プロトコルサブ回路3310と、最適化サブ回路3320と、符号化サブ回路3330とを備え得るのに対して、エンコーダ命令3106aは、プロトコル命令3312と、最適化命令3322と、符号化命令3332とを備え得る。この特定の実装形態では、ビット割振り回路3130およびビット割振り命令3106bの各々は、ビット割振り方式に従ってビットを割り振ることに向けられており、ビット割振り方式は、エラー検出定数を最大化することを容易にするために、符号化通信の複数の最下位ビットを割り振る。次いで、プロトコルサブ回路3310およびプロトコル命令3312の各々は、所望のプロトコル(たとえば、CCIeプロトコル)に関連付けられたワードのワードフォーマットを決定することに向けられるのに対して、符号化サブ回路3330および符号化命令3332の各々は、(たとえば、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化することによって)符号化通信を生成するために、前述のワードフォーマットとビット割振り方式とに従って、ワードを符号化することに向けられる。ワードが符号化されると、通信回路3140および/または通信命令3106cのいずれかが、制御データバスを介して符号化通信を送信するために使用され得る。
【００９１】
本開示のさらなる態様では、最適化サブ回路3320および/または最適化命令3322のいずれかが、所望のワードフォーマットと対応するビット割振り方式とを介して実施するための最適化を確認するように構成され得ることが企図される。特定の実装形態では、最適化サブ回路3320および/または最適化命令3322は、第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えることを容易にするように構成され得る。たとえば、エラー検出最適化がデータ最適化よりも好適であるとき、符号化サブ回路3330および/または符号化命令3332は、複数の最下位ビットが固定数の3ビット(たとえば、3桁の最下位ビット)を備えるエラー検出最適化に従って、ワードを符号化するように構成されてよく、ビット割振り回路3130および/またはビット割振り命令3106bは、最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、エラー検出最適化を容易にするように構成される。しかしながら、データ最適化がエラー検出最適化よりも好適であるとき、符号化サブ回路3330および/または符号化命令3332は、代わりに、複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化するように構成されてよく、ビット割振り回路3130および/またはビット割振り命令3106bは、最下位ビットをエラー検出のために、第2の最下位ビットをワードのデータ部分の最上位ビットのために、および第3の最下位ビットをワードのデータ部分の第2の最上位ビットのために割り振ることによって、データ最適化を容易にするように構成される。
【００９２】
次に図34を参照すると、本明細書で開示する態様による、例示的な符号化方法を示すフローチャートが提供されている。図示のように、プロセス3400は、本明細書の一態様による、コンピューティングデバイス(たとえば、マスタ/スレーブデバイス3114)内で実施され得る一連の動作を含む。たとえば、プロセス3400は、プロセッサを採用して、コンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を実行して、一連の動作を実施することによって実施され得る。別の実施形態では、少なくとも1つのコンピュータにプロセス3400の動作を実施させるためのコードを備えるコンピュータ可読記憶媒体が企図される。
【００９３】
図示のように、プロセス3400は、動作3410で、符号化プロトコル(たとえば、CCIeプロトコル)の選択から開始する。次いで、プロセス3400は動作3420へ進み、そこで、マスタ/スレーブデバイスは、選択されたプロトコルを介して実施するための所望の最適化を確認し、次いで動作3430で、所望の最適化のための適切なワードフォーマットが決定され、その後、動作3440で、所望の最適化に従ってビットが割り振られる。たとえば、最大シンボルエラー検出が所望される場合、動作3430は、20ビットのCCIeワードフォーマットを利用することを含んでよく、動作3440は、そのようなフォーマットの3桁の最下位ビットをエラー検出定数のために割り振ることを含み得る。さもなければ、データスループット最適化が所望される場合、動作3430は再び、20ビットのCCIeワードフォーマットを利用することを含み得るが、動作3440は次に、最下位ビットのみをエラー検出定数のために割り振ることを含み得るのに対して、第2の最下位ビットがワードのデータ部分の最上位ビットのために割り振られ、第3の最下位ビットがワードのデータ部分の第2の最上位ビットのために割り振られる。
【００９４】
動作3440で、適切なビット割振りが実施されると、プロセス3400は動作3450へ進み、そこで、所望の最適化のワードフォーマットとビット割振り方式とに従って、ワードが符号化される。ここで、前述のように、そのような符号化は、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化することを含み得る。次いで、プロセス3400は動作3460で終了し、そこで、符号化通信が制御データバスを介して他のマスタ/スレーブデバイスへ送信される。
【００９５】
《例示的なデコーダ実装形態》
再び図31を参照すると、次に例示的な実装形態について、マスタ/スレーブデバイス3114をデコーダとして構成するコンテキスト内で説明する。そのような実装形態を容易にするために、エンコーダ/デコーダ回路3120がデコーダ回路として構成され得ること、および、エンコーダ/デコーダ命令3106aがデコーダ命令として構成され得ることが企図される。この目的で、図35に図示するように、デコーダ回路3120およびデコーダ命令3106aの各々が、複数のサブ構成要素のいずれかを介して、本明細書で開示する態様に従ってワードの復号を容易にするように構成され得ることがさらに企図される。すなわち、図35に図示するように、デコーダ回路3120は、プロトコルサブ回路3510と、最適化サブ回路3520と、復号サブ回路3530とを備え得るのに対して、デコーダ命令3106aは、プロトコル命令3512と、最適化命令3522と、復号命令3532とを備え得る。この特定の実装形態では、通信回路3140および/または通信命令3106cのいずれかが、制御データバスを介して符号化通信を受信するように構成され得るのに対して、デコーダ回路3120および/またはデコーダ命令3106aは、符号化通信の復号を容易にするように構成され得る。次いで、プロトコルサブ回路3510およびプロトコル命令3512の各々は、プロトコル(たとえば、CCIeプロトコル)に関連付けられた符号化通信中に含まれたワードのワードフォーマットを検出することに向けられ、最適化サブ回路3520および最適化命令3522の各々は、符号化通信の最適化と、最適化に対応するビット割振り方式とを確認するように構成される。次いで、復号サブ回路3530および復号命令3532は、適切なワードフォーマットと対応するビット割振り方式とに従って(たとえば、ビットマップを利用することによって)、符号化通信を復号するように構成され得る。
【００９６】
次に図36を参照すると、本明細書で開示する態様による、例示的な復号方法を示すフローチャートが提供されている。図示のように、プロセス3600は、本明細書の一態様による、コンピューティングデバイス(たとえば、マスタ/スレーブデバイス3114)内で実施され得る一連の動作を含む。たとえば、プロセス3600は、プロセッサを採用して、コンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を実行して、一連の動作を実施することによって実施され得る。別の実施形態では、少なくとも1つのコンピュータにプロセス3600の動作を実施させるためのコードを備えるコンピュータ可読記憶媒体が企図される。
【００９７】
図示のように、プロセス3600は、動作3610で、符号化通信が別のマスタ/スレーブデバイスから共有バスを介して受信されることから開始する。次いで、プロセス3600は動作3620へ進み、そこで、マスタ/スレーブデバイスは、符号化通信に対応するワードフォーマットと関連付けられたプロトコルとを検出する。受信された通信が特定の最適化に従って符号化され得ることが企図されるので、次いで、プロセス3600は、動作3630でそのような最適化を確認し、その後、動作3640で、最適化に対応するビットマップを取り出すことができる。たとえば、最大シンボルエラー検出に対応するワードフォーマットが検出される場合、20ビットを備えるビットマップが使用されてよく、3桁の最下位ビットがエラー検出定数のために割り振られ得る。さもなければ、データスループット最適化が検出される場合、ビット割振り方式は、最下位ビットのみをエラー検出定数のために割り振ること、ならびに、第2の最下位ビットおよび第3の最下位ビットを、それぞれワードのデータ部分の第1の最上位ビットおよび第2の最上位ビットのために割り振ることを含み得る。適切なビット割振り方式が識別されると、次いで、プロセス3600は動作3650で終了し、そこで、符号化通信が、動作3640で取り出されたビットマップに従って復号される。
【００９８】
図に示す構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、並べ替えられてもよく、ならびに/あるいは、単一の構成要素、ステップ、特徴、または機能に組み合わされてもよく、またはいくつかの構成要素、ステップ、または機能で具現化されてもよい。また、本明細書で開示する新規の特徴から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が、同様に追加され得る。図に示す装置、デバイス、および/または構成要素は、図に記載した方法、特徴、またはステップのうちの1つまたは複数を実施するように構成され得る。本明細書で説明する新規のアルゴリズムはまた、効率的にソフトウェアに実装され、および/またはハードウェアに埋め込まれ得る。
【００９９】
さらに、実施形態は、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートは動作を順次プロセスとして説明する場合があるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えることができる。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するときには、その終了は、その関数が、呼出し関数またはメイン関数に戻ることに対応する。
【０１００】
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定ストレージデバイス、光ストレージデバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することができる様々な他の媒体を含む。
【０１０１】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実施することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を介して渡すことができるか、転送することができるか、または送信することができる。
【０１０２】
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実装され得る。
【０１０３】
本明細書で開示する例に関して説明する方法またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両方の組合せにおいて、処理ユニット、プログラミング命令、または他の指示の形態で具現化されてよく、かつ、単一のデバイスに含まれてよく、または複数のデバイスにわたって分散されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在することができる。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体は、プロセッサと一体化され得る。
【０１０４】
本明細書で開示する実施形態に関して説明する、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能の観点から説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。
【０１０５】
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムにおいて実施され得る。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
【符号の説明】
【０１０６】
100  共有バス
110  マスタ/スレーブデバイス
120  マスタ/スレーブデバイス
122  ワード
130  マスタ/スレーブデバイス
140  マスタ/スレーブデバイス
200  マスタ/スレーブデバイス
210  エンコーダ構成要素
220  デコーダ構成要素
230  通信構成要素
302  デバイス
304  ベースバンドプロセッサ
306  イメージセンサ
308  マルチモード制御データバス、制御データバス、共有制御データバス、共有バス
312  デバイス、マスタデバイス、マルチモードマスタデバイス、マスタノード
314  デバイス、スレーブノード
316  画像データバス
318  デバイス、周辺デバイス
322、324  周辺デバイス
402  元のクロック
404  データ
406  送信シンボル
408  クロック情報
410  元のデータ
502  送信機
504  データビット
508  ビット-遷移番号変換器ブロック
510  遷移-シンボルブロック
516、522、604  順次シンボル
520  受信機
524  SCLライン
526  SDAライン
528  クロック-データ復元(CDR)ブロック
530  シンボル-遷移番号変換器ブロック
532  遷移番号-ビット変換器
602  遷移番号
606  第1のサイクル
608  第2のサイクル
610  第3のサイクル
612  第4のサイクル
702  送信機側(TX:TからSへ)
704  受信機側(RX:SからTへ)
706、1612、1714、1816、1916、2500、2600、2700、2800、2900、3000  テーブル
802  3進数
1302  一般呼出し、I2C一般呼出し
1304  「CCIeモード」バイトまたはインジケータ
1402  CCIe呼出し、終了呼出し
1404  「終了」コード/インジケータ、一般呼出し
1406  「一般呼出し」
1408  「終了」コード
1502  CCIe SIDワードフォーマット
1504  16ビットのスレーブ識別子(SID)
1602  CCIeアドレスワードフォーマット
1604  16ビットのアドレス
1606  アドレスワード
1608、1704、1808、1906  制御コード
1610、1710、1810、1908  エラー検出定数
1700  書込みデータワードフォーマット、書込みデータワード
1702  16ビットの書込みデータ部分
1800  読取り指定ワードフォーマット、読取り指定データワード
1804  16ビットの読取りデータ値部分、「読取り指定」(RS)ワード
1807  最後のアドレスワード
1812  「読取り指定」(RS)ワード
1902  読取りデータワードフォーマット、読取りデータワード
1904  16ビットの読取りデータ値部分
1907  SID
2002  シリアルデータラインSDA、SDAライン
2004  シリアルクロックラインSCL、SCLライン
2006、2106、2108、2110  START条件
2008  スレーブID
2102  SDAライン
2104  SCLライン
2402  タイミング図
2404  クロック消失
2406  余剰クロック
2408  シンボルエラー
2410  データビット
2412、2414  サイクル
2416、2418  余剰シンボル「01」
240  余剰クロックサイクル
2422  単一シンボルエラー
2502  (ビット[19:0])0000_0000_0000_0000_0000の20ビットシーケンス
2504  3進数(T11...T0)0000_0000_00003
2506  順次シンボル(S11...S0)0321_0321_0321、順次シンボル0321_0321_0321
2508、2608、2708、2808、2908、3008  3桁の最下位ビット
2510、2610、2710、2810、2910、3010  誤ったシンボル
2602  (ビット[19:0])0100_0000_1101_1111_1000の20ビットシーケンス
2604  3進数(T11...T0)1111_1111_11113
2606  順次シンボル(S11...S0)2301_2301_2301、順次シンボル2301_2301_2301
2702  (ビット[19:0])1000_0001_1011_1111_0000の20ビットシーケンス
2704  3進数(T11...T0)2222_2222_22223
2706  順次シンボル(S11...S0)3131_3131_3131、順次シンボル3131_3131_3131
2802  (ビット[19:0])0001_1000_1111_0011_1000の20ビットシーケンス
2804  3進数(T11...T0)0120_1201_20123
2806  順次シンボル(S11...S0)0132_3101_3231、順次シンボル0132_3101_3231
2902  (ビット[19:0])0100_1010_1101_1010_1000の20ビットシーケンス
2904  3進数(T11...T0)1201_2012_01203
2906  順次シンボル(S11...S0)2030_2120_3021、順次シンボル2030_2120_3021
3002  (ビット[19:0])0101_1110_1101_0000_1000の20ビットシーケンス
3004  3進数(T11...T0)2012_0120_12013
3006  順次シンボル(S11...S0)3231_0132_3101、順次シンボル3231_0132_3101
3102  バス
3104  プロセッサ
3105  メモリ
3106  コンピュータ可読媒体
3106a  エンコーダ/デコーダ命令、命令、エンコーダ命令、デコーダ命令
3106b  命令、ビット割振り命令
3106c  命令、通信命令
3108  制御データバスインターフェース
3114  マスタ/スレーブデバイス
3120  エンコーダ/デコーダ回路、回路、エンコーダ回路、デコーダ回路
3130  回路、ビット割振り回路
3140  回路、通信回路
3150  制御データバス
3160  マスタ/スレーブデバイス
3200、3400、3600  プロセス
3310、3510  プロトコルサブ回路
3312、3512  プロトコル命令
3320、3520  最適化サブ回路
3322、3522  最適化命令
3330  符号化サブ回路
3332  符号化命令
3530  復号サブ回路
3532  復号命令
【図１】
2017511044.tif 000003
【図２】
2017511044.tif 000004
【図３】
2017511044.tif 000005
【図４】
2017511044.tif 000006
【図５】
2017511044.tif 000007
【図６】
2017511044.tif 000008
【図７】
2017511044.tif 000009
【図８】
2017511044.tif 000010
【図９】
2017511044.tif 000011
【図１０】
2017511044.tif 000012
【図１１】
2017511044.tif 000013
【図１２】
2017511044.tif 000014
【図１３】
2017511044.tif 000015
【図１４】
2017511044.tif 000016
【図１５】
2017511044.tif 000017
【図１６】
2017511044.tif 000018
【図１７】
2017511044.tif 000019
【図１８】
2017511044.tif 000020
【図１９】
2017511044.tif 000021
【図２０】
2017511044.tif 000022
【図２１】
2017511044.tif 000023
【図２２】
2017511044.tif 000024
【図２３】
2017511044.tif 000025
【図２４】
2017511044.tif 000026
【図２５】
2017511044.tif 000027
【図２６】
2017511044.tif 000028
【図２７】
2017511044.tif 000029
【図２８】
2017511044.tif 000030
【図２９】
2017511044.tif 000031
【図３０】
2017511044.tif 000032
【図３１】
2017511044.tif 000033
【図３２】
2017511044.tif 000034
【図３３】
2017511044.tif 000035
【図３４】
2017511044.tif 000036
【図３５】
2017511044.tif 000037
【図３６】
2017511044.tif 000038
【手続補正書】
【提出日】平成28年9月1日(2016.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
2本以上の線を有する制御データバスに結合されたプロセッサ
を備え、
前記プロセッサが、前記制御データバスを介したマスタデバイスとスレーブデバイスとの間のワードの符号化通信を容易にするように構成され、前記ワードが、桁を備える遷移番号に変換され、各桁が、前記制御データバス上で送信される現在のシンボルの値に基づいて、前記制御データバス上で送信されるべきシンボルのシーケンス内の次のシンボルを取得するために使用され、
前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振り、
前記エラー検出定数が既知の固定値を有し、
前記シンボルのシーケンス内のシンボルのいずれかの送信中に導入されたエラーが、前記エラー検出定数の値の変化を生じる、デバイス。
【請求項２】
前記制御データバスが2ラインバスである、請求項1に記載のデバイス。
【請求項３】
前記プロトコルがカメラ制御インターフェース拡張(CCIe)プロトコルである、請求項1に記載のデバイス。
【請求項４】
前記デバイスが、
ビット割振り方式に従ってビットを割り振るように構成されたビット割振り回路であって、前記ビット割振り方式が、前記符号化通信の前記複数の最下位ビットを割り振る、ビット割振り回路と、
ワードの符号化を容易にするように構成されたエンコーダ回路であって、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するように構成されたプロトコルサブ回路と、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、ワードを符号化するように構成された符号化サブ回路と
を備えるエンコーダ回路と、
前記制御データバスを介して前記符号化通信を送信するように構成された通信回路と
をさらに備える、請求項1に記載のデバイス。
【請求項５】
前記符号化サブ回路が、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化するように構成される、請求項4に記載のデバイス。
【請求項６】
前記エンコーダ回路が、前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するように構成された最適化サブ回路をさらに備える、請求項4に記載のデバイス。
【請求項７】
前記最適化サブ回路が、第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えることを容易にするように構成される、請求項6に記載のデバイス。
【請求項８】
前記符号化サブ回路が、前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化するように構成され、前記ビット割振り回路が、最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にするように構成される、請求項6に記載のデバイス。
【請求項９】
前記符号化サブ回路が、前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化するように構成され、前記ビット割振り回路が、最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にするように構成される、請求項6に記載のデバイス。
【請求項１０】
前記制御データバスを介して前記符号化通信を受信するように構成された通信回路と、
前記符号化通信の復号を容易にするように構成されたデコーダ回路と
をさらに備える、請求項1に記載のデバイス。
【請求項１１】
前記デコーダ回路が、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを検出するように構成されたプロトコルサブ回路と、
前記符号化通信の最適化と、前記最適化に対応するビット割振り方式とを確認するように構成された最適化サブ回路と、
前記ワードフォーマットと前記ビット割振り方式とに従って、前記符号化通信を復号するように構成された復号サブ回路と
を備える、請求項10に記載のデバイス。
【請求項１２】
マスタデバイスをスレーブデバイスに結合するステップと、
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にするステップであって、前記ワードが、桁を備える遷移番号に変換され、各桁が、前記制御データバス上で送信される現在のシンボルの値に基づいて、前記制御データバス上で送信されるべきシンボルのシーケンス内の次のシンボルを取得するために使用されるステップと
を含み、
前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振り、
前記エラー検出定数が既知の固定値を有し、
前記シンボルのシーケンス内のシンボルのいずれかの送信中に導入されたエラーが、前記エラー検出定数の値の変化を生じる、方法。
【請求項１３】
前記制御データバスが2ラインバスである、請求項12に記載の方法。
【請求項１４】
前記プロトコルがカメラ制御インターフェース拡張(CCIe)プロトコルである、請求項12に記載の方法。
【請求項１５】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するステップと、
ビット割振り方式に従ってビットを割り振るステップであって、前記ビット割振り方式が、前記符号化通信の前記複数の最下位ビットを割り振るステップと、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化するステップと、
前記制御データバスを介して前記符号化通信を送信するステップと
をさらに含む、請求項12に記載の方法。
【請求項１６】
前記符号化するステップが、シンボルにトランスコーディングされた、符号化された3進数として、ワードを符号化するステップを含む、請求項15に記載の方法。
【請求項１７】
前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するステップをさらに備える、請求項15に記載の方法。
【請求項１８】
第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えるステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記符号化するステップが、前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化するステップを含み、前記割り振るステップが、最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にするステップを含む、請求項17に記載の方法。
【請求項２０】
前記符号化するステップが、前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化するステップを含み、前記割り振るステップが、最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にするステップを含む、請求項17に記載の方法。
【請求項２１】
前記制御データバスを介して前記符号化通信を受信するステップと、
前記符号化通信を復号するステップと
をさらに含む、請求項12に記載の方法。
【請求項２２】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを検出するステップと、
前記符号化通信の最適化と、前記最適化に対応するビット割振り方式とを確認するステップと、
前記ワードフォーマットと前記ビット割振り方式とに従って、前記符号化通信を復号するステップと
をさらに含む、請求項21に記載の方法。
【請求項２３】
マスタデバイスをスレーブデバイスに結合するための手段と、
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にするための手段であって、前記ワードが、桁を備える遷移番号に変換され、各桁が、前記制御データバス上で送信される現在のシンボルの値に基づいて、前記制御データバス上で送信されるべきシンボルのシーケンス内の次のシンボルを取得するために使用される手段と
を備え、
前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振り、
前記エラー検出定数が既知の固定値を有し、
前記シンボルのシーケンス内のシンボルのいずれかの送信中に導入されたエラーが、前記エラー検出定数の値の変化を生じる、デバイス。
【請求項２４】
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定するための手段と、
ビット割振り方式に従ってビットを割り振るための手段であって、前記ビット割振り方式が、前記複数の最下位ビットを割り振る手段と、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化するための手段と、
前記制御データバスを介して前記符号化通信を送信するための手段と
をさらに備える、請求項23に記載のデバイス。
【請求項２５】
前記ワードフォーマットと前記ビット割振り方式とを介して実施するための最適化を確認するための手段をさらに備える、請求項24に記載のデバイス。
【請求項２６】
第1のビット割振り方式を有するエラー検出最適化に従うワードの符号化と、第2のビット割振り方式を有するデータ最適化に従うワードの符号化との間で切り替えるための手段をさらに備える、請求項25に記載のデバイス。
【請求項２７】
1つまたは複数の命令を記憶している非一時的機械可読記憶媒体であって、前記1つまたは複数の命令が、少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
マスタデバイスをスレーブデバイスに結合すること、および
制御データバスを介した前記マスタデバイスと前記スレーブデバイスとの間のワードの符号化通信を容易にすることであって、前記ワードが、桁を備える遷移番号に変換され、各桁が、前記制御データバス上で送信される現在のシンボルの値に基づいて、前記制御データバス上で送信されるべきシンボルのシーケンス内の次のシンボルを取得するために使用されること
を行わせ、
前記符号化通信が、エラー検出定数を最大化することを容易にするために、前記符号化通信の複数の最下位ビットを割り振るプロトコルに従って符号化され、前記プロトコルが、前記ワードのデータ部分の少なくとも1つの追加のエラー検出ビットまたは少なくとも第1の最上位ビットを含めるために、前記複数の最下位ビットを割り振り、
前記エラー検出定数が既知の固定値を有し、
前記シンボルのシーケンス内のシンボルのいずれかの送信中に導入されたエラーが、前記エラー検出定数の値の変化を生じる、非一時的機械可読記憶媒体。
【請求項２８】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記プロトコルに関連付けられた前記ワードのワードフォーマットを決定すること、
ビット割振り方式に従ってビットを割り振ることであって、前記ビット割振り方式が、前記複数の最下位ビットを割り振ること、
前記符号化通信を生成するために、前記ワードフォーマットと前記ビット割振り方式とに従って、前記ワードを符号化すること、および
前記制御データバスを介して前記符号化通信を送信すること
を行わせる命令をさらに備える、請求項27に記載の非一時的機械可読記憶媒体。
【請求項２９】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記複数の最下位ビットが固定数の3ビットを備えるデータ最適化に従って、ワードを符号化すること、ならびに
最下位ビットをエラー検出のために、第2の最下位ビットを前記ワードの前記データ部分の前記第1の最上位ビットのために、および第3の最下位ビットを前記ワードの前記データ部分の第2の最上位ビットのために割り振ることによって、前記データ最適化を容易にすること
を行わせる命令をさらに備える、請求項28に記載の非一時的機械可読記憶媒体。
【請求項３０】
前記1つまたは複数の命令が、前記少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッサに、
前記複数の最下位ビットが固定数の3ビットを備えるエラー検出最適化に従って、ワードを符号化すること、ならびに
最下位ビット、第2の最下位ビット、および第3の最下位ビットの各々をエラー検出のために割り振ることによって、前記エラー検出最適化を容易にすること
を行わせる命令をさらに備える、請求項28に記載の非一時的機械可読記憶媒体。
【国際調査報告】
2017511044.tif 000039
2017511044.tif 000040
2017511044.tif 000041