JP7004712B2 - プログラム可能クロックモニタ - Google Patents

プログラム可能クロックモニタ Download PDF

Info

Publication number
JP7004712B2
JP7004712B2 JP2019523071A JP2019523071A JP7004712B2 JP 7004712 B2 JP7004712 B2 JP 7004712B2 JP 2019523071 A JP2019523071 A JP 2019523071A JP 2019523071 A JP2019523071 A JP 2019523071A JP 7004712 B2 JP7004712 B2 JP 7004712B2
Authority
JP
Japan
Prior art keywords
clock
signal
circuit
processor
operating parameters
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.)
Active
Application number
JP2019523071A
Other languages
English (en)
Other versions
JP2019536146A (ja
Inventor
レスター エス. サンダーズ,
シャラヴァンティ カタム,
アビナヤ カッタ,
ジャヤラン プス,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JP2019536146A publication Critical patent/JP2019536146A/ja
Application granted granted Critical
Publication of JP7004712B2 publication Critical patent/JP7004712B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations

Description

本開示は、集積回路(IC)に関し、より詳細には、IC内に実装するためのクロックモニタ回路に関する。
クロック監視は、現代の電子システム設計の重要な要素である。機能安全市場内では、たとえば、システムのフォールトトレランスは必要条件と見なされる。フォールトトレランスは、一般に、システムの1つまたは複数の構成要素の故障(たとえば障害)の場合に、適切に、または少なくとも定義されかつ期待された方法で動作し続けるシステムの能力を示す。「フォールトトレラント」と見なされるシステムでは、数ある要素のうちでも特に、クロック監視がしばしば必要とされる。
セキュリティについて言えば、クロック監視は、しばしば、攻撃を回避する際にシステムを助ける必要条件と見なされる。攻撃の1つのタイプは、たとえば、システムのクロック信号のグリッチの誘発である。クロックグリッチは、プロセッサに命令の実行をスキップさせることなどの多くの問題を誘発する場合がある。命令の実行をスキップすることは、プログラムコードのすべての部分が実行するのを妨げる場合がある。プログラムコードのこれらの部分は、ログイン、暗号化、復号化などの重要なセキュリティ機能をシステムに提供する場合がある。ハッカーがそのような命令の実行をスキップさせることができる場合、システムは、攻撃に対して脆弱であることがある。
一実施形態は、クロック信号を監視するための装置を含む。本装置は、動作パラメータを受け取るように構成されたインターフェース回路と、インターフェース回路に結合され動作パラメータを記憶するように構成された制御回路とを含むことができる。本装置は、制御回路に結合されたクロックエラー検出回路も含むことができる。クロックエラー検出回路は、動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成するように構成することができる。
別の実施形態は、クロック信号を監視する方法を含む。本方法は、クロックモニタ回路においてプロセッサから動作パラメータを受け取ることと、動作パラメータに基づいてクロックモニタ回路のクロックエラー検出回路を更新することと、動作パラメータに基づいてクロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することとを含むことができる。本方法は、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成することを含むことができる。
この発明の概要のセクションは、単にいくつかの概念を紹介するために提供され、請求する主題のいかなる主要な特徴または本質的な特徴も特定するものではない。本発明の構成の他の特徴は、添付の図面および次の発明を実施するための形態から明らかになろう。
本発明の構成は、添付の図面における例を通して示される。しかし、図面は、示された特定の実装形態のみに本発明の構成を限定するように解釈すべきでない。様々な態様および利点は、次の発明を実施するための形態を検討し、図面を参照すれば明らかになろう。
集積回路の例示的なアーキテクチャを示す図である。 クロックモニタ回路を含む集積回路の一例を示す図である。 クロックモニタ回路の一例を示す図である。 クロックエラー検出回路の一例を示す図である。 クロックモニタ回路用のエッジ検出器の動作を示す例示的な波形を示す図である。 クロックモニタ回路を実装する例示的な方法を示す図である。 クロックモニタ回路の動作の例示的な方法を示す図である。
本開示は新規の特徴を定義する特許請求の範囲で締めくくるが、本開示内に記載する様々な特徴は、図面と併せて記載を検討することにより、より十分に理解されると考えられる。本明細書に記述されるプロセス、機械、製造、およびそれらの任意の変形形態は、例示のために提供される。本開示内に記載される特定の構造および機能の詳細は、限定と解釈すべきでなく、単に特許請求の範囲の根拠、および仮想的かつ適切に詳しい構造に記載された特徴を当業者が様々に使用するように教示するための代表的な根拠と解釈すべきである。さらに、本開示内に使用される用語および句は、限定を目的とするものでなく、むしろ記載された特徴の理解可能な記述を提供することを目的とする。
本開示は、集積回路(IC)に関し、より詳細には、IC内に実装するためのクロックモニタ回路に関する。本明細書に記載される1つまたは複数の例示的な実施形態は、IC内でフォールトトレラントシステムの実装を容易にするクロックモニタ回路を提供する。一態様では、クロックモニタ回路はプログラム可能である。
1つまたは複数の実施形態では、クロックモニタ回路を実装するコアが提供される。回路設計者、たとえばユーザは、コアをプログラミングおよび/またはパラメータ化するために電子設計自動化(EDA)ツールに1つまたは複数の動作パラメータを提供する場合がある。さらに、コアが機能回路構成としてIC内に物理的に実装されると、クロックモニタ回路は、実時間でプログラミングまたは制御される場合がある。一実施形態では、クロックモニタ回路は、プロセッサを使用して制御される場合がある。プロセッサは、たとえば、クロックモニタ回路との通信を容易にするドライバプログラムコードを実行する場合がある。したがって、動作中、たとえば実時間で、プロセッサは、クロックモニタ回路の動作パラメータの1つまたは複数を変更する場合がある。
1つまたは複数の実施形態では、クロックモニタ回路は、1つまたは複数の異なるクロック信号を同時に監視することができる。さらに、クロックモニタ回路は、監視されている異なるクロック信号の各々における1つまたは複数の異なるタイプのクロックエラー状態を検出するようにプログラミングすることができる。プロセッサは、検出されたクロックエラー状態を処理するためにクロックモニタ回路と情報交換することができる。プロセッサは、クロックエラー状態が検出される特定のクロック信号、および/または監視されたクロック信号において検出されたクロックエラー状態のタイプに少なくとも部分的に基づいて、クロックモニタ回路によって検出されたクロックエラー状態に応答して対処することができる。
クロックモニタ回路、クロックモニタ回路の動作、およびクロックモニタ回路のプログラム可能性のさらなる態様が、図面を参照してより詳細に本明細書に記載される。説明を簡潔かつ明確にするために、図に示された要素は、必ずしも正確な比率に描かれていない。たとえば、要素のいくつかの寸法は、明確にするために他の要素に対して誇張されている場合がある。さらに、適切であると考えられる場合、対応する特徴部、類似した特徴部、または同様の特徴部を示すために、図の間で参照番号が反復される。
図1は、ICの例示的なアーキテクチャ100を示す。一態様では、アーキテクチャ100は、プログラム可能IC内に実装される。たとえば、アーキテクチャ100は、フィールドプログラマブルゲートアレイ(FPGA)を実装するために使用される場合がある。アーキテクチャ100は、システムオンチップ(SOC)タイプのICも代表する。SOCは、プログラムコードを実行するプロセッサと、1つまたは複数の他の回路とを含むICである。他の回路は、ハードワイヤード回路構成、プログラム可能回路構成、および/またはそれらの組合せとして実装される場合がある。回路は、互いに協調して、および/またはプロセッサと協調して動作する場合がある。他の回路構成は、通常、プロセッサと同じダイ上にある。
図示のように、アーキテクチャ100は、いくつかの異なるタイプのプログラム可能回路、たとえば、ロジックブロックを含む。たとえば、アーキテクチャ100は、マルチギガビットトランシーバ(MGT)101、設定可能ロジックブロック(CLB)102、ランダムアクセスメモリブロック(BRAM)103、入力/出力ブロック(IOB)104、設定/クロッキングロジック(CONFIG/CLOCKS)105、デジタル信号処理ブロック(DSP)106、専用I/Oブロック107(たとえば設定ポートおよびクロックポート)、およびデジタルクロックマネージャ、アナログデジタル変換器、システム監視ロジックなどの他のプログラム可能ロジック108を含む多数の異なるプログラム可能タイルを含む場合がある。
いくつかのICでは、各プログラム可能タイルは、各隣接タイル内の対応するプログラム可能相互接続要素(INT)111との間の標準接続部を有するINT111を含む。したがって、INT111は、統合すると、図示されたICのプログラム可能相互接続構造部を実装する。各INT111は、図1の上部に含まれる例によって示されるように、同じタイル内のプログラム可能ロジック要素との間の接続部も含む。
たとえば、CLB102は、単一のINT111に加えたユーザロジックを実装するようにプログラミングされる場合がある設定可能ロジック要素(CLE)112を含む場合がある。BRAM103は、1つまたは複数のINT111に加えてBRAMロジック要素(BRL)113を含む場合がある。通常、1つのタイルに含まれるINT111の数は、そのタイルの高さによって決まる。図示のように、BRAMタイルは、5つのCLBと同じ高さを有するが、他の数(たとえば4つ)も使用される場合がある。DSPタイル106は、適切な数のINT111に加えてDSPロジック要素(DSPL)114を含む場合がある。IOB104は、たとえば、INT111の1つのインスタンスに加えてI/Oロジック要素(IOL)115の2つのインスタンスを含む場合がある。当業者には明らかなように、たとえば、IOL115に接続された実際のI/Oパッドは、通常、IOL115の領域に制限されない。
図1に示された例では、たとえば、領域105、107、および108から形成されたダイの中心近傍の柱状の領域は、設定、クロック、および他の制御ロジック用に使用される場合がある。この柱状部から延びる水平領域109は、プログラム可能ICの幅にわたってクロックおよび設定信号を分配するために使用される。
図1に示されたアーキテクチャを利用するいくつかのICは、ICの大部分を構成する通常の柱状構造を分断する追加のロジックブロックを含む。追加のロジックブロックは、プログラム可能ブロックおよび/または専用回路構成である場合がある。たとえば、PROC110として示されたプロセッサブロックは、CLBおよびBRAMのいくつかの柱状部にわたる。
一態様では、PROC110は、専用回路構成として、たとえば、ICのプログラム可能回路構成を実装するダイの一部分として作製されるハードワイヤードプロセッサとして実装される。PROC110は、複雑性において、プログラムコードを実行することが可能なシングルコアなどの個別のプロセッサから、1つまたは複数のコア、モジュール、コプロセッサ、インターフェースなどを有する完全なプロセッサシステムに及ぶ様々な異なるプロセッサタイプおよび/またはシステムのいずれかを示す場合がある。
別の態様では、PROC110は、アーキテクチャ100から省略され、記載された他の様々な種類のプログラム可能ブロックの1つまたは複数に置き換えられる。さらに、そのようなブロックは、プログラム可能回路構成の様々なブロックが、PROC110の場合と同様にプログラムコードを実行することができるプロセッサを形成するために使用される場合があるという点で、「ソフトプロセッサ」を形成するために利用される場合がある。
「プログラム可能回路構成」という句は、IC内のプログラム可能回路要素、たとえば、本明細書に記載された様々なプログラム可能なまたは設定可能な回路ブロックまたはタイル、ならびにICにロードされる設定データに従って様々な回路ブロック、タイル、および/または要素を選択的に結合する相互接続回路構成を示す。たとえば、CLB102およびBRAM103などのPROC110の外部にある図1に示された回路ブロックは、ICのプログラム可能回路構成と見なされる。
一般に、プログラム可能回路構成の機能は、設定データがICにロードされるまで確立されない。1組の設定ビットは、FPGAなどのICのプログラム可能回路構成をプログラミングするために使用される場合がある。この設定ビットは、通常、「設定ビットストリーム」と呼ばれる。一般に、プログラム可能回路構成は、ICに設定ビットストリームを最初にロードすることがなければ動作可能でも機能もしない。設定ビットストリームは、プログラム可能回路構成内で特定の回路設計部を効果的に実装する。回路設計部は、たとえば、プログラム可能回路ブロックの機能的態様と、様々なプログラム可能回路ブロック間の物理的な接続性とを指定する。
「ハードワイヤード」または「固定」である回路構成、すなわちプログラム可能でない回路構成は、ICの一部分として製造される。プログラム可能回路構成とは異なり、ハードワイヤード回路構成または回路ブロックは、設定ビットストリームのロードによるICの製造後には実装されない。ハードワイヤード回路構成は、一般に、たとえば、PROC110などのICに設定ビットストリームを最初にロードすることなく機能する専用の回路ブロックおよび相互接続部を有すると見なされる。
いくつかの例では、ハードワイヤード回路構成は、IC内の1つまたは複数のメモリ要素に記憶されたレジスタ設定または値に従って設定または選択することができる1つまたは複数の動作モードを有する場合がある。動作モードは、たとえば、ICに設定ビットストリームをロードすることによって設定される場合がある。この能力にかかわらず、ハードワイヤード回路構成は、ICの一部分として製造されるとき、ハードワイヤード回路構成が動作可能で特定の機能を有するので、プログラム可能回路構成とは見なされない。
SOCの場合には、設定ビットストリームは、プログラム可能回路構成内に実装されることになる回路構成と、PROC110またはソフトプロセッサによって実行されることになるプログラムコードとを指定する場合がある。いくつかの場合には、アーキテクチャ100は、適切な設定メモリおよび/またはプロセッサメモリに設定ビットストリームをロードする専用設定プロセッサを含む。専用設定プロセッサは、ユーザ指定のプログラムコードを実行しない。他の場合には、アーキテクチャ100は、設定ビットストリームを受け取り、設定ビットストリームを適切な設定メモリにロードし、かつ/または実行用のプログラムコードを抽出するためにPROC110を利用する場合がある。
図1は、プログラム可能回路構成、たとえばプログラマブルファブリックを含むICを実装するために使用される場合がある例示的なアーキテクチャを示すことを目的とする。たとえば、柱状部内のロジックブロックの数、柱状部の相対幅、柱状部の数および順序、柱状部に含まれるロジックブロックのタイプ、ロジックブロックの相対サイズ、ならびに図1の上部に含まれる相互接続部/ロジックの実装形態は、例示にすぎない。実際のICでは、たとえば、CLBの2つ以上の隣接する柱状部は、通常、ユーザ回路設計部の効率的な実装を容易にするために、CLBがどこに現れても含まれる。しかし、隣接するCLB柱状部の数は、ICの全体サイズによって変わる場合がある。さらに、IC内のPROC110などのブロックのサイズおよび/または配置は、説明のためだけであって、限定を目的とするものでない。
多くのプログラム可能ICでは、クロックエラー状態が起こる場合がある多くのクロックが存在する。このことは、特に、SOCの場合に成り立つ。SOCの場合には、プロセッサおよび/またはプロセッサシステムによる使用専用の1つまたは複数のクロック、ならびにSOCのプログラム可能回路構成内に実装された回路による使用専用の1つまたは複数の他のクロックが存在する場合がある。さらに、プロセッサシステムとプログラム可能回路構成の両方によって利用されるクロックが存在する場合がある。
1つまたは複数の実施形態では、クロックモニタ回路は、アーキテクチャ100のプログラム可能回路構成を使用して実装され、クロック信号がプロセッサシステムによる使用のためおよび/またはプログラム可能回路構成による使用のためであっても、クロック信号の1つまたは複数におけるクロックエラー状態の発生を同時に監視するために使用される場合がある。さらに、クロックモニタ回路は、複数のクロック信号における異なるタイプのクロックエラー状態を同時に監視することができる。
図2は、クロックモニタ回路を含むIC200の例である。一態様では、IC200は、プログラム可能回路構成を含むプログラム可能ICである。たとえば、IC200は、FPGAまたは他の様々な種類のプログラム可能ICとして実装される場合がある。別の例では、IC200は、SOCとして実装される場合がある。IC200は、図1に示されたアーキテクチャと同じかまたは同様のアーキテクチャを有する場合がある。図示のように、IC200は、プロセッサ205およびクロックモニタ回路210を含む。IC200は、オプションの割込みコントローラ215を含む場合がある。
プロセッサ205は、命令などのプログラムコードを実行することが可能な回路構成である。一実施形態では、プロセッサ205は、固定回路構成である。別の実施形態では、プロセッサ205は、IC200の設定メモリセルに設定データをロードしたことに応答してIC200のプログラム可能回路構成を使用して実装されたソフトプロセッサである。プロセッサ205は、プログラムコードを実行することが可能な様々な異なるアーキテクチャのいずれかを有する場合がある。プロセッサ205は、クロックモニタ回路210と同じダイ上に実装される場合がある。
プロセッサ205は、オペレーティングシステム、ユーザアプリケーションなどのプログラムコードを実行する場合がある。プロセッサ205は、さらに、接続部220を介してプロセッサ205がクロックモニタ回路210と通信することを可能にするドライバなどのドライバプログラムコードを実行する場合がある。接続部220は、様々なオンチップ相互接続部のいずれかを実装する1つまたは複数のワイヤとして実装される場合がある。
一実施形態では、接続部220は、バスとして実装される。一例では、このバスは、AMBA eXtensible Interface(AXI)バスである場合がある。AXIバスは、回路ブロックおよび/またはシステムの間のオンチップ接続部を確立する際に使用するための組込式マイクロコントローラバスインターフェースである。本明細書に提供された例示的なバスタイプは、例示のためにあり、限定のためではないことが理解されよう。本発明の構成は、他のバスおよび/または接続部のタイプが使用される場合があるので、提供された例に限定されない。
クロックモニタ回路210は、1つまたは複数の異なるクロック信号を監視するように構成される。たとえば、設計者は、EDAツールを通して作業している間、回路設計部内にクロックモニタコアを含む場合がある。設計者は、IC200内に実装される回路設計部の複数のクロック信号のどれがクロックモニタコアによって監視されるべきかを示す場合がある。設計者は、「N」個の異なるクロック信号までの1つまたは複数のクロック信号を指定する場合がある(ここで、Nは整数値である)。説明を目的としてかつ説明を容易にするために、Nの最大値は4である場合がある。例示的な値の4が限定を目的とするものでないことが理解されよう。Nの値は、クロックモニタ回路の特定の実装形態に応じて、1、2、3、または5以上に設定される場合がある。
図2の例では、クロックモニタ回路210は、「clk_in_1」から「clk_in_N」と示されたクロック信号を受け取る。FPGA回路構成を含むSOCの場合には、監視される場合があるクロック信号は、プロセッサシステム(たとえば、プロセッサ、インターフェース、および/またはIC200のプログラム可能回路構成と通信する周辺装置を実装するIC200のハードワイヤード部分)内に生成されるクロック信号、またはプログラム可能回路構成内のいずれかの任意のクロック信号を含む。クロックモニタ回路210は、1つまたは複数の(たとえば1~Nの)異なるクロック信号において複数の異なるクロックエラー状態の1つもしくは複数または各々を同時に監視するように構成可能である。クロックモニタ回路210が検出することが可能であるクロックエラー状態の例は、限定はしないが、クロック信号1~Nの各々における、範囲外のクロック(たとえば、クロックオーバーランおよび/またはクロックアンダーラン)、クロックグリッチ、および/またはクロック信号の喪失を含む。
監視される各クロック信号において、クロックモニタ回路210は、「ref_clk_1」から「ref_clk_N」と示された参照クロック信号に結合され、たとえば、その参照クロック信号を受け取る。クロックモニタ回路210は、1つまたは複数の異なるタイプのクロックエラー状態に関してクロック信号の各々を監視することができる。参照クロック信号の各々は、デバイスピンまたは別の内部クロックから取得される場合がある。
クロックモニタ回路210は、図示のように、クロックエラー状態を検出したことに応答して、割込み信号を生成することができる。さらに、クロックモニタ回路210は、検出されたクロックエラー状態のタイプを示す信号を出力することができる。たとえば、クロックモニタ回路210は、クロック停止エラー状態の検出を示すclk_stop信号の値、クロックグリッチエラー状態の検出を示すclk_glitch信号の値、および範囲外クロックエラー状態の検出を示すclk_oor信号の値を生成することができる。clk_stop信号、clk_glitch信号、clk_oor信号、locked信号、およびinterrupt信号は、まとめて信号230と呼ばれる場合がある。
一実施形態では、clk_stop信号、clk_glitch信号、locked信号、およびclk_oor信号の各々は、クロックモニタ回路210が1~Nの監視されたクロック信号のどれでエラー状態が検出されるかを示すことができるように、マルチビット信号である場合がある。「locked」信号は、監視されたクロック信号が期待どおりに開始または再開したかを示す。クロックモニタ回路210は、IC200内で監視されたクロック信号1~Nを他の回路および/またはシステムに提供するために、そのような信号の各々を出力することもできる。
記載のように、IC200は、オプションの割込みコントローラ215を含む場合がある。割込みコントローラ215は、clk_stop信号、clk_glitch信号、clk_oor信号、locked信号、およびinterrupt信号を受け取り、これらの信号を復号化し、割込み信号225をプロセッサ205に提供することができる。割込みコントローラ215は、1つまたは複数の異なる回路がプロセッサ205への割込みを生成するように構成される場合に使用される場合がある。たとえば、IC200は、2つ以上のクロックモニタ回路210、1つまたは複数のクロックモニタ回路210、および割込みを生成するように構成された1つまたは複数の他の回路などを含む場合がある。割込みコントローラ215は、2つ以上の割込みソース(たとえば回路)から信号を受け取り、これらの信号に優先順位を付け、これらの信号を組み合わせ、割込みコントローラ215に実装された任意の優先順位付けスキームを適用した割込み信号225を介してプロセッサ205に得られた値を提供することができる。割込み信号225は、clk_stop信号、clk_glitch信号、clk_oor信号、locked信号、および/またはinterrupt信号を通してクロックモニタ回路210から受け取った同じデータまたは同様のデータを含むか、または伝達する場合がある。たとえば、信号225は、マルチビット信号である場合がある。
別の実施形態では、割込みコントローラ215は省略される。その場合に、クロックモニタ回路210から割込みコントローラ215に提供された信号230は、プロセッサ205に直接提供される場合がある。別の実施形態では、クロックモニタ回路210からの割込みは、直接クロックモニタ回路210からプロセッサ205に、たとえば割込み入力ポートに提供されるが、clk_stop信号、clk_glitch信号、clk_oor信号、およびlocked信号などの他の信号は、接続部220を介してプロセッサ205に提供される。
1つまたは複数の実施形態では、プロセッサ205は、クロックモニタ回路210の動作を制御することができる。プロセッサ205は、たとえば、クロックモニタ回路210用のドライバを実行する際に、クロックモニタ回路210に命令を送る場合がある。命令は、1つまたは複数の動作パラメータを含む場合がある。命令および/または動作パラメータは、クロックモニタ回路210がクロック信号1~Nのクロックエラー状態を検出する方法の様々な態様を制御する。接続部220を使用すれば、プロセッサ205は、IC200の動作中に、たとえば実時間で、クロックモニタ回路210の動作を動的に制御し、たとえば、これらの動作を動的に変更することができる。
図3は、クロックモニタ回路210の例示的な実装形態である。クロックモニタ回路210は、インターフェース305、制御回路構成310、およびクロックエラー検出回路320を含む。図3の例では、制御回路構成310は、動作パラメータおよび/またはクロックエラー検出データを記憶するためのメモリなどの制御レジスタ315を含む。クロックエラー検出回路320は、1つまたは複数の(たとえば、1~Nの)エラー検出器325を含む。例示のために、Nの値は、4であると仮定される。したがって、クロックモニタ回路210は、325-1、325-2、325-3、および325-4として示された4つのエラー検出器325(たとえば、監視されている各クロック信号に1つのエラー検出器)を含む。
インターフェース305は、IC200の動作中にプロセッサ205からの動作パラメータを指定するか、または含む命令を受け取ることができる。インターフェース305は、さらに、プロセッサ205にデータを送ることができる。一実施形態では、インターフェース305は、バスインターフェースである。たとえば、インターフェース305は、AXIバスインターフェースとして実装される場合がある。図示のように、インターフェース305は、接続部220を介してプロセッサ205に結合される。
制御回路構成310は、インターフェース305およびクロックエラー検出回路320に結合される。一実施形態では、プロセッサ205から受け取った命令、たとえば動作パラメータは、制御レジスタ315に記憶される。制御レジスタ315は、エラー検出器325の各々における1つまたは複数の動作パラメータを記憶するのに十分なストレージを含む場合がある。別の実施形態では、制御レジスタ315は、エラー検出器325によって生成されたクロックエラー検出データを記憶するために十分なストレージを含む。一実施形態では、プロセッサ205は、インターフェース305および接続部220を介して制御レジスタ315からのクロックエラー検出データを読み込むことができる。別の実施形態では、プロセッサ205は、エラー検出器325によって生成され信号230を介して制御レジスタ315に記憶される出力データを受け取ることができる。
さらなる実施形態では、制御回路構成310は、図1に示された割込み信号を生成することができる。たとえば、制御回路構成310は、図4を参照して本明細書により詳細に記載されるエラー検出器325の各々からの個々のクロックエラー検出信号を監視することができる。監視されているクロック信号の1つまたは複数におけるクロックエラー状態を検出したことに応答して、制御回路構成310は、割込み信号の適切な値を生成し、たとえば、クロックモニタ回路210の特定の実装形態に応じて、割込み信号をハイまたはローのいずれかに持ってくることができる。
図4は、エラー検出器325の例である。一実施形態では、クロックモニタ回路210は、監視される各クロック信号に対して1つのエラー検出器325を含む。エラー検出器325は、クロックデバイダ405、シンクロナイザ410、カウンタ415、420、および425、エッジ検出器430、ならびに比較器435、440、および445を含む。
論じたように、図4に示された様々な回路ブロックに関する動作パラメータは、クロックモニタコアのために最初に指定される場合がある。動作パラメータは、一度実装されたクロックモニタ回路に命令を送るプロセッサによって動作中に更新される場合がある。一実施形態では、プロセッサは、1つまたは複数の動作パラメータを取得し、これらの動作パラメータをクロックモニタ回路に送る場合がある。制御回路構成310は、プロセッサから受け取った動作パラメータから1つまたは複数の他の動作パラメータを計算し、次いで、必要に応じて、計算された動作パラメータを様々な回路ブロックに提供する場合がある。
別の実施形態では、プロセッサは、たとえば、ドライバプログラムコードを実行する際に、1つまたは複数の動作パラメータを受け取るか、または取得することができる。プロセッサは、受け取ったか、または取得した動作パラメータから1つまたは複数の他の動作パラメータを計算することができる。プロセッサは、計算された動作パラメータをクロックモニタ回路に送ることができる。その場合には、制御回路構成310は、必要に応じて、プロセッサから受け取った動作パラメータをエラー検出器325の様々な回路ブロックに提供することができ、どんな計算も行う必要がない。
図示のように、クロックデバイダ405は、監視されるクロック信号452(たとえば、clk_in_N)を受け取る。クロックデバイダ405は、クロック信号452を有限値(たとえば除数)によって分割することができる。クロックデバイダ405は、さらなる計算を容易にするために除数に基づいてクロック信号452の周波数を効果的に低減する。クロックデバイダ405は、さらに、信号456として示されたクロック信号452の分割バージョンをシンクロナイザ410に送ることができる。
一例では、クロック信号452を分割するのに使用される除数は32である。クロック信号452を分割するのに使用される除数の特定の値は、クロックモニタコアのために最初に指定された動作パラメータに基づいて設定または決定される場合があることを理解されたい。さらに、クロック信号452を分割するのに使用される除数の特定の値は、プログラム可能であり、クロックモニタ回路の動作中に変更される場合がある。
図示のように、制御回路構成310は、クロックモニタ回路の動作パラメータである除数の値を、信号454を介してクロックデバイダ405に提供することができる。一実施形態では、除数は、参照信号の周波数およびユーザ指定のトレランスなどの動作パラメータに基づいて計算される場合がある。一実施形態では、プロセッサは、参照信号の更新周波数および/または更新トレランスを受け取るか、または取得し、クロックデバイダ405のための除数の更新値を計算することができる。プロセッサは、除数の更新値をクロックモニタ回路に提供することができる。制御回路構成310は、信号454を介して除数の更新値をクロックデバイダ405に提供することができる。
代替として、プロセッサは、参照クロックの更新周波数および/または更新トレランスなどの1つまたは複数の動作パラメータをクロックモニタ回路に提供する。その場合には、制御回路構成310は、クロックデバイダ405に提供された除数の値を計算することができる。制御回路構成310は、除数の値を計算し、この除数を、信号454を介してクロックデバイダ405に提供する。
さらに別の実施形態では、プロセッサは、入力またはメモリからの除数を取得し、たとえば、この除数を読み込むことができる。プロセッサは、制御回路構成310に除数を提供することができる。制御回路構成310は、信号454を介してクロックデバイダ405に除数を提供することができる。
シンクロナイザ410は、周波数分割信号456および参照信号458(たとえば、ref_clk_N)を受け取る。シンクロナイザ410は、信号456を信号458に同期させ、信号458の同期バージョンを信号460として出力することができる。エラー検出器325の残りは、信号460を使用して動作する。
エッジ検出器430は、信号460を受け取る。エッジ検出器430は、信号460の1つまたは複数の立上りエッジを検出することができる。エッジ検出器430は、検出されたエッジを示す出力信号462を生成し、信号462をカウンタ415に提供することができる。図5は、エッジ検出器430の動作を示す信号452、456、および462の例示的な波形を示す。
一実施形態では、カウンタ415は、アップ/ダウンカウンタとして実装される。カウンタ415は、信号460において動作する自走カウンタとして動作することができる。一実施形態では、カウンタ415は、エッジ検出信号である信号460においてハイを検出したことに応答して、カウンタ415内に記憶されたカウンタ値を0にリセットすることができる。したがって、カウンタ415は、確立された制限内で信号460におけるサイクリックエッジ検出を利用する。カウンタ415によって計算された値は、信号464として比較器435に出力される。
一実施形態では、カウンタ420は、クロックハイカウンタとして実装される。クロック420は、信号456(たとえば、クロック信号452の分割バージョン)のハイ時間にフィットする(信号460の)参照クロックサイクルの数をカウントすることができる。カウンタ420によって決定された値は、信号466として比較器440および比較器445に出力される。
一実施形態では、カウンタ425は、クロックローカウンタとして実装される。カウンタ425は、信号456のロー時間にフィットする(信号460の)参照クロックサイクルの数をカウントすることができる。カウンタ425によって決定された値は、信号468として比較器445に出力される。
論じたように、監視される各クロック信号に関して、設計者は、クロック信号の周波数(Fuser)の値、クロック信号を監視するのに使用される参照信号の周波数(Freference)の値、およびトレランス(Ftolerance)の値を指定する場合がある。さらに、プロセッサは、クロックモニタ回路の動作中に実時間でこれらの値に基づいてクロックモニタ回路の動作パラメータを更新する場合がある。論じたように、プロセッサおよび/または制御回路構成310は、さらなる動作パラメータを計算するために、これらの動作パラメータを使用することができる。
比較器435は、カウンタ415からの信号464を制御回路構成310からの信号470と比較することができる。一態様では、信号470は、信号464が比較される上限および/または下限を指定する。比較器435は、クロック信号452が自走するか、ある部分時間の間、「0」または「1」にスタックするかを決定するために、比較を行うことができる。カウンタ415の値が、信号464の出力として、上限を上回るか、下限を下回る場合、比較器435は、クロック信号452が停止される(たとえば、「1」または「0」にスタックされる)ことを示す少なくとも最小量の時間の間、信号462(たとえば、エッジ検出信号)がハイに達しなかったと決定する。比較器435は、信号472(たとえば、clk_stop)を生成し、クロック信号452におけるクロック停止エラー状態の検出を示すためにクロックモニタ回路の実装形態に応じて信号をハイまたはローにプルする。
信号470によって指定された値は、コアをパラメータ化し、かつ/または動作中に実時間で動的にプログラミングされるとき、ユーザ指定される場合があるクロックモニタ回路の動作パラメータの例である。一実施形態では、上限および下限は、プロセッサによって取得され、制御回路構成310に提供される場合がある。別の実施形態では、プロセッサは、クロック周波数、参照周波数、および/またはトレランスなどの他のユーザ提供の動作パラメータに基づいて上限および/または下限を計算する場合がある。さらに別の実施形態では、プロセッサは、クロック周波数、参照周波数、および/またはトレランスを制御回路構成310に提供する場合があり、制御回路構成310は、上限および/または下限を計算する場合がある。どんな場合でも、上限および/または下限は、信号470を介して比較器435に提供される場合がある。
比較器440は、カウンタ420からの信号466および制御回路構成310からの信号474を受け取る。論じたように、信号466は、信号460がハイである時間量を示す。信号474は、Count_2の値を指定する。比較器440は、信号466をCount_2(信号474)と比較することができる。信号466の値がCount_2を上回る場合、許容されるよりも多い参照クロックサイクルがクロック信号452のサイクル内にフィットし、クロック信号452の周波数が許容されるよりも低いこと(たとえば、クロックアンダーラン)を示す。信号466の値がCount_2よりも小さい場合、許容されるよりも少ない参照クロックサイクルがクロック信号452のサイクル内にフィットし、クロック信号452の周波数が許容されるよりも高いこと(たとえば、クロックオーバーラン)を示す。いずれの場合でも、比較器440は、信号452の周波数が範囲外であることを示す信号476(たとえば、clk_oor)を生成する。たとえば、比較器440は、クロック信号452に関する範囲外クロックエラー状態を示すためにクロックモニタ回路の実装形態に応じて信号476をハイまたはローにプルする場合がある。
Count_2の値は、信号474によって指定されるが、コアをパラメータ化し、かつ/または動作中に実時間で動的にプログラミングされるとき、ユーザ指定される場合があるクロックモニタ回路の動作パラメータの別の例である。一実施形態では、Count_2は、プロセッサによって取得され、制御回路構成310に提供される場合がある。別の実施形態では、プロセッサは、クロック周波数、参照周波数、および/またはトレランスなどの他のユーザ提供の動作パラメータに基づいてCount_2を計算する場合がある。さらに別の実施形態では、プロセッサは、クロック周波数、参照周波数、および/またはトレランスを制御回路構成310に提供する場合があり、制御回路構成310は、Count_2を計算する場合がある。どんな場合でも、Count_2は、信号474を介して比較器440に提供される場合がある。
比較器445は、信号466およびカウンタ425からの信号468を受け取る。論じたように、信号466は、信号460がハイである時間量を示す。信号468は、信号460がローである時間量を示す。比較器445は、信号466を信号468と比較することができる。比較器445は、信号466の値が信号468の値とマッチングするかどうかを決定することができる。信号466と468の値が、マッチングしない場合、たとえば互いに所定の範囲またはトレランス内にない場合、比較器445は、グリッチエラー状態がクロック信号452において起こったと決定し、信号478(たとえば、clk_glitch)を生成する。たとえば、比較器445は、クロック信号452に関するグリッチの発生を示すためにクロックモニタ回路の実装形態に応じて信号478をハイまたはローにプルする場合がある。
1つの例示的な実施形態では、信号472、476、および478が、1つまたは複数の他の回路に提供される。別の例示的な実施形態では、信号472、476、および478が、制御回路構成310に提供される。制御回路構成310は、たとえば、(複数のエラー検出器325のいずれかからの)任意の監視されたクロック信号における1つまたは複数のエラー状態の検出に応答して割込み信号を生成する回路構成を含むことができる。たとえば、クロックモニタ回路がN個の異なるエラー検出器325を含む場合、制御回路構成310は、エラー検出器325の各々からの信号472、476、および478の均等物を受け取り、監視されたクロック信号のいずれかにおけるクロックエラー状態の検出に応答して、割込みコントローラおよび/またはプロセッサに提供される割込み信号を生成することができる。エラー検出器325の各々からの信号472、476、および478は、1つまたは複数の他の回路に、かつ制御回路構成310にも提供される場合があることを理解されたい。
限定ではなく例示のために、さらに、上述した動作パラメータの1つまたは複数を計算することの例が以下に示される。動作パラメータは、示された特定の式を使用してプロセッサまたは制御回路構成310によって計算される場合がある。値の各々は、クロックモニタ回路の動作を変更するためにクロックモニタ回路の動作中に動的に更新される場合がある。一実施形態では、Count_stopパラメータは、信号470によって指定された上限として使用される場合がある。
Figure 0007004712000001
図6は、回路設計部内にクロックモニタ回路を実装する例示的な方法600である。方法600は、EDAツール(以下、「システム」)によって実行される場合がある。EDAツールの例は、オペレーティングシステムおよびEDAアプリケーションなどの適切な運用ソフトウェアを実行するコンピュータなどのデータ処理システムである。方法600は、設計者がシステムを使用中で回路設計部をシステム内に作成またはロードした状態で開始する場合がある。
ブロック605では、システムは、回路設計部内にクロックモニタ回路を含むことを求める要求または命令を受け取る。ブロック610では、システムは、クロックモニタ回路のための1つまたは複数の動作パラメータを受け取る。たとえば、回路設計部内にクロックモニタ回路を含むことを求める要求に応答して、システムは、設計者がクロックモニタ回路のための最初の動作パラメータとして値を提供する場合があるユーザインターフェースを提示する場合がある。これらの動作パラメータは、監視されるクロック信号の数、監視される特定のクロック信号などの情報を指定する場合がある。さらに、システムによって受け取られ記憶される場合がある動作パラメータは、限定はしないが、監視されるクロック信号ごとのベースで、監視されるクロック信号の周波数、使用される参照クロック、参照クロックの周波数、およびトレランスを含む。
一態様では、ブロック610に記載された動作パラメータは、システムが、設計フローを通して、値を維持し、クロックモニタコアを含む回路設計部を処理するための値を使用するので、最初の動作パラメータと呼ばれる場合がある。2つ以上のクロックモニタ回路は、監視されるクロック信号の数に応じて回路設計部内に含まれる場合があることを理解されたい。たとえば、監視される回路設計部のクロック信号の数がN個のクロック信号を上回る場合、シングルクロックモニタコアが監視する場合があるクロック信号の最大数を参照して、追加のクロックモニタ回路が含まれる場合がある。
ブロック615では、システムは、回路設計部における設計フローを実行する。設計フローの一部として、システムは、合成、配置、ルーティング、およびビットストリーム生成を実行することができる。ブロック620では、システムは、ターゲットIC内に得られた回路設計部をクロックモニタ回路とともに実装する。回路設計部は、本システムによってターゲットICにロードされるか、または別のシステム(たとえば、ボリュームにおいて回路設計部をターゲットICにロードすることが可能なシステム)によって複数のICにロードされる場合があることを理解されたい。
図7は、IC内のクロックモニタ回路の動作の例示的な方法700である。方法700は、クロックモニタ回路を含む回路設計部がターゲットIC内に実装される状態で開始する場合がある。例示のためにかつ説明を容易にするために、1つのクロックモニタ回路が仮定されるが、2つ以上のクロックモニタ回路がターゲットICに含まれる場合がある。
ブロック705では、クロックモニタ回路は、回路設計部の監視されたクロック信号の各々におけるクロックエラー状態の発生を監視することを開始する。ブロック710では、クロックモニタ回路は、クロックエラー状態が、監視されたクロック信号の1つまたは複数において検出されるかどうかを決定する。そうであれば、方法700は、ブロック715に続く。そうでないなら、方法700は、ブロック705にループバックする。
ブロック715では、クロックエラー状態を検出したことに応答して、クロックモニタ回路は、プロセッサへの割込みを生成する。この割込みは、プロセッサに直接提供される場合があるか、またはプロセッサに結合された割込みコントローラに提供される場合がある。
ブロック720では、クロックモニタ回路は、プロセッサにクロックエラー状態データを提供するか、またはそうでなく、そのようなデータをプロセッサが利用できるようにする。たとえば、クロックエラー状態を検出したクロックモニタ回路は、クロックエラー状態が検出される特定のクロック信号、および検出されたクロックエラー状態のタイプを認識する。一実施形態では、クロックモニタ回路は、プロセッサに結合された1つまたは複数の信号を介してプロセッサにデータを提供する。別の実施形態では、割込みを受け取ったことに応答して、プロセッサは、クロックモニタ回路からのデータを読み込む場合がある。
クロックエラー状態データを取得したプロセッサは、複数の異なる割込み処理ルーチンの1つまたは複数を実装する場合があることを理解されたい。プロセッサは、たとえば、複数の異なる割込み処理ルーチンにアクセスし、クロックエラー状態が検出されるクロック信号、および/または検出されたクロックエラー状態のタイプに基づいて実行のための特定の割込み処理ルーチンを選択する場合がある。たとえば、プロセッサは、クロック信号をリセットし、ターゲットICのすべてもしくは一部分をシャットダウンし、または別のアクションを実行する場合がある。1つまたは複数の異なるクロックにおける異なるクロックエラー状態を検出する能力によって、プロセッサは、すべてのクロック信号および/またはクロックエラー状態に共通の1つの例外処理アプローチを使用するよりもカスタムメードのまたは調整された応答で各クロックエラー状態またはクロックエラー状態の組合せに応答することが可能になる。
ブロック725では、クロックモニタ回路は、プロセッサが新しい動作パラメータおよび/または更新された動作パラメータを提供したかどうかを決定する。論じたように、プロセッサは、プロセッサが新しい動作パラメータおよび/または更新された動作パラメータをクロックモニタ回路に送ることを可能にするドライバを実行する場合がある。クロックモニタ回路がプロセッサからの動作パラメータを受け取る場合、方法700は、ブロック730に続く。そうでない場合、クロックモニタ回路は、監視されたクロック信号に関するさらなるクロックエラー状態を監視し続けるためにブロック705にループバックする。
ブロック730では、クロックモニタ回路は、ブロック725においてプロセッサから受け取った動作パラメータによってクロックモニタ回路に記憶された動作パラメータを更新する。一実施形態では、プロセッサは、ドライバプログラムコードを実行する際に、本明細書に記載されるように、限定はしないが、Counter1_width、Counter1_value、User_clock_counts、Count_stop、およびCount_2を含む例示的な動作パラメータの更新値を計算することができる。たとえば、プロセッサは、監視されたクロック信号の更新周波数、参照クロックの更新周波数、および/または更新トレランスなどの1つまたは複数のクロック信号に関して動作中に入力を受け取る場合がある。プロセッサは、新しい入力および/または更新された入力を受け取ったことに応答して、関連のクロック信号におけるCounter1_width、Counter1_value、User_clock_counts、Count_stop、およびCount_2の更新値を計算する場合がある。プロセッサは、さらに、計算された動作パラメータをクロックモニタ回路に送ることができる。これらの値は、本明細書に先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。
別の実施形態では、プロセッサは、監視されたクロック信号の更新周波数、参照クロック信号の更新周波数、および/または更新トレランスなどの1つまたは複数のクロック信号に関して動作中に入力を受け取る場合がある。プロセッサは、新しい入力および/または更新された入力を受け取ったことに応答して、これらの更新値をクロックモニタ回路に提供する場合がある。その場合に、コントローラ回路構成は、これらの値を受け取る場合がある。コントローラ回路構成は、本明細書に記載されるように、限定はしないが、受け取った値からの関連のクロック信号に関する、Counter1_width、Counter1_value、User_clock_counts、Count_stop、およびCount_2の値を含む例示的な動作パラメータを計算することができる。これらの更新値は、先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。
さらに別の実施形態では、プロセッサは、プロセッサもコントローラ回路構成も更新値を計算する必要がないようにクロックモニタ回路内で更新される動作パラメータを取得し、または読み込む場合がある。説明では、プロセッサは、本明細書に記載されるように、限定はしないが、Counter1_width、Counter1_value、User_clock_counts、Count_stop、およびCount_2を含む例示的な動作パラメータの値を取得し、または読み込む場合がある。プロセッサは、さらに、クロックモニタ回路に動作パラメータを送ることができる。これらの値は、本明細書に先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。ブロック730の後、方法700は、動作し続けるためにブロック705にループバックする場合がある。
説明を目的として、特定の用語は、本明細書に開示された様々な発明概念の完全な理解を与えるために記載される。しかし、本明細書に使用された専門用語は、本発明の構成の特定の態様を説明するためだけにあり、限定を目的としない。
本明細書に定義されるように、単数形「a」、「an」、および「the」は、コンテキストが別段に明確に示していなければ、複数形も含むことが意図される。本明細書に定義されるように、「another」という用語は、少なくとも第2番目以上を意味する。本明細書に定義されるように、「少なくとも1つ」、「1つまたは複数」、および「および/または」という用語は、別段にはっきりと記載されなければ、機能時に連言的と選言的の両方であるオープンエンドの表現である。たとえば、「A、BおよびCの少なくとも1つ」、「A、B、またはCの少なくとも1つ」、「A、B、およびCの1つまたは複数」、「A、B、またはCの1つまたは複数」および「A、B、および/またはC」という表現の各々は、A単独、B単独、C単独、AとBの組合せ、AとCの組合せ、BとCの組合せ、またはAとBとCの組合せを意味する。本明細書に定義されるように、「自動的に」という用語は、ユーザの介在がないことを意味する。
本明細書に定義されるように、「コンピュータ読取可能記憶媒体」という用語は、命令実行システム、装置、もしくはデバイスによって、またはそれらと接続して使用するためのプログラムコードを含むか、または記憶する記憶媒体を意味する。本明細書に定義されるように、「コンピュータ読取可能記憶媒体」は、それ自体、一時的な伝搬信号ではない。コンピュータ読取可能記憶媒体は、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の適切な組合せであってもよい。メモリ要素は、本明細書に記載されるように、コンピュータ読取可能記憶媒体の例である。コンピュータ読取可能記憶媒体のより具体的な例の網羅的でないリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは命令が上に記録された溝内の突起構造物などの機械的符号化デバイス、および上述のものの任意の適切な組合せを含んでもよい。
本明細書に定義されるように、「結合された」という用語は、別段に示されなければ、任意の介在要素なしに直接的にせよ、または1つもしくは複数の介在要素によって間接的にせよ、接続されることを意味する。2つの要素は、機械的に、電気的に結合されるか、または通信チャネル、経路、ネットワーク、またはシステムを通して通信可能にリンクされてもよい。本明細書に定義されるように、「含む」、「含んでいる」、「備える」、および/または「備えている」という用語は、記載された特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明記するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を除外しない。本明細書に定義されるように、「出力する」という用語は、デバイスなどの物理的メモリ要素に記憶すること、ディスプレイまたは他の周辺出力デバイスに書き込むこと、別のシステムに送出または伝送すること、エクスポートすることなどを意味する。本明細書に定義されるように、「複数」という用語は、2つまたは3つ以上を意味する。
本明細書に定義されるように、「if」という用語は、コンテキストに応じて「when(とき)」または「upon(同時に)」または「in response to(~に応答して)」または「responsive to(~に応答して)」を意味する。したがって、「if it is determined(それが決定される場合)」または「if[記載された条件または事象] is detected(~が検出される場合)」という句は、コンテキストに応じて、「upon determing(決定すると同時に)」または「in response to determing(決定したことに応答して)」または「upon detecting[記載された条件または事象](~を検出すると同時に)」または「in response to detecting[記載された条件または事象](~を検出したことに応答して)」または「responsive to detecting[記載された条件または事象](~を検出したことに応答して)」を意味するものと解釈されてもよい。本明細書に定義されるように、「responsive to(~に応答して)」という用語は、アクションまたは事象にすぐに応答または反応することを意味する。したがって、第1のアクション「に応答して」第2のアクションが実行される場合、第1のアクションの発生と第2のアクションの発生との間の因果関係が存在する。「responsive to(~に応答して)」という用語は、因果関係を示す。
本明細書に定義されるように、「one embodiment(一実施形態)」、「an embodiment(実施形態)」という用語、または同様の言葉は、この実施形態に関連して記載された特定の特徴、構造、または特性が、本開示内に記載された少なくとも1つの実施形態に含まれることを意味する。したがって、「in one embodiment(一実施形態では)」、「in an embodiment(実施形態では)」という句、および同様の言葉の出現は、本開示を通して、必要なわけではないが、すべて同じ実施形態を意味してもよい。
本明細書に定義されるように、「プロセッサ」という用語は、プログラムコードに含まれる命令を実行するように構成された少なくとも1つのハードウェア回路を意味する。ハードウェア回路は、集積回路であってもよい。プロセッサの例は、限定はしないが、中央処理ユニット(CPU)、アレイプロセッサ、ベクトルプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)、特定用途向け集積回路(ASIC)、プログラマブルロジック回路構成、グラフィックスプロセッシングユニット(GPU)、コントローラなどを含む。
本明細書に定義されるように、「実時間」という用語は、特定のプロセスもしく決定が十分にすばやくなされることをユーザもしくはシステムが感知するか、またはプロセッサが何らかの外部のプロセスについていくことを可能にする処理応答性のレベルを意味する。本明細書に定義されるように、「ユーザ」という用語は、人間を意味する。第1、第2などの用語は、様々な要素を説明するために本明細書に使用される場合がある。これらの要素は、別段に記載されるか、またはコンテキストが別段にはっきりと示すものでなければ、これらの用語が1つの要素と別の要素とを区別するために使用されるにすぎないので、これらの用語によって限定されるべきでない。
いくつかの例では、「信号」という用語は、端子、ピン、信号ライン、ワイヤなどの物理的構造を説明するために本開示内で使用される場合がある。他の例では、「信号」という用語は、ワイヤによって指定された特定の値を指すために使用される場合がある。「信号」という用語は、シングルワイヤなどのシングルビットの伝達、または多重並列ワイヤによる多重並列ビットの伝達を意味する場合がある。さらに、各信号は、信号によって接続された2つ以上の構成要素の間の双方向通信を表す場合がある。
コンピュータプログラム製品は、本明細書に記載された本発明の構成の態様をプロセッサに実行させるために上にコンピュータ読取可能プログラム命令を有するコンピュータ読取可能記憶媒体を含む場合がある。本開示内で、「プログラムコード」という用語は、「コンピュータ読取可能プログラム命令」という用語と同義で使用される。本明細書に記載されたコンピュータ読取可能プログラム命令は、コンピュータ読取可能記憶媒体からそれぞれの計算/処理デバイスに、またはインターネット、LAN、WAN、および/もしくはワイヤレスネットワークなどのネットワークを介して外部のコンピュータもしくは外部の記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイヤーウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むエッジデバイスを含んでもよい。各計算/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ読取可能プログラム命令を受け取り、それぞれの計算/処理デバイス内のコンピュータ読取可能記憶媒体に記憶するためにコンピュータ読取可能プログラム命令を転送する。
本明細書に記載された本発明の構成の動作を実行するためのコンピュータ読取可能プログラム命令は、アセンブラ命令、インストラクションセットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、または、オブジェクト指向プログラミング言語および/もしくは手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ読取可能プログラム命令は、状態設定データを含む場合がある。コンピュータ読取可能プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、独立型ソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で完全に実行する場合がある。後者のシナリオでは、リモートコンピュータが、LANまたはWANを含む任意のタイプのネットワークを通してユーザのコンピュータに接続される場合があるか、または、(たとえば、インターネットサービスプロバイダを使用してインターネットを通して)外部のコンピュータに接続がなされる場合がある。いくつかの場合には、たとえば、プログラム可能ロジック回路構成、FPGA、またはPLAを含む電子回路構成は、本明細書に記載された本発明の構成の態様を実行するために、電子回路構成を個人向けにするようにコンピュータ読取可能プログラム命令の状態情報を利用することによってコンピュータ読取可能プログラム命令を実行する場合がある。
本発明の構成のいくつかの態様は、方法、装置(システム)、およびコンピュータプログラム製品のフローチャート命令および/またはブロックダイヤグラムに関して本明細書に記載される。フローチャートの少なくともいくつかに関して、フローチャート図および/またはブロックダイヤグラムの1つもしくは複数のブロックまたは各ブロック、ならびにフローチャート図および/またはブロックダイヤグラムのブロックの組合せが、プログラムコードなどのコンピュータ読取可能プログラム命令によって実装される場合があることが理解されよう。
これらのコンピュータ読取可能プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能データ処理装置を介して実行する命令が、フローチャート内に指定された機能/動作および/または1つもしくは複数のブロックダイヤグラムブロックを実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または機械を製作するための他のプログラム可能データ処理装置のプロセッサに提供される場合がある。これらのコンピュータ読取可能プログラム命令は、内部に記憶された命令を有するコンピュータ読取可能記憶媒体が、フローチャートおよび/または1つもしくは複数のブロックダイヤグラムブロック内に指定された動作の態様を実装する命令を含む製造品を備えるように、コンピュータ、プログラム可能データ処理装置、および/または機能するための他のデバイスを特定の方法で指示することができるコンピュータ読取可能記憶媒体に記憶される場合もある。
コンピュータ読取可能プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートおよび/または1つもしくは複数のブロックダイヤグラムブロック内に指定された機能/動作を実装するように、コンピュータ、他のプログラム可能データ処理装置、またはコンピュータ上で一連の動作を実行させるための他のデバイス、他のプログラム可能装置、またはコンピュータ実装プロセスを作成するための他のデバイス上にロードされる場合もある。
図内のフローチャートおよびブロックダイヤグラムは、本発明の構成の様々な態様に従って、システム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示す。この点で、フローチャートの少なくともいくつかに関しては、フローチャートまたはブロックダイヤグラム内の1つもしくは複数のブロックまたは各ブロックは、指定された動作を実装するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表す場合がある。
いくつかの代わりの実装形態では、ブロックに記載された動作は、図に記載された順序がばらばらで起こる場合がある。たとえば、連続的に示された2つのブロックは、ほぼ同時に実行される場合があるか、または、ブロックは、含まれた機能に応じて、逆順に実行される場合もある。他の例では、ブロックは、一般に増加する番号順に実行される場合があるが、さらに他の例では、1つまたは複数のブロックは、後続のブロック、またはすぐには続かない他のブロックに記憶され利用される結果によって順序を変更しながら実行される場合がある。ブロックダイヤグラムおよび/またはフローチャート図の各ブロック、ならびにブロックダイヤグラムおよび/またはフローチャート図内のブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェア/コンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装される場合があることにも留意されよう。
以下の特許請求の範囲に見いだされる場合がある、すべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物は、具体的に請求されるように、他の請求要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図される。
クロック信号を監視するための装置は、動作パラメータを受け取るように構成されたインターフェース回路と、インターフェース回路に結合され動作パラメータを記憶するように構成された制御回路と、制御回路に結合されたクロックエラー検出回路とを含むことができる。クロックエラー検出回路は、動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成するように構成される。
一態様では、クロックエラー検出回路は、クロック信号の複数の異なるタイプのクロックエラー状態を同時に検出し、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される。
他の態様では、クロックエラー検出回路は、複数の異なるクロック信号の各々におけるクロックエラー状態を同時に検出し、エラー状態とともに複数のクロック信号のうちのクロック信号を示すように構成される。たとえば、クロックエラー検出回路は、複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を検出し、複数のクロック信号の各それぞれのクロック信号に関して、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される。
信号は、プロセッサに提供される場合があり、割込みを含むことができる。
インターフェースは、動作パラメータを送るように構成されたプロセッサに結合することができる。
動作パラメータは、クロック停止エラー状態を検出し、クロックグリッチエラー状態を検出し、かつ/または範囲外クロックエラー状態を検出するために使用される場合がある。
さらなる態様では、インターフェース回路、制御回路、およびクロックエラー検出回路は、集積回路のプログラム可能回路構成内に実装される。
クロック信号を監視する方法は、クロックモニタ回路において、プロセッサから動作パラメータを受け取ることと、動作パラメータに基づいてクロックモニタ回路のクロックエラー検出回路を更新することと、動作パラメータに基づいてクロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することとを含むことができる。本方法は、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成することも含むことができる。
一態様では、クロックエラー状態を検出することは、クロック信号の複数の異なるタイプのクロックエラー状態を同時に監視することと、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを含む。
別の態様では、クロックエラー状態を検出することは、複数の異なるクロック信号の各々におけるクロックエラー状態を同時に監視することと、エラー状態とともに複数のクロック信号のうちのクロック信号を示すこととを含む。
別の態様では、クロックエラー状態を検出することは、複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を同時に監視することと、複数のクロック信号の各それぞれのクロック信号に関して、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを含む。
信号は、プロセッサに提供することができ、割込みを含むことができる。
動作パラメータは、プロセッサから受け取ることができる。
動作パラメータは、クロック停止エラー状態を検出し、クロックグリッチエラー状態を検出し、かつ/または範囲外クロックエラー状態を検出するために使用することができる。
さらなる態様では、本方法は、集積回路のプログラム可能回路構成内にクロックモニタ回路を実装することを含むことができる。
本明細書に提供された本発明の構成の説明は、例示を目的とし、網羅的であるかまたは開示された形式および例に限定されることを目的とするものではない。本明細書に使用された専門用語は、本発明の構成の原理、実際の適用例、または市場に見いだされる技術に関する技術的改善を説明し、かつ/または当業者が本明細書に開示された本発明の構成を理解することを可能にするために選択される。修正および変更は、記載された本発明の構成の範囲および思想から逸脱することなく当業者には明らかであろう。したがって、そのような特徴および実装形態の範囲を示すように、先の開示ではなく、次の特許請求の範囲に参照がなされるべきである。

Claims (9)

  1. クロック信号を監視するための装置であって、
    動作パラメータを受け取るように構成されたインターフェース回路と、
    前記インターフェース回路に結合され前記動作パラメータを記憶するように構成された制御回路と、
    前記制御回路に結合されたクロックエラー検出回路であって、前記動作パラメータに少なくとも部分的に基づいて、複数の異なるタイプのクロックエラー状態に関して複数の異なるクロック信号の各々を同時に監視し、前記複数の異なるタイプのクロックエラー状態のうちの1つまたは複数を検出したことに応答して、前記複数の異なるクロック信号の各クロック信号に関して、前記複数の異なるタイプのクロックエラー状態のうちのどれが検出されたかを示すように構成される、クロックエラー検出回路と
    を備え、
    前記複数の異なるタイプのクロックエラー状態のうちの少なくとも1つは、前記クロック信号がハイである時間量と、前記クロック信号がローである時間量との比較に基づ
    装置。
  2. 前記制御回路が、前記複数の異なるタイプのクロックエラー状態のうちの前記1つまたは複数を検出したことに応答してプロセッサへの割込み信号を生成するように構成される、請求項1に記載の装置。
  3. 前記インターフェース回路が、前記動作パラメータを送るように構成されたプロセッサに結合される、請求項1に記載の装置。
  4. 前記動作パラメータが、クロック停止エラー状態を検出するために使用される、請求項1に記載の装置。
  5. 前記動作パラメータが、クロックグリッチエラー状態を検出するために使用される、請求項1に記載の装置。
  6. 前記動作パラメータが、範囲外クロックエラー状態を検出するために使用される、請求項1に記載の装置。
  7. 前記インターフェース回路、前記制御回路、および前記クロックエラー検出回路が、集積回路のプログラム可能回路構成内に実装される、請求項1に記載の装置。
  8. クロック信号を監視する方法であって、
    クロックモニタ回路において、プロセッサから動作パラメータを受け取ることと、
    前記動作パラメータに基づいて前記クロックモニタ回路のクロックエラー検出回路を更新することと、
    少なくとも部分的に前記動作パラメータに基づいて前記クロックエラー検出回路を使用して1つまたは複数のクロック信号の1つまたは複数のクロックエラー状態を検出することであって、前記1つまたは複数のクロック信号は複数の異なるクロック信号に含まれ、前記1つまたは複数のクロックエラー状態は複数の異なるタイプのクロックエラー状態に含まれ、前記1つまたは複数のクロックエラー状態を検出することは、前記複数の異なるタイプのクロックエラー状態に関して前記複数の異なるクロック信号の各々を同時に監視することを含む、前記1つまたは複数のクロックエラー状態を検出することと、
    前記複数の異なるタイプのクロックエラー状態のうちの1つまたは複数を検出したことに応答して、前記複数の異なるクロック信号の各クロック信号に関して、前記複数の異なるタイプのクロックエラー状態のうちのどれが検出されたかを示す信号を生成することと
    含み
    前記複数の異なるタイプのクロックエラー状態のうちの少なくとも1つは、前記クロック信号がハイである時間量と、前記クロック信号がローである時間量との比較に基づく、方法。
  9. 前記1つまたは複数のクロックエラー状態を検出したことに応答して、前記プロセッサへの割込み信号を生成することを含む、請求項に記載の方法。
JP2019523071A 2016-11-01 2017-10-26 プログラム可能クロックモニタ Active JP7004712B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/340,978 2016-11-01
US15/340,978 US10379927B2 (en) 2016-11-01 2016-11-01 Programmable clock monitor
PCT/US2017/058560 WO2018085116A1 (en) 2016-11-01 2017-10-26 Programmable clock monitor

Publications (2)

Publication Number Publication Date
JP2019536146A JP2019536146A (ja) 2019-12-12
JP7004712B2 true JP7004712B2 (ja) 2022-01-21

Family

ID=60409346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019523071A Active JP7004712B2 (ja) 2016-11-01 2017-10-26 プログラム可能クロックモニタ

Country Status (6)

Country Link
US (1) US10379927B2 (ja)
EP (1) EP3535638B1 (ja)
JP (1) JP7004712B2 (ja)
KR (1) KR102381903B1 (ja)
CN (1) CN109923494B (ja)
WO (1) WO2018085116A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102471531B1 (ko) * 2017-12-21 2022-11-28 에스케이하이닉스 주식회사 저속 동작 환경에서 고속 테스트를 수행할 수 있는 반도체 장치 및 시스템
US20190052277A1 (en) * 2018-06-25 2019-02-14 Intel Corporation Functional safety clocking framework for real time systems
US10956249B2 (en) * 2018-11-28 2021-03-23 International Business Machines Corporation Handling clock errors on failure of interrupt mechanism
DE102019109869A1 (de) * 2019-04-15 2020-10-15 Infineon Technologies Ag Elektronische schaltung
US11544160B2 (en) * 2019-06-28 2023-01-03 Intel Corporation IPS SOC PLL monitoring and error reporting
JP2022034761A (ja) * 2020-08-19 2022-03-04 東芝テック株式会社 情報処理装置および情報処理方法
EP4009062A1 (en) * 2020-12-01 2022-06-08 Thales DIS France SA System on chip with voltage glitch detection based on clock synchronization monitoring

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308131A (ja) 2002-04-16 2003-10-31 Matsushita Electric Ind Co Ltd クロック監視装置
JP2005092303A (ja) 2003-09-12 2005-04-07 Fujitsu Ltd クロック信号の擾乱検出機能を備えたディジタル回路装置
JP2005234972A (ja) 2004-02-20 2005-09-02 Konica Minolta Business Technologies Inc クロック異常検出システム
JP3827947B2 (ja) 1998-05-13 2006-09-27 三菱電機株式会社 クロック異常検出装置
US20150033101A1 (en) 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864574A (en) * 1988-02-04 1989-09-05 Rockwell International Corporation Injection lock clock detection apparatus
US5081629A (en) * 1989-05-08 1992-01-14 Unisys Corporation Fault isolation for multiphase clock signals supplied to dual modules which are checked by comparison using residue code generators
ATE139632T1 (de) * 1989-08-01 1996-07-15 Digital Equipment Corp Verfahren zur softwarefehlerbehandlung
JPH08221150A (ja) * 1995-02-17 1996-08-30 Matsushita Electric Ind Co Ltd クロック異常検出装置
US6000040A (en) * 1996-10-29 1999-12-07 Compaq Computer Corporation Method and apparatus for diagnosing fault states in a computer system
GB2362473B (en) * 2000-05-18 2002-08-21 3Com Corp On-chip detector of clock glitches
CN1147789C (zh) * 2000-06-29 2004-04-28 深圳市中兴通讯股份有限公司 嵌入式微处理器应用系统中时钟丢失和毛刺检测方法
US7739524B2 (en) 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
CN2922277Y (zh) * 2005-10-25 2007-07-11 中兴通讯股份有限公司 一种时钟毛刺检测电路
US7929648B2 (en) * 2006-03-31 2011-04-19 Ati Technologies Inc. Clock error detection apparatus and method
WO2008017904A1 (en) 2006-08-08 2008-02-14 Freescale Semiconductor, Inc. Real time clock monitoring method and system
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8639987B2 (en) 2011-02-18 2014-01-28 Arm Limited Data processing apparatus and method using monitoring circuitry to control operating parameters
US8473797B2 (en) * 2011-08-12 2013-06-25 Texas Instruments Incorporated Circuits and methods for clock malfunction detection
US9135431B2 (en) 2013-07-26 2015-09-15 Apple Inc. Harmonic detector of critical path monitors
US9589637B1 (en) 2013-12-18 2017-03-07 Nxp Usa, Inc. Storage element with storage and clock tree monitoring circuit and methods therefor
US8937496B1 (en) 2014-08-20 2015-01-20 Xilinx, Inc. Clock monitor
CN104505934B (zh) * 2014-12-01 2017-02-22 国电南瑞科技股份有限公司 一种时钟同步及监测系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3827947B2 (ja) 1998-05-13 2006-09-27 三菱電機株式会社 クロック異常検出装置
JP2003308131A (ja) 2002-04-16 2003-10-31 Matsushita Electric Ind Co Ltd クロック監視装置
JP2005092303A (ja) 2003-09-12 2005-04-07 Fujitsu Ltd クロック信号の擾乱検出機能を備えたディジタル回路装置
JP2005234972A (ja) 2004-02-20 2005-09-02 Konica Minolta Business Technologies Inc クロック異常検出システム
US20150033101A1 (en) 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source

Also Published As

Publication number Publication date
KR102381903B1 (ko) 2022-03-31
US20180121280A1 (en) 2018-05-03
CN109923494B (zh) 2020-11-03
EP3535638B1 (en) 2020-12-09
CN109923494A (zh) 2019-06-21
US10379927B2 (en) 2019-08-13
KR20190077058A (ko) 2019-07-02
JP2019536146A (ja) 2019-12-12
EP3535638A1 (en) 2019-09-11
WO2018085116A1 (en) 2018-05-11

Similar Documents

Publication Publication Date Title
JP7004712B2 (ja) プログラム可能クロックモニタ
US9600384B2 (en) System-on-chip verification
CN107408090B (zh) 输入/输出控制器访问通道的动态配置
KR102602004B1 (ko) 공유 리소스 액세스 제어 방법 및 장치
US20170371761A1 (en) Real-time performance tracking using dynamic compilation
WO2014025988A1 (en) Secure data protection with improved read-only memory locking during system pre-boot
US9632938B2 (en) Method and apparatus for pushing memory data
JP2018531457A6 (ja) 対話型マルチステップ物理合成
JP2018531457A (ja) 対話型マルチステップ物理合成
US20220327271A1 (en) Integrated circuit with peek and poke protection circuitry for multi-tenant usage model
CN103164316A (zh) 硬件监视器
EP3332331B1 (en) Memory access control
US8813018B1 (en) Method and apparatus for automatically configuring memory size
US11029964B1 (en) Booting a system-on-chip
EP3151140B1 (en) Control block size reduction through ip migration in an integrated circuit device
Afonso et al. Heterogeneous CPU/FPGA reconfigurable computing system for avionic test application
US20150082107A1 (en) State machine based functional stress tests
US9710583B2 (en) Information processing apparatus, state machine dividing method, and computer-readable recording medium
JP2023544001A (ja) アクセラレータカードのセキュリティモードの静的構成
JP6741940B2 (ja) 情報処理装置及びpld管理プログラム
US20200004503A1 (en) Information processing device, information processing method, and computer readable medium
JP6918267B2 (ja) ボトルネック検出装置及びボトルネック検出プログラム
US11966750B2 (en) System-on-chip management controller
US20240004668A1 (en) System-on-chip management controller
US20230205547A1 (en) Multiple module bootup operation

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20190617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220104

R150 Certificate of patent or registration of utility model

Ref document number: 7004712

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150