CPU

ページ名:CPU

登録日:2020/12/05 Sat 21:58:18
更新日:2024/05/23 Thu 12:56:35NEW!
所要時間:約 13 分で読めます



タグ一覧
cpu arm コンピュータ 電子部品 半導体 生体cpu 何故かなかなか立たなかった項目 スマホ パソコン アニヲタit教室 中央演算処理装置 プロセッサ マイクロプロセッサ 68000 8080 8086 x86 x64 superh z80



CPUとは、

  1. 中央演算処理装置(=Central Processing Unit→CPU)。コンピュータの文字通り中枢部に当たる部品。
  2. ゲームに於いてコンピュータが操作するキャラ。1Pモードの対戦相手。日本で誤用から広まったものなので、海外ではCP(Computer Player)と表記しないと伝わらない場合もある。

本項目では1.について解説する。


概要

コンピュータの構成要素の中でも、コンピュータの中枢部・脳みそに当たる部品。
これがなければそもそも成立しない。


現代では「CPU=プロセッサ=マイクロプロセッサ」として扱われる事が多いが、
厳密には「CPU」、「プロセッサ」はコンピュータの文字通りの中枢部となる要素全般を指す言葉であり、
「マイクロプロセッサ」はその機能を1つのICに集約した部品を指す。


じゃあ、ワンチップじゃないCPUもあったのかって?
うん。あったよ。というよりマイクロプロセッサが登場するまでは、ディスクリート*1の部品やロジックICを組み合わせてCPUを作ってた。当然、容赦なく巨大。お値段?察しろ。
マイクロプロセッサが登場したからこそ安価で自宅の部屋に置けるサイズのPCや、テレビの脇に置ける程度のゲーム機や、ポケットサイズのスマホが実現できるようになったのだ。
かがくのちからって、すげー!


CPUは、記憶装置(RAMやHDD、ROMカートリッジなど)に入っているプログラムを順に読み込んで解釈・実行することで情報処理を行うというのが基本動作。
主記憶装置、補助記憶装置、I/O関連などはバスと呼ばれる信号線で接続され、情報の交換を行う。
ちなみに信号線を「バス」と呼ぶのは、バスから来ている。
様々な信号の伝達を行う様を、バスに様々な乗客が乗り込むのを見立ててのことだそうで。


構造

CPUは、制御装置、演算装置、レジスタ、記憶装置とのインターフェイス、周辺機器とのI/Oインターフェイスなどから構成される。さらにレジスタよりも多くの情報を一時的に記憶するキャッシュメモリ、浮動小数点演算ユニットなども追加される事がある。

  • 制御装置…読んで字のごとく。CPU全体を制御するブロック。リーダー。指揮者。
  • 演算装置…実際に計算を行うブロック。
  • レジスタ…演算装置や制御装置に直結された、小型で高速なメモリ。演算装置にとっての作業机のようなもの、と思えばいい。
  • インターフェイス…外部のRAMや補助記憶装置(HDD、フラッシュメモリ、ROMカートリッジなど)、キーボードなどとの入出力を担当する部分。受付嬢。
  • 浮動小数点演算ユニット/FPU…浮動小数点の計算を行う部分。ものすごく乱暴に言うと、いわゆる「コンマ何ミリ」とか「コンマ何秒」とかの領域、つまり小数点以下の計算を行うブロック。こいつの性能は、例えばゲームならポリゴンモデルの精細さなんかに影響してくる(浮動小数点演算の性能が低いとポリゴンに隙間ができたりする)。
  • キャッシュメモリ…主記憶装置やバスなどの遅延を吸収するための小規模なメモリ。レジスタが作業机なら、こちらは出荷前に一時保管する倉庫のようなもの。一般的なPCやスマホのCPUには複数搭載されているが、これは処理速度を上げるための工夫なので、役割はまとめて覚えてもらって差し支えない。

※なお、ちゃんとしたPCが抱える情報量は、主記憶でギガオクテットオーダ、補助記憶でテラオクテットオーダにもなり、CPUが抱えきれないほど膨大なので、CPUとは別にRAMやHDDを用意することが通例。
キャッシュメモリの項に「一時」保管とあるのはこのためである。


動作

(ノイマン型の)CPUの動作は、「フェッチ」「デコード」「実行」の3ステップが基本となる。


  • フェッチ
    CPU「ああ…プログラムってなんてかわいいんだハァハァ」←これはフェチだ。違う。
    要するに、メモリからプログラムを読み込む動作である。
    「取ってくる」という意味の英単語そのまま。
    犬を飼っていたりMtGをやっていたりする人は聞いたことがあるだろう。

  • デコード
    俳句(プログラム)を読め!解釈してやる!
    フェッチで読み込んだプログラムを、CPUが理解できるように解釈カイシャクする動作。
  • なお、デコードは「復号化」という意味であり、「暗号化」を意味するエンコードの対義語である。

  • 実行
    解釈カイシャクしたプログラムをしめやかに計算する。

これを猛烈なスピードで繰り返している、と考えればいい。



ビット数

よくCPUやコンピュータ関連でで○○ビットとかいう言葉を聞くだろう。
ピコピコの8ビット風とか、32ビット世代とか。
これは乱暴に言えば、CPUが一度に扱えるデータ量のこと。
8ビットなら一度に8個の数値を、16ビットなら16個の数値を一度に処理できる、くらいに考えればいい。しかもCPU…というかデジタルの世界でメジャーなのは2進数。0と1が並んだアレであり、1ビットは「0」か「1」でしかない。
…あ、そこ。「うわ、少なっ!?」と思っただろう。
だが8ビットなら(0と1の)2の8乗で256もの、16ビットなら2の16乗で65536もの数値を表現できるのだ。


  • 4ビットCPU:古い家電製品向けの安価なCPUに多い。今は特定の機能に特化したICに取って代わられることも。
  • 8ビットCPU:かつてのホビー向けマイコンや、黎明期のゲーム機などに多い。ドット絵とピコピコの世代。
  • 16ビットCPU:Windows95世代のPCや、SFCやMDなどのゲーム機、組み込み機器など。
  • 32ビットCPU:一昔前のメジャーなビット数の一つ。古めのPCから組み込み機器まで幅広く使われている。メモリを4GBまでしか認識しないなどの問題から、2000年代後半以降は以下の64ビットへの以降が進み、PCにおいてはもはや古い規格となってしまっている。
  • 64ビットCPU:これも最もメジャーなビット数。現代のPCやゲーム機など。スマホでも64ビット化が進んでいる。だってメモリの問題とかもあるし。

クロックとコア・スレッド数

PCやスマホを買いに行ったり、自作パソコンの構成を考えていたりすると、CPUの性能としてクロックやコア・スレッド数が書かれているのを見かけることが多い。
性能だけ見るならこれらはいずれも小さいより大きい方がいい*2のだが、その意味を知っておくことでPCやスマホの商品選びをうまくできるようになるだろう。


  • クロック

CPUの動作回数。「1秒あたりに何回の計算ができるか」をあらわす。
「クロック」で察しが付くと思うが、CPUには時計クロックと同じく、電気をながすことで振動する「クォーツ(水晶)」が封入されている。
CPUはこの水晶が出す振動によって動作するため、その動きは水晶が出す「カチ、カチ、カチ……」という一定のテンポに合わせたものとなる。
というか水晶が出す振動より早く動かすことも遅く動かすこともできない。


このテンポが速ければ早いほどCPUの処理速度も速くなる、というわけだ。これを現した数字がクロック数である。
単純に処理の速さの指標であるため、速ければ速いほど……数字が大きいほど素早く作業を終わらせることができると考えていい。


※ただ実際には、この通り速いわけではない。CPUはメモリやHDDなど、他の周辺機器と歩調を合わせて動かなきゃいけないため、それらが遅ければ、それに引っ張られて本来の性能を十分に活かせなくなるのだ。これが後述の、『ノイマン・ボトルネック』である。


たとえば、200万回の計算が必要な処理をクロック数100万/秒のCPUで行うとした場合、かかる時間は200万÷100万=2秒となる。



  • コア数:

CPUが積んでいる演算装置の数。それぞれの演算装置に溜まっている仕事を振り分けることで処理の高速化を図ることができる(マルチコア)。組込み機器はまだしも、2000年代以降のPCやスマホのCPUはコア数が2つ以上のものが主流になっている。これが多いほど速い……のだが、振り分けにくい仕事*3ではコア1つあたりの性能*4が重要になることもある。



  • スレッド数:

処理を振り分けることができる最大の数。PCなら1コアあたり2つの処理、スマホなら1コアあたり1つの処理を行えるものが多い。たとえば2つの処理ができるコアを8つ持つCPUなら全体で8コア/16スレッドとなる。ちなみにサーバーやスーパーコンピューター用のCPUだと1コアあたり4スレッドや8スレッドという事もある。性能への影響はコア数に準ずるが、一般的にコア数の方がスレッド数より大きく影響が出ると言われている。


※備考:ノイマン・ボトルネック
CPU、そしてPCの性能向上について重要となる問題の一つ。
先述の通り、いくらCPUが高性能でも、他の周辺機器(特にメモリ)の性能が遅ければ、それに足を引っ張られる形で、CPUが十分にそのポテンシャルを発揮できなくなる問題のこと。
これを解決するための答えの一つがキャッシュである。


主要なアーキテクチャ

Z80

主な採用例:アーケードゲーム、ホビー向けマイコン、MSXゲームボーイゲームギアなど
ザイログ社が開発したCPU。通称ゼッぱち。
今でもパチンコの基盤とかでどっこい生きている。
実はメガドライブの中にも入っている。FM音源周りの再生担当と、セガMKIIIへの互換のため。
他にもバトルガレッガ等、FM音源制御のためにメインCPUとは別にZ80搭載というのは結構あった。
SF作品では巨大ロボット超巨大宇宙船の心臓部に使われていたという事例も。
インテルの8080をベースとしており、バイナリレベルでのほぼ上位互換品。


x86

主な採用例:PC/AT互換機、xboxなど
インテルが開発した8086と、その子孫たち。
たぶん最もメジャーなCPUアーキテクチャの一つ。
インテル自身も流石に基本部分が古いよなとなって何度か刷新しようと後継のアーキテクチャを出したものの、
開発環境まで含めてあまりに普及しすぎていて逆にx86系の方が勝ち残ってしまったという。


x64

主な採用例:AMD Athlon64シリーズ/Intel Pentium4 Rev.E*5以降のAMD/IntelCPU全般
x86と完全な後方互換を実現した64bitアーキテクチャ。x86の64bit拡張版なのでx86-64とも。
AMDが開発したため当初はAMD64と呼ばれていたが、Intel側もほぼ同様の仕様となったためにx64と呼ばれる。
当時のAMDはまだ単なるインテルの後追い・・・というより実質真似でしかなく、x86の時代はインテル一強かつ絶対王者ともいえる位独占的シェアを取っていた状態だったが
x64が主流となったことで王者だったインテルがまさか小物と言えるAMDの真似をすることになるという事態は業界に多大なインパクトを与えた。


で、インテルが提唱していたIA-64というアーキテクチャは、x86との互換性が全くなかった故に廃れてしまった。


68000/MC68000

主な採用例:Macintosh、X68000メガドライブ、NEOGEO、アーケードゲーム等
モトローラ(現フリースケール・セミコンダクタ)が開発したCPU。通称「68K」。
16ビットCPUだが、部分的には32ビットというよくわからないやつ。
68000という名前は、当初の内部のトランジスタの数が約68000個だったことから来ている(実際は7万個程度らしいが)。
当時はとにかく高性能を売りとするマシンで主に採用されていた。アーケードゲームに至っては、68000を複数個用いたという頭おかしいシステム(褒め言葉)もあった。
例えばグラディウスII(68000の2機掛け)や、ギャラクシーフォースII(同3機掛け)辺り。
組込システムや交通システムなどにも採用例があり、例えばTGVの信号システムは68000系のCPUを用いて制御している。


6502

主な採用例:AppleII、コモドール製マイコン、ファミコンPCエンジンなど
上記のモトローラから独立したスタッフが旗揚げした、モステクノロジーが開発したCPU。
モトローラのMC6800を元に大幅な簡素化・効率化が図られており、格安でもプログラム次第ではMC6800や8080よりも高速に処理できるというとんでもないヤツ。
こんなもの、日米の変態共が見逃すわけもなく、AppleIIやファミコンなどの歴史的なマシンの中枢部として採用される。
16ビットに拡張した65816というものもあり、スーパーファミコンなどに採用されている。


SuperH RISC Engine

主な採用例:携帯電話、セガサターンドリームキャスト、小惑星探査機はやぶさなど
日立製作所(現ルネサステクノロジ)が開発したRISC型CPU。フィーチャーフォン(ガラケー)のCPUはたいていこいつの系譜。
32ビットCPUだが、命令セットは16ビット固定としコード効率を向上させている。
この設計はMIPSやARMにも影響を与えたほど。


MIPSアーキテクチャ

主な採用例:プレイステーションPS2NINTENDO64など
ミップステクノロジーが開発したRISC型CPU。
一昔前のゲーム機などの組み込み機器で多数採用された。
一時期はRISC CPUの1/3がMIPSだったと言われたことも。


PowerPC

主な採用例:Macintosh、ゲームキューブ、PlayStation3、XBOX 360など
IBM・Apple・モトローラの開発したRISC型CPU。
IBMのPowerアーキテクチャを元に開発された。
(当時としては)低消費電力かつパワフルなCPUとして、高性能な組み込み機器などにも多数用いられた。
PS3のCPUとして知られるCELLも、実はこいつの系統。


ARMアーキテクチャ

主な採用例:スマートフォン、タブレット端末、3DOゲームボーイアドバンスニンテンドーDSNintendo Switch、2020年以降のMacintoshなど
現代の携帯機器において多数用いられるCPU。
設計者は上記の6502を参考にしたと言っているが、参考にしたのは飽くまで「シンプルで軽量なCPU」という部分であり、中身は全くの別物。
イギリス設計らしく?、機械語が非常に独特なことでも一部で有名。
省エネ性と取り扱いの容易さに優れ、各種の携帯機器で採用されている。
また、最近では絶対性能がかなり向上したことでパソコン方面にも侵食しており、AppleパソコンのCPUが近年ARMアーキテクチャに切り替わった他、ARM版Windowsなんてものも開発されている。


GPCPU

主な採用例:AI関連、仮想通貨のマイニング
厳密にはアーキティクチャとは言いづらいものの、下記の理由により無視できない存在となっているためこちらに記載する。
GPCPUとは簡単に言えばグラフィックプロセッサー(GPU)をCPUとして使おう、というもので
通常のCPUと何が違うかというと通常のCPUはオールラウンダータイプで個々の能力は平均〜今一だが苦手が無いのが強みなのに対し
GPUはできないことはからっきし駄目だが、限られたできることであればCPUを遥かに超える性能を持つという特化型タイプなのである。
この特性が注目され、単なる画面表示用チップ以外の用途も考え出されたのである。


構想や実装自体は2000年代前半頃からあり、研究が続けられてきたが本格的に知られるようになったのは
2010年代末頃に始まった仮想通貨ブームおよびAIブームだろう。
とにかくこれらの処理についてはGPUの独壇場かつ様々な活用方法が見出されてきたことで競争も非常に激しいため
ハードはもちろん、制御するためのソフト開発部分でも競争の激しい分野である。
グラフィックボードがとんでもなく高くなった大きな理由がこれである。

生体・有機CPU

主な採用例:SFメカ
SF系創作界隈ではよく採用される生物の有機脳神経系を模したり有機素材で作られたCPU。
日本のアニヲタ界隈では露悪主義的な声の大きい者達のせいでR-TYPEⅡ鉄血ACなどの様に人間そのものを有機CPUに改造したり
あるいはパイロットを人道的に扱わない事を皮肉・揶揄った物ばかりが取り沙汰されがちだが
バイオコンピュータ有機ゲルパック回路など何ら人道的に問題の無い普通のCPUの有機版の物もそれなりに存在する点に注意。


余談だが、「脳神経系のような処理方法」で演算をしようとする『ニューロモーフィック(脳を模した)コンピューティング』は現在、現実の様々な研究機関によって研究が進められている。
また別のアプローチとして、人間の組織からiPS細胞を経由して脳細胞へ分化、これを増殖させた「培養脳」を直接電子回路に接続し、簡単な動作をさせることに成功したとも。
未だ有用性はそれほど明らかになってはいないし、しかもSFに登場するものとは異なるものの、なんともロマンのある話ではないか。



CPUと似て非なる者たち

マイクロコントローラ

最近電子工作界隈でよく聞く、PICだのAVRだのいうアレ。通称マイコン。
一見すると単なるICチップだが、中身はコンピュータの構成要素をCPU筆頭に1チップにまとめた「ワンチップコンピュータ」。
CPU「も」含められた部品である。
マイコンに応じて、通信規格に対応していたりアナログ入力に対応していたりと色々違いがある。いやもう本当に色々ある


システムオンチップ/SoC

ものすごく乱暴に言うと、上記のマイクロコントローラの超大規模・多機能・超高性能なバージョン。
「コンピュータをワンチップにまとめた」という点ではマイクロコントローラと似ているが、
こちらは家電などの制御ではなくスマホやPC、ゲーム機などのガチのコンピュータ機器を作るためのものであり、
それ相応の高性能。
有名どころでは最近のスマホによく使われるQualcomm製の「Snapdragon」やMediaTek製の「Dimensity」や「Helio」、Nintendo Switchに採用されたnVIDIA製の「Tegra」なんかがある。


FPGA

これも(外見だけなら)CPUとよく似ているが、中身は全くの別物。似たようなもので、CPLDというものもある。
ざっくり言うなら、CPUは「計算機」だけど、このFPGAというやつの中身は「論理回路の塊」である。論理回路って何なの?という人は置いとく方向で。
で、どう使うのかというと、
回路をプログラムして様々な機能を持たせて使う、要するに「プログラマブル電子回路IC」とでも言うべきブツ。
…こんなSFみたいな製品が、既に出回っているのです。
ただ、中身は割と単純だったりする。
プログラムにおいては、HDLという系統の言語を使う。「プログラムなん?ならCとかできるしやれる!」とか思ってはいけない。
適当に始めたソフト屋はまず間違いなくIF文でエラーを起こす
最近では暗号資産のマイニング等にも使われているとか。


GPU

主にグラフィック処理用に搭載されているプロセッサ。
基本的な仕組みはCPUとほぼ同じだが、こちらはグラフィック用の計算に特化しており、簡単に言うと比較的単純な計算を高速かつ並行して行う能力が高い。「難しい計算の代わりに複数人が手分けしてひたすら色を塗る」といった感じ。
CPUの多くが数個の高性能なコアという構成に対し、GPUは数千以上という無数の小さなコアが一つのチップにみっちりと詰め込まれている。ハイエンドモデルだと時に1万コアを超えるとのこと。
製造コストや消費電力という点ではGPUの方が高く付きやすいため、ゲーム等の用途でない場合はCPUの統合機能だけで間に合うパソコンも多い。
上に挙げた通りグラフィック処理に限らず他の使われ方もある。


{"target":"next","color":{"head":"#000000","hover":"#000000"},"col_color":[{"header":"000","color":"#000000"}]}
000
Appending process... [ OK ]
Editing process... [ OK ]

Review by wiki-komori... [ COMPLETED ]



追記・修正は正常に実行されました。


[#include(name=テンプレ2)]

この項目が面白かったなら……\ポチッと/
#vote3(time=600,5)

[#include(name=テンプレ3)]


  • おい、その解釈はwww -- 名無しさん (2020-12-05 22:06:27)
  • 複数の会社の商品について取り扱っているので一覧項目相当では? -- 名無しさん (2020-12-05 22:12:19)
  • もっとアニヲタwikiらしいネタを増やして一覧要素を薄くすれば良いんじゃね? -- 名無しさん (2020-12-05 22:29:00)
  • しれっと混ざる生体CPUにワロタ -- 名無しさん (2020-12-05 22:45:48)
  • >複数シリーズ・複数企業・複数ジャンルに跨がるような、分類分けやその例示をメインとした項目 別にこの項目は『CPUの一覧をリストアップする』のが目的じゃなく項目の半分は『CPUとは何ぞや』に費やしてるんだから一覧項目ではなくね? -- 名無しさん (2020-12-05 23:38:58)
  • 逆に言うと半分がリストアップって事だし -- 名無しさん (2020-12-06 05:15:43)
  • ↑一覧取っ払ったときの文字数が2000超えてるんですけど…… -- 名無しさん (2020-12-06 09:17:35)
  • ↑少なくとも、項目の半分をリストが埋めている現状では、除外規定の「対象の説明を項目内容のメインとしてその中で少し例を挙げる」に誰の目から見ても相当するとはとても言えないのでは? -- 名無しさん (2020-12-06 09:28:50)
  • ↑じゃあリスト消す? -- 名無しさん (2020-12-06 09:34:04)
  • 仮にリストを消しても記事として成立してるなら問題ないはず リスト含めて消す必要ないと思う -- 名無しさん (2020-12-06 11:51:52)
  • というかリスト消しても記事として成立するなら別にリスト残してても問題ないのでは? -- 名無しさん (2020-12-06 12:14:41)
  • まぁあくまで「要相談」なだけで、事後承諾アリだから、「問題なし」が多数派なら存続でOKかな。 -- 名無しさん (2020-12-06 12:16:10)
  • ただ、一応結論出るまで1週間は項目名このままにしておきたい。 -- 名無しさん (2020-12-06 12:16:43)
  • ハードSF系ロボットもの、とりあえず人間の脳をコンピューターに使用しがち -- 名無しさん (2020-12-06 14:26:20)
  • ↑「脳だけで乗る」タイプと、「制御装置に脳が組み込まれてる(パイロットは別に必要)」とでは意味が違うと思う。この項目でいうCPUは後者で、フロントミッションの「B型デバイス」やオルフェンズの「阿頼耶識type-E」とかぐらいじゃないか? -- 名無しさん (2020-12-07 00:47:35)
  • まぁ流石に問題なしで終わるしょ。ちょっと言いがかりに近いし -- 名無しさん (2020-12-07 01:21:27)
  • SEEDの生体CPUは「人間としての運用はしていない」という意味でCPU扱いされてる(強化)人間だから、『大本営「これは無人機です」』みたいな話になってきて色々ややこしくなるタイプの予感。まあ本人達一応軍籍与えられてたらしいけど -- 名無しさん (2020-12-07 14:33:31)
  • 特に反対意見も無いようですが、一応このまま一週間という意見があったので、明日項目名を戻したいと思います。 -- 名無しさん (2020-12-11 10:30:50)
  • ノイマン・ボトルネックについて追記しました。もし場違いだったらごめんなさい^^; -- 名無しさん (2021-08-17 14:11:36)
  • 最近はHelioじゃなくてDimensityだな。 -- 名無しさん (2021-11-01 16:27:18)

#comment

*1 独立したパーツ
*2 もちろんそれだけではなく、クロックあたりの処理効率や開発時期など比較すべきものはたくさんあるのだが、本記事の趣旨を逸脱してしまうため自作パソコンの頁に譲る
*3 Excelのセルへの書き込みやAdobe Photoshopなど
*4 概ねクロックの大きさ
*5 Prescottコア

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧