私は最近、回路上に2つの発振器を備えたSTMプロセッサに出会いました。1つは高速動作用で、もう1つは低電力用だと思います。
クロック速度を任意の周波数に変更できるデスクトッププロセッサのようなもの(理由内)- 物理的にこれを行う方法は?
私は最近、回路上に2つの発振器を備えたSTMプロセッサに出会いました。1つは高速動作用で、もう1つは低電力用だと思います。
クロック速度を任意の周波数に変更できるデスクトッププロセッサのようなもの(理由内)- 物理的にこれを行う方法は?
回答:
これは、フェーズロックループ、またはPLL と呼ばれるデバイスを使用して行われます。基本的なPLLのブロック図を次に示します。
この回路のシミュレーション – CircuitLabを使用して作成された回路図
マザーボード上の発振器はCPUクロック周波数で動作せず、代わりに100 MHz程度の周波数で動作します。この発振器は、既知の安定した基準周波数としてのみ機能します。CPU内部では、実際のクロック周波数は電圧制御発振器、またはVCO によって生成されます。VCOは比較的広い範囲で周波数を生成するように調整できますが、それ自体では特に安定または正確ではありません。特定の制御電圧では、周波数は部品ごとに、また供給電圧と温度によって変化します。位相ロックループは、VCO出力周波数を基準周波数との特定の関係にロックするのに役立ちます。
たとえば、基準周波数が100 MHzで、基準が1(D)で除算され、VCOが30(M)で除算されているとします。これにより、出力周波数は100 MHz * 30/1 = 3 GHzになります。この関係は、分周器の設定を変更するだけで変更できます。これは、ソフトウェアで制御レジスタを介して実行できます。周波数をオンザフライで変更することは、分周器の値を変更するほど単純ではない場合があり、CPUが短すぎる「グリッチ」またはクロックパルスを認識しないように周波数を変更する必要があることに注意してください。2つのPLLを使用してそれらを切り替えるか、PLLが新しい周波数で安定するまでクロックを一時的に停止するか、別のクロックソースに切り替える必要がある場合があります。
PLLはあらゆる場所で使用され、固定された安定した基準から正確で簡単に調整可能な周波数を生成します。Wi-FiカードとWi-Fiルーターは、変調されたデータをアップコンバートおよびダウンコンバートするために無線内部で使用される信号であるローカルオシレーター周波数と呼ばれるものを生成することにより、適切なチャネルを選択します。多くの場合、FMラジオは1つを使用して、受信周波数をソフトウェアで制御し、さまざまなステーションを簡単に呼び出すことができます。また、PLLは、イーサネット、PCIエクスプレス、シリアルATA、Firewire、USB、DVI、HDMI、DisplayPort、およびその他の多くの最新シリアルプロトコルのシリアライザーおよびデシリアライザーを駆動するために使用される高周波クロック信号を生成するためにも使用されます。
以前の回答に加えて...
STM microには、ほぼ確実にリアルタイムクロック用の2番目の発振器があります。これにより、チップの残りの部分と回路の残りの部分の電源がオフになっている間、クロックは動作し続けます(最小限の電力を消費します)。その後、デバイスは時計とカレンダーを実行し続けることができ、通常はタイマーでメインプロセッサを再起動することもできます-組み込みデバイスに役立つすべてのもの。
非常に慎重に !
CPUには、バイナリプログラマブルプリスカラとVCOを備えたPLLがあり、フロントサイドバスFSBクロック(たとえば100MHz)を乗算するようにカウンタを駆動します。
この動的な省電力モードは、適切なCPUドライバー、CPU、OS、およびBIOSでCPU使用率が低い場合に自動的に選択されます。
私のi7(8cpu)は3101 MHzから800 MHzに移行し、即座に1100、1300、1500などのステップを実行します。
私の場合のようにBiosがx31を選択した場合、CPUは100MHz x 3100MHzで動作し、CPUのバイナリカウンターでx8からx15を選択してCPU電力を削減し、同時に0.9VでCPUチップ電圧を調整しますすべての地域で電力を節約します。
Win8.1の右上隅にCPU%およびメモリ%とともにカーソルを表示できます