プロセッサ設計は、コンピュータ ハードウェアの主要コンポーネントであるプロセッサの作成を扱う、コンピュータ サイエンスおよびコンピュータ エンジニアリング(製造)のサブフィールドです。
設計プロセスには、命令セットと特定の実行パラダイム ( VLIWまたはRISCなど) の選択が含まれ、その結果、VHDLやVerilogなどで記述されるマイクロアーキテクチャが作成されます。マイクロプロセッサ設計の場合、この記述はさまざまな半導体デバイス製造プロセスのいくつかを使用して製造され、チップ キャリア上に接着されたダイが生成されます。このチップ キャリアは、プリント回路基板( PCB)にはんだ付けされるか、ソケットに挿入されます。
あらゆるプロセッサの動作モードは、命令リストの実行です。命令には通常、レジスタを使用してデータ値を計算または操作する命令、読み取り/書き込みメモリ内の値を変更または取得する命令、データ値間の関係テストを実行する命令、プログラム フローを制御する命令が含まれます。
プロセッサの設計は、半導体製造のためにファウンドリに送られる前に、1つまたは複数のFPGAでテストおよび検証されることがよくあります。[1]
詳細
基礎
CPUの設計は複数のコンポーネントに分かれています。情報はデータパス( ALUやパイプラインなど)を介して転送されます。これらのデータパスは、制御ユニットによってロジックを介して制御されます。メモリコンポーネントには、情報や特定のアクションを保持するためのレジスタファイルとキャッシュが含まれます。クロック回路は、クロックドライバ、PLL、クロック分配ネットワークを介して内部リズムとタイミングを維持します。パッドトランシーバ回路は、信号の送受信を可能にし、ロジックを実装するために使用されるロジックゲートセルライブラリを備えています。ロジックゲートは、プロセッサのほとんどのコンポーネントを実装するために使用されるため、プロセッサ設計の基礎となります。[2]
高性能市場向けに設計された CPU では、周波数、消費電力、チップ領域の目標を達成するために、これらの各項目に対してカスタム (最適化またはアプリケーション固有 (下記参照)) 設計が必要になる場合があります。一方、低性能市場向けに設計された CPU では、これらの項目の一部を知的財産として購入することで実装の負担を軽減できる場合があります。制御ロジック実装手法 ( CAD ツールを使用したロジック合成) を使用すると、データパス、レジスタ ファイル、クロックを実装できます。CPU 設計で使用される一般的なロジック スタイルには、非構造化ランダム ロジック、有限状態マシン、マイクロプログラミング(1965 年から 1985 年まで一般的)、プログラマブル ロジック アレイ(1980 年代に一般的でしたが、現在は一般的ではありません) などがあります。
実装ロジック
ロジックを実装するために使用されるデバイス タイプは次のとおりです。
- 個々の真空管、個々のトランジスタと半導体ダイオード、トランジスタ・トランジスタ・ロジック 小規模集積ロジックチップ(CPUには使用されなくなった)
- プログラマブルアレイロジックとプログラマブルロジックデバイス– CPUには使用されなくなった
- エミッタ結合ロジック(ECL)ゲートアレイ– もはや一般的ではない
- CMOS ゲートアレイ– CPUには使用されなくなった
- CMOS 量産IC – 量産台数でCPUの大部分を占める
- CMOS ASIC – 費用がかかるため、一部の特殊な用途にのみ使用される
- フィールドプログラマブルゲートアレイ(FPGA) –ソフトマイクロプロセッサでは一般的であり、再構成可能なコンピューティングでは多かれ少なかれ必須である。
CPU 設計プロジェクトには通常、次の主要なタスクがあります。
- プログラマが認識できる命令セットアーキテクチャ。さまざまなマイクロアーキテクチャで実装できる。
- ANSI C / C++またはSystemCでのアーキテクチャ研究とパフォーマンス モデリング[説明が必要]
- 高位合成(HLS)またはレジスタ転送レベル(RTL、例:ロジック)実装
- RTL検証
- 速度が重要なコンポーネント(キャッシュ、レジスタ、ALU)の回路設計
- 論理合成または論理ゲートレベルの設計
- すべてのロジックと回路が指定された動作周波数で動作することを確認するためのタイミング解析
- フロアプランニング、ロジックゲートの配置と配線を含む物理設計
- RTL、ゲートレベル、トランジスタレベル、物理レベルの表現が同等であることを確認する
- 信号の整合性、チップの製造可能性をチェック
CPU コアをより小さなダイ領域に再設計すると、すべてが縮小され (「フォトマスクシュリンク」)、結果として、より小さなダイ上に同じ数のトランジスタを配置できるようになります。これにより、パフォーマンスが向上し (トランジスタが小さくなるとスイッチングが高速化)、電力が削減され (ワイヤが小さくなると寄生容量が減少)、コストが削減されます (同じシリコン ウェハにより多くの CPU を配置できます)。同じサイズのダイで CPU をリリースし、CPU コアを小さくすると、コストはほぼ同じまま、1 つの超大規模統合チップ内でより高度な統合 (追加のキャッシュ、複数の CPU、またはその他のコンポーネント) が可能になり、パフォーマンスが向上し、全体的なシステム コストが削減されます。
ほとんどの複雑な電子設計と同様に、ロジック検証作業 (設計にバグがないことの証明) が CPU のプロジェクト スケジュールの大部分を占めるようになりました。
主要な CPU アーキテクチャの革新には、インデックス レジスタ、キャッシュ、仮想メモリ、命令パイプライン、スーパースカラー、CISC、RISC、仮想マシン、エミュレーター、マイクロプログラム、スタックなどがあります。
マイクロアーキテクチャの概念
研究テーマ
再構成可能なロジック、クロックレス CPU、計算 RAM、光コンピューティングなど、さまざまな新しい CPU 設計のアイデアが提案されています。
パフォーマンス分析とベンチマーク
ベンチマークは、 CPU 速度をテストする方法です。例としては、Standard Performance Evaluation Corporationが開発したSPECint やSPECfp、Embedded Microprocessor Benchmark Consortium EEMBCが開発した ConsumerMark などがあります。
よく使用される指標には次のようなものがあります。
- 1 秒あたりの命令数- ほとんどの消費者は、既存のコンパイル済みソフトウェアの大規模なベースを実行できるように、コンピューター アーキテクチャ (通常はIntel IA32アーキテクチャ) を選択します。コンピューターのベンチマークについてあまり詳しくないため、動作周波数に基づいて特定の CPU を選択する消費者もいます ( 「メガヘルツ神話」を参照)。
- FLOPS - 1 秒あたりの浮動小数点演算数は、科学計算用のコンピューターを選択する際に重要になることが多いです。
- ワットあたりの性能- Googleなどの並列コンピュータを構築するシステム設計者は、CPUの電力コストがCPU自体のコストを上回るため、ワットあたりの速度に基づいてCPUを選択します。[3] [4]
- 並列コンピュータを構築するシステム設計者の中には、コストあたりの速度に基づいて CPU を選択する人もいます。
- リアルタイム コンピューティングシステムを構築するシステム設計者は、最悪のケースでの応答を保証したいと考えています。CPU の割り込み遅延が小さく、応答が確定的であれば、これはより簡単に実現できます。( DSP )
- アセンブリ言語で直接プログラミングするコンピュータ プログラマーは、CPU がフル機能の命令セットをサポートすることを望んでいます。
- 低電力 - 電源が限られているシステム (太陽光、バッテリー、人力など) 向け。
- 小型または軽量 - ポータブル組み込みシステム、宇宙船用システム向け。
- 環境への影響 - 製造時およびリサイクル時、使用時のコンピューターの環境への影響を最小限に抑えます。廃棄物の削減、有害物質の削減。(グリーン コンピューティングを参照)。
これらのメトリックの一部を最適化すると、トレードオフが発生する可能性があります。特に、CPU の実行速度を上げる多くの設計手法は、「ワットあたりのパフォーマンス」、「ドルあたりのパフォーマンス」、および「確定的な応答」を大幅に低下させます。また、その逆も同様です。
市場
CPU が使用される市場は複数あります。各市場では CPU に対する要件が異なるため、ある市場向けに設計されたデバイスは、ほとんどの場合、他の市場には適していません。
汎用コンピューティング
2010年現在[update]、汎用コンピューティング市場、つまり企業や家庭で一般的に使用されているデスクトップ、ラップトップ、サーバーコンピューターでは、Intel IA-32と64ビットバージョンのx86-64アーキテクチャが市場を支配しており、ライバルのPowerPCとSPARCははるかに小さな顧客ベースを維持しています。毎年、この市場では数億個のIA-32アーキテクチャCPUが使用されています。これらのプロセッサのうち、ネットブックやラップトップなどのモバイル実装向けの割合が増加しています。[5]
これらのデバイスは、無数の異なるタイプのプログラムを実行するために使用されるため、これらの CPU 設計は、特定のタイプのアプリケーションまたは 1 つの機能に特化しているわけではありません。 幅広いプログラムを効率的に実行できるという要求により、これらの CPU 設計は技術的に最も高度なものになっていますが、比較的高価で、消費電力が高いという欠点もあります。
ハイエンドプロセッサの経済性
1984年当時、ほとんどの高性能CPUの開発には4~5年を要した。[6]
科学計算
科学計算は、収益と出荷台数で見るとはるかに小さなニッチ市場です。政府の研究室や大学で使用されています。1990 年以前は、CPU 設計はこの市場向けに行われることが多かったのですが、大規模なクラスターに編成された大量市場向け CPU の方が手頃な価格であることが証明されています。科学計算用のアクティブなハードウェア設計と研究が残っている主な分野は、大量市場向け CPU を接続する高速データ転送システムです。
組み込み設計
出荷されたユニット数で測定すると、ほとんどの CPU は、電話、時計、家電製品、車両、インフラストラクチャなどの他の機械に組み込まれています。組み込みプロセッサは年間数十億ユニット単位で販売されていますが、そのほとんどは汎用プロセッサよりもはるかに低価格です。
これらの単機能デバイスは、より一般的な汎用 CPU とはいくつかの点で異なります。
- 低コストは非常に重要です。
- 組み込みデバイスはバッテリー寿命が限られていることが多く、冷却ファンを搭載することが現実的ではないため、消費電力を低く抑えることが重要です。
- システムコストを下げるために、周辺機器はプロセッサと同じシリコンチップ上に統合されています。
- 周辺機器をオンチップに保つと、チップ外部で強い信号を維持するために必要な比較的高い電流負荷を供給またはシンクできるように、外部 GPIO ポートでは通常バッファリングが必要になるため、消費電力も削減されます。
- 多くの組み込みアプリケーションでは、回路用の物理的なスペースが限られているため、周辺機器をオンチップに保持すると、回路基板に必要なスペースが削減されます。
- プログラム メモリとデータ メモリは、多くの場合、同じチップに統合されています。プログラム メモリとしてROMのみが許可されている場合、そのデバイスはマイクロコントローラと呼ばれます。
- 多くの組み込みアプリケーションでは、割り込み遅延は一部の汎用プロセッサよりも重要になります。
組み込みプロセッサの経済性
組み込みCPUファミリーの中で出荷台数が最も多いのは8051で、年間平均10億台近くが出荷されている。[7] 8051は非常に安価であるため、広く使用されている。商用知的財産として広く利用できるため、設計時間は現在ほぼゼロである。現在では、チップ上の大規模システムの一部として組み込まれることが多い。8051のシリコンコストは現在0.001ドルまで低下しているが、これは実装によっては2,200個のロジックゲートしか使用せず、シリコン面積は0.4730平方ミリメートルに過ぎないからである。[8] [9]
2009年現在、ARMアーキテクチャファミリの命令セットを使用したCPUは、他のどの32ビット命令セットよりも多く生産されています。[10] [11] ARMアーキテクチャと最初のARMチップは、約1年半と人間の作業時間5年で設計されました。[12]
32ビットのParallax Propellerマイクロコントローラアーキテクチャと最初のチップは、2人の人間が約10年分の作業時間をかけて設計しました。[13]
8 ビットAVR アーキテクチャと最初の AVR マイクロコントローラは、ノルウェー工科大学の 2 人の学生によって考案され、設計されました。
8ビットの6502アーキテクチャと最初のMOSテクノロジー6502チップは、約9人のグループによって13か月かけて設計されました。[14]
研究および教育用CPU設計
32ビットのバークレーRISC IおよびRISC IIプロセッサは、主に大学院の4学期にわたるコースの一環として、一連の学生によって設計されました。[15]この設計は、商用SPARCプロセッサ設計 の基礎となりました。
約10年間、MITの6.004クラスを受講するすべての学生はチームの一員であり、各チームは1学期にわたって7400シリーズの 集積回路からシンプルな8ビットCPUを設計および構築しました。4人の学生からなる1つのチームは、その学期中にシンプルな32ビットCPUを設計および構築しました。[16]
学部課程の中には、2~5人の学生のチームが15週間の学期でFPGA内の単純なCPUを設計、実装、テストすることを要求するものもあります。[17]
MultiTitan CPUは2.5人年の労力で設計され、当時としては「比較的少ない設計労力」と考えられていました。[18] プロトタイプCPUの設計と構築を含む3.5年間のMultiTitan研究プロジェクトには24人が貢献しました。[19]
ソフトマイクロプロセッサコア
組み込みシステムの場合、電力消費要件のため、最高レベルのパフォーマンスは必要なく、望まれないことがよくあります。これにより、ロジック合成技術によって完全に実装できるプロセッサの使用が可能になります。これらの合成プロセッサは、はるかに短い時間で実装できるため、市場投入までの時間が短縮されます。
参照
- アムダールの法則
- 中央処理装置
- 命令セットアーキテクチャの比較
- 複合命令セットコンピュータ
- CPUキャッシュ
- 電子設計自動化
- 異機種コンピューティング
- 高水準合成
- 汎用CPUの歴史
- 集積回路設計
- マイクロアーキテクチャ
- マイクロプロセッサ
- 最小命令セットコンピュータ
- ムーアの法則
- 縮小命令セットコンピュータ
- システムオンチップ
- チップ上のネットワーク
- プロセス設計キット- 半導体デバイスの製造プロセスのために作成または蓄積された文書のセット
- アンコア
参考文献
- ^ Cutress, Ian (2019 年 8 月 27 日)。「Xilinx が世界最大の FPGA、900 万セルの Virtex Ultrascale+ VU19P を発表」AnandTech。
- ^ デシャン、ジャン=ピエール;バルデラマ、エレナ。テレス、ルイス(2016 年 10 月 12 日)デジタル システム: ロジック ゲートからプロセッサまで。スプリンガー。ISBN 978-3-319-41198-9。
- ^ 「EEMBC ConsumerMark」。2005年3月27日時点のオリジナルよりアーカイブ。
- ^ Stephen Shankland (2005 年 12 月 9 日)。「電力コストはサーバーコストよりも高くなる可能性がある、と Google が警告」ZDNet。
- ^ Kerr, Justin. 「AMD が市場シェアを失う、モバイル CPU の売上が初めてデスクトップを上回った」 Maximum PC。2010 年 10 月 26 日発行。
- ^ 「新しいシステムは 1 秒あたり数百のトランザクションを管理」、Tandem Computers Inc. の Robert Horst と Sandra Metz による記事、「Electronics」誌、1984 年 4 月 19 日: 「ほとんどの高性能 CPU の開発には 4 ~ 5 年かかりますが、NonStop TXP プロセッサはわずか 2 年半しかかかりませんでした。つまり、完全な仕様書の作成に 6 か月、実用的なプロトタイプの構築に 1 年、そして量産開始にさらに 1 年かかりました。」
- ^ Curtis A. Nelson. 「8051 概要」(PDF)。2011 年 10 月 9 日のオリジナル(PDF)からアーカイブ。2011 年 7 月 10 日に閲覧。
- ^ 「T8051 Tiny 8051互換マイクロコントローラ」(PDF)。2011年9月29日時点のオリジナル(PDF)からアーカイブ。
- ^ 平方ミリメートルあたりのドルを計算するには、[1]を参照してください。また、SOCコンポーネントにはピンやパッケージのコストがかからないことに注意してください。
- ^ 「ARM コアが 3G 領域に進出」、Mark Hachman、2002 年。
- ^ 「2パーセント解決策」ジム・ターリー著、2002年。
- ^ 「ARM のやり方」 1998
- ^ Gracey, Chip. 「プロペラが機能する理由」(PDF)。2009年4月19日時点のオリジナル(PDF)からアーカイブ。
- ^ 「ウィリアム・メンシュ氏へのインタビュー」。2016年3月4日時点のオリジナルよりアーカイブ。2009年2月1日閲覧。
- ^ CH Séquin ; DA Patterson . 「RISC I の設計と実装」(PDF)。2006 年 3 月 5 日のオリジナルからアーカイブ(PDF) 。
- ^ 「the VHS」。2010年2月27日時点のオリジナルよりアーカイブ。
- ^ Jan Gray. 「FPGA を使用したコンピュータ設計の指導」
- ^ Jouppi, NP; Tang, JY-F. (1989 年 10 月)。「持続性能とピーク性能の比率が高い 20 MIPS 持続 32 ビット CMOS マイクロプロセッサ」IEEE Journal of Solid-State Circuits . 24 (5): 1348–1359. Bibcode :1989IJSSC..24.1348J. doi :10.1109/JSSC.1989.572612.
- ^ 「MultiTitan: 4 つのアーキテクチャ論文」(PDF)。1988 年。pp. 4–5。2004年 8 月 25 日時点のオリジナルからアーカイブ(PDF) 。
一般的な参考文献
- Hwang, Enoch (2006)。VHDL によるデジタルロジックとマイクロプロセッサ設計。Thomson。ISBN 0-534-46593-5。
- プロセッサ設計: 概要
