マイコンのプログラムはどこにある
Q:マイコンを使うということは、プログラムを作って動かすことなのですね。では、作ったプログラムはマイコンのどこにあるのですか?
A:マイコンは、大きく分けて、CPU(中央処理装置)、メモリ(記憶装置)、I/O(入出力装置)という3つの部分からできています。このうち、メモリがプログラムを置くところで、CPUがプログラムを実行するところです。ひと言で言うと、マイコンは「メモリに置いたプログラムを、CPUが自動的に実行する装置」です。これは、マイコンに限らず、PCでもスーパーコンピュータでも、基本的には同じです。
その中で、さまざまな機器の制御に使われている「シングルチップ・マイコン」「マイクロコントローラ」と呼ばれるものは、CPU、メモリ、I/Oの3つの要素をすべて1個のLSIにまとめています。小型で安価なだけでなく消費電力もとても小さいので、たとえば電子体温計のような装置を、長期間電池の交換なしに使い続けることができます。テキサス・インスツルメンツ(TI)のMSP430シリーズは、特に小型、超低消費電力かつアナログ計測に強いマイコンとして知られています。
さて、最近ではDVD-ROMなどの光学メモリ、ハードディスクなどの磁気メモリ、SSDやUSBメモリ、SDカードなどの半導体メモリというように、さまざまな記憶装置が身近で使われています。プログラムを置いて実行するためのメモリは、特にメイン・メモリ(主記憶装置)と呼ばれて、他の記憶装置と区別されます。
上で説明したCPU、メモリ、I/Oという3分類でいう「メモリ」とは、プログラムを置いて実行するためのメモリ、すなわちメイン・メモリを指します。DVD-ROM、ハードディスク、SSD、USBメモリ、SDカードなどはいずれもI/O(入出力装置)の一種として扱われており、外部記憶装置と総称されます。
マイコンにはどんなメモリが必要か
PCでは、ユーザーがさまざまなアプリケーション・プログラムを自由に取り換えて実行できるように、いろいろな種類の外部記憶装置が活用されています。一方、電子体温計のように、マイコンを組み込んだ機器(一般に組み込み機器と呼ばれる)の場合、電源を入れれば決まったプログラムを実行するだけで、ユーザーが自由にアプリケーション・プログラムを取り換えたりすることはありません。そのため、外部記憶装置を持たない機器が多く、メモリとしてはマイコンに内蔵されたメイン・メモリだけしか使われていない機器も少なくありません。
また、電源をオフにしたり、電池が消耗してしまったときにプログラムが消えてしまっては困ります。半導体メモリには、自由に読み書きできる代わりに電源を切ると内容が消えてしまうRAM(DRAM、SRAM)と、書き込みは自由にできない代わりに電源を切っても内容が消えないROMがあります。一般のマイコンに内蔵されているメイン・メモリは、基本的にROMのタイプです。
ただし、ROMといってもまったく書き込みができなくても困ってしまいます。少なくとも、自分でプログラムを開発した後は、でき上がったプログラムをマイコンに書き込まなければ、動作させることができません。以前は、1回だけ書き込めるが消去や書き換えができないPROM(ワンタイムPROM)や、ガラス窓を通して紫外線を照射して消去できるUV-EPROMというようなタイプが用いられていましたが、最近では電気的に複数回書き換え可能なフラッシュ・メモリが広く使われています。
フラッシュ・メモリは、消去にやや時間がかかること、ブロック単位で一括消去が必要なこと、書き換え回数が無制限ではないことなどから、RAMのように自由に読み書きはできません。ただ、初期のフラッシュ・メモリは書き換え回数が1000回程度と少なかったのですが、最近では10万回以上のものもあり、SSD、USBメモリ、SDカードなどの外部記憶装置にも広く使われています。
TIのMSP430シリーズでも、ほとんどの品種がメイン・メモリとしてフラッシュ・メモリを搭載しています。さらに、MSP430シリーズでは、電源をオフにしても内容が消えず、かつDRAMやSRAMのように1バイト単位で自由に読み出し、書き込みができ、超低消費電力で動作するFRAMを採用した製品もあります。
ファミリ | 内蔵プログラムメモリ | 特長 |
---|---|---|
MSP430F1x | フラッシュ1KB〜60KB | 8MHz、ベーシック |
MSP430F2x/F4x | フラッシュ1KB〜120KB | 8MHz〜16MHz、高機能 |
MSP430FRxx | FRAM 4KB〜128KB | 8MHz〜24MHz、消費電力が極小 |
MSP430G2x | フラッシュ0.5KB〜56KB | 16MHz、バリュー・ライン |
MSP430i2x | フラッシュ16KB〜32KB | 16MHz、拡張温度範囲、産業用 |
MSP430F5x/F6x | フラッシュ8KB〜512KB | 25MHz、高パフォーマンス |
表 フラッシュ・メモリ内蔵とFRAM内蔵のMSP430シリーズの例 |
PCのメモリはマイコンとは違う
Q:PCのプログラムも、マイコンと同じようにフラッシュ・メモリに書き込まれているのですか?
A:これは、「そうです」とも「違います」とも言えます。PCの場合は、プログラムといってもただ1つではなく、たくさんの種類のプログラムが組み合わされて動作しています。そして、いろいろなプログラムを自由に取り換えて使用できるように、構成が工夫されています。
PCでは、とてもサイズが大きいプログラムを実行したいことが多いので、メイン・メモリはCPUに内蔵されず、大容量のDRAM(DIMMとかSO-DIMMというモジュール型のメモリ)を装着して使います。PCの主なプログラムにはOS(WindowsやLinux)とアプリケーションの2種類がありますが、どちらも基本的にはハードディスク(またはSSD)にインストールして使います。ただし、ハードディスク(またはSSD)上で直接実行されるわけではなく、必要なときに、必要な部分だけをメイン・メモリにコピーして動作させます。必要なくなればメイン・メモリ上のプログラムは消去され、他のプログラムに取り換えられます。
さらに、PCには、OSやアプリケーションより前に、電源を入れると最初に起動するプログラムとして、BIOS(基本I/Oシステム)と呼ばれるプログラムがあります。BIOSは、昔は書き換えできないROMを使っていましたが、最近ではフラッシュ・メモリが使われています。電源を入れた直後には、DRAMには実行できるプログラムが入っていないので、最初はフラッシュ・メモリのBIOSが起動します。次に、BIOSの内容がDRAMにコピーされて、それからOSがハードディスクからDRAMに読み込まれます。
■MSP430 超低消費電力マイコン・ファミリ
■MSP430 LaunchPadバリュー・ライン開発キット
■新FRAMマイコン:「MSP430FR5969」
■TIのマイコン製品の詳細
■TIのツールの購入はこちらから:TI eStore
※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。
提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2015年3月31日
Copyright © ITmedia, Inc. All Rights Reserved.