CPUのビットとGHz

CPU(Central Processing Unit)のビットと、GHzがどのような性能を示しているか説明しています。

CPUのビット

 CPUには、メモリから読み込んだ命令やデータを一時的に保管しておくレジスタがあります。レジスタは、命令やデータ、メモリのアドレス(どこにデータが保管されているか)等を保管出来ます。

CPUレジスタの役割

 32ビットCPUの場合、レジスタのビット幅は32ビットです。つまり、1つのレジスタで32ビットの情報を保存できます。64ビットCPUであれば、レジスタのビット幅は64ビットです。

 32ビットは約43億(=232)までの数字が扱え、64ビットでは約1,845京(=264)までの数字が扱えます。つまり、32ビットに比べて64ビットでは、約43億倍の数字が扱えるという事です。

 処理するデータ量が多い場合、1度に扱える情報が多い程、高速な処理が行えます。

 又、レジスタとの間で読み書きに使われるデータバスにも、32ビットや64ビット等のビット幅があります。

ビット幅は扱えるメモリ容量に影響する

 レジスタにはメモリのアドレスも保管出来るため、扱えるメモリ量もビット幅に影響されます。

レジスタは読み込むメモリのアドレスも保管する

 上記のように32ビット(16進数でFFFF FFFFまで)であれば、約43億アドレスが使えます。メモリは、1つのアドレスに1バイトのデータを保管出来るため、約43億バイト(=4GiB)のメモリまで扱える事になります。

 64ビットであれば、論理的には約1,845京バイト(=16EiB)のメモリまで扱えますが、実際にはOS等の制限で2TiB等が使える上限です。

 扱えるメモリ量が多くても、物理メモリの容量を超えるとハードディス等に保管されます。低速な読み込みとなるため、物理メモリの容量が多い方が高速処理を保てます。

 尚、GiBやEiB、TiB等の単位については、2進接頭辞をご参照下さい。

CPUのGHzは、クロック周波数を示す

 CPUには処理を行うタイミングがあります。このタイミングをクロックと言います。

 1クロックに1処理を行います。この処理の回数をクロック周波数と言い、Hzという単位で表します。

CPUはクロックに同期して処理を行う

 4Hzであれば、1秒間に4回処理を行えます。4GHzであれば、1秒間に40億回です。クロック数が多い程、処理を高速に行えますが、消費電力や発熱が大きくなります。

マルチコアとマルチスレッド

 CPUの性能は、ビット幅やクロック周波数だけで決まりません。

 CPUにはマルチコアやマルチスレッドといって、複数のCPUを持ったような構造をしたものもあります。

マルチコアとマルチスレッドのイメージ

 上記であれば、4つのコアにそれぞれ2つのスレッドがあるため、Windows等から見ると論理的に8個(=4×2)のCPUがあるように見えます。

 コアは、処理する部分が物理的に分けられていますが、スレッドは空いてる時間に他の処理を行うもので論理的に複数処理が出来るようにしています。

 各コアやスレッドは並列して計算出来るため、シングルコアやシングルスレッドのものと比較して高速に処理を行えます。

 並列に処理するためには、対応するプログラミングが必要ですが、クロック周波数が低くても並列数が多ければ高速に処理が可能な場合があります。

CPUの動作

 補足として、CPUの動作について説明します。CPUには、以下4つのステージがあります。

CPUのステージ
・フェッチ
 メモリから命令を読み込みます。
・デコード
 命令を数値から実行すべき内容に解読します。又、必要なデータも読み込みます。
・エグゼキュート
 命令を実行します。例えば、足し算する等です。
・ライトバック
 データをレジスタやメモリに書き出します。

 CPUは、上記をクロックに合わせて同じタイミングで処理させます。これが、1クロックにおける1処理です。タイミングが同じなため、同期式と呼ばれます。

 又、プログラムカウンタによって、次にどの命令を実行するかを管理しています。

 以前は、1命令のフェッチからライトバックが終わるまで、次の命令は実行出来ませんでした。

古いCPUで動作するのは1つのステージだけ

 今では、多くのCPUでエグゼキュートの最中に次のデコードを行う等、パイプライン処理が行われています。

エグゼキュートは命令1を処理、デコードは命令2を処理、フェッチは命令3を処理中になっています。

 このパイプライン処理もクロックに従って同期しています。

  • このエントリーをはてなブックマークに追加