インテル® Hyperflex™ アーキテクチャー高性能デザイン・ハンドブック

ID 683353
日付 11/04/2019
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

2.4.2.4. FIFOステータス信号によるフロー・コントロール

フロー・コントロール信号を扱うときは、高いクロックレートが考慮されなければなりません。この考慮事項は、複数の位置で同時にデータパスをゲートする信号で特に重要です。例えば、クロックイネーブルまたはFIFOフル/エンプティ信号です。即時コントロール信号で作業する代わりに、遅延信号を使用してください。 FIFOブロック内にバッファを構築することができます。コントロール信号は、アップストリーム・データパスがほぼフルであることを示し、アップストリーム・データがそれらのゲート信号を受信するために数クロックサイクルを残します。このアプローチは、コントロール信号上のタイミング収束の困難性を緩和します。

FIFOフル信号と空信号を使用する場合、オーバーフローやアンダーフローを防止するために、これらの信号を1クロック・サイクルで処理する必要があります。

図 64. FIFOフロー・コントロール・ループループは、FIFOからコントロール信号を読み込む時に形成されます。

ほぼフルまたはほぼエンプティの信号を使用する場合、フロー・コントロール・ループにパイプライン・レジスターを追加できます。ほぼ完全なスレッショルドが低く、空のスレッショルドが高いほど、信号に追加できるレジスターが増えます。

図 65. 完全なFIFOの代わりにほぼ完全なFIFOフロー・コントロール・ループの改善次の例は、フルコントロールフロー信号の2つの追加レジスターを示しています。 FIFOがほぼ満杯のフラグを生成した後、信号がデータ・プロデューサー・ブロックに到達するまでに2サイクルかかります。送信されたデータがFIFOに到達するのを停止する前に、さらに2つのサイクルが必要です。この状態では、4サイクルのレイテンシーが発生します。ほぼ満杯のフラグがアサートされると、データ・プロデューサーはFIFOが実際に満杯になる前にさらに4ワードを送信できます。これらの追加の有効なデータを適切に保存できるように、FIFOブロックのサイズを調整します。制御パス内の余分な2つのパイプライン・レジスターは、ルーティングを支援し、従来のシングルサイクルFIFO制御スキームよりも高速を実現します。