La première unité de calcul obligatoire dans un microcontrôleur est celle qui permet de faire des additions et soustractions. Elle est appelée Alu (Arithmetic logic unit).
Les autres unités de calcul comme la division ou la multiplication ne sont pas obligatoire au microcontrôleur car en faisant plusieurs additions ou soustractions on obtient le même résultat qu’une multiplication ou division.
Voici un exemple : si on veut faire 2 fois 5, on peut faire une addition de 5+5 pour obtenir le même résultat. C’est plus long, donc si vous avez besoin de faire beaucoup de multiplication ou de division, vous pouvez prendre un microcontrôleur qui a coprocesseur qui contient une unité H/W multiplier ou Divide support pour diviser. En effet, c’est tous de même ^plus rapide d’avoir un composant dédié pour faire des multiplications et divisions plutôt que d’utiliser une suite d’additions ou de soustractions.
H/W multiplier : Cette unite est incluse dans le coprocesseur du microcontrôleur. Cette unité n’est pas intégrée dans tout les microcontrôleur et sert si vous avez beaucoup de multiplication à faire.
Divide support : Comme le H/W Multiplier, cette unité est incluse dans le coprocesseur du microcontrôleur.Cette unité n’est pas intégrée dans tout les microcontrôleur et est utile si vous avez beaucoup de division à faire.
Enfin pour stocker les résultats des calculs, on a besoin d’un working registre array.
Working register array : c’est un ensemble de registre de travail. C’est là où est stocké tous
les résultats de calcul d’arithmétique et du coprocesseur. C’est un accumulateur. C’est un
lieu de passage de tous les calculs. Dans notre exemple il y a 16 registres dans notre Working register array. Qaund vous cprogrammez votre carte vous n’avez pas à gérer les registres de travail. C’est le travail du compilateur.