MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

組み込みシステムにおけるメモリの基礎知識

目次

[:contents]

はじめに

組み込みシステムにおいて、

メモリは重要な要素であると同時に、

悩みの種でもあります。


そんなメモリにも、

様々な種類があり、特徴があります。


今回は主に組み込みに使用されるメモリの

種類と特徴を簡単にまとめたいと思います。

メモリとは、

メモリとは、情報を保存する記憶装置です。

主記憶装置 - Wikipedia

CPUによる計算結果や、

プログラムの実行ファイルなどを保存する場所になります。


一般的に、磁気を使ってデータを保存するハードディスクとは異なり、

電気的にデータを保存する要素をメモリーと言うようです。

メモリの分類

メモリは大まかに下記の様に分類することができます。



それぞれのメモリについて説明していきたいと思います。

ROMとRAMとハイブリット

RAMはRandom Access Memotryの意味で、

データの読み書きを頻繁に行うことができるメモリです。

しかし、このメモリは電源が切れると

記憶内容が失われてしまうという特徴があります。

(データの揮発性)

一般的にこのRAMは、

CPUの計算結果などの一時データを保存する用途で使用されます。


一方、ROMはRead Only Memoryの意味で、

データの読み込みは頻繁に実施することができますが、

データの書き込みは頻繁に行うことができないメモリです。

ROMはデータの書き込みは頻繁にはできませんが、

電源が切れてもデータが保持されるという特徴があります。

(データの不揮発性)

一般的にこのROMは、実行するプログラムファイルの保存や、

電源が切られても保存しておきたいデータの保存などに使用されます。


最後にハイブリットは、RAMとROMの両方の特徴を有した

メモリで頻繁に書き込むことが出来る上、

電源が切れてもデータが保持されるといった特徴を持ちます。


RAMメモリ:SRAM,DRAM

RAMメモリは大きく分けて、

SRAMとDRAMの二種類にわけることができます。


SRAMはStatic RAMの略で、

アクセスの速度が高速ですが、

値段が高価で、記憶容量も小さい(kBオーダ)という特徴があります。


値段が高価で、容量も小さいですが、アクセスの速度が早いため、

主にCPUの計算時に頻繁にアクセスするデータを保存する

キャッシュメモリとして使用されます。

ハードウェアとしては、CPUチップの中に設置されることが多いです。


一方、DRAMはDyanamic RAMの略で、

値段は安く、記憶容量も大きい(MB-GBオーダ)ですが,

データのアクセス速度が遅いという特徴があります。

DRAMはそこまで頻繁にアクセスしないデータを保存する

メインメモリとして使用されることが多いようです。

また、DRAMは1秒以下の周期で、

電源が安定した状態でもデータが消えてしまうことがあるため、

DRAMコントローラというもので、周期的にメモリを初期化する必要があります。

ハードウェアとしては、CPUとは別の部品として構成されます。


ROMのメモリ: マスクROM,PROM,EPROM

マスクROMは最も古典的なROMです。

マスクROMは、チップの製造前に書き込むデータを準備する必要があり、

一度製造すると、データを書き換えることができません。

マスクROMの特徴として、値段が安いということがあります。


PROMはProgrammable ROMの意味で、

プログラム可能なROMのことです。

購入した時は、データは書き込まれていませんが、

デバイスプログラマというツールを使って、

PROMのピンに電流を流すことで、データを書き込むことができます。

PROMは一度データを書き込むと、二度とデータを書き換えることができません。

値段はマスクROMよりも高価になります。


EPROMは、Erasable Programmable ROMの略で、

PROMのデータ削除機能が付いたROMです。

チップについた窓に紫外線を当てることで、

書き込んだデータを削除することができ、

再びデータを書き込むことができます。

しかし、値段はPROMよりもより高価になります。


ハイブリットのメモリ:E2PROM, NVRAM,フラッシュメモリ

E2PROMは、Electrically Erasable Programmable ROMの略で、

電気的にデータを削除できるROMです。

機能はPRORMに似ていますが、電気的にデータを消すことができるため、

データの一部分だけを変更することができます。

その代わり、値段は高価になります。


フラッシュメモリは、E2PROMの一種ですが、

データの削除をブロックごとにすることにより、

構造を簡略化したROMです。


その結果、値段が比較的安くなり、

電源が切れてもデータは保持され、

データのアクセスも早いという良い特徴を複数有しています。

(データの書き込みに関しては、遅いです)

その結果、最近の組み込みでは

このフラッシュメモリが採用されるのが多くなってきています。


最後にNVRAMは、Non Volatile RAMの略で、

不揮発性を持つRAMのことです。

SRAMにバッテリーによる電力バックアップを搭載することで、

RAMでありながら、電源オフ時においてもデータを保持できるようにしています。

まだ基本はSRAMであるので、

データの書き込みはE2PROMやフラッシュメモリよりもかなり高速になります。

しかし、バッテリー機能を有するため、値段はかなり高価です。


参考資料