32ビットコンピューティングとは、プロセッサ、メモリ、その他の主要コンポーネントが32ビットのデータ単位で動作するコンピュータアーキテクチャを指します。 [ 1 ] [ 2 ]より小さなビット幅と比較して、32ビットコンピュータは大規模な計算をより効率的に実行し、クロックサイクルごとに多くのデータを処理できます。1980年代から2006年頃まで、一般的な32ビットパーソナルコンピュータは32ビットアドレスバスを備えており、最大4 GiBのRAMにアクセスできました。[ 3 ]
32ビット設計は、電子計算機の黎明期から、実験的なシステム、そして大型のメインフレームやミニコンピュータシステムで使用されてきました。最初のハイブリッド16/32ビットマイクロプロセッサであるMotorola 68000は1970年代後半に登場し、初代Macintoshなどのシステムで使用されました。HP FOCUS、Motorola 68020 、 Intel 80386などの完全32ビットマイクロプロセッサは1980年代前半から中頃にかけて発売され、1990年代初頭には主流となりました。この世代のプロセッサによって、ワールドワイドウェブが初めて広く普及しました。 32ビットアーキテクチャは特定のアプリケーションでは依然として広く使用されていますが、2000年代半ば以降、PC、スマートフォン、サーバーはx86-64などのアーキテクチャを使用して64ビットに移行しており、エントリーレベルのコンピュータに搭載されるメモリは、32ビットアドレスの制限である4GiBを超えることがよくあります。
32 ビットレジスタには 2 32種類の値を格納できます。32ビットに格納できる整数値の範囲は、使用する表現によって異なります。最も一般的な 2 つの表現では、 (符号なし) 2 進数として表現する場合は0 から4,294,967,295 (2 32 − 1) まで、 2 の補数として表現する場合は−2,147,483,648 (−2 31 ) から2,147,483,647 (2 31 − 1)までとなります。
これは、32ビットの論理アドレスまたは仮想アドレスを持つプロセッサが、最大で4 GiBのバイトアドレス指定可能なアドレス空間に直接アクセスできることを意味します。32ビットの物理アドレスを持つプロセッサは、最大で4 GiBのバイトアドレス指定可能なメインメモリに直接アクセスできます。32ビットプロセッサは必ずしも常に32ビットの物理アドレスを使用するわけではなく、それより多いまたは少ないアドレスを使用する実装も存在します。[ 4 ]

1948年に登場した、プログラム内蔵方式の電子計算機としては初の「マンチェスター・ベビー」は、 32ビットアーキテクチャを採用していたが、あくまで概念実証に過ぎず、実用的な能力はほとんどなかった。ウィリアムズ管上に32ビットのRAMを32ワードしか搭載できず、加算演算はできず、減算演算のみが可能だった。
32ビットアーキテクチャの最初の数十年間(1960年代から1980年代)は、メモリ、その他のデジタル回路、配線が高価でした。 [ 5 ]古い32ビットプロセッサファミリは、コスト削減のために多くの妥協と制限がありました。これには、16ビットALUや、32ビットよりも狭いバスが含まれる場合があり、メモリサイズが制限されたり、演算速度が低下したりしました。
これらの初期のプロセッサは依然として32ビットであり、32ビットレジスタと32ビット量を操作する命令を備えていました。たとえば、IBM System/360 Model 30は8ビットALU、8ビット内部データパス、およびメモリへの8ビットパスを備えていました[ 6 ]。また、オリジナルのMotorola 68000は16ビットデータALUと16ビット外部データバスを備えていましたが、32ビットレジスタと32ビット指向の命令セットを備えていました。68000の設計は、16/32ビットと呼ばれることもありました[ 7 ]。
最近の 32 ビット設計の中には、32 ビットを超える外部バス幅をサポートするものもあります。たとえば、Pentium Proプロセッサは 32 ビット プロセッサで、32 ビット レジスタと 32 ビットの量を操作する命令を備えていますが、36 ビットの外部アドレス バスを備えているため、4 GB を超えるメモリにアクセスできます。また、64 ビットの外部データ バスを備えているため、命令とデータのプリフェッチをより効率的に行うことができます。[ 8 ]同様に、PowerPC 604は 64 ビットの外部データ バスを備えた 32 ビット マシンです。[ 9 ]
汎用コンピューティングで使用される主要な 32 ビット命令セット アーキテクチャには、IBM System/360、IBM System/370 ( 24 ビットアドレス指定)、System/370-XA、ESA/370、ESA/390 ( 31 ビットアドレス指定)、DEC VAX、NS320xx、Motorola 68000 ファミリー(最初の 2 つのモデルは 24 ビット アドレス指定)、Intel IA-32 32 ビットx86アーキテクチャ、およびARM、[ 10 ] SPARC、MIPS、PowerPC、PA-RISCアーキテクチャの 32 ビット バージョンが含まれます。組み込みコンピューティングで使用される 32 ビット命令セット アーキテクチャには、68000 ファミリー、ColdFire、x86、ARM、MIPS、PowerPC、Infineon TriCoreアーキテクチャが含まれます。
x86アーキテクチャでは、32ビットアプリケーションは通常、 80386以降のチップで可能な32ビット線形アドレス空間を使用します。この用語は、 MS-DOS、Windows、OS/2 [ 11 ]が元々セグメント化されたアドレス空間を持つ16ビットマイクロプロセッサである8088/8086または80286向けに作成されたことに由来します。セグメント化されたアドレス空間では、プログラムが64キロバイトを超えるメモリにアクセスするためにセグメント間を切り替える必要があり、パフォーマンスが低下しました。セグメントを使用したプログラミングは複雑で、アセンブリ言語や高級言語で特別なキーワードやメモリモデルが必要になります。
80386 とその後継機種は、80286 の 16 ビット セグメントをサポートし、32 ビット アドレス オフセットにその技術を再利用しています。すべての 32 ビット セグメントのベース アドレスを 0 に設定し、セグメント レジスタを明示的に使用しない場合、セグメント化は無視され、プロセッサは単純な線形 32 ビット アドレス空間を持っているように見えます。Windowsや OS/2 などのオペレーティングシステムは、16 ビット (セグメント化) プログラムと 32 ビット プログラムの両方を実行できる機能を提供しています。前者は後方互換性のために存在し、後者は通常、新しいソフトウェア開発に使用されることを意図しています。[ 12 ]
32ビットデジタル画像とは、通常RGBAカラースペースを指し、各ピクセルが赤、緑、青、透明度それぞれに8ビットずつ使用されます。RGBEなどの他の画像フォーマットも、ピクセルあたり32ビットを使用します。
デジタル画像において、32ビットとは、チャンネルごとに32ビット、つまりピクセルあたり合計96ビットを使用するハイダイナミックレンジイメージング(HDR)フォーマットを指す場合があります。チャンネルごとに32ビットの画像は、 sRGBカラースペースよりも高精度な値表現を可能にします。この精度により、画像編集時に細部までより鮮明に保持することができます。
32ビットファイル形式とは、各基本情報が32ビット(または4バイト)で定義されるバイナリファイル形式です。このような形式の例として、拡張メタファイル形式(EMF)が挙げられます。