CPUはどのように設計されていますか?


21

私は少し前に電子機器で遊んで、トランジスタを使って簡単な論理ゲートを作り始めました。私は、最新の集積回路がトランジスタ-トランジスタロジックの代わりにCMOSを使用することを知っています。私が疑問に思わざるを得ないのは、CPUの設計方法です。

設計はまだ(サブ)論理ゲートレベルで行われていますか、それともその領域にそれほど多くのイノベーションがなく、より高いレベルの抽象化に移行しましたか?ALUの構築方法は理解していますが、CPUにはそれ以上のものがあります。

数十億個のトランジスタの設計はどこから来たのですか?ほとんどはソフトウェアによって自動生成されますか、それとも手動による最適化がたくさんありますか?


2
VerilogまたはVHDLと言います。
-avakar

3
これらのトピックは魅力的ですが、「直面している実際の問題に基づいた実用的で回答可能な質問」からは遠いようです。また、この質問に答える本全体を想像することができます。
マーティン

1
@Overv、プラグインしているベースブロックがゲートレベルで最適化されていることを確認し、最適化された方法でそれらの最適化されたブロックをプラグインするだけの作業がまだたくさんあります!
コルトゥク

13
私は再オープンすることに投票しました-「CPU全体をゼロから構築するために知っておく必要があることはすべて」という完全な答えはこのサイトに適していませんが、簡単な概要といくつかの リンクはここで良い答えです。
davidcary

1
ここで、より複雑なASIC設計についてコメントできる半導体業界で働く人がいないことに驚いています。私は専門家ではないので、これは聞いたことのあるものです。IPコアには多くのライセンスがあり、それをすべてまとめる分野はVLSIと呼ばれています。設計は高度に最適化された合成ツールを使用してVHDL / Verilogで行われます。これがウェーハレベルに到達し、製造される方法は私の知識を超えています。
ジョンL

回答:


10

CPUとSoCは、VerilogやVHDL(2つの主要なプレーヤー)などのハードウェア記述言語で使用されている可能性が非常に高いです。

これらの言語では、さまざまなレベルの抽象化が可能です。VHDLでは、論理ブロックをエンティティとして定義できます。入力ポートと出力ポートが含まれています。ブロック内で、必要なロジックを定義できます。入力A、入力B、および出力Cでブロックを定義するとします。C= AおよびB;と簡単に記述でき、基本的にANDポートブロックを作成しました。これはおそらく想像できる最も単純なブロックです。

デジタルシステムは通常、強力な階層で設計されています。CPUが必要とする主要な機能(プロセッサ(複数?)メモリ、PCIエクスプレス、およびその他のバス)で「トップレベル」を開始できます。このレベルでは、メモリとプロセッサ間のバスと通信信号がすでに定義されている場合があります。

レベルを1つ下に下げると、何か「作業」を行うための内部作業が定義されます。マイクロコントローラの例を取り上げると、UARTインターフェイスが含まれている場合があります。機能的なUARTを作成するために必要な実際のロジックは、1レベル下で定義されます。ここでは、必要なクロック、バッファーデータ(FIFOバッファー)、CPUへのレポートデータ(ある種のバスシステム)。

VHDLおよびデジタルデザインの興味深い点は、ブロックの再利用です。たとえば、最上位のUARTブロックをコピーして貼り付けるだけで2つのUARTを作成できます(UARTブロックが何らかのアドレス指定が可能な場合のみ、そう簡単ではないかもしれません!)。

この設計は、ゲートレベルの設計ではありません。VHDLは、最終的に論理ゲートに変換されるように「コンパイル」することもできます。マシンは、人間ができるよりもはるかに優れた最適化を行うことができます(そしてより速くもできます)。例えば; ブロックAの内部には、信号を出力する前にインバーターが必要です。ブロックBはこの出力信号を取得し、もう一度反転します。まあ、直列の2つのインバーターはあまり正しくありませんか?正しいので、除外することもできます。ただし、「トップレベル」の設計では、2つのインバーターを直列に見つけることはできません。2つのポートが接続されているだけです。コンパイラは、人間よりもはるかに速くこれを最適化できます。

基本的にデジタルシステムの設計に含まれるものは、ロジックがどのように「振る舞う」かという記述であり、コンピューターを使用して個々のロジックゲートをレイアウトする最も効率的な方法を見つけ出します。


ソフトウェアにアセンブリコードの場所がまだあるように、低レベルのハードウェア設計は場合によっては費用対効果が高くなります。たとえば、SRAMセルは一般的に頻繁に使用されるため、特にIntelなどの統合設計メーカーでは、密度(ラストレベルキャッシュ)、アクセスレイテンシ(L1キャッシュ)、またはその他の特性を最適化するために高度に最適化された設計が開発されています。
ポールA.クレイトン

@Paul興味をそそられる質問は、Intelがデザインを手作業で最適化するのにどれだけ投資するか、同じパフォーマンスの改善をより一般的に達成するソフトウェア最適化パスを書くことです。
ポンカドゥードル

6

以前のコメントを簡略化して拡張し、必要と思われる人のために点を結びましょう。

デザインはまだ(サブ)論理ゲートレベルで行われていますか?

  • はい

設計は多くのレベルで行われ、 サブロジックレベルは常に異なります。各製造収縮は、原子レベルに縮小し、各バイナリのステップダウンで約$ 10億のコストがかかるため、トランジスタの構造が変化し、トレードオフを補うためにジオメトリも変化するため、最も素晴らしい物理学、化学、およびリソグラフィプロセスの経験が必要ですサイズ。14nmのジオメトリを実現することは、R&D、プロセス制御および管理における大規模な取り組みであり、まだ控えめな表現です!ここに画像の説明を入力してください

たとえば、これを行うために必要な職務スキルには以下が含まれます。 -「FET、セル、およびブロックレベルのカスタムレイアウト、FUBレベルのフロアプラン、抽象ビューの生成、RC抽出、および寄生抽出、静的タイミング、ワイヤ負荷を含む物理設計開発の段階を使用した回路図からレイアウトの検証およびデバッグモデル、クロック生成、カスタムポリゴン編集、自動配置および配線アルゴリズム、フロアプランニング、フルチップアセンブリ、パッケージング、検証」*

-その分野にはもはや多くのイノベーションはありませんか? -間違った-ムーアの法則と特許の数から判断すると、半導体物理学には多大で多額の資金を投じたイノベーションがあり、それは決して止まらないでしょう。電力、熱、そして能力の4倍の節約は毎回報われます。

-より高いレベルの抽象化に進みましたか? -動きが止まらなかった。-より多くのコアが要求され、ARM RISC CPU、より強力な組み込みµCまたはMCUなどの1つの命令でより多くの処理を行い、デフォルトでECCを備えたDDR4を備えたスマートRAMと、緊急メモリフェッチ用の優先ビットを備えたフラッシュのようなセクター -CPUの進化とアーキテクチャの変更が止まることはありません。 ここに画像の説明を入力してください

ヒントを教えてください。エンジニア向けにIntel、AMD、TI、またはADで就職活動を行い、職務内容をご覧ください。

-数十億個のトランジスタの設計はどこから来たのですか? -64ビットブロックのハードウェアを追加したことによるものです。しかし、今ではナノチューブの失敗に直面して、ブロックのトップダウンアプローチからナノチューブのボトムアップアプローチに考えを変えて、機能させる必要があります。

  • ほとんどはソフトウェアによって自動生成されますか?舌が頬にしっかりと植えられている...
  • 実際、彼らはまだ宇宙船からArea51からデザインを抽出しており、行く方法があります....ナノナノチューブに完全に準拠するまで。エンジニアがライブラリに入り、このチップでここに参加してほしいとnVidiaに言って、マクロブロックに入る部分になりますToystoryのアリのようにレイアウトを複製できますが、すべての接続の明示的な制御は手動でルーティング/チェックアウトし、DRCと自動ルーティングを使用して比較する必要があります。はい重複と時間の浪費をなくすために、自動化ツールは常にアップグレードされています。

    -手動による最適化はまだたくさんありますか?

  • ある航空会社がファーストクラスの夕食からオリーブを1つだけ削除することで給料を支払うのに十分なお金を節約したことを考慮して、Intelは時間枠内でできるだけ多くの原子を削除する方法を検討します。余分な静電容量があると、無駄な熱、性能、およびOOPSが発生するため、ノイズは速くなります...

しかし実際には、CPUは東京のように成長し、夜通しではなく、数千万人が着実に改善されてそこに住んでいます。私は大学で設計する方法を学びませんでした。しかし、物事がどのように機能するかを読んで理解しようとすることで、私は業界のスピードをかなり速く得ることができました。航空宇宙、原子力機器設計、SCADA設計、プロセス監視、アンテナ設計、自動気象ステーションの設計とデバッグ、OCXOのPLLのVLF Rx、ブラックブラントロケットの2ウェイリモートコントロールで最初の5年間で10年の経験がありました...それは私の最初の仕事でした。何ができるかわからなかった。

何十億ものトランジスタについて心配したり、何を学ぶべきか、どれだけ知る必要があるかを恐れたりしないでください。あなたの情熱に従って、睡眠の間に業界誌を読んでください。そうすれば、あなたは仕事でそれほど緑に見えず、もはや仕事のように感じません。

試験の一環として、1回、20分で741の「似た」オペアンプを設計しなければならなかったことを覚えています。私は実際に使用したことはありませんが、素晴らしいデザインから良いことを認識できます。しかし、その後、トランジスタは20個しかありませんでした。ここに画像の説明を入力してください

ただし、CPUの設計方法は、仕様から開始する必要があります。 CPUを設計し、測定可能なベンチマークを作成して、以下を達成する理由。 -たとえば、マクロ命令/秒(MIPS)(CPUクロックよりも重要); - インテルのItaniumチップは、それらが明示的並列命令コンピューティング(EPIC)の設計と呼んでいるものに基づいています。 - トランスメタは非常に長い命令語コードモーフィングマイクロプロセッサ(VLIWCMM)とCPUの設計の特許を取得しました。彼らは2006年にIntelを訴え、2007年に約2億ドルで和解しました。

さらに多くのメトリックがありますが、CPUの設計品質がGHz速度に基づいていることはありません(神話を参照)

CPUを設計するには、どのツールが必要ですか?リストは、原子レベルの物理設計からダイナミックメッシュEMC物理EM / RF設計、フロントエンド設計検証テストエンジニアまで、このページには適合しません。-フロントエンドRTLシミュレーション-IAおよびコンピューターアーキテクチャとシステムレベルデザインの知識-VHDLまたはVerilogを使用したロジック検証とロジックシミュレーション。-オブジェクト指向プログラミングとさまざまなCPU、バス/相互接続、コヒーレンシプロトコル。


6
「Verilog」と「VHDL」は、これらすべての素朴でありながらインスピレーションを探る質問の表面をほんの少しだけ掻き立てます。現実の世界は、あなたが理解するよりもはるかにアナログです。
トニースチュワートサニースキーガイEE75

オペアンプ回路の説明はどこにでもありますか。カスコードされたOTAのみが表示され、残りはサーキットVoodooです。
サイバーメン

3
ワオ。残念なことに、それはほとんど質問とは無関係です。
デイブツイード

3
これは非常に面白い読み物だったと言わなければなりません。作家から元の質問をいじる彼への漸進的なシフトは、読者の心を数字と語彙で吹き飛ばそうとし、その後、help慢さのヒントと彼の学校の少年時代の回想が続き、最後に動いた「これは非常に複雑なので、ここで要約することはできません。」圧倒的に美しい。
ポンカドゥードル

そして、私のコメントは多少風刺的でしたが、私はあなたがそれを気軽に受け入れてくれることを望みます。私は正直読んで楽しんだ。
ポンカドゥードル

2

AMDのCPU設計の概要

Intelのバージョン

これらはどちらも詳細を提供しませんが、それでもなお興味深いものです。これを答えとして受け入れないでください。他の人はあなたの質問を詳細に検討し、より詳細に答えようとする努力をしました。


私はそのTomsHardwareページを前に見ました。ただし、プロセッサの設計方法ではなく、プロセッサの製造方法について説明しています
-stevenvh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.