CPU
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

2010年代以降、市販されているPCは64ビットCPUを搭載するものがほとんどであるが、オフィススイートなどの用途ではアプリケーションソフトウェアを64ビット化してもパフォーマンス向上の恩恵が得られる場面は限られており[7]、また互換性の問題(32ビット版のアドオンが利用できなくなるなど)の回避のために、32ビット版アプリケーションが推奨されているケースもある[8]。一部のプラットフォームでは、64ビットOS上の32ビットエミュレーションレイヤーを介して32ビットアプリケーションを実行することもできるため、すべてのアプリケーションを64ビット化しなければならないというわけではない[注釈 12]。また、64ビット版のデバイスドライバが提供されていない周辺機器があるなどの問題から、64ビットCPUを搭載していながらも32ビット版のOSを利用しなければならないケースもある[注釈 13]。ただし、画像処理や動画編集など大量のデータを処理する用途では、巨大なメモリを割り当てることができる64ビット化のメリットは大きく、これらのアプリケーションソフトウェアは比較的早い時期から64ビット化が進んだ。2019年現在では、32ビット版デバイスドライバのサポートや更新が打ち切られているケースもある[9]。スマートフォンも普及の初期は32ビットCPUが用いられたが、2013年9月に発表されたiPhone 5sを皮切りに64ビットCPUへの対応と移行が進んでおり、iOSのように32ビット版アプリケーションの動作サポートを打ち切ったり、Androidのように64ビット版アプリケーションの提供を義務付けたりするプラットフォームもある。

上記の分類に当てはまらないものとして、過去には、互いに結合し自由にビット長を増やす事ができる方式のCPUがあり、これはビットスライスプロセッサと呼ばれた。代表的な製品にAMDのAM2900シリーズなどが挙げられる。AM2901は、スイス連邦工科大学Lilithワークステーション等に使用されていた。またデータをバイト単位で扱うCPU(バイトマシン)の他、ワード単位で扱うCPU(ワードマシン)もある(日本電気ACOS-6など)。
低消費電力化「半導体の低消費電力技術」も参照
低電圧化

最も基本的なCPUの低消費電力化技術は低電圧化であった。ロジック動作の信号線の電圧を低電圧化することは、低消費電力化につながると同時に信号を"Hi"と"Low"の間で高速に変更できるため動作速度の向上にも寄与した。

当初はリレーのような数十ボルトの動作電圧だったが、1980年代には5 Vがデジタルコンピュータの標準的な動作電圧となり、1990年代には内部回路が3 V程度の低電圧化を取り入れはじめ、外部との信号線でも同様の低電圧化が行なわれる頃には、CPUの内部ではさらに低い電圧が採用されるようになった。2000年代末には内部的には1 V弱まで低電圧化が進められ、当時はノイズ耐性を考慮すればほぼ限界であると考えられていたが、その後もマイクロプロセッサの低電圧化の趨勢は続き、2013年に登場したQuark X1000は最低0.28 Vの超低電圧動作が可能である。
クロックゲーティング

ほとんどのCPU(もっと言えばほとんどの順序回路)は同期式である。つまり、CPUは同期信号にしたがって動作するよう設計されている。この信号は「クロック信号」として知られていて、一定周期の矩形波の形であることが多い。電気信号の伝播速度からCPU内の信号経路の長さを考慮してクロック信号の周波数が決定される。この周波数は信号伝播の最悪ケースを考慮して決めなければならない。最悪ケースを考慮して周波数を決定すれば、CPU全体が波形のエッジ部分で動作するよう設計でき、CPUの設計を簡略化できると同時にトランジスタ数も減らすことができる。しかし、この設計手法の欠点としてCPU全体が最も遅い部分を待つように設計しなければならず、全体の高速化がその遅い部分によって制限される。この制限に対処するために命令パイプラインスーパースケーラといった手法が採られてきた。

パイプラインだけでは同期式CPUの問題を全て解決することはできない。たとえば、クロック信号は他の電気信号の遅延に影響される。クロック周波数が高くなり、さらに複雑なCPUを動作させようとしたとき、全回路を同期させるのが困難になってきた。このため、新たな高性能CPUでは1つのクロック信号でCPU全体を同期するのではなく、いくつかのクロック信号で各部分を個別に同期させるようにしている。また、クロック周波数が高くなるにつれてCPUの発熱が大きな問題となってきた。クロック信号が"Hi"と"Low"を繰り返すことで多くのロジック回路が同様に"Hi"と"Low"を繰り返し、その回路が演算処理に使われていない時でもクロック信号が供給されている間は無駄に動作して発熱する。21世紀現在CPUに使用されている半導体回路では、信号電圧を"Hi"か"Low"に保持し続けるよりも"Hi"から"Low"や"Low"から"Hi"へ移る時に多くの電気エネルギーを消費する。このため、CPUに高速処理能力を求めるとクロック周波数が高くなり発熱も多くなって、さらに冷却する必要が生じる。

つまり、無駄にクロック信号を供給することを止めれば電力消費は抑えられ発熱も小さくなる。このように、演算処理に関与しない不要ブロックへのクロック信号の供給を止めるクロックゲーティング(英語版)と呼ばれる手法がある。
パワーゲーティング

2000年代後半以降に登場した高性能CPUで使用されている半導体回路技術(プロセス技術)では、消費電力に対するリーク電流の比率が大きくなった。リーク電流はクロック信号の有無に関係が無いため、クロックゲーティングだけでは大きな電力削減効果は得られない。

このような高性能CPUでは、クロック信号の供給停止だけではなく、動作していないモジュール等への電源供給そのものを遮断するパワーゲーティング(英語版)と呼ばれる技術が必要になる。従来は、高性能化したCPUが消費する大電流をロジック回路に最適化された半導体回路技術(プロセス技術)で制御することは容易ではなかったが、リーク電流対策として2000年代末までには広く用いられる技術になった。
非同期設計

クロック信号で全体を一斉に動かすのをやめる、という手もある。非同期設計には独特の手法が必要で、同期設計と比較すると非常に難しい点があるが、消費電力と発熱の面で大きな利点がある。SRAMなどでは、クロックと関係なくアクセスできたほうが扱いに便利な場合もあり、非同期SRAMはごく一般的な製品である。また演算回路など、一般的なプロセッサ内部の一部に使われることもある。

一般に市販された製品としては、非同期設計を表に出したマイクロプロセッサはあまり一般的ではないが、研究室での試作といったレベルでは研究・試作はさかんに行われており、日本のものでは南谷らによるTITAC[10]などが知られている。海外ではマンチェスター大によるARMベースのAMULETは(技術的ではない理由で中止にはなっているが)市販品に使用される予定があった。他にMIPSR3000)ベースのMiniMIPSなどがある。

クロックを完全に無くするのではなく部分的に非同期化することで性能を高める工夫としては、非同期演算装置を使ってスーパースカラーのパイプラインを構成することで演算性能を上げようとした設計などがある。同期動作するCPUに比較して性能が向上するかどうかは定かではないが、少なくとも原理的には効果が期待できる。
並列化詳細は「スーパースケーラ」、「マルチコア」、および「並列コンピューティング」を参照
MCU

CPUを中心に拡張された電子部品にマイクロコントローラ(MCU)がある。このMCUはCPUに加えてプログラム格納用を含む半導体メモリGPIOシリアルIODAC/ADCといった各種入出力機能にタイマーDMACにクロック回路、必要に応じてDSPフラッシュメモリなどの周辺回路を1つのパッケージに内蔵して、主に小型の組込機器の制御に使用される。
比喩

比喩的表現だが、CPUは、コンピュータの「頭脳」に例えられることが多い[11]

コンピュータゲームの世界では、コンピュータやソフトウェアが動かす対戦相手や敵ユニットをCPUと呼ぶこともある。
企業および製品「CPU製品一覧」を参照
脚注[脚注の使い方]
注釈^ インテルの日本法人は「プロセッサー」と表記している[3]
^ アイディアの元はENIACのプロジェクト中に検討されたもので、ノイマンは助言役として加わり、報告書の執筆者はノイマンである。報告書の著者がノイマンだけとされたことやアイディアを誰の功績とみるかについては諸説ある。
^ モークリーとエッカートの離脱(理由については諸説)などがありごたついた。運用に入ったのは1951年。
^ 1936年に特許申請しているが、アメリカに出願した際にチャールズ・バベッジ解析機関との類似を指摘され、特許は成立していない。ツーゼはこのときまでバベッジの業績を知らなかったと思われる。[独自研究?]なおZ3は1998年にチューリング完全であったことが示されている。
^ ここの「信頼性」の考え方には問題がある。対象の問題を解決するには一定量の計算量が必要なのであって、一定量の計算時間が必要なわけではない。従って、平均故障時間をそのまま比較するのではなく、性能比を考慮して比較しなければ意味がない。
^ 初期のデジタルコンピュータには、それ以前の機械式計算機に類似させたため(ENIACの場合)や、事務的な計算のため(IBM 1401の場合)に、十進法を採用したものもあった(EDSACのように二進のものもあった)。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:83 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef