#author("2023-11-02T22:56:25+09:00","default:k1rou","k1rou") #author("2023-11-05T19:21:27+09:00","default:k1rou","k1rou") *メモリ とは [#m0c82151] -[[IC]](集積回路)で構築されている *半導体メモリ [#wb619315] **半導体メモリ の種類 [#e5ac1c62] ***ROM [#x8e8dba3] -Read Only Memory -不揮発性 ***RAM [#of0f2335] -Random Access Memory -揮発性 **ROM の種類 [#y57a6ad6] ***マスクROM [#q4b4a86d] -書込み・消去が不可 ***PROM [#h569e6a7] -Programmabe ROM -書込み可能(1回のみ)、消去は不可 ***EPROM [#xb324352] -Erasable PROM -書込み・消去が可能(紫外線照射で全消去) ***EEPROM [#u2cc8060] -Electrically EPROM -書込み・消去が可能(電圧で部分消去) ***フラッシュメモリ(フラッシュROM) [#g1e69240] -書込み・消去が可能(電圧で全消去、部分消去) ※EEPROM の一種 -NAND型 --NOR型より書き込みが高速、集積度が高く安価に大容量化が可能 --主な用途:USBメモリ、[[SSD]]、メモリーカード -NOR型 --NAND型より読み出しが高速 --主な用途:[[ファームウェア]]、[[BIOS]]の格納 ***FeRAM [#q78a7aaa] -Ferroelectric RAM -強誘電体メモリ -構造がDRAMに似ている -読み出しと書き込みが高速(読み出しはDRAM並み) -フラッシュメモリより書き換え可能回数が多い -フラッシュメモリより消費電力が低い ***相変化メモリ [#o750afa5] -結晶状態と非結晶状態の違いを利用してデータを保存する **RAM の種類 [#e97bdb81] ***DRAM [#l379558a] -Dynamic RAM -メモリセルの構成:コンデンサ、MOSトランジスタ -リフレッシュ動作:必要 -SRAMとの比較:大容量、安価、低速、集積度(高)、構造(簡単) -主な用途:[[主記憶装置]] ***SRAM [#o6e9e772] -Static RAM -メモリセルの構成:フリップフロップ回路 -リフレッシュ動作:不要 -DRAMとの比較:小容量、高価、高速、集積度(低)、構造(複雑) -主な用途:レジスタ、キャッシュメモリ *メモリの用途 [#b3886283] **レジスタ [#tb9b2472] -[[CPU]]内に配置するメモリ **主記憶装置 [#n2a4f57f] -[[補助記憶装置]]に記録されているプログラムやデータは主記憶装置に読み込まれる -[[CPU]]は主記憶装置に読み込まれたプログラムの命令を読み込んで実行する -[[CPU]]による命令の実行により、主記憶装置のデータの読み込みや書き込みが行われる **キャッシュメモリ [#e835ed1c] -[[CPU]]と主記憶装置の間に配置するメモリ -複数設置される場合、CPUに近い方が1次キャッシュ --1次キャッシュ --2次キャッシュ -制御方式 ※主記憶装置に反映する方式 --ライトスルー方式 ---キャッシュメモリへの書き込みと同時に書き込む --ライトバック方式 ---キャッシュメモリへの書き込み時は書き込まず、キャッシュメモリからデータが追い出される際に書き込む -格納するものを分けることがある --命令キャッシュ --データキャッシュ **ディスクキャッシュ [#e38a4a69] -[[主記憶装置]]と[[補助記憶装置]]の間に配置するメモリ -磁気ディスクに内蔵したIC[[メモリ]]を磁気ディスクへのキャッシュとして扱う高速化の手法 *メモリに関連する技術 [#ya183ea9] **メモリインタリーブ [#wdcdbe37] -CPUから主記憶装置へのアクセスを擬似的に高速化する手法 -主記憶装置をバンクと呼ばれる単位に分割して並列でアクセスする高速化のための手法 **スワッピング [#d7f233f6] -主記憶上で実行状態のプログラムのうち、実行待ち状態が続いているようなものを補助記憶の領域に退避させることで空いた領域に、他のプログラムを読み込んで実行させることで、主記憶の領域を効率的に活用する手法 -スワップ --スワッピングのために確保された補助記憶上の領域 --一般的に、主記憶の容量の2倍の領域を確保する -スワップアウト --主記憶上のプログラムをスワップに退避させること -スワップイン --スワップに退避されているプログラムを主記憶に読み込むこと **仮想記憶管理 [#uc0aac57] -補助記憶を使って主記憶の物理的な容量を超えたアドレス空間を利用できるようにする技術 -仮想アドレス空間 -論理アドレス空間 ***仮想記憶管理の方式 [#l016afb3] -ページング方式 --仮想アドレスと実アドレスの対応表(ページテーブル)を使ってアドレス変換を行う --ページフォールト ---プログラムの処理に必要なページが主記憶に存在しなかった時のこと ---ページフォールト割り込みにより、補助記憶から該当ページを主記憶に読み込まれる --ページイン ---ページを補助記憶から主記憶に読み込むこと ---ページインの手法:デマンドページング、プリページング --ページアウト ---ページを主記憶から補助記憶に書き出すこと --スラッシング ---プログラムの多重度の増加に対して主記憶の容量が不十分な場合に発生する、ページング処理の増加によりCPU使用率が極端に減少する現象のこと -セグメント方式 **スタックとヒープ [#a8730a6a] -「[[スタック]]」参照 -「[[ヒープ]]」参照 ***スタック領域 [#oe4340a3] -LIFO -プログラムを起動すると割り当てられる領域 -プログラム内部で宣言した変数の割り当て -戻り番地の格納 ***ヒープ領域 [#j0ec667c] -動的に確保可能なメモリ領域 **メモリの誤り制御 [#o84dd8a2] -ハミング符号が使われる。 ***[[ECC]]メモリ [#h0610bc8] -ハミング符号を用いた[[誤り制御]]を実装したメモリのこと -サーバなどで使われる *関連用語 [#pf5e380b] -静的メモリ領域 -[[コールドブート攻撃]] -[[ハードウェア]] -[[割り込み]] -[[BOF攻撃]] -[[PLD]] (Programmable Logic Device)