前号: No 260 / 次号: No 262 / 一覧に戻る

メールマガジン「がんばりすぎないセキュリティ」No261 (21/06/06)

No261 64ビットOSって何で64ビット?


最近のOSは64ビットOSが中心です。

ですがこの64ビットOSという表現は「64ビットCPUで動作するOS」ですが、明確な定義があるわけではありません。

この事情はOSよりもむしろCPU側に依存しています。

今回は、こうなるに至った事情を解説します。

なお、今回の話は、インテル社またはAMD社のCPUとMicrosoft Windowsが前提のお話となっています。ご了承ください。


1. (おさらい)OSとは?

OSはOperating Systemの略で、日本語では「基本ソフト」と呼ばれるものです。 皆さんがパソコンで使っているWindowsやMacOS もそうですし、スマホのAndroidやiOSも、エアコンやテレビ、デジカメといったコンピュータを利用する機器にもITONなどのOSが搭載されています。 余談 ITRON(アイトロン)というのは1980年代に日本で開発されたOS、TRON(トロン)のことです。 年配の方なら80年代に起きた半導体摩擦で国産OSであったTRONプロジェクトが手痛いダメージを受けてフェードアウトしていったことを憶えておられるかもしれません。 このOSというのは、コンピュータ内の全ての資源(CPU、メモリ、ストレージといった内部のコンポーネントのこと)を管理し、各プログラムに資源の使用を許可したりする、特別なプログラムです。 一般の方が意識できているOS部分(ログイン画面、デスクトップ画面、ファイル一覧など)は、OS全体からすれば、ほんの一部に過ぎません。 OSの大半の部分は利用者からは全く見えない部分にあります。 例えば、 1)プログラムの始動、停止、優先順変更  →スケジューリング機能 2)SSDやハードディスクのファイル作成や削除  →ストレージ管理機能 3)利用者の追加や削除、各利用者の権限管理  →ユーザ管理機能 4)各プログラムのメモリ利用許可や終了時の回収  →メモリ管理機能 5)突発的なイベント(バッテリ不足、ネットワーク切断など)への対応   →割込み制御 6)USBやBluetooth機器の接続や切断   →デバイス管理 などなど、OSの仕事は多岐にわたります。 パソコンをアパートに例えればこんな感じになります。 パソコン(機械本体)→ アパート OS         → 管理人 各プログラム    → 入居者 入居者であるプログラムが何かをする時には、必ず管理人にお願いしないといけないルールです。ですから、OSは非常に細かいことまで規定されていて、その種類は(OSによりますが)数千種類や数万種類になることも珍しくありません。 OSのバージョンアップなどにより、提供される機能は年々増え続けていますから、管理人さんの仕事はとてつもなく巾広いものになっています。

2. (おさらい)ビットって?

コンピュータでのデータのサイズを示す時にビットという言葉を使います。 ご存知の方も多いと思いますが、2進数で1ケタ分のデータのことを1ビットと呼びます。1ビットのデータでは0か1かの2種類の情報しか持てません。 例えば、性別というデータは、0=男、1=女と定義すれば1ビットで保存できます。 配偶者の有無というデータは、0=未婚、1=既婚とすれば1ビットで保存できますが、 ですが、ここに「既婚だけど亡くなった」といった情報も持たせようとすると1ビットでは足りませんから、複数ビットを使ってデータを持たせます。0=未婚、1=既婚、2=既婚(死別)といった具合ですね。 このように1ビットは2種類の値しか持てませんが、2ビットにすれば、倍の4種類の値、3ビットならさらにその倍の8種類... といった具合に組み合わせが増えていきます。 このように複数のビットを使えば大きな値のデータでも保管できるようになります。 会社の在籍年数なら、6ビット(0〜63)でOKでしょうし、年齢なら7ビット(0〜127)は必要となります。 とはいえ、コンピュータのハードウェアの都合上、6ビットや7ビットという値は扱いにくいのが実情で、通常は8ビットを一つのかたまりとして扱います。 そのため、8ビットの場合に限ってこれを1バイトという特別な呼び方をします。 ちなみに、8ビットでは、0〜255の256種類の値が保持できます。

3. 8ビットCPU

CPUというのはCentral Proccessing Unitの略で、中央制御装置と呼ばれます。 要は、プログラムを実際に動かして計算をしてくれる装置のことです。 1970年代まではLSI(Large Scale Integration:大規模集積回路)が作れなかったので、1枚もしくは複数枚のボード(電子部品が載った電子回路の基盤)でCPUを作っていました。 これが1980年代にはLSIが生まれ、1チップで機能する8ビットCPUが登場しました。 この時の「8ビット」というのはCPU内の計算回路(アキュムレータ)の規模を示していました。つまり、8ビットCPUというのは、8ビット分の計算を一度にできるCPUという意味です。 余談 8ビットCPUでも、256以上の計算はできます。 筆算のように分けて計算するのです。 足し算なら、最初に最下位の8ビットを先に足し算し、その繰り上がり分も含めて次の8ビットを計算し...というのを繰り返せば大きな値も計算できますよね。 さて、計算をもっと早くという要求は強く、8ビットの次には16ビットCPUが登場します。 今度は8ビットの情報2つ分を一度に計算できるように、アキュムレータ(計算回路)が16ビットあるCPUです。 一度に計算できるケタ数が増えるわけですから、性能はかなり向上します。

4. 32ビットCPUから64ビットCPUへ

同じ調子で、16ビットCPUの次には32ビットCPU(これは1990年代)が登場し、さらにその次に64ビットCPUが登場します。 余談 ちなみに、16+8=24の24ビットCPUとか32+16=48の48ビットCPUというのは存在しません。 常にアキュムレータのサイズは倍になっていきます。 これは、24ビットとか48ビットにしても、回路が複雑になる割に性能を伸ばせないためです。 32ビットCPUあたりから、だんだんと何をもって○ビットCPUと呼ぶのか?が不明瞭になっていきます。 というのは、アキュムレータを64ビットにしてもあまり性能向上が見込めなくなってきたからです。 なぜか? 話は単純で、多くの計算は32ビットもあれば足りちゃうからです。 8ビットでは0〜255、16ビットでは0〜65535でした。この時代までは、まだまだケタ数が足りませんでした。お金の計算ですら、65535では足りませんものね。 ところが、32ビットだと、0〜約42億まで一度で計算できちゃいます。こうなるとこれ以上の計算を一度にできたとしても、そんな計算を必要とするシーンは限られてきます。 現実には一度の64ビットの計算ができるCPUの要求はそんなになかったのですね。 一方、メーカの販売部門としては「64ビットCPU」という高性能っぽいキャッチコピーは魅力的です。何とかして「64ビットCPU」を販売したいと考えます。 さて64ビットCPUを計画していた2010年頃は32ビットCPUのアドレスバス巾の小ささが問題となり始めていました。要はより大量のメモリが搭載できるCPUが求められていたのです。 大量のメモリを搭載するには、CPUのアキュムレータは増やす必然性は少なく、メモリサイズを決めるアドレスバス巾を増強すれば良かったのです。 これをメーカ側が利用したのです。 アドレスバス巾64ビットに増やし(ついでにアキュムレータも64ビットにした)CPUを「64ビットCPU」と呼んで販売すりゃいいじゃないか!というわけです。 これなら堂々と64ビットCPUとして販売でき、しかも市場ニーズにも合います。 これが64ビットCPUの実態です。 少々シニカルな書き方をしましたが、CPUの進化としてはアキュムレータを64ビット化するのはごく自然なことですし、アドレスバス巾を増やすことも市場の要求に沿ったもので、特に問題があるわけではありません。 だからといって、今の64ビットCPUが万人に必要なものか?と言われると少々首をかしげてしまいます。 変な例えですが、タウリン1g配合と言わずにタウリン1000mg配合とする某ドリンク剤のCMに通じるものを感じます。

5. 64ビットOS

盛大な寄り道をしましたが、やっと本題の64ビットOSの話になります。 上にも書きましたが、32ビットCPUでは使用できるアドレスバス巾は32ビットでした。 ところが、アドレスバス巾が32ビットだと、搭載できるメモリは最大でも4GBとなります。 (4GB→約42億バイト→2x2x2x2x..(32回繰り返し)→32ビット) つまり、32ビットCPUを使ったOSでは、どうがんばっても4GBまでしかメモリが扱えないのです。 それ以上のメモリを利用したいと思えば、上述の通り、64ビットCPUが必要となります。 つまり、OSの供給元としては64ビットCPUが必要なOSのことを64ビットOSと呼んでいるに過ぎません。 かなり細かい話を書いてきた割に非常にショボい結論なのですが、64ビットCPUを必要とするOSだから、64ビットOSというのが答えです。 なお、32ビットOSは、一般的に32ビットCPUでも64ビットCPUでも動作します。

6. まとめ

64ビット0Sという表現が使われていますが、実はそれほど明確な定義のない用語だったりします。 一応、「64ビットCPUでのみ動作するOS」なのですが、現在販売されているCPUはほぼ全て64ビット対応です。余程古いパソコンを持ってこない限り、64ビットOSが動かないことはありません。 ですがなぜ64ビットなのか?となると少々話が複雑で、結局はマーケティング戦略上で生まれた用語というのが実際のところだと筆者は考えています。 ちなみに、メモリアドレスバス巾が64ビットというのは、あくまでCPU内部での計算上の話で、実際に搭載できるメモリ量は32BGとか128GBあたりです。 今回はちょっとハードウェア寄りのお話でした。 次回もお楽しみに。 (本稿は 2022年6月に作成しました) 本Noteはメルマガ「がんばりすぎないセキュリティ」からの転載です。 当所はセミナーなどを通して皆さんが楽しく笑顔でITを利用いただくために、 難しいセキュリティ技術をやさしく語ります。 公式サイトは https://www.egao-it.com/ です。
(タグ #64ビットOS #32ビットOS)"

前号: No 260 / 次号: No 262 / 一覧に戻る