竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS 本:高性能コンピュータ技術の基礎 Hisa Ando著

<<   作成日時 : 2011/06/29 16:46   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 最近のマイクロプロセッサの内部構造を知りたい人向けの本。ソフト屋さん置いてけぼりの本。せいぜいコンパイラ屋さんかOS屋さんに役立つくらいか。

 それくらい偏った内容で、人によってはとても面白い本。特に大規模なプロセッサ開発現場においては他のチームがどの部分をどう作っているかわからない場合があるが、これを読むとやっていることがわかる。図が豊富でデータの流れまで図示してありたいへんわかりやすく解説してある。無論、検証屋さんは浅くていいからすべて理解する必要がある。
でも直接役立つのはルネサスか富士通のプロセッサ関係の人ぐらいかなあ。あとは大規模プロセッサを作ってみたいという志のある若人へ。
高性能コンピュータ技術の基礎
毎日コミュニケーションズ
Hisa Ando

amazon.co.jpで買う
Amazonアソシエイト by 高性能コンピュータ技術の基礎 の詳しい情報を見る / ウェブリブログ商品ポータル



 従来、この手の情報は散逸していて英語の論文だったりヘネシー&パターソンに頼ってもわからなかったりと苦労していたのだが、コンパクトに知りたいことがまとまっている。
ではこの本を読んで私が初めて知ったことや知識の整理など。

1.コンピュータの高性能化
 はなっからパイプライン処理の知識が前提である。ベクトル演算、スーパースカラ、Out-of-Order実行、マルチコア化について触れている。

2.複数命令の並列実行
 Out-of-Order実行について詳しく解説。スコアボード方式とTomasuloアルゴリズムについて。Tomasuloアルゴリズムは物理レジスタ変換が必須なのね。
通常、In-Order命令発行→Out-of-Orderの命令実行→整列してインオーダ命令完了なのだが、RockプロセッサはOut-of-Order完了だったというのが興味深い。
割り込みについて触れられているのも重要。Preciseな割り込みを実現するには割り込み発生前の時点まで実行状態を巻き戻す必要があるが、これは実装によってまちまちで、チェックポイントを定期的に取ってそこまで戻る方法と、現在仕掛り中の命令を全て破棄して再度実行する方法がある。InPreciseな割り込みで構わないのはプロセス自体が中断する、回復不能な割り込みである。(データアクセスエラーなど)
In-Order完了を実現させる機構がRe-Order Bufferである。演算終了までがOut-of-Orderで、In-Orderに整列後完了させるのをcommitと呼ぶ。これでその命令は解放される。これはcommitされるまでは割り込み処理などで巻き戻されたり再実行されたりする可能性があるということだ。
Out-of-Orderでは演算終了してレジスタに書きこんでもcommitするまでは安心できないのだ。

3.予測に基づく投機実行
 分岐予測機のデバッグはどちらかというと後回しだった。予測が仕様通りに当たらなくてもプロセッサは動作するからだ。性能測定の段階ではっきりしてくる。
AgreePredictorは当時こんなのがあるよ、と教えられて論文を回し読みしていた。今再読して思いついたのだが、分岐予測の指示もTaken/NotTakenだけでなくNear/Farというのも付けたらどうだろうか。同一プロセス内はNearで、ライブラリ呼び出しはFarという具合に。ま、思いつきですが。
トレースキャッシュについても触れてある。Pentium4が唯一の実装例だが、HaL社のプロセッサがキャンセルされてなければ2例目になっていたかもしれない。詳しくは「HaL trace cache」でググって。
 投機的なメモリアクセスはプリフェッチのことだが、命令/データの局所性に頼っている。バスが混みだすとプリフェッチ自体が邪魔になることもあり性能評価としては難しい所でもある。
 ロードデータの予測というのは初めて知った。これって中途半端なデータキャッシュ?

4.複数のプロセサで高速化するマルチプロセサ
 プロセサというのは富士通用語なので注意。SMPにおけるMOESIプロトコルまでを丁寧に図入りで説明してある。ちょっと前ではインターフェース誌に載っていたが、これだけでも買い。私は図を描いて色々線を引いたりして頑張ったがなかなか理解できなかった。
富士通は128チップという最大のSMPシステムを力技で作ったが、採用しているOSがSolarisで改変することが出来ずNUMA構成にできなかったということも関係があると思える。
一般のNUMA構成ではどのCPUのどのメモリにデータが載っているかによって、メモリアクセスのレイテンシが大きく変わってくるからだ。しかしHyperTransportやCSIはNUMA構成にも関わらず、プロセッサを介さずにデータをやり取りすることによってレイテンシの違いが感じられないくらいに改善させている。
マルチコア化が進みチップ内に多数のコアが搭載されるようになれば外部へのアクセスも減り、SMPとNUMAの差というのは将来なくなるのではないだろうか。
 メモリアクセスの排他制御ではP,Vといったわかりづらい状態の表現を避けているのが好印象。TAS命令もCAS命令も実装するには特別なバスアクセスが必要となる。この点、Alphaで採用されたLL/SCはスマートだ。

5.最近のマイクロアーキテクチャの発展
 今後はマルチコアが前提の時代。マルチスレッド、VMTとSMTの違いについて。スカウトスレッドは賢いprefetch。あと仮想化。

6.省電力設計
 トランジスタレベルの話なのでパスしました。しかし昔はゲーテッドクロックは禁じ手だったのになあ。

 感想。これでも十年くらい(以上?)前からある技術のまとめ。最近はどうかというと、マルチコア方面に邁進しているようでOut-of-Orderのような抜本的なアーキテクチャの変化は見られない。
高速化のためにはパイプラインを空けない、演算器などのリソースを遊ばせない、キャッシュミスでもコアを停止させないでなんかさせる、そのためにOut-of-Orderを中心とした複雑な機構をこれでもかと実装する。これまでの発想はそうだった。
マルチコア化となると省電力のようなトランジスタレベルからの工夫が重要になってくる。だけど建物の工法はそんなに変わってはいない。むしろIn-Orderに戻しても高速化が見込めるPOWER6のようなプロセッサが出てきたりしている。(POWER7でまたOut-of-Orderに戻ったけど)
余計な機構は面積を圧迫しマルチコア化を阻害する。今後は「ある程度」の性能で多コア化する方向ではないだろうか。工法は変わらないが、注力する部分を色々と変えてみる。論理シミュレーションによる性能測定でもっとも効率のよい物量を決め、実装する。
Pentium4の頃のような性能が青天井と思われた時代はなくなった。今後はマルチコア間の通信技術が中心になってくると思われる。少し残念である。

 この本を買った方は、この本もすでに買っています↓
コンピュータ設計の基礎 (マイコミジャーナルブックス)
毎日コミュニケーションズ
Hisa Ando

amazon.co.jpで買う
Amazonアソシエイト by コンピュータ設計の基礎 (マイコミジャーナルブックス) の詳しい情報を見る / ウェブリブログ商品ポータル


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




本:高性能コンピュータ技術の基礎 Hisa Ando著 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる