なぜそれほど多くのトランジスタが必要なのですか?


34

トランジスタは、電気回路で複数の目的、つまりスイッチを使用して電子信号を増幅し、電流などを制御できます...

しかし、最近、ランダムなインターネット記事の中でも特にムーアの法則について読みました。最近の電子機器には膨大な数のトランジスタが詰め込まれており、現代の電子機器に搭載されているトランジスタの数は数十億ではないにしても数百万の範囲にあります。

ただし、とにかく多くのトランジスタが必要なのはなぜでしょうか?トランジスタがスイッチなどとして機能する場合、なぜ私たちの現代の電子デバイスでは、そのような途方もなく大量のトランジスタが必要なのでしょうか?現在使用しているトランジスタよりも少ないトランジスタを使用できるように、物事をより効率的にすることはできませんか?


7
私はあなたのチップが何で作られているかを知ることをお勧めします。加算器、乗算器、マルチプレクサ、メモリ、より多くのメモリ...そして、必要性が存在することをこれらの事の数字を考える...
Dzarda


1
また、ほとんどの機械的デバイスの代替品としてトランジスタを継続的に使用することにより、現代の家電製品の形成に何よりも役立ちました。バックライトをオンまたはオフにするたびに、お使いの携帯電話の音が鳴るのをイメージします(車のサイズと重さですが)
マーク

7
使用するトランジスタを減らすために「物事をより効率的にする」ことができないのはなぜですか。トランジスタの数を最小限に抑えようとしていると仮定します。しかし、制御のためにさらに追加することで電力効率が改善されるとしたらどうでしょうか?それとも、何でも計算を行う際の時間効率ですか?「効率」だけではありません。
OJFord 14

2
CPUを構築するのにそれほど多くのトランジスタが必要なわけではありませんが、これらすべてのトランジスタを作成できるため、CPUを高速化する方法で使用することもできます。
user253751 14

回答:


46

トランジスタはスイッチです、はい。しかし、スイッチは単に照明をオン/オフするだけのものではありません。

スイッチは論理ゲートにグループ化されます。論理ゲートは、論理ブロックにグループ化されます。論理ブロックは、論理関数にグループ化されます。論理関数はチップにグループ化されます。

たとえば、TTL NANDゲートは通常2つのトランジスタを使用します(NANDゲートは、NORとともに、ロジックの基本的なビルディングブロックの1つと見なされます)。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

テクノロジがTTLからCMOS(現在は事実上の標準)に移行したため、基本的にはトランジスタが2倍になりました。たとえば、NANDゲートは2つのトランジスタから4つのトランジスタになりました。

回路図

この回路をシミュレートする

ラッチ(SRなど)は、2つのCMOS NANDゲート、つまり8つのトランジスタを使用して作成できます。したがって、32個のフリップフロップ、つまり64個のNANDゲート、または256個のトランジスタを使用して、32ビットのレジスタを作成できます。ALUには複数のレジスタがあり、さらに他の多くのゲートもあるため、トランジスタの数は急速に増加します。

チップが実行する機能が複雑になるほど、より多くのゲートが必要になり、したがってより多くのトランジスタが必要になります。

最近の平均CPUは、30年前のZ80チップよりもかなり複雑です。幅の8倍のレジスタを使用するだけでなく、実際に実行する操作(複雑な3D変換、ベクトル処理など)は、古いチップが実行できるよりもはるかに複雑です。最新のCPUでの単一の命令は、古い8ビターで数秒(または数分)の計算を必要とする場合があり、最終的にはより多くのトランジスタを使用することですべてが実行されます。


NAND = 4ではなく2つのトランジスタとFFは2つ以上のNOR
プレースホルダー

2
ああ!あなたは本当にそれを再考する必要があります。バイポーラで行われている何百万ものトランジスタを備えた1つの設計でさえも見せてください!! これらのデザインはすべてCMOSです
プレースホルダー14

2
公正なポイント。違いを強調するために2つ目の回路図を追加し、その後のトランジスタの2倍化を追加しました。
マジェンコ14

3
弱いプルアップと強いプルアップは、TTLとCMOSとはまったく異なる問題です。結局、BJTはPNPに含まれています。CMOSには「トランジスタの2倍化」は含まれません。ASICプロセスでは、トランジスタはプルアップ抵抗よりもはるかに小さいため、大規模な統合が可能です。
ベンフォイト14

1
それはTTL NANDゲートではありません。これはRTL論理ゲートです。
fuzzyhair2 14

16

さまざまな半導体デバイスの地元のサプライヤーを調べましたが、最大のSRAMチップは32Mビットでした。これは、1または0を保存できる3,200万個の個別領域です。1ビットの情報を保存するには「少なくとも」1個のトランジスタが必要であるとすると、絶対最小値では3,200万個のトランジスタになります。

32 Mビットで何が得られますか?これは4Mバイト、つまり低品質の4分間のMP3音楽ファイルのサイズです。


編集-私のグーグルによるSRAMメモリセルは次のようになります:-

ここに画像の説明を入力してください

それで、それはビットあたり6個のトランジスタであり、私が言及したそのチップ上の1億9200万個のトランジスタのようなものです。


...そして今、68719476736ビットの情報を持つ8GBメモリを想像してください
カミル14

1
...ただし、DRAMのトランジスタを使用しません。
マジェンコ14

1
@Majenko:少なくとも他の技術ほど多くはありません。1ビットの場合、トランジスタ+コンデンサ1個(明らかに顕微鏡のスコープ上)-正しく覚えていれば。
Rev1.0

28
SRAMの各ビットは少なくとも4個、多くの場合6個のトランジスタなので、1億2800万個以上のトランジスタです。DRAMはストレージにトランジスタ使用しませんが、各ビット(コンデンサに格納)には、キャップを充電するための独自のトランジスタスイッチがあります。
ブライアンドラモンド14

6
ここで、1T SSD(3ビット/セルが許可され、複数のチップ上にある)のトランジスタを想像してみてください。しかし、それはストレージのためだけでまだ2.7兆個のトランジスタです。
スペロペファニー14

7

OPは、非常に多くのトランジスタを備え電子デバイスによって混乱する可能性があると思います。ムーアの法則は、主にコンピューター(CPU、SRAM / DRAM /関連ストレージ、GPU、FPGAなど)にとって重要です。トランジスタラジオのような何かが単一のチップ上に(主に)かもしれませんが、すべての利用をすることはできませんという多くのトランジスタ。一方、コンピューティングデバイスには、追加の機能とより広いデータ幅のトランジスタに対する飽くなき欲求があります。


3
最近のラジオコンピューティングデバイスであるか、少なくとも含まれています。FM周波数のデジタル合成、オーディオのDSP信号処理(大物)、ステーション切り替えのデジタル監視制御など。たとえば、TAS3208 ti.com/lit/ds/symlink/tas3208.pdf
Spehro Pefhany 14

1
ラジオに使用されるトランジスタは、まだ数千から数億、数十億よりはるかに少ないでしょう。確かに、それらはすべてのデジタル機能を備えた小型の専用コンピューターになりつつありますが、マルチコア64ビットCPUほどの規模ではありません。
フィルペリー14

@PhilPerry確かにデジタルラジオにはARMのようなものがありますか?数十億個のトランジスタではなく、数千万個に相当します。

アナログラジオから(特に)ラジオ信号を受信するコンピューターに「ライン」を渡った場合、多くのトランジスタを使用します。私の主張では、電子機器に関するOPの質問は、古典的なアナログ無線などとコンピューティング機器との間の混乱のように聞こえます。はい、彼らは両方の音楽を空中から引き出しているブラックボックスである場合でも、彼らは非常に異なる方法で実行します。
フィルペリー14

4

前述のように、SRAMはビットごとに6つのトランジスタを必要とします。キャッシュを(効率化のために)拡大するにつれて、より多くのトランジスタが必要になります。プロセッサウェーハを見ると、キャッシュがプロセッサのシングルコアよりも大きいことがわかります。コアを詳しく見ると、キャッシュ(おそらくデータと命令L1)であるよく整理された部分が表示されますキャッシュ)。6MBのキャッシュでは、3億個のトランジスター(およびアドレス指定ロジック)が必要です。

しかし、前述のように、トランジスタだけがトランジスタの数を増やす理由ではありません。最新のCore i7では、クロック周期ごとおよびコアごとに実行される7つ以上の命令があります(よく知られているdhrystoneテストを使用)。これは一つのことを意味します:最先端のプロセッサは多くの並列計算を行います。同時により多くの操作を行うには、より多くのユニットが必要であり、それをスケジュールするための非常に賢いロジックが必要です。賢いロジックには、はるかに複雑な論理式が必要であり、それを実装するには非常に多くのトランジスタが必要です。


SRAMは、ここ数年で6つのトランジスタを必要としませんでした。実際、1T 2Tまたは4Tスラムを本質的にドロップイン交換として使用すると、6Tスラムはかなり無駄になります。
cb88

2

詳細から少し離れて:

コンピューターは複雑なデジタルスイッチングデバイスです。複雑さの層の上に層ごとに層があります。前述のように、最も単純なレベルは、NANDゲートなどの論理ゲートです。次に、加算器、シフトレジスタ、ラッチなどに移動します。次に、クロックロジック、命令デコード、キャッシュ、算術ユニット、アドレスデコードを追加します。 。(メモリはもちろん、データのビットごとに複数のトランジスタが必要です)

これらのレベルのすべてが、以前のレベルの複雑さからの多くの部品を使用しており、それらはすべて多くの基本的な論理ゲートに基づいています。

次に、並行性を追加します。より高速なパフォーマンスを得るために、最新のコンピューターは多くのことを同時に行うように設計されています。単一のコア内で、アドレスデコーダー、演算ユニット、ベクトルプロセッサ、キャッシュマネージャー、およびその他のさまざまなサブシステムがすべて同時に実行され、すべて独自の制御システムとタイミングシステムを備えています。

最近のコンピューターには、ますます多くの個別のコア(チップ上の複数のCPU)もあります。

抽象化の層を上るたびに、何桁も複雑になります。最も低いレベルの複雑さでも、数千のトランジスタがあります。CPUのような高レベルのサブシステムに移動すると、少なくとも数百万のトランジスタを話します。

次に、GPU(グラフィックスプロセッシングユニット)があります。GPUには、ベクトル数学を行うために最適化された数千の独立した浮動小数点プロセッサがあり、各サブプロセッサには数百万個のトランジスタがあります。


1

特定のアイテムに必要なトランジスタの数を議論することを試みることなく、CPUは次のような機能を強化するために、より多くのトランジスタを使用します。

  • より複雑な命令セット
  • オンチップキャッシュが多いため、RAMからのフェッチが少なくて済みます。
  • より多くのレジスタ
  • より多くのプロセッサコア

1

RAM、キャッシュ、レジスタの未加工のストレージ容量の増加、およびより多くのコンピューティングコアとより広いバス幅(32対64ビットなど)の追加は別として、CPUがますます複雑になっているためです。

CPUは、他のコンピューティングユニットで構成されるコンピューティングユニットです。CPU命令はいくつかの段階を経ます。昔は、1つのステージがあり、クロック信号は、すべての論理ゲート(トランジスタで作られた)が落ち着くまでの最悪の時間と同じくらいの長さでした。次に、パイプライニングを発明しました。CPUは、命令フェッチ、デコード、処理、および結果のステージに分割されます。その単純な4ステージCPUは、元のクロックの4倍のクロック速度で実行できます。各ステージは、他のステージから独立しています。これは、クロック速度が4倍(4倍のゲイン)に増加するだけでなく、CPUで4つの命令を階層化(または「パイプライン化」)できるため、パフォーマンスが4倍になることを意味します。ただし、1つの命令が前の命令の結果に依存する可能性があるため、「ハザード」が作成されますが、パイプライン化されている場合、他のプロセスがプロセスステージを出るときにプロセスステージに入るときに取得されません。したがって、この結果をプロセスステージに入る命令に転送するための回路を追加する必要があります。別の方法は、パイプラインを停止してパフォーマンスを低下させることです。

各パイプラインステージ、特にプロセスパーツは、より多くのステップに細分化できます。その結果、パイプラインの相互依存関係(ハザード)をすべて処理するための膨大な量の回路を作成することになります。

他の回路も同様に強化できます。「リップルキャリー」加算器と呼ばれる簡単なデジタル加算器は、最も簡単で、最小ですが、最も遅い加算器です。最速の加算器は「キャリールックアヘッド」加算器であり、膨大な指数関数的な回路を必要とします。私のコンピューターエンジニアリングコースでは、32ビットキャリー先読み加算器のシミュレーターでメモリが足りなかったので、リップルキャリー構成で2つの16ビットCLA加算器を半分にカットしました。(加算と減算はコンピューターにとって非常に難しく、乗算は簡単で、除算は非常に難しいです)

このすべての副作用は、トランジスタのサイズを縮小し、ステージを細分化すると、クロック周波数が増加する可能性があることです。これにより、プロセッサはより多くの作業を実行できるようになり、より高温になります。また、周波数が増加すると伝搬遅延が明らかになります(パイプラインステージが完了し、信号が反対側で利用可能になるまでにかかる時間)インピーダンスのため、伝搬の有効速度はナノ秒あたり約1フィートです(1 Ghz)。クロック速度が上がると、4 Ghzチップの最大サイズは3インチなので、チップレイアウトはますます重要になります。そのため、チップ内を移動するすべてのデータを管理するには、追加のバスと回路を含める必要があります。

また、常にチップに指示を追加しています。SIMD(単一命令複数データ)、省電力など。これらはすべて回路を必要とします。

最後に、チップにさらに機能を追加します。昔は、CPUとALU(算術論理演算装置)は別々でした。それらを組み合わせました。FPU(浮動小数点ユニット)は独立しており、それも組み合わされました。現在では、USB 3.0、ビデオアクセラレーション、MPEGデコードなどを追加しています。ソフトウェアからハードウェアへの計算をますます移行しています。


1

Majenkoには、トランジスタの使用方法に関する優れた答えがあります。そのため、代わりに別のアプローチベクトルを使用して、効率性に対処します。

何かを設計するときにできる限り少ないトランジスタを使用することは効率的ですか?

これは基本的に、あなたが話している効率に帰着します。おそらくあなたは、できるだけ少ないトランジスタを使用する必要があると主張する宗教のメンバーです-その場合、答えはほとんど与えられています。あるいは、製品を構築している会社かもしれません。突然、効率に関する単純な質問は、費用対利益の比率に関する非常に複雑な質問になります。

そしてここにキッカーが来ます-集積回路のトランジスタは非常に安価であり、時間とともにさらに安価になっています(SSDはトランジスタのコストがどのように押し下げられたかの良い例です)。一方、労働は非常に高価です。

ICがまだ始まったばかりの時代には、必要なコンポーネントの量をできるだけ少なくするための特定のプッシュがありました。これは単に、最終製品のコストに大きな影響を与えたため(実際、多くの場合、製品のコストの大部分でした)、完成した「箱入り」製品を構築する場合、人件費はあなたが作るすべての作品に広がっています。初期のICベースのコンピューター(ビデオアーケードを考えてください)は、1個あたりのコストを可能な限り小さくしました。ただし、1個あたりのコストとは対照的に、固定コストは販売可能な金額によって大きく影響を受けます。カップルを売るだけなら、1個あたりのコストを下げることに時間を費やすのは価値がなかったでしょう。一方、巨大な市場全体を構築しようとした場合、

重要な部分に注意してください-大量生産のために何かを設計しているとき、「効率」を改善するために多くの時間を費やすことだけが理にかなっています。これは基本的に「産業」です-職人では、多くの場合、熟練した人件費が完成品の主な費用であり、工場では、より多くの費用が材料と(比較的)未熟練労働者から生じます。

PC革命に早送りしましょう。IBMスタイルのPCが登場したとき、それらは非常に愚かでした。非常に愚かな。それらは汎用コンピューターでした。ほぼすべてのタスクについて、より良く、より速く、より安くできるデバイスを設計できます。言い換えると、単純化した効率の観点では、非常に非効率的でした。電卓はずっと安く、ポケットに収まり、長時間バッテリーで動作します。ビデオゲームコンソールには、ゲームの作成に非常に優れた特別なハードウェアがありました。問題は、彼らは他に何もできないということでした。PCはすべてを実行できます-価格/出力比ははるかに悪かったのですが、電卓や2Dスプライトゲームコンソールを実行することに夢中になりませんでした。なぜWolfensteinとDoom(そしてApple PCの場合、マラソン)ゲーム機ではなく汎用コンピューターに表示されますか?コンソールは2Dスプライトベースのゲーム(典型的なJRPG、またはContraのようなゲームを想像してください)の実行には非常に優れていましたが、効率的なハードウェアから離れようとすると、他に何もするのに十分な処理能力がないことがわかりました!

したがって、明らかに効率の悪いアプローチは、いくつかの非常に興味深いオプションを提供します。

  • より自由になります。古い2Dコンソールと古いIBM PC、および古い3Dグラフィックスアクセラレータを現代のGPUと比較してください。
  • 最終製品(ソフトウェア)が何らかの方法で「職人」であっても、量産効率の向上を可能にします。そのため、Intelのような企業は、世界中の個々の開発者全員よりもはるかに効率的に作業単位のコストを削減できます。
  • 開発におけるより多くの抽象化のためのより多くのスペースを提供するため、既製のソリューションの再利用が可能になり、結果として、開発およびテストのコストが低くなり、出力が向上します。これが基本的に、すべての小学生がデータベースアクセスとインターネット接続を備えた本格的なGUIベースのアプリケーションや、常にゼロから始める必要がある場合に開発が非常に困難なその他すべてのものを作成できる理由です。
  • PCでは、これはアプリケーションが基本的に入力なしで時間の経過とともに速くなったことを意味していました。コンピューターの生の速度を向上させることがますます難しくなっているため、フリーランチの時間はほぼ終わりましたが、PCの寿命のほとんどを形作りました。

これはすべてトランジスタの「無駄」ですが、実際の無駄ではありません。実際の総コストは、「できるだけ少ないトランジスタ」を求めた場合よりも低いからです。


1

「非常に多くのトランジスタ」の話のもう1つの側面は、これらのトランジスタが人間によって個別に設計されたものではないということです。最新のCPUコアには約1億個のトランジスタがあり、これらのトランジスタを直接人間が設計することはありません。それは不可能でしょう。75年の寿命はわずか23億秒です。

そのため、このような巨大な設計を実現可能にするために、人間は個々のトランジスタよりもはるかに高い抽象度でデバイスの機能を定義することに関与しています。個々のトランジスタへの変換は回路合成として知られており、非常に高価な独自のツールによって行われます。これらのツールは、主要なCPUメーカーとファウンドリに集約され、長年にわたって開発するのに10億ドルの費用がかかります。

回路合成ツールは、可能な限り少ないトランジスタ数でデザインを生成しません。これにはさまざまな理由があります。

最初に、最も基本的なケースをカバーしましょう。複雑な回路は、十分なメモリを備えたはるかに単純な、おそらくシリアルのCPUでシミュレートできます。Arduinoに十分なシリアルRAMを接続すれば、i7チップを完璧な精度で確実にシミュレートできます。このようなソリューションは、実際のCPUよりもトランジスタの数がはるかに少なく、1kHz以下の実効クロックレートで動作が非常に遅くなります。トランジスタ数の削減をそこまで進めるつもりはありません。

したがって、特定のクラスの設計からトランジスタへの変換、つまり元の設計に組み込まれている並列容量を維持するものに限定する必要があります。

それでも、最小数のトランジスタの最適化により、既存の半導体プロセスでは製造できない設計が作成される可能性があります。どうして?実際に作成できるチップは2D構造であり、1キログラムの金属を必要とせずにこれらのトランジスタを相互接続できるようにするために、単に回路の冗長性が必要です。トランジスタのファンインとファンアウト、および結果として生じるゲートは重要です。

最後に、ツールは理論的に完全ではありません。通常、製造可能なチップの制約を考えると、トランジスタ数の点で世界的に最小のソリューションを生成するには、CPU時間とメモリが多すぎます。


0

OPが知っておくべきことは、「単純なスイッチ」には複数のトランジスタが必要になることが多いということですか?どうして?まあ、多くの理由で。「オン」または「オフ」状態での電力使用量を低くするために、余分なトランジスタが必要になる場合があります。電圧入力またはコンポーネントの仕様の不確実性に対処するために、トランジスタが必要になる場合があります。多くの理由。しかし、私はその点に感謝しています。OP-AMPの回路図を見ると、数十個のトランジスタがあります!しかし、彼らがサーキットに何らかの目的を果たさなければ、彼らはそこにいなかったでしょう。


0

基本的に、コンピューターが理解するのはこれらのスイッチによって決定される0と1です..はい、トランジスタの機能はスイッチの機能以上です。そのため、スイッチが出力を0にするか1にするかを決定できる場合(単一のbi操作と仮定)、ビット数が増えます。トランジスタが増えれば増えるほど、何百万ものトランジスタを単一のマイクロプロセッサに組み込む必要があるのも不思議ではありません。


0

テクノロジーの時代には、スマートデバイス(小型、高速、効率的)が必要です。これらのデバイスは、集積回路(IC)で構成されています。トランジスタの。エレクトロニクスでは、ICのすべての回路が加算器、減算器、乗算器、分周器、論理ゲート、レジスタ、マルチプレクサ、フリップフロップ、カウンタ、シフター、メモリで作られているため、ICをよりスマートかつ高速にするために、より多くのトランジスタが必要ですデバイスのロジックを実装するためのマイクロプロセッサなど。これらはトランジスタのみ(MOSFET)で構成されています。トランジスタの助けを借りて、あらゆるロジックを実装できます。だから、より多くのトランジスタが必要です.....

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.