いくつかのカスタムビルドCPUを調べていると、それらが動作する周波数が、最近のCPU(数MHzのオーダー)と比較して比較的低いことに気付きました。ブレッドボードなど、その制限の電子工学的な理由はありますか?はいの場合、設計で達成可能な最大周波数を決定する方法は?
いくつかのカスタムビルドCPUを調べていると、それらが動作する周波数が、最近のCPU(数MHzのオーダー)と比較して比較的低いことに気付きました。ブレッドボードなど、その制限の電子工学的な理由はありますか?はいの場合、設計で達成可能な最大周波数を決定する方法は?
回答:
これは主に、相互接続の長さとゲートを介した伝播遅延に関係しています。CPUを本質的に削減すると、それはフィードバックマシンになります。多数の組み合わせ論理回路がマシンの現在の状態に対していくつかのブール関数を計算し、それらの関数が新しい状態を決定します。新しい状態は、新しいクロックエッジが到着すると順次回路によってラッチされます。組み合わせ回路にはすべて遅延があります。クロック周期は、1つの不正なビットがショーを停止するため、これらのゲートを通る最も遅いパスが安定した結果を生成するのにかかる時間より短くすることはできません。
さらに、シーケンシャルロジックにはタイミング要件があります。クロックエッジが到着する前に、入力が安定している必要のある最小セットアップ時間があります。その後、一定のホールド時間の間、入力が安定する必要があります。これらに違反すると、状態はゴミになります。
伝搬遅延は、寄生容量が充電できる速さ、インダクタンスに直面して電流が形成される速さ、シリコンデバイスがスイッチングする速さなどによって引き起こされます。たとえば、ベースが小さいバイポーラトランジスタはベースが大きいバイポーラトランジスタよりも速くスイッチングできるため、チップ上の小さなトランジスタはディスクリートトランジスタよりも高速になります。
削除した以前の回答で、伝送線路の影響について書きました。しかし、たとえば、10 Mhzでは波長がまだ約30メートルであるため、これらの効果が、私たちが話している速度では見えないことも考えていませんでした。そのため、通常のサイズの回路基板のスケールでは、数メガヘルツの時間スケールのパルスが銅ネットワークのすべての部分に同時に到達します。
したがって、CPUをディスクリートコンポーネントで構成する場合、スイッチング時間を短縮し、浮遊容量とインダクタンスを最小化する同じ近接度で小さなコンポーネントを実現することはできません。
それにもかかわらず、1960年代の古代のディスクリートコンポーネントマシンは、これらの自作マシンよりもかなり高速で動作しました。そこに着くのに少し時間がかかり、ずるい。たとえば、IBM 360モデル44(1964)は4 MHzで実行されました。それはまだ「自作速度」ですが、わずか数年後に1969年にリリースされたCDC 7600は36 MHzを超えました。Wikipediaの記事http://en.wikipedia.org/wiki/CDC_7600は、引き出されたいくつかのトリックのヒントを示しています。例えば:
「いつものように、Crayの設計は、サイズを縮小し、信号経路を短くし、それにより動作周波数を高めるためのパッケージングにも焦点を当てています。[E]各回路モジュールは、およびトランジスタ。6つのボードは積み重ねられ、エッジに沿って相互接続され、非常にコンパクトですが、基本的には修復不可能なモジュールになりました。」
したがって、自作のCPUは、ビルドの品質とレイアウトに関係するいくつかの交絡効果のため、必ずしも真の潜在能力を発揮するように構築されているわけではありません。それでも、個々の集積回路と数メガヘルツで動作する個別のコンポーネントからCPUを構築する人は称賛されるべきです。
7400シリーズTTLを備えた特別な目的のコンピューターを作成した元高校生として、サイエンスフェアで賞を受賞しました。
ブレッドボードの浮遊容量。コネクタのすべての隣接ペア間で数pF。その制限されたパルスエッジの立ち上がり/立ち下がり時間と場所でクロストークを追加しました。これがおそらく最大の要因でした。
グラブバッグチップのバリエーション。(誰もがPoly-Pakを覚えていますか?)74LSxx、74Hxx、74xxが異なる伝搬遅延およびその他の特性を備えているため、数MHzよりも高いクロック速度で信号の同期を保つことができませんでした。
グラブバッグまたは他の品質の悪いソースからの安価な静的メモリチップ。特定のレートを超えると、確実に読み書きできませんでした。
私のテスト機器は、自作の信号発生器、5MHz帯域幅のオシロスコープ、およびtemporary審員が一時的に設置したデジタル回路に限定されていました。ウォブリーマッシュにローパスフィルター処理されたデジタル信号のシグナルインテグリティ、タイミング、振幅を確認するのは困難です。
今日、アンティークのバイヤーでない限り、5MHzのスコープを見つけるのは難しいでしょう。すべての種類のより良いチップは、0.1 "間隔のDIPパッケージでも簡単に入手できます。ただし、私は長い間グラブバッグの邪魔をしていませんでした。ただし、ソケットブレッドボードはあまり変更されていません。浮遊容量は、エッジの効いた創造的なデジタルプロジェクトにとっては、依然として速度のキラーです。
自作PCBを使用してブレッドボードを回避することは、浮遊容量を回避する最良の方法ですが、もちろんより多くの労力と時間を必要とします。
主な理由は、周波数を上げると、ブレッドボードの接続のインピーダンスが増加し、回路の最終速度が制限されるためだと思います。
ブレッドボードのすべての接続には、低いがゼロではないインダクタンスがあります。周波数が高くなるにつれて、これらの影響を考慮する必要があります。ワイヤのインピーダンスは次の方法で見つけることができます。
ここで、Lはワイヤのインダクタンスです。最終的に、Zは十分に高くなり、電流が流れなくなり、回路の動作が停止します。この数値の正確な数値を見つけることは非常に複雑になります。特に、ブレッドボードにはトレースが隣り合っており、この式から各ワイヤのインピーダンスが少し変わるためです。(不正確な)数値が本当に必要な場合は、ここで試して、ワイヤのインダクタンス(したがってインピーダンス)を計算できます。部品が動作できる最低電流がわかっている場合、その制限に達する前に最大周波数を決定できます。
他の人が「なぜ」と答えました。最大速度の決定方法は次のとおりです。
自作マシンの場合、2つの要因があります。使用しているチップの伝播遅延と、CPU設計の最長パスで使用する必要のあるチップの数。
たとえば、74HC574(8ビットレジスタ)の最大伝搬遅延は約41nsです(データシートから取得)。ここで、CPUデザインを通る最長のパスでは8つの異なるチップを通過する必要があるとしましょう。8つのそれぞれの伝搬遅延を合計し、333nsになると想像してください。1000nsは1Mhzと同じで、最大速度は3Mhzになります。
実際には、安定した設計を確保するために、2Mhzのような低速のものに制限することをお勧めします。10億サイクルに1回しかタイミングを見逃すと思っていても、まだ問題があります。100億を300万で割ると、3,333秒に1回、1時間に約1回、実行ミスが発生します。1時間ごとにマシンをクラッシュさせるのは良くありません!
より高速にするには、より高速なチップを使用するか、設計を変更して、最も遅いパスのチップ数を減らします。あなたが見る最速の自作速度は約4Mhzで、各サイクルを完了するのに250nsを与えます。