計算機の基本構成
中央記憶装置(CPU)に必要な処理を入力。CPUにて演算処理を行い、その結果を出力する構成になっています。
計算機の記憶装置
大枠として、CPUに内蔵したレジスタ、メモリ、補助記憶装置(HDD、SSD)で構成されています。レジスタは速度が速いが小容量。HDDは、低速度だが大容量のメリットがあります。
レジスタに大容量のデータを保存できるように設定したとき、コスト的な制約が出てきてしまうため、このような階層構造となっています。(記憶階層方式と言います。)
主記憶装置の効率的利用
仮想記憶方式
プログラムを実行する際、構成する機能(ページ)ごとに処理を分割し、メモリ上に保存しておく必要があります。
しかし、物理メモリの容量は限られており、全てのページをそのまま保存できるわけではありません。
そこで取られるのが、仮想記憶方式です。これは、補助記憶装置(HDDなど)大容量な記憶装置にページ全体を保存しておき、変換表に基づいて、主記憶装置に保存されているページを参照する方式です。
主記憶装置の記憶容量を意識せずにプログラムを書くことができます。現在最も使用される記憶方式になります。
CPUからメモリへのアクセス時間を短くするための方策
参照の局所性
CPUの処理速度(レジスタへのアクセス時間)に比べると、メモリへのアクセス時間は遅いため、全体の処理に待ち時間が生じる課題があります。
「プログラムは、実行時間のほとんど(約90%)を、機械命令コードのわずかの部分(約10%)で消費している。」とまで言われています。(参考文献)
対策として、ある処理を行った時、参照したアドレスに注目します。次回の処理も、その近傍のアドレスを参照する可能性が高いと判断。キャッシュメモリを両者の間に設定し、処理時間を向上することができます。
これを参照の局所性と言います。時間局所性と空間局所性の2通りあります。
時間局所性
あるデータが一度読み書きされると、そのデータは近い将来もう一度アクセスされる可能性が高いです。
そのため、キャッシュメモリに該当するアドレス番地を保存しておく方式です。
空間局所性
あるデータに一度アクセスすると、該当のアドレス近くの番地も参照する可能性が高いです。
そのため、近くのアドレスもキャッシュメモリに保存し、素早く参照できるようにする方式です。
キャッシュメモリのブロックサイズを大きくする
前章より、参照する確率の高いアドレスはキャッシュメモリに保存し、処理の待ち時間を低減することを説明しました。
これに追加し、キャッシュメモリのブロックサイズを大きくした場合でも、アクセス時間を低減できます。(下記の理由に基づきます。)
利点
参照するデータの領域が多くなるためです。一度の検索で情報のヒット率が上がり、再検索の頻度が減ります。
欠点
一方で、一度の検索で参照するデータのサイズは大きくなります。もし検索がヒットしなかったときの再検索までの時間が長くなってしまいます。
利点欠点、一長一短ありますので、ブロックサイズを最適設計することが、全体の処理時間を低減するために必要です。
ページフォルト
仮想記憶装置の章にて、仮想アドレス空間に設定したページを変換表に基づき主記憶装置のアドレスを参照する仕組みを取っていました。
しかし、仮想アドレス空間には存在していたページが、実アドレス空間には存在しない場合もあります。
このような事象をページフォルトと言い、補助記憶装置から実記憶装置へデータを読み込むための時間が新たに発生します。
対策としては、物理メモリ容量の増設。不要になった処理が発生した時、該当するメモリはこまめに開放することが考えられます。
例題の解答例
与えられた状況でのアクセス時間の一般式は
\begin{aligned}p\alpha+q(1-\beta)(1-\alpha)+\beta(1-\alpha)r\end{aligned}
与えられたパラメータを代入することにより、求める時間は
\begin{aligned}10*0.95+100*0.999*0.05+0.001*0.05*10^{5}=19.495 [ns]\end{aligned}
最後に
本問は、計算機アーキテクチャを試験範囲とする大学で出題される可能性があります。
知識として持っておくだけで得点できます。本記事が参考になると幸いです。
参考文献
コンピュータアーキテクチャ 改訂5版(馬場 敬信) P159