第9回 Windowsの32bit・64bitの違い

同じWindowsのバージョンでも「32bit版」と「64bit版」の2つがあることをご存じでしょうか。

Windowsであれば「Windows10 Home 32bit版」「Windows10 Home 64bit版」のように表記されていますね。

Windows XPが主流だったころは「32bit版」がほとんどでしたが、Windows 7以降は徐々に「64bit版」が広まり始め、Windows 10が普及した現在では64bit版OSの方が主流となりました。

店員さんに聞いてみると「64bit版OSの方が性能がよい」と答えてくれます。実際、数値も大きいので何となくそう感じますが、漠然としたイメージのままという方も多いかと思います。

そこで今回の記事は、OSの種類として「32bit版」と「64bit版」が具体的に何が異なるのかを解説していきたいと思います。

広告

データの最小単位 - ビット【bit】

まずは「bit【ビット】」という単位について話します。

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

扱える情報数を表す「ビット」

コンピューターが使う情報とは、突き詰めると「0」と「1」ですべて構成されています。「二進数」と呼ばれるもので、「0」と「1」を羅列することであらゆるデータを記録しています。

これは、回路を流れる電気の電圧の変化(高いか低いか)で ON/OFF を切り替えていることに由来しています。一見不便に見えますが、単純化されているためエラー等が起きにくくなり、元々高速な計算を行うことができるコンピューターにっとってはこちらの方が都合がよいのです。

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

「bit」の語源は諸説あるようですが、「0」「1」の2つで数を数える二進法を用いていることを表す「binry digit(二進法の数字)」という混成語が語源とされています。

一般化すると、nビットの情報量では2のn乗個までの選択肢からなる情報を表現することができます。

例えば、2bitになると「00」「01」「10」「11」と4種類の情報を表すことができます。これを仮に「00=A」「01=B」「10=C」「11=D」と対応させると、ローマ字の A~D までを「0」と「1」だけで対応させ表現できるようになりますね。1bit増えるごとに扱える情報量は2倍になっていきます。

現在、使用されている大文字のローマ字は全部で「26字」、つまり「5bit(=32通り)」あれば、すべて「0」と「1」だけで表すことができるようになります。

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

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

8bit = 1byte (0と1の羅列8つ分の情報量)

今までも特に断り無く使ってきましたが、普段から見慣れている「データ容量」の単位のひとつです。慣例的ではありますが、一般的に一文字で表す場合は「●● B」と大文字にします。小文字にすると「bit」と勘違いされることがありますのでご注意ください。

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

具体的に数値を入れてみます。「1000 0010 1010 0000」という文字列があったとします。これが何のデータなのかは不明ですが、総数は16字ありますので、この桁数で扱える情報は二進数で数えると全部で「2 の 16乗 = 65,536 通り」、つまり16bit分の情報を与えることができます。

先の数列は 65,536 通りある数列のひとつになりますが、どの位置に「0」と「1」があるのかが判定できる情報を含んでいるので「16bit = 2Byte」分のデータ容量を持っていることもわかります。

ちなみに、「1000 0010 1010 0000」という数列ですが、Shift_JISという文字コードの中で日本語の「あ」を表しています。英語圏では8bitあれば概ね問題なく日常の文字列が扱えるのですが、日本語は「ひらがな」「かたかな」「漢字」などと膨大な数の文字が存在しているので、二進数で表すためにはどうしても8bit以上必要になります。

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

コンピューターはbit、つまり 0 か 1 という2進数の世界を得意としています。このため2のn乗(2、4、8、16・・・)で表す数字にはとても強いです。

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

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

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

価格.comのUSBフラッシュメモリのページです。保存できるデータ容量にある「32GB」は2の5乗、「64GB」は2の6乗、「128GB」は2の7乗と、数値部分はすべて2のn乗で表せる数値になっています。

簡易版 32bit版と64bit版のWindowsの違い

さて、少し前置きが長くなりましたが本題に入ります。

詳細な解説は一度置いておいて、両者の違いについて簡単に表にしてみます。

  32btb版(x86) 64bit版(x64)
ビット幅 32bitで制御できます。
2の32乗 通り の情報を格納できます。
64bitで制御できます。
2の64乗 通り の情報を格納できます。
メモリ上限 どのOS、エディションでも 4 GB が上限です。 OSやエディションにより 4 GB 以上を扱えます。
ドライブ容量上限 通常、HDDなどの記憶ドライブは 2 TB までのものを扱えます。 フォーマットにより 2 TB 以上のドライブを扱えます。
ソフトウェア資源 多くのソフトウェアが動作、利用できます。 まれに64bitOSに対応していない、動作しないソフトウェアがあります。
広告

通常は64bit版WindowsでOK!

ほとんどの状況において、現在は「64bit版Windows」がおすすめです。

もし、この記事の内容が「よくわからない」という場合は、64bit版Windowsを選んでおけば問題ないかと思われます。家電量販店のパソコンコーナーでも、現在主流は「64bit版」です。これで通常大きな不都合はありません。32bit版Windowsを搭載したパソコンの方がマイナーになりつつあります。

ただ、仕事などで古いソフトウェアを継続して使う必要がある場合など、特殊な例では32bit版Windowsが必要になるかもしれません。そのときは会社の指示に従うなどで対処します。

「x86」「x64」とは

32bit用のソフトウェアであることを「x86」、64bit用のソフトウェアのことを「x64」と書くことがあります。

64bit版Windowsに32bit用ソフトウェアをインストールすると「Program Files (x86)」という名前のフォルダーに入ります。互換性を保つための機能がWindowsに備わっており、この機能を使って32bit版ソフトウェアを起動するためにフォルダーが分かれています。

「x64」はわかりますが、32bit版が「x86」と表記されることに違和感を持たれるかもしれません。これはCPUの開発史を読まれると分かるようになりますので、もし疑問を持たれましたら調べてみてください。一言でいうと、CPUの名前が由来になっています。

面倒な場合は「32bitがx86、64bitがx64」と暗記していただいても大丈夫です。

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

それではここから少し技術的な解説をします。

CPUが一度に計算できる情報量はOSのビット数により異なります。64bit版のOSの方は一度に処理できるデータの幅(ビット幅)が64bitになるため、32bit版と比べて一気に多くの処理をCPUが行うことができます。

32bit版Windowsの場合

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

64bit版Windowsの場合

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

CPUやソフトウェアの対応も必要

64bit版のOSをインストールして利用するためには、CPUも64bitに対応したものを利用する必要があります。CPUの処理も64bitで最適化されていないといけません。

しかし、最近のパソコンであれば64bit対応のCPUであることがほとんどですので、あまり気にする必要はございません。もちろん、最初から64bi版Windowsがインストールされているパソコンであれば対応済みです。中古のパソコンをご購入されるときには注意してください。

また、64bit版に対応したCPUをフルに使うためには、プログラムも64bit用に設計する必要があります。完全に64bitに対応したソフトウェアを64bit版のOSで使用していれば、32bit版のOSよりも高速に処理を行うことができるでしょう。特に画像、動画編集、3DCGソフトなどを多用する方は、64bit版対応ソフトの利用で大幅に処理速度を改善できます。

64bit版Windowsであっても、32bit版のソフトウェアが使えるように互換性が保たれていますので、基本的に動作しないということはありませんが、64bit版Windowsではまれに32bit用のソフトウェアが利用できないという状況が発生します。特に古いプリンターなどを動かすドライバープログラムなどは互換性の問題がまれにありますので、動作がしなくなったら公式のサポートページを確認されてみるとよいでしょう。

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

よく言われる違いがここになり、影響も大きいの部分です。

32bit版Windowsの場合

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

実際に計算してみましょう。

上記式がその理由を表したものです。(1024で割っている理由は後述)

CPUがメモリを使用するために「番地」のようなものを作ります。そのまま「アドレス」と呼びますが、データを格納するための小部屋がメモリ内にあり、CPUはその小部屋を利用してデータを格納し計算スペースとして利用しています。

どこにどのデータが入っているかを判別するためにCPUはアドレスを割り振っているわけです。

32bit版Windowsでは上記の計算で 4,294,967,296 個のアドレスを管理できます。そして現在、1つのアドレスに対して 1 B を割り振っています。つまり、4,294,967,296 個のアドレスそれぞれが 1 B の容量を持っている、合計で 4 GB しか扱えないことがわかります。

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

最大容量を超えたメモリを搭載しても、余った領域は通常使うことはできません。WindowsやCPUがそれ以上アドレスを与えて管理できないからです。

64bit版Windowsの場合

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

上記式がその理由を表したものです。(1024で割っている理由は後述)

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

とは言っても、これは理論値であって実際にここまで扱うことはできません。ある程度制限をしないとハードウェア側で扱いきれなくなるからです。OSによって利用できるメモリ最大容量は異なり、一般的に広く利用されている「Windows 10 Home」は「128 GB」のメモリを扱えます。

ちなみに、通常のパソコン利用であればメモリ容量「8GB」あれば快適に動作できます。一般向けのHomeエディションであっても「128 GB」まで使えるよう設計されているのですから、64bit版Windowsであれば無制限でメモリを利用できると考えていただいて大丈夫でしょう。

詳細なリストはMicrosoft公式ページを参考にどうぞ。

Windows バージョン 32bit Editions 64bit Editions
Windows 7 Home Premium 4 GB 16 GB
Windows 7 Professional, Enterprise, Ultimate 4 GB 192 GB
Windows 8 4 GB 128 GB
Windows 8 Professional, Enterprise 4 GB 512 GB
Windows 10 Home 4 GB 128 GB
Windows 10 Pro, Education 4 GB 2 TB
Windows 11 Home 4 GB 128 GB
Windows 11 Pro 4 GB 2 TB

コンピューターで使われるSI接頭辞は正確な倍数表記ではない

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

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

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

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

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

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

●ブログ内リンク:コンピューターで使われるデータ容量の単位について

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

使用できるディスク容量が異なる

メモリ容量だけでなく使用できるHDDやSSDのディスクの容量にも違いがあります。

32bit版Windowsの場合

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

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

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

64bit版Windowsの場合

64bitのファイルシステムであれば理論上で 約 16000000 TByte = 16 EByte(エクサバイト) まで扱うことができます。もちろんただの理論値で、こんな大容量の記憶装置は一般向けには発売されていません。64bi版であればディスク容量的な制限はなくなったと考えて良いでしょう。

ちなみにディスク容量上限の問題ですが、この問題は制限を受ける要素が複数あるのでOSだけの問題ではないこともあります。

基本的に64bit版Windowsを使っていれば問題ありませんが、もし32bit版Windowsを使用している場合でディスク容量の問題に出会ってしまったら、詳しい方に相談したほうがよいかもしれません。正直かなり複雑になっているので、場合によってはパソコン自身の買い換えも検討に入ると思います。

使用しているOSのビット数を確認する

「設定」→「システム」→「バージョン情報」で確認できます。
ここの「システムの種類」で「○○ビット オペレーティン グシステム x○○ ベース プロセッサ」の「○○」に書かれている数字がOSのビット数になります。

「システム」→「バージョン情報」にある「システムの種類」でOSとCPU(プロセッサ)のビット数が確認できます。

この記事のまとめ

お疲れさまでした。ちょっと専門的なことも書いていますが、これで 32bit版 /64bit版 Windowsの違いを大まかに解説できたと思います。

64bit版OSもかなり普及し、最近のWindowsが搭載されているパソコンではほとんど64bit版かと思われます。よく分からなかったら、64bit版Windowsを選んで4GB以上(できれば8GB以上)のメモリを搭載したパソコンを選んでおけば長く安定した利用が期待できます。

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

広告