(57)【要約】  デバイスが、複数の線に結合されたデータ通信インターフェースにおいてデータを符号化/復号することを容易にするシステム、方法および装置について記載する。デバイスは、フレームに割り振られるデータビットのシーケンスの値を決定し、値を、フレームに関連付けられたシンボルシーケンスにコンバートし、シンボルシーケンスを受信機に送信する。デバイスは、値に基づいて、フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい、計算すること、各シンボルに対応するそれぞれのベースN係数に従って、各シンボルについて、ベース2数多項式のベース2係数を計算すること、各シンボル向けにそれぞれ計算されたベース2係数に従って、各シンボルについて、複数の線の状態の変化を判断すること、および各シンボルについての、複数の線の状態の変化に基づいて、シンボルのシーケンスを生成することによって、コンバートを実施する。
2018513635.tif 000002
【特許請求の範囲】
【請求項１】
データ通信インターフェースにおいてデータを符号化するための装置であって、
複数の線に結合された通信インターフェース回路と、
前記通信インターフェース回路に結合された処理回路とを備え、前記処理回路は、
フレームに割り振られるデータビットのシーケンスの値を決定することと、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートすることであって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、計算すること、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断すること、および
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成することを含む、コンバートすることと、
前記シンボルシーケンスを受信機に送信することとを行うように構成される、装置。
【請求項２】
前記処理回路は、
符号化されるべき2進列のデータを受信すること、および
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振ることであって、前記データビットシーケンスは前記2進列のデータのサブセットである、割り振ることを行うようにさらに構成される、請求項1に記載の装置。
【請求項３】
前記値を前記シンボルシーケンスにコンバートするように構成された前記処理回路は、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算し、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断し、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算し、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するようにさらに構成される、請求項1に記載の装置。
【請求項４】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項3に記載の装置。
【請求項５】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の排他的NOR(XNOR)演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の排他的NOR(XNOR)演算を表す、請求項4に記載の装置。
【請求項６】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項4に記載の装置。
【請求項７】
前記シンボルシーケンスを生成するように構成された前記処理回路は、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するように構成される、請求項6に記載の装置。
【請求項８】
前記シンボルシーケンスを生成するように構成された前記処理回路は、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンし、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるようにさらに構成される、請求項7に記載の装置。
【請求項９】
複数の線に結合されたデータ通信インターフェースにおいてデータを符号化する方法であって、
フレームに割り振られるデータビットのシーケンスの値を決定するステップと、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートするステップであって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算するステップであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、ステップと、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算するステップと、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断するステップと、
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成するステップとを含む、コンバートするステップと、
前記シンボルシーケンスを受信機に送信するステップとを含む方法。
【請求項１０】
符号化されるべき2進列のデータを受信するステップと、
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振るステップであって、前記データビットシーケンスは前記2進列のデータのサブセットである、ステップとをさらに含む、請求項9に記載の方法。
【請求項１１】
前記値を前記シンボルシーケンスにコンバートする前記ステップは、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算するステップと、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断するステップと、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算するステップと、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するステップとを含む、請求項9に記載の方法。
【請求項１２】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項11に記載の方法。
【請求項１３】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の排他的NOR(XNOR)演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の排他的NOR(XNOR)演算を表す、請求項12に記載の方法。
【請求項１４】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項12に記載の方法。
【請求項１５】
前記シンボルシーケンスを生成する前記ステップは、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するステップを含む、請求項14に記載の方法。
【請求項１６】
前記シンボルシーケンスを生成する前記ステップは、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするステップと、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるステップとをさらに含む、請求項15に記載の方法。
【請求項１７】
複数の線に結合されたデータ通信インターフェースにおいてデータを符号化するための装置であって、
フレームに割り振られるデータビットのシーケンスの値を決定するための手段と、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートするための手段であって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、計算すること、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断すること、および
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成することを行うように構成される、手段と、
前記シンボルシーケンスを受信機に送信するための手段とを備える装置。
【請求項１８】
符号化されるべき2進列のデータを受信するための手段と、
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振るための手段であって、前記データビットシーケンスは前記2進列のデータのサブセットである、手段とをさらに含む、請求項17に記載の装置。
【請求項１９】
前記値を前記シンボルシーケンスにコンバートするための前記手段は、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算し、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断し、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算し、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するように構成される、請求項17に記載の装置。
【請求項２０】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項19に記載の装置。
【請求項２１】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間のXNOR演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間のXNOR演算を表す、請求項20に記載の装置。
【請求項２２】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項20に記載の装置。
【請求項２３】
前記シンボルシーケンスを生成するように構成されたコンバートするための前記手段は、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するように構成される、請求項22に記載の装置。
【請求項２４】
前記シンボルシーケンスを生成するように構成されたコンバートするための前記手段は、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンし、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるようにさらに構成される、請求項23に記載の装置。
【請求項２５】
データ通信インターフェースにおいてデータを復号するための装置であって、
複数の線に結合された通信インターフェース回路と、
前記通信インターフェース回路に結合された処理回路とを備え、前記処理回路は、
フレーム中でシンボルシーケンスを受信することであって、前記シンボルシーケンスは、前記フレームに割り振られるデータビットのシーケンスを表す、受信することと、
前記シンボルシーケンスを前記データビットシーケンスの値にコンバートすることであって、
前記シンボルシーケンスに基づいて、前記複数の線の状態の変化を評価すること、
状態の前記変化に基づいて、前記シンボルシーケンスについてのシンボル値を計算することであって、前記シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、計算すること、および
前記データビットシーケンスの前記値を決定するために、前記ベースN係数に従って、前記ベースN数多項式の結果を計算することを含む、コンバートすることと、
前記値を2進フォーマットで表すことによって、前記データビットシーケンスを復元することとを行うように構成される、装置。
【請求項２６】
前記データビットシーケンスは、復号されるべき2進列のデータのサブセットであり、前記2進列のサブセットは、複数のフレームにそれぞれ割り振られる、請求項25に記載の装置。
【請求項２７】
前記シンボルシーケンスの各シンボルは前記複数の線の現在の状態を含み、前記複数の線の状態の前記変化を評価するように構成された前記処理回路は、各シンボルについて、
第1の状態値を決定するための、第1の線の現在の状態と前記第1の線の前の状態との間の排他的NOR(XNOR)演算と、
第2の状態値を決定するための、第2の線の現在の状態と前記第2の線の前の状態との間の排他的NOR(XNOR)演算とを実施するように構成される、請求項25に記載の装置。
【請求項２８】
前記複数の線の状態の前記変化を評価するように構成された前記処理回路は、
前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が起きたとき、前記第1の状態値が0であると判断し、
前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が起きなかったとき、前記第1の状態値が1であると判断し、
前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が起きたとき、前記第2の状態値が0であると判断し、
前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が起きなかったとき、前記第2の状態値が1であると判断するようにさらに構成される、請求項27に記載の装置。
【請求項２９】
シンボルの前記第1の状態値および前記第2の状態値は、前記シンボルに対応するベース2数多項式のベース2係数のペアに対応する、請求項27に記載の装置。
【請求項３０】
前記シンボルシーケンスの前記シンボル値を計算するように構成された前記処理回路は、
各シンボルに対応するベース2係数のそれぞれのペアに従って、前記シンボルシーケンスの各シンボルの前記ベース2数多項式の結果を計算し、
各シンボルについてそれぞれ計算された前記ベース2数多項式の前記結果に従って、各シンボルについてのシンボル値を決定するように構成される、請求項29に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれている、2015年4月10日に出願した、「N-BASE NUMBERS TO PHYSICAL WIRE STATES SYMBOLS TRANSLATION METHOD」と題する米国仮出願第62/145,693号、および2016年4月6日に出願した、「N-BASE NUMBERS TO PHYSICAL WIRE STATES SYMBOLS TRANSLATION METHOD」と題する米国非仮出願第15/092,554号に対する優先権およびその利益を主張する。
【０００２】
本開示は概して、ホストプロセッサと周辺デバイスとの間のインターフェースに関し、より詳細には、インターフェースにおける線の状態変化に基づく、データの符号化/復号に関する。
【背景技術】
【０００３】
セルラーフォンなどのモバイルデバイスの製造業者は、モバイルデバイスの構成要素を、異なる製造業者を含む様々なソースから取得し得る。たとえば、モバイルコンピューティングデバイスにおけるアプリケーションプロセッサは、第1の製造業者から取得されることがあり、モバイルコンピューティングデバイスによって採用されるセンサーは、1つまたは複数の他の製造業者から取得されることがある。様々な規格ベースのインターフェースまたは独自仕様インターフェースが定義されており、一般に、特定の用途またはタイプのアプリケーションを対象とする。たとえば、セルラー電話は、たとえば、インター集積回路(I2C)規格、シリアル周辺インターフェース(SPI)規格、または改良型インター集積回路(I3C)規格と互換性があるか、またはそれらに準拠する通信インターフェースを使う場合がある。
【０００４】
現在、様々なインターフェースにおいて、エネルギー消費を削減すると同時に、データスループットを増加することが必要とされている。そのようなデータ転送プロトコルについての例示的な概念は、2進データストリームを、より高レベルの数体系におけるフレーム化された数として表すことに基づく。そのようなデータ転送プロトコルを実装するいくつかの例示的アプリケーションは、I3C、カメラ制御インターフェース拡張(CCIe)、およびセンサーグローバルバス(SGbus)を含む。
【０００５】
データ転送の根本的特徴は、シンボルを、比較的大きい数値ベース(たとえば、ベース3、7、8、10、16など)の係数として転送することを伴う。特定の関心領域は、3進数のシンボルに関する。そのような数は、2線バスインターフェースを使って実装することができ、各線が2つの状態を有する。そのようなインターフェースにおいてエネルギー消費を削減しながらデータスループットを増加するための以前の方法は、線の物理状態遷移と関連シンボルとの間の相関を評価することを伴う。小さい数値ベース(たとえば、ベース3)については、そのような以前の方法が効率的であり得る。ただし、比較的大きい数値ベース(たとえば、ベース7、8、10、16など)については、以前の方法は、値付きコード化ビットの、はるかに大きい対応テーブル、減算ブロック、および/またはシンボルを、直接使用可能な3進係数に転換する補足転換テーブルを必要とする場合がある。そのような要件は、コスト要因が重要であるデバイスに対して禁止される場合がある。したがって、3進または他の任意のより大きい数値ベース係数の直接読取りを可能にする、インターフェースにおけるデータスループットの増加が継続的に必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書で開示する実施形態は、シリアルバス上の線の状態変化に基づいてデータを符号化および/または復号するためのシステム、方法および装置を提供する。
【０００７】
本開示のある態様では、データ通信インターフェースにおいてデータを符号化する方法は、符号化されるべき2進列のデータを受信するステップと、2進列のデータのサブセットを複数のフレームにそれぞれ割り振るステップと、フレームに割り振られるデータビットのシーケンスの値を決定するステップであって、データビットのシーケンスは2進列のデータのサブセットである、ステップと、値を、フレームに関連付けられたシンボルのシーケンスにコンバートするステップと、シンボルのシーケンスを受信機に送信するステップとを含む。コンバートするステップは、値に基づいて、フレームに対するベースN数多項式のベースN係数を計算するステップであって、Nは2よりも大きい整数であり、ベースN係数は、シンボルのシーケンスのシンボルにそれぞれ対応する、ステップと、各シンボルに対応するそれぞれのベースN係数に従って、シンボルのシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算するステップと、各シンボル向けにそれぞれ計算されたベース2係数に従って、シンボルのシーケンスの各シンボルについて、複数の線の状態の変化を判断するステップと、各シンボルについての複数の線の状態の変化に基づいて、シンボルのシーケンスを生成するステップとを含む。
【０００８】
ある態様では、値をシンボルのシーケンスにコンバートするステップは、シンボルのシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算するステップと、ベース2係数の第1のペアに従って、第1のシンボルについての複数の線の状態の変化を判断するステップと、シンボルのシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算するステップと、ベース2係数の第2のペアに従って、第2のシンボルについての複数の線の状態の変化を判断するステップとを含む。
【０００９】
別の態様では、ベース2係数の第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、第1の値は、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化または状態における無変化を示し、第2の値は、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化または状態における無変化を示す。第1の値は、第1の線の現在の状態と第1の線の前の状態との間の排他的NOR(XNOR)演算を表す。第2の値は、第2の線の現在の状態と第2の線の前の状態との間の排他的NOR(XNOR)演算を表す。
【００１０】
第1の値が0であるとき、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示される。第1の値が1であるとき、第1の線の現在の状態と第1の線の前の状態との間の、状態における無変化が示される。第2の値が0であるとき、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化が示される。第2の値が1であるとき、第2の線の現在の状態と第2の線の前の状態との間の、状態における無変化が示される。
【００１１】
さらなる態様では、シンボルのシーケンスを生成するステップは、第1のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示されるとき、第1の線がLOWレベルにプルダウンされるべきであると判断するステップと、第2のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における無変化が示されるとき、第1の線をLOWレベルにプルダウンするステップと、第2のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示されるとき、第1の線をLOWレベルにプルダウンするのを控えるステップとを含む。
【００１２】
本開示の別の態様では、データ通信インターフェースにおいてデータを符号化するための装置は、複数の線に結合された通信インターフェース回路と、通信インターフェース回路に結合された処理回路とを含む。処理回路は、符号化されるべき2進列のデータを受信すること、2進列のデータのサブセットを複数のフレームにそれぞれ割り振ること、フレームに割り振られるデータビットのシーケンスの値を決定することであって、データビットのシーケンスは2進列のデータのサブセットである、決定すること、値を、フレームに関連付けられたシンボルのシーケンスにコンバートすること、およびシンボルのシーケンスを受信機に送信することを行うように構成される。処理回路は、値に基づいて、フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、ベースN係数は、シンボルのシーケンスのシンボルにそれぞれ対応する、計算すること、各シンボルに対応するそれぞれのベースN係数に従って、シンボルのシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、各シンボル向けにそれぞれ計算されたベース2係数に従って、シンボルのシーケンスの各シンボルについて、複数の線の状態の変化を判断すること、および各シンボルについての、複数の線の状態の変化に基づいて、シンボルのシーケンスを生成することによって、コンバートするように構成される。
【００１３】
本開示のさらなる態様では、複数の線に結合されたデータ通信インターフェースにおいてデータを符号化するための装置は、符号化されるべき2進列のデータを受信するための手段と、2進列のデータのサブセットを複数のフレームにそれぞれ割り振るための手段と、フレームに割り振られるデータビットのシーケンスの値を決定するための手段であって、データビットのシーケンスは2進列のデータのサブセットである、手段と、値を、フレームに関連付けられたシンボルのシーケンスにコンバートするための手段と、シンボルのシーケンスを受信機に送信するための手段とを含む。コンバートするための手段は、値に基づいて、フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、ベースN係数は、シンボルのシーケンスのシンボルにそれぞれ対応する、計算すること、各シンボルに対応するそれぞれのベースN係数に従って、シンボルのシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、各シンボル向けにそれぞれ計算されたベース2係数に従って、シンボルのシーケンスの各シンボルについて、複数の線の状態の変化を判断すること、および各シンボルについての、複数の線の状態の変化に基づいて、シンボルのシーケンスを生成することによって、コンバートするように構成される。
【００１４】
本開示のある態様では、プロセッサ可読記憶媒体は1つまたは複数の命令を有し、命令は、エンコーダの処理回路によって実行されると、処理回路に、符号化されるべき2進列のデータを受信すること、2進列のデータのサブセットを複数のフレームにそれぞれ割り振ること、フレームに割り振られるデータビットのシーケンスの値を決定することであって、データビットのシーケンスは2進列のデータのサブセットである、決定すること、値を、フレームに関連付けられたシンボルのシーケンスにコンバートすること、およびシンボルのシーケンスを受信機に送信することを行わせる。命令は、処理回路にさらに、値に基づいて、フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、ベースN係数は、シンボルのシーケンスのシンボルにそれぞれ対応する、計算すること、各シンボルに対応するそれぞれのベースN係数に従って、シンボルのシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、各シンボル向けにそれぞれ計算されたベース2係数に従って、シンボルのシーケンスの各シンボルについて、複数の線の状態の変化を判断すること、および各シンボルについての、複数の線の状態の変化に基づいて、シンボルのシーケンスを生成することによって、コンバートさせる。
【００１５】
本開示の別の態様では、複数の線に結合されたデータ通信インターフェースにおいてデータを復号する方法は、フレーム中でシンボルのシーケンスを受信するステップであって、シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表す、ステップと、シンボルのシーケンスをデータビットのシーケンスの値にコンバートするステップと、値を2進フォーマットで表すことによって、データビットのシーケンスを復元するステップとを含む。ある態様では、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであり、2進列のサブセットは複数のフレームにそれぞれ割り振られる。コンバートするステップは、シンボルのシーケンスに基づいて、複数の線の状態の変化を評価するステップと、状態の変化に基づいて、シンボルのシーケンスについてのシンボル値を計算するステップであって、シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、ステップと、データビットのシーケンスの値を決定するために、ベースN係数に従って、ベースN数多項式の結果を計算するステップとを含む。
【００１６】
ある態様では、シンボルのシーケンスの各シンボルは、複数の線の現在の状態を含む。複数の線の状態の変化を評価するステップは、各シンボルについて、第1の状態値を決定するための、第1の線の現在の状態と第1の線の前の状態との間の排他的NOR(XNOR)演算、および第2の状態値を決定するための、第2の線の現在の状態と第2の線の前の状態との間の排他的NOR(XNOR)演算を実施するステップを含む。
【００１７】
評価するステップは、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が起きたとき、第1の状態値が0であると判断するステップと、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が起こらないとき、第1の状態値が1であると判断するステップと、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が起きたとき、第2の状態値が0であると判断するステップと、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化が起きなかったとき、第2の状態値が1であると判断するステップとをさらに含み得る。
【００１８】
ある態様では、シンボルの第1の状態値および第2の状態値は、シンボルに対応するベース2数多項式のベース2係数のペアに対応する。したがって、シンボルのシーケンスのシンボル値を計算するステップは、各シンボルに対応するベース2係数のそれぞれのペアに従って、シンボルのシーケンスの各シンボルのベース2数多項式の結果を計算するステップと、各シンボルについてそれぞれ計算されたベース2数多項式の結果に従って、各シンボルについてのシンボル値を決定するステップとを含む。
【００１９】
本開示のさらなる態様では、データ通信インターフェースにおいてデータを復号するための装置は、複数の線に結合された通信インターフェース回路と、通信インターフェース回路に結合された処理回路とを含む。処理回路は、フレーム中でシンボルのシーケンスを受信することであって、シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表す、受信すること、シンボルのシーケンスをデータビットのシーケンスの値にコンバートすること、および値を2進フォーマットで表すことによってデータビットのシーケンスを復元することを行うように構成される。ある態様では、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであり、2進列のサブセットは複数のフレームにそれぞれ割り振られる。処理回路は、シンボルのシーケンスに基づいて、複数の線の状態の変化を評価すること、状態の変化に基づいて、シンボルのシーケンスについてのシンボル値を計算することであって、シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、計算すること、およびデータビットのシーケンスの値を決定するために、ベースN係数に従って、ベースN数多項式の結果を計算することによって、コンバートするように構成される。
【００２０】
本開示の別の態様では、複数の線に結合されたデータ通信インターフェースにおいてデータを復号するための装置は、フレーム中でシンボルのシーケンスを受信するための手段であって、シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表す、手段と、シンボルのシーケンスをデータビットのシーケンスの値にコンバートするための手段と、値を2進フォーマットで表すことによって、データビットのシーケンスを復元するための手段とを含む。ある態様では、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであり、2進列のサブセットは複数のフレームにそれぞれ割り振られる。コンバートするための手段は、シンボルのシーケンスに基づいて、複数の線の状態の変化を評価すること、状態の変化に基づいて、シンボルのシーケンスについてのシンボル値を計算することであって、シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、計算すること、およびデータビットのシーケンスの値を決定するために、ベースN係数に従って、ベースN数多項式の結果を計算することによって、コンバートするように構成される。
【００２１】
本開示のある態様では、プロセッサ可読記憶媒体は1つまたは複数の命令を有し、命令は、デコーダの処理回路によって実行されると、処理回路に、フレーム中でシンボルのシーケンスを受信することであって、シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表す、受信すること、シンボルのシーケンスをデータビットのシーケンスの値にコンバートすること、および値を2進フォーマットで表すことによってデータビットのシーケンスを復元することを行わせる。ある態様では、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであり、2進列のサブセットは複数のフレームにそれぞれ割り振られる。命令は、処理回路に、シンボルのシーケンスに基づいて、複数の線の状態の変化を評価すること、状態の変化に基づいて、シンボルのシーケンスについてのシンボル値を計算することであって、シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、計算すること、およびデータビットのシーケンスの値を決定するために、ベースN係数に従って、ベースN数多項式の結果を計算することによって、コンバートさせる。
【図面の簡単な説明】
【００２２】
【図１】複数の利用可能な規格のうちの1つに従って選択的に動作するICデバイス間のデータリンクを利用する装置を示す図である。
【図２】ICデバイス間のデータリンクを利用する装置のためのシステムアーキテクチャを示す図である。
【図３】本明細書で開示されるいくつかの態様による送信機および受信機のいくつかの態様を示す図である。
【図４】本明細書で開示されるいくつかの態様による、データをトランスコードするための符号化方式を示す図である。
【図５】I2Cの1バイトデータ書込み動作のタイミング図である。
【図６】I2Cデバイスと、共通I2Cバスに接続された他のデバイスとの構成を示す図である。
【図７】本明細書で開示するいくつかの態様による、シリアルバスの動作モード間、および/または、シリアルバス上で使用され得る複数のプロトコル間で遷移するための一般化された方式を示す図である。
【図８】本明細書で開示するいくつかの態様に従って構成されたエンコーダおよびデコーダの例を示すブロック図である。
【図９】本明細書で開示するいくつかの態様による符号化/復号方式から得られるテーブルを示す図である。
【図１０】本明細書で開示するいくつかの態様に従って構成されたエンコーダおよびデコーダの別の例を示すブロック図である。
【図１１】基本データ転送リンク(線)の数とフレームのスロットの数の様々な組合せに対して利用可能であるシンボルの数のテーブルを示す図である。
【図１２】本開示の1つまたは複数の態様による、データ通信インターフェースにおけるデータの符号化に関連した動作をサポートするように構成された装置を示す図である。
【図１３】本明細書で開示する1つまたは複数の態様による、シリアルバスインターフェース上でのデータ通信のための方法を示すフローチャートである。
【図１４】本開示の1つまたは複数の態様による、データ通信インターフェースにおけるデータの復号に関連した動作をサポートするように構成された装置を示す図である。
【図１５】本明細書で開示する1つまたは複数の態様による、シリアルバスインターフェース上でのデータ通信のための別の方法を示すフローチャートである。
【発明を実施するための形態】
【００２３】
次に、図面を参照しながら様々な態様について記述する。以下の説明では、説明の目的で、1つまたは複数の態様を完全に理解できるように多数の具体的な詳細を記載する。しかしながら、そのような態様がこれらの具体的な詳細なしに実践される場合があることは明らかであろう。
【００２４】
概説
本開示は、シンボルベースのデータ転送に対応する、3進または他のどのより大きい数値ベース係数の直接読取りも可能にする物理コーディングを使って、インターフェース上でのデータスループットの増加を可能にする。本開示は、3進(またはより大きい数値ベース)係数を導出するための基本ゲートを使い得る。最も複雑でないシンボルベースの、すなわちベース3(3進)数でのデータ転送のために、本開示は、コーディングおよび復号を簡単にする。より大きい数値ベース、たとえば、それぞれ、3つの線または4つの線上で実装される、ベース7(7進)またはベース15(15進)数のために、本開示は、コーディングおよび復号を簡単にし、ならびに、実装に必要とされるゲートの数を削減する。本開示は、以前使われていた異なるタイプのインターフェースとの後方互換性を保証することが必要である、実際的システム(たとえば、改良型インター集積回路(I3C))にも利益を提供する。
【００２５】
例示的な動作環境
本開示のいくつかの態様は、電話、モバイルコンピューティングデバイス、アプライアンス、自動車用電子機器、アビオニクスシステムなどの、装置の下位構成要素を含み得る電子デバイス間に配備される通信リンクに適用可能であり得る。図1は、ICデバイス間で通信リンクを利用することができる装置を描写する。一例では、装置100は、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネット、および/または別のネットワークと、RFトランシーバを通して通信するワイヤレス通信デバイスを含み得る。装置100は、処理回路102に動作可能に結合された通信トランシーバ106を含み得る。処理回路102は、特定用途向けIC(ASIC)108など、1つまたは複数のICデバイスを含み得る。ASIC108は、1つまたは複数の処理デバイス、論理回路などを含み得る。処理回路102は、処理回路102によって実行され得る命令およびデータを維持することができるメモリ112などのプロセッサ可読ストレージを含み、かつ/またはそれに結合することができる。処理回路102は、オペレーティングシステム、および、ワイヤレスデバイスのメモリデバイス112などの記憶媒体内に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)110レイヤのうちの1つまたは複数によって制御することができる。メモリデバイス112は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気消去可能プログラマブルROM(EEPROM)、フラッシュカード、または処理システム内およびコンピューティングプラットフォーム内で使用され得る任意のメモリデバイスを含み得る。処理回路102は、装置100を構成し、動作させるために使用される動作パラメータおよび他の情報を維持することができるローカルデータベース114を含むか、またはそれにアクセスし得る。ローカルデータベース114は、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装され得る。処理回路はまた、他の構成要素の中でも、アンテナ122、ディスプレイ124などの外部デバイス、ボタン128、キーパッド126などのオペレータ制御に動作可能に結合され得る。
【００２６】
図2は、通信バスに接続された装置200のいくつかの態様を示すブロック概略図であり、この場合、装置は、ワイヤレスモバイルデバイス、モバイル電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、携帯情報端末(PDA)または他のハンドヘルドデバイス、ネットブック、ノートブックコンピュータ、テレビジョン、エンターテインメントデバイス、ウェアラブルデバイスなどのうちの1つまたは複数において実施され得る。装置200は、バス230を使用して通信する複数のデバイス202、220、および222a〜222nを含み得る。図2に示すように、バス230は、シリアルクロックライン(SCL)216およびシリアルデータライン(SDA)218を含み得る。ただし、本開示の態様によれば、バス230は、信号を送信するための、2つより多いライン/線(たとえば、3つまたは4つの線)を含んでもよい。バス230は、バス230によってサポートされる強化された機能のために構成されているデバイスのために、従来のバスの能力を拡張することができる。たとえば、バス230は、たとえば、I2C、SPI、またはユニバーサル非同期受信機/送信機(UART)バスよりも高いビットレートをサポートすることができる。
【００２７】
図2に示す例では、デバイス202は、バス230上でスレーブとして動作するように構成され得る。デバイス202は、1つまたは複数の汎用センサー、高速センサー、指紋センサー、画像センサー(たとえば、カメラ)、タッチスクリーンセンサーなどを管理するセンサー制御機能204を提供するように構成または適合され得る。加えて、デバイス202は、構成レジスタまたは他のストレージ206と、制御論理212と、トランシーバ210と、ラインドライバ/受信機214aおよび214bとを含み得る。制御論理212は、状態機械、シーケンサ、信号プロセッサまたは汎用プロセッサなどの処理回路を含み得る。トランシーバ210は、受信機210aと、送信機210cと、タイミング、論理、およびストレージの回路および/またはデバイスを含む共通回路210bとを含み得る。一例では、送信機210cは、クロック生成回路208によって与えられたタイミングに基づいて、データを符号化および送信する。
【００２８】
本明細書で開示するいくつかの態様によれば、エンティティの間の情報は、それぞれのパートナーの間で確立された協定により転送される。協定は、様々なやり方、たとえば、話し言葉/書き言葉、コンピュータ言語、および/またはデータで具現化することができる。これらのシステムすべてに、何らかの意味が付加されたシンボルが存在する。データ転送のための方法は、何らかの媒体の物理状態の2進表現を伴う。この方法は、2つのシンボル、概して「0」および「1」を使う。データは、より高い数的レベル、たとえば、8進、10進、および16進などを使うことによって転送されてよい。すべての数的体系はシンボルを使い、数的ベースが高いほど、データストリームにおいて、より多くの異なるシンボルが必要であり、より少ない位置が求められる。
【００２９】
データストリームは、数の連続として表され得る。数は、順序通りに列挙される、整数乗での数値ベースの多項式である。したがって、どのデータストリームも、
【００３０】
【数１】
2018513635.tif 000003
【００３１】
として、一般的形態で書くことができ、上式で、
DATA=データ列の合計値
NB=数値ベース、たとえば、2、3、8、10、または16
S=シンボル、たとえば、0、1、…、A、B、C、…
である。
【００３２】
一例では、データを転送するために、情報の2進列が、ベース3(3進)数としてコーディングされた、等しい数的値に変換され得る。したがって、より少ない文字が、同じ情報のためにノード間で送信される必要がある。変換された3進数は多項式の和であり、ただし、因数は3の累乗であり、係数は[0,1,2]である。
【００３３】
【数２】
2018513635.tif 000004
【００３４】
上式で、Tk=3進係数、∈[0,1,2]である。
【００３５】
別の例では、同じデータが、次のように様々な数体系で符号化され得る。
【００３６】
【数３】
2018513635.tif 000005
【００３７】
2バイト(すなわち、16ビット)の例示的な数を様々な数値ベースで符号化するための例を、以下に提示する。
様々な数値ベースでコーディングされた同じデータ:
2進:1111 0000 1111 0000⇔16個のシンボルスロット、2つの異なるシンボル
3進:10010121110⇔11個のシンボルスロット、3つの異なるシンボル
10進:61680⇔5つのシンボルスロット、10個の異なるシンボル
16進:F0F0⇔4つのシンボルスロット、16個の異なるシンボル
【００３８】
図3は、本明細書で開示するいくつかの態様に従って構成された送信機300および受信機320の一例を示すブロック図である。バス動作のために、送信機300は、データ310をより大きい数値ベース(たとえば、ベース3、7、8、10、16など)の数にトランスコードし得る。図3に示すように、送信機300は、データ310を3進(ベース3)数にトランスコードしてよく、これらの3進数は、第1の信号線W1(たとえば、シリアルクロックライン(SCL))216および第2の信号線(たとえば、シリアルデータライン(SDA))218上で送信されるシンボルとして符号化される。ただし、本開示の態様によれば、送信機300は、データを、3よりも大きい数値ベースをもつどの数にトランスコードしてもよく、数は、2つより多い信号線上で送信されるシンボルとして符号化される。図示の例では、入力データ310の各データ要素(データワードとも呼ばれる)は、8、12、16、19、または20ビットなど、事前定義されたビット数を有し得る。トランスコーダ302は、入力データ310を受信し、データ要素ごとに3進数312のシーケンスを生成することができる。3進数312は2ビットで符号化することができ、各3進シーケンス312中には12個の3進数があり得る。エンコーダ304は、ラインドライバ306を通して送信される2ビットシンボル314のストリームを生成する。図示の例では、ラインドライバ306は、オープンドレイン出力トランジスタ308を含む。しかしながら、他の例では、ラインドライバ306は、プッシュプルドライバを使用してW1 216およびW2 218の信号線を駆動することができる。エンコーダによって生成された2ビットシンボル314の出力ストリームは、連続するシンボルのペアは2つの同一のシンボルを含まないことを保証することによって、連続するシンボル314間のW1 216およびW2 218の信号線のうちの少なくとも1つの状態における遷移を有する。少なくとも1つの線216および/または218における状態の遷移の可用性により、受信回路320がデータシンボル314のストリームから受信クロック338を抽出することが可能になる。
【００３９】
バスインターフェースでは、受信機320は、クロックおよびデータ復元(CDR)回路328を含むか、またはそれと協働し得る。受信機320は、W1 216および/またはW2 218信号線からCDR328に未加工の2ビットシンボル336のストリームを与えるラインインターフェース回路326を含み得る。CDR328は、未加工のシンボル336から受信クロック338を抽出し、2ビットシンボル334のストリームおよび受信クロック338を、受信機320の他の回路324および322に与える。いくつかの例では、CDR328は、複数のクロック338を生成することができる。デコーダ324は、受信クロック338を使用して、シンボル334のストリームを12個の3進数332のシーケンスに復号することができる。3進数332は、2ビットを使用して符号化され得る。次いで、トランスコーダ322は、12個の3進数332の各シーケンスを8、12、16、19、または20ビットの出力データ要素330にコンバートすることができる。ある態様では、3進数は、任意の数のスロットにおいてフレーム化され得る。たとえば、3ビット数は2つの3進スロットにおいてフレーム化されてよく、8ビット数は6つの3進スロットにおいてフレーム化されてよく、19ビット数は12個の3進スロットにおいてフレーム化されてよい。より高数値ベース数、たとえば、3つの線を使うベース7数(すなわち、7進)のために、2つの7進スロットからなるフレームは、10進の48を送達することができ、これは10進の31をカバーし、これは5ビットの出力データ(25-1)である。
【００４０】
本開示の他の態様によれば、受信機320は、3よりも大きい数値ベースをもつ数と相関する未加工シンボルのストリームをCDR328に与え得る。CDR328は次いで、そのような未加工シンボルから受信クロックを抽出し、シンボルのストリームおよび受信クロックをデコーダ324およびトランスコーダ322に与え得る。デコーダ324は、シンボルのストリームを、3よりも大きい数値ベースを有する数のシーケンスに復号するのに、受信クロックを使うことができる。トランスコーダ322は次いで、数の各シーケンスを、対応する数のビットを有する出力データ要素にコンバートし得る。
【００４１】
図4は、バス230上での送信のための埋め込みクロックをもつシンボル314のシーケンスを生成するために、エンコーダ304によって使用され得る符号化方式400を示す図である。符号化方式400はまた、バス230から受信されたシンボルから3進遷移数を抽出するために、デコーダ324によって使用され得る。符号化方式400では、バス230の2本の線により、4つの基本シンボルS:{0,1,2,3}の定義が可能になる。シンボル314、334のシーケンス内の任意の2つの連続するシンボルは様々な状態を有し、シンボルシーケンス0,0、1,1、2,2、および3,3は、連続するシンボルの無効な組合せである。したがって、各シンボル境界で3つのみの有効なシンボル遷移が利用可能であり、ここで、シンボル境界は送信クロックによって決定され、第1のシンボル(前のシンボルPs)422が終了し、第2のシンボル(現在のシンボルCs)424が開始するポイントを表す。
【００４２】
本明細書で開示するいくつかの態様によれば、3つの利用可能な遷移には、Psシンボル422ごとに遷移数(T)426が割り当てられる。T426の値は、3進数によって表され得る。一例では、遷移数426の値は、符号化方式用のシンボル順序付けサークル402を割り当てることによって決定される。シンボル順序付けサークル402は、4つの可能なシンボル用のサークル402上のロケーション404a〜404d、およびロケーション404a〜404dの間の回転の方向406を割り振る。図示の例では、回転の方向406は時計回りである。遷移数426は、有効な現在のシンボル424と直前のシンボル422との間の分離を表し得る。分離は、前のシンボル422から現在のシンボルCs424に到達するために必要なシンボル順序付けサークル402上の回転の方向406に沿ったステップの数として定義され得る。ステップの数は、単一の桁のベース3数として表され得る。シンボル間の3ステップの差分は、0base-3として表され得ることが諒解されよう。図4のテーブル420は、この手法を採用する符号化方式をまとめたものである。
【００４３】
送信機300において、前に生成されたシンボル422、および遷移数426として使用される入力3進数を知ると、テーブル420は、送信されるべき現在のシンボル424をルックアップするために使用され得る。受信機320において、テーブル420は、前に受信されたシンボル422と現在受信されたシンボル424との間の遷移を表す遷移数426を決定するためのルックアップとして使用され得る。遷移数426は、3進数として出力することができる。
【００４４】
図5は、I2Cの1バイトデータ書込み動作を示すタイミング図500である。マスタノードが、W1ライン(たとえば、SCL)216が高のままである間にW2ライン(たとえば、SDAライン)218を低に駆動することによって、START条件506を与えるとき、送信が開始される。I2Cマスタノードは、I2Cバス上のどのスレーブノードにマスタノードがアクセスすることを望むかを示すために、SDAライン218上で7ビットのスレーブID502と、続いて、動作が読取り動作であるか、または書込み動作であるかを示す、読取り/書込みビット512とを送り、それによって、読取り/書込みビット512は、書込み動作を示すために論理0にあり、読取り動作を示すために論理1にある。IDが7ビットのスレーブID502と一致するスレーブノードのみが、書込み(または他の)動作に応答することができる。I2Cスレーブノードがそれ自体のID502を検出するために、マスタノードは、SCLライン216上の8個のクロックパルスとともに、SDAライン218上に少なくとも8ビットを送信する。マスタノードは、SCLライン216が高のままである間にSDAライン218を高に駆動することによって、トランザクションを終了させるために、STOP条件516を与える。I2Cインターフェースは、START条件506後に「Bus-Busy」状態であり、STOP条件516後に「Bus-Free」状態であると見なされる。
【００４５】
バス通信は、データ送信のためにI2CバスのSCLライン216とSDAライン218の組合せを使用し得る。バスシンボルは、I2C送信用のSCLライン216上で送信されたクロック信号パルス514の各トグルに対応する時間において送信されてよい。したがって、各フレーム送信期間内に送信されたクロックトグルの数は、バス送信ごとに送信され得るシンボルの数を定義し得る。したがって、12シンボル送信は、6-SCLパルスシーケンス中に利用可能な12個のシグナリング状態において与えられ得る。
【００４６】
I2CバスのSCLライン216および/またはSDAライン218は、クロック信号がシンボル遷移内に埋め込まれたとき、データ送信に利用することができる。したがって、SDAライン218およびSCLライン216は、レガシーI2Cスレーブノードの機能に影響を与えずに、かつブリッジデバイスを使用して他のバス対応ノードからレガシーI2Cスレーブノードを隔離せずに、シンボルを送信するために使用され得る。I2Cモードでは、START条件506は、I2Cマスタによってのみ与えられ得る。別の態様では、START条件506は、12シンボルワードを送信することになるどのノードによっても与えられる。
【００４７】
図6は、共通(または共有)バス602がI2Cデバイス6041〜604k、606、ならびに他のバスデバイス612、6141〜614nおよび6161〜616mを結合する構成を示す。他のバスデバイス612、6141〜614nおよび6161〜616mは、従来のように構成されたI2Cデバイス6041〜604k、606と共存することができ、他のバスデバイス612、6141〜614nおよび6161〜616mのうちのいくつかは、要望または必要に応じて、従来のI2Cプロトコルを使用して通信することができる。
【００４８】
構成および他のバス制御メッセージを含む、共通バス602上のデータ転送は、I2Cプロトコルの変更バージョンまたはI2Cプロトコルの変形形態を使用して開始され、実施され得る。一例では、すべてのトランザクションは、そのトランザクションを開始するために従来のI2Cプロトコルを使用して開始され得る。
【００４９】
本明細書で開示するいくつかの態様によれば、共通バス602に結合されたデバイス間のデータ転送が、バス管理および/または制御コマンド間で発生するトランザクション(コンテナ)においてカプセル化されるように、共通バス602上の通信が有効にコンテナ化され得る。典型的には、現在のトランザクションに従事しているデバイスによって採用されたプロトコルを使用して通信するように構成されるデバイスは、そのトランザクションを無視するか、またはそれに気づかないことがある。
【００５０】
図7は、共有バス602のコンテナまたは動作モード間で遷移するための一般化された方式を示す流れ図700である。各コンテナ、動作モード、および/またはプロトコルは、共有バス602の対応する動作状態702、704、706、708、710に関連付けられ得る。バスの動作モードは、シグナリング方式、データスループット、送信フォーマットなどの間で区別することができる。異なる動作モードが、プロトコルに対して定義され得る。
【００５１】
動作時、共通プロトコル状態704は、すべてのバスマスタデバイスによって、および/またはバス上のすべてのデバイスによって理解される共通プロトコルを使用して、バス管理コマンドを交換するために使用される。一例では、単一プロトコルスレーブデバイスは、共通プロトコルを使用して通信することができないことがあり、したがって、バス管理コマンドを無視することがある。この後者の例では、バスマスタデバイスは、共有バス602を制御し、単一プロトコルスレーブデバイスによって理解されるプロトコルを使用して、単一プロトコルスレーブデバイスと通信し得る。
【００５２】
いくつかの例では、I2Cプロトコルが共通プロトコル状態704において使用される。他の例では、異なるプロトコルが共通プロトコル状態704において使用され得る。共有バス602は、スタートアップ状態702に初期化され得、それによって、共有バス602に結合されたデバイスが、共通プロトコルのために構成される。共通プロトコルの単一バスマスタ実装形態では、指定されたバスマスタは、共通プロトコルによって定義された手順に従って、共有バス602に結合された他のデバイスを発見および/または構成し得る。マルチマスタ実装形態では、1つまたは複数のマスタデバイスが、発見、構成、および/または調停プロセスに参加して、共通プロトコル状態704に入るときに、どのバスマスタが共有バス602を制御するかを決定し得る。バス階層の概念が採用されることがあり、その場合、1つのバスマスタデバイスが、任意の時間に共有バス602のアクティブな制御を有し、他のバスマスタデバイスが、共有バス602のグラント制御を要求し、待機する。
【００５３】
共通プロトコル状態704では、1つまたは複数のデバイスが、共有バス602の制御を求めて競合し得る。共有バス602は、共有バス602に結合されたデバイス間の通信トランザクションを可能にするために、所望のまたは調停されたプロトコル状態706、708において操作され得る。トランザクションの完了時に、共有バス602は共通プロトコル状態704に戻される。共有バス602へのアクセスを要求中であるデバイスがないとき、共有バス602はアイドル状態710に入り得る。アイドル状態では、1つまたは複数のデバイスが電源切断動作モードに入り得る。バスマスタデバイスは、いずれかのデバイスが共有バス602へのアクセスを要求中であるか否かを決定するために、共有バス602が共通プロトコル状態704に定期的に入ることを引き起こし得る。場合によっては、共有バス602は、割込みまたは他のイベントに応答して、共通プロトコル状態704に戻され得る。
【００５４】
プロトコル状態704、706、708に入ること、およびプロトコル状態704、706、708から出ることは、バス管理コマンドを使用して実施され得る。これらのコマンドは、シグナリング、メッセージング、または、共有バス602のアーキテクチャおよび設計に基づいて選択されたシグナリングおよびメッセージングの何らかの組合せを使用して実装され得る。
【００５５】
データ転送は、共通プロトコル状態704、または、共有バス602に結合されたデバイスのサブセットによって使用されるプロトコル状態706、708のうちの1つにおいて発生し得る。デバイスのサブセットによって使用されるプロトコル状態706、708は、共有バス602と互換性のある任意のプロトコルであり得る。データは、ワード、フレーム、および/またはパケット単位で転送され得、柔軟なデータ転送モードが企図される。
【００５６】
場合によっては、アドレスが、共有バス602に結合されたデバイスに動的に割り振られ得る。一例では、共通プロトコルを使用して通信するデバイスの一意の識別情報を提供するために、およびそのようなデバイスのための優先度ランク付けを割り当てるために、動的アドレス割振りが共通プロトコル状態704において実施される。場合によっては、共通プロトコル以外のプロトコルを使用して通信するデバイスの一意の識別情報を提供するために、およびそのようなデバイスのための優先度ランク付けを割り当てるために、動的アドレス割振りが、他のプロトコル状態706、708のうちの1つまたは複数において実施される。
【００５７】
場合によっては、例外処理方式が共通プロトコル状態704のために定義される。たとえば、I2C互換帯域内割込み手順は、共通プロトコルがI2CまたはI2Cの派生物であるときに提供され得る。場合によっては、「ホットプラグ」手順が実装されることがあり、その場合、そのホットプラグ手順は、帯域内割込み手順および動的アドレス割振り手順を含み、かつ/または使用する。
【００５８】
線の状態変化に基づくデータの符号化/復号の例示的な説明
ある態様では、符号化方式は、ワードを作成するために、12個のシンボルの連続を6つのペアとして使い得る。各ワードは、16ビットのデータおよび2ビットのパリティから形成される18ビットを含む。シンボルのペアは、最上位シンボルペアが最初に送信される。ペアの中の最上位シンボルが最初に送られる。したがって、データは、シングルデータレート(SDR)によるコード化最上位ビット(MSb)ファーストであり、したがって、最初の16個のデータビットがMSb中で送信され、その後に2つのパリティビット、すなわちP1およびP0が続く。12個のシンボルは、シンボルの各ペアを3ビットにコーディングすることによって、18ビットに転換する。シンボルコード0、1、または2は、公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}に基づいてよく、W1は第1の線であり、W2は第2の線であり、XNORは論理「排他的NOR」演算である。
【００５９】
本明細書で開示する態様によれば、2つ以上の線に対して、エンコーダなどのデバイスは、2進列のデータを受信し得る。エンコーダは次いで、2進列をフレームにスプリットしてよく、フレームのサイズは、フレームのシンボル用に選ばれたベースN数表示の最も大きい値をカバーするのに適した程度に大きくてよい。たとえば、ベース3数実装形態(すなわち、2つの物理線が利用可能)および2シンボルのスロットに対して、ベース3数の最も大きい値は2×31+2×30=2×3+2×1=6+2=8である(最も大きいベース3数の値を計算するのに使われる数は、10進(ベース10)記数法で表される)。ただし、カバーされる最大全2進数(maximum covered full binary number)は7(すなわち、3'b111)である。10進記数法でのこの数は、1×22+1×21+1×20=4+2+1=7である。
【００６０】
別の例では、ベース7数実装形態(すなわち、3つの物理線が利用可能)および2シンボルのスロットに対して、ベース7数の最も大きい値は6×71+6×70=6×7+6×1=42+6=48である(最も大きいベース7数の値を計算するのに使われる数は、10進(ベース10)記数法で表される)。ただし、カバーされる最大全2進数は31(すなわち、5'b11111)である。10進記数法でのこの数は、1×24+1×23+1×22+1×21+1×20=16+8+4+2+1=31である。
【００６１】
エンコーダは、各2進フレームの値のベースN係数を、すなわち、3進(2つの物理線)の場合はベース3、または7進(3つの物理線)の場合はベース7で、さらに計算することができる。エンコーダは次いで、計算された係数を2進値で表し、上述したXNORベースの公式を各線に適用することによって、構成線上での変化を判断する。ある態様では、「0」の値を戻すXNORベースの公式は、状態が変化したことを示し、「1」の値を戻すXNORベースの公式は状態の無変化を示す。
【００６２】
本明細書で開示する態様によれば、2つ以上の線について、デコーダなどのデバイスが、2つ以上の線上での状態の変化を評価し得る。ベースN数実装形態、およびベースN数用のあらかじめ確立された数のスロットに基づいて、デコーダは、受信された数の値を計算することができる。たとえば、ベース3数実装形態(すなわち、2つの物理線が利用可能)および2シンボルのスロットについて、デコーダによって受信される係数は、(スロットによる)2つの連続するシンボルのペアにおける、0、1または2のどの組合せであってもよい。デコーダは、結果数を、(SYMBOL_1)×31+(SYMBOL_2)×30=(SYMBOL_1)×3+(SYMBOL_2)×1となるように計算し得る。同じ方法論を使って、図11に示される、ベースN数と、あらかじめ確立された数のスロットとの他の任意の組合せについての結果数が計算され得る。デコーダは次いで、計算された数を2進フォーマットで表すことができ、これが復号データである。
【００６３】
他のシステムとの後方互換性のために、エンコーダおよびデコーダは知的補足ステップを実施してよく、エンコーダはダミーシンボルを追加することができ、または本明細書で開示する態様に従って、デコーダはダミーシンボルを無視してよい。
【００６４】
図8は、本明細書で開示するいくつかの態様に従って構成されたエンコーダ800およびデコーダ820の例を示すブロック図である。バス動作のために、エンコーダ800は、データ810をより大きい数値ベース(たとえば、ベース3、7、8、10、16など)の数にトランスコードし得る。図8に示すように、エンコーダ800は、データ810をベース3数にトランスコードしてよく、これらの3進数は、第1の信号線W1 216および第2の信号線W2 218上で送信されるシンボルとして符号化される。ただし、本開示の態様によれば、エンコーダ800は、データを、どのベースN数(Nは2よりも大きい)にトランスコードしてもよく、数は、2つより多い信号線上で送信されるシンボルとして符号化される。図示の例では、入力データ810の各データ要素(データワードとも呼ばれる)は、8、12、16、19、または20ビットなど、事前定義されたビット数を有し得る。ビット-フレームアロケータ802は、符号化されるべき2進列のデータ(入力データ)810を受信し、2進列のデータのサブセットを複数のフレームにそれぞれ割り振ることができる。たとえば、入力データが20ビットの長さを有するとき、ビット-フレームアロケータ802は、2進列の一連のサブセット812(たとえば、20ビット長入力データ810のすべての3ビット)をそれぞれのフレームに割り振ることができる。
【００６５】
フレーム値-シンボルコンバータ804は、ベース2係数として、フレームに関連付けられたビット812の一連のサブセットを使ってベース2数多項式の結果数を計算することによって、フレームのフレーム値を決定する。たとえば、フレームに関連付けられたビットの一連のサブセットが{1,0,1}である場合、結果数は1×22+0×21+1×20=4+1=5である。したがって、ビットの一連のサブセットに関連付けられたフレームについてのフレーム値{1,0,1}は5である。
【００６６】
フレーム値-シンボルコンバータ804は、フレーム値に基づいて、フレーム用のベース3数多項式のベース3(3進)係数をさらに計算し、ベース3係数はそれぞれ、フレームに関連付けられたシンボルのシーケンスのシンボルに対応する。上の例を使うと、フレーム値が5である場合、等価なベース3数多項式は5=1×31+2×30である。したがって、フレーム用のベース3係数は1および2であり、これらはそれぞれ、フレームに関連付けられたシンボルのシーケンスの第1のシンボルおよび第2のシンボルに対応する。
【００６７】
フレーム値-シンボルコンバータ804は次いで、各シンボルに対応するそれぞれのベース3係数に従って、シンボルのシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算する。上の例を使うと、フレームの第1のシンボルに対応するベース3係数が1であるとき、等価なベース2数多項式は1=0×21+1×20である。したがって、第1のシンボル用のベース2係数は0および1である。同様に、フレームの第2のシンボルに対応するベース3係数が2であるとき、等価なベース2数多項式は2=1×21+0×20である。したがって、第2のシンボル用のベース2係数は1および0である。
【００６８】
2つの線W1およびW2について、2進シンボルは、公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}に基づき得る。特に、W1(たとえば、SCL)用のXNOR演算の位置は、簡略化された、スケーラブルな後方互換性方法を提供するように、シンボルの最上位ビット位置に置かれ得る。その上、シンボル用に計算されるベース2係数は、シンボルに関連付けられた線について実施されるXNOR演算の結果に対応し得る。「0」の値を戻すXNOR演算は、線の現在の状態と前の状態との間で状態が変化したことを示す。「1」の値を戻すXNOR演算は、線の現在の状態と前の状態との間の、状態の無変化を示す。
【００６９】
上の例を使うと、第1のシンボル用のベース2係数は0および1である。したがって、第1のベース2係数0は、第1の線の現在の状態(W1)と第1の線の前の状態(previous-W1)との間のXNOR演算の結果に対応し、すなわち、(W1)XNOR(previous-W1)=0である。したがって、フレーム値-シンボルコンバータ804は、previous-W1値および第1のベース2係数の知識に基づいてW1についての値を決定することによって、公式に基づいて第1のシンボルの第1のビットを決定する。第2のベース2係数1は、第2の線の現在の状態(W2)と第2の線の前の状態(previous-W2)との間のXNOR演算の結果に対応し、すなわち、(W2)XNOR(previous-W2)=1である。したがって、フレーム値-シンボルコンバータ804は、previous-W2値および第2のベース2係数の知識に基づいてW2についての値を決定することによって、公式に基づいて第1のシンボルの第2のビットを決定する。フレーム値-シンボルコンバータ804は、第2のシンボル用に計算されたベース2係数を使う同様のやり方で、第2のシンボルの第1および第2のビットを決定することができる。
【００７０】
フレーム値-シンボルコンバータ804によって生じられた2ビットシンボルのストリーム814は、ラインドライバ806を通して送信される。図示の例では、ラインドライバ806は、オープンドレイン出力トランジスタ808を含む。しかしながら、他の例では、ラインドライバ806は、プッシュプルドライバを使用してW1 216およびW2 218の信号線を駆動することができる。
【００７１】
デコーダ820は、W1 216および/またはW2 218信号線からシンボル受信機828に未加工の2ビットシンボル836のストリームを与えるラインインターフェース回路826を含み得る。ある態様では、シンボル受信機828は、シンボルのシーケンスをフレーム中で受信する。シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表し得る。その上、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであってよく、2進列のサブセットは、複数のフレームにそれぞれ割り振られる。
【００７２】
シンボル受信機828は、未加工シンボル836から受信クロックを抽出するクロックおよびデータ復元(CDR)回路を含み得る。シンボル受信機828は、2ビットシンボルのストリーム834を状態変化評価器824に与える。状態変化評価器824は、2進シンボル用の公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}を使って、シンボル受信機828から受信されたシンボルのシーケンスに基づいて、線W1 216およびW2 218の状態の変化を評価する。
【００７３】
現在受信されたシンボルは、線の現在の状態にそれぞれ対応するビットを含む。したがって、状態変化評価器824は、シンボルの各線用にXNOR演算を実施することによって、シンボルについての状態値を計算することができる。たとえば、受信されたシンボルの第1のビットは、第1の線の現在の状態(W1)に対応する。したがって、状態変化評価器824は、第1の線の現在の状態(W1)と第1の線の前の状態(previous-W1)との間のXNOR演算、すなわち、(W1)XNOR(previous-W1)=S1を実施することによって、シンボルについての第1の状態値S1を計算することができる。受信されたシンボルの第2のビットは、第2の線の現在の状態(W2)に対応する。したがって、状態変化評価器824は、第2の線の現在の状態(W2)と第2の線の前の状態(previous-W2)との間のXNOR演算、すなわち、(W2)XNOR(previous-W2)=S2を実施することによって、シンボルについての第2の状態値S2を計算することができる。計算された状態値832(たとえば、S1およびS2)は、シンボル-データコンバータ822に与えられ得る。
【００７４】
シンボル-データコンバータ822は、状態値832に基づいて、シンボルのシーケンスについてのシンボル値を計算する。状態値は、シンボルに対応するベース2数多項式のベース2係数に対応し得る。したがって、シンボル-データコンバータ822は、シンボルに関連付けられた状態値を使ってベース2数多項式の結果数を計算することによって、シンボル値を計算することができる。たとえば、第1のシンボルについての状態値{S1,S2}が{0,1}であるとき、ベース2係数は0および1であり、結果数は0×21+1×20=0+1=1である。したがって、第1のシンボルについてのシンボル値は1である。同様に、第2のシンボルについての状態値{S1,S2}が{1,0}であるとき、ベース2係数は1および0であり、結果数は1×21+0×20=2+0=2である。したがって、第2のシンボルについてのシンボル値は2である。
【００７５】
フレーム中のシンボルのシーケンスのシンボル値は、ベースN数多項式のベースN係数に対応し、Nは2よりも大きい。上の例において、フレームの第1および第2のシンボル値はそれぞれ、ベース3(3進)数多項式のベース3係数に対応する。したがって、シンボル-データコンバータ822は、フレームに関連付けられたシンボル値を使ってベース3数多項式の結果数を計算することによって、フレーム値をさらに計算することができる。上の例を使うと、1という第1のシンボル値は第1のベース3係数に対応し、2という第2のシンボル値は第2のベース3係数に対応する。したがって、結果数は1×31+2×30=5である。したがって、第1および第2のシンボルを含むフレームについてのフレーム値は5である。シンボル-データコンバータ822は次いで、データビットのシーケンス830を復元するために、フレーム値を2進フォーマットで表す。ここで、5というフレーム値は、5=1×22+0×21+1×20として表すことができ、これは2進データビットシーケンス{1,0,1}と等価である。
【００７６】
ある態様では、3進数は、任意の数のシンボルスロットにおいてフレーム化され得る。たとえば、3ビット数は2つの3進シンボルスロットにおいてフレーム化されてよく、8ビット数は6つの3進シンボルスロットにおいてフレーム化されてよく、19ビット数は12個の3進シンボルスロットにおいてフレーム化されてよい。より高数値ベース数、たとえば、3つの線を使うベース7数(すなわち、7進)のために、2つの7進シンボルスロットからなるフレームは、10進の48を送達することができ、これは10進の31をカバーし、これは5ビットの出力データ(25-1)である。
【００７７】
図9は、XNOR演算を使用する符号化/復号方式(XNOR符号化方式)から得られるテーブル900を示す。XNOR符号化方式は、バス230上で送信されるシンボル814のシーケンスを生成するためのエンコーダ800によって使用され得る。XNOR符号化方式はまた、デコーダ820によって、バス230から受信されたシンボルからベースN数多項式のベースN係数を抽出するのに使われ得る。図9は具体的には、ベース3(3進)数実装形態を使って2つの線(たとえば、W1 216およびW2 218)に適用されるXNOR符号化方式に関する。ただし、概して、XNOR符号化方式は、さらなる数の線(たとえば、4、5、6つなどの線)に適用されてもよい。たとえば、XNOR符号化方式は、ベース7数(7進)実装形態を使う3つの線、ベース15数(15進)実装形態を使う4つの線、およびベース31数実装形態を使う5つの線に適用され得る。
【００７８】
ある態様では、所与の数値ベースに対して、送信される数が様々な長さでフレーム化され得る。フレームの長さによって、係数が乗じる、データベースの累乗が決まる。たとえば、フレーム中で2つのシンボルスロットを使う3進実装形態において、数は、多項式T1×31+T0×30によって与えられる。フレーム中で12個のシンボルスロットを使うと、数は、多項式T11×311+T10×310+…+T1×31+T0×30によって与えられる。別の例では、フレーム中で2つのシンボルスロットを使う7進実装形態において、数はS1×71+S0×70によって与えられる。フレーム中で12個のシンボルスロットを使うと、数はS11×711+S10×710+…+S1×71+S0×70によって与えられる。
【００７９】
ある例では、3つの線W1、W2およびW3について、2進シンボルは、公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2),(W3)XNOR(previous-W3)}に基づき得る。2つの線(たとえば、W1およびW2)について、2進シンボル用の公式は、上述したように、{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}になる。2つの線しかないので、W3ビットは存在しない。W1(たとえば、SCL)用のXNOR演算の位置は、後方互換性の、簡略化されたスケーラブルな方法を提供するように、シンボルの最上位ビット位置に置かれ得る。
【００８０】
図9のテーブル900について、ここでさらに論じる。シンボルのシーケンスへ/からの、テーブル900中の(たとえば、3ビット値0、1、2、3、4、5、6、および7と等価な)データビットのシーケンスの符号化/復号は、上述した公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}に基づく。テーブル900は、復号演算が8の値を戻す特殊ケースも示す。ただし、8の値は、3ビットを使う2進フォーマットで表すことができないので、8の値を戻す復号演算は、エラーを示すものと見なされる。公式を使う符号化演算を例示するために、2という3ビット値と等価なデータビットのシーケンスの符号化について説明する。
【００８１】
フレームの3つのデータビットのシーケンス{0,1,0}は、0×22+1×21+0×20=0+2+0=2として表され得る。したがって、{0,1,0}は、2というフレーム値と等価である。エンコーダは、フレーム値2を、フレーム用のベース3数多項式の第1のベース3(3進)係数および第2のベース3係数を計算するのに使うことができる。第1および第2のベース3係数は、フレームの第1および第2のシンボルにそれぞれ対応する。したがって、フレーム値が2であるとき、等価なベース3数多項式は2=0×31+2×30である。したがって、フレーム用の第1のベース3係数は、第1のシンボルに対応する0であり、フレーム用の第2のベース3係数は、第2のシンボルに対応する2である。
【００８２】
エンコーダは次いで、第1のシンボルおよび第2のシンボルの各々についてのベース2数多項式のベース2係数を、各シンボルに対応するベース3係数に従って計算することができる。ここで、第1のシンボルに対応する第1のベース3係数は0である。等価なベース2数多項式は、0=0×21+0×20によって与えられる。したがって、第1のシンボル用のベース2係数は0および0→{0,0}である。同様に、第2のシンボルに対応する第2のベース3係数は2である。等価なベース2数多項式は2=1×21+0×20によって与えられる。したがって、第2のシンボル用のベース2係数は1および0→{1,0}である。
【００８３】
2つの線W1およびW2について、2進シンボルは、公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2)}に基づく。したがって、第1のシンボルおよび第2のシンボルの各々は、W1についての第1の状態値を戻す、第1の線の現在の状態(W1)と第1の線の前の状態(prev-W1)との間のXNOR演算、およびW2についての第2の状態値を戻す、第2の線の現在の状態(W2)と第2の線の前の状態(prev-W2)との間のXNOR演算に基づいて決定され得る。第1の状態値が0のとき、W1とprev-W1との間の状態における変化(または「プルダウン」)が示される。第1の状態値が1のとき、W1とprev-W1との間の状態における無変化(または「無アクション」)が示される。第2の状態値が0のとき、W2とprev-W2との間の状態における変化(または「プルダウン」)が示される。第2の状態値が1のとき、W2とprev-W2との間の状態における無変化(または「無アクション」)が示される。
【００８４】
したがって、第1のシンボルについてのベース2係数{第1のベース2係数,第2のベース2係数}が{0,0}のとき、第1のベース2係数0は、第1の線の現在の状態(W1)と第1の線の前の状態(prev-W1)との間のXNOR演算の結果に対応し、すなわち、XNOR(W1,prev-W1)=0である。したがって、エンコーダは、prev-W1および第1のベース2係数の知識に基づいてW1についての適切な値を決定することによって、第1のシンボルの第1のビットを決定することができる。第2のベース2係数0は、第2の線の現在の状態(W2)と第2の線の前の状態(prev-W2)との間のXNOR演算の結果に対応し、すなわち、XNOR(W2,prev-W2)=0である。したがって、エンコーダは、prev-W2および第2のベース2係数の知識に基づいてW2についての適切な値を決定することによって、第1のシンボルの第2のビットを決定することができる。
【００８５】
第2のシンボルについてのベース2係数{第1のベース2係数,第2のベース2係数}が{1,0}のとき、第1のベース2係数1は、第1の線の現在の状態(W1)と第1の線の前の状態(prev-W1)との間のXNOR演算の結果に対応し、すなわち、XNOR(W1,prev-W1)=1である。したがって、エンコーダは、prev-W1および第1のベース2係数の知識に基づいてW1についての適切な値を決定することによって、第2のシンボルの第1のビットを決定することができる。第2のベース2係数0は、第2の線の現在の状態(W2)と第2の線の前の状態(prev-W2)との間のXNOR演算の結果に対応し、すなわち、XNOR(W2,prev-W2)=0である。したがって、エンコーダは、prev-W2および第2のベース2係数の知識に基づいてW2についての適切な値を決定することによって、第2のシンボルの第2のビットを決定することができる。
【００８６】
テーブル900中の、0、1、3、4、5、6、および7という3ビット値と等価なデータビットの他のシーケンスは、上述したように、2という3ビット値と等価なビットのシーケンス{0,1,0}を符号化するのに使われる同じXNOR符号化方式に従って符号化され得る。送信機300またはエンコーダ800において、XNOR符号化方式は、前に生成されたシンボルおよび入力された3進係数についての知識を与えられると、送信されるべき現在のシンボルを決定するのに使われ得る。受信機320またはデコーダ820において、XNOR符号化方式は、前に受信されたシンボルと現在受信されたシンボルとの間の遷移を表す3進係数を決定するのに使われ得る。
【００８７】
XNOR方式を使う復号演算を例示するために、5という3ビット値を復元するための、シンボルのシーケンスの復号について説明する。デコーダによって現在受信されたシンボルは、線W1およびW2の現在の状態にそれぞれ対応するビットを含む。したがって、デコーダは、シンボルの各線用にXNOR演算を実施することによって、シンボルについての状態値を計算することができる。たとえば、受信されたシンボルの第1のビットは、第1の線の現在の状態(W1)に対応する。したがって、デコーダは、第1の線の現在の状態(W1)と第1の線の前の状態(prev-W1)との間のXNOR演算を実施することによって、シンボルについての第1の状態値S1を計算することができ、すなわち、XNOR(W1,prev-W1)=S1である。受信されたシンボルの第2のビットは、第2の線の現在の状態(W2)に対応する。したがって、デコーダは、第2の線の現在の状態(W2)と第2の線の前の状態(prev-W2)との間のXNOR演算を実施することによって、シンボルについての第2の状態値S2を計算することができ、すなわち、XNOR(W2,prev-W2)=S2である。
【００８８】
第1のシンボルおよび第2のシンボルについてのデコーダシンボル値は、状態値S1およびS2に基づく。状態値は、シンボルに対応するベース2数多項式のベース2係数に対応し得る。したがって、デコーダは、シンボルに関連付けられた状態値を使ってベース2数多項式の結果数を計算することによって、シンボル値を計算することができる。たとえば、第1のシンボルについての状態値{S1,S2}が{0,1}であるとき、ベース2係数は0および1であり、結果数は0×21+1×20=0+1=1である。したがって、第1のシンボルについてのシンボル値は1である。同様に、第2のシンボルについての状態値{S1,S2}が{1,0}であるとき、ベース2係数は1および0であり、結果数は1×21+0×20=2+0=2である。したがって、第2のシンボルについてのシンボル値は2である。
【００８９】
フレーム中の第1のシンボルおよび第2のシンボルのシンボル値は、ベース3(3進)数多項式ベース3係数にそれぞれ対応する。したがって、デコーダは、フレームに関連付けられたシンボル値を使ってベース3数多項式の結果数を計算することによって、フレーム値をさらに計算することができる。ここで、1という第1のシンボル値は第1のベース3係数に対応し、2という第2のシンボル値は第2のベース3係数に対応する。したがって、結果数は1×31+2×30=5である。デコーダは次いで、データビットのシーケンス{1,0,1}を復元するために、結果数を2進フォーマット、すなわち、5=1×22+0×21+1×20で表すことができ、これは2進データビットシーケンス{1,0,1}と等価である。
【００９０】
ある態様では、XNOR符号化方式は、3進(またはより大きい数値ベース)係数を導出するための基本ゲートを使う。最も複雑でない、すなわちベース3(3進)数でのシンボルベースのデータ転送のために、本明細書で開示する態様は、転換テーブルの必要なしで、3進係数のコーディングおよび復号、ならびに3進係数を直接読み取る能力を簡単にする。より大きい数値ベース、たとえば、3つの線または4つの線上でそれぞれ実装されるベース7(7進)またはベース15(15進)数のために、本明細書で開示する態様は、コーディングおよび復号を簡単にし、ならびに実装に必要とされるゲートの数を削減する。本明細書で開示する態様は、以前使われていた異なるタイプのインターフェースとの後方互換性を保証することが必要である、実際的システム(たとえば、改良型インター集積回路(I3C))にも利益を提供する。
【００９１】
異なるタイプのインターフェースは、データ転送に関連したクロック信号を与えるための1つの物理線を使うことができる。データ転送自体は、同じインターフェースの隣接線上で起こり得る。ある態様では、クロック信号は、同じ数の総物理線を使ったままデータスループットを増加するために、データ転送用に指定された線に埋め込まれ得る。本開示の態様によれば、XNOR符号化方式は、クロック線アクティビティを、シンボルの最上位ビット位置に位置づけ得る。その上、XNORベースのコーディングにより、その線上での非アクティビティは、「1」としてコーディングされ得る。
【００９２】
後方互換高速データ転送のための例示的な方式は、第1の線W1(たとえば、SCL)を、50nsよりも速いLOWレベルにプルダウンし得る。これは、「全SCL LOW」方式と呼ばれ得る。したがって、そのような方式によれば、データスループットを低下するダミーシンボルが、データストリームに不必要に追加される場合がある。
【００９３】
データストリームにダミーシンボルを不必要に追加することを避けるために、後方互換高速データ転送の別の例示的な方式は、W1が自然に下がることを次のシンボルが必要としない場合のみ、SCLを知的にプルダウンする。これは、「SCL LOW選択」方式と呼ばれ得る。本開示の態様(たとえば、XNOR符号化方式)は、必要なダミーシンボルと、SCLをLOWレベルに自然に戻すシンボルとの間を見分けることを可能にする。これは、多入力XORゲートおよびAND/NANDゲートを使って実装され得る。
【００９４】
データ転送段階が、LOW位置にある第1の線W1(たとえば、SCL)で始まると仮定すると、SCL LOW選択の高速データ転送方式は、次のようになり得る。
1)MSb「1」を有するどのシンボルにも、ダミーシンボルが続く必要はない。
2)MSb「0」を有するとともに、MSb「0」と、残りのビット「0」のうちの少なくとも1つとを有する任意のシンボルが続くどのシンボルにも、ダミーシンボルが続く必要はない。
3)MSb「0」を有するとともに、MSb「0」と、残りのビット「1」すべてとを有する任意のシンボルが続くどのシンボルにも、ダミーシンボルが続く必要がある。
4)MSb「0」を有するとともに、MSb「1」を有する任意のシンボルが続くどのシンボルにも、ダミーシンボルが続く必要がある。
5)ダミーシンボルはSCLをLOWレベルにするので、ダミーシンボルには、いかなるシンボルも続いてよい。
【００９５】
したがって、ダミーシンボルは、2進「0」からなり、その後には、2進位置の残り(それぞれのインターフェースによって使われる物理線の残りに等しい)に対して「1」のみが続く。ある態様では、「SCL LOW選択」方式は、「全SCL LOW」方式に対して、平均データスループットにおける20%を超える増加をもたらし得る。その上、「SCL LOW選択」方式は、同じハードウェアライン上で、対応するダブルデータレート(DDR)プロトコルよりも高い平均データスループットをもたらし得る。
【００９６】
図10は、本明細書で開示するいくつかの態様に従って構成されたエンコーダ1000およびデコーダ1020の例を示すブロック図である。バス動作のために、エンコーダ1000は、データ1010をより大きい数値ベース(たとえば、ベース3、7、8、10、16など)の数にトランスコードし得る。図10に示すように、エンコーダ1000は、データ1010をベースN数(Nは2よりも大きい)にトランスコードすることができ、ベースN数は、複数の信号線上で送信される(たとえば、第1の信号線W1 216〜第Mの単一線WM1050上で送信される)シンボルとして符号化される。以下で論じるように、3つの線上でのベース7(7進)数実装形態について説明し、すなわち、WM=W3である。ただし、図10のエンコーダ/デコーダは、そのように限定されるのではなく、他の数値ベース実装形態が企図される。図示の例では、入力データ1010の各データ要素(データワードとも呼ばれる)は、8、12、16、19、または20ビットなど、事前定義されたビット数を有し得る。ビット-フレームアロケータ1002は、符号化されるべき2進列のデータ(入力データ)1010を受信し、2進列のデータのサブセットを複数のフレームにそれぞれ割り振ることができる。たとえば、ベース7(7進)数実装形態において、入力データが20ビットの長さを有するとき、ビット-フレームアロケータ1002は、2進列の5ビットからなる一連のサブセット1012をそれぞれのフレームに割り振ることができる。
【００９７】
フレーム値-シンボルコンバータ1004は、ベース2係数として、フレームに関連付けられたビット1012の一連のサブセットを使ってベース2数多項式の結果数を計算することによって、フレームのフレーム値を決定する。フレーム値-シンボルコンバータ1004は、フレーム値に基づいて、フレーム用のベース7数多項式のベース7(7進)係数をさらに計算し、ベース7係数はそれぞれ、フレームに関連付けられたシンボルのシーケンスのシンボルに対応する。フレーム値-シンボルコンバータ1004は次いで、各シンボルに対応するそれぞれのベース7係数に従って、シンボルのシーケンスの各シンボルに対するベース2数の多項式のベース2係数(たとえば、シンボルごとに3つのベース2係数)を計算する。
【００９８】
3つの線W1、W2およびW3について、2進シンボルは、公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2),(W3)XNOR(previous-W3)}に基づき得る。シンボル用に計算されるベース2係数は、シンボルに関連付けられた線について実施されるXNOR演算の結果に対応し得る。「0」の値を戻すXNOR演算は、線の現在の状態と前の状態との間で状態が変化したことを示す。「1」の値を戻すXNOR演算は、線の現在の状態と前の状態との間の、状態の無変化を示す。
【００９９】
第1のベース2係数は、第1の線の現在の状態(W1)と第1の線の前の状態(previous-W1)との間のXNOR演算の結果に対応し、すなわち、(W1)XNOR(previous-W1)=第1のベース-2係数、である。したがって、フレーム値-シンボルコンバータ1004は、previous-W1値および第1のベース2係数の知識に基づいてW1についての値を決定することによって、公式に基づいてシンボルの第1のビットを決定することができる。第2のベース2係数は、第2の線の現在の状態(W2)と第2の線の前の状態(previous-W2)との間のXNOR演算の結果に対応し、すなわち、(W2)XNOR(previous-W2)=第2のベース-2係数、である。したがって、フレーム値-シンボルコンバータ1004は、previous-W2値および第2のベース2係数の知識に基づいてW2についての値を決定することによって、公式に基づいてシンボルの第2のビットを決定することができる。第3のベース2係数は、第3の線の現在の状態(W3)と第3の線の前の状態(previous-W3)との間のXNOR演算の結果に対応し、すなわち、(W3)XNOR(previous-W3)=第3のベース-2係数、である。したがって、フレーム値-シンボルコンバータ1004は、previous-W3値および第3のベース2係数の知識に基づいてW3についての値を決定することによって、公式に基づいてシンボルの第3のビットを決定することができる。
【０１００】
フレーム値-シンボルコンバータ1004によって生じられた3ビットシンボルのストリーム1014は、ラインドライバ1006を通して送信される。図示の例では、ラインドライバ1006は、オープンドレイン出力トランジスタ1008を含む。しかしながら、他の例では、ラインドライバ1006は、プッシュプルドライバを使用してW1 216、W2 218、およびWM(たとえば、W3)1050の信号線を駆動することができる。
【０１０１】
デコーダ1020は、W1 216、W2 218および/またはWM(たとえば、W3)1050信号線からシンボル受信機1028に未加工の3ビットシンボル1036のストリームを与えるラインインターフェース回路1026を含み得る。ある態様では、シンボル受信機1028は、シンボルのシーケンスをフレーム中で受信する。シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表し得る。その上、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであってよく、2進列のサブセットは、複数のフレームにそれぞれ割り振られる。
【０１０２】
シンボル受信機1028は、未加工シンボル1036から受信クロックを抽出するクロックおよびデータ復元(CDR)回路を含み得る。シンボル受信機1028は、3ビットシンボルのストリーム1034を状態変化評価器1024に与える。状態変化評価器1024は、2進シンボル用の公式{(W1)XNOR(previous-W1),(W2)XNOR(previous-W2),(W3)XNOR(previous-W3)}を使って、シンボル受信機1028から受信されたシンボルのシーケンスに基づいて、線W1 216、W2 218、およびWM(たとえば、W3)1050の状態の変化を評価する。
【０１０３】
現在受信されたシンボルは、線の現在の状態にそれぞれ対応するビットを含む。したがって、状態変化評価器1024は、シンボルの各線用にXNOR演算を実施することによって、シンボルについての状態値を計算することができる。たとえば、受信されたシンボルの第1のビットは、第1の線の現在の状態(W1)に対応する。したがって、状態変化評価器1024は、第1の線の現在の状態(W1)と第1の線の前の状態(previous-W1)との間のXNOR演算、すなわち、(W1)XNOR(previous-W1)=S1を実施することによって、シンボルについての第1の状態値S1を計算することができる。受信されたシンボルの第2のビットは、第2の線の現在の状態(W2)に対応する。したがって、状態変化評価器1024は、第2の線の現在の状態(W2)と第2の線の前の状態(previous-W2)との間のXNOR演算、すなわち、(W2)XNOR(previous-W2)=S2を実施することによって、シンボルについての第2の状態値S2を計算することができる。受信されたシンボルの第3のビットは、第3の線の現在の状態(W3)に対応する。したがって、状態変化評価器1024は、第3の線の現在の状態(W3)と第3の線の前の状態(previous-W3)との間のXNOR演算、すなわち、(W3)XNOR(previous-W3)=S3を実施することによって、シンボルについての第3の状態値S3を計算することができる。計算された状態値1032(たとえば、{S1,S2,S3})は、シンボル-データコンバータ1022に与えられ得る。
【０１０４】
シンボル-データコンバータ1022は、状態値1032に基づいて、シンボルのシーケンスについてのシンボル値を計算する。状態値は、シンボルに対応するベース2数多項式のベース2係数に対応し得る。したがって、シンボル-データコンバータ1022は、シンボルに関連付けられた状態値を使ってベース2数多項式の結果数を計算することによって、シンボル値を計算することができる。たとえば、第1のシンボルについての状態値{S1,S2,S3}が{0,1,1}の場合、ベース2係数は0、1、および1であり、結果数は0×22+1×21+1×20=0+2+1=3である。したがって、第1のシンボルについてのシンボル値は3である。第2のシンボルについての状態値{S1,S2,S3}が{1,0,0}の場合、ベース2係数は1、0、および0であり、結果数は1×22+0×21+0×20=2+0+0=2である。したがって、第2のシンボルについてのシンボル値は2である。
【０１０５】
フレーム中のシンボルのシーケンスのシンボル値は、ベースN数多項式のベースN係数に対応し、Nは2よりも大きい。上の例において、フレームの第1および第2のシンボル値はそれぞれ、ベース7(7進)数多項式のベース7係数に対応する。したがって、シンボル-データコンバータ1022は、フレームに関連付けられたシンボル値を使ってベース7数多項式の結果数を計算することによって、フレーム値をさらに計算することができる。上の例を使うと、3という第1のシンボル値は第1のベース7係数に対応し、2という第2のシンボル値は第2のベース7係数に対応する。したがって、結果数は3×71+2×70=21+2=23である。したがって、第1および第2のシンボルを含むフレームについてのフレーム値は23である。シンボル-データコンバータ1022は次いで、データビットのシーケンス1030を復元するために、フレーム値を2進フォーマットで表す。ここで、23というフレーム値は、23=1×24+0×23+1×22+1×21+1×20として表すことができ、これは、2進データビットシーケンス{1,0,1,1,1}と等価である。
【０１０６】
本明細書で開示する態様によれば、基本データ転送リンクは、たとえば、1つの物理線または1つのオーバージエア送信スロットなど、1つの物理トランスポートラインであり得る。1つの基本データ転送リンクは、データの2進コーディングをサポートすることができる。2進シンボルは、識別可能なように、制御されるタイムスロット中でセットされる。一態様では、データレートを増加するために、追加基本データ転送リンクが実装されてよい。そのような実装の結果、データレートが線形に増加し得る。別の態様では、データレートは、データストリーム中で追加コーディング情報を与えることによって増加され得る。たとえば、本明細書で開示するように、データストリームは、より高レベルの数体系を使ってコーディングされ得る。
【０１０７】
概して、データストリームをコーディングするための方式は、次のようになり得る。最初に、2進データストリームは、確立された長さでフレーム化される。データストリームをフレーム化することによって、2進シンボルには、定義された重みが割り当てられる。その結果、データフレームの、合計の数的値が取得される。結果として得られる、データフレームの数的値は次いで、より高レベルの数値ベース数、たとえば、3進、8進、10進、16進などにコンバートされてよい。数のデータベースは、関連する必要なシンボルが適切な数(たとえば、2、3、または4つ)の基本データ転送リンク上で実装され得るように選ばれ得る。
【０１０８】
2つの位相差分線上で実装される2つの基本データ転送リンクのケースでは、3つの異なるシンボルが利用可能であり得る。したがって、3進ベースシンボルのコーディングが、そのようなケースに適している。3つの位相差分線上で実装される3つの基本データ転送リンクのケースでは、7つの異なるシンボルが利用可能であり得る。したがって、7進ベースシンボルのコーディングが、そのようなケースに適している。
【０１０９】
図11は、基本データ転送リンク(線)の数とフレームのスロットの数の様々な組合せに対して利用可能であるシンボルの数を示すテーブル1100である。特に、テーブル1100は、M本の線およびN個のスロットを使う実装形態に対応する、利用可能なシンボルについての最大数を与え、Mは2〜12の整数であり、Nは2〜12の整数である。ある態様では、利用可能な線の数に対して、最も適切な数のシンボルスロットを選ぶための多数の基準が存在し得る。たとえば、選ばれるシンボルスロットの数は、2進数を8ビットフォーマットに表したいという要望に基づき得る。別の例では、選ばれるシンボルスロットの数はチャネル容量に基づいてよく、チャネル容量は、所与の数の2進スロットを十分にカバーする利用可能シンボルのコードの数を規定する。
【０１１０】
線の状態変化に基づいてデータを符号化するための例示的なデバイスおよび方法
図12は、本開示の1つまたは複数の態様(たとえば、以下で説明する、図13の方法に関連した態様)による、データ通信インターフェースにおけるデータの符号化に関連した動作をサポートするように構成された装置1200の図である。装置1200は、通信インターフェース(たとえば、少なくとも1つのトランシーバ)1202と、記憶媒体1204と、ユーザインターフェース1206と、メモリデバイス1208と、処理回路1210とを含む。
【０１１１】
これらの構成要素は、図12の接続回線によって概略的に表される、シグナリングバスまたは他の適切な構成要素を介して互いに結合され、かつ/または互いと電気通信するように配置され得る。シグナリングバスは、処理回路1210の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。シグナリングバスは、通信インターフェース1202、記憶媒体1204、ユーザインターフェース1206、およびメモリデバイス1208の各々が処理回路1210に結合され、および/または処理回路1210と電気通信するように、様々な回路を互いにリンクさせる。シグナリングバスはまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの様々な他の回路(図示せず)をリンクさせ得るが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。
【０１１２】
通信インターフェース1202は、装置1200のワイヤレス通信を容易にするように適合されてもよい。たとえば、通信インターフェース1202は、ネットワーク内の1つまたは複数の通信デバイスに関して双方向に情報の通信を容易にするように適合された回路要素および/またはコード(たとえば、命令)を含み得る。通信インターフェース1202は、ワイヤレス通信システム内のワイヤレス通信のための1つまたは複数のアンテナ1212に結合され得る。通信インターフェース1202は、1つまたは複数のスタンドアロン受信機および/または送信機、ならびに1つまたは複数のトランシーバを用いて構成され得る。図示の例では、通信インターフェース1202は、送信機1214および受信機1216を含む。
【０１１３】
メモリデバイス1208は、1つまたは複数のメモリデバイスを表し得る。表示の通り、メモリデバイス1208は、ネットワーク関連情報1218を、装置1200によって使用される他の情報とともに維持し得る。いくつかの実装形態では、メモリデバイス1208および記憶媒体1204は、共通のメモリ構成要素として実装される。メモリデバイス1208はまた、処理回路1210または装置1200の他の何らかの構成要素によって操作されるデータを記憶するために使用されてもよい。
【０１１４】
記憶媒体1204は、プロセッサ実行可能コードもしくは命令(たとえば、ソフトウェア、ファームウェア)などのコード、電子データ、データベース、または他のデジタル情報を記憶するための1つまたは複数のコンピュータ可読、機械可読、および/またはプロセッサ可読デバイスを表し得る。記憶媒体1204はまた、コードを実行するときに処理回路1210によって操作されるデータを記憶するために使用され得る。記憶媒体1204は、ポータブルまたは固定の記憶デバイスと、光記憶デバイスと、コードを記憶する、含むまたは搬送することが可能な様々な他の媒体とを含む、汎用または専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。
【０１１５】
限定ではなく例として、記憶媒体1204は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、および、コンピュータによってアクセスされ、かつ読み取られ得るコードを記憶するための任意の他の適切な媒体を含み得る。記憶媒体1204は、製造品(たとえば、コンピュータプログラム製品)において具現化され得る。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含み得る。上記に鑑みて、いくつかの実装形態では、記憶媒体1204は非一時的(たとえば、有形)記憶媒体であり得る。
【０１１６】
記憶媒体1204は、処理回路1210が記憶媒体1204から情報を読み取り、かつ記憶媒体1204に情報を書き込むことができるように、処理回路1210に結合され得る。すなわち、記憶媒体1204は、少なくとも1つの記憶媒体が処理回路1210と一体である例および/または少なくとも1つの記憶媒体が処理回路1210から分離されている(たとえば、装置1200内にある、装置1200の外部にある、複数のエンティティにわたって分散されている、など)例を含め、記憶媒体1204が少なくとも処理回路1210によってアクセス可能であるように、処理回路1210に結合され得る。
【０１１７】
記憶媒体1204によって記憶されているコードおよび/または命令は、処理回路1210によって実行されると、処理回路1210に、本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実施させる。たとえば、記憶媒体1204は、処理回路1210の1つまたは複数のハードウェアブロックにおける動作を調整するように、ならびにそれらのそれぞれの通信プロトコルを利用するワイヤレス通信用の通信インターフェース1202を利用するように構成された動作を含み得る。
【０１１８】
処理回路1210は、一般に、記憶媒体1204上に記憶されたそのようなコード/命令の実行を含む処理のために適合される。本明細書で使用される「コード」または「命令」という用語は、ソフトウェアと呼ばれるか、ファームウェアと呼ばれるか、ミドルウェアと呼ばれるか、マイクロコードと呼ばれるか、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかにかかわらず、限定はしないが、プログラミング、命令、命令セット、データ、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、手順、関数などを含むように広く解釈されなければならない。
【０１１９】
処理回路1210は、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路1210は、少なくとも1つの例において、適切な媒体によって与えられる所望のコードを実装するように構成された回路要素を含み得る。たとえば、処理回路1210は、1つもしくは複数のプロセッサ、1つもしくは複数のコントローラ、および/または実行可能なコードを実行するように構成された他の構造として実装され得る。処理回路1210の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せを含み得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路1210はまた、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICおよびマイクロプロセッサ、または任意の他の数の様々な構成などのコンピューティング構成要素の組合せとして実装され得る。処理回路1210のこれらの例は説明のためであり、本開示の範囲内の他の適切な構成も企図される。
【０１２０】
本開示の1つまたは複数の態様によれば、処理回路1210は、本明細書で説明する装置のいずれかまたはすべてのための特徴、プロセス、機能、動作および/またはルーチンのいずれかまたはすべてを実施するように適合され得る。処理回路1210に関して本明細書で使用する「適合される」という用語は、本明細書で説明する様々な特徴による特定のプロセス、機能、動作および/またはルーチンを実施するように構成されること、利用されること、実装されること、および/またはプログラムされることのうちの1つまたは複数が行われる処理回路1210を指し得る。
【０１２１】
装置1200の少なくとも1つの例によれば、処理回路1210は、本明細書に記載した特徴、プロセス、機能、動作および/またはルーチン(たとえば、図13に関して記載した特徴、プロセス、機能、動作および/またはルーチン)のいずれかまたはすべてを実施するように適合された、ビット受信回路/モジュール1220、データ割振り回路/モジュール1222、ビット-シンボルコンバート回路/モジュール1224、およびシンボル送信回路/モジュール1226のうちの1つまたは複数を含み得る。
【０１２２】
ビット受信回路/モジュール1220は、たとえば、符号化されるべき2進列のデータを受信することに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1204上に記憶されたビット受信命令1228)を含み得る。
【０１２３】
データ割振り回路/モジュール1222は、たとえば、2進列のデータのサブセットを複数のフレームにそれぞれ割り振ることに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1204上に記憶されたデータ割振り命令1230)を含み得る。
【０１２４】
ビット-シンボルコンバート回路/モジュール1224は、たとえば、フレームに割り振られるデータビットのシーケンスの値を決定することであって、データビットのシーケンスは2進列のデータのサブセットである、決定すること、および値を、フレームに関連付けられたシンボルのシーケンスにコンバートすることに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1204上に記憶されたビット-シンボルコンバート命令1232)を含み得る。
【０１２５】
シンボル送信回路/モジュール1226は、たとえば、シンボルのシーケンスを受信機に送信することに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1204上に記憶されたシンボル送信命令1234)を含み得る。
【０１２６】
上述のように、記憶媒体1204によって記憶されている命令は、処理回路1210によって実行されると、処理回路1210に、本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実施させる。たとえば、記憶媒体1204は、ビット受信命令1228、データ割振り命令1230、ビット-シンボルコンバート命令1232、およびシンボル送信命令1234のうちの1つまたは複数を含み得る。
【０１２７】
図13は、複数の線に結合されたシリアルバスインターフェース上でデータを符号化するための方法を示すフローチャート1300である。この方法は、デバイス(たとえば、図2のバスマスタデバイス220もしくはバススレーブ回路202、図3のデバイス300もしくはデバイス320、図8のエンコーダ800、エンコーダ1000、図12の装置1200、および/または本明細書に記載する他のデバイス)によって実施され得る。
【０１２８】
デバイスは、1302において、符号化されるべき2進列のデータを受信し得る。デバイスは次いで、1304において、2進列のデータのサブセットを複数のフレームにそれぞれ割り振り得る。デバイスは、1306において、フレームに割り振られるデータビットのシーケンスの値をさらに決定することができ、データビットのシーケンスは2進列のデータのサブセットである。
【０１２９】
その後、デバイスは、1308において、値を、フレームに関連付けられたシンボルのシーケンスにコンバートし得る。本開示のある態様では、デバイスは、最初に、値に基づいてフレームに対するベースN数多項式のベースN係数を計算することによって、コンバージョンを実施し、Nは2よりも大きい整数である。その上、計算されたベースN係数はそれぞれ、シンボルのシーケンスに対応する。次に、デバイスは、各シンボル向けにそれぞれ計算されたベース2係数に従って、シンボルのシーケンスの各シンボルについて、複数の線の状態の変化を判断する。本開示のある態様では、複数の線のうちの第1の線は、従来のシステムにおけるCLOCKキャリアなどのベース線、または他のタイプのシステムにおいて使われるCLOCKラインであり得る。第1の線上での状態変化は、結果シンボルの最上位ビットに位置決めされ得る。一例として、第1の線は、上述したSCLに対応し得る。デバイスは次いで、各シンボルについての、複数の線の状態の変化に基づいて、シンボルのシーケンスを生成し、1310において、シンボルのシーケンスを受信機にさらに送信してよい。
【０１３０】
例示的実装形態において、図13の符号化方法は、ベースN数の多項式を使って実装することができ、N=3(すなわち、2つの物理線)であり、フレームごとに2つのシンボルである(ただし、2よりも大きい、Nの他の値も企図され、たとえば、N=7(すなわち、3つの物理線)である)。したがって、N=3(すなわち、2つの物理線)のとき、デバイスは、シンボルのシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算し、ベース2係数の第1のペアに従って、第1のシンボルについての複数の線の状態の変化を判断することによって、値をシンボルのシーケンスにコンバートすることができる。デバイスはさらに、シンボルのシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算し、ベース2係数の第2のペアに従って、第2のシンボルについての状態の変化を判断することができる。
【０１３１】
本明細書で開示するいくつかの態様によれば、ベース2係数の第1のペアおよび第2のペアの各々は、第1の値および第2の値を含む。第1の値は、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化または状態における無変化を示す。第2の値は、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化または状態における無変化を示す。その上、第1の値は、第1の線の現在の状態と第1の線の前の状態との間のXNOR演算を表すことができ、第2の値は、第2の線の現在の状態と第2の線の前の状態との間のXNOR演算を表すことができる。
【０１３２】
本明細書で開示するいくつかの態様によれば、第1の値が0であるとき、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示される。第1の値が1であるとき、第1の線の現在の状態と第1の線の前の状態との間の、状態における無変化が示される。第2の値が0であるとき、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化が示される。第2の値が1であるとき、第2の線の現在の状態と第2の線の前の状態との間の、状態における無変化が示される。概して、線の物理状態における変化は、データ情報の存在を示す。本明細書に記載するXNOR符号化方式は、2つ以上の線の各線に適用することができ、「1」の値は、状態における無変化を示し、「0」の値は、状態における変化を示す。
【０１３３】
本明細書で開示するいくつかの態様によれば、デバイスは、第1のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示されるとき、第1の線がLOWレベルにプルダウンされるべきであると判断することによって、シンボルのシーケンスを生成する。その上、デバイスは、第2のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における無変化が示されるとき、第1の線をLOWレベルにプルダウンする。デバイスはさらに、第2のシンボルについて、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が示されるとき、第1の線をLOWレベルにプルダウンするのを控える。
【０１３４】
線の状態変化に基づいてデータを復号するための例示的なデバイスおよび方法
図14は、本開示の1つまたは複数の態様(たとえば、以下で説明する、図15の方法に関連した態様)による、データ通信インターフェースにおけるデータの復号に関連した動作をサポートするように構成された装置1400の図である。装置1400は、通信インターフェース(たとえば、少なくとも1つのトランシーバ)1402と、記憶媒体1404と、ユーザインターフェース1406と、メモリデバイス1408と、処理回路1410とを含む。
【０１３５】
これらの構成要素は、図14の接続回線によって概略的に表される、シグナリングバスまたは他の適切な構成要素を介して互いに結合され、かつ/または互いと電気通信するように配置され得る。シグナリングバスは、処理回路1410の特定の適用例および全体的設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。シグナリングバスは、通信インターフェース1402、記憶媒体1404、ユーザインターフェース1406、およびメモリデバイス1408の各々が、処理回路1410に結合され、および/または処理回路1410と電気通信するように、様々な回路を互いにリンクさせる。シグナリングバスはまた、タイミングソース、周辺装置、電圧調節器、および電力管理回路などの様々な他の回路(図示せず)をリンクさせる場合があるが、これらの回路は当技術分野でよく知られており、したがって、これらの回路についてはこれ以上説明しない。
【０１３６】
通信インターフェース1402は、装置1400のワイヤレス通信を容易にするように適合され得る。たとえば、通信インターフェース1402は、ネットワーク内の1つまたは複数の通信デバイスに関して双方向に情報の通信を容易にするように適合された回路要素および/またはコード(たとえば、命令)を含み得る。通信インターフェース1402は、ワイヤレス通信システム内のワイヤレス通信のための1つまたは複数のアンテナ1412に結合され得る。通信インターフェース1402は、1つまたは複数のスタンドアロン受信機および/または送信機、ならびに1つまたは複数のトランシーバを用いて構成され得る。図示の例では、通信インターフェース1402は、送信機1414および受信機1416を含む。
【０１３７】
メモリデバイス1408は、1つまたは複数のメモリデバイスを表し得る。表示の通り、メモリデバイス1408は、ネットワーク関連情報1418を、装置1400によって使用される他の情報とともに維持し得る。いくつかの実装形態では、メモリデバイス1408および記憶媒体1404は、共通のメモリ構成要素として実装される。メモリデバイス1408はまた、処理回路1410または装置1400の他の何らかの構成要素によって操作されるデータを記憶するために使用されてもよい。
【０１３８】
記憶媒体1404は、プロセッサ実行可能コードもしくは命令(たとえば、ソフトウェア、ファームウェア)などのコード、電子データ、データベース、または他のデジタル情報を記憶するための1つまたは複数のコンピュータ可読、機械可読、および/またはプロセッサ可読デバイスを表し得る。記憶媒体1404はまた、コードを実行するときに処理回路1410によって操作されるデータを記憶するために使用され得る。記憶媒体1404は、ポータブルまたは固定の記憶デバイスと、光記憶デバイスと、コードを記憶する、含むまたは搬送することが可能な様々な他の媒体とを含む、汎用または専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。
【０１３９】
限定ではなく例として、記憶媒体1404は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、および、コンピュータによってアクセスされ、かつ読み取られ得るコードを記憶するための任意の他の適切な媒体を含み得る。記憶媒体1404は、製造品(たとえば、コンピュータプログラム製品)において具現化され得る。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含み得る。上記に鑑みて、いくつかの実装形態では、記憶媒体1404は非一時的(たとえば、有形)記憶媒体であり得る。
【０１４０】
記憶媒体1404は、処理回路1410が記憶媒体1404から情報を読み取り、かつ記憶媒体1404に情報を書き込むことができるように、処理回路1410に結合され得る。すなわち、記憶媒体1404は、少なくとも1つの記憶媒体が処理回路1410と一体である例および/または少なくとも1つの記憶媒体が処理回路1410から分離されている(たとえば、装置1400内にある、装置1400の外部にある、複数のエンティティにわたって分散されている、など)例を含め、記憶媒体1404が少なくとも処理回路1410によってアクセス可能であるように、処理回路1410に結合され得る。
【０１４１】
記憶媒体1404によって記憶されているコードおよび/または命令は、処理回路1410によって実行されると、処理回路1410に、本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実施させる。たとえば、記憶媒体1404は、処理回路1410の1つまたは複数のハードウェアブロックにおける動作を調整するように、ならびにそれらのそれぞれの通信プロトコルを利用するワイヤレス通信用の通信インターフェース1402を利用するように構成された動作を含み得る。
【０１４２】
処理回路1410は、一般に、記憶媒体1404上に記憶されたそのようなコード/命令の実行を含む処理のために適合される。本明細書で使用される「コード」または「命令」という用語は、ソフトウェアと呼ばれるか、ファームウェアと呼ばれるか、ミドルウェアと呼ばれるか、マイクロコードと呼ばれるか、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかにかかわらず、限定はしないが、プログラミング、命令、命令セット、データ、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、手順、関数などを含むように広く解釈されなければならない。
【０１４３】
処理回路1410は、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路1410は、少なくとも1つの例において、適切な媒体によって与えられる所望のコードを実装するように構成された回路要素を含み得る。たとえば、処理回路1410は、1つもしくは複数のプロセッサ、1つもしくは複数のコントローラ、および/または実行可能なコードを実行するように構成された他の構造として実装され得る。処理回路1410の例には、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別のハードウェア構成要素、または本明細書で説明される機能を実施するように設計されたそれらの任意の組合せを含めてもよい。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路1410はまた、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICおよびマイクロプロセッサ、または任意の他の数の様々な構成などのコンピューティング構成要素の組合せとして実装され得る。処理回路1410のこれらの例は説明のためであり、本開示の範囲内の他の適切な構成も企図される。
【０１４４】
本開示の1つまたは複数の態様によれば、処理回路1410は、本明細書で説明する装置のいずれかまたはすべてのための特徴、プロセス、機能、動作および/またはルーチンのいずれかまたはすべてを実施するように適合され得る。処理回路1410に関して本明細書で使用する「適合される」という用語は、本明細書で説明する様々な特徴による特定のプロセス、機能、動作および/またはルーチンを実施するように構成されること、利用されること、実装されること、および/またはプログラムされることのうちの1つまたは複数が行われる処理回路1410を指し得る。
【０１４５】
装置1400の少なくとも1つの例によれば、本明細書に記載した特徴、プロセス、機能、動作および/またはルーチン(たとえば、図15に関して記載した特徴、プロセス、機能、動作および/またはルーチン)のいずれかまたはすべてを実施するように適合された処理回路1410は、シンボル受信回路/モジュール1420、シンボル-ビットコンバート回路/モジュール1422、状態変化評価回路/モジュール1424、およびデータ復元回路/モジュール1426のうちの1つまたは複数を含み得る。
【０１４６】
シンボル受信回路/モジュール1420は、たとえば、フレーム中でシンボルのシーケンスを受信することに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1404上に記憶されたシンボル受信命令1428)を含むことができ、シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表す。
【０１４７】
シンボル-ビットコンバート回路/モジュール1422は、たとえば、シンボルのシーケンスをデータビットのシーケンスの値にコンバートすることに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1404上に記憶されたシンボル-ビットコンバート命令1430)を含み得る。
【０１４８】
状態変化評価回路/モジュール1424は、たとえば、シンボルのシーケンスに基づいて複数の線の状態の変化を評価することに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1404上に記憶された状態変化評価命令1432)を含み得る。
【０１４９】
データ復元回路/モジュール1426は、たとえば、値を2進フォーマットで表すことによって、データビットのシーケンスを復元することに関するいくつかの機能を実施するように適合された回路要素および/または命令(たとえば、記憶媒体1404上に記憶されたデータ復元命令1434)を含み得る。
【０１５０】
上述のように、記憶媒体1404によって記憶されている命令は、処理回路1410によって実行されると、処理回路1410に、本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実施させる。たとえば、記憶媒体1404は、シンボル受信命令1428、シンボル-ビットコンバート命令1430、状態変化評価命令1432、およびデータ復元命令1434のうちの1つまたは複数を含み得る。
【０１５１】
図15は、複数の線に結合されたシリアルバスインターフェース上でデータ通信を符号化するための方法を示すフローチャート1500である。この方法は、デバイス(たとえば、図2のバスマスタデバイス220もしくはバススレーブ回路202、図3のデバイス300もしくはデバイス320、図8のデコーダ820、デコーダ1020、図14の装置1400、および/または本明細書に記載する他のデバイス)によって実施され得る。
【０１５２】
デバイスは、1502において、フレーム中でシンボルのシーケンスを受信し得る。シンボルのシーケンスは、フレームに割り振られるデータビットのシーケンスを表し得る。本開示のある態様では、データビットのシーケンスは、復号されるべき2進列のデータのサブセットであり、2進列のサブセットは、複数のフレームにそれぞれ割り振られる。
【０１５３】
デバイスは、1504において、シンボルのシーケンスをデータビットのシーケンスの値にコンバートし得る。本明細書で開示するいくつかの態様によれば、デバイスは、最初に、シンボルのシーケンスに基づいて複数の線の状態の変化を評価することによって、シンボルのシーケンスを値にコンバートすることができる。次に、状態の変化に基づいて、デバイスは、シンボルのシーケンスについてのシンボル値を計算する。シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応してよく、Nは、2よりも大きい整数である。その後、デバイスは、データビットのシーケンスの値を決定するために、ベースN係数に従って、ベースN数の多項式の結果を算出する。デバイスは次いで、1506において、値を2進フォーマットで表すことによって、データビットのシーケンスを復元する。
【０１５４】
シンボルのシーケンスの各シンボルは、複数の線の現在の状態を含む。例示的実装形態において、図15の復号方法は、N=3(すなわち、2つの物理線)であるベースN数の多項式を使って、およびフレームごとに2つのシンボル(ただし、2よりも大きい、Nの他の値も企図され、たとえば、N=7(すなわち、3つの物理線)である)を使って実装することができる。したがって、N=3(すなわち、2つの物理線)のとき、デバイスは、各シンボルについて、第1の状態値を決定するための、第1の線の現在の状態と第1の線の前の状態との間の排他的NOR(XNOR)演算、および第2の状態値を決定するための、第2の線の現在の状態と第2の線の前の状態との間の排他的NOR(XNOR)演算を実施することによって、複数の線の状態の変化を評価することができる。
【０１５５】
本明細書で開示するいくつかの態様によれば、デバイスは、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が起きたとき、第1の状態値が0であると判断し、デバイスは、第1の線の現在の状態と第1の線の前の状態との間の、状態における変化が起きなかったとき、第1の状態値が1であると判断し、デバイスは、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化が起きたとき、第2の状態値が0であると判断し、デバイスは、第2の線の現在の状態と第2の線の前の状態との間の、状態における変化が起きなかったとき、第2の状態値が1であると判断する。
【０１５６】
本明細書で開示するいくつかの態様によれば、シンボルの第1の状態値および第2の状態値は、シンボルに対応するベース2数多項式のベース2係数のペアに対応する。したがって、デバイスは、各シンボルに対応するベース2係数のそれぞれのペアに従って、シンボルのシーケンスの各シンボルのベース2数多項式の結果を計算すること、および各シンボルについてそれぞれ計算されたベース2数多項式の結果に従って、各シンボルについてのシンボル値を決定することによって、シンボルのシーケンスのシンボル値を計算する。
【０１５７】
開示されたプロセスにおけるステップの特定の順序または階層は、例示的な手法の例示であることを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの特定の順序または階層が並べ替えられてもよいことを理解されたい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示した特定の順序または階層に限定されることを意味するものではない。
【０１５８】
本出願で使用されるとき、「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのような、コンピュータ関連のエンティティを含むことを意図している。たとえば、構成要素は、限定はしないが、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で稼働するアプリケーションと、そのコンピューティングデバイスの両方が、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行のスレッド内に常駐させることができ、また、構成要素は、1つのコンピュータ上で局所化することができ、および/または2つ以上のコンピュータの間で分散させることができる。さらに、これらの構成要素は、様々なデータ構造をその上に記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステム内の、分散システム内の、および/または、インターネットなどのネットワークにわたる別の構成要素と対話する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号などに従うローカルプロセスおよび/またはリモートプロセスにより、信号を用いて他のシステムと通信する場合がある。
【０１５９】
さらに、「または」という用語は、排他的な「または」ではなく、むしろ包括的な「または」を意味することを意図している。すなわち、別段の規定がない限り、または文脈から明白でない限り、「XはAまたはBを利用する」という言い回しは、自然な包括的並べ替えのいずれかを意味することを意図している。すなわち、「XはAまたはBを利用する」という語句は、以下の事例、すなわち、XはAを利用する、XはBを利用する、またはXはAとBの両方を利用する、のいずれかによって成立する。さらに、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段の規定がない限り、または単数形を示すことが文脈から明白でない限り、概して「1つまたは複数」を意味するものと解釈すべきである。
【０１６０】
上記の説明は、いかなる当業者も本明細書で説明する様々な態様を実践できるようにするために与えられる。これらの態様への様々な変更が当業者には容易に明らかになり、本明細書で定義した一般原理は他の態様に適用されてもよい。したがって、特許請求の範囲は、本明細書に示す態様に限定されることは意図されず、クレーム文言と一致するすべての範囲を与えられるべきであり、単数形での要素への参照は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味することが意図される。別段に明記されていない限り、「いくつかの」という用語は1つまたは複数を指す。当業者に知られているか、または後で知られることになる、本開示全体にわたって説明した様々な態様の要素の、すべての構造的および機能的等価物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されることが意図される。さらに、本明細書に開示されるものは、そのような開示が特許請求の範囲において明示的に記載されているかどうかにかかわらず、公に供されることは意図されていない。いかなるクレーム要素も、要素が「ための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【０１６１】
100  装置
102  処理回路
106  通信トランシーバ
108  特定用途向けIC(ASIC)
110  アプリケーションプログラミングインターフェース(API)
112  メモリ、メモリデバイス
114  ローカルデータベース
122  アンテナ
124  ディスプレイ
126  キーパッド
128  ボタン
200  装置
202  デバイス、バススレーブ回路
206  構成レジスタ、ストレージ
208  クロック生成回路
210  トランシーバ
210a  受信機
210b  共通回路
210c  送信機
212  制御論理
214  ラインドライバ/受信機
216  シリアルクロックライン(SCL)、線、W1、W1ライン、SCLライン、第1の信号線W1、線W1
218  シリアルデータライン(SDA)、線、W2、W2ライン、SDAライン、第2の信号線W2、線W2
220  デバイス、バスマスタデバイス
222  デバイス
230  バス
300  送信機、デバイス
302  トランスコーダ
304  エンコーダ
306  ラインドライバ
308  オープンドレイン出力トランジスタ
320  受信機、受信回路、デバイス
322  回路、トランスコーダ
324  回路、デコーダ
326  ラインインターフェース回路
328  クロックおよびデータ復元(CDR)回路、CDR
602  共通(共有)バス
604  I2Cデバイス
606  I2Cデバイス
612  バスデバイス
614  バスデバイス
616  バスデバイス
800  エンコーダ
802  ビット-フレームアロケータ
804  フレーム値-シンボルコンバータ
806  ラインドライバ
808  オープンドレイン出力トランジスタ
820  デコーダ
822  シンボル-データコンバータ
824  状態変化評価器
826  ラインインターフェース回路
828  シンボル受信機
1000  エンコーダ
1002  ビット-フレームアロケータ
1004  フレーム値-シンボルコンバータ
1006  ラインドライバ
1008  オープンドレイン出力トランジスタ
1020  デコーダ
1022  シンボル-データコンバータ
1024  状態変化評価器
1026  ラインインターフェース回路
1028  シンボル受信機
1050  第Mの単一線WM、WM
1200  装置
1202  通信インターフェース
1204  記憶媒体
1206  ユーザインターフェース
1208  メモリデバイス
1210  処理回路
1212  アンテナ
1214  送信機
1216  受信機
1220  ビット受信回路/モジュール
1222  データ割振り回路/モジュール
1224  ビット-シンボルコンバート回路/モジュール
1226  シンボル送信回路/モジュール
1400  装置
1402  通信インターフェース
1404  記憶媒体
1406  ユーザインターフェース
1408  メモリデバイス
1410  処理回路
1412  アンテナ
1414  送信機
1416  受信機
1420  シンボル受信回路/モジュール
1422  シンボル-ビットコンバート回路/モジュール
1424  状態変化評価回路/モジュール
1426  データ復元回路/モジュール
【図１】
2018513635.tif 000006
【図２】
2018513635.tif 000007
【図３】
2018513635.tif 000008
【図４】
2018513635.tif 000009
【図５】
2018513635.tif 000010
【図６】
2018513635.tif 000011
【図７】
2018513635.tif 000012
【図８】
2018513635.tif 000013
【図９】
2018513635.tif 000014
【図１０】
2018513635.tif 000015
【図１１】
2018513635.tif 000016
【図１２】
2018513635.tif 000017
【図１３】
2018513635.tif 000018
【図１４】
2018513635.tif 000019
【図１５】
2018513635.tif 000020
【手続補正書】
【提出日】平成29年10月11日(2017.10.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ通信インターフェースにおいてデータを符号化するための装置であって、
複数の線に結合された通信インターフェース回路と、
前記通信インターフェース回路に結合された処理回路とを備え、前記処理回路は、
フレームに割り振られるデータビットのシーケンスの値を決定することと、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートすることであって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、計算すること、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断すること、
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成することを含む、コンバートすることと、
前記シンボルシーケンスを受信機に送信することとを行うように構成され、
前記値を前記シンボルシーケンスにコンバートするように構成された前記処理回路は、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算し、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断し、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算し、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するようにさらに構成される、装置。
【請求項２】
前記処理回路は、
符号化されるべき2進列のデータを受信すること、および
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振ることであって、前記データビットシーケンスは前記2進列のデータのサブセットである、割り振ることを行うようにさらに構成される、請求項1に記載の装置。
【請求項３】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項1に記載の装置。
【請求項４】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の排他的NOR(XNOR)演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の排他的NOR(XNOR)演算を表す、請求項3に記載の装置。
【請求項５】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項3に記載の装置。
【請求項６】
前記シンボルシーケンスを生成するように構成された前記処理回路は、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するように構成される、請求項5に記載の装置。
【請求項７】
前記シンボルシーケンスを生成するように構成された前記処理回路は、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンし、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるようにさらに構成される、請求項6に記載の装置。
【請求項８】
複数の線に結合されたデータ通信インターフェースにおいてデータを符号化する方法であって、
フレームに割り振られるデータビットのシーケンスの値を決定するステップと、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートするステップであって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算するステップであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、ステップと、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算するステップと、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断するステップと、
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成するステップとを含む、コンバートするステップと、
前記シンボルシーケンスを受信機に送信するステップとを含み、
前記値を前記シンボルシーケンスにコンバートする前記ステップは、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算するステップと、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断するステップと、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算するステップと、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するステップとを含む、方法。
【請求項９】
符号化されるべき2進列のデータを受信するステップと、
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振るステップであって、前記データビットシーケンスは前記2進列のデータのサブセットである、ステップとをさらに含む、請求項8に記載の方法。
【請求項１０】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項8に記載の方法。
【請求項１１】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の排他的NOR(XNOR)演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の排他的NOR(XNOR)演算を表す、請求項10に記載の方法。
【請求項１２】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項10に記載の方法。
【請求項１３】
前記シンボルシーケンスを生成する前記ステップは、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するステップを含む、請求項12に記載の方法。
【請求項１４】
前記シンボルシーケンスを生成する前記ステップは、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするステップと、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるステップとをさらに含む、請求項13に記載の方法。
【請求項１５】
複数の線に結合されたデータ通信インターフェースにおいてデータを符号化するための装置であって、
フレームに割り振られるデータビットのシーケンスの値を決定するための手段と、
前記値を、前記フレームに関連付けられたシンボルシーケンスにコンバートするための手段であって、
前記値に基づいて、前記フレームに対するベースN数多項式のベースN係数を計算することであって、Nは2よりも大きい整数であり、前記ベースN係数は、前記シンボルシーケンスのシンボルにそれぞれ対応する、計算すること、
各シンボルに対応するそれぞれのベースN係数に従って、前記シンボルシーケンスの各シンボルに対するベース2数多項式のベース2係数を計算すること、
各シンボル向けにそれぞれ計算された前記ベース2係数に従って、前記シンボルシーケンスの各シンボルについて、前記複数の線の状態の変化を判断すること、および
各シンボルに対する前記複数の線の状態の前記変化に基づいて、前記シンボルシーケンスを生成することを行うように構成される、手段と、
前記シンボルシーケンスを受信機に送信するための手段とを備え、
前記値を前記シンボルシーケンスにコンバートするための前記手段は、
前記シンボルシーケンスの第1のシンボルに対応する第1のベースN係数に従って、第1のベース2数多項式のベース2係数の第1のペアを計算し、
ベース2係数の前記第1のペアに従って、前記第1のシンボルについての前記複数の線の状態の前記変化を判断し、
前記シンボルシーケンスの第2のシンボルに対応する第2のベースN係数に従って、第2のベース2数多項式のベース2係数の第2のペアを計算し、
ベース2係数の前記第2のペアに従って、前記第2のシンボルについての前記複数の線の状態の前記変化を判断するように構成される、装置。
【請求項１６】
符号化されるべき2進列のデータを受信するための手段と、
前記2進列のデータのサブセットを複数のフレームにそれぞれ割り振るための手段であって、前記データビットシーケンスは前記2進列のデータのサブセットである、手段とをさらに含む、請求項15に記載の装置。
【請求項１７】
ベース2係数の前記第1のペアおよび第2のペアの各々は第1の値および第2の値を含み、
前記第1の値は、第1の線の現在の状態と前記第1の線の前の状態との間の、状態における変化または状態における無変化を示し、
前記第2の値は、第2の線の現在の状態と前記第2の線の前の状態との間の、状態における変化または状態における無変化を示す、請求項15に記載の装置。
【請求項１８】
前記第1の値は、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間のXNOR演算を表し、
前記第2の値は、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間のXNOR演算を表す、請求項17に記載の装置。
【請求項１９】
前記第1の値が0であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が示され、
前記第1の値が1であるとき、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示され、
前記第2の値が0であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が示され、
前記第2の値が1であるとき、前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における無変化が示される、請求項17に記載の装置。
【請求項２０】
前記シンボルシーケンスを生成するように構成されたコンバートするための前記手段は、
前記第1のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線がLOWレベルにプルダウンされるべきであると判断するように構成される、請求項19に記載の装置。
【請求項２１】
前記シンボルシーケンスを生成するように構成されたコンバートするための前記手段は、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における無変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンし、
前記第2のシンボルについて、前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における前記変化が示されるとき、前記第1の線を前記LOWレベルにプルダウンするのを控えるようにさらに構成される、請求項20に記載の装置。
【請求項２２】
データ通信インターフェースにおいてデータを復号するための装置であって、
複数の線に結合された通信インターフェース回路と、
前記通信インターフェース回路に結合された処理回路とを備え、前記処理回路は、
フレーム中でシンボルシーケンスを受信することであって、前記シンボルシーケンスは、前記フレームに割り振られるデータビットのシーケンスを表す、受信することと、
前記シンボルシーケンスを前記データビットシーケンスの値にコンバートすることであって、
前記シンボルシーケンスに基づいて、前記複数の線の状態の変化を評価すること、
状態の前記変化に基づいて、前記シンボルシーケンスについてのシンボル値を計算することであって、前記シンボル値は、ベースN数多項式のベースN係数にそれぞれ対応し、Nは2よりも大きい整数である、計算すること、および
前記データビットシーケンスの前記値を決定するために、前記ベースN係数に従って、前記ベースN数多項式の結果を計算することを含む、コンバートすることと、
前記値を2進フォーマットで表すことによって、前記データビットシーケンスを復元することとを行うように構成され、
前記シンボルシーケンスの各シンボルは前記複数の線の現在の状態を含み、前記複数の線の状態の前記変化を評価するように構成された前記処理回路は、各シンボルについて、
第1の状態値を決定するための、第1の線の現在の状態と前記第1の線の前の状態との間の排他的NOR(XNOR)演算と、
第2の状態値を決定するための、第2の線の現在の状態と前記第2の線の前の状態との間の排他的NOR(XNOR)演算とを実施するように構成される、装置。
【請求項２３】
前記データビットシーケンスは、復号されるべき2進列のデータのサブセットであり、前記2進列のサブセットは、複数のフレームにそれぞれ割り振られる、請求項22に記載の装置。
【請求項２４】
前記複数の線の状態の前記変化を評価するように構成された前記処理回路は、
前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が起きたとき、前記第1の状態値が0であると判断し、
前記第1の線の前記現在の状態と前記第1の線の前記前の状態との間の、状態における変化が起きなかったとき、前記第1の状態値が1であると判断し、
前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が起きたとき、前記第2の状態値が0であると判断し、
前記第2の線の前記現在の状態と前記第2の線の前記前の状態との間の、状態における変化が起きなかったとき、前記第2の状態値が1であると判断するようにさらに構成される、請求項22に記載の装置。
【請求項２５】
シンボルの前記第1の状態値および前記第2の状態値は、前記シンボルに対応するベース2数多項式のベース2係数のペアに対応する、請求項22に記載の装置。
【請求項２６】
前記シンボルシーケンスの前記シンボル値を計算するように構成された前記処理回路は、
各シンボルに対応するベース2係数のそれぞれのペアに従って、前記シンボルシーケンスの各シンボルの前記ベース2数多項式の結果を計算し、
各シンボルについてそれぞれ計算された前記ベース2数多項式の前記結果に従って、各シンボルについてのシンボル値を決定するように構成される、請求項25に記載の装置。
【国際調査報告】
2018513635.tif 000021
2018513635.tif 000022