基本的なCPUアーキテクチャ

スピーカー

たつやさん @zerokfy 

発表資料

Googleドライブこちらから 

本編(22:00-23:00)

自己紹介

ハードウェア設計と組み込みソフトウェア開発の経験があり。 まだまだ若い20代。そしてイケメン。

ゴール

パイプライン 付録:MMIO(メモリマップドI/O)

本題

  • コードをコンパイルするとバイナリになる
  • 登場人物はRAM, CPU, Core
  • 命令処理フローはIF, DEC, EXE, WBから構成される
  • IF=Instruction Fetch。命令をフェッチすること。
  • DEC=Decoder。命令ビット列をデコードすること。
  • EXE=Execute。デコードした命令を実行すること。
  • GRとデータキャッシュの違い
  • WB=Write Back。演算結果をデータキャッシュに格納すること。
  • パイプライン制御の動作
  • パイプライン制御の問題点
    • 時間のかかる命令があるとそこでつかえて全体が止まってしまう
    • 対策:アウトオブオーダ(命令処理順の並べ替え)、マルチスレッド処理

付録:メモリマップドI/O

まとめ

フリートーク(23:00-24:00)

  • 年明け早々、世間を騒がしているCPUの脆弱性であるメルトダウンとスペクターのしくみについて。
    • 投機的実行の悪用    投機的実行…CPUはIF文のTrue/False判定が出るより前に命令を実行する(時間の節約のため)    → 覗き見したい情報(/etc/passwd等)にアクセスするような命令をIF文分岐の後に書いて実行すると   データキャッシュの中にデータが残ってしまう。