word length: ワード長
上智大学 伊藤 潔
2005年12月11日
本稿は,ほとんど用語解説です.
word「ワード,語」は,コンピュータで一度にアクセスされる情報の集まった基本的な単位です.通常,バイト(8ビット)の倍数で,2バイト(16ビット),4バイト(32ビット),8バイト(64ビット)などの大きさがあり,これがword
length「ワード長」です.
主記憶では,このワード単位でCPUでアクセスします.CPUの種類のよって,主記憶上のaddress「番地」は,バイト単位で,あるいは,ワード単位で付けられます.
210 byte =1 kbyte,
220 byte = 210 kbyte = 1 Mbyte
230 byte = 220 kbyte = 210
Mbyte=1 Gbyte
ワード長が大きくなると,どのような利点があるかについて述べます.
ワード長がn
bitあるということは,1bitに0か1が入りますから,表の通り,2n通りの情報を表すことができるということです.
byte | bit | 2n | 表現可能な情報の個数 |
1 | 8 | 28 | 256 |
2 | 16 | 216 | 65536 |
4 | 32 | 232 | 4294967296 |
8 | 64 | 264 | 1.844674407*1019 |
ワードに整数型の数が入るときは,普通2の補数で入りますが,当然bit数によって収容できる数の範囲が異なります.すなわち,
8bitなら +127から -128までの数
16bitなら,+32767から-32768までの数
32bitなら,+2147483647から-2147483648までの数
です.
ワードに実数型の数が入るときは,仮数部と2nの
指数nをそのワードの中に記憶するので,ワード長が
大きいほど,仮数部の桁数が増え(精度がよくなり),指数部が大きくなり(数の範囲が拡がり)ます.
ワードに文字データが入るときは,英数字は8bitで,漢字は16bitのコードで表されるので,ワード長が
大きいほど,たくさんの文字が入ります.
ワードにアドレスが入るときは,負の番地はないので,主記憶のアドレスを示すために,上の表から
16ビットなら,0〜65535番地
32ビットなら,0〜4294967295番地
を表します.ワード長が
大きいほど,参照可能な番地が拡がります.
ワードに命令語(命令コード部や参照番地部などから構成)が入るときには,ワード長が
大きいほど,命令コードの種類が増え,参照番地(絶対番地も相対番地)も拡がります.
CPUのレジスタも以上のワード長と等しいことが多く,ワード長が大きいほど,計算する数値データの大きさが拡がり,処理する文字の個数が増えます.
データを入れるレジスタでなく,アドレスをいれるレジスタの場合,ワードにアドレスを入れる場合と同様に,ビット数が大きいほど,参照可能な番地が拡がります.(参照可能な番地はページングなど命令語のアドレス方式とも関係があるので,もっと別な方法がありますが,ここでは,これ以上,述べません.)
CPUと主記憶の間でデータをやりとりするデータバスの信号線の本数も,ワード長と等しいことが多く,メモリのアクセスの単位であるワードを,データバスで並列にCPUに送って,CPU内のレジスタにそのまま置くことができます.こういう形式でワード長が32bitの時,32bitCPUと呼ばれます.
32bitCPUでは,メモリアクセスのアドレスを指し示す際に使われるアドレスバスも32bitのことが多いですが,メーカや機種により様々なバリエーションがあります.例えば,アドレスバスが16bitのものでは,32bit
CPUといっても,半分の16bitで2回に分けて送るものもあります.また,16bit
CPUでは,16bitのアドレスバスでは,メモリ空間が乏しいので,16bitのアドレスバスを2回使って32bitのアドレス情報を送るものなど,様々あります.