インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

21.4.6.1. プログラミング可能なTHRE割り込み

UARTにはプログラミング可能なTHRE割り込みモードがあり、それによってシステムのパフォーマンスを向上させます。プログラミング可能なTHRE割り込みモードは、Interrupt Enable Register (IER_DLH.PTIME) で有効にします。フローチャートで示されているように、THREモードが有効になっている場合、THRE割り込みおよびdma_tx_req信号は、送信FIFOバッファーが空であることを示すプログラムされたしきい値のレベル以下でアクティブになります。†

図 119. プログラミング可能なTHRE割り込み

しきい値のレベルは、FCR.TETにプログラミングされます。空の状態を示すしきい値に使用可能な値は、Empty、2、¼、および½です。最適なしきい値の値は、新しい送信シーケンスをタイミング良く開始するシステムの能力によって異なります。ただし、これらのしきい値のうちの最適な値を使用することにより、送信FIFOバッファーが空の状態になることが回避されるため、システムのパフォーマンスが向上します。

また、割り込みによる変化に加え、Line Status Register (LSR.THRE) は、送信FIFOバッファーが空であることを示す状態からFIFOバッファーがフルであることを示す状態に切り替わります。この変化を使用すると、ソフトウェアでは、別の文字を書き込む前にLSR.THREをポーリングすることで、各送信シーケンスに対してFIFOバッファーを満たすことができます。これにより、バッファーが完全に空になるまで待機するのではなく、割り込みが発生し、送信するデータがある場合はかならず、送信FIFOバッファーを満たすようにUARTに指示します。FIFOバッファーが空の状態になるまで待機すると、システムがBusy状態ですぐに応答できない場合は常に、パフォーマンスが低下します。このモードを自動フロー制御と組み合わせて有効にすると、システムの効率を高めることができます。

選択されていない、もしくは無効になっている場合、THRE割り込みおよびLSR.THREは通常どおり機能し、空の状態のTHRまたはFIFOバッファーを反映します。

図 120. プログラミング可能なTHRE割り込みモードを使用しない割り込みの生成