メモリの構成と性能
要点と定義
メモリは揮発性・不揮発性、アクセス速度、容量、コストなどの特徴で選びます。DRAMはコンデンサに蓄えた電荷で記憶する揮発性メモリで、定期的なリフレッシュが必要です。主記憶に使われます。SRAMはリフレッシュを必要とせず、キャッシュなどに使われます。この違いが、DRAMの特徴を選ぶ判断に必要です。
メモリインタリーブは、主記憶を複数のバンクに分け、連続アドレスへのアクセスを分散させる方式です。あるバンクの処理中に別のバンクへアクセスを重ねられるため、連続データの転送効率を高めます。効果の中心はスループット向上で、個々のアクセス遅延の短縮や故障時の復元を保証するものではありません。この特徴が方式の目的を選ぶ判断に必要です。
キャッシュの平均アクセス時間は、ヒットとミスの確率、それぞれに対応する時間から求めます。ミス率を r、ヒット時の時間を x、ミス時に主記憶へアクセスする時間を y とし、キャッシュ管理のオーバヘッドを無視するモデルでは、平均は「(1−r)×x+r×y」です。ヒット率が 1−r となることと、容量比ではなく発生確率で重み付けすることが式を選ぶ鍵です。
別のモデルとして、キャッシュの確認時間を x、ヒット率を h、ミス時に追加される主記憶アクセス時間を m とすると、実効アクセス時間は「x+(1−h)×m」です。すべてのアクセスでキャッシュ確認時間がかかり、ミス時だけ主記憶時間が追加されるためです。設問で与えられる時間の定義に合う式を選ぶ必要があります。
主記憶のデータ誤りを検出して訂正できる方式として、ECCがあります。誤り訂正ができる方式かどうかを問われたとき、この機能が選択判断に必要です。
過去の出題で扱った補足として、LRUは最後に参照されてから最も長く使われていないブロックを置換する方式です。置換対象を決める際は、ロード時刻や参照回数ではなく、最後の参照時刻を比べます。この基準が、指定されたブロックがLRUで選ばれるかの判断に必要です。
過去の出題で扱った補足として、圧縮データの転送と展開にかかる時間を計算するときは、圧縮後のデータ量を使い、処理が同時か順次かという条件を反映します。例えば、15 Mバイトのデータを圧縮率40%で格納すると圧縮後は6 Mバイトです。これを毎秒20 Mバイトで転送する時間は6÷20=0.30秒、1 Mバイト当たり0.03秒で展開する時間は6×0.03=0.18秒です。転送と展開を同時に行わない条件なら合計は0.48秒となり、この計算が所要時間を判断するのに必要です。
適用条件と例
メモリを選ぶときは、電源を切った後も保持する必要があるか、主記憶として使うのか、アクセス速度や容量をどの程度重視するかを確かめます。主記憶にはDRAMが広く使われますが、電源が入っている間もリフレッシュが必要です。
連続したアドレスへアクセスする場面では、バンクを順に使える割当てならアクセスを重ねられます。同じバンクへの要求が続くと、別バンクへのアクセスを重ねる効果は得にくくなります。バンクを複数に分けること自体は、障害時のデータ復元の仕組みではありません。
キャッシュ時間を計算する前に、ヒット率とミス率のどちらが示されているか、またミス時の時間にキャッシュ確認時間が含まれるかを確認します。例えば、ミス時の主記憶時間だけが別に示され、キャッシュ確認を全アクセスで行うモデルなら、確認時間にミス率分の主記憶時間を加えます。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む