16ビット
16ビット(英: 16-bit)は、連続した16個(桁)のビット(2オクテット)であり、バイナリで最大65,536(64キビ、約65.5k)までの数を表現できる。
- 「16ビットアーキテクチャ」とは、整数型、メモリアドレス、その他のデータサイズなどが、最大16ビット幅のアーキテクチャである。
- 「16ビットCPU」(プロセッサ、演算装置)とは、16ビットサイズのレジスタ、アドレスバス、データバスを持つCPU(プロセッサ、演算装置)である。
- 「16ビットオペレーティングシステム」とは、16ビットのCPUを前提に設計されたオペレーティングシステムである。
- 「16ビットアプリケーション」とは、16ビットのCPUおよび16ビットのオペレーティングシステムを前提に設計されたアプリケーションソフトウェアである。
- 「16ビットコンピュータ」とは、16ビットのプロセッサ (CPU) を標準的に搭載したコンピュータの世代である。
- 「16ビットカラー」とは、最大で65,536(64キビ、約65.5k)色数を同時に表示できる。
16ビットアーキテクチャ
編集16ビット整数は216 (=65,536) 種類の値を保存することができる。符号なしの表現では、0 から 65535 までの整数値となる。2の補数の表現では、-32768 から 32767 までとなる。したがって、16ビットメモリアドレスを使用するプロセッサは、64 KiBのバイトアドレスメモリを直接アクセスできる(アドレス空間が64 KiBである)。
16ビットプロセッサ全盛時代にパーソナルコンピュータで使われた主要なオペレーティングシステムには、IBM PC DOS、MS-DOS、OS/2 1.x などがある。Microsoft Windows 1.0 - 3.xはMS-DOS上で動作するGUIフロントエンドであり、Windows 3.0まではオペレーティング環境(operating environment)と呼ばれていた[1]。Windows 3.1からはoperating systemという名称になったが[2]、正確には3.1も独立したオペレーティングシステムではない。
純粋な16ビットアドレス空間では、当時であってもメモリが不足しがちであったため、バンク切り替えやセグメント方式によって16ビットを超えるアドレッシングを可能にする工夫がなされているシステムが多かった[3]。ただし、これはソフトウェアの複雑化やシステムの不安定化を招く要因ともなった。広大なメモリ空間を安定的に確保して簡潔に利用できるようになるのは、本格的な32ビットアーキテクチャが登場してからのことである。
16ビットプロセッサはパーソナルコンピュータの分野ではほとんど使われなくなったが、多くの組み込みシステムでは使用されている。例えば、16ビットXAPプロセッサが多くのASICで使われている。[いつ?]
主な16ビットプロセッサ
編集有名な16ビットプロセッサとしては、PDP-11、Intel 8086、Intel 80286、WDC 65C816などがある。Intel 8088はIntel 8086とプログラム互換であり、16ビット長のレジスタと算術命令を持っていたので、外部バスは8ビット長であるが、16ビットプロセッサと呼ぶことができる。
16/32ビットの Motorola 68000
編集データバスが16ビット幅であったため、MC68000 は"16ビット"と呼ばれている。しかし、汎用レジスタが32ビットであり、多くの算術命令が32ビットをサポートし、最大16 MiB(24ビットアドレス)のRAMをサポートしたという点では、32ビットプロセッサということができる。したがって、68000のソフトウェアは元来32ビットであり、32ビットプロセッサへの前方互換性を持っている。
16ビットファイルフォーマット
編集16ビットファイルフォーマットは、各データの要素(ワード)が16ビット(2バイト)の、バイナリファイルフォーマットである。
一例として挙げられるWindows Metafile形式(WMF)は、Windows 3.xの時代に策定されたベクトル画像形式であり、GDIの16ビットグラフィックス命令を直接格納することができる。
UTF-16形式のUnicodeテキストファイルもまた16ビットのバイナリファイル形式と言える。実際に格納されるデータはエンディアンに依存し、リトルエンディアン(UTF-16LE)とビッグエンディアン(UTF-16BE)を区別するために、先頭に2バイトのバイトオーダーマークが付与されることが多い。