Subscribed unsubscribe Subscribe Subscribe

Schi Heil と叫ぶために

hiroakiuno's blog

N ビットマイコンの N ビットって何なのか定義を整理してみよう

8 ビットマイコンとか 32 bit CPU という表現はよく使うが、組み込みの世界にいながら実はその定義をはっきりと説明できない。例えば世界で最初のマイコンと言われている Intel 4004 は 4 ビットマイコンに分類されている。調べると内部データバス幅やレジスタサイズは確かに 4 bit だが、命令長は 8 bit だしメモリアドレスは 12 bit らしい。

懐かしのファミコンの CPU は 8 bit で、NINTENDO64 になるとその名の通り 64 bit CPU だが、NINTENDO64 の外部データバス幅は 32bit らしいし、他にも例えばルネサスの H8 マイコン(例えば H8/3048)は 16 ビットマイコンだがレジスタのデータ幅は 32 bit らしい。

調べていくと N ビットマイコンの定義には昔からさまざまな議論があったようで、結局 N の定義にこれといった決まりはないよという wikipedia の記事にたどりつく。

CPUの持っているビット数には下記の要素がある。

  • アドレスbit幅
  • 外部データバス幅
  • 内部データバス幅
  • レジスタのbit幅
  • ALUbit幅
  • 命令長

しかしこれらの要因を以て×bitCPUと断ずる事はできない。
CPU - Wikipedia

といいながらマイコンメーカーの Web を見てみるとやはり 8 ビットマイコン、16 ビットマイコンという分類はされているし、雑誌を読んでいるとこれが定義だという表現もよく見かける。
少し拾ってみると、

マイコンの分類には,前述のように「ビット数」を使う方法もある。例えば8ビット・マイコン,32ビット・マイコンという言い方である。マイコンをビット数で呼ぶとき,それは内部の演算器のビット幅を表す。例えば4ビット・マイコンなら,演算器は4ビットを同時に処理できる回路になっている。これはBCD (Binary Coded Decimal)形式による10進演算を主に考えた電卓時代の名残りである。

技術の広場 - 矢野陽一のマイコン論(1):ITpro

CPUのビット数はレジスタの大きさと外部へのバス本数で決まる

404 Not Found

CPU はプログラムを処理する部分で一度に処理できるデータのサイズにより,8 ビット・マイコン,16 ビット・マイコン,32 ビット・マイコンに分類されます

組み込みマイコンの仕組みを理解しよう 第1回 FRマイコンのアーキテクチャ
Interface 2008年5月号付属FR基板 特設ページ

4004 の内部で扱うデータは4 ビットでした.電卓用には4 ビットあれば,BCD(Binary Coded Decimal)によって0〜 9 の数を表すことができるからです.データは4 本のラインでやり取りされます.この本数(バス幅)によって「何ビットのCPU である」というのが普通です

Interface 2008年1月号

簡単に言えば、CPUのビット数はそのCPUが一度に計算できるデータの大きさ(桁数)を表している。もう少し技術的に説明すると、CPUの中に組み込まれている算術論理演算器(ALU:Arithmetic and Logic Unit)のビット数のことを指している。64ビットなら32ビットの2倍の大きさのビットデータを一度に演算することができ、それだけ処理性能が向上するというわけだ。
なお、CPUのどの部分を取り上げて何ビットCPUと表現するか、今までいろいろな議論が重ねられてきたという経緯もあるので、ベンダーによっては定義が異なるケースもある。

徹底理解!「IA-64サーバー」/キーマンズネット

結局のところ、最初から N ビットマイコンを作ろうして作ったのではなく、各メーカーいろいろ工夫してきたものをあとから分類しているのだから綺麗に分類できるものではないということだろうが、ならば無理してそんな表現をしなくてもよいのにと何となくすっきりしない感じである。

ちなみに、1bit CPU というのもあるらしい。

2008-06-11 追記

Q1 マイコンのビット数は、なにを意味するのですか?

A1 一般に、マイコンの内部で、1度に処理できるデータの幅をビット数で表します。
たとえば8ビット・マイコンでは、1度に8ビット演算しかできませんが、 32ビット・マイコンなら32ビット演算ができます。つまりそれだけ32ビット・マイコンは高速処理ができるのですが、それだけ大量のデータを1度に処理する必要のあるシステムでなければ無駄な性能となるため、ビット数が大きければいいというわけでもありません。
なお、外部データ・バス幅が16ビットの32ビット・マイコンなど、入出力ビット数が内部データ・バス幅より少ない製品もあります。

404 Not Found

2008-08-07 追記

前後の説明も読むと非常にわかりやすい。

つまるところ、
・内部の命令セットやレジスタサイズ
・アドレスバス/データバスの幅
の両方がマッチしていれば問題ないが、それ以外の場合にはそれを8/16/32/64bitのどれとして扱うかは割と恣意的だったりするのが実状だ。

【コラム】セカンド・オピニオン (1) 64bit Rhapsody 一人歩きする64bit(1) | パソコン | マイナビニュース