La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture des Ordinateurs

Présentations similaires


Présentation au sujet: "Architecture des Ordinateurs"— Transcription de la présentation:

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

2 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

3 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

4 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

5 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 (offline ...) (offline ...) 1.2.1 Du manuel à la mécanique IUT Informatique Calais Architecture des ordinateurs

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 Architecture des ordinateurs
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

17 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

18 Architecture des ordinateurs
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

19 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

20 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 : = 34ns IUT Informatique Calais Architecture des ordinateurs

21 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

22 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

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

24 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) : ≤ ai ≤ 1 base 8 (octal) : ≤ ai ≤ 7 base 10 (décimal) : ≤ ai ≤ 9 base 16 (hexadécimal) : 3A5E8F16 0 ≤ ai ≤ F chiffres hexadécimaux : A B C D E F IUT Informatique Calais Architecture des ordinateurs

25 Pour trouver la valeur décimale d'un nombre en base B :
N10=anBn + an-1Bn-1 + … + a2B2 + a1B1 + a0 Exemples : = 1×23 + 0×22 + 1× = 1110 2478 = 2×82 + 4× = 16710 2DB16 = 2× × = 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 à représenter en octal (8 = 23) : = 2678 hexadécimal (16 = 24) : = B716 IUT Informatique Calais Architecture des ordinateurs

26 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 ( à ). 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

27 Architecture des ordinateurs
Exemples : -23 sur 8 bits ? étape 1 : étape 2 : étape 3 : -100 sur 8 bits ? étape 1 : étape 2 : étape 3 : 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

28 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

29 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 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 = 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

30 Architecture des ordinateurs
Par exemple en binaire : ,011 = = 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 * 2 = 0, ,5 * 2 = 1,0 0,125  0,001 28 2 1 1 IUT Informatique Calais Architecture des ordinateurs

31 Codage informatique des nombres réels selon la norme IEEE 754 :
Exemple 2 : 0,3 0,3 * 2 = 0, ,6 * 2 = 1, ,2 * 2 = 0, ,4 * 2 = 0, ,8 * 2 = 1,6 0,6 * 2 = 1, ,2 * 2 = 0, … 0,3  0, … 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

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

33 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

34 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

35 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

36 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

37 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

38 Architecture des ordinateurs
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

39 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

40 Architecture des ordinateurs
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

41 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

42 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

43 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

44 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) Entêtes de ligne et de colonnes codées dans l’ordre croissant du codage de Gray IUT Informatique Calais Architecture des ordinateurs

45 Architecture des ordinateurs
Nombres croissants sur 3 bits selon …. le codage binaire classique : on ajoute 1 à chaque fois 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) 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

46 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

47 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

48 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

49 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

50 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

51 Architecture des ordinateurs
IUT Informatique Calais Architecture des ordinateurs

52 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

53 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

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

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

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

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

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

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

60 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 : IUT Informatique Calais Architecture des ordinateurs

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

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

63 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

64 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

65 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

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

67 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

68 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

69 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 … … 15 … … 1111 0 1 2 … … -1 IUT Informatique Calais Architecture des ordinateurs

70 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

71 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

72 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

73 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

74 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

75 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

76 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

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

78 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

79 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

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

81 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

82 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

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

84 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

85 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

86 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

87 Architecture des ordinateurs
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

88 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

89 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

90 Architecture des ordinateurs
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

91 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

92 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

93 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

94 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

95 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

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

97 Architecture des ordinateurs
4.4.3 Feux tricolores 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

98 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

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

100 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

101 Architecture des ordinateurs
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

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

103 Architecture des ordinateurs
IUT Informatique Calais Architecture des ordinateurs

104 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

105 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

106 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

107 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

108 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

109 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

110 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

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

112 Architecture des ordinateurs
IUT Informatique Calais Architecture des ordinateurs

113 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

114 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

115 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

116 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

117 Architecture des ordinateurs
IUT Informatique Calais Architecture des ordinateurs

118 Architecture des ordinateurs
IUT Informatique Calais Architecture des ordinateurs

119 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

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

121 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

122 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

123 Architecture des ordinateurs
4.5.6 Registre à décalage En combinant le circuit à décalage de la section 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

124 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

125 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

126 La sortie du registre est également connectée à sa propre entrée
registre à décalage 4 bits x x x x x x x x x x 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

127 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é : multiplicande x multiplicateur produit IUT Informatique Calais Architecture des ordinateurs

128 Architecture des ordinateurs
En binaire non signé : multiplicande x multiplicateur 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

129 Architecture des ordinateurs
En binaire non signé : multiplicande x multiplicateur 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

130 Architecture des ordinateurs
multiplicande x multiplicateur bit du multiplicateur à 1 ; additionner le multiplicande à l’accumulateur et décaler le multiplicande à gauche bit du multiplicateur à 0 ; décaler le multiplicande à gauche bit du multiplicateur à 1 ; additionner le multiplicande bit du multiplicateur à 1 ; additionner le multiplicande produit accumulateur multiplicande 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

131 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

132 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

133 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

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

135 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

136 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

137 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

138 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

139 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

140 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, R R (M[87FF]) IUT Informatique Calais Architecture des ordinateurs

141 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

142 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

143 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

144 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

145 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

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

147 Architecture des ordinateurs
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

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

149 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 instruction groupe mode d’adressage Codage final : 0A 05 IUT Informatique Calais Architecture des ordinateurs

150 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 instruction groupe mode d’adressage Codage final : 8E 2A IUT Informatique Calais Architecture des ordinateurs

151 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

152 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 ( ) OU (24 – 14) et stocker le résultat à l’adresse $80 … IUT Informatique Calais Architecture des ordinateurs

153 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 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

154 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

155 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

156 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

157 Architecture des ordinateurs
Exemple : E CALL #$42 CP = =2 CP = CP+1+1= … CP = CP+1+1= 30 ADD #$23 CP = =44 CP = CP+1+1= 46 CP = CP+1+1= … A 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

158 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 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 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

159 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 #$ PUSHA LD #$A PUSHA CALL #$ A ST $ C POPA 0E POPA variable res=$80 étiquette f à l’adresse $16 res:=f(66,165) IUT Informatique Calais Architecture des ordinateurs

160 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 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

161 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

162 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

163 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

164 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 : ENTER ... (début du sous-programme) CALL #$12 (appel récursif) A 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

165 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

166 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 C A 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

167 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 *$ 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

168 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


Télécharger ppt "Architecture des Ordinateurs"

Présentations similaires


Annonces Google