マルチコア

1つのチップに複数のCPUを封入したもの。
現在のCPUの計算速度は1GHz~4GHz(つまり1サイクルは0.25ns~1ns)なのに、メモリ(DIMMなど)から記憶を取り出すには13nsぐらいの時間がかかってしまう。もしCPUとメモリを直結するなら今のCPUの性能は明らかにオーバスペックだ。このため、CPUの近くに記憶容量は少ないが応答時間が短いメモリ(キャッシュメモリ)を取り付け、とりあえず使用頻度が多いデータはここに格納し、頻度の低いものを遅いメモリに配置し、見かけの速度を早くする工夫がなされている。しかし、遅いメモリとデータのやり取りをしている間はCPUの手を止める以外に方法は無い。そこで、CPUを何個か搭載しておけば、その間も早いメモリを使っているCPUがあれば、なんとか言い訳ができそうである。
しかしCPUを2個も積むと実装面積が結構増えそうな気がする。(単純にチップサイズが2倍になりそう)
そこで出てきたのがHT(ハイパースレッド)機構であるが、CPUに直結するキャッシュメモリの制御は当然HT仕様になっていなければキャシュミスが連発するので、HTで4CPUを作ることは可能だがキャッシュの構造が複雑になりその分L1キャッシュの応答性能が犠牲になる。
それなら、いっそのことCPUそのものを複数載せたほうが正直だし良くない?と云うことで、4コアとか6コアなどが出てきている。勿論、HTの併用も可能だ。
つまりCPUのマルチコアは、色々な仕様上の都合で、都度CPUが止まってしまうのは仕方が無いが、CPUに他の仕事も与えて、何かさせることに意義があるのだ。
では、いくつまでCPUを増やすのが効率が良いのだろうか?今のCPUは低速モードがあるのでその際1GHzのCPUと仮定すると、おそらく12個まで、16個も積んでしまうと常時メモリの奪い合いが起きてしまうだろう。
そんな訳でクアッドコアが速いのはメモリ(DIMM)が遅すぎるせいでしかないのだ。
もし、メモリの応答時間が一桁少なくなったら、マルチコアは過去の遺産(レガシー)となってしまうだろう。
なぜなら、今のCPUはそのチップサイズが数センチなので10GHzあたりが限界なのだ。今のCPUはシステムクロックで同期を取るように回路を設計している、1GHzならチップサイズは30cmが限界で、10GHzだったら、たったの3cmしかないからだ。
勿論、GPUは例外である。
 
 
 
 
 
 




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA