主記憶の容量は何を基準に決めれば良い?
Q:マイコンを選択するときには、メモリ容量も重要だと聞きました。メモリ容量ってどれぐらいあれば良いのですか?
A:メモリは、コンピュータの中でプログラムやデータを記憶するための場所です。メモリ容量は、それぞれの場所に記憶可能な情報の最大量を示します。コンピュータの中では情報をバイト単位で扱うことが多いので、メモリ容量もバイト単位で表示するのが一般的です。コンピュータにはいろいろなメモリが使われており、それぞれについてメモリ容量の意味が異なります。
まず、コンピュータで一番重要なメモリとして主記憶(メイン・メモリ)があります。コンピュータの基本的な仕事とは、主記憶に置かれた機械語プログラムを、1つずつ取ってきて実行することです。そのコンピュータが実行できるプログラムの大きさは、主記憶の容量と密接な関連があります。
Q:実行したいプログラムの大きさに合わせて、主記憶の容量を選べば良いということですか?
A:マイコンの場合には、そう言って良いでしょう。マイコンの主記憶にはROM(マスクROMやフラッシュ・メモリ)が用いられていて、実行したい機械語プログラムを事前に固定的に書き込んでおきます。フラッシュ・メモリならプログラムの書き換えはできますが、その場合もコンピュータを動作させる前に書き換えは済ませておきます。動作中にプログラムを移動したり書き換えたりすることは、基本的にはありません。
したがって、マイコンの品種を選ぶときには、実行したいプログラムの大きさを見積もって、それが収まるROM容量の品種を選びます。必要以上に大容量のROMを内蔵していても無駄になります。
Q:ROM容量は大きいほど良いというわけではないのですね。
A:そうです。そのために、マイコンでは、小容量から大容量までROM容量を変えた品種をきめ細かく用意している製品が多いですね。例えば、テキサス・インスツルメンツ(TI)の16ビット超低消費電力MSP430™マイコンでは、最小512バイト(0.5Kバイト)から最大512Kバイトまで、内蔵フラッシュ・メモリの品種を取りそろえています。実際に開発したプログラムのサイズが大きくて入りきらない場合でも、大抵は1つ上のサイズの品種を選ぶことができます。
ファミリ | 内蔵プログラムメモリ | 特長 |
---|---|---|
MSP430F1x | フラッシュ1KB〜60KB | 8MHz、ベーシック |
MSP430F2x/F4x | フラッシュ1KB〜120KB | 8MHz〜16MHz、高機能 |
MSP430G2x | フラッシュ0.5KB〜56KB | 16MHz、バリュー・ライン |
MSP430i2x | フラッシュ16KB〜32KB | 16MHz、拡張温度範囲、産業用 |
MSP430F5x/F6x | フラッシュ8KB〜512KB | 25MHz、高パフォーマンス |
Q:なんと1000倍もの違いがあるのですね。
A:同じTIでも、高性能32ビット・マイコンでは全体にROM容量は大きくなり、最小8Kバイトから最大4Mバイトまでの内蔵フラッシュ・メモリの品種があります。
マイコンのデータ・メモリ
Q:マイコンの内蔵メモリは、ROMだけなのですか?
A:マイコンは、プログラムを保存するためのROM(フラッシュ・メモリを含む)とは別に、RAMも内蔵しています。プログラムを実行しているときには、データを書き込んだり読み出したりしたいことが頻繁にあります。そのとき、機械語命令でアドレスを指定して直接アクセスできるのは主記憶の範囲なので、大抵のマイコンは主記憶の一部として書き換え自由なRAMを内蔵しています。このようなRAMは、データ・メモリとか、ワーク・メモリ(作業用メモリ)と呼ばれることもあります。
Q:フラッシュ・メモリでも書き換えできるのではないですか?
A:フラッシュ・メモリは書き換え可能です。しかし、消去するときはブロック単位で一括消去しなければならないので、1バイトずつ自由に書き換えることができません。さらに、消去や書き込みにはとても時間がかかるので、プログラムの実行速度が大幅に低下してしまいます。加えて、書き換え回数の上限があるので、プログラム実行時に自由に書き換えるような使い方をするのは困難です。フラッシュ・メモリをROMの仲間に分類しているのは、そういう理由からです。
マイコンの主な用途である機器制御プログラムでは、それほど大量のデータは扱いません。大抵のマイコンでは、数十バイトから数百Kバイト程度のSRAMをデータ・メモリとして内蔵しています。
携帯情報機器やマルチメディア機器のように、組み込み機器でも特に大きなデータを扱いたい場合は外付けRAMが必要になります。その場合は、主記憶として大容量のDRAMを外付けして、データだけでなく、プログラムもDRAM上で実行する方がいろいろと有利になります。その場合には、プロセッサタイプのマイコンを使用し、全体の構成はパソコンと同じようになります。
パソコンのメモリ容量
Q:パソコンの場合は、マイコンとは違うのですか?
A:パソコンの主記憶にはいつでも自由に書き換えできるRAM(一般的にはDRAM)が用いられていて、プログラムはハードディスクなどの外部記憶に置いておきます。パソコンを起動すると、まずコンピュータ全体を制御する管理プログラムであるOSがRAMに転送されて実行されます。以後はユーザーが実行したいアプリケーション・プログラムを選択するたびに、OSが自動的にそのプログラムをRAMに転送して実行します。実行時に必要なデータもRAM上に置きます。大容量のRAMの上でプログラムやデータを自由に扱うことができます。
アプリケーションには、サイズが小さいものから大きいものまでさまざまなものがあります。最近ではマルチタスクOSが使われていて、複数のアプリケーションを同時に起動して実行できるので、アプリケーションを次々に起動していけば合計のプログラムサイズはどんどん大きくなります。扱いたいデータのサイズも、アプリケーションによって大きく変わります。それらを全て扱える容量のRAMを用意するには、とてもコストが高くなってしまいます。そこで、パソコンでは、実際のRAMの容量(最近のパソコンでは物理メモリと呼ぶ)よりも大きなプログラムやデータを扱う方法が工夫されています。例えば、昔は大きなサイズのプログラムを分割して少しずつRAMに展開するオーバレイの手法が用いられ、最近では大容量のハードディスクなどを仮想的に主記憶として扱える仮想記憶の手法が用いられています。
これらの手法を使うと起動速度や実行速度が低下するので、RAM容量を大きくすればパソコンの動作が軽く、快適になると言われています。その点で、パソコンの場合はRAM容量が大きいほど良い、と言うこともできるでしょう。
- 低消費+高性能「MSP432」32ビット・マイコン
- 16ビット超低消費電力マイコンMSP430ファミリ
- MSP430 LaunchPadバリュー・ライン開発キット
- 新産業用マイコン:「MSP430I2040」
- 新FRAMマイコン:「MSP430FR5969」
- TIのマイコン製品の詳細
- 便利なツールの購入はこちらから:TI store
※MSP430およびMSP432はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。
提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2016年3月31日
Copyright © ITmedia, Inc. All Rights Reserved.