質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

受付中

何故、CPUのbit数は、8の倍数で2のべき乗なのか

aaaaaaaa
aaaaaaaa

総合スコア501

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

6回答

2評価

5クリップ

9170閲覧

投稿2018/08/21 09:53

PCのCPUのBIT数は、8bit、16bit、32bit、64bitと8の倍数かつ、2のべき乗ですが、これはなぜですか。
こちらのサイトによれば、

ようやく本題:CPU の語長が2の冪乗だと,具体的に何が都合がいいのか?

私の (プログラマとしての) 経験から具体的なメリットを挙げてみる.
(実際にそういう語長が出現 ~普及した経緯についてはコンピュータ史を色々調べてみる必要がある.昔からそうしたいと思っているのだが….)

なぜ8ビットの倍数でなければならないか?

標準的な文字コードとして ASCII (7ビット) が普及した. その後制定された各国のさまざまな文字コードも最低7ビットが必要で, 普通は8ビットを単位としている. したがって1バイト=8ビット単位でデータを処理するマシン (バイトマシン ) でないと,文字情報を効率良く扱えない.

なぜ語長が2の冪乗でなければならないか?

プログラムを書いていると,あるサイズ (ビット数またはバイト数) のデータを記憶するのにメモリが何語 (または何バイト) 必要か, といった計算をしなければならないことがしょっちゅうある (プログラマが意識していなくて,コンパイラがやっている場合も多い). これを次のようなたとえ話で考えてみよう.

「N個の同種の品物 (ビット) がある.1つの箱 (語またはバイト) にはM個の品物が入れられる.いくつの箱が必要か?」

例えばN=789個の品物があったとして,1箱にM=12個入るとすれば, N÷M=65あまり9なので66箱必要ということになる. しかし割り算を筆算でするのは手間がかかる. (コンピュータは自分で計算しなければならないので, このたとえ話で「電卓を使う」というのはナシ.)

人間は10進数で計算するので,Mが10の冪乗 (10,100,1000,…) だったらわざわざ筆算しなくても, 小数点の位置をずらすだけで簡単に答えが出る.

コンピュータは10進数ではなく2進数を使うので, 語という「箱」やバイトという「小箱」の大きさが2の冪乗ならば, わざわざ時間のかかる割り算をしなくても,(小数点の代わりに) ビットの位置をずらす (シフト) だけですぐに答えが出るので,処理が高速に行える. プログラムの中ではこういう計算を頻繁に行うので, 語やバイトが2の冪乗でないと,処理が非常に遅くなる場合がある.

(最近のパソコンに使われている CPU は,乗除算を高速に行う回路を持っている. しかし家電製品などに組み込まれている CPU は,低価格化, 低消費電力化などのためにそういう回路は付いていないことが多いので, 乗除算には時間がかかる.)

とありました。
7bitで文字を表現するASCIIが普及して、プログラミングを行う上でよく行う計算は、ビットをずらしたほうが速いから、CPUのbit数は、8の倍数で2のべき乗ということなのでしょうか。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます