Main Content

飽和とラップ

飽和とラップとは

飽和またはラップは、プロセッサがオーバーフロー状態に対処する特定の方法を記述します。たとえば、Analog Devices® の ADSP-2100 ファミリのプロセッサは、これらのモードのどちらかをサポートしています。レジスタが飽和演算モードの場合、オーバーフロー状態は許容される正または負の最大値に設定されます。反対に、レジスタがラップ演算モードの場合、オーバーフロー状態は表現範囲内の適切な値に設定されます。

飽和とラップ

2-5 の 2 進小数点のみのスケーリングを行う 8 ビットの符号なしワードを考えてみましょう。このデータ型で、-4 ~ 4 の範囲の正弦波を表現しなければならないとします。0 ~ 4 の値に対しては、このワードはオーバーフローを発生させずに表現できます。これは負数の場合には異なります。オーバーフローが飽和した場合、負の値はすべて、データ型が表現できる最小値であるゼロに設定されます。次の図は、オーバーフローの飽和を示しています。

オーバーフローがラップする場合、負の値はすべて適切な正の値に設定されます。次の図は、オーバーフローのラップを示しています。

メモ

ほとんどの制御アプリケーションでは、飽和は固定小数点のオーバーフローに対処する安全な手段です。ただし、一部のプロセッサ アーキテクチャはハードウェアによる自動飽和を許可します。ハードウェアの飽和が可能でない場合は、追加のソフトウェアが必要になります。その結果、プログラムが大きくなり、処理速度が低下します。設計によっては、安全性を確保するためにこのような犠牲を払う価値があります。他の設計ではラップを受け入れて、最小で最も高速なソフトウェアを実現します。

Simulink® ソフトウェアでは、あらゆる固定小数点データ型の飽和とラップをサポートしています。固定小数点の Simulink ブロックの飽和またはラップは [整数オーバーフローで飽和] チェック ボックスで選択できます。

関連するトピック