アカウント名:
パスワード:
IA64にどうやって HT(Hyper Threading)を付け足すのか興味がある.
Pentium4は,スーパースケーラのアーキテクチャを取っているので,実行時に使用されるリソースが動的に決定される.だから,Pentium4に HTを実装ときに,アーキテクチャとの親和性が高いのはわかる.
IA64は VLIWのアーキテクチャだから,実行前にリソースの割り当てが決定されている.1つの命令ユニットにパックされたいくつかのopは,かならず同時に実行するはず.そういう前提で HTを実装すると,各リソースごとではなく,命令ユニットごとのスケジューリングにならないだろ
ダイサイズ?(シリコンチップの大きさ)が大きくなる
確かに,CPUのクロックが上がっていく速度に,メモリの速度アップがついていっていないので,実行リソースの利用率が下がっていっていますね.しかし,SMTには,キャッシュミスで停止したスレッド以外のスレッドで,実行リソースを使うという面があります.
個人的見解ですが,Pentium4の HTで問題になるのは,PEとキャッシュ間の実効帯域幅の低下よりも,キャッシュのヒット率の低下だと思います.Pentium4では,はじめから HTの実装がなされていたという疑惑があり,もしそうであれば,最初からキャッシュの実行帯域幅の低下については,何らかの対策がなされていると思うからです.
また,Pentium4で L1キャッシュがあのような構造になっているのは,ストール時のレイテンシを下げるという目的と,命令キャッシュの実効帯域幅の向上という目的があると思います.そのことで,PEと命令キャッシュ間の実効帯域幅の低下については,対策がなされているのではないでしょうか.
そういう前提で考えると,Pentium4の HTでは,これから製造プロセスの微細化に伴ってキャッシュの容量を増やし,残るキャッシュのヒット率の問題をクリアしていくというのが,Intelの読みかも知れませんね.
歩留まりが悪くなる の2点からコストパフォーマンスが『かなり』上がるとは考えにくい のですが
Hyper Threadingで,複数のスレッドを処理するメリットは,「空いている実行リソースを使うこと」であり,そういう意味で,コストパフォーマンスがよくなるわけです.
ILP(Instruction Level Parallelism)を利用することで,平均して並列度1.5から1.8程度の実行効率が得られますが,ILPのみでは行き詰まっており,TLP(Thread Level Parallelism)が利用されることになったという経緯があります.
たとえば,Athlonはスーパースケーラ(ILP)で,並列度3の実行に耐えられるようにできていますが,実際は並列度1.5程度の実行効率しか得られていません.しかし,スレッド数2のTLPを利用することで,おそらく並列度2を上回る実行効率が得られると思います.
ここで,あらかじめ並列度6を許容する実行リソースを用意して,スレッド数4の TLPを利用することを考えるわけです.こうすることで,実行リソースは元の2倍でありながら,おそらく並列度4以上の実行効率が得られると思います.
そうすると,元のリソースの 2倍と少しのリソースで,少なくとも3倍弱の実行効率が得られるわけです.これから,半導体の製造プロセスが微細化していくでしょうが,キャッシュメモリばかり増やしていっても,それほどパフォーマンスは上がりません.現状でも,CPUダイ上でキャッシュメモリの占めるリソースの割合はかなり大きいのです.
ですから,これからの CPUは ILPだけではなく,TLPを考慮に入れ,そのスレッド数を増やすことで,パフォーマンスとコストパフォーマンスの両面で改善が進められていくと思うわけです.
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
CPUの未来 (スコア:3, 興味深い)
IA64にどうやって HT(Hyper Threading)を付け足すのか興味がある.
Pentium4は,スーパースケーラのアーキテクチャを取っているので,実行時に使用されるリソースが動的に決定される.だから,Pentium4に HTを実装ときに,アーキテクチャとの親和性が高いのはわかる.
IA64は VLIWのアーキテクチャだから,実行前にリソースの割り当てが決定されている.1つの命令ユニットにパックされたいくつかのopは,かならず同時に実行するはず.そういう前提で HTを実装すると,各リソースごとではなく,命令ユニットごとのスケジューリングにならないだろ
Re:CPUの未来 (スコア:1)
>違う.こうすることで,コストパフォーマンスがかなり上がるはず
>だ.
2つなら1,4~1.9倍に,4つなら3倍程度にダイサイズ?(シリコン
チップの大きさ)が大きくなると思いますが.そうなると,
ウェハーあたりの製品数が減る
歩留まりが悪くなる
の2点からコストパフォーマンスが『かなり』上がるとは考えにくい
のですが.(かえって悪くなる?)
それに複数のプロセスでキャッシュメモリを共通化(共有)しても,
共通部分(共有可能部分)が実質ないので,キャッシュのヒットミス
が増えると思いますが.
(私が何か勘違いしているのかな?)
Intel's McKinley is one big chip (スコア:1)
Re:CPUの未来 (スコア:1)
プロセスルールが進み集積度が上がっても
性能向上のためロジックを投入すべき有効な
マイクロアーキテクチャがもう他に見あたらない
(増えるトランジスタの使い途が他にない) ので、
あとはワンチップSMPぐらいかな?という経緯だったはず。
Re:CPUの未来 (スコア:1)
簡単にできそうです。
但し、端子スペースと発熱問題がネック。
Re:CPUの未来 (スコア:1)
2次キャッシュを共通化した場合、2CPUでも1.3~1.5倍くらいで済むと思いますよ。
ちなみに、HTで2CPUに似せた場合なら、1.1倍以下だそうな。
キャッシュを共有したら... (スコア:1)
> も,共通部分(共有可能部分)が実質ないので,キャッシュのヒッ
> トミスが増えると思いますが.
それは正しいと思います。
ただ、もう一つ複数の Processor Element(PE) でキャッシュ
を共有すると、ひとつの PE とキャッシュ間のバス幅が見掛け
上減ってしまう問題がありまして、こちらの方がより深刻だ
と思います。
つまり、HT なしのプロセッサが 1サイクルに 2ワード分のデ
ータをキャッシュからレジスタに転送できるとすると、2way
HT のプロセッサは、1スレッドあたりの転送量は半分。
1サイクルに1ワード分になります。
HT (というかSMT) の出発点は CPU 内に暇なファンクション
ユニットがあるからこれを有効活用しようという話のはずで
すが、CPU 内に暇なファンクションユニットが出来る最大の
理由は load/store にあると思うのですが、、、
コンタミは発見の母
Re:キャッシュを共有したら... (スコア:1)
確かに,CPUのクロックが上がっていく速度に,メモリの速度アップがついていっていないので,実行リソースの利用率が下がっていっていますね.しかし,SMTには,キャッシュミスで停止したスレッド以外のスレッドで,実行リソースを使うという面があります.
個人的見解ですが,Pentium4の HTで問題になるのは,PEとキャッシュ間の実効帯域幅の低下よりも,キャッシュのヒット率の低下だと思います.Pentium4では,はじめから HTの実装がなされていたという疑惑があり,もしそうであれば,最初からキャッシュの実行帯域幅の低下については,何らかの対策がなされていると思うからです.
また,Pentium4で L1キャッシュがあのような構造になっているのは,ストール時のレイテンシを下げるという目的と,命令キャッシュの実効帯域幅の向上という目的があると思います.そのことで,PEと命令キャッシュ間の実効帯域幅の低下については,対策がなされているのではないでしょうか.
そういう前提で考えると,Pentium4の HTでは,これから製造プロセスの微細化に伴ってキャッシュの容量を増やし,残るキャッシュのヒット率の問題をクリアしていくというのが,Intelの読みかも知れませんね.
Re:CPUの未来 (スコア:1)
名前はそう、SXです :-)
Re:CPUの未来 (スコア:1)
Hyper Threadingで,複数のスレッドを処理するメリットは,「空いている実行リソースを使うこと」であり,そういう意味で,コストパフォーマンスがよくなるわけです.
ILP(Instruction Level Parallelism)を利用することで,平均して並列度1.5から1.8程度の実行効率が得られますが,ILPのみでは行き詰まっており,TLP(Thread Level Parallelism)が利用されることになったという経緯があります.
たとえば,Athlonはスーパースケーラ(ILP)で,並列度3の実行に耐えられるようにできていますが,実際は並列度1.5程度の実行効率しか得られていません.しかし,スレッド数2のTLPを利用することで,おそらく並列度2を上回る実行効率が得られると思います.
ここで,あらかじめ並列度6を許容する実行リソースを用意して,スレッド数4の TLPを利用することを考えるわけです.こうすることで,実行リソースは元の2倍でありながら,おそらく並列度4以上の実行効率が得られると思います.
そうすると,元のリソースの 2倍と少しのリソースで,少なくとも3倍弱の実行効率が得られるわけです.これから,半導体の製造プロセスが微細化していくでしょうが,キャッシュメモリばかり増やしていっても,それほどパフォーマンスは上がりません.現状でも,CPUダイ上でキャッシュメモリの占めるリソースの割合はかなり大きいのです.
ですから,これからの CPUは ILPだけではなく,TLPを考慮に入れ,そのスレッド数を増やすことで,パフォーマンスとコストパフォーマンスの両面で改善が進められていくと思うわけです.