PCの持つ計算能力と記憶容量を考えると,[計算負荷を小さくできる],[メモリを消費しない]という意味がいまひとつ分かりにくいのではないかと思われます.
実際,皆さんが使っているパソコンやスマートフォンの能力はおおよそ以下のようなものです.
PC | スマートフォン | マイコン | |
CPU・プロセッサ | Core i5/i7/i9, Xeon, Ryzen | A16 Bionic(ARM系CPU),Snapdragon | 数MHz∼100MHz以上 |
3∼4GHz 4∼8Core | 1.5∼2.5GHz 2∼8Core | ||
メインメモリ(RAM) | 16∼64 GB | 4∼8 GB | 0.5 ∼ 512 kB |
ストレージ(HDD, SSD, EPROM) | 2∼3 TB以上 | 64∼256 GB | 64 kB∼10 MB |
現在では,小さなマイコンであっても,授業で扱うような規模のプログラムでは充分ですので,効率的なコーディングの効果が見えて来ないのも事実なのです.
コンピュータの頭脳は,なんと言ってもCPUである.
ソースコード中に記述した a = b + c;
などの数値演算や, if(i < 0)
などの比較演算・条件分岐は,CPUで行われる.
最新のCPUの動作クロックは,スマートフォンのような小型端末でさえ,数GHz以上となる.
また,1つの半導体パッケージに演算処理ユニットが複数収められ,並列に処理を実行できるマルチコアCPUが一般的である.
CPUが直接処理可能な機械語プログラムは,CPUの製造メーカーや,年代,製品ごとに異なるため,機械語で直接プログラムを書くと使い回しがしにくい.
そこで,機種依存を排したC言語などの高級言語でプログラムを記述して,コンパイラで機械語に翻訳する方法が採用されている.
メモリは,プログラム実行中に数値データ・文字データ,そしてプログラム自身(コードという)を一時的に記憶しておく,いわば作業場所である.
ソースコード中のint i;
や double data[100];
などの宣言により,メモリ内にデータの記憶場所が確保される.
最近のPCでは,少なくとも8GB以上の容量のメモリが搭載されていることが多い.スマホでも少なくとも2GB程度以上のメモリ搭載が一般的である.
実用的なプログラムでは,処理結果を単に画面に表示するだけでなく,何らかの方法でデータを永続的に(=電源を切っても)保存したい.
また,処理に必要なパラメータ・計算条件,入力データなどは,毎回キーボードから打ち込むのではなく,ディスク上から読み込んで処理を行う場合が多い.
コンピュータにおいては,このような機能を実現するハードウエアを補助記憶装置と呼ぶ. これらはディスク,ドライブ,ストレージとも呼ばれる.
補助記憶装置の具体的な例として,ハードディスク(HDD)や,ソリッドステートディスク(SSD), SDメモリ, USBメモリ, Blue-ray, DVD, CDROM(古くは MO, PD, FDD, 磁気テープ, パンチカード・・・)などが挙げられる. この中には,名称に「メモリ」とつくものがあるが,これらも補助記憶装置である.
自動車やスマーホフォンなど,PCに比べて大幅に小型なコンピュータが数多く使われている. このようなハードウエアでは,小さな半導体にプロセッサやメモリ,入出力インターフェースなどがワンチップ化されている.
マイコンと略称で呼ばれるが,「マイクロコンピュータ」,「マイクロプロセッサ」,「マイクロコントローラ」などの呼称があります.
演算機能+いくつかの入出力系があるもので,家電製品や自動車,通信機器など何らかの装置に組み込む用途で使われます.
これに対し,PCはキーボードやマウス,ディスプレイが付けば完結して使うことが可能なものとなっています.
Raspberry Piは小さいながらもデスクトップPCとしての要件を満たす程度の性能を有しているものもあります.
いろいろなマイコンの種類を並べます.
(加藤先生の元データはこちら)
調査時点での情報なので,一部古い情報が残っている可能性がある.
特徴 | 主な開発言語 | 開発環境 | 価格(個人購入) | 外観 |
|
---|---|---|---|---|---|
Arduino | AVRベースのマイクロコンピュータ | C(部分的にC++) | 無償のJAVA | 比較的安価 \1,600∼\8,500 |
![]() |
AVR | RISC 8bitマイクロコントローラ | アセンブラ, C言語 | 無償のアセンブラ Cはgccなど |
安価 \50∼\2,000 |
|
Basic Stamp | PICベースマイクロコンピュータ | Basic | 無償で用意 | やや高価 \2,500∼\4,500 |
|
H8 | 8(16,32)bitマイクロコントローラ 組み込み用 回数制限があるが書き換え可能 |
C/C++言語等 | 有償の専用品(HEW) gcc(クロスコンパイラ) |
比較的安価 \700∼\4,500 |
![]() |
NXP LPC |
ARMマイクロプロセッサベース | C/C++言語 | オフラインコンパイラ(無償) | 安価 ∼\2,000 |
![]() |
STMicro F432KC |
ARMマイクロプロセッサベース | C/C++言語 | クラウド上(無償) オフラインコンパイラ |
安価 ∼\2,000 |
![]() |
mbed LPC1768 |
ARMマイクロプロセッサベース Coretex M3 |
C++言語 | クラウド上 オフラインコンパイラ (いずれも無償) |
やや高価 ∼\7,000 |
![]() |
PIC | 8(16)bitマイクロコントローラ 組み込み用 |
アセンブラ, C言語 | 無償の開発環境(MPLAB) | 安価 \50∼\2,000 |
![]() |
Raspberry Pi, | マイクロコンピュータというより,小型PC Linuxマシンとして使用可能 |
アセンブラ, C言語, python |
gcc 他 | やや高価 \5,000∼\15,000 |
![]() |
SuperH | RISCチップ 32bitマイクロコントローラ(SH-2など) 32bitマイクロプロセッサ(SH-4, SH-Mobilleなど) |
C/C++言語等 | 有償の専用品 gccとクロスコンパイラ |
比較的安価 \900∼\3,000 |
|
Z80 | 8bitマイクロプロセッサ 昔はパソコン,今は組み込み用 |
アセンブラ, C言語 | 有償の専用品 | 比較的安価 ¥1,000∼\1,500- |