Get Things Right

My English blog is here http://getthingsright.blogspot.com/

 プロセッサを支える技術 果てしなくスピードを追求する世界

名著だ。初めにパイプラインを説明し、プロセッサは流れ作業で命令を実行することをイメージさせ、それから命令アーキテクチャを説明し、命令を流し込む過程において、リソース(演算器、キャッシュ等)の有効活用のため、どうアーキテクチャが発展してきたが分かりやすく説明されている。RISCCISCの違い。パイブラインバブル、out of order実行、分岐予想、ハイパースレディング、SIMD演算機構など。最新のプロセッサがより身近に感じられるようになった。

「コンピュータはすごい」と改めて思う。アプリケーション、ランタイム、OS、高級言語C言語アセンブラコンパイラ、リンカ、機械命令プログラム、CPUアーキテクチャ、演算器、半導体そしてはたまた物理学と、様々な分野が垂直につながっている。そしてそれぞれが、隣の階層とのインターフェイスを持ち、独自に進化してもインターファイスが変わらない限り、その階層の進化はそのまま、全体の進化に繋がる。自分の分野に特化していても、コラボレーションになりえる。比較として適切ではないかもしれないが、初音ミクのコミュニティーで、個々人が自律的に、そして結果として協力し合ってライブコンサートを成功させるような凄さを感じさせる。

印象に残ったのはキャッシュ機構。Nehalemは3次キャッシュをもち、メモリ管理は4階層ページテーブルを持つということ。プロセッサの処理速度が並列化などで速くなることで、その速くなった処理機構をどう効率的に使用するかという新たな問題が生まれ、アーキテクチャは複雑になる。

以前、久夛良木健氏が家庭のCellプロセッサ機器をつなぎ、コンピュータのトポロジーを変える。即ち、家電等に組み込まれているCellプロセッサを光ベースの高速インターフェイスでつなぎ、ひとつのスーパコンピュータのように見せるビジョンを語っていた。チップの上のクロックの伝搬遅延が問題になるほど、プロセッサの処理速度は速い。それならCellプロセッサを光ファイバーベースの高速インターフェイスで、別のCellプロセッサにつなげば、Cellプロセッサのキャッシュ機構が弱いと仮定して、相対的にCell間の遅延はチップ上の遅延とあまり変わらなくなる。現在、インテル光ファイバーベースのThunderbolt(2013年には1Tbpsの転送速度?)を発表したことを鑑みると、彼にはものすごい先見性があったのではないかと思う。ヘテロジニアスなマルチコアのCPUに拡張性を持たせたアーキテクチャは、チップ上で今後どの資源がネックで、どのような技術的進展が今後期待されるのかを予測した上での設計されたなら、その正しさは未来において、似たようなアーキテクチャが再発明されることで証明されるのであろうか。

参考
http://ja.wikipedia.org/wiki/Thunderbolt
http://pc.watch.impress.co.jp/docs/2003/0901/kaigai015.htm
http://pc.watch.impress.co.jp/docs/column/kaigai/
http://ja.wikipedia.org/wiki/Cell_Broadband_Engine

プロセッサを支える技術  ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)

プロセッサを支える技術  ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)