なが月・48日目

48日目

帰宅後から開始。先学期の授業スライドを見て内容を理解するように努めた。昨日の「長い内側ループが高効率」というのは、命令パイプラインのあるプロセッサにおいてループ一周が終わる前に次のループのうち先に実行できる演算を行っておくことによって、CPUの様々な演算部分が常に動き続ける状態が長く保てることで効率が上がる、ということであった。そのため分岐命令や発行予測と異なる命令が入ってきてしまうと、その事前の演算を捨ててその場所からやり直すことになり効率が悪くなる。CPUの「投機的実行」と言われるものはこのパイプラインの効率を意識したものであるらしい。

ループアンローリングやキャッシュミスを少なくするためにメモリアクセス方向を合わせるといった、機械の処理効率向上を目的として人間が自然な命令から離れ機械に歩み寄る書き方に触れてみて、そのようなハードウェアに近い考え方を理解するにはまずCPUの動作原理を知ることが必要であるように感じた。