(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-09
(54)【発明の名称】デバッガ及び仲裁インタフェースを備えた集積回路
(51)【国際特許分類】
G06F 15/78 20060101AFI20230302BHJP
G06F 11/36 20060101ALI20230302BHJP
【FI】
G06F15/78 516
G06F15/78 517
G06F11/36 148
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022541244
(86)(22)【出願日】2021-01-04
(85)【翻訳文提出日】2022-09-02
(86)【国際出願番号】 US2021012071
(87)【国際公開番号】W WO2021138667
(87)【国際公開日】2021-07-08
(32)【優先日】2020-01-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】ホセ ルイス フローレス
(72)【発明者】
【氏名】ゲリー オーガスティン クーパー
(72)【発明者】
【氏名】アムリトパル シンハ マンドラ
(72)【発明者】
【氏名】アンソニー レル
(72)【発明者】
【氏名】ジェイソン リン ペック
【テーマコード(参考)】
5B042
5B062
【Fターム(参考)】
5B042GA11
5B042GA13
5B042HH01
5B062DD10
5B062HH04
5B062JJ08
(57)【要約】
集積回路(100)が、デバッガ(102)と、デバッガ(102)に結合されるインタフェース(104)とを含む。インタフェース(104)は、デバッガ(102)に結合される仲裁論理(106)と、仲裁論理(106)に結合される電力プロセッサ(108)と、電力プロセッサ(108)に結合される電力管理ネットワーク(112)とを有する。集積回路(100)は、インタフェース(104)に結合されるサブシステム(114A~114N)も含む。デバッガ(102)は、インタフェース(104)を介してサブシステム(114A~114N)のデバッグ動作を実施するように構成されている。
【特許請求の範囲】
【請求項1】
集積回路であって、
デバッガと、
前記デバッガに結合されるインタフェースと、
前記インタフェースに結合されるサブシステムと、
を含み、
前記インタフェースが、
前記デバッガに結合される仲裁論理と、
前記仲裁論理に結合される電力プロセッサと、
前記電力プロセッサに結合される電力管理ネットワークと、
を有し、
前記デバッガが、前記インタフェースを介して前記サブシステムのデバッグ動作を実施するように構成される、
集積回路。
【請求項2】
請求項1に記載の集積回路であって、前記仲裁論理が、
前記デバッガからデバッグ要求を受け取り、
前記受け取ったデバッグ要求に応答して前記電力プロセッサに割り込みを生成する、
ように構成される、
集積回路。
【請求項3】
請求項2に記載の集積回路であって、
前記電力プロセッサが、
前記割り込みに応答して前記デバッグ要求に関連する前記サブシステムの電力状態を判定し、
前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオフ状態である場合、前記デバッグ要求に関連する前記サブシステムを起動するために第1の動作セットを実施する、
ように構成される、
集積回路。
【請求項4】
請求項3に記載の集積回路であって、前記第1の動作セットが、
前記デバッグ要求に関連する前記サブシステムを起動するために前記電力管理ネットワークに制御信号を提供することと、
前記デバッグ要求に関連するサブシステムがオン状態であることを確認するために前記仲裁論理に通知を送ることと、
を含む、集積回路。
【請求項5】
請求項4に記載の集積回路であって、前記第1の動作セットが、
前記デバッグ要求に関連するデバッグ動作が完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して前記デバッグ要求に関連する前記サブシステムを前記オフ状態に復元するために、前記電力管理ネットワークに制御信号を提供することと、
を含む、集積回路。
【請求項6】
請求項3に記載の集積回路であって、前記電力プロセッサが、前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオン状態である場合に第2の動作セットを実施するように構成される、集積回路。
【請求項7】
請求項6に記載の集積回路であって、前記第2の動作セットが、前記デバッグ要求に関連する前記サブシステムがオン状態にあることを確認するために、前記仲裁論理に通知を送ることを含む、集積回路。
【請求項8】
請求項7に記載の集積回路であって、前記第2の動作セットが、
前記デバッグ要求に関連するデバッグ動作が完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して、前記デバッグ要求に関連する前記サブシステムを前記オン状態に維持することと、
を含む、集積回路。
【請求項9】
請求項1に記載の集積回路であって、前記集積回路がインフォテインメント集積回路であり、前記インタフェースが、セキュアマイクロコントローラドメインの一部であり、前記サブシステムがプロセッサ及びメモリを含む、集積回路。
【請求項10】
請求項1に記載の集積回路であって、前記仲裁論理が、
要求されたサブシステムがアクティブであるために依存するクロックソースを設定し、
前記サブシステムがアクティブであるために依存する電力ドメインを設定し、
前記要求されたサブシステムのためのクロックゲーティングを除去する、
ように構成される、
集積回路。
【請求項11】
システムであって、
集積回路を含み、
前記集積回路が、
周辺機器構成要素に結合されるように適合される端子と、
前記端子に結合されるプロセッサコアと、
前記プロセッサコアに結合され、前記プロセッサコアによる実行のためにデバッガを格納するメモリと、
前記プロセッサに結合されるインタフェースと、
前記インタフェースに結合されるサブシステムと、
を有し、
前記インタフェースが、
仲裁論理と、
前記仲裁論理に結合される電力プロセッサと、
前記電力プロセッサに結合される電力管理ネットワークと、
を有し、
前記プロセッサコアが、前記インタフェースを介して前記サブシステムのデバッグ動作を実施するように構成される、
システム。
【請求項12】
請求項11に記載のシステムであって、前記仲裁論理が、
前記プロセッサコアからデバッグ要求を受け取り、
前記受け取ったデバッグ要求に応答して前記電力プロセッサに割り込みを生成する、
ように構成される、
システム。
【請求項13】
請求項12に記載のシステムであって、前記電力プロセッサが、
前記割り込みに応答して前記デバッグ要求に関連する前記サブシステムの電力状態を判定し、
前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオフ状態である場合に、前記デバッグ要求に関連する前記サブシステムを起動するために第1の動作セットを実施する、
ように構成される、
システム。
【請求項14】
請求項13に記載のシステムであって、前記第1の動作セットが、
前記デバッグ要求に関連する前記サブシステムを起動するために前記電力管理ネットワークに制御信号を提供することと、
前記デバッグ要求に関連する前記サブシステムがオン状態であることを確認するために、前記仲裁論理に通知を送ることと、
前記デバッグ要求に関連するデバッグ動作が完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して、前記デバッグ要求に関連する前記サブシステムを前記オフ状態に復元するために、前記電力管理ネットワークに制御信号を提供することと、
を含む、方法。
【請求項15】
請求項13に記載のシステムであって、前記電力プロセッサが、前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオン状態である場合に第2の動作セットを実施するように構成される、システム。
【請求項16】
請求項15に記載のシステムであって、前記第2の動作セットが、
前記デバッグ要求に関連する前記サブシステムがオン状態であることを確認するために、前記仲裁論理に通知を送ることと、
前記デバッグ要求に関連するデバッグ動作が完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して、前記デバッグ要求に関連する前記サブシステムを前記オン状態に維持することと、
を含む、方法。
【請求項17】
方法であって、
集積回路のプロセッサコアによって、前記集積回路のサブシステムに対するデバッグ要求を生成することと、
前記プロセッサコアと前記サブシステムとの間のインタフェースによって、前記生成されたデバッグ要求に応答して電力プロセッサ割り込みを生成することと、
前記デバッグ要求に関連する前記サブシステムがオン状態にあると識別されると、前記電力プロセッサによって、前記インタフェースへの通知を提供することと、
前記プロセッサコアによって、前記インタフェースを介した前記通知に応答してデバッグ動作を実施することと、
を含む、方法。
【請求項18】
請求項17に記載の方法であって、
前記電力プロセッサによって、前記電力プロセッサ割り込みに応答して前記デバッグ要求に関連する前記サブシステムの電力状態を判定することと、
前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオフ状態である場合、前記電力プロセッサによって、前記サブシステムを起動するために第1の動作セットを実施することと、
をさらに含む、方法。
【請求項19】
請求項18に記載の方法であって、
前記電力プロセッサによって、第1の動作セットを実施することが、
前記デバッグ要求に関連する前記サブシステムを起動するために、前記集積回路の電力管理ネットワークに制御信号を提供することと、
前記デバッグ要求に関連する前記サブシステムがオン状態であることを確認するため、前記集積回路の仲裁論理に通知を送ることと、
前記デバッグ要求に関連する前記サブシステムが完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して、前記デバッグ要求に関連する前記サブシステムを前記オフ状態に復元するために制御信号を前記電力管理ネットワークに提供することと、
を含む、方法。
【請求項20】
請求項18に記載の方法であって、前記デバッグ要求に関連する前記サブシステムの前記判定された電力状態がオン状態である場合、前記電力プロセッサによって、第2の動作セットを実施することをさらに含む、方法。
【請求項21】
請求項20に記載の方法であって、前記電力プロセッサによって前記第2の動作セットを実施することが、
前記デバッグ要求に関連する前記サブシステムがオン状態であることを確認するために前記集積回路の仲裁論理に通知を送ることと、
前記デバッグ要求に関連するデバッグ動作が完了したという通知を前記仲裁論理から受け取ることと、
前記受け取った通知に応答して、前記デバッグ要求に関連する前記サブシステムを前記オン状態に維持することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
新たな電子デバイスが開発され、集積回路(IC)技術が進歩するにつれて、新たなIC製品が商業化される。電子デバイスのための1つの例示のIC製品は、1つ又は複数のプロセッサコアを備えるシステムオンチップ(SoC)である。SoC市場では、効率性と生産性への注目が高まっている。ファクトリオートメーション機器メーカー、航空宇宙、国防、パワーグリッドインフラ、ビルオートメーション、及び医療などの産業は、信頼性を高めたSoCを要求するようになってきている。要求される信頼性仕様を満たすために、多くのSoC設計は、性能、サイズ、及び全体的なコスト目標をバランスさせながら、埋め込み解決策を含む。SoCの場合、様々なメモリ要素への依存、及び、小さいジオメトリシリコンプロセス技術を用いることで信頼性の課題が生じる。
【発明の概要】
【0002】
一例の実施例において、集積回路が、デバッガと、デバッガに結合されるインタフェースとを含む。インタフェースは、デバッガに結合される仲裁論理と、仲裁論理に結合される電力プロセッサと、電力プロセッサに結合される電力管理ネットワークとを有する。集積回路はまた、インタフェースに結合されるサブシステムを含み、デバッガは、インタフェースを介してサブシステムのデバッグ動作を実施するように構成される。
【0003】
別の例示の実施例において、システムが集積回路を含み、集積回路は、周辺機器構成要素に結合されるように適合される端子と、端子に結合されるプロセッサコアと、プロセッサコアに結合され、プロセッサコアによる実行のためのデバッガを格納するメモリとを有する。集積回路はまた、プロセッサに結合されるインタフェースを含む。インタフェースは、仲裁論理と、仲裁論理に結合される電力プロセッサと、電力プロセッサに結合される電力管理ネットワークとを有する。集積回路はまた、インタフェースに結合されるサブシステムを含み、プロセッサコアは、インタフェースを介してサブシステムのデバッグ動作を実施するように構成される。
【0004】
さらに別の例示の実施例において、或る方法が、集積回路のプロセッサコアによって、集積回路のサブシステムに対するデバッグ要求を生成することと、プロセッサコアとサブシステムとの間のインタフェースによって、生成されたデバッグ要求に応答して電力プロセッサ割り込みを生成することとを含む。この方法はまた、デバッグ要求に関連するサブシステムがオン状態にあると識別されると、電力プロセッサによってインタフェースに通知を提供することと、通知に応答して、プロセッサコアによってインタフェースを介してデバッグ動作を実施することとを含む。
【図面の簡単な説明】
【0005】
【
図1】幾つかの例における集積回路のブロック図である。
【0006】
【
図2】幾つかの例におけるシステムのブロック図である。
【0007】
【
図3】幾つかの例における集積回路のブロック図である。
【0008】
【
図4】幾つかの例における集積回路のブロック図である。
【0009】
【
図5】幾つかの例における、埋め込みデバッガを備える内蔵ICの仲裁論理の図である。
【0010】
【
図6】幾つかの例における集積回路の埋め込みデバッグ動作のフローチャートである。
【0011】
【
図7】幾つかの例における、ルックアップテーブル(LUT)動作のパワーダウンシーケンスのフローチャートである。
【0012】
【
図8】幾つかの例における、ICのためのデバッグ方法のフローチャートである。
【発明を実施するための形態】
【0013】
本明細書で説明するように、集積回路(IC)が、ICのサブシステムをデバッグするための組み込みデバッガを含む。幾つかの例示の実施例において、ICは、少なくとも1つのプロセッサコア及びメモリを含み、デバッガは少なくとも1つのプロセッサコアによる実行のためにメモリによって格納されるアプリケーションである。ICはまた、デバッガとサブシステムとの間のインタフェースを含み、デバッガは、インタフェースを介してサブシステム上でデバッグ動作を実施するように構成される。幾つかの例示の実施例において、インタフェースは、デバッガに結合される仲裁論理と、仲裁論理に結合される電力プロセッサと、電力プロセッサに結合される電力管理ネットワークとを含む。本明細書で使用するとき、「電力プロセッサ」は、クロック、リセット、又は、ICの他の電力管理タスクを管理するプロセッサである。電力プロセッサはまた、電力管理タスクに加えて、他の動作を実施し得る。
【0014】
幾つかの例示の実施例において、仲裁論理は、デバッガからデバッグ要求を受け取り、受け取ったデバッグ要求に応答して電力プロセッサへの割り込みを生成するように構成される。電力プロセッサは、割り込みに応答してデバッグ要求に関連するサブシステムの電力状態を判定し、デバッグ要求に関連するサブシステムの判定された電力状態がオフ状態である場合、デバッグ要求に関連する第1の動作セットを実施し、デバッグ要求に関連するサブシステムの判定された電力状態がオン状態である場合、デバッグ要求に関連する第2の動作セットを実施するように構成される。
【0015】
幾つかの例示の実施例において、第1の動作セットは、デバッグ要求に関連するサブシステムを起動するために電力管理ネットワークに制御信号を提供することと、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために仲裁論理に通知を送ることと、デバッグ要求に関連するデバッグ動作が完了したという通知を仲裁論理から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオフ状態に復元するために電力管理ネットワークに制御信号を提供することとを含む。幾つかの例示の実施例において、第2の動作セットは、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために仲裁論理に通知を送ることと、デバッグ要求に関連するデバッグ動作が完了したという通知を仲裁論理から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオン状態に維持することとを含む。
【0016】
幾つかの例示の実施例において、ICは、デバッガの幾つか及びインタフェースの構成要素を含むセキュアマイクロコントローラ(MCU)領域(「MCUアイランド」と呼ばれることがある)を含む。例えば、セキュアマイクロコントローラドメインは、デバッガの少なくとも一部を実行するプロセッサを含み得る。また、幾つかの例示の実施例において、セキュアマイクロコントローラドメインは、電力プロセッサと仲裁論理とを含み得る。幾つかの例示の実施例において、説明する方法は、必要に応じて、セキュアマイクロコントローラドメインとICの他の構成要素との間の通信を支援するためのオンチップエミュレータを含む。
【0017】
幾つかの例示の実施例において、ICは、ディスプレイ、センサ、及び/又は他の周辺機器との通信を支援するためのインタフェースを含むインフォテイメントICである。幾つかの例示の実施例において、ICは、先進運転支援システム(ADAS)物理(PHY)インタフェースを含み、これは、ADAS互換周辺機器又はアプリケーションとの通信を支援する。他の例示の実施例において、ICは、工場又は産業上の利用(例えば、ファクトリオートメーション機器製造業者、航空宇宙、国防、パワーグリッドインフラストラクチャ、ビルオートメーション、及び/又は医学的用途)における、ディスプレイ、センサ、及び/又は他の周辺機器との通信を支援するためのインタフェースを備える産業用途ICである。
【0018】
動作において、インタフェース及び/又は電力プロセッサは、システムオンチップ(SoC)マップ又はルックアップテーブル(LUT)を用いてサブシステムの電力状態を追跡することができる。デバッガが、電力プロセッサがサブドメインのいずれかを起動させることを望むとき、マップ又はLUTは、電力プロセッサによって使用されて、デバッグ要求に関連するサブシステムの電力状態を判定する。他の埋め込みデバッガICオプションと比較して、説明される技法は、侵入が少なく、デバッグ動作を安全に実施するための複雑なハードウェアを回避する。説明される埋め込みデバッガICオプションは、デバッグ動作に関連するサブシステムの電力管理を実施するために、利用可能な電力プロセッサ及び割り込みプロトコルを活用する。このようにして、IC又はSoCは、性能、サイズ、及び全体的なコスト目標を満たしながら、目標信頼性を達成するために、ICサブシステムの埋め込みセキュアデバッグを達成する
【0019】
図1は、幾つかの例におけるIC100のブロック図である。図示されるように、IC100は、デバッガ102とサブシステム114A~114Nとの間に結合されるインタフェース104を含む。幾つかの例示の実施例において、デバッガ102は、メモリに格納され、IC100のプロセッサコアによって実行されるアプリケーションである。付加的に又は代替として、デバッガ102は、本明細書で説明するデバッグ動作の少なくとも幾つかを実施するようにハードコードされた論理を含み得る。
図1において、デバッガ102は、インタフェース104を介してサブシステム114A~114Nと相互作用し、サブシステムは、仲裁論理106、電力プロセッサ108、及び電力管理ネットワーク112を含む。
【0020】
幾つかの例示の実施例において、仲裁論理106は、デバッガ102からデバッグ要求を受信し、受け取ったデバッグ要求に応答して電力プロセッサ108に割り込みを生成するように構成される。電力プロセッサ108は、割り込みに応答するデバッグ要求に関連するサブシステム(例えば、サブシステム114A~114Nのうちの1つ)の電力状態を判定し、デバッグ要求に関連するサブシステムの判定された電力状態がオフ状態である場合、デバッグ要求に関連する第1の動作セットを実施し、デバッグ要求に関連するサブシステムの判定された電力状態がオン状態である場合、デバッグ要求に関連する第2の動作セットを実施するように構成される。
【0021】
幾つかの例示の実施例において、電力プロセッサ108の第1の動作セットは、デバッグ要求に関連するサブシステムを起動させるために電力管理ネットワークに制御信号を提供することと、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために仲裁論理106に通知を送ることと、デバッグ要求に関連するデバッグ動作が完了した通知を仲裁論理106から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオフ状態に復元するために電力管理ネットワーク112に制御信号を提供することとを含む。幾つかの例において、電力プロセッサ108は、LUT110、又はその他の組織化されたデータを用いて、サブシステム114A~114Nの電力状態を判定し、その後の動作を実施する。幾つかの例示の実施例において、第2の動作セットは、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために仲裁論理106に通知を送ることと、デバッグ要求に関連するデバッグ動作が完了した通知を仲裁論理106から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオン状態に維持することとを含む。
【0022】
IC100を用い、デバッグ装置102は、デバッグ動作に関連するサブシステム114A~114Nのいずれかの電力管理を実施するために、電力プロセッサ108及び割込みプロトコルの可用性を活用する。このようにして、IC100は、IC100の性能、サイズ、及び全体的なコスト目標を満たしつつ、目標信頼性を達成するために必要に応じてサブシステム114A~114Nの組み込みセキュアデバッグを達成する。
【0023】
図2は、幾つかの例におけるシステム200のブロック図である。図示するように、装置200はIC100A(
図1の集積回路100の一例)を含む。幾つかの例において、IC100AはインフォテイメントIC(例えば車両用)である。図示されるように、IC100Aは、ディスプレイ202、センサ204、及びADAS PHYインタフェース208などの周辺機器に結合されている。幾つかの例示の実施例において、ADAS PHYインタフェース208は省かれる。また、システム200は、IC100Aに結合される電力管理IC(PMIC)206を含み、少なくともIC100Aに電源を提供するように構成されている。PMIC206は、集積回路100Aに電力を供給するように構成される。幾つかの例示の実施例において、IC100Aは、本明細書に記載されているようなデバッガ動作を伴うインフォテイメントIC(例、車載用)である。他の例示の実施例において、IC100Aは、インダストリアルIC(ファクトリオートメーション機器メーカー、航空宇宙、国防、パワーグリッドインフラストラクチャ、ビルディングオートメーション、医療用途など)である。特定の用途又は応用例にかかわらず、IC100Aは、IC100の性能、サイズ、及び全般的なコスト目標を満たしつつ、目標信頼性を達成するために本明細書に記載されるようにそのサブシステムの組み込みセキュアデバッグを達成する。
【0024】
図3は、幾つかの例におけるIC300(
図1のIC100又は
図2のIC100Aの一例)のブロック図である。
図3において、IC300は、本明細書で説明するようなデバッガ、インタフェース、及びサブシステムを備えるインフォテイメントICの一例である。
図1のIC100を
図3のIC300と関連付けると、
図1のデバッガ102は、セキュアMCUドメイン又はMCUアイランド336及び
図3のIC300の他の部分において動作するデバッガ動作を含む。
図1のインタフェース104は、
図3におけるマイコンアイランド336の一部である。また、プロセッサコア302及び308、
図3のメモリサブシステム326は、
図1のサブシステム114A~114Nの例である。他の例示のサブシステムは、コントローラ、通信インタフェース、プログラマブル回路要素、又は特定用途向け回路要素を含む。
図3のIC300は単に説明の目的であり、説明する技法を特定のIC及び関連する構成要素のセットに限定するものではない。
【0025】
図示のように、IC300は、プロセッサ304及びメモリ306(例えば、誤り訂正コード(ECC)を備える512KBのL2キャッシュ)を備える第1のプロセッサコア302を含む。集積回路300はまた、プロセッサ310及びメモリ312(例えば、ECCを備える512KBのL2キャッシュ)を備える第2のプロセッサコア308を含む。
図3の例では、第1及び第2のコア302及び308は、プロセッサコア302又は308の一方又は両方(例えば、メモリ306及び312)又はメモリサブシステム326に少なくとも部分的に格納され得るソフトウェアアプリケーションを実行するように構成される。図示のように、メモリサブシステム326は、マルチコア共有メモリコントローラ(MSMC)(例えば、ECCを備える2MBスタティックランダムアクセスメモリSRAM)、汎用メモリコントローラ(GPMC)、極限学習機械(ELM)、ECCを備える外部メモリインタフェース(EMIF)などの様々な例示のブロックを含む。
【0026】
図3において、IC300はまた、グラフィックス処理ユニット(GPU)316を備えるグラフィックモジュール314と、イーサネットポートを支援するためのマイクロコントローラ322(PRI_CUSSGと記されている)を備えるインダストリアルサブシステムモジュール320と、ナビゲータサブシステム324とを含む。幾つかの例示の実施例において、ナビゲータサブシステム324は、統合ダイレクトメモリアクセス(UDMA)ブロック、プロキシブロック、周辺機器仮想化ユニット(PVU)ブロック、共通プラットフォームタイムスタンプ(CPTS)、リングアクセラレータ(RA)プロキシデータバッファ、メモリ巡回冗長検査(MCRC)アクセラレータ、割り込みブロック(INTR及びINTA)、メールボックスブロック、スピンロックブロック、タイママネージャ(TIMER_MGR)ブロック、チャネル化されたファームウェア(FW)ブロックを含む。
【0027】
図示のように、IC300はディスプレイサブシステム328も含む。幾つかの例示の実施例において、ディスプレイサブシステム328は、ビデオパイプラインブロック(例えば、ブレンド/スケール/色空間コンバータ又は「CSC」)と、デジタルビデオインタフェース(例えば、オープンLDI)ブロックと、MIPIインタフェース及びディスプレイポートインタフェース(MIPI DPI)ブロックとを含む。さらに、IC300はシステムサービスモジュール330を含む。幾つかの例示の実施例において、システムサービスモジュール330は、汎用(GP)タイマ、リアルタイム割り込み(RTI)及びウィンドウ型ウォッチドッグタイマー(WWDT)ブロック、ペリフェラルダイレクトメモリアクセス(PDMA)ブロック、並びにデバッグブロックを含む。また、IC300はビデオ入力モジュール332も含む。幾つかの例示の実施例において、ビデオ入力モジュール332は、CALブロック、MIPI CSI-2ブロック、低電圧差動シグナリングレシーバ(LVDSRX)ブロック、ビデオ処理(例えば、BT.656/1120)ブロックを含む。
【0028】
図3において、IC300は、セキュリティアクセラレータモジュール334も含む。幾つかの例示の実施例において、セキュリティアクセラレータモジュール334は、高度暗号化標準(AES)ブロック、セキュアハッシュ標準(SHA)ブロック、公開鍵アクセラレータ(PKA)ブロック、決定論的ランダムビット生成器(DRBG)、メッセージダイジェストアルゴリズム(MD5)ブロック、及びデータ暗号化標準(3DES)ブロックを含む。
【0029】
図示のように、ICのMCUアイランド336は、ナビゲータサブシステム338及びプロセッサ340を含む。幾つかの例示の実施例において、ナビゲータサブシステム338は、RAブロックと、UDMAブロックと、プロキシブロックと、MCRCブロックと、割り込みブロック(INTR及びINTA)と、チャネル化されたFWブロックとを含む。一例において、MCUアイランド336内のプロセッサ340は電力プロセッサとして使用され得、デバッガは、電力、クロック、及び/又はリセットなど、デバッグされているサブシステムに提供される様々な信号を制御するために、又は他の電力管理タスクを実施するために、プロセッサ340と相互作用し得る。MCUアイランド336はまた、PDMAブロック、GPタイマ、エラー信号モジュール(ESM)、RTI/WDTブロック、及びメモリ(例えば、スクラッチパッドRAM512B及びMCUMSRAM512KB)を含む種々のその他の構成要素を含む。幾つかの例示の実施例において、MCUアイランド336は、本明細書で説明する手法に関連する種々の構成要素、例えば、
図1のデバッガ102とインタフェース104(例えば、調停論理106及び電力プロセッサ108)の少なくとも一部とを含む。
【0030】
IC300はまた、MCUアイランド336とIC300の他の構成要素又はサブシステムとの間の通信を可能にする相互接続342を含む。IC300の例示の構成要素には、オートモーティブインタフェース344、メディア及びデータストレージ346、制御インタフェース348、並びにオーディオ周辺機器350が含まれる。オートモーティブインタフェース344は、例えば、フレキシブルデータレート(MCAN_FD)ブロックを備えるコントローラエリアネットワークを含む。メディア及びデータストレージ346は、例えば、マルチメディアカード(MMC)/セキュアデジタル(SD)カードブロックを含む。制御インタフェース348は、拡張高解像度パルス幅変調(eHRPWM)ブロックと、拡張捕捉(eCAP)ブロックと、拡張直交エンコーダパルス(eQEP)ブロックとを含む。オーディオ周辺機器350は、例えば、マルチチャネルオーディオシリアルポート(MCASP)ブロックを含む。
【0031】
図示のように、IC300は汎用接続モジュール352も含む。幾つかの例示の実施例において、汎用接続モジュールは、汎用入出力(GPIO)ブロック、オクタルシリアルペリフェラルインタフェース(OSPI)及びハイパーバスブロック、通信インタフェース(例えば、I2C)ブロック、マルチチャネルシリアルポートインタフェース(MCSPI)ブロック、アナログデジタルコンバータ(ADC)、並びに汎用非同期受信機/送信機(UART)ブロックを含む。IC300はまた、高速シリアルインタフェースモジュール354を含む。幾つかの例示の実施例において、高速シリアルインタフェースモジュール354は、周辺機器構成要素相互接続エクスプレス(PCIe)ブロックと、USB(ユニバーサルシリアルバス)2.0ブロックと、USB3.1ブロックと、イーサネットブロックとを含む。
【0032】
IC300において、MCUアイランド336内で動作するデバッガが、デバッグ動作と互換性のあるサブシステム(例えば、プロセッサコア302、308、メモリサブシステム326、又は他のサブシステム)のいずれかの電力管理を実施するために、電力プロセッサ(例えば、プロセッサ340のうちの1つ)及び割り込みプロトコルの可用性を活用する。このようにして、IC300は、IC300の性能、サイズ、及び全体的なコスト目標を満たしながら、目標信頼性を達成するために必要に応じてサブシステムの組み込みセキュアデバッグを達成する。
【0033】
図4は、IC400(
図1におけるIC100、
図2におけるIC100A、
図3におけるIC300の一例)のブロック図である。図示されるように、IC400は、仲裁論理414(
図1における仲裁論理106の例)を介して、サブシステム416A~416N(
図1におけるサブシステム114A~114Nの例)に結合されるデバッガサブシステム(
図1におけるデバッガ102の例)102Aを含む。仲裁論理414はまた、電力プロセッサ108A(
図1における電力プロセッサ108の一例)にも結合される。
図4の例では、サブシステム416A~416Nの各々は、デバッグ目標中央処理装置(CPU)418A~418N又は他の目標構成要素を含む。サブシステム416A~416Nの各々は、パワー及びスリープコントローラ(PSC)及び/又はローカルパワー及びスリープコントローラ(LPSSC)モジュール420A~420Nも含む。幾つかの例において、PSC/LPSSCモジュール420A~420Nは、IC400のサブシステム416A~416Nのためのクロック及び/又は電源を制御するための電力管理ネットワークの一部(例えば、電力管理ネットワーク112)である。
【0034】
より具体的には、デバッガサブシステム102Aは、JTAG(joint test action group)通信を受け取るように構成されたデバッグピン(DP)インタフェース402を含む。DPインタフェース402は、バス(DAPBUS)404に結合される。図示されるように、デバッガサブシステム102Aはまた、バス404に結合されるブリッジ406及びデバッグ認証インタフェース(パワーAPと呼ばれる)408を含む。動作において、デバッグ認証インタフェース408は、仲裁論理414にデバッグ要求を伝達するように構成される。
【0035】
デバッガサブシステム102Aからのデバッグ要求に応答して、仲裁論理414は、電力プロセッサ108Aに割り込み(Debug Req Int)をアサートする。電力プロセッサ108Aは、割込みに応答してデバッグ要求に関連するサブシステムの電力状態を判定し、デバッグ要求に関連するサブシステムの判定された電力状態がオフ状態である場合には、デバッグ要求に関連するサブシステムをパワーアップするために第1の動作セットを実施するように構成されている。幾つかの例示の実施例において、電力プロセッサ108Aによって実施される第1の動作セットは、電力管理ネットワーク(例えば、PSC/LPSSCモジュール420A~420Nのそれぞれ1つ)に制御信号413を提供して、デバッグ要求に関連するサブシステムをパワーオンにし、デバッグ要求に関連するサブシステムがオン状態であることを確認するために、仲裁論理414に通知(セキュアデバイス通知)を送信する。幾つかの例示の実施例において、電力プロセッサ108Aによって実施される第1の動作セットはまた、デバッグ要求に関連するデバッグ動作が完了したという通知を(例えば、Debug Req Intを用いて)仲裁論理414から受け取り、受け取った通知に応答してデバッグ要求に関連するサブシステムをオフ状態に復元するために電力管理ネットワーク(例えば、PSC/LPSSCモジュール420A~420Nのそれぞれの1つ)に制御信号を提供する。
【0036】
幾つかの例示の実施例において、電力プロセッサ108Aは、デバッグ要求に関連するサブシステムの判定された電力状態がオン状態である場合、第2の動作セットを実施するように構成されている。一例では、第2の動作セットは、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために、仲裁論理414に通知(セキュアデバイス通知)を送信することと、デバッグ要求に関連するデバッグ動作が完了したという通知(例えば、Debug Req Intを用いて)を仲裁論理414から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオン状態に維持することとを含む。
【0037】
図4の例において、仲裁論理414は、デバッグ動作に関連する構成ビット又は状態ビットを追跡するために、メモリマップレジスタ(MMR:memory-mapped registers)415又は他のストレージを含む。また、幾つかの例示の実施例において、調停論理414は、相互接続410(SoC相互接続と記されている)を介して電力プロセッサ108Aに結合する。
図4の例において、電力プロセッサ108Aと仲裁ブロック414は、サブシステム416A~416Nのいずれかに対してデバッグを実施するためのインタフェース(例えば、
図1のインタフェース104)を提供する。IC400を用いると、仲裁論理414は、デバッガ102Aのデバッグ動作に関連するサブシステム416A~416Nのいずれかの電力管理を実施するために、電力プロセッサ108A及び割込みプロトコルの可用性を活用できるようになる。このようにして、IC400は、IC400の性能、サイズ、及び全体的なコスト目標を満たしつつ、目標信頼性を達成するために必要に応じてサブシステム416A~416Nの組み込みセキュアデバッグを達成する。
【0038】
図5は、幾つかの例における、埋め込みデバッガを備えるIC(例えば、
図1のIC100、
図2のIC100A、
図3のIC300、又は
図4のIC400)のための仲裁論理500(
図1の仲裁論理106、又は
図4の仲裁論理414の例)の図である。図示のように、調停論理500は、入力502、504、508、534、及び538を含む。入力502は、本明細書で説明するように、電力プロセッサから通知(例えば、セキュアデバイス通知)を受け取るように構成される。入力504は、デバッガ(例えば、
図4のデバッガサブシステム102A)から制御信号(ForceActive)を受信するように構成される。入力508は、デバッガ(例えば、
図4のデバッガサブシステム102A)から別の制御信号(InhibitSleep)を受信するように構成される。入力534は、電力管理ネットワーク(例えば、
図4のPSC/LPSSCモジュール420A~420Nのそれぞれ1つ)から通知(ForceActiveACK)を受け取るように構成される。入力538は、電力管理ネットワーク(例えば、
図4のPSC/LPSSCモジュール420A~420Nのそれぞれ1つ)から通知(InhibitSleepACK)を受け取るように構成される。
【0039】
図示のように、調停論理500はまた、出力506、510、532、536、548を含む。出力506は、第1のタイプの通知(例えば、ForceActiveACK)をデバッガに提供するように構成される。出力510は、第2のタイプの通知(例えば、InhibitSleepACK)をデバッガに提供するように構成される。出力532は、電力管理ネットワーク(例えば、
図4におけるPSC/LPSSCモジュール420A~420Nのそれぞれの1つ)に第1のタイプの制御信号(例えば、ForceActive)を提供するように構成される。出力536は、電力管理ネットワーク(例えば、
図4におけるPSC/LPSSCモジュール420A~420Nのそれぞれ1つ)に第1のタイプの制御信号(例えば、InhibitSleep)を提供するように構成される。出力548は、本明細書で説明されるように、電力プロセッサ(例えば、
図1における電力プロセッサ108、又は
図4における電力プロセッサ108A)に割り込み(debug_forceactive_int)を提供するように構成される。
【0040】
図5において、調停論理500は、入力502、504、508、534、及び538と、506、510、532、及び536との間に論理又はゲートを含む。図示のように、調停論理500は、入力502に結合されるバッファ511を含む。バッファ511の出力は、ANDゲート528の入力の一方である。ANDゲートの出力は出力532に提供される。図示のように、ANDゲート528への他方の入力は、別のANDゲート524の出力から生じ、ANDゲート524への入力の一方は入力504に結合される。ANDゲート524への他方の入力は、バイパスオーバーライドレジスタ550(BYPASS_OVERRIDE)に結合される。
図5において、バイパスオーバーライドレジスタ550は、調停論理500の種々のレジスタ550、552、554、556、558、560、562、564、566、568、570、572、及び574のうちの1つであり、これらは、
図4におけるMMR415の例である。
図5の例において、これらのレジスタは、インタフェース540に結合され、これにより、デバッガ又は他のIC構成要素が、仲裁論理500の動作に関連する構成ビット及び/又は状態ビットを検査又はクリアすることが可能になる。
【0041】
図示のように、入力504はまた、第1の制御信号ポート状態レジスタ(FORCEACTIVE_PORT_STAT)558と、別のANDゲート530の入力とに結合される。ANDゲート530の出力は、出力536に結合される。ANDゲート530の他方の入力は、別のANDゲート526の出力から来る。図示のように、ANDゲート526の一方の入力は入力508に結合され、ANDゲート526への他方の入力はバイパスオーバーライドレジスタ550に結合される。図示のように、入力508は、第2の制御信号ポート状態レジスタ552(INHIBITSLEEP_PORT_STAT)にも結合される。
【0042】
図5の例において、出力506は、マルチプレクサ512の出力に結合される。図示のように、入力534は、マルチプレクサ512への第1の入力に結合される。マルチプレクサ512の第2の入力は、第1の制御信号肯定応答セットレジスタ(FORCEACTIVE_ACK_SET)560に結合され、マルチプレクサ512のための制御信号は、バイパスオーバーライドブロック550によって提供される。また、出力510は、別のマルチプレクサ514の出力に結合される。図示のように、入力538は、マルチプレクサ514への第1の入力に結合される。マルチプレクサ514の第2の入力は、第2の制御信号肯定応答セットレジスタ(INHIBITSLEEP_ACK_SET)554に結合され、マルチプレクサ514のための制御信号は、バイパスオーバーライドレジスタ550によって提供される。
【0043】
調停論理500はまた、入力504に結合される第1の入力と、第1の制御信号肯定応答セットブロック560に結合される第2の入力とを備えるXORゲート516を含む。XORゲート516の出力は、第1の制御信号(ForceActive)に関連する割り込みをセット又はクリアするために、第1の制御信号割り込み状態レジスタ(FORCEACTIVE_INT_RAW_STAT_SET)570に信号を提供するように構成された制御ブロック(REQ EVT SET/CLR)518に結合される。調停論理500はまた、入力508に結合される第1の入力と、第2の制御信号肯定応答セットレジスタ554に結合される第2の入力とを備えるXORゲート520を含む。XORゲート520の出力は、信号を第2の制御信号割込み状態レジスタ(INHIBITSLEEP_INT_RAW_STAT_SET)568に提供して、第2の制御信号(InhibitSleep)に関連する割込みを設定又はクリアするように構成された制御ブロック(REQ EVT SET/CLR)522に結合される。
【0044】
図5の例では、調停論理500は、ORゲート544を介して第2の制御信号割込み状態ブロック568及び第1の制御信号割込み状態ブロック570に結合される割込み生成器546も含む。また、ORゲート544は、種々のポートで割込み要求を受けたときに通知する割込み要求ソース(IRQ_*_STATポート[31:1])542からの要求を受け取る。割り込み生成器546の出力は、出力548に結合される。幾つかの例示の実施例において、割り込み生成器546は、割り込みイネーブルクリアレジスタ(INT_EN_CLR)574からの制御信号によって選択的にイネーブルされる。
【0045】
図示のように、仲裁論理500はまた、第2の制御信号肯定応答クリアレジスタ556(INHIBITSLEEP_ACK_CLR)と、第1の制御信号肯定応答クリアレジスタ562(FORCEACTIVE_ACK_CLR)と、第2の制御信号割り込みイネーブル状態クリアレジスタ564(INHIBITSLEEP_INT_EN_STAT_CLR)と、第1の制御信号割り込みイネーブル状態クリアレジスタ566(FORCEACTIVE_INT_EN_STAT_CLR)とを含む。異なる例示の実施例において、調停論理500は、本明細書で説明するような、デバッグ要求、割り込み、及び通知を取り扱うために用いられる特定の論理、ゲート、及びレジスタに関して変化する。
【0046】
図6は、幾つかの例におけるIC(例えば、
図1のIC100、
図2のIC100A、
図3のIC300、
図4のIC400など)の埋め込みデバッグ動作600のフローチャートである。図示されるように、埋め込みデバッグ動作600は、本明細書に記載されるように、サブシステムをデバッグする要求に応答して、ブロック602においてセキュアセッションを認証することを含む。認証が成功しない場合(判定ブロック604)、ブロック608において電力プロセッサは要求に応えない。認証が成功した場合(判定ブロック604)、ブロック606において電力プロセッサは要求に応える。ブロック610において、電力プロセッサは、IDリクエスタへの仲裁論理をチェックし、位相ロックループ(PLL)、ファームウェア(FW)、付加的なMMRセットアップをイネーブルし、電力ウェイクアップ依存性を強化し、仲裁論理から目標サブシステムへのチャネルをイネーブルし、サブシステムイネーブルプロセスを完了する。
【0047】
図7は、幾つかの例におけるIC(例えば、
図1のIC100、
図2のIC100A、
図3のIC300、又は
図4のIC400)のためのLUT動作のパワーダウンシーケンス700のフローチャートである。示されるように、パワーダウンシーケンス700は、ブロック702において、デバッガパワーオンルックアップアクションを含む。ブロック704において、デバッガは、サブシステムのうちの1つがアクティブであることを要求する。ブロック706において、要求されたサブシステムアクティブのためのクロックソースが設定される。ブロック708において、要求されたサブシステムが依存する他のクロックが設定される。ブロック710において、要求されたサブシステムが依存する他の電力ドメインが設定される。ブロック712において、要求されたサブシステムの電力ドメインが設定される。ブロック714において、要求されたサブシステムのためのクロックゲーティングが除去される。ブロック716において、すべてのセキュリティが、要求されたサブシステムへの/からのアクセスを許可するように構成される。ブロック718において、他のすべての設定が、要求されたサブシステムがアクティブになることを可能にするように構成される。ブロック720において、要求されたサブシステムは、解放されるか、リセットされるか、又は停止されない。幾つかの例示の実施例において、サブシステムがシーケンス700を逆に実施することによって(例えば、セキュアデバッグセッションの後に)ディセーブルされる。
【0048】
図8は、幾つかの例における方法800のフローチャートである。方法800は、IC(例えば、
図1のIC100、
図2のIC100A、
図3のIC300、又は
図4のIC400)によって実施される。図示されるように、方法800は、集積回路のプロセッサコア(プロセッサコア302及び308の一方、
図4のデバッガサブシステム102A)によって、ブロック802において集積回路のサブシステム(例えば、
図1のサブシステム114A~114Nの1つ、又は、
図4のサブシステム416A~416Nの1つ)に対するデバッグ要求(例えば、
図5のForceActive又はInhibitSleep)を生成することを含む。ブロック804において、生成されたデバッグ要求に応答して、プロセッサとサブシステム間のインタフェースによって、電力プロセッサが生成される(例えば、
図1のインタフェース104、
図4の仲裁論理414及び電力プロセッサ108A)。ブロック806において、デバッグ要求に関連するサブシステムがオン状態にあると識別されると、電力プロセッサによって、通知(例えば、
図5におけるForceActiveACK又はInhibitSleepACK)がインタフェースに提供される。ブロック808において、通知に応答して、プロセッサコアによって、インタフェースを介してデバッグ動作が実施される。
【0049】
幾つかの例示の実施例において、方法800は、電力プロセッサによって、電力プロセッサ割り込みに応答してデバッグ要求に関連するサブシステムの電力状態を判定することと、電力プロセッサによって、デバッグ要求に関連するサブシステムの判定された電力状態がオフ状態である場合にサブシステムを起動するために第1の動作セットを実施することと等の付加的な動作を含む。幾つかの例示の実施例において、方法800のために電力プロセッサによって第1の動作セットを実施することは、デバッグ要求に関連するサブシステムに電力を提供するために集積回路の電力管理ネットワークに制御信号を提供することと、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために集積回路の仲裁論理に通知を送信することと、デバッグ要求に関連するデバッグ動作が完了したという通知を仲裁論理から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオフ状態に復元するために電力管理ネットワークに制御信号を提供することとを含む。幾つかの例示の実施例において、方法800はまた、デバッグ要求に関連するサブシステムの判定された電力状態がオン状態である場合、電力プロセッサによって、第2の動作セットを実施することを含む。幾つかの例示の実施例において、電力プロセッサによって方法800のための第2の動作セットを実施することは、デバッグ要求に関連するサブシステムがオン状態にあることを確認するために集積回路の仲裁論理に通知を送ることと、デバッグ要求に関連するデバッグ動作が完了したという通知を仲裁論理から受け取ることと、受け取った通知に応答して、デバッグ要求に関連するサブシステムをオン状態に維持することとを含む。
【0050】
「結合する」という用語は本明細書を通して用いられている。この用語は、本記載と一貫する機能的関係を可能にする、接続、通信、又は信号経路を網羅し得る。例えば、デバイスAが、或る行為を行なうためにデバイスBを制御するための信号を生成する場合、第1の例において、デバイスAはデバイスBに結合されるか、又は第2の例において、介在構成要素CがデバイスAとデバイスBとの間の機能関係を実質的に変化させない場合にデバイスBがデバイスAによって生成される制御信号を介してデバイスAによって制御されるように、デバイスAは介在構成要素Cを介してデバイスBに結合される。
【0051】
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
【国際調査報告】