後方見聞録

基本的には自分のための備忘録です

メモリについて

はじめに

このブログについて
良ければ目を通してください

きっかけとか

ROMとかRAMとかSRAMDRAMやら前勉強したけどちゃんと覚えてねーなぁとか思ってちょっと調べてると、ちょっと前にtwitterで#メモリ32GBってタグでRAM・ROM・ストレージ云々で使い分けとかが話題になってたのも見て、そこら含めて改めて確認しなきゃと思った

メモリの種類

よくある初心者向けの解説として

  • 書き換えられるけど電源を消すと中身が消えるRAM
  • 書き換えられないけど電源消しても消えないROM

ってのがあるけど、歴史的経緯とか技術の発展とかでややこしい所がある

まず各用語について

下記な経緯とかあってあまり使われていない用語もあるが、本来はこういう対義語の関係なはずで、それぞれは別の概念

  • アクセス方法での分類
    • Sequential Access Memory(SAM)
        先頭のデータから順番にしかアクセスできないメモリ(順次アクセス)
    • Random Access Memory(RAM)
        任意のアドレスに自由にアクセスできるメモリ
  • 書き換え可否での分類
    • Read Only Memory(ROM)
        書き換え不可能なメモリ
    • Read Write Memory(RWM)
        書き換え可能なメモリ
  • 揮発性での分類
    • Volatile Memory(VM) 揮発性メモリ
        電源供給を行わないと書き込まれたデータが消えるメモリ
    • Non Volatile Memory(NVM) 不揮発性メモリ
        電源供給を止めてもデータが消えないメモリ

呼ばれ方と歴史的経緯について

どこまであってるかわからんけど

  1. 最初に使われてた記憶媒体は紙テープやらパンチカードやら、大体SAMだった
  2. それに対して好きな場所にアクセスできるメモリ=RAMが出てきた 大抵揮発性
  3. 一方不揮発性な代わりに書き換え不可能なROMってのがあって
  4. ROMに対して、本来RWMと呼ばれるべきものがRAMと呼ばれるようになった
    (大体のROMがランダムアクセスできず、RWMの大体がランダムアクセスだったので?)
  5. で、ROMの技術が進歩して書き換え可能なもの(PROMとか)が作られたけど結局これもROMと呼ばれた

結局今は、ランダムアクセス出来て書き換えできて不揮発なフラッシュメモリがあったりする

細かい種類について

SRAM DRAMとか PROM EPROM EEPROMとか フラッシュメモリはNOR型とNAND型とか
そのうち図とか作りたいけど世の中に沢山転がってるのでとりあえずそれを見てくださいって感じ

記憶装置としてのメモリ

PCのデータを保存する上で、高速で大容量で不揮発性で安価なメモリがあれば素敵だが、色々トレードオフになっていて難しい
ので役割ごとに色々種類分かれている

  • 主記憶装置(メインメモリ)
    • CPUに直接つながってるやつ
    • アクセス速度を最優先
    • その代わりに揮発性で容量単価が高いもの
  • 補助記憶装置(ストレージ)
    • データを保存しておくやつ
    • 不揮発性で、出来るだけ容量が大きい(容量当たりの単価が安い)
    • その代り低速

まとめ

フラッシュはどっちなんだ問題

  • 書き換え可能な点からROMじゃないからRAMと言う人もいる
  • ROMの発展であるフラッシュEEPROMの一種なのでROMと言う人もいる
  • スマホ内蔵の補助記憶装置=ストレージとして使われているフラッシュメモリを、上の理由からか単にROMと呼んでる時がある

ROMの延長で書き換え可能なものが出来た時にそれもROMと呼んだり、RWMなメモリという意味でRAMという名称を使うようになったのでややこしくなっている って話で
今のメモリはROM(と呼ばれている物)でもだいたいランダムアクセスできるし
さらにこれからは不揮発性のRAMが実用化され始めているのでますますややこしいよね