jeudi 18 octobre 2012 par math@ [spip.php?auteur1] popularité : 1% Architecture

jeudi 18 octobre 2012 par math@ [spip.php?auteur1] popularité : 1% Architecture des ordinateurs l’ordinateur minimal La mémoire. Une mémoire peut être représentée comme une armoire de rangement constituée de différents tiroirs. Chaque tiroir représente alors une case mémoire qui peut contenir un seul élément : des données. Le nombre de cases mémoires pouvant être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro. Ce numéro est appelé adresse. Chaque donnée devient alors accessible grâce à son adresse. L’adresse permet de repérer une case : par exemple, si on demande à la mémoire « Hé, que contient la case n° ? » il nous répondra son contenu : « Il contient le nombre ! ». Vous l’aurez compris : c’est le processeur qui va demander le contenu des cases mémoires et ce dernier va les lui donner. Et cette communication se fait par les "bus". Il y a 3 sortes de bus : Le bus de données : il transporte les données. Dans l’exemple précédent, il transporte le nombre . Le bus d’adresse : lorsque le processeur demande le contenu d’une case, c’est ici que passe le numéro de la case. Dans l’exemple, cela correspond au n° . Le bus de commande : en gros, ce bus sert à synchroniser l’ensemble afin que tout se passe dans le bon ordre. Physiquement, elle se décompose souvent en : Une mémoire morte ( ROM = Read Only Memory ) chargée de stocker le programme. C’est une mémoire à lecture seule. Une mémoire vive ( RAM = Random Access Memory ) chargée de stocker les données intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces données sont perdues à la mise hors tension. Le microprocesseur. Un microprocesseur est un circuit intégré complexe. Il résulte de l’intégration sur une puce de fonctions logiques combinatoires (logiques et/ou arithmétiques) et séquentielles (registres, compteur, etc...). Toutes ces fonctions sont obtenues à partir de transistors. Il est capable d’interpréter et d’exécuter les instructions d’un programme, de lire ou de sauvegarder les résultats dans la mémoire et de communiquer avec les unités d’échange. Toutes les activités du microprocesseur sont cadencées par une horloge. ⋮ 100 41 41 100 On caractérise le microprocesseur par : sa fréquence d’horloge : en MHz ou GHz. le nombre d’instructions par seconde qu’il est capable d’exécuter : en MIPS (million d’instructions par seconde). la taille des données qu’il est capable de traiter : en bits. Un processeur actuel comporte plusieurs milliards de transistors. Le nombre de transistors sur un processeur suit la loi de Moore [http://fr.wikipedia.org/wiki/loi_de_Moore], du nom d’un des fondateurs d’Intel qui prédit alors cette loi empirique. Depuis le tout premier circuit intégré (le 4004) jusqu’à nos jours, cette loi s’est toujours vérifiée, même si on s’en éloigne actuellement. Voici un exemple avec quelques processeurs d’Intel : 1971 : Intel 4004 : 2 300 transistors 1978 : Intel 8086 : 29 000 transistors 1982 : Intel 80286 275 000 transistors 1989 : Intel 80486 : 1 160 000 transistors 1993 : Pentium : 3 100 000 transistors 1995 : Pentium Pro : 5 500 000 transistors 1997 : Pentium II : 27 000 000 transistors 2001 : Pentium 4 : 42 000 000 transistors 2004 : Pentium Extreme Edition : 169 000 000 transistors 2006 : Core 2 Quad : 582 000 000 transistors 2010 : Core i7 : 1 170 000 000 transistors Remarque La réalisation de circuits intégrés de plus en plus complexe a été rendue possible par l’apparition du transistor en 1947. Il a fallu attendre 1958 pour voir apparaître le premier circuit intégré réalisé par Texas Instrument. L’augmentation du nombre de transistors sur une puce est possible par la miniaturisation des transistors. Mais ça ne sera pas possible indéfiniment : en 2010, les transistors sont gravés en 32 nanomètres, soit 32 milliardièmes des mètres : c’est la taille de quelques dizaines d’atomes. En réduisant trop la taille de la structure en maillage de transistors, il risque de se créer des interactions électroniques parasites entre les transistors eux même (l’effet tunnel par exemple, un effet de la mécanique quantique) et cela peut créer des problèmes... Un jour, il faudra donc utiliser une solution autre que celle des puces en silicium, si l’on veut continuer à augmenter la puissance des ordinateurs... Le modèle de Von Neumann Pour traiter une information, un microprocesseur seul ne suffit pas, il faut l’insérer au sein d’un système minimum de traitement programmé de l’information. John Von Neumann est à l’origine d’un modèle de machine universelle de traitement programmé de l’information (1946). Cette architecture sert de base à la plupart des systèmes à microprocesseur actuel. Elle est composé des éléments suivants : une unité centrale une mémoire principale des interfaces d’entrées/sorties Les différents organes du système sont reliés par des voies de communication appelées bus. Schéma du modèle de Von Neumann. Remarque La présence d’un "décodeur d’adresses" est nécessaire du fait de la multiplication des périphériques autour du processeur. Le processeur peut communiquer sur le bus de données avec les différentes mémoires et les différents périphériques. Pour éviter les conflits on attribue à chaque périphérique un zone d’adresse et une fonction "décodage d’adresse" chargée de "mettre" le processeur en communication avec le bon périphérique. Les cycles d’horloge la notion du temps le processeur effectue plein de calculs à la suite ! En fait, on dit qu’il travaille en cycles. Ces cycles sont effectués sur l’ensemble du système de transistors et chaque cycle permet d’avancer dans les calculs. Le nombre de cycles par seconde est nommé la fréquence du processeur (exprimée en Hertz : 1 cycle en 1 seconde = 1 Hz). Pour donner un ordre de grandeur, le processeur de mon ordinateur tourne à une fréquence de 2,5 GHz : il effectue donc 2,5 milliards de cycles par seconde. Ce cadencement du processeur est assuré par une horloge (un quartz qui vibre sous l’effet piézoélectrique [http://fr.wikipedia.org/wiki/pi%C3%A9zo%C3%A9lectrique]). Concrètement, le signal d’horloge est un signal électrique alternatif qui déclenche un nouveau cycle de calcul à chaque période du signal. Le processeur suit le signal d’horloge et effectue un nouveau calcul à chaque cycle. Les calculs sont donc effectués les uns à la suite des autres. Du matériel au programme. Un processeur est constitué de milliards de transistors, ces transistors comparent des tensions électriques pour effectuer des calculs. Il utilise des données qui sont stockées dans des mémoires. Pour servir à quelque chose, l’ordinateur doit recevoir des données sur lesquelles il va calculer. Ces données sont fournies par un programme. Un programme, c’est une suite d’instructions élémentaires. Elles mêmes étant des suites d’états électriques dans les transistors. Le programme est enregistré dans la mémoire et le processeur va lire des instructions dans cette mémoire. Chaque cycle d’horloge permet d’avancer un peu plus dans les calculs. Un processeur ne sait calculer qu’en binaire (avec des 0 et des 1) : les programmes sont donc fournis en binaire. Donc si on veut que le processeur effectue un calcul, il faudrait lui dire quelque chose de ce genre là : « ». Ce qui est totalement impossible pour un humain. On peut déjà écrire tout ça en hexadécimal, pour alléger l’écriture : « 54 B5 6D DA D5 6F 55 DE 63 5A FC », mais ça reste illisible. Le processeur, lui ne comprend que ça. Les fabricants de processeurs ont donc donné des noms « facile à retenir » pour chaque instruction en binaire. Par exemple, le nom mov peut correspondre à l’instruction . L’ensemble des noms faciles à retenir constitue le langage assembleur. Voici, par exemple, quelques-unes des quelques dizaines d’instructions utilisées pour programmer un processeur x86 : mov : (move) déplace le contenu d’une case mémoire dans une autre case. 01010100 10110101 01101101 110110101 10101010 11011110 10101011 10111100 1100011 0101101 01111110 10101101 01111001 inc : (increment) incrémente la valeur contenue dans une case mémoire. neg : (negative) prend un nombre et donne son opposé. cmp : (compare) compare deux nombres. jmp : (jump) « saute » à un autre endroit du programme. Le langage assembleur n’est constitué que des instructions basiques comme celles ci. Pour effectuer des calculs plus complexes, il faut au préalable décomposer ce calcul en une suite d’instructions qu’il connaît. Tout comme on peut décomposer une puissance en une suite de multiplications, puis en une suite d’additions Pour que le processeur comprenne notre programme codé avec des mov et des inc, il faut les retranscrire en binaire. Cette étape est nommée l’assemblage. Exemple : Un programme en assembleur... loadn 14 R0 # place le nombre 14 dans le registre R0 loadn 2 R1 # place le nombre 2 dans le registre R1 storer R1 R2 # copie le contenue de R1 dans R2 storer R1 R3 # copie le contenue de R1 dans R3 add R0 R2 # addition R0+R2 et place le résultat dans R2 mul R0 R3 # multiplication R0×R3 et place le résultat dans R3 store R0 0 # place le contenu de R0 à uploads/Industriel/ architecture-des-ordinateurs-lycee-beaussier-pdf.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager