(57)【要約】  ブロードキャストチャネル及び非ブロードキャストチャネルを含み、プロセッサ間通信システムで更なるチャネルを定めることに関する方法及び装置である。ブロードキャスト識別子が非ブロードキャストであるように定められたチャネルで送信されてもよく、プロセッサ間通信定義以外の更なるブロードキャストチャネルを生成する。同様に、デバイス特有の識別子がブロードキャストチャネルであるように定められたチャネルで送信されてもよく、プロセッサ間通信定義以外の更なる非ブロードキャストチャネルを生成する。
2008515092.tif 000002
【特許請求の範囲】
【請求項１】
２つのデバイス間での通信方法であって、
前記デバイス間で物理相互接続上にブロードキャストチャネルを提供し、前記物理相互接続は標準定義を有し、前記ブロードキャストチャネルは、チャネル番号及びブロードキャスト識別子により特定され、前記物理相互接続上で複数のデバイスに送信するように前記標準定義で定められ、
特定のデバイスを示すデバイス特有の識別子を用いて、前記ブロードキャストチャネル上でデータメッセージを送信することを有する方法。
【請求項２】
前記標準定義は、MSL（Mobile  Scalable  Link）相互接続仕様に準拠する請求項１に記載の方法。
【請求項３】
前記チャネル番号は、チャネル8、9又は15のうち１つを有する請求項２に記載の方法。
【請求項４】
前記ブロードキャスト識別子は、前記物理相互接続上の全てのデバイスへの送信を示す請求項１に記載の方法。
【請求項５】
前記デバイス特有の識別子は、前記物理相互接続上の特定のデバイスのアドレスを示す請求項１に記載の方法。
【請求項６】
コンピュータデバイス間の物理相互接続で非ブロードキャストチャネルを提供し、前記非ブロードキャストチャネルは、チャネル番号及びデバイス特有の識別子により特定され、前記デバイス特有の識別子により特定される特定のデバイスに送信するように前記標準定義で定められ、
複数のデバイスを示すブロードキャスト識別子を用いて、前記ブロードキャストチャネル上でブロードキャストメッセージを送信することを更に有する請求項１に記載の方法。
【請求項７】
２つのデバイス間で物理インタフェースの第１のチャネルを動作し、前記第１のチャネルは、チャネル番号及びブロードキャストアドレスにより特定されるように前記物理相互接続の仕様で定められ、前記第１のチャネルは複数のデバイスに同時に送信するためのものであり、
特定のデバイスを示すデバイス特有の識別子を用いて、前記第１のチャネル上でメッセージを送信すること
を有する動作を機械に実行させる命令を提供するコンテンツを有する機械アクセス可能媒体を有する製造物。
【請求項８】
前記物理相互接続の仕様は、MSL2（Mobile  Scalable  Link  2）の仕様に準拠する請求項７に記載の製造物。
【請求項９】
前記物理インタフェースの第２のチャネルを動作し、前記第２のチャネルは、チャネル番号及び特定のデバイスアドレスにより特定されるように前記仕様で定められ、前記第２のチャネルは特定のデバイスにメッセージを送信するためのものであり、
前記第２のチャネル上で複数のデバイスにブロードキャストアドレスを用いて送信すること
を有する動作を前記機械に実行させる命令を提供するコンテンツを更に有する請求項７に記載の製造物。
【請求項１０】
通信バスで通信する装置であって、
前記装置をデータ線に結合するデータ線インタフェースであり、前記データ線は、ブロードキャストチャネルと非ブロードキャストチャネルとを提供するように相互接続標準で定められ、前記ブロードキャストチャネルは、ブロードキャスト識別子で活性化されるように前記標準で定められ、前記データ線インタフェースは、デバイス特有の識別子を用いて前記データ線上で前記ブロードキャストチャネルを活性化するデータ線インタフェースと、
前記装置を制御線に結合する制御線インタフェースであり、前記制御線は前記データ線と独立して動作される制御線インタフェースと
を有する装置。
【請求項１１】
前記制御線は、フロー制御信号線を有する請求項１０に記載の装置。
【請求項１２】
前記ブロードキャスト識別子は、１６進数の“F”を有する請求項１０に記載の装置。
【請求項１３】
前記デバイス特有の識別子は、前記ブロードキャスト識別子の値以外の値のデバイスアドレスを有する請求項１０に記載の装置。
【請求項１４】
前記データ線インタフェースは、前記ブロードキャストチャネルに対応するチャネル番号と前記デバイス特有の識別子とを前記データ線上で指定することにより、前記ブロードキャストチャネルを活性化する請求項１０に記載の装置。
【請求項１５】
複数の相互接続されたプロセッサを有するポータブルユニットであって、
アプリケーションレベルの動作を実行するアプリケーションプロセッサと、
周辺機器プロセッサを有する周辺機器サブシステムと、
前記アプリケーションプロセッサと前記周辺機器プロセッサとを相互接続する通信バスであり、前記通信バスの動作は、通信バス標準に少なくとも部分的に基づき、前記通信バスはデータ線を有し、前記データ線は複数のチャネルでデータを伝送するように前記標準で定められ、前記チャネルのうち１つはマルチキャストデータのみを伝送するように前記標準で定められ、前記ポータブルユニットのチャネル定義は、前記チャネル上で前記アプリケーションプロセッサと前記周辺機器プロセッサとの間の非マルチキャストデータ伝送を許容するように変更される通信バスと
を有するポータブルユニット。
【請求項１６】
前記アプリケーションプロセッサは、汎用プロセッサを有する請求項１５に記載のポータブルユニット。
【請求項１７】
前記周辺機器サブシステムは、無線通信モジュールを有する請求項１５に記載のポータブルユニット。
【請求項１８】
前記周辺機器プロセッサは、信号プロセッサを有する請求項１５に記載のポータブルユニット。
【請求項１９】
前記通信バス標準は、MSL2（Mobile  Scalable  Link  2）標準を有する請求項１５に記載のポータブルユニット。
【請求項２０】
マルチキャストデータは、ブロードキャストデータを有する請求項１５に記載のポータブルユニット。
【請求項２１】
前記チャネル定義は、前記チャネルがデバイス特有の識別子と前記チャネルに関連するチャネル番号とで活性化されることを許容するように変更される請求項１５に記載のポータブルユニット。
【請求項２２】
前記アプリケーションプロセッサ及び前記周辺機器サブシステムのデコーダは、変更されたチャネル定義を認識し、
前記通信バス上で前記アプリケーションプロセッサ及び前記周辺機器サブシステムに相互接続された他のプロセッサは、変更されたチャネル定義を認識せず、前記チャネル上での前記非マルチキャストデータ伝送を無視する請求項２１に記載のポータブルユニット。
【請求項２３】
前記アプリケーションプロセッサ及び前記周辺機器サブシステムは、前記通信バスの制御を取得し、前記チャネル上で前記非マルチキャストデータを送信するようにアービトレーションする請求項１５に記載のポータブルユニット。
【請求項２４】
前記通信バス上のデータ線は、非マルチキャストデータのみを伝送するように前記標準で定められた異なるチャネルを更に有し、
前記ポータブルユニットでの前記異なるチャネルのチャネル定義は、前記異なるチャネル上で前記アプリケーションプロセッサと前記周辺機器プロセッサとの間でマルチキャストデータ伝送を許容するように変更される請求項１５に記載のポータブルユニット。
【請求項２５】
アプリケーションレベルの動作を実行する汎用プロセッサと、
無線通信機能を提供する信号プロセッサを有する無線通信モジュールと、
前記汎用プロセッサと前記無線通信モジュールとを相互接続する通信バスであり、前記汎用プロセッサ又は前記無線通信モジュールのうち一方は前記通信バスのマスターとして動作し、他方は前記通信バス上でスレーブとして動作し、前記通信バスはデータ線を有し、前記データ線は複数のチャネルでデータを伝送するようにプロセッサ間プロトコル標準で定められ、前記チャネルのうち１つはブロードキャストデータのみを伝送するように前記標準で定められ、前記マスターは前記標準プロトコルチャネル定義の変更版に従って前記スレーブにデータを送信し、変更されたチャネル定義は、前記チャネル上での前記マスターとスレーブとの間のデバイス特有のデータ伝送を許容する通信バスと、
前記無線通信モジュールに結合され、無線信号を送信又は受信するアンテナと
を有するシステム。
【請求項２６】
前記プロセッサ間プロトコル標準は、MSL2（Mobile  Scalable  Link  2）標準を有する請求項２５に記載のシステム。
【請求項２７】
前記チャネル定義は、前記チャネルがデバイス特有のアドレスと前記チャネルに関連するチャネル番号とで活性化されることを許容するように変更される請求項２５に記載のシステム。
【請求項２８】
前記汎用プロセッサ及び前記無線通信モジュールは、前記通信バスの制御を取得し、前記チャネル上で前記非マルチキャストデータを送信するようにアービトレーションし、
前記マスターは、前記通信バスの制御を有するものである請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、共通の発明者を有しており同時に出願された“Transfer  Acknowledgement  Mechanism  for  an  MSL  Architecture”という題名の米国特許出願（代理人整理番号No.42P20074）に関係する。
【０００２】
本発明の実施例は、プロセッサ間通信に関し、特にMSL（Mobile  Scalable  Link）アーキテクチャのチャネル定義機構に関する。
【背景技術】
【０００３】
MSL（Mobile  Scalable  Link）プロトコルに従った従来のプロセッサ間通信は、MSL仕様のチャネル定義に限定されている。具体的には、MSLアーキテクチャでは４ビットがチャネルを指定するために利用可能であり、全ての16の潜在的なチャネルがMSL2で定義される。更に、従来のMSLデータ伝送は一方向であり、送信デバイスがデータを送信することのみを提供し、データが正確に受信されたことを受信デバイスが確認する機構を提供しない。
【発明を実施するための最良の形態】
【０００４】
本発明の実施例の説明は、限定ではなく一例として、図面に様々な例を有する。
【０００５】
ここでの“実施例”への様々な言及は、本発明の少なくとも１つの実施例に含まれる特定の機能、構造又は特徴を記述するものとして理解されるべきである。従って、“一実施例”又は“代替実施例”のような語句が現れることは、本発明の様々な実施例を記載しており、必ずしも同じ実施例を示しているとは限らない。
【０００６】
図１は、プロセッサ間通信アーキテクチャを使用した本発明の一実施例のブロック図である。システム120は、通信バス110で通信する複数のデバイス、装置、機械等を有してもよい。システム120は、携帯電話、携帯情報端末（PDA）、無線通信デバイス、ポータブルコンピュータデバイス等を含み、相互接続上の複数のデバイスを有してもよい様々な形式のデバイスを表す。システム120はまた、他のデバイス（例えば、デジタル時計、ステレオシステム、カメラ等）を表してもよい。
【０００７】
通信バス110は、システム120の様々なデバイス間の１つ以上の信号線を表す。一実施例では、通信バス110は、様々なデバイス間の物理相互接続を表してもよい。一実施例では、通信バス110は、データ線とサイドバンド信号線（sideband  signal  line）とを有してもよい。例えば、通信バス110は、MSL（Mobile  Scalable  Link）又はMSL2マルチドロップバスでもよい。
【０００８】
通信バス110に存在してもよいデータ線は、複数の論理チャネルが存在してもよい通信インタフェースを提供する。一実施例では、チャネルは物理線で多重されてもよい。通信は、ブロードキャストチャネルであるチャネルと、ブロードキャストされない又はデバイス特有の他のチャネルとで動作するように定められてもよい。例えば、プロトコルは２つ以上のヘッダフィールドを定めてもよく、このヘッダフィールドのうち１つは、アドレス又は他の識別子（一般的にはID又はデバイス特有のID）及びチャネル番号である。これらのフィールドがデータ線に配置されると、その番号に対応するチャネルが活性化され、特定されたデバイスがデータペイロードを受信するように指示される。
【０００９】
１つ以上のチャネル番号がブロードキャストチャネルであるように定められてもよく、１つ以上のチャネル番号が非ブロードキャストチャネル又はデバイス特有のチャネルであるように定められてもよい。特定のチャネル番号の定義を有するにもかかわらず、一実施例では、ブロードキャストチャネルと非ブロードキャストチャネルとの違いは、チャネルが呼び出される方法にある。例えば、ブロードキャストチャネルはブロードキャストチャネル番号及びブロードキャストID又は通信バス110の全てのデバイスが受信することを示すように定められた何らかの識別子により指定されてもよい。非ブロードキャストチャネルは、チャネル番号がデバイス特有のチャネルとして定められたチャネルでもよく、デバイス特有のIDがデータ線に配置される。このように、ブロードキャストチャネルは、１つのデバイスから複数又は通信バス110の他の全てのデバイスへの通信を提供してもよく、非ブロードキャストチャネルは、送信デバイスからID番号に合致する特定のデバイスへの通信を提供してもよい。
【００１０】
サブバンド線は、２つ以上のデバイスの間に存在してもよく、データ線と独立して、データ線と共に、データ線と並列して、２つ以上の通信デバイスの間で情報を提供するようにアサートされてもよい（アクティブ・ハイ線でハイ（論理１）に設定され、アクティブ・ロー線でロー（論理０）に設定される）１つ以上の信号線として理解されるべきである。サブバンド線は、例えば送信準備完了信号、待機信号、システムクロック線等を示す線でもよい。
【００１１】
一実施例では、通信バス110は、アービトレーション（arbitration）を通じて制御されてもよい。アービトレーション方式では、同時に単一のデバイスがバスの制御を有してもよい。デバイスがバスの“制御”を有することを指定することは、データ線とサブバンド線とを参照してもよい。代替として、デバイスがバスを制御することを指定することは、単に通信バス110の１つ以上の物理線で通信する権利を有するデバイスを参照してもよい。一実施例では、バス上のマスターデバイスとスレーブデバイスとを指定するために、アービトレーションが使用されてもよい。マスターはデータ線でメッセージ（例えば、ID、チャネル番号、データバイト等）を出す権利を有してもよい。このように、マスターデバイスは送信する機会で指定されたデバイスである。スレーブはデータ線でメッセージを出す権利を有さないが、マスターはバスを制御する。このように、スレーブは、受信するように指定されたデバイス又は通信を受信していないデバイスでもよいが、通信がデバイスに送信されるまで又はデバイスが送信する機会を有するまで待機しなければない。しかし、一実施例では、バスがマスターにより制御される場合であっても、１つ以上のサブバンド信号が受信デバイス又はスレーブデバイスによりアサートされてもよい。デバイスは、それぞれが送信する機会を有するために、バス又はデータ線の制御を交互に行ってもよい。
【００１２】
従って、デバイス100は、バスを制御してもよく、マスターと考えられてもよい。一実施例では、デバイス100は、サブシステム、回路、プロセッサ等を表す。プロセッサとして、デバイスは、システム120の汎用プロセッサ、アプリケーションプロセッサ（例えば、システム120で１つ以上のアプリケーションレベルのプログラム／コード実行のアクセス及び／又は制御を有するデバイス）等を表してもよい。一実施例では、システム120のハイレベルプロセッサは、バスのマスターとして開始してもよく、通信バス110のクロック信号を生成してもよい。ハイレベルプロセッサは、システム120の動作中に通信バス110でスレーブとして交代してもよい。図示のものより多い又は少ないデバイスがシステム120に存在してもよい。
【００１３】
デバイス101-103は、他の回路、サブシステム、プロセッサ、ロジックアレイ、周辺機器、外部サーバ等を表す。各デバイス101-103は、システム120の或る動作／実行時点でマスターデバイスを表してもよい。他の時には、これらのデバイスは、通信バス110に取り付けられたスレーブデバイスを表す。図１がシステム120の実行のスナップショットであると考えられる場合、これらのデバイスは、現時点ではスレーブデバイスとして考えられてもよく、メッセージを受信する、及び／又はメッセージを受信及び／又は送信する時間までアイドルに留まる。
【００１４】
一実施例では、通信バス110は、ブロードキャストチャネルと非ブロードキャストチャネルとをサポートしてもよく、ブロードキャストチャネルは特定のチャネル番号とブロードキャストIDとにより指定され、非ブロードキャストチャネルは他の異なる特定のチャネル番号とデバイス特有のIDとにより指定される。一実施例では、ブロードキャストIDは16進数の“F”である。一実施例では、デバイス特有のIDは、範囲0-7の数である。一実施例では、チャネル番号は、例えば8、16、128等でもよい。チャネル番号は、チャネル番号を指定するために使用されるビット数に依存してもよい。例えば、１ニブル（nibble）（４ビット）のチャネル番号識別子は16の異なるチャネルを特定する可能性を有する。全ての潜在的に利用可能なチャネルがブロードキャストチャネル又は非ブロードキャストチャネルとして定められることを仮定する。全てのチャネルが定められると、従来では、将来の使用のために確保されるチャネルは存在しない。
【００１５】
一実施例では、ブロードキャストチャネル又は非ブロードキャストチャネルとして定められる全ての潜在的なチャネルを有するシステムは、同じアドレス空間内で更に多くのチャネルを定義する機構を使用してもよい。例えば、ブロードキャストチャネルが定められる場合、デバイス特有のIDがブロードキャストチャネルと共に使用されてもよい。同様にブロードキャストIDは非ブロードキャストチャネルと共に使用されてもよい。このように、一実施例では、チャネルがブロードキャストチャネルであるか非ブロードキャストチャネルであるかは、指定されたチャネル番号の関数からデータチャネルに配置されるID番号の関数に変えられてもよい。プロトコル指定の非ブロードキャストチャネルの数までの複数の余分のブロードキャストチャネルが、仕様／プロトコルの定義で定められ得るもの以外で使用するために、生成されて使用されてもよい。同様に、ブロードキャストチャネルの数までの複数の余分の非ブロードキャストチャネルが、仕様／プロトコルの定義で定められ得るもの以外で使用するために、生成されて使用されてもよい。
【００１６】
図２は、プロセッサ間通信仕様のチャネル定義の一実施例のブロック図である。一実施例では、プロセッサ間通信の定義は、デバイス特有のアドレスを使用するチャネルと、ブロードキャストアドレスを使用するチャネルとを定めてもよい。一実施例では、MSLは16のチャネルを定義し、チャネル8、9及び15はブロードキャストの使用に専用であり、残りのチャネルはデバイス特有のメッセージ伝送用である。従来のMSLは、16の定義されたチャネルを超えるチャネルを許容しない。
【００１７】
一実施例では、更なるデバイス特有のメッセージ伝送機構を提供するために、チャネル8、9及び／又は15のうち１つと共にデバイス特有のアドレスが使用される。図２では、これらはRFU（reserved  for  future  use）チャネルとして指定される。MSL使用がこれらを定めていないため、これらのチャネルが確保される。これらが定められていないため、システム設計者はカスタムの特定の用途又は使用にこれらのチャネルを定めてもよい。
【００１８】
一実施例では、更なるブロードキャストメッセージ伝送機構を提供するために、チャネル0-7及び／又は10-14のうち１つと共にブロードキャストアドレスが使用される。この場合も同様に、これらのチャネルは、システムブロードキャスト情報でカスタム定義されてもよい。例えば、カスタムのシステム状態、メッセージ等が、システムの特定のデバイスで有用でもよい。
【００１９】
これらのチャネルは従来のMSLで定められていないため、１つ以上のRFUチャネルを使用するシステムは、依然として従来のシステムと下位互換性を有してもよい。例えば、ブロードキャストアドレスはブロードキャストチャネル8と共に使用されるものとして定められるため、ブロードキャストアドレス以外のアドレスがブロードキャストチャネルに指定されている場合、システムのデバイスはメッセージを無視してもよい。使用されるデバイス特有のアドレスは、自分のデバイスIDがブロードキャストチャネルで指定されたアドレスである場合に、ブロードキャストチャネルで受信してメッセージをデコードするデバイスのものでもよい。
【００２０】
図３は、プロセッサ間通信仕様を使用したシステムの通信バスの一実施例のブロック図である。アプリケーションプロセッサ310は、システムでアプリケーションレベルの機能を実行し得るプロセッサ、サブシステム、ゲートアレイ等でもよい。アプリケーションプロセッサ310は、アプリケーションプロセッサ310と１つ以上の他のプロセッサ、デバイス、サブシステム等（例えばデバイス320）との間でプロセッサ間通信を容易にするインタフェースを有してもよい。デバイス320は、周辺機器、回路、ハードウェア等を制御するサブシステム及び／又はドライバを表してもよい。
【００２１】
一実施例では、アプリケーションプロセッサ310はバスマスターであり、アプリケーションプロセッサ310が自分とデバイス320との間で物理相互接続の１つ以上の部分を制御することを意味する。アプリケーションプロセッサ310は、デバイス320内で物理相互接続へのインタフェースを有してもよい。同様に、デバイス320は物理相互接続へのインタフェースを有してもよい。インタフェースは、デバイス／プロセッサを物理相互接続に結合するために、１つ以上のピン、受信回路、ドライブ回路、プルアップ／プルダウン回路、バッファ等を有してもよい。物理相互接続は、複数の信号線を有してもよく、クロック信号CLK331と、ストローブ信号STB332と、待機信号WAIT333と、データ線DAT[N:0]344と、アービトレーション信号LREQ#335とを有してもよい。これらの信号が図示されているが、多い又は少ない信号線がシステムに存在してもよい。
【００２２】
一実施例では、DAT[N:0]334は、プロセッサ間通信が送信されてもよい複数の信号線（例えば4、8）を表す。他の信号線は、サイドバンド信号線と呼ばれてもよい。一実施例では、マスターデバイスはDAT[N:0]334を制御する。マスターデバイスはまた、１つ以上のサイドバンド線を制御してもよい。LREQ#335で示すように、バスの制御はアービトレーションされてもよく、制御が変更して、或る時点でマスターであるデバイスが他の時点でバスのスレーブになってもよいことを意味する。一実施例では、サイドバンド信号（例えばWAIT333）は、バスのスレーブデバイスによりアサートされてもよい。
【００２３】
一実施例では、チャネルはDAT[3:0]の４つのデータ線334のそれぞれにニブルの１ビットを置くことにより指定されてもよい。他の実施例では、データ線334は8のデータ線DAT[7:0]を有してもよく、フルバイトが線に配置されてもよい。代替として、システムはタイムスロットに分割された各線を有するように設計されてもよく、各データ線DAT[N:0]334は別々に異なるデータチャネルを使用してもよい。システムは、チャネル番号と、デバイスIDと、DAT[N:0]334に配置されたデータペイロードとを有するように動作してもよい。一実施例では、チャネルは、チャネル番号と識別子とがDAT[N:0]に配置されたときに活性化されてもよい。識別子は受信デバイスでデコードされ、受信デバイスが目的の受信機であるか否かを決定してもよい。
【００２４】
あるものはブロードキャストチャネルであり、あるものは非ブロードキャストチャネルである2Nのチャネルが定められるシステムでは、更なるデバイス特有のメッセージ伝送機構を提供するために、デバイス特有のIDがブロードキャストチャネルで指定されてもよい。同様に、更なるブロードキャストメッセージ伝送機構を提供するために、ブロードキャストIDがデバイス特有のチャネルで指定されてもよい。このように、標準のチャネル定義が拡張され、標準で定義されたもの以外の識別子でのメッセージ伝送を有するように変更されたチャネル定義を生成してもよい。従って、デコーダは、仕様に従ってチャネルで予期するもの以外の識別子を有するメッセージを有効として受信してもよい。
【００２５】
図４は、前述のプロセッサ間通信の一実施例のタイミング図である。CLKはタイミング図でクロックパルスを表す。共有プロセッサ間通信バスは、少なくともバスでの通信が関与する限り、バス上のデバイスを同期させるクロック信号を有してもよい。一実施例では、DATA[3:0]は、デバイスIDフィールド411と、チャネル番号フィールド412と、データフィールド413とを有してもよい。更なるフィールド及び／又は異なるフィールドのサイズがサポートされてもよい。
【００２６】
ブロードキャストID又はデバイス特有のアドレス／IDは、目的のメッセージ受信者を示すために、デバイスIDフィールド411に配置されてもよい。ブロードキャストIDは、単一より多くのスレーブデバイスによりデコードされるメッセージを示してもよい。デバイス特有のIDは、メッセージが指定された目的の受信者のみによってデコードされることを示してもよい。例えば図４では、“1”のデバイス特有のIDは、アドレス／識別子“1”を備えたデバイスがDATA[3:0]で送信されるメッセージの目的の受信者であることを示す。一実施例では、“F”のデバイスIDは、ブロードキャストメッセージを示してもよい。このことは、2N（又はこの例では16）より少ないデバイスがシステムでサポートされ得ることを仮定する。
【００２７】
チャネル番号412は、システムで定められたチャネルのいずれかになるように指定されてもよい。一実施例では、全ての2Nのチャネルがプロセッサ間通信の定義で定められることを仮定する。ただし、Nはチャネル番号を表すために使用されるビット／線の数を示す。更に、少なくとも１つのチャネルがブロードキャストチャネルとして定められることを仮定する。ブロードキャストチャネルは、デバイスIDフィールド411に配置された対応のブロードキャストIDを有するように定義される。一実施例では、チャネル番号412で示すチャネル8は、定義されたブロードキャストチャネルを表す。このように、ブロードキャストチャネルは、1のデバイス特有のIDで指定される。チャネル及びデバイスIDがプロトコルに従って不一致になるため、バス上のデバイスはメッセージを無視してもよい。メッセージはデバイス1にアドレス指定されるため、デバイス1は、メッセージが標準的なプロトコル定義に従って技術的に不適切になり得る場合であっても、メッセージをデコードするように動作可能でもよい。このように、更なるチャネルがサポートされてもよい。
【００２８】
一実施例では、図４のタイミング図及びシステムに関連するプロトコルは一方向（又は送信のみ）でもよく、標準的なプロトコル定義では受信デバイスが伝送を決して承認しないことを意味する。バスの制御をアービトレーションする受信デバイスがバスの所有権を定め、元の送信デバイスに承認サイクルを送信するものとして、標準的な承認機構がプロトコルにより定められてもよい。プラットフォーム／システムの複数のデバイスもまたバスを要求している場合、この処理は、伝送を承認するときに実質的な遅延を生じ得る。受信の失敗に対してメッセージを再送信する必要がある場合、処理は更に拡張されてもよい。従って、標準的な承認は、性能、電力及びタイミングに関して非効率になり得る。
【００２９】
一実施例では、送信デバイス又はマスター（確立された所有権を有するデバイス）は、データメッセージの伝送に続いて、承認メッセージの伝送を行ってもよい。データメッセージは、特定のデバイスへのデータチャネルを使用して、標準的な通信プロトコル仕様に従ってもよい。承認メッセージは、デバイス特有のIDをデバイスIDフィールド411に配置し、ブロードキャストチャネルをチャネル番号フィールド412に配置することにより送信される。データの１つ以上のニブルは、データフィールド413に配置されてもよい。一実施例では、承認中にデータフィールド413に配置されたデータの値は、“Don’t  Care”である。一実施例では、特定の承認の値が使用されてもよい。承認メッセージの間に、受信デバイスは、メッセージが受信されたか否かを示すために１つのサブバンド信号をアサート又はアサート停止してもよい。
【００３０】
例えば図４の例では、送信デバイスが“1”のデバイスIDと“8”のブロードキャストチャネルとを指定する間に、チャネル／制御ストローブ420はアサートされてもよい。データ413はDon’t  Careであり、受信デバイスは送信デバイスのメッセージのデータペイロードの間にWAIT信号430をアサートする。システムの実装に応じて、メッセージの間にWAIT430をアサートすることは、メッセージが再送信されることを示してもよい。代替として、メッセージの間にWAIT430をアサートすることは、メッセージが正確に受信されたことを示してもよい。元の送信デバイスは、時間440でWAIT信号430をサンプリングして、元の受信デバイスの承認メッセージを“読み取り”又は“受信”してもよい。
【００３１】
サンプリング時間はシステムの実装に依存してもよい。元の受信デバイスが元の送信デバイスからのメッセージ伝送を承認しなければならない時間中に、データペイロードの１つ以上のニブルが存在してもよい。データの２つのニブルが単に説明の目的で図示されており、必要又は限定であると解釈されるべきではない。
【００３２】
図５は、プロセッサ間メッセージの送信の一実施例のフローチャートである。一実施例では、複数のプロセッサ、サブシステム、周辺機器等がバスで相互接続されている。プロセッサ間通信は、バスに沿ったメッセージの使用を通じて容易にされ得る。メッセージが送信用に準備されてもよい502。バス及び／又はデータ線の所有権／制御を有するデバイスはメッセージを送信することを許容されてもよい。送信デバイスがマスターである間に、目的の受信機はバス上でスレーブとして動作してもよい。
【００３３】
メッセージがブロードキャストであるか非ブロードキャストであるかが決定される510。例えば、送信デバイスの送信モジュールは、ブロードキャストメッセージが送信されていることを決定してもよい。他の例では、送信用のメッセージを生成するプロセッサが、メッセージがブロードキャスト又は非ブロードキャストであることを送信機に指示する。ブロードキャストメッセージは複数の受信機を対象としており、特定の受信デバイスを示さなくてもよい。非ブロードキャストメッセージは１つ以上の指定の受信機を対象としており、この１つ以上の指定の受信機はデバイスIDにより特定されてもよい。メッセージがブロードキャストメッセージである場合、メッセージがブロードキャストチャネルで送信されるか否かが決定される520。例えば、プロセッサ間通信に関与するために送信デバイスにより使用される通信プロトコルが、標準的なプロトコル仕様／定義に従って特定の所定のチャネルで送信される特定のメッセージ形式を指定してもよい。ブロードキャストメッセージがブロードキャストチャネルの定義に一致するブロードキャストメッセージである場合、メッセージは標準的な仕様に従って送信されてもよい522。
【００３４】
メッセージが標準的な仕様の定義に一致しないブロードキャストメッセージである場合、ブロードキャストID及び非ブロードキャストチャネルが指定されてもよい524。次に、メッセージが送信されてもよい526。
【００３５】
メッセージがブロードキャストメッセージでない場合、これは非ブロードキャストメッセージであり、メッセージが標準的なデバイス特有のチャネルで送信されるか否かが決定される530。例えば、送信機は、特定のメッセージに使用するためのチャネルを示す参照テーブル、格納先等にアクセスしてもよい。デバイス特有のチャネルは、デバイスIDにより指定されるデバイスに特定のメッセージ形式を伝送するために仕様で定められたものでもよい。非ブロードキャストメッセージが仕様のデバイス特有のチャネルの定義に一致するメッセージである場合、メッセージは標準的な仕様に従って送信されてもよい522。
【００３６】
メッセージが標準的な仕様の定義に一致しないデバイス特有のメッセージである場合、デバイス特有のID及びブロードキャストチャネルが指定されてもよい534。次に、メッセージが送信されてもよい536。
【００３７】
図６は、プロセッサ間メッセージ伝送の承認の一実施例のフローチャートである。メッセージはデータチャネルで送信デバイスから受信デバイスに伝送されてもよい602。これは、プロセッサ間通信仕様のチャネル及び伝送の定義に準拠するメッセージでもよい。データチャネルでのデータ伝送は、データチャネルとデバイス特有のIDとを指定することを有してもよい。
【００３８】
一実施例では、送信は一方向でもよく、伝送を承認する機構は仕様で提供されない。前述のように、デバイス特有のIDは、従来ではブロードキャストチャネルであるチャネルで指定されてもよい604。指定のブロードキャストチャネルで伝送されるメッセージが相互接続上の全てのデバイスにより通常通り受信されてデコードされる場合であっても、デバイス特有のIDは、メッセージが目的の受信機のみによって受信されてデコードされることをもたらしてもよい。
【００３９】
第１の送信はプロトコル仕様に従ってもよく、第２の送信はデバイス特有の伝送について定められていないチャネルでのデバイス特有の通信でもよい。一実施例では、受信機は、送信デバイスへの承認を示すために、サイドバンド信号（例えばフロー制御信号線）をアサートしてもよい。サイドバンド信号がアサートされるか否かが決定される610。例えば、マスターはサイドバンド線の状態（例えばアサート又はアサート停止）を検査／決定し、メッセージが受信されたか否かの指示を元の受信デバイスから受信してもよい。アサートは、信号線がアクティブ・ハイ信号線についてハイに駆動され、アクティブ・ロー信号線についてローに駆動されることを意味する。
【００４０】
サイドバンド信号がアサートされると、元の受信デバイスは、メッセージが正確に受信されておらず、メッセージが再送信されるべきであることを元の送信デバイスに指示してもよい614。サイドバンド信号がアサート停止されると、元の受信デバイスは、メッセージが正確に受信されており、メッセージが承認されてもよいことを元の送信デバイスに指示してもよい612。アサート信号が正確に受信された信号を示してもよく、アサート停止信号がメッセージが再送信されるべきであることを示してもよいという点で、これらの条件は切り替えられてもよい。
【００４１】
様々な実施例の図５及び６の様々な動作は、ここに記載の構造を利用して実行されてもよい。更に、図５及び６に記載の動作を実行するために、命令／コードの機械アクセス可能及び／又は実行可能なシーケンスが使用されてもよい。従って、記載の動作は、ファームウェア、ソフトウェア、又はファームウェアとソフトウェアとの組み合わせで実装されてもよい。ソフトウェア及び／又はファームウェアのコンテンツは、前記の機能／特徴の一部又は全部を含む様々な動作を実行するハードウェア、機械、電子デバイス等を生じる命令を提供してもよい。
【００４２】
機械／電子デバイス／ハードウェアが動作を実行することをもたらす又は生じる命令は、製造物を介して受信されてもよい。製造物は、命令を提供するコンテンツを有する機械アクセス可能媒体を有してもよい。機械アクセス可能媒体は、機械（例えば、コンピュータデバイス、電子デバイス、電子システム／サブシステム等）によりアクセス可能な形式で、情報／コンテンツを提供（すなわち、格納及び／又は送信）する何らかの機構を有する。例えば、機械アクセス可能媒体は、記録可能／記録不可能媒体（例えば、読み取り専用メモリ（ROM）、ランダムアクセスメモリ（RAM）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等）、及び電気、光、音響又は他の形式の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）等を有する。
【００４３】
図７は、物理相互接続を備えたプロセッサを有するポータブルデバイスの一実施例のブロック図である。ポータブルデバイス700は、様々なデバイス、ハードウェアユニット、電子構造等を表してもよい。例えば、ポータブルデバイス700は、携帯電話、スマートフォン、携帯情報端末（PDA）、パーソナルコンピュータデバイス等でもよい。ポータブルデバイス700は、コンピュータハードウェアが動作するコンピュータプラットフォームを有してもよい。コンピュータプラットフォームは、ポータブルデバイス700の機能を提供するためのコンピュータハードウェア及び／又はオペレーティングシステム、ハードウェアドライバ、及び／又はアプリケーションを有してもよい。一実施例では、アプリケーションプロセッサ710は、ホストプラットフォーム上の回路、プロセッサ、サブシステム等でもよい。一実施例では、アプリケーションプロセッサ710は、ポータブルデバイス700のコンピュータプラットフォームでもよい。アプリケーションプロセッサ710は、１つ以上のハードウェアコンポーネントでもよく、及び／又は汎用プロセッサを有してもよい。
【００４４】
アプリケーションプロセッサ710は、無線サブシステム740への物理インタフェース730にインタフェースを提供するMSLインタフェース721を有してもよい。同様に、無線サブシステム740は、物理インタフェース730にインタフェース接続するMSLインタフェース722を有してもよい。例えば、MSLインタフェース721-722は、デバイス間でアプリケーションプロセッサ710及び無線サブシステム740から物理インタフェース730へのアクセスを提供するためのピン、回路、バッファ、ラインドライバ又は他のハードウェア／パッケージを有してもよい。物理インタフェースは、アプリケーションプロセッサ710と無線サブシステム740との間のデータ伝送について、通信バス／インタフェースを通じてハイを表してもよい。
【００４５】
一実施例では、無線サブシステム740は、ポータブルデバイス700の周辺機器デバイスを表す。無線サブシステム740は、無線サブシステム740に無線通信処理機能を提供する信号プロセッサ741を有してもよい。一実施例では、信号プロセッサ741は、ポータブルデバイス700の埋め込みプロセッサでもよい。
【００４６】
一実施例では、物理インタフェース730は、MSL（Mobile  Scalable  Link）又はMSL2標準仕様／定義／プロトコルに基づく通信バス又はこれらから導かれる通信バスでもよい。チャネルが定義されてもよく、標準での特定の機能／使用を割り当てられてもよい。例えば、一実施例では、物理インタフェース730は、標準で定義される／割り当てられるように、マルチキャスト又はブロードキャストチャネル及びデバイス特有のチャネルを有してもよい。マルチキャストデータは、マルチキャストチャネルで生じるメッセージ／伝送に対応するものとして理解されてもよい。同様に、ブロードキャストデータ又はブロードキャスト伝送はブロードキャストチャネルでのメッセージ／伝送に対応するものとして解釈されてもよく、デバイス特有のデータ／伝送はデバイス特有の（又は非ブロードキャスト、非マルチキャスト）チャネルでのメッセージ伝送を示してもよい。
【００４７】
ブロードキャストチャネルは、マルチキャストチャネルが複数の受信者に同時にメッセージを伝送するように定められ得る点で、マルチキャストチャネルの形式のサブセットであると理解されてもよい。ブロードキャストチャネルは、物理インタフェース730上の全ての潜在的な受信者又は全てのデバイスに同時にメッセージを伝送するように定められてもよい。デバイス特有のチャネルは、単一の指定の受信者にメッセージを伝送するように定められてもよい。物理インタフェース730上の全てのデバイスのうち、デバイス特有のメッセージが送信される唯一のデバイスは、デバイス特有のチャネルを活性化する際に示されるデバイス特有の識別子／アドレスに対応するデバイスでもよい。
【００４８】
一実施例では、前述のように、ブロードキャストメッセージは物理インタフェース730上のデバイス特有のチャネルで行われてもよい。すなわち、物理インタフェース730でデバイス特有のチャネル及び伝送されるメッセージを起動／活性化するために、ブロードキャストIDが使用されてもよい。同様に、例えばデバイス特有のIDを備えたブロードキャストチャネル及び伝送されるメッセージを起動／活性化することにより、デバイス特有のメッセージが物理インタフェース730のブロードキャストチャネルで伝送されてもよい。
【００４９】
一実施例では、物理インタフェース730は、１つ以上の制御信号／線を有してもよい。一実施例では、１つ以上の制御信号は、ブロードキャスト及びデバイス特有のチャネルが動作されるデータバスの所有権を有さないデバイスにより活性化／制御されてもよい。現在送信メッセージを受信することができないことを受信デバイスが送信デバイスに示すための機構を提供するために、待機又は同等の制御信号のようなフロー制御信号線が存在してもよい。例えば、バッファオーバーフローが生じたときに、信号がアサートされてもよい。一実施例では、承認機構を実装するために制御信号が使用されてもよい。例えば、前述のブロードキャストチャネルでデバイス特有のアドレスを使用することにより、送信デバイスは、メッセージが受信されたか否か又はメッセージが再送信されるべきか否かを受信デバイスが指示する期間を提供してもよい。送信デバイスが変更した伝送（例えば、チャネル形式とデバイスIDとの不一致）で（例えば標準的なプロトコルに従った）通常のデータ伝送に従う場合、この変更した伝送は、受信機が承認を示すために制御信号を活性化するべきことを、デバイスIDにより指示された受信機でデコードされてもよい。特定の承認機構は、個々の設計に依存してもよく、一例は、メッセージが再送信されるべきことを意味する否定応答を示すために、制御信号をアサートすることを有してもよい。
【００５０】
図８は、物理相互接続を備えたプロセッサとメモリサブシステムとを有する電子デバイスの一実施例のブロック図である。電子デバイス800は、様々なデバイス、機械、ハードウェアユニット、電子構造等を表す。例えば、電子デバイス800は、携帯電話、スマートフォン、携帯情報端末（PDA）、デジタルデータオーガナイザ、パーソナルコンピュータデバイス等でもよい。電子デバイス800は、コンピュータハードウェアが動作するコンピュータプラットフォームを有してもよい。コンピュータプラットフォームは、電子デバイス800の機能を提供するためのコンピュータハードウェア及び／又はオペレーティングシステム、ハードウェアドライバ、及び／又はアプリケーションを有してもよい。一実施例では、アプリケーションプロセッサ810は、ホストプラットフォーム上の回路、プロセッサ、サブシステム等を表す。一実施例では、アプリケーションプロセッサ810は、電子デバイス800のコンピュータプラットフォームを表す。アプリケーションプロセッサ810は、１つ以上のハードウェアコンポーネントでもよく、及び／又は汎用プロセッサを有してもよい。
【００５１】
アプリケーションプロセッサ810は、周辺機器コントローラ840への物理インタフェース830にインタフェースを提供するMSLインタフェース821を有してもよい。同様に、周辺機器コントローラ840は、物理インタフェース830にインタフェース接続するMSLインタフェース822を有してもよい。例えば、MSLインタフェース821-822は、デバイス間でアプリケーションプロセッサ810及び周辺機器コントローラ840から物理インタフェース830へのアクセスを提供するためのピン、回路、バッファ、ラインドライバ又は他のハードウェア／パッケージを有してもよい。物理インタフェース830は、アプリケーションプロセッサ810と周辺機器コントローラ840との間のデータ伝送について、通信バス／インタフェースを通じてハイを表してもよい。
【００５２】
一実施例では、周辺機器コントローラ840は、電子デバイス800の様々な周辺機器デバイス／サブシステムを表す。例えば、周辺機器コントローラ840は、ユーザインタフェースの構成要素（例えば、液晶ディスプレイ（LCD）、タッチスクリーン、キーボード又は同等のもの等）を表してもよい。周辺機器コントローラ840は、周辺機器コントローラ840に処理機能を提供するプロセッサ841を有してもよい。一実施例では、プロセッサ841は、電子デバイス800の埋め込みプロセッサでもよい。
【００５３】
一実施例では、物理インタフェース830は、MSL（Mobile  Scalable  Link）又はMSL2標準仕様／定義／プロトコルに基づく通信バス又はこれらから導かれる通信バスでもよい。チャネルが定義されてもよく、標準での特定の機能／使用を割り当てられてもよい。例えば、一実施例では、物理インタフェース830は、標準で定義される／割り当てられるように、マルチキャスト又はブロードキャストチャネル及びデバイス特有のチャネルを有してもよい。マルチキャストデータは、マルチキャストチャネルで生じるメッセージ／伝送に対応してもよい。同様に、ブロードキャストデータ又はブロードキャスト伝送はブロードキャストチャネルでのメッセージ／伝送に対応してもよく、デバイス特有のデータ／伝送はデバイス特有の（又は非ブロードキャスト、非マルチキャスト）チャネルでのメッセージ伝送を示してもよい。
【００５４】
ブロードキャストチャネルは、マルチキャストチャネルが複数の受信者に同時にメッセージを伝送するように定められ得る点で、マルチキャストチャネルの形式のサブセットでもよい。ブロードキャストチャネルは、物理インタフェース830上の全ての潜在的な受信者又は全てのデバイスに同時にメッセージを伝送してもよい。デバイス特有のチャネルは、単一の指定の受信者にメッセージを伝送してもよい。物理インタフェース830上の全てのデバイスのうち、デバイス特有のメッセージが送信される唯一のデバイスは、デバイス特有のチャネルを活性化する際に示されるデバイス特有の識別子／アドレスに対応するデバイスでもよい。
【００５５】
一実施例では、前述のことに従って、ブロードキャストメッセージは物理インタフェース830上のデバイス特有のチャネルで行われてもよい。すなわち、物理インタフェース830でデバイス特有のチャネル及び伝送されるメッセージを起動／活性化するために、ブロードキャストIDが使用されてもよい。同様に、例えばデバイス特有のIDを備えたブロードキャストチャネル及び伝送されるメッセージを起動／活性化することにより、デバイス特有のメッセージが物理インタフェース830のブロードキャストチャネルで伝送されてもよい。
【００５６】
一実施例では、物理インタフェース830は、１つ以上の制御信号／線を有してもよい。一実施例では、１つ以上の制御信号は、ブロードキャスト及びデバイス特有のチャネルが動作されるデータバスの所有権を有さないデバイスにより活性化／制御されてもよい。現在送信メッセージを受信することができないことを受信デバイスが送信デバイスに示すための機構を提供するために、待機又は同等の制御信号のようなフロー制御信号線が存在してもよい。
【００５７】
一実施例では、承認機構を実装するために制御信号が使用されてもよい。例えば、前述のブロードキャストチャネルでデバイス特有のアドレスを使用することにより、送信デバイスは、メッセージが受信されたか否か又はメッセージが再送信されるべきか否かを受信デバイスが指示する期間を提供してもよい。送信デバイスが変更した伝送（例えば、チャネル形式とデバイスIDとの不一致）で（例えば標準的なプロトコルに従った）通常のデータ伝送に従う場合、この変更した伝送は、受信機が承認を示すために制御信号を活性化するべきことを、デバイスIDにより指示された受信機でデコードされてもよい。特定の承認機構は、個々の設計に依存してもよく、一例は、メッセージが再送信されるべきことを意味する否定応答を示すために、制御信号をアサートすることを有してもよい。
【００５８】
一実施例では、電子デバイスはメモリサブシステム850を有してもよい。メモリサブシステム850は、メモリコントローラ、ロジック、１つ以上のメモリデバイス等を有してもよい。一実施例では、メモリサブシステム850は、電子デバイス800への電力が無効になってときでも情報／値を保持するメモリを表す不揮発性記憶装置851を有してもよい。例えば、不揮発性記憶装置851は、読み取り専用メモリ（ROM）、フラッシュ、プログラマブルROM（PROM）、電子PROM（EPROM）等を有してもよい。
【００５９】
ここに記載したもの以外にも、本発明の範囲を逸脱することなく、本発明の実施例に様々な変更が行われ得る。従って、ここの図面及び例は、例として解釈されるべきであり、限定の意味で解釈されるべきではない。本発明の範囲は、特許請求の範囲を参照することのみによって定められるべきである。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例によるプロセッサ間通信アーキテクチャを使用したシステムのブロック図
【図２】本発明の実施例によるプロセッサ間通信仕様のチャネル定義のブロック図
【図３】本発明の実施例によるプロセッサ間通信仕様を使用したシステムの通信バスのブロック図
【図４】本発明の実施例による通信のタイミング図のブロック図
【図５】本発明の実施例によるプロセッサ間メッセージの送信のフローチャート
【図６】本発明の実施例によるプロセッサ間メッセージ伝送の承認のフローチャート
【図７】本発明の実施例による物理相互接続を備えたプロセッサを有するポータブルデバイスのブロック図
【図８】本発明の実施例による物理相互接続を備えたプロセッサ及びメモリサブシステムを有する電子デバイスのブロック図
【図１】
2008515092.tif 000003
【図２】
2008515092.tif 000004
【図３】
2008515092.tif 000005
【図４】
2008515092.tif 000006
【図５】
2008515092.tif 000007
【図６】
2008515092.tif 000008
【図７】
2008515092.tif 000009
【図８】
2008515092.tif 000010
【国際調査報告】
2008515092.tif 000011
2008515092.tif 000012
2008515092.tif 000013