CPU 設計と実装

CPU

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/11/01 07:05 UTC 版)

設計と実装

ビット幅

21世紀現在のコンピュータは、ほぼ全てが「二値論理」方式であり、そのうちの全てではないもののかなり多くが、二値論理に数の表現法として二進法をマッピングして演算などを行っているが[注釈 6]メインフレームや、電卓用に特別に設計されたマイコン[注釈 7]などには、広義の二進化十進表現に含まれるような方式でハードウェアによって直接に十進の計算を行う機能が強化されているものもある。1ビットが二進法の1桁である。ビット数を「ビット幅」などとも呼ぶ。

例えば、「ビット幅」や「データバス幅」が8ビットであるため8ビットCPUと呼ばれるCPUでは、主なレジスタ等の幅、あるいは、データバスの幅が8ビットである。8ビットでは、非負整数であれば二進法8桁で表せる範囲である「2の8乗 − 1」まで、つまり[0 〜 255]の範囲の整数が表現できる。

また「アドレス幅」はCPUが直接にメモリを指し示す(アドレッシングする)範囲を制限する。例えば、アドレス幅が32ビットのCPUでは、そのCPUが直接指定できるアドレスの範囲は、2の32乗、つまり4,294,967,296個の異なる位置になる。

System/360以降の多くの命令セットアーキテクチャ(ISA)では[注釈 8]1バイトがアドレス付けの単位であるため(バイトアドレッシング)[注釈 9]、4ギビバイトのメモリに、直接アクセスできる、ということになる。

これらはCPUのデータ幅やアドレス幅による単純な分類方法であり、実際のCPUではデータ信号線やアドレス指定方法に工夫することで、外部的に少ないデータバス幅や内部的に少ないアドレス幅でも効率的にメモリ・アクセスできるようにしているものがあるため、こういった分類は多少複雑になっている[注釈 10]

CPUを表現する場合のビット数の意味は以下の通りである。

  • アドレス幅(内部のアドレスレジスタ幅、外部アドレスバス幅)
  • データバス幅(内部データ幅、外部データバス幅)
  • 内部演算幅(=演算装置の幅と整数レジスタ幅)
  • 命令語長

1990年代以降は4ビットから64ビットまで多様なビット幅のCPUが製品化されている。高ビット幅のCPUは機能や性能が高い反面、高集積化や回路の複雑度から高価格で消費電力も大きく、低ビット幅のCPUは機能や性能が制限される代わりに安価で低消費電力であるなど特徴があり、状況に応じて使い分けられている。

1990年代後半から21世紀に入って、パーソナルコンピュータ用CPUで一般化した、いくぶん新たなCPU高速化技術については、複数CPUの搭載(マルチコア)やVLIWスーパースケーラなどがある。これらはメインフレームなどの大型計算機ではずっと前から一般的だったが、PC用の技術として降りてくるまでにはプロセス微細化の発展や製造コスト低下を待たなければならなかった。

用途例

CPUのビット数による用途の例を示す。

4ビット
1980年代を中心に、一般的な家電製品キーボードやマウス、電卓時計など、ローエンドの組み込みシステムに広く用いられた。家電用の赤外線リモコンなど機能的に単純なものについては4ビットのマイクロプロセッサでも十分であるが、既に新規採用の事例はほとんどなくなっている。
8ビット16ビット
機器組み込み向けに8ビットや16ビットのプロセッサ・コアと周辺回路を組み合わせたマイクロコントローラ (MCU) と呼ばれるものが広く使用されている。いずれも要求仕様と製造原価との兼ね合いで都合の良いサイズのプロセッサが選定され製造される。だが、この用途でも32ビットマイクロプロセッサの価格低下、旧来用いてきた半導体の製造終了、要求仕様の高度化や汎用開発ツールの援用要求により、あえて32ビット以上のCPUを選択するケースも少なくない。
32ビット
携帯電話デジタルカメラをはじめ、自動車のエンジン制御産業用ロボット工作機械白物家電など組み込みシステムや大小さまざまなシステムの制御に幅広く用いられており、狭義のCPUと呼ばれるものの主要な使用例である。
2000年代以降の半導体製造技術の進歩に伴い、ローエンドの32ビットプロセッサと16/8ビットプロセッサの価格差は少なくなっており、16ビット命令(ARMのThumb命令など)を持つ32ビットプロセッサがMCU用途にも広く使われるようになっている。
2010年代の高性能・多機能化した情報機器には、メインのCPUの他にしばしばペリフェラル(カメラなどのセンサ類や、ストレージ、ディスプレイ、ネットワークなどの周辺デバイス)制御用の32ビットMCUが組み込まれている。また、IoTデバイスの構成単位としてセンサやアクチュエータに組み込まれるMCUへの性能要求も高度化している。こうしたことから世の中に出回っている32ビットプロセッサの数は膨大である。
64ビット
パーソナルコンピュータ (PC)、ワークステーションサーバスーパーコンピュータをはじめ、タブレットスマートフォンなどの「スマートデバイス」と総称される情報機器、ルータなどのネットワーク機器、ゲーム機など、大量のデータを処理する用途で使われている。
業務用のサーバでは大きな主記憶容量が求められたため、1990年代からCPUとオペレーティングシステム (OS) の64ビット化が進められていたが、一般消費者向けのPCにも浸透したのは2000年代中盤以降である[注釈 11]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に比較して性能が向上するかどうかは定かではないが、少なくとも原理的には効果が期待できる。

並列化


注釈

  1. ^ インテルの日本法人は「プロセッサー」と表記している[3]
  2. ^ アイディアの元はENIACのプロジェクト中に検討されたもので、ノイマンは助言役として加わり、報告書の執筆者はノイマンである。報告書の著者がノイマンだけとされたことやアイディアを誰の功績とみるかについては諸説ある。
  3. ^ モークリーとエッカートの離脱(理由については諸説)などがありごたついた。運用に入ったのは1951年。
  4. ^ 1936年に特許申請しているが、アメリカに出願した際にチャールズ・バベッジ解析機関との類似を指摘され、特許は成立していない。ツーゼはこのときまでバベッジの業績を知らなかったと思われる。[独自研究?]なおZ3は1998年にチューリング完全であったことが示されている。
  5. ^ ここの「信頼性」の考え方には問題がある。対象の問題を解決するには一定量の計算量が必要なのであって、一定量の計算時間が必要なわけではない。従って、平均故障時間をそのまま比較するのではなく、性能比を考慮して比較しなければ意味がない。
  6. ^ 初期のデジタルコンピュータには、それ以前の機械式計算機に類似させたため(ENIACの場合)や、事務的な計算のため(IBM 1401の場合)に、十進法を採用したものもあった(EDSACのように二進のものもあった)。他には3進数を採用したものもあった。それ以降は二進法を採用するのが一般化した。二進法では各桁はふたつの値(1 と 0)しかとらないので、高い電圧と低い電圧でそれを表すことができる。
  7. ^ 人が気にならない程度に(すなわち、普通のCPUとは比較にならないほど)遅くても良いが、極めて省電力であることなどが要求される。
  8. ^ 近年[いつ?]で、日本でよく知られている例外は、CASLのCOMETぐらいであろう[独自研究?]
  9. ^ なお、複数バイトから成るワード単位のアクセスは、必ずしもこの単位でアクセスできるとは限らない(アラインメント違反としてバスエラーになるものも多い)。
  10. ^ アドレスビット幅は8ビットCPUにおいては16ビット幅以上ある事が通常で、32ビットCPUでは24ビットなど、N-ビットCPUと称する場合のビット数と一致しない事が多数ある。外部データバス幅は16ビットCPUで外部データバス8ビット、32ビットCPUで外部バス16ビットなど、これもN-ビットCPUと称する場合のビット数と一致しない事が多数ある。内部データバス幅は32ビットCPUで内部データバス64ビットの例がある。レジスタのビット幅では16ビットCPUで32ビットレジスタを持つCPUがある。命令長はCISCでは複数のビット幅が混在しており、RISCでも32ビット演算で16ビットバスなどがある。
  11. ^ Microsoft Windows Server 2003をベースにしたMicrosoft Windows XP Professional x64 Editionが2005年にリリースされたが、最初の一般消費者向け64ビットOSとしては、翌2006年にリリースされたx64版Microsoft Windows Vistaが主にその役目を果たした。
  12. ^ 64ビット版Microsoft WindowsにはWOW64サブシステムが搭載されている。64ビット版macOSもまた32ビットアプリケーションの動作をサポートするが、High Sierra以降では非推奨となり、起動時に警告が表示されるようになっている。macOS Catalinaでは32ビットアプリケーションのサポートが打ち切られた。
  13. ^ x86版Microsoft Windowsは32ビットのx86 CPUを搭載するシステムのほか、64ビットのx64 CPUを搭載するシステムにインストールして実行することもできる。

出典



「CPU」の続きの解説一覧

C.P.U !?

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/21 23:18 UTC 版)

C.P.U !?」(シー・ピー・ユー !?)は、Cheeky Paradeの2枚目のシングル2013年4月10日iDOL Streetから発売された。


注釈

  1. ^ ミニライブ終了後、CD(イベント会場・mu-moショップ限定盤)予約購入者(4月13日・14日は握手会イベント参加券の所持者)対象の握手会を開催。
  2. ^ 「アキバ☆ソフマップ・ドットコム」における“Cheeky Parade 1周年記念ライブ チケット付きCDセット”(ローソン・HMV限定盤を除く)購入者に郵送されるイベント入場参加券を要する。イベントの模様はUstreamで配信された。
  3. ^ mu-moショップの抽選販売における“3形態同時購入セット”(参加券付き)購入者のみ参加対象。
  4. ^ ローソン・HMV限定盤封入のイベント参加応募券における抽選の当選者のみ参加対象。
  5. ^ CD(イベント会場・mu-moショップ限定盤)予約購入者対象。握手会イベント参加券(現地配布)1枚につきメンバー全員と握手。
  6. ^ a b イベント整理券(店舗配布)・握手会イベント参加券を要する。店舗・メンバーなどの詳細は公式ウェブサイトを参照のこと。

出典

  1. ^ 渡辺亜紗美. “秘密っ★ミと大福っ!(あさみん)(2013年1月28日)”. Cheeky Parade official blog. サイバーエージェント. 2013年1月28日閲覧。
  2. ^ ミュージックビデオサーチ”. SPACE SHOWER TV. スペースシャワーネットワーク. 2013年3月18日閲覧。
  3. ^ 関根優那. “ゆ〜にゃん@感謝です♪(2013年2月14日)”. Cheeky Parade official blog. サイバーエージェント. 2013年2月14日閲覧。
  4. ^ CheekyParade_D(2013年2月8日)”. Twitter. Twitter. 2013年3月5日閲覧。
  5. ^ B.M.H/ばい菌持ってる鳩/い〜ちゃん(2013年4月9日)”. Twitter. Twitter. 2013年4月11日閲覧。
  6. ^ 渡辺亜紗美. “あの振り付けっ!実はっ(あさみん)(2013年4月9日)”. Cheeky Parade official blog. サイバーエージェント. 2013年4月9日閲覧。
  7. ^ 関根優那. “ゆ〜にゃん@アイドルグランプリ挑戦だらけ!(2013年3月31日)”. Cheeky Parade official blog. サイバーエージェント. 2013年4月1日閲覧。
  8. ^ 溝呂木世蘭. “☆せらん☆優柔不蘭から。。。(2013年4月14日)”. Cheeky Parade official blog. サイバーエージェント. 2013年4月15日閲覧。
  9. ^ 山本真凜. “SAKURA☆まりん(2013年4月7日)”. Cheeky Parade official blog. サイバーエージェント. 2013年4月7日閲覧。
  10. ^ “オリコン3位のチキパ 春にももクロの後輩と妹分対決”. Billboard JAPAN (阪神コンテンツリンク). (2013年2月10日). http://www.billboard-japan.com/d_news/detail/10046 2013年2月10日閲覧。 
  11. ^ “一周年イベントに見る、小生意気なアイドル チキパの成長と変化”. Billboard JAPAN (阪神コンテンツリンク). (2013年2月25日). http://www.billboard-japan.com/d_news/detail/10356 2013年2月26日閲覧。 


「C.P.U !?」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「CPU」に関係したコラム

辞書ショートカット

すべての辞書の索引

「CPU」の関連用語

CPUのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CPUのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCPU (改訂履歴)、C.P.U !? (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2022 GRAS Group, Inc.RSS