読み込み中...
読み込み中...
読み込み中...
読み込み中...
読み込み中...
コンピュータの内部では、すべての情報が 0 と 1 の2つの値(ビット)で表現されます。この0と1を操作する基本的な仕組みが 論理回路 です。
身近な例で考えてみましょう。玄関の照明スイッチは「ON か OFF」の2状態です。2つのスイッチが 両方 ON のときだけ照明が点く回路、 どちらか一方でも ON なら点く回路——これらがまさに論理回路の基本です。
このセクションでは、基本的な論理ゲート(AND・OR・NOT)から始め、それらを組み合わせた NAND・NOR・XOR、さらに論理式と真理値表の読み方、実用的な加算器回路、記憶素子であるフリップフロップまでを学びます。
論理回路の最小単位を 論理ゲート と呼びます。入力に対して特定の論理演算を行い、結果を出力します。まずは3つの基本ゲートを理解しましょう。
すべての入力が 1 のときだけ出力が 1 になります。日本語では「かつ」に相当します。
身近な例: エレベーターは「ドアが閉まっている」 かつ 「行き先ボタンが押されている」の両方が成り立つときだけ動きます。
論理式: X = A・B (または A AND B)
| A | B | X = A・B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
入力のうち少なくとも1つが 1 なら出力が 1 になります。日本語では「または」に相当します。
身近な例: 部屋の照明が「壁スイッチ」 または 「リモコン」のどちらかで点灯する場合。
論理式: X = A + B (または A OR B)
| A | B | X = A + B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
入力を反転します。0 なら 1、1 なら 0 を出力します。
論理式: X = A̅(A の上にバーを付ける記法。NOT A とも書く)
| A | X = NOT A |
|---|---|
| 0 | 1 |
| 1 | 0 |
論理回路図では、各ゲートを MIL 記号 と呼ばれる標準的な図記号で表します。以下は AND・OR・NOT ゲートの構成を示したものです。
基本の3ゲートを組み合わせることで、さらに便利なゲートが作れます。
AND の出力を NOT で反転したものです。すべての入力が 1 のときだけ出力が 0 になります。
論理式: X = NOT(A・B)
| A | B | X |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
NAND ゲートは 万能ゲート と呼ばれ、NAND だけで AND・OR・NOT のすべてを実現できます。実際の IC(集積回路)では、製造コストの観点から NAND ゲートを基本素子として使うことが多いです。
OR の出力を NOT で反転したものです。すべての入力が 0 のときだけ出力が 1 になります。
論理式: X = NOT(A + B)
| A | B | X |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
NOR ゲートも万能ゲートです。
2つの入力が 異なる ときに出力が 1 になります。「どちらか一方だけが 1」のときに 1 です。
論理式: X = A XOR B(A ⊕ B とも書く)
| A | B | X |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
身近な例: 階段の上と下にある照明スイッチ(3路スイッチ)。どちらかのスイッチを切り替えるたびに照明の ON/OFF が反転します。これは XOR の動作そのものです。
XOR の出力を反転したもので、2つの入力が 同じ ときに出力が 1 になります。一致回路とも呼ばれます。
| A | B | X |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
論理式を変形するときに非常に重要な法則です。FE 試験でも頻出なので確実に覚えましょう。
第1法則: NOT(A・B) = NOT A + NOT B
(AND の否定は、それぞれの否定の OR に等しい)
第2法則: NOT(A + B) = NOT A・NOT B
(OR の否定は、それぞれの否定の AND に等しい)
覚え方のコツ: 「 否定をばらすと、AND と OR がひっくり返る 」
| A | B | A・B | NOT(A・B) | NOT A | NOT B | NOT A + NOT B |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 0 | 0 | 0 | 0 |
NOT(A・B) と NOT A + NOT B の列が一致していることが確認できます。
ド・モルガンの法則を使うと、NAND ゲートや NOR ゲートの回路を AND・OR・NOT の組み合わせに書き換えることができます。論理回路の簡略化や、試験問題で論理式の等価性を判断する際に必須の知識です。
半加算器(Half Adder) は、1ビットの2つの値を加算する最も基本的な回路です。加算結果の 和(S: Sum) と 桁上がり(C: Carry) の2つを出力します。
1ビットの加算を考えてみましょう:
| A | B | C(桁上がり) | S(和) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
この真理値表をよく見ると:
つまり、半加算器は XOR ゲート1つと AND ゲート1つ で構成されます。
「半」加算器と呼ばれるのは、下の桁からの桁上がり入力を考慮していないためです。
全加算器(Full Adder) は、2つの入力ビット(A, B)に加えて、下の桁からの 桁上がり入力(Cin) も考慮して加算する回路です。複数ビットの加算を行うには全加算器が必要です。
| A | B | Cin | Cout(桁上がり出力) | S(和) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
全加算器は 半加算器2つと OR ゲート1つ で構成できます。
4ビットの加算器は、全加算器を4つ 直列に接続 して作ります。最下位ビット(LSB)の桁上がり出力を次の桁の桁上がり入力に繋ぐことで、筆算と同じ仕組みで複数桁の加算が実現できます。この方式を リプルキャリー加算器 と呼びます。
フリップフロップ(Flip-Flop: FF) は、1ビットの情報を記憶できる 順序回路 の基本素子です。これまで学んだ AND・OR・NOT などの論理ゲートは、入力が決まれば出力が一意に決まる 組合せ回路 でした。一方、フリップフロップは過去の状態(記憶)に基づいて出力が変わります。
身近な例: 照明のスイッチを考えてください。スイッチを押すたびに ON/OFF が切り替わり、手を離しても状態が保持されます。これがフリップフロップの動作に似ています。
| 種類 | 入力 | 動作 | 用途 |
|---|---|---|---|
| RS-FF(SR-FF) | S(Set), R(Reset) | S=1 で Q=1(セット)、R=1 で Q=0(リセット) | 基本的な記憶素子 |
| D-FF | D(Data) | クロック信号のタイミングで D の値をそのまま記憶 | レジスタ、データ保持 |
| JK-FF | J, K | RS-FF の改良版。J=K=1 のとき出力が反転(トグル) | カウンタ回路 |
| T-FF | T(Toggle) | T=1 のときクロックごとに出力が反転 | 分周回路、カウンタ |
| S | R | Q(次の状態) | 説明 |
|---|---|---|---|
| 0 | 0 | Q(変化なし) | 前の状態を保持 |
| 0 | 1 | 0 | リセット |
| 1 | 0 | 1 | セット |
| 1 | 1 | 不定 | 使用禁止(S=R=1 は矛盾) |
フリップフロップは CPU のレジスタや SRAM の記憶素子として使われています。ch03 で学んだ「SRAM はフリップフロップで記憶する」という説明の正体がこれです。
| 種類 | 特徴 | 記憶 | 例 |
|---|---|---|---|
| 組合せ回路 | 現在の入力のみで出力が決まる | なし | 加算器、デコーダ、エンコーダ |
| 順序回路 | 現在の入力と内部状態(記憶)で出力が決まる | あり | フリップフロップ、カウンタ、レジスタ |
ポイント
基本論理ゲートは AND (論理積: 全入力が1で1)・ OR (論理和: いずれかが1で1)・ NOT (否定: 反転)の3つ。これを組み合わせた NAND ・ NOR は万能ゲート。 XOR は入力が異なるとき1。 ド・モルガンの法則 は NOT(A・B) = NOT A + NOT B、NOT(A + B) = NOT A・NOT B で、否定をばらすと AND/OR が入れ替わる。 半加算器 は XOR(和)+ AND(桁上がり)で構成。 全加算器 は半加算器2つ + OR で下位桁からの桁上がりも処理。 フリップフロップ は1ビットを記憶する順序回路の基本素子で、RS-FF・D-FF・JK-FF・T-FF がある。
用語
組込みシステム(Embedded System) とは、特定の機能を実現するために機器の内部に組み込まれたコンピュータシステムのことです。
皆さんの身の回りには、実は組込みシステムが溢れています。電子レンジ、エアコン、自動車のエンジン制御、エレベーター、デジタルカメラ、スマートウォッチ——これらはすべて内部に小さなコンピュータ(マイコン)を搭載し、センサからの入力に応じてモーターやヒーターなどを制御しています。
このセクションでは、組込みシステムの構成要素であるマイコン、センサ、アクチュエータから、近年注目される IoT(モノのインターネット)、そしてハードウェアをプログラムで書き換えられる FPGA、リアルタイム OS まで幅広く学びます。
マイコン は、CPU・メモリ・入出力インターフェースを 1つの IC チップ に集積した小型コンピュータです。パソコンの CPU が汎用的な計算を行うのに対し、マイコンは 特定の制御用途 に特化しています。
| 構成要素 | 役割 |
|---|---|
| CPU(プロセッサ) | プログラムを実行し、制御処理を行う |
| ROM(フラッシュメモリ) | プログラムを格納する(電源を切っても保持) |
| RAM | 処理中のデータを一時的に保持する |
| I/O ポート | センサやアクチュエータと信号をやり取りする |
| タイマ / カウンタ | 時間の計測やイベントのカウントを行う |
| A/D 変換器 | アナログ信号をデジタル信号に変換する |
マイコンは家電製品1台に数個〜数十個搭載されることもあり、自動車1台には 100個以上 のマイコンが使われています。
組込みシステムは「 感じて → 考えて → 動かす 」の流れで動作します。「感じる」を担当するのが センサ 、「動かす」を担当するのが アクチュエータ です。
| センサの種類 | 検出対象 | 利用例 |
|---|---|---|
| 温度センサ | 温度 | エアコン、体温計 |
| 加速度センサ | 加速度・傾き | スマートフォンの画面回転、自動車のエアバッグ |
| ジャイロセンサ | 角速度(回転) | カーナビ、ドローンの姿勢制御 |
| 光センサ(照度センサ) | 光の強さ | 自動車のオートライト、スマートフォンの画面輝度調整 |
| 赤外線センサ | 赤外線(熱) | 人感センサ(自動ドア、防犯) |
| 圧力センサ | 圧力 | タイヤ空気圧監視、血圧計 |
| GPS センサ | 位置(緯度・経度) | カーナビ、スマートフォンの地図アプリ |
| 超音波センサ | 距離 | 自動車のバックセンサ(障害物検知) |
| アクチュエータ | 動作 | 利用例 |
|---|---|---|
| モーター | 回転運動 | 洗濯機のドラム、ロボットアーム |
| ソレノイド | 直線運動 | 電磁ロック、自動ドアの開閉 |
| ヒーター | 加熱 | 電子レンジ、3Dプリンタのヘッド |
| スピーカー | 音の出力 | アラーム、音声ガイド |
| LED / ディスプレイ | 光・映像の出力 | インジケーター、情報表示 |
あらゆるモノがインターネットに接続され、データの収集・通信・制御を行う仕組みが IoT です。
従来の組込みシステムは機器単体で完結していましたが、IoT ではネットワークを通じてデータをクラウドに送信し、分析結果をフィードバックすることで、より高度な制御や最適化が可能になります。
| 構成要素 | 役割 |
|---|---|
| IoT デバイス | センサでデータを収集し、通信機能でデータを送信 |
| ゲートウェイ | デバイスとクラウドの間を中継。プロトコル変換やデータの一次処理を行う |
| クラウド | 大量のデータを蓄積・分析し、デバイスに制御命令をフィードバック |
| 通信技術 | 特徴 | 利用例 |
|---|---|---|
| BLE(Bluetooth Low Energy) | 低消費電力の近距離無線通信 | ウェアラブルデバイス、ビーコン |
| Wi-Fi | 高速・中距離の無線通信 | スマートホーム機器 |
| LPWA(Low Power Wide Area) | 低消費電力・長距離通信。速度は低い | 農業センサ、スマートメーター |
| ZigBee | 低消費電力のメッシュネットワーク | ビル管理、産業用センサネットワーク |
すべてのデータをクラウドに送ると、通信の遅延やネットワーク帯域の圧迫が問題になります。そこで、IoT デバイスに近い場所( エッジ )でデータを処理・フィルタリングし、必要なデータだけをクラウドに送る方式を エッジコンピューティング と呼びます。自動運転車のように即座の判断が必要な場面では不可欠な技術です。
FPGA は、製造後にユーザーが論理回路の構成を 書き換えられる IC です。
通常の IC(ASIC: Application Specific Integrated Circuit)は、一度製造すると回路構成を変更できません。一方 FPGA は、内部に大量の論理ブロックと配線リソースを持ち、これらの接続をプログラム( HDL: Hardware Description Language )で自由に設定できます。
| 項目 | FPGA | ASIC |
|---|---|---|
| 回路の変更 | 可能(書き換えできる) | 不可(製造時に固定) |
| 開発期間 | 短い | 長い(マスク設計が必要) |
| 単価 | 高い | 安い(大量生産時) |
| 性能 | ASIC より劣る | 最適化されているため高い |
| 適する場面 | 試作・少量生産・仕様変更が多い | 大量生産・高性能が必要 |
利用例: 通信機器のプロトコル処理、画像処理のハードウェアアクセラレータ、AI推論の高速化
FPGA は「ハードウェアなのにソフトウェアのように書き換えられる」という柔軟性が最大の強みです。
組込みシステムでは、「ある処理を決められた時間内に必ず完了する」ことが求められる場面が多くあります。たとえば自動車のブレーキ制御で応答が遅れたら大事故につながります。
このような 時間制約 を満たすために使われるのが リアルタイム OS(RTOS: Real-Time Operating System) です。
| 項目 | 汎用 OS(Windows, Linux 等) | リアルタイム OS |
|---|---|---|
| 目的 | 多数のタスクを効率よく処理 | 決められた時間内に処理を完了 |
| タスクスケジューリング | 公平性を重視 | 優先度 を重視(優先度の高いタスクを即座に実行) |
| 応答時間の保証 | 保証しない | 保証する(デッドラインを守る) |
| 割込み応答 | 遅延がありうる | 最小限の遅延で応答 |
| 分類 | 説明 | 例 |
|---|---|---|
| ハードリアルタイム | デッドラインを1回でも超えると致命的な障害になる | エアバッグ制御、航空機の飛行制御 |
| ソフトリアルタイム | デッドラインを超えても品質低下で済む(致命的ではない) | 動画ストリーミング、音声通話 |
代表的な RTOS: VxWorks 、 FreeRTOS 、 ITRON(日本で広く利用) 、 Zephyr
ポイント
組込みシステム は機器内部に組み込まれた専用コンピュータシステム。中核となる マイコン は CPU・メモリ・I/O を1チップに集積。 センサ (入力)→ マイコン (制御)→ アクチュエータ (出力)の流れで動作する。 IoT はモノをインターネットに接続してデータ収集・分析・制御を行う仕組みで、 エッジコンピューティング により遅延を低減する。 FPGA は製造後に論理回路を書き換えられる IC で、試作や少量生産に適する。 リアルタイム OS は時間制約を保証する OS で、ハードリアルタイム(厳密)とソフトリアルタイム(許容あり)に分類される。
用語
コンピュータが扱うデータは デジタル信号 (0と1の離散的な値)ですが、現実世界の情報——音声、温度、電圧、光の強さなど——は連続的に変化する アナログ信号 です。
たとえば、マイクで拾った音声をコンピュータに取り込むとき、連続的な音の波形をそのまま保存することはできません。一定間隔で波形の値を「サンプリング」し、その値を数値化(量子化)して、デジタルデータとして記録する必要があります。
このセクションでは、アナログとデジタルの相互変換(A/D 変換・D/A 変換)、正確に変換するために欠かせない サンプリング定理 、データ量に直結する 量子化ビット数 を学びます。FE 試験では計算問題としてよく出題される分野です。
アナログ信号をデジタル信号に変換する処理を A/D 変換(Analog to Digital Conversion) と呼びます。A/D 変換は以下の3つのステップで行われます。
連続的なアナログ信号を、一定の時間間隔で値を取り出す処理です。1秒間にサンプリングする回数を サンプリング周波数(サンプリングレート) と呼び、単位は Hz(ヘルツ) です。
例: 音楽 CD のサンプリング周波数は 44,100Hz(44.1kHz)。つまり、1秒間に44,100回の値を取り出しています。
サンプリングで取り出した値を、あらかじめ決められた段階の最も近い値に丸める処理です。このとき、元の値と丸めた値の差を 量子化誤差(量子化雑音) と呼びます。段階を細かくする(量子化ビット数を増やす)ほど、量子化誤差は小さくなります。
量子化された値を2進数のビット列に変換する処理です。たとえば量子化ビット数が 8 ビットなら、各サンプルを 0〜255(2⁸ = 256段階)のいずれかの値として記録します。
アナログ信号を正確にデジタル化するために、どのくらいの頻度でサンプリングすればよいかを定めた定理です。
サンプリング定理: アナログ信号に含まれる最大周波数を f とするとき、元の信号を正確に復元するには、サンプリング周波数を 2f 以上 にする必要がある。
この「2f」を ナイキスト周波数 と呼びます。
波の山と谷の両方を捉えるには、1周期あたり最低2回のサンプリングが必要だからです。1回だと波の形を判別できず、サンプリング周波数が不足すると、元の信号とは異なる低い周波数の信号として再現されてしまいます。この現象を エイリアシング(折り返し雑音) と呼びます。
問題: 人間の可聴周波数の上限は約 20,000Hz(20kHz)です。音楽 CD のサンプリング周波数が 44,100Hz である理由を説明してください。
解答: サンプリング定理より、20,000Hz の信号を正確に復元するには 2 × 20,000 = 40,000Hz 以上のサンプリング周波数が必要です。CD の 44,100Hz はこの条件を満たしており、人間が聞こえる全ての音を正確に記録できます(余裕分はフィルタ処理のため)。
問題: 最大周波数 4kHz のアナログ信号をデジタル化するとき、最低限必要なサンプリング周波数は?
解答: 2 × 4,000 = 8,000Hz(8kHz)
これは電話音声の標準的なサンプリング周波数と一致します。電話は人間の声の主要成分(約 300Hz〜3,400Hz)を伝送するため、最大 4kHz をカバーできれば十分です。
量子化ビット数 は、1回のサンプリングで何ビットのデータとして記録するかを表します。ビット数が大きいほど、アナログ信号をより細かく(高精度に)表現できます。
| 量子化ビット数 | 表現可能な段階数 | 精度 |
|---|---|---|
| 8 ビット | 2⁸ = 256 段階 | 低(電話音声レベル) |
| 16 ビット | 2¹⁶ = 65,536 段階 | 高(音楽 CD レベル) |
| 24 ビット | 2²⁴ = 16,777,216 段階 | 非常に高(ハイレゾ音源) |
データ量(ビット) = サンプリング周波数 × 量子化ビット数 × 時間(秒)
ステレオ(2チャンネル)の場合は、さらに × 2 します。
問題: 音楽 CD(サンプリング周波数 44,100Hz、量子化ビット数 16ビット、ステレオ)で、1分間の音声データ量は何 MB か?
解答:
(1MB = 10⁶ バイトとした場合。1MB = 2²⁰ バイトで計算するとやや小さくなります)
問題: 電話音声(サンプリング周波数 8,000Hz、量子化ビット数 8ビット、モノラル)の1秒間のデータ量は?
解答:
D/A 変換(Digital to Analog Conversion) は、デジタル信号をアナログ信号に戻す処理です。A/D 変換の逆の操作で、コンピュータで処理したデータをスピーカーから音として出力したり、ディスプレイに映像として表示したりする際に使われます。
| 項目 | A/D 変換 | D/A 変換 |
|---|---|---|
| 方向 | アナログ → デジタル | デジタル → アナログ |
| 処理 | 標本化→量子化→符号化 | 復号化→補間→フィルタリング |
| 利用場面 | マイク入力、センサ値の取り込み | スピーカー出力、モーター制御 |
| 使用する回路 | A/D コンバータ(ADC) | D/A コンバータ(DAC) |
A/D 変換の最も基本的な方式が PCM です。音楽 CD や電話回線で使われている標準的なデジタル音声の記録方式で、標本化→量子化→符号化の3ステップをそのまま行います。
前述の音楽 CD や電話音声の計算は、いずれも PCM 方式のデータ量を求めたものです。
| 規格 | サンプリング周波数 | 量子化ビット数 | 用途 |
|---|---|---|---|
| 電話(G.711) | 8,000Hz | 8ビット | 固定電話・IP電話 |
| 音楽 CD | 44,100Hz | 16ビット | 音楽再生 |
| ハイレゾ音源 | 96,000Hz / 192,000Hz | 24ビット | 高品質音楽 |
FE 試験では以下のパターンが定番です。
パターン1: データ量の計算
パターン2: 必要なサンプリング周波数の算出
パターン3: 量子化段階数の算出
ポイント
A/D 変換 はアナログ→デジタルの変換で、 標本化 (一定間隔で値を取得)→ 量子化 (段階に丸める)→ 符号化 (ビット列に変換)の3ステップ。 サンプリング定理 により、サンプリング周波数は元信号の最大周波数の 2倍以上 が必要(ナイキスト周波数)。不足すると エイリアシング が発生する。 量子化ビット数 n ビットで 2ⁿ 段階の精度。データ量 = サンプリング周波数 × 量子化ビット数 × 時間 × チャンネル数。 D/A 変換 はデジタル→アナログの逆変換。 PCM が A/D 変換の基本方式で、音楽 CD は 44.1kHz / 16ビット、電話は 8kHz / 8ビット。
用語