16ビット: 16-bit)は、連続した16個(桁)のビット(2オクテット)であり、バイナリで最大65,536(64キビ、約65.5k)までの数を表現できる。

16ビットアーキテクチャ

編集

16ビット整数は216 (=65,536) 種類の値を保存することができる。符号なしの表現では、0 から 65535 までの整数値となる。2の補数の表現では、-32768 から 32767 までとなる。したがって、16ビットメモリアドレスを使用するプロセッサは、64 KiBバイトアドレスメモリを直接アクセスできる(アドレス空間が64 KiBである)。

16ビットプロセッサ全盛時代にパーソナルコンピュータで使われた主要なオペレーティングシステムには、IBM PC DOSMS-DOSOS/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-11Intel 8086Intel 80286WDC 65C816などがある。Intel 8088はIntel 8086とプログラム互換であり、16ビット長のレジスタと算術命令を持っていたので、外部バスは8ビット長であるが、16ビットプロセッサと呼ぶことができる。

16/32ビットの Motorola 68000

編集

データバスが16ビット幅であったため、MC68000 は"16ビット"と呼ばれている。しかし、汎用レジスタが32ビットであり、多くの算術命令が32ビットをサポートし、最大16 MiB24ビットアドレス)の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バイトのバイトオーダーマークが付与されることが多い。

脚注

編集

関連項目

編集