Outlookに他人の予定表を表示させる方法を追加
アクセス時間を高速にするため主記憶の内容の一部を蓄えるSRAM。プログラムやデータの局所性を利用している。最近ではほとんどのマイクロプロセッサがキャッシュメ・モリを内蔵している。外部にもキャッシュ・メモリを置き2段構成にするときもある。このときの外部のキャッシュを外部キャッシュまたは2次キャッシュという。 キャッシュ・メモリ内のデータの管理は専用のキャッシュ・コントローラが行う。
CPUの要求するデータがキャッシュ・メモリ内に存在(ヒット)するとき、そのデータをキャッシュ・コントローラがCPUに渡す。要求したデータがキャッシュ・メモリにない(ミス)とき時には、キャッシュ・コントローラが主記憶から該当するデータをCPUに渡し、同時にキャッシュ・メモリに蓄える。キャッシュ・メモリがいっぱいのときは、通常は参照されたのが最も古いデータと置き換える(LRU:Least Recently Used方式)。
最も簡単なキャッシュの構成はダイレクト・マッピング方式である。これはメ モリのアドレスから、データの存在するキャッシュの位置を一意に求めること ができる。一般に、あるアドレスに対応するデータは、そのアドレスの下位ビッ トに対応するキャッシュ位置におかれている。キャッシュ位置は、アドレスを キャッシュのブロック数で割った余りとなる。ブロックとは、上下メモリ階層 間で取り交わすデータの最小単位のことで、たとえば 64bit。
同じキャッシュ位置には複数のメモリアドレスが対応する(下位ビットが同じ で上位ビットの異るアドレスが、同じキャッシュ位置と対応する)。そこで、 キャッシュの中の語が求めるアドレスの語であるかどうかを判断するため、タ グ領域を設ける。タグには上位ビットをいれることが多い。
プロセッサが立ち上がったばかりの時は、キャッシュの内容は空であり、有効 なデータは入っていない。その位置のデータが有効かどうかを示す有効ビット を付加する。タグ領域に含めることもある?
データ本体を保持するデータ領域と、アドレスやアクセス履歴を保持するタグ領域からなる。どちらの領域も複数のブロックに分割されており、一対一で対応する。データ領域を構成するブロックをラインといい、その大きさをライン・サイズという。キャッシュ・メモリと外部のデータ転送はライン単位で行う。1ビットのデータ転送でもライン全体のデータのやりとりを行う(ライン・フィル)。
あるアドレスのブロックをキャッシュのどの位置におくかには、三つの方法が ある。キャッシュを等しいブロック数(ライン数)の領域に分けたとき、この領域をセット という。あるブロックに対応するデータは、各セットで置けるラインが一意に 決められている。
主記憶上のあるデータは各セット中の決められたラインにしか置けないという 方式。各セットのどのライン(ブロック)にデータをおけるかは、アドレス中の セットアドレス(タグ)で決める。セット数がnの時、nウェイ・セット・アソ シアティブ方式と呼部。
キャッシュ全体を一つのセットとして扱う1ウェイ・セット・アソシアティブ 方式とみなせる。主記憶中のあるアドレスのデータはキャッシュ上のどのライ ンに置かれるかは常に決まっている。つまり一意に対応づけられる。
1セット1ラインの方式。あるアドレスのデータをキャッシュ上のどのライン に置いてもよい方式。
セット数に等しい。ヘネパタはおかしい?
CPUがデータ書き込み命令を実行したとき、キャッシュにだけデータを書き込み、主記憶には書き込まないという方式。主記憶への書き込みはキャッシュの該当するラインが置換される時点で行う。
CPUがデータ書き込み命令を実行したとき、キャッシュと主記憶の両方にデータを書き込む方式。
実行しないタスクをハードディスクなどに退避させて、アドレス空間を大きく 見せる方式。概念としてはキャッシュと同じ。ブロックに当たるものを仮想記 憶でページといい、ミスはページフォールトという。CPU で生成された論理 (仮想)アドレスは物理アドレスに変換される。両者の対応をメモリ・マッピン グまたはアドレス変換という。
論理アドレスは仮想ページ番号とページ内オフセットからなる。仮想ページ番 号が物理ページ番号に変換され、ページ内オフセットを下位部分につける。ペー ジ内オフセットは変換されない。
そのアドレスが属しているページを示す番号。要するにアドレスの上位ビット。
ページ方式は固定長のブロックを使用する。可変長のブロックを使用するのが セグメント方式である。セグメント方式では物理アドレスに対応づけられたセ グメントレジスタを使い、それにオフセットを加えて物理アドレスを求める。
ページフォールトが起こる時とは、その物理アドレスに対応するデータが主記 憶になく、ディスクに退避しているときである。そのときは、OS に制御を移 してページを置き換える。どこを置き換えるかを決めるため、ページ表という データ構造を用意する。
物理アドレスのページ番号をインデックスとして、対応する物理ページ、主記 憶またはディスクのアドレスを記録する。メモリ中に置かれる。メモリ中のペー ジ表の位置を示すレジスタをページ表レジスタという。そのページが主記憶に あるかどうかの有効ビット領域も存在する。
ディスクへの書き込みは非常に時間がかかるので、通常はライトバック方式を とる。
ある仮想ページ番号の変換は局所性のため近いうちに再び起こる可能性が高い。 そこで最近行われたアドレス変換の内容を記録しておくキャッシュを使う。こ れをアドレス変換バッファ(TLB)とよぶ。TLB は仮想ページ番号と最近変換さ れた物理アドレスを記憶する。タグは仮想ページ番号の一部を保持する。論理 アドレスが TLB にヒットすれば TLB の中の物理アドレス(とタグ)をもってき て物理アドレスとする。ミスした場合ページ表を見に行く。主記憶上にそのペー ジがあれば、アドレス変換して物理アドレスを求め TLB に書き込む。ページ 表でページフォールトのときは、スワップさせる。
エンディアン
メモリ上にワード内のバイト順序の置き方。ワードアドレスと一致するバイトアドレスが最下位バイトを指すときがリトル・エンディアン、逆がビッグ・エンディアン。
セグメント
プロセッサがアクセスできるメモリ空間。
セグメント・レジスタ
どのセグメントをアクセスするかを制御するレジスタ
仮想記憶
実行しないタスクをハードディスクなどに退避させて、アドレス空間を大きく見せる方式。