IoT等が当たり前になる中で高精度、高機能化が進んでいます。特にセンサ、機械学習や通信といった機能を実装するためにはより多くのメモリ(特にRAM)が必要となります。
一般的なIoT機器の場合、プログラムをROMから読み出して、センサ情報を処理して無線で送信するといった流れとなります。センサの高機能化、高性能化が進むとセンサのデータを取りこぼすことなく保存するためにより高速で大きなメモリが必要となります。一方でマイコンのメモリは容量が限られており、大容量マイコンで内蔵RAMは1MB程度、一般的なマイコンで数100kB程度です。外部電源から供給されるパソコンや測定機器ではSDRAMといったメモリを外部につけることでメモリを増やしていますが、電池駆動を想定したIoT機器では消費電力の大きなSDRAMを載せることは困難です。今回は組み込み系でQSPIといった簡単に接続可能なシリアルメモリを比較してみました。
近い条件で比較できるように容量を4Mbit周辺のシリアルメモリで比較しました。21年1月時点のDigikey、Mouserを中心とした価格と入手可能な部品(製造完了でない)をリスト化しています。
方式 | 容量 | 型式 | 通信バス | 通信クロック | 価格 | 書換回数 | 書込待機 | 揮発性 |
SRAM | 4Mbit | IS62WVS5128FBLL | QSPI | 20MHz | ¥599 | Infinite | 不要 | 揮発 |
PSRAM | 64Mbit | PSRAM 64MBIT SPI 133MHZ | QSPI | 133MHz | ¥194 | Infinite | 不要 | 揮発 |
MRAM | 4Mbit | MR25H40DF | SPI | 40MHz | ¥1,347 | Infinite | 不要 | 保持 |
FRAM | 4Mbit | CY15B104QI-20LPXC | SPI | 40MHz | ¥2,413 | 1x10^15 | 不要 | 保持 |
FRAM | 4Mbit | MB85RS4MTPF | SPI | 40MHz | ¥855 | 1x10^13 | 不要 | 保持 |
EEPROM | 4Mbit | M95M04-DRMN6TP | SPI | 10MHz | ¥256 | 4x10^6 | 必要 | 保持 |
ReRAM | 4Mbit | MB85AS4MTPF | SPI | 5MHz | ¥555 | 1.2x10^6 | 不要 | 保持 |
nvRAM | 1Mbit | CY14B101Q2A | SPI | 40MHz | ¥1,083 | 1x10^6 | 必要 | 保持 |
NOR FLASH | 4Mbit | AT25SF041B-SSHB-T | QSPI | 108MHz | ¥32 | 1x10^5 | 必要 | 保持 |
NAND FLASH | 1Gbit | MT29F1G01ABAFDWB | QSPI | 133MHz | ¥296 | 1x10^5 | 必要 | 保持 |
センサのデータを取りこぼすことなく保存するようなRAM的な使い方を想定すると、耐えられるものはSRAMやPSRAMはもちろんですがほぼ無限に近いMRAM、FRAMとなります。それ以下はRAM的な使い方をする場合、速度、書き換え回数を考慮した設計が必要となります。設定データ等、書き換えの少ないデータの場合はEEPROM、nvRAM、Flashメモリ等でも十分ですが、センサ測定毎に書き換える場合、すぐに寿命になります。例えば、1秒ごとに測定して書き込む場合、1日で86400回書き換えが発生します。Flashでは10日、EEPROMの場合は100日、3か月程度で寿命となります。実際は書き込みブロックを変えるといった処理で書き換え箇所が集中しないようにして、寿命を延ばします。ただ、組み込み系の場合、そこまで管理しない、できない場合も多々あります。
SRAMやPSRAMの代わりにMRAM,FRAMを使用すると不揮発メモリのため、毎回、RAMに初期化の処理を展開する必要がなくなり、起動時間短縮のメリットがあります。ただ、価格がまだ少し高く、容量も4Mbit、8Mbitが最大で限られているのが難点です。今後のMRAM,FRAMの大容量化、低価格化に期待です。