CPU設計
CPU設計とは、コンピュータハードウェア部品であるCPU開発における設計であり、電気工学と計算機工学のサブフィールドである。
目次 |
概要 [編集]
CPU設計の中心は以下のような部分である。
- データパス(演算装置とパイプラインなど。実行ユニットを、流れるデータの観点から見たものが「データパス」である)
- 制御装置(データパスを制御する論理回路)
- メモリ部品(レジスタファイル、キャッシュ)
- クロック回路(クロックドライバ、PLL、クロック供給ネットワーク)
- パッドトランシーバ回路
- 論理ゲートセルのライブラリ(論理回路の実装に使う)
高性能を求められる市場向けのCPU設計では、動作周波数、消費電力、チップ面積の目標を達成するため、これら全てを独自に設計する必要が生じる場合もある。
低消費電力を求められる市場向けのCPU設計では、以下のようにして実装負担を減らす場合がある。
- 一部を、IP(知的財産のこと)と呼ばれる既存の設計を購入する形で入手する。
- 制御用論理回路の実装技法(CADツールによる論理合成)を他の部分(データパス、レジスタファイル、クロックなど)の実装にも利用する。
CPU設計でよく使うロジックスタイルとしては、以下のものがある。
ロジックの実装に使うデバイスの種類は以下の通り。
- TTL集積回路 - チップ数が多量になるため、最近では使わない。
- プログラマブルロジックデバイス - 一時期CPUにも使われた。
- ECLゲートアレイ - 今では一般的ではない。
- CMOSゲートアレイ - 一時期CPUにも使われた。
- CMOS ASIC - 最近では最も一般的。
- FPGA - ソフトプロセッサで一般的。再構成可能コンピューティングでは多かれ少なかれ必須。
CPU設計には、一般に以下のような作業がある。
- プログラマから見える命令セットアーキテクチャの設計。実装は様々なマイクロアーキテクチャで行う。
- アーキテクチャ研究と性能モデリング
- RTL設計と検証
- 性能上重要な部分の回路設計(キャッシュ、レジスタ、ALU)
- 論理合成または論理ゲートレベルの設計
- タイミング分析(各部分が指定した周波数で動作することの確認)
- 論理ゲートの配置と配線などの物理設計
- RTL、ゲートレベル、トランジスタレベル、物理レベル、それぞれの等価性を検証
- デザインルールチェックとシグナルインテグリティのチェック
多くの複雑な電子回路設計と同様、論理の検証(設計にバグが含まれていないことの証明)がCPU開発プロジェクトのスケジュール上、重要な位置を占めている。
CPUアーキテクチャ上の重要な発明としては、キャッシュメモリ、仮想記憶、パイプライン、スーパースケーラ、CISC、RISC、仮想機械、エミュレータ、マイクロプログラム方式、スタックなどがある。
目標 [編集]
初期のCPUは、人間よりも高速かつ正確に計算を行うことを目標に設計された。
その後、CPUは世代毎にそれぞれの目標を達成すべく設計されてきた。
- 単一のプログラムまたはスレッドの性能を強化する。
- 複数プログラム/スレッドのスループット性能を強化する。
- 同じ性能レベルをより低消費電力で達成する。
- 同じ性能レベルをより低価格で達成する。
- 接続性を強化し、より大規模な並列システムを構築できるようにする。
- 特定市場をターゲットとして、より特化したものにする。
CPUコアを再設計してダイサイズを小さくすると、これらの目標のいくつかを達成できる場合がある。
- 全てを縮小すると(フォトマスクの縮小)、より小さいダイに同じ個数のトランジスタが実装されることになり、性能が向上し(トランジスタが小さいとスイッチ時間が速くなる)、電力消費が少なくなり(配線が小さくなると寄生容量が小さくなる)、コストが削減される(同じシリコンウェハで、より多くのCPUを製造できる)。
- 同じダイサイズで、CPUコアを縮小すると、製造コストはほぼ同じになるが、空いた面積に様々なものを集積でき(キャッシュ追加、複数CPUコアなど)、性能が向上し、システム全体のコストが削減できる。
性能分析とベンチマーク [編集]
CPU性能を測るプログラムはあまりにも多数存在するため、ベンチマークが開発された。最も有名なベンチマークとしてSPECの開発した SPECint および SPECfp と、EEMBC (Embedded Microprocessor Benchmark Consortium) が開発した ConsumerMark がある。
また、以下のような測定(尺度)も重要である。
- 1秒当たりの命令実行数 - 多くの消費者は既存の多数あるソフトウェアをそのまま実行できるアーキテクチャを選ぶ傾向にある(通常、インテルのIA-32アーキテクチャ)。また、そのような大多数の人々はベンチマークについて知識を持たず、クロック周波数でCPUを選ぶ傾向がある。
- FLOPS - 1秒当たりの浮動小数点演算回数。科学技術計算で重視される。
- 1ワット当たりの性能 - 並列コンピュータを構築する場合(例えば、Google)、消費電力のワット数当たりの性能値を重視する。これは、CPUに電力を供給するコストがCPU自体の価格を上回るためである。[1]
- また、並列コンピュータ構築に当たって、価格性能比を重視する場合もある。
- リアルタイムシステムでは、最悪ケースの応答時間の保証が重要である。これはつまり、CPUの割り込みレイテンシが小さく、かつ予測可能であればよい(DSPなど)。
- アセンブリ言語でプログラムを書く場合、命令セットが重視される。
- 携帯機器など消費電力を低く抑える必要がある場合は、性能よりも消費電力が重視される。
- 携帯機器や宇宙船のシステムでは、大きさや重さが重要となる。
- 近年、環境への影響が小さいこと(製造時、使用時、廃棄時)が重視されつつある(グリーンコンピューティング)。
これらの一部は共存できない。特にとにかく高速に動作することを目標として設計したCPUでは、「1ワット当たりの性能」や「1円当たりの性能」や「応答時間の保証」などは良くない(逆も同様)。
市場 [編集]
CPUの市場はいくつかある。それぞれの市場がCPUに求めるものは異なるため、ある市場向けに設計したCPUは、他の市場には不適当なことが多い。
汎用コンピューティング [編集]
CPUの収益の大部分は、汎用コンピューティング向けの販売から得られている。すなわち、ビジネスや家庭で使用するパーソナルコンピュータやサーバである。この市場は、インテルのIA-32アーキテクチャの寡占状態にあり、PowerPCやSPARCがだいぶ引き離されてそれに続いている。毎年、数億個のIA-32アーキテクチャのCPUがこの市場向けに販売されている。
この市場では、多種多様なプログラムを実行するため、CPU設計に当たっては特定のアプリケーションを想定して設計することはない。なるべく多くのプログラムを効率的に実行でるようにするため、CPU設計には最新技術が使われ、結果としてコストは高くなり、消費電力も大きくなる。
ハイエンドプロセッサの経済 [編集]
新たなハイエンドCPUの開発には、多大なコストを要する。論理的複雑性(論理設計および論理検証に大人数が必要であり、シミュレーションにも多数のコンピュータを利用する)と高い動作周波数(大規模な回路設計チームを必要とし、最新の製造プロセスを利用する必要がある)によって、この種のチップの設計は高くつくことになる。ハイエンドCPUの設計コストは1億ドルのオーダーになる。ハイエンドCPUの設計には約5年を要するため、他社との競争力を維持するには最低でも2つの開発チームを並行して運営する必要がある。
例えば、アメリカでのコンピュータ技術者1人を雇用するのにかかるコストは一年で25万ドルと言われている。これには、給料だけでなく、各種手当て、CADツール、コンピュータ、オフィススペースの賃貸料などが含まれる。100人の技術者でCPUを設計し、4年かかるとすると、総コストは1億ドルになる。これは単なる一例である。実際の設計チームは最近では数百人と言われている。
2004年現在、最新技術を使った汎用コンピューティング向けCPUを設計しているのは、4社だけになっている(インテル、AMD、IBM、富士通)[要出典]。モトローラは、金食い虫と化していた半導体部門をフリースケール・セミコンダクタとしてスピンオフさせた。他社からCPU設計を請け負っている企業として、GLOBALFOUNDRIES、テキサス・インスツルメンツ、TSMC、東芝がある。
科学技術計算 [編集]
詳細は「スーパーコンピュータ」を参照
金額的にも出荷台数的にも小さい科学技術計算市場は、研究機関や大学が顧客である。かつてはこの市場向けにCPU設計が盛んに行われていたが、より大きな市場向けに設計したCPUを流用した方が効率的であることから、専用CPUの設計はほとんどなされなくなった。ハードウェア設計や研究が続いている分野としては、高速なシステム間接続に関する分野がある。
組み込み向け設計 [編集]
詳細は「マイクロコントローラ」を参照
出荷台数ベースで言えば、CPUのほとんどは各種機械(電話機、時計、航空機、自動車、その他)に組み込まれている。組み込みシステム用プロセッサは汎用プロセッサよりずっと低価格だが、毎年数十億個が販売されている。
汎用CPUとの違いは、以下のような点である。
- 低価格が最重視される。
- ファンを装備できない機器が多いため、低消費電力(低発熱量)も重要である。
- システム全体のコストを低減するため、チップ内に周辺機能を組み込む。
- メモリもチップ内に組み込むことが多い。
- 割り込みレイテンシを小さく抑えることが重視される。
- 汎用CPUよりも長期間製造(あるいはストック)される(10年程度)。
ソフト・マイクロプロセッサ・コア [編集]
詳細は「ソフトプロセッサ」を参照
組み込みシステムでは、電力消費が重視されるため、高性能は要求されない。このため、プロセッサ全体を論理合成技術で実装することが可能である。その場合、実装に要する期間が短縮され、タイムリーな出荷が可能となる。
関連項目 [編集]
参考文献 [編集]
- Hwang, Enoch (2006年). Digital Logic and Microprocessor Design with VHDL. Thomson. ISBN 0-534-46593-5.