- ベストアンサー
プロセッサ(32bitと64bit)の違い
最近、サーバ系のプロセッサでIntel XeonやItanium2等 出ています。両者の大きな違いはアーキテクチャというのが32bitか64bitと言うことのようですが、アーキテクチャが違うと何が違うのでしょうか? 単純に周波数やキャッシュ容量で性能比較はできないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Q/大きな違いはアーキテクチャというのが32bitか64bitと言うことのようですが、アーキテクチャが違うと何が違うのでしょうか? A/まず、アーキテクチャーというのがとなってますけど、アーキテクチャーの意味はご存じですか? 英語のArchitectureを日本語にした意味で、建築、建築学、設計という意味です。パソコン関連では、設計という意味で使います。 そのため、64bitや32bitアーキテクチャというのは、単に64ビット設計と32ビット設計という意味です。ということは、設計図が32bitか64bitかの違いだけということです。まずここまではよろしいですか? さて本題です。 では、32bitや64bitとは何かです。 コンピュータの基礎の情報処理単位はbit(ビット)で表します。1bitとは、2つの選択肢からどちらか一方を選べる能力のこと。1bitでは2通りの結果があります。まあ、例えば電源を入れるか切るかというのがこれで可能なのです。これを選択する能力があるチップを1bitというのです。bitはbinary digitの略です。ちなみに、ビットは8bitで1バイトになるのも特徴。 当然ですが、ビットが増えるほど選択肢と選択の幅、結果の数が増えることになる。要は複雑な命令を一度に処理できるようになるのです。32bitでは32bitで記述したプログラミング命令が一度に実行できます。 64bitなら32ビットの倍精度の処理が可能になる。32bitの処理回路では数倍時間が掛かる高度な処理を一度にこなせるようになるのです。 ここまで分かりますかね? 分からない場合は、こういう考え方をしてみましょう。 ビットとは一度に扱う情報量の最小単位1度に32ビットと64ビットの情報を処理します。 ちなみに、周波数は処理するさいのサイクルのことで、一秒間に一定の情報を何回送るかというのを指します。1GHzなら10億回の転送することになります。 32ビット(4バイト)では1GHzでは1GHz×4バイト(32bit)となり結果4GBのデータを一秒間に最大で扱えます。 64ビット(8バイト)では、1GHzでは1GHz×8倍(64bit)=秒速8GBの処理が最大で可能になるのですよ。 という計算をすると、どちらがたくさんのデータを短時間で処理できますか? 要は、そういう考え方がプロセッサに用いるbitの考え方です。 *ちなみに、この計算は、あくまで分かりやすくしたものであって、厳密には全く異なります。何せ、今のプロセッサは同時に複数の処理をできるスーパースカラRISC型プロセッサを内部的に利用していることと、演算子とは別の部分は既に64bit化されています。さらに、SIMDという機能で最近は内部に128bitエンジンも統合していますので・・・ これで大体は分かったはずです。 最後に次の点です。 Q/単純に周波数やキャッシュ容量で性能比較はできないのでしょうか? A/周波数は、既に述べたように一秒間に何回単位データを送ることができるかを指します。1GHzなら10億回、1MHzなら100万回という具合です。 キャッシュとは、メインメモリとCPUを繋ぐバスの転送速度が800MB~4,2GB/s程度しかないのですよ。CPUの内部の転送速度は厳密には1GHz品でも云十ギガバイト単位で処理しています。CPUの内部速度よりメモリの速度が低速であるため、キャッシュを内蔵することによってよく使う命令をわざわざメモリに取りに行かなくても良いようにする手法です。キャッシュが多いほど高速とか良いというのは、メモリへのアクセス回数を減らし、CPUがフルパワーで処理できる時間を増やすのが目的なのですよ。 キャッシュメモリは、コンピュータの中で最も高速なメモリ媒体となります。一番速いのは、ファースト(一次)キャッシュ(Pentium4ではトレースキャッシュ) 2番目がセカンド(2次)キャッシュ、3番目がサード(3次)キャッシュとなり、高速なメモリほどメインメ容量は少なく、メインメモリより遙かにどのメモリも低容量ですが、圧倒的に高速なメモリなのです。 ちなみに、一つマメ知識として、CPUのビット数は他にメモリの最大実装容量(現在の32bitでは4GBが限界)も決めていたりします。これは、CPU処理でメモリの割り当てを決めるため、32ビットで割り当てられる限界が2の32乗となり4GB(4294967296)となるのですよ。そのため、メモリは32bit割り当てだと4GBが限界となる。(ちなみに、最近はサーバー向けなどではメモリ割り当てだけを32bit OverにしているCPUもある)
その他の回答 (4)
- appaloosa
- ベストアンサー率34% (28/81)
アーキテクチャは次の二つの次元があります。 ○マイクロアーキテクチャ・・・CPUハードウェアの設計の事。 ○インストラクション・セット・アーキテクチャ・・・CPUにセットされている命令セットの事。 当然、これらが異なれば単純に周波数やキャッシュ容量で性能比較はできません。 superstarさんの言う32bit&64bitの違いはこのうちのインストラクション・セット・アーキテクチャの部分です。 現在、Windows系のCPUはx86という命令セットを利用しています。この命令セットが開発された当時は現在のような高度な処理を前提にしていませんでした。従って今日のようなPCの利用法の中で、さまざまな弊害が生じてきました。 ○性能向上の限界・・・前述のように、x86命令は、高度な処理を前提にはしていません。最大の弱点は「同時に複数の命令を処理する」ことを前提にしていない点です。現在の最新のCPUさえ、最大で3命令以上を同時に処理することができません。この点は、3Dやインターネット、マルチメディアを駆使するPCにとって大きな弊害となっています。 ○メモリアドレッシング空間の限界・・・CPUは、メモリ上で計算を行いますが、このメモリの容量は、命令セットのビット幅に制限されます。現在、x86は32bitであり、このときのメモリ容量は最大で4GB(2の32乗)までです。つまり、これ以上のメモリ(PCではメインメモリにあたる)は認識できないのです。ところが、昨今の技術革新のために、メモリ容量はこの4GBの壁に近づきつつあります。 以上のような理由から、PCに新しい命令セットを導入する研究がなされてきました。それが64bit命令の導入です。64bit命令の場合、メモリアドレッシング空間は16エクサバイト(2の64乗)、GB換算で180億GBという途方もない容量です。これでメモリ容量の壁を打破できるのです。 一方、性能向上の限界をも打破すべく、Intelは過去(x86)との互換を捨てたまったく新しい命令セットIA-64を開発しました。現在のItaniumに搭載されている命令セットがそれです。このItaniumは、EPIC(Explicitly Parallel Instruction Computing:明示的並列命令コンピューティング技術)を導入しました。この技術は、前述した「複数の命令を同時に処理する」技術の事で、これにより、命令セットレベルで性能を向上することが可能になりました。 しかし、IA-64は、過去との互換性を完全に捨て去ったため、現在のx86系のアプリケーションを使用できません。この点に関して、「現在のx86との互換性を維持しつつ、64bitメモリアドレッシングを可能にする」というコンセプトで開発されたのがAMDのx86-64命令セットです。この命令セットは現在あるx86命令をそのまま64bit拡張したもので、現在のx86と互換性を維持しつつ、新たに命令を加えることで64bit演算を可能にします。 ところで、32bit命令を64bit命令にしただけでは、性能はそれほど変わりません。命令セットレベルで性能を向上するためには、様々な新技術を投入する必要があります。前述のIA-64のEPICがそれにあたります。 なお、IA-64,x86-64及び64bitの解説を載せておきます。 IA-64 http://www.intel.com/jp/intel/pr/press99/990527.htm x86-64 http://www.amd.com/jp-ja/Processors/ProductInformation/0,,30_118_4699_875,00.html 64bit化についての解説 http://www.watch.impress.co.jp/pc/docs/2002/1107/kaigai01.htm
- cellorist
- ベストアンサー率22% (21/92)
簡単に言うと32レーンの高速道路と64レーンの高速道路、つまり幅の違いで一度に通過させる車の数が倍違う。これは処理スピード(最高速度)の同じ場合。 車の荷物は情報と思ってください。 さらにプロセッサーやメモリーなど周辺機器の処理スピード(計算速度)がちがうと結果も早く現れる ッて訳です。 だから周波数(速度)が同じでも32レーンの道では 半分の速度で64レーンの道 の半分しか 情報を処理できないので 周波数やキャッシュだけで比較は出来ません。 OKですか?
- a-kuma
- ベストアンサー率50% (1122/2211)
CPU は、一定の周期で、命令をひとつずつ受取って、その内容をこなしてゆきます。 CPU が人間だとして、処理している様子をたとえると、こんな感じ。 ・その人は、あるリズムでしか命令書を読めない。ある人は、一分に一枚、すごい人は、10秒に一枚読める。 ・命令は紙に書いているのだが、文字数制限があり、ある人のカードは、一枚に10文字までかけるが、 最近の人のは、20文字まで書けるようになってる ・命令内容によっては、すぐこなせないものがあるのだが、命令を渡す人は、仕事が終わるまで待っている のではなく、受付ボックスに入れて帰って良い。 受付ボックスも大きいのを持っている人と小さいのしか持ってない人がいる ひとつめが周波数の話、二つ目が質問にあるビット長の話、三番目がキャッシュの話です。 ちなみに、CPU のアーキテクチャというと CISC と RISC という区別もあります。
- taknt
- ベストアンサー率19% (1556/7783)
まず アーキテクチャとは、何かということですね。 これは、基本思想や実際の仕様のことです。 32ビットとか64ビットというのは、データバスのことでしょう。 データバスが二倍ということは、単純に考えると速度が2倍ということになります。 ま、これは、単純に考えてなので、実際は、1.いくつぐらいだと思います。 >アーキテクチャが違うと何が違うのでしょうか? 基本思想が違うということはつくりが違うということでしょう。 >単純に周波数やキャッシュ容量で性能比較はできないのでしょうか? 比較するためのソフトとしてベンチマークがあります。 また、実際に使用するソフトなどを用いて、動作時間を比較してみたらいいでしょう。 単純な周波数やキャッシュ容量の比較が、妥当な比較になる場合と ならない場合がありますので注意が必要です。