BTS INFORMATIQUE DE GESTION COURS D’ARCHITECTURE 2è ANNEE BTS IG2 -Cours d’Architecture Page 1 sur 55 Chapitre 1 La Numération 3 Chapitre 2 Le Codage 5 Chapitre 3 Le codage des nombres flottants 8 Chapitre 4 Algèbre de BOOLE 10 Chapitre 5 La Logique Combinatoire 15 Chapitre 6 La Logique Programmée 20 Chapitre 7 Les Mémoires 24 Chapitre 8 La Gestion des E/S 31 Chapitre 9 La Transmission des données 36 Chapitre 10 Les puces RISC 47 Chapitre 11 Les ordinateurs multiprocesseurs 49 Chapitre 12 Le Microprocesseur 52 BTS IG2 -Cours d’Architecture Page 2 sur 55 Chapitre 1 - La Numération 1 Les systèmes de numération La numération est la façon d'énoncer ou d'écrire des nombres (Numérations arabe et romaine). C'est aussi un système qui organise la suite des nombres en séries hiérarchisées. Il existe une multitude de systèmes de numération (appelé aussi base), en fait, autant qu'il y a de nombres. Nous allons nous intéresser à quatre d'entre eux, ceux utilisés par les logiciels. A Le système décimal C'est le système le plus utilisé et j'espère qu'il n'a plus de secrets pour vous !!! Il va nous servir d'exemple pour expliquer les 3 autres. Il est basé sur le nombre 10, 10 étant la base du système décimal. Les chiffres 0, 1, .....,8, 9, soit 10 caractères au total sont utilisés pour la représentation des nombres. Un nombre est subdivisé en puissances de 10, que l'on énonce en allant de la plus élevée à la plus faible. Exemple : On note en indice la base du système de numération dans lequel le nombre est représenté. Pour le nombre décimal 159, chaque chiffre à ce qu'on appel un rang. Le chiffre 1 a le rang des centaines, on dit que son "poids " est de cent. Pour le nombre 1995, le chiffre 1 est appelé le chiffre de poids fort MSB et le 5 le chiffre de poids faible LSB. B Le système binaire C'est le système que l'on devrait tout le temps utilisé, mais il est peu pratique dans la vie courante. Par contre en informatique il est le plus utilisé. En effet un ordinateur n'a que 2 possibilités OUI ou NON, VRAI ou FAUX (l'homme ayant la 3ème possibilité " je ne sais pas "). Ces 2 possibilités sont représentées par les chiffres 0 et 1, soit 2 caractères au total, utilisés pour la représentation des nombres. Le système binaire est donc basé sur le chiffre 2. Comme en décimal, un nombre est subdivisé en puissances de 2, que l'on énonce en allant de la plus élevée à la plus faible. Exemple : En base 2, on ne parle plus de chiffres mais de bits (en anglais Binary Digit), et on dit bit de poids le plus fort (MSB Most Significant Bit) et bit de poids le plus faible (LSB Less Significant Bit) Le comptage en binaire ne diffère pas, sur le principe, du comptage en décimal. Lorsque la capacité numérique d'une position est dépassée, on obtient une retenue se reportant sur la position suivante ; ceci arrive lorsque l'on dépasse le chiffre 1 dans une position du système binaire et le chiffre 9 dans une position du système décimal. C Le système octal C'est un système qui découle du système binaire. Il est constitué de 8 caractères, 0, 1, à 7. Il est surtout utilisé dans les systèmes d'exploitations tels que Unix pour les droits sur les fichers, répertoires etc... (voir cours SE). D Le système hexadécimal On a vu lors de l'étude du système binaire que les nombres devenaient vite très longs. Ce système binaire est surtout utilisé en électronique, automatique, mécanique, les informaticiens utilisent plus facilement le système hexadécimal. Les chiffres 0, 1, .....,8, 9, A, B, C, D, E et F soit 16 caractères au total sont utilisés pour la représentation des nombres. A 10, B 11, C 12, D 13, E 14 et F 15 Un nombre est subdivisé en puissances de 16, que l'on énonce en allant de la plus élevée à la plus faible. BTS IG2 -Cours d’Architecture Page 3 sur 55 Exemple : La base 16 est surtout utilisée dans les plans mémoire. 2. La conversion Cela consiste à passer d'une base à une autre. Base 10 Base 2 : Il est intéressant de savoir passer d'une base 2 à une base 10 et vice versa. Il existe différentes méthodes, la plus simple est d'utiliser tout bêtement votre chère calculatrice. Base 16 Base 2 : Pour ce qui est de la conversion de base 2 en base 16 et vice versa, il suffit : de 2 vers 16, de regrouper les bits 4 par 4 (en commençant par les LSB !) et de convertir. exemple : 01 1100 1001 0011(2) 1C93(h) de 16 vers 2, d'éclater les chiffres et de former des paquets de 4 bits et de convertir. exemple : 1B34D(h) 0001 1011 0011 0100 1101(2) Voilà l'avantage de la base 16 sur la base 10 en informatique. 3. Les nombres négatifs (signés) Dans une case mémoire, on ne peut entrer que 1 ou 0, c'est la seule chose que comprend un ordinateur. Pour représenter les nombres négatifs, il a fallu trouver une solution. La solution la plus immédiate consiste à réserver un digit binaire (bit) pour le signe, les autres bits représentant la valeur absolue du nombre. La convention qui prévaut consiste à mettre le MSB à 0 pour représenter un nombre positif et à 1 pour un nombre négatif. On parle de données ou nombres signés quand on utilise cette convention. Exemple : sur 8 bits en nombres non signés on va de 0 à 255(10) alors qu'en nombres signés on va de -128 1000 000 à +127 1111 1111 Nous allons voir comment obtenir ces conversions et leurs explications. Le complément à 1 (restreint) : Le complément restreint d'un nombre binaire s'obtient par simple inversion des valeurs des bits constituant ce nombre. Ainsi en considérant le nombre signé 10010 représentant le nombre -2(10) il aura pour complément restreint 01101 soit 13 (10) ce qui ne représente pas grand chose. Le complément à 2 (vrai) : Le complément vrai d'un nombre binaire s'obtient, en inversant les valeurs des bits formant le nombre et en rajoutant 1. exemple : 0110 devient 1010 et 0000 devient bien 0000 (essayez). Admettons que nous ayons des nombres sur 4 bits. 0100 représente et son complément à 2 : soit 4 , 1100 représente soit -4. Le codage sur 8 bits ne permet plus d'obtenir des nombres compris entre 0 et 255 mais entre -128 et +127. 4. Les opérations arithmétiques en système binaire : L'addition : Il suffit de savoir additionner et de se rappeler que 1+1, ne fait pas 2 mais 10 (2) ! La soustraction en complément à 2 : Pour faire des soustractions en binaire, il faut convertir le nombre à soustraire en complément à 2 et faire une addition. exemple sur 8 bits: 21 - 63 = -42 63 00111111 donc -63 11000000+1=11000001 donc 21 - 63 0001 0101 + 1100 0001 = 1101 0110 (-128+64+16+4+2) = -42 La multiplication : aucune difficulté, ce ne sont que des additions voir le TD La division : aucune difficulté, ce ne sont que des soustractions voir le TD Les nouveaux multiples : Dans le système décimal, on parle de kilo, méga...,ces multiples existent aussi en bases 2 et 16 mais non pas les mêmes valeurs 1 kilo 210 = 1 024 unités 1 méga 220 = 1024 * 1024 = 1 048 576 unités 1 giga 230 = 1024 * 1024 * 1024 = 1 073 741 824 unités 1 téra 240 = 1024 * 1024 * 1024 * 1024 = 1 099 511 627 776 unités BTS IG2 -Cours d’Architecture Page 4 sur 55 Chapitre 2 - Le Codage 1. La représentation des nombres : A Le code Gray ou code binaire réfléchi Pour l'instant on a vu le code binaire naturel. Le code gray est surtout utilisé pour la visualisation d'informations, ou pour la conversion de grandeurs analogiques (par exemple la position angulaire d'un arbre en rotation). exemple : on veut repérer la position d'une pièce mobile en utilisant des capteurs de réflexion. Il y a un risque d'erreur dans le code binaire naturel. les marques sombres correspondent à une faible lumière réfléchie ou à un 1 logique. Lors des transissions 1 à 2,3 à 4,4 à 5....il y a un risque de voir apparaître à la sortie du dispositif, des combinaisons fausses. Par exemple, pour passer de la position 1 à la position 2, on peut obtenir les combinaisons parasites 0 ou 3. 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 On est donc conduit à utiliser un code différent où seul un bit change quand on passe d'une position à une autre, c'est le code Gray ou code binaire réfléchi. Ce code à la particularité de n'avoir qu'un bit qui change à la fois. Il est utilisé dans les roues codeuses 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B Le code BCD Abréviation de Binary Coded Decimal en anglais et DCB Décimal Codé Binaire. Ce code cherche à concilier les avantages du système décimal et du code binaire. Il est surtout utilisé pour l'affichage de données décimales (calculatrices). A chaque chiffre du système décimal, on fait correspondre un mot binaire de quatre bits. Pour coder un nombre décimal en BCD, on va coder séparément chaque chiffre du nombre de base dix en Binaire. Exemple : 1985 Û 0001 1001 1000 0101 (BCD) Attention : - le nombre codé en BCD ne correspond pas au nombre décimal converti en binaire naturel. - le codage décimal BCD est simple, mais il impossible de faire des opérations mathématiques avec ! 2. La représentation des caractères Le code EBCDIC : Extended Binary Coded Decimal Interchange, ce code est utilisé principalement par IBM. Il peut être parfois assimilé à un code 9 bits quand il est fait usage d'une clé d'imparité, (bit supplémentaire destiné à contrôler la validité de l'octet associé). Le code ANSI : Certains logiciels utilisent la norme ANSI (American National Standard Institute) qui reprend en grande partie le code ASCII. Ce code propose des extensions BTS IG2 -Cours d’Architecture Page 5 sur 55 différentes selon le " code de page ". Le code de page 850 est un jeu de caractères " multilingue " alors que le code de page 864 définit le jeu de caractères arabes, le code de page 437 définit le jeu de caractères français... La table des codes ASCII Remarque : La table des codes ASCII ci-dessus, affiche les caractères imprimables et non les codes de contrôle. En effet les caractères dont les codes sont 10, 13 et 27 en décimal, représentent respectivement Line Feed (Aller à la ligne), Carriage Return (Retour Chariot) et Scape (Escape), le tableau ci-dessous en donne quelques exemples. code 00 01 02 03 04 carac NULL SOH STX ETX EOT code 15 16 17 18 19 20 carac SI DLE DC1 DC2 DC3 DC4 05 06 07 08 09 10 11 12 13 BELL BS HT LF VT NP CR SO 21 22 23 24 25 26 27 28 NAK SYN ETB CAN ENQ ACK EM SUB ESC 14 29 FS GS Les nouveaux codes : Avec l’augmentation croissante du nombre d’utilisateurs de l’informatique et surtout la quantité de caractères différents se trouvant dans les différentes langues, les organismes de normalisation ISO travaillent depuis le début des années 90, à la création d’un code universel , l’ « UNIversal CODE » UNICODE. Dans ces nouvelles tables de code, on y trouve les caractères latin (les nôtres), Tamoul (Inde), Cyrillique (Grèce et Russie…) ou les idéogrammes Japonais et Chinois. Ils existe donc deux nouveaux codes : ISO/IEC 10646 : sur 32 bits donc 4294967296 caractères différents possibles. UNICODE 1.1 : sur 16 bits et contenant 65536 caractères différents possibles. C’est ce derneir qui est actuellement utilisé dans les différents SE modernes. 3. Les codes détecteurs d'erreurs A l'intérieur de l'ordinateur les informations sont constamment " véhiculées ". Il est donc nécessaire de s'assurer de la transmission convenable de ces informations. Pour cela on utilise divers moyens allant du simple contrôle de parité jusqu'à l'élaboration de codes sophistiqués. A Le contrôle de la parité : Aux n bits que comporte le code à l'origine, on ajoute 1 bit supplémentaire. Ce bit est positionné de telle sorte que le nombre total de bits à 1 soit : - pair, code dit à parité pair ; - impair, code dit à parité impair. Cette méthode n'est efficace que si l'erreur est sur un nombre impair de bits. B Les codes autovérificateurs ou autocorrecteurs La méthode précédente étant limitée, on a été amené à concevoir des codes vérifiant et corrigeant des erreurs supérieures au simple bit. Ces techniques ont été développé par l'américain R W Hamming et l'on parle souvent de codes de Hamming. BTS IG2 -Cours d’Architecture Page 6 sur 55 Il existe en fait deux techniques d'élaboration de ces codes. VRC P A G LRC 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 parité croisée C Les codes de blocs Le principe consiste à construire une information en sectionnant l'information utile en blocs de longueur fixe et en y ajoutant un certain nombre de bits de contrôle (bits de redondance). Le mot de n bits reçu est un mot de code et le bloc de départ peut être reconstitué Le mot de n bits reçu n'est pas un mot de code et le récepteur peut alors : - Retrouver le bloc original (cas des codes autocorrecteurs) ; ou - Redemander le bloc original (cas des codes vérificateurs). L'efficacité d'un tel code sera d'autant meilleur que les mots qui le constituent seront distincts les uns des autres. On définit ainsi la distance de Hamming, correspondant au nombre de bits qui varient entre deux mots successifs de code. Plus elle est grande et plus le code est efficace (pour le code Gray la distance est de 1). Parmi ces codes on trouve :: - Le contrôle de parité verticale : VRC (Vertical Redundancy Checking) - Le contrôle de parité horizontale : LRC (Longitudinal Redundancy Checking) En utilisant ces codes de blocs et le contrôle de parité, il est possible d'assurer une vérification dite par parités croisées ou LRC/VRC qui, en augmentant la distance de hamming, assure une meilleure détection et correction des erreurs. exemple : on souhaite transmettre les caractères PAG en code ASCII. les valeurs hexadécimales des caractères transmis seraient donc dans cet exemple 50 41 47 56 et non pas simplement 50 41 47 comme le code ASCII le donnerait. D Les codes cycliques Appelés CRC (Cyclic Redundancy Codes) ou codes polynomiaux, sont très utilisés car très facile à mettre en oeuvre. Le principe consiste à considérer que toute information de n bits peut être transcrite sous une forme polynomiale : 10111 correspond à : A partir d'une information de départ I(x) de i bits on va construire une information redondante R(x) de r bits et l'émettre à la suite de I(x), de telle sorte que le polynôme résultant N(x) soit divisible par le polynôme générateur G(x). A la réception on divise le polynôme N(x) reçu par le même polynôme G(x) et le reste de cette division doit être nul si la transmission est correcte. Le choix d'un bon polynôme générateur est important si l'on veut détecter un maximum d'erreurs. Un des polynômes les plus utilisés, normalisé par le CCITT est : et permet de détecter - 100% des erreurs simples et doubles - 100% des erreurs sur un nombre impair de bits - 100% des paquets d'erreurs d'une longueur <= 16 bits - 99,99% des paquets d'erreurs d'une longueur 18 bits BTS IG2 -Cours d’Architecture Page 7 sur 55 Chapitre 3 - Le codage des nombres flottants 1. Introduction : Le but de ce cours est de vous montrer le codage, au sein de l'ordinateur, de n'importe quel nombre, entier ou non et signé : 3,144592 2,718 -1E218 etc.. Comme vous l'avez déjà vu, un microprocesseur n'est pas conçu pour travailler en base 10 mais en base 2. Rappel : pour passer d'un nombre entier de base 10 en base 2, il suffit de faire des divisions successives par 2 jusqu'à obtenir un reste égal à 1 ou 0. 2. Conversion : Par analogie, on en déduit que pour convertir une fraction décimale en base 2, il suffit de réaliser des multiplications successives par 2, jusqu'à obtenir une partie fractionnaire nulle. Exemple : soit à convertir 32,125 en base 2 : on sait que 32 est équivalent à 100000 et 0,125 * 2 = 0,25 partie entière = 0 et partie fractionnaire = 0,25 0,25 * 2 = 0,5 partie entière = 0 et partie fractionnaire = 0,5 0,5 * 2 = 1 partie entière = 1 et partie fractionnaire = 0 Ce qui donne : 32,125 = 32 + 0,125 100000 + 0, 001 = 100000,001 en base 2 Normalisation Le problème qui se pose maintenant est le stockage en mémoire ou dans un registre d'une quantité écrite en base 2. Dans un premier temps, tout nombre sera traduit sous forme d'un produit entre une fraction (une fraction est un nombre avec une partie entière nulle, c'est à dire inférieur à 1 en valeur absolue ou encore commençant par un point décimal) et une puissance de 2. Exemple : 32,125 s'écrit aussi 100000,001 ou encore 0,100000001*2 6 Pour mémoriser un nombre, il suffit donc de coder sa puissance de 2 et sa fraction. L'intérêt de cette méthode est que l'on sait toujours ou se trouve le point décimal et qu'il n'y a plus de partie entière, on obtient donc un mode de représentation figé. Il est clair qu'il faut aussi un bit pour mémoriser le signe (0 = + et 1 = ), un bit pour chaque chiffre de la fraction en base 2 et quelques chiffres pour représenter la puissance (positive ou négative) traduite en base 2. Remarque : si la fraction est trop grande, il n'est pas question de prendre en compte tous les chiffres. 3. Virgule flottante En clair, tout nombre sera désormais écrit sous la forme d'un produit entre une puissance de 2 et une fraction dont les chiffres sont les chiffres significatifs du nombre. La seule exception étant le 0 qui n'a pas vraiment de chiffres significatifs. Tout nombre non nul peut être mis sous ce format, appelé virgule flottante normalisée. Nous le représenterons par : SM*2e où S est le signe, M la mantisse et e l'exposant. La réalité pour stocker un nombre décimal dans une mémoire binaire, il suffit de le convertir en binaire, puis de mettre le résultat au format virgule flottante normalisée : SM*2e avec 1/2 M<1 Remarque : (1/2 M permet d'éliminer les 0 à droite de la virgule de façon à obtenir plus de chiffres significatifs, précision). Un nombre p de bits sera utilisé pour la fraction m. Le premier bit de celle-ci étant nécessairement 1. Un nombre p' de bits sera utilisé pour l'exposant e. Pour coder les exposants négatifs, il a fallu imposer un codage (autre que le complément à 2). Une constante, k, est ajoutée à l'exposant de telle manière que l'ensemble devienne positif. K+e s'appelle la caractéristique du nombre. BTS IG2 -Cours d’Architecture Page 8 sur 55 Nous allons voir les deux formats les plus utilisés dans un micro-ordinateur. Tous les deux comptent 32 bits avec p = 23 et p' =8 Norme IBM sur 32 bits 31 à 24 23 e+128 Signe 22 à 0 23 premiers chiffres de la Mantisse Norme IEEE sur 32 et 80 bits 31 30 à 23 22 à 0 Signe e +126 23 premiers chiffres de la Mantisse 79 78 à 64 63 à 0 Signe Exposant : e+16383 Mantisse Pour le 80387, cela permet d'obtenir des nombres allant de 3,4*10e-4932 à 1,2*10e+4932 (ce qui est supérieur au nombre d'atomes composants la terre !) BTS IG2 -Cours d’Architecture Page 9 sur 55 Chapitre 4 - Algèbre de BOOLE 1. Définition C'est une algèbre binaire mise en ?uvre par le mathématicien George BOOLE (1815-1864) pour étudier la logique. Les variables, dites booléennes, ne peuvent prendre que deux valeurs : VRAI ou FAUX ou bien encore 1 ou 0. On peut alors définir des opérateurs sur ces variables et consigner le résultat dans une TABLE DE VERITE. Ces opérateurs peuvent être réalisés par des circuits électroniques : ils sont alors appelés PORTES LOGIQUES. 2. Portes logiques de base Elles sont au nombre de 6 A Opération suiveuse : OUI (YES) Soit x une variable booléenne, on note x l'opération OUI. Table de Symbole vérité X S 0 0 1 1 B Opération inversion : NON (NOT) Soit x une variable booléenne, on note /x l'opération NON. Table de vérité X S 0 1 1 0 Symbole N.B.: Le petit trait est utilisé dans tous les schémas pour représenter le NON. C Opération produit : ET (AND) Table de vérité X Y S 0 0 0 0 1 0 1 0 0 1 1 1 Symbole D Opération somme : OU (OR) BTS IG2 -Cours d’Architecture Page 10 sur 55 Table de vérité X Y S 0 0 0 0 1 1 1 0 1 1 1 1 Symbole E Opération NON ET (NAND) Table de vérité X Y S 0 0 1 0 1 1 1 0 1 1 1 0 Symbole F Opération NON OU (NOR) Table de vérité X Y S 0 0 1 0 1 0 1 0 0 1 1 0 Symbole G Opération OU EXCLUSIF (XOR) Table de vérité Symbole X Y X Y 0 0 0 0 1 1 1 0 1 1 1 0 3. Quelques propriétés : On remarquera que la plupart des règles de l'algèbre classique s'appliquent ou que d'autres se comprennent d'une façon assez intuitive. Voici les principales lois de l'algèbre de BOOLE sur les opérateurs ET et OU : Loi Identité Opérateur ET Opérateur OU 1.A=A 0+A=A BTS IG2 -Cours d’Architecture Page 11 sur 55 Nullité Associativité 0.A=0 1+A=1 (A.B).C=A.(B.C) (A+B)+C=A+(B+C) A.B=B.A A+B=B+A Commutativité Distributivité A.(B+C)=A.B+A.C Idempotence A.A=A A+A=A Inversion A./A=0 A+/A=1 Absorption A.(A+B)=A A+A.B=A Loi de De Morgan /(A.B)=/A+/B /(A.B=/A./B 4. Fonction logique : Pour résoudre des problèmes de logique, on aura souvent besoin de plusieurs variables et on notera le résultat : f(A,B,C...) exemple : fonction majorité où f(A,B,C)=1 si on a une majorité de 1, 0 sinon. On peut alors décrire la fonction à l'aide des opérateurs de base. A B C f(A,B,C) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 c'est à dire, f(A,B,C)=1 si A=0 ET B=1 ET C=1 OU A=1 ET B=0 ET C=1 OU etc.. Remarques: - Cette façon d'écrire f(A,B,C) n'est pas unique. - On peut remarquer aussi que f(A,B,C) = A.B+A.C+B.C. Cette expression est plus simple et donc préférable lors de la réalisation des circuits électronique, car plus économique puisqu'elle utilise moins de portes logiques. Il existe des méthodes comme les tableaux de KARNAUGH pour simplifier les expressions. BTS IG2 -Cours d’Architecture Page 12 sur 55 5. Tableau de KARNAUGH : Présentation : Considérons une fonction f de n variables. La table de vérité de f possède alors 2 exposant n cases (2 exposant n combinaisons). Les valeurs que peut prendre f sont regroupées en un tableau de 2 exposant n cases en utilisant, pour le codage du tableau, le code GRAY. Ce codage du tableau permet de dégager certaines propriétés d'adjacence. Lorsque deux cases sont côte à côte, une seule variable change de valeur, les autres sont invariantes. On peut trouver aussi des groupements plus importants possédants de moins en moins de variables invariantes (cf. TD). Ces regroupements conduisent à une réduction de la table, donc à une simplification de l'expression de f. En regroupant par 2, 4 ou 8... cases, on élimine 1, 2 ou 3... variables. BC \ A 00 01 11 10 0 F(/A,/B,/C) F(/A,/B,C) F(/A,B,C) F(/A,B,/C) 1 F(A,/B,/C) F(A,/B,C) F(A,B,C) F(A,B,/C) Exemple : fonction majoritaire : Trois regroupements: 1 : C est variant, 2 : A est variant, 3 : B est variant. Equivalence entre circuits : /(X.X)=/X et /(X+X)=/X, ainsi les deux opérateurs NAND et NOR peuvent servir d'inverseur BTS IG2 -Cours d’Architecture Page 13 sur 55 On obtient des résultats similaires en utilisant des opérateurs Non OU (cf. TD). On dit que les opérateurs Non ET et Non OU sont "complets" puisqu'on peut avec un seul de ces opérateurs, utilisé autant de fois que nécessaire, réaliser n'importe quelle fonction booléenne. Ces deux portes étant faciles à fabriquer, elles sont à la base des circuits électroniques programmables tels les PALs et les GALs que nous ne verrons pas dans ce cours. BTS IG2 -Cours d’Architecture Page 14 sur 55 Chapitre 5 - La Logique Combinatoire 1. Définition : Un circuit combinatoire est un circuit dont les sorties ne dépendent que des entrées. On l'oppose au circuit séquentiel dont les sorties dépendent non seulement des entrées mais aussi de l'état précédent dans lequel étaient les sorties. La synthèse des circuits combinatoires sort du cadre de ce cours. On fera néanmoins une analyse en TD des circuits fondamentaux présentés ci-après. 2. Le comparateur C'est un circuit fort utile puisqu'il permet de comparer 2 mots binaires. La sortie vaut 1 si les 2 mots sont identiques, 0 sinon. schéma : Voici un exemple de comparateur sur les mots de 2 bits (A1, A0) et (B1, B0). 3. L'additionneur Avant de pouvoir faire des calculs complexes, le microprocesseur doit être capable de faire des additions. Pour cela, il nous faut être capable de construire le demi-additionneur, élément de base, pour additionner 2 bits. A Le demi-additionneur Intéressons-nous à la table de vérité de l'opération "somme" de 2 bits. X Y Somme Retenue 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 On s'aperçoit que la table de vérité de "somme" est celle de l'opérateur OU exclusif et que la retenue correspond à l'opérateur ET. BTS IG2 -Cours d’Architecture Page 15 sur 55 B L'additionneur complet Lors d'une addition sur plusieurs bits, il faut tenir compte d'une retenue éventuelle, résultant d'un calcul précédent. On décompose l'addition en 2 demi additions. On additionne d'abord X à Y, puis ce résultat à la retenue initiale. X + Y + R = (X + Y) + R Les sorties du premier additionneur ou du deuxième peuvent générer une retenue intermédiaire (RI1 et RI2). Voyons à partir de la table de vérité, comment obtenir la retenue finale (RF). X Y R RI1 S1 RI2 S2 SF RF 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1 on a en entrée on obtient on veut Comme on pouvait s'y attendre SF=S2. On s'aperçoit aussi que RF=RI1+RI2. Ces constatations permettent de construire le schéma suivant : On peut alors générer l'addition sur n bits. La retenue de l'addition sur le bit n° (i-1) venant sur l'addition du bit n° i. Soit l'addition sur deux bits de deux nombres notés (A1,A0) et (B1,B0), le résultat s'écrit : (S2,S1,S0) sur trois bits. 3. Le multiplexeur C’est un circuit qui permet de sélectionner une ligne d'entrée parmi 2 puissance n lignes et de la relier directement à la sortie : C'est un "aiguillage". Pour ceci, il faut être capable de désigner l'entrée. Ceci se fait grâce à une commande codée sur n bits. Schéma : Si on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 ligne d'entrée parmi 2²=4. BTS IG2 -Cours d’Architecture Page 16 sur 55 Réalisation : Applications : Réalisation d'une fonction : On veut implanter la fonction suivante : f = 1 si (b2,b1,b0) = 1, 3 ou 7 f = 0 sinon Conversion parallèle/série : Du côté parallèle les huit bits arrivent en même temps. On veut les ranger sur la ligne série à la queue leu leu. C'est ce qui arrive quand on veut transmettre des octets sur une ligne téléphonique qui ne possède qu'un seul fil de données. Il suffit alors de prendre un multiplexeur qui aurait en entrée les huit fils de la liaison parallèle et en sortie la liaison série. Un compteur capable de compter de 000 à 111 pourrait alors cadencer les données sur la liaison série. 4. Le démultiplexeur BTS IG2 -Cours d’Architecture Page 17 sur 55 C'est un circuit qui réalise la fonction inverse du précédent. Une entrée peut être reliée de façon unique à 2n sorties par une commande codée sur n bits. Schéma : Si on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 sortie parmi 2²=4. 5. Le décodeur C'est un circuit permettant de mettre à 1 une sortie parmi 2n, dont le numéro correspond au code binaire (sur n bits) présent à l'entrée. Les autres sorties sont à 0. Schéma : Réalisation : décodeur 3 vers 8. Application : L'une des plus typiques, est celle du décodage d'adresse. Supposons que l'on veuille une mémoire de 8 Ko adressable de 0000 à 1FFF. Supposons aussi que nous ayons à notre disposition seulement des boîtiers mémoire de 2 Ko. Comment organiser ces boîtiers de façon à ce que le microprocesseur ait l'impression de dialoguer avec un boîtier unique de 8 ko ? Solution: décomposons les adresses des boîtiers: BTS IG2 -Cours d’Architecture Page 18 sur 55 0000 h 0000 0000 0000 0000 0800 h 0000 1000 0000 0000 boîtier n°1: 07ffh 0000 0111 1111 1111 boîtier n°2: 0fffh 0000 1111 1111 1111 1000 h 0001 0000 0000 0000 1800 h 0001 1000 0000 0000 boîtier n°3: 17ffh 0001 0111 1111 1111 boîtier n°4: 1fffh 0001 1111 1111 1111 Les 2 bits permettent de sélectionner un boîtier selon l'adresse à l'aide d'un décodeur "2 vers 4". Dans la pratique, ces boîtiers possèdent une broche de sélection de boîtier appelée Chip Select (CS). 6. L'Unité Arithmétique et Logique (U.A.L.) Au cœur du microprocesseur, elle lui permet de réaliser des opérations sur des mots binaires. Dans sa plus simple expression, elle permet de faire les opérations suivantes: A ET B, A OU B, et A+B. BTS IG2 -Cours d’Architecture Page 19 sur 55 Chapitre 6 - La logique programmée 1. Structure d'un système à microprocesseur : Logiques câblée et programmée Objectif : Automatiser un processus Définition d'un processus : c'est une suite d'actions et de tests organisés dans le temps et aboutissant à une tâche. La logique câblée : On dispose de circuits intégrés tels que les opérateurs logiques, les opérateurs arithmétiques, les multiplexeurs et démultiplexeurs, les sélecteurs, les compteurs, les registres, etc... Travail du concepteur : Phase 1 : Etablir l'organigramme imposé par le processus (cahier des charges), Phase 2 : Organiser les circuits logiques de manière à réaliser le processus. Inconvénients : pas de méthode rigoureuse, et le système est figé. La logique programmée : on dispose d'un circuit intégré complexe : le microprocesseur (petit et processus). Ce µP est capable d'effectuer, les unes après les autres, toutes les fonctions citées en logique câblée. Conséquence : signaler au µP la fonction à réaliser (programmation). Méthode : on envoie au µP un mot binaire codé. Travail du concepteur : Phase 1 : Etablir l'organigramme imposé par le processus (cahier des charges), Phase 2 : Traduire l'organigramme en une suite d'instructions appelées programme, Phase 3 : Organiser le système à µP choix du µP et des circuits auxiliaires. Intérêts du système à µP : Pour un processus simple on se sert de la logique câblée, Pour un processus plus complexe, on se sert de la logique programmée. Souplesse : tout système quel qu'il soit, doit un jour ou l'autre être retouché, en raison des problèmes pas vus à la conception, de l'évolution du cahier des charges etc.. Facilité de mise au point : Logique câblée, pas de méthode rigoureuse Logique programmée, programmes de mise à niveau. Consommation plus faible Durée de l'étude : dépend de la complexité du processus et de la " puissance " du µP Description d'un système à µP : structure d'un système à µP, mais il faut savoir qu'elle peut évoluer en fonction du cahier des charges. BTS IG2 -Cours d’Architecture Page 20 sur 55 Pour gérer ce processus, le système à µP doit avoir les éléments suivants : La liste des instructions à effectuer, elles sont mises en mémoire, un élément capable d'effectuer ces instructions, le microprocesseur µP, des circuits spécialisés pour les Entrées/Sorties, les interfaces les liaisons électriques entre ces trois éléments, les bus et un élément cadençant le tout, l'horloge (quartz). D'où le synoptique d'un système à µP : Le système minimum : Le µP effectue les instructions par étape : 1ère étape : Chercher l'instruction en mémoire 2ème étape : Identifier le type d'instruction 3ème étape : Exécuter l'instruction 4ème étape : Stocker le résultat en mémoire. D'où la constitution interne du µP : Les étapes 1 et 4 sont effectuées sous le contrôle d'un organe interne du µP appelée : Unité de commande. Les étapes 2 et 3 sont effectuées sous le contrôle d'un organe interne du µP appelée : Unité arithmétique et Logique (U.A.L). Donc entre les mémoires et le µP, il y a circulation de deux types d'informations : Les instructions. Les données. Conséquence de ces deux types d'informations, il faut deux types de mémoires. Les mémoires de données dans lesquelles on va chercher les données et stocker les résultats, ce sont les mémoires à lecture et écriture. Elles sont appelées R.A.M. Random Acces Memory : Mémoire à accès aléatoire. Les mémoires de programmes dans lesquelles on va chercher les instructions à exécuter, ce sont les mémoires à lecture seule. Elles sont appelées R.O.M. Read Only Memory : Mémoire à lecture seule. BTS IG2 -Cours d’Architecture Page 21 sur 55 De plus il faut que le système à µP puisse dialoguer avec le " monde " extérieur. C'est le rôle des interfaces, il en existe deux types : Les interfaces parallèles : P.I.A ou P.I.O (interface adaptateur pour périphérique parallèle). Les interfaces séries : A.C.I.A (interface adaptateur pour périphérique asynchrone). Chaque élément, est commandé par le µP, est adressé par le µP, envoie ou reçoit des informations, des données ou des résultats du ou au µP, il existe donc trois types de bus. Bus d'adresses : ensemble de lignes unidirectionnelles qui véhiculent le code d'adresse du µP vers les mémoires et les interfaces. Bus de données : ensemble de lignes bidirectionnelles qui véhiculent les données entre le µP et les mémoires ou les interfaces. Bus de commandes : ensemble de lignes bidirectionnelles utilisées pour synchroniser les actions du µP et " isoler " les différents éléments du système à µP. D'où le système minimum : 2. Programmation d'un système à µP (Software). Nécessité d'un programme Le µP doit recevoir des instructions pour pouvoir " travailler ". La suite ordonnée de ces instructions à la résolution d'un problème s'appelle le programme Le répertoire d'instructions d'un µP définit les opérations individuelles que celui-ci peut effectuer et se nomme le jeu d'instructions Ces séquences sont dans un premier temps traduites par un organigramme. Généralités Organigramme : c'est la représentation par un schéma séquentiel d'un processus. Symboles : Traduction de l'organigramme en un programme : un organigramme est traduit en un programme écrit dans un langage appelé langage de programmation. L'objectif est d'éliminer les erreurs de syntaxe, en ne laissant au programmeur que la responsabilité des erreurs spécifiques à l'application. Le travail du programmeur est d'autant plus simple que le langage est facile à lire. A Langage assembleur il est plus proche du langage humain, chaque instruction est remplacée par un code mnémonique (aide mémoire). Un programme de conversion, l'assembleur traduit le programme obtenu en un programme directement compréhensible par le µP (langage machine). Chaque µP possède ses propres codes instruction. BTS IG2 -Cours d’Architecture Page 22 sur 55 B Langage évolué il est indépendant du type de µP utilisé et est très proche du langage humain. Des programmes de traduction (compilateurs et interpréteurs) traduisent les programmes écrits en langages évolués, en programmes utilisant le langage machine. exemples : Basic, Pascal, C et Cobol En règle générale, dans l'écriture d'un programme, on distingue : Le programme source écrit par le programmeur, le programme objet qui est la version traduite et directement exécutable par le µP ! Le programme source : chaque ligne est divisée en quatre parties appelées champs. Champ Label ou Etiquette : contient un code personnel suggestif permettant un repérage aisé de la position d'une instruction. Champ Code Opération : contient un code mnémonique de l'instruction à effectuer (op code). Champ Opérande : contient l'élément alphanumérique sur lequel porte l'instruction Champ Commentaire : contient les informations facilitant la compréhension de l'instruction et/ou du programme, mais n'ayant aucune incidence sur le programme objet généré par la suite. Exemple de programme source : Label Code Opération Opérande Commentaires MOV AX, @DATA Initialise le segment de données MOV DS, AX DEC AX AX=AX-1 JNE TEST AX=0? .CODE TEST etc. Le programme objet : chaque ligne est divisée en deux parties appelées champs. Champ Adresse : contient l'adresse mémoire du début de la ligne d'instruction, attribuée par l'assembleur à partir du programme source. Champ Code Objet : contient le code machine, exprimé en hexadécimal, de l'instruction après conversion par l'assembleur (Op Code) et Code opérande. Adresse Code Objet $8000 86 0F $8002 4A $8003 26 12 83 $8006 7E 02 $8008 3F BTS IG2 -Cours d’Architecture Page 23 sur 55 Chapitre 7 - Les Mémoires Les mémoires sont des structures qui permettent de stocker une information sous forme numérique ou analogique, puis de la restituer à la demande. Il existe une grande variété de mémoires, depuis la bascule R-S jusqu'aux mémoires de masse : disques durs et bandes magnétiques etc. Dans ce cours, nous allons nous intéresser aux mémoires intégrées à semi-conducteurs, capable de stocker et de restituer une information sous forme numérique ! Une mémoire est constituée de cases, dont chacune enregistre un bit (0 ou 1). Si ces cases sont directement adressables, on dit à accès aléatoire (disque), sinon on parle de mémoires sérielles (bande). Le diagramme ci-dessous donne un aperçu des différents types de mémoires au silicium. 1 Les Mémoires à Lecture seule Les informations sont permanentes et l'utilisateur ne peut que les lires. On trouve dans cette catégorie : R.O.M. : Read Only Memory (mémoire à lecture seule) appelée également mémoire morte (figée), elle est programmée une fois pour toutes par le fabricant. P.R.O.M. : Programmable Read Only Memory, mémoire programmable une fois par l'utilisateur E.P.R.O.M. : Programmable Read Only Memory (ou REPROM : Reprogrammable Read Only Memory) mémoire à lecture seule reprogrammable plusieurs fois par l'utilisateur après effacement sous un rayonnement ultra violet. E.A.R.O.M. : Electrically Alterable Read Only Memory (ou EEPROM : Electrically Erasable PROM) mémoire à lecture seule reprogrammable plusieurs fois par l'utilisateur mais effaçable électriquement Ces mémoires conservent les informations stockées même après coupure de l'alimentation. On trouve également dans cette catégorie, les réseaux logiques programmables qui permettent de réaliser des combinaisons logiques à partir de variables d'entrée : PAL, GAL, FPLA etc... 2 Les mémoires à Lecture-Ecriture Elles ne peuvent conserver l'information que temporairement, si elles sont alimentées en énergie électrique, dés la coupure de l'alimentation, les informations sont perdues ! R.A.M : Random Acces Memory (mémoire à accès aléatoire), elles sont aussi appelées mémoires vives. Selon la technologie de fabrication utilisée, on distingue 2 grandes familles : RAM Statique : l'information est maintenue tant que l'alimentation est présente. BTS IG2 -Cours d’Architecture Page 24 sur 55 RAM Dynamique : elle nécessite une opération supplémentaire de " rafraîchissement " pour maintenir l'information présente. M.B.M : Magnétique Buble Memory (mémoire à bulle magnétique), c'est une mémoire de masse non volatile qui utilise les propriétés des champs magnétiques (pratiquement plus utilisées). RAM gérées séquentiellement : F.I.F.O. :First In First Out (premier entré premier sorti), c'est une mémoire qui fonctionne en accès séquentiel, la première information entrée est aussi la première sortie. Elle est utilisée pour les piles. L.I.F.O. :Last In First Out (dernier entré premier sorti), la dernière information entrée est aussi la dernière sortie. Elle est utilisée dans les calculateurs (HP). Les types de mémoires DRAM : La mémoire FPM Fast Page Mode : c'est la plus ancienne (des plus récente..., donc en barette). Il est nécessaire de la rafraîchir très souvent, et son temps d’accès varie de 60 à 70 ns. La mémoire EDO (Extensed Data Out) ou EDO RAM : C'est une version plus récente et plus rapide. Cette mémoire fonctionne comme la FPM, mais les données sortent plus rapidement, car elle intègre une petite mémoire cache qui stocke l’adresse de la prochaine cellule à lire ou écrire sans attendre que la dglnée précédente soit lue. La mémoire BEDO Ram (Burst Extensed Data Out Ram) : cousine de l'EDO. La mémoire SDRAM (Synchronous DRAM): Avec ce type de mémoire, il y a synchronisation des signaux entrées/sorties avec l'horloge du système ce qui accélère les échanges. Son temps d'accès varie de 5 à 15 ns. La mémoire ECC (Error Correction Code) : Méeoire à code de correction d'erreur. Cette mémoire prend en charge la gestion des erreurs de bits en mémoire vive. Elle se présente sous forme de barettes Dimm et est utile seulement sur un serveur ou les systèmes qui nécessitent une grande fiabilité des données et des calculs (systèmes bancaires). La mémoire RamBus, elle fonctionne à des fréquences de 600 à 800 Mhz (proches de celles des processeurs), avec un débit de 1.2 Go/s (équivalent à un temps d'accès de 1 ns, qui est déjà la vitesse du cache interne du processeur). 3. Caractéristiques principales Elles sont au nombre de quatre. La Capacité : c'est le nombre de bits que la mémoire peut stocker, elle est toujours une puissance de deux. Exemples : 1Mbits, 16Mbits, les ram actuelles atteignent 128Mégabits et les ROM 2Mégabits L'Organisation : une mémoire est prévue pour travailler sur des informations de longueur définie. On parlera de matrice. Octets (Byte) : 8bits, Mots (Word) : 16bits, double mots (dubble word) : 32bits etc... La mémoire pourra être organisée en 8, 16, 32, 64 voir 128bits Exemples : 64k*1bit, 8k*8bits et 4k*16bits ont la même capacité. 16M*4bits, 8M*8bits et 64M*1bit ont aussi la même capacité. Le produit du nombre d'informations par la longueur de cette information donne la capacité de la mémoire. Les temps : D'écriture : c'est le temps qui s'écoule entre l'instant où la donnée et l'adresse sont présentées à la mémoire et le moment ou la donnée est effectivement stockée. De lecture : c'est le temps qui s'écoule entre l'instant où l'adresse est présentée à la mémoire et le moment ou la donnée est disponible en sortie d'accès : c'est généralement la moyenne des deux temps précédents. De cycle : si une opération de lecture est destructive, il faut réinscrire la donnée. Le temps de cycle est donc la somme du temps d'accès et du temps de réinscription. La consommation : elle est différente au repos (standby) et en fonctionnement, et dépend de la technologie. 4. Le décodage d'adresses Introduction : La fonction décodage d'adresses permet la sélection, dans l'espace mémoire adressable du µP, d'une adresse matérielle d'une case mémoire. Exemple : pour un µP ayant un bus d'adresses de 16 fils, cela va consister à sélectionner l'adresse matérielle parmi 232 soit 4 294 967 296 adresses. BTS IG2 -Cours d’Architecture Page 25 sur 55 Dans un système à µP, la partie réalisant la fonction décodage d'adresses est le décodeur d'adresses. Les différentes solutions réalisant la fonction décodage d'adresses : elles sont au nombre de cinq : Solution mettant en œuvre des opérateurs logiques de base, Solution mettant en œuvre des décodeurs et des démultiplexeurs, Solution mettant en œuvre des circuits comparateurs logiques, Solution mettant en œuvre une mémoire P.R.O.M, Solution mettant en œuvre un circuit PAL. 5. La mémoire cache Vous avez du remarquer, que dans la vie, plus on élimine de papiers et plus on en entasse (je ne sais pas pour vous, mais moi je passe mon temps à jeter des articles de presses informatiques). Ceci, vient du fait que l'être humain a le "défaut" de vouloir tout savoir ou tout connaître (ce qui n'est pas la même chose). Les premiers concepteurs d'ordinateurs ont vite compris que les programmeurs et utilisateurs de ces machines auraient besoin d'une quantité toujours croissante de capacité de stockage donc de mémoires. La philosophie suivante aurait pu être adoptée : ils en veulent, "donnez" en. Les programmes n’accèdent pas à tout le code et toutes les données en même temps et de la même manière. Il n’est donc pas nécessaire de disposer d’une grande quantité de mémoire pour exécuter des programmes de tailles importantes. L’idée simpliste serait de charger des blocs de mémoires les uns derrière les autres au fur et à mesure des besoins et du temps. Le temps, le voilà le fautif. Revenons en arrière d’une vingtaine d’années. A cette bonne vielle époque, les microprocesseurs travaillaient à des fréquences inférieures à la dizaine de mégahertz, et les mémoires avaient des temps d’accès compris entre 150 et 120 ns. Quand le microprocesseur allait chercher une donnée en mémoire, cette dernière lui paraissait disponible instantanément. La technologie aidant, le temps d’accès des mémoires classiques (DRAM) a diminué, et atteint aujourd’hui 60 à 50ns. Les microprocesseurs ont aussi progressé en vitesse, et leur fréquence de travail a été multipliée par 20. Conclusion, avec des mémoires classiques, quand le microprocesseur désire une donnée (ce qui est très courant), il passe la majeure partie de son temps à l’attendre et la performance des machines est diminuée. A Définition: "Une place sûre pour dissimuler ou ranger des choses" "Le turbo de la mémoire" La mémoire classique est constituée de DRAM, qui a un temps d'accès de 60 ns. La mémoire cache est constituée de SRAM, qui a un temps d'accès de 10 à 5ns. On trouve de la mémoire cache à l'intérieur du microprocesseur, avec un temps d'accès inversement proportionnel à la fréquence de travail de ce dernier. On constate ainsi que la mémoire cache est une mémoire plus rapide que la mémoire classique. BTS IG2 -Cours d’Architecture Page 26 sur 55 B La hiérarchie mémoire Si on parle de hiérarchie mémoire, en les classant selon les critères prix et temps d’accès, en commençant par le niveau de hiérarchie le plus haut, on aurait : .la mémoire cache de Niveau 1 (la plus chère, la plus rapide et se trouvant à l'intérieur du &micro;P) .la mémoire cache de Niveau 2 (SRAM) .la RAM classique (DRAM) .le disque dur .la bande magnétique (la moins chère et la plus lente). L’objectif de ces 5 niveaux, est de fournir à l’utilisateur un système mémoire qui soit presque aussi bon marché que la bande magnétique, et ayant le temps d’accès de la mémoire cache de niveau 1 La méthode pour obtenir cet objectif : Les niveaux de hiérarchie étant imbriqués, une donnée se trouvant dans le niveau supérieur (la mémoire cache de Niveau 1), l'est obligatoirement dans tous les autres niveaux inférieurs. Si tout se passe comme dans Le meilleur des mondes, le microprocesseur, ne s'adresse qu'à la mémoire de niveau le plus élevé. Par contre, comme tout n'est pas parfait (même dans le monde des ordinateurs), lire une donnée en mémoire peut devenir un vrai calvaire pour le microprocesseur. Si le microprocesseur ne trouve pas sa donnée dans le premier cache, il va essayer de la trouver dans le second cache, s'il ne la trouve toujours pas, il va la chercher dans la RAM classique, et ainsi de suite. Pour éviter cette situation, fort peu confortable pour le microprocesseur, le cache se doit de mettre à la disposition du microprocesseur, les bonnes informations au bon moment selon un dispositif de "flux tendu". Mais que se passe-t-il au juste ? : On ne va pas stocker des données une par une dans le cache, mais tout un bloc. Par définition, un bloc est l'unité minimale d'informations qui peut être présente dans le cache. BTS IG2 -Cours d’Architecture Page 27 sur 55 Pour répondre à cette question, il faut s'en poser quatre autres. C Emplacement d'un bloc dans le cache Première question : Il y a trois façons de placer un bloc dans le cache, on parle d'architecture de cache. Si chaque bloc n'a qu'une place disponible dans le cache, celui-ci est appelé à correspondance directe ou Direct Mapped. La correspondance est généralement la suivante : (numéro de bloc) mod (nombre de blocs dans le cache) Si un bloc peut être placé n'importe où dans le cache, celui ci est appelé totalement associatif ou Fully Association. Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit associatif par ensemble de blocs ou Set Associative. Un ensemble étant un groupe de blocs dans le cache. Un bloc est affecté à un ensemble, puis placé n'importe où dans ce dernier. L'ensemble est habituellement choisi par sélection de bits ; c'est-à-dire : (numéro de bloc) mod (nombre d'ensembles dans le cache) C'est cette dernière solution qui semble être la plus employée dans la conception des ordinateurs Deuxième question : L'adressage des blocs dans le cache : chaque bloc du cache possède une étiquette adresse contenant son numéro de bloc présent. Cette étiquette est examinée pour voir si elle correspond au numéro de bloc provenant de l'UC du microprocesseur. Pour un gain de rapidité, toutes les étiquettes sont examinées en parallèle. Il faut savoir si un bloc à une information non valide. Pour cela, on rajoute un bit valide à l'étiquette pour indiquer si l'entrée correspondante contient ou non une adresse valide. Si le bit n'est pas positionné, il ne peut y avoir un accès valide sur cette adresse. Troisième question : Le remplacement du bloc : Quand un échec intervient, le contrôleur de cache doit choisir un bloc à remplacer par la donnée désirée. Si l'architecture choisie pour le cache est du type correspondance directe, les décisions matérielles sont simplifiées, étant donné qu'il n'y a pas de choix à faire. Un seul bloc est testé pour déterminer s'il y a succès, et seul ce bloc peut être remplacé. Avec les deux autres architectures, il faut faire un choix parmi plusieurs blocs lors d'un échec. Il existe deux stratégies employées pour choisir le bloc à remplacer : Le hasard : Pour répartir l'allocation uniformément, les blocs candidats sont choisis de façon aléatoire. Le plus ancien (LRU Least Recently Used) : pour réduire la probabilité de rejeter des informations qui seront nécessaires bientôt, les accès aux blocs sont enregistrés. Bien sur, le bloc remplacé est celui qui n'a pas été utilisé depuis longtemps. La stratégie du hasard est facile à réaliser par matériel. Par contre, le coût du LRU croît avec le nombre de blocs à observer. Le tableau ci dessous, montre la différence des taux d'échec entre les deux stratégies. Associativité 2 blocs/ensemble 4 blocs/ensemble 8 blocs/ensemble Taille LRU Hasard LRU Hasard LRU Hasard 16 Ko 5,18% 5,69% 4,67% 5,29% 4,39% 4,96% 64 Ko 1,88% 2,01% 1,54% 1,66% 1,39% 1,53% 256 Ko 1,15% 1,17% 1,13% 1,13% 1,12% 1,12% Remarque : la stratégie "premier entré premier sorti" (FIFO), n'est plus utilisée et donnait des taux d'échecs avoisinant les 10% D L'écriture dans le cache BTS IG2 -Cours d’Architecture Page 28 sur 55 Les lectures dominent les accès cache. Tous les accès instructions sont en lecture et la plupart des instructions n'écrivent pas en mémoire, on peut considérer que 75% des accès sont en lecture et bien sur 25% en écriture. Les concepteurs ont donc optimisé le cache pour les lectures, et le microprocesseur attend que les lectures soient terminées. En revanche, il n'a pas besoin d'attendre la fin des écritures pour passer à la suite du programme. Le bloc est ainsi lu, pendant que l'étiquette est lue et comparée. La lecture du bloc commence dés que son numéro est disponible. Si la lecture réussit, tout va pour le mieux et la partie nécessaire du bloc est passée à l'UC immédiatement. Si c'est un échec, il n'y a aucun bénéfice, aucune perte, et il suffit simplement d'ignorer la valeur lue. Pour l'écriture, il en va tout autrement. La modification d'un bloc ne peut pas commencer avant que l'étiquette soit examinée. De plus la lecture peut accéder à plus d'octets que nécessaires, mais en écriture le microprocesseur spécifie la taille de la donnée à écrire (de 1 à 8 octets). Il existe deux façons d'écrire dans le cache : L'écriture simultanée (ou rangement simultané ou Write through) : l'information est écrite à la fois dans le bloc du cache et dans le bloc de la mémoire classique. La réécriture (ou recopie, rangement ou Write back) : l'information est écrite uniquement dans le bloc du cache. Le bloc modifié est recopié en mémoire classique uniquement quand il est remplacé. Le Write through a tendance à disparaître, en effet, même si on ne fait que lire une donnée dans un bloc, il recopie ce bloc en mémoire classique et mobilise ainsi le bus mémoire pour mettre à jour cette mémoire classique, ce qui restreint les possibilités de Direct Acces Memory DMA Le Write back, permet une sélection des mises à jour de la mémoire classique, le contenu du cache n'est reporté que si une donnée a effectivement été modifiée par le microprocesseur ou si un bloc ayant seulement été lu par le microprocesseur est remplacé. E Conclusion En fait, on utilise le cache comme une image de la mémoire classique. Quand il accède aux données, le microprocesseur croît s'adresser à la mémoire classique alors qu'il s'adresse au cache. A charge ensuite au contrôleur de cache de recopier les données dans la mémoire classique et le tour est joué. Les diverses architectures existantes consistent à créer différents systèmes de représentation basés directement sur les adresses mémoires ou sur les données. Reste que l'objectif du constructeur est toujours d'optimiser le déroulement tant des phases de lecture que d'écriture dans le but d'obtenir le cache le plus efficace possible. F Post Scriptum : Nos ordinateurs sont basés sur l'architecture de Von Neumann, cela signifie que les instructions et les données, donc les opérateurs et les opérandes sont stockés dans la même mémoire. Ainsi le microprocesseur doit accéder deux fois à la mémoire, une pour l'instruction et une pour la donnée. Un système alternatif, que l'on appelle modèle Harvard, consiste à séparer les espaces mémoire : un pour les données et un pour les instructions. De cette façon, le chargement simultané des deux, améliore la vitesse des traitements. Actuellement, les concepteurs ont tendance à utiliser les deux architectures, celle de Von Neumann pour les cartes mères et celle de Harvard pour le microprocesseur, pour fabriquer ces drôles de machines dans un monde de femmes et d'hommes. BTS IG2 -Cours d’Architecture Page 29 sur 55 L'organigramme est le suivant : BTS IG2 -Cours d’Architecture Page 30 sur 55 Chapitre 8 - La gestion des entrées sorties La gestion des E/S consiste en la gestion du transfert d’information entre le couple unité centrale (µP) – mémoire et l’extérieur soit les unités périphériques locales ou distante. Dans un système d’exploitation, cette fonction est réalisée par un ensemble de services appelé gestionnaire d’entrée-sortie. 1 Organisation générale L'évolution des ordinateurs a conduit à accroître l'autonomie des organes d'entrées-sorties et à leur confier des fonctions de plus en plus complexes d'enchaînement et de commande, le microprocesseur ne gardant que l'initiative du lancement et du contrôle des opérations. Il existe plusieurs organisations ou branchement des périphériques au microprocesseur. On peut voir sur la figure à la fin, trois exemples d'organisations. Organisation 1 : les périphériques sont reliés au couple microprocesseur-mémoire par l'intermédiaire de coupleurs, Organisation 2 : les périphériques sont reliés au couple microprocesseur-mémoire par l'intermédiaire DMA puis les coupleurs, Organisation 3 : on a à faire à un système multi-processeurs et les périphériques sont reliés à l'ensemble microprocesseurs-mémoire par l'intermédiaire de canaux et de coupleurs. On peut aussi remarquer que qu'il existe une multiplicité des voies d'accès ce qui diminue le risque d'indisponibilité par suite de la saturation ou de la défaillance d'un canal ou d'un coupleur. 2 Les périphériques Ce sont des dispositifs servant en premier lieu à l'entrée et à la sortie de données. Ils sont sont attachés à des coupleurs ou contrôleurs. Périphériques et coupleurs définissent des interfaces qui comprennent un ensemble de fonctions (entrée, sortie, siganux de commande et d'incident) et une voie de communication servant au tranfert de l'information. 3. Les catégories de périphériques Il existe deux grandes catégories de périphériques, les périphériques blocs et les périphériques caractères. Les périphériques caractères : Ils acceptent les données sans se soucier d'une quelconque structure. Ils envoient ou reçoivent les données octets par octets, sans qu'on les contactée en paquets. Parmi les périphériques caractères, on peut citer : le clavier, la souris, les imprimantes, les terminaux etc... Les données sont transmises les unes derrière les autres, on parle alors d'accès séquentiel. Les périphériques blocs : Ils acceptent les données par blocs de taille fixe, chaque bloc ayant une adresse propre. La taille des blocs va généralement de 128 octets à plusieurs kilo. Le grand avantage par rapport aux périphériques caractères est qu'il est possible d'aller lire ou écrire un bloc à tout moment, on parle alors d'accès aléatoire. 4. L'espace mémoire Chaque périphérique ou ensemble de périphériques possède une ou plusieurs adresses mémoire se situant soit dans l'espace mémoire du microprocesseur soit dans un autre espace appelé l'espace E/S du microprocesseur, cet espace étant beaucoup plus restreint. Pour donner un ordre d'idée, les derniers microprocesseurs disposent d'un espace mémoire de 64 giga et d'un espace d'E/S de 64k. BTS IG2 -Cours d’Architecture Page 31 sur 55 BTS IG2 -Cours d’Architecture Page 32 sur 55 5. Le coupleur ou contrôleur de périphérique Ce n'est pas le microprocesseur qui pilote directement le périphérique, mais un contrôleur. En essayant de se rapprocher un peu plus du matériel, on peut dire que le périphérique en lui même est un ensemble de composants mécaniques (moteur, disque etc...), et qu'il est géré au niveau des signaux par une carte électronique que l'on nomme contrôleur. Ce contrôleur peut lui même être constitué d'un microprocesseur ou micro contrôleur, qui dialogue avec le microprocesseur principale. Donc la définition d'un coupleur peut être : c'est un dispositif de commande adapté à un type donné de périphérique. Son autonomie est limitée à des opérations élémentaires. Il permet aussi le dialogue entre deux entités physiques (microprocesseur et périphérique) différentes. On peut dire que l'ensemble coupleur-périphérique est une interface entre l'Homme et le couple microprocesseur-mémoire. 6. La synchronisation microprocesseur E/S Les entrées-sorties synchrones : Dans une entrée-sortie synchrone, il n'y a aucun parallélisme entre traitement et transfert de l'information. Le microprocesseur est immobilisé pendant toute la durée du transfert. L'entrée-sortie synchrone est utilisée sur les ordinateurs les lus simpes et dans tous les cas ou le microprocesseur ne peut être utilement employé pendant la durée du transfert. Les entrées-sorties asynchrones avec interruptions : Dans une entrée-sortie asynchrone, tel le clavier, il y a une interruption qui est prise en compte, elle permet de ne pas interrompre le microprocesseur, ce dernier peut ontinuer son traitement en cours. Les interruptions : Lorsqu'un périphérique veut s'adresser au microprocesseur, il provoque une interruption matérielle. Ce qui engendre un arrêt de l'exécution séquentielle des instructions d'un programme. Cette interruption provoque l'exécution d'une routine d'interruption, c'est-à-dire d'un programme de traitement de l'événement survenu et propre à cet événement. Les signaux d'interruption permettent aux différents composants du système, d'attirer l'attention du microprocesseur afin de déclencher une opération déterminée. Comme plusieurs demandes d'interruption peuvent survenir simultanément, elles sont tout d'abord envoyées au contrôleur d'interruption (PIC : Programmable Interrupt Controler) qui les retransmet ensuite au microprocesseur. 7. Les canaux Un canal ou unité d'échange, est un processeur spécialisé dans les opérations d'entrées-sorties. Il ne peut être lancé que par le microprocesseur central de l'ordinateur, il est esclave. il ne possède pas d'interruptions mais peut lui-même interrompre le microprocesseur central. Son répertoire d'instruction lui permet d'actionner les coupleurs et les périphériques qui lui sont connectés. 8. L'accès direct à la mémoire (DMA Direct Acces Memory) Lorsqu'un périphérique veut envoyer tout un bloc de données au microprocesseur, il commence d'abord par l'interrompre, récupère les données, sur le support, de façon sérielle, puis il fait tout un ensemble de vérifications tel que le checksum.... Enfin vient le transfert des données par mots, un programme gère ce transfert en incrémentant un compteur à chaque itération. Ce programme, s'il est exécuté par le microprocesseur, fait perdre beaucoup de temps à ce dernier, qui ne peut alors s'occuper de la gestion des programmes de l'utilisateur. Le DMA a été créé pour libérer le microprocesseur de ce travail de bas niveau, il donne au contrôleur deux informations, qui sont l'adresse mémoire de départ où les données doivent être stockées et le nombre de mots à BTS IG2 -Cours d’Architecture Page 33 sur 55 transférer. Le DMA est surtout utilisé pour les périphériques de type blocs. C'est en quelque sorte une forme simplifiée de canal. Les types de transfert DMA : nous venons de voir que le DMA était un circuit spécialisé conçu pour transférer les données à la vitesse dont la mémoire est capable. Il existe deux types de transfert DMA : Par gyclée : le contrôleur DMA effectue un certain nombre de transferts bus chaque fois qu'il a la main. ce fonctionnement est bien adapté aux taches de transfert des blocs lorqu'elles nécessitent la totalité de la largeur de bande du bus. Par vol de cycle : la commande du bus passes alternativement du processeur DMA au microprocesseur central à chaque cycle mémoire. Le canal DMA peremt alors au microprocesseur central de fonctionner au voisinage de 50%. 9. Le pilote de périphériques Le programme qui commande le fonctionnement élémentaire d'un périphérique est appelé son pilote (en anglais driver ou handler). Le handler gère directement l'interface du coupleur du périphérique, traite les interruptions émises par celui-ci, détecte et traite les cas d'erreur. C'est au niveau de ce module que doivent être traitées les particularités de programmation du coupleur. Il est généralement invisible aux utilisateurs du sysème, qui accèdent aux fonctions d'E/S au moyen de services de plus ou moins haut niveau réalisés par des appels au superviseur. Le handler contient donc les primitives permettant de commander le périphérique. Ce driver est constitué de deux procédures, quasiment indépendantes : une procédure traitant l'initialisation d'un transfert et une procédure de traitement de l'interruption associée à une fin de transfert. La gestion des E/S repose sur l'utilisation des interruptions dans la plupart des cas. 10. Les tampons La différence considérable entre les vitesses de traitement de l'unité centrale et des organes périphériques impose de tamponner les entrées-sorties, c'est-à-dire d'interposer une zone de mémoire, ou tampon, entre les périphériques et les programmes utilisateurs. Le but est de réduire le temps d'inactivité de l'unité centrale en découplant son fonctionnement de celui des périphériques. Les programmes utilisateurs transfèrent l'information depuis ou vers le tampon, celui-ci, en parallèle, ser de source ou de destination aux échanges avec le périphérique. Pour qu'une donnée lue sur un périphérique soit disponible pour l'unité centrale, il faut que la lecture ait été anticipée, de même pour qu'une donnée soit écrite sur un périphérique, elle doit être conservée en mémoire le temps de son transfert. Pour cela, on utilise des tampons (en anglais buffer ou spool). Il existe deux types de tampons : BTS IG2 -Cours d’Architecture Page 34 sur 55 Les tampons en mémoire centrale (buffer ou buffering) : l'utilisation de buffer va permettre de charger les données en entrée ou de les récupérer en sortie dans une zone réservée de la mémoire (circuits intégrés). Il existe aussi le double buffering, il améliore les performances d'utilisation du microprocesseur, en effet en utilisant deux tampons en entrée et en sortie. Un programme en cours rempli ou vide ses données dans l'un tandis que l'unité d'échange vide ou rempli l'autre l'autre. Les tampons en mémoire auxilliaire (spool ou spooling) : pour éviter l'encombrement de la mémoire centrale par les tampons d'entrée-sortie, ceux-ci peuvent être reportés sur une mémoire auxilliaire à accès rapide (disque). Le terme spool (ne veut pas dire "bobine", mais est l'acronyme de Simultaneous Peripherical Operations On Line). BTS IG2 -Cours d’Architecture Page 35 sur 55 Chapitre 9 - La transmission des données 1. Introduction La transmission de données doit son existence aux besoins de transmettre des données (sic) à des distances plus ou moins longues sur des lignes filaires souvent sensibles aux parasites. La raison d'être de tout système de transmission de données est la distribution d'informations sans erreurs. Les critères de choix d'un type de transmission de données sont le débit binaire, la distance à couvrir et le coût du système. Quand une unité centrale (l'ensemble µP-mémoire) veut transmettre ou recevoir des données vers ou d'un périphérique, il y a un dialogue qui se cré entre les deux entités et ce dialogue est régie par un ensemble de lois qui donnent le type de liaisons, les modes de fonctionnement, les modes de transmission etc... 2. Les types de liaisons Parallèle : Le principe de base de la transmission de données parallèle est le transfert de données sur autant de fils qu'il y a de bits constituant le caractère à transmettre. Un tel type de transmission n'est utilisable que pour des transmissions à très courte distance (de quelques centimètres à quelques mètres). Pour des distances supérieures, il devient peu fiable et fort coûteux. Série : Le principe de base de la transmission de données série est le transfert de données sur un seul fil. Le temps est découpé en intervalles de même durée, et on émet un bit pendant chacun de ces intervalles. L'idée est d'appliquer une valeur analogique pendant un intervalle pour représenter la valeur logique 1 et une valeur analogique différente pour représenter la valeur logique 0. Du coté du récepteur on doit observer les valeurs de la tension aux instants convenables. 3. Les modes de fonctionnement Asymétrique : La ligne de transmission est toujours constituée de deux conducteurs parcourus par des courants de sens opposés. Dans le cas d'une ligne asymétrique, l'un des conducteurs est le conducteur de masse, d'où des problèmes de parasites à haut débit. Différentielle (symétrique) : Dans un système de transmission différentielle, il faut, entre l'émetteur et le récepteur, deux fils parcourus par des courants de sens opposé. Le récepteur ne prend en compte que la différence de potentiel entre les deux fils. La valeur absolue de la tension continue en mode commun des deux fils est sans importance. Dans la pratique, les émetteurs et récepteurs ont une plage de tension en mode commun bien définie dans laquelle ils peuvent fonctionner. Une liaison différentielle permet de transmettre des données sur de grandes distances à des vitesses élevées. Le signal est peu sensible aux parasites induits et aux effets de diaphonie. Toute tension parasite induite dans la ligne différentielle apparaît comme une tension en mode commun supplémentaire à laquelle le récepteur est insensible. La différence de potentiel des deux lignes reste donc la même. De la même façon, une variation de potentiel de masse local à une extrémité de la ligne apparaît comme une simple variation de la tension en mode commun. La tension de sortie différentielle double la tension de sortie asymétrique de l'émetteur. En transmission différentielle on utilise généralement un câble en paire torsadée, ce qui a pour effet d'annuler les champs magnétiques engendrés par le courant circulant dans chaque fil et de réduire l'inductance de la paire. Le principal inconvénient d'un système de transmission différentielle est que pour chaque liaison, il faut deux câbles. Cela augmente le coût du système mais donne des performances nettement meilleures quand on veut BTS IG2 -Cours d’Architecture Page 36 sur 55 transmettre des données sur une grande distance à une vitesse élevée. Les avantages et inconvénients de la transmission différentielle (symétrique) de données par rapport à la transmission par ligne asymétrique sont les suivants : Avantages : Réjection élevée de la tension de bruit en mode commun. Rayonnement de ligne réduit, moins de RFI Les capacités en vitesse sont améliorées. Commande des longueurs de ligne plus importantes. Inconvénients : Coûts plus élevés Doit être utilisée avec des paires torsadées ou autre type de lignes de transmission symétrique. 4. Les modes de transmission A Simplex Elle est toujours unidirectionnelle, Le poste A émet et le poste B reçoit. C'est le cas de certaines imprimantes. L'ordinateur envoie les caractères à l'imprimante et n'attend aucune réponse en retour. Ce mode requiert une ligne 2 fils, que la liaison soit directe ou téléphonique . B Semi duplex Elle est bidirectionnelle, Le poste A peut émettre vers le poste B et vice versa, mais un seul des deux peut émettre à un instant donné. Ce mode requiert également une ligne 2 fils, que la liaison soit directe ou téléphonique. On l'utilise lorsque le canal de communication ne possède pas une largeur de bande suffisante pour permettre des liaisons bilatérales simultanées. C Duplex Elle est bidirectionnelle, les deux postes peuvent émettre en même temps. Ce mode requiert : - une ligne 4 fils si la liaison est directe ou si les modems de la liaison téléphonique fonctionnent à une même fréquence porteuse ; - une ligne 2 fils si les modems de la liaison téléphonique fonctionnent à des fréquences porteuses différentes en émission et en réception (c'est la seule solution vraiment économique). Remarque : L'émetteur est aussi appelé : Data Communications Equipment (DCE) et le récepteur Data Terminal Equipment (DTE) Du paragraphe précédent on peut définir plusieurs notions liées à la transmission en série : BTS IG2 -Cours d’Architecture Page 37 sur 55 - Le découpage du temps en intervalles réguliers, ceci nécessite la présence d'une horloge auprès de l'émetteur et du récepteur, - La synchronisation nécessaire entre émetteur et récepteur, pour que ce dernier fasse les observations aux instants corrects, - Les observations faites par le récepteur, qui ont lieu à des instants précis, constituent l'échantillonnage du signal. Afin de bien coordonner la synchronisation entre l'émetteur et le récepteur, deux techniques de transmission série sont utilisées : Synchrone et Asynchrone. D Asynchrone Principe : Dans ce type de liaison, les octets sont émis de manière aléatoire, au fur et à mesure de leur disponibilité (cas typique de la saisie clavier). Procédure : - Au repos, mise à l'état haut de la ligne de transmission - Emission d'un début de message constitué par l'envoi d'un bit de départ (start bit) de valeur 0 (la ligne passe de l'état haut de repos à l'état bas) - Emission de l'octet - Afin de permettre au récepteur de vérifier la validité de l'octet reçu, il y aura éventuellement l'émission : - d'un bit de parité paire (even parity bit) de valeur 0 si le nombre de bits 1 de l'octet transmis est pair et 1 si ce nombre est impair ; - ou d'un bit de parité impaire (odd parity bit) de valeur 1 si le nombre de bits de l'octet transmis est pair et 0 si ce nombre est impair. - Emission d'une fin de message constituée par l'envoi de 1, 1,5 ou 2 bit(s) d'arrêt de valeur 1 (la ligne reprend son état haut de repos). Après ce bit d'arrêt, un nouveau caractère peut être transmis. Vitesse et synchronisation : Pour que le système fonctionne correctement, l'émetteur et le récepteur doivent accorder la même durée à chaque bit et donc travailler à la même vitesse. Cette vitesse se mesure en bauds, du nom de l'ingénieur Baudot inventeur d'un code du même nom utilisé en téléinformatique. Cette vitesse s'échelonne de la centaine au million de bauds (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200), entre 2 PC, elle est de 115200 bauds. Si le mode de transmission des octets est bien asynchrone, celui des bits constituant chaque octet est par contre, lui, bien synchrone, et est réalisé à l'aide d'horloges locales de même fréquence nominale. Erreurs : Lors d'une transmission asynchrone on doit veiller à 3 sortes d'erreurs : - Le faux départ : le récepteur croît détecter un bit de départ alors que ce n'est qu'un parasite, - La sur écriture due à une fréquence d'horloge de l'émetteur supérieure à celle du récepteur ; - La sous écriture due à une fréquence d'horloge de l'émetteur inférieure à celle du récepteur ; Pour être sur que le front descendant détecté à la réception est bien celui d'un bit de départ, on attend la durée d'un demi-bit et on vérifie l'état de la ligne : si la ligne est toujours au niveau bas c'est qu'un bit de départ a été émis et on déclenche l'horloge de réception. A la réception, le signal start déclenche la mise en route de l'oscillateur local qui permet l'échantillonnage des bits contenus dans le caractère. La légère dérive qui peut alors se produire par rapport à l'instant idéal est sans conséquence, compte tenu de la faible durée concernée. Inconvénient : Dans une liaison asynchrone, pour transmettre un seul octet il faut en moyenne émettre 12 bits ( 1 bit de départ, 1 bit de parité, 1 à 2 bits de stop et les 8 bits de l'octet), ce qui signifie que seulement les deux tiers du temps sont utilisés pour transmettre de l'information utile : Le rendement est mauvais. Une liaison synchrone permet d'améliorer ce rendement. E Synchrone Principe : Dans ce type de liaison, les octets sont, et donc les bits, constituant le message sont envoyés les uns après les autres, sans temps mort. Procédure : Pour prévenir le récepteur du début et de la fin d'un envoi, le message est précédé d'un caractère de début de transmission (STX) et est suivi d'un caractère de fin de transmission (EOT). Vitesse et synchronisation : Ce type de liaison permet d'obtenir des débits informationnels plus élevés qu'une liaison asynchrone, mais il nécessite un fonctionnement parfaitement synchrone de l'émetteur et du récepteur. Cette synchronisation est généralement assurée par l'une des deux méthodes suivantes : BTS IG2 -Cours d’Architecture Page 38 sur 55 - un fil séparé transmet au récepteur le signal d'horloge généré par l'émetteur ; - des informations de temps sont incorporées au processus de modulation du modem émetteur F Asynchrone synchronisée (ou isochrone) Cette méthode de transmission se caractérise par le fait que, bien que le message soit transmis de manière synchrone, l'intervalle de temps entre deux messages ne donne pas lieur à synchronisation. Afin de recaler l'oscillateur local avant chaque message, on doit faire précéder le message d'un certain nombre de caractères de synchronisation (exemple : SYN en ASCII). 5. Les supports de lignes de transmission Une impulsion se propage le long d'une ligne de transmission à une vitesse proche de celle de la lumière. C'est le type de câble utilisé qui limite la vitesse de transmission réelle. Les types de lignes usuels sont les paires torsadées (blindées ou non), les câbles plats ou rubans, les fils discrets pour les applications à faible distance, le câble coaxial, et la fibre optique. A Les fils métalliques Ce sont par exemple les paires torsadées téléphoniques reliant les abonnées. Elles sont constituées en cuivre ou parfois en aluminium, de diamètre pouvant varier de 0.4 à 1mm. Ces paires sont doublées pour les liaisons entre autocommutateurs. Elles sont toujours isolées les unes des autres par des gaines. Dans les entreprises, les paires métalliques installées peuvent supporter un débit numérique de 64k bits/s. Le signal analogique se propageant occupe une bande de fréquence de 4kHz. B Les lignes coaxiales Les câbles coaxiaux usuels de 50 à 200 ohms ont une impédance très uniforme et définie, et offrent les meilleures caractéristiques de transmission en ligne symétriques. Leurs principaux avantages sont leur faible perte et l'efficacité de leur blindage contre les parasites électromagnétiques induits. Le courant doit bien sur circuler à la fois dans l'âme du câble et le blindage pour que ce dernier soit efficace. C Les fibres optiques C'est une technologie récente puisque les premières fibres datent des années 70. Le principe en est le suivant : - L'information électrique est transformée en onde lumineuse cohérente (LASER) ou non (DEL) à l'entrée de la fibre. - Cette onde se propage le long de la fibre par réflexion entre le cœur et la gaine de silice dont les indices de réfraction sont différents. - Elle " rebondit " dans le guide d'onde que constitue le cœur de la fibre. A l'autre extrémité de la fibre optique, l'information lumineuse est à nouveau retranscrite en courant électrique, à l'aide d'un photodétecteur. La fibre optique est un support de communication présentant maints avantages : - Taille et masse réduites, par rapport aux autres supports, - Très large bande passante (1ghz à 1km), - Faible atténuation suivant la distance donc nécessité de moins de répéteurs, - Insensibilité aux parasites électromagnétiques Les inconvénients existants encore pour le moment sont : - Un coût élevé mais qui a tendance à baisser, - Support fragile si en verre (silice), mais correct en plastique renforcé par des gaines plus ou moins rigides, - Une connectique très délicate pour le particulier. 6. Les liaisons Parallèles Leur origine réside dans le fait qu'en numérique, les informations sont codées sous la forme de plusieurs bits groupés généralement en mots de 4, 8, 16, 32 voire 64 bits. Pour obtenir des vitesses d'exécution élevées, il est BTS IG2 -Cours d’Architecture Page 39 sur 55 souhaitable de pouvoir effectuer les transferts d'informations en faisant appel au parallélisme : les bits d'un mot sont envoyés simultanément sur autant de conducteurs qu'il y a de bits. L'ensemble de ces conducteurs a pour nom : BUS. Sur une carte électronique à µP ont peu rencontrer trois types de bus : Données, Adresses et Commande (Voir cours sur Architectures de systèmes microprogrammés). Il existe plusieurs interfaces de bus parallèles, les interfaces Centronics, IEEE488, SCSI et IDE et les BUS des Ordinateurs. Constitution d'une interface : Placée entre l'ordinateur et ses périphériques, elle constitue un indispensable intermédiaire par lequel transitent les informations, commandes ou données. Composée d'un pilote de périphériques (driver), elle établit et gère les dialogues entre les éléments d'un système informatique. Le fonctionnement d'une interface : le pilote, spécifique à chaque périphérique, se présente sous la forme d'un petit programme résident. Il reçoit les informations du système d'exploitation et les traduit en une série de signaux exploitables par le câble de liaison, ce dernier étant composé de différents fils ayant chacun une fonction propre. La norme à laquelle obéit l'interface (ST506, ESDI, EDI, SCSI, IDE....) définit les câbles. En bout de chaîne, le contrôleur reçoit les signaux. Il les interprète et envoie les ordres au périphérique. Au cours du processus, le pilote et le contrôleur jouent un double rôle de transmission et de traduction. Le câble se contentant de véhiculer les données. Exemple : Enregistrement d'un document. 1 L'utilisateur sélectionne l'option Fichier Enregistrer 2 L'application indique au Système d'exploitation qu'il désire ouvrir un fichier existant 3 Ce système appelle un pilote de périphériques pour signaler au disque l'ouverture d'un fichier 4 Le pilote traduit l'ordre reçu en signaux capables de transiter par le câble 5 Le câble les transmet au contrôleur 6 Le contrôleur les traduit en ordres compréhensibles par le périphérique physique qu'il gère, et dont il peut être le seul à connaître l'organisation interne. Il renvoie ensuite un signal indiquant le résultat de l'opération (réussite ou échec...) 7 Le câble transmet ces signaux au pilote de périphériques 8 Le pilote traduit ces signaux dans un langage propre au système d'exploitation 9 Ce dernier répercute les informations à l'application 10 Enfin, l'application décide de passer à l'opération suivante ou d'afficher un message d'erreur. A L'interface Centronics Cette liaison parallèle est destinée à l'émission de codes ASCII 8 bits. Elle utilise donc un BUS de données de 8bits (de D0 à D7), une ligne de masse servant de potentiel de référence, et trois lignes de contrôle des échanges. Le principe de fonctionnement de cette liaison est le suivant : - L'ordinateur place l'octet de code à émettre sur le bus de données, - Il regarde si son périphérique est prêt à recevoir cette donnée, en lisant le niveau de tension présent sur la ligne de contrôle nommée BUSY (occupé), - Si le périphérique a placé sa sortie BUSY à 0, c'est qu'il est disponible. Dans ce cas, l'ordinateur le prévient qu'une donnée est présente sur le bus et peut donc être lue en envoyant une impulsion sur la ligne de commande STROBE (échantillonnage), - Dés que le périphérique détecte le front montant de l'impulsion STROBE, il passe en mode occupé (Busy au niveau 1), empêchant ainsi tout nouvel envoi de données. Il peut alors traiter la donnée présente sur le bus en prenant tout son temps. Puis deux possibilités s'offrent à lui : ou bien il remet la ligne BUSY à 0 pour signaler qu'il est à nouveau disponible, ou bien, tout en remettant BUSY à 0, il envoie un signal d'acquiescement sur la ligne de contrôle ACK. Suivant le type d'ordinateur, un des deux protocoles est accepté, et parfois les deux. La connectique : Sur l'ordinateur, se trouve un connecteur femelle de type Canon Sub-D 25 broches, et du coté de l'imprimante, un connecteur mâle de type centronics 36 broches. Le câble reliant l'ordinateur et l'imprimante est constitué des deux connecteurs en opposition par rapport aux deux précédents. L'utilisation principale (99%) de la liaison parallèle centronics est la connexion d'une imprimante parallèle à un ordinateur. BTS IG2 -Cours d’Architecture Page 40 sur 55 Les signaux constituants l'interface centronics sont les suivants : Broche numéro Nom du signal Broche numéro Nom du signal 1 /STROBE 17 Masse 2à9 DATA 1 à 8 18 Non Connectée 10 ACK 20 à 29 OV Retour de DATA 1 à 8 11 BUSY 30 0V 12 PE (Paper Out) 31 Non Connectée 13 /BUSY 32 /FAULT(Erreur Imprimante) 14 et 15 Non Connectée 33 /INIT 16 0V 34 à 36 Non Connectées Les différents types de ports parallèles sont : Original Unidirectionnel : Ce type est la toute première version du port parallèle, il permet seulement la communication du PC en direction d'un périphérique. IBM a introduit cette norme à l'apparition duXT, il est abandonné depuis 1993. Son débit pouvait atteindre 60Ko par secondes. Type 1 Bidirectionnel : Il date de 1987, c'est encore IBM qui l'a introduit pour ses PS2, ce port bidirectionnel permettait uni dialogue entre un PC et un périphérique. Il était compatible avec le port unidirectionnel, et il permettait un débit de 300 Ko/s en fonction du type de périphérique utilisé. Type 3 DMA : Ce type de port utilise le DMA, il décharge ainsi le processeur de la gestion du transfert des données. Ces dernières sont transmises par blocs d'octets à la mémoire, puis le contrôleur du périphériques les envois au périphériques. EPP : Le port parallèle EPP (Enhanced Parallel Port) est une norme de communications bidirectionnelles entre des périphériques externes et un PC ECP : Cette norme ECP (Extended Capabilities Ports) est trés proche de l'EPp, il est capable d'utiliser le DMA et est doté d'une mémoire tampon (buffer) qui améliore sensiblement les performances. Les connecteurs : Le port IEEE 1284 : Ce port de transmission de données ne date que de 1994, il a pour but de faire communiquer une interface parallèle (une imprimante mais pas seulement) avec un ordinateur, son véritable nom est : "A Method for a Bidirectional Parallel Peripheral Interface for Personal Computer". Cette norme est le fruit d'un travail qui consistait à remplacer les anciens ports parallèles, en étant 50 à 100 fois plus rapide et biensur compatible. A l'origine, en 1991, les fabricants d'imprimantes se sont réunis (NPA : Network Printing Alliance) pour discuter d'un nouveau standard qui définit un certain nombre de paramètres implémentés du coté de l'ordinateur et de l'imprimante, permettant ainsi un contrôle totale de cette dernière. L'IEEE 1284 prend en charge les 5 modes les plus couramment rencontrés. En effet, certains modes sont restés propre à un constructeur et restent transparents pour l'utilisateur B L'interface IEEE-488 Le bus IEEE-488 a pour vocation de normaliser le mode d'interconnexion entre les chaînes d'acquisition et le système de traitement de mesures. Il possède ainsi une structure indépendante de tout ordinateur? Originellement introduit en 1965 par Hewlett-Packard, pour ses propres besoins, sous le nom de HPIB (HP Interface BUS), ce bus est rapidement devenu une norme de fait puis a été standardisé par l'organisation américaine IEEE (Institute of Electrical and Electronics Engineers) sous le nom de IEEE-488. Il est aussi appelé GPIB. BTS IG2 -Cours d’Architecture Page 41 sur 55 La connectique : Il est constitué d'un ensemble de 16 fils, 8 regroupant les 8 fils de données multiplexés avec le bus d'adresse, et 8 fils utilisés pour le contrôle et la gestion des échanges. Ainsi grâce à ses 16 fils, il est possible d'interconnecter directement micro-ordinateur et appareils de mesure si ceux-ci sont dotés d'une sortie IEEE-488. C L'interface SCSI (prononcer Squezy) De toutes les normes éditées en matière d'interface (ESDI, IDE ...), la SCSI (Small Computer System Interface) apparaît comme la plus performante et la plus universelle. Elle a été définie en 1986 par l'ANSI, elle est largement adoptée par le monde Macintosh, IBM en 1987 pour les PS/2, les constructeurs de stations de travail (NEXT, ALPHA, SUN...). Ses atouts sont entre autre, la gestion simultanée de multiples périphériques, taux de transfert élevé (RS485), ce qui est très appréciés dans le cas d'unités de stockage comme les disques durs et les CD-ROM. Ses caractéristiques sont : 1 Elle permet de relier jusqu'à 7 contrôleurs de périphériques (les autres en on 1 ou 2), chacun d'eux est relié au précédent, et est affecté d'un numéro d'ordre compris entre 1 et 7 2 Chaque contrôleur gère jusqu'à 2048 périphériques (donc 7*2048 en tout), on peut ainsi gérer des dizaines de Go de DD. (528Mo en IDE). 3 Les périphériques sont considérés comme des unités logiques, le pilote n'en connaissant pas l'organisation interne. Le contrôleur est le seul à savoir ce qui se passe physiquement. Le but est de décharger le système d'exploitation et donc le microprocesseur, des calculs supplémentaires dus à la divergence éventuelle entre organisations logique et physique. 4 Le contrôleur dirige le pilote autant qu'il lui obéit. dans les autres cas on assiste à une relation du type " Maître à esclave ". La norme SCSI s'adapte aux circonstances (voir ci-dessous). quand le pilote donne l'ordre d'écrire sur le disque, il mène les opérations. Une fois le travail réalisé, l'ordre des priorités est inversé: c'est le contrôleur qui dirige. il est de sa responsabilité d'interrompre le pilote pour lui indiquer le résultat. Les autres interfaces prévoient un pilote directif qui surveille le contrôleur jusqu'à ce qu'il est fini. Le système attend, interroge à intervalles réguliers le pilote et ne renvoie aucun résultat à l'application, qui patiente.... Un pilote de périphériques SCSI peut faire autre chose pendant le travail du contrôleur. D Le bus IEEE 1394 ou FireWire C'est la société Apple qui la sortie en 1985 sous l'appelation Fire Wire, puis il a été normalisé et est devenu le bus IEEE 1394 C'est un bus destiné aux périphériqus ayant besoin d'un grand débit. l existe actuellement en trois versions : 12,5 , 25 et 50 Mo/s, dans un futur proche on pourra le trouver à des débits proches de 200 Mo/s. Il permet de relier jusqu'à 63 périphériques, sans hub et de façon plug en play. Il est aussi possible d'ajouter ou d'enlever un périphérique à chaud (hot plugging). Chaque périphérique dispose de deux sorties et d'une entrée de type Fire Wire, ce qui permet ainsi de les chaîner entre eux. Il n'y a pas d'identification à donner aux périphériques lors de leur installation, ni de terminaison à installer en fin de chaîne. Le connecteur comporte six fils, quatre pour la transmission des données numériques multipléxées et deux pour l'alimentation. La transmission des données se fait de façon isochrone ( les données sont transférées dans des intervalles de temps réguliers). 7. Les BUS des Ordinateurs personnels Définition : le bus est un canal de communication. Le bus mémoire, par exemple, permet au processeur de lire et d'écrire des données dans la mémoire vive. Le bus d'extension fait communiquer le système processeur mémoire avec les périphériques gérant l'affichage, le stockage, l'impression et la communication. C'est le passage obligé de toute donnée échangée avec le processeur. Un bus se définit par sa largeur de bande (exprimé en bits) et par une fréquence. Un bus 32 bits, signifie que les données qu'il véhicule sont organisées par paquets de 32 bits. Plus ce nombre est élevé plus le bus sera rapide. La fréquence du bus correspond à la quantité de paquets qui peut-être transportée en une seconde. BTS IG2 -Cours d’Architecture Page 42 sur 55 A Les Bus standards Le bus ISA : (Industry Standard Architecture) a été inventée en 1981 par IBM pour son IBM 8088, c'est un bus 8 et 16 bits qui transfère les données à la vitesse de 5 Mo/s. Il est " devenu " peu performant par rapport aux nouveaux Bus. Vitesse théorique de transmission : 8Mhz x 16 bit = 128 megabits/seconde =128 megabits/seconde / 2 cycles = 64 megabits/secondes = 64 megabits/secondes / 8 = 8Mo/ secondes Le Bus MCA (Micro Channel Architecture), est l'évolution du bus ISA proposée par IBM en 1987. Ce bus a une largeur de 16 ou 32 bits, utilise la fréquence du processeur.bus 32 bits et a un débit théorique de 20 à 160 Mo/s. Il fut développé par IBM pour ses PS afin de concurrencer les clones de l'époque. Le Bus EISA (Extended Industry Standard Architecture), a été annoncé par un consortium de fabricants (sauf IBM) en 1988 comme réponse au bus MCA d'IBM, il peut véhiculer des paquets de 32 bits à une vitesse de 33 Mo/s, il doit son existence au bus MCA et est son concurrent direct. B Les Bus locaux bus d'extension qui relie directement les périphériques au processeur. Ceux-ci communiquent (en théorie) alors à la même vitesse que le bus du µP. Le Bus VESA (Video Electronics Standards Association) : spécification d'un bus local 32 bits cadencé à 33 MHz qui est presque mort-né. Le débit théorique est compris entre 120 et 148 Mo/s. Le Bus PCI (Peripheral Component Interconnect) : bus défini par Intel en 1992, il transmet les données sur 32 bits et 64 à une fréquence de 33 , 66 et 100MHz quelle que soit la nature du processeur. Il est compatible avec des processeurs 486, Pentium et RISC ainsi qu'avec les bus ISA, EISA et MCA. Sa vitesse de transfert va de 132 Mo/s à 264Mo/s. Le bus AGP (Accelerated Graphic Port) : bus défini par Intel en 1996, il permet de partager la mémoire centrale entre la carte mère et la carte vidéo. Il est donc dédié à la carte vidéo, et permet ainsi d'éliminer le goulôt d'étranglement qui freinait le graphisme pour les cartes vidéo 3D. Ses caractéristiques sont nettement supérieur au bus PCI. L'AGP 1x a un débit théorique de 266Mo/s avec une fréquence de 66MHz et une largeur de bus de 64bits. Il se synchronise sur les fronts montants du signal d'horloge. L'AGP 2x à un débit double, car il se synchronise à la fois sur les fronts montants et les fronts descendants, et atteind ainsi un débit de 530Mo/s. On parle d'un AGP 4x qui permettrait d'atteindre un débit de 1Go/s, mais pour l'instant il est limité par la fréquence du bus. 8. Les liaisons séries BTS IG2 -Cours d’Architecture Page 43 sur 55 Elles s'emploient lorsque la distance à laquelle doit s'effectuer la transmission dépasse 1 à 2 mètres. Elles sont en outre obligatoires dés que l'on fait appel à des lignes téléphoniques, fibres optiques, faisceaux hertziens, satellites de communication etc.. Dans ces situations, on est obligé d'utiliser à chaque bout de la chaîne de transmission, des " MODEMs " dans lesquels une onde porteuse est modulée par le signal à transmettre ou démodulée pour en extraire les informations utiles (Voir le chapitre sur les modems). Il existe une multitude de protocoles et de normes pour les liaisons séries. La plus célèbre étant la norme RS232. A La norme RS232 : Présentation : Elaborée par (Electronic Industries Association) aux états unis en 1962 et pour l'ensemble du monde par le ccitt et ISO (International Standards Organisation), la norme RS232C défini la structure d'un bus de liaison série 25 fils, supportant aussi bien le mode synchrone que le mode asynchrone, entre deux matériels Elle défini également le brochage du connecteur DB25 de raccordement de ce bus. Deux fils du bus permettent d'échanger les informations, l'un servant à les émettre l'autre à les recevoir. Les autres fils, appelés lignes de service, servent au dialogue entre les deux matériels Emetteurs et récepteurs RS-232C dans un système fondamental de communication de données Définition des signaux : C'est une liaison de type asymétrique. Les signaux sont au nombre de 25, les expliqués tous est sans grand intérêt, nous allons nous pencher sur les plus courants. Ce sont les 9 lignes utilisées par les micro-ordinateur ayant pour inconvénient de n'autoriser que des liaisons asynchrones. Broche Ligne Sens liaison 1 Désignation anglaise Désignation française GROUND TERRE (blindage) 2 103 PC MOD TD : Transmitted Data ED : Emission de Données 3 104 PC MOD RD : Received Data RD : Réception de Données 4 105 PC MOD RTS : Request To Send DPE : Demande Pour Emettre 5 106 PC MOD CTS : Clear To Send PAE : Prêt A Emettre 6 107 PC MOD DSR : Data Set Ready PDP : Poste de Données Prêt 7 102 PC MOD GND : Logic Ground TS : Terre Signalisation (masse) 8 109 PC MOD RLSD : Carrier Detect DS : Détection Signal de ligne (porteuse) 20 108 PC MOD DTR : Data Terminal Ready CPD : Connexion Poste Données sur la ligne 22 125 PC MOD RI : Ring Indicator IA : Indicateur d'Appel Caractéristiques : Les niveaux logiques sont représentés par des tensions comprises entre +5V et +15V pour le niveau logique 0, entre -5 et -15V pour le niveau logique 1. Les entrées réceptrices doivent être capables de supporter des niveaux de +/- 25V. Pour le câblage on peut n'utiliser que 3 fils (2, 3, 7). on parle de : - câble droit, lorsqu'un matériel est considéré ETTD et l'autre ETCD. - câble croisé, lorsque les deux matériels sont considérés ETTD - Point à Point ; - Duplex ; - Débit informationnel faible : - 19200 bauds à 16m - Faible immunité au bruit. D'autres normes ayant d'autres spécifications ont été développées pour échapper dans une certaine mesure aux limitations parfois contraignantes imposées par la RS232. B La norme RS423 Cette norme spécifie les caractéristiques électriques des circuits d'interface en mode transmission de tension, entre émetteur et récepteur symétrique. Ce type de liaison est utilisé pour la transmission en série de signaux binaires entre des Equipements Terminaux de Données (DTE) et des Equipements terminaux de Circuits de Données (DCE). Le DTE étant en général un terminal et les DCE pouvant être un moniteur ou une imprimante. BTS IG2 -Cours d’Architecture Page 44 sur 55 On peut utiliser les fréquences de transmission de données typiques de 100kbps sur 30m, ou 3kbps sur 1200m. La norme RS423 autorise un émetteur et jusqu'à 10 récepteurs pour un seul circuit de données. On peut connecter ce standard avec d'autres standards d'interface numérique tels que RS232, RS422 et RS485. Caractéristiques : - Point à point ; - Alternée ou half-duplex ; - Débit informationnel moyen : - 100kbauds à 1200m - Immunité au bruit moyenne. Il est très difficile, de transmettre des données à grande vitesse, sur de grandes distances et dans des conditions de bruit élevé, entre des parties d'un système informatique et des périphériques, en utilisant des Emetteurs et Récepteurs asymétriques. D'ou la nécessité de créer des standards symétriques tels que les normes RS422 et RS485. C La norme RS422 La norme de transmission symétrique RS422 a été élaborée en 1975 pour définir les car caractéristiques de transmissions des signaux de données de base de temps ou de commande entre un ordinateur hôte et ses périphériques. Elle a été révisée RS422A en décembre 1978. Une ligne de transmission RS422 est une ligne unidirectionnelle (mode simplex). Une application typique de l'interface RS422 est son utilisation en communication de données dans un aéroport, entre un ordinateur central et de nombreux moniteurs ou stations éloignés , tels que les moniteurs de départs et d'arrivées. Dans cette application on utilise une ligne en paire torsadée unique pour relier ensemble un terminal de contrôle central et plusieurs moniteurs. La terminaison de la ligne étant disposée à l'extrémité de la ligne la plus éloignée du terminal de contrôle. Caractéristiques : - Point à point ; - Alternée ou half-duplex - Débit informationnel élevé : 10Mbauds à 1200m - Excellente immunité au bruit D La norme RS485 Présentation : Comme la norme RS232C, elle à été normalisée par l'EIA. Elle a été introduite en 1983 et est une version améliorée de la RS422. Dans sa version la plus simple, elle est constituée d'un émetteur de ligne relié à un récepteur de ligne différentiel par une ligne bifilaire torsadée blindée. Lorsqu'un niveau logique 1 est présent sur l'entrée de son émetteur de ligne, celui-ci applique un potentiel de +5V sur le conducteur 1 de la ligne et un potentiel 0V sur le conducteur 2 de cette ligne. Inversement, Lorsqu'un niveau logique 0 est présent sur l'entrée de son émetteur de ligne, celui-ci applique un potentiel de 0V sur le conducteur 1 de la ligne et un potentiel +5V sur le conducteur 2 de cette ligne Le récepteur de ligne est sensible à la différence de tension existant entre les deux conducteurs de ligne, technique qui permet de s'affranchir des tensions induites par les parasites (bruit). Caractéristiques : - Multi Points ; - Alternée ou half-duplex - Débit informationnel élevé : 10Mbauds à 1200m ; - Excellente immunité au bruit. Tableau comparatif des différents normes.: Paramètre RS 232 RS 423A RS 422A RS 485 Asymétrique Asymétrique Symétrique Symétrique Nombre d'émetteurs et de récepteurs 1 émetteur 1 récepteur 1 émetteur 10 récepteurs 1 émetteur 10 récepteurs 32 émetteurs 32 récepteurs Longueur maximum 15 1200 1200 1200 Mode de fonctionnement BTS IG2 -Cours d’Architecture Page 45 sur 55 du câble (m) Débit maximum (baud) 20k 100k 10M 10M E Le port USB Ce port série universel (Universal Serial Bus ) est un nouveau type de prise (1995) , permettant de relier à l'unité centrale jusqu'à 127 périphériques sans ordre hiérarchique précis. Il permet également le branchement des périphériques "à chaud" (sans avoir à éteindre la machine), son avantage sur les ports séries traditionnels tel que le RS232, c'est qu'il permet un ajout rapide et facile de périphériques sur un ordinateur quelconque et les ressources nécessaires sont allouées à la volée par le système d'exploitation. Le port USB est capable d'exploiter clavier, joystick, souris, modem, hauts parleurs, scanner, imprimantes, et même téléphone, il est limité simplement par son débit qui n'est que de 1,5 Mo par seconde au maximum. Le seul inconvénient serait peut-être la longueur maximale d'un câble USB, sans recourir à un hub, qui n'est que de cinq mètres. Le hub (concentrateur) permet de palier au problème du nombre de connecteurs très restreint (seulement deux sur les cartes mères) et ainsi pouvoir connecter plus de 2 périphériques de type USB sur le même ordinateur. Il existe deux types de hub, les hubs non alimentés qui exploite l'alimentation de l'ordinateur et les hubs alimentés qui possèdent leurs propres alimentations et proposent ainsi de fournir l'énergie nécessaire à chaque périphérique. F La boucle de courant Présentation : C'est une liaison issue des techniques électromécaniques de transmission de l'information. Elle permet des liaisons multi machines. En raison de sa simplicité et de sa bonne immunité au bruit, elle est encore utilisée en informatique industrielle et surtout en milieux perturbés (usines). Bien qu'elle n'ait été l'objet d'aucune normalisation, au fil des ans deux standards de liaison se sont imposés : - La boucle de courant 20mA, d'usage général ; - La boucle de courant 500mA, pour les milieux très parasités. Dans cette liaison on module le courant circulant dans une boucle au rythme des informations binaires à transmettre. Ainsi, pour une boucle de courant 20mA, on adopte généralement la convention suivante : - 1 logique correspondant à i = 20mA; - 0 logique correspondant à i = 0mA. Qu'est qu'une boucle de courant ? : Souvent les informations délivrées par un capteur analogique doivent être transmises à distance. Dans la plupart des cas, la méthode la plus commode consiste à convertir l'information de tension en un courant avant la transmission. La boucle de courant la plus communément employée se compose de deux fils assurant à la fois l'alimentation du capteur et du circuit de conditionnement de signal et le transfert de l'information acquise sous la forme d'un courant dont l'intensité est proportionnelle au signal mesuré. Le courant dans la boucle varie généralement de 4mA à 20mA pour la pleine échelle : c'est la boucle de courant 420mA. Jusqu'à 4mA de courant de boucle peut être utilisé pour alimenter le capteur, le circuit de conditionnement de signal et le convertisseur tension courant. Caractéristiques : - Point à point ; - Simplex - Débit informationnel faible : - 19200 bauds à 40m - 4800 bauds à 180m - 2400 bauds à 360m - 1200 bauds à 720m BTS IG2 -Cours d’Architecture Page 46 sur 55 Chapitre 10 - Les puces RISC 1. Objectif de la technologie RISC La Rapidité d'exécution des programmes. La vitesse passe par la simplification du microprocesseur, ce qui entraîne une baisse de la consommation et du coût. 2. Introduction En 1975, les chercheurs d'IBM firent la constatation suivante : moins de 20% des instructions disponibles dans le microprocesseur sont utilisées dans 80% des cas. D'où la question : pourquoi ne pas simplifier les microprocesseur en implantant sur la puce les instructions les plus courantes ? On gagnerait ainsi en vitesse, donc en performance, et on réduirait la surface de la puce, donc la consommation et le coût. C'est cette idée qui fut la base de la technologie RISC (Reduced Instruction Set Computer : microprocesseur à jeu d'instructions réduit) par opposition aux CISC (Complex Instruction Set Computer). Mais que fait-on des instructions complexes ? Il suffit tout simplement de les remplacer par une série d'instructions simples (une multiplication est une série de sommes). Mais à la différence de l'approche CISC, le décodage des instructions complexes est assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur le microprocesseur. Il permet ainsi d'éviter les microcodes à programmer sur la puce. Ceci oblige à avoir un compilateur plus complexe, devant être optimisé de façon à réduire les temps d'exécution, si l'on veut préserver les avantages de la puce RISC. Remarque : une instruction complexe à l'intérieur du microprocesseur n'est en fin de compte qu'un " programme " implantés sur la puce. 3. Le PIPELINE on a vu que la réduction du jeu d'instructions apporte un gain de rapidité, mais l'essentiel des performances vient de l'exploitation du gain de place pour une nouvelle fonction : le traitement en pipeline. Une instruction du programme s'exécute généralement en 5 séquences successives. A chaque séquence correspond une impulsion d'horloge IF : Instruction Fetch, chargement des instructions du cache mémoire vers la file d'instructions. DEC : Décodage, traduction de l'instruction se trouvant sur le haut de la file d'instructions. EX : Exécution, exécution par l'ALU ou la FPU de l'instruction décodée MEM : Memory acces, lors d'une opération de lecture/écriture, la donnée est écrite vers une file de lecture/écriture. Ceci évite de bloquer le pipeline dans le cas où on ne pourrait accéder à la mémoire. WB : Write Back, écriture du résultat de EX ou de MEM La simplification apportée par la technologie RISC ayant conduit à des instructions standards de même longueur, le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions, non pas de façon séquentielle, mais en cascade à 5 étages à la manière d'une chaîne de fabrication à 5 postes de travail (Merci Taylor). Chaque étage est chargé d'une séquence. En permanence, 5 instructions se trouvent donc simultanément à des séquences différentes de traitement. A chaque coup d'horloge, une instruction est entièrement exécutée. t t+1 t+2 t+3 t+4 t+5 ins1 IF DEC EX MEM WB IF DEC EX MEM WB IF DEC EX MEM WB IF DEC EX MEM WB CMP AX,0 IF DEC EX MEM JE Suite ins2 ins3 ins4 ins5 t+6 t+8 MOV AX,I Exemple : chaque cycle : 1 étage activé = 5 instructions en // BTS IG2 -Cours d’Architecture Page 47 sur 55 t+7 MOV BX,J SUB AX,BX Il peut arriver certains conflits : - Conflit de ressource : 2 instructions veulent accéder à la même ressource au même moment - Dépendance de données : un registre (résultat d'une opération précédente) est lu alors qu'il n'a pas encore été écrit. - Aléas de branchement : le processeur n'a pas encore le résultat d'un test et doit choisir entre deux sauts (ex : sauts conditionnels). Résolution des conflits : elle se fait souvent pendant le DECodage. Ressource : on diffère l'accès à cette ressource pour l'instruction la plus jeune Données : pour les registres, il existe sur les ALU des systèmes de by-pass pour récupérer la valeur calculée avant la véritable écriture dans la table des registres (WB) Branchements : le processeur fait le pari sur le branchement. S'il se révèle bon, alors on continue. S'il est mauvais, on invalide toutes les instructions exécutées depuis la prise de décision ce qui est complexe et coûteux en matériel. Pour prédire le branchement, il existe des techniques de statistiques utilisant des buffers de prédiction pour savoir si le branchement a déjà été pris ou non (valable surtout pour les boucles). On associe un bit à chaque instruction dans le cache instructions. Architecture supersacalaire : elle consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités de traitement travaillant en parallèle. La cadence de traitement s'en trouve au mieux multipliée par le nombre de pipelines. Avec 4 pipelines, les microprocesseur RISC les plus récents traitent jusqu'à 4 instructions par cycle. Architecture superpipeline : elle consiste à augmenter la profondeur du pipeline (plus de séquences et une fréquence plus élevée donc t plus petit) permettant ainsi d'augmenter encore la cadence du traitement. Par contre, cette organisation demande une logistique plus complexe pour approvisionner les différents " postes ". Pour l'instant, le bon compromis est un pipeline à 7 étages, le gain est donc beaucoup moins significatif que dans le cas d'une multiplication du nombre de pipelines. 4. Comparaison des architectures RISC et CISC Architecture RISC CISC jeu d'instructions Jeu réduit limité aux instructions simples les plus utilisées dans le traitement. Typiquement plus de 200 instructions Typiquement moins de 100 instructions format des instructions Standard Implémentation des instructions Seules les instructions simples sont gravées La plupart des instructions sont gravées sur sur le silicium. Les autres sont programmées le silicium. Pas de microcodes. Les tâches sous forme de microcodes sur des circuits complexes sont décodées par le compilateur. logiques Accès à la mémoire Seules les instructions de chargement et de rangement de registres (Load et Store) La plupart des instructions y ont accès Vitesse d'exécution Typiquement une instruction par cycle d'horloge Typiquement une instruction pour 3 à 10 cycles d'horloge Avantages Puce plus petite. Fréquence d'horloge plus élevée. Vitesse d'exécution plus grande Développement plus simple des systèmes. Base installée importante Inconvénients Nécessite des compilateurs plus complexes et plus performants. Programme d'application plus long occupant plus de mémoire Technologie gourmande en silicium. Puce plus compliquée à développer. Possibilités d'évolution limitées Variable 5. Conclusion La division entre les concepts CISC et RISC n'est plus aussi dichotomique que par le passé. L'ensemble des microprocesseurs utilise des solutions similaires, même si les uns sont classés CISC et les autres RISC. Le 486 d'Intel et le 68040 de Motorola sont les deux premiers (connus du grand public) processeurs CISC à se rapprocher de la technologie RISC. L'unité centrale contient les instructions les plus courantes, tandis que les instructions complexes sont confiées à une unité spécifique séparée et utilisent le traitement en pipeline. Le Pentium et le 86060 qui ont suivis, vont plus loin en adoptant l'architecture superscalaire. Par contre les microprocesseurs RISC ont tendance à enrichir leur jeu d'instructions et finissent par devenir aussi complexes que des CISC. Si bien qu'aujourd'hui, l'important n'est pas de savoir si tel ou tel microprocesseur est CISC ou RISC, mais de connaître son architecture interne et ses performances. BTS IG2 -Cours d’Architecture Page 48 sur 55 Chapitre 11 - Les ordinateurs multiprocesseurs 1. Introduction Depuis 1971, date à laquelle un ingénieur, d'une grande firme dont je tairais le nom, construisit le premier microprocesseur, appelé 4004. L'augmentation des performances de cette bête appelée plus péjorativement puce, a été 100 fois supérieure à celle des ordinateurs de 1950 à 1970. Les constructeurs prévoient la fabrication d'un microprocesseur travaillant à 10GHz et contenant 1 milliard de transistors pour les années 2010. Cette prédiction est basée sur la fameuse " loi " de Gordon Moore qui dit que le nombre de transistors composant une puce, double environ tous les six mois. Une chose facile à prédire, est que les capacités de calculs d'un seul microprocesseur ne pourront plus être, dans un avenir proche, suffisantes pour les utilisations auxquelles on destine nos ordinateurs. Lorsque l'on parle d'ordinateurs pour la météorologie, le traitement de l'image, la physique des particules, la modélisation économique, les échecs et autres, on ne parle plus d'ordinateurs monoprocesseurs mais d'ordinateurs multiprocesseurs. De plus, il est plus économique de fabriquer des processeurs moins puissants, déstinés à des tâches spécifiques et de les connecter entre eux, que de fabriquer des processeurs plus complexes sachant " tout faire ". Si le rythme de progression des architectures monoprocesseurs diminue progressivement, alors les architectures multiprocesseurs deviendront de plus en plus convaincantes et finiront par prendre le dessus. Le problème qui réside maintenant, est de savoir quel type d'architecture multiprocesseurs les concepteurs vontils adopter pour fabriquer les ordinateurs de demain ? 2. La taxinomie des architectures parallèles L'idée de fabriquer des machines multiprocesseurs, date d'avant la construction du premier microprocesseur. A l'époque, on ne parlait pas de microprocesseurs mais de processeurs. Remarque : dans la suite de ce cours, je vais considérer que tout composant capable de chercher des instructions dans une mémoire et d'y stocker des données, sera appelé microprocesseur. Au milieu des années 60, Flynn a proposé un modèle simpliste pour classer les ordinateurs, en fonction des flots d'instructions et de données. Il a ainsi rangé tous les ordinateurs en quatre grandes catégories. - SISD (Simple Instruction Simple Data), donc un seul flot d'instructions et un seul flot de données. C'est la machine monoprocesseur classique tel que la décrite John Von Neumann et que monsieur tout le monde utilise à l'heure actuelle. - SIMD (Simple Instruction Multiple Data), donc un seul flot d'instructions et plusieurs flots de données. La même instruction est exécutée par plusieurs processeurs utilisant différents flots de données. On ne dispose que d'une seule mémoire d'instructions pour tous les processeurs, mais chacun d'entre eux possède sa propre mémoire de données. Un seul processeur de contrôle gère les instructions. Les processeurs sont spécifiques à la tache qu'ils exécutent. - MISD (Multiple Instructions Simple Data), donc plusieurs flots d'instructions et un seul flot de données. Il n'existe pour l'instant aucune machine architecturée sur ce modèle. - MIMD (Multiple Instructions Multiple Data), donc plusieurs flots d'instructions et plusieurs flots de données. Chaque processeur exécute ses propres instructions et opère sur ses propres données. Ce qui, en étant un peu simpliste, revient à dire que l'on a assemblé une machine comportant plusieurs ordinateurs ayant une architecture de type Von Neumann. Il est certain qu'il n'existe pas une frontière franche entre ces quatre catégories d'ordinateurs, certaines machines appartiennent à plusieurs d'entre elles. Il n'existe pas de systèmes multiprocesseurs étant conçus sur un modèle unique. Pour chaque problème complexe, il existe une machine complexe. L'exemple le plus connu est Deeper Blue le super calculateur d'IBM qui pour battre Garry Kasparov aux échecs, ne contenait pas moins de 300 microprocesseurs. Cette machine est constituée de 32 nœuds possédant chacun un processeur P2SC, huit processeurs d'échecs, une mémoire et des disques de données. En tout, ce sont donc 256 microprocesseurs d'échecs qui fonctionnent en même temps, sous la commande de 32 microprocesseurs " classiques ". Mais Deeper Blue, sait-il jouer aux Dames ? BTS IG2 -Cours d’Architecture Page 49 sur 55 Seul le cerveau humain, qui est composé de " systèmes " parallèles, est capable de s'adapter à toutes les situations (ou presque) Avant les années 80, beaucoup de machines étaient conçues sur le modèle SIMD. Mais la technologie aidant, la " mode " est plutôt aux architectures MIMD et elles possèdent deux atouts majeurs : - L'architecture MIMD est très flexible, elle peut fonctionner comme une machine n'ayant affaire qu'à un seul utilisateur, désirant lancer simultanément plusieurs tâches. - L'architecture MIMD peut être conçues en récupérant les avantages des processeurs standards, à savoir le rapport coût performances. Les gros ordinateurs actuels sont constitués de dizaines de microprocesseurs identiques à ceux utilisés dans l'ordinateur de " monsieur tout le monde " (ou presque). Les machines MIMD peuvent être classées en deux catégories dépendant de leur organisation mémoire. La quantité de microprocesseurs qu'elles disposent fluctuant en fonction des années. - La mémoire partagée centralisée : Plusieurs couples microprocesseur cache se partagent la même mémoire principale physique. Il n'existe qu'un seul bus au travers duquel, les données transitent. Cet ensemble contient un nombre limité de microprocesseurs. En effet le système gérant la mémoire ne peut fournir une infinité de données en un laps de temps très court. On rencontre alors des problèmes de bande passante au niveau du bus transportant les données. Le nombre de microprocesseurs pour la mémoire partagée centralisée est inférieur à cinquante. Si on veut augmenter ce nombre, il faut se résigner à passer d'une mémoire partagée centralisée à une mémoire distribuée entre les microprocesseurs. BTS IG2 -Cours d’Architecture Page 50 sur 55 La mémoire distribuée : On ne parle plus de couples microprocesseur cache, mais de nœuds individuels contenant chacune un microprocesseur, de la mémoire, des Entrées/Sorties et une interface à un réseau d'interconnexion permettant la connexion de tous ces nœuds. La mémoire partagée permet d'étendre le débit mémoire, si la majeure partie des accès mémoire concerne la mémoire locale au nœud. Cette constatation est d'autant plus justifiée que les microprocesseurs sont de plus en plus rapides et exigent des mémoires avec des temps d'accès de plus en plus faible. L'inconvénient majeur de la mémoire distribuée, est que la communication des données entre les microprocesseurs devient très complexe et très ralentie du fait de la transition par le réseau d'interconnexion. Remarque : Avec les machines MIMD ayant un nombre de microprocesseurs inférieur à dix, on peut partager la mémoire centralisée unique. Un bus interconnecte les processeurs et la mémoire, et un cache pour chaque microprocesseur permet d'obtenir une machine ayant une seule mémoire principale avec un temps d'accès uniforme pour chaque microprocesseur. Ces machines sont appelées UMA (Uniform Memory Acces) pour Accès Mémoire Uniforme. Ces machines sont les plus répandues en ce moment, et l'on peut dire que le MAC, le PC et l'ALPHA sont conçus de cette manière. - 3. L'utilisation Les architectures parallèles peuvent être très utilisées dans les domaines où les types de calculs le permettent. Par exemple pour le traitement de l'image, il est facile d'imaginer que l'on peut attribuer un microprocesseur à chaque point de l'image. Mais en revanche, lorsqu'une étape de calcul va dépendre du résultat de l'étape précédente, la multiplication du nombre de microprocesseurs ne diminuera les temps de calculs. Par exemple pour le calcul de la trajectoire d'un mobile. 4. La mise en œuvre Elle est dépendante de la pensée du ou des programmeurs. Dans la méthode de " pensée concurrente ", le programmeur écrit son programme sans se " préoccuper " de savoir s'il est possible de traiter le problème de manière parallèle. Si la machine est conçue pour cela, le compilateur pourra analyser le programme, le découper en différents calculs pouvant être envoyés sur les différents microprocesseurs. Dans la méthode de " pensée parallèle ", le programmeur écrit son programme en se " préoccupant " de la mise en parallèle du problème, et la machine se charge simplement de gérer les microprocesseurs. 5. L'amalgame Afin de ne pas tout mélanger, il est bon de savoir que les systèmes actuels sont constitués d'architectures MIMD qui utilisent la mémoire partagée centralisée et la mémoire distribuée. En effet chaque nœud peut être vu comme étant un ordinateur à mémoire partagée. BTS IG2 -Cours d’Architecture Page 51 sur 55 Chapitre 12 - Le microprocesseur 1.Définition Circuit intégré à une puce, qui dispose des fonctions d’un processeur complet. C'est la société Intel qui, le 15 novembre 1971, lança le premier microprocesseur. Ted Hoff, le créateur, avait réussi à simplifier le principe du calculateur. La puce de Hoff était en quelque sorte un "processeur universel". Le premier microprocesseur, le 4004, contenait 2300 transistors et exécutait 60000 opérations à la seconde. Il en existe à l’heure actuelle, une très grande variété. On peut les classer en famille, chaque famille représente une architecture. Leurs caractéristiques sont nombreuses, mais la principale est la puissance de calculs, dont l’unité est le Mips (Million of Instruction Per Second) pour les microprocesseurs simples et le Mflops (Million of Floating point Opérations Per Second). 2. La composition Interne Composition physique : Le processeur, n’est en fin de compte qu’un "vulgaire " morceau de silicium, dont la taille va de quelques mm2 à quelques dizaines de mm2. Composition électrique. Le microprocesseur est constitué électriquement de millions d’interrupteurs commandés par des tensions. Ces interrupteurs sont appelés transistors, et leur agencement forme un ensemble de fonctions élémentaires telles que OU, ET, ADD, SUB … . Que fait-il ? : Il doit exécuter un programme, ce programme est constitué d’instructions. Ces instructions, il doit les connaître, les stocker, les décoder et les exécuter. Il doit "savoir " où se trouve (aller chercher) la prochaine instruction à exécuter, de plus il doit être "à l’heure ", donc cadencé. Toutes ces obligations conduisent à la conclusion suivante : un microprocesseur est constitué d’un ensemble d’entités permettant de faire les opérations citées ci-dessus, d’où sa composition logique. Composition logique : Le microprocesseur de base n’est constitué en fait que de deux unités fonctionnellement séparées : l’UAL pour Unité Arithmétique et Logique et l’UC pour Unité de commande ou de contrôle. L’UC : elle dirige le fonctionnement du microprocesseur, ses circuits génèrent les signaux nécessaires à l’exécution de chaque instruction d’un programme. C’est un ensemble de dispositifs permettant la coordination du µP afin de lui faire exécuter la suite d’opérations spécifiées dans les instructions d’un programme. Cette unité de commande est constituée de : Un Compteur Ordinal, qui est un registre contenant l’adresse de la case mémoire où est stockée l’instruction suivante à chercher. Un Registre d’instructions, il contient l’instruction à exécuter. Un Décodeur de code opération, qui détermine quelle opération doit être effectuée parmi le jeu d’instructions. Un séquenceur, il génère les signaux de commandes pour piloter les autres entités du microprocesseur, et synchroniser ce dernier avec la mémoire. L’UAL : elle a pour fonction d’effectuer les opérations arithmétiques telles que l’addition, la soustraction et les opérations logiques telles que les fonctions OU, ET, décalage et rotation. 3. Le jeu d’instructions C’est l’ensemble des instructions de base câblées à l’intérieur du microprocesseur, donc que ce dernier peut d’exécuter. Chaque famille de microprocesseurs possède son propre jeu d’instructions. Ce jeu d’instructions est BTS IG2 -Cours d’Architecture Page 52 sur 55 tributaire d’exigences telles que, la simplicité, la rapidité, l’universalité, l’occupation sur la pastille de silicium et le confort du programmeur. Le nombre d’instructions composant ce jeu est compris entre 50 et 350 instructions selon que l’on est à faire à des microprocesseurs RISC (Reduced Instruction Set Computer) ou des microprocesseurs CISC (Complex Instruction Set Computer). Les instructions peuvent être classées en six catégories : Transfert de données, entre le µP et la mémoire, MOVE, LOAD, STORE, … Opérations arithmétiques, ADD, SUB, … Opérations logiques OR, AND, … Contrôles des séquences, sauts conditionnels ou inconditionnels Entrées / Sorties, entre le µP et les périphériques, Divers, décalages, incrémentation, …. 4. Les registres Ce sont des mémoires internes au microprocesseur, leur temps d’accès est en général inversement proportionnel à la fréquence de l’horloge. Leur nombre et leur type varient énormément d’une architecture à l’autre. En règle générale, plus un microprocesseur a de registres et plus il est performant, la quantité varie de 10 à plus de 100. La taille d’un registre se mesure en bit (Binary Information), et lorsque l’on parle d’un microprocesseur 32 bits, cela veut dire qu’il travaille avec des registres de taille 32 bits. Les registres peuvent être classés en six catégories : Registres généraux, ils contiennent les données et résultats des opérations réalisées par le microprocesseur, on les appelle aussi des accumulateurs. Registres spécifiques : Compteur Ordinal (voir ci-dessus), Registre d’instruction (voir ci-dessus), Registre d’état, (PSW : Program Status Word), appelé aussi le CCR registre code condition, il contient différents bits appelés drapeaux (flags) indiquant le résultat d’une condition. Exemple le bit Z indique si le résultat de l’opération précédente est nul. Ces bits sont testés et permettent de faire des sauts dans les programmes. Registre pointeur de pile, il permet de simuler une pile (FIFO ou LIFO) dans la mémoire centrale. Registres de base, ils sont utilisés comme indice pour calculer des adresses effectives. Ils contiennent l’adresse de base, on leur rajoute l’adresse du registre d’instruction et on trouve l’adresse effective. Registres d’index ou d’indice, ils permettent de manipuler des tableaux de données à plusieurs dimensions. Pour connaître l’adresse effective, on somme l’adresse de base, avec l’adresse du registre d’instruction et du registre d’index. Ils sont en général incrémentés ou décrémentés automatiquement après chaque utilisation. Registres de deboggage, ils permettent de faire la mise au point des programmes. 5. Le Langage Le langage de programmation d’un microprocesseur est appelé le langage machine. Il n’est composé que de 1 et de O, donc du binaire. Au début de l’informatique, les programmeurs programmaient en langage machine, ce qui était très pénible, car il fallait aligner des séquences de bits, dont la signification n’avait rien d’évidente pour l’homme. Pour comprendre cette séquence de bits, il fallait compulser une table décrivant toutes les opérations possibles et leur représentation binaire. Par exemple pour additionner deux nombres, on écrivait 10001010 01011000 11010010 (ce n’est qu’un exemple, le codage est pris au hasard). Les 8 premiers bits représentent le codage de l’instruction que l’on nomme le code opératoire, les 2 paquets de 8 bits suivants, représentent les deux nombres à additionner, que l’on nomme opérandes. Par la suite, on a donné des noms aux opérations, que l’on a appelé des codes mnémoniques, exemple : ADD, DIV, OR,… De même pour les données et les résultats, on a pu les mettre sous une forme symbolique. Pour convertir ce "nouveau " langage en langage machine, on utilise un programme que l’on nomme assembleur, donc ce "nouveau " langage s’appelle le langage d’assemblage. Ce langage est toujours exploité et le sera toujours, car il est le seul qui puisse exploiter toutes les ressources du microprocesseur. Tous les noyaux des systèmes d’exploitation sont écrits en langage machine. BTS IG2 -Cours d’Architecture Page 53 sur 55 Langage d'assemblage --------Assembleur-------> Langage machine 6. Fonctionnement L’UC va chercher en mémoire les instructions et les données, en envoyant l’adresse ainsi qu’une commande de lecture ou d’écriture. Pour le cas de la lecture, l’instruction codée en binaire est transférée vers l’UC, où son décodage permet de déterminer l’opération demandée ainsi que la quantité de données nécessaires. A partir de cela, il y a génération des signaux utiles à l’UAL pour déclencher l’exécution de l’instruction. Ensuite, l’UC va chercher les données et les transfère directement à l’UAL. L’UAL exécute l’instruction et transmet le résultat à l’UC, qui va aller le stocker en mémoire. Le cycle se répète ainsi indéfiniment, un microprocesseur ne s’arrête jamais de "travailler ". L’exécution d’une instruction : 1 – Chargement de la prochaine instruction à exécuter depuis la mémoire jusque dans le registre d’instruction, 2 – Modification du compteur ordinal pour qu’il pointe sur l’instruction suivante, 3 – Décodage de l’instruction que l’on vient de charger, 4 – Localisation dans la mémoire des éventuelles données utilisées par l’instruction, 5 – Chargement des données si nécessaire dans les registres internes de l’UAL 6 – Exécution de l’instruction 7 – Stockage du résultat dans la mémoire Retour à l’étape N°1. Les étapes 1, 2, 3, 4 et 7 sont réalisées par l’UC et les autres par l’UAL. 7. La composition Externe Pour communiquer avec le monde externe, le microprocesseur possède tout un ensemble de broches. Ces broches peuvent être regroupées en trois groupes que l’on nomme des bus. Il existe logiquement, mais pas obligatoirement physiquement, trois sortes de bus : le bus de données sur lequel transitent les données et les résultats entre le µP et les composants externes, le bus d’adresses sur lequel le µP envoie les adresses des cases mémoires qu’il désire lire ou bien dans lesquelles il désire écrire, Le bus de commandes sur lequel transite tout un ensemble de signaux permettant de gérer le dialogue entre le µP et les autres composants. Exemple la ligne R/W (Read Write), permet d’indiquer à un boîtier mémoire si le µP va lire une donnée ou écrire un résultat. BTS IG2 -Cours d’Architecture Page 54 sur 55 Remarque : sur certains µP, le bus de données et le bus d’adresses ont physiquement, les mêmes broches. On parle alors de bus multiplexé. 8. Fonctionnement Imaginons le scénario suivant, le µP va devoir effectuer l’opération suivante : ADD MémoireX, 32, c’est à dire additionner le contenu de la MémoireX avec la valeur 32 et ranger le tout dans la case MémoireX, et il ne "sait " pas encore. Quelles sont les étapes de ce travail ? (1) Le µP va chercher en mémoire le code opératoire de l’instruction à exécuter, donc il faut qu’il lise le contenu d’une case mémoire. Pour cela, il met sur son bus d’adresse, le code binaire de l’adresse de la case mémoire contenant le code opératoire de l’instruction à exécuter. Il positionne la ligne R/W à 1, pour signaler à la mémoire qu’il désire faire une opération de lecture, (2) Cette instruction est récupérée par l’UC qui la stocke dans le Registre d’Instruction, (3) L’UC décode cette instruction et constate qu’elle a besoin de deux opérandes, MémoireX et 32, (4) Il faut aller chercher le contenu de MémoireX en mémoire, pour cela le µP refait la même chose que pour le code opératoire de l’instruction à exécuter, (5) Le contenu de cette mémoire est stocké dans un des registres généraux, (6) La valeur immédiate 32 est directement codée par l’UAL, (7) L’UC envoie le code (décodé) de l’instruction à exécuter ainsi que le contenu de MémoireX à l’UAL, (8) L’UAL exécute l’instruction, et envoie le résultat à l’UC. Ce résultat il faut le sauvegarder, (9) Le µP va stocker ce résultat, pour cela, il met sur son bus d’adresse, le code binaire de l’adresse de la case MémoireX, Il positionne la ligne R/W à 0, pour signaler à la mémoire qu’il désire faire une opération d’écriture, le résultat est sauvegarder dans la case mémoire. On peut passer à l’instruction suivante. Remarque : tout cela n’a duré que quelques milliardièmes de secondes ! BTS IG2 -Cours d’Architecture Page 55 sur 55