メモリアクセスのセマンティクスとApple siliconの裏技(?)について
DRANK
アウト・オブ・オーダー実行について補足 前回の記事で「アウト・オブ・オーダー実行」について特に説明せずに話を進めてしまったことに気づいたので、まずはそれについて簡単に補足しておこう。 コンピューターの性能向上の歴史はレイテンシーとの戦いの歴史でもある。 colin-scott.github.io 上のサイトは年代毎にコンピューターシステムでの各種レイテンシーがどのように変化していったかを紹介している。1990年代前半はキャッシュメモリとメインメモリとの間のレイテンシー差はそれほど大きくなかったが、その後の技術革新によって現在はL1キャッシュとメインメモリとの間に100倍くらいのレイテンシー差が…
1 comments
メモリアクセスの仕様はCPUごとに差があるが、開発者が各アーキテクチャの仕様を全て把握するのは利便性に欠ける。
そのため、コードを書く側から見た挙動に基づいて、セマンティクスと呼ばれるメモリアクセス順序の抽象的なルールが定められた。
この記事では各セマンティックの解説と、Rosetta2がコード変換時にアーキテクチャごとのセマンティクスの違いにどのように対処したのかが書かれている。