Article de reference

Microséquenceur

En architecture et ingénierie informatique , un séquenceur ou microséquenceur génère les adresses permettant d'exécuter pas à pas le microprogramme d'une mémoire de contrôle . I...

En architecture et ingénierie informatique , un séquenceur ou microséquenceur génère les adresses permettant d'exécuter pas à pas le microprogramme d'une mémoire de contrôle . Il est utilisé soit comme composant de l' unité de contrôle d'un processeur , soit comme générateur autonome de plages d'adresses.

Les adresses sont généralement générées par une combinaison d'un compteur, d'un champ d'une micro-instruction et d'un sous-ensemble du registre d'instructions . Le compteur est utilisé dans le cas typique où la prochaine micro-instruction est celle à exécuter. Un champ de la micro-instruction sert aux sauts ou à d'autres opérations logiques.

Étant donné que les processeurs implémentent un jeu d'instructions, il est très utile de pouvoir décoder directement les bits de l'instruction dans le séquenceur, afin de sélectionner un ensemble de micro-instructions pour exécuter les instructions du processeur.

La plupart des processeurs CISC modernes utilisent une combinaison de logique pipelinée pour traiter les opcodes de faible complexité qui peuvent être exécutés en un seul cycle d'horloge, et de microcode pour implémenter ceux qui nécessitent plusieurs cycles d'horloge.

L'un des premiers processeurs microcodés intégrés fut le processeur IBM PALM , qui émulait toutes les instructions du processeur en microcode et était utilisé sur l' IBM 5100 , l'un des premiers ordinateurs personnels.

Des exemples récents de processeurs similaires à microséquenceur open source sont les cœurs MicroCore Labs MCL86, MCL51 et MCL65 qui émulent entièrement en microcode les jeux d'instructions Intel 8086/8088, 8051 et MOS 6502.

de branchement spécifie l'adresse de l'instruction suivante, de manière conditionnelle ou inconditionnelle. L'option d'index logique (IX) effectue un OU logique sur le registre Link 16 bits pour obtenir l'adresse de branchement, offrant ainsi une fonctionnalité de branchement indexé simple.
  • Toutes les instructions arithmétiques/logiques autorisent le modificateur de saut (J), qui redirige l'exécution vers la micro-instruction adressée par le registre Link.
  • Toutes les instructions arithmétiques et logiques acceptent les modificateurs de décrémentation (D) et de saut (J). Dans ce cas, le registre de compteur de boucle 8 bits est décrémenté. S'il est différent de zéro, un branchement est effectué vers le contenu du registre Link. S'il est égal à zéro, l'exécution se poursuit avec l'instruction suivante.

Une autre option de séquencement autorisée pour une instruction de branchement est l'option d'exécution (XQ). Lorsqu'elle est spécifiée, l'instruction unique à l'adresse de branchement est exécutée, puis l'exécution se poursuit après l'instruction de branchement initiale. L'option IX peut être utilisée conjointement avec l'option XQ.

Exemple complexe

Le système IBM System/360 était une série d'ordinateurs compatibles lancée en 1964, dont beaucoup étaient microprogrammés. Le System/360 modèle 40 est un bon exemple de machine microprogrammée avec un microséquençage complexe.

La mémoire interne comprend 4 096 micro-instructions de 56 bits fonctionnant selon un style de microprogrammation horizontale. Elle est adressée par le registre d'adresse en lecture seule (ROAR) de 12 bits. Contrairement à la plupart des registres de l'architecture S/360, les bits du ROAR sont numérotés de 0 à droite à 11 à gauche.

Technologies de traitement