充電速度が変わらない場合、コンピューターはどのように高速になりましたか?


48

発明以来、コンピューティング速度が劇的に向上したことは誰もが知っています。しかし、私を困惑させているのは、もしあなたが今日材料に電流を流した場合、50年前に同じ材料で電流を流したのと同じ速度で移動するだろうということです。

それを念頭に置いて、コンピューターがどのように高速になったのでしょうか?これらの信じられないほどの速度向上をもたらしたのは、プロセッサ設計のどの主な領域ですか?

次の1つ以上の可能性があると考えました。

  • プロセッサーの小型化(電流が移動する距離が短くなりましたが、ここでは限界的な利益しか得られないように思えます)。
  • より良い材料

4
それはいい質問です。もちろん、材料自体はそれほど重要ではありません-過去100年で、自動車はより高速になりましたが、ガスは同じガス(多かれ少なかれ)であり、エンジンだけがより効率的になりました。最初の回答はここにありますが、詳細な回答が続くことを願っています。
ランG.

ここではサイズが大きな問題です。しかし、私たちはチップ設計の物理的障壁に近づいています(または近づいています)。(私はここの専門家ではありません、他の人はこれについてもっと知っているでしょう)。もちろん、プロセッササイズだけがパラメーターではありません。
A.シュルツ

CPUのタクト周波数は、使用される材料の電子の速度によって制限されますが、他の要因が支配的です。
ラファエル

そもそも彼らは最適に高速ではなかったし、まだ高速ではないからです。光の速度は速度を決定するステップではありません。
user207421

1
恥知らずなプラグイン:superuser.com/questions/543702/…–
bwDraco

回答:


54

今日材料に電流を流した場合、50年前に同じ材料で電流を流した場合と同じ速度で移動します。

それを念頭に置いて、コンピューターがどのように高速になったのでしょうか?これらの信じられないほどの速度向上をもたらしたのは、プロセッサ設計のどの主な領域ですか?

最初の仮説が間違っているため、誤った結論が得られます。CPUの速度はCPU内の電子の速度と同等だと思います。

実際、CPUは同期デジタルロジックです。速度の制限は、論理式の出力が1クロック周期内で安定することです。トランジスタで実装されたロジックでは、制限は主にトランジスタを切り替えるのに必要な時間に関連しています。チャネルサイズを小さくすることで、より高速に切り替えることができます。これが、CPUの最大周波数が50年間改善される主な理由です。今日、トランジスタの形状も変更してスイッチング速度を上げていますが、私が知る限り、今日ではFinFETを作成できるのはIntel、Global Foundries、TSMCだけです。

ただし、CPUの最大クロック速度を向上させる方法は他にもいくつかあります。論理式をいくつかの小さな式に分割すると、各ステップを高速化し、クロック速度を上げることができます。同じアクションを実行するには、より多くのクロック周期も必要ですが、パイプライン技術を使用して、1秒あたりの命令のレートをクロックレートに合わせることができます。

今日、電子の速度は制限になっています。10GHzでは、電気信号は3cmを超えて伝播できません。これは、現在のプロセッサのおおよそのサイズです。この問題を回避するには、チップに複数の独立した同期ドメインを配置して、信号伝搬の制約を緩和することができます。しかし、これは、トランジスタスイッチング速度、熱放散、EMC、およびおそらく他の要因のうち、1つの制限要因にすぎません(ただし、シリコンファウンドリ業界にはいません)。


これは良い情報です。クロック速度に上限があるとは考えたこともありませんでした。
ニック

3
10GHzでの3cmは楽観的です。ワイヤ内の電子は、真空中の光子よりかなり遅い傾向があります。
8ビットツリー

6
@ 8bittree:電子の速度は関係ありませんか?重要なのは、信号の速度であり、はるかに高速です。
ハリージョンストン

1
@HarryJohnstonうーん...あなたはウィキペディアによると正しいようです。しかし、信号自体は依然として光よりも遅いです。10GHzで3cm は真空中の光に
-8bittree

1
より小さなトランジスタを高速化することに加えて、チップ上にさらに追加できます。回路には時間とスペースのトレードオフがあるため、トランジスタを増やすと回路が高速になります。すなわち。数十個のトランジスタから32ビット加算器を作成できますが、1回の加算を計算するには多くのクロックティックが必要です。最新のIntel CPUは1クロックティックで実行できますが、100,000のトランジスタが必要だと思います。
BlueRaja-ダニーPflughoeft

15

CPU全体の速度に影響する多くの複雑な変数がありますが、主なものはクロック速度で、2000年代半ばに増加し、物理的な制限により平坦化されました。チップ損失/リークを補うために、チップごとの消費電力もその期間にわたって増加しました。CPUチップが熱くなりすぎて、冷却技術がより重要になり、より多くのワット数を適用できませんでした(文字通りそれらを溶かすことなく!)。

Extremetech.comは、ムーアの法則が実際には主にDennardスケーリングによって促進されると考えられていることを指摘する素晴らしい調査を提供しています。後者は2000年代半ばに崩壊しました。キャッシュ、CPU並列性/マルチコアなどのハードウェア機能の変曲点をマスクする傾向があるチップの「速度」(「速度」は単なるクロック速度ではなく全体的なコード実行時間として測定される)に関係する他の多くの設計要因/改善があります、分岐予測など、より小さなゲート幅で追加されました(したがって、追加機能のためにチップあたりのゲート数がはるかに多くなりました)。また、ゲート幅は減少するのを止める傾向があるか、少なくとも各世代でそれほど速く減少しない傾向があります。

なぜこれらの制限傾向はあまりよく知られていないのですか?これらの傾向を最もよく知っている企業の中には、「最も失うものが多く」、実際にそれらを公表する可能性が最も低いものがあります。たとえば、数十億ドルに相当するインテルは、将来のパフォーマンスの制限または低下を示す独自の内部データを公開する可能性は低いでしょう。

フォトニックチップ、チップが多層に配置された3Dチップ、量子コンピューティング、ナノチューブなどのナノテクノロジーなど、まったく新しいトレンドにつながる可能性のある新しい可能性が地平線上にあります(ただし、一部にはほぼ完全に異なる技術/製造技術が含まれます)トランジスタなど



私が長く望んでいたことの1つは、各グループが統一されたメモリシステムを持ち、すべてのコアが共通のメモリシステムにもアクセスできる、コアグループの概念に対するオペレーティングシステムと言語サポートの開発です。「常に常に同じメモリを見るスレッドを生成したい」というコードがあり、同じメモリを見ることになっているすべてのスレッドが同じコア。一部のアルゴリズムは、このような保証が利用可能な場合にはるかに効率的にすることができますが、多くのシステムでは唯一の
...-supercat

...それを達成する方法は、アプリケーションがCPUコアを選択し、他のスレッドでスレッドを実行できないようにすることです。これは非常に恐ろしいアプローチです。
supercat

2
クロック速度は、過去10年間で大幅に上昇していません。コアの追加、単一の命令での命令セットの実行など。他の場所でのボトルネックの削減。メモリ帯域幅はすべて、現代のCPUの「速度」に大きく寄与しています。
ジェームズライアン

5

追加のプロセッサへの委任

別の考慮事項(他の優れた答えに加えて)は、他のプロセッサへのタスクの委任です。初期のコンピューティング時代には、プロセッサは1つしかありませんでした。グラフィックスの場合、計算は同じCPU内の他の計算と共有されていました。現在、グラフィックス処理用の個別のプロセッサがあります。

マルチコア

最新のプロセッサの多くは、同じシリコンに複数のコアを持っています。同じシリコンを共有しているため、チップから別のコア/プロセッサへの移行が遅くなることによる影響はほとんどありません。例:グラフィックプロセッサ。

メモリとアドレスの拡張

初期の8ビットマイクロプロセッサは、今日の32ビットおよび64ビットプロセッサよりもアドレス範囲が狭いものでした。最新のプロセッサではメモリ範囲が拡大されているため、外部ストレージにアクセスする必要がなく、メモリ内でより多くの計算を実行できます。

これは、オンチップメモリ​​にも適用されます。大きいアドレス空間により、シリコンの外側に大きなアドレス空間を残しながら、中央コアにより近い大きなメモリが可能になります。

パイプラインとキャッシュ

メモリが安価になるにつれて、現在のコンピューターは、データと命令のキャッシュだけでなく、より洗練されたデータと命令のパイプラインを実装しています。これにより、低速のメモリ(シリコンの外部)から内部キャッシュにフェッチする必要性が減り、実行速度が向上します。一部のプロセッサには、for命令キャッシュにループを含める機能があります。

概要

今日のコンピューターは、トランジスタとシリコン技術の進歩だけでなく、タスクを他のプロセッサー/コアに委任しているため、はるかに高速です。メモリの高速化と低価格化により、プロセッサはCPUの近くに多くのメモリを持つことができます。アドレス範囲により、より多くのメモリを使用できるため、外部ストレージへのフェッチが少なくなります。レジスタサイズを大きくすると、サイクルごとにより多くのデータをフェッチできます(32ビットシステムでは4バイト、8ビットシステムでは1バイト)。複数のコアを使用すると、操作をシリアル化するのではなく、並列化できます。


4

コンピュータ速度のほとんどすべての進歩は、次のいずれかの分野からもたらされています。

より小さなトランジスタ

トランジスタを小さくすると、次の2つのことが起こります。

  1. それらは物理的に互いに近いため、電気信号が発信元から宛先に移動するのにかかる時間は短くなります。そのため、電気信号は50年前より速く移動することはありませんが、現在ではより短い距離を移動することがよくあります
  2. より多くのトランジスタをチップ上に含めることができます。つまり、同時により多くの「作業」を行うことができます。トランジスタを追加するほど、有用な作業を見つけるのが難しくなりますが、多くの巧妙なトリックが使用されます(以下を参照)。

命令ごとの「有用な作業」の増加

たとえば、一部のプロセッサには整数を乗算または除算する命令がありません。代わりに、このタスクは遅いソフトウェアルーチンで実行する必要があります。乗算および除算命令を追加すると、処理速度が大幅に向上します。浮動小数点命令を追加すると、浮動小数点数を必要とするソフトウェアを高速化できます。

命令ごとにより多くの「有用な作業」を行う重要な方法は、単語サイズを増やすことです。32ビットの数値で演算を実行できるCPUは、多くの場合、16ビットまたは8ビットのCPUと同じタスクを実行するために必要な命令がはるかに少なくなります。

一部のプロセッサは、いくつかのことを一度に行う命令、特に複数のデータ項目に対して同じ操作を行う命令(SIMD)をサポートしています。

サイクルごとのその他の命令

「クロックサイクル」は、プロセッサが現在の状態から次の状態に移行する方法です。ある意味では、プロセッサが一度に実行できる作業の最小単位です。ただし、特定の命令にかかるクロックサイクル数は、プロセッサの設計によって異なります。

パイプラインプロセッサの出現により、個別の命令が「オーバーラップ」することが可能になりました。つまり、前の命令が終了する前に開始されます。ただし、特定の命令は次の命令を無効にする可能性があり、次の命令が部分的に実行されるまでわからないため、事態は複雑になります。(パイプラインプロセッサには、すべてが正常に機能することを確認するロジックが含まれていますが、パフォーマンス特性はより複雑です。)

スーパースカラープロセッサはこれを次のレベルに引き上げ、文字通り2つの命令を同時に実行し、順不同の実行によりさらに1ステップ実行し、順不同で命令を実行できます。これらの機能は、命令ストリームの分析を必要とし、どの命令が互いに衝突しないかを調べます。

そのようなトリックは他にもありますが(例:分岐予測投機的実行)、より重要なのは全体像です:

  • すべての命令が完了するまでに一定数のクロックサイクルが必要です(必ずしも一定ではありません)
  • しかし、複数の指示を一度に進行できます
  • したがって、測定可能な「サイクルあたりの命令数」があります。これは、ハイエンドプロセッサでは1を超えています
  • しかし、それはワークロードに非常に強く依存します

1秒あたりのサイクル数を増やす

言い換えれば、より高いクロック速度。クロック速度を上げると、発生する熱が増加するだけでなく、回路の安定化にかかる時間制限が小さくなるため、より厳格なチップ設計が必要になります。実用的な限界に達した2000年代まで、私たちはこれから多くのマイレージを得ました。

適切なタイミングで適切な場所にあるデータ

CPU内のコンポーネントは、トランジスタの縮小によりますます近づいていますが、CPUとRAMは5〜10 cm離れています。命令がRAMから何かを必要とする場合、その命令は完了するのに5または6サイクルかかりません。約200かかります。これはフォンノイマンのボトルネックの問題です。

これに対する主な武器はキャッシュです。最近アクセスしたデータは再びアクセスされる可能性が高いため、CPUチップ内の特別なメモリ(キャッシュと呼ばれる)に保持され、アクセスがはるかに高速になります。

ただし、他の手法(パイプライン処理分岐予測など)は、データの到着を待っている間にプロセッサーが有用な作業を行えるようにし、どのデータがすぐに必要になるかを予測するのに役立ちます。

複数および/または特殊なプロセッサ

複数のプロセッサよりも単一のプロセッサ用のソフトウェアを書く方がはるかに簡単です。ただし、パフォーマンス/コスト/電力消費のメリットにより価値がある場合もあります。

また、特定のプロセッサは特定のタスクに特に適しています。たとえば、GPUは、2Dおよび3Dのグラフィックとエフェクトのレンダリングに必要な計算用に特別に設計されています。

マルチコアプロセッサは、本質的に単一チップ上の複数のプロセッサです。


3

コンピューターが単位時間あたりにより多くの計算を実行できる場合、コンピューターはより高速であると見なされます。各計算は以前よりも高速に実行されることはありませんが、実行される計算は増えています。良い例えは、ランナーがとるステップの数です。ランナーがムーアの法則に従って行動した場合、ランナーは2年ごとに2倍のステップを踏むことができます。本質的に、ランナーは2年前にランナーが行ったのと同じ時間で2倍の距離をカバーすることになります。距離を時間で割ると速度になります。2 X距離は2 X速度に等しくなります。


3

コンピューター/ CPUの処理能力は、実際に電気が移動する速度ですが、電源をオン/オフする速度です。流れる電流と流れない電流をより速く切り替えることができるほど、CPU内で処理したり、回線に送信したりする情報が増えます。


2

PCで使用される一般的なプロセッサでは、熱放散が10年以上にわたって制限要因となっており、PCの空冷プロセッサは約4 GHzに制限されていました。水冷はこれを約5 GHzに上げ、窒素冷却はクロックレートを約6 GHz〜6.5 GHzに押し上げるために使用されています。

クロックレートは、基本的に電圧と回路ロジックサイズの関数です(スイッチが状態を変更するのにかかる時間)。電圧が高いほど、または回路ロジックが小さいほど、速度は速くなりますが、通常、回路ロジックサイズの縮小に伴い密度が増加するため、放熱の問題が発生します。高密度の場合、熱を放散するための熱伝導材料のための余地はあまりありません。密度を下げるとコストが増加し、回路の長さが長くなるため伝搬遅延も増加します。

CPUはここ数年でそれほど速くなっていません。現在のIntel i7 4790K(4.0 GHz、4.4 GHz Turbo)は、第2世代Intel i7 2700K(3.5 GHz、3.9 GHz Turbo)、その他より速いクロックレート(約14.3%高速)よりも。一方、3Dグラフィックスは並列操作を利用できるため、ビデオカードのパフォーマンスは過去4年または5年で約3倍に向上し、一部は3,000以上のサブコアに相当します。


2

すでに与えられた答えは良いですが、それらはすべて非常に複雑に見えます!

「TLDR」の簡単な答えは、「論理ゲートの数」と「それらの論理ゲートがどれだけ早く起動できるか」です。1と0のような論理ゲートを考えてください。これは単なるトランジスタ/真空管/何でもオンまたはオフになります。1はオン0はオフです。

電気は速くも遅くも動きませんが、1と0自体が小さいため、より多くの1と0をチップに詰め込むことができます。そして、時間の経過とともにそれらをより速く反転させることができます。それは少し簡単な答えになりますか?


2

最大の2つの要因は、トランジスタがとんでもない程度に縮小したという事実です。したがって、現在では10億個をはるかに超えるトランジスタを備えたスマートフォンがあります。より高速なスイッチングは、より高速に直接変換されます。トランジスタの数が多いほど、言及されている他の多くの改善を可能にするため、間接的に速度が向上します。トランジスタが多いためキャッシュがあります。より多くのトランジスタがあるため、より多くのレジスタがあります。より多くのトランジスタがあるため、ベクトル命令があります。より多くのトランジスタがあるため、デュアル、クアッドコア、または10コアプロセッサがあります。

設計が改善されたため、はるかに少ない程度で速度が改善されました。たとえば、トランジスタが多いために乗算器が速くなるだけでなく、より良い方法を使用するためです。分岐予測は、使用可能なトランジスタを増やすだけでなく改善されました。しかし、総じて、これは10億個のトランジスタの総当たりに比べると小さな効果です。

(最初のMacのプロセッサは、68000個のトランジスタを搭載していたためMotorola 68000プロセッサと呼ばれていました。新しいiPadには約20,000倍以上あります)。


0

私は機械エンジニアなので、これがプロセッサの速度にどれだけ影響するか、またはそれが制限要因になっているかどうかはわかりませんが、その背後にある物理は健全です。回路のインダクタンスとキャパシタンスは、デジタル電圧信号の立ち上がりと立ち下がりの速度に影響を与えます。したがって、スイッチング速度に影響します。理想的には、スイッチング信号はすてきな方形波になります。実際には、それらはわずかに変形し、端で傾斜しています。信号はハイになり、次のクロックサイクルの前に読み取られるのに十分な長さでなければなりません。基本的に、信号波には上部に「フラットスポット」が必要です。切り替えが速すぎると、先のとがった波の信号が多くなります。デジタル信号に詳しい方は、必要に応じて明確にすることができますが、その考えは正しいです。


2
ようこそ!私の知る限り、あなたの言うことはすべて真実です。しかし、コンピューターが長年にわたってより高速になった方法についての質問にどのように答えているのかわかりません。
デビッドリチャービー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.