web-dev-qa-db-ja.com

CPUクロックレートはどのように維持されますか?

私はウィキペディアからの記事 クロックレート を読んでいました:それはそれを言わなければなりません:

クロックレートは通常、CPUが実行されている周波数を指します。 CPUのクロックレートは通常、水晶振動子の周波数によって決まります。

だから、私は1GHzのクロックレート(またはプロセッサ速度?)を持っているかどうか疑問に思っていますが、水晶の周波数は何ですか?クロックレートと同じにすることはできませんか?

3
Sryia

水晶振動子はさまざまな周波数で振動する可能性があります。

水晶振動子は、数十キロヘルツから数十メガヘルツの周波数で製造されています。

ソース

そのため、マザーボードの製造元は、適切な周波数で振動する水晶を選び、それを 一部の電子機器 に通して、CPUに必要なクロック速度まで乗算します。

ウィキペディアの記事には、 一般的に使用される水晶周波数 をリストしたセクションがあります。

6
ChrisF

いいえそうではありません。水晶はタイミングメカニズムです。 CPUは水晶と同期して循環します。簡単な例は、広く愛されている Arduino Protoypingキットを見ることです。

16mHz(メガ、1つは8mHz)で実行されますが、オーバークロックして32mHzにするか、アンダークロックして8mhZにすることができます。

メガでは、水晶はそれを行うのに十分安いという理由だけでクロック速度を計算するために16mhzです。しかし、オーバークロックするには、Crystal speed * 2 = 32mhzと言います。

したがって、各CPUサイクル@ 32mhz = 0.5水晶発振。

基本を理解し、1ghz2ghzに進むことは、はるかに複雑な状況です。このようなクロック速度を実現するには、他の中間コンポーネントを作成する必要がありました。そのため、BIOSで乗数を設定して、プロセッサのサイクル速度を設定できます。

そして、このレベルでは、水晶ではなくバス速度を掛けています。実際のバス速度は、クリスタルを含むコンポーネントによって決まります。必要なバスに応じて、32khzまたは32mhz(古いISAバス))またはその他のものになる可能性があります。

したがって、RAMバス、グラフィックスBUS、CPU BUS、これらはすべてそれぞれのサイクル速度で実行されます。

マザーボードでは、私が使用した例よりもはるかに複雑です。

2
Piotr Kula

発振器は、システムが使用できる何らかの形式の時報を出力する、非常に一定のコンポーネント(通常はいくつかの電子機器が接続された水晶振動子)です。つまり、オシレーターが20msごとに1回「振動」するとすると(完全に任意)、システムは20msの長さを正確に認識し、そこから計算できます。

したがって、たとえば1Ghz CPUは1秒あたり1000000000サイクルを実行します。これをオシレーターと同期させたい場合は、すべてを分割します。したがって、20msは0.02秒であるため、CPUは1Ghzのクロック速度を維持することを認識しており、オシレーターが「ティック」するたびに20000000(20M)サイクルを実行する必要があります。

1
Turix