1 INSTITUT SUPERIEUR D INFORMATIQUE ET DE GESTION (ISIG/GOMA) RDC STRUCTURE DES ORDINATEURS 60H (G2 IG) 2009-2010 45H/ THEORIQUES +15H/ PRATIQUES
2 PLAN 1. STRUCTURE DE BASE DES ORDINATEURS 1.1. Concept à programmes enregistrés 1.2. Concept opérationnel de base 1.3. Unité fonctionnelle 1.4. De langage machine 1.5. Concept de localisation et adresses dans la mémoire 1.6. Modes d'adressage 1.7. Formats d'instruction 1.8. Exécution d'instruction 2. ETUDE DE CAS 2.1. Caractéristiques du microprocesseur 8085 2.2. Modes d'adressage 2.3. Langage d'assemblage 2.4. Programmation d'entrée-sortie 2.5. Piles 2.6. soubroutines 2.7. Unité de traitement: 2.7.1. Strusture de Bus Internes (Bus simples, Deux bus et Trois Bus) 2.7.2. Exécution des instructions 2.7.3. Commandes de séquençassage d étapes 3. ARCHITECTURE DE CONTROLE 3.1. Commande câblée 3.2. Méthodes de conception 3.3. Boîtier de commande de multiplicateur 3.4. Commande micro-programmée 3.4.1 Microinstructions 3.4.2 Ordonnancement 3.4.3 Pré-recherche 3.5 Architectures de localisation (pipeline Architectures)
3 4. OPERATIONS ARITHMETIQUES DANS L ORDINATEUR 4.1 Addition et soustraction des nombres binaires positifs et négatifs 4.2 Multiplication des nombres positifs 4.3 Multiplication d'opérandes porteurs de Signe 4.4 Division des nombres entiers (integers) 4.5 Nombres à virgule flottante (floating) et opérations 5. ORGANISATION DE LA MEMOIRE 5.1 Concepts de base 5.2 Les mémoires semi-conducteur; RAM et ROM 5.3 Embrication de mémoire 5.4 Mémoires cache 5.5 Mémoires virtuelles 6. ORGANSATION DE L ENTRÉE/SORTIE 6.1 Adressage d'entrée-sortie 6.2 Transfert des données 6.3 Synchronisation 6.4 Manipulation d'interruption 6.5 Interfaces d'entrée-sortie OBJECTIFS o o o o L étudiant devra être capable de comprendre le fonctionnement de l ordinateur tant au niveau materiel que logiciel; Il devra aussi être capable d apprécier pleinement l évolution spectaculaire du monde informatique en l occurrence l ordinateur son outil, et ses différents périphériques; Donner du goũt au parcours informatique à l étudiant débutant, l incitant à se familiariser à son langage; Permettre au bénéficiaire du cours à pouvoir comprendre plus tard les condensés de certains autres cours qui se rapportent à la technologie de l ordinateur notamment celui de Systeme d Exploitation comparé, Langages de programmation, Réseaux informatiques, Multimedia etc
CHAP 1. STRUCTURE DE BASE DES ORDINATEURS 4 1.1. Concept à programmes enregistrés (programmes stockés) La plupart des ordinateurs emploient le concept de stockage de programmes conçu par John Von Neumann. Dans celui-ci, on stocke des programmes et des données dans un support de stockage à acces lent (tel qu'un disque dur) et on travaille dessus à partir du support de stockage à accès rapide et volatile, la mémoire RAM. Un ordinateur d'architecture de Von Neumann a cinq parts: une unité d'arithmétique-logique, un boîtier de commande, une mémoire, les dispositifs d'entrée-sortie et un ensemble de bus qui fournit une circulation de données entre ces pièces. Un ordinateur d'architecture de von Neumann exécute ou émule l'ordre suivant d étapes: 1. Chercher la prochaine instruction de la mémoire à l'adresse dans le compteur de programme. 2. Additionnez 1 au compteur de programme. 3. Décoder l'instruction utilisant l unité de commande. 4. Revenir à l'étape 1. Très peu d'ordinateurs ont une architecture pure de Von Neumann. La plupart d ordinateurs ajoutent une autre étape pour vérifier les interruptions, les événements électroniques qui pourraient se produire à tout moment. 1.2. Concept opérationnel de base Historique des ordinateurs La première machine à calculer mécanique (calculatrice) a été inventée par Pascal en 1642. Vingt ans après, Monsieur Samuel Morland, développé un dispositif plus compact qui pourrait multiplier, ajouter, et soustraire. En 1682, Wilhelm Liebnitz a perfectionné une machine qui pouvait effectuer toutes les opérations de base (addition, soustraction, division, et multiplication), aussi bien qu'extraire la racine carrée. Dès 1919, l'électronique arrivait sur scène. Un article par W.H. Eccles et F.W. Jordanie a décrit un «dispositif à déclenchement» électronique qui pouvait être utilisé pour le compte automatique. Les ordinateurs numériques modernes utilisent ces circuits, connus sous le nom de les bascules, pour stocker l'information, effectuent des opérations arithmétiques, et commandent les ordres de synchronisation dans l'ordinateur.
5 Sous la pression des besoins militaires dans la deuxième guerre mondiale, en 1944, la Harvard University a développé un système de calcul connu sous le nom de calculatrice commandée d'ordre automatique En attendant, à l'université de Pennsylvanie, un deuxième système se développait. Ce système, accomplit en 1946, a été appelé ENIAC (Electronic Numerical Integrator and Computer ou ordinateur numérique et intégrateur électroniques (en francais)). ENIAC a utilisé 18.000 tubes à vide dans ses circuits; En 1950, UNIVAC a été développé. Un dispositif marquant d'univac vérifiait ses propres résultats dans chaque étape d'un problème; de ce fait éliminant la nécessité de courir les problèmes plus d'une fois pour assurer l'exactitude. De nouveaux types de circuits et nouvelles manières d'accomplir des choses continuent à être développés à une vitesse rapide. Classifications des ordinateurs Des ordinateurs peuvent être classifiés de beaucoup de différentes manières. Ils peuvent être classifiés par: - Le type de technologie qu'ils emploient (mécanique, électromécanique, ou électronique), - Le but pour lequel ils ont été conçus (but d'usage universel ou spécial), - Par le type de données qu ils peuvent manipuler (numérique ou analogique), - Par le coũt d achat (de $50 à $10 millions et plus), - Et même par leur taille physique (des tous petits à ceux de la taille de pièce). a. Ordinateurs mécaniques Les ordinateurs mécaniques ou analogiques sont des dispositifs utilisés pour le calcul des problèmes mathématiques. Ils se forment des composants tels que des intégrateurs, des attirails, des ressorts, etc. Ces ordinateurs sont analogiques de par leur nature càd utilisent un mode de représentation de l information par une valeur physique variante de façon continue. b. Ordinateurs électromécaniques Les ordinateurs électromécaniques emploient les composants électriques pour exécuter certains des calculs et pour augmenter l'exactitude. Puisque les composants électriques sont plus petits que leurs contre-parties mécaniques, la taille de l'ordinateur est réduite. Les composants employés pour exécuter les calculs sont des dispositifs tels que les amplificateurs, les
6 potentiomètres, etc. Ils sont tous des ordinateurs à but particulier. Ceci signifie qu'ils peuvent seulement être employés pour un type de travail spécifique. c. Ordinateurs électroniques Les premiers traitements mathématiques chez les ordinateurs électroniques ont été résolus en employant des tensions électriques seulement, par exemple des amplificateurs, addition des réseaux et intégration des circuits. Ils ont utilisé les transistors qui consomment moins d énergie. Ces avancés ont permis de réduire sur la taille et le poids des ordinateurs. d. Ordinateurs à but particulier (précis) Un ordinateur à but particulier, comme son nom implique, est conçu pour effectuer une opération spécifique et satisfait habituellement aux besoins d'un type de problème particulier. Un système si informatique serait utile dans des prévisions de temps, le cheminement satellite, etc. e. Ordinateurs polyvalents Des ordinateurs polyvalents sont conçus pour exécuter une large variété de fonctions et d'opérations. f. Ordinateurs analogiques Tous les ordinateurs analogiques sont les ordinateurs à but particulier. Ils sont conçus pour mesurer la continuité des conditions électrique et physique, telles que le courant, la tension, la température, la pression, etc. Notre montre-bracelet (si nondigital); le tachymètre de la voiture; sont également considérés les ordinateurs analogiques. Le rendement d'un ordinateur analogique est souvent un ajustement à la commande d'une machine. Un ordinateur numérique peut traiter des données avec une plus grande exactitude qu'un ordinateur analogique, mais un ordinateur analogique peut traiter des données plus rapidement qu'une machine numérique, chez quelques systèmes. Néamoins il existe des ordinateurs qui combinent les fonctions à la fois, des ordinateurs numériques et analogiques et sont appelés les calculateurs hybrides.
7 g. Ordinateurs numériques (digitaux) Les ordinateurs numériques remplissent des fonctions arithmétique et logique. Nous utilisons généralement les ordinateurs numériques pour des affaires (business) et le traitement de données. Exemples: 1. Comptabilité - les ordinateurs sont idéaux pour garder des disques de livre de paie, imprimer des chèques de règlement, la facturation, et prendre soin de plusieurs autres tâches de comptabilité dans une organisation. 2. Tenue d'archives - les ordinateurs peuvent enregistrer des informations, l inventaire du mobilier et les dossiers du personnel etc 3. La Science - les applications de recherche et développement sont pour la plus part numériques. 4. Le traitement de texte - l'application de traitement de texte des ordinateurs est plus facilitatrice que dactylographier du texte utilisant une machine à écrire. g.1 Générations des ordinateurs numériques L'histoire du développement d'ordinateur est souvent mentionnée à la référence aux différentes générations des dispositifs de calcul ou équipements constitutifs. Chaque génération d'ordinateur est caractérisée par un développement technologique important qui a fondamentalement changé la manière dont les ordinateurs fonctionnent, l idée de toujours penser à la miniaturisation, un bon prix, un outil plus puissant et des dispositifs plus efficaces et plus fiables. Première génération - 1940-1956 : TUBES A VIDE Les premiers ordinateurs ont utilisé des tubes à vide pour des circuits et des tambours magnétiques pour la mémoire, et étaient souvent énormes, occupant des salles entières. Elles coutaient cher pour leur utilisation, utilisaient beaucoup d'électricité, produisaient beaucoup de chaleur ; qui était souvent la cause des défauts de fonctionnement. L'entrée était basée sur les cartes et la bande perforée et la sortie paraissait sur les listes imprimées.
8 Deuxième génération - 1956-1963 : TRANSISTORS Les transistors ont remplacé des tubes à vide et déclenchent la deuxième génération des ordinateurs. Le transistor était de loin supérieur au de tube à vide, permettant aux ordinateurs à devenir plus petits, plus rapides, attrapables à un bon prix, avec plus de rendement optimum et plus fiables que leurs prédécesseurs de première génération. Les ordinateurs de seconde génération se fondaient toujours sur les cartes perforées pour entrer les données (input) et les listes imprimées pour le rendement (output). Troisième génération - 1964-1971 : CIRCUITS INTEGRES Le développement du circuit intégré était le cachet de la troisième génération des ordinateurs. Des transistors ont été miniaturisés et placés sur des puces de silicone, appelées les semiconducteurs, qui ont rigoureusement augmenté la vitesse et l'efficacité des ordinateurs. Au lieu des cartes perforées et de la liste imprimée, les utilisateurs ont agi l'un sur l'autre avec des
9 ordinateurs de troisième génération par des claviers et des moniteurs et se sont connectés par interface sous un système d'exploitation. Quatrième génération - 1971-Présent : MICROPROCESSEURS Le microprocesseur a apporté la quatrième génération d'ordinateurs, comme des milliers de des circuits intégrés ont été construits sur une puce de silicone simple. La puce Intel 4004, développé en 1971, a placé tous les composants de l'ordinateur - du processeur central et de la mémoire de traitement, aux commandes d'entrée-sortie; sur un morceau simple. Cinquième génération - présent et au-delà : INTELLIGENCE ARTIFFICELLE Les dispositifs de calcul de la cinquième génération, basés sur l'intelligence artificielle, sont toujours à l'étude, bien qu'ils y aient quelques applications, telles que la reconnaissance vocale, qui est employée aujourd'hui. Le but de la cinquième-génération est de développer les dispositifs
10 qui répondent à l'entrée de langage naturel, capable de performer une étude et du selforganization ou organisation personnelle. g.2 Classification des ordinateurs Ordinateurs géants Les ordinateurs géants sont les ordinateurs les plus puissants. Ils sont employés pour des problèmes exigeant des calculs complexes. En raison de leur taille et dépenses, les ordinateurs géants sont relativement rares. Des ordinateurs géants sont employés par des universités, des organismes gouvernementaux, et de grandes entreprises. Ordinateurs centraux Les ordinateurs centraux peuvent soutenir des centaines ou des milliers d'utilisateurs, manipulant les quantités massives d'entrée, le rendement, et le stockage. Des ordinateurs centraux sont utilisés dans de grands organismes où beaucoup d utilisateurs ont besoin de l'accès aux données partagées et aux programmes. Des unités centrales sont également utilisées comme serveurs de commerce électronique, manipulant des transactions au-dessus de l'internet.
11 Mini-ordinateurs Les mini-ordinateurs sont plus petits que les ordinateurs centraux, mais plus grands que des micro-ordinateurs. Les mini-ordinateurs ont habituellement les bornes multiples. Des mini-ordinateurs peuvent être utilisés comme serveurs de réseau et serveurs d'internet. Micro-ordinateurs, ou PCs (Personal Computers) Des micro-ordinateurs sont généralement connus comme PCs. Le terme «PC» est appliqué aux IBM-PCs ou aux ordinateurs compatibles. Les ordinateurs de bureau normaux sont le type le plus commun de PC. Des ordinateurs de cahier (ordinateur portable) sont employés par les personnes qui ont besoin de la puissance d'un système de bureau, mais par également la portabilité. Les PCs tenus dans la main, manquent de la puissance d'un PC d'ordinateur de bureau ou de cahier, mais offrent des dispositifs pour les utilisateurs qui ont besoin de fonctions limitées et de petite taille.
12 1.3. Unité fonctionnelle Les systèmes de calculateur numérique se composent de trois unités fonctionnelles distinctes. Ces unités sont: o Unité d'entrée o Unité centrale (Micoprocesseur + mémoire centrale) o Unité de sortie (rendement) Ces unités sont reliées les unes aux autres par les câbles électriques pour permettre la communication entre elles. Ceci est ce qui permet à l'ordinateur de fonctionner comme un système. A. Unité d'entrée Un ordinateur doit recevoir des données et des rapports de programmes pour fonctionner correctement et pouvoir résoudre des problèmes. La méthode d'alimenter des données et des programmes à un ordinateur est accomplie par périphérique d'entrée. Les périphériques d'entrée d'ordinateur indiquent des données depuis source, telle que le clavier, et traduisent ces données en impulsions électroniques pour le transfert en unité centrale de traitement. Quelques périphériques d'entrée typiques sont un clavier, une souris, ou un scanneur. B. Unité Centrale Le cerveau d'un système informatique est l'unité centrale. L'unité centrale traite des données. Elle transfère alors un intermédiaire ou un résultat final de l'unité centrale de traitement à un ou plusieurs appareils de sortie. L'unité centrale se compose d'une unité de commande, d'une section arithmétique et logique, et d'une section interne de stockage (mémoire
13 centrale). Chaque section dans l'unité centrale remplit une fonction spécifique et a un rapport particulier avec les autres sections. B.1 Unité de commande ou boîtier de commande L'unité de commande s occupe de gérer l écoulement de données et l exécution des instructions d un programme. Elle maintient également l'ordre dans l'ordinateur. L unité de commande contient deux registres importants: o Le registre d instruction (RI) qui contient l instructuction en cours d exécution (une instruction comporte plusieurs champs: un champ code-operation et entre 0 et 3 champsopérande ); o Le compteur Ordinal (CO) qui contient l adresse de la prochaine instruction à exécuter (qu il faut aller chercher en mémoire). Généralement, les instructions se suivent de manière sequentielle, il suffit alors d incrémenter le CO de 1 à chaque cycle du CPU pour obtenir l adresse de l instruction suivante. L unité de commande contient aussi un dispositif de décodage des instructions (décodeur) et un séquenceur de commandes qui active les circuits nécessaires à l exécution de l instruction en cours. Cette unité a besoin des signaux d une horloge pour enchainer les commandes. Cette horloge est généralement externe à l unité. les registres de cette unité ne sont pas accessibles aux programmeurs. B.2 Section arithmétique et logique: La section de calcul ou arithmétique et logique (UAL) contient tous les circuits électroniques qui realisent effectivement les opérations désirées. Ces opérations sont principalement l addition, la soustraction, la multiplication, la division, la négation (inversion des bits), les opérations logiques (ET, OU, OU exclusif). Les opérandes nécessaires pour ces opérations se trouvent dans des registres contenus dans cette unité. Ces registres sont accessibles aux programmeurs. B.3 Section interne de stockage La section interne de stockage s'appelle parfois stockage primaire, mémoire, mémoire centrale. La section de stockage atteint quatre objectifs; - D'abord, des données sont transférées à partir d'un périphérique d'entrée à la zone de stockage d'entrée où elles demeurent jusqu'à ce que l'ordinateur soit prêt à les traiter.
14 - En second lieu, une zone de stockage de fonctionnement (mémoire «de zone de travail») dans cette section de stockage tient les données étant traitées et les résultats intermédiaires des opérations d'arithmétique et logique. - Troisièmement, la section de stockage maintient les résultats de traitement dans la zone de stockage de sortie. Là, les résultats de traitement peuvent être transférés à un appareil de sortie. - La quatrième section de stockage, la zone de stockage de programme, contient les rapports de programme transférés à partir d'un périphérique d'entrée pour traiter les données. Dans la mémoire, les instructions sont stockées sous forme de code machine. Par exemple, une instruction d addition, dans un microprocesseur Intel 8086, est codée: 10000001. Les données sont stockées selon d autres codes. Dans le code ASCII (American Sandard Code for Information Interchange) le caractère y est codé ainsi: 01011001. Chaque caractère du clavier est donc porté par un ensemble de 8 bits (contitués des 0 et 1). Parallèlement aux caractères, qui constituent une unité logique d information, la mémoire centrale est divisée physiquement en cellules. Chaque cellule correspond à un mot mémoire et possède une adresse qui lui est propre. Ainsi les cellules peuvent être adressées séparement pour une opération de lecture ou d écriture. La longueur d une mémoire a beaucoup varié d une machine à une autre, par exemple 1, 4, 8, 12, 16, 24, 32, 48, 60, 64 bits. A présent les valeurs 32 et 64 se sont généralisées dans la plupart des ordinateurs. La longueur du mot mémoire est une caractéristique importante de l architecture d un ordinateur et reflète la structure des différents composants fonctionnels (principalement de l unité centrale). Le mot mémoire [word] est l unité d information adressable, c est-à-dire que toute opération de lecture ou d écriture porte sur un mot mémoire. A chaque mot mémoire est associé: o Une adresse (unique) indiquant la position en mémoire; o Un contenu (instruction ou donnée). La capacité d une mémoire s exprime donc en function du nombre de mots mémoires ainsi que du nombre de bits par mot. Un registre est une cellule mémoire ayant une fonction particulière. Dans la mémoire centrale on trouve deux types de registres, le registre d adresses qui contient l adresse d un mot mémoire et le registre mot qui contient le contenu d un mot mémoire. Un registre mot a la même taille qu un mot mémoire, alors qu un registre d adresse doit permettre d adresser tous les mots de la mémoire.
15 B.4 Fonctionnement de l ordinateur L exécution d un programme se déroule selon le modèle suivant: o Le programme et les données sont chargés en mémoire centrale (d ou le nom de machine à programme enregistré); o Les instructuctions du programme sont amenées séquentiellement (une par une) à l unité de contrôle qui les analyse et déclenche le traitement approprié en envoyant des signaux à l unité arithmetique et logique. Le passage à l instruction suivante est automatique; o Le traitement peut nécessiter de faire appel aux unités d entrées/sorties ou à la mémoire centrale. Une antemémoire rapide, appelée cache est normalement placée entre le CPU et la mémoire centrale faisant cette dernière plus rapide que normalement.. B.5 Unité de sortie Pendant que des rapports et les données de programme sont reçus dans l'unité centrale d'un périphérique d'entrée, les résultats des données traitées sont envoyés de cette même unité
16 centrale de traitement vers un APPAREIL de SORTIE. Ces résultats sont transférés de la zône de stockage de sortie vers un dispositif de stockage de masse, telle qu'une unité de disque dur, disquette, etc 1.4. Langage Machine Il est le langage de plus bas niveau que l'ordinateur comprend. L'ordinateur convertit tous les langages de haut niveau, en langage machine avant d'exécuter tous les rapports. Le langage machine est écrit sous forme binaire qu'un ordinateur peut exécuter directement. Ce langage est également appelé code machine ou code objet. (par exemple 0010 dans de langage machine est équivalent à 2 dans la langue humaine) 1.5. Concept d emplacement dans la mémoire et Adressage Emplacement dans la mémoire La mémoire centrale supporte les données et les programmes qui sont immédiatement accessibles par le microprocesseur. La mémoire est constituée d une séquence chiffrée des cellules. Chaque cellule supporte un nombre binaire. La mémoire centrale d un ordinateur X a 1024 cellules numerotées de 0 a 1023, un numéro stocké dans une cellule de la mémoire peut soit être une instruction en langage machine qui est une partie de quelques programmes ou alors des données à être manipulées par ces programmes là. Les ordinateurs modernes ont des millions cellules dans la mémoire. Généralement, chaque cellule supporte un nombre binaire de 8 bits. La mémoire centrale est souvent appellée RAM. Le terme RAM représente «la mémoire à accès aléatoire» ce concept est souvent utilisé pour désigner la mémoire centrale de l ordinateur, bien que la mémoire à accès sélectif ayant un sens plus large. «RAM» se rapporte correctement à n'importe quel bloc de mémoires qui se compose d'une série de cellules qui peuvent être accédés «au hasard» -- c'est-à-dire, n'importe quelle cellule peut être accédé à tout moment. L'unité centrale de traitement est le composant actif d'un ordinateur. Elle exécute des programmes en répétant recherche et exécution en cycle et à plusieurs reprises. Pendant le cycle recherche et exécution, le microprocesseur lit une instruction en langage machine dans mémoire centrale et exécute la tâche portée par cette instruction. L'unité centrale de traitement contient plusieurs registres. Chaque registre est une unité de mémoire qui tient un nombre binaire simple. Un cycle recherche et exécution se compose réellement de plusieurs étapes très simples. Chacune de ces petites étapes se compose d'une
17 certaine opération simple, telle que des données mobiles à partir d'un registre à l'autre, stockant le output de l'ual dans un registre, ou additionnant 1 à la valeur stockée dans un registre. L'unité centrale de traitement contient un circuit qui «décide» quoi faire à chaque étape. Ce circuit principal s'appelle le circuit de commande. Le circuit de commande effectue son travail en allumant les fils de commande qui sont reliés aux registres et à d'autres composants de l'ordinateur. Le circuit de commande est simplement un circuit logique. Les fils de commande sont ses outputs. Ses inputs sont des fils qui diffusent toute l'information nécessaire pour déterminer quelle action l'unité centrale de traitement devrait prendre. Adresses mémoire Un circuit électronique qui peut prendre des valeurs "ON/OFF" commutées, peut représenter un élément binaire ou un bit d'information. Une classe de tels dispositifs appelés bascules peut être employée pour stocker un bit. Dans la mémoire des ordinateurs de nos jours est habituellement organisée une séquence des bytes (ou octes [un octet est un groupement de 8 bits]). Chaque octet dans la mémoire est indiqué par une adresse unique d'entier sans signe (integer), qui peut être considérée son «nom». Par exemple: Une rangée des maisons sur une rue avec des numéros de maisons. L'unité centrale de traitement (ou tout autre dispositif souhaitant accéder la mémoire ) peut placer une adresse sur un ensemble de fils reliés à la mémoire (appelé bus d'adresses) dans le but de soit lire (charger) ou alors écrire (stocker) une information dans la mémoire. Une fois que l'information a été écrite à un emplacement particulier (adresse) dans la mémoire, elle demeurera inchangée à moins qu'une suivante écriture ne soit destinée à la même adresse. Sur la figure, les adresses en binaire et en hexadécimal pour mémoire sont montrées. Des ordinateurs sont souvent classifiés par combien de bits peuvent être accédés simultanément, par exemple 16 bits ou 32 bits. Une machine à 16 bits permet habituellement 16 bits pour l'adresse et une machine à 32 bits permet habituellement des bits à partir de 17 jusqu à 32 pour l'adresse.
18 1.6. Modes d'adressage Chaque ordinateur a une variété de manières pour que ses instructions fournissent des adresses à la mémoire d'ordinateur. Les adresses sont nécessaires pour les charges c à d introduisent des données de la mémoire dans des registres, et pour les stocks c à d sont transférés des données à partir des registres pour la mémoire. Chacune des manières de calculer une adresse est régi par le mode d'adressage. 1.7 Formats d instructions Il y a quatre types de formats d'instruction qui sont: - Format d'une adresse: Ces typse d'instructions fonctionnent dans des machines à une adresse. Par ex. le microprocesseur 8085. Exemple : ADD B (B+A - > A) Pou cet exemple on a un instruction ou opcode (ADD) et un operande (B). B s ajoute donc au Registre Accumulateur (A) et retrouvons le resultat de l adition dans A toujours. - Format de deux adresses: Ces types d'instructions fonctionnent dans des machines à deux adresses. Exemple: ADD X, Y (X + Y - > A)
19 - Format de Trois-adresses: Ces types d'instructions fonctionnent dans des machines à trois adresses. Exemple: ADD Z, X, Y (X + Y - > Z) Pour ce cas précis d espèce, Z est considéré registre accumulateur, X et Y deux opérandes qui s additionnent et déversent le résultat dans Z. - Format de Zéro-adresse: par exemple, instructions de pile (stack en anglais) Exemple: ADD - > elle prend les deux premiers éléments de la pile (stack), les additionne et Retourne le résultat toujours dans la mémoire 1.8 Exécution d'instruction - Toutes les instructions (étapes de programme) sont stockées dans la mémoire. - Pour lancer un programme; les différentes instructions doivent être lues de la mémoire dans l'ordre, et être exécutées. - Le compteur de programme met l'adresse mémoire de 16 bits de l'instruction dans le bus d'adresses. - L unité de commande envoie un signal d activation de lecture à la mémoire pour atteindre le contenu de cette dernière. - L'instruction à 8 bits stockée dans la mémoire est placée dans le bus de données et transférée au décodeur d'instruction (registre d'instruction). - L'instruction est décodée et exécutée. Fig: Fonctionnement général de l ordinateur
20 CHAP 2: ETUDE DE CAS 2.1. Caractéristiques du model Intel 8085. Les 8085: Registres 1) Accumulateur: (A) 2) Registre drapeau (F): comporte 5 drapeaux (sollicite seulement pour les opérations mathematiques) qui sont: S- Sign bit ou signe bit (le tout premier bit): il est soit 0 ou 1 Z- zero bit (prend la valeur 1 quand des 8 bits, aucun n est 0) AC- Auxillary Carry bit (prend la valeur 1 si s ajoute 1 au 5e bit du milieu allant de la droite vers la gauche dans une addition mathématique). P- parity bit ou bit de parité (prend la valeur 1 le nombre total des bits en 1 est paire) C- carry bit (prend la valeur 1 si l addition ne nous amène pas à 9 bits au lieu de 8) 3) 3 paires de registres (B/C, D/E, H/L) avec capacité de 8 bits chacun. 4) Indicateur de pile ou stack pointer (dispatche les l information dans les registres) 5) Compteur de programme ou Program counter (envoie les adresses pour lecture de l information dans la mémoire)
21 2.2. Modes d'adressage Les modes d'adressage suivants sont disponibles dans la pratique, a. Adressage implicite Dans ce type de mode d'adressage, aucun opérande (registre ou données) n'est spécifié dans l'instruction. L'opérande est inhérent (joint inséparablement) à l'instruction. Exemple: CMA (Complement Accumulator ou accumulateur de complément), b. Adressage immédiat Dans ce type d'adressage les 8 bits de données sont directement passées comme opérande. La donnée est immédiatement déplacée vers le registre. Exemple: MVI R1 4 c. Adressage Direct Dans ce type d'adressage, l'adresse mémoire directe est donnée comme opérande. Exemple: LDA C500 d. Adressage de registre Dans ce type d'adressage, les données d'un registre sont passées à un autre registre. Exemple: MOV B A Pour ce cas, la donnée de A est passée dans B (B A) e. Adressage indirect de registre Dans ce type d'adressage, les données dans la mémoire, dont l'adresse est stockée dans un registre sont passées à un autre registre. Exemple: MOV R1 (R2) où R2 contient une adresse et pas la valeur. f. Adressage Indexé ou répertorié Dans ce type d'adressage, la constante ou la donnée stockée dans un registre sera donnée comme un tableau indexé d'un autre registre. Exemple: MOV R4, A(R3) où A est un tableau et un R3 est une donnée constante. g. Adressage Basé-index Quelques machines ont un mode d'adressage en lequel l'adresse mémoire est calculé en additionnant deux registres. Ce type d'adressage s'appelle adressage basé-index. Exemple: MOV R1, (R2 + R3), LDA (R1 + R2), etc
22 2.3. Langage d'assemblage Il est un langage symbolique qui est convertie par un ordinateur en programmes de langage machine exécutables. Il est connu autrement comme un ensemble d'instructions qu'un programmeur peut employer pour créer un programme a usage sur un processeur spécifique. Le langage d'assemblage est traduit en langage machine par un logiciel appelé assembleur. 2.4. Programmation Inpout/Output Jeu d'instructions 8085 1) Instructions de transfert des données MOV reg, reg ex. MOV B A MVI reg 8bits de données (donnée immédiate) ex. MVI A 32H LDA 16bits d adresse ex. LDA C0 05 Charger l'accumulateur avec le contenu de la cellule spécifique de mémoire portée par l'adresse 16bits STA 16bits d adresse ex. STA C0 05 Stockez le contenu de l'accumulateur dans la cellule spécifique portée par l'adresse 16bits dans la mémoire LDAX Rp (Rp= paire de registres) ex. LDAX B (Charge l'accumulateur des données contenues dans la cellule de mémoire où l adresse de mémoire 16bits est stockée dans BC, la paire de registres) STAX Rp (Rp = paire de registres) ex. STAX B (Stocke le contenu de l'accumulateur dans la cellule de mémoire où l'adresse mémoire 16bits est stocké dans BC, paire de registres)
23 IN portaddr ex. IN 00 (Lit les données du dispositif d'entrée, 00 représente l'adresse du port d entrée de données dans le processeur quand le dispositif est utilisé) OUT portaddr ex. OUT 00 (Écrit des données au dispositif d'affichage où 00 représente l'adresse de port de l'affichage) 2) Instructions arithmétiques - Addition ADD reg ex. ADD B [A] <- [A]+[B] ADI 8bits data (Add Immediate) ex. ADI 47H [A] <- [A] + 47H - Soustraction SUB reg ex. SUB [A] <- [A]-[C] SUI reg ex. SUI 5F H [A] <- [A] - 5F - Incrément/décroissance INR reg Incrémente le contenu d'un registre spécifique par reg ex: INR B Incrémente le contenu du registre B par 1(AE+1= AF) DCR reg Décrémente le contenu d'un registre spécifique par reg ex: DCR D Décrémente le contenu du registre D par 1 (AF-1= AE) INX Rp
24 Incrémente le contenu d'une paire de registres spécifique par Rp ex: INX B Incrémente le contenu de la paire de registres BC par 1 DCX Rp Décrémente le contenu d'une paire de registres spécifique par Rp ex: DCX B Décrémente le contenu de la paire de registres BC par 1 3) Instructions logiques ORA reg ORI 8bits de donnees ANA reg ANI 8bits de donnees XRA reg XRI 8bits de donnees CMA - Complémente le contenu de l'accumulateur (effectue l opération NOT) CMP reg - Compare le contenu de l'accumulateur à celui du registre spécifié par reg CPI 8bits de données - Compare le contenu de l'accumulateur aux données immédiates spécifiquées par les données 8bit. 4) Instructions de branchement JMP 16 bits d adresse [saut sans condition] L'ordre de programme saute sans condition aucune à une cellule de mémoire défini par l'adresse memoire de 16bits. JC 16 bits d adresses [saut conditionné] La séquence de programmes saute à une cellule de mémoire définie par les 16bits d'adresse si la case drapeau Carry du registre drapeau porte le bit 1. JNC 16bits d adresse [saut conditionné] La séquence de programmes saute à une cellule de mémoire définie par les 16bits d'adresse si la case drapeau carry du registre drapeau porte le bit 0. JZ 16bits d adresses [saut conditionné] La séquence de programmes saute à une cellule de mémoire définie par les 16bits d'adresse si la case drapeau Zéro du registre drapeau porte le bit 1.
25 JNZ 16bits d adresses [saut conditionné] La séquence de programmes saute à une cellule de mémoire définie par les 16bits d'adresse si la case drapeau Zéro du registre drapeau porte le bit 0. 5) Instructions du système ou de commande numérique HLT (Halt) ---------------- signifie Fermer complétement NOP (No OPeration) ------- signifie Attendre CF (Close Function) ------- signifie Fin du Programme 2.5. Piles (Stacks) La pile est un secteur de mémoire identifié par le programmeur pour la mémoire temporaire d'information. La pile est une structure de LIFO. (De type "dernier entré-premier sorti".) La pile se développe normalement dans l'arrière-plan de la mémoire. En d'autres termes, le programmeur définit le fond de la pile dans l idée de réduire la plage d'adresses. Dans le modèle 8085, la pile est définie en plaçant le registre de SP (Stack Pointer ou Indicateur de Pile). LXI SP, FFFFH Ceci place l'indicateur de pile à la cellule FFFFH (fonds de mémoire pour les 8085).
26 Sauvegarde de l information dans la pile - L'information est sauvée dans la pile par sa POUSSÉE (PUSHing) et est retirée pour de cette pile par le POPing it off. - Le modèle 8085 fournit deux instructions: POUSH et POP pour stocker l'information dans la pile et la retirer de là. Ensemble le POUSH et le POP fonctionnent avec des paires de registres seulement. L'instruction POUSH POUSH B (1 Byte d instruction). Elle inclut les étapes suivantes. Décrémente SP Copie le contenu du registre B dans la cellule de mémoire indiqué par le SP Décrémente SP Copie le contenu du registre C dans la cellule de mémoire indiqué par le SP L'instruction POP POP D (1 Byte d instruction). Elle inclut les étapes suivantes Copie le contenu de la cellule de mémoire indiqué par le SP pour l enregistrer dans E Incrément SP
27 Copie le contenu de la cellule de mémoire indiqué par le SP pour l enregistrer dans D Incrément SP Opération de la pile Pendant le pushing, la pile fonctionne dans un décrement puis s en suit un modèle de stockage. L'indicateur de pile est décrémenté d'abord, puis l'information est placée dans la pile. Pendant le poping, la pile fonctionne dans un usage, apres incrémente alors le modèle. L'information est retirée du dessus de la pile et puis l'indicateur est incrémenté. L'indicateur SP pointe toujours le dessus de la pile. 2.6 Soubroutines Une soubroutine est un groupe d'instructions qui seront employées à plusieurs reprises dans différents emplacements du programme. Plutôt que répèter les mêmes instructions plusieurs fois, elles peuvent être groupés dans une soubroutine qu on appelerait a partir de differents emplacements. Dans le langage d'assemblage, une soubroutine peut exister n'importe où dans le code. Cependant, il est usuel de placer des soubroutines séparément du programme principal. Le modèle 8085 a deux instructions pour traiter avec les soubroutines. L'instruction CALL est utilisée comme moyen de réorienter l'exécution du programme à la soubroutine. L'insutruction RET est employé pour renvoyer l'exécution au programme d'appel. L'instruction CALL CALL 4000H (instruction de 3 octets) Quand l'instruction CALL est recherchée, le programme principal sait que les deux emplacements suivants de la mémoire contiennent 16bits d adresse de la soubroutine dans la mémoire
28 Le programme principale lit l'adresse de la soubroutine dans les deux cellules suivantes suivant celle portant l opcode et stocke les 8 premiers bits d adresse dans le registre W et les 8 derniers dans le registre Z. Pousser (push) l'adresse de l'instruction juste après le CALL dans la pile [ça retourne l'adresse] Charge le compteur de programme avec les 16 bits d adresse à partir de la paire de registre WZ L'instruction RET RET (1 Byte d instruction) Récupère l'adresse de retour du dessus de la charge de pile Charge le compteur de programme de l'adresse de retour, 2.7. Unité de traitement. 2.7.1. Structure interne des BUS Bus: Un groupe partagé de fils utilisés pour communiquer des signaux parmi des dispositifs.
29 La structure de Bus du modèle 8085 Les 8 bits du microprocesseur modèle 8085 (ou du MPU Micro Processing Unit) communique avec les autres unités utilisant un bus d'adresse de 16 bits, un bus de données à 8 bits et un bus de commande. Bus d'adresses - Se compose de 16 lignes d'adresse: A0 A15 - Fonctionne en mode continu (unidirectionnel): Les bits d'adresse sont toujours envoyés du MPU aux périphériques, et pas l inverse. - 16 lignes d'adresse sont capables d'adresser un total de 216 = 65.536 (64k) emplacements dans la mémoire - Adresses mémoire: De 0000 (Hex) à FFFF (Hex) Bus de données - Se compose de 8 lignes de données: D0 D7 - Fonctionne en mode bi-directionnel: Les bits d'informations sont envoyés du MPU (MicroProcessing Unit) aux périphériques, aussi bien que des périphériques au MPU. - Plage des données: 00 (Hex) FF (Hex) Bus de commande Le bus de commande est utilisé aux transferts de signaux de commande. Il se compose de diverses lignes portant les signaux de commande tels que l activation de droit de lecture/écriture, les bits de drapeau. Les signaux de commande typiques sont:
30 - Lecture de la mémoire - L écriture en mémoire - La lecture I/O - L ecriture I/O 2.7.2. Exécution des instructions La période de temps pendant laquelle l'instruction est recherchée de la mémoire et exécutée est appelée exécution de l'instruction. Ce procédé est accompli par l'unité centrale de traitement recherchant une instruction stockée dans la mémoire, exécutant alors l'instruction recherchée dans l'unité centrale de traitement avant la marche à suivre pour rechercher la prochaine instruction dans mémoire. Ce processus continue jusqu'à ce qu'on lui demander de s'arrêter. Un cycle de base d'exécution d'instruction peut être décomposé en étapes suivantes: 1. Cycle de recherche 2. Cycle d exécution Cycle de recherche Pour commencer le cycle de recherche, l'adresse qui est stockée dans le compteur de programme (PC) est transférée au registre d'adresse mémoire (MAR= Memory Address Register). L'unité centrale de traitement transfère alors l'instruction située à l'adresse stockée en MAR au registre d'amortisseur de mémoire (MBR=Memory Buffer Register) par l'intermédiaire des lignes de données reliant l'unité centrale de traitement à la mémoire. Ce transfert à partir de la mémoire à l'unité centrale de traitement est coordonné par l'unité de commande (CU= Control Unit). Pour finir le cycle, l'instruction nouvellement recherchée est transférée au registre d'instruction (IR) et, l Unite de Commande (CU) incrémente le PC (Programme Counter) d'indiquant le prochain emplacement d'adresse dans la mémoire. Le cycle recherche illustré ci-dessus peut être récapitulé par les points suivants: 1. PC=>MAR 2. MAR=>mémoire=>MBR 3. MBR=>IR 4. PC incrémenté
31 Après que l'unité centrale de traitement ait fini de rechercher une instruction, le CU vérifie le contenu de l'ir et détermine quel type d'exécution doit être effectué après. Ce processus est connu comme la phase de décodage. L'instruction est maintenant prête pour le cycle d'exécution. Cycle d exécution Une fois qu'une instruction a été chargée dans le registre d'instruction (IR), et le boîtier de commande (CU) a examiné, décodé l'instruction recherchée et a déterminé la ligne de conduite exigée à prendre, le cycle d'exécution peut comporter quelques opérations complexes (généralement appelées les opcodes). Les actions dans le cycle d'exécution peuvent être classées par catégorie dans les quatre groupes suivants: 1. Unité centrale de traitement (CPU) - Mémoire: Des données peuvent être transférées à partir de la mémoire à l'unité centrale de traitement ou à partir de l'unité centrale de traitement à la mémoire. 2. UNITÉ CENTRALE DE TRAITEMENT - ENTRÉE-SORTIE: Des données peuvent être transférées à partir d'un module d'entrée-sortie à l'unité centrale de traitement ou à partir de l'unité centrale de traitement à un module d'entrée-sortie. 3. Traitement de données: L'unité centrale de traitement peut performer une certaine opération d'arithmétique ou de logique sur des données par l'intermédiaire de l'unité arithmétique-logique (ALU). 4. Commande: Une instruction peut spécifier que l'ordre de l'opération peut être changé. Par exemple, le compteur de programme (PC) peut être mis à jour avec une nouvelle adresse
32 mémoire pour refléter que la prochaine instruction recherchée, devrait être lue de ce nouvel emplacement. Ceci peut être expliqué par un exemple, ADD ACC, memory Cette opération ajoute les données stockées dans ACC avec les données qui sont stockées dans l'emplacement de mémoire spécifique dans l'instruction utilisant l'ual. L'opération commence en transférant la plage d'adresses de l'instruction à partir de l'ir à MAR. L'unité centrale de traitement transfère alors l'instruction située à l'adresse stockée en MAR au MBR par l'intermédiaire des lignes de données reliant l'unité centrale de traitement à la mémoire. Ce transfert à partir de mémoire à l'unité centrale de traitement est coordonné par le CU. Après, l'ual ajoute les données stockées dans le ACC et le MBR. Pour finir le cycle, le résultat de l'opération d'addition est stockée dans l ACC pour un futur usage. L'opération illustrée ADD peut être récapitulée en des points suivants: 1. IR[partie d adresse] =>MAR 2. MAR=>memoire=>MBR 3. MBR+ACC=>ALU 4. ALU=>ACC
CHAP 3: ARCHITECTURE DE CONTROLE 33 En général l unité de commande reçoit les entrées à partir de diverses unités et envoie les sorties en dépendant. Les entrées que l unité de commande reçoit sont: * Horloge: la façon dont le CU gère le temps. L unité de commande cause une microopération (ou un ensemble de micro-opérations simultanées) à être exécuté pour chaque impulsion d'horloge. Ceci est désigné parfois sous le nom de la durée de cycle du processeur, ou du temps de rhythme. * Registre d'instruction: L'opcode de l'instruction courante est employé pour déterminer quelle micro-opération à exécuter pendant le cycle d'exécution. * Drapeaux: Ceux-ci sont nécessaires par l unité de commande pour déterminer le statut de l'unité centrale de traitement et des résultats des opérations précédentes d'alu. * Signaux de commande de bus de contrôle: La partie de bus de commande du bus Système, fournit des signaux à l unité de commande, tels que des interruptions et des accusés de réception Les sorties fournies par l unité de commande sont: Signaux de contrôle dans l'unité centrale de traitement: il en existe de deux types: ceux qui causent des données à être déplacées à partir d'un registre à l'autre, et ceux qui activent les fonctions spécifiques de l UAL. Signaux de contrôle au bus de contrôle: Ceux-ci sont également de deux types: signaux de commande à la mémoire, et signaux de commande aux modules d'entrée-sortie.
34 La conception de l'unité de commande décrit comment des boîtiers de commande sont établis pour produire et exécuter des signaux de commande. Il y a deux méthodes disponibles pour la conception de l unité de commande. Elles sont: Commande câblée Commande micro-programmée 3.1. Commande câblée Dans cette méthode, la conception du boîtier de commande se compose des circuits fixes et logique (logique combinatoire) qui sont utilisés pour interrompre des instructions et pour produire des signaux de commande. 3.2. Méthodes de conception Il y a trois méthodes à établir une unité de commande sous la commande câblée. Elles sont: Méthode de table d'état Dans cette méthode les fabricants étaient habitués à dessiner une table d état qui produisait de diverses combinaisons de sortie dépendant de différentes combinaisons d'entrée et de différents états de processus.
35 Méthode d'élément à retardement Ici la conception de l'unité centrale de traitement est basée sur les éléments à retardement synchronisés pour la synchronisation de signal de commande. Méthode de compteur d'ordre Cette méthode emploie les compteurs que nous appelons des compteurs d'ordre pour le but de synchronisation. 3.3. Boîtier de commande de multiplicateur Le multiplicateur est une unité à l'intérieur de l'unité centrale de traitement qui est utilisée pour exécuter la multiplication avec les nombres binaire. Exemple de multiplicateur Exemple: (101 x 011) base 2 Noter que l'addition de produits partiels pour n bits, des nombres en base 2 necessitent s'ajouter jusqu'a n chiffres (avec carries) dans une colonne. Noter également que de n x m bits se multipliés ouvrent a une addition de m+n bites de résultats (meme chose que pour les decimaux) 3.4. Commande micro-programmée La commande micro-programmée est une unité de commande avec des stocks de valeurs binaires de commande comme mots dans la mémoire. Cette méthode de conception de commande utilise la ROM pour stocker l'information des signaux de commande. Le principe de la microprogrammation est une méthode élégante et systématique pour produire des ordres de micro-opération dans un système numérique.
36 Microinstructions Le préfixe micro de se rapporte au fait que chaque étape est très simple et accomplissant très peu de résultat. Les microinstructions sont des mots dans la mémoire de contrôle. Chaque mot de contole de mémoire s'appelle une microinstruction et une séquence des mots s'appelle un micro-programme. En d'autres termes, chaque instruction est divisée en plusieurs petites étapes pendant son exécution. Chaque étape est appelée une microinstruction et par conséquent le programme entier s'appelle un micro-programme. cependant, une unité de contrôle dont les étapes de micro-opérations sont stockées dans une mémoire s'appelle unité de commande microprogrammée. Ordonnancement de micro-d'instructions La responsabilité première de l unité de commande est de causer une sequénce de micro opérations. L'exécution d'un programme comprend l'exécution séquentielle d instructions. L'ordonnancement de micro-d'instructions sert de référence comme par exemple prendre la prochaine instruction de la mémoire de controle pour l'exécution de la micro-instruction. L unité de commande permet à l'unité centrale de traitement de passer autravers les microopérations dans un ordre approprié, basée sur comment le programme devrait être exécuté. Cette procédure s'appelle ordonnancement ou séquençage. Exécution de micro instructions Ceci signifie: produire des signaux de contrôle requis pour exécuter les micro-instructions. Chaque instruction est exécutée pendant un cycle d'instruction composé des sous-cycles plus courts (par exemple: recherche, indirect, exécution, interruption). L'exécution de chaque souscycle comporte une ou plusieurs opérations plus courtes, c-à-d micro-opérations. En d'autres termes, l unité de commande permet chaque micro-opération à être effectuée. Ceci s'appelle exécution. Le cycle de recherche: Il apparait au début de chaque cycle d'instruction et facilite l instruction être recherchée dans la mémoire. Le cycle indirect: Si l'instruction spécifie une adresse indirecte, alors un cycle indirect doit précéder le cycle d'exécution.
37 Le cycle d'interruption: À l'accomplissement du cycle d exécution, un essai est fait pour déterminer si des interruptions permises se sont produites. Si oui, le cycle d'interruption se produit. Le cycle d interruption se produit principalement quand les soubroutines sont impliquées. Le cycle d'exécution: Elle est la partie importante de chaque cycle d'instruction où l'exécution de chaque instruction se produit et l'objectif du programme est atteint. Pré-recherche La pré-recherche est définie comme un déplacement des données de la mémoire à la cache pour de futurs accès. La pré-recherche est la meilleure manière d'améliorer le temps de récupération. Le but de la technique d'insértion la pré-recherche est de réduire des frequencies d absences dans l'antémémoire cache en fournissant des coups au processeur. 3.5. Architectures de canalisation (pipeline architectures) La canalisation est une technique d'exécution où multiples instructions sont recouvertes dans l'exécution. La canalisation dans l ordinateur est divisée en étapes. Chaque phase accomplit une partie d'une instruction en parallèle. Les étapes sont reliées une à la suivante pour former une pipe instructions, ces pipes entrent à une extrémité, progressent par les phases, et sortent à l'autre extrémité. La canalisation ne diminue pas le moment pour l'exécution individuelle d'instruction. Bien au contraire, elle augmente l évolution d'instruction. Le temps requis pour déplacer une instruction d une phase loin dans le pile-line, est appelé cycle de machine. Etape 1:
38 Eatpe 2: Etape: 3
39 Exercices 1. a. Executér le progragramme suivant sachant que le contenu de la plage d adresse (3000)= INRA. Sont requis pour la résolution de cet exercice, la mémoire centrale et le Microprocesseur, modèle 8085. Les instructions du programme sont données dans l ordre suivant: MVI B, 64H MOV A, B ADD B JNC 3000H CF b. Représenter les instructions du programme ci-dessus dans la mémoire 2. soit une machine dotée d une mémoire centrale de 512 Kmots de 32 bits chacun. Sachant que l instruction type occupe 1 mot mémoire, quelle taille proposeriez-vous pour le registre RI? 3. a. Executér le progragramme suivant sachant que le contenu de la plage d adresse (2000)= B2H, (3001)= STA 2000H [note: 8 bits par mot]. Sont requis pour la résolution de cet exercice, la mémoire centrale et le Microprocesseur, modèle 8085. Les instructions du programme sont données dans l ordre suivant: LDA 2000H MVI D 72H SUB D JNC 3001H DCR A STA 2000H CF b. Représenter les instructions du programme ci-dessus dans la mémoire 4. Réaliser un programme qui calcule les expressions suivantes dans une machine à une à zéro adresse et à une adresse: a. A= B X ( C + D X E F ) G b. R= A { [ B + (E X F) G ] } (C+D) 5. Etant donné les contenus des registres et des mémoires suivants: (8002)= FF (B)= 80 (8003)= CMA (C)= 02 (8004)= DCRA a. Exécuter l instruction suivante sachant que sont requis pour cette exécution la mémoire centrale et le microprocesseur, modèle 8085. Programme: LDAX B INX B ADD C JC 8003 DCRA CF
40 b. Représenter les instructions du programme ci-dessus dans la mémoire. 6. Etant donné les contenus des registres et des mémoires suivants: (XR1)= 1 (2000)= 2 I (Inderect) (XR2)= 2 (2001)= 3 XR1 (Registre d Instruction no 1) (B1)= 1000 (3000)= 4 B1 (Registre de Base no 1) (B2)= 2000 (3001)= 5 (1000)= 0 (0)= 1000 (1001)= 1 a. Quelle est la valeur de F après exécution du programme suivant: LDA 3000H ADD 2000H, XR1 SUB 2001H, B1 MPY 1001H, B2 DIV 2000H ADI 1000H STA F b. Trouver le résultat à la fin des opérations suivantes: LD 3000H, XR1 LD 999, XR2 LD 1000, I
CHAP 4. OPERATIONS ARITHMETIQUES DANS L ORDINATEUR 41 4.1 Addition et soustraction des nombres binaires positifs et négatifs Règles d'addition binaire 0+0=0 0+1=1 1+0=1 1+1=0, et on retient 1 pour les éventuels bits potentiels (il est placé au dessus du bit le plus à gauche du concerné ) Ex: 00011010 + 00001100 = 00100110 (opération d addition) Règles de soustraction binaire 0-0=0 0-1=1, et on emprunte 1 à soustraire des bits suivants 1-0=1 1-1=0 Ex1: 00010101-00010001= 00010100 Ex2: 00110011-00010110=00011101 (opération de soustraction)
42 La soustraction binaire peut être faite d'une autre manière. Cela trouve le complément du deuxième nombre qui s'ajout au premier nombre - Etape 1o. Ce complément est la conversion de chacun des 1 en 0 et des 0 en 1 pour les nombres binaires. - Etape 2e. Au complément de deux (2e membre) on ajoute 1 pour former le 2e membre a jour pouvant intervener dans la soustraction. Par exemple, considérer le deuxième exercice de la soustraction ci-dessus. Le complément de l ercice No2, 22 devient 11101010. Par conséquent le résultat sera: 00110011-00010110=00011101 (il nous est demandé d ignorer le bit 1 en carry et ne considérer que les 8 du résultat) Addition des nombres précédés des signes Additionner des nombres precedes par signes n'est pas sensiblement différent de l addition des nombres qui ne sont pas precedes par signes. considérer trois exemples. Ici le complément ajouté de 1 du nombre négatif, est ajouté au nombre positif.
43 la simple table qui représente l'addition et la soustraction des nombres précédés des signes se presénte comme suit: 4.2 Multiplication de nombres positifs Règles de multiplication binaire 0x0=0 0x1=0 1x0=0 1x1=1 pas d emprunt non plus de retenu Exemples.
44 4.3 Multiplication d'opérandes précédés des signes Le plus facile est de trouver simplement l'importance des deux multiplicandes, multiplier ces derniers, et employer les signes originaux pour déterminer le signe du résultat. Si les multiplicandes avaient les mêmes signes, le résultat doit être positif, s'ils avaient différents signes, le résultat est négatif. La multiplication par zéro est un cas particulier (le résultat est toujours zéro, sans signe de bit). 4.4 Division de nombres entiers Division binaire La division binaire est un processus répété de la soustraction, exactement comme dans la division décimale. Par exemple,
45 4.5 Nombres à virgule flottante et opérations Un nombre à virgule flottante peut être représenté par deux nombres. Ils sont, m - Mantisse e - Exposant par exemple, le nombre 1234,56 peut être écrit comme 123456 * ou 1,23456 *. Considérer l'addition des nombres suivants avec virgule flottante..5372400 * +.1580000 * Ici les exposants doivent être égaux avant de procéder à l addition des nombres. Il existe deux manières de rendre les exposants égaux. * Décaler le point de 3 chiffres à droite du premier nombre ou bien, * Décaler le point de 2 chiffre à gauche du deuxième nombre. Généralement la première méthode cause une erreur quand on addition. Par conséquent la deuxième méthode est préférable puisqu'elle réduit seulement l'exactitude. On exécute les opérations avec la deuxième méthode,
CHAP 5. ORGANISATION DE LA MEMOIRE 46 5.1. Concepts de Base Une unité de mémoire est un composant essentiel dans n'importe quel calculateur (computer) numérique puisqu'elle est nécessaire au stockage des programmes et des données. L'unité de mémoire qui communique directement avec l'unité centrale de traitement s'appelle mémoire centrale. Des dispositifs qui fournissent le stockage de secours s'appellent mémoires auxiliaires. 5.2. Mémoires RAM et ROM La RAM est une mémoire volatile tandis que la ROM est non volatile. La mémoire volatile perd son contenu quand l ordinateur n est plus connecté à l électricite. La mémoire non volatile ne perd pas son contenu même lorsque l ordinateur n est plus alimenté en énergie. Des données, instructions, et informations peuvent être lues et écrites sur la RAM mais la ROM n offre que seule la lecture. La RAM est employée pour stocker le volume des programmes et des données qui sont soumis au changement, pendant que la ROM est utilisée pour stocker les programmes de manière permanente tels que les informations de prise au démarrage de l ordinateur. Les mémoires RAM et ROM sont disponibles en des variétés de taille. Si la mémoire requise pour l'ordinateur est plus grande que la capacité d'une puce, il est nécessaire de combiner un certain nombre de puces pour former la capacité de la mémoire exigée. Morceaux de RAM et ROM Une puce de RAM est mieux appropriée à la communication avec l'unité centrale de traitement si elle a une ou plusieurs entrées de commande qui choisissent le morceau seulement une fois nécessaire. Un autre trait commun est le bus de données bi-directionnel qui permet le transfert des données à partir de la mémoire à l'unité centrale de traitement pendant une opération "de lecture", ou à partir de l'unité centrale de traitement à la mémoire pendant une opération d écriture. Le schéma fonctionnel de RAM est montré comme suit:
47 La capacité de la mémoire est 128 mots de huit bits par mot. Ceci exige une adresse de 7 bits et un bus de données bi-directionnel à 8 bits. Les entrées lire et écrire spécifient l'opération de mémoire et les deux entrées de commande (CS= Chip Select) controlent les inputs dépendamment de la puce selectionnée par le microprocesseur. La table de fonction spécifie l'opération de la puce de RAM. L'unité est en fonction seulement quand CS1 = 1 et CS2 = 0. La barre sur la deuxième variable choisie indique que cette entrée est permise quand elle est égale à 0. si les entrées de la puce selectionnee ne sont pas permises, ou si elles sont permises mais lire ou écrire des entrées ne sont pas permises, la mémoire est empêchée et son bus de données est dans un état à grande impédance. Quand CS1 = 1 et CS2 = 0, la mémoire peut être placée dans de lecture ou ecriture. Quand l'entrée de WR (Write) est permise, la mémoire stocke un octet du bus de données dans un endroit spécifique par les lignes d'entrée d'adresse. Quand l'entrée de RD (Read) est permise, le contenu de l'octet choisi est placé dans le bus de données. Table de fonction. Légende: Inhibit=empêchée Impédance= Quantite qui détermine l amplitude du courant pour un voltage donné dans un circuit à courant alternatif. La puce de ROM est organisée de la même façon. Cependant, puisqu'une ROM donne seulement accès à la lecture, le bus de données devra seulement se trouver en mode de sortie. Pour la puce de même taille, il est possible d'avoir plus de bits de ROM que de RAM, parce que les positions binaires internes dans la ROM occupent moins d'espace que dans RAM.
48 5.3 Imbrication de mémoire Dans un système imbriqué (imbriquer=lier étroitement), la mémoire peut être divisée en un certain nombre de modules reliés aux bus d'une adresse mémoire commune et de données. Un module de mémoire est une table de mémoire ainsi que ses propres registres d'adresse et de données. La figure suivante montre une unité de mémoire avec quatre modules. Chaque table de mémoire a son propre registre d'adresse AR et de données Dr. Le registre d'adresse reçoit l'information d'un bus d'adresses commun et les registres de données communiquent avec le bus de données bi-directionnel. Les deux bits moins significatifs de l'adresse peuvent être employés pour différencier les quatre modules. Le système modulaire permet à un module de lancer un accès mémoire au moment ou d'autres modules sont en cours de lecture ou écrire. L'avantage d'une mémoire modulaire est qu'elle permet l'utilisation d'une technique appelée imbrication. Dans une mémoire imbriquee, différents ensembles d'adresses sont assignés à différents modules. Par exemple, dans un système mémoire de deux modules, les adresses paires peuvent être dans un module et les adresses impaires dans l'autre. 5.4. Mémoire Cache Une mémoire spéciale à très grande vitesse appelée cache est parfois employée pour augmenter la vitesse de traitement en rendant des programmes en cours et des données disponibles à l'unité centrale de traitement à une vitesse rapide. Logiquement l'unité centrale de traitement est habituellement plus rapide que la mémoire centrale. Par conséquent une technique employée pour agir en tant que médiateur entre la mémoire centrale et l'unité centrale de traitement est une antémémoire extrêmement rapide et petite. La cache est employée pour stocker des
49 segments de programme actuellement traité par l'unité centrale de traitement et les données fréquemment requises dans les calculs actuels. L'opération de base de la cache se passe comme suit: Quand l'unité centrale de traitement a besoin d'accéder la mémoire, la cache est examinée. Si le mot est trouvé dans la cache, on le lit dans cette mémoire rapide. Si le mot n'est pas trouvé dans la cache, la mémoire centrale est accédée pour la lecture du mot. L'exécution de la cache est fréquemment mesurée en termes de quantité appelée le rapport de coup ou le hit ratio. Quand l'unité centrale de traitement se rapporte à la mémoire et trouve le mot dans la cache, ca s appelle le hit. Si le mot n'est pas trouvé dans la cache, ce s'appelle un miss. Le ratio du nombre de hits s obtient en divisant le nombre total de hits par la somme du nombre total de hits et des missles coups plus des coups manqués s'appelle le rapport de coup. Hits ratio=hits/hits+misses. 5.5 Mémoire virtuelle La mémoire virtuelle est un concept utilisé dans quelques grands systèmes informatiques qui permet à l'utilisateur de construire des programmes comme si grand espace mémoire était disponible. La mémoire virtuelle fournit un mécanisme pour traduire des programmes d adresses -produites dans des emplacements corrects de la mémoire centrale. Cette traduction est faite automatiquement par le matériel appelé table de cartographie ou mapping table. Espace d'adressage et espace mémoire Une adresse employée par un programmeur s'appellera adresse virtuelle, et l'ensemble de telles adresses appelé, espace d'adressage. Une adresse dans de mémoire centrale s'appelle un emplacement ou une adresse physique. L'ensemble de tels emplacements s'appelle espace mémoire.
50 Relation entre l'adresse et l'espace mémoire dans un système mémoire virtuelle Table de mémoire traçant une adresse virtuelle
CHAP 6. ORGANISATION D ENTRÉE-SORTIE 51 6.1. Adressage d'entrée-sortie Dans les systèmes, les dispositifs d'e/s, la mémoire centrale, et l'unité centrale de traitement communiquent normalement par l'intermédiaire d'un bus partagé. La jonction entre le bus système et les dispositifs d'e/s s'appelle port d'e/s et y est assigné une adresse unique. Elle inclut un registre temporaire de données. La stratégie utilisée dans quelques machines, telles que le microprocesseur de Motorola 68000 est d'assigner une partie de l'espace d'adressage de mémoire centrale aux ports d'e/s.ceci s'appelle mémoire-tracé E/S ou Memory-mapped IO. L'adressage d'entrée-sortie est généralement categorisé en deux types. Ils sont Memory-mapped I/O Isoleted/ I/O mapped I/O ou Entrée-sortie d'isolement- tracée entrée-sortie Memory mapped I/O Dans la Memory mapped I/O les instructions habituelles de charge et de stockage de mémoire sont employés pour transférer un mot des données à ou d'un port d'e/s; aucune instruction spéciale d'e/s n'est nécessaire. Isoleted/ I/O mapped I/O Dans cette organisation I/O mapped I/O, la mémoire et les espaces d'adressage d'e/s sont maintenus séparés. Une instruction de référence de mémoire, active la ligne de contrôle du READ M ou WRITE M et n'affecte pas les dispositifs d'e/s. Les instructions séparées d'e/s sont exigées pour activer les lignes l'e/s READ et WRITE d'e/s, qui causent un mot à être transféré entre le port adressé d'e/s et l'unité centrale de traitement. Par exemple: Intel 8085 et 8086.
52 6.2. Transfert de données Le transfert des données est défini comme transfert des données à partir d'un dispositif à l'autre à l'intérieur de l'ordinateur. Un exemple du transfert des données des dispositifs d'e/s à l'unité centrale de traitement est expliqué ci-dessous avec une figure. En cette dernière le dispositif transfère des octets de données un seul à la fois. Quand un octet de données est disponible, le dispositif le place dans le bus d'entrée-sortie et active son signal valide de données. L'interface accepte l'octet dans son registre de données et active la ligne admise par données. L'interface place un bit dans le registre de statut qui a partir duquel est référencé le bit «F» ou le bit drapeau. Le dispositif peut maintenant désactiver la ligne valide de données, mais ne transférera pas un autre octet a partir du moment ou la ligne admise de donnees est desactivee par l interface. Ceci est appele proceduee de hand shaking ou de secousse de main. Un programme est écrit pour que l'ordinateur vérifie le drapeau dans le registre de statut pour déterminer si un octet a été placé dans le registre de données par le dispositif d'e/s. Ceci est fait en lisant le bit de drapeau du registre de statut par l'unité centrale de traitement. Si le drapeau est égal à 1, l'unité centrale de traitement lit les données à partir du registre de données. Le bit de drapeau est alors dégagé à 0 par l'unité centrale de traitement ou l'interface. Une fois que le drapeau est dégagé, l'interface désactive la ligne admise de données et peut alors transférer le prochain octet de données.
53 Transfert des données d'unité d'e/s à l'unité centrale de traitement De maniere générale il existe deux manières de transmission de données. Elles sont, Transmission parallèle de données Dans la transmission en parallèle chaque bit de données a son propre chemin. Par conséquent, quand la donnée a été transférée, tous les bits sont transférés au meme moment. Mais l'inconvénient de ce type de transmission est qu'il a besoin de plus de câble pour le transfert. Transmission de données périodiques ou en série. Dans ce type de transmission de données, seulement un conducteur est disponible pour le déplacement de bits, un à un. Ceci prend plus de temps mais moins de câbles sont assez pour ce transfert. Un transfert des données périodique peut être asynchrone ou synchrone. 6.3. Synchronisation Par transmission synchrone, les deux unités partagent la même fréquence du signal d'horloge et les bits sont transmis continuellement ou alors sans interruption. Des signaux de synchronisation sont transmis périodiquement entre deux unités. Dans la transmission asynchrone, l'information binaire est envoyée seulement quand la ligne est disponible et demeure libre quand il n'y a aucune information. En cela, le master ou émetteur entamera la communication par envoyer une ligne de contrôle. La destination réagira a son tour en renvoyant un signal récépissé ou réception. Ce contraste avec la transmission synchrone, où les doivent être transmis sans interruption pour maintenir la fréquence du signal d'horloge dans les deux unités synchronisées entre elles.
54 6.4. Manipulation d'interruption Comme expliqué dans le transfert des données, quand les données sont stockées dans le registre de données d'une interface, c'est à l'unité centrale de traitement d examiner souvent le bit de drapeau, pour lire les données de l'interface. L'ordinateur perd le temps en vérifiant le drapeau au lieu de passer à un autre processus utile. Une alternative à ce procédé est de laisser le périphérique externe informer l'unité centrale de traitement quand il est prêt pour le transfert. En attendant l'ordinateur peut être occupé à exécuter d'autres tâches. Ce type de transfert emploie un service appelé interruptions. Du moment que l'ordinateur exécute un programme, il ne vérifie pas les drapeaux. Cependant, quand un drapeau est placé, l'ordinateur est interrompu dans l exécution du programme en cours et se laisse informé du fait qu'un drapeau a été placé. L'unité centrale de traitement manipule l'interruption en arrêtant le programme pour un instant et va gérer le transfert d'entrée-sortie, aussitôt fini, il retourne de nouveau au programme précédent pour le parachevement de son exécution. Si un ou plusieurs dispositifs placent les données dans leur registre de données et donne des interruptions à l'unité centrale de traitement, la priorité au dispositif choisi dépend de la vitesse de transfert des données de chacun de ces dispositifs. Les dispositifs à grande vitesse tels que les disques magnétiques leur seront accordés plus priorité que les dispositifs à faible vitesse de transfert comme le clavier. 6.5. Interfaces d'entrée-sortie L'interface d'entrée-sortie fournit une méthode de transférer l'information entre les unités internes de stockage et les dipositifs externes d entrée-sortie. Les périphériques connectés à un ordinateur ont besoin des liaisons spéciales pour se connecter à l'unité centrale de traitement. Le but des liaisons de communication est de résoudre les différences qui existent entre l'ordinateur central et chacun des périphériques. Les différences majeures sont: Les périphériques sont les dispositifs électromagnétiques mais l'unité centrale de traitement et la mémoire sont des composants électroniques. Par conséquent, une conversion des valeurs du signal pourrait être exigée.
55 La vitesse de transfert des données des périphériques est habituellement plus lente que celle de l'unité centrale de traitement. Les codes et format de données dans des périphériques diffèrent du format de mot dans l'unité centrale de traitement et la mémoire. Les modes opérationnels de périphériques sont différents entre eux et chacun doit être contrôlé pour ne pas toucher au fonctionnement d'autres périphériques connectés à l'unité centrale de traitement. Pour résoudre les différences, les systèmes informatiques incluent les composants matériels spéciaux entre l'unité centrale de traitement et les périphériques pour superviser et synchroniser tous les transferts d'entrée et de sortie. Ces composants s'appellent les unités d'interface parce qu'ils interfacent entre les bus du processeur et les composants périphériques. L'exemple suivant explique le mécanisme des interfaces. Chaque composant périphérique a associé à lui une unité d'interface. Chaque interface décode l'adresse et contrôle les réceptions du bus d'entrée-sortie, les interprète pour le périphérique, et fournit des signaux pour le contrôleur de périphériques. Chaque périphérique a son propre contrôleur qui opera avec un dispositif particulier. Par exemple, le contrôleur d'imprimante commande le mouvement de papier, le temps d impression, etc.
56 Pour communiquer avec un dispositif particulier, le processeur place une adresse de dispositif sur les lignes d'adresse. Chaque interface fixée sur le bus d'entrée-sortie contient un décodeur d'adresse ; elle active le chemin entre les lignes de bus et le dispositif. Tous les périphériques dont l'adresse ne correspond pas à l'adresse dans le bus sont désactivés par leur interface. Il y a quatre types de commandes qu'une interface peut recevoir. Elles sont: Une commande de contrôle - elle est publiée pour activer le périphérique et pour l'informer de quoi faire. Une commande de statut - elle est employée pour examiner de diverses conditions de statut dans l'interface et les périphériques. Une commande de sortie de données - elle permet à l'interface de repondre transférant des données à partir du bus de données dans un de ses registres. Une commande d'entrée de données - c'est l'opposé de la sortie de données. Dans ce cas-ci l'interface reçoit un article des données du périphérique et des emplacements dans du registre tempo. L'interface place alors le données sur les lignes de données, par où elles sont acceptées par le processeur.
57 BIBLIOGRAPHIE - ARCHITECTURE ET TECHNOLOGIE DES ORDINATEURS, 4e Edition juin 2005, cours et exercices corriges pour. Auteurs: Paolo Zanella et Yves Ligier - ARCHITECTURE DE L ORDINATEUR, Edition janvier 1987, du circuit logique au logiciel de base. Auteur: Andrew Tanenbaum. - COMPUTER SYSTEM ARCHITECTURE, notes de cours, Computer Science department, Universite Nationale du Rwanda par Auxeeliya Ashraph, Master s Degree - (Sites électroniques )