![見出し画像](https://assets.st-note.com/production/uploads/images/73377548/rectangle_large_type_2_1b6dd36edaf1900fdeb117162d4018af.png?width=1200)
ハードウェアを知る (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種類あったんです。この表現でいいのかわかりませんが😅…
![](https://assets.st-note.com/img/1646200409011-88qML7itEW.png?width=1200)
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 と比べて何がよいんでしょうか?
この図をみてください。
![](https://assets.st-note.com/img/1646200790801-6pOftrK7ux.png?width=1200)
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年前だと、おそらく ウン億円(?)したサーバーマシンだったかもしれませんよね。億はいかなくても、何千万円規模だったでしょうね…
![](https://assets.st-note.com/img/1646201399765-qa8esh5zpo.png?width=1200)
まとめ
今の 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 について取り上げる予定です。