(57)【要約】  パイプライン化されたレジスタバスを使用してハードウェアレジスタをプログラムすること、ならびに関連する方法、システム、および装置を開示する。一態様では、レジスタバスを通じて通信するための方法が、レジスタバスマスタにおいて、アドレスを含んだ要求を開始するステップと、レジスタバスマスタからプロセッサモジュールの第1のレジスタバススレーブにレジスタバスを介して要求を渡すステップとを含む。本方法は、プロセッサモジュールのモジュールコアにおいてアドレスを復号するステップと、アドレスがプロセッサモジュールに対応するかどうかを判定するステップとをさらに含む。本方法はまた、アドレスがプロセッサモジュールに対応するとの判定に応答して、モジュールコアによって要求を処理するステップと、第2のレジスタバススレーブに同じ要求をそのまま渡すステップとを含む。加えて本方法は、アドレスがプロセッサモジュールに対応しないとの判定に応答して、第2のレジスタバススレーブに同じ要求をそのまま渡すステップを含む。
2018504673.tif 000002
【特許請求の範囲】
【請求項１】
レジスタバスを通じて通信するための方法であって、
レジスタバスマスタにおいて、アドレスを含んだ要求を開始するステップと、
前記レジスタバスマスタからプロセッサモジュールの第1のレジスタバススレーブにレジスタバスを介して前記要求を渡すステップと、
前記プロセッサモジュールのモジュールコアにおいて前記アドレスを復号するステップと、
前記アドレスが前記プロセッサモジュールに対応するかどうかを判定するステップと、
前記アドレスが前記プロセッサモジュールに対応するとの判定に応答して、
前記モジュールコアによって前記要求を処理し、
前記第1のレジスタバススレーブによって第2のレジスタバススレーブに同じ要求をそのまま渡すステップと、
前記アドレスが前記プロセッサモジュールに対応しないとの判定に応答して、前記第1のレジスタバススレーブによって前記第2のレジスタバススレーブに同じ要求をそのまま渡すステップと
を含む、方法。
【請求項２】
前記要求が、前記モジュールコアのハードウェアレジスタをプログラムする命令をさらに含む、請求項1に記載の方法。
【請求項３】
前記レジスタバスマスタ、前記第1のレジスタバススレーブ、および前記第2のレジスタバススレーブをデイジーチェーン構成で配置するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記第2のレジスタバススレーブから前記レジスタバスマスタに前記要求を渡すステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記第1のレジスタバススレーブにデータクロック信号を供給するステップをさらに含む、請求項2に記載の方法。
【請求項６】
前記データクロック信号に関連付けられたクロックレートで前記モジュールコアの前記ハードウェアレジスタをプログラムするステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記モジュールコアで前記要求を処理した後に前記第1のレジスタバススレーブから応答を出力するステップをさらに含む、請求項1に記載の方法。
【請求項８】
レジスタバスを通じて通信するためのシステムであって、
レジスタバスマスタをプロセッサモジュールの第1のレジスタバススレーブに通信可能に結合し、かつ前記第1のレジスタバススレーブを第2のレジスタバススレーブにさらに通信可能に結合するレジスタバス
を含み、
前記レジスタバスマスタが、
アドレスを含んだ要求を開始することと、
前記レジスタバスを介して前記プロセッサモジュールの前記第1のレジスタバススレーブに前記要求を渡すことと
を行うように構成され、
前記プロセッサモジュールが、
前記プロセッサモジュールのモジュールコアにおいて前記アドレスを復号することと、
前記アドレスが前記プロセッサモジュールに対応するかどうかを判定することと、
前記アドレスが前記プロセッサモジュールに対応するとの判定に応答して、
前記モジュールコアによって前記要求を処理することと
を行うように構成され、
前記第1のレジスタバススレーブが、前記第1のレジスタバススレーブによって前記第2のレジスタバススレーブに前記レジスタバスを介して同じ要求をそのまま渡すように構成される、
システム。
【請求項９】
前記レジスタバスマスタが、前記モジュールコアのハードウェアレジスタをプログラムする命令をさらに含む前記要求を開始するように構成される、請求項8に記載のシステム。
【請求項１０】
前記レジスタバスマスタ、前記第1のレジスタバススレーブ、および前記第2のレジスタバススレーブがデイジーチェーン構成で配置される、請求項8に記載のシステム。
【請求項１１】
前記第2のレジスタバススレーブが、前記レジスタバスを介して前記レジスタバスマスタに前記要求を渡すように構成される、請求項10に記載のシステム。
【請求項１２】
前記第1のレジスタバススレーブにデータクロック信号を供給するように構成されるデータクロックソースをさらに備える、請求項9に記載のシステム。
【請求項１３】
前記第1のレジスタバススレーブが、前記データクロック信号に関連付けられたクロックレートで前記モジュールコアの前記レジスタをプログラムするようにさらに構成される、請求項12に記載のシステム。
【請求項１４】
前記第1のレジスタバススレーブが、前記モジュールコアが前記要求を処理した後に前記レジスタバスに応答を出力するようにさらに構成される、請求項8に記載のシステム。
【請求項１５】
レジスタバス上にレジスタスレーブデバイスを備える装置であって、前記レジスタスレーブデバイスが、
レジスタバスから要求を受け取るように構成される第1のバスインターフェースと、
前記第1のバスインターフェースに通信可能に結合され、
前記要求からアドレスを取り出すことと、
前記アドレスを復号することと
を行うように構成される、アドレスデコーダと、
前記第1のバスインターフェースに通信可能に結合され、前記第1のバスインターフェースから元の前記レジスタバスに前記要求を渡すように構成される、第2のバスインターフェースと、
前記第1のバスインターフェースに通信可能に結合され、前記要求を処理するように構成されるモジュールコアと
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その全体が参照により本明細書に組み込まれる、2014年12月17日に出願した"PROGRAMMING HARDWARE REGISTERS USING A PIPELINED REGISTER BUS, AND RELATED METHODS, SYSTEMS, AND APPARATUSES"と題する米国特許出願第14/573,328号の優先権を主張するものである。
【０００２】
本開示の技術は、一般に、レジスタバスを介してハードウェアレジスタの読取りおよび書込みを行うことに関する。
【背景技術】
【０００３】
現代のコンピュータプロセッサは、マスタデバイス間の接続性、およびマスタデバイスとスレーブデバイスとの間の接続性を実現するために様々なバス規格および機構を利用する。1つのタイプのバス規格がレジスタバスを規定し、レジスタバスは、ハードウェアレジスタをプログラムするためにプロセッサ上で実行されるコンピュータ命令(たとえば、プロセッサモジュールを所望の構成で配置するためにハードウェアレジスタの読取りまたは書込みを行うこと)によって使用されてもよい。ハードウェアレジスタをプログラムする要求が、レジスタバスマスタによって受け取られてもよく、レジスタバスマスタは次いで、レジスタバスを介して適切なハードウェアレジスタに要求をルーティングすることを担う。
【０００４】
しかしながら、より最近のプロセッサはより多数のハードウェアレジスタを組み込んでいるため、レジスタバスは、対応する増加したバス負荷を処理するよう求められる場合がある。増加したバス負荷によって生じる可能性があるタイミング問題に対処するために、いくつかの従来のプロセッサは、レジスタバスをデータバスのクロック周波数よりも低いクロック周波数で動作させる場合がある。しかしながら、レジスタバスにより低いクロック周波数を使用すると、クロックドメインクロッシングに関連するオーバーヘッドが増える可能性がある。たとえば、テスト容易化設計(DFT)挿入が、クロックドメインクロッシングによって複雑化される可能性があり、その結果、ハードウェア設計を検証するためにさらにテスト時間が必要となる可能性がある。さらに、データの動的読取りなどのいくつかの動作は、さらなる論理を要求する場合があり、より複雑なタイミング制約を必要とする場合がある。
【０００５】
レジスタバス上の増加した負荷を処理するための別の従来の解決策は、レジスタバスマスタに接続された単一のレジスタバススレーブにハードウェアレジスタを集中化することである。そうすることによって、レジスタバスは、データバスのより高いクロック周波数で作動されてもよい。しかしながら、この手法の下で、集中化されたハードウェアレジスタを分散されたプロセッサモジュールと関連付けることは、各プロセッサモジュール用の入力/出力(I/O)ポートが不均一で、モジュール固有であることを必要とする場合がある。さらに、そのような手法は、階層的区分のために、追加のルーティングエリアを必要とする場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
発明を実施するための形態で開示する態様は、パイプライン化されたレジスタバスを使用してハードウェアレジスタをプログラムすることを含む。関連する方法、システム、および装置もまた開示する。この点について、いくつかの態様では、レジスタバスが、レジスタバスマスタと、1つまたは複数のレジスタバススレーブとを接続してもよい。例示的な態様では、各レジスタバススレーブが、モジュールコアと、1つまたは複数のプログラマブルハードウェアレジスタとを含んだプロセッサモジュールに関連付けられてもよい。レジスタバスマスタは、レジスタバスを介して第1のレジスタバススレーブにアドレスを含んだ(たとえば、ハードウェアレジスタをプログラムするための)要求を送信する。第1のレジスタバススレーブに関連付けられたプロセッサモジュールのモジュールコアは、アドレスを復号し、(たとえば、アドレスがプロセッサモジュールに割り当てられたアドレス空間内に含まれているかどうかを判定することによって)アドレスがプロセッサモジュールに対応するかどうかを判定する。対応する場合、要求は、モジュールコアによって処理され、同じ要求は、第1のレジスタバススレーブによって第2のレジスタバススレーブにそのまま渡される。アドレスがプロセッサモジュールに対応しない場合、第1のレジスタバススレーブは同じ要求をそのまま第2のレジスタバススレーブに渡す。このようにして、ハードウェアレジスタのプログラミングは、モジュールコアにわたって時間的に拡散される可能性があり、これは、均一なモジュール入力/出力インターフェースを設けながら、レジスタバスがデータバスのより高いクロック周波数で動作することを可能にする可能性がある。いくつかの態様では、レジスタバスマスタおよびレジスタバススレーブは、デイジーチェーン構成で配置されてもよい。いくつかの態様によれば、要求が書込み要求である場合、第1のレジスタバススレーブは、データをレジスタバス上に渡さない。要求が読取り要求である場合、第1のレジスタバススレーブは、データ有効性信号とともに要求されたデータをレジスタバス上に渡してもよい。後者の場合、要求されたデータは、要求と併せて第2のレジスタバススレーブに渡されてもよく、または要求されたデータを第2のレジスタバススレーブに渡した後に送られてもよい。
【０００７】
別の態様では、レジスタバスを通じて通信するための方法が提供される。本方法は、レジスタバスマスタにおいて、アドレスを含んだ要求を開始するステップを含む。本方法は、レジスタバスマスタからプロセッサモジュールの第1のレジスタバススレーブにレジスタバスを介して要求を渡すステップをさらに含む。加えて本方法は、プロセッサモジュールのモジュールコアにおいてアドレスを復号するステップを含む。また本方法は、アドレスがプロセッサモジュールに対応するかどうかを判定するステップを含む。本方法は、アドレスがプロセッサモジュールに対応するとの判定に応答して、モジュールコアにより要求を処理するステップと、第1のレジスタバススレーブによって第2のレジスタバススレーブに同じ要求をそのまま渡すステップとをさらに含む。加えて本方法は、アドレスがプロセッサモジュールに対応しないとの判定に応答して、第1のレジスタバススレーブによって第2のレジスタバススレーブに同じ要求をそのまま渡すステップを含む。
【０００８】
別の態様では、レジスタバスを通じて通信するためのシステムが提供される。本システムは、レジスタバスマスタをプロセッサモジュールの第1のレジスタバススレーブに通信可能に結合し、さらに第1のレジスタバススレーブを第2のレジスタバススレーブに通信可能に結合するレジスタバスを含む。レジスタバスマスタは、アドレスを含んだ要求を開始し、レジスタバスを介してプロセッサモジュールの第1のレジスタバススレーブに要求を渡すように構成される。プロセッサモジュールは、プロセッサモジュールのモジュールコアにおいてアドレスを復号し、アドレスがプロセッサモジュールに対応するかどうかを判定するように構成される。プロセッサモジュールはさらに、アドレスがプロセッサモジュールに対応するとの判定に応答して、モジュールコアによって要求を処理するように構成される。第1のレジスタバススレーブは、第1のレジスタバススレーブによって第2のレジスタバススレーブに、レジスタバスを介して同じ要求をそのまま渡すように構成される。
【０００９】
別の態様では、レジスタバス上にレジスタスレーブデバイスを備える装置が提供される。レジスタスレーブデバイスは、レジスタバスから要求を受け取るように構成される第1のバスインターフェースを備える。レジスタスレーブデバイスはさらに、第1のバスインターフェースに通信可能に結合されたアドレスデコーダを備える。アドレスデコーダは、要求からアドレスを取り出し、このアドレスを復号するように構成される。レジスタスレーブデバイスはさらに、第1のバスインターフェースに通信可能に結合された第2のバスインターフェースを備える。第2のバスインターフェースは、第1のバスインターフェースから元のレジスタバスに要求を渡すように構成される。レジスタスレーブデバイスは加えて、第1のバスインターフェースに通信可能に結合され、要求を処理するように構成されるモジュールコアを備える。
【００１０】
別の態様では、レジスタスレーブデバイスを動作させる方法が提供される。本方法は、レジスタスレーブデバイスにおいて、第1のクロック信号を受信するステップを含む。本方法は、レジスタスレーブデバイスの第1のバスインターフェースにおいて、レジスタバスを介して第1のクロックサイクルで要求を受け取るステップをさらに含み、この要求は、アドレスを含む。本方法はその上、第2のクロックサイクルでレジスタスレーブデバイスの第2のバスインターフェースに要求を渡すステップを含む。本方法はまた、第2のクロックサイクルの後の第3のクロックサイクルでレジスタバスに要求を戻すステップを含む。本方法は、アドレスを復号するステップと、アドレスがレジスタスレーブデバイスに対応するかどうかを判定するステップとをさらに含む。本方法は、アドレスがレジスタスレーブデバイスに対応するとの判定に応答して、レジスタスレーブデバイスのモジュールコアにおいて要求を処理するステップと、その後の第4のクロックサイクルでモジュールコアからレジスタバスにデータを供給するステップとをさらに含む。
【図面の簡単な説明】
【００１１】
【図１】パイプライン化されたレジスタバスを含む場合があるコンピューティングデバイスの簡略化した図である。
【図２】パイプライン化されたレジスタバスを含む場合があるモバイル端末の斜視図である。
【図３】図2のモバイル端末の構成要素のブロック図である。
【図４】レジスタバスマスタと、モジュールコアおよびレジスタバススレーブを備えたプロセッサモジュールとを含む例示的なパイプライン化されたレジスタバストポロジを示すブロック図である。
【図５Ａ】パイプライン化されたレジスタバスを使用した、図4のプロセッサモジュールおよびレジスタバススレーブの間の例示的な通信フローを示すブロック図である。
【図５Ｂ】パイプライン化されたレジスタバスを使用した、図4のプロセッサモジュールおよびレジスタバススレーブの間の例示的な通信フローを示すブロック図である。
【図５Ｃ】パイプライン化されたレジスタバスを使用した、図4のプロセッサモジュールおよびレジスタバススレーブの間の例示的な通信フローを示すブロック図である。
【図６】図4のパイプライン化されたレジスタバスを通じて通信するための例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１２】
次に図面を参照しながら、本開示のいくつかの例示的態様について説明する。「例示的」という語は、本明細書において「一例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。「第1の」、「第2の」などの用語が、本明細書において様々な要素を説明するために使用される場合があるが、これらの要素はこれらの用語によって制限されるべきではないことを理解されたい。これらの用語は、ある要素を別の要素と区別するために使用されるにすぎない。たとえば、第1のデバイスが、第2のデバイスと呼ばれる場合があり、同様に、第2のデバイスが、本開示の教示から逸脱することなく、第1のデバイスと呼ばれる場合がある。
【００１３】
発明を実施するための形態で開示する態様は、パイプライン化されたレジスタバスを使用してハードウェアレジスタをプログラムすることを含む。関連する方法、システム、および装置もまた開示する。この点について、いくつかの態様では、レジスタバスが、レジスタバスマスタと、1つまたは複数のレジスタバススレーブとを接続してもよい。例示的な態様では、各レジスタバススレーブが、モジュールコアと、1つまたは複数のプログラマブルハードウェアレジスタとを含んだプロセッサモジュールに関連付けられてもよい。レジスタバスマスタは、レジスタバスを介して第1のレジスタバススレーブにアドレスを含んだ(たとえば、ハードウェアレジスタをプログラムするための)要求を送信する。第1のレジスタバススレーブと関連付けられたプロセッサモジュールのモジュールコアは、アドレスを復号し、(たとえば、アドレスがプロセッサモジュールに割り当てられたアドレス空間内に含まれているかどうかを判定することによって)アドレスがプロセッサモジュールに対応するかどうかを判定する。対応する場合、要求は、モジュールコアによって処理され、同じ要求は、第1のレジスタバススレーブによって第2のレジスタバススレーブにそのまま渡される。アドレスがプロセッサモジュールに対応しない場合、第1のレジスタバススレーブは同じ要求をそのまま第2のレジスタバススレーブに渡す。このようにして、ハードウェアレジスタのプログラミングは、モジュールコアにわたって時間的に拡散され、これにより、均一なモジュール入力/出力インターフェースを与えると同時に、レジスタバスがデータバスのより高いクロック周波数で動作することが可能になってもよい。いくつかの態様では、レジスタバスマスタおよびレジスタバススレーブは、デイジーチェーン構成で配置されてもよい。いくつかの態様によれば、要求が書込み要求である場合、第1のレジスタバススレーブは、データをレジスタバス上に渡さない。要求が読取り要求である場合、第1のレジスタバススレーブは、データ有効性信号とともに要求されたデータをレジスタバス上に渡してもよい。後者の場合、要求されたデータは、要求と併せて第2のレジスタバススレーブに渡されてもよく、または要求されたデータを第2のレジスタバススレーブに渡した後に送られてもよい。
【００１４】
パイプライン化されたレジスタバスを使用してハードウェアレジスタをプログラムすることを議論する前に、まず、本開示の態様が実装される場合がある例示的デバイスについて、図1〜図3を参照しながら説明する。図1および図2は、それぞれコンピューティングデバイスおよびモバイル端末を示し、図3は、図2の構成要素をより詳細に示す。次いで、本開示の例示的態様について、以下で図4から始めて説明する。
【００１５】
本開示の例示的態様はセルラーフォンなどのモバイル端末に実装することを考えるが、本開示はそのように限定されない。この点について、図1は、ネットワーク102に結合されたコンピューティングデバイス100を示し、例示的態様では、ネットワーク102はインターネットである。コンピューティングデバイス100は、その中に中央演算処理装置(CPU)(図示せず)を備える筐体104を含んでもよい。ユーザ(図示せず)は、モニタ(ディスプレイと呼ばれることもある)106、キーボード108、および/またはマウス110などの入力/出力要素から形成されたユーザインターフェースを通じてコンピューティングデバイス100と対話してもよい。いくつかの態様では、モニタ106は筐体104内に組み込まれてもよい。キーボード108およびマウス110が示されているが、いくつかの態様でのモニタ106はタッチスクリーンディスプレイである場合があり、タッチスクリーンディスプレイは、キーボード108および/またはマウス110に追加するか、または取って代わる場合がある。デスクトップ型またはラップトップ型コンピューティングデバイスに関連してよく理解されるように、他の入力/出力デバイスもまた存在する場合がある。
【００１６】
コンピューティングデバイス100に加えて、本開示の例示的態様はまた、モバイルコンピューティングデバイス上に実装されてもよい。この点について、モバイル端末200の例示的態様が図2に示されている。モバイル端末200は、SAMSUNG GALAXY(商標)、またはAPPLE iPHONE(登録商標)などのスマートフォンである場合がある。スマートフォンの代わりに、モバイル端末200は、セルラー電話、タブレット、ラップトップ、または他のモバイルコンピューティングデバイスであってもよい。モバイル端末200は、基地局(BS)204に関連付けられたリモートアンテナ202と通信してもよい。BS204は、パブリックランドモバイルネットワーク(PLMN)206、公衆交換電話網(PSTN)(図示せず)、またはネットワーク102(たとえば、インターネット)と通信してもよい。PLMN206は、直接的に、または介在ネットワークを通じて、インターネット(たとえば、ネットワーク102)と通信してもよい。大部分の現代のモバイル端末200は、ネットワーク102の要素との様々なタイプの通信を可能にすることを了解されたい。非限定的な例として、ストリーミングオーディオ、ストリーミングビデオ、および/またはウェブブラウジングはすべて、大部分の現代のモバイル端末200上の一般的な機能である。そのような機能は、モバイル端末200のメモリ内に記憶されたアプリケーションを通じて、モバイル端末200のワイヤレストランシーバを使用することによって使用可能にされる。
【００１７】
図2のモバイル端末200の構成要素のより詳細な記述を、図3を参照しながら行う。この点について、モバイル端末200の要素のうちのいくつかのブロック図が示される。モバイル端末200は、レシーバ経路300、トランスミッタ経路302、アンテナ304、スイッチ306、ベースバンドプロセッサ(BBP)308、制御システム310、周波数合成器312、ユーザインターフェース314、およびソフトウェア318がその中に記憶されたメモリ316を含んでもよい。
【００１８】
レシーバ経路300は、図2のBS204によって提供される、1つまたは複数のリモートトランスミッタからの情報搬送無線周波数(RF)信号を受信する。低雑音増幅器(図示せず)が信号を増幅する。フィルタ(図示せず)が、受信した信号内の広帯域干渉を最小限に抑え、ダウンコンバージョンおよびデジタル化回路(図示せず)が、濾波した受信信号を中間またはベースバンド周波数信号にダウンコンバートし、次いで中間またはベースバンド周波数信号が、1つまたは複数のデジタルストリームにデジタル化される。レシーバ経路300は通常、周波数合成器312によって生成される1つまたは複数の混合周波数を使用する。BBP308は、信号で搬送された情報またはデータビットを取り出すために、デジタル化された受信信号を処理する。したがって、BBP308は通常、1つまたは複数のデジタルシグナルプロセッサ(DSP)内に実装される。
【００１９】
引き続き図3を参照すると、送信側では、BBP308は、非限定的な例として音声、データ、または制御情報を表すデジタル化データを制御システム310から受信する。BBP308は、送信のためのデジタル化データを符号化し、符号化データをトランスミッタ経路302に出力し、トランスミッタ経路302では、符号化データは、変調器(図示せず)によって使用され、所望の送信周波数で搬送波信号が変調される。RF電力増幅器(図示せず)が、送信に適したレベルに被変調搬送波信号を増幅し、スイッチ306を通じて、増幅され、変調された搬送波信号をアンテナ304に送達する。集合的に、レシーバ経路300、トランスミッタ経路302、および周波数合成器312は、ワイヤレスモデム320とみなされてもよい。
【００２０】
引き続き図3を参照すると、ユーザは、非限定的な例として、マイクロフォン、スピーカ、キーパッド、および/またはディスプレイなどの、ユーザインターフェース314を介してモバイル端末200と対話する。受信信号内に符号化されたオーディオ情報が、BBP308によって回復され、スピーカを駆動するのに適したアナログ信号に変換される。キーパッドおよびディスプレイによって、ユーザはモバイル端末200と対話することができるようになる。たとえば、キーパッドおよびディスプレイによって、ユーザは、ダイヤルされる番号を入力すること、アドレス帳情報にアクセスすることなど、ならびに呼経過情報を監視することが可能になる場合がある。メモリ316は、上記のようにその中にソフトウェア318を有してもよく、ソフトウェア318は本開示の例示的な態様によって処理される要求を生成してもよい。図示されていないが、モバイル性のより低いコンピューティングデバイス100が同様の要素を有する場合があるが、ワイヤレスモデム320の代わりに、コンピューティングデバイス100は、通信を実施するためにワイヤベースのインターフェースを有するネットワークインターフェースコントローラ(NIC)を設ける場合があることを理解されたい。
【００２１】
図3に示す構成要素のうちの1つまたは複数は、複数のプロセッサモジュールを含んでもよく、各プロセッサモジュールが、1つまたは複数のプログラマブルハードウェアレジスタを含み、レジスタバスによって接続される。レジスタバスが均一なプロセッサモジュール入力/出力(I/O)ポートをサポートしながら、より高いクロック周波数(たとえば、データバスのクロック周波数)で動作することを可能にするために、パイプライン化されたレジスタバスが設けられてもよい。この点について、図4は、本明細書で開示するいくつかの態様によるパイプライン化されたレジスタバス400トポロジを示す。図4では、パイプライン化されたレジスタバス400は、レジスタバスマスタ402を1つまたは複数のプロセッサモジュール404(0)〜404(15)と通信可能に結合する。
【００２２】
プロセッサモジュール404(0)〜404(15)の各々は、特定の処理機能を実施することを担う個別の処理要素を表してもよい。非限定的な例として、プロセッサモジュール404(0)〜404(15)の各々は、画像信号プロセッサ(ISP)の機能要素であってもよい。図4は、単に説明のために合計16個のプロセッサモジュール404(0)〜404(15)を示すこと、および本明細書で開示するパイプライン化されたレジスタバス400トポロジのいくつかの態様は、より多いまたはより少ないプロセッサモジュール404(0)〜404(15)を含む場合があることを理解されたい。プロセッサモジュール404(0)〜404(15)はレジスタバスマスタ402からの要求を受け取り、これに応答するため、プロセッサモジュール404(0)〜404(15)は、本明細書では「レジスタスレーブデバイス404(0)〜404(15)」と呼ばれる場合がある。
【００２３】
プロセッサモジュール404(0)〜404(15)は、それぞれのモジュールコア406(0)〜406(15)と、レジスタバススレーブ408(0)〜408(15)とを含む。モジュールコア406(0)〜406(15)は、非限定的な例として、アドレス復号、ならびにハードウェアレジスタ読取りおよび/または書込みなどを含む、対応するプロセッサモジュール404(0)〜404(15)のための処理タスクを実行する。それに応じて、図5A〜図5Cに関して以下でより詳細に説明するように、モジュールコア406(0)〜406(15)は、非限定的な例として、アドレスデコーダ(図示せず)、および1つまたは複数のハードウェアレジスタ410(0)〜410(15)などの要素を含んでもよい。レジスタバススレーブ408(0)〜408(15)は、パイプライン化されたレジスタバス400を介して通信(たとえば、ハードウェアレジスタ読取りおよび/または書込みの要求)を受け取り、転送する、対応するプロセッサモジュール404(0)〜404(15)の要素である。
【００２４】
いくつかの態様では、パイプライン化されたレジスタバス400は、レジスタバスマスタ402およびレジスタバススレーブ408(0)〜408(15)をデイジーチェーン構成で接続する。たとえば、図4の例では、レジスタバスマスタ402は、レジスタバススレーブ408(0)に接続され、レジスタバススレーブ408(0)は次に、レジスタバススレーブ408(1)に接続され、以下同様である。最後のレジスタバススレーブ408(15)は、次いでレジスタバスマスタ402に接続され、したがってデイジーチェーンを完成する。
【００２５】
例示的な動作では、レジスタバスマスタ402は、プロセッサモジュール404(0)〜404(15)のうちの1つのハードウェアレジスタ410(0)〜410(15)をプログラムする要求(図示せず)を開始してもよい。非限定的な例として、ハードウェアレジスタ410(0)〜410(15)をプログラムする要求は、ハードウェアレジスタ値を読み取るおよび/またはハードウェアレジスタに値を書き込む要求を含んでもよい。したがって、ハードウェアレジスタ410(0)〜410(15)をプログラムする要求は、アドレスなどの、要求を実行するために必要とされる情報を含んでもよい。要求はまた、レジスタに書き込まれるデータ値および/またはデータ有効インジケータなどの、追加データを添付されてもよい。要求は、非限定的な例として、図3のソフトウェア318の命令(図示せず)に応答して、レジスタバスマスタ402によって開始されてもよい。
【００２６】
要求は、次いで、パイプライン化されたレジスタバス400を介して、レジスタバスマスタ402に接続されたプロセッサモジュール404(0)のレジスタバススレーブ408(0)に渡される。レジスタバススレーブ408(0)は、要求のアドレスを取り出し、処理するためにこれをモジュールコア406(0)に転送する。アドレスは次いで、モジュールコア406(0)によって復号され、アドレスがプロセッサモジュール404(0)に対応するかどうか(たとえば、アドレスがプロセッサモジュール404(0)に関連付けられたアドレス空間内に含まれるかどうか)を判定するために評価される。アドレスがプロセッサモジュール404(0)に対応しない場合、プロセッサモジュール404(0)のレジスタバススレーブ408(0)は、同じ要求をそのまま、デイジーチェーン内の次のプロセッサモジュール404(この例では、プロセッサモジュール404(1))のレジスタバススレーブ408(1)に転送する。
【００２７】
しかしながら、アドレスがプロセッサモジュール404(0)に対応すると判定される場合、要求は、ハードウェアレジスタ410(0)〜410(15)をプログラムするためにモジュールコア406(0)によって処理される。いくつかの態様では、ハードウェアレジスタ410(0)〜410(15)をプログラムするために要求を処理することは、要求に付随するデータ値をハードウェアレジスタ410(0)〜410(15)に書き込むこと、および/またはハードウェアレジスタ410(0)〜410(15)からの応答をパイプライン化されたレジスタバス400に出力することを含んでもよい。プロセッサモジュール404(0)のレジスタバススレーブ408(0)は、次いで、もしあれば、要求の処理の結果とともに、同じ要求をそのまま、デイジーチェーン内の次のプロセッサモジュール404(この例では、プロセッサモジュール404(1))のレジスタバススレーブ408(1)に転送する。同じ要求およびもしあれば対応する結果を、デイジーチェーン内の次のプロセッサモジュール404に転送することは、同じプロセッサクロックサイクル(図示せず)で行われることを理解されたい。
【００２８】
パイプライン化されたレジスタバスを設けるためのレジスタバススレーブ内の例示的な通信フローを説明するために、図5A〜図5Cを提供する。図5A〜図5Cは、いくつかの態様によれば、図4のプロセッサモジュール404(0)〜404(15)のうちの1つに対応する場合があるプロセッサモジュール500を示す。詳細には、図5Aは、レジスタバスを介してレジスタバスマスタからハードウェアレジスタをプログラムする要求を受け取るプロセッサモジュール500を示す。図5Bは、要求の処理を示し、図5Cは、レジスタバスに出力される要求およびもしあれば応答を示す。
【００２９】
図5Aに見られるように、プロセッサモジュール500は、モジュールコア502を含み、モジュールコア502は、プロセッサモジュール500に処理機能を提供する。詳細には、モジュールコア502は、アドレスデコーダ504と、プログラマブルハードウェアレジスタ505と、読取りレジスタ506と、読取りデータ有効性インジケータ508とを備える。モジュールコア502の上述の要素の動作について、以下でさらに詳細に説明する。
【００３０】
プロセッサモジュール500は、レジスタバス514を介して通信するためのレジスタバススレーブ512をさらに含む。図5A〜図5Cの例では、プロセッサモジュール500は、2つの(2)クロックサイクルの処理遅延を有する。したがって、プロセッサモジュール500のレジスタバススレーブ512は、バスインターフェース516(0)〜516(X)を含み、その各々が、データクロックソース520からデータクロック信号518を受け取る。バスインターフェース516の数は、プロセッサモジュール500の処理遅延に対応することを理解されたい。たとえば、プロセッサモジュール500が3つの(3)プロセッサクロックサイクルの処理遅延を有する態様では、バスインターフェース516(1)が設けられてもよい。図5A〜図5Cの例では、プロセッサモジュール500は、2つの(2)プロセッサクロックサイクルの処理遅延を有し、したがってバスインターフェース516(1)は必要とされず、明快のために図5Bおよび図5Cから省略されている。いくつかの態様によれば、プロセッサモジュール500の処理遅延は、アドレスを復号するためにアドレスデコーダ504によって必要とされるクロックサイクルの数によって全体的にまたは部分的に決まる場合がある。
【００３１】
バスインターフェース516(0)〜516(X)は、レジスタバス514を介して要求524を通信するためのそれぞれの要求レジスタ522(0)〜522(X)を含む。バスインターフェース516(0)〜516(X)はまた、レジスタバス514からデータ値528を受け取るためのそれぞれのデータレジスタ526(0)〜526(X)と、レジスタバス514からデータ値528に対応するデータ有効性インジケータ532を受け取るためのそれぞれのデータ有効性インジケータレジスタ530(0)〜530(X)とを含む。加えて、バスインターフェース516(X)は、論理ORゲート534および536をさらに含み、論理ORゲートの動作については、以下でより詳細に説明する。
【００３２】
図5Aでは、図4のレジスタバスマスタ402などのレジスタバスマスタによって開始された要求524は、レジスタバス514によって、レジスタバススレーブ512のバスインターフェース516(0)に渡される。いくつかの態様では、要求524は、モジュールコア502のハードウェアレジスタ505などのハードウェアレジスタをプログラムする要求を含む。要求524は、ターゲットにされたハードウェアレジスタのアドレス538を含み、ハードウェアレジスタ505をプログラムする要求がそれぞれ書込み要求および/または読取り要求であるかどうかを示す書込み許可インジケータ540および/または読取り許可インジケータ542をさらに含む場合がある。書込み要求の場合、データ値528は、レジスタバスマスタ402によって、書き込まれるデータ値とともに設定されてもよく、データ有効性インジケータ532は、データ値が有効であることを示すために1(1)に設定されてもよい。読取り要求については、データ値528およびデータ有効性インジケータ532は、レジスタバスマスタ402によってともにゼロ(0)に設定されてもよい。
【００３３】
次に図5Bを参照すると、レジスタバススレーブ512のバスインターフェース516(0)は、要求524、データ値528、およびデータ有効性インジケータ532をモジュールコア502に転送する。バスインターフェース516(0)はまた、データ値528およびデータ有効性インジケータ532とともに、同じ要求524をそのまま、バスインターフェース516(X)に渡す。モジュールコア502では、要求524のアドレス538が取り出される。モジュールコア502は次いで、要求524のアドレス538がプロセッサモジュール500に対応するかどうかを判定する。非限定的な例として、モジュールコア502は、アドレス538が、ハードウェアレジスタ505のアドレスなど、プロセッサモジュール500に割り当てられたアドレス空間内に含まれるかどうかを判定してもよい。
【００３４】
図5Cは、アドレス538がプロセッサモジュール500に対応するかどうかを判定するモジュールコア502の結果を示す。アドレス538がプロセッサモジュール500に対応しない場合、要求524は、そのままレジスタバススレーブ512のバスインターフェース516(X)によってレジスタバス514に渡される。いくつかの態様では、モジュールコア502は、アドレス538がプロセッサモジュール500に対応しないとき、および/または要求524が書込み動作を表さない場合、ゼロ(0)という値を論理ORゲート534および536に出力してもよい。ゼロ(0)という値を論理ORゲート534および536に出力することによって、データ値528およびデータ有効性インジケータ532の元の値は、応答544および出力データ有効性インジケータ546として変更なしでレジスタバススレーブ512を通過してもよい。
【００３５】
アドレス538がプロセッサモジュール500に対応する場合、要求524は、要求524の書込み許可インジケータ540および/または読取り許可インジケータ542が設定されているかどうかに従って、モジュールコア502によって処理される。書込み許可インジケータ540が設定されている場合、モジュールコア502は、要求524のデータ値528を、アドレス538によって示されるハードウェアレジスタ505に書き込んでもよい。データ値528がハードウェアレジスタ505に書き込まれると、書込み動作が完了するため、書込み動作の遅延は、プロセッサモジュール500、およびプロセッサモジュール500よりも前に要求524を受け取って渡す、前のプロセッサモジュール(図示せず)の個々の遅延の合計として計算されてもよい。
【００３６】
読取り許可インジケータ542が設定されている場合、モジュールコア502は、アドレス538によって示されるハードウェアレジスタ505の値を読み取り、読取りレジスタ506を介してバスインターフェース516(X)の論理ORゲート534にハードウェアレジスタ505の値を出力してもよい。モジュールコア502はまた、読取りデータ有効性インジケータ508の値を読み取り、バスインターフェース516(X)の論理ORゲート536に読取りデータ有効性インジケータ508の値を出力してもよい。いくつかの態様によれば、図5Aにおいてレジスタバススレーブ512に渡されるデータ値528およびデータ有効性インジケータ532は、読取り許可インジケータ542が設定されるとき、ともにゼロ(0)に設定される。したがって、バスインターフェース516(X)の論理ORゲート534から出力される応答544は、読取りレジスタ506の値を有し、論理ORゲート536から出力される出力データ有効性インジケータ546は、読取りデータ有効性インジケータ508の値を有する。応答544および出力データ有効性インジケータ546は、後続のプロセッサモジュール(図示せず)に、またはプロセッサモジュール500がレジスタバス514上の最後のプロセッサモジュールである場合は、図4のレジスタバスマスタ402に渡されるように、レジスタバススレーブ512によってレジスタバス514に出力される。応答544がレジスタバスマスタ402に届くまで、読取り動作は完了しないため、読取り動作の遅延は、プロセッサモジュール500およびレジスタバス514上のあらゆる他のプロセッサモジュール(図示せず)の個々の遅延の合計として計算されてもよい。
【００３７】
図6は、図4のパイプライン化されたレジスタバス400を通じて通信するための例示的なプロセスを示すために提供されるフローチャートである。図6を説明する際に、明快のために図4および図5A〜図5Cの要素が参照される。図6では、いくつかの態様において、レジスタバスマスタ402、第1のレジスタバススレーブ512、および第2のレジスタバススレーブ408(15)がデイジーチェーン構成で配置されることから動作が始まる(ブロック600)。データクロック信号518が、第1のレジスタバススレーブ512に供給されてもよい(ブロック602)。
【００３８】
次いで、アドレス538を含んだ要求524が、レジスタバスマスタ402において開始される(ブロック604)。要求524は、レジスタバス514を介してレジスタバスマスタ402からプロセッサモジュール500の第1のレジスタバススレーブ512に渡される(ブロック606)。要求524のアドレス538は、次に、プロセッサモジュール500のモジュールコア502で復号される(ブロック608)。モジュールコア502は次いで、アドレス538がプロセッサモジュール500に対応するかどうかを判定する(ブロック610)。対応しない場合、第1のレジスタバススレーブ512は、同じ要求524をそのまま、第2のレジスタバススレーブ408(15)に渡す(ブロック612)。
【００３９】
しかしながら、モジュールコア502が判定ブロック610において、アドレス538はプロセッサモジュール500に対応すると判定する場合、要求524はモジュールコア502によって処理される(ブロック614)。いくつかの態様では、要求524を処理するためのブロック614の動作は、データクロック信号518に関連付けられたクロックレートでモジュールコア502のハードウェアレジスタ505をプログラムすることを含んでもよい(ブロック616)。第1のレジスタバススレーブ512は次いで、モジュールコア502において要求524を処理した後に応答544を出力してもよい(ブロック618)。要求524は次いで、第2のレジスタバススレーブ408(15)からレジスタバスマスタ402に渡されてもよい(ブロック620)。
【００４０】
本明細書で開示する態様による、パイプライン化されたレジスタバスを使用してハードウェアレジスタをプログラムすることは、任意のプロセッサベースのデバイス内に設けられるか、またはその中に組み込まれてもよい。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤがある。
【００４１】
当業者は、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装される場合があることをさらに了解されよう。本明細書で説明するマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用されてもよい。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成されてもよい。この互換性について明確に説明するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がどのように実現されるかは、特定の適用例、設計上の選択、および/またはシステム全体に課された設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４２】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行される場合がある。プロセッサは、マイクロプロセッサである場合があるが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることもできる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
【００４３】
本明細書で開示する態様は、ハードウェアにおいて、および、ハードウェアに記憶された命令において具現化される場合があり、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに一体化される場合がある。プロセッサおよび記憶媒体は、ASICに存在する場合がある。ASICは、リモート局内に存在する場合がある。代替形態では、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバ内に存在する場合がある。
【００４４】
本明細書の例示的な態様のいずれかに記載される動作ステップは、例および説明を提供するために記載されることにも留意されたい。説明した動作は、図示したシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明した動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。加えて、例示的な態様において説明した1つまたは複数の動作ステップが組み合わされる場合がある。当業者には容易に明らかになるように、フローチャート図に示す動作ステップは、多数の異なる変更を受ける場合があることを理解されたい。当業者は、情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることも理解されよう。たとえば、上記の説明全体を通して参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【００４５】
本開示の上記の説明は、当業者が本開示を作成または使用することを可能にするために提供される。本開示に対する様々な変更は、当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲を逸脱することなく、他の変形形態に適用される場合がある。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４６】
100  コンピューティングデバイス
102  ネットワーク
104  筐体
106  モニタ
108  キーボード
110  マウス
200  モバイル端末
202  リモートアンテナ
204  基地局(BS)
206  パブリックランドモバイルネットワーク(PLMN)
300  レシーバ経路
302  トランスミッタ経路
304  アンテナ
306  スイッチ
308  ベースバンドプロセッサ(BBP)
310  制御システム
312  周波数合成器
314  ユーザインターフェース
316  メモリ
318  ソフトウェア
400  パイプライン化されたレジスタバス
402  レジスタバスマスタ
404  プロセッサモジュール
406  モジュールコア
408  レジスタバススレーブ
410  ハードウェアレジスタ
500  プロセッサモジュール
502  モジュールコア
504  アドレスデコーダ
505  プログラマブルハードウェアレジスタ
506  読取りレジスタ
508  読取りデータ有効性インジケータ
512  レジスタバススレーブ
514  レジスタバス
516  バスインターフェース
518  データクロック信号
520  データクロックソース
522  要求レジスタ
524  要求
526  データレジスタ
528  データ値
530  データ有効性インジケータレジスタ
532  データ有効性インジケータ
534  論理ORゲート
536  論理ORゲート
538  アドレス
540  書込み許可インジケータ
542  読取り許可インジケータ
544  応答
546  出力データ有効性インジケータ
【図１】
2018504673.tif 000003
【図２】
2018504673.tif 000004
【図３】
2018504673.tif 000005
【図４】
2018504673.tif 000006
【図５Ａ】
2018504673.tif 000007
【図５Ｂ】
2018504673.tif 000008
【図５Ｃ】
2018504673.tif 000009
【図６】
2018504673.tif 000010
【国際調査報告】
2018504673.tif 000011
2018504673.tif 000012