• ベストアンサー

OSの32bitと64bitって、何が32bit?

昔(昭和55~58年頃)当時で言う[マイコン]でプログラミングにハマっていた私です。 60年頃から全く触らなくなり、久しぶりに手にしたパソコンはウィンドウズXPなるOSが入っていました。  よく目(耳)にする32bitOSとか64bitOSって、何のサイズを言ってるのですか? バスクロックかと思い電卓叩いてみると半端な数字が… 違うな! 試しに今32bitOSが入っているPCに64bitOSをインストールすると 問題なく動きました。  どなたか御教授お願いします。

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

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.4

マイクロソフトの定義を推測すると リニアにアドレッシング可能なデータ領域の幅(オペランドに記載できるアドレスの上限)で決めているようです。 実際、マイクロソフトの配布している32bitOS用のセキュリティパッチと64bitOS用の同じものを比べるとほぼ2倍近くのファイルサイズになっています。で、この差は、オペランドのサイズから来ています。32bitであろうと64bitであろうと、ターゲットCPUは同じですから使われるコマンドは基本的に同じで、アドレッシングモードが切り替わっています。 ただ、IBM系ホストのリアルモード(イニシエータなどOSの基幹部分を記述)では、アドレッシングは10bitだったか12bitで、1024バイト単位でページングしてメモリアクセスしますが、これらのOS(MVSやFACOM OSIV、HITAC VOS1/3など)12ビットOSとはいいませんね。 一部に誤解があるようですが、アドレスバスやデータバスの幅とOSのビット数やCPUを表現するときのビット数は直接関係はありません、xビットCPUというときはアキュムレータ(演算器)のデータ幅になります。 IBM-PC/XTが採用したintelのi8088はデータバスが8ビットで、16ビットの数値をアクセスするときは2回に分けていました(基本構造はi8086ファミリと同等で、アキュムレータは16bitですから、議論はありますが、大勢としては16bitCPUに分類)。マイクロソフトのアセンブラ(MASM)ではこの点は考慮する必要はありませんが、インテルのアセンブラ(ASM86)にはこのあたりを制御する命令があったとか(伝聞)

daddycool
質問者

お礼

わかりやすく、細かな回答感謝します。 またひとつ疑問が生まれたのですが、結局今のCPU(core2やQuad等)は 何BitCPUになるのでしょう?

その他の回答 (5)

  • krisc
  • ベストアンサー率57% (12/21)
回答No.6

命令レジスタ(IP/EIP/RIP)のビット幅によるのでは? もしアドレスバス幅だとすると、PentiumPRO/2/3などを36bitCPUと言えてしまう。 もしデータバス幅だとすると、Pentium/PRO/2/3などを64bitCPUと言えてしまう。 もし演算レジスタ幅だとすると、Pentium3などを128bitCPUと言えてしまう(SSEのXMMは128bit)。

daddycool
質問者

お礼

PentiumPRO/2/3を私は知りませんが、命令レジスタのビット幅と言うのは全く考え付きませんでした。  ただ、多種の意見を頂いて、少し戸惑っています。 皆さんの意見を参考に、暇なときにでもまた調べてみようかと思います。 どうもありがとうございました。

noname#111804
noname#111804
回答No.5

>またひとつ疑問が生まれたのですが、 >結局今のCPU(core2やQuad等)は >何BitCPUになるのでしょう? 以前は32bitCPUと思っていたのですが、今は64bitCPU と思うようになりました。 レジスターが64bitであること64bitOSがはしること したがって、64bitアプリケーションが走ること。 しかし、このCPUは32bitCPUから64bitCPUに 改造しているので、32bit用のデータバスが 周囲に少し残っているのでは?と思っています。

daddycool
質問者

お礼

>以前は32bitCPUと思っていたのですが、今は64bitCPU と思うようになりました。 思うように…? という事はそれが正解という事ではないんですか? 昔、最初のPC-98に買い換えた時、16BitCPU(8086だったかな?)の隠れバスを探して一人で満足していたのを思い出します。 暇なとき、またやってみようかな? 何度も回答感謝します。

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.3

昭和60年=1985年頃というとMS-DOSがようやくメジャーになり始めた頃でしょうか。まだまだパソコンは一部の人間の物だったように思います。 さて、32bit OS/64bit OSの値のことですが・・・実のところ、あまりはっきりした定義は聞きません(^^;。というか、定義が聞くたびに少しずつ違うという状況だったりします。 ただし、共通項としてあるのは 「4GB以上のメモリ空間を管理できる」 ということですね。 たとえば、Windows Serverは一定条件下で、32bit OSでも4GB以上のメモリを管理できますが、各プロセスが利用できるメモリ空間は原則4GBです。 64bit OSでは、このプロセスが利用するメモリ空間が大幅に拡大されています。

daddycool
質問者

お礼

ありがとうございます。 大まかに言うと、昔で言う8BitCPUと16BitCPUのデータバスのサイズの違いのようなものと言うことは理解出来ましたが、4GBのメモリを管理… 初めて手にしたPCはシャープのMZ-80K メモリは32KBでしたが、32K使い切ったことはありませんでした。 初心に戻り 1から勉強しなおします。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

その頃ですと4ピットマイコンか8ビットマイコン世代でしょうね (8080とかZ80とかでしょうか) ■本題  データバスの幅です 4ビットマイコンはデータバスの幅が4ビットしかありません そのためコマンドの数は非常に少ないです 対して8ビットマイコンはデータバスの幅が8ビットあります 4ビットマイコンと比較しても32倍の命令を使うことができます また、【倍のデータを一度に転送】することが可能になります こんな感じの64ビットOSなんですね ハード的にはずいぶん前から64ビットになっているんですけど データバス幅32ビットで作成されたソフトを継続して使えるように 32ビットOSの需要があるといった具合です (全ての32ビットソフトが64ビットOSで使えないということではありません)

daddycool
質問者

お礼

ありがとうございます Z-80はシャープのMZ-80で使いましたよ。 私はコモドールと言う海外版MZ-80のようなマシンを使っていました。 CPUはたしか6801だったと思います。 後にNECが出した最初の9801を発売と同時に買いました。 さすが16BitCPU バスの速度に驚いて、夜も寝ないでモニターと睨めっこしていたものです。 初心に帰れば自ずと答えは出てきたんですね 「俺は素人じゃない」という見栄が邪魔をしていたようです。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

>[マイコン]でプログラミングにハマっていた私です に合わせて簡単に書くと、OSが管理する「アドレスバス幅」です。

daddycool
質問者

お礼

単純にそこに目がいかなかった自分が恥ずかしい(汗) 難しく考えすぎてました、ありがとうございます。

関連するQ&A