• ベストアンサー

CPUについて

Xbox360のCPUについて質問したいのですが、 Xbox360のCPUはコアが3つあります。 また対称性ということで3つとも同じ性能を有しているそうなのですが、なにかタスクが与えられた時の処理の流れは タスク→コアの1つ→ほかの2つがうけとる。 なのか タスク→なにかが3つにわける→コアの3つがそれぞれうけとる。 のどちらなのでしょうか? あいまいな質問かもしれませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • parts
  • ベストアンサー率62% (6366/10151)
回答No.1

SMP(Symmetric Multi-Processing)は確かに対称型マルチプロセッシングですが・・・。それは、ASMP(Asymmetric Multi-Processing)の反対の意味と言うだけですからね。 パソコンを考えれば分かることですが、X-BOX360のOS(X-boxOS)はWindowsNTベースでそれに.Net FrameworkとDirectXのDNAを搭載したものです。タスクは、NTベースのカーネルが管理します。 そのため、パソコンと同じでアプリケーションの設計でどのように処理を分散するかが決まります。ただし、カーネルによるスケジューリングとタスクの切り替え管理によって複数のバックグラウンド処理が伴うときには、カーネルが空いているリソースに処理を分散します。 SMPは基本的にまずはOS側で処理をどのプロセッサで行うかを決めます。OSがCPUに命令を受け渡し、分散できる命令であれば、CPU上の調停装置の指示でどんどんと空いているCPUに命令を送り込みます。 その命令がシングルのタスクである場合は、そのコアだけで原則処理します。 即ち常に3つのコアがバランス良く使われるとは限りませんし、他の2つは使われずに処理が完了するケースもあります。ただ、メモリやシステムリソースを一つのOSやアプリケーションが共有することができるのが対称という意味です。1つ1つの命令を3つのコアに分散しているわけではありませんが、3つに分散して処理することもできれば、1つや2つのプロセッサだけで処理することもできる。または、2つのプロセッサがビジー(忙しい)状態なら次の処理は3つ目のプロセッサに割り振ることもできるという自由を与えられたのがSMPです。 ちなみに、これに対する非対称(ASMP)とはプロセッサ一つ一つにこれは、○○に使うプロセッサですよと最初から決めて、それだけに専念させるマルチプロセッサ概念です。例えば、プロセッサ0(1個目のコアやCPU)は、OSを制御しなさい。プロセッサ1はミドルウェアを管理しなさい。プロセッサ2は稼働するアプリケーションを動かしなさいといった形で、それ専用にプロセッサを割り振ります。 例え、プロセッサ0のOSの処理に余裕があり、プロセッサ2のアプリケーションの動作がリソース不足で他のCPUの助けを借りたいと思っても、プロセッサ0のリソースを割り振れないというのがASMPです。

yuritasu
質問者

お礼

ほんとにわかりやすい説明ありがとうございます。 よくわかりました。非対称の方も調べていたので補足の説明もたすかりました。初めての質問だったのですけど、すばらしい解答もらえて感動してます。 もう一つだけ聞きたい事があるのですが、非対称の方は最初から専門をわけるとあるのですが、これはソフトウェア側が決めるのでしょうか? 何度もすみません。

関連するQ&A