見出し画像

ハードウェアを知る (3) CPU - 32-bit と 64-bit

さて、CPUの話で忘れていけないのが、その扱える bit 長です。表題にもありますが、32-bit CPUと64-bit CPU。ARMでもARM32とARM64がありますよね。

Intel 64-bit CPU とは?

ここでも PC/Mac/Cloud でよく使われている Intel 社のCPUをベースに見ていきます。
実は、64-bit CPUというのは、2種類あったんです。この表現でいいのかわかりませんが😅…

x64
これは、32-bit CPUとして長年使われた x86と互換性の高いCPUです。メリットは、既存の32-bit のアプリが、ほぼそのまま動きます。

IPF
これは、64-bit への移行を見越して、よりスケールアウトの出来る当時最新のCPUアーキテクチャを組み込んだCPUです。EPICというやつですね。

Explicitly parallel instruction computing - Wikipedia

これだけみると、IPF の方がいい気がしますよねー
でも、歴史を見ると、IPF はほぼ存在していません。私が今使っているPCもx64ですし。Cloud上のCPUも、ほぼx64です。

これは2005年前後ですかね。当時の市場は、既存のアプリケーションの活用を選択した、という事ですね。

さて、64-bit CPUは、32-bit CPU と比べて何がよいんでしょうか?
この図をみてください。

CPUの話ではなく、メモリーの話である点に注目してください。つまり、扱えるデータ量が圧倒的に増えたんです。
32-bit CPUの扱えるメモリ空間は、4GB。これは全体ですね。その下にある仮想アドレス空間が大事で。これは、アプリケーションから見える範囲です。つまり、32-bit CPUでは、メモリ 4GBまではOSから見えるんですが。アプリからは2GBまでしか使えないのです。3GB拡張オプションがありましたけどね。

データベースとか。キャッシュの仕組みとか。限界が来てたんですね。当時。

64-bit みてください。
OS から見えるのは、16 TB。そして、アプリから見えるのは、8 TB 😍! 64-bit OSでは、全てが [仮想アドレス空間 per 64 bit process] ですからね。

私の今使っている Windows 11。これは Surface Laptop 3 なんですが。メモリ 16 GB搭載。全部見えてますね😊
これ。20年前だと、おそらく ウン億円(?)したサーバーマシンだったかもしれませんよね。億はいかなくても、何千万円規模だったでしょうね…

まとめ

今の Apple M1 CPUはARM です。x64 CPUじゃないんです。つまりアプリケーションは書き直す必要があります。それでも、Microsoft をはじめ多くのMac アプリケーションの開発者は、M1対応したんですよね。
64-bit CPUの Intel CPU時代と違いますよね。理由が。それにはスマートフォンの存在も大きいと思います。
何より忘れてはいけないのが ARMベースのCPUは省電力機能がすごいという事です。1/10 くらいで済むという触れ込みもあります。デバイス側は省電力にも目が行きます。優先されますよね。特にモバイルデバイスは。スマホが30分しか持たないと、誰も買いませんよね。

CPUをはじめコンピューターは高速化、小型化を繰り返しています。そして、扱えるデータ量への対応ですね。64bitではこれが大きかった。でも、それは特にサーバー側、いまだと Cloud側ですかね、で求められたものです。皆さんのお手元のPC/Mac/スマホの大きな能力を知り。そして、それとサーバー側/Cloud側は、また求められるものの優先順位が違うんですよね。

128-bit CPU の噂を私自身は知りませんが。今後、安価なサーバーハードウェアを並べる処理で破綻をきたすような事があると、128-bit CPUで、PBを超えるようなメモリ空間が必要なアプリケーションが出てくるかもしれませんが…

次回は GPU について取り上げる予定です。

この記事が気に入ったらサポートをしてみませんか?