« Fonctionnement d'un ordinateur/Les circuits de calcul flottant » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 27 :
====Une seconde optimisation : l'interpolation linéaire====
 
|[[File:Interpolation memory - principe.PNG|vignette|''Interpolation memory'' - principe]]
Une autre optimisation, quelque peu meilleure, est de prendre les valeurs les plus proches gérées par la ROM qui encadrent l’opérande et de les utiliser pour faire une '''interpolation linéaire'''. On obtient alors une '''mémoire à interpolation''', qui calcule une valeur approximative, bien que largement suffisante pour beaucoup d'applications.
 
La seconde ruse, quelque peu meilleure, se base sur le même principe : ne mémoriser le résultat que pour une partie des opérandes et calculer les autres à partir des résultats mémorisés. Sauf qu'ici, on n'utilise pas d'identités trigonométriques qui donnent un résultat exact. La seconde ruse ne fait que calculer une approximation du résultat, sauf pour les opérandes dont on a mémorisé directement le résultat. L'approximation du résultat se calcule en faisant une '''interpolation linéaire''', à savoir une moyenne pondérée des deux résultats les plus proches. Par exemple, si on connait le résultat pour sin(45°) et pour sin(50°), alors on peut calculer sin(47,5°), sin(47°), sin(45,5°), sin(46,5°) ou encore sin(46°) en faisant une moyenne pondérée des deux résultats. Une telle approximation est largement suffisante pour beaucoup d'applications
{|
|[[File:Interpolation memory - principe.PNG|Interpolation memory - principe]]
 
Le circuit qui permet de faire cela est appelée une '''mémoire à interpolation'''. Le schéma de principe du circuit est illustré ci-contre, alors que le schéma détaillé est illustré ci-dessous.
|[[File:Interpolation memory.PNG|Interpolation memory]]
 
|}
|[[File:Interpolation memory.PNG|centre|vignette|upright=2|''Interpolation memory''.]]
 
===CORDIC===