dポイントプレゼントキャンペーン実施中!

いつもお世話になります。
CPU,MPUに詳しい方回答をお願いします。

私は、最近の(M)CPUは勉強していませんが、8ビットマイコンの勉強は遠い昔勉強しました。
今更なのですが、Windows8で「msinfo32」を実行すると私のノートPCは
【Core i3-3120M CPU ` 2.5GHz、2個のコア、4個のロジカル プロセッサ】
とあります。
一方、Core i3-3120M CPUのスペックは以下です。

Intel® CoreTM i3-3120M Processor (3M Cache, 2.50 GHz)
↓↓
http://ark.intel.com/ja/products/71465/Intel-Cor …

【質問1】ロジカルプロセッサとはスレッド数のことを言っているのでしょうか?
それとも違う意味でしょうか?

【質問2】マルチスレッドの場合、1クロックでそのスレッド数、私のPCの場合、最大で四つの機械語の命令を同時処理(処理に取り掛かっている)している。
という認識でいいのでしょうか?
それとも、コアが二つなので二つの機械語命令が処理中で1クロックで二つの命令にしか対応していないのでしょうか?こちらだと思うのですが…

勿論、スレッドなので常にフルで稼働しているとは限らず、別のスレッド待ち時間などあるとは思います。

専門用語などWebで調べがつく範囲は使用した回答で構いません。
ロジカルプロセッサという言葉の検索でWeb上であまりいい処にヒットせず、調べがつきませんでした。
専門的な知識がほしいので、なるべく、専門家の方、あるいはCPUに詳しい方に専門的なご回答をお願いします。

A 回答 (6件)

> ロジカルプロセッサとはスレッド数のこと


はい。
この同時に複数のスレッドを動かす仕組みを一般的に「同時マルチスレッディング」と呼び、Intelは「ハイパースレッディング・テクノロジー」と呼びます。

> 最大で四つの機械語の命令を同時処理
> コアが二つなので二つの機械語命令
どちらも違います。もっと多いです。
まず、1コア1スレッドであっても、1つのプログラムの中の連続する命令を同時に実行することができます。(さらに言えば連続していない命令も順序を変えて同時に実行することすらあります(アウトオブオーダー実行))
これが同時マルチスレッディング対応で1コア2スレッドならば、「2つの別のプログラムの中の命令を」同時に実行することができます。

この回答への補足

皆さま、ご回答有難うございました。

現時点で私が調べた限り、二つの疑問に対して一番的確なご回答だと判断しこの回答をベストアンサーとさせていただきます。
なお、現時点での別サイトを読んだりして理解した私なりの判断なので間違った理解があるかもしれませんがご容赦ください。

時間を見てもっと、勉強したいと思います。
重ねて、皆さま、ご回答有難うございました。

補足日時:2014/10/03 12:19
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

既出の回答で「ハイパースレッディング・テクノロジー」などを調べて改めて拝見させて頂くと調べた範囲で私の疑問に対し、一番ストレートなご回答のように思います。
新しい、用語「アウトオブオーダー」もとても勉強になりました。

とても、勉強になる回答を賜り感謝します。
重ねて、ありがとうございました。

お礼日時:2014/10/01 18:19

シニア向けパソコンの指導をしてます。



初級~中級クラスでの説明は・・・・・

長机一杯のそろばんを CPU と思って貰い
  2コア なら 2台 I5なら 3台 i7 なら 4台
  そろばんを並べて 手分けして複数の計算を
  するとき・・・

長いそろばんを一人で全ての桁を使う事はまず無いので
  長いそろばんを 左右に分けて そろばん1台で 2つの計算を
  同時に行ってます。

・・・以上のように説明してます。

ご参考に・・・
    • good
    • 0
この回答へのお礼

ご回答、痛み入ります。

そろばんの例えは面白いですね!
コアが2つ、でスレッドが4つがCore i3のスペックなのでそろばんが二つで二人が一つのそろばんを使って四人が計算している。

雰囲気はつかめますが何故、そんなことができているのか?
私が知りたいのは具体的な(M)CPUの動作レベルの話です。
専門用語も当方で調べますので、具体的にご存知でしたらご回答の程、宜しくお願いします。

ご回答ありがとうございました。

お礼日時:2014/10/01 16:28

タスクマネージャ立ちあげて、パフォーマンスタブを開いてみる?

    • good
    • 0
この回答へのお礼

ご回答、痛み入ります。

OSの扱っているプロセス数やスレッド数を知るには便利ですね!
(M)CPUのスペックのスレッド数(core i3はコア2、スレッド4)です。
(M)CPUレベルのお話をご存知でしたらご回答お願いします。

ご回答ありがとうございました。

お礼日時:2014/10/01 16:51

>【質問1】


あなたがスレッド数という言葉をどういう意味で使っているかにもよりますが、多分あってるでしょう。

>【質問2】
プログラムカウンタが4つあって、OSがソフトウェア的に切り替えたりしなくても4つのプログラムが同時に実行できると言うことですが、実際には2コアしかないので、ある瞬間に実行しているのは2プログラムです。

この回答への補足

現在、回答を理解するため色々調べております。
どこまで出来るか分かりませんが回答を噛み砕いて理解の上それぞれの回答にお礼したいと存じます。
少し、お礼が遅れるかもしれませんが取り急ぎ、回答3さんの補足にて皆様にお礼、申し上げます。

回答1~3の皆様、早速の回答ありがとうございました。

補足日時:2014/09/30 22:24
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました。

>あなたがスレッド数という言葉をどういう意味で使っているかにもよりますが、多分あってるでしょう。

Core i3の添付リンク、CPUスペックのスレッド数です。
多分、同じように推測されたと思います。
後述の記載が迷わせたようで、すみません。

>実際には2コアしかないので、ある瞬間に実行しているのは2プログラムです。

調べた範囲ですがパイプラインなどを介して複数命令を1CPUクロック(内部クロック)で処理可能な感触です。

参考になる回答を賜り、ありがとうございました。

お礼日時:2014/10/01 18:05

▼ロジカルプロセッサ数


ロジカルプロセッサ数は、OSから見た論理的なプロセッサ数の事を表しています。つまり、OSとして4つのプロセッサが搭載されていると認識していることになります。(スレッド数の事を指しているわけではありません)

物理的なプロセッサ数(CPUのコア数)は、2つです。CPUの中に、実際に2つのプロセッサが搭載されている状態です。
これに、Intelのハイパースレッディングと呼ばれる技術を使って、1つのプロセッサを、2つの(論理的な)プロセッサとして扱っています。
よって、物理的に2コアのCPUでハイパースレッディングを利用した場合、2×2で計4個のプロセッサがあると認識されます。


▼マルチスレッドで動作時の状態
物理的には2つのプロセッサしか無いので、実際には2つのプロセッサを使って、「うまい具合に4プロセッサで動いているように」してあるだけです。
1プロセッサには複数のパイプラインが存在(例えば整数演算のパイプラインと、浮動小数点演算のパイプライン…というような感じで)しているため、実際に整数演算を処理している間は、浮動小数点演算のパイプラインが空いている状態になります。このような部分のスケジュールなどを最適化して、整数演算と浮動小数点演算を同時に(別のパイプライン上で)処理することで、複数の命令を同時に処理できるようになっています。

機械語命令は1クロックで終了する物は少ない(たいていは数~数十クロック必要)ですが、パイプラインが分かれていれば1クロックで複数命令の実行を同時に行えるはずです。
そのため、物理的なプロセッサ数(コア数)が2つであったとしても、各プロセッサ単位に複数のパイプラインが流れているので、1クロックにおいても2つ以上の機械語命令を平行して進めることが可能だと思いますよ。

ちなみに、ハイパースレッディングを使って仮想的にコア数を増やしたとしても、常に全てのコアが有効に使われるわけではありません。実行する処理の内容によっては並列実行が困難で、一部のプロセッサしか動作していない…ということも良くあります。


CPUの専門家では無いので、詳細な部分までは分かりませんが、ご参考になれば。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>スレッド数の事を指しているわけではありません

CPUのスペックのスレッド数のことなのですが「ハイパースレッディング」などで調べた範囲で1コア、2スレッドの場合(CPU)からバスが2系統あり、OSから見るとCPUが二つあると認識する
との記載がありました。
博学でいらっしゃるので勘違いか、それとも私の調べ方が悪かったかな?
と思っています。
バスだけでなくALUなども複数持つものもあるようですが、参考までにcore i3を調べてみましたがその辺までは今のところ確認できませんでした。
理論的には複数、CPUのスレッド数だけALUやレジスタ関係を持っていないとうまく動作しないと思います。

>複数の命令を同時に処理できるようになっています。
>各プロセッサ単位に複数のパイプラインが流れているので、1クロックにおいても2つ以上の機械語命令を平行して進めることが可能だと思いますよ。

私の質問の二つ目に相当する回答ですがこの辺を今、理解しようと思って調べています。
例えば、スレッド1の処理結果をパイプラインで受けてスレッド2が処理をするということを1CPUクロック(内部クロック)で実行してしまう。ということのようですね!
その辺は「ハイパースレッディング」や「命令パイプライン」少し外れるかもしれませんが「スーパースカラ」などを検索して今、調査中、勉強中です。

随分、CPUも進歩していてびっくりです。
大変、勉強になるご回答を賜り、感謝いたします。
重ねて、ありがとうございました。

お礼日時:2014/10/01 17:48

>ロジカルプロセッサという言葉の検索でWeb上であまりいい処にヒットせず、調べがつきませんでした。



ハイパースレッディング・テクノロジで検索して調べてください。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

早々にご回答を賜ったにもかかわらず、お礼が遅れすみません。
ご指摘の通り「ハイパースレッディング・テクノロジで検索」して、色々読んでみました。
とても勉強になりました。

重ねて、ありがとうございました。

お礼日時:2014/10/01 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!