pulpul 日本の試験

プロジェクトマネージャ 概念書 · 組込み・コンピュータシステム

主記憶の構成と管理

主記憶は、CPU が実行するプログラムと処理対象のデータを格納する記憶装置であり、CPU が直接読み書きできる記憶領域である。記憶素子の種類、記憶領域の割当てと回収の方式、アクセスを並列化する仕組みという三つの観点で整理すると理解しやすい。以下では、それぞれの原理と判断の基準、試験で区別すべき用語を順に述べる。

記憶素子の仕組みと特徴

主記憶には主に DRAM が用いられる。DRAM はコンデンサに蓄えた電荷でデータを保持するため、記憶セルをトランジスタ1個とコンデンサ1個で構成でき、集積度を高めやすい。その結果、ビット当たりの価格を低く抑えられ、PC の主記憶として広く使われる。

ただし電荷は時間とともに失われるため、電源が入っている間も定期的なリフレッシュ動作が必要になる。この点が、リフレッシュを必要としない記憶素子との大きな違いである。

一方、SRAM はフリップフロップでデータを保持するため、リフレッシュが不要で動作が速い。反面、1ビット当たりの回路が複雑になり、集積度を上げにくく単価も高くなる。そのため SRAM はキャッシュメモリのように高速性が優先される場所に使われ、大容量の主記憶には DRAM が選ばれる。

また DRAM は揮発性メモリであり、電源を切るとデータは失われる。フラッシュメモリのような不揮発性メモリとは、この点で本質的に異なる。

記憶領域の割当てと回収

プログラムの実行時には、主記憶上の領域を必要に応じて割り当て、不要になった領域を回収して再利用する管理が必要になる。動的に確保されるヒープ領域では、プログラムから参照されなくなったオブジェクトを自動的に回収するガーベジコレクションが用いられる。利用者が明示的に解放しなくても領域が再使用できる点が、この方式の利点である。

関数や手続きを再帰的に呼び出す処理では、呼出しのたびにレジスタや変数の内容を退避しておく必要がある。後から呼び出された処理ほど先に終了するため、退避した内容は後入れ先出し(LIFO)の順に取り出すのが適切である。先入れ先出し(FIFO)や、使用頻度・使用時期に基づく置換え方式は、この目的には合わない。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む