「CPU」の版間の差分
削除された内容 追加された内容
編集の要約なし |
→ビット幅: 括弧書きが分かりづらかったので廃止しました タグ: モバイル編集 モバイルウェブ編集 |
||
(18人の利用者による、間の35版が非表示) | |||
4行目:
}}
{{otheruses}}
'''CPU'''(シーピーユー、{{lang-en-short|Central Processing Unit}})、'''中央処理装置'''(ちゅうおうしょりそうち)または'''中央演算処理装置'''(ちゅうおうえんざんしょりそうち)は、[[コンピュータ]]の主要な構成要素で、データの演算やコンピュータ内の装置の制御などを行う装置<ref name="e-words">[https://e-words.jp/w/CPU.html e-words【CPU】</ref>。[[コンピュータ]]における中心的な[[プロセッサ|処理装置(プロセッサ)]]<ref>[https://kotobank.jp/word/CPU-3987 CPU(シー ピー ユー)とは - コトバンク | ASCII.jpデジタル用語事典、大辞林、他]</ref>。
==
「CPU」の意味は、厳密に言うと、「[[プロセッサ]]」{{efn|[[インテル]]の日本法人は「プロセッサー」と表記している<ref>[https://www.intel.co.jp/content/www/jp/ja/products/details/processors/core.html インテル® Core™ プロセッサー・ファミリー - 最新世代の Core™ プロセッサー・ファミリーを表示する]</ref>。}}
{{Gallery
|width = 200px
|File:IBM System360 model 20 (2).jpg|IBMの[[System/360]]のCPU。この箱の中身全体がCPU。
|File:HP-HP9000-PA-RISC-NS2-CPU 01.jpg|HP [[HP 9000]] PA-RISC-NS2-CPU
|File:Z0840004PSC.jpg|CPUの例、ザイログ社の[[Z80]]。Z80をCPUとして採用したコンピュータについては英語版カテゴリ[[:en:Category:Z80-based home computers]]が参照可。
|ファイル:MOS 6502AD 4585 top.jpg|[[MOS 6502]]。6502をCPUとして採用したコンピュータは[[:en:Category:6502-based home computers]]が参照可。
|File:Nintendo DMG CPU 1.jpg|Nintendo DMG CPU
|File:AMD Ryzen 9 3900X - ISO.jpg|[[アドバンスト・マイクロ・デバイセズ|AMD]]の[[Ryzen]]シリーズ。RyzenのThreadripperシリーズには64[[マルチコア|コア]]、128[[スレッド (コンピュータ)|スレッド]]の世界最速モデルがある(2021年〜2022年時点)。
|ファイル:Intel CPU Core i7 6700K Skylake top.jpg|([[インテル|Intel]] [[Intel Core i7|Core i7]]-6700K)[[LGA1151|FCLGA1151]]。
|File:Apple M1.jpg|CPUの機能に加えて、さらに周辺チップの機能や高機能の回路を含む[[SoC]]の一例、[[Apple M1]]。高性能なうえに消費電力がとても小さく、たとえばApple M1搭載の[[MacBook]] Pro 13インチモデルはノートパソコンなのにバッテリーだけで最大連続稼働時間が20時間と驚異的な省電力性能を誇る。<ref>[https://www.nojima.co.jp/support/koneta/75394/ ノジマ電機「M1チップ搭載のMacBook Pro 13インチを比較レビュー」]</ref>
}}
;機能と動作
{{see|コンピュータ#概要}}
CPUは[[記憶装置]]上にある[[プログラム (コンピュータ)|プログラム]]と呼ばれる命令列を順に読み込んで解釈・実行することで情報の加工を行なう。CPUはコンピュータ内での演算を行なう中心であり、CPUは通常は[[バス (コンピュータ)|バス]]と呼ばれる信号線を介して[[主記憶装置]]や入出力回路に接続され、何段階かの入出力回路を介して[[補助記憶装置]]や[[ディスプレイ (コンピュータ)|表示装置]]、通信装置などの[[周辺機器]]が接続され、[[データ]]やプログラムなど情報のやりとりを行なう。
28 ⟶ 32行目:
専用の電子回路に比べると実行速度は遅いが、プログラムを変えるだけで多様な処理が行なえることから、非常に多岐にわたる用途に使用できる汎用性と柔軟性が最大の特徴である。専用回路(ハードウェア)の変更・修正に比べれば、ソフトウェアの変更・修正は容易であり、物質的なコストがかからないため、システム設計・開発の試行錯誤もしやすい。このため、CPUはおよそあらゆるシステムに内蔵され、現代の産業や生活の屋台骨を支える存在にまで普及している。現在最も普及しているCPUアーキテクチャとして[[ARMアーキテクチャ]]が挙げられる。ARMアーキテクチャベースのCPUは[[1991年]]から数え[[2008年]]初頭に出荷個数が100億個を超える<ref>
{{
|date=2008-01-25
|url=http://www.jp.arm.com/pressroom/08/080125.html
35 ⟶ 39行目:
|accessdate=2009-05-10
}}
</ref>など、[[家電機器|家電製品]]から[[工業製品]]、[[携帯機器]]などに至る多くのシステムに組み込まれ、機器制御を司っている。また、[[パーソナルコンピュータ]] (PC) など、現在の汎用コンピュータ製品における多くのシステムのメインCPUに[[x86|x86アーキテクチャ]]が用いられており、[[インテル]]のx86系CPU出荷数は[[1978年]][[6月9日]]の[[Intel 8086|8086]]発売から[[2003年]]までの25年で10億個を越えた<ref>[
いわゆる[[ノイマン型]]・[[プログラム内蔵方式]]のプロセッサの構造と基本動作は、世界で最初の実用的なノイマン型・プログラム内蔵方式のコンピュータであった[[EDSAC]]の実装の時点で、すでに構造と基本動作が実装されている。CPUやCPU以外のプロセッサの発達には、プロセス技術の微細化による高速化、命令の各処理工程の並列実行([[命令パイプライン]]、演算パイプライン)、命令の並列実行([[スーパースケーラ]]、[[VLIW]])、データ演算の並列化([[SIMD]]演算)、複数プロセッサ・コアの実装([[マルチコア]])、複数スレッドの同時実行([[同時マルチスレッディング]])などやその他多数の要素がある。
78 ⟶ 82行目:
結果としてノイマン型で先に完成したのは、[[EDSAC]] (1949年) や[[Manchester Mark I]]の試作機 ''[[Manchester Small-Scale Experimental Machine|Baby]]'' (1948年) であった。EDVACは先に設計が始まっているが、設計者間のごたごたがあって完成が遅れた。また、アイデアレベルでは[[Zuse Z3]]を1941年に開発している[[コンラッド・ツーゼ]]もそれ以前にプログラム内蔵方式(書き換えでない点に注意)を考案していた{{efn|1936年に[[特許]]申請しているが、アメリカに出願した際に[[チャールズ・バベッジ]]の[[解析機関]]との類似を指摘され、特許は成立していない。{{独自研究範囲|date=2021-11|ツーゼはこのときまでバベッジの業績を知らなかったと思われる。}}なおZ3は1998年に[[チューリング完全]]であったことが示されている。}}。データとプログラムを同じ記憶装置に格納するかどうかという点が異なる方式として、[[ハーバード・アーキテクチャ]]がある。これはEDVAC以前に完成した[[Harvard Mark I]]に由来する。同機では[[さん孔テープ]]にプログラムを格納した。ノイマン型とハーバード型の大きな違いは、後者が命令とデータの格納場所と扱いを完全に分離していることであり、前者はどちらも同じ記憶領域に格納する。汎用CPUは基本的にノイマン型であるが、ハーバード・アーキテクチャも部分的に採用されている([[キャッシュメモリ]]など)。
[[デジタル]]機器としてのCPUは、状態を変更したり表現したりするために、何らかの[[開閉器|スイッチ]]を必要とする。電気機械式から電子式への移行期には、[[継電器|リレー]]や[[真空管]]がスイッチとして使われた。これらは、従来の完全な機械式よりも高速にスイッチを切り替えられたが、[[チャタリング]]をはじめ、コイル(インダクタ)によって発生する高電圧などの問題があった。一方、真空管はチャタリングは起こさないが、機能するには熱が必要であり、劣化により動作中にカソードの電子放射能力が減退(エミッション減退)して動作不能になってしまう。真空管が劣化・故障したら、故障した部位を特定して交換しなければならない。したがって、初期の電子計算機は高速化は実現したものの、電気機械式計算機よりも信頼性が低かった。[[EDVAC]]のような真空管計算機は故障と故障の間の平均時間([[平均故障間隔|MTBF]] = Mean Time Between Failure)は約 8 時間であったが、[[Harvard Mark I]]のようなリレー式計算機はほとんど故障しなかった。しかし、{{要検証範囲|date=2021-11|信頼性よりも性能が重視され{{efn|ここの「信頼性」の考え方には問題がある。対象の問題を解決するには一定量の計算量が必要なのであって、一定量の計算時間が必要なわけではない。従って、平均故障時間をそのまま比較するのではなく、性能比を考慮して比較しなければ意味がない。}}<!-- もし問題点や矛盾点があると思うんだったら、注釈で反論するような書き方はせず、本文の記述を修正しろよ……Wikipediaはお前のノートではないし、落書きをする場でもない。 -->}}、真空管式計算機が主流となっていった。当時の同期式CPUの[[クロック]]周波数は現在のCPUに比較すると非常に遅く、100 [[キロヘルツ|kHz]]〜4 [[メガヘルツ|MHz]]程度であった。これは、当時の論理素子(真空管)のスイッチング速度によって限界が定められていた。
=== 半導体化 ===
[[1964年]]、[[IBM]]が発表した[[System/360]]アーキテクチャは、いろいろな性能と大きさのコンピュータとして実装され、それらのシリーズではプログラムを変更することなく動作させることができた。当時、たとえ同じメーカーであっても、サイズの違うコンピュータは互換性がないのが普通だった。この改善を成し遂げるため、IBMは[[マイクロプログラム方式]]を採用した。これは現在のCPUでも広く使われている手法である。System/360は大変な成功を収め、その後数十年間[[メインフレーム]]市場を支配し続け、現在の[[z/Architecture]]に至っている。
91 ⟶ 95行目:
=== マイクロプロセッサ ===
{{Main|マイクロプロセッサ|CPU年表}}
CPUなどに使われる[[プロセッサ]]は、1970年代に1チップの大規模[[集積回路]]([[LSI]])に集積されるようになった([[マイクロプロセッサ]])。初期のマイクロプロセッサは4ビットや8ビットで、当時の[[ミニコンピュータ]]や[[メインフレーム]]のCPUに比べると非常に機能の限られたものであったが、1970年代末から1980年代の[[微細化]]の進展により、プロセス保護など当時の[[メインフレーム]]に相当するような機能を統合した32ビットプロセッサが現れた。組み込み用途には周辺機能やメモリ等を集積した、いわゆる[[マイクロコントローラ|ワンチップマイコン]]も普及した。初期のマイクロプロセッサは[[:en:NMOS logic|NMOSロジック回路]]で構成されていたが、1980年代には[[CMOS]]化が進み、消費電力が激減した(CMOSは消費電力は抑えられるが、当初は遅かったことから、電卓や時計など消費電力が重要で速度が重要でない分野でしか使われなかった)。CMOSは微細化が進めば進むほど[[静電容量]]が減り高速化でき、高速化を狙わない場合は低消費電力化できるという優れた特長があり([[ロバート・デナード|デナード]]則)、動作周波数は2000年代にはGHzオーダーまで上がった。微細化はより多くのゲートを載せることができるということでもあり、[[命令パイプライン]]や[[アウト・オブ・オーダー実行]]などで[[命令レベルの並列性]]を引き出す、複雑で高性能なプロセッサが作られるようにもなった。微細化による集積度の向上の傾向は[[ムーアの法則]]により定性的<!--正確に-->にモデル化されている。ただし複雑化に比例して性能が線形に上がるわけではない([[ポラックの法則]])。しかし、2006年頃にはデナード則が崩れて、動作周波数の向上とマイクロアーキテクチャの複雑化で性能向上を図る方向性は行き詰まった。以降は
[[ファイル:InternalIntegratedCircuit2.JPG|thumb|極低温で4.8 GHzで動作するマイクロプロセッサのマスクパターン]]
マイクロプロセッサの複雑さ、機能、構造、一般的な形状はこの50年間で劇的に変化したが、CPUの高性能化の基本的なコンセプトは、マイクロプロセッサ以前の1960年代に初めて現れた、というものが多い。たとえば、アウト・オブ・オーダー実行の方式である[[scoreboarding]]も[[Tomasuloのアルゴリズム]]も、最初に考案されたのは1960年代である。
100 ⟶ 104行目:
=== ビット幅 ===
{{N-bit}}
21世紀現在のコンピュータは、ほぼ全てが'''
例えば、「ビット幅」や「データバス幅」が8ビットであるため8ビットCPUと呼ばれるCPUでは、主なレジスタ等の幅、あるいは、データバスの幅が8ビットである。8ビットでは、非負整数であれば二進法8桁で表せる範囲である「2の8乗 − 1」まで、つまり[0 〜 255]の範囲の整数が表現できる。
123 ⟶ 127行目:
CPUのビット数による用途の例を示す。
; [[4ビット]]
:[[1980年代]]を中心に、一般的な[[家電機器|家電製品]]、[[キーボード (コンピュータ)|キーボード]]やマウス、[[電卓]]や[[時計]]など、ローエンドの[[組み込みシステム]]に広く用いられた。家電用の赤外線リモコンなど機能的に単純なものについては4ビットのマイクロプロセッサでも十分であるが、既に新規採用の事例はほとんどなくなっている。
; [[8ビット]]、[[16ビット]]
:[[組み込みシステム|機器組み込み]]向けに8ビットや16ビットのプロセッサ・コアと周辺回路を組み合わせた[[マイクロコントローラ]] ([[#MCU|MCU]]) と呼ばれるものが広く使用されている。いずれも要求仕様と製造原価との兼ね合いで都合の良いサイズのプロセッサが選定され製造される。だが、この用途でも32ビットマイクロプロセッサの価格低下、旧来用いてきた半導体の製造終了、要求仕様の高度化や汎用開発ツールの援用要求により、あえて32ビット以上のCPUを選択するケースも少なくない。
147 ⟶ 151行目:
ほとんどのCPU(もっと言えばほとんどの[[順序回路]])は同期式である。つまり、CPUは同期信号にしたがって動作するよう設計されている。この信号は「[[クロック]]信号」として知られていて、一定周期の[[矩形波]]の形であることが多い。電気信号の伝播速度からCPU内の信号経路の長さを考慮してクロック信号の[[周波数]]が決定される。この周波数は信号伝播の最悪ケースを考慮して決めなければならない。最悪ケースを考慮して周波数を決定すれば、CPU全体が波形のエッジ部分で動作するよう設計でき、CPUの設計を簡略化できると同時にトランジスタ数も減らすことができる。しかし、この設計手法の欠点としてCPU全体が最も遅い部分を待つように設計しなければならず、全体の高速化がその遅い部分によって制限される。この制限に対処するために[[命令パイプライン]]や[[スーパースケーラ]]といった手法が採られてきた。
つまり、無駄にクロック信号を供給することを止めれば電力消費は抑えられ発熱も小さくなる。このように、演算処理に関与しない不要ブロックへのクロック信号の供給を止める{{仮リンク|クロックゲーティング|en|Clock gating}}と呼ばれる手法がある。
169 ⟶ 173行目:
CPUを中心に拡張された電子部品に[[マイクロコントローラ]](MCU)がある。
このMCUはCPUに加えてプログラム格納用を含む[[主記憶装置|半導体メモリ]]や[[GPIO]]と[[UART|シリアルIO]]、[[デジタル-アナログ変換回路|DAC]]/[[アナログ-デジタル変換回路|ADC]]といった各種入出力機能に[[タイマー]]や[[Direct Memory Access|DMAC]]にクロック回路、必要に応じて[[デジタルシグナルプロセッサ|DSP]]や[[フラッシュメモリ]]などの周辺回路を1つの[[パッケージ (電子部品)|パッケージ]]に内蔵して、主に小型の[[組み込みシステム|組込機器]]の制御に使用される。
== 比喩 ==
[[比喩]]的表現だが、CPUは、コンピュータの「頭脳」に例えられることが多い<ref>[https://azby.fmworld.net/usage/closeup/20131023/?usagefrom=closeup パソコンの頭脳「CPU」どこを見れば性能がわかるの?(1/2) - FMVサポート : 富士通パソコン]</ref>。
[[コンピュータゲーム]]の世界では、コンピュータやソフトウェアが動かす対戦相手や敵ユニットをCPUと呼ぶこともある。
== 企業および製品 ==
187 ⟶ 196行目:
* 中森章著、『マイクロプロセッサ・アーキテクチャ入門 RISCプロセッサの基礎から最新プロセッサのしくみまで TECHI Vol.20』、CQ出版社、ISBN 4-7898-3331-3
* 渡波 郁、『CPUの創りかた』 毎日コミュニケーションズ, 2003, ISBN 978-4839909864
== 関連項目 ==
{{columns-list|column-width=25em|
* [[CPU年表]]
* [[4ビット]]
252 ⟶ 207行目:
* [[64ビット]]
* [[CPU設計]]
* [[CPUの冷却装置]]
* [[クロック周波数]]
** [[オーバークロック]]
* [[動作環境]]
* [[
* [[
* [[演算装置]]、[[FPU]]、[[スタックマシン]]、[[マイクロコントローラ]]
* [[バス (コンピュータ)]]
* [[CISC]] / [[RISC]]
* [[計算機科学]]
* [[計算機
* [[パイプライン処理]] - [[命令パイプライン]]
* [[マイクロプロセッサ]]
* [[マイクロプロ
* [[
* [[ベクトル計算機]]
* [[ストリーム・プロセッシング]]
}}
278 ⟶ 232行目:
{{Basic computer components}}
{{DEFAULTSORT:
[[Category:CPU|**]]
|