Section 2.8

Unité arithmétique et logique

Dans les sections précédentes, nous avons vu comment concevoir des circuits logiques pour réaliser des additions et des soustractions. Pour obtenir un soustracteur, nous avions apporté une très simple modification à l'additionneur. Dans cette section, nous allons commencer par voir comment modifier encore légèrement ce circuit afin de pouvoir choisir entre une addition et une soustraction à l'aide d'un bit de contrôle.

Considérez le circuit suivant, qui est une version modifiée du soustracteur que nous avons vu dans la section précédente.

À la place d'inverser inconditionnellement les bits de l'entrée B avec des portes NON, nous utilisons ici des portes OU-X pour inverser les bits de B uniquement lorsque le bit de contrôle + / - est à 1. Ainsi, lorsque + / - est à 0, B est laissé intact, et l'additionneur fonctionne normalement. Par contre, lorsque + / - est à 1, les bits de B sont inversés, une retenue ajoutée, et ainsi l'additionneur devient un soustracteur.

Le circuit ci-dessus est intéressant car l'opération d'addition ou de soustraction est déterminée par une entrée du circuit. Il s'agit d'un exemple de circuit dont le comportement est configurable. Nous pouvons pousser cette idée un peu plus loin et permettre de choisir entre plus d'opérations. C'est ce qui est réalisé par des circuits appelés unités arithmétiques et logiques, ou ALU (pour Arithmetic and Logic Unit). Ces circuits permettent de choisir entre plusieurs opérations arithmétiques (comme l'addition et la soustraction) et logiques (comme le ET et le OU, par exemple). Ci-dessous est un exemple d'une ALU très simple, représentée comme un unique composant, qui permet de choisir entre quatre opérations.

! Remarque

L'implémentation de l'ALU ci-dessus n'est pas discutée en détails ici. Si vous êtes curieux, essayez de réfléchir à quels composants abordés plus tôt dans ce chapitre, pourraient être utilisés pour réaliser une ALU.

L'ALU représentée ci-dessous est un exemple très simple. Dans un ordinateur réel, on trouve une (voire même plusieurs) ALU afin de pouvoir effectuer toutes sortes d'opérations arithmétiques et logiques. Les ALUs que l'on trouve actuellement dans nos ordinateurs sont beaucoup plus complexe que l'exemple présenté plus haut mais suivent le même principe. À la place d'agir sur des nombres de 4 bits, une ALU réelle agit sur des entrées plus grande, typiquement de 32 ou 64 bits. De plus, une ALU réelle peut effectuer beaucoup plus d'opérations que les quelques opérations présentées ici.