前回の話
AMD:悩み続けた結果、Module構造を作り上げました。名付けて
AMD:ブルドーザー!
結果
Moduleとそれで作ったブルドーザーCPUは何でIntelに負けたのか?
↑誰もがそれっぽい計画を持ってる、ぶん殴られる前までは。-Mike Tyson
どんなプロジェクトでも始まりは壮大な計画を立てます。
Module構造も考え出したのはよかったのですがModule1世代であるブルドーザーは糞アーキテクチャです。ただの糞ではない、下痢レベルだとも言えます。
資本の不足と経営上の問題が出会って生まれたこのアーキテクチャで作ったCPUは「最悪のCPU Top 10リスト」があったら絶対にそのリストに上位にランクされるでしょう。
おかげでブルドーザーで作ったFX8120は発売して7ヶ月だけで30%の値引き、販売中止になる寸前には1万円当たりまで値段が下がりました。
新しい技術で作った最新のCPUが1万円で買えるとは......
何故優れた概念で設計されたにも関わらず、このプロセッサーがこの様になったのか。
それを語ってみましょう。
まず、始める前にクロックは計算速度(=パフォーマンス)とも言えます。
「あれ?AMDのほうがクロック高いのでは?AMDがIntelより強いのでは?」
実際AMDのほうが高いクロックは持ってます。
ですがクロック当たりのパフォーマンスはIntelより落ちます。
まぁ、当然とも言えますが、
「Module」はそもそも「何故か2コアと見なされる1コア分のカタマリ」俺たちは二人で一人です。
パフォーマンスもIntelの1コア2Threadとそう変わらないです。
なのにAMDでは4つのModuleを持ったブルドーザープロセッサを8コアだと広告します。
まぁ...一つのModuleにALUが二つあるから2コアと言っても違わないですが...問題はそのコアが普通のコアに比べてパフォーマンスが半分だってことですね。
結局Moduleで作られた4コアがCore iシリーズの4コアに勝てないってことは
i3はi5に勝てないということと同じだと言えます。
AMDは足りない単一(Single)Threadパフォーマンスを補うために
こんな形のコアを作って、一つのModuleが二つのコア分の働きが出来るように計画しましたのですが...現実のブルドーザープロセッサは
こんな感じでした。
このブルドーザープロセッサの未完成のところを直したのが
このパイルドライバーModuleで、(VisheraがこのModuleで作られました)
↑スチームローラーModule
そして「3世代のスチームローラーは元の計画通りに作ってくれるよね?!」
と思ったユーザー達の前に出て来たのは小さくなった
この「スチームローラーB」のModuleでした。
さて、今までの話をまとめると、結局AMDはこのModule構造を捨てるつもりがなく、このまま進めて来たというわけです。AMDのCPUは基本的にブルドーザーのアーキテクチャを応用して作って来ました。もっと詳しく説明する前にちゃんと説明するためのプロセッサの「パイプライン」に付いて簡単に説明する必要があります。
プロセッサとパイプライン
まず、プロセッサは命令を処理するために順番通りで働きます。
例えば、14段階パイプラインだとしたら、
基本的にこんなふうに動くことになります。
ちょっと難しい話ですがパイプラインの有無の差をカフェで例えたら
「店員さんが直接コーヒーを入れてくれて、並んでいる人が減るスピードが遅い場合」と
「一人ずつ分かれて、それぞれの仕事をする場合」との差と言えるのでしょう。
ここで新しいコーヒーメニューが出たと仮定してみましょう。
このコーヒーが美味いのか不味いのかを分からなくて、自分の前に並んだ人の反応を見て決めたい場合
反応を見るためには前の人が飲み終わるまで待たねばならないので、ずっと列で並んでいることになります。つまり、後ろの人達はもっと待つことになるのでしょう。
パイプラインに戻ってカフェーの列で待ってる時間、
ここをStallと言います。
パイプラインが深くなればなるほど演算量は増えますが、その分Stallが発生しやすくなり、Stallの発生は処理スピードの低下に繋がります。
このStallを消すために行うこと、カフェで例えたら新しいコーヒーの味を予想することを「分岐予測」と言います。
分岐予測が当たればStallを消すことが出来る=パフォーマンスを大幅に引き上げることが出来ますが...
予測に失敗したら一つのサイクルを一からやり直すことになります。
これを説明したのは....
あまりにも低い分岐予測の確率を持ったCPUが今まで語って来たブルドーザーだからです。
Bulldozerは何で糞プロセッサになったのか
まずブルドーザーはパイプラインがめっちゃくちゃ長いアーキテクチャです。(20段階)
↑この画像はPrescottのパイプラインです!
もちろんIntelの黒歴史であるPrescott(31段階)に比べたらましですが、Prescottは2004年の物でブルドーザーは2011年の物です。
IntelがPrescottでヘマしたことを見たのに、AMDがIntelのヘマをそのまま繰り返します。
しかも2004年のIntelは「Trace Cache」という、分岐予測に失敗しても途中から演算をやり直せるようにしてくれるCacheを置きましたが何故かBulldozerはこのTrace Cacheも持っていませんでした。
Trace Cacheがないなら少なくとも分岐予測を担当するこいつらが上手くやらなければならないのに、こいつらも普通ところか糞でした。
それに、ALU二つとFPU一つをちゃんと使い切るためには下の
3世代のスチームローラーのように二つのDecoderを必要となりますが
*整数ユニット(ALU)と実数ユニット(FPU)で演算を行うためにはフロントエンドのDecoderで命令を供給する必要があります。
AMDの経営陣:「お金も時間もない、適当に作れ」
の結果、大型Decoder一つでなんとか動けるように作ったのがこのBulldozerです。
そのおかげでブルドーザーの演算ユニット達(ALU+FPU)は絶対100%使い切ることが出来なくなりました。これはAMDも知っていた問題で、実際Bulldozerは元の計画より小さく作られたFPを持っていましたが、それでもボトルネックが起きるという、完全な設計のミスとしか言いようがないプロセッサです。
*ボトルネックはつまりこれです。
FPを小さく作った(=車の数を減した)のにDecoderの処理量が足りなさ過ぎてFPUもALUも全パフォーマンスを出せない(全車両が通れない)ということです。
とりあえず、このボトルネックの問題は上でも語ったように3世代スチームローラーでDecoderを二つに増やすことで解決されますが...
ブルードーザーの問題はその他にもありました。
L3Cacheを8MBにしたのはよかったですが、気が早すぎたか帯域幅は半分、レイテンシは二倍になり、効率が見てあげれないレベルまで落ちました。
*帯域幅=道路の幅(広くなったら車もデーターもたくさん通れます)
*レイテンシ=道路を通過する時間(短縮出来るほど車もデーターも早く行けます)
そして漏洩電流の問題、資金の問題など、いろんな問題があったのです。
さて、なんでAMDはこの問題だらけのこのプロセッサを出したのか?
AMDは元々このプロセッサを2014年以後に出すつもりでした。
そして2014年までの幅を
このPhenomⅡx6で埋めるつもりでしたが、足りない予算と経営悪化でやむを得なくブルドーザーを早めに出してしまったのです。
AMDをこう追い詰めたのは他の誰でもない
Intelです。
2007年、Intelは全てのPC製造社がAMDの製品を買わないようにロビー活動を行ったことがあります。
結局これがばれてAMDに莫大な賠償金を渡すことになりましたけど、既にAMDが受けた被害は莫大で経営が厳しくなった状況でした。
それにむりやりに出したブルドーザーの失敗が重なって社屋まで売却したくらいまで落ちたAMDはRyzenが出るまでIntelのライバルにすらならなかったのです。
これが産業廃棄物と呼ばれるブルドーザープロセッサ誕生の裏事情です。
では、こんなにボロ負けて資金の「し」の字もないAMDはどうやってコスパ最強と呼ばれるRyzenを作り出すことが出来たでしょうか?
CPUで圧倒的地位を持っていたIntelですが、Intelは世界一強力だと言われる米国の反独占法が適用されません。その理由は米政府がAMDを支援しているからです。
米環境保護庁が新しいサーバーのためのCPU開発費をAMDに支援し、その金で開発されるCPUが
このZenコアなのです。
AMDのコアの構造説明に時間がかかりすぎました。
次は遂に、古いCPUではないIntelとRyzenを比べてみます。
AMD:悩み続けた結果、Module構造を作り上げました。名付けて
AMD:ブルドーザー!
結果
Moduleとそれで作ったブルドーザーCPUは何でIntelに負けたのか?
↑誰もがそれっぽい計画を持ってる、ぶん殴られる前までは。-Mike Tyson
どんなプロジェクトでも始まりは壮大な計画を立てます。
Module構造も考え出したのはよかったのですがModule1世代であるブルドーザーは糞アーキテクチャです。ただの糞ではない、下痢レベルだとも言えます。
資本の不足と経営上の問題が出会って生まれたこのアーキテクチャで作ったCPUは「最悪のCPU Top 10リスト」があったら絶対にそのリストに上位にランクされるでしょう。
おかげでブルドーザーで作ったFX8120は発売して7ヶ月だけで30%の値引き、販売中止になる寸前には1万円当たりまで値段が下がりました。
新しい技術で作った最新のCPUが1万円で買えるとは......
何故優れた概念で設計されたにも関わらず、このプロセッサーがこの様になったのか。
それを語ってみましょう。
まず、始める前にクロックは計算速度(=パフォーマンス)とも言えます。
「あれ?AMDのほうがクロック高いのでは?AMDがIntelより強いのでは?」
実際AMDのほうが高いクロックは持ってます。
ですがクロック当たりのパフォーマンスはIntelより落ちます。
まぁ、当然とも言えますが、
「Module」はそもそも「何故か2コアと見なされる1コア分のカタマリ」
パフォーマンスもIntelの1コア2Threadとそう変わらないです。
なのにAMDでは4つのModuleを持ったブルドーザープロセッサを8コアだと広告します。
まぁ...一つのModuleにALUが二つあるから2コアと言っても違わないですが...問題はそのコアが普通のコアに比べてパフォーマンスが半分だってことですね。
結局Moduleで作られた4コアがCore iシリーズの4コアに勝てないってことは
i3はi5に勝てないということと同じだと言えます。
AMDは足りない単一(Single)Threadパフォーマンスを補うために
こんな形のコアを作って、一つのModuleが二つのコア分の働きが出来るように計画しましたのですが...現実のブルドーザープロセッサは
こんな感じでした。
このブルドーザープロセッサの未完成のところを直したのが
このパイルドライバーModuleで、(VisheraがこのModuleで作られました)
↑スチームローラーModule
そして「3世代のスチームローラーは元の計画通りに作ってくれるよね?!」
と思ったユーザー達の前に出て来たのは小さくなった
この「スチームローラーB」のModuleでした。
さて、今までの話をまとめると、結局AMDはこのModule構造を捨てるつもりがなく、このまま進めて来たというわけです。AMDのCPUは基本的にブルドーザーのアーキテクチャを応用して作って来ました。もっと詳しく説明する前にちゃんと説明するためのプロセッサの「パイプライン」に付いて簡単に説明する必要があります。
プロセッサとパイプライン
まず、プロセッサは命令を処理するために順番通りで働きます。
例えば、14段階パイプラインだとしたら、
基本的にこんなふうに動くことになります。
ちょっと難しい話ですがパイプラインの有無の差をカフェで例えたら
「店員さんが直接コーヒーを入れてくれて、並んでいる人が減るスピードが遅い場合」と
「一人ずつ分かれて、それぞれの仕事をする場合」との差と言えるのでしょう。
ここで新しいコーヒーメニューが出たと仮定してみましょう。
このコーヒーが美味いのか不味いのかを分からなくて、自分の前に並んだ人の反応を見て決めたい場合
反応を見るためには前の人が飲み終わるまで待たねばならないので、ずっと列で並んでいることになります。つまり、後ろの人達はもっと待つことになるのでしょう。
パイプラインに戻ってカフェーの列で待ってる時間、
ここをStallと言います。
パイプラインが深くなればなるほど演算量は増えますが、その分Stallが発生しやすくなり、Stallの発生は処理スピードの低下に繋がります。
このStallを消すために行うこと、カフェで例えたら新しいコーヒーの味を予想することを「分岐予測」と言います。
分岐予測が当たればStallを消すことが出来る=パフォーマンスを大幅に引き上げることが出来ますが...
予測に失敗したら一つのサイクルを一からやり直すことになります。
これを説明したのは....
あまりにも低い分岐予測の確率を持ったCPUが今まで語って来たブルドーザーだからです。
Bulldozerは何で糞プロセッサになったのか
まずブルドーザーはパイプラインがめっちゃくちゃ長いアーキテクチャです。(20段階)
↑この画像はPrescottのパイプラインです!
もちろんIntelの黒歴史であるPrescott(31段階)に比べたらましですが、Prescottは2004年の物でブルドーザーは2011年の物です。
しかも2004年のIntelは「Trace Cache」という、分岐予測に失敗しても途中から演算をやり直せるようにしてくれるCacheを置きましたが何故かBulldozerはこのTrace Cacheも持っていませんでした。
Trace Cacheがないなら少なくとも分岐予測を担当するこいつらが上手くやらなければならないのに、こいつらも普通ところか糞でした。
それに、ALU二つとFPU一つをちゃんと使い切るためには下の
3世代のスチームローラーのように二つのDecoderを必要となりますが
*整数ユニット(ALU)と実数ユニット(FPU)で演算を行うためにはフロントエンドのDecoderで命令を供給する必要があります。
AMDの経営陣:「お金も時間もない、適当に作れ」
の結果、大型Decoder一つでなんとか動けるように作ったのがこのBulldozerです。
そのおかげでブルドーザーの演算ユニット達(ALU+FPU)は絶対100%使い切ることが出来なくなりました。これはAMDも知っていた問題で、実際Bulldozerは元の計画より小さく作られたFPを持っていましたが、それでもボトルネックが起きるという、完全な設計のミスとしか言いようがないプロセッサです。
*ボトルネックはつまりこれです。
FPを小さく作った(=車の数を減した)のにDecoderの処理量が足りなさ過ぎてFPUもALUも全パフォーマンスを出せない(全車両が通れない)ということです。
とりあえず、このボトルネックの問題は上でも語ったように3世代スチームローラーでDecoderを二つに増やすことで解決されますが...
ブルードーザーの問題はその他にもありました。
L3Cacheを8MBにしたのはよかったですが、気が早すぎたか帯域幅は半分、レイテンシは二倍になり、効率が見てあげれないレベルまで落ちました。
*帯域幅=道路の幅(広くなったら車もデーターもたくさん通れます)
*レイテンシ=道路を通過する時間(短縮出来るほど車もデーターも早く行けます)
そして漏洩電流の問題、資金の問題など、いろんな問題があったのです。
さて、なんでAMDはこの問題だらけのこのプロセッサを出したのか?
AMDは元々このプロセッサを2014年以後に出すつもりでした。
そして2014年までの幅を
このPhenomⅡx6で埋めるつもりでしたが、足りない予算と経営悪化でやむを得なくブルドーザーを早めに出してしまったのです。
AMDをこう追い詰めたのは他の誰でもない
Intelです。
2007年、Intelは全てのPC製造社がAMDの製品を買わないようにロビー活動を行ったことがあります。
結局これがばれてAMDに莫大な賠償金を渡すことになりましたけど、既にAMDが受けた被害は莫大で経営が厳しくなった状況でした。
それにむりやりに出したブルドーザーの失敗が重なって社屋まで売却したくらいまで落ちたAMDはRyzenが出るまでIntelのライバルにすらならなかったのです。
これが産業廃棄物と呼ばれるブルドーザープロセッサ誕生の裏事情です。
では、こんなにボロ負けて資金の「し」の字もないAMDはどうやってコスパ最強と呼ばれるRyzenを作り出すことが出来たでしょうか?
CPUで圧倒的地位を持っていたIntelですが、Intelは世界一強力だと言われる米国の反独占法が適用されません。その理由は米政府がAMDを支援しているからです。
米環境保護庁が新しいサーバーのためのCPU開発費をAMDに支援し、その金で開発されるCPUが
このZenコアなのです。
AMDのコアの構造説明に時間がかかりすぎました。
次は遂に、古いCPUではないIntelとRyzenを比べてみます。
コメント
コメント一覧 (1)
DeC
がしました