JP2018509710A - 共有マルチモードバスを介したレガシーデバイスと次世代デバイスの共存のためのフェアウェルリセットおよび再開方法 - Google Patents
共有マルチモードバスを介したレガシーデバイスと次世代デバイスの共存のためのフェアウェルリセットおよび再開方法 Download PDFInfo
- Publication number
- JP2018509710A JP2018509710A JP2017546974A JP2017546974A JP2018509710A JP 2018509710 A JP2018509710 A JP 2018509710A JP 2017546974 A JP2017546974 A JP 2017546974A JP 2017546974 A JP2017546974 A JP 2017546974A JP 2018509710 A JP2018509710 A JP 2018509710A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- mode
- devices
- transmission
- communication protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
第1のデバイスのセットは、第1のバスと、第2のバスとに結合され、第1の通信プロトコルに従って第1のバスを介して通信するように構成される。第2のデバイスのセットもまた第1のバスに結合され、第1の通信プロトコルと第2の通信プロトコルとの両方に従って第1のバスを介して通信するように構成される。第1のモードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用して第1のバスを介して同時に通信してもよい。第2のモードにおいて、第2のデバイスのセットは、バスを介して第2の通信プロトコルを使用して通信し、第1のデバイスのセットは第1のバスを介した動作を中断する。有効化コマンドは、第1のデバイスのセットに第1のバスを介した作動を再開させるために、第2のバスを介して第2のデバイスのセットのうちの少なくとも1つによって送信される。
Description
関連出願の相互参照
本出願は、その内容の全体が参照により本明細書に組み込まれている、2015年3月11日に出願した、"Farewell Reset And Restart Method For Coexistence Of Legacy And Next Generation Devices Over a Shared Multi-Mode Bus"と題する米国仮出願第62/131,802号に対する優先権を主張する、2016年3月10日に出願した、"Farewell Reset and Restart Method for Coexistence of Legacy and Next Generation Devices Over a Shared Multi-Mode Bus"と題する米国出願第15/067,111号に対する優先権および利益を主張するものである。
本出願は、その内容の全体が参照により本明細書に組み込まれている、2015年3月11日に出願した、"Farewell Reset And Restart Method For Coexistence Of Legacy And Next Generation Devices Over a Shared Multi-Mode Bus"と題する米国仮出願第62/131,802号に対する優先権を主張する、2016年3月10日に出願した、"Farewell Reset and Restart Method for Coexistence of Legacy and Next Generation Devices Over a Shared Multi-Mode Bus"と題する米国出願第15/067,111号に対する優先権および利益を主張するものである。
本開示は、共有バスに結合されるとき、異なる世代のデバイスが共存することを可能にする技法に関し、より詳細には、次世代デバイスが、共有バス上でレガシーデバイスを無効化し、電力循環またはバスリセットなしに、それらのレガシーデバイスを動作に復帰することを可能にする技法に関する。
I2C規格(I2Cとも呼ばれる)は、マザーボード、組込みシステム、セルフォン、カメラ、または他の電子デバイスに低速周辺装置を取り付けるために使用されるマルチマスタシリアルシングルエンドバスのために、NXPによって定義された。I2Cバスは、クロック(SCL)ラインと、7ビットアドレス指定を用いるデータ(SDA)ラインとを含む。バスは、デバイスに関する2つの役割、すなわち、マスタおよびスレーブを有する。マスタデバイスは、クロックを生成し、スレーブデバイスとの通信を開始するノードである。スレーブデバイスは、クロックを受信し、マスタデバイスによってアドレス指定されたときに応答するノードである。I2Cバスは、任意の数のマスタデバイスが存在できることを意味するマルチマスタバスである。加えて、マスタおよびスレーブの役割は、メッセージの間で(STOPが送信された後に)変更されてもよい。I2Cは、メッセージの基本タイプを定義し、それらの各々はSTARTで開始し、STOPで終了する。
I2CレガシーデバイスがI2C適合バスを介して動作可能な状態にとどまることを可能にしながら、I2C適合バスを介してより高い帯域幅を達成するための様々なマルチプロトコル方法が提案されている。たとえば、I3C基準(MIPIアライアンスによって定義される)は、I2C基準の発展形であり、I2Cデバイスに後方互換性を提供する。しかしながら、将来、同じバスを介してさらに高い帯域幅が望ましい可能性があることが予見されている。バスを介してそのようなより高い帯域幅を達成することは、I2CデバイスおよびI3Cデバイスなど、レガシーデバイスの動作によって妨害される場合がある。
したがって、共有バスを介してより高い帯域幅を可能にするために、バスがレガシーデバイスと次世代デバイスとの両方によって共有されるシステムにおいてレガシーデバイスを選択的に無効化にすることを可能にする解決策が必要とされる。
第1の態様は、第1のバスと、第2のバスと、第1のデバイスのセットと、第2のデバイスのセットとを備えるデバイスを提供する。第1のデバイスのセットは第1のバスと第2のバスとに結合され、第1のデバイスのセットは、第1の通信プロトコルに従って第1のバスを介して通信するように構成される。第2のデバイスのセットは第1のバスに結合され、第2のデバイスのセットは、第1の通信プロトコルと第2の通信プロトコルとの両方に従って第1のバスを介して通信するように構成される。いくつかの実装形態では、第2のデバイス(たとえば、次世代マスタデバイスおよび/または次世代スレーブデバイス)のセットのうちのいくつかのデバイスは第2のバスに結合されてよい。第1のバスを介した第1の動作モードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用して第1のバスを介して同時に通信してもよい。第1のバスを介した第2の動作モードにおいて、第2のデバイスのセットは、第1のバスを介して第2の通信プロトコルを使用して互いと通信してもよく、第1のデバイスのセットは第1のバスを介した動作を中断する。第2のデバイスのセットが第1のバスを介して第2のモードで動作している間に、第1のデバイスのセットに第1のバスを介した動作を中断させるための無効化コマンドが(たとえば、場合によっては、第2のデバイスのセット内でバスマスタデバイスによって)第1のバスを介して送信されてもよい。第1のバスが第1のモードの動作に切り替わる間に、第1のデバイスのセットに第1のバスを介した動作を再開させるための有効化コマンドが(たとえば、場合によっては、第2のデバイスのセット内でバスマスタデバイスによって)第2のバスを介して送信される。第2の通信プロトコルが第1のバスを介して第2のデータスループットを提供する間に、第1の通信プロトコルは第1のバスを介して第1のデータスループットを提供してもよく、第2のデータスループットは第1のデータスループットよりも大きくてもよい。無効化コマンドは、第1のデバイスのセットの各々が第1のバスを介して受信および送信することを防止する。第2の動作モードに入る前に、または同時に、第2のデバイスのセットからの少なくとも1つのデバイスが無効化コマンドを送信する。第2の動作モード中に、第1のデバイスのセットは第1のバスを介した作動による影響を受けない。
一実装形態では、第1のバスは、第1のモードの送信のために割り振られたN本のラインと、第2のモードの送信のために割り振られたM本のラインとを有する複数のラインを含み、NおよびMは、2(2)以上の整数である。いくつかの事例では、ラインNおよびMの数は異なる整数であってもよい。他の事例では、ラインNおよびMの数は同じ整数であり、異なる数の論理送信レーン(logical transmission lanes)が第1のモードおよび第2のモードにおいて定義される。
第2の態様は、第1の通信回路と、第2の通信回路と、制御回路とを備えるレガシーデバイスを提供する。第1の通信回路は、第1のバスに結合し、第1の通信プロトコルに従って第1のバスを介して通信するように構成される。第2の通信回路は第2のバスに結合する。制御回路は、第1の通信回路と第2の通信回路とに結合される。制御回路は、(a)第1の通信プロトコルを使用して第1のバスを介して通信するように通信回路を構成するように、(b)無効化コマンドに関して第1のバスを監視するように、(c)無効化コマンドの検出時に、第1のバスを介した作動を無視するように第1の通信回路を再構成するように、(d)有効化コマンドに関して第2のバスを監視するように、かつ/または(e)有効化コマンドの検出時に、第1のバスを介した作動を再開するように第1の通信回路を再構成するように構成されてよいか、またはそのように適合されてよい。
第1のバスは、N本のラインが第1のモードの送信のために割り振られ、M本のラインが第2のモードの送信のために割り振られた、複数のラインを含んでもよく、NおよびMは、2(2)以上の整数である。いくつかの事例では、複数のラインNおよびMは異なる整数である。他の事例では、複数のラインNおよびMは同じ整数であり、異なる数の論理送信レーンが第1のモードおよび第2のモードにおいて定義される。一例では、第1のモードにおいて、CCIe適合送信をサポートするためにN=2であり、第2のモードにおいて、3の階乗(3!)のマルチワイヤマルチレベル差動送信をサポートするためにM=3である。別の例では、第1のモードにおいて、4ワイヤシングルエンドマルチワイヤ送信をサポートするためにN=4であり、第2のモードにおいて、2本のラインを使用した第1の差動ペアを介した送信と別の2本のラインを使用した第2の差動ペアを介した送信とをサポートするためにM=2x2である。さらに別の例では、第1のモードにおいて、CCIe適合送信の2つの差動ワイヤペアをサポートするためにN=2x2であり、第2のモードにおいて、4の階乗(4!)のマルチワイヤマルチレベル差動送信をサポートするためにM=4である。
N=M=3である別の実装形態では、第1のモードにおいて、3ワイヤシングルエンド送信が使用され、第2のモードにおいて、差動送信のためにラインの1つのペアが使用され、サイドバンドシグナリングのために残りのシングルラインが使用される。
第3の態様は、バスマスタデバイスとして構成され、第1の通信回路、第2の通信回路、および/または制御回路を備えてもよい次世代デバイスを提供する。第1の通信回路は、他のデバイスと共有される第1のバスに結合する。第2の通信回路は、他のデバイスと共有される第2のバスに結合する。制御回路は、第1の通信回路と第2の通信回路とに結合されてもよい。制御回路は、(a)第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように第1の通信回路を構成するように、(b)第2の通信プロトコルをサポートしない他のデバイスに第1のバスを介した作動を無視するように示すための無効化コマンドを第1のバスを介して送信するように、(c)第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作するように第1の通信回路を再構成するように、(d)第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように第1の通信回路を再構成するように、かつ/または(e)他のデバイスに第1のプロトコルを使用して第1のバスを介した作動を再開するように示すための有効化コマンドを第2のバスを介して送信するように構成されてもよい。
無効化コマンドは、他のデバイスが第1のバスを介して通信することを防止してもよい。無効化コマンドは、第1の通信回路が第2のモードに入る前に、または同時に送信されてもよい。
様々な特徴、性質、および利点は、同様の参照符号が全体を通じて対応して識別する図面と併せて考えると、以下に記載する詳細な説明から明らかになるであろう。
以下の説明では、実施形態についての完全な理解を提供するために特定の詳細が与えられている。しかしながら、これらの特定の詳細がなくても実施形態を実践することができることは、当業者には理解されよう。たとえば、不必要な詳細によって実施形態が不明瞭になることがないよう、回路はブロック図で示される場合がある。他の事例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
概説
次世代デバイスおよびレガシーデバイスが第1のバスを共有するシステムにおいて、次世代デバイスが、バスを介した性能を改善する(たとえば、帯域幅または送信レートを増大する)ために、レガシーデバイス(または、レガシーデバイスの少なくともバスインターフェース)を選択的に無効化またはスリープにすることを可能にする特徴が提供される。第1のデバイス(たとえば、レガシーデバイス、I2C適合デバイス、I3C適合デバイスなど)のセットは、第1の通信プロトコルに従って第1のバスを介して通信するように構成されてもよい。第2のデバイス(たとえば、次世代デバイス)のセットは、第1の通信プロトコルと第2の通信プロトコルとに従って第1のバスを介して通信するように構成さてもよい。第1の動作モードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用して第1のバスを介して同時に通信してもよい。第2の動作モードにおいて、第2のデバイスのセットは、第1のバスを介して第2の通信プロトコルを使用して互いと通信し、第1のデバイスのセットは、第1のバスを介した動作を中断する。たとえば、第2のデバイスのセットからの少なくとも1つのデバイスは、第1のデバイスのセットに無効化モードに入らせ、第2のデバイスのセットに第2の通信プロトコルを使用して互いと通信させてもよい。したがって、第2のモードにおいて、第1のデバイスのセットはバスを介した作動を無視する(たとえば、送信しない、および、ほとんどのコマンドを無視する)。
次世代デバイスおよびレガシーデバイスが第1のバスを共有するシステムにおいて、次世代デバイスが、バスを介した性能を改善する(たとえば、帯域幅または送信レートを増大する)ために、レガシーデバイス(または、レガシーデバイスの少なくともバスインターフェース)を選択的に無効化またはスリープにすることを可能にする特徴が提供される。第1のデバイス(たとえば、レガシーデバイス、I2C適合デバイス、I3C適合デバイスなど)のセットは、第1の通信プロトコルに従って第1のバスを介して通信するように構成されてもよい。第2のデバイス(たとえば、次世代デバイス)のセットは、第1の通信プロトコルと第2の通信プロトコルとに従って第1のバスを介して通信するように構成さてもよい。第1の動作モードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用して第1のバスを介して同時に通信してもよい。第2の動作モードにおいて、第2のデバイスのセットは、第1のバスを介して第2の通信プロトコルを使用して互いと通信し、第1のデバイスのセットは、第1のバスを介した動作を中断する。たとえば、第2のデバイスのセットからの少なくとも1つのデバイスは、第1のデバイスのセットに無効化モードに入らせ、第2のデバイスのセットに第2の通信プロトコルを使用して互いと通信させてもよい。したがって、第2のモードにおいて、第1のデバイスのセットはバスを介した作動を無視する(たとえば、送信しない、および、ほとんどのコマンドを無視する)。
一例では、第2の通信プロトコルがバスを介して第2のデータスループットを提供する間に、第1の通信プロトコルはバスを介して第1のデータスループット(たとえば、帯域幅または送信レート)を提供し、第2のデータスループットは概して第1のデータスループットよりも大きい。別の例では、第2の通信プロトコルは第1の通信プロトコルよりも遅くても(たとえば、データスループットがより少なくても)よいが、第2のプロトコルは、たとえば、第1の通信プロトコルが許容できない何らかのDCレベルを使用したより低い電力消費のために選択されてもよい。
第1の動作モード中に、第2のデバイスのセットのうちの少なくとも1つは、第1のデバイスのセットに第1のバスを介した動作を中断させるために、第1のバスを介して無効化コマンドまたはスリープコマンドを送信する。
システムはまた、次世代デバイス(すなわち、第2のデバイスのセット)およびレガシーデバイス(すなわち、第1のデバイスのセット)もまた結合される第1のバスとは別個の第2のバスまたはセカンダリバスを含んでもよい。無効化コマンドが第1のバスを介して送信された後で、第2のデバイスのセットをウェイクアップするために、マスタデバイスは、有効化コマンドを第2のデバイスのセットに送信するために第2のバスまたはセカンダリバスを利用してもよい。すなわち、第1のデバイスのセットは第1のバスを介して通信を無効化してもよく、一方、デバイスの第1セットは、第2のバスまたはセカンダリバスを介して動作可能な状態に依然としてとどまってもよい。第2のバスまたはセカンダリバスを介した有効化コマンドの受信時に、第1のデバイスのセット内の各デバイスは、第1のバスへの/からのそのインターフェースをアクティブ化して、(たとえば、第1のプロトコルを使用して)第1のバスを介して通信を開始するように構成されてもよい。様々な実装形態では、第2の動作モードにある間に、第1のモードに切替え復帰するように(たとえば、第2のデバイスのセット内の)スレーブ次世代デバイスに知らせるために第1のバスおよび/または第2のバスが使用されてもよい。第2のバスまたはセカンダリバスは、電力循環またはハードウェアリセットの必要なしに、第1のデバイスのセットの動作の再有効化を可能にすることに留意されたい。一例では、第1のバスはデータバスであってもよく、第2のバスは制御バスであってもよい。
例示的な動作環境
図1は、レガシーデバイス108および110と次世代デバイス104および106とによって共有される第1のバス102および第2のバス112の例を示すブロック図である。一例では、レガシーデバイス108および110は、CCIe適合デバイス(下記で説明される)、I2C適合デバイス、および/またはI3C適合デバイスであってもよく、一方、次世代デバイス104および106はポストCCIeデバイスおよび/またはポストI3Cデバイスであってもよい。下記で説明するようなCCIe適合デバイスは、MIPIによって指定されたカメラ制御インターフェースの発展形または拡張型であってもよい。そのような次世代デバイス104および106は、レガシーデバイス108および110と比較して、第1のバス102を介した改善された性能または特徴を有してもよい(たとえば、より速く動作してもよい、または改善された能力を含んでもよい)。
図1は、レガシーデバイス108および110と次世代デバイス104および106とによって共有される第1のバス102および第2のバス112の例を示すブロック図である。一例では、レガシーデバイス108および110は、CCIe適合デバイス(下記で説明される)、I2C適合デバイス、および/またはI3C適合デバイスであってもよく、一方、次世代デバイス104および106はポストCCIeデバイスおよび/またはポストI3Cデバイスであってもよい。下記で説明するようなCCIe適合デバイスは、MIPIによって指定されたカメラ制御インターフェースの発展形または拡張型であってもよい。そのような次世代デバイス104および106は、レガシーデバイス108および110と比較して、第1のバス102を介した改善された性能または特徴を有してもよい(たとえば、より速く動作してもよい、または改善された能力を含んでもよい)。
レガシーデバイス108および110ならびに次世代デバイス104および106はまた、第1のバスとは別個の、別の第2のバス112を共有してもよい。たとえば、第1のバス102は制御バスであってもよく、一方、第2のバス112はデータバスであってもよい。
いくつかの動作のモードにおいて、(たとえば、後方互換性のために)レガシーデバイス108および110と次世代デバイス104および106との間で第1のバス102を共有することが望ましい場合がある。そのような動作のモードにおいて、次世代デバイス104および106は、レガシーデバイス108および110の動作に適応するために、低減された性能レベルで動作してもよい。
他の動作のモードにおいて、レガシーデバイス108および110(または、第1のバスへのレガシーデバイスの少なくともバスインターフェース)を無効化し、それによって、次世代デバイス104および106が、レガシーデバイス108および110を懸念せずに、第1のバスを介してその全能力に対して動作することを可能にすることによって、第1のバスを介した性能を改善することが望ましい場合がある。
マスタデバイスは、レガシーデバイス108および110に第1のバスを介した受信および/または送信を中断させるための無効化コマンドをレガシーデバイス108および110に送信してもよい。一実装形態では、レガシーデバイス108および110は、第1のバス102を介して通信(たとえば、リスニングおよび/または送信)を開始するために電力循環によってリセットされてもよい。しかしながら、レガシーデバイスのそのような電力リセットは時間/リソース集約的であるため、別の実装形態は、第2のバス112を介して有効化コマンドを送信させる。第2のバス112を介した有効化コマンドの検出時に、レガシーデバイス108および110は、第1のバスの使用(たとえば、第1のプロトコルに従って第1のバスを介して受信および/または送信すること)を再開してもよい。
この例では、第1の次世代デバイス104は、第1のプロトコルおよび/または第2のプロトコルとの両方に従って、第1のバス102を介した通信を制御することが可能なマルチモードマスタデバイスとして働いてもよい。第1のバス102を介してマスタデバイスとして動作すると同時に、第1の次世代デバイス104は、第1のバス102を介してレガシーデバイス108および110に無効化コマンド、ならびに第2のバス112を介してレガシーデバイス108および110に有効化コマンドの両方を送信することが可能であってもよい。
図2は、第2のバス212がマスタデバイス104とレガシーデバイス108および110のうちのいくつかまたはすべてとの間で結合されてもよい、図1のデバイスの別の実装形態を示すブロック図である。一例では、第1のバス102は2ラインバスであってよい。
図2は、第2のバス212がマスタデバイス104とレガシーデバイス108および110のうちのいくつかまたはすべてとの間で結合されてもよい、図1のデバイスの別の実装形態を示すブロック図である。一例では、第1のバス102は2ラインバスであってよい。
図3は、共有される第1のバス(たとえば、第1のバス102)のワイヤ/ラインの両方が第1の(CCIe)モード内でのデータ送信のためにどのように利用される場合があるかを示す。たとえば、第1のバス102は、第1のライン(SDA)302と第2のライン(SCL)304とを含んでもよい。一実装形態では、(下記でさらに論じるように)クロック信号がシンボル遷移内に埋め込まれてもよい。SDAライン302およびSCLライン304は、各々、2つの引き続くSTART状態306、308、および310の間でいずれの任意の数のシンボルをレガシーデバイス(たとえば、CCIe対応ノード/デバイス)から送信してもよい。
一例では、CCIeワードは、20ビットの情報を搬送する12個のシンボル内で送信されてもよい。一実装形態では、20ビットのうちの16(16)個のビットがデータ情報のためであってよく、一方、20ビットのうちの4個のビットが制御情報のような他の情報のために使用されてもよい。
レガシー(CCIe)デバイスを無効化するための例示的手法
図4は、レガシー(CCIe)デバイス(または、バスに対する少なくともそのインターフェース)を無効化モード(たとえば、一時停止、中断、またはレガシーデバイスがウェイクアップしないように、キルモード)に入れるために使用されてもよい例示的な一般呼を示す。すなわち、そのような無効化モードは、レガシーデバイスが後で(電力リセット、もしくはリブート、または第1のバスを利用しない他の機構を手段とすることを除いて)アウェイクされないときに使用されてもよい。たとえば、(第1のバス102に対してマスタデバイスとして動作する)次世代デバイス104または106は、電力リセットが発生するまで、または第2のバス112または212を介して有効化コマンドが受信されるまで、レガシーデバイス108および110に無効化させるフェアウェル/無効化コマンド/呼400を共有される第1のバス102を介して送信してもよい。フェアウェル/無効化コマンド/呼400は、一般呼識別子部分402と、レガシー(CCIe)デバイス108および/または110を無効化するために特に選択されたアドレス部分404とを含んでもよい。フェアウェルアドレス部分404は、レガシーデバイス108および/または110が有効なアドレスとしてそれを誤って解釈しないように選択される。代わりに、そのようなフェアウェルアドレス404は、レガシーデバイス108および110によってフェアウェル/無効化コマンド/呼として解釈および処理される。フェアウェルアドレスは、レガシーデバイスにおいて復号するとき、大きなハードウェアオーバーヘッドを回避するためにコンパクトかつ単純なコードであってもよい。
図4は、レガシー(CCIe)デバイス(または、バスに対する少なくともそのインターフェース)を無効化モード(たとえば、一時停止、中断、またはレガシーデバイスがウェイクアップしないように、キルモード)に入れるために使用されてもよい例示的な一般呼を示す。すなわち、そのような無効化モードは、レガシーデバイスが後で(電力リセット、もしくはリブート、または第1のバスを利用しない他の機構を手段とすることを除いて)アウェイクされないときに使用されてもよい。たとえば、(第1のバス102に対してマスタデバイスとして動作する)次世代デバイス104または106は、電力リセットが発生するまで、または第2のバス112または212を介して有効化コマンドが受信されるまで、レガシーデバイス108および110に無効化させるフェアウェル/無効化コマンド/呼400を共有される第1のバス102を介して送信してもよい。フェアウェル/無効化コマンド/呼400は、一般呼識別子部分402と、レガシー(CCIe)デバイス108および/または110を無効化するために特に選択されたアドレス部分404とを含んでもよい。フェアウェルアドレス部分404は、レガシーデバイス108および/または110が有効なアドレスとしてそれを誤って解釈しないように選択される。代わりに、そのようなフェアウェルアドレス404は、レガシーデバイス108および110によってフェアウェル/無効化コマンド/呼として解釈および処理される。フェアウェルアドレスは、レガシーデバイスにおいて復号するとき、大きなハードウェアオーバーヘッドを回避するためにコンパクトかつ単純なコードであってもよい。
フェアウェル/無効化コマンド/呼400は、たとえば、マスタデバイス(たとえば、共有される第1のバス102を介して通信するためのマスタとして動作する次世代デバイス104または106)によって送信されてもよい。そのようなフェアウェル/無効化コマンド/呼400を受信/検出するとき、次世代デバイスは、異なるモード(たとえば、次世代デバイスが異なる通信プロトコル、送信速度などに従って動作するモード)に切り替わるように構成されてもよい。たとえば、フェアウェル/無効化コマンド/呼400の受信時に、次世代デバイスは、第1のプロトコルから第2のプロトコルにその入力/出力仕様(たとえば、入力/出力レベル、スルーレートなど)を変更してもよい。
無効化モードに入れられると、レガシーデバイス108および/または110は共有される第1のバス102を介して受信または送信しない。したがって、レガシーデバイス108および110がリセットされないか、またはさもなければ、有効化されない限り、レガシーデバイス108および/または110は第1のバス102を介して通信しなくてよい。レガシーデバイスをリセットすることまたは電力循環することは、第1のバスをリセットすることもまた意味し、これは時間がかかるため、レガシーデバイスをリセットすることまたは電力循環することは好まれない。代わりに、レガシーデバイスを無効モードから有効化するため、復活させるため、またはウェイクアップさせるために、第2のバス112を介して次世代デバイスによって有効化コマンド/呼が送信されてもよい。そのような有効化コマンド/呼は、受信側レガシーデバイスが第1のバス102を介して再び受信および/または送信することができるように、受信側レガシーデバイスにレガシーデバイス108および/または110の通信インターフェースを有効化させるように設計されてもよい。そのような有効化コマンドまたは呼の発生はまた、次世代デバイス104および/または106に、共有される第1のバス102を介してレガシーデバイス108および/または110との共存を可能にする動作モードに切り替えさせてもよい(たとえば、第2のプロトコルから第1のプロトコルに切り替えさせてもよい)。代替実装形態では、次世代デバイス106は、第2のバス112に結合されなくてもよく、マスタデバイス104が第1のプロトコルに切替え復帰したとき、第1のバス102を介して第2のプロトコルに切り替わるためのコマンドを受信してもよい。
次世代デバイスの例示的な動作
図5は、レガシーデバイス(たとえば、CCIe適合デバイス)が共有される第1のバスを介して動作することを無効化し、その後に、第2のバスを介してレガシーデバイスの動作を再有効化するために次世代デバイスにおいて動作可能な方法を示す。次世代デバイスは、第1のバス上でレガシーデバイスと共存する第1の動作モードから第1の動作モードと比較して、第1のバスを介した改善された性能(たとえば、より大きなデータスループット、増大した帯域幅、増大したバス速度など)を有する第2の動作モードにいつ変更するかを確認してもよい(502)。次世代デバイスは、次いで、レガシーデバイスに第1のバスに対して無効化させるための無効化コマンド/信号を第1のバスを介して送信してもよい(504)。無効化されたモードにおいて、レガシーデバイスは第1のバスを介したすべての送信を無視してもよい(すなわち、第1のバスを介して受信または送信しない)。
図5は、レガシーデバイス(たとえば、CCIe適合デバイス)が共有される第1のバスを介して動作することを無効化し、その後に、第2のバスを介してレガシーデバイスの動作を再有効化するために次世代デバイスにおいて動作可能な方法を示す。次世代デバイスは、第1のバス上でレガシーデバイスと共存する第1の動作モードから第1の動作モードと比較して、第1のバスを介した改善された性能(たとえば、より大きなデータスループット、増大した帯域幅、増大したバス速度など)を有する第2の動作モードにいつ変更するかを確認してもよい(502)。次世代デバイスは、次いで、レガシーデバイスに第1のバスに対して無効化させるための無効化コマンド/信号を第1のバスを介して送信してもよい(504)。無効化されたモードにおいて、レガシーデバイスは第1のバスを介したすべての送信を無視してもよい(すなわち、第1のバスを介して受信または送信しない)。
次世代デバイスは、次いで、第2の動作モードに従って第1のバスを介して信号を送信または受信してもよい(506)。
いくつかの実装形態では、次世代デバイスは、第1のバスを介して有効化コマンドを受信して、第1のバスを介して第1のモードの動作に切り替わってもよい(508)。
いくつかの事例では、次世代デバイスは、第1のバスを介した第1の動作モードの動作に戻り、レガシーデバイスに第1のバスを介して通信(たとえば、受信または送信)を開始させるための有効化コマンドを第2のバスを介して送信してもよい(510)。たとえば、そのような有効化コマンドは、次世代マスタデバイスによって送信されてよい。
レガシーデバイスの例示的な動作
図6は、次世代デバイスと共有される第1のバスを介して動作するためのレガシーデバイスにおいて動作可能な方法を示す。レガシーデバイスは、第1のバスと第2のバスとを介して1つまたは複数の次世代デバイスに結合されてもよい。
図6は、次世代デバイスと共有される第1のバスを介して動作するためのレガシーデバイスにおいて動作可能な方法を示す。レガシーデバイスは、第1のバスと第2のバスとを介して1つまたは複数の次世代デバイスに結合されてもよい。
レガシーデバイスは、1つまたは複数の次世代デバイスと共有される第1のバスを介して動作してもよく、第1のバスは、レガシーデバイスおよび次世代デバイスが第1のバス上で共存する第1の動作モードと、次世代デバイスだけが第1のバス上で動作する第1の動作モードと比較して、改善された性能(たとえば、より大きなデータスループット、増大した帯域幅、増大したバス速度など)を有する第2の動作モードに動的に切り替わるように構成される(602)。レガシーデバイスは、レガシーデバイスに第1のバスを介したその動作を無効化させるための無効化コマンドを第1のバスを介して(たとえば、第1のバスを制御するマスタデバイスから)受信してもよい(604)。
レガシーデバイスが第1のバスを介したその動作を無効化したときでさえ、レガシーデバイスは、1つまたは複数の次世代デバイスともまた共有される第2のバスを介して動作(たとえば、通信)し続ける(606)。その後、レガシーデバイスは、第2のバスを介して有効化コマンドを受信して、第1のバスを介した動作を再開することができる(608)。
共有バスを介した次世代デバイスおよびレガシーデバイスの例示的な動作
図7は、次世代デバイスが同じ第1のバスを共有するレガシーデバイスを無効化および再有効化することを可能にする方法を示す。第1のデバイス(たとえば、レガシーデバイス)のセットは第1のバスに結合されてもよく、第1のデバイスのセットは、第1の通信プロトコルに従ってバスを介して通信するように構成される(702)。第2のデバイス(たとえば、次世代デバイス)のセットは第1のバスに結合されてもよく、第2のデバイスのセットは、第1の通信プロトコルと第2の通信プロトコルとの両方に従って第1のバスを介して通信するように構成される(704)。第1の動作モードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用してバスを介して同時に通信することができる(706)。第2の動作モードにおいて、第2のデバイスのセットは、バスを介して第2の通信プロトコルを使用して互いと通信し、第1のデバイスのセットは、第1のバスを介した動作を中断する(たとえば、受信および/または送信を中断する)(708)。
図7は、次世代デバイスが同じ第1のバスを共有するレガシーデバイスを無効化および再有効化することを可能にする方法を示す。第1のデバイス(たとえば、レガシーデバイス)のセットは第1のバスに結合されてもよく、第1のデバイスのセットは、第1の通信プロトコルに従ってバスを介して通信するように構成される(702)。第2のデバイス(たとえば、次世代デバイス)のセットは第1のバスに結合されてもよく、第2のデバイスのセットは、第1の通信プロトコルと第2の通信プロトコルとの両方に従って第1のバスを介して通信するように構成される(704)。第1の動作モードにおいて、第1のデバイスのセットおよび第2のデバイスのセットは、第1の通信プロトコルを使用してバスを介して同時に通信することができる(706)。第2の動作モードにおいて、第2のデバイスのセットは、バスを介して第2の通信プロトコルを使用して互いと通信し、第1のデバイスのセットは、第1のバスを介した動作を中断する(たとえば、受信および/または送信を中断する)(708)。
すなわち、第2の動作モード中に、第1のデバイスのセットはバス作動による影響を受けない(たとえば、バス上ですべてのまたはほとんどの送信を無視する、かつ/またはバスを介して送信しない)。たとえば、第2の動作モードに入る前に、または同時に、第2のデバイスのセットからの少なくとも1つのデバイスは第1のデバイスのセットにスリープモードまたは無効化モードに入らせてもよい。たとえば、第1のデバイスのセットに第1のバスを介した動作を中断させるための無効化コマンドを第1の動作モード中に第1のバスを介して第2のデバイスのセットのうちの少なくとも1つから送信してもよい(710)。
第2の通信プロトコルが第1のバスを介して第2のデータスループットを提供する間に、第1の通信プロトコルは第1のバスを介して第1のデータスループットを提供してもよく、第2のデータスループットは第1のデータスループットよりも大きい。
一例では、第1のバスは2本のラインを有してもよい。第1の動作モードにおいて、信号は2本のラインを介して送信されてもよく、クロック信号は信号内の複数のシンボルのシンボル間遷移内に埋め込まれてもよい。
別の例では、第1のバスは複数のラインを含んでもよく、使用されるいくつかのラインは、第1のバスの動作のモードに応じて、動的に割り振られて/調整されてもよい。たとえば、第1のバスは、第1のモードでN本のラインを使用し、第2のモードでM本のラインを使用してもよく、NおよびMは異なる整数である。代替として、第1のバスは第1のモードでN本のラインを使用し、第2のモードでM本のラインを使用してもよく、NおよびMは、同じ整数であるが、第1のモードおよび第2のモードにおいて異なる数の論理レーンが使用される。
さらに別の例では、第1のバスは、送信(たとえば、CCIe適合送信)のために2本のライン(N=2)が使用される第1のモードと、送信(たとえば、3の階乗(3!)のマルチワイヤマルチレベル差動送信)のために3本のライン(M=3)が使用される第2のモードとを有してもよい。
さらに別の例では、第1のバスは、第1のモードおよび第2のモードにおいて同じ数のラインを使用してもよいが、各モードにおいて異なる符号化を用いる。たとえば、第1のバスは、送信(たとえば、4ラインシングルエンドマルチワイヤ(シンボルごとに2^4-1個の状態))のために4本のライン(N=4)が使用される第1のモード、および送信(たとえば、2本のラインを介した第1の差動ペアおよび別の2本のラインを介した第2の差動ペア)のために差動ラインの2つのペア(M=2x2)が使用される第2のモードで動作してもよい。
さらに別の例では、第1のバスは、第1の符号化による送信のための差分ラインの2つのペア(N=2x2)(たとえば、CCIe適合送信のために2本のレーン)が使用される第1のモードと、送信(たとえば、4の階乗(4!)のマルチワイヤマルチレベル差動送信)のために4本のライン(M=4)が使用される第2のモードで動作してもよい。
さらに別の例では、第1のバスは、第1のモードおよび第2のモードにおいて同じ数のラインを使用してもよいが、異なる目的のためである。たとえば、第1のバスは、データを送信する(たとえば、3ワイヤシングルエンド送信の)ために第1のモードで3(3)本のラインを使用してもよく、データを送信するために2本のライン(たとえば、差動送信のためのラインの1つのペア)にサイドバンドシグナリングのためのシングルライン(たとえば、第1のバスが第2のモードで動作するときにレガシーデバイスを無効化するためのレガシーデバイスコマンドライン)を加えたものを第2のモードで使用してもよい。
第1の動作モード中に、第2のデバイスのセットのうちの少なくとも1つは、第1のデバイスのセットに第1のバスを介した動作(または、通信)を中断させるために、第1のバスを介して無効化コマンドを送信する。
無効化コマンドは、第1のデバイスのセットの電力リセットもしくはハードウェアリセットのいずれか、または有効化コマンドが第1のバスとは異なるチャネルを経由して第1のデバイスのセットに送信されるまで、第1のデバイスのセットの各々が第1のバスを介して通信することを防止する。無効化モードにある間、レガシーデバイスは、バスインターフェースの動作が第1のバスを介して受信および/または送信することを無効化してもよい。別の例では、無効化コマンドは、第1のデバイスのセット内の各デバイスの動作を無効化してもよい。
第1のデバイスのセットの各々は、第1の通信プロトコルに従って送信された信号内に埋め込まれたクロック信号だけを使用して、バス上で信号を少なくとも部分的に復号することが可能なレシーバデバイスを含んでもよい。レシーバデバイスは、第1のバスを介した無効化コマンドの受信時に、無効化モードに入ってもよい。レシーバデバイスは、第2のバスを介した有効化コマンドの受信時に、第1のバスを介した動作を再開してもよい。たとえば、第1のデバイスのセットに第1のバスを介した動作を再開させるための有効化コマンドを第2のバスを介して第2のデバイスのセットのうちの少なくとも1つから送信してもよい(712)。様々な例では、第2のバスは、第2のデバイスのセットのうちの少なくとも1つと第1のデバイスのセットのうちの1つまたは複数との間の、第1のバスとは別個の、1つまたは複数のチャネルまたは通信ラインであってもよい。いくつかの実装形態では、第2のバスは、第1のバスを介して使用される第1のプロトコルまたは第2のプロトコルのいずれとも異なるプロトコルに従って動作してもよい。
第1の通信プロトコルは、たとえば、カメラ制御インターフェース拡張(CCIe)プロトコルまたはI2Cプロトコルのうちの1つであってよい。
レガシー(CCIe)デバイスのための例示的なトランスコーディング技法
図8は、連続シンボル内にクロック信号を埋め込むために、トランスミッタにおいてデータビットを連続シンボルにトランスコーディングする例示的方法を示すブロック図である。トランスミッタ802において、データビット804のシーケンスが3進(base 3)数(たとえば、3進数の各個々のディジットが「遷移数」と呼ばれる)に変換され、3進数が連続シンボルに変換され、連続シンボルが、クロック線SCL812およびデータ線SDA814を含む制御データバスを介して送信される。
図8は、連続シンボル内にクロック信号を埋め込むために、トランスミッタにおいてデータビットを連続シンボルにトランスコーディングする例示的方法を示すブロック図である。トランスミッタ802において、データビット804のシーケンスが3進(base 3)数(たとえば、3進数の各個々のディジットが「遷移数」と呼ばれる)に変換され、3進数が連続シンボルに変換され、連続シンボルが、クロック線SCL812およびデータ線SDA814を含む制御データバスを介して送信される。
一例では、バイナリデータの元の20ビット804がビット-遷移数変換器ブロック808に入力され、12ディジット3進数809に変換される。12ディジット3進数の各ディジットは「遷移数」を表し得る。遷移数の2つの引き続くディジットは、同一のディジット値であってもよい。遷移数の各ディジットは、2つの引き続く連続シンボルが同一の値を有さないように、遷移-シンボルブロック810において連続シンボルに変換される。遷移(たとえば、変更)が連続シンボルごとに保証されるので、そのような連続シンボル遷移は、クロック信号を埋め込む働きをしてもよい。次いで、各連続シンボル816が、2つのワイヤ物理リンク(たとえば、SCL線812およびSDA線814を備えるI2C制御データバス)を介して送信される。
レシーバ820において、プロセスが、連続シンボルを再びビットに変換するように反転され、プロセスでは、クロック信号が、連続シンボル遷移から抽出される。レシーバ820は、2つのワイヤ物理リンク(たとえば、SCL線824およびSDA線826を備えるI2C制御データバス)を介して連続シンボル822を受信する。受信された連続シンボル822がクロックデータリカバリ(CDR)ブロック828に入力され、クロックタイミングがリカバリされ、連続シンボル(S)がサンプリングされる。次いで、シンボル-遷移数変換器ブロック830は、各連続シンボルを遷移数に変換し、各遷移数は3進数のディジットを表す。次いで、遷移数-ビット変換器832が、12(12)個の遷移数(すなわち、3進数)を変換して、12ディジット3進数から元のデータの20(20)ビットを復元する。
本明細書で示す技法は、制御データバス102(図1)および208(図2)のリンクレートをI2C基準制御データバスが提供する、本明細書でCCIeモードと呼ばれるもの以上に増大させるために使用されてもよい。一例では、制御データバス102および208に結合されるマスタノード/デバイスおよび/またはスレーブノード/デバイスは、標準I2C制御データバスを使用して可能なビットレートよりも、同一の制御データバスを介する高いビットレートを達成するために、(図10に示されるように)連続シンボル変更/遷移内にクロック信号を埋め込むトランスミッタおよび/またはレシーバを実装してもよい。
図9は、トランスミッタ902におけるビットから遷移数への、そしてその後、レシーバ904における遷移数からビットへの例示的な変換を示す。この例は、12個の遷移シンボルを用いる2ワイヤシステムの場合の送信を示す。トランスミッタ902は、2進情報、Bitを"Bit-12×T"変換器906に供給し、12個のシンボル遷移数T0〜T11を生成する。レシーバ904は、12個のシンボル遷移数T0〜T11を受信し、それが"12×T-Bit"変換器908に送信され、2進情報(Bit)が取り出される。T0〜T11の1つのTあたりにr個の可能なシンボル遷移状態がある場合には、12個の遷移がr12個の異なる状態を送信することができる。2ワイヤバスの場合、r=22-1である。したがって、遷移T0...T11は、(22-1)12個の異なる状態を有することができるデータを含む。したがって、r=4-1=3、また状態数=(4-1)^12=531441である。
12個のシンボル遷移数を使用する2ワイヤシステムに関するこの例では、1つのTごとの可能なシンボル遷移、rは3(=22-1)である。グループ内のシンボル数が12である場合、12ディジット3進数(base-3数):T11,T10,...,T2,T1,T0であり、ここで、各Ti:0,1,2が使用されてよい。たとえば、{T11,T10,…,T2,T1,T0}={2,1,0,0,1,1,0,1,0,1,2,1}の場合、3進数は、
2100_1101_01213(3進数)
= 2×311+1×310+0×39+0×38
+1×37+1×36+0×35+1×34
+0×33+1×32+2×31+1×30
= 416356(0x65A64)
である。
2100_1101_01213(3進数)
= 2×311+1×310+0×39+0×38
+1×37+1×36+0×35+1×34
+0×33+1×32+2×31+1×30
= 416356(0x65A64)
である。
このようにして、12個の遷移数が数に変換されてもよい。3進数2100_1101_01213が、たとえば図8における遷移数として使用されてもよく、それにより、各整数が連続シンボルにマッピングされてもよく、その逆も同様であることに留意されたい。2100_1101_01213を逆の順序で送信するとき、Tは累乗の降順で送信され、すなわち、T11が311によって乗算されるべき桁であり、そのため、それは11乗に関するものであり、以下同様である。
2ワイヤシステムおよび12個のシンボル遷移数に関して図8に示す例は、nワイヤシステムおよびm個のシンボル遷移数に一般化されてもよい。T0〜Tm-1の1つのTあたりにr個の可能なシンボル遷移状態がある場合、m個の遷移がrm個の異なる状態、すなわち、r=2n-1個の状態を送信することができる。したがって、遷移T0...Tm-1は、(2n-1)m個の異なる状態を有することができるデータを含む。
図10は、遷移数1002と連続シンボル1004との間の例示的な変換を示す。遷移数とも呼ばれる、3進数、base-3数の個々のディジットは、3(3)つの可能なディジットまたは状態0、1、または2のうちの1つを有することができる。同一のディジットが3進数の2つの引き続くディジットに出現する場合があるが、2つの引き続く連続シンボルは同一の値を有さない。遷移数と連続シンボルとの間の変換は、引き続く遷移数が同一である場合であっても、連続シンボルが(連続シンボルごとに)常に変化することを保証する。
一例では、変換機能は、遷移数(たとえば、3進数のディジット)に1を前のロー連続シンボル値に加算する。加算の結果、3よりも大きい数となった場合、それは0からロールオーバし、次いで結果は、現在の連続シンボルについての状態数または値となる。
第1のサイクル1006において、第1の遷移数(Ta)1が入力されるとき、前連続シンボル(Ps)は1であり、したがって、第1の遷移数1に1を加算したものが前連続シンボル(Ps)に加算され、結果として生じる、現在の連続シンボル(Cs)3は物理リンクに送信される現在の連続シンボルになる。
第2の(次の)サイクル1008において、第2の遷移数(Tb)0が入力され、第2の遷移数0に1を加算したものが前連続シンボル(Ps)3に加算される。加算の結果(0+1+3)が4に等しく、3よりも大きいので、ロールオーバされた数0が現在の連続シンボル(Cs)となる。
第3のサイクル1010において、第3の遷移数(Tc)0が入力される。変換論理は、第3の遷移数0に1を前連続シンボル(Ps)0に加算し、現在の連続シンボル(Cs)1を生成する。
第4のサイクル1012において、第4の遷移数(Td)2が入力される。変換論理は、第4の遷移数(Td)2に1を前のシンボル(Ps)1に加算し、現在の連続シンボル(Cs)0を生成する(加算の結果4は3よりも大きいので、ロールオーバされた数0が現在の連続シンボルとなる)。
したがって、2つの引き続く3進数ディジットTbおよびTcが同一の数値を有する場合であっても、この変換は、2つの引き続く連続シンボルが異なる状態値を有することを保証する。この変換のために、シンボルのシーケンス1004内の保証された連続シンボル変更または遷移は、クロック信号を埋め込む働きをしてもよく、それによってデータ送信のためのI2C制御データバス内のクロック線SCLを解放する。
この遷移数-連続番号変換の例は、引き続く連続シンボル間を増分するために、保証された数"1"を加算するが、他の実装では、連続シンボル間の遷移または変更を保証するために他の値が使用されてもよいことに留意されたい。
図8を再び参照すると、レシーバ820において、図10に示すプロセスが、連続シンボルを再びビットに変換するように反転され、プロセスでは、クロック信号がシンボル遷移から抽出される。レシーバ820は、2ワイヤ物理リンク(たとえば、SCL線824およびSDA線826を備えるI2Cバス)を介して連続シンボル822を受信する。受信された連続シンボル422がクロックデータリカバリ(CDR)ブロック828に入力され、クロックタイミングがリカバリされ、トランスコーディングされたシンボル(S)がサンプリングされる。次いでシンボル-遷移数変換器ブロック830は、各連続シンボルを遷移数に変換し、すなわち、遷移数は3進数内のディジットを構成する。次いで、遷移数-ビット変換器832は、12個の遷移数(すなわち、3進数)を変換して、12ディジット3進数から元のデータの20ビットを復元する。
図11は、連続シンボルと遷移数との間の変換を示す。この変換は、前連続シンボル番号(Ps)から現在の連続シンボル(Cs)への各遷移を遷移数(T)にマップする。トランスミッタデバイスにおいて、遷移数は連続シンボルに変換されている。相対的な変換方式が使用されるので、遷移数は、2つの引き続く連続シンボル1104が同じでないことを保証する。
2ワイヤシステムに関する一例では、4つの連続シンボルS0、S1、S2、およびS3に割り当てられた4つのローシンボルがある。4つの連続シンボルに関して、表1102は、どのように前連続シンボル(Ps)に基づいて現在の連続シンボル(Cs)を割り当て、現在の遷移数(T)に基づいて一時的遷移数Ttmpを割り当てればよいかを示す。
この例では、遷移数Csは、次式に従って割り当てられてもよい。
Cs=Ps+Ttmp
ここで、Ttmp=T==0?3:Tである。言い換えれば、現在の遷移数Tがゼロに等しい場合、一時的遷移数Ttmpは3になり、それ以外の場合は、TtmpはTに等しくなる。Ttmpが計算されると、CsはPsにTtmpを加算したものに設定される。さらに、レシーバ側では、Tを再生するために論理が反転され、
Ttmp=Cs+4-PsかつT=Ttmp==3?0:Ttmpである。
Cs=Ps+Ttmp
ここで、Ttmp=T==0?3:Tである。言い換えれば、現在の遷移数Tがゼロに等しい場合、一時的遷移数Ttmpは3になり、それ以外の場合は、TtmpはTに等しくなる。Ttmpが計算されると、CsはPsにTtmpを加算したものに設定される。さらに、レシーバ側では、Tを再生するために論理が反転され、
Ttmp=Cs+4-PsかつT=Ttmp==3?0:Ttmpである。
図12は、{T11,T10,...T2,T1,T0}内の各Tがシンボル遷移数であるとして、3進数(base-3数)を2進数に変換する一般的例を示す。
図13は、2進数(ビット)を12ディジット3進数(base-3数)に変換するための例示的方法を示す。各桁は、より上位の桁の計算からの剰余(モジュロ演算の結果)を、3の桁数の累乗で除算し、小数点数を廃棄することによって計算されてもよい。
図14は、任意の市販の合成ツールによって合成可能であってもよい、図13の除算演算およびモジュロ演算の可能な一実装の一例を示す。
例示的なレガシーデバイスおよびその動作
図15は、例示的なレガシーデバイス1502を示すブロック図である。一例では、レガシーデバイス1502はCCIe適合デバイスであってもよい。レガシーデバイス1502は、第1の通信回路1506と第2の通信回路1507とに結合される制御回路/論理1504を含んでもよい。第1の通信回路1506は、共有される第1のバスに結合するように働いてもよく、第1の通信プロトコルに従って第1のバスを介して通信するように構成されてもよい。一例では、第1の通信回路1506は、トランスコーディング回路/モジュール1514、クロックリカバリ回路/モジュール1516、および/または送信/受信バッファ1518を実装するトランスミッタ/レシーバ回路1506を含んでもよいか、またはそれらを定義してもよい。トランスコーディング回路/モジュール1514は、ビットを第1のバスを介した送信のためのシンボルに変換し、第1のバスを介した受信時に、受信されたシンボルをビットに変換するために、図8〜図14に示した1つまたは複数の機能を実行してもよい。このトランスコーディングはまた、シンボル間遷移内にクロックを効率的に埋め込んでもよい。クロックリカバリ回路/モジュール1516は、そのような埋め込まれたクロックをシンボル間遷移から取り出すように働いてもよい。送信/受信バッファ1518は、送信および/または受信のためのビットをバッファするように働いてもよい。
図15は、例示的なレガシーデバイス1502を示すブロック図である。一例では、レガシーデバイス1502はCCIe適合デバイスであってもよい。レガシーデバイス1502は、第1の通信回路1506と第2の通信回路1507とに結合される制御回路/論理1504を含んでもよい。第1の通信回路1506は、共有される第1のバスに結合するように働いてもよく、第1の通信プロトコルに従って第1のバスを介して通信するように構成されてもよい。一例では、第1の通信回路1506は、トランスコーディング回路/モジュール1514、クロックリカバリ回路/モジュール1516、および/または送信/受信バッファ1518を実装するトランスミッタ/レシーバ回路1506を含んでもよいか、またはそれらを定義してもよい。トランスコーディング回路/モジュール1514は、ビットを第1のバスを介した送信のためのシンボルに変換し、第1のバスを介した受信時に、受信されたシンボルをビットに変換するために、図8〜図14に示した1つまたは複数の機能を実行してもよい。このトランスコーディングはまた、シンボル間遷移内にクロックを効率的に埋め込んでもよい。クロックリカバリ回路/モジュール1516は、そのような埋め込まれたクロックをシンボル間遷移から取り出すように働いてもよい。送信/受信バッファ1518は、送信および/または受信のためのビットをバッファするように働いてもよい。
第2の通信回路1507は、第2のバスに結合するように働いてもよく、第3の通信プロトコルに従って第2のバスを介して通信するように構成されてもよい。
制御回路/論理1504は、コマンド監視回路/モジュール1508、無効化検出回路/モジュール1510、および/または有効化検出回路/モジュール1512を含んでもよいか、またはそれらを実装してもよい。制御回路/論理1504は、第1の通信プロトコルを使用して第1のバスを介して通信するように通信回路1506を構成するように適合されてもよい。コマンド監視回路/モジュール1508は、無効化コマンドに関して第1のバスを監視してもよい。無効化コマンドが第1のバスを介して検出された場合、無効化回路/モジュール1510は、第1のバスを介した作動を無視するために、第1の通信回路1506の動作を完全にまたは部分的に無効化してもよい。
一例では、バスは2ラインバスであってもよい。第1の通信プロトコル信号は2本のラインを介して送信されてもよく、クロック信号は信号内の複数のシンボルのシンボル間遷移内に埋め込まれる。
無効化コマンドは、レガシーデバイス1502に第1のバスを介した動作を中断(たとえば、第1のバスを介した送信および受信を中断)させてもよい。たとえば、無効化コマンドは、レガシーデバイスの電力リセットもしくはハードウェアリセット、または第2のバスからの有効化コマンドの受信まで、レガシーデバイス1502が第1のバスを介して通信することを防止してもよい。
図16は、レガシーデバイスによって実装されてもよい例示的な方法を示す。第1の通信回路は、第1の通信プロトコルを使用して第1のバスを介して通信するように構成されてもよい(1602)。レガシーデバイスは、無効化コマンドに関して第1のバスを監視してもよい(1604)。レガシーデバイスは、第1の通信プロトコルを使用する第1の動作モードで、かつ第2の通信プロトコルを使用する第2の通信モードで動作することが可能な第2のデバイスから第1のバスを介して無効化コマンドを受信してもよい(1606)。第1の通信回路は、無効化コマンドの検出時に、第1のバスを介した作動を無視するように再構成されてもよい(1608)。
第2の通信プロトコルが第1のバスを介して第2のデータスループットを提供する間に、第1の通信プロトコルは第1のバスを介して第1のデータスループットを提供してもよく、第2のデータスループットは第1のデータスループットよりも大きい。
第1のバスは2本のラインを含んでもよく、第1の動作モードにおいて、信号は2本のラインを介して送信されてもよく、クロック信号は信号内の複数のシンボルのシンボル間遷移内に埋め込まれる。
無効化コマンドは、第1のバスがレガシーデバイスによってサポートされない第2の通信プロトコルに従って動作するように切り替えられる前に、または同時に受信されてもよい。
レガシーデバイスは、第1のバスを使用することから無効化されてよいが、レガシーデバイスは、動作し続けてもよく、かつ/または有効化コマンドに関して第2のバス(または、チャネル)を監視してもよい(1610)。レガシーデバイスは、第2のバスを介してそのような有効化コマンドを受信してもよく(1612)、これにより、レガシーデバイスは、第1のプロトコルを使用して第1のバスを介した作動を再開するように第1の通信回路を再構成する(1614)。
第1の例では、第1のバスは、N本のラインが第1のモードの送信のために割り振られ、M本のラインが第2のモードの送信のために割り振られた、複数のラインを含み、NおよびMは、2(2)以上の整数である。
一実装形態では、NおよびMは異なる整数であってもよい。別の実装形態では、NおよびMは同じ整数であってもよく、異なる数の論理送信レーンが第1のモードおよび第2のモードにおいて定義される。
第2の例では、第1のモードにおいて、CCIe適合送信をサポートするためにN=2であり、第2のモードにおいて、3の階乗(3!)のマルチワイヤマルチレベル差動送信をサポートするためにM=3である。
第3の例では、第1のモードにおいて、4ワイヤシングルエンドマルチワイヤ送信をサポートするためにN=4であり、第2のモードにおいて、2本のラインを使用した第1の差動ペアを介した送信と別の2本のラインを使用した第2の差動ペアを介した送信とをサポートするためにM=2x2である。
第4の例では、第1のモードにおいて、CCIe適合送信の2つの差動ワイヤペアをサポートするためにN=2x2であり、第2のモードにおいて、4の階乗(4!)のマルチワイヤマルチレベル差動送信をサポートするためにM=4である。
第5の例では、N=M=3であり、第1のモードにおいて、3ワイヤシングルエンド送信が使用され、第2のモードにおいて、差動送信のためにラインの1つのペアが使用され、サイドバンドシグナリングのために残りのシングルラインが使用される。
例示的な次世代デバイスおよびその動作
図17は、例示的な次世代デバイス1702を示すブロック図である。様々な例では、次世代デバイス1702は、スレーブデバイスまたはマスタデバイスとして動作してもよい。一例では、次世代デバイス1702は、CCIe適合デバイスであってもよい。次世代デバイス1702は、第1の通信回路1706、およびオプションで、第2の通信回路1707に結合される制御回路/論理1704を含んでもよい。たとえば、次世代デバイス1702がマスタデバイスとして動作するとき、次世代デバイス1702は、前に無効化されているレガシーデバイスを(すなわち、第2のバスを介して)再有効化するために、第2の通信回路1707を含めてもよいか、または第2の通信回路1707をアクティブ化してもよい。
図17は、例示的な次世代デバイス1702を示すブロック図である。様々な例では、次世代デバイス1702は、スレーブデバイスまたはマスタデバイスとして動作してもよい。一例では、次世代デバイス1702は、CCIe適合デバイスであってもよい。次世代デバイス1702は、第1の通信回路1706、およびオプションで、第2の通信回路1707に結合される制御回路/論理1704を含んでもよい。たとえば、次世代デバイス1702がマスタデバイスとして動作するとき、次世代デバイス1702は、前に無効化されているレガシーデバイスを(すなわち、第2のバスを介して)再有効化するために、第2の通信回路1707を含めてもよいか、または第2の通信回路1707をアクティブ化してもよい。
第1の通信回路1706は、他のデバイスと共有される第1のバスに結合するように働いてもよい。第1の通信回路1706は、第1の通信プロトコルまたは第2の通信プロトコルに従って第1のバスを介して通信するように構成可能であってもよい。一例では、次世代デバイスが第1の通信プロトコルが使用される第1のモードに従って動作するために、第1の通信回路1706は、トランスコーディング回路/モジュール1714、クロックリカバリ回路/モジュール1716、および/または送信/受信バッファ1718を実装するトランスミッタ/レシーバ回路1706を含んでもよいか、またはそれらを定義してもよい。トランスコーディング回路/モジュール1714は、ビットを第1のバスを介した送信のためのシンボルに変換し、第1の通信プロトコルを使用するとき、第1のバスを介した受信時に、受信されたシンボルをビットに変換するために、図8〜図14に示した1つまたは複数の機能を実行してもよい。このトランスコーディングはまた、シンボル間遷移内にクロックを効率的に埋め込んでもよい。クロックリカバリ回路/モジュール1716は、そのような埋め込まれたクロックをシンボル間遷移から取り出すように働いてもよい。送信/受信バッファ1718は、送信および/または受信のためのビットをバッファするように働いてもよい。
制御回路1704は、第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように第1の通信回路1706を構成するように適合された第1のモード回路/モジュール1708を含んでもよいか、またはそれを実装してもよい。
第2のプロトコルが使用される第2のモードで動作するために、次世代デバイスがマスタデバイスとして動作するとき、制御回路1704は、第2の通信プロトコルをサポートしない他のデバイスに第1のバスを介した作動を無視するように示すための無効化コマンドを第1のバスを介して送信する無効化回路/モジュール1710を含んでもよいか、またはそれを実装してもよい。制御回路1704は、第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作するように第1の通信回路を再構成するように適合された第2のモード回路/モジュールを含んでもよいか、またはそれを実装してもよい。第2の動作モードにおいて、第1の通信回路1706は、たとえば、トランスコーディング回路/モジュール1714および/またはクロックリカバリ回路/モジュール1716の動作を無効化してもよい。
次世代デバイス1702がマスタデバイスとして動作するとき、制御回路1704は、他のデバイス(たとえば、レガシーデバイス)に第1のバスを介した作動を再開するように示すための有効化コマンドを第2の通信回路を介して(たとえば、第2のバスを通じて)送信する有効化回路/モジュールを含んでもよいか、またはそれを実装してもよい。第1の通信回路1706は、第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように再構成されてもよい。
一例では、第2の通信プロトコルが第1のバスを介して第2のデータスループット/レートを提供する間に、第1の通信プロトコルはバスを介して第1のデータスループットレートを提供し、第2のデータスループット/レートは第1のデータスループット/レートよりも大きい。
第1のバスは2本のラインを含んでもよく、または2本のラインによって定義されてもよく、第1の動作モードにおいて、信号は2本のラインを介して送信され、クロック信号は信号内の複数のシンボルのシンボル間遷移内に埋め込まれる。
他のデバイスの各々の電力リセットもしくはハードウェアリセットまたは有効化コマンドがさもなければ他のデバイス上で実施されるまで、無効化コマンドは、他のデバイスが第1のバスを介して通信することを防止してもよい。無効化コマンドは、デバイスが第2のモードに入る前に、または同時に送信されてもよい。
第1の通信回路1706は、第1の通信プロトコルに従って送信された信号内に埋め込まれたクロック信号だけを使用して、第1のバス上で信号を少なくとも部分的に復号することが可能なレシーバデバイスを含んでもよい。
第1の例では、第1のバスは、第1のモードの送信のために割り振られたN本のラインと、第2のモードの送信のために割り振られたM本のラインとを有する複数のラインを含み、NおよびMは、2(2)以上の整数である。
一実装形態では、NおよびMは異なる整数であってもよい。別の実装形態では、NおよびMは同じ整数であってもよく、異なる数の論理送信レーンが第1のモードおよび第2のモードにおいて定義される。
第2の例では、第1のモードにおいて、CCIe適合送信をサポートするためにN=2であり、第2のモードにおいて、3の階乗(3!)のマルチワイヤマルチレベル差動送信をサポートするためにM=3である。
第3の例では、第1のモードにおいて、4ワイヤシングルエンドマルチワイヤ送信をサポートするためにN=4であり、第2のモードにおいて、2本のラインを使用した第1の差動ペアを介した送信と別の2本のラインを使用した第2の差動ペアを介した送信とをサポートするためにM=2x2である。
第4の例では、第1のモードにおいて、CCIe適合送信の2つの差動ワイヤペアをサポートするためにN=2x2であり、第2のモードにおいて、4の階乗(4!)のマルチワイヤマルチレベル差動送信をサポートするためにM=4である。
第5の例では、N=M=3であり、第1のモードにおいて、3ワイヤシングルエンド送信が使用され、第2のモードにおいて、差動送信のためにラインの1つのペアが使用され、サイドバンドシグナリングのために残りのシングルラインが使用される。
図18は、マスタデバイスとして動作するとき、次世代デバイスによって実装されてもよい例示的な方法を示す。第1の通信回路は、第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように構成されてもよい(1802)。次世代デバイスは、第2の通信プロトコルをサポートしない他のデバイスにて第1のバスを介した作動を無視するように示すための無効化コマンドを第1のバスを介して送信してもよい(1804)。その後、第1の通信回路は、第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作するように再構成されてもよい(1806)。
その後、次世代デバイスは、第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように第1の通信回路を再構成してもよい(1808)。次世代デバイスは、次いで、他のデバイスに第1のプロトコルを使用して第1のバスを介した作動を再開するように示すための有効化コマンドを第2のバスを介して送信する(1810)。
バスは2本のラインを含んでもよく、第1の動作モードにおいて、信号は2本のラインを介して送信され、クロック信号は信号内の複数のシンボルのシンボル間遷移内に埋め込まれる。
一例では、スリープコマンドまたは無効化コマンドは、デバイスが第2のモードに入る前に、または同時に送信されてもよい。
図19は、共有バスを介してスレーブデバイスとして動作するとき、次世代デバイスによって実装されてもよい例示的な方法を示す。いくつかの例では、この次世代デバイスは共有される第1のバスだけに結合されてもよい。第1の通信回路は、第1の通信プロトコルが第1のバスを介して使用される第1のモードで動作するように構成されてもよい(1902)。
次世代デバイスは、その後、第1のバスが、第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作すべきであるという表示を受信してもよいか、またはそれを検出してもよい(1904)。その後、第1の通信回路は、第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作するように再構成されてもよい(1906)。
次世代デバイスは、その後、第1のバスが、第2の通信プロトコルが第1のバスを介して使用される第2のモードで動作すべきであるという表示を受信してもよいか、またはそれを検出してもよい(1908)。
したがって、次世代デバイスは、第1の通信プロトコルが第1のバスを介してかつ/またはオプションで第2のバスを介して使用される第1のモードで動作するように第1の通信回路を再構成してもよい(1910)。
図に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能として再構成されてもよく、かつ/または結合されてもよく、あるいはいくつかの構成要素、ステップ、または機能として具現化されてもよい。本明細書で開示した新規の特徴から逸脱することなく、追加の要素、構成要素、ステップ、および/または機能が追加されてもよい。図に示した装置、デバイス、および/または構成要素は、図に示した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成されてもよい。本明細書で説明する新規のアルゴリズムはまた、ソフトウェアで効率的に実装されてもよく、かつ/またはハードウェア内に組み込まれてもよい。
加えて、実施形態が、フローチャート、フロー図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートは、動作を順次プロセスとして説明する場合があるが、動作の多くは並列または同時に実施することができる。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応する場合がある。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当する。
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルデバイスもしくは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶するか、包含するか、または搬送することが可能な様々な他の媒体を含む。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表す場合がある。コードセグメントは、情報、データ、引数、パラメータ、もしくはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてもよく、転送されてもよく、または送信されてもよい。
本明細書で開示した例に関して説明した様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実行するように設計されたそれらの任意の組合せで実装または実行されてもよい。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成として実装されてもよい。
本明細書で開示した例に関連して説明した方法またはアルゴリズムは、処理ユニット、プログラミング命令、または他の指示の形で、ハードウェアにおいて直接、プロセッサによって実行可能なソフトウェアモジュール中で、またはこの両方の組合せで具現化されることがあり、単一のデバイスに含まれてもよく、または複数のデバイスにわたって分散されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形態の記憶媒体内に存在してもよい。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体がプロセッサに結合されてもよい。代替的に、記憶媒体はプロセッサと一体であってもよい。
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことを当業者はさらに了解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。
本明細書で説明した本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムで実現されてもよい。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は例示的なものであり、特許請求の範囲を限定するものではない。そのように、本教示は、他のタイプの装置に容易に適用され得、多くの代替、修正、変形が、当業者には明らかであろう。
102 第1のバス
104 次世代デバイス
106 次世代デバイス
108 レガシーデバイス
110 レガシーデバイス
112 第2のバス
212 第2のバス
302 第1のライン(SDA)
304 第2のライン(SCL)
306 START状態
308 START状態
310 START状態
400 フェアウェル/無効化コマンド/呼
402 一般呼識別子部分
404 アドレス部分、フェアウェルアドレス部分
422 連続シンボル
432 遷移数-ビット変換器
802 トランスミッタ
804 データビット、20ビット
808 ビット-遷移数変換器ブロック
809 12ディジット3進数
810 遷移-シンボルブロック
812 クロック線SCL、SCL線
814 データ線SDA、SDA線
816 各連続シンボル
820 レシーバ
822 連続シンボル
824 SCL線
826 SDA線
828 クロックデータリカバリ(CDR)ブロック
830 シンボル-遷移数変換器ブロック
832 遷移数-ビット変換器
902 トランスミッタ
904 レシーバ
906 “Bit-12×T”変換器
908 “12×T-Bit”変換器
1002 遷移数
1004 連続次シンボル
1006 第1のサイクル
1008 第2の(次の)サイクル
1010 第3のサイクル
1012 第4のサイクル
1102 表
1104 連続シンボル
1502 レガシーデバイス
1504 制御回路/論理
1506 第1の通信回路、トランスミッタ/レシーバ回路
1507 第2の通信回路
1508 コマンド監視回路/モジュール
1510 無効化検出回路/モジュール
1512 有効化検出回路/モジュール
1514 トランスコーディング回路/モジュール
1516 クロックリカバリ回路/モジュール
1518 送信/受信バッファ
1702 次世代デバイス
1704 制御回路/論理
1706 第1の通信回路、トランスミッタ/レシーバ回路
1707 第2の通信回路
1708 第1のモード回路/モジュール
1710 無効化回路/モジュール
1712 第2のモード回路/モジュール
1714 トランスコーディング回路/モジュール
1716 クロックリカバリ回路/モジュール
1718 送信/受信バッファ
104 次世代デバイス
106 次世代デバイス
108 レガシーデバイス
110 レガシーデバイス
112 第2のバス
212 第2のバス
302 第1のライン(SDA)
304 第2のライン(SCL)
306 START状態
308 START状態
310 START状態
400 フェアウェル/無効化コマンド/呼
402 一般呼識別子部分
404 アドレス部分、フェアウェルアドレス部分
422 連続シンボル
432 遷移数-ビット変換器
802 トランスミッタ
804 データビット、20ビット
808 ビット-遷移数変換器ブロック
809 12ディジット3進数
810 遷移-シンボルブロック
812 クロック線SCL、SCL線
814 データ線SDA、SDA線
816 各連続シンボル
820 レシーバ
822 連続シンボル
824 SCL線
826 SDA線
828 クロックデータリカバリ(CDR)ブロック
830 シンボル-遷移数変換器ブロック
832 遷移数-ビット変換器
902 トランスミッタ
904 レシーバ
906 “Bit-12×T”変換器
908 “12×T-Bit”変換器
1002 遷移数
1004 連続次シンボル
1006 第1のサイクル
1008 第2の(次の)サイクル
1010 第3のサイクル
1012 第4のサイクル
1102 表
1104 連続シンボル
1502 レガシーデバイス
1504 制御回路/論理
1506 第1の通信回路、トランスミッタ/レシーバ回路
1507 第2の通信回路
1508 コマンド監視回路/モジュール
1510 無効化検出回路/モジュール
1512 有効化検出回路/モジュール
1514 トランスコーディング回路/モジュール
1516 クロックリカバリ回路/モジュール
1518 送信/受信バッファ
1702 次世代デバイス
1704 制御回路/論理
1706 第1の通信回路、トランスミッタ/レシーバ回路
1707 第2の通信回路
1708 第1のモード回路/モジュール
1710 無効化回路/モジュール
1712 第2のモード回路/モジュール
1714 トランスコーディング回路/モジュール
1716 クロックリカバリ回路/モジュール
1718 送信/受信バッファ
Claims (30)
- 第1のバスと、
第2のバスと、
前記第1のバスと前記第2のバスとに結合される第1のデバイスのセットであって、第1の通信プロトコルに従って前記第1のバスを介して通信するように構成される、第1のデバイスのセットと、
前記第1のバスに結合される第2のデバイスのセットであって、前記第1の通信プロトコルと第2の通信プロトコルとの両方に従って前記第1のバスを介して通信するように構成される、第2のデバイスのセットと
を備え、
前記第1のバスを介した第1の動作モードにおいて、前記第1のデバイスのセットおよび前記第2のデバイスのセットが、前記第1の通信プロトコルを使用して前記第1のバスを介して同時に通信し、
前記第1のバスを介した第2の動作モードにおいて、前記第2のデバイスのセットが、前記第1のバスを介して前記第2の通信プロトコルを使用して互いと通信し、前記第1のデバイスのセットが前記第1のバスを介した動作を中断し、
前記第2のデバイスのセットが前記第1のバスを介して前記第2の動作モードで動作する間に、前記第1のデバイスのセットに前記第1のバスを介した動作を中断させるための無効化コマンドが前記第1のバスを介して送信され、
前記第1のバスが前記第1のモードの動作に切り替わる間に、前記第1のデバイスのセットに前記第1のバスを介した動作を再開させるための有効化コマンドが前記第2のバスを介して送信される、
デバイス。 - 前記第2の通信プロトコルが前記第1のバスを介して第2のデータスループットを提供する間に、前記第1の通信プロトコルが前記第1のバスを介して第1のデータスループットを提供し、前記第2のデータスループットが前記第1のデータスループットよりも大きい、請求項1に記載のデバイス。
- 前記無効化コマンドが、前記第1のデバイスのセットの各々が前記第1のバスを介した受信および送信を防止する、請求項1に記載のデバイス。
- 前記第2の動作モードに入る前に、または同時に、前記第2のデバイスのセットからの少なくとも1つのデバイスが前記無効化コマンドを送信する、請求項1に記載のデバイス。
- 前記第2の動作モード中に、前記第1のデバイスのセットが前記第1のバスを介した作動による影響を受けない、請求項1に記載のデバイス。
- 前記第1のバスが、前記第1のモードの送信のために割り振られたN本のラインと、前記第2のモードの送信のために割り振られたM本のラインとを有する複数のラインを含み、NおよびMが2以上の整数である、請求項1に記載のデバイス。
- NおよびMが異なる整数である、請求項6に記載のデバイス。
- NおよびMが同じ整数であり、異なる数の論理送信レーンが前記第1のモードおよび前記第2のモードにおいて定義される、請求項6に記載のデバイス。
- 第1のデバイスのセットを第1のバスと第2のバスとに結合するステップであって、前記第1のデバイスのセットが、第1の通信プロトコルに従って前記第1のバスを介して通信するように構成される、ステップと、
第2のデバイスのセットを前記第1のバスに結合するステップであって、前記第2のデバイスのセットが、前記第1の通信プロトコルと第2の通信プロトコルとの両方に従って前記第1のバスを介して通信するように構成される、ステップと、
動作の前記第1のモードにおいて、前記第1の通信プロトコルを使用して前記第1のバスを介して同時に通信するように前記第1のデバイスのセットおよび前記第2のデバイスのセットを構成するステップと、
前記第1のデバイスのセットに前記第1のバス上での動作を中断させるための無効化コマンドを動作の前記第1のモード中に前記第1のバスを介して前記第2のデバイスのセットのうちの少なくとも1つから送信するステップと、
前記第1のバスが前記第1のモードの動作に切り替わる間に、前記第1のデバイスのセットに前記第1のバスを介した動作を再開させるための有効化コマンドを前記第2のバスを介して前記第2のデバイスのセットのうちの少なくとも1つから送信するステップと
を含む、方法。 - 前記第2の動作モード中に、前記第1のデバイスのセットが前記第1のバスを介した作動による影響を受けない、請求項9に記載の方法。
- 前記第1のデバイスのセットの各々が、前記無効化コマンドの受信時に、無効化モードに入るレシーバデバイスを含む、請求項10に記載の方法。
- 前記第1のデバイスのセットの各々が、前記有効化コマンドの受信時に、有効化モードに入るレシーバデバイスを含む、請求項10に記載の方法。
- 前記第1のバスが、前記第1のモードの送信のために割り振られたN本のラインと、前記第2のモードの送信のために割り振られたM本のラインとを有する複数のラインを含み、NおよびMが2以上の整数である、請求項10に記載の方法。
- 第1のバスに結合され、第1の通信プロトコルに従って前記第1のバスを介して通信するように構成される第1の通信回路と、
第2のバスに結合される第2の通信回路と、
前記第1の通信回路と前記第2の通信回路とに結合される制御回路であって、
前記第1の通信プロトコルを使用して前記第1のバスを介して通信するように前記通信回路を構成し、
無効化コマンドに関して前記第1のバスを監視し、
前記無効化コマンドの検出時に、前記第1のバスを介した作動を無視するように前記第1の通信回路を再構成し、
有効化コマンドに関して前記第2のバスを監視し、
前記有効化コマンドの検出時に、前記第1のバスを介した作動を再開するように前記第1の通信回路を再構成する
ように適合された、制御回路と
を備える、デバイス。 - 前記第1のバスが、前記第1のモードの送信のために割り振られたN本のラインと、前記第2のモードの送信のために割り振られたM本のラインとを有する、複数のラインを含み、NおよびMが2以上の整数である、請求項14に記載のデバイス。
- NおよびMが異なる整数である、請求項15に記載のデバイス。
- NおよびMが同じ整数であり、異なる数の論理送信レーンが前記第1のモードおよび前記第2のモードにおいて定義される、請求項15に記載のデバイス。
- 前記第1のモードにおいて、CCIe適合送信をサポートするためにN=2であり、前記第2のモードにおいて、3の階乗(3!)のマルチワイヤマルチレベル差動送信をサポートするためにM=3である、請求項15に記載のデバイス。
- 前記第1のモードにおいて、4ワイヤシングルエンドマルチワイヤ送信をサポートするためにN=4であり、前記第2のモードにおいて、2本のラインを使用した第1の差動ペアを介した送信と別の2本のラインを使用した第2の差動ペアを介した送信とをサポートするためにM=2x2である、請求項15に記載のデバイス。
- 前記第1のモードにおいて、CCIe適合送信の2つの差動ワイヤペアをサポートするためにN=2x2であり、前記第2のモードにおいて、4の階乗(4!)のマルチワイヤマルチレベル差動送信をサポートするためにM=4である、請求項15に記載のデバイス。
- N=M=3であり、前記第1のモードにおいて、3ワイヤシングルエンド送信が使用され、前記第2のモードにおいて、差動送信のためにラインの1つのペアが使用され、サイドバンドシグナリングのために残りのシングルラインが使用される、請求項15に記載のデバイス。
- 他のデバイスと共有される第1のバスに結合される第1の通信回路と、
前記他のデバイスと共有される第2のバスに結合される第2の通信回路と、
前記第1の通信回路と前記第2の通信回路とに結合される制御回路であって、
第1の通信プロトコルが前記第1のバスを介して使用される第1のモードで動作するように前記第1の通信回路を構成し、
第2の通信プロトコルをサポートしない他のデバイスに前記第1のバスを介した作動を無視するように示すための無効化コマンドを前記第1のバスを介して送信し、
前記第2の通信プロトコルが前記第1のバスを介して使用される第2のモードで動作するように前記第1の通信回路を再構成し、
第1の通信プロトコルが前記第1のバスを介して使用される前記第1のモードで動作するように前記第1の通信回路を再構成し、
前記他のデバイスに前記第1のプロトコルを使用して前記第1のバスを介した作動を再開するように示すための有効化コマンドを前記第2のバスを介して送信する
ように構成される制御回路と
を備える、デバイス。 - 前記無効化コマンドが、前記他のデバイスが前記第1のバスを介して通信することを防止する、請求項22に記載のデバイス。
- 前記無効化コマンドが、前記第1の通信回路が前記第2のモードに入る前に、または同時に送信される、請求項22に記載のデバイス。
- 前記第1のバスが、前記第1のモードの送信のために割り振られたN本のラインと、前記第2のモードの送信のために割り振られたM本のラインとを有する複数のラインを含み、NおよびMが2以上の整数である、請求項22に記載のデバイス。
- NおよびMが同じ整数であり、異なる数の論理送信レーンが前記第1のモードおよび前記第2のモードにおいて定義される、請求項25に記載のデバイス。
- 前記第1のモードにおいて、CCIe適合送信をサポートするためにN=2であり、前記第2のモードにおいて、3の階乗(3!)のマルチワイヤマルチレベル差動送信をサポートするためにM=3である、請求項25に記載のデバイス。
- 前記第1のモードにおいて、4ワイヤシングルエンドマルチワイヤ送信をサポートするためにN=4であり、前記第2のモードにおいて、2本のラインを使用した第1の差動ペアを介した送信と別の2本のラインを使用した第2の差動ペアを介した送信とをサポートするためにM=2x2である、請求項25に記載のデバイス。
- 前記第1のモードにおいて、CCIe適合送信の2つの差動ワイヤペアをサポートするためにN=2x2であり、前記第2のモードにおいて、4の階乗(4!)のマルチワイヤマルチレベル差動送信をサポートするためにM=4である、請求項25に記載のデバイス。
- N=M=3であり、前記第1のモードにおいて、3ワイヤシングルエンド送信が使用され、前記第2のモードにおいて、差動送信のためにラインの1つのペアが使用され、サイドバンドシグナリングのために残りのシングルラインが使用される、請求項25に記載のデバイス。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562131802P | 2015-03-11 | 2015-03-11 | |
US62/131,802 | 2015-03-11 | ||
US15/067,111 | 2016-03-10 | ||
US15/067,111 US10139875B2 (en) | 2014-02-20 | 2016-03-10 | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
PCT/US2016/022175 WO2016145401A1 (en) | 2015-03-11 | 2016-03-11 | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018509710A true JP2018509710A (ja) | 2018-04-05 |
Family
ID=55629134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017546974A Pending JP2018509710A (ja) | 2015-03-11 | 2016-03-11 | 共有マルチモードバスを介したレガシーデバイスと次世代デバイスの共存のためのフェアウェルリセットおよび再開方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3268868B1 (ja) |
JP (1) | JP2018509710A (ja) |
KR (1) | KR20170126904A (ja) |
CN (1) | CN107408097A (ja) |
WO (1) | WO2016145401A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022019147A1 (ja) * | 2020-07-22 | 2022-01-27 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置、通信方法、およびプログラム |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417172B2 (en) | 2014-04-28 | 2019-09-17 | Qualcomm Incorporated | Sensors global bus |
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
WO2019040360A1 (en) * | 2017-08-24 | 2019-02-28 | Qualcomm Incorporated | GLOBAL SENSOR BUS |
US20190095273A1 (en) * | 2017-09-27 | 2019-03-28 | Qualcomm Incorporated | Parity bits location on i3c multilane bus |
CN108228517B (zh) * | 2017-12-01 | 2019-09-13 | 广东高云半导体科技股份有限公司 | I3c电路设备、系统及通信方法 |
CN108255754B (zh) * | 2017-12-01 | 2019-11-19 | 广东高云半导体科技股份有限公司 | 一种兼容i2c的i3c主设备、i3c主从设备通信系统及方法 |
KR20210102754A (ko) | 2020-02-12 | 2021-08-20 | 정현명 | 무선충전이 가능한 핸드폰 핸드그립 |
CN111447127B (zh) * | 2020-03-11 | 2022-05-06 | 北京金茂绿建科技有限公司 | 一种总线复用的方法和系统 |
KR20230052505A (ko) | 2021-10-13 | 2023-04-20 | 염민재 | 가이드 레일이 장착된 핸드폰용 그립톡 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574233B1 (en) * | 1999-04-09 | 2003-06-03 | Avaya Technology Corp. | Arrangement for redefining an interface while maintaining backwards compatibility |
US6502146B1 (en) * | 2000-03-29 | 2002-12-31 | Intel Corporation | Apparatus and method for dedicated interconnection over a shared external bus |
US9552325B2 (en) * | 2013-06-12 | 2017-01-24 | Qualcomm Incorporated | Camera control interface extension bus |
US9852104B2 (en) * | 2014-02-20 | 2017-12-26 | Qualcomm Incorporated | Coexistence of legacy and next generation devices over a shared multi-mode bus |
US10007628B2 (en) * | 2014-06-18 | 2018-06-26 | Qualcomm Incorporated | Dynamically adjustable multi-line bus shared by multi-protocol devices |
-
2016
- 2016-03-11 KR KR1020177025275A patent/KR20170126904A/ko unknown
- 2016-03-11 EP EP16711955.1A patent/EP3268868B1/en active Active
- 2016-03-11 JP JP2017546974A patent/JP2018509710A/ja active Pending
- 2016-03-11 CN CN201680014367.6A patent/CN107408097A/zh active Pending
- 2016-03-11 WO PCT/US2016/022175 patent/WO2016145401A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022019147A1 (ja) * | 2020-07-22 | 2022-01-27 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置、通信方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP3268868A1 (en) | 2018-01-17 |
EP3268868B1 (en) | 2018-12-05 |
CN107408097A (zh) | 2017-11-28 |
WO2016145401A1 (en) | 2016-09-15 |
KR20170126904A (ko) | 2017-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018509710A (ja) | 共有マルチモードバスを介したレガシーデバイスと次世代デバイスの共存のためのフェアウェルリセットおよび再開方法 | |
US9852104B2 (en) | Coexistence of legacy and next generation devices over a shared multi-mode bus | |
US10139875B2 (en) | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus | |
KR101790900B1 (ko) | 카메라 제어 인터페이스 확장 버스 | |
JP6190068B2 (ja) | 複数のマスタがシングルマスタバスアーキテクチャにおいて動作できるようにする方法および装置 | |
EP3055779B1 (en) | Coexistence of i2c slave devices and camera control interface extension devices on a shared control data bus | |
US9892077B2 (en) | Camera control interface slave device to slave device communication | |
US10579581B2 (en) | Multilane heterogeneous serial bus | |
JP2017511044A (ja) | エラー検出最適化を容易にするための共有バスを介したビット割振り | |
US9990330B2 (en) | Simultaneous edge toggling immunity circuit for multi-mode bus | |
US20150234773A1 (en) | Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus | |
US20190220436A1 (en) | Data lane validation procedure for multilane protocols | |
US10031547B2 (en) | CCIe receiver logic register write only with receiver clock |