Cours Introduction aux microprocesseurs Par : E. AGOURIANE Dans nos ordinateurs, l un des composants fondamentaux est le microprocesseur. Depuis son invention en 1971 par INTEL, ce composant n a cessé de se perfectionner pour être utilisé aujourd hui dans des domaines dépassant les prévisions de départ. Sont rôles principale est résumé tout simplement dans l exécution d instructions. I. Structure d un microordinateur : Le μp est l unité principale qui prend les discisions à faire suivant le programme stocké dans la mémoire ROM. La RAM est utilisée pour exécuter le programme. Le bus d'adresses : De A0 à A15 on dispose de lignes unidirectionnelles qui permettent au µp de sélectionner une position de mémoire, ou un registre d'un coupleur d'interface. Dans
cet exemple on dispose de 16 lignes donc de 65536 positions. Précisons que dans un µp récent on trouvera 32 voire 64 lignes d'adresses ce qui augmente très sensiblement les possibilités Le bus de données : De D0 à D7 on a des lignes bidirectionnelles sur lesquelles se font les échanges de données entre le µp et ses périphériques. Le bus de commandes : Ce bus transmet un certain nombre de signaux hétérogènes qui assurent un fonctionnement cohérent du µp et des divers circuits qui lui sont liés. II. Structure d un microprocesseur Le CPU (Central Processing Unit) est au coeur du système informatique, quasiment toutes les informations binaires sont traitées par le processeur. Ce-dernier peut selon son architecture, faire des calculs sur des mots binaires de un octet (Intel 8088, Commodore, Apple II), deux octets (Intel 8086, i286), quatre octets (i386, AMD 386), huit octets (Intel Pentium, AMD Athlon, PowerPC) et plus pour les gros systèmes informatiques. L'UAL ou Unité Arithmétique et Logique (ALU : Arithmetic and Logical Unit) permet de faire des calculs mathématiques tels que l'addition ou la multiplication, et des opérations booléennes telles que le ET, OU et NON. Les registres sont des mémoires directement intégrées dans le processeur. Un registre permet de stocker une collection d'octets telle que le résultat de la dernière opération de l'ual ou la donnée du prochain calcul. L'unité de contrôle UCT décode les instructions envoyées par la mémoire de programme et élabore les signaux de commande indispensables au traitement de cette instruction. les registres de données AccA et AccB stockant temporairement les données utilisées par l UAL les registres d'adresses qui sont des pointeurs stockant des adresses importantes, en particulier le registre d'index qui va permettre l'adressage dit indexé le registre d'état CCR qui comporte différents bits positionnés à 0 ou 1 et indiquant, selon leur état, si le résultat d'une opération est nul, ou négatif, avec ou sans retenue, etc... le pointeur de pile SP est un registre qui pointe vers une zone particulière de la mémoire appelée pile (par analogie avec une pile d'assiettes), décrémenté lors d'un transfert de mot dans la pile (bas de la pile) et incrémenté quand un mot est lu (quand on enlève une assiette). Son rôle est important lors des interruptions. le compteur ordinal PC ou compteur d'instruction, encore appelé compteur de programme, qui suit pas à pas l'exécution d'un programme. Au départ on le charge avec l'adresse de la première instruction. Pendant que le µp lit cette instruction dans la mémoire, la décode et l'exécute, le compteur est incrémenté de façon à contenir l'adresse de la prochaine instruction.
III. Langage machine : Le langage machine ou code machine est la suite de bits qui est interprétée par le processeur lors de l exécution d un programme. Le langage machine est le seul que peut traiter nativement un ordinateur. Chaque famille de microprocesseur possède son propre langage machine (par exemple le X86), incompatible avec les autres, même si de fortes similitudes existent. Concrètement, il s'agit d'une suite de bits encodée en langage binaire, soit uniquement des zéros et des uns que l'on nomme instructions. Bien sûr, ce type de langage n'est pas compréhensible par un humain, ou tout du moins pas directement... C'est là qu'intervient le compilateur, chargé de traduire un langage de programmation "humain" (Basic, Java, C++, etc.) en langage machine composé d'arides 0 et 1. Il existe toutefois un langage intermédiaire, proche du langage binaire des ordinateurs, l'assembleur. Ce type de langage, dit de bas niveau à cause de sa proximité avec la machine, est très complexe. En revanche, il permet à un programmeur expérimenté de tirer le maximum de l'architecture d'un processeur. Chaque instruction est formée de 2 parties : Opcode ou code de l opération à exécuter; Opérandes qui est la donnée (ou son adresse) objet de l opération. Il n est pas pratique d utiliser le langage machine, on utilise plutôt le langage assembleur où on écrira chaque instruction sous forme symbolique. Exemple de code machine et assembleur : Mnémonique Code op Binaire/Hexa Description LDA 01011011/5B Charger l accu par la donnée qui se trouve à l adresse opérande ADD 01101101/6D Additionner la donnée qui se trouve à l adresse opérande avec le contenu de l acc et le résultat dans l acc
STA 10001010/8A Stocker le contenu de l acc dans la case mémoire adressée par l opérande HLT 00111111/3F Arrêter l excusion du programme IV. Mémoires : ROM et RAM La principale caractéristique d une mémoire c est sa capacité de mémoriser, c'est-à-dire le nombre d octet (mot de 8 bits) ou de bits qu elle peut stocker. Une mémoire de 2048 octets a pour capacité 2048x8 bits. Dans la pratique on utilise les unités : 1 octet est un mot de 8 bits 1Ko est équivalent à 1024 octets (2 10 ) 1Mo est équivalent à 2 20 octets 1Go est équivalent à 2 30 octets IV.1. Généralités: Entrées d adresse: bits qui donnent l emplacement mémoire 6 bits offre 64 adresse 2 6 Entrées /Sortie de données : bits réservés pour les données R/W: bit pour sélectionner mode lecture ou mode écriture CS : bit qui permet la validation de la mémoire Exemple: Une mémoire de 4Kx8 (4Ko) est une mémoire de 8bits de données et qui a une capacité de 4K donc 4096 adresses mémoires (2 12 ), il faut donc 12 bits d adresse. Il existe deux type de mémoires : ROM et RAM IV.2. Les mémoires ROM (read only memory): C est des mémoires qui gardent en permanence les données sans les perdre quand il n y a pas d alimentation : mémoires non volatiles. Elles sont utilisées pour stocker des données qui sont rarement modifiées. Leurs principales utilisation est le stockage des programme système, des tables de correspondance (conversion de code),...
Il existe plusieurs type de ROM : MROM: le contenu est initialise au moment de la fabrication et ne peut plus être Modifie PROM (programmable ROM) ou OTP ROM (one-time programmable): le contenu peut être modifie une fois par l'utilisateur, à l'aide d'un équipement spécialisé EPROM (erasable PROM): le contenu peut être efface et modifie plusieurs fois: UV EPROM: le contenu est efface par des rayons ultra-violets (plusieurs minutes) EEPROM (electrically EPROM) ou E2PROM: le contenu est effacé électriquement (quelques millisecondes) Flash: le contenu est effacé électriquement et plus rapidement que sur les EEPROM IV.3 Mémoires RAM : Se sont des mémoires dans lesquelles on peut écrire ou lire des données en un temps très court (ce n est pas le cas des ROM). Cependant ces mémoires ne sont pas permanentes donc volatiles une fois la tension d alimentation coupée. Elles sont utilisées pour stocker temporairement des programmes et des données au cours de l exécution d un programme. Il distingue deux type RAM : SRAM et DRAM SRAM : Se sont des mémoires qui gardent leur contenu en utilisant des transistors. Exemple : 6264 est RAM CMOS. DRAM : Se sont des mémoires qui stockent leurs contenus sous formes des charges dans des petits condensateurs MOS. Une cellule de DRAM est donc très simple, ce qui permet la construction de très grandes mémoires a bas prix. Cependant, le condensateur se décharge avec le temps et l'information est perdue si la charge n'est pas rafraichie périodiquement (rafraichissement 2 à 10 ms). Leurs avantages sur les SRAM est leur grande capacité et la faible consommation, mais les SRAM sont beaucoup plus rapides. Afin d économiser sur le nombre de broches les DRAM sont conçues avec deux signaux RAS et CAS. En effet pour réduire le nombre de lignes d'adresse, les DRAM utilisent un multiplexage de l'adresse: les bits d'adresse de la ligne et de la colonne sont envoyés en séquence. Tout d'abord, les bits d'adresse de la ligne sont envoyés, et stockés internement grâce au signal RAS (row address strobe). Ensuite, les bits d'adresse de la colonne sont envoyés, identifies par le signal CAS (column address strobe).
L adresse est appliquée à la DRAM en deux phases au moyen des signaux RAS et CAS actifs aux niveaux bas. V. Assemblage des mémoires : Pour augmenter la taille ou la capacité mémoire on assemble plusieurs boitiers mémoires. V.1. Augmenter la capacité : Supposant qu on possède des boitiers mémoires de 16x4 bits, et qu on veut réaliser une mémoire de 64x4 bits. On a besoin de 6 bits d adresses (2 6 =64), soient A 5 A 4 A 3 A 2 A 1 A 0. La partie adresse A 3 A 2 A 1 A 0 sélectionne un mot de 4 bits parmi 16 du boitier, et les bits A 5 A 4 vont sélectionner un boitier parmi les 4 boitiers. Les adresses possibles des boitiers sont : Boitier 0 : adresses de 0 à 15 validé par /CS0. Boitier 1 : adresses de 16 à 31 Boitier 2 : adresses de 32 à 47 Boitier 3 : adresses de 48 à 63.
R/W CS 0 CS 1 Décod. CS 2 CS 3 A 3 A 2 A 1 A 0 CS R/W A 3 A 2 A 1 A 0 CS R/W A 3 A 2 A 1 A 0 CS R/W A 3 A 2 A 1 A 0 CS D 3 D 2 D 1 D 0 D 3 D 2 D 1 D 0 D 3 D 2 D 1 D 0 D 3 D 2 D 1 D 0 A5 A4 R/W A 0 A 1 A 2 A 3 D 3 D 2 D 1 D 0 Pour le cas de deux boitiers : V.2. Augmenter la longueur du mot :
FIN