頻度が増えないのはなぜですか?

クロッキングPC 多くの人は、90年代から2000年代初頭にマイクロプロセッサのクロック速度がどれほど速くなったか覚えているでしょう。 数十メガヘルツは急速に数百メガヘルツに成長し、数百メガヘルツはほぼ瞬時にギガヘルツ全体に取って代わり、次にギガヘルツはシェア、2ギガヘルツなどになりました。

しかし、ここ数年、周波数はそれほど速く成長していません。 1ダースのギガヘルツから、今では5年前とほぼ同じ距離にあります。 では、以前のペースはどこで消えたのでしょうか? 以前のように、周波数を「持ち上げる」のを妨げるものは何ですか?



以下のテキストは、マイクロプロセッサアーキテクチャになじみのない、またはあまり馴染みのない人を対象としています。 精通した読者には、適切なyuravの 投稿が 推奨されます。





ホットギガヘルツ



クロック周波数のさらなる増加は、確かに発熱の増加に関連しているという意見があります。 つまり、周波数を上げる「ナイフスイッチ」を正しい方向に向けることを妨げるものは何もないようです。そして、周波数は上がります。 しかし、プロセッサは非常に熱くなり、溶けてしまいます。



この意見は、コンピューター技術と関係がある多くの人々によって支持されています。 さらに、 オーバークロッカーの成功、 2回以上のオーバークロックプロセッサによって確認されています。 主なことは、より強力な冷却システムを配置することです。



前述の「サーキットブレーカー」と関連する熱放出の問題は存在しますが、これはギガヘルツの戦いの一部にすぎません...



メインブレーキ



異なるマイクロプロセッサアーキテクチャには、さまざまなオーバークロックの問題があります。 明確にするために、 ここでスーパースカラーアーキテクチャについて説明します 。 これらには、たとえば、Intelの開発の中で最も人気のあるx86アーキテクチャが含まれます。



クロック周波数を上げることに関連する問題を理解するには、まずその成長が何に基づいているのかを判断する必要があります。 さまざまなレベルのアーキテクチャを考慮して、頻度を制限するさまざまなパラメーターセットを区別できます。 ただし、 そのようなパラメーターが1つしかないレベルがあることがわかります。 つまり、選択できるブレーキは1つだけで、ハントが加速するたびに追加で解除する必要があります。



コンベアベルト



メインブレーキはコンベアレベルにあります。 コンベアはスーパースカラーアーキテクチャの心臓部です。 その本質は、各マイクロプロセッサ命令の実行が段階に分割されているという事実にあります(図を参照)。

ステージ

ステージは時間的に互いに続き、それぞれが別々のコンピューティングデバイスで実行されます。



特定のステージの実行が完了するとすぐに、解放されたコンピューティングデバイスは、同様のステージであるが異なる命令の実行に関与できます。



画像



この図は、期間t1で、第1命令の第1ステージが第1コンピューティングデバイスでどのように実行されるかを示しています。 期間t2の開始までに、第1ステージはすでに完了しているため、第2デバイスでの第2ステージの実行に進むことができます。 最初のデバイスは解放され、別の命令の最初のステージに渡すことができます。 などなど。 期間t4では、 4つの命令のさまざまな段階がコンベア上で同時に実行されます。



しかし、これはすべて周波数と何の関係があるのでしょうか? 最も即時であることが判明しました。 実際、さまざまな段階の期間は異なる場合があります。 同時に、同じ命令の異なる段階が別々の測定で実行されます。 マイクロプロセッサのクロックサイクル(および周波数)の期間は、最長のステージが収まるようにする必要があります。 次の図は、最長のステージ3を示しています。



画像



ビートを最長ステージより短くすることは意味がありません。 技術的には、これは可能ですが、マイクロプロセッサの実際の加速にはつながりません。



最長のステージが完了するまでに500ps(ピコ秒)かかると仮定します。 これは、周波数が2 GHzの自動車のサイクル時間です。 ここで、ビートを2倍短くしたい-250psとします。 そのように...周波数以外は何も変更しません。 そのような動きは、問題のステージが2サイクルで実行されるという事実につながるだけですが、やがて同じ500 psになります。 さらに、設計の複雑さが大幅に増加し、プロセッサの熱放散が増加します。



短いビートのために、短いステージがより速く「飛ぶ」ようになり、計算の平均速度が向上することを意味する場合があります。 ただし、これはそうではありません(図を参照)。



画像



最初は、計算が本当に速くなります。 しかし、すでに4番目のメジャーから、3番目のステージと後続のステージ(この例では4番目のみ)が残り始めます。 これは、3番目のコンピューティングデバイスがサイクルごとにリリースされるのではなく、2サイクルごとにリリースされるためです。 1つの命令の3番目のステージで占められていますが、別の命令の同様のステージは実行できません。 したがって、クロックサイクルの長さが250 psの仮想プロセッサは、クロックサイクルが500 psのプロセッサとして効果的に機能しますが、正式にはその周波数は2倍になります。



小さいほど良い



そのため、コンベアの観点から見ると、クロック周波数は、最も長いステージの継続時間を短くすることで、一方向にのみ増加させることができます。 最長のステージを短くすることが可能であれば、ビートをそのステージのサイズに縮小することが可能になり、そのサイズは縮小後に最長になります。 ビートが短いほど、周波数は高くなります。



現代の技術では、ステージのサイズに影響を与えることができる方法は多くありません。



そのような方法の1つは、より高度な技術プロセスへの移行です。 大まかに言えば、ナノメートル数のもう1つの減少です。 プロセッサのコンポーネントが細かいほど、実行速度は速くなります。 これは、電気パルスで克服しなければならない距離が短くなる、トランジスタのスイッチング時間が短くなるなどの事実により発生します。すべてが均一に加速されると仮定することは簡単にできます。 最も長いものを含むすべての段階の期間は、ほぼ均等に短縮されます。 その後、頻度を上げることができます。



とても簡単に聞こえますが、ナノメートルスケールを下に移動することは非常に複雑なプロセスです。 それは現在の技術レベルに大きく依存しており、このレベルが許す以上に進むことはできません。 しかし、マイクロプロセッサの製造業者は絶えずプロセスを改善しており、これによる頻度は徐々に忍び寄っています。



患者を切る



頻度を上げるもう1つの方法は、最も問題のある段階を小さな段階に「カット」することです。 結局のところ、指示がすでにステージ上で粉砕することができた。 そして、それは繰り返し可能でした。 スライスを続けませんか? その後、プロセッサはより速くのみ動作します!



なります。 ただし、切断は非常に困難です。



家の建設との類推をします。 家は床ごとに建てられています。 フロアを指示に例えてみましょう。 ステージ上の床の建設に勝ちたい。 まず、実際の構築と装飾の2つの段階を考えます。 最後に建てられた床で仕上げが行われている間、新しい床の建設を開始することを妨げるものは何もありません。 主なことは、2つの異なるチームが建設と装飾に従事していることです。 すべてがうまくいくようです。



次に、さらに進んで、既存の2つのステージをグラインドします。 たとえば、仕上げは壁紙と天井の天井に分割できます。 この分離に問題はありません。 画家が1つのフロアをペイントした後、前のフロアに壁紙の接着が残っていても、次のフロアに移動できます。



建設はどうですか? 建設を壁と敷設床に分解したいとします。 このような分離は可能ですが、意味はありません。 ある階に壁が建てられた後、天井があるまでチームを送って次の階に建てることはできません。 正式に2つの段階に構造を分割することができたという事実にもかかわらず、壁と天井に特化した個々の旅団を完全に占有することはできませんでした。 一度に機能するのはそのうちの1つだけです!



マイクロプロセッサにも同じ問題があります。 互いに指示を固執する段階があります。 このような段階を小さな段階に分割することは非常に困難です。 これには、プロセッサアーキテクチャの非常に深刻な変更が必要です。 同様に、1つの家の複数のフロアを同時に構築するには、建設に重大な変更が必要です。



スイッチを回す



それで、オーバークロッカーがしていることに着きました。 プロセッサが動作する電圧を上げます。 このため、トランジスタ(プロセッサを構成する主要な要素)の切り替えが速くなり、すべてのステージの長さがほぼ均一に短縮されます。 頻度を増やす機会があります。



とても簡単です! しかし、熱放散には大きな問題があります。 簡単に言えば、プロセッサによって割り当てられる電力は次のとおりです。

P〜C dyn * V 2 * f

ここで、C dynは動的容量、Vは電圧、fはプロセッサ周波数です。



ダイナミックキャパシティがわからなくても問題ありません。 ここでの主なものは緊張です。 二乗です! ひどく見える...



実際、さらに悪いことです。 私が言ったように、トランジスタをより速く動作させるには電圧が必要です。 トランジスタは一種のスイッチです。 切り替えるには、十分な電荷を蓄積する必要があります。 そのような蓄積の時間は電流に比例します:それが長いほど、電荷はトランジスタに速く到着します。 次に、電流は電圧に比例します。 したがって、トランジスタの応答速度は電圧に比例します。 ここで、トランジスタの応答速度の増加に比例してのみプロセッサ周波数を増加できることに注意してみましょう。 上記を要約すると、次のとおりです。

f〜VおよびP〜C dyn * V 3

周波数が直線的に増加すると、発熱は3次の法則に従って増加します! 周波数を2倍に増やした場合、プロセッサから8倍以上の熱を除去する必要があります。 そうでなければ、それは溶けます。



明らかに、この周波数を上げる方法は、極端なアクセラレータで使用されていますが、エネルギー効率が低いため、プロセッサメーカーにはあまり適していません。



それだけですか?



そしてそれだけです。 まあ、またはほとんどすべて。 誰かが、電圧を上げなくてもマイクロプロセッサのクロック周波数をわずかに上げることができたことを思い出すかもしれません。



これも可能ですが、非常に限られています。 プロセッサは、製造業者によって広範囲の外部条件(ステージの長さに影響を与える)で動作するように設計されているため、一定の頻度で製造されます。 たとえば、最も長いステージでは、プロセッササイクル全体ではなく、サイクルの95%が必要になる場合があります。 したがって、頻度をわずかに増やす機会があります。



ところで、私はプロセッサの独立したオーバークロックに従事することを誰にも勧めません。 それを行うすべての人は、自分の危険とリスクでこれを行います。 不適切なオーバークロックは、プロセッサだけでなく個人的にも危険です!



また、説明したものに加えて、ステージの長さに影響を与える他の方法があることに注意してください。 しかし、それらはここに示されているものよりもはるかに重要ではありません。 たとえば、温度変化は電子機器全体の動作に影響します。 しかし、深刻な効果は非常に低い温度でのみ達成されます。



一般的に、周波数を上げるために戦うことは非常に難しいことがわかります...それにもかかわらず、この戦いは徐々に繰り広げられており、周波数はゆっくりと忍び寄っています。 同時に、プロセスが遅くなったため、悲しむ必要はありません。 結局、マルチコアのようなものが現れました。 本質的に、私たちとの違いは何ですか、私たちのコンピューターは、その頻度が上がったという事実のために、またはタスクが並行して実行され始めたために、より速く動作し始めましたか? さらに、2番目のケースでは、追加の機能と柔軟性が得られます...



All Articles