インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

24.4.7. ウォッチドッグ・タイマーのステートマシン

次の図に、ウォッチドッグ・タイマーの動作を示します。これには、両方の出力応答モードの動作が含まれています。初期化されると、カウンターはクロックサイクルごとに減少します。ステートマシンは、カウンターが0になる、もしくはウォッチドッグ・タイマーが再起動されるまで、Decrement Counter状態で維持されます。ソフトウェアがInterrupt Clear Register (wdt_eoi) を読み出す、もしくはwdt_crrレジスターに0x76を書き込むと、状態はDecrement CounterからLoad Counter with Restart Timeout Valueに変わります。この状態において、ウォッチドッグ・カウンターは再起動時のタイムアウト値で再ロードされ、その後、Decrement Counterの状態に戻ります。
図 128. ウォッチドッグ・タイマーのステートマシン

カウンターが0に達すると、wdt_crレジスターのrmodビットで定義されている出力応答モードの設定値に基づき状態が変化します。wdt_crレジスターのrmodビットが0の場合、出力応答モードはシステムリセット要求を生成するものです。この場合、状態はAssert System Reset Requestに変わります。これに応答してリセット・マネージャーはウォッチドッグ・タイマーをリセットおよび無効にし、タイマーを再初期化する機会をソフトウェアに与えます。

wdt_crレジスターのrmodビットが1の場合は、出力応答モードは割り込みを生成するものです。この場合、状態はAssert Interrupt and Load Counter with Restart Timeout Valueに変わります。プロセッサーへの割り込みが生成され、ウォッチドッグ・カウンターには再起動時のタイムアウト値が再ロードされます。その後、状態は2番目のDecrement Counterの状態になり、カウンターの減少が再開します。ソフトウェアでwdt_eoiレジスターを読み出す、もしくはwdt_crrレジスターに0x76を書き込むと、状態はDecrement CounterからLoad Counter with Restart Timeout Valueに変わります。この状態において、ウォッチドッグ・カウンターには再起動時のタイムアウト値が再ロードされ、その後、状態は最初のDecrement Counter状態に戻ります。カウンターが再び0に達すると、状態はAssert System Reset Requestに変わります。これに応答してリセット・マネージャーはウォッチドッグ・タイマーをリセットし、タイマーを再初期化する機会をソフトウェアに与えます。