Arithmétique de saturation

La saturation arithmétique de est une version du arithmétique dans laquelle toutes les opérations telles que l'addition et la multiplication sont limitées à une gamme fixe entre une valeur minimum et maximum. Si le résultat d'une opération est plus grand que le maximum il est placé (" ; clamped" ;) au maximum, alors que s'il est au-dessous du minimum il est maintenu au minimum. Le nom vient de la façon dont la valeur devient " ; saturated" ; une fois qu'il atteint les valeurs extrêmes ; d'autres additions à un maximum ou soustractions d'un minimum ne changeront pas le résultat.

Par exemple, si la gamme valide des valeurs est de -100 à 100, le produit suivant d'opérations les valeurs suivantes :
60 + 43 = 100
(60 + 43) - 150 = -50
43 - 150 = -100
60 + (43 - 150) = -40
10 × ; 11 = 100
99 × ; 99 = 100
30 × ; (5 - 1) = 100
30× ; 5 - 30× ; 1 = 70 Comme peut être vu de ces exemples, propriétés familières comme le Associativity et échouer de Distributivity dans l'arithmétique de saturation. Ceci la rend désagréable pour traiter dans des mathématiques abstraites, mais il a un rôle important à jouer dans le matériel numérique et les algorithmes.

Typiquement, les premiers microprocesseurs d'ordinateur n'ont pas mis en application des opérations arithmétiques de nombre entier using l'arithmétique de saturation ; au lieu de cela, ils ont employé l'arithmétique modulaire de facile-à-instrument, dans laquelle évalue dépasser le " de valeur maximum ; enrouler de autour de " de ; à la valeur minimum, comme les heures sur une horloge passant de 12 à 1. Dans le matériel, l'arithmétique modulaire avec un minimum de zéro et un maximum 2 du n peuvent être mis en application en jetant simplement tout sauf le plus bas peu du n .

Cependant, bien que plus difficile pour mettre en application, l'arithmétique de saturation a de nombreux avantages pratiques. Le résultat est aussi numériquement près de la réponse vraie comme possible ; il est considérablement moins étonnant pour obtenir une réponse de 127 au lieu de 130 que pour obtenir une réponse de -126 au lieu de 130. Il permet également le débordement des additions et des multiplications à détecter compatible sans peu ou calcul excessif de débordement par comparaison simple au maximum ou à la valeur minimum (fournie les informations n'est pas autorisé à prendre ces valeurs).

En plus, l'arithmétique de saturation permet des algorithmes efficaces pour beaucoup de problèmes, en particulier dans le traitement numérique du signal De . Par exemple, l'ajustement du niveau de volume d'un signal sonore peut avoir comme conséquence le débordement, et la saturation cause de manière significative moins de déformation au bruit que le bouclage. Dans les mots des chercheurs G. Constantinides et autres :

En ajoutant deux nombres using la représentation de complément de deux, déborder des résultats phénomène dans de `bouclage'. Le résultat peut être une perte catastrophique dans le rapport signal/bruit dans un système de DSP. Des signaux dans des conceptions de DSP donc habituellement sont mesurés convenablement pour éviter le débordement pour tout sauf les vecteurs d'entrée les plus extrêmes, ou produits using des composants d'arithmétique de saturation.

Les opérations arithmétiques de saturation sont disponibles sur beaucoup de plates-formes modernes, et étaient en particulier l'un des prolongements faits par la plate-forme du MMX d'Intel, spécifiquement pour de telles applications de traitement des signaux.

L'arithmétique de saturation pour des nombres entiers a également mis en application dans le logiciel pour un certain nombre de langages de programmation comprenant le C , le C++ , le Eiffel , et spécialement l'ADA , qui a le soutien intégré de l'arithmétique de saturation. Ceci aide des programmeurs à prévoir et comprendre les effets du débordement mieux. D'une part, la saturation est provocante pour mettre en application efficacement dans le logiciel sur une machine avec seulement des opérations arithmétiques modulaires, puisque les réalisations simples exigent les branches qui créent des retards énormes de canalisation.

Bien que l'arithmétique de saturation soit moins populaire pour l'arithmétique de nombre entier dans le matériel, la norme à point mobile , l'abstraction la plus populaire d'IEEE de pour traiter de vrais nombres approximatifs, utilisations une forme de saturation dans laquelle le débordement est converti en " ; infinity" ; ou " ; infinity" négatif ; , et n'importe quelle autre opération sur ce résultat continue à produire la même valeur. Ceci a l'avantage par rapport à la saturation simple que les opérations postérieures qui diminuent la valeur ne finiront pas produire vers le haut un " ; reasonable" ; résultat, comme dans le de calcul \ racine carrée {x^2-y^2} .

Random links:Commande intelligente | Arnold Dolmetsch | Écologie des Trinité-et-Tabago | Danse shakespearienne | L'école d'Overlake | Aritmética_de_la_saturación