THE UNIVERSITY OF DOUALA UNIVERSITE DE DOUALA ……………………………………..…… .…………………………………... FACULTY OF SCIENCE FACULTÉ DES SCIENCES …………………………………..… ……………………………..……… Département De Mathématique et Informatique Department of Mathematics and Computer Science ……………………………….…… …………………………….………… B.P : 24157 Douala Cameroun P.O. Box : 24157 Douala Cameroon DEPARTEMENT DE MATHEMATIQUES-INFORMATIQUE DEPARTEMENT OF MATHEMATICS AND COMPUTER SCIENCE RAPPORT DU TPE INF 417 HIERARCHIE DE LA MEMOIRE ET DMA (MEMOIRE A ACCES DIRECT) Rédigé et présenté en vue de la capitalisation de l’Unité d’Enseignement Architecture des ordinateurs Par : Le groupe 5 LISTE DES MEMBRES DU GROUPE N° MATRICULE 1 21S59374 2 NOMS & PRENOMS N° TELEPHONE AMANA MEPOUI Léonie 658 59 33 98 DA'SI KAMGA David 698 03 23 94 3 20S45100 EWANE NDEMA Basile 699 97 40 96 4 18S08417 GAMENI TOUMANI Franklin 672 95 90 97 5 19S29735 TEZE MATANG Billy Erica 657 78 05 05 Sous l’encadrement de : Dr. NOUMSI Année académique 2022/2023 TPE INF417 : HIÉRARCHIE DES MÉMOIRES ET DMA (ACCÈS À MÉMOIRE DIRECT) PLAN DÉTAILLE DU TRAVAIL INTRODUCTION PARTIE A : HIÉRARCHIE DES MÉMOIRES I. LA MÉMOIRE a) Définition et caractéristiques d’une mémoire b) Organisation de la mémoire II. HIÉRARCHIE DES MÉMOIRES a) Les registres b) La mémoire cache c) La mémoire centrale d) La mémoire de masse PARTIE B : ACCÈS DIRECT À LA MÉMOIRE I. DÉFINITION II. LES INTERFACES DES DISQUE DE STOCKAGE III. LES MÉTHODES D’ACCÈS DIRECTS 1-Les modes de transfert 2-La vitesse de transfert 3-Les canaux DMA IV. ÉTUDE D’UN SYSTÈME CONCLUSION INTRODUCTION En informatique, la mémoire est un dispositif électronique numérique qui sert à stocker des données. La mémoire est un composant essentiel, présent dans tous les ordinateurs, les consoles de jeux, les GPS et de nombreux appareils électroniques. Les mémoires sont vendues sous forme de pièces détachées de matériel informatique, ou de composants électroniques. Les différences entre les pièces sont la forme, l'usage qui en est fait, la technologie utilisée, la capacité de stockage et le rapport entre le coût et la capacité. La technologie la plus courante utilise des semi-conducteurs parfois associés à des composants mécaniques Au cours de l’histoire, diverses technologies de mémoire ont vu le jour. L’amélioration des techniques de création a produit des mémoires toujours plus petites, moins coûteuses, consommant moins d'énergie, avec une capacité toujours plus grande, et une vitesse plus élevée. ➢ L’usage de la mémoire dans les ordinateurs a été introduit par le concept de l'architecture de von Neumann, en 1944. ➢ Les premiers disques durs ont été construits en 1956. Le disque DEC RP07 construit en 1970 pesait 180kg. Un disque dur des années 2000 pèse moins de 1kg, tout en ayant une capacité de stockage supérieure. Les mémoires à tores de ferrite sont des mémoires vives non volatiles utilisées dans les années 1960 à 1970. Ces composants sont faits d’un réseau de fil de cuivre dans lequel sont entremêlés des anneaux en céramique ferromagnétique. Les mémoires utilisant cette technologie sont volumineuses et lourdes. Cette technologie a été remplacée par des semi-conducteurs et des circuits intégrés. PARTIE A : HIÉRARCHIE DE LA MÉMOIRE I. LA MÉMOIRE a) Définition et caractéristiques d’une mémoire La mémoire est le lieu de stockage de l’information, c’est un dispositif composé d’un ensemble de cellules d’un bit. Une mémoire possède plusieurs caractéristiques parmi lesquelles : ✔ Capacité : elle représente la quantité d’informations stockable, elle est exprimée en bits, octets (Byte), kilooctet, etc. ✔ Adresse : c'est la valeur numérique désignant un élément physique de mémoire ✔ Temps d’accès : c’est le temps nécessaire à une opération de lecture/écriture ✔ Débit : c’est la quantité d’informations lues/écrites par unité de temps, exemple Mo/s ✔ Durée de mémorisation : c’est la durée pendant laquelle une information est conservée en mémoire, elle peut être : quasi-permanente (ROM, Disque dur), temporaire (DRAM), volatile (en fonction de la présence du courant électrique) ✔ Mode d’accès - accès séquentiel : pour accéder à une information, il faut parcourir toutes les qui la précède, exemple : bandes magnétiques - accès direct : chaque information possède une adresse propre, à laquelle on peut accéder directement, exemple : mémoire centrale à l’ordinateur - accès semi-séquentiel : intermédiaire entre séquentiel et direct, exemple disque dur : accès direct à la piste (déplacement horizontal de la tête) , accès séquentiel au secteur (rotation du disque) - accès associatif : une information est identifiée par sa clé, exemple : mémoire cache b) Organisation de la mémoire ➢ Organisation interne - Le bit : C'est le plus petit élément d'information que l'on peut stocker dans une mémoire, il constitue l’unité de base de l’information. Il est souvent appelé point mémoire : il mémorise un bit d’information ; - L’octet, ou byte (en anglais), correspond à un groupement de 8 bits ; - La cellule mémoire (case mémoire) : C'est la plus petite quantité d’information adressable. Ces dernières années, la plupart des fabricants se sont mis d’accord sur une cellule de 8 bits, c'est à dire octet. Les octets sont eux-mêmes regroupés en mots. - Le mot mémoire : est composé d’une ou plusieurs case mémoire. Toute opération de lecture ou d'écriture porte sur un mot mémoire ; Une mémoire est formée d'un certain nombre de cellules, ou cases, contenant chacune une information. Chaque cellule a un numéro qui permet de la référencer et de la localiser. Ce numéro est son adresse. Avec une adresse de n bits il est possible de référencer 2n cellules. La capacité d'une mémoire est le nombre total de cellules qu'elle contient. Elle s'exprime en nombre de bits ou d'octets (bytes). Compte tenu de l'adressage binaire, les capacités des mémoires s'expriment en puissances de deux ou en multiples de 210= 1024. ➢ Organisation externe : Les mémoires sont connectées à un bus adresses de n Bits, à un bus de données de m bits et à des lignes de commandes. Pour pouvoir communiquer avec le microprocesseur, on va relier leurs bus ensembles. Pour cela, il est nécessaire d'avoir l’adéquation entre le nombre de bits des bus données et adresses de la mémoire et du microprocesseur. Sur cette figure apparaît une broche de validation. Elle permet de sélectionner une ou plusieurs cases mémoire parmi plusieurs, d'où son appellation : « chip select » (Chipset). Dans le cas général, il existe plusieurs cellules mémoire, toutes branchées sur le même bus de données. Dans ce cas, il est nécessaire de construire un signal qui permettra aux cases sélectionnées d'accéder au bus de données. Ce signal est appelé CS (chip select) sélection de ces cases. II. HIÉRARCHIE DES MÉMOIRES a) Les registres Un registre est un emplacement de mémoire interne à un processeur. Les registres se situent au sommet de la hiérarchie mémoire : il s'agit de la mémoire la plus rapide d'un ordinateur, mais dont le coût de fabrication est le plus élevé, car la place dans un microprocesseur est limitée. Un processeur peut contenir plusieurs centaines de registres, mais, à titre d’exemple, un processeur Intel 32 bits en contient seize. Chaque registre a une capacité de 8, 16, 32 ou 64 bits (couramment la taille d’un bus). La plupart des architectures modernes sont qualifiées de load-store : les programmes transfèrent d'abord des données de la mémoire centrale vers des registres, puis effectuent des opérations sur ces registres, et enfin transfèrent le résultat en mémoire centrale. On distingue 02 catégories de registres : ➢ Les registres spécialisés Sur de nombreux processeurs, les registres sont spécialisés et ne peuvent contenir qu'un type bien précis de données. On rencontre souvent les classes de registres suivantes : • Les registres entiers, chargés de stocker des nombres entiers (et éventuellement des adresses) ; • Les registres flottants, qui stockent des nombres à virgules flottantes ; • Les registres d'adresses : sur certains processeurs, les adresses mémoires à manipuler sont placées dans ces registres dédiés ; • Les registres d'Index, qui servaient à faciliter certains calculs d'adresses sur de vieilles architectures ; • Les registres à prédicats, des registres qui stockent des résultats de comparaisons et d'instructions de tests divers. Un processeur contient souvent des registres spécialisés, présents en un seul exemplaire. On trouve parmi ceux-ci : • Compteur ordinal (CO) : indique l'emplacement de la prochaine instruction à être exécutée (synonymes : compteur de programme, pointeur d'instruction) ; • Registre d'état (PSW pour Processor Status Word) : décrit l'état du processeur ; il est le plus souvent interprété bit à bit, chaque bit représentant un drapeau ; • Pointeur de pile : indique la position du prochain emplacement disponible dans la .pile mémoire Figure les registres d’un processeur Motorola 6800 ➢ Les registres généraux Sur certaines architectures, l'ensemble ou une partie des registres spécialisés sont remplacés par des registres généraux (en anglais, general-purpose register ou GPR) interchangeables (parfois notés R0, R1, etc.). Ceux-ci peuvent stocker indifféremment des adresses, des entiers, des flottants, etc. Par exemple, le Motorola 6800 dispose de 8 registres de données banalisés (D0 à D7) et de 8 registres d'adresses (A0 à A7, banalisés sauf A7 qui sert de pointeur de pile). Sur la majorité des processeurs, ces registres généraux ne sont pas les seuls registres du processeur, qui contient aussi des registres spécialisés comme un compteur ordinal ou un registre d'état. Mais sur certains processeurs, il se peut que ces registres soient malgré tous des registres généraux, adressables comme tous les autres registres. Il devient alors possible d'écrire ou de lire directement leur contenu sans restriction. Cela peut servir pour faciliter l'implémentation des branchements indirects ou relatifs (si le compteur ordinal devient un registre général b) La mémoire cache C’est un élément critique de la hiérarchie mémoire de taille réduite, comparée à celle de la mémoire centrale, dont la vitesse d’accès proche de celle du processeur, son coût est élevé. Elle contient des copies de parties de la mémoire centrale. Le fonctionnement de la mémoire cache est telle que suit : Un accès à la mémoire centrale entraîne le transfert d’un bloc vers le cache (principe de localité) Les éléments du bloc sont accessibles de manière performante Du fait de la rapidité nécessaire, la gestion du cache est entièrement réalisée en matériel (invisible à l’OS ou aux applications) c) La mémoire centrale Depuis le début des années 70, les mémoires à semi-conducteurs constituent les éléments de base de toute mémoire centrale. L'évolution de la technologie a permis de réaliser des mémoires intégrées qui constituent actuellement les meilleurs éléments de la mémoire centrale au point de vue capacité et prix. Cette technologie utilise comme matière de base le silicium et comme élément actif le transistor. On distingue 02 principaux types de mémoire centrale : ➢ La mémoire vive, généralement appelée RAM (Random Access Memory) est la mémoire principale du système à accès direct, organisée sous forme matricielle, accessible en lecture et en écriture ; c'est un espace permettant de stocker de manière temporaire les données et les programmes. Elle est dotée de : La commande R/W (read or write) : c’est la commande qui détermine la direction de transfert de données La commande CS (Chip Select) : c’est l’entrée qui permet d’activer ou de désactiver la mémoire Un décodeur k→2k qui permet de sélectionner le mot mémoire référencé par l’adresse introduite Il existe deux types de RAM : la SRAM et la DRAM ➢ La mémoire morte, appelée ROM (Read Only Memory) est un type de mémoire permettant de conserver les informations qui y sont contenues même lorsque la mémoire n’est plus alimentée électriquement. Ce type de mémoire ne peut être accédée qu'en lecture. Toutefois il est désormais possible d'enregistrer des informations dans certaines mémoires de type ROM. Il existe plusieurs versions de la ROM : ROM classique : l’information est enregistrée de manière irréversible (définitive) lors de la fabrication, le principe de ces mémoires est le réseau de diodes PROM (Programmable ROM) : c’est une ROM à enregistrement irréversible qui peut être programmé par un utilisateur grâce à un dispositif appelé programmateur de ROM, les cellules sont munies de fusibles qui sont détruits lors de la programmation de la mémoire EPROM (Erasable PROM) : c’est une PROM effaçable qui présente l’avantage de pouvoir être effacée et réécrite. Pour effacer une EPROM il faut la soumettre à un rayonnement ultraviolet pendant 30 min EEPROM (Electrically EPROM) : elle est effaçable à l’aide d’un procédé électrique ➢ La mémoire flash est un compromis entre les mémoires de type RAM et les mémoires mortes. En effet, la mémoire Flash possède la non-volatilité des mémoires mortes tout en pouvant facilement être accessible en lecture ou en écriture. En revanche les temps d'accès des mémoires flash sont plus pp importants que ceux de la mémoire vive. d)La mémoire de masse C’est une mémoire périphérique de grande capacité et de coût relativement faible utilisée pour le stockage permanent des informations et utilise des supports magnétiques ou optiques. PARTIE B : ACCÈS DIRECT À LA MÉMOIRE I. DEFINITIONS ET PROBLEMATIQUES Le système doit récupérer des données en provenance de ces périphériques externes. Plusieurs méthodes sont possibles : Une méthode par scrutation (polling) permet d’interroger régulièrement les périphériques afin de savoir si une nouvelle donnée est présente. Une méthode par interruption permet au périphérique lui-même de faire signe au processeur de sa présence. Une méthode par Accès Direct à la Mémoire (DMA) permet de gérer le transfert de façon autonome. L'accès direct à la mémoire ou DMA est un procédé où des données circulant de ou vers un périphérique (port de communication, disque dur sont transférées directement par un contrôleur adapté vers la mémoire centrale de la machine, sans intervention du microprocesseur. Le micro interviendra seulement pour initier et conclure le transfert. La conclusion du transfert ou la disponibilité du périphérique peuvent être signalés par interruption. Utilisation : - Carte graphique - Carte son - Disque dur - Lecteur CD - Et beaucoup d’autres périphériques internes II. LES INTERFACES DES DISQUES DE STOCKAGES Les interfaces ATA Le standard ATA (Advanced Tecnology Attachment) est une interface permettant la connexion de périphérique de stockage sur les ordinateurs de type PC. Ce standard apparu en 1994 tend à disparaître au profit du SATA. Il est aussi connu sous le nom IDE (Integrated Drive Elelectronics) ou E-IDE (Enhanced IDE). Initialement pour connecter les disques durs, il a été étendu pour pouvoir interfacer d’autre périphériques de stockage (Interface ATAPI=ATA-Packet Interface). Les interfaces SATA Les interfaces SATA (Serial ATA), permettent de transférer les données en série. Gain de place Branchement à chaud Résolution de problème de CEM (compatibilité Electromagnétique). III. LES METHODES D’ACCES DIRECTS 1- Les modes de transfert Mode PIO PIO : Programmed Input Output. Permet d’échanger des données avec la mémoire vive. Ces transferts sont gérés entièrement par le processeur. Des commandes gérées directement par le processeur permettent la gestion du transfert. Toutefois, de gros transferts de données peuvent rapidement imposer une grosse charge de travail au processeur et ralentir l'ensemble du système. Il existe 5 modes PIO définissant le taux de transfert maximal. Mode DMA La technique du DMA (Direct Memory Access) permet de désengorger le processeur en permettant à chacun des périphériques d'accéder directement à la mémoire. La technique du DMA (Direct Memory Access) permet de désengorger le processeur en permettant à chacun des périphériques d'accéder directement à la mémoire. Deux types de DMA existent : Le DMA dit "single word" permet de transmettre un mot simple à chaque session de transfert Le DMA dit "multi-word" permet de transmettre successivement plusieurs mots à chaque session de transfert. Le tableau suivant liste les différents modes DMA et les taux de transfert associés : Mode Ultra DMA L’idée est d’augmenter la fréquence du signal d’horloge pour augmenter la rapidité. Toutefois sur une interface où les données sont envoyées en parallèle l'augmentation de la fréquence pose des problèmes d'interférence électromagnétiques. Des solutions ont été apportées qui vont être en étroite relation : Augmentation de la fréquence : Utilisation des front montants et descendant. Amélioration du connecteur ATA (à partir de l'Ultra DMA mode 4 un nouveau type de nappe a été introduit afin de limiter les interférences ; il s'agit d'une nappe ajoutant 40 fils de masse entrelacés avec les fils de données. Apparition du CRC Fonctionnement : - La fréquence de transfert augmente tant que les données transmises se font sans erreur. - Lorsque qu’une erreur est rencontrée, le transfert passe dans un mode Ultra DMA inférieur (voire sans Ultra DMA). 2- Vitesse de transfert Les vitesses de transfert (mode DMA ou Ultra DMA restent donc toujours en étroite relation avec l’architecture utilisée (ATA, Serial ATA, …). 3- Les canaux DMA Un ordinateur de type PC possède 8 canaux DMA. Les canaux DMA sont généralement assignés comme suit : DMA0 - System Use : Memory (DRAM) Refresh DMA1 - Libre DMA2 - contrôleur de disquettes DMA3 - port parallèle DMA4 - contrôleur d'accès direct à la mémoire (renvoi vers DMA0) DMA5 - (carte son) / libre DMA6 - (SCSI) / libre DMA7 - disponible Démarrer>Programmes>Accessoires>Outils Système>informations Système IV. Etude d’un système Programmation logicielle Nous avons toujours les trois possibilités pour le transfert d’information de l’extérieur vers l’intérieur du système. Polling (scrutation) Ces fonctions font parties des librairies de la carte (Board Support Library). Interruption On active les interruptions sur la réception et l’émission d’une donnée. IRQ_enable(IRQ_EVT_RINT0); //Enables Reception event (IMR register flag) IRQ_enable(IRQ_EVT_XINT0); //Enables Transmission event (IMR register flag) IRQ_globalEnable(); //Enables all Unmask Events IRQ_clear(IRQ_EVT_RINT0) // Clear the specified Interrupt Flag (IFR Register). Interrumpt Locations and Priorities Ces fonctions font parties des librairies de la carte (Chip Support Library). DMA 1. Déclaration et réservation buffers ping pong 2. Configuration des canaux DMA 0 et 1 et Configuration interruption (DMA0) 3. Création des fonctions d’interruption pour traitement Pour la programmation des systèmes embarqués, on utilise des librairies : BSL : Board Support Library CSL : Chip Support Library