Architecture des Ordinateurs

Slides:



Advertisements
Présentations similaires
Électronique de base du processeur
Advertisements

Architecture de machines Le microprocesseur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Algorithmique Résume.
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Architecture des Ordinateurs
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
INTRODUCTION.
Les microprocesseurs A. Objectifs de la séquence:
Fonctions Booléennes primaires
Les Compteurs A. Objectifs de la séquence:
TRANSMISSION DES DONNEES INFORMATIQUES
8. Les tableaux P. Costamagna – ISEN N1.
Architecture de machines Eléments de logique
Présentation Unité de codage
ALGEBRE DE BOOLE Mohamed Yassine Haouam
L’ordinateur Aspect théorique
Chapitre 8 : L’architecture de base des ordinateurs
INITIATION AU GRAFCET E. HELLOT lycée P. Duez.
Les bases de l’Algorithmique
Structures de données linéaires
Partie 1 Etude de l'existant
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Le codage des nombres en informatique
Architecture des Ordinateurs
Algorithmique et Programmation
LES SYSTEMES AUTOMATISES
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
ROLE DES DIFFERENTS ELEMENTS
Plan cours La notion de pointeur et d’adresse mémoire.
L’écriture des grands nombres: les puissances de 10
3-Présentation d’un µP simple
REPRESENTATION DE L’INFORMATION
Chapitre 5 : Les circuits séquentiels
LE TRAITEMENT NUMERIQUE
1 INFOR 101 Chapitre 4 Marianne Morris. 2 Révision de chapitre 3 Algorithmes Sequential Search Selection Sort Binary Search Ordre de magnitude  (n) Mesurer.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
Algèbre de Boole Définition des variables et fonctions logiques
UE MAREP Cours 1 : Algèbre de Boole et entiers naturels
Patricia Renault UPMC 2005/2006
Introduction à la programmation (420-PK2-SL) cours 1
Module algorithmique et programmation
Codage de l’information
Cours d’initiation en Informatique
Scripts et fonctions Instructions de contrôle
Chapitre 4 La représentation des nombres.
Chapitre 3 L’accès aux données.
Algorithmique Tableaux de données
©Pierre Marchand, Unité 2: Représentation interne des informations Objectifs: À la fin de cette unité, -vous saurez comment les caractères et les.
Chapitre 4b La représentation des nombres.
Chapitre 9 Les caractères.
Objets et Actions Élémentaires.
Algorithmique Boucles et Itérations
Introduction au langage C
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Architecture d’un ordinateur
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Les bascules et registres
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Multiplexeurs A.Lebrun.
Initiation à l'informatique
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
L’électronique des ordinateurs Laurent JEANPIERRE IUT de CAEN – Campus 3.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
1 Objectifs Apprendre la structure de quelques circuits combinatoires souvent utilisés ( demi additionneur, additionneur complet,……..). Apprendre comment.
Transcription de la présentation:

Architecture des Ordinateurs François Rousselle Insaf Kerkeni IUT Informatique de Calais

Objectif du cours : Étude du fonctionnement interne de l’ordinateur logique booléenne 1ière partie : couple processeur / mémoire codage des nombres logique combinatoire fonctions simples : addition … logique séquentielle fonctions plus sophistiquées : mémoire ... introduction à l'assembleur 2ième partie : carte mère et périphériques carte mère : chipset, bus, connecteurs … périphériques d’entrée : clavier, souris … périphériques de sortie : écran, imprimante … périphériques d’entrée sortie : disque dur, modem ... IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Période : 1er semestre (16 semaines) (8+8) Cours 8 TDs : manipulation de nombres binaires logique combinatoire logique séquentielle 8 TPs : notions de compilation introduction à la programmation assembleur 2 DS + contrôle(s) TD + contrôle(s) TP IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1 Introduction 1.1 Objectif de la première partie du cours Couple processeur / mémoire : codage des nombres utilisation des opérations logiques de base : ET, OU, NON niveaux logique et fonctionnel (circuits logiques et équations) réalisation d’unités de traitement primitives assemblage de ces unités pour préciser l’organisation de l’ordinateur IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1.2 Historique de l’informatique … agrémenté de quelques « phrases célèbres » en rouge … Références : « Préhistoire et histoire des ordinateurs » de Robert Ligonnière, Robert Laffont, 1987 http://www.scedu.umontreal.ca/histoiredestec/histoire/tdmhiste.htm (offline ...) http://histoire.info.online.fr http://dmawww.epfl.ch/~delay/projet3 (offline ...) 1.2.1 Du manuel à la mécanique IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1.3 Positionnement du problème On souhaite construire un ordinateur basé sur l’utilisation de la base 2 Problèmes : représentation des nombres réalisation des opérations arithmétiques : + et - : facile en entier et en réel x : plus dur ... / : efficacité difficile à obtenir en entier, ardu en réel séquenceur intégration IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1.4 Principes fondamentaux Tous les ordinateurs sont fondés sur les mêmes principes de base : programmes / données processeur / mémoire / périphériques informations codées en binaire traitements effectués en binaire Pourquoi la base 2 ? Simple générale Depuis l ’ENIAC, seule la technologie a changée : lampe à vide - transistor - circuit intégré - microprocesseur d ’où : plus rapide, plus petit, moins gourmand, plus fiable, moins coûteux IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1.5 Définitions Définition 1 Un processeur est un élément qui exécute des traitements. Les traitements à exécuter sont indiqués par les instructions du programme exécuté. Les traitements s’appliquent sur des données et fournissent également des résultats. Définition 2 La mémoire centrale contient les programmes exécutés par le processeur ainsi que les données du programme et ses résultats. Processeur Résultats Programme Données Mémoire IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2 Logique booléenne 2.1 Représentation des valeurs booléennes 0 : 0 volt = masse 1 : +n volts = alimentation 2.2 Les portes logiques 2.2.1 Fonction NON (inverseur) Elle donne le complémentaire d ’une valeur logique. a s symbole usuel symbole normalisé ANSI table de vérité 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.2 Fonction ET Un ET est vrai si ses deux entrées sont vraies. a b s b a s & 2.2.3 Fonction OU Un OU est faux si ses deux entrées sont fausses. a b s IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.4 Fonction NON-ET ou NAND Un NON-ET est un ET complémenté. Son résultat est faux si ses deux entrées sont vraies. b a s & 2.2.5 Fonction NON-OU ou NOR ou NI Un NI est un OU complémenté. Son résultat est vrai si ses deux entrées sont fausses. a b s IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.6 Fonction OU-EXCLUSIF Un OU-EXCLUSIF est vrai si ses deux entrées ont des valeurs différentes. Il permet de « tester » si deux valeurs logiques sont différentes. a b s b a s 2.2.7 Fonction NI-EXCLUSIF Un NI-EXCLUSIF est vrai si ses deux entrées ont des valeurs égales. Il permet de « tester » si deux valeurs logiques sont égales. b a s IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.8 Fonctions ET-multiple, OU-multiple, NON-ET-multiple et NI-multiple Les fonctions ET, OU, NON-ET et NI (NON-OU) se généralisent facilement à des fonctions ayant un nombre quelconque d ’entrées : ET-multiple : vrai (1) si toutes ses entrées sont vraies (1), faux (0) sinon OU-multiple : faux si toutes ses entrées sont fausses, vrai sinon NON-ET-multiple : faux si toutes ses entrées sont vraies, vrai sinon NI-multiple : vrai si toutes ses entrées sont fausses, faux sinon IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.9 Porte trois-états La porte trois-états agit en interrupteur. Elle possède deux entrées et une sortie. L ’une des entrées contrôle son activité. Si celle-ci vaut 1 alors l ’entrée a est directement connectée à la sortie s, sinon elles sont déconnectées. L ’état déconnecté n ’est pas un 0, on le nomme haute-impédance (noté Z). a s c ou IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs L ’intérêt de la porte trois-états est de pouvoir connecter directement deux fils en évitant tout risque de court-circuit en utilisant un montage de barrière bi-directionnelle ou transceiver. c IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.10 Circuit logique Un circuit logique est l’assemblage de plusieurs portes logique. t b a c s La fonction logique (équation) correspondant au circuit logique est construite à partir des notations (opérations ou symboles) correspondant à chaque porte logique. Prendre garde aux priorités des opérateurs pour que l’équation respecte bien l’ordre d’application des portes logique dans le circuit (des entrées vers les sorties) : comme dans les équations arithmétiques, la multiplication est prioritaire par rapport à l’addition + utilisez le parenthèsage. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs La table de vérité d’un circuit se construit étape par étape à partir des tables de vérités des portes logique. t b a c s i j k IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.2.11 Aspect matériel Matériellement, les portes se présentent dans des circuits intégrés. Un circuit en regroupe un certain nombre de même type. Exemple : le 7400 comporte 4 portes NAND 13 14 8 9 10 11 12 2 1 7 6 5 4 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Une porte peut prendre en compte la valeur d’une entrée lorsqu’il y a un changement d’état logique de cette entrée. Changement d ’état = front : 0 à 1 : front montant 1 à 0 : front descendant Il faut un certain temps pour qu ’une porte logique réagisse à un changement sur ses entrées : c’est le délai de propagation (environ 10 ns) Chronogramme réel faisant apparaître ce délai : 1 s 0 b 0 a 0 délai de propagation dans une porte ET IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Le délai de propagation d'un circuit est le temps le plus long nécessaire pour propager un front sur une des entrées vers une des sorties. Exemple de calcul du délai de propagation : t b a c s 15ns NON-OU-EXCLUSIF à 3 entrées OU-EXCLUSIF à 3 entrées 14ns NON-OU à 3 entrées NON-ET à 3 entrées OU à 3 entrées ET à 3 entrées 13ns NON-OU-EXCLUSIF à 2 entrées OU-EXCLUSIF à 2 entrées 12ns NON-OU à 2 entrées NON-ET à 2 entrées OU à 2 entrées ET à 2 entrées 10ns NON (inverseur) Délai de propagation : b vers t : 10 + 12 + 12 = 34ns IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Chronogrammes en TD : on supposera qu’il n’y a pas de délai de propagation Exemple de chronogramme : t b a c s i j 1 s j i b a temps IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.3 Simplification d’une fonction logique Pourquoi simplifier ? Équation plus lisible + facile à construire - cher + rapide - gourmand en énergie - de chaleur Théorème 1 La porte NON-ET est universelle. Théorème 2 La porte NI est universelle. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.3.1 Théorèmes de Boole 2.3.2 Formules de De Morgan IUT Informatique Calais Architecture des ordinateurs

ET est associatif et commutatif (comme la multiplication) 2.3.3 Autres propriétés ET est associatif et commutatif (comme la multiplication) OU est associatif et commutatif (comme l’addition) ET est distributive par rapport à OU (comme x par rapport à +) 2.4 Représentation des nombres 2.4.1 Utilisation d'une base quelconque et changement de base Un nombre N en base B s'écrit : NB = anan-1an-2 … a1a0 avec 0 ≤ ai ≤ B-1 Exemples : base 2 (binaire) : 011011100102 0 ≤ ai ≤ 1 base 8 (octal) : 12456764706208 0 ≤ ai ≤ 7 base 10 (décimal) : 97468205610 0 ≤ ai ≤ 9 base 16 (hexadécimal) : 3A5E8F16 0 ≤ ai ≤ F chiffres hexadécimaux : 0 1 2 3 4 5 6 7 8 9 A B C D E F IUT Informatique Calais Architecture des ordinateurs

Pour trouver la valeur décimale d'un nombre en base B : N10=anBn + an-1Bn-1 + … + a2B2 + a1B1 + a0 Exemples : 10112 = 1×23 + 0×22 + 1×21 + 1 = 1110 2478 = 2×82 + 4×81 + 7 = 16710 2DB16 = 2×162 + 13×161 + 11 = 73110 Pour passer d'une base à une autre il est toujours possible de passer par la base 10 Pour passer du binaire à une base de type 2n il suffit de regrouper les bits par n de la droite vers la gauche afin de retrouver chaque chiffre en base 2n. Exemples : soit 101101112 à représenter en octal (8 = 23) : 10 110 111 2 = 2678 hexadécimal (16 = 24) : 1011 0111 2 = B716 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.4.2 Représentation des nombres binaires non signés n bits permettent de représenter 2n valeurs différentes, donc les nombres entiers positifs de 0 à 2n-1. Exemple : sur 8 bits on peut représenter 28 = 256 valeurs différentes donc les entiers de 0 à 255 (0000 0000 à 1111 1111). 2.4.3 Représentation des nombres binaires signés Pour représenter des nombres entiers positifs et négatifs, on utilise la représentation en complément à deux. Pour un nombre entier positif, c’est sa représentation en base 2. Pour un nombre entier négatif, on obtient sa représentation en 3 étapes : étape 1 : calculer la représentation binaire de sa valeur absolue étape 2 : complémenter tous les bits (0→1, 1→0) étape 3 : ajouter 1 (additionner 1 au nombre obtenu) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Exemples : -23 sur 8 bits ? étape 1 : 00010111 étape 2 : 11101000 étape 3 : 11101001 -100 sur 8 bits ? étape 1 : 01100100 étape 2 : 10011011 étape 3 : 10011100 Avec n bits on représentent les nombres entiers de -2n-1 à 2n-1-1. La soustraction s’obtient en additionnant les représentations C2. La représentation C2 n ’a de sens que si on précise qu’on l ’utilise pour ce nombre, sinon -23 en C2 vaut 233 en binaire (233=256-23). IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Lorsque des opérations sont effectuées sur des nombres codés en complément à 2, ceux-ci doivent impérativement être codés sur le même nombre de bits. 4 6 10 0100 110 1010 4 -2 -6 0100 1110 10010 On ne tient pas compte de la retenue finale Comment détecter un débordement ? si les nombres sont de signes différents, pas de problème si ils sont de même signe, le signe du résultat doit être le même, sinon il y a débordement IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.4.4 Binaire Codé Décimal (BCD) BCD permet de coder des nombres entiers positifs. En BCD, on code chaque chiffre du nombre décimal sur 4 bits et on concatène ces demi-octets. Exemple : 4236 devient 0100 0010 0011 0110 en BCD Avec 4n bits (ou m octets) on code les entiers de 0 à 10n-1 (ou 102m-1) 2.4.5 Représentation des nombres réels En décimal on écrit par exemple : 52,467 = 5.101 + 2.100 + 4.10-1 + 6.10-2 + 7.10-3 De manière générale, dans la base b, on écrit : an an-1…a0 , a-1 a-2 … a-p = anbn + an-1bn-1 + … + a0b0 + a-1b-1 + a-2b-2 + … + a-pb-p IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Par exemple en binaire : 10100101,011 = 1.27+1.25+1.22+1.20+1.2-2+1.2-3 = 165+1/4+1/8 = 165,375 Passage de la base 10 vers une base quelconque : pour la partie entière, on procède par divisions comme pour un entier la partie fractionnaire est multipliée par la base de manière successive en conservant la partie entière et ce jusqu’à ce qu’elle devienne nulle ou que la précision maximale soit atteinte. Exemple 1 : 28,125 28  11100 0,125 * 2 = 0,25 0,25 * 2 = 0,5 0,5 * 2 = 1,0 0,125  0,001 28 2 0 14 2 0 7 2 1 3 2 1 1 IUT Informatique Calais Architecture des ordinateurs

Codage informatique des nombres réels selon la norme IEEE 754 : Exemple 2 : 0,3 0,3 * 2 = 0,6 0,6 * 2 = 1,2 0,2 * 2 = 0,4 0,4 * 2 = 0,8 0,8 * 2 = 1,6 0,6 * 2 = 1,2 0,2 * 2 = 0,4 … 0,3  0,010011001100110011001100110011001… Codage informatique des nombres réels selon la norme IEEE 754 : Les nombres réels sont normalisés sous la forme 1,… * 2n puis codés sur 32bits. le 1er bit code le signe (0 pour + et 1 pour -) les 8 bits suivants codent l’exposant auquel on ajoute 127 (permet de coder des exposants négatifs sans C2) les 23 derniers bits codent la partie fractionnaire du nombre (après la virgule) mais si le 24ième bit est 1 alors on arrondit à la valeur supérieure (mantisse + 1) seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Exemple : 5,3  101,010011001100110011001100110011001… normalisation : 1,01010011001100110011001100110011001… * 22 signe : 0 exposant : 2 + 127 = 129 soit sur 8 bits 1000 0001 mantisse sur 23 bits : 01010011001100110011001 mais le 24ième bit est 1 donc la mantisse est 01010011001100110011010 codage final : 0100 0000 1010 1001 1001 1001 1001 1010 de manière plus lisible en hexadécimal : 40 A9 99 9A Remarques : l’exposant 0000 0000 signifie que le nombre est dénormalisé l’exposant 1111 1111 signifie que ce n’est pas un nombre (NaN) les exposant sont donc compris entre –126 et 127. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 2.4.6 Unités de stockage unité de base : le bit (0 ou 1) unité usuelle : l'octet (1 octet = 8 bits) kilooctet : 1 ko = 1024 octets mégaoctet : 1 Mo = 1024 Ko gigaoctet : 1 Go = 1024 Mo téraoctet : 1 To = 1024 Go IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3 Logique combinatoire 3.1 Introduction Objet : étude des fonctions logiques du type x=f(a,b,c,…). Note : le temps n’intervient pas dans l’équation. La logique combinatoire permet la réalisation des fonctions de base d’un ordinateur. Définition 3 : entrée Valeur logique fournie au circuit et à partir de laquelle est déterminée la sortie du circuit. Définition 4 : entrée de donnée Entrée ayant un rôle de valeur à traiter par le circuit. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Définition 5 : entrée de contrôle Entrée ayant un rôle de modification / spécification du traitement réalisé par le circuit. Définition 6 : sortie Valeur logique résultat de l’activité du circuits sur ses entrées. Remarque : similitude conception d’un programme / circuit logique Étant donnés des entrées et les résultats qui doivent être obtenus, on conçoit un programme ou un circuit logique passant des unes aux autres. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.2 Exemples de circuits combinatoire 3.2.1 Additionneur Réalise l’addition de deux nombres entiers sur n bits. Le résultat est fourni sur n+1 bits, le bit supplémentaire étant un bit de retenue. + A B C=A+B IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.2.2 Circuits élémentaires Les décodeurs et les multiplexeurs dont des circuits relativement élémentaires mais très souvent utilisés. Il s’agit de deux briques de base pour la construction de circuits plus élaborés. Ils sont en particulier présents dans chaque circuit mémoire. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.2.2.1 Multiplexeur et démultiplexeur Un multiplexeur permet d’y sélectionner la bonne sortie lors d’une lecture. Le multiplexeur transmet plusieurs signaux en entrée sur un seul fil en sélectionnant une des entrées à transmettre en sortie. Une entrée de contrôle réalise la sélection. 2n entrées de donnée n entrées de contrôle Les n bits de contrôle ( 0 à 2n-1 ) = numéro de l’entrée à sélectionner s e0 e3 e2 e1 c1 c0 1 1 = e1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Démultiplexeur = rôle inverse du multiplexeur : choisir la sortie vers laquelle transmettre l’entrée s0 s3 s2 s1 e c1 c0 = e 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.2.2.2 Décodeur et encodeur Un décodeur y décode l’adresse et active la ligne correspondante. Décodeur : n entrées et 2n sorties Les n bits en entrée codent une valeur de 0 à 2n-1 La sortie ayant ce numéro passe à 1 (les autres 0) Le décodeur est un élément essentiel dans la réalisation de la mémoire. s0 s3 s2 s1 e0 e1 e2 s4 s7 s6 s5 = 0 = 1 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Encodeur : rôle inverse du décodeur 2n entrées et n sorties Une seule entrée est à 1 Les n bits en sortie codent le numéro de l’entrée qui est à 1 s0 e3 s2 s1 e0 e1 e2 e4 e7 e6 e5 1 = 0 = 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.3 Méthodologie de réalisation d’un circuit combinatoire À partir des spécifications du circuit à réaliser : 1 identifier les entrées et les sorties du circuit en distinguant les entrées de donnée des entrées de contrôle 2 donner la table de vérité de chacune des sorties en fonction des entrées 3 pour chacune des sorties, en fonction de la table de vérité, obtenir une équation logique simplifiée au moyen d’un tableau de Karnaugh 4 dessiner le schéma logique du circuit IUT Informatique Calais Architecture des ordinateurs

obtenu à partir de la table de vérité Tableau de Karnaugh permet de trouver l’équation logique d’une sortie d’un circuit en regroupant les cases contenant la valeur 1 obtenu à partir de la table de vérité Exemples : 2 entrées : tableau de Karnaugh de s Entrées dans le même ordre que dans la table de vérité IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4 entrées a1a0b1b0 (en fait 2 nombres A et B) : tableau de Karnaugh de s Entrées toujours codées dans l’ordre croissant du codage binaire (ici de 0000 à 1111) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Entêtes de ligne et de colonnes codées dans l’ordre croissant du codage de Gray IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Nombres croissants sur 3 bits selon …. le codage binaire classique : on ajoute 1 à chaque fois 000 001 010 011 100 101 110 111 le codage de Gray : 1) 2 nombres consécutifs ont un seul bit qui les différencie 2) Trouver le nombre suivant consiste à inverser le bit le plus à droite possible (vérifier que le codage obtenu n’a pas déjà été utilisé par un nombre précédent) 000 001 011 010 110 111 101 100 001:OK 000:NON 011:OK 010:OK 011:NON 000:NON 110:OK 111:OK 110:NON 101:OK 100:OK Remarque : Le premier et le dernier nombre ont également un seul bit qui les différencie IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Pourquoi le codage de Gray pour les tableaux de Karnaugh ? Le codage des entrées de 2 cases voisines ont un seul bit qui les différencie, dans ce cas l’équation leur correspondant se simplifie Important : La première et la dernière case de chaque ligne et de chaque colonne sont également considérée comme voisine (un seul bit différencie leur codage) exemples IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Plus le regroupement de cases voisines est grand, plus l’équation résultante est simple Exemples de groupements de 4 cases voisines : IUT Informatique Calais Architecture des ordinateurs

Exemples de groupements de 8 cases voisines : Les groupements ne se font que par 2n cases (2, 4, 8, 16, …) Un groupement de 2n cases est valide ssi chaque case du groupement a n voisins dans ce groupement Exemples de groupements non valides : 23 cases dont 5 n’ont que 2 voisins et une en a 4 22 cases dont 2 n’ont qu’1 voisin 6 cases (pas une puissance de 2) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Les cases contenant 1 peuvent être utilisées plusieurs fois par des groupements différents pour reconstituer l’équation de la sortie Il y a généralement de nombreuses solutions possibles, mais chercher les plus grands groupements permet de trouver les plus simples Exemples complets : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Dans les exercices, toujours entourer les groupements utilisés dans le tableau de Karnaugh et indiquer leur correspondance avec un des termes de l’équation (par une couleur ou un numéro) De même, toujours tenter de simplifier l’équation finale groupement OU EXCLUSIF : alors que le OU correspond à l’union de plusieurs groupements, le OU EXCLUSIF correspond à l’union moins l’intersection de 2 groupements exemples : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4 Étude de quelques circuits combinatoires 3.4.1 « Semi-additionneur » 1 bit Table de vérité de la sortie s : problème 1+1=10 donc 2 bits nécessaires Deuxième sortie pour la retenue r : r b a s IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4.2 Additionneur sur 2 bits en entrée : 2 nombres sur deux bits a1a0 et b1b0 en sortie : s1s0 et la retenue r Remarques : entrées à gauche sorties à droite bits dans l'ordre pour lire les nombres IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de s0 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de s0 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de s0 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de s1 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de s1 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh de r : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4.3 additionneur complet sur des données de taille quelconque même raisonnement que précédemment : laborieux idée : combinaison de plusieurs circuits travaillant sur 1 bit avantages : plus facile à réaliser, travail avec une taille de n bits (n quelconque), conception plus claire, meilleur méthodologie, schéma logique plus clair, réalisation matérielle du circuit plus simple. Circuit primitif : additionneur 1 bit complet prise en compte de la retenue précédente : 0 1 1 1 1 1 0 0010 1011 + 1011 0110 1110 0001 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Tableau de Karnaugh pour r : Table de vérité : Tableau de Karnaugh pour s : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Schéma logique : b a s r c IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Schéma logique d'un additionneur 4 bits constitué d'additionneurs complets : r S A B IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4.4 Unité logique deux entrées A et B sur n bits et une sortie S résultat d’une opération logique le choix de l’opération est fixé par c1c0 : les valeurs de A et B ne sont pas exprimées dans le tableau car elles n’ont pas d’intérêt ici utilisation de n circuits sur 1 bit pour réaliser le circuits sur n bits IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Circuit logique sur 1 bit : table de vérité : (la même mais sur des données 1 bit) On peut faire le schéma directement à partir de l’équation mais ... IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs … il vaut mieux utiliser un multiplexeur : c1 c0 a b s IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Schéma logique d’une UL sur 4 bits en combinant 4 UL 1 bit : S A B c1 c0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4.5 Comparateur : A = B un comparateur sur n bits avec n comparateurs sur 1 bit comparateur sur 1 bit : OU-EXCLUSIF ( 1 si les deux entrées sont différentes ) on compare tous les bits 1 à 1 puis on fait un OU sur les résultats : s A B IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 3.4.6 Comparateur : A < B (nombres signés) A et B sont codés en complément à 2 si A et B sont de signes différents, le nombre positif est le plus grand si A et B sont de même signe, on utilise le comparateur de nombres positifs Pourquoi la comparaison fonctionne pour deux nombres négatifs ? codage C2 sur 4 bits : 0 1 2 … 7 8 9 … 15 0000 0001 0010 … 0111 1000 1001 … 1111 0 1 2 … 7 -8 -7 … -1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4 Logique séquentielle 4.1 Introduction 4.1.1 Objet Étude des fonctions logiques du type x(t)=f(entrées,t-1). Note : le temps intervient dans l’équation. Grâce à la logique séquentielle, on peut réaliser un circuit de mémorisation et concevoir complètement un processeur. Du point de vue du programmeur : logique combinatoire = opération arithmétiques et logiques simple (addition, soustraction, et, ou, décalage, rotation, comparaison) logique séquentielle = fonctionnalités nécessitant de mémoriser des données (affectation, structures de contrôle, séquencement des instructions) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.1.2 Quelques définitions Définition 7 : Un état d’un circuit est une configuration des sorties de ce circuit. Les n états d’un circuit sont numérotés de 0 à n-1. Exemple : une bascule (définie plus loin) possède deux états ; un circuit composé de 2 bascules à 4 états différents ; un circuit composé de m bascules a 2m états différents. Définition 8 : Une transition est un changement d’état. Définition 9 : Le graphe de transitions d’un circuit est un graphe dont les nœuds sont les états possible du circuit, les arcs les transitions possibles. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.1.3 L’oscillateur (ou horloge) L'oscillateur est l'élément permettant l'introduction de la notion de temps dans les circuits. Il est symbolisé par : Un oscillateur permet d’obtenir un signal carré ayant une fréquence bien précise, constante au cours du temps et qui peut être élevée (plusieurs centaines de Mhz). L’oscillateur le plus simple est une simple porte inverseur bouclant sur elle-même : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs La fréquence d’oscillation est fixée par le délai de propagation dans la porte. Dans un ordinateur, l’oscillateur rythmant ses activités est constitué d’un quartz. Le quartz vibre naturellement, avec une grande précision et une grande constance au cours du temps, quand on lui applique un courant oscillant. Le quartz vibre à sa fréquence propre qui dépend de sa taille et de la façon dont il a été taillé. À partir d’un quartz, on obtient des fréquences sous-multiples à l’aide de diviseurs de fréquence réalisés à l’aide de compteurs (voir TDs). IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.2 Les bascules La bascule est l’élément fondamental de la logique séquentielle. Elle possède 2 états (0 ou 1). On peut lire l’état d’une bascule et on peut l’écrire (affecter l’état voulu). Typiquement, une bascule aura deux entrées et une sortie : une entrée de contrôle indiquant si l’on veut lire ou écrire l’état interne de la bascule ; une entrée de donnée utilisée dans le cas d’une écriture spécifiant la valeur à écrire dans la bascule ; une sortie sur laquelle l’état courant de la bascule peut être lu. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Bascule D : v e s L’entrée de contrôle v indique si l’on veut lire ou écrire une valeur. Si un front apparaît sur v, la donnée présente sur e est écrite sur s, sinon la sortie n’est pas modifiée. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Détection d’un front montant sur v : a b s v Le front est détecté grâce au délai de propagation dans la porte NON. 1 v a b s Front descendant ? ET NI IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1 1 1 v e s 1 1 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Schéma d’une bascule D déclenchant sur front montant : s s’ e v Schéma d’une bascule D déclenchant sur front descendant : s s’ e v IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.3 La fonction mémoire Une bascule est un élément de mémorisation de 1 bit (ou point-mémoire). L’entrée de contrôle joue le rôle de signal de lecture/écriture (noté r/w). Un ensemble de bascules est utilisé pour réaliser un registre ou une mémoire. 4.3.1 Le registre C’est un circuit capable de mémoriser 1 mot. Les registres sont situés dans le processeur et constituent donc une mémoire locale au processeur. Lorsqu’on programme en assembleur, on accède directement aux registres du processeur (certains registres nécessaires au fonctionnement ne sont pas accessibles au programmeur). Un registre de m bits est simplement constitué de m bascules. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Un registre 3 bits : Bus de données D D Signal d’écriture D IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.3.2 La mémoire Un mot de m bits est mémorisé dans un ensemble de m bascules. Une mémoire de n mots de m bits est réalisée à l’aide de nm bascules. Étant donné une adresse, un décodeur sélectionne un mot dans la mémoire, c’est-à-dire les bascules constituant les bits du mot à accéder. Un signal d’écriture indique si le contenu du mot-mémoire est modifié (opération d’écriture en mémoire) ou consulté (opération de lecture). IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Mémoire de 4 mots de 3 bits : Bus de données D Bus d’adresses Signal d’écriture IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Bus de données Signal d’écriture D Bus d’adresses IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Remarque : point de vue du programmeur La fonction mémoire recouvre la notion de « variable » et d’« affectation » en programmation. Une variable simple (de type entier ou caractère) est un mot-mémoire et est stockée dans un registre ou contenu dans une mémoire. L’adresse de ce mot correspond au nom donné à la variable dans le programme. L’une des tâches du compilateur consiste donc a associer à chaque variable une adresse en mémoire, ou un registre. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4 Compteurs 4.4.1 Objet Un compteur est un circuit logique qui cycle parmi tous ses états possibles, toujours de la même manière. Pour tout état, il n’existe qu’une seule transition qui l’atteint et une seule qui le quitte. Le graphe de transition est donc un simple cycle. Les états du circuit sont matérialisés par des bascules, et les transitions sont ponctuées par les fronts d’une horloge. Exemple simple : le feu tricolore 3 états : vert allumé, orange allumé, rouge allumé ; cycle perpétuel entre ces 3 états, toujours dans le même ordre. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.2 Conception d’un compteur Nombre d’états du compteur  nombre de bascules nécessaires. Pour un circuit à n états (de 0 à n-1), il faut au minimum log2(n-1) bascules ( x dénote le plus petit entier supérieur ou égal à x). Remarque : c’est aussi le nombre de bits nécessaires au codage du nombre n-1 en binaire. Lorsque le nombre d’états d’un compteur n’est pas une puissance de 2, certains états du circuit ne seront pas utilisés. Exemple : compteur à 5 états  nombre de bascules ? 3 (8 états codables donc 3 états inutilisés) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.2.1 Compteur à 2n états Réalisons un compteur de 0 à 7 : il y a 8 états donc 3 bascules sont nécessaires (D0, D1 et D2). Table de transitions : 1 7 6 5 4 3 2 D0 D1 D2 Etat t+1 t IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Pour , on a le tableau de Karnaugh : 1 10 11 01 00 D2\D1D0 Pour , on a le tableau de Karnaugh : 1 10 11 01 00 D2\D1D0 Pour , on a le tableau de Karnaugh : 1 10 11 01 00 D2\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs D’où le schéma du compteur de 0 à 7 : 1 1 1 D2 D1 D0 1 1 1 1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.2.2 Compteur à un nombre quelconque d’états Réalisons un compteur de 0 à 9 : il y a 10 états donc 4 bascules sont nécessaires (D0, D1, D2 et D3). 4 bascules permettent de coder 16 états, donc 6 seront inutilisées. X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 D0 D1 D2 D3 Etat t+1 t IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Table de transitions : X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 D0 D1 D2 D3 Etat t+1 t Tableau de Karnaugh de D3t+1 : 1 01 X 11 10 00 D3D2\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Table de transitions : X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 D0 D1 D2 D3 Etat t+1 t Tableau de Karnaugh de D2t+1 : 1 01 X 11 10 00 D3D2\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Table de transitions : X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 D0 D1 D2 D3 Etat t+1 t Tableau de Karnaugh de D1t+1: 1 01 X 11 10 00 D3D2\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Table de transitions : X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 D0 D1 D2 D3 Etat t+1 t Tableau de Karnaugh de D0t+1: 1 01 X 11 10 00 D3D2\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Problème : Les 4 équations ne suffisent pas. Étant donné que tous les états ne sont pas utilisés, il faut bien initialiser le circuit pour ne pas démarrer dans un état non utilisé. 2 solutions : Modifier la table de transition pour faire évoluer les états non utilisés vers l’état 0. C’est-à-dire changer tous les X en 0 dans la table. Il faut alors refaire les tableaux de Karnaugh et les équations. A faire en exercice ... Ajouter un signal d’initialisation pour démarrer à l’état 0 : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Schéma d’un compteur de 0 à 9 avec initialisation : D2 D1 D0 init D3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.3 Feux tricolores 4.4.3.1 Feux tricolores français Un feu tricolore est un compteur. Le graphe de transitions est le suivant : vert orange 1 rouge 2 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Le graphe a 3 états numérotés de 0 à 2. Le nombre 2 se code 10 en binaire (2 bits) donc il y aura 2 bascules dans ce circuit. La table de transitions s’obtient directement à partir du graphe de transitions : vert orange 1 rouge 2 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs À partir des équations issues de la table de transitions, on dessine le circuit : D1 D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Comment allumer les différents feux à partir des valeurs de D0 et de D1 ? On utilise un décodeur : s0 s3 s2 s1 e0 e1 e2 s4 s7 s6 s5 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.3.2 Feux tricolores scandinaves ou du royaume-uni Cycle : vert, orange, rouge, orange, vert, ... Contrairement aux feux type français, un état ne correspond pas à une couleur allumée. C’est un compteur à 4 états (0 à 3), donc il faut bascules pour le circuit. 2 Graphe de transition : vert orange 1 rouge 2 rouge orange 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs vert orange 1 rouge 2 rouge orange 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.4.4 Point de vue du programmeur Un compteur peut déclencher des actions les unes après les autres. Son rôle est donc de déclencher la réalisation d’une séquence d’instructions d’un programme. Un compteur est capable de réaliser un cycle d’activités un nombre fixé de fois. C’est un circuit capable de contrôler une boucle pour ; l’indice de la boucle est alors la valeur courante du compteur. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5 Automates 4.5.1 Un exemple pour commencer Un feux tricolore peut avoir 2 types de fonctionnement différents : de jour : vert, orange, rouge, vert, ... ; de nuit : orange, éteint, orange, éteint, ... Dans ce cas il y a 2 cycles de fonctionnements différents : impossible à réaliser avec un compteur. Automates IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.2 Introduction Un automate est un circuit logique pouvant être dans un certain nombre d’états. Plusieurs transitions peuvent entrer ou sortir d’un même état. Étant dans un certain état, la transition à effectuer est sélectionnée en fonction de signaux de contrôle. En fait, du point de vue du graphe de transitions, il est composé de plusieurs cycles entrelacés. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.3 Méthodologie de conception d’un automate 1. Déterminer les cycles d’actions de l’automate et les numéroter (0 à m). 2. En déduire le nombre de signaux de contrôle (nb. bits pour coder m bin.) 3. Déterminer les états de l’automate. 4. Déterminer le nombre de bascules nécessaires à la réalisation de l’automate : pour n états c’est le nombre de bits pour coder n-1 en binaire. 5. Tracer le graphe de transitions de l’automate. 6. En déduire la table de transitions. 7. Pour chacune des bascules, déterminer l’équation logique de son entrée à l’aide d’un tableau de Karnaugh. 8. Faire le schéma logique de l’automate. Cette méthode n’est pas adaptée dans le cas où le nombre de cycles est infini. Dans ce cas, on essaie de concevoir directement le graphe de transitions. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs L’objectif d’un automate est de séquencer des actions. Ces actions peuvent être déclenchées de 2 manières différentes : 1. Soit une action (ou des actions) est associée à un état. C’est-à-dire que tant que l’automate est dans cet état, l’action est réalisée. 2. Soit une action (ou des actions) est associée à une transition (l’automate arrive ou quitte un état). Une transition entraîne un front (montant ou descendant selon que l’on atteint ou que l’on quitte un état) qui déclenche une action. Ce mode de fonctionnement est utilisé lorsque l’on veut seulement déclencher une action, c’est-à-dire émettre une impulsion. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.4 Feux tricolores (suite) Un feux tricolore peut avoir 2 types de fonctionnement différents : de jour : vert, orange, rouge, vert, ... ; de nuit : orange, éteint, orange, éteint, ... 2 cycles différents donc 1 bit pour les différencier. On le note c et on choisit c=0 de jour et c=1 de nuit. On a 4 états possibles : état 0 : vert allumé (le reste éteint) ; état 1 : orange allumé (le reste éteint) ; état 2 : rouge allumé (le reste éteint) ; état 3 : tout éteint. 4 états donc 2 bascules nécessaires. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs vert orange 1 rouge 2 éteint 3 1 Initialisation du cycle de jour Initialisation du cycle de nuit IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1 10 11 01 00 c\D1D0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.5 Distributeur de café On veut réaliser un automate contrôlant un distributeur de café. On suppose qu’il distribue du café, avec ou sans sucre, avec ou sans lait. Il y a donc 4 fonctionnement possibles : 1. fournir du café noir ; 2. fournir du café sucré ; 3. fournir du café au lait ; 4. fournir du café au lait sucré. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Ces 4 cas correspondent à 4 cycles différents du distributeur. Les cycles sont numérotés de 0 à 3 (2 bits de codage) : 00 : gobelet, café lyophilisé, eau ; 01 : gobelet, café lyophilisé, sucre, mélangeur, eau ; 10 : gobelet, café lyophilisé, lait lyophilisé, eau ; 11 : gobelet, café lyophilisé, sucre, mélangeur, lait lyophilisé, eau. On définit les états (certaines actions peuvent être regroupées) : état 0 : repos (attente d’une commande de boisson) état 1 : commande de boisson déclenchée état 2 : donne un gobelet état 3 : donne du café lyophilisé état 4 : donne du sucre et un mélangeur état 5 : donne du lait lyophilisé état 6 : donne de l’eau Il y a 7 états (0 à 6) donc 3 bascules seront nécessaires. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Graphe de transitions : 1 2 3 4 5 6 gobelet café lyophilisé sucre et mélangeur lait eau 0,1,2,3 1,3 1 2 2,3 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Table de transitions : 1 2 3 4 5 6 gobelet café lyophilisé sucre et mélangeur lait eau 0,1,2,3 1 2 2,3 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs L’automate que l’on vient de réaliser est incomplet, que manque-t-il ? l'initialisation ! Faut-il initialiser à l'aide d'un signal init ou remplacer les X par des 0 dans la table de transitions et refaire les équations et le circuit ? Il est impératif d'utiliser un signal init parce que : le signal init permet de toujours démarrer à l'état 0 (état de repos) ; remplacer les X par des 0 permet seulement de revenir à l'état 0 lorsqu'on démarre dans un état non géré par l'automate. Mais il est possible de démarrer dans n'importe quel état valide de l'automate ! Exemple lorsque les X sont remplacées par des 0 dans les tables : feux tricolores : le feux peut démarrer au rouge, au vert ou à l'orange, ça ne pose aucun problème ; distributeur de café : il peut démarrer à l'état 3, c'est-à-dire donner du café etc. ..., alors que l'on vient seulement de brancher le distributeur ! IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs init ( ) ( ) ( ) c1 c0 D2 D1 D0 D2 D1 D0 D0 D1 D2 c0 c1 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs L’automate que l’on vient de réaliser contrôle les activités du distributeur. Mais il est intéressant de regarder l’interfaçage avec : le circuit donneur d’ordres ; le circuit servant les boissons. La commande des boissons se fait au travers d’un clavier à 4 touches, une pour chaque boisson : c : café ; cs : café sucré ; cl : café au lait ; cls : café au lait sucré. La distribution se fera grâce à des organes électro-mécaniques fournissant les différents éléments nécessaires (gobelet, ...). IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Interfaçage de l’automate du distributeur de café : ? encodeur décodeur c1 c0 c cs cl cls D2 D1 D0 gobelet café sucre et mélang. lait eau ? Remarques : Le clavier n’émet que des impulsions, il faut donc mémoriser c0 et c1 une fois générés : une impulsion quelconque déclenche le passage à l’état 1 et en même temps l’écriture de 2 bascules mémorisant c0 et c1. Le séquencement des opérations de distribution doit être temporisé, puis arrêté au retour à l’état de repos (0) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.6 Registre à décalage En combinant le circuit à décalage de la section 3.4.5 et un registre, on obtient un élément couramment rencontré, un registre à décalage. C’est un registre dans lequel on peut écrire une donnée, la lire, et la décaler directement dans le registre. D c0 c1 w e3 e2 e1 e0 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs w e3 e2 e1 e0 À chaque entrée de donnée des bascules est envoyé un fil du bus de données et les sorties des 2 bascules l’entourant. En fonction d’un signal de commande (c1c0), un multiplexeur sélectionne l’une de ces trois données pour l’écrire dans la bascule : IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.7 Sérialiseur / désérialiseur de données Lorsque l’on doit transmettre une donnée, il est courant d’utiliser un seul fil et d’envoyer les bits de donnée à la queue-leu-leu : c’est le principe de la liaison série. De même on voudrait pouvoir recevoir plusieurs bits les uns après les autres sur le même fil et reconstituer une donnée de plusieurs bits. Comment faire ? On utilise un registre à décalage. Émission : la donnée est présente dans le registre à décalage et le fil de transmission est la sortie de la dernière bascule. Il suffit alors, le registre étant en mode lecture, d’effectuer à chaque impulsion d’horloge un décalage à droite. IUT Informatique Calais Architecture des ordinateurs

La sortie du registre est également connectée à sa propre entrée registre à décalage 4 bits 0 1 1 0 x x x x 0 0 1 1 0 x x x 0 0 0 1 1 0 x x 0 0 0 0 1 1 0 x 0 0 0 0 0 1 1 0 Réception ? Décalages à gauche Comment ne pas perdre la donnée après émission ? Associé à un automate dirigeant un compteur et 2 registres, on peut réaliser un registre à décalage d’un nombre quelconque de positions (utile pour multiplier ou diviser par 2n) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.8 Multiplicateur La multiplication de 2 nombres binaires non signés se résume à des additions et à des décalages : En base 10 : 1 1 x 1 3 3 3 1 4 3 En binaire non signé : 1 0 1 1 multiplicande x 1 1 0 1 multiplicateur 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 produit IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs En binaire non signé : 1 0 1 1 multiplicande x 1 1 0 1 multiplicateur 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 produit Cette façon de procéder consiste à examiner les bits successifs du multiplicateur, en commençant par le bit de poids faible. Si ce bit est à 1, on recopie le multiplicande. Si ce bit est à 0, on inscrit des 0. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs En binaire non signé : 1 0 1 1 multiplicande x 1 1 0 1 multiplicateur 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 1 produit + Par rapport à la ligne précédente, les nombres qui sont écrits sont décalés d’un rang vers la gauche. Lorsque tous les bits du multiplicateur ont été examinés, on les additionne pour obtenir le produit. Les additionneurs binaires ne traitent que 2 nombres à la fois, donc au lieu d’additionner toutes les lignes en une fois, on les additionne 2 à 2 et on inscrit les sommes intermédiaires dans un registre : l’accumulateur. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 1 0 1 1 multiplicande x 1 1 0 1 multiplicateur 1 0 1 1 bit du multiplicateur à 1 ; additionner le multiplicande à l’accumulateur et décaler le multiplicande à gauche 0 0 0 0 0 bit du multiplicateur à 0 ; décaler le multiplicande à gauche 1 0 1 1 0 0 bit du multiplicateur à 1 ; additionner le multiplicande 1 0 1 1 0 0 0 bit du multiplicateur à 1 ; additionner le multiplicande 1 0 0 0 1 1 1 1 produit accumulateur multiplicande 00000000 00001011 00010110 00101100 00110111 01011000 10001111 10110000 Pour faciliter le test des bits du multiplicateur, seul le bit de poids faible est testé et le registre est à chaque fois décalé à droite. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Graphe du séquenceur du circuit de multiplication : INIT : init. du séquenceur cpt : valeur courante du décompteur f : bit de poids faible de MT Signaux émis : init : init. du décompteur reset : RES à 0 wR : signal d’écriture dans RES wT : signal d’écriture dans MT wD : signal d’écriture dans MD dT : décalage droite MT dD : décalage gauche MD iC : signal décrémentation décompteur 1 2 3 init, reset, wT, wD f wR dT, dD, iC cpt non nul cpt = 0 INIT IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs décompteur de n à 0 init IC séquenceur INIT dD dT wR reset wT wD MT RES MD IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Multiplication de nombres signés (en complément à deux) : La conception est très simple : si les deux nombres sont négatif : on multiplie leurs compléments à deux si l’un des deux est négatif : on multiplie son complément à deux par l’autre nombre on calcul ensuite le complément à deux du résultat pour rétablir le signe. IUT Informatique Calais Architecture des ordinateurs

Schéma de principe : 1x1 1x1 multiplicateur de nombres positifs x/-x IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Remarques : La multiplication, contrairement à l’addition, nécessite de savoir si les nombres en entrée sont des nombres signés ou pas. En assembleur il y a donc deux instructions disponibles pour la multiplication : l’une signée, l’autre non signée. Comme vous l’avez remarqué, la multiplication est une opération bien plus complexe à réaliser qu’une addition. En fait, les premiers microprocesseurs ne disposaient pas d’instruction de multiplication ; elle devait être programmée en assembleur. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 4.5.9 Conclusion Pour terminer le chapitre sur la logique séquentielle : On a vu : bascule registre mémoire compteur automate : élément de base de la logique séquentielle : mémoire la plus interne au processeur : en fait il y en a de nombreux types (cache, vidéo ...) : pour la gestion de boucles de programmes : pour le séquencement des actions On a réalisé un circuit nécessitant tout ce qui a été vu : multiplication En fait, tout ce qui est nécessaire à la réalisation d’un processeur est maintenant connu. IUT Informatique Calais Architecture des ordinateurs

5 Architecture d'un processeur simple : la petite machine 5.1 Positionnement du problème Pour réaliser ce processeur, il faut définir : la nature des traitements qu'il sera capable d'effectuer la taille et/ou le format des opérandes la capacité de transfert de données avec l'extérieur Ces 3 points aboutissent à l'établissement du jeu d'instruction du processeur de la structure matérielle de la partie opérative de la structure matérielle de dialogue avec les circuits extérieurs IUT Informatique Calais Architecture des ordinateurs

Le processeur est constitué de deux ensembles : la partie opérative la partie contrôle (séquenceur) PROCESSEUR séquenceur unité de traitement unité de gestion de la mémoire RI Partie contrôle Partie opérative Structures d'échange (BUS) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.2 Jeu d'instruction 5.2.1 Modes d'adressage mnémonique traitement à effectuer, mais il faut préciser quel est le type des données (valeurs, adresses, registres ...) il faut préciser "quoi" (traitement) et "où" (mode d'adressage) exemple : transfert d'un mot mémoire (MOVE) 1. Charger le registre R1 avec la valeur 05 MOVE #05, R1 R1 05 2. Charger la case mémoire d'adresse (8000)16 avec le contenu de R2 MOVE R2, $8000 M[8000] (R2) 3. Additionner la valeur 05 au contenu de R1, le résultat est dans R1 ADD #05, R1 R1 (R1) + 05 instruction : ensemble de µcommandes dépendant du mode d'adressage IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs les traitements et les modes d'adressages sont liés à la structure matérielle du processeur (possibilités de l'UAL, nombre et taille des registres, ...) microprocesseurs 8 bits : destination généralement incluse dans le mnémonique (ex : ADDA #05) microprocesseurs modernes : nombreux modes d'adressage dont adressage registre : le registre adressé est précisé dans l'instruction ex : mise à zéro du registre R1, CLR1 R1 0 adressage immédiat : l'opérande est inclus dans l'instruction ex : addition de la valeur 34 avec R2 ADD #34, R2 R2 (R2) + 34 adressage direct : l'adresse de l'opérande est inclus dans l'instruction ex : transfert du contenu de la mémoire à l'adresse (87FF)16 dans R1 MOVE $87FF, R1 R1 (M[87FF]) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs adressage indirect : le contenu d'un registre ou d'un mot mémoire représente l'adresse de l'opérande ex 1 : MOVE R1, *R2 M[R2] (R1) ex 2 : MOVE *$7AF2, R1 R1 (M[M[7AF2]]) adressages composés : l'adresse effective de l'opérande est obtenue par un calcul, généralement de type base + déplacement, où la base est le contenu d'un registre 5.2.2 Jeu d'instruction de la petite machine Celui-ci est volontairement réduit dans un but de simplicité, il comprend un total de 19 instructions (seul le registre A est utilisable pour les calculs) 5 instructions de calcul ADD : addition du registre A avec un opérande SUB : soustraction de A avec un opérande AND : et bit à bit de A avec un opérande IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs OR : ou bit à bit de A avec un opérande EOR : ou exclusif bit à bit de A avec un opérande 4 instructions de transfert : LD : chargement de A avec un opérande ST : stockage du contenu de A en mémoire PUSHA : empilement du contenu de A POPA : dépilement de A 5 instructions de rupture de séquence : BRA : saut inconditionnel à une adresse donnée BSZ : saut si résultat nul BSC : saut si retenue BSV : saut si dépassement de capacité BSN : saut si résultat négatif IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5 instructions de haut niveau : CALL : branchement à un sous-programme RET : retour d'un sous-programme ENTER : gestion des paramètres et des variables locales LEAVE : libère les paramètres et les variables locales END : termine le programme Les instructions ont toutes un opérande au plus noté $n ($ pour hexa) Le processeur dispose de 4 modes d'adressage : mode implicite : pas d'opérande (ex : END) mode immédiat : symbole # devant l'opérande (ex : ADD #$05) mode direct : aucun symbole devant l'opérande (ex : ADD $05) mode basé indexé : noté [RX + $dd] (ex : ADD [RX + $05]) IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Les instructions, les opérandes et les adresses : 8 bits Les transferts processeur / mémoire : bus de 8 bits Remarque : une adresse de 8 bits ne code que 256 mots mémoire ! 7.2.3 Structure des instructions : codées sur 2 octets : le premier contient le code opération ET le mode d'adressage (destiné à RI) le second précise, selon le mode d'adressage, une valeur, une adresse (destinée à TA) ou un index (pour faire RX+...) adresses i-2 i i+2 i-1 i+1 i+3 code op. opérande une instruction 1 mot mémoire = 1 octet IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Les instructions sont classées en 4 groupes fonctionnels : instructions de calcul selon le mode : immédiat : ADD #$dd A A + dd direct : ADD $dd A A + M[dd] basé-indexé : ADD [RX+$dd] A A + M[(RX)+dd] instructions de transfert selon le mode : immédiat : LD #$dd A dd direct : LD $dd A M[dd] basé-indexé : LD [RX+$dd] A M[(RX)+dd] ST n'a pas de mode immédiat ! ST #$dd instructions de branchement (séquencement) selon le mode : immédiat : BRA #$dd CP dd direct : BRA $dd CP M[dd] basé-indexé : BRA [RX+$dd] CP M[(RX)+dd] les instructions de haut niveau et la gestion de la pile sont détaillées plus loin IUT Informatique Calais Architecture des ordinateurs

5.2.4 Codage des instructions Le premier octet d'une instruction peut être divisé en 2 champs : 7 6 5 4 3 2 1 0 champ opération INST<6:1> champ d'adressage INST<7+0> 7 6 5 4 3 2 1 0 instruction groupe IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 7 6 5 4 3 2 1 0 instruction groupe mode d’adressage Bits 7 et 0 : 00 mode immédiat 01 mode direct 10 mode basé indexé 11 mode implicite Bits 2 et 1 : 00 instruction de haut niveau 01 instruction de calcul 10 instruction de transfert 11 instruction de rupture de séquence IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Bits 6 à 3 : 0001 ADD 0010 SUB 0100 AND 1000 OR 0011 EOR 0001 LD 0010 ST 0100 PUSHA 1000 POPA 0001 BRA 0010 BSC 0100 BSZ 1000 BSV 0011 BSN 0001 CALL 0010 RET 0100 ENTER 1000 LEAVE 0011 END IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Exemple : ADD #$05 adressage immédiat : bits 7 et 0 : 00 instruction de calcul : bits 2 et 1 : 01 addition : bits 6 à 3 : 0001 7 6 5 4 3 2 1 0 instruction groupe mode d’adressage 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 Codage final : 0A 05 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Exemple : BRA [RX+$2A] adressage basé-indexé : bits 7 et 0 : 10 instruction de rupture de séquence : bits 2 et 1 : 11 saut inconditionnel : bits 6 à 3 : 0001 7 6 5 4 3 2 1 0 instruction groupe mode d’adressage 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 Codage final : 8E 2A IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs -- 99 END C1 LEAVE 20 ENTER 91 RET 88 09 08 CALL 9E 1F 1E BSN C6 47 46 BSV A6 27 26 BSZ 96 17 16 BSC 8E 0F 0E BRA C5 POPA A5 PUSHA 94 15 ST 8C 0D 0C LD 9A 1B 1A EOR C2 43 42 OR A2 23 22 AND 92 13 12 SUB 8A 0B 0A ADD Basé-indexé Direct Immédiat Implicite IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Présentation de la petite machine à l’aide du logiciel … 5.3 Programmation de la petite machine 5.3.1 Saisie et exécution d’un programme simple Additionner les nombres 21 et 13 et mettre le résultat à l’adresse $80. LD #$15 chargement de 21 dans A ADD #$0D additionner 13 au registre A ST $80 stocker A à l’adresse $80 END fin du programme Effectuer l’opération (17 + 08) OU (24 – 14) et stocker le résultat à l’adresse $80 … IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.2 Codage Les nombres sont codés en complément à 2 sur 8bits donc de -128 à 127 : $00=0, $01=1, …, $7F=127, $80=-128, $81=-127, …, $FE=-2, $FF=-1 0000 0000 0111 1111 1000 0000 1111 1111 5.3.3 Test si condition alors action 1 sinon action 2 fin si 10 : BS[C,N,V,Z] #$30 12…26 : action 2 28 : BRA #$46 30…44 : action 1 46 : … suite du programme Comparer les nombres 38 et 69 et mettre le plus grand à l’adresse $80 … IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.4 Boucle faire action tant que condition 10…2A: action 2C : BS[C,N,V,Z] #$10 2E : … suite du programme D'autre boucle peuvent être réalisée : tant que ... faire (exemple ci-dessous), pour i de x à y faire (TD-TP). Mettre 0 à l’adresse $80, 16 à l’adresse $81 et 3 à l’adresse $82. tant que M[$81] > 0 faire M[$80] = M[$80] + 1 M[$81] = M[$81] - M[$82] fin tant que IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.5 Notations à utiliser en DS Nombres en hexadécimal ($dd) et codés en complément à 2 Utilisation d’étiquettes au lieu d’adresses pour les sauts. Les étiquettes sont définies en début de ligne (finsi : , sizéro : , …) Des variables sont utilisées au lieu de leurs adresses (i=$81, ADD i, …) Variables : x = $81 (variable x lue et stockée à l’adresse $81) res = $80 (variable res lue et stockée à l’adresse $80) Programme : LD #$06 (# : mode immédiat donc registre A = 6) ADD #$12 (# : mode immédiat donc registre A + 18) ST x (x=6+18) LD #$18 (# : mode immédiat donc registre A = 24) SUB x (mode direct donc registre A = A – x) BSZ sizéro (saut à l’étiquette sizéro si le résultat est 0) LD #$01 ST res BRA finsi (saut inconditionnel à l’étiquette finsi) sizéro : LD #$FF finsi : END IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.6 Appel à un sous-programme Utilisation des instructions de haut niveau CALL, RET, ENTER et LEAVE CALL permet d'appeler un sous-programme (selon le mode) : immédiat : CALL #$dd appelle le sous-programme se trouvant à l'adresse dd direct : CALL $dd ... à l'adresse M[dd] basé-indexé : CALL [RX+$dd] ... à l'adresse M[(RX)+dd] RET permet de revenir au programme appelant lorsque le sous-programme est terminé : mode implicite : RET IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Exemple : 00 ... ... ... 2E CALL #$42 CP = 00+1+1=2 CP = CP+1+1= … CP = CP+1+1= 30 30 ... ... ... ... ... ... ... 40 ... 42 ADD #$23 CP = 42+1+1=44 CP = CP+1+1= 46 CP = CP+1+1= … 44 ... ... ... ... ... ... ... 5A RET 5C … CP = CP+1+1= 5C CP = 30 Problème : comment se rappeler que c’est à l’adresse 30 qu’il faut revenir ? IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Gestion de l’adresse de retour : utilisation d’une pile (pointée par SP) Lorsque l’instruction CALL est appelée, l’adresse de retour est empilée. CALL #$dd : M[SP] CP SP SP-1 CP dd empiler $30 saut à $42 À la fin du sous-programme, lorsque RET est appelé, l’adresse est récupérée sur la pile RET : SP SP+1 CP M[SP] dépiler $30 dans CP donc saut à $30 L’utilisation de la pile permet l’imbrication de plusieurs appels à des sous-programmes Visualisation des appels avec la petite machine … IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.7 Passage de paramètres et variables locales à un sous-programme Les paramètres sont passés aux sous-programmes en les mettant sur la pile De même les variables locales sont allouées aux sous-programmes en les mettant sur la pile L’accès aux paramètres et aux variables locales d’une fonction se fait impérativement en utilisant le mode basé-indexé ([RX+dd]) : RX indique l’endroit sur la pile correspondant au sous-programme en cours Les paramètres sont empilés avant l’appel au sous-programme à l’aide de l’instruction PUSHA et dépilés après l’appel à l’aide de l’instruction POPA Exemple : 00 LD #$42 02 PUSHA 04 LD #$A5 06 PUSHA 08 CALL #$16 0A ST $80 0C POPA 0E POPA variable res=$80 étiquette f à l’adresse $16 res:=f(66,165) IUT Informatique Calais Architecture des ordinateurs

Les variables locales sont allouées à l’aide de l’instruction ENTER : ENTER est la première instruction d’un sous-programme et permet de choisir le nombre de variables locales. Le registre RX est la base du mode basé-indexé : comme les variables locales et les paramètres sont sur la pile, RX doit contenir le sommet de la pile pour y accéder en mode basé-indexé mode implicite : ENTER #$dd M[SP] RX (dd indique le nombre de SP SP – 1 variables locales désirées) RX SP SP SP - dd empiler RX courant : RX=sommet de pile : réserver dd cases sur la pile Les variables locales sont libérées (enlevées de la pile) et l’ancien contenu de RX (avant l’appel) récupéré à l’aide de l’instruction LEAVE : mode implicite : LEAVE SP RX SP SP + 1 RX M[SP] récupérer ancien som. de pile dépiler RX pour récupérer son ancienne valeur IUT Informatique Calais Architecture des ordinateurs

RX (base du mode basé-indexé) État de la pile suite à un appel à un sous-programme ayant deux paramètres et deux variables locales : SP variable locale 2 variable locale 1 RX CP (adresse de retour) paramètre 2 paramètre 1 Pile Y X 00 0A A5 42 FA FB FC FD FE FF RX (base du mode basé-indexé) adresses croissantes RX + 3 IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Dans un sous-programmes les paramètres sont toujours accessibles aux adresses [RX+3] et suivantes : [RX+3] dernier paramètre empilé [RX+4] avant dernier paramètre empilé [RX+5] … Dans un sous-programmes les variables locales sont toujours accessibles aux adresses RX et précédentes : [RX+0] variable 1 [RX-1] variable 2 (attention [RX+FF] en C2) [RX-2] … Si le sous-programme est une fonction, on supposera que le résultat est stocké dans A avant de retourner au programme appelant Exemple : appel à un sous-programme exécutant la somme de 2 nombres puis leur différence et retournant le plus grand des deux résultats. Le résultat final sera stocké à l’adresse 80. IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.3.8 Récursivité Un sous-programme récursif est un sous-programme qui s'appelle lui-même. Exemple : une suite d'entiers naturels fonction suite (entier n) : entier début si (n=0) alors retourner (1) sinon retourner (suite(n-1) + 3) fin si fin IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Pour utiliser la récursivité avec la petite machine il suffit, à l'intérieur du sous-programme, de l'appeler lui-même en faisant un CALL sur sa propre adresse de début de sous-programme : 10 ... 12 ENTER ... (début du sous-programme) 14 ... ... ... 26 CALL #$12 (appel récursif) ... ... 3A LEAVE 3C RET (fin du sous-programme retour au programme appelant) Vérifiez toujours le cas d'arrêt de votre sous-programme récursif ATTENTION : sauvegardez toujours votre programme avant de l'exécuter car si la récursivité est trop longue ou ne s'arrête pas, la pile déborde et écrase toute le mémoire ! IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.4 Limites de la petite machine Elle ne dispose que d'un registre utilisateur : A toutes les opérations passent par ce registre de nombreuses opérations de transfert supplémentaires nécessaires Les opérations de l'UAL sont limitées pas de multiplication / division pas de gestion des nombres réels travail sur des données de 8 bits IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Mais la principale limite est le mode indirect qui n'est pas géré : Mode immédiat : ADD #$03 A A + 03 valeur 3 utilisée par l’instruction ... ... ... 07 ... ... ... 2C ... ... ... 00 01 02 03 04 05 06 07 08 09 0A mémoire Mode direct : ADD $03 A A + M[03] exemple : A A + 07 variable i (d’adresse 3) contenant la valeur 7 La variable se trouvant à l'adresse 03 contient une adresse : cette variable est un pointeur i Le mode direct permet de gérer des variables variable i (d’adresse 3) contenant l’adresse de la variable j (d’adresse 7) contenant la valeur 2C j Mode indirect : ADD *$03 A A + M[M[03]] exemple : A A + M[07] : A A + 2C IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs Utilité du mode indirect : permet d'effectuer des calculs sur des adresses mémoire, c'est à dire des pointeurs grâce au mode indirect il devient possible de gérer des tableaux, des listes chaînées … exemple : additionner les nombres d'un tableau de 10 entiers situés entre les adresses $81 et $8A (le résultat est stocké à l'adresse $8B) somme = 0 pour i de 1 à 10 faire somme = somme + tab[i] fin pour 00 LD #$00 12 LD *$78 02 ST $8B 14 ADD $8B 04 LD #$0A 16 ST $8B 06 ST $79 18 LD $79 08 ADD #$00 1A SUB #$01 0A BSZ #$20 1C ST $79 0C LD #$80 1E BRA #$0A 0E ADD $79 20 END 10 ST $78 3 variables : $8B = somme $79 = compteur (i) $78 = adresse de l'élément de tab IUT Informatique Calais Architecture des ordinateurs

Architecture des ordinateurs 5.5 Conclusion Ce chapitre vous a décrit le fonctionnement complet d'un processeur : organisation interne des circuits (registres, bus, UAL, ...) pilotage du processeur par le séquenceur (association de chaque instruction à un cycle de microcommandes) définition et utilisation des instructions dans différents programmes en langage machine (codes) et assembleur (mnémoniques) fonctionnement au niveau le plus proche du processeur des concepts de base de la programmation : test, boucle, sous-programme, passage de paramètres, variables locales, pile d'exécution, pointeurs IUT Informatique Calais Architecture des ordinateurs