第10回 Windowsの32bit/64bitの違い

  • このエントリーをはてなブックマークに追加

2014年2月19日:この記事を一から書き直しました。

電気屋さんへ行くと、同じWindowsのバージョンでも「32bit版」と「64bit版」の2種類があることに気がつくと思います。
Windows8であれば「Windows8 32bit版」「Windows8 64bit版」のように表記されていますね。

XPころの主流は「32bit版」でしたが、Windows7がひとつのインストールディスクで 32bit / 64bit の両方をサポートしていたお陰で64bit版のOSが現在急速に普及しつつあります。今の主流は64bit版と言っても良さそうです。

店員さんに聞いてみると「64bit版OSの方が性能がよい」と答えてくれます。実際数値も大きいので何となくそう思っている方も多いでしょう。しかし、漠然と「64bit版OSの方が性能がよい」と考えている人がほとんどだと思います。

そこで今回の記事は、32bitと64bitが具体的にどうゆう性能の違いがあるのかを解説していきたいと思います。

32bitと64bitの違い
▲Windows 7 Home Premium の32bit版インストールディスクと64bit版インストールディスク


bit(ビット)とは?

まずは「bit【ビット】」という単位について話します。
コンピューターを学ぶときは知っておかないとお話にならない大事な単位のひとつです。

「bit(ビット)」とは、コンピューターが扱う情報の最小単位のことを指します。

コンピューターが使う情報とは「0」と「1」のどちらか二択のみです。「2進数」と呼ばれるものです。
これは、回路を流れる電気の電圧の変化(高いか低いか)で ON/OFF を切り替えていることに由来しています。一見不便に見えますが、単純化されているため逆にエラー等が起きにくくなり効率的な計算を行うことができるようになっています。

この二択の情報のうち、ひとつを特定するのに必要な情報を「1bit」と定義しています。

一般に、nビットの情報量では2のn乗個までの選択肢からなる情報を表現することができます。
例えば、2bitになると「00」「01」「10」「11」と4種類の情報を表すことができます。1bit増えるごとに扱える情報量は2倍になっていきます。

現在使用されているローマ字(26字)は5bit(=32通り)あればすべて表すことができます。

このローマ字から更に日常的に使う記号を加えたものをすべて2進数で表すには、8bit(=256通り)あれば十分足りるということで、この「8bit」がひとつの基準となりました。

それが 8bit を 1 とする単位、バイト【byte:B】です。

8bit=1byte

バイトは皆さんも馴染みのありますね、「データ容量」の単位です。
例えば、画像一枚で100kBあったとすると

100,000×8=800,000bit

と、なんと80万個にも及ぶ0と1の羅列で成り立っていることがわかります。1GBとかを考えると途方もない数になります。コンピューターはこれだけの数字を常に扱っているのです。計算能力で人間を圧倒するわけですね。(※実はこの計算若干の誤差があります。詳しくはこちらの記事にて。)

ビットとバイトの関係

bit と Byte の関係をまとめると以上の画像のようになります。

縦の1列が 0 と 1 のどちらかを決める「1bit」の情報です。それらが8列あると「1Byte」の情報となります。

コンピューターは2のn乗がキリのよい数字

コンピューターは1bit、つまり 0 か 1 という2進数の世界を得意としています。
よって2のn乗で表す数字にはとても強いです。

私たち人間は(確かな根拠は無いようですが)指が両方に10本あることから、0~9を扱う10進数を採用し生活に役立てています。なので10のn乗(100、1000・・・)はとても扱いやすいですね。

しかしこの10という数、2のn乗で表すことができないのでコンピューターは10進数を非常に嫌います。
10進数だと、コンピューターが得意としている2進数や16進数(0~9とA~Fの16字で数える)に変換する際にかなり余計な手間がかかるからです。(2進数と16進数は相互変換しやすい)

なので、コンピューターに関する数字には2のn乗で表すことができる数字がほとんどです。
ネットやお店などで、「512(2の9乗)」や「1024(2の10乗)」など一見すると中途半端な数字が使われている商品が多くありますが、それらはすべて2のn乗で表せる数値で、コンピューターがキリの良い数値として扱いやすいからです。

価格ドットコムのUSBフラッシュメモリのページ

▲価格.comのUSBフラッシュメモリのページ。
「2GB」は2の1乗、「8GB」は2の3乗、「32GB」は2の5乗、「64GB」は2の6乗と数値部分はすべて2のn乗で表せる数値になっている。

32bit版と64bit版のOSの違い

さて、少し前置きが長くなりましたが本題に入ります。マイクロソフト公式サイトのQ&Aはこちら

CPUが扱える情報量が異なる

ビットが理解できたのならば、まず数字の違いで扱うことのできる情報量が異なることが分かります。
ビット数が多い64bit版のOSの方が一度に処理できるデータの幅(ビット幅)が64bitになるため、一気に多くの処理をCPUが行うことができます。

32bit版OSの場合

32bit版OSの場合、CPUの扱えるデータの幅も32bitで制御するので 2の32乗 の情報、
つまり「4,294,967,295個」の情報を一気に格納させ計算できます。

64bit版OSの場合

64bit版OSの場合、CPUの扱えるデータの幅を64bitで制御できるので 2の64乗 の情報、
つまり「18,446,744,073,709,551,615個」の情報を一気に格納させ計算できます。

64bit版に対応したCPUをフルに使うためには、プログラムも64bit用に設計する必要があります。

完全に64bitに対応したソフトウェアを64bit版のOSで使用していれば、32bit版のOSよりも高速に処理を行うことができるでしょう。ただし、未対応の場合は64bitでも処理できるように変換して処理を行いますので、100%の性能は発揮できません。たまに動かないソフトもあります(後述)

また、64bit版専用のソフトウェアは32bit版OSでは動かないことが多いです。

使用できるメモリ容量が異なる

よく言われる違いがここですね。しっかり覚えておきましょう。

32bit版OSの場合

32bit版OSではメモリを最大で約4GBまでしか扱うことができません。
32bit値のサイズがこれ以上受け付けないことが原因です。

32bit版OSの場合の利用可能メモリ総量

▲上記式がその理由を表したものです。

CPUがメモリを使用するために「番地」のようなものを作ります。「アドレス」といいますが、32bit版OSでは上記の計算で4,294,967,296個のアドレスを管理できます。そして現在、1つのアドレスに対して1Byteを割り振っています。つまり、4,294,967,296個のアドレスそれぞれが1Byteの容量を持てるので、結果4GByteしか扱えないことがわかります。

しかも、4GByteという数字はOSが扱うことができる最大値であり、実際のOSではシステムで必須の機能に数百MByte程度のメモリ領域を使用するため、私たちが自由に使うことができるメモリ容量は最大3~3.5GByte程度になってしまいます。

最大容量を超えたメモリを搭載しても、余った領域は通常使うことはできず無駄になります。

64bit版OSの場合

64bitの場合は、OSが扱えるメモリ最大容量が32bitと比べて大幅に大きくなっています。
先ほどと同じように計算してみましょう。

64bit版OSの場合の利用可能メモリ総量

▲32bitと同じく計算してみると、なんと約171億GBまでメモリが使えてしまう計算になります。

と言っても、これは理論値であって実際はここまで扱うことはできません。ある程度制限をしないとハードウェア側で扱いきれなくなるからです。Windows 7 Home Premium 64bit版では「16GB」、Windows 7 Professional以上のエディションで「192GB」、Windows 8 Proでは「512GB」まで扱うことができます。

OSとエディションごとの利用可能なメモリ上限は下記の通りです。

Windows バージョン 32bit Editions 64bit Editions
Windows Vista Home Premium 4 16
Windows Vista Business, Enterprise, Ultimate 4 128
Windows 7 Home Premium 4 16
Windows 7 Professional, Enterprise, Ultimate 4 192
Windows 8 4 128
Windows 8 Pro, Enterprise 4 512

▲32bit Editionsと64bit Editionsが使用できるメモリ量(参考:英語

▲Windows8での参考文献はこちら

なんで「1024」で割っているの?

【参考】コンピューターで使われるSI接頭語は正確な倍数表記ではない

さて、ここで「1024」という数値で割っていることに疑問を持たれたかと思います。

数値が大きいものはSI接頭辞を使って短く表現することが可能です。「K(キロ)」「M(メガ)」「G(ギガ)」などがそれです。1キロメートル(km)は1000メートル(m)と同義ですね。倍数表記を簡略化するために考案されたもので、日常でも頻繁に利用されます。

データ容量でも使われているので、ByteからGByteに直すためには 1,000,000 で割ればいいのでは?と普通は考えます。しかし、実はこの計算では誤差がでてしまうのです。

上の「コンピューターは2のn乗がキリのよい数字」でも書いた通り、コンピューターは 0 か 1 の2通りで情報を扱います。つまり計算方法は2進法を採用しており、この関係で本来10のn乗を表すSI接頭語を使うと誤差が生じてしまうからです。

これに関しては混同されないよう専用の接頭語が定義されました。
「2進接頭辞」と呼ばれるもので「キビ (kibi)」や「メビ (mebi)」と書きます。こちらは 2の10×n乗 で倍数表記をしていくので、正しくデータ容量を表せるようになっています。なので、上記計算式では「2の10×1乗(1024)」で割っているのです。馴染みのあるSI接頭辞で表現しましたが、正しくは「4 GiByte」と表現しなくてはいけません。

別記事にて詳細を書きましたので気になる方はどうぞ。

ただ、Windowsでは変わらずSI接頭語を使うため誤差が生じてしまい、例えば1TBの外付けHDDが「931GB」と認識されてしまうという問題が発生しています。

使用できるHDD容量が異なる

メモリ容量だけでなく使用できるHDD(ハードディスクドライブ)の容量にも違いがあります。

32bit版OSの場合

32bit版Windowsでは、最大2TByteまで(正確には2TiByte)の容量を持つHDDを扱うことができます。

円盤(ディスク)状の記憶装置における最小の記録単位は「セクタ【sector】」といいます。HDDのアクセス方式に使われるLBA【Logical Block Addressing:論理ブロックアドレス】というシステムは、HDDの各セクタに対して管理番号(通し番号)を割り振ります。これはデータの位置、最初のセクタから何番目かを示す数値となります。

現在主流のセクタサイズは512Byteとなっています。そしてLBAも同様に、アドレス指定が32bit(32bit LBA)になっているため約2TByteで上限が来ることがわかります。

32bit版OSにおける記憶装置の最大容量

64bit版OSの場合

64bitのファイルシステムであれば理論上で 約 16000000 TByte = 16 EByte(エクサバイト) まで扱うことができます。もちろん理論値で、こんな大容量のHDDは一般向けには発売されていません。

HDDの容量上限問題ですが、この問題は制限を受ける要素が複数あるのでOSだけの問題ではないこともあります。例えば、GUIDパーティションというものでHDDをフォーマットするとデータドライブとしてであれば32bit版OSでも2TB以上のHDDを扱える場合があります。ただし、WindowsXP(64bit 版)またはWindows Vista以降でないとGUIDパーティションでフォーマットできません。そもそもディスクパーティションの管理方法がMBR【Master Boot Record】という方法になっていると強制的に32bit制限を受けてしまいます。

また、起動ドライブとして使用するためには64bit版 Windows Vista SP1 以降のOSが必要であり、かつマザーボードの方でも「UEFI(Unified Extensible Firmware Interface)」に対応していることが必須になります。

っと、こんな感じで難しい用語がでてしまうほど色んな要素が絡み合っているので、この問題に出会ってしまったら詳しい方に相談したほうがよいかもしれません。

すべてのパソコンで64bit版Windowsを使うことはできない

64bit版Windowsはどんなパソコンにでも導入できる訳ではなく、CPUが64bitに対応していない限り、64bitのOSは起動出来ません。

とは言っても、最近のパソコンに搭載されているCPUであれば恐らく問題は無いと思われます。よほど古いパソコンでないとこの問題には突き当たらないですし、そのようなパソコンは買い替えが検討されるほどのものでしょう。

具体的には「Pentium M」「Celeron M」「Duron」のようなCPUは32bitまでの対応です。
逆に「Core i7 / i5 / i3」「Celeron Dual-Core」「Atom」などは64bit対応のCPUです。

現在使用しているOSはどうなのか

現在自分が使用しているOSは32bit/64bitどちらなのかを知りたい人は「コントロールパネル」の「システム」で確認出来ます。

ビットの確認
▲クリックで拡大

「システム」の項目にある「システムの種類」で「32ビット オペレーティングシステム」と書かれていれば32bit版Windows、「64ビット オペレーティングシステム」と書かれていれば64bit版Windowsです。

64bit版Windows導入の際の注意点 - 動かないソフトウェアが存在する

64bit版Windowsは32bit版と比べてほとんどは良いことばかりですし、現在の市場はどんどん64bit版に移行してきているので、今購入するなら私は一応64bit版をお勧めしますが、ひとつ注意点があります。

64bit版CPUは本来、32bitコードで書かれたソフトウェアやドライバを動かすことができないということです。

CPUの情報処理方法が異なるからですね。このため64bit版Windowsは、32bitプログラムを動かす仕組みとして「WOW64」というものを実装しました。「WOW64」のおかげでそこまで古いソフトなどでなければ動かすことができます。私の経験上、8割くらいは古いソフトも動いてくれています。

ですが、たまにどうやっても正常に動いてくれないソフトがあります。プリンタなどを動かすために必要なドライバソフトウェアなども、あんまり古いと正常に動いてくれない場合があるので、64bit版Windowsを導入する際は事前に今までのソフトやプリンタ、スキャナー等が動くかどうかを調べてから導入して下さい。

もし動かなくても、アップデートすることで正常に動くこともあるので後々後悔しないようにしっかり調べることをお勧めします。新しくソフトウェアなどを導入したりアップデートするときは、64bit版のプログラムがあるかを確認し、もし公開されていたら必ず64bit版のプログラムを使用してください。

この記事のまとめ

以上、ちょっと専門的なことも書いていますがこれで32bit版OS/64bit版OSの違いを大まかに開設できたと思います。

64bit版OSもかなり普及し、Windows8/8.1が標準でインストールされている最近のパソコンはほとんどが64bit版かと思われます。ただ、32bit版OSは今までの主流であったものですから、まだまだ世の中には32bit版OSもたくさんあります。そん中、違いが分かれば新しくOSやパソコンを購入するときもそこまで迷うことなく購入できるでしょう。

  • 32bit/64bit Windowsの違いを理解する。

この記事も何かの為になれば幸いです。

余談ですが、この記事で紹介していることは、突き詰めるとかなり専門的なことになってきます。
簡単にするため色々端折っているところがあり、必ずしも正確な表現ではないところも多々あります。一般的な知識としてはこの記事の内容で問題ないかと思いますが、専門的に勉強したいという方は専門書等の購入をおすすめします。

Track Back

Track Back URL

Comments [17]

私には難しいお話でした。
数字が膨大すぎて。

情報をくださり、ありがとうございました。

中々わかりづらくて申し訳ないです・・・

ブログを初めて数ヶ月経った頃の記事でして、文章の書き方がかなり雑です。(今もあまり改善してないですけど・・・)
内容もずいぶん古くなってきているので書き直したいのですが、中々時間が取れなくて。

時間がとれた時にこの記事はまた書き直したいと思います。

すばらしくわかりやすかったです。安心して64bitを購入します。

お返事が遅れてしまい申し訳ございません。

お役に立てたようで嬉しいです。ただ、この記事かなり古いもので
解説不足なところが多かったのでちょっとだけ書き換えました。

最近は64bitも普及して動かないソフトも少なくなってきましたので、
特に理由がなければ64bitがおすすめです。

分かりやすかったです。勉強になりました。ありがとうございます。
ただ、計算式の分母の1024がどこから来たのか気になりました。
私も今後勉強していきたいと思います。
ありがとうございました。

コメント、ご指摘ありがとうございます。

ちょっとわかりにくかったですね、申し訳ございません。
あれは「2の10乗=1024」のことです。コンピューターの分野では2進数を使いますので、SI接頭語を使った倍数表記を使うと食い違ってしまうからです。K(キロ)からM(メガ)へ上がるとき、1000倍でやると実際のデータ容量と食い違いがでてしまいます。それをうまく修正するために「1024」を使って割っています。

これに関しては [ 参考 ] 部分に詳細を書いていますのでよければ読んでみてください。
記事としては下記のURLになります。

http://michisugara.jp/archives/2013/bit.html

凄く丁寧で勉強になります!

ただ、僕自信が低能で理解に時間がかかります
僕の問題なのですが、もっと砕けた説明だと
読む人が倍増しそうです

とにかく、このままの説明でも充分すぎるほど有り難いです!

お褒めいただきありがとうございます。

上のコメントでも何度か書いているのですが、この記事かなり古いもので書き方のノウハウが無い(今が特別あるわけでもないですが)ときのものだったので少し煩雑としてるところがあります。読みにくくてすみません。

近々(今週~来週中)また書き直したいと思いますので、もしよろしければまたお読みいただければ幸いです。

こんばんは


とても上手に解説されたサイトですね。


なかでも「bit.jpg」←の画像はわかりやすいです。

有難うございました。

お返事が遅くなり申し訳ございません。

お褒めいただきありがとうございます。あの画像ですが、実は元ネタが別のサイトにあってそれを参考に(というよりほぼそのままなのですが)こちらで再度作ってみた画像になります。付け加えるのであれば、これに横線を入れてルートを作っておけば実際のデータになるということも入れておけばよかったかな~と今更ながら思いました(笑

とても勉強になりました。
漠然と64bitは高性能と思っていましたが、32bit倍なんて物じゃないんですねビックリです!!

そこで、ふと つまらない疑問が生まれたのですが、例えばcore i7 のCPUに32bitのOSをインストールした場合、それはそれで動かなかったりするんでしょうか?
まあ やる人はいないと思いますが...

コメントありがとうございます。お役に立てて嬉しいです。

64bit CPUに32bit版OSを入れて動かすことは普通に可能ですよ。
core i7に限らず最近のCPUはほぼすべてと言っていいほど64bit対応です。
でも、また32bit版Windowsを搭載している機種もありますよね。

原則下位互換を持っていると思って頂いて大丈夫です。

64bit CPUで32bit版OSを入れた場合は32bit CPUとして動作します。
core i7を例に取れば、命令セットが「x86, x64」両対応なので大丈夫です。

まあ、何事にも例外はあって「IA64」などのごく一部の64bit CPUは
x86と互換性がないので動かないのですが、古いものですし限定された
用途でしか利用されていないので普通は気にしなくて大丈夫です。


高性能なCPUにあえて32bit版OSを入れるという状況になることはあります。
32bitアプリケーションが正常に動作しなかったり、64bitで動くことには動くが
逆に性能を発揮しきれない環境というのがあるので、core i7でも32bit版OSを
入れている方はいらっしゃると思います。

64bit版OSが主流の今、こういったことをあえてしている方は元々詳しい方だと
思われますのでご自分で考えて自由に色々やっているのでしょうね。

以上、取り敢えずご質問のお返事となります。

32bit版Windowsで4TBのHDDを使いまくっている者ですが、

・・・ちょっと通りますよw

4TBのHDDをお使いですか、すごいですね!

32bitでとなりますとフォーマットなどで少し工夫があったたかと思いますが
問題なく動作しているみたいですね、実例のご報告ありがとうございます。

こんにちは。

今更ながら、会社のPCの入れ替えで32bitと64bitについて調べています。

記事を拝見していて、MBR【Memory Based Reasoning】が聞き慣れないと思い、
調べてみましたがわかりませんでした。

失礼ながら、MBR【Master Boot Record】ではないでしょうか。

間違っていたら申し訳ありません。お役に立てば幸いです。

お返事が遅れてしまい申し訳ございません。
多忙な時期がそろそろ終わりそうでやっとコメント等にご返信できる時間ができました。

遅くなりましたがご指摘ありがとうございます。
MBR【Master Boot Record】の方が合っています。多分、コピーする場所を
間違えてしまったのかと思います。コメントを頂いた時点で
修正させていただきました。

この部分は最近追記した部分です。ただちょっと急いで書いた部分で
ミスがでてしまったようです。申し訳ございません。

まだ至らないことが多いですが、今後共当ブログをよろしくお願いします。

工業高等専門学校に通っているので、このような内容の授業を良く受けるのですが、そういった授業の前には、うちの学校の先生にもまず管理人さんような説明を頼みたいほど分かりやすかったです。
とても参考になりました。ありがとうございました。

コメントする

非公開。必須ではありません。

(いくつかのHTMLタグ(a, strong, ul, ol, liなど)が使えます)

このページの上部へ

サイト内検索

最近のコメント

広告

Powered by Movable Type 6.0.5