「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで
6 ポーリングと割り込み
組み込み製品は,外で起きたことに反応したり,外に働きかけたりするためにコンピュータを使っています.コンピュータはプログラム・カウンタが示すところに納めてある命令を一つずつ解釈し,実行していきます.つまり,あらかじめ納めてある手続きに従って動いているにすぎないのです.
では,外部の情報を取り込んで,それに応じた処理を行うにはどうすればよいのでしょうか.それには手続きの一つとして外部を見る命令を書いておけばいいのです.
ここでは,日常生活の例えをもとに,ポーリングと割り込みについて説明します.
●御用聞きに出るか,電話で受け付けるか
各家庭を訪問して「何かご入り用のものはありますか」と聞き,それを届ける三河屋さんを考えましょう.コンピュータの世界では,このようにあらかじめこちらから御用聞きに行くしごとのしかたをポーリングといいます.
これに対して,お客さんのほうから商店に電話をかけて注文するというやりかたもあります.商店からすると,何かほかのことをしていて,電話がかかってきたら対応し,終わったらまた元のしごとに戻る,といったしごとの進めかたになります.こちらを「割り込み」と呼び,割り込んでくるしごとを「割り込み処理」と呼びます.
三河屋さんは,毎日Aさん,Bさん,Cさん,Dさんの家を回っています(図6-1).朝いつも同じ時間にしごとを始めたとしても,順番に回っていくと御用があったりなかったりして,Bさん以降の家を訪問する時間はばらついてしまいます.店に在庫のないものを要求されて問屋まで取りに行くと,ひょっとするとDさんの家に御用聞きにうかがう時間がなくなってしまうかもしれません.
そんな状況で,あちこちの家から「毎日来てほしい」とお願いされたりすると,三河屋さん1人では対応しきれません.さらに「すぐ配達してほしい」という要望に応えることもできません.このような要求に即時に対応するために,さきに挙げた「割り込み」という手法を使います.