回答編集履歴
1
説明が漏れていた部分の追記
answer
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
一般的には「その CPU が持つ最長のアドレスレジスタの bit 数」なのだと聞いたことがありますが、モノによって解釈が違う bit 数を自称していることがそれなりにあるので、実は明確な定義はないと言ってよい状況です。「レジスタ同士の演算器のうち最長の bit 数のものの bit 数」だとか、「命令長」とか、他の何かだったりします。
|
4
4
|
|
5
|
-
昔は、アドレスレジスタとデータレジスタの長さを別にすると
|
5
|
+
昔は、アドレスレジスタとデータレジスタの長さを別にすると、それぞれ用に演算器を分けて作る必要が出てくるため、このあたりは統一されていることが多く、定義が曖昧でもあまり困らなかったのですが、最近はそのコストよりも別のコストの方を重視するようになってきたため、カオスなことになってきているのが実情で、この縛り自体もだいぶ緩いものとなってきています。
|
6
6
|
|
7
7
|
以上を踏まえた上で本題ですが、まず、他の回答ですでに触れられている通り、8bitCPU の前に 4bitCPU がありましたので、この件は、「4 の倍数かつ、2 のべき乗」というのが正しい話になります。
|
8
8
|
|
9
|
-
ではなぜ 4 の倍数なのかと言えば、電卓を発祥とする関係もあり、10 進数表現が必要だったからです。BCD 表現 / 表記等
|
9
|
+
ではなぜ 4 の倍数なのかと言えば、電卓を発祥とする関係もあり、10 進数表現が必要だったからです。計算結果を10進数表記で出力する際に、4bitで10進数の1桁分を表すBCD 表現 / 表記等に変換してから出力することで処理が楽になるわけですね。他にも、小数点以下の部分の数を扱う場合に、2 進数のまま計算していると10進数への変換時に結構な誤差が発生してしまって都合が悪い問題への対応としてもBCD表記が使われています。
|
10
10
|
|
11
11
|
そして、なぜ 2 のべき乗なのかと言えば、回路設計の都合です。CPU というのは大規模な回路であり、その設計にはパターン化による省力化が必須です。パターン化することで設計負荷を下げ、デバッグなどのコストを抑えることができます。
|
12
12
|
|