社員ブログ

印刷

(電子回路は)いかにして問題を解くか

私たちは普段、たくさんの問題を解決しながら生活しています(と、今私が定義しました)。
問題といっても、「パンはパンでも食べられないパンはパーンダ?」というものだけではなく、
「5,000円を3人で割ったらいくら?」や「今日の天気がわからない」など、
「試験の日程を忘れてしまいそう」といったものも問題の一つです。

唐突に著作権フリーなパンダの画像
唐突に著作権フリーなパンダの画像

私たちはこれらの問題を解決するために、スマートフォンなどの道具を利用して生活しています。
つまり、スマートフォンは私たち人間を通じて問題を解決していると言えるでしょう。
驚くべきことに、先に挙げた3つの問題はすべてスマートフォンで解決することができます。

スマートフォンは、このように様々な種類の問題を解決できます。
その代わり、人間から問題を与えられないと解決することができません。
対して、温度計は「温度を得る」という問題しか解決できませんが、
人間に命令されることなく、たんたんと温度をとり続けてくれます。
また「あの子からlineが返ってこない」や「明日のレポートがまだ終わっていない」といった 専門性の高い問題は、(今のところ)スマートフォンでは解決できません。
または解決できる問題だったとしても、とても時間がかかったり、電気をたくさん消費したりします。
例えば、動画を撮影しようとすると、手振れがひどかったり、電池の消耗が激しかったり、
あまり画質が良くなかったりします。
ビデオカメラの方が動画撮影には向いているでしょう。

私たちがこのように道具の使い分けをしているのと同様に、
電子回路の中では様々なIC(Integrated Circuit:集積回路)が使い分けられています。
まず、スマートフォンのように人間が操作する装置にはCPUが載っています。
CPUは人間からの様々な命令に対応できるように作られたICです。
様々な命令を実行できるように、様々な機能がついています。
複雑な命令は機能ごとに分解して、一つ一つ機能を選択して実行していきます。
例えば「4×5」という計算を行う場合は、

  1. 4を保存
  2. 5を保存
  3. 4×5を実行
  4. 4×5の結果(20)を表示
とするでしょう。

より複雑で専門的な命令は、専用のICに任せるのが良いでしょう。
複雑で専門的な処理(Application Specific)を回路化したものををASICといいます。
CPUは、人間とASICとの間を取り持つ役割も担っています。
ASICは機能が限られているため、CPUよりも複雑な処理を早く完了することができます。
機能は当然ICにする際に決定するため、あとから変更することはできません。

「CPUよりも複雑な処理を早く行いたいが、機能を変更できるようにしたい」
という場合はどうすればよいでしょうか。
回路を変更できるICであれば可能です。
FPGA(Feild Programable Gate Array)は、回路をプログラムすることができます。

これまで出てきた内容をまとめると、以下のようになります。

CPU FPGA ASIC
特徴 専用の回路、逐次処理 汎用な回路、並列処理 専用の回路、並列処理
命令 単純 複雑
機能 汎用的 専門的

このようなICを用いて電子回路は問題を解いています。

Written by 鈴木(聡)

PAGE TOP