Dans un système logique, en particulier dans un processeur, l’unité de contrôle (de commande) ou séquenceur, commande et contrôle le fonctionnement du système, notamment du chemin de données. Une unité de contrôle est un circuit logique séquentiel qui réalise un automate fini, plus précisément une machine de Moore ou de Mealy, qui génère des signaux de contrôle pour piloter les éléments du chemin de données.
Séquenceur câblé
Dans un séquenceur câblé, les signaux de contrôle sont produits par un circuit logique ad hoc qui réalise l'automate. Deux méthodes sont possibles :
- on peut chercher à réduire le nombre de composants, en particulier le nombre de bascules ; si l'automate compte n états, on peut ainsi concevoir un circuit à log2 n bascules ;
- on peut systématiquement attribuer une bascule à chaque état de l'automate ; cela augmente le nombre de bascules, mais simplifie la conception et la mise au point du circuit.
En pratique, les séquenceurs des processeurs réels sont si complexes qu'aucune méthode de conception d'un séquenceur câblé ne donne de résultat satisfaisant, à un coût acceptable.
Les séquenceurs câblés ont été mis en œuvre sur les premiers ordinateurs, en utilisant des composants discrets ou même des pièces mécaniques. Les processeurs modernes utilisent des séquenceurs microprogrammés (voir ci-dessous).
Les programmes des machines à laver et les types de points des machines à coudre ont longtemps été réalisés par des séquenceurs câblés. Dans les machines modernes, ils sont généralement réalisés en logiciel. Ce logiciel fonctionne sur un microprocesseur ou un microcontrôleur.
Séquenceur microprogrammé
Un séquenceur microprogrammé utilise un programme appelé microcode, contenu dans une mémoire morte (ROM). Un tel séquenceur est plus simple à concevoir et à mettre à jour, mais moins rapide.
De par leur complexité, les architectures à jeu d'instructions étendu comme x86 ont tendance à utiliser des séquenceurs microprogrammés, alors que les architectures à jeu d'instructions réduit comme ARM s'amènent plus naturellement aux séquenceurs câblés. Autre exemple, l'architecture RISC-V est explicitement conçue de telle sorte à simplifier le jeu d'instructions et ainsi permettre une implémentation câblée.