32ビットコンピューティング

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

コンピュータアーキテクチャでは32ビット 整数メモリアドレス、またはその他のデータユニットは、32ビット(4オクテット)幅のものです。また、32ビット中央処理装置(CPU)および算術論理演算装置(ALU)のアーキテクチャーは、そのサイズのレジスターアドレス・バス、またはデータ・バスに基づくアーキテクチャーです。32ビットマイクロコンピュータは、32ビットマイクロプロセッサを使用するコンピュータです

整数を格納する範囲

32ビットレジスタは232の異なる値を格納できます。32ビットに格納できる整数値の範囲は、使用する整数表現によって異なります。最も一般的な2つの表現では、範囲は0〜4,294,967,295(2 32 − 1)で、(符号なし2進数として表現され、 -2,147,483,648(−2 31)〜2,147,483,647(2 31 − 1)で2の補数として表現されます。 。

重要な結果の1つは、32ビットメモリアドレスを持つプロセッサが最大4 GiBバイトアドレス可能メモリに直接アクセスできること です(実際には制限が低い場合があります)。

技術履歴

世界初のプログラム内蔵電子計算機であるマンチェスターベイビーは、1948年に32ビットアーキテクチャを使用しましたが、これは概念実証にすぎず、実用的な容量はほとんどありませんでした。ウィリアムス管には32ビットワードのRAMしか搭載されておらず、加算演算はなく、減算のみでした。

32ビットアーキテクチャの最初の数十年(1960年代から1980年代)には、メモリ、その他のデジタル回路および配線は高価でした。[1]したがって、古い32ビットプロセッサフ​​ァミリ(またはその単純で安価なバリアント)には、コストを削減するために多くの妥協と制限があります。これは、たとえば16ビットALUの場合もあれば、32ビットより狭い外部(または内部)バスの場合もあり、メモリサイズを制限したり、命令のフェッチ、実行、または書き戻しにさらに多くのサイクルを要求したりします。

それにもかかわらず、そのようなプロセッサには32ビットのレジスタと32ビットの量を操作できる命令がまだあるため、このようなプロセッサには32ビットのラベルを付けることができます。たとえば、IBM System / 360モデル30には8ビットALU、8ビット内部データパス、およびメモリへの8ビットパスがあり[2]、元のMotorola68000には16ビットデータALUと16ビットの外部データバスですが、32ビットのレジスタと32ビット指向の命令セットがありました。68000の設計は、 16/32ビットと呼ばれることもありました[3]

ただし、新しい32ビットデザインでは、多くの場合、逆のことが当てはまります。たとえば、Pentium Proプロセッサは32ビットマシンであり、32ビットレジスタと32ビット量を操作する命令がありますが、外部アドレスバスは36ビット幅であり、4GBよりも大きなアドレススペースを提供します。データバスは64ビット幅で、主に命令とデータのより効率的なプリフェッチを可能にするためです。[4]

アーキテクチャ

汎用コンピューティングで使用される著名な32ビット命令セットアーキテクチャには、IBM System / 360およびIBMSystem / 37024ビットアドレス指定)、およびSystem / 370-XAESA / 370、およびESA / 390(これら)が含まれます。31ビットアドレス指定)、DEC VAXNS320xx Motorola 68000ファミリ最初の2つのモデルは24ビットアドレス指定)、Intel IA-32 32ビットバージョンのx86アーキテクチャ、および32 ARMのビットバージョン[5] SPARC MIPSPowerPCPA-RISCアーキテクチャ。組み込みコンピューティングに使用される32ビット命令セットアーキテクチャには、68000ファミリ、ColdFire、x86、ARM、MIPS、PowerPC、およびInfineonTriCoreアーキテクチャが含まれます。

アプリケーション

x86アーキテクチャでは、32ビットアプリケーションは通常、 80386以降のチップで可能な32ビット線形アドレス空間(またはフラットメモリモデル)を通常(必ずしも)使用しないソフトウェアを意味します。この文脈では、DOSMicrosoft WindowsOS / 2 [6]は、もともと8088/8086または80286用に作成された16ビットマイクロプロセッサであり、プログラムがセグメント間を切り替えてより多くのアドレス空間に到達する必要があるため、この用語が使用されました。 64キロバイトを超えるコードまたはデータ。これは他のマシン操作と比較して非常に時間がかかるため、パフォーマンスが低下する可能性があります。さらに、セグメントを使用したプログラミングは複雑になる傾向があります。アセンブリ言語だけでなく、 Pascal、コンパイル済みBASICFortranCなどの高級言語でも、特別な遠距離および近距離のキーワードまたはメモリモデルを(注意して)使用する必要がありました

80386とその後継は、80286の16ビットセグメントを完全にサポートしますが、32ビットアドレスオフセットのセグメントもサポートします(メインレジスタの新しい32ビット幅を使用)。すべての32ビットセグメントのベースアドレスが0に設定されていて、セグメントレジスタが明示的に使用されていない場合、セグメンテーションを忘れて、プロセッサが単純な線形32ビットアドレス空間を持っているように見えます。WindowsやOS / 2のようなオペレーティングシステムは、32ビットプログラムだけでなく16ビット(セグメント化された)プログラムを実行する可能性を提供します。前者の可能性は下位互換性のために存在し、後者は通常、新しいソフトウェア開発に使用されることを意図しています。

画像

デジタル画像/画像では、32ビットは通常RGBA色空間を指します。つまり、8ビットのアルファチャネルが追加された24ビットのトゥルーカラー画像です。RGBEなど、他の画像形式でも32ビット/ピクセルが指定されています

デジタル画像では、32ビットは、チャネルあたり32ビット、ピクセルあたり合計96ビットを使用するハイダイナミックレンジイメージング(HDR)形式を指す場合があります。チャンネルあたり32ビットの画像は、sRGB色空間で許可されている値よりも明るい(白よりも明るい)値を表すために使用されます。これらの値を使用して、画像の露出を下げるとき、または暗いフィルターや鈍い反射を通して見たときに、明るいハイライトをより正確に保持できます。

たとえば、油膜での反射は、鏡面で見られる反射のほんの一部です。HDR画像を使用すると、くすんだ灰色ではなく、明るい白い領域として表示される可能性のあるハイライトを反射できます

ファイル形式

32ビットファイル形式は、各基本情報が32ビット(または4バイト)で定義されているバイナリファイル 形式です。このような形式の例は、Enhanced MetafileFormatです。

も参照してください

参考文献

  1. ^ パターソン、デビッド; Ditzel、David(2000)。コンピュータアーキテクチャの読みサンディエゴ:アカデミックプレス。p。136. ISBN 9781558605398
  2. ^ IBM System / 360モデル30の機能特性(PDF)IBM。1971年8月。8、9ページ。GA24-3231-7。
  3. ^ 「Motorola68000ファミリープログラマーリファレンスマニュアル」(PDF)1992.p。1-1 2022年1月18日取得
  4. ^ グウェンナップ、リンリー(1995年2月16日)。「IntelのP6は分離されたスーパースカラー設計を使用しています」(PDF)マイクロプロセッサレポート2012年12月3日取得
  5. ^ 「ARMアーキテクチャの概要」(PDF)
  6. ^ 80286用のUNIXのバリアントもありました。

外部リンク