登録日: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の性能としてクロックやコア・スレッド数が書かれているのを見かけることが多い。
性能だけ見るならこれらはいずれも小さいより大きい方がいいのだが、その意味を知っておくことでPCやスマホの商品選びをうまくできるようになるだろう。
CPUの動作回数。「1秒あたりに何回の計算ができるか」をあらわす。
「クロック」で察しが付くと思うが、CPUには
時計と同じく、電気を流すことで振動する「クォーツ(水晶)」が封入されている。
CPUはこの水晶が出す振動によって動作するため、その動きは水晶が出す「カチ、カチ、カチ……」という一定のテンポに合わせたものとなる。
というか水晶が出す振動より早く動かすことも遅く動かすこともできない。
このテンポが速ければ早いほどCPUの処理速度も速くなる、
というわけだ。これを現した数字がクロック数である。
単純に処理の速さの指標であるため、速ければ速いほど……数字が大きいほど素早く作業を終わらせることができると考えていい。
たとえば、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
インテルが開発した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の後追い……というより安さだけが取り柄の小規模メーカーでしかなく、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
米カリフォルニア大学バークレー校のクリステ・アサノヴィッチ教授らによって開発されたRISC系アーキテクチャ。
学校で生まれたこともあってかオープンソースとして公開されている。ARMと違って使用料も払う必要が無いことが注目されており、ライセンス費用を節約したい・より自由な設計をしたい企業が中心になって、こちらにも研究開発・投資することが増加中。
個人でも開発できるので、これでCPUも自作できるのでは?と考える人も出てきている。
現状は組み込み機器が中心だが、Qualcommやintelが意欲的な姿勢を見せているので将来的にはスマートフォンやパソコン等でも採用例が増えるかも?
GPGPU
厳密にはアーキテクチャとは言いづらいものの、下記の理由により無視できない存在となっているためこちらに記載する。
GPGPUとは、簡単に言えばグラフィックスプロセッサー(GPU)をCPU代わりとして使おう、というもの。
通常のCPUとの違いとして、通常のCPUはオールラウンダータイプで個々の能力は平均〜今一だが苦手が無いのが強みなのに対し、
GPUはできないことはからっきし駄目だが、限られたできることであればCPUを遥かに超える性能を持つという特化型タイプなのである。
この特性が注目され、単なる画面表示用チップ以外の用途も考え出されたのである。
また重たい画面処理をやっていないときはGPUが遊んでいる時間となってしまいもったいないので、GPUの空き時間活用という面もあった。
構想や実装自体は2000年代前半頃からあって研究が続けられてきたが、本格的に知られるようになったのは2010年代末頃に始まった仮想通貨ブームおよびAIブームだろう。
とにかくこれらの処理についてはGPUの独壇場かつ様々な活用方法が見出されてきたことで競争も非常に激しいため、ハードウェアはもちろん、制御するためのソフトウェア開発部分でも競争の激しい分野である。
グラフィックボードがとんでもなく高くなった、最大の理由がこれ。
生体・有機CPU
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 ]
追記・修正は正常に実行されました。
|
- おい、その解釈は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)
- ビット数のところだけど、Win95世代は32ビット。95の最低動作環境が486SXで386以降が32ビット -- 名無しさん (2024-06-13 20:33:58)
- 16ビット→32ビットの時の互換性は不安定だったのに32ビット→64ビットの互換性は安定してるなと思ったらそういう事情だったのか。 -- 名無しさん (2024-08-03 12:19:50)
最終更新:2024年12月25日 12:11