最近,組み込みプロセサ向けに使われるメモリの種類が,従来よりも多彩化しつつある。従来はほとんどのケースで汎用のシンクロナスDRAMもしくはフラッシュ・メモリを使っていたが,最近はDDR規格のシンクロナスDRAM(DDR SDRAM)やDDR2規格のシンクロナスDRAM(DDR2 SDRAM),あるいはモバイルRAMなどを使うケースも出てきている。組み込みプロセサごとに使用するメモリの概要を踏まえた上で,各種メモリの特徴や採用動向をまとめた。
8/16ビット・マイコンはフラッシュ搭載
それでは,プロセサ別に見たメモリの使用状況を整理してみよう。まずは8ビット・マイコンである。この市場では,急速にフラッシュ・メモリ内蔵製品が盛り上がりつつある。これはパッケージ内部にCPUとフラッシュ・メモリを搭載し,さらに作業用メモリとしてSRAMを集積した形を採っている。プログラムなどはフラッシュ・メモリに格納し,煩雑に書き換える変数領域などはSRAMに保持する(図1)。8ビット・マイコンの用途のほとんどは,このフラッシュ・メモリとSRAMの組み合わせでカバーできるという見方がマイコン・ベンダーでは一般的である。
この組み合わせでカバーできないほど大量のメモリが必要になれば,シンクロナスDRAMを外付けして利用できるようにしたものもある(図2)。ただし,こうした製品はまれ,というよりも16ビット・マイコンや32ビット・マイコンといった上位製品に統合されつつある。ちなみに,8ビット・マイコンに集積するSRAMの容量は,数百~数Kバイト,フラッシュ・メモリでは数K~数十Kバイトの範囲が中心的だ。
16ビット・マイコンにおいても,最近は次第にフラッシュ・メモリ内蔵品が増えてきた。16ビット・マイコンではメモリ空間が1Mバイトまで増えるため,相対的に大量のメモリを必要とする。従来はメモリを外付けにすることが多かったが,昨今のフラッシュ・メモリの大容量化や低価格化に伴い,フラッシュ・メモリを内蔵する品種がだいぶ出てきている。構造的には8ビット・マイコンの例と変わらない(図1)。ただし,フラッシュ・メモリの容量は16Kバイト程度~512Kバイト前後まで大きくなっており,またSRAMの容量も数十Kバイト程度まで拡張されている製品も少なくない。
ちなみに以前の16ビット・マイコンの場合,シンクロナスDRAMやフラッシュ・メモリへのインタフェースを備えることが多かった(図3)。シンクロナスDRAMのインタフェースはほとんどが16ビット幅で66M ~100MHz程度である。フラッシュ・メモリのインタフェースでは,かつては標準的なインタフェース(8ビット幅あるいは16ビット幅)を使う製品が主流だったが,最近になってSPI(serial peripheral interface)に移行しつつある。プリント基板の実装面積削減やパッケージのピン数削減を狙ったためである。
32ビット・マイコンは外付けメモリ必須
マイコンの中で最も製品のバラエティーに富む32ビット・マイコンになると,より大容量のRAMが必要になる。端的に言えば,32ビット・マイコンを使うアプリケーションではほとんどの場合,OSを動かしてその上でターゲットとなるソフトウエアを稼働させる必要性があるからだ。こうなってくると,フラッシュ・メモリ一体型の「大容量フラッシュ・メモリ+小容量SRAM」だけではカバーし切れない。仮に,動作速度を無視してフラッシュ・メモリを使ってOSを動かしたとしても,煩雑な書き換えによってフラッシュ・メモリの劣化が早まる。結果として,商品寿命がかなり短くなってしまう。
32ビット・マイコンでは多くの場合,処理性能が相応に高いことが求められる。従って,CPUコアの動作速度は100MHzを超えることが多々ある。これを充分に生かすためには,キャッシュあるいはスクラッチ・パッドとして使われるSRAM,およびメモリ・コントローラはCPUコアと同じあるいは近い速度で動く必要が出てくる。ところが,これらは入出力コントローラには速すぎることが多い。そこで内部を高速バスと低速バスの2つに分離し,バス間をバス・ブリッジでつなぐという方式が一般的である(図4)。代表例が英ARM Ltd.のCPUコアであるARM7やARM9シリーズに採用されたASB(Advanced System Bus)とAPB(Advanced Peripheral Bus)というバスである。前者がCPUコアとメモリ・コントローラやスクラッチ・パッドをつなぐ高速バス,後者が周辺機器用のバスになり,ブリッジ経由で接続される。その後,ASBはAHB(Advanced Highperformance Bus)に進化し,ARM以外のプロセサでも標準的に利用されるようになってきた。
当初の32ビット・マイコンでは,おおむねシンクロナスDRAMで主記憶は足りた。シンクロナスDRAMがCPUコアの半分の動作速度であっても,適切な設計さえすれば,それほど性能に影響はなかったからだ。シンクロナスDRAMも183MHz品あたりまでは普通に入手できたし,32ビット・マイコンともなると小規模とはいえCPU内部にキャッシュを持つのが普通だったためである。ところがCPUコアの動作速度が400MHzに達するあたりから,シンクロナスDRAMでは十分とはいえなくなってきた。加えて,さらなる性能向上を目指して複数のCPUコアを搭載するマイコンなども登場するにつれ,いよいよメモリの速度が不足してきた(図5)。こうした状況を踏まえ,最近の32ビット・マイコンではDDR SDRAMを採用する例が非常に多くなってきた。また,携帯電話機あるいは多機能な携帯機器などでは,より一層の消費電力低減を求めて,DDR2SDRAMあるいはモバイルRAMなどを採用するケースも出てき始めている。バス幅については,16ビットと32ビットが混在している。
64ビット・マイコンにもなると,元々取り扱うべきデータ量と要求される処理性能がかなり大きい。非常に大量のデータを処理する一部の用途,例えば複写機やプリンター,あるいはエッジ・ルータや通信事業者用の通信制御機器などをターゲットとしている。メモリには以前から複数のシンクロナスDRAMやDDR SDRAMを束ねて使うことが多く,バス幅も64~256ビットまでさまざまである。最近は,DDR2 SDRAMを利用する製品も登場してきた。
次回からは,個々のメモリの特徴や採用動向を紹介する。