CPU

登録日:2020/12/05 Sat 21:58:18
更新日:2024/12/25 Wed 12:11:10
所要時間:約 18 分で読めます




CPUとは、中央演算処理装置(Central Processing Unit→CPU)の意味で、コンピュータの文字通り中枢部に当たる部品。




概要

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

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

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

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


構造

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

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

※なお、ちゃんとしたPCが抱える情報量は、主記憶でGB(ギガバイト)級、補助記憶でTB(テラバイト)級にもなり、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に多い。今は特定の機能に特化したICに取って代わられることも。
8ビット
かつてのホビー向けマイコンや、黎明期のゲーム機などに多い。ドット絵とピコピコの世代。
16ビット
Windows95世代のPCや、スーパーファミコンやMDなどのゲーム機、組み込み機器など。
32ビット
一昔前のメジャーなビット数の一つ。古めのPCから組み込み機器まで幅広く使われている。
メモリを4GBまでしか認識しないなどの問題から、2000年代後半以降は以下の64ビットへの移行が進み、PCにおいてはもはや古い規格となってしまっている。
64ビット
これも最もメジャーなビット数。現代のPCやゲーム機など。
スマホでも64ビット化が進んでいる。だってメモリの問題とかもあるし。


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

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

  • クロック
CPUの動作回数。「1秒あたりに何回の計算ができるか」をあらわす。
「クロック」で察しが付くと思うが、CPUには時計(クロック)と同じく、電気を流すことで振動する「クォーツ(水晶)」が封入されている。
CPUはこの水晶が出す振動によって動作するため、その動きは水晶が出す「カチ、カチ、カチ……」という一定のテンポに合わせたものとなる。
というか水晶が出す振動より早く動かすことも遅く動かすこともできない。
このテンポが速ければ早いほどCPUの処理速度も速くなる、というわけだ。これを現した数字がクロック数である。
単純に処理の速さの指標であるため、速ければ速いほど……数字が大きいほど素早く作業を終わらせることができると考えていい。*2

たとえば、200万回の計算が必要な処理をクロック数100万/秒(一般的な表記は「1MHz」)のCPUで行うとした場合、かかる時間は200万÷100万=2秒となる。

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

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

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


主要なアーキテクチャ

この節におけるアーキテクチャとは、ソフトウェアが物理的なCPUを動作させるためにどのような命令をしてどのように計算するかを定義する方式のこと。命令セットアーキテクチャとも。

命令セットアーキテクチャにおいて一つ大きなカテゴリ分けとして語られるのが、「CISC」(Complex Instruction Aet Computer)と「RISC」(Reduced Instruction Set Computer)。
これは既存の複雑な命令セットであるCISCに対し、命令の種類を減らして仕組みを単純にしようとしたRISCが対比されている構造にある。
どちらにも利点・欠点はあるものの、令和の現代においてはいずれかが完全に淘汰された状況にはなく、Macを除く多くのPCに用いられるCPUはCISCであるx64(x86系)、スマートフォンやMacなどはRISCであるARMが広く用いられている。
x86においても部分的にはRISCの設計を採用しているので、RISCの利点を享受していないアーキテクチャは事実上ほぼ存在しないと言ってもよいかもしれない。

Z80

ザイログ社が開発した8ビットCPU。通称は「ゼッぱち」。
令和の現代でもパチンコの基板とかでどっこい生きている。
実はメガドライブの中にも入っている。FM音源周りの再生担当と、セガ・マークIIIへの互換性のため。
他にもバトルガレッガ等、FM音源制御のためにメインCPUとは別にZ80搭載というのは結構あった。
SF作品では巨大ロボット超巨大宇宙船の心臓部に使われていたという事例も。
インテルの8080をベースとしており、バイナリレベルでのほぼ上位互換品。

x86

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

x64

  • 主な採用例: AMD Athlon64シリーズまたはIntel Pentium4 Rev.E(Prescottコア)以降の、AMD・Intel製CPU全般
x86と完全な後方互換を実現した64ビットアーキテクチャ。x86の64ビット拡張版なので「x86-64」とも称される。
AMDが開発したためAMD64と呼ばれていたが、Intel側もほぼ同様の仕様となったためにx64とも呼ばれており呼称が一定しない。
当時のAMDはまだ単なるIntelの後追い……というより安さだけが取り柄の小規模メーカーでしかなく*3、x86の時代はIntel一強かつ絶対王者でAMD含むそのほかは他弱ですらないともいえる位独占的シェアを取っていたため、PCまわりの規格といった周辺のこともIntelが決めれば業界もそれに従うという状態だった。

そんな中、PCのスペックアップに伴い64ビットアーキティクチャが必要になってきたのだが、元々IntelはIA-64というアーキテクチャを提唱していた。
しかしIA-64はx86との互換性が全くなかったせいで、IA-64対応商品も全く売れなかった。
一方AMD64対応商品は標準となるほど搭載された商品が増えた……つまり小メーカーが開発したAMD64が勝利するという、当時としてはとんでもないジャイアントキリングが発生したことは業界に多大なインパクトを与えた。
Windows XPの64ビット版もこの移行期のすったもんだの最中に出ていた。無論、IA-64版とAMD64版が。

68000/MC68000

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

6502

上記のモトローラから独立したスタッフが旗揚げした、モステクノロジーが開発したCPU。
モトローラのMC6800を元に大幅な簡素化・効率化が図られており、格安でもプログラム次第ではMC6800や8080よりも高速に処理できるというとんでもないヤツ。
RISCという設計コンセプトの起点とされるほど画期的なものであったが、こいつ自身は未だCISCアーキテクチャとされる。
こんなものを日米の変態共が見逃すわけもなく、Apple IIやファミコンなどの歴史的なマシンの中枢部として採用される。
16ビットに拡張した65816というものもあり、スーパーファミコンなどに採用されている。

SuperH RISC Engine

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

MIPSアーキテクチャ

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

PowerPC

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

ARMアーキテクチャ

現代の携帯機器において多数用いられるCPU。
設計者は上記の6502を参考にしたと言っているが、参考にしたのは飽くまで「シンプルで軽量なCPU」という部分であり、中身は全くの別物。こいつは名前にAcorn RISC Machineとある通り、完全なRISC系アーキテクチャ。
イギリス設計らしく(?)、機械語が非常に独特なことでも一部で有名。省エネ性と取り扱いの容易さに優れ、各種の携帯機器で採用されている。
2020年代に入ると絶対性能がかなり向上したことでパソコン方面にも侵食中。
AppleパソコンのCPUが近年ARMアーキテクチャに切り替わった他、ARM版Windowsなんてものも開発されており、マイクロソフト自社のSurfaceもARM機に移行しつつある。
x86の遺産を引き継ぐためにmacOS・Windows双方ともにエミュレート機能も内蔵されており気合がうかがえる。そのためCISC系アーキテクチャを時代遅れと考える人も出てくるほど。

ちなみにここまでのアーキテクチャは「アーキテクチャ開発者=CPU設計者」という趣が強かったが、ARMアーキテクチャに関しては、開発しているARM社はあくまでもベースのアーキテクチャを販売しているだけで、CPUそのものはアーキテクチャの使用権を購入したメーカーによるという形式になっている。
そのためARMアーキテクチャといってもメーカーは多岐にわたっている。
有名なところだとQualcomm社の「Snapdragon」シリーズやApple社の「Apple Sillicon」シリーズだが、これら以外でもARMアーキテクチャを使ったCPUは列挙するには多すぎるくらい多様かつ色んなところで使われている。

RISC-V

米カリフォルニア大学バークレー校*4のクリステ・アサノヴィッチ教授らによって開発されたRISC系アーキテクチャ。
学校で生まれたこともあってかオープンソースとして公開されている。ARMと違って使用料も払う必要が無いことが注目されており、ライセンス費用を節約したい・より自由な設計をしたい企業が中心になって、こちらにも研究開発・投資することが増加中。
個人でも開発できるので、これでCPUも自作できるのでは?と考える人も出てきている。
現状は組み込み機器が中心だが、Qualcommやintelが意欲的な姿勢を見せているので将来的にはスマートフォンやパソコン等でも採用例が増えるかも?

GPGPU

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

構想や実装自体は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の統合機能だけで間に合うパソコンも多い。
上に挙げた通りグラフィック処理に限らず他の使われ方もある。

000
Appending process... [ OK ]
Editing process... [ OK ]

Review by wiki-komori... [ COMPLETED ]



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


この項目が面白かったなら……\ポチッと/

+ タグ編集
  • タグ:
  • CPU
  • 中央演算処理装置
  • プロセッサ
  • マイクロプロセッサ
  • 68000
  • 8080
  • 8086
  • x86
  • x64
  • SuperH
  • ARM
  • Z80
  • コンピュータ
  • 電子部品
  • 半導体
  • 生体CPU
  • スマホ
  • パソコン
  • アニヲタIT教室
  • 曖昧さ回避
  • 命令セット
  • CISC
  • RISC
  • PC

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2024年12月25日 12:11

*1 もちろんそれだけではなく、クロックあたりの処理効率や開発時期など比較すべきものはたくさんあるのだが、本記事の趣旨を逸脱してしまうため自作パソコンの項目に譲る。

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

*3 当時のAMDは自社工場を持つなど、Intel以外のCPUメーカーの中では規模が大きい部類だったが、それでもIntelの前では小物も同然だった。

*4 カリフォルニア州の州立大学。米国公立大学の屈指の有名校で多くの技術者・研究者を輩出している。シリコンバレーに近い土地柄もありビッグテックに就職する卒業生も多いことで知られる。