WDT(ウォッチドッグタイマー)って、そもそもナニ?

はじめに

「ウォッチドッグ」と聞くと、「番犬」や「見張り犬」を思い浮かべる人も多いでしょう。実はそのイメージ、けっこう正しいんです!コンピュータの世界での「ウォッチドッグタイマー(WDT)」も、“番犬”のように働きます。
つまり、コンピュータがちゃんと動いているかを「監視」してくれる存在なんです。

コンピュータも時々「固まる」

家電やマイコン(小さなコンピュータ)は、常に何かの処理を行っています。でも、プログラムにバグがあったり、電気的なノイズが入ったりすると──


「動かなくなる(フリーズする)」ことがあります。

人間だったら「調子が悪いな」と思ったら再起動できますが、マイコンは自分ではそれに気づきません。
そこで助けてくれるのが「ウォッチドッグタイマー」なのです。

WDTのしくみをざっくり説明!

ウォッチドッグタイマーは、
「一定時間ごとに“ご主人(CPU)”から『大丈夫だよ!』という合図(リセット)をもらえなかったら、システムをリセットする」という仕組みを持っています。

たとえるなら、こんな感じです。

🐶 番犬(WDT):「一定時間ごとに“ごはん”をくれなかったら、ワン!って吠えて部屋(システム)をリセットするぞ!」

CPUが正常に動いている間は、定期的に「ごはん(リセット信号)」をあげるので、番犬はおとなしくしています。でも、もしCPUがフリーズして「ごはん」をあげられなくなったら──

→ 番犬が「おかしいぞ!」と吠えて、WDTがリセット信号を出します。
→ するとマイコンが再起動し、動作を再開できます。

合わせて読みたい

WDTを使う=勝手に再起動する防止策

つまり、WDTは「異常で止まったままにならないようにする安全装置」。組み込み機器ではとても大切な機能です。

たとえば:

  • 家電製品
  • 車の制御装置
  • センサーやIoTデバイス

こういった機器が途中で固まると困りますよね。そんなときにWDTが“非常リセットスイッチ”の役割をしてくれるのです。

合わせて読みたい

注意点

便利なWDTですが、設定ミスをすると逆効果になることもあります。

  • WDTのタイムアウト時間が短すぎると、正常動作でもすぐリセットしてしまう
  • ソフトリセット時にWDTを正しく初期化しないと、リセットループ(何度も再起動)してしまう

なので、プログラムでは「どこでWDTをリセットするか」「どんな周期にするか」をきちんと考える必要があります。

まとめ

WDT(ウォッチドッグタイマー)とは、

  • システムを“見張る番犬”のような存在
  • フリーズを検知して自動でリセットしてくれる安全装置
  • 組み込みシステムでは欠かせない機能

普段は気づかないけれど、もしものときにしっかり働いてくれる頼もしい存在。
まさに「見えない番犬」なんですね🐾