自動スリープのレイテンシ – AUTO_SLEEP_LATENCY

Versal ACAP メモリ リソース アーキテクチャ マニュアル (AM007)

Document ID
AM007
Release Date
2020-11-24
Revision
1.1 日本語

自動スリープ モードは、メモリの使用状況に応じて SLEEP ピンの機能を自動的に使用します。いつスリープに移行し、いつウェークアップするかを判断するために、UltraRAM は RAM アクセスの発生頻度を予測します。

EN_AUTO_SLEEP_MODE 属性を TRUE に設定した場合、イネーブル入力およびグローバル アドレス入力 (EN_A、EN_B、ADDR_A[25:15]、ADDR_B[25:15]) の到着後、AUTO_SLEEP_LATENCY 属性で定義されるクロック サイクル数以内にほかの入力が到着する必要があります。このルックアヘッド情報を使用して、UltraRAM がいつスリープに入るかを決定します。この機能を実装するためには、EN_A/B および ADDR_A/B[25:15] は内部で遅延されます。イネーブル信号およびグローバル アドレス信号の到着後、ほかの信号が到着するまでの時間を示すクロック サイクル数は、AUTO_SLEEP_LATENCY 属性によって 3 ~ 15 の範囲で設定されます。したがって、UltraRAM がスリープ モードに移行するには、AUTO_SLEEP_LATENCY 属性の値で定義される最小限の非アクティブ クロック サイクルが連続して発生する必要があります。

スリープ サイクル数は、次の式で計算されます。

  • 連続した非アクティブ サイクル数が AUTO_SLEEP_LATENCY の値よりも小さい場合、スリープ サイクル数 = 0 になります。
  • 連続した非アクティブ サイクル数が AUTO_SLEEP_LATENCY の値以上である場合、連続したスリープ サイクル数 = 連続した非アクティブ サイクル数 -3 になります。
  • 非アクティブ サイクルは、いずれのポートからも読み出し/書き込みが発生しないサイクルとして定義されます。

たとえば、非アクティブ状態が連続して 5 サイクル以上発生したときにスリープ サイクルを発生させるには、AUTO_SLEEP_LATENCY の値を 5 に設定します。

自動スリープ モードに入ると、OREG の出力は 1 クロック サイクル間だけ古い値を維持します。UltraRAM がいつスリープ モードに移行するかに応じて、このデータは次のサイクルまたはそれ以降に 0 にリセットされます。OREG の後にほかのパイプライン レジスタが有効にされていない場合は、最後の有効なクロック サイクルの間、このレジスタ出力読み出しデータを使用する必要があります。ほかの連続したパイプライン レジスタがある場合は、これらのパイプライン レジスタが最後の読み出しデータを保持します。

自動スリープ モードは、カスケード チェーンのサイズが大きい場合や、チェーンのアクティビティがほとんどない場合に効果的です。この属性にはデフォルト値がありますが、この機能で消費電力を効果的に削減できる設定値は、アクティビティ、レイテンシやほかのアプリケーション要件に応じて、アプリケーションごとに決定する必要があります。AUTO_SLEEP_LATENCY の値を小さくしすぎると、UltraRAM のスリープとウェークアップの頻度が高くなって消費電力が増加します。また、値を大きくしすぎると、十分な省電力効果を得ることができません。